From eda06da4c762be9944fdc1dbb3c7786fc4719960 Mon Sep 17 00:00:00 2001 From: Determinant Date: Sat, 19 Sep 2020 14:33:17 -0400 Subject: ... --- internal/ethapi/api.go | 11 +++++++++++ 1 file changed, 11 insertions(+) (limited to 'internal/ethapi/api.go') 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"` -- cgit v1.2.3