gpt4 book ai didi

go - 在 Go 中查找地址的 BTC 余额

转载 作者:IT王子 更新时间:2023-10-29 02:23:27 33 4
gpt4 key购买 nike

我需要更正和转换一个函数,检查 btc 余额的 2 个地址,例如(addr 和 addr1),返回的是 json 值,我需要指定我不太了解 golang..需要帮助!

func balance(addr) {
var url = "https://bitcoin.toshi.io/api/v0/addresses/" + addr
response, _ := http.Get(url)
defer response.Body.Close()
contents, _ := ioutil.ReadAll(response.Body)
return contents
}

编辑:

我需要一个函数来获取 2 个 btc 地址的余额,或者使用这个库 btcwallet .

func GetAddressBalance(icmd btcjson.Cmd) (interface{}, *btcjson.Error) 
func GetAddressesByAccount(icmd btcjson.Cmd) (interface{}, *btcjson.Error)
func GetBalance(icmd btcjson.Cmd) (interface{}, *btcjson.Error)

最佳答案

您走在正确的轨道上。 api 返回一个 json。这可以解码为结构 (Address)。这样您就可以访问 api 返回的所有内容。不要忘记始终检查错误代码!将 some_address 替换为实际地址以获得余额。

package main

import (
"encoding/json"
"fmt"
"net/http"
)

func main() {
a, err := getAddress("some_address")
if err != nil {
fmt.Println(err)
return
}
fmt.Println("Balance:", a.Balance)
}

type Address struct {
Hash string
Balance int
Received int
Send int
UnconfirmedBalance int `json:"unconfirmed_balance"`
UnconfirmedReceived int `json:"unconfirmed_received"`
UnconfirmedSent int `json:"unconfirmed_sent"`
}

func getAddress(addr string) (*Address, error) {
resp, err := http.Get("https://bitcoin.toshi.io/api/v0/addresses/" + addr)
if err != nil {
return nil, err
}
defer resp.Body.Close()

if resp.StatusCode != http.StatusOK {
return nil, fmt.Errorf("Error: %v", http.StatusText(resp.StatusCode))
}

var address Address
decoder := json.NewDecoder(resp.Body)
if err := decoder.Decode(&address); err != nil {
return nil, err
}

return &address, nil
}

关于go - 在 Go 中查找地址的 BTC 余额,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35551634/

33 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com