Documentation ¶
Index ¶
- Constants
- Variables
- type EthermanInterface
- type MonitoredTx
- func (mTx *MonitoredTx) AddHistory(tx *types.Transaction) error
- func (mTx *MonitoredTx) BlockNumberU64Ptr() *uint64
- func (mTx *MonitoredTx) DataStringPtr() *string
- func (mTx *MonitoredTx) HistoryHashSlice() []common.Hash
- func (mTx *MonitoredTx) HistoryStringSlice() []string
- func (mTx *MonitoredTx) ToStringPtr() *string
- func (mTx MonitoredTx) Tx() *types.Transaction
- func (mTx *MonitoredTx) ValueU64Ptr() *uint64
- type MonitoredTxResult
- type MonitoredTxStatus
- type StateInterface
- type StorageInterface
- type TxResult
Constants ¶
const ( // MonitoredTxStatusCreated mean the tx was just added to the storage MonitoredTxStatusCreated = MonitoredTxStatus("created") // MonitoredTxStatusSent means that at least a eth tx was sent to the network MonitoredTxStatusSent = MonitoredTxStatus("sent") // MonitoredTxStatusFailed means the tx was already mined and failed with an // error that can't be recovered automatically, ex: the data in the tx is invalid // and the tx gets reverted MonitoredTxStatusFailed = MonitoredTxStatus("failed") // MonitoredTxStatusConfirmed means the tx was already mined and the receipt // status is Successful MonitoredTxStatusConfirmed = MonitoredTxStatus("confirmed") // MonitoredTxStatusReorged is used when a monitored tx was already confirmed but // the L1 block where this tx was confirmed has been reorged, in this situation // the caller needs to review this information and wait until it gets confirmed // again in a future block MonitoredTxStatusReorged = MonitoredTxStatus("reorged") // MonitoredTxStatusDone means the tx was set by the owner as done MonitoredTxStatusDone = MonitoredTxStatus("done") )
Variables ¶
var ( // ErrNotFound when the object is not found ErrNotFound = errors.New("not found") // ErrAlreadyExists when the object already exists ErrAlreadyExists = errors.New("already exists") // ErrExecutionReverted returned when trying to get the revert message // but the call fails without revealing the revert reason ErrExecutionReverted = errors.New("execution reverted") )
Functions ¶
This section is empty.
Types ¶
type EthermanInterface ¶
type EthermanInterface interface { GetTx(ctx context.Context, txHash common.Hash) (*types.Transaction, bool, error) GetTxReceipt(ctx context.Context, txHash common.Hash) (*types.Receipt, error) WaitTxToBeMined(ctx context.Context, tx *types.Transaction, timeout time.Duration) (bool, error) SendTx(ctx context.Context, tx *types.Transaction) error PendingNonce(ctx context.Context, account common.Address) (uint64, error) SuggestedGasPrice(ctx context.Context) (*big.Int, error) EstimateGas(ctx context.Context, from common.Address, to *common.Address, value *big.Int, data []byte) (uint64, error) CheckTxWasMined(ctx context.Context, txHash common.Hash) (bool, *types.Receipt, error) SignTx(ctx context.Context, sender common.Address, tx *types.Transaction) (*types.Transaction, error) GetRevertMessage(ctx context.Context, tx *types.Transaction) (string, error) }
type MonitoredTx ¶
type MonitoredTx struct { // Owner is the common identifier among all the monitored tx to identify who // created this, it's a identification provided by the caller in order to be // used in the future to query the monitored tx by the Owner, this allows the // caller to be free of implementing a persistence layer to monitor the txs Owner string // ID is the tx identifier controller by the caller ID string // sender of the tx, used to identify which private key should be used to sing the tx From common.Address // receiver of the tx To *common.Address // Nonce used to create the tx Nonce uint64 // tx Value Value *big.Int // tx Data Data []byte // tx Gas Gas uint64 // tx gas offset GasOffset uint64 // tx gas price GasPrice *big.Int // Status of this monitoring Status MonitoredTxStatus // BlockNumber represents the block where the tx was identified // to be mined, it's the same as the block number found in the // tx receipt, this is used to control reorged monitored txs BlockNumber *big.Int // History represent all transaction hashes from // transactions created using this struct data and // sent to the network History map[common.Hash]bool // CreatedAt date time it was created CreatedAt time.Time // UpdatedAt last date time it was updated UpdatedAt time.Time // NumRetries number of times tx was sent to the network NumRetries uint64 }
MonitoredTx represents a set of information used to build tx plus information to monitor if the transactions was sent successfully
func (*MonitoredTx) AddHistory ¶
func (mTx *MonitoredTx) AddHistory(tx *types.Transaction) error
AddHistory adds a transaction to the monitoring history
func (*MonitoredTx) BlockNumberU64Ptr ¶
func (mTx *MonitoredTx) BlockNumberU64Ptr() *uint64
BlockNumberU64Ptr returns the current blockNumber as a uint64 pointer
func (*MonitoredTx) DataStringPtr ¶
func (mTx *MonitoredTx) DataStringPtr() *string
DataStringPtr returns the current data field as a string pointer
func (*MonitoredTx) HistoryHashSlice ¶
func (mTx *MonitoredTx) HistoryHashSlice() []common.Hash
HistoryHashSlice returns the current history field as a string slice
func (*MonitoredTx) HistoryStringSlice ¶
func (mTx *MonitoredTx) HistoryStringSlice() []string
HistoryStringSlice returns the current history field as a string slice
func (*MonitoredTx) ToStringPtr ¶
func (mTx *MonitoredTx) ToStringPtr() *string
ToStringPtr returns the current to field as a string pointer
func (MonitoredTx) Tx ¶
func (mTx MonitoredTx) Tx() *types.Transaction
Tx uses the current information to build a tx
func (*MonitoredTx) ValueU64Ptr ¶
func (mTx *MonitoredTx) ValueU64Ptr() *uint64
ValueU64Ptr returns the current value field as a uint64 pointer
type MonitoredTxResult ¶
type MonitoredTxResult struct { ID string Status MonitoredTxStatus Txs map[common.Hash]TxResult }
MonitoredTxResult represents the result of a execution of a monitored tx
type MonitoredTxStatus ¶
type MonitoredTxStatus string
MonitoredTxStatus represents the status of a monitored tx
func (MonitoredTxStatus) String ¶
func (s MonitoredTxStatus) String() string
String returns a string representation of the status
type StateInterface ¶
type StorageInterface ¶
type StorageInterface interface { Add(ctx context.Context, mTx MonitoredTx, dbTx pgx.Tx) error Get(ctx context.Context, owner, id string, dbTx pgx.Tx) (MonitoredTx, error) GetByStatus(ctx context.Context, owner *string, statuses []MonitoredTxStatus, dbTx pgx.Tx) ([]MonitoredTx, error) GetBySenderAndStatus(ctx context.Context, sender common.Address, statuses []MonitoredTxStatus, dbTx pgx.Tx) ([]MonitoredTx, error) Update(ctx context.Context, mTx MonitoredTx, dbTx pgx.Tx) error }