ethereum

package
v1.137.2 Latest Latest
Warning

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

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

Documentation

Index

Constants

This section is empty.

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, toi *stypes.TxOutItem) 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 THORChain

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

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

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

func (*Client) GetNonce

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

GetNonce returns the nonce (including pending) for the given address.

func (*Client) GetNonceFinalized

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

GetNonceFinalized returns the nonce for the given address.

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 thorclient.ThorchainBridge,
	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