[英]eth.sendTransaction from eth.coinbase makes multiple transactions and decrease the eth.coinbase balance
[英]Buying ETH using coinbase API
根據文檔,我應該能夠使用coinbase API購買ETH(參見購買訂單 )。
現在,看起來我正在獲得BTC。
private static void placeNonCommitBuy(String paymentMethod) {
if (sAccountID != null) {
String url = String.format("https://api.coinbase.com/v2/accounts/%s/buys", sAccountID);
try {
JSONObject params = new JSONObject();
params.put("amount", "0.001");
params.put("currency", "ETH");
params.put("payment_method", paymentMethod);
params.put("agree_btc_amount_varies", true);
params.put("commit", false);
params.put("quote", true);
doPost(url, params, sJustPrint);
} catch (JSONException ex) {
Assert.fail();
}
}
}
我得到了確認:
{
"data": {
"id": <...snip...>,
"status": "created",
"payment_method": {
"id": <...snip...>,
"resource": "payment_method",
"resource_path": <...snip...>
},
"transaction": null,
"user_reference": <...snip...>,
"created_at": "2018-01-18T01:37:15Z",
"updated_at": "2018-01-18T01:37:16Z",
"resource": "buy",
"resource_path": <...snip...>,
"fee": {
"amount": "0.99",
"currency": "USD"
},
"amount": {
"amount": "0.00008968",
"currency": "BTC"
},
"total": {
"amount": "2.02",
"currency": "USD"
},
"subtotal": {
"amount": "1.03",
"currency": "USD"
},
"committed": true,
"payout_at": "2018-01-18T01:37:14Z",
"instant": true,
"requires_completion_step": false
}
}
在網站上,我看到我現在有一些BTC(價值約1美元),但不是ETH。
我需要使用缺失/無證的params嗎? 或者我的請求中有錯誤?
因此,看起來Coinbase API實際上沒有考慮currency
字段(即使他們的API文檔提到並解釋它的作用)。
發生的事情是,您的交易將使用與用戶授權的帳戶關聯的任何貨幣作為Oauth流程的一部分進行。 默認選擇BTC; 用戶必須單擊該下拉列表並選擇其他內容。
所以“修復”是為了確保用戶選擇正確的帳戶。
真正的解決方案是,如果您選擇的貨幣未經授權,Coinbase會修復其API並返回錯誤(而不是忽略該字段並使用授權貨幣而不告訴任何人)。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.