github.com/frankrap/okex-api@v1.0.4/account_rest_api.go (about) 1 package okex 2 3 /* 4 获取平台所有币种列表。并非所有币种都可被用于交易。在ISO 4217标准中未被定义的币种代码可能使用的是自定义代码。 5 6 HTTP请求 7 GET /api/account/v3/currencies 8 9 */ 10 func (client *Client) GetAccountCurrencies() (*[]map[string]interface{}, error) { 11 r := []map[string]interface{}{} 12 13 if _, _, err := client.Request(GET, ACCOUNT_CURRENCIES, nil, &r); err != nil { 14 return nil, err 15 } 16 return &r, nil 17 } 18 19 /* 20 钱包账户信息 21 获取钱包账户所有资产列表,查询各币种的余额、冻结和可用等信息。 22 23 HTTP请求 24 GET /api/account/v3/wallet 25 */ 26 func (client *Client) GetAccountWallet() (*[]map[string]interface{}, error) { 27 r := []map[string]interface{}{} 28 29 if _, _, err := client.Request(GET, ACCOUNT_WALLET, nil, &r); err != nil { 30 return nil, err 31 } 32 return &r, nil 33 } 34 35 /* 36 单一币种账户信息 37 获取钱包账户单个币种的余额、冻结和可用等信息。 38 39 HTTP请求 40 GET /api/account/v3/wallet/<currency> 41 42 请求示例 43 GET /api/account/v3/wallet/btc 44 */ 45 func (client *Client) GetAccountWalletByCurrency(currency string) (*[]map[string]interface{}, error) { 46 r := []map[string]interface{}{} 47 48 uri := GetCurrencyUri(ACCOUNT_WALLET_CURRENCY, currency) 49 50 if _, _, err := client.Request(GET, uri, nil, &r); err != nil { 51 return nil, err 52 } 53 return &r, nil 54 } 55 56 /* 57 单一币种账户信息 58 获取钱包账户单个币种的余额、冻结和可用等信息。 59 60 HTTP请求 61 GET /api/account/v3/wallet/<currency> 62 */ 63 func (client *Client) GetAccountWithdrawalFeeByCurrency(currency *string) (*[]map[string]interface{}, error) { 64 r := []map[string]interface{}{} 65 66 uri := ACCOUNT_WITHRAWAL_FEE 67 if currency != nil && len(*currency) > 0 { 68 params := NewParams() 69 params["currency"] = *currency 70 uri = BuildParams(uri, params) 71 } 72 73 if _, _, err := client.Request(GET, uri, nil, &r); err != nil { 74 return nil, err 75 } 76 return &r, nil 77 } 78 79 /* 80 查询最近所有币种的提币记录 81 82 HTTP请求 83 GET /api/account/v3/withdrawal/history 84 */ 85 func (client *Client) GetAccountWithdrawalHistory() (*[]map[string]interface{}, error) { 86 r := []map[string]interface{}{} 87 88 if _, _, err := client.Request(GET, ACCOUNT_WITHRAWAL_HISTORY, nil, &r); err != nil { 89 return nil, err 90 } 91 return &r, nil 92 } 93 94 /* 95 查询单个币种的提币记录。 96 97 HTTP请求 98 GET /api/account/v3/withdrawal/history/<currency> 99 */ 100 func (client *Client) GetAccountWithdrawalHistoryByCurrency(currency string) (*[]map[string]interface{}, error) { 101 r := []map[string]interface{}{} 102 103 uri := GetCurrencyUri(ACCOUNT_WITHRAWAL_HISTORY_CURRENCY, currency) 104 105 if _, _, err := client.Request(GET, uri, nil, &r); err != nil { 106 return nil, err 107 } 108 return &r, nil 109 } 110 111 /* 112 获取充值地址 113 获取各个币种的充值地址,包括曾使用过的老地址。 114 115 HTTP请求 116 GET /api/account/v3/deposit/address 117 118 请求示例 119 GET /api/account/v3/deposit/address?currency=btc 120 */ 121 func (client *Client) GetAccountDepositAddress(currency string) (*[]map[string]interface{}, error) { 122 r := []map[string]interface{}{} 123 params := NewParams() 124 params["currency"] = currency 125 126 uri := BuildParams(ACCOUNT_DEPOSIT_ADDRESS, params) 127 128 if _, _, err := client.Request(GET, uri, nil, &r); err != nil { 129 return nil, err 130 } 131 return &r, nil 132 } 133 134 /* 135 获取所有币种充值记录 136 获取所有币种的充值记录。为最近一百条数据 137 138 HTTP请求 139 GET /api/account/v3/deposit/history 140 */ 141 func (client *Client) GetAccountDepositHistory() (*[]map[string]interface{}, error) { 142 r := []map[string]interface{}{} 143 144 if _, _, err := client.Request(GET, ACCOUNT_DEPOSIT_HISTORY, nil, &r); err != nil { 145 return nil, err 146 } 147 return &r, nil 148 } 149 150 /* 151 获取单个币种充值记录 152 获取单个币种的充值记录,为最近一百条数据 153 154 HTTP 155 GET /api/account/v3/deposit/history/<currency> 156 */ 157 func (client *Client) GetAccountDepositHistoryByCurrency(currency string) (*[]map[string]interface{}, error) { 158 r := []map[string]interface{}{} 159 160 uri := GetCurrencyUri(ACCOUNT_DEPOSIT_HISTORY_CURRENCY, currency) 161 162 if _, _, err := client.Request(GET, uri, nil, &r); err != nil { 163 return nil, err 164 } 165 return &r, nil 166 } 167 168 /* 169 账单流水查询 170 查询钱包账户账单流水。流水会分页,并且按时间倒序排序和储存,最新的排在最前面。请参阅分页部分以获取第一页之后的其他记录。为最近三个月的数据 171 172 HTTP请求 173 GET /api/account/v3/ledger 174 175 请求示例 176 GET /api/account/v3/ledger?type=2¤cy=btc&from=4&limit=10 177 */ 178 func (client *Client) GetAccountLeger(optionalParams *map[string]string) (*[]map[string]interface{}, error) { 179 r := []map[string]interface{}{} 180 uri := ACCOUNT_LEDGER 181 if optionalParams != nil && len(*optionalParams) > 0 { 182 uri = BuildParams(uri, *optionalParams) 183 } 184 185 if _, _, err := client.Request(GET, uri, nil, &r); err != nil { 186 return nil, err 187 } 188 return &r, nil 189 } 190 191 /* 192 提币 193 提币到OKCoin国际站账户,OKEx账户或数字货币地址。 194 195 HTTP请求 196 POST /api/account/v3/withdrawal 197 */ 198 func (client *Client) PostAccountWithdrawal( 199 currency, to_address, trade_pwd string, destination int32, amount, fee float32) ([]byte, *map[string]interface{}, error) { 200 201 r := map[string]interface{}{} 202 203 withdrawlInfo := map[string]interface{}{} 204 withdrawlInfo["amount"] = amount 205 withdrawlInfo["destination"] = destination 206 withdrawlInfo["fee"] = fee 207 withdrawlInfo["currency"] = currency 208 withdrawlInfo["to_address"] = to_address 209 withdrawlInfo["trade_pwd"] = trade_pwd 210 211 var respBody []byte 212 var err error 213 if respBody, _, err = client.Request(GET, ACCOUNT_WITHRAWAL, withdrawlInfo, &r); err != nil { 214 return respBody, nil, err 215 } 216 217 return respBody, &r, nil 218 } 219 220 /* 221 资金划转 222 OKEx站内在钱包账户、交易账户和子账户之间进行资金划转。 223 224 限速规则:2次/s 225 HTTP请求 226 POST /api/account/v3/transfer 227 */ 228 func (client *Client) PostAccountTransfer( 229 currency string, from, to int32, amount float32, optionalParams map[string]string) ([]byte, *map[string]interface{}, error) { 230 231 r := map[string]interface{}{} 232 233 transferInfo := map[string]interface{}{} 234 transferInfo["currency"] = currency 235 transferInfo["from"] = from 236 transferInfo["to"] = to 237 transferInfo["amount"] = amount 238 239 if optionalParams != nil && len(optionalParams) > 0 { 240 if from == 0 || to == 0 { 241 transferInfo["sub_account"] = optionalParams["sub_account"] 242 } 243 transferInfo["instrument_id"] = optionalParams["instrument_id"] 244 if to == 5 || to == 3 { // 杠杆转入币对 / usdt保证金合约underlying 245 transferInfo["to_instrument_id"] = optionalParams["to_instrument_id"] 246 } 247 } 248 249 var respBody []byte 250 var err error 251 if respBody, _, err = client.Request(POST, ACCOUNT_TRANSFER, transferInfo, &r); err != nil { 252 return respBody, nil, err 253 } 254 255 return respBody, &r, nil 256 }