Documentation ¶
Index ¶
- Variables
- func DecodeVersionedNonce(versioned *big.Int) (*big.Int, *big.Int)
- func EncodeCrossDomainMessageV0(nonce *big.Int, sender common.Address, target common.Address, value *big.Int, ...) ([]byte, error)
- func EncodeCrossDomainMessageV1(nonce *big.Int, sender common.Address, target common.Address, value *big.Int, ...) ([]byte, error)
- func EncodeVersionedNonce(nonce, version *big.Int) *big.Int
- func HashCrossDomainMessageV0(nonce *big.Int, sender common.Address, target common.Address, value *big.Int, ...) (common.Hash, error)
- func HashCrossDomainMessageV1(nonce *big.Int, sender common.Address, target common.Address, value *big.Int, ...) (common.Hash, error)
- type CrossDomainMessage
- type Withdrawal
Constants ¶
This section is empty.
Variables ¶
var ( SentMessageEventABI = "SentMessage(address,address,bytes,uint256)" SentMessageEventABIHash = crypto.Keccak256Hash([]byte(SentMessageEventABI)) SentMessageExtension1EventABI = "SentMessage(address,uint256)" SentMessageExtension1EventABIHash = crypto.Keccak256Hash([]byte(SentMessageExtension1EventABI)) MessagePassedEventABI = "MessagePassed(uint256,address,address,uint256,uint256,bytes,bytes32)" MessagePassedEventABIHash = crypto.Keccak256Hash([]byte(MessagePassedEventABI)) )
Functions ¶
func DecodeVersionedNonce ¶
DecodeVersionedNonce will decode the version that is encoded in the nonce
func EncodeCrossDomainMessageV0 ¶
func EncodeCrossDomainMessageV0( nonce *big.Int, sender common.Address, target common.Address, value *big.Int, gasLimit *big.Int, data []byte, ) ([]byte, error)
EncodeCrossDomainMessageV0 is the same as V1 in Kroma.
func EncodeVersionedNonce ¶
EncodeVersionedNonce will encode the version into the nonce
Types ¶
type CrossDomainMessage ¶
type CrossDomainMessage struct { Nonce *big.Int `json:"nonce"` Sender common.Address `json:"sender"` Target common.Address `json:"target"` Value *big.Int `json:"value"` GasLimit *big.Int `json:"gasLimit"` Data []byte `json:"data"` }
CrossDomainMessage represents a cross domain message used by the CrossDomainMessenger. The version is encoded in the nonce.
func NewCrossDomainMessage ¶
func NewCrossDomainMessage( nonce *big.Int, sender, target common.Address, value, gasLimit *big.Int, data []byte, ) *CrossDomainMessage
NewCrossDomainMessage creates a CrossDomainMessage.
func (*CrossDomainMessage) Encode ¶
func (c *CrossDomainMessage) Encode() ([]byte, error)
Encode will encode a cross domain message based on the version.
func (*CrossDomainMessage) Hash ¶
func (c *CrossDomainMessage) Hash() (common.Hash, error)
Hash will compute the hash of the CrossDomainMessage
func (*CrossDomainMessage) HashV1 ¶
func (c *CrossDomainMessage) HashV1() (common.Hash, error)
HashV1 forces using the V0 hash even if its a legacy hash. This is used for the migration process.
func (*CrossDomainMessage) Version ¶
func (c *CrossDomainMessage) Version() uint64
Version will return the version of the CrossDomainMessage. It does this by looking at the first byte of the nonce.
type Withdrawal ¶
type Withdrawal struct { Nonce *big.Int `json:"nonce"` Sender *common.Address `json:"sender"` Target *common.Address `json:"target"` Value *big.Int `json:"value"` GasLimit *big.Int `json:"gasLimit"` Data hexutil.Bytes `json:"data"` }
Withdrawal represents a withdrawal transaction on L2
func NewWithdrawal ¶
func NewWithdrawal( nonce *big.Int, sender, target *common.Address, value, gasLimit *big.Int, data []byte, ) *Withdrawal
NewWithdrawal will create a Withdrawal
func (*Withdrawal) Decode ¶
func (w *Withdrawal) Decode(data []byte) error
Decode will deserialize a Withdrawal
func (*Withdrawal) Encode ¶
func (w *Withdrawal) Encode() ([]byte, error)
Encode will serialize the Withdrawal so that it is suitable for hashing.
func (*Withdrawal) Hash ¶
func (w *Withdrawal) Hash() (common.Hash, error)
Hash will hash the Withdrawal. This is the hash that is computed in the L2ToL1MessagePasser. The encoding is the same as the v1 cross domain message encoding without the 4byte selector prepended.
func (*Withdrawal) StorageSlot ¶
func (w *Withdrawal) StorageSlot() (common.Hash, error)
StorageSlot will compute the storage slot that will be set to true in the L2ToL1MessagePasser. The withdrawal proof sent to L1 will prove that this storage slot is set to "true".
func (*Withdrawal) WithdrawalTransaction ¶
func (w *Withdrawal) WithdrawalTransaction() bindings.TypesWithdrawalTransaction
WithdrawalTransaction will convert the Withdrawal to a type suitable for sending a transaction.