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&currency=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  }