diff options
Diffstat (limited to 'internal/ethapi/api.go')
-rw-r--r-- | internal/ethapi/api.go | 11 |
1 files changed, 11 insertions, 0 deletions
diff --git a/internal/ethapi/api.go b/internal/ethapi/api.go index 9915ad4..9e50f64 100644 --- a/internal/ethapi/api.go +++ b/internal/ethapi/api.go @@ -555,6 +555,17 @@ func (s *PublicBlockChainAPI) GetBalance(ctx context.Context, address common.Add return (*hexutil.Big)(state.GetBalance(address)), state.Error() } +// GetBalanceMultiCoin returns the amount of wei for the given address in the state of the +// given block number. The rpc.LatestBlockNumber and rpc.PendingBlockNumber meta +// block numbers are also allowed. +func (s *PublicBlockChainAPI) GetBalanceMultiCoin(ctx context.Context, address common.Address, blockNrOrHash rpc.BlockNumberOrHash, coinID common.Hash) (*hexutil.Big, error) { + state, _, err := s.b.StateAndHeaderByNumberOrHash(ctx, blockNrOrHash) + if state == nil || err != nil { + return nil, err + } + return (*hexutil.Big)(state.GetBalanceMultiCoin(address, coinID)), state.Error() +} + // Result structs for GetProof type AccountResult struct { Address common.Address `json:"address"` |