Documentation
¶
Index ¶
Constants ¶
This section is empty.
Variables ¶
View Source
var ( // ErrSequencerPrivKeyOrMnemonic signals that the user tried to set both // sequencer wallet derivation methods or neither of them. ErrSequencerPrivKeyOrMnemonic = errors.New("either sequencer-private-key " + "or mnemonic + sequencer-hd-path must be set") // ErrProposererPrivKeyOrMnemonic signals that the user tried to set // both proposer wallet derivation methods or neither of them. ErrProposerPrivKeyOrMnemonic = errors.New("either proposer-private-key " + "or mnemonic + proposer-hd-path must be set") // ErrSameSequencerAndProposerHDPath signals that the user specified the // same sequencer and proposer derivations paths, which otherwise would // lead to the two using the same wallet. ErrSameSequencerAndProposerHDPath = errors.New("sequencer-hd-path and " + "proposer-hd-path must be distinct when using mnemonic") // ErrSameSequencerAndProposerPrivKey signals that the user specified // the same sequencer and proposer private keys, which otherwise would // lead to the two using the same wallet. ErrSameSequencerAndProposerPrivKey = errors.New("sequencer-priv-key and " + "proposer-priv-key must be distinct") // ErrInvalidBatchType signals that an unsupported batch type is being // configured. The default is "legacy" and the options are "legacy" or // "zlib" ErrInvalidBatchType = errors.New("invalid batch type") // ErrSentryDSNNotSet signals that not Data Source Name was provided // with which to configure Sentry logging. ErrSentryDSNNotSet = errors.New("sentry-dsn must be set if use-sentry " + "is true") )
Functions ¶
func DialL2EthClientWithTimeout ¶
func DialL2EthClientWithTimeout(ctx context.Context, url string, disableHTTP2 bool) ( *ethclient.Client, error)
DialL2EthClientWithTimeout attempts to dial the L2 provider using the provided URL. If the dial doesn't complete within dial.DefaultTimeout seconds, this method will return an error.
func Main ¶
Main is the entrypoint into the batch submitter service. This method returns a closure that executes the service and blocks until the service exits. The use of a closure allows the parameters bound to the top-level main package, e.g. GitVersion, to be captured and used once the function is executed.
func ValidateConfig ¶
ValidateConfig ensures additional constraints on the parsed configuration to ensure that it is well-formed.
Types ¶
type Config ¶
type Config struct {
// BuildEnv identifies the environment this binary is intended for, i.e.
// production, development, etc.
BuildEnv string
// EthNetworkName identifies the intended Ethereum network.
EthNetworkName string
// L1EthRpc is the HTTP provider URL for L1.
L1EthRpc string
// L2EthRpc is the HTTP provider URL for L1.
L2EthRpc string
// CTCAddress is the CTC contract address.
CTCAddress string
// SCCAddress is the SCC contract address.
SCCAddress string
// MinL1TxSize is the minimum size in bytes of any L1 transactions generated
// by the batch submitter.
MinL1TxSize uint64
// MaxL1TxSize is the maximum size in bytes of any L1 transactions generated
// by the batch submitter.
MaxL1TxSize uint64
// MaxPlaintextL1TxSize is the maximum size in bytes of the plaintext tx
// data encoded in batches.
MaxPlaintextBatchSize uint64
// MinStateRootElements is the minimum number of state root elements that
// can be submitted in single proposer batch.
MinStateRootElements uint64
// MaxStateRootElements is the maximum number of state root elements that
// can be submitted in single proposer batch.
MaxStateRootElements uint64
// MaxTxBatchCount is the maximum number of L2 transactions that can ever be
// in a batch.
MaxTxBatchCount uint64
// MaxBatchSubmissionTime is the maximum amount of time that we will
// wait before submitting an under-sized batch.
MaxBatchSubmissionTime time.Duration
// PollInterval is the delay between querying L2 for more transaction
// and creating a new batch.
PollInterval time.Duration
// NumConfirmations is the number of confirmations which we will wait after
// appending new batches.
NumConfirmations uint64
// SafeAbortNonceTooLowCount is the number of ErrNonceTooLowObservations
// required to give up on a tx at a particular nonce without receiving
// confirmation.
SafeAbortNonceTooLowCount uint64
// ResubmissionTimeout is time we will wait before resubmitting a
// transaction.
ResubmissionTimeout time.Duration
// FinalityConfirmations is the number of confirmations that we should wait
// before submitting state roots for CTC elements.
FinalityConfirmations uint64
// RunTxBatchSubmitter determines whether or not to run the tx batch
// submitter.
RunTxBatchSubmitter bool
// RunStateBatchSubmitter determines whether or not to run the state batch
// submitter.
RunStateBatchSubmitter bool
//SafeMinimumEtherBalance is the safe minimum amount of ether the batch
//submitter key should hold before it starts to log errors.
SafeMinimumEtherBalance uint64
// ClearPendingTxs is a boolean to clear the pending transactions in the
// mempool on startup.
ClearPendingTxs bool
// LogLevel is the lowest log level that will be output.
LogLevel string
// LogTerminal if true, prints to stdout in terminal format, otherwise
// prints using JSON. If SentryEnable is true this flag is ignored, and logs
// are printed using JSON.
LogTerminal bool
// SentryEnable if true, logs any error messages to sentry. SentryDsn
// must also be set if SentryEnable is true.
SentryEnable bool
// SentryDsn is the sentry Data Source Name.
SentryDsn string
// SentryTraceRate the frequency with which Sentry should flush buffered
// events.
SentryTraceRate time.Duration
// BlockOffset is the offset between the CTC contract start and the L2 geth
// blocks.
BlockOffset uint64
// SequencerPrivateKey the private key of the wallet used to submit
// transactions to the CTC contract.
SequencerPrivateKey string
// PropopserPrivateKey the private key of the wallet used to submit
// transaction to the SCC contract.
ProposerPrivateKey string
// Mnemonic is the HD seed used to derive the wallet private keys for both
// the sequence and proposer. Must be used in conjunction with
// SequencerHDPath and ProposerHDPath.
Mnemonic string
// SequencerHDPath is the derivation path used to obtain the private key for
// the sequencer transactions.
SequencerHDPath string
// ProposerHDPath is the derivation path used to obtain the private key for
// the proposer transactions.
ProposerHDPath string
// SequencerBatchType represents the type of batch the sequencer submits.
SequencerBatchType string
// MetricsServerEnable if true, will create a metrics client and log to
// Prometheus.
MetricsServerEnable bool
// MetricsHostname is the hostname at which the metrics server is running.
MetricsHostname string
// MetricsPort is the port at which the metrics server is running.
MetricsPort uint64
// DisableHTTP2 disables HTTP2 support.
DisableHTTP2 bool
}
Click to show internal directories.
Click to hide internal directories.