Fixed error handling in rpc endpoints (#89)
This commit is contained in:
parent
9c0015678f
commit
0e942527da
@ -76,31 +76,29 @@ func (e *PublicEthAPI) BlockNumber() *big.Int {
|
|||||||
}
|
}
|
||||||
|
|
||||||
// GetBalance returns the provided account's balance up to the provided block number.
|
// GetBalance returns the provided account's balance up to the provided block number.
|
||||||
func (e *PublicEthAPI) GetBalance(address common.Address, blockNum rpc.BlockNumber) *hexutil.Big {
|
func (e *PublicEthAPI) GetBalance(address common.Address, blockNum rpc.BlockNumber) (*hexutil.Big, error) {
|
||||||
ctx := e.cliCtx.WithHeight(blockNum.Int64())
|
ctx := e.cliCtx.WithHeight(blockNum.Int64())
|
||||||
res, _, err := ctx.QueryWithData(fmt.Sprintf("custom/%s/balance/%s", types.ModuleName, address), nil)
|
res, _, err := ctx.QueryWithData(fmt.Sprintf("custom/%s/balance/%s", types.ModuleName, address), nil)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
fmt.Printf("could not resolve: %s\n", err)
|
return nil, err
|
||||||
return nil
|
|
||||||
}
|
}
|
||||||
|
|
||||||
var out types.QueryResBalance
|
var out types.QueryResBalance
|
||||||
e.cliCtx.Codec.MustUnmarshalJSON(res, &out)
|
e.cliCtx.Codec.MustUnmarshalJSON(res, &out)
|
||||||
return (*hexutil.Big)(out.Balance)
|
return (*hexutil.Big)(out.Balance), nil
|
||||||
}
|
}
|
||||||
|
|
||||||
// GetStorageAt returns the contract storage at the given address, block number, and key.
|
// GetStorageAt returns the contract storage at the given address, block number, and key.
|
||||||
func (e *PublicEthAPI) GetStorageAt(address common.Address, key string, blockNum rpc.BlockNumber) hexutil.Bytes {
|
func (e *PublicEthAPI) GetStorageAt(address common.Address, key string, blockNum rpc.BlockNumber) (hexutil.Bytes, error) {
|
||||||
ctx := e.cliCtx.WithHeight(blockNum.Int64())
|
ctx := e.cliCtx.WithHeight(blockNum.Int64())
|
||||||
res, _, err := ctx.QueryWithData(fmt.Sprintf("custom/%s/storage/%s/%s", types.ModuleName, address, key), nil)
|
res, _, err := ctx.QueryWithData(fmt.Sprintf("custom/%s/storage/%s/%s", types.ModuleName, address, key), nil)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
fmt.Printf("could not resolve: %s\n", err)
|
return nil, err
|
||||||
return nil
|
|
||||||
}
|
}
|
||||||
|
|
||||||
var out types.QueryResStorage
|
var out types.QueryResStorage
|
||||||
e.cliCtx.Codec.MustUnmarshalJSON(res, &out)
|
e.cliCtx.Codec.MustUnmarshalJSON(res, &out)
|
||||||
return out.Value[:]
|
return out.Value[:], nil
|
||||||
}
|
}
|
||||||
|
|
||||||
// GetTransactionCount returns the number of transactions at the given address up to the given block number.
|
// GetTransactionCount returns the number of transactions at the given address up to the given block number.
|
||||||
@ -140,17 +138,16 @@ func (e *PublicEthAPI) GetUncleCountByBlockNumber(blockNum rpc.BlockNumber) hexu
|
|||||||
}
|
}
|
||||||
|
|
||||||
// GetCode returns the contract code at the given address and block number.
|
// GetCode returns the contract code at the given address and block number.
|
||||||
func (e *PublicEthAPI) GetCode(address common.Address, blockNumber rpc.BlockNumber) hexutil.Bytes {
|
func (e *PublicEthAPI) GetCode(address common.Address, blockNumber rpc.BlockNumber) (hexutil.Bytes, error) {
|
||||||
ctx := e.cliCtx.WithHeight(blockNumber.Int64())
|
ctx := e.cliCtx.WithHeight(blockNumber.Int64())
|
||||||
res, _, err := ctx.QueryWithData(fmt.Sprintf("custom/%s/code/%s", types.ModuleName, address), nil)
|
res, _, err := ctx.QueryWithData(fmt.Sprintf("custom/%s/code/%s", types.ModuleName, address), nil)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
fmt.Printf("could not resolve: %s\n", err)
|
return nil, err
|
||||||
return nil
|
|
||||||
}
|
}
|
||||||
|
|
||||||
var out types.QueryResCode
|
var out types.QueryResCode
|
||||||
e.cliCtx.Codec.MustUnmarshalJSON(res, &out)
|
e.cliCtx.Codec.MustUnmarshalJSON(res, &out)
|
||||||
return out.Code
|
return out.Code, nil
|
||||||
}
|
}
|
||||||
|
|
||||||
// Sign signs the provided data using the private key of address via Geth's signature standard.
|
// Sign signs the provided data using the private key of address via Geth's signature standard.
|
||||||
|
Loading…
Reference in New Issue
Block a user