区块链教程之基础开发通过接口查询币种提币情况bch
代码如下
主包装
导入(
'编码/json '
' fmt '
github.com/buger/jsonparser的
github.com/levigross/grequests的
)
//HTTPGet .
func HTTPGet(url字符串,请求选项*请求.请求选项)(响应[]字节,呃错误){
httpResponse,err :=grequests .获取(网址,请求选项)
如果错误==零{
如果http响应.状态码==200 {
response=httpResponse .字节()
}
}
返回
}
//BchBlocksChainCheck根据提币的数量,提币方地址以及目标方地址来检查提币是否已经已确认。
//返回值有两个:提币状态以及已收到的提币数量(扣除手续费)
func BchBlocksChainCheck(取款金额浮动64,原始地址字符串,目标地址字符串)(状态字符串,netWithdrawAmount float64,confirmations int64,err error) {
targetURL :=fmt .斯普林特公司(' https://BCH连锁店。API。BTC。com/v3/address/% s/tx 'targetAddress)
bData,err :=HTTPGet(targetURL,nil)
如果呃!=零{
fmt .Println('错误:HTTPGet targetURL失败。)
返回
}
//fmt .Println(string(bData))
_,err=jsonparser .ArrayEach(bData,func(value []byte,dataType jsonparser .ValueType,offset int,e error) {
_outs,_,_,e :=jsonparser .获取(值,\”输出\”)
_confirmations,_,_,e :=jsonparser .获取(值,\”确认\”)
_fees,_,_,e :=jsonparser .获取(值,'费用)
费,e :=jsonparser .GetInt(_费用)
确认,e=jsonparser .GetInt(_确认)
状态=\”在线\”
jsonparser .ArrayEach(_outs,func(out []byte,dataType jsonparser .ValueType,offset int,e error) {
_addr,_,_,e :=jsonparser .得到(出去,\”地址\”)
_value,_,_,e :=jsonparser .获取(出来了,’值)
定义变量输出[]字符串
e=json .解组(_地址,输出)
v,e :=jsonparser .GetFloat(_value)
如果输出[0]==targetAddress v==取款金额{
fmt .Println('费用: '费用)
状态=\”已确认\”
netWithdrawAmount=v
}
})
})
返回
}
func main() {
status,netReceiveAmount,confirmations,err:=BchBlocksChainCheck(1567646685,' 1 jncvng 5 javsmpxtm 3 wjkuxvd v2 hxzbjjw '' 15um 5 nfhm 39 xpdnnxwbey 4 lesmc 9 ce 9 cky ')
如果呃!=零{
fmt .Println('请求失败.')
返回
}
fmt .Println(fmt .Sprintf('状态:%s,net _ retract _ amount:% f确认:%d '状态,netReceiveAmount,确认))
}