ethereum

package
v1.131.1 Latest Latest
Warning

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

Go to latest
Published: Apr 16, 2024 License: MIT Imports: 46 Imported by: 0

Documentation

Index

Constants

View Source
const (
	BlockCacheSize = 6000
)

Variables

This section is empty.

Functions

func IsETH added in v0.41.0

func IsETH(token string) bool

IsETH return true if the token address equals to ethToken address

func LatestAggregatorContracts added in v1.93.0

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 added in v0.54.0

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 added in v0.41.0

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 added in v0.41.0

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 added in v0.41.0

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.125.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 added in v0.41.0

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.125.0

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 added in v1.127.1

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

GetNonceFinalized returns the nonce for the given address.

func (*Client) IsBlockScannerHealthy added in v0.41.0

func (c *Client) IsBlockScannerHealthy() bool

func (*Client) OnObservedTxIn added in v0.41.0

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

OnObservedTxIn gets called from observer when we have a valid observation

func (*Client) ReportSolvency added in v0.79.0

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

func (*Client) ShouldReportSolvency added in v0.79.0

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 added in v0.41.0

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 added in v0.41.0

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 added in v0.41.0

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

FetchMemPool get tx from mempool

func (*ETHScanner) FetchTxs added in v0.41.0

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 added in v0.41.0

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

GetGasPrice returns current gas price

func (*ETHScanner) GetHeight added in v0.41.0

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

GetHeight return latest block height

func (*ETHScanner) GetTokens added in v0.41.0

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

GetTokens return all the token meta data

type SolvencyReporter added in v0.63.0

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