區塊鏈交易所基礎開發(2)通過介面查詢區塊鏈各個幣種的提幣情況-bch
阿新 • • 發佈:2019-01-08
程式碼如下
package main import ( "encoding/json" "fmt" "github.com/buger/jsonparser" "github.com/levigross/grequests" ) // HTTPGet . func HTTPGet(url string, requestOptions *grequests.RequestOptions) (response []byte, err error) { httpResponse, err := grequests.Get(url, requestOptions) if err == nil { if httpResponse.StatusCode == 200 { response = httpResponse.Bytes() } } return } // BchBlocksChainCheck 根據提幣的數量,提幣方地址以及目標方地址來檢查提幣是否已經confirmed. // 返回值有兩個:提幣狀態以及已收到的提幣數量(扣除手續費) func BchBlocksChainCheck(withdrawAmount float64, originalAddress string, targetAddress string) (status string, netWithdrawAmount float64, confirmations int64, err error) { targetURL := fmt.Sprintf("https://bch-chain.api.btc.com/v3/address/%s/tx", targetAddress) bData, err := HTTPGet(targetURL, nil) if err != nil { fmt.Println("error: HTTPGet targetURL failed.") return } //fmt.Println(string(bData)) _, err = jsonparser.ArrayEach(bData, func(value []byte, dataType jsonparser.ValueType, offset int, e error) { _outs, _, _, e := jsonparser.Get(value, "outputs") _confirmations, _, _, e := jsonparser.Get(value, "confirmations") _fees, _, _, e := jsonparser.Get(value, "fee") fees, e := jsonparser.GetInt(_fees) confirmations, e = jsonparser.GetInt(_confirmations) status = "online" jsonparser.ArrayEach(_outs, func(out []byte, dataType jsonparser.ValueType, offset int, e error) { _addr, _, _, e := jsonparser.Get(out, "addresses") _value, _, _, e := jsonparser.Get(out, "value") var outputs []string e = json.Unmarshal(_addr, &outputs) v, e := jsonparser.GetFloat(_value) if outputs[0] == targetAddress && v == withdrawAmount { fmt.Println("fees: ", fees) status = "confirmed" netWithdrawAmount = v } }) }) return } func main() { status, netReceiveAmount, confirmations, err := BchBlocksChainCheck(1567646685, "1JnCVng5JaVSmPxtm3wjkUXVDv2HXZBJJw", "15um5NFHM39xPdnnxwbEY4LeSMC9CE9cky") if err != nil { fmt.Println("request failed...") return } fmt.Println(fmt.Sprintf("status: %s, net_withdraw_amount: %f, confirmations: %d", status, netReceiveAmount, confirmations)) }
效果如下
網址:http://www.qukuailianxueyuan.io/
欲領取造幣技術與全套虛擬機器資料
區塊鏈技術交流QQ群:756146052 備註:CSDN
尹成學院微信:備註:CSDN
網址:http://www.qukuailianxueyuan.io/
欲領取造幣技術與全套虛擬機器資料
區塊鏈技術交流QQ群:756146052 備註:CSDN
尹成學院微信:備註:CSDN