ethereum

package
v1.112.0 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Nov 17, 2024 License: MIT Imports: 46 Imported by: 0

Documentation

Index

Constants

View Source
const (
	BlockCacheSize = 6000
	MaxContractGas = 80000
)
View Source
const TxWaitBlocks = 150

Variables

This section is empty.

Functions

func IsETH

func IsETH(token string) bool

IsETH return true if the token address equals to ethToken address

func LatestAggregatorContracts

func LatestAggregatorContracts() []common.Address

Types

type Client

type Client struct {
	// contains filtered or unexported fields
}

Client is a structure to sign and broadcast tx to Ethereum chain used by signer mostly

func NewClient

NewClient create new instance of Ethereum client

func (*Client) AddSignedTxItem

func (c *Client) AddSignedTxItem(hash string, height int64, vaultPubKey string) error

AddSignedTxItem add the transaction to key value store

func (*Client) BroadcastTx

func (c *Client) BroadcastTx(txOutItem stypes.TxOutItem, hexTx []byte) (string, error)

BroadcastTx decodes tx using rlp and broadcasts too Ethereum chain

func (*Client) ConfirmationCountReady

func (c *Client) ConfirmationCountReady(txIn stypes.TxIn) bool

ConfirmationCountReady check whether the given txIn is ready to be send to BASEChain

func (*Client) GetAccount

func (c *Client) GetAccount(pk common.PubKey, height *big.Int) (common.Account, error)

GetAccount gets account by address in eth client

func (*Client) GetAccountByAddress

func (c *Client) GetAccountByAddress(address string, height *big.Int) (common.Account, error)

GetAccountByAddress return account information

func (*Client) GetAddress

func (c *Client) GetAddress(poolPubKey common.PubKey) string

GetAddress return current signer address, it will be bech32 encoded address

func (*Client) GetBalance

func (c *Client) GetBalance(addr, token string, height *big.Int) (*big.Int, error)

GetBalance call smart contract to find out the balance of the given address and token

func (*Client) GetBalances

func (c *Client) GetBalances(addr string, height *big.Int) (common.Coins, error)

GetBalances gets all the balances of the given address

func (*Client) GetBlockScannerHeight added in v1.109.0

func (c *Client) GetBlockScannerHeight() (int64, error)

GetBlockScannerHeight returns blockscanner height

func (*Client) GetChain

func (c *Client) GetChain() common.Chain

GetChain get chain

func (*Client) GetConfig

func (c *Client) GetConfig() config.BifrostChainConfiguration

GetConfig return the configurations used by ETH chain

func (*Client) GetConfirmationCount

func (c *Client) GetConfirmationCount(txIn stypes.TxIn) int64

GetConfirmationCount decide the given txIn how many confirmation it requires

func (*Client) GetGasFee

func (c *Client) GetGasFee(gas uint64) common.Gas

GetGasFee gets gas fee

func (*Client) GetGasPrice

func (c *Client) GetGasPrice() *big.Int

GetGasPrice gets gas price from eth scanner

func (*Client) GetHeight

func (c *Client) GetHeight() (int64, error)

GetHeight gets height from eth scanner

func (*Client) GetLatestTxForVault added in v1.109.0

func (c *Client) GetLatestTxForVault(vault string) (string, string, error)

func (*Client) GetNonce

func (c *Client) GetNonce(addr string) (uint64, error)

GetNonce gets nonce

func (*Client) IsBlockScannerHealthy

func (c *Client) IsBlockScannerHealthy() bool

func (*Client) OnObservedTxIn

func (c *Client) OnObservedTxIn(txIn stypes.TxInItem, blockHeight int64)

OnObservedTxIn gets called from observer when we have a valid observation

func (*Client) ReportSolvency

func (c *Client) ReportSolvency(ethBlockHeight int64) error

func (*Client) ShouldReportSolvency

func (c *Client) ShouldReportSolvency(height int64) bool

ShouldReportSolvency with given block height , should chain client report Solvency to THORNode?

func (*Client) SignTx

func (c *Client) SignTx(tx stypes.TxOutItem, height int64) ([]byte, []byte, *stypes.TxInItem, error)

SignTx sign the the given TxArrayItem

func (*Client) Start

func (c *Client) Start(globalTxsQueue chan stypes.TxIn, globalErrataQueue chan stypes.ErrataBlock, globalSolvencyQueue chan stypes.Solvency)

Start to monitor Ethereum block chain

func (*Client) Stop

func (c *Client) Stop()

Stop ETH client

type ETHScanner

type ETHScanner struct {
	// contains filtered or unexported fields
}

ETHScanner is a scanner that understand how to interact with ETH chain ,and scan block , parse smart contract etc

func NewETHScanner

func NewETHScanner(cfg config.BifrostBlockScannerConfiguration,
	storage blockscanner.ScannerStorage,
	chainID *big.Int,
	client *ethclient.Client,
	bridge mayaclient.MayachainBridge,
	m *metrics.Metrics,
	pubkeyMgr pubkeymanager.PubKeyValidator,
	solvencyReporter SolvencyReporter,
	signerCacheManager *signercache.CacheManager,
) (*ETHScanner, error)

NewETHScanner create a new instance of ETHScanner

func (*ETHScanner) FetchMemPool

func (e *ETHScanner) FetchMemPool(_ int64) (stypes.TxIn, error)

FetchMemPool get tx from mempool

func (*ETHScanner) FetchTxs

func (e *ETHScanner) FetchTxs(height, chainHeight int64) (stypes.TxIn, error)

FetchTxs query the ETH chain to get txs in the given block height

func (*ETHScanner) GetGasPrice

func (e *ETHScanner) GetGasPrice() *big.Int

GetGasPrice returns current gas price

func (*ETHScanner) GetHeight

func (e *ETHScanner) GetHeight() (int64, error)

GetHeight return latest block height

func (*ETHScanner) GetTokens

func (e *ETHScanner) GetTokens() ([]*types.TokenMeta, error)

GetTokens return all the token meta data

type SolvencyReporter

type SolvencyReporter func(int64) error

SolvencyReporter is to report solvency info to THORNode

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL