Documentation
¶
Index ¶
- Variables
- func GenerateGlobalIndex(mainnetFlag bool, rollupIndex uint32, localExitRootIndex uint32) *big.Int
- type Bridge
- type BridgeSync
- func (s *BridgeSync) GetBridgeRootByHash(ctx context.Context, root common.Hash) (*tree.Root, error)
- func (s *BridgeSync) GetBridges(ctx context.Context, fromBlock, toBlock uint64) ([]Bridge, error)
- func (s *BridgeSync) GetClaims(ctx context.Context, fromBlock, toBlock uint64) ([]Claim, error)
- func (s *BridgeSync) GetLastProcessedBlock(ctx context.Context) (uint64, error)
- func (s *BridgeSync) GetProof(ctx context.Context, depositCount uint32, localExitRoot common.Hash) (tree.Proof, error)
- func (s *BridgeSync) GetRootByLER(ctx context.Context, ler common.Hash) (*tree.Root, error)
- func (s *BridgeSync) Start(ctx context.Context)
- type Claim
- type Config
- type EthClienter
- type Event
Constants ¶
This section is empty.
Variables ¶
View Source
var ( // ErrBlockNotProcessed indicates that the given block(s) have not been processed yet. ErrBlockNotProcessed = errors.New("given block(s) have not been processed yet") )
Functions ¶
Types ¶
type Bridge ¶
type Bridge struct {
BlockNum uint64 `meddler:"block_num"`
BlockPos uint64 `meddler:"block_pos"`
LeafType uint8 `meddler:"leaf_type"`
OriginNetwork uint32 `meddler:"origin_network"`
OriginAddress common.Address `meddler:"origin_address"`
DestinationNetwork uint32 `meddler:"destination_network"`
DestinationAddress common.Address `meddler:"destination_address"`
Amount *big.Int `meddler:"amount,bigint"`
Metadata []byte `meddler:"metadata"`
DepositCount uint32 `meddler:"deposit_count"`
}
Bridge is the representation of a bridge event
type BridgeSync ¶
type BridgeSync struct {
// contains filtered or unexported fields
}
BridgeSync manages the state of the exit tree for the bridge contract by processing Ethereum blockchain events.
func NewL1 ¶
func NewL1( ctx context.Context, dbPath string, bridge common.Address, syncBlockChunkSize uint64, blockFinalityType etherman.BlockNumberFinality, rd sync.ReorgDetector, ethClient EthClienter, initialBlock uint64, waitForNewBlocksPeriod time.Duration, retryAfterErrorPeriod time.Duration, maxRetryAttemptsAfterError int, ) (*BridgeSync, error)
NewL1 creates a bridge syncer that synchronizes the mainnet exit tree
func NewL2 ¶
func NewL2( ctx context.Context, dbPath string, bridge common.Address, syncBlockChunkSize uint64, blockFinalityType etherman.BlockNumberFinality, rd sync.ReorgDetector, ethClient EthClienter, initialBlock uint64, waitForNewBlocksPeriod time.Duration, retryAfterErrorPeriod time.Duration, maxRetryAttemptsAfterError int, ) (*BridgeSync, error)
NewL2 creates a bridge syncer that synchronizes the local exit tree
func (*BridgeSync) GetBridgeRootByHash ¶
func (*BridgeSync) GetBridges ¶
func (*BridgeSync) GetLastProcessedBlock ¶
func (s *BridgeSync) GetLastProcessedBlock(ctx context.Context) (uint64, error)
func (*BridgeSync) GetRootByLER ¶
func (*BridgeSync) Start ¶
func (s *BridgeSync) Start(ctx context.Context)
Start starts the synchronization process
type Claim ¶
type Claim struct {
BlockNum uint64 `meddler:"block_num"`
BlockPos uint64 `meddler:"block_pos"`
GlobalIndex *big.Int `meddler:"global_index,bigint"`
OriginNetwork uint32 `meddler:"origin_network"`
OriginAddress common.Address `meddler:"origin_address"`
DestinationAddress common.Address `meddler:"destination_address"`
Amount *big.Int `meddler:"amount,bigint"`
ProofLocalExitRoot types.Proof `meddler:"proof_local_exit_root,merkleproof"`
ProofRollupExitRoot types.Proof `meddler:"proof_rollup_exit_root,merkleproof"`
MainnetExitRoot common.Hash `meddler:"mainnet_exit_root,hash"`
RollupExitRoot common.Hash `meddler:"rollup_exit_root,hash"`
GlobalExitRoot common.Hash `meddler:"global_exit_root,hash"`
DestinationNetwork uint32 `meddler:"destination_network"`
Metadata []byte `meddler:"metadata"`
IsMessage bool `meddler:"is_message"`
}
Claim representation of a claim event
type Config ¶
type Config struct {
// DBPath path of the DB
DBPath string `mapstructure:"DBPath"`
// BlockFinality indicates the status of the blocks that will be queried in order to sync
BlockFinality string `` //nolint:lll
/* 134-byte string literal not displayed */
// InitialBlockNum is the first block that will be queried when starting the synchronization from scratch.
// It should be a number equal or bellow the creation of the bridge contract
InitialBlockNum uint64 `mapstructure:"InitialBlockNum"`
// BridgeAddr is the address of the bridge smart contract
BridgeAddr common.Address `mapstructure:"BridgeAddr"`
// SyncBlockChunkSize is the amount of blocks that will be queried to the client on each request
SyncBlockChunkSize uint64 `mapstructure:"SyncBlockChunkSize"`
// RetryAfterErrorPeriod is the time that will be waited when an unexpected error happens before retry
RetryAfterErrorPeriod types.Duration `mapstructure:"RetryAfterErrorPeriod"`
// MaxRetryAttemptsAfterError is the maximum number of consecutive attempts that will happen before panicing.
// Any number smaller than zero will be considered as unlimited retries
MaxRetryAttemptsAfterError int `mapstructure:"MaxRetryAttemptsAfterError"`
// WaitForNewBlocksPeriod time that will be waited when the synchronizer has reached the latest block
WaitForNewBlocksPeriod types.Duration `mapstructure:"WaitForNewBlocksPeriod"`
}
type EthClienter ¶
type EthClienter interface {
ethereum.LogFilterer
ethereum.BlockNumberReader
ethereum.ChainReader
bind.ContractBackend
Client() *rpc.Client
}
EthClienter defines the methods required to interact with an Ethereum client.
Click to show internal directories.
Click to hide internal directories.