good morning!!!!

Skip to content
Snippets Groups Projects
web3_api.go 1.05 KiB
Newer Older
  • Learn to ignore specific revisions
  • package commands
    
    import (
    
    	"github.com/ledgerwatch/erigon/cmd/rpcdaemon/services"
    
    Alex Sharov's avatar
    Alex Sharov committed
    	"github.com/ledgerwatch/erigon/common/hexutil"
    	"github.com/ledgerwatch/erigon/crypto"
    
    )
    
    // Web3API provides interfaces for the web3_ RPC commands
    type Web3API interface {
    
    	ClientVersion(_ context.Context) (string, error)
    	Sha3(_ context.Context, input hexutil.Bytes) hexutil.Bytes
    
    }
    
    type Web3APIImpl struct {
    
    	ethBackend services.ApiBackend
    
    }
    
    // NewWeb3APIImpl returns Web3APIImpl instance
    
    func NewWeb3APIImpl(ethBackend services.ApiBackend) *Web3APIImpl {
    
    ledgerwatch's avatar
    ledgerwatch committed
    		BaseAPI:    &BaseAPI{},
    		ethBackend: ethBackend,
    
    // ClientVersion implements web3_clientVersion. Returns the current client version.
    
    ledgerwatch's avatar
    ledgerwatch committed
    func (api *Web3APIImpl) ClientVersion(ctx context.Context) (string, error) {
    	return api.ethBackend.ClientVersion(ctx)
    
    // Sha3 implements web3_sha3. Returns Keccak-256 (not the standardized SHA3-256) of the given data.
    
    func (api *Web3APIImpl) Sha3(_ context.Context, input hexutil.Bytes) hexutil.Bytes {
    
    	return crypto.Keccak256(input)
    }