"git@gfx.cafe:open/bor.git" did not exist on "a978adfd7c5ec1b9f7271c69f8f3a6686bb73c19"
Select Git revision
Code owners
Assign users and groups as approvers for specific file changes. Learn more.
This project manages its dependencies using Go Modules.
Learn more
web3_api.go 1.05 KiB
package commands
import (
"context"
"github.com/ledgerwatch/erigon/cmd/rpcdaemon/services"
"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 {
*BaseAPI
ethBackend services.ApiBackend
}
// NewWeb3APIImpl returns Web3APIImpl instance
func NewWeb3APIImpl(ethBackend services.ApiBackend) *Web3APIImpl {
return &Web3APIImpl{
BaseAPI: &BaseAPI{},
ethBackend: ethBackend,
}
}
// ClientVersion implements web3_clientVersion. Returns the current client version.
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)
}