OSDN Git Service

api add createAccount and createKey (#393)
[bytom/vapor.git] / toolbar / apinode / query.go
diff --git a/toolbar/apinode/query.go b/toolbar/apinode/query.go
new file mode 100644 (file)
index 0000000..9486a09
--- /dev/null
@@ -0,0 +1,72 @@
+package apinode
+
+import (
+       "encoding/json"
+
+       "github.com/vapor/api"
+       "github.com/vapor/blockchain/query"
+       "github.com/vapor/errors"
+       "github.com/vapor/netsync/peers"
+       "github.com/vapor/wallet"
+)
+
+func (n *Node) ListAddresses(accountAlias string, from, count uint) (*[]api.AddressResp, error) {
+       url := "/list-addresses"
+       payload, err := json.Marshal(api.AddressReq{
+               AccountAlias: accountAlias,
+               From:         from,
+               Count:        count,
+       })
+       if err != nil {
+               return nil, errors.Wrap(err, "json marshal")
+       }
+
+       res := &[]api.AddressResp{}
+       return res, n.request(url, payload, res)
+}
+
+func (n *Node) ListBalances(accountAlias string) (*[]wallet.AccountBalance, error) {
+       url := "/list-balances"
+       payload, err := json.Marshal(api.AccountFilter{
+               AccountAlias: accountAlias,
+       })
+       if err != nil {
+               return nil, errors.Wrap(err, "json marshal")
+       }
+
+       res := &[]wallet.AccountBalance{}
+       return res, n.request(url, payload, res)
+}
+
+func (n *Node) ListUtxos(accountAlias string,from, count uint) (*[]query.AnnotatedUTXO, error) {
+       url := "/list-unspent-outputs"
+       payload, err := json.Marshal(api.ListUtxosReq{
+               AccountAlias:  accountAlias,
+               From:          from,
+               Count:         count,
+       })
+       if err != nil {
+               return nil, errors.Wrap(err, "json marshal")
+       }
+
+       res := &[]query.AnnotatedUTXO{}
+       return res, n.request(url, payload, res)
+}
+
+func (n *Node) WalletInfo() (*api.WalletInfo, error) {
+       url := "/wallet-info"
+       res := &api.WalletInfo{}
+       return res, n.request(url, nil, res)
+}
+
+func (n *Node) NetInfo() (*api.NetInfo, error) {
+       url := "/net-info"
+       res := &api.NetInfo{}
+       return res, n.request(url, nil, res)
+}
+
+func (n *Node) ListPeers() (*[]*peers.PeerInfo, error) {
+       url := "/list-peers"
+       res := &[]*peers.PeerInfo{}
+       return res, n.request(url, nil, res)
+}