Implemented rcp method GetAccountState (#124)
* Implemented rcp method GetAccountState * code clean up * Removed empty line * Used consistently github.com/pkg/errors package. Amended error message * Get rid of fmt.Sprintf and use either errors.Errorf or errors.Wrapf * cosmetic changes
This commit is contained in:
parent
a5e2df6942
commit
7e43717657
6 changed files with 105 additions and 23 deletions
|
@ -16,12 +16,9 @@ import (
|
|||
)
|
||||
|
||||
func TestHandler(t *testing.T) {
|
||||
|
||||
// setup rpcServer server
|
||||
net := config.ModeUnitTestNet
|
||||
|
||||
configPath := "../../config"
|
||||
|
||||
cfg, err := config.Load(configPath, net)
|
||||
if err != nil {
|
||||
t.Fatal("could not create levelDB chain", err)
|
||||
|
@ -34,7 +31,6 @@ func TestHandler(t *testing.T) {
|
|||
|
||||
serverConfig := network.NewServerConfig(cfg)
|
||||
server := network.NewServer(serverConfig, chain)
|
||||
|
||||
rpcServer := NewServer(chain, cfg.ApplicationConfiguration.RPCPort, server)
|
||||
|
||||
// setup handler
|
||||
|
@ -55,11 +51,11 @@ func TestHandler(t *testing.T) {
|
|||
|
||||
{`{"jsonrpc": "2.0", "id": 1, "method": "getassetstate", "params": ["62c79718b16e442de58778e148d0b1084e3b2dffd5de6b7b16cee7969282de7"] }`,
|
||||
"getassetstate_3",
|
||||
`{"jsonrpc":"2.0","result":"Invalid assetid","id":1}`},
|
||||
`{"jsonrpc":"2.0","error":{"code":-32602,"message":"Invalid Params","data":"unable to decode 62c79718b16e442de58778e148d0b1084e3b2dffd5de6b7b16cee7969282de7 to Uint256: expected string size of 64 got 63"},"id":1}`},
|
||||
|
||||
{`{"jsonrpc": "2.0", "id": 1, "method": "getassetstate", "params": [123] }`,
|
||||
"getassetstate_4",
|
||||
`{"jsonrpc":"2.0","error":{"code":-32602,"message":"Invalid Params","data":"Param need to be a string"},"id":1}`},
|
||||
`{"jsonrpc":"2.0","error":{"code":-32602,"message":"Invalid Params","data":"expected param at index 0 to be a valid string assetID parameter"},"id":1}`},
|
||||
|
||||
{`{"jsonrpc": "2.0", "id": 1, "method": "getblockhash", "params": [10] }`,
|
||||
"getblockhash_1",
|
||||
|
@ -92,10 +88,24 @@ func TestHandler(t *testing.T) {
|
|||
{`{"jsonrpc": "2.0", "id": 1, "method": "getpeers", "params": [] }`,
|
||||
"getpeers",
|
||||
`{"jsonrpc":"2.0","result":{"unconnected":[],"connected":[],"bad":[]},"id":1}`},
|
||||
|
||||
{`{ "jsonrpc": "2.0", "id": 1, "method": "getaccountstate", "params": ["AK2nJJpJr6o664CWJKi1QRXjqeic2zRp8y"] }`,
|
||||
"getaccountstate_1",
|
||||
`{"jsonrpc":"2.0","result":{"version":0,"address":"AK2nJJpJr6o664CWJKi1QRXjqeic2zRp8y","script_hash":"0xe9eed8dc39332032dc22e5d6e86332c50327ba23","frozen":false,"votes":[],"balances":{"602c79718b16e442de58778e148d0b1084e3b2dffd5de6b7b16cee7969282de7":"72099.99960000","c56f33fc6ecfcd0c225c4ab356fee59390af8560be0e930faebe74a6daff7c9b":"99989900"}},"id":1}`,
|
||||
},
|
||||
|
||||
{`{ "jsonrpc": "2.0", "id": 1, "method": "getaccountstate", "params": ["AK2nJJpJr6o664CWJKi1QRXjqeic2zR"] }`,
|
||||
"getaccountstate_2",
|
||||
`{"jsonrpc":"2.0","error":{"code":-32602,"message":"Invalid Params","data":"unable to decode AK2nJJpJr6o664CWJKi1QRXjqeic2zR to Uint160: invalid base-58 check string: invalid checksum."},"id":1}`,
|
||||
},
|
||||
|
||||
{`{ "jsonrpc": "2.0", "id": 1, "method": "getaccountstate", "params": [123] }`,
|
||||
"getaccountstate_3",
|
||||
`{"jsonrpc":"2.0","error":{"code":-32602,"message":"Invalid Params","data":"expected param at index 0 to be a valid string account address parameter"},"id":1}`,
|
||||
},
|
||||
}
|
||||
|
||||
for _, tc := range testCases {
|
||||
|
||||
t.Run(fmt.Sprintf("method: %s, rpc call: %s", tc.method, tc.rpcCall), func(t *testing.T) {
|
||||
|
||||
jsonStr := []byte(tc.rpcCall)
|
||||
|
@ -105,9 +115,7 @@ func TestHandler(t *testing.T) {
|
|||
|
||||
w := httptest.NewRecorder()
|
||||
handler(w, req)
|
||||
|
||||
resp := w.Result()
|
||||
|
||||
body, err := ioutil.ReadAll(resp.Body)
|
||||
if err != nil {
|
||||
t.Errorf("could not read response from the request: %s", tc.rpcCall)
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue