// CancelOrder cancels an open order. func CancelOrder(c appengine.Context, login xgen.Credentials, oid string) (x xgen.OpenOrders, err os.Error) { defer func() { if e, ok := recover().(os.Error); ok { err = e } }() var openOrders OpenOrders err = restapi.PostJson(c, JsonCancel, map[string][]string{"name": {login.Username}, "pass": {login.Password}, "oid": {oid}}, &openOrders) check(err) x = openOrders.convert() // Note: Canceling an order may take up to 1 second. During that time the order is considered active and will be returned as active by GetOrders. return }
// GetOpenOrders retrieves a list of all open orders. func GetOpenOrders(c appengine.Context, login xgen.Credentials) (x xgen.OpenOrders, err os.Error) { defer func() { if e, ok := recover().(os.Error); ok { err = e } }() var openOrders OpenOrders err = restapi.PostJson(c, JsonOrders, map[string][]string{"name": {login.Username}, "pass": {login.Password}}, &openOrders) check(err) x = openOrders.convert() return }
// Sell opens a new order to sell BTC. func Sell(c appengine.Context, login xgen.Credentials, price float64, amount float64) (x xgen.OpenOrders, err os.Error) { defer func() { if e, ok := recover().(os.Error); ok { err = e } }() var openOrders OpenOrders err = restapi.PostJson(c, JsonSell, map[string][]string{"name": {login.Username}, "pass": {login.Password}, "price": {strconv.Ftoa64(price, 'f', -1)}, "amount": {strconv.Ftoa64(amount, 'f', -1)}}, &openOrders) check(err) x = openOrders.convert() return }
// GetBalance retrieves the account balance. func GetBalance(c appengine.Context, login xgen.Credentials) (x xgen.Balance, err os.Error) { defer func() { if e, ok := recover().(os.Error); ok { err = e } }() var b Balance err = restapi.PostJson(c, JsonBalance, map[string][]string{"name": {login.Username}, "pass": {login.Password}}, &b) check(err) x[xgen.BTC], err = strconv.Atof64(b.BTC) check(err) x[xgen.USD], err = strconv.Atof64(b.USD) return }
// CancelOrder cancels an open order. func CancelOrder(c appengine.Context, login xgen.Credentials, oid string, orderType int8) (f interface{}, err os.Error) { err = restapi.PostJson(c, JsonCancel, map[string][]string{"name": {login.Username}, "pass": {login.Password}, "nonce": {strconv.Itoa64(time.Nanoseconds())}, "oid": {oid}, "type": {strconv.Itoa(int(orderType))}}, &f) return }
// Sell opens a new order to sell BTC. func Sell(c appengine.Context, login xgen.Credentials, price float64, amount float64) (f interface{}, err os.Error) { err = restapi.PostJson(c, JsonBuySell, map[string][]string{"user": {login.Username}, "pass": {login.Password}, "TradeMode": {"QuickSell"}, "Price": {strconv.Ftoa64(price, 'f', -1)}, "Quantity": {strconv.Ftoa64(amount, 'f', -1)}}, &f) return }
// CancelOrder cancels an open order. func CancelOrder(c appengine.Context, login xgen.Credentials, oid string, orderType string) (f interface{}, err os.Error) { err = restapi.PostJson(c, JsonCancel, map[string][]string{"user": {login.Username}, "pass": {login.Password}, "Type": {orderType}, "OrderID": {oid}}, &f) return }