【问题标题】:coinbase api client.get_accounts() not returning all walletscoinbase api client.get_accounts() 不返回所有钱包
【发布时间】:2021-08-26 02:09:30
【问题描述】:

目前 coinbase api 不会获取我的 atom 钱包。使用其他测试代码,我可以看到它返回了 94 个钱包,但它们都不是我的 atom 钱包,而且账户数据看起来甚至不像有 94 个元素。

关于如何让我的 atom 钱包显示的任何想法?我尝试了 client.get_accounts(limit=200) 技巧,但没有成功。

#import coinbase api
from coinbase.wallet.client import Client

# Coinbase Credentials
api_key = 'xxx'
api_secret = 'xxx'

# create a coinbase client
cb_client = Client(api_key, api_secret)
cb_accounts = cb_client.get_accounts()

# coin setting
coin = 'ATOM'

#print accounts
print(cb_accounts)

#get coin balance
for i in cb_accounts['data']:
    if i['currency'] == coin:
        coin_balance = float(i['native_balance']['amount'])

#print coin balance
print(coin_balance)

返回的样本数据:

{
  "data": [
    {
      "allow_deposits": true,
      "allow_withdrawals": true,
      "balance": {
        "amount": "0.00000000",
        "currency": "FET"
      },
      "created_at": "xxx",
      "currency": "FET",
      "id": "xxx",
      "name": "FET Wallet",
      "native_balance": {
        "amount": "0.00",
        "currency": "USD"
      },
      "primary": false,
      "resource": "account",
      "resource_path": "xxx",
      "type": "wallet",
      "updated_at": "xxx"
    }
  ]
}

【问题讨论】:

    标签: python coinbase-api


    【解决方案1】:

    更好的方法是使用 coinbase api 分页参数:

    #iniliase next wallet id 
    next = None
    # this loop will run until the next_uri parameter is none ( it means that there is no other page to show)
    while True:
       accounts = client.get_accounts(starting_after=next)
       next = accounts.pagination.next_starting_after
       print(accounts.data)
       if accounts.pagination.next_uri == None :
         print("end")
         break
    

    如果您喜欢您的脚本打印零余额的钱包,试试这个:

    #iniliase next wallet id 
    next=None
    # this loop wil run until next_uri parameter is none ( it means that there is no other page to show)
    while True:
       accounts=client.get_accounts(starting_after=next)
       next=accounts.pagination.next_starting_after
       for wallet in accounts.data:
          if wallet['native_balance']['amount'] != '0.00':
             print(str(wallet['name']) + ' ' + str(wallet['native_balance']))
       if accounts.pagination.next_uri==None :
         print("end")
         break
    

    【讨论】:

    • 示例输出:CHZ Wallet USD 11.07 SOL Wallet USD 9 DOT Wallet USD 15 ADA Wallet USD 19 ATOM Wallet USD 5.18 XTZ Wallet USD 4.67 XLM Wallet USD 10.68 Cash (USD) USD 0.10 end
    【解决方案2】:

    临时修复:通过网站上的 coinbase api 设置仅启用我想使用的钱包。

    很烦人还是想知道是否有人能够一次取回所有钱包。

    【讨论】:

    • Mehrshad 上面的分页指示解决了从问题中丢失帐户的问题。结果仅限于第一个结果页
    猜你喜欢
    • 2018-04-24
    • 1970-01-01
    • 2022-07-17
    • 2018-06-15
    • 2021-11-21
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多