char *WITHDRAW(struct exchange_info *exchange,cJSON *argjson) { char payload[1024],*base,*destaddr,*method,*tradepassword; double amount; if ( (base= jstr(argjson,"base")) == 0 || strcmp(base,"BTC") != 0 ) return(clonestr("{\"error\":\"base not specified or base != BTC\"}")); if ( (destaddr= jstr(argjson,"destaddr")) == 0 ) return(clonestr("{\"error\":\"destaddr not specified\"}")); if ( (amount= jdouble(argjson,"amount")) < SMALLVAL ) return(clonestr("{\"error\":\"amount not specified\"}")); if ( (tradepassword= jstr(argjson,"tradepassword")) == 0 ) return(clonestr("{\"error\":\"tradepassword not specified\"}")); method = "withdraw_coin"; sprintf(payload,"&symbol=btc_usd&chargefee=0.0001&withdraw_address=%s&withdraw_amount=%.4f&trade_pwd=%s",destaddr,amount,tradepassword); return(jprint(okcoin_issue_auth(exchange,method,payload),1)); }
char *WITHDRAW(struct exchange_info *exchange,char *base,double amount,char *destaddr,cJSON *argjson) { char payload[1024],*method,*tradepassword; if ( base == 0 || base[0] == 0 ) return(clonestr("{\"error\":\"base not specified\"}")); if ( destaddr == 0 || destaddr[0] == 0 ) return(clonestr("{\"error\":\"destaddr not specified\"}")); if ( amount < SMALLVAL ) return(clonestr("{\"error\":\"amount not specified\"}")); if ( (tradepassword= jstr(argjson,"tradepassword")) == 0 ) tradepassword = exchange->tradepassword; if ( tradepassword == 0 || tradepassword[0] == 0 ) return(clonestr("{\"error\":\"tradepassword not specified\"}")); method = "withdraw_coin"; sprintf(payload,"&symbol=btc_usd&chargefee=0.0001&withdraw_address=%s&withdraw_amount=%.4f&trade_pwd=%s",destaddr,amount,tradepassword); return(jprint(okcoin_issue_auth(&exchange->cHandle,exchange,method,payload),1)); }
char *TRADEHISTORY(void **cHandlep,struct exchange_info *exchange,cJSON *argjson) { return(jprint(okcoin_issue_auth(cHandlep,exchange,"orders_history.do","&status=1&symbol=btc_usd¤t_page=0&page_length=200"),1)); }
char *OPENORDERS(void **cHandlep,struct exchange_info *exchange,cJSON *argjson) { return(jprint(okcoin_issue_auth(cHandlep,exchange,"orders_info.do",""),1)); }
char *CANCELORDER(void **cHandlep,struct exchange_info *exchange,cJSON *argjson,uint64_t quoteid) { char buf[64]; sprintf(buf,"&symbol=btc_usd&order_id=%llu",(long long)quoteid); return(jprint(okcoin_issue_auth(cHandlep,exchange,"cancel_order.do",buf),1)); }
cJSON *BALANCES(void **cHandlep,struct exchange_info *exchange) { return(okcoin_issue_auth(cHandlep,exchange,"userinfo.do","")); }
char *ORDERSTATUS(struct exchange_info *exchange,uint64_t quoteid,cJSON *argjson) { char buf[64]; sprintf(buf,"&symbol=btc_usd&order_id=%llu",(long long)quoteid); return(jprint(okcoin_issue_auth(&exchange->cHandle,exchange,"order_info.do",buf),1)); }
cJSON *BALANCES(struct exchange_info *exchange,cJSON *argjson) { return(okcoin_issue_auth(&exchange->cHandle,exchange,"userinfo.do","")); }
cJSON *BALANCES(struct exchange_info *exchange) { return(okcoin_issue_auth(exchange,"userinfo.do","")); }