Documentation ¶
Index ¶
- type BigInt
- type Bytes
- type Bytes32
- type ChainSelector
- type CommitPluginCodec
- type CommitPluginReport
- type ExecutePluginCodec
- type ExecutePluginReport
- type ExecutePluginReportSingleChain
- type GasPriceChain
- type MerkleRootChain
- type Message
- type MessageHasher
- type PriceUpdates
- type RampMessageHeader
- type RampTokenAmount
- type SeqNum
- type SeqNumRange
- type TokenPrice
Constants ¶
This section is empty.
Variables ¶
This section is empty.
Functions ¶
This section is empty.
Types ¶
type Bytes ¶
type Bytes []byte
func NewBytesFromString ¶
func (Bytes) MarshalJSON ¶
func (*Bytes) UnmarshalJSON ¶
type Bytes32 ¶
type Bytes32 [32]byte
func NewBytes32FromString ¶
func (Bytes32) MarshalJSON ¶
func (*Bytes32) UnmarshalJSON ¶
type ChainSelector ¶
type ChainSelector uint64
func (ChainSelector) String ¶
func (c ChainSelector) String() string
type CommitPluginCodec ¶
type CommitPluginCodec interface { Encode(context.Context, CommitPluginReport) ([]byte, error) Decode(context.Context, []byte) (CommitPluginReport, error) }
type CommitPluginReport ¶
type CommitPluginReport struct { MerkleRoots []MerkleRootChain `json:"merkleRoots"` PriceUpdates PriceUpdates `json:"priceUpdates"` }
func NewCommitPluginReport ¶
func NewCommitPluginReport(merkleRoots []MerkleRootChain, tokenPriceUpdates []TokenPrice, gasPriceUpdate []GasPriceChain) CommitPluginReport
func (CommitPluginReport) IsEmpty ¶
func (r CommitPluginReport) IsEmpty() bool
IsEmpty returns true if the CommitPluginReport is empty
type ExecutePluginCodec ¶
type ExecutePluginCodec interface { Encode(context.Context, ExecutePluginReport) ([]byte, error) Decode(context.Context, []byte) (ExecutePluginReport, error) }
type ExecutePluginReport ¶
type ExecutePluginReport struct {
ChainReports []ExecutePluginReportSingleChain `json:"chainReports"`
}
type ExecutePluginReportSingleChain ¶
type ExecutePluginReportSingleChain struct { SourceChainSelector ChainSelector `json:"sourceChainSelector"` Messages []Message `json:"messages"` OffchainTokenData [][][]byte `json:"offchainTokenData"` Proofs []Bytes32 `json:"proofs"` ProofFlagBits BigInt `json:"proofFlagBits"` }
type GasPriceChain ¶
type GasPriceChain struct { GasPrice BigInt `json:"gasPrice"` ChainSel ChainSelector `json:"chainSel"` }
func NewGasPriceChain ¶
func NewGasPriceChain(gasPrice *big.Int, chainSel ChainSelector) GasPriceChain
type MerkleRootChain ¶
type MerkleRootChain struct { ChainSel ChainSelector `json:"chain"` SeqNumsRange SeqNumRange `json:"seqNumsRange"` MerkleRoot Bytes32 `json:"merkleRoot"` }
func NewMerkleRootChain ¶
func NewMerkleRootChain( chainSel ChainSelector, seqNumsRange SeqNumRange, merkleRoot Bytes32, ) MerkleRootChain
type Message ¶
type Message struct { // Header is the family-agnostic header for OnRamp and OffRamp messages. // This is always set on all CCIP messages. Header RampMessageHeader `json:"header"` // Sender address on the source chain. // i.e if the source chain is EVM, this is an abi-encoded EVM address. Sender Bytes `json:"sender"` // Data is the arbitrary data payload supplied by the message sender. Data Bytes `json:"data"` // Receiver is the receiver address on the destination chain. // This is encoded in the destination chain family specific encoding. // i.e if the destination is EVM, this is abi.encode(receiver). Receiver Bytes `json:"receiver"` // ExtraArgs is destination-chain specific extra args, such as the gasLimit for EVM chains. ExtraArgs Bytes `json:"extraArgs"` // FeeToken is the fee token address. // i.e if the source chain is EVM, len(FeeToken) == 20 (i.e, is not abi-encoded). FeeToken Bytes `json:"feeToken"` // FeeTokenAmount is the amount of fee tokens paid. FeeTokenAmount BigInt `json:"feeTokenAmount"` // TokenAmounts is the array of tokens and amounts to transfer. TokenAmounts []RampTokenAmount `json:"tokenAmounts"` }
Message is the generic Any2Any message type for CCIP messages. It represents, in particular, a message emitted by a CCIP onramp. The message is expected to be consumed by a CCIP offramp after translating it into the appropriate format for the destination chain.
type MessageHasher ¶
type PriceUpdates ¶
type PriceUpdates struct { TokenPriceUpdates []TokenPrice `json:"tokenPriceUpdates"` GasPriceUpdates []GasPriceChain `json:"gasPriceUpdates"` }
type RampMessageHeader ¶
type RampMessageHeader struct { // MessageID is a unique identifier for the message, it should be unique across all chains. // It is generated on the chain that the CCIP send is requested (i.e. the source chain of a message). MessageID Bytes32 `json:"messageId"` // SourceChainSelector is the chain selector of the chain that the message originated from. SourceChainSelector ChainSelector `json:"sourceChainSelector,string"` // DestChainSelector is the chain selector of the chain that the message is destined for. DestChainSelector ChainSelector `json:"destChainSelector,string"` // SequenceNumber is an auto-incrementing sequence number for the message. // Not unique across lanes. SequenceNumber SeqNum `json:"seqNum,string"` // Nonce is the nonce for this lane for this sender, not unique across senders/lanes Nonce uint64 `json:"nonce"` // MsgHash is the hash of all the message fields. // NOTE: The field is expected to be empty, and will be populated by the plugin using the MsgHasher interface. MsgHash Bytes32 `json:"msgHash"` // populated // OnRamp is the address of the onramp that sent the message. // NOTE: This is populated by the ccip reader. Not emitted explicitly onchain. OnRamp Bytes `json:"onRamp"` }
RampMessageHeader is the family-agnostic header for OnRamp and OffRamp messages. The MessageID is not expected to match MsgHash, since it may originate from a different ramp family.
type RampTokenAmount ¶
type RampTokenAmount struct { // SourcePoolAddress is the source pool address, encoded according to source family native encoding scheme. // This value is trusted as it was obtained through the onRamp. It can be relied upon by the destination // pool to validate the source pool. SourcePoolAddress Bytes `json:"sourcePoolAddress"` // DestTokenAddress is the address of the destination token, abi encoded in the case of EVM chains. // This value is UNTRUSTED as any pool owner can return whatever value they want. DestTokenAddress Bytes `json:"destTokenAddress"` // ExtraData is optional pool data to be transferred to the destination chain. Be default this is capped at // CCIP_LOCK_OR_BURN_V1_RET_BYTES bytes. If more data is required, the TokenTransferFeeConfig.destBytesOverhead // has to be set for the specific token. ExtraData Bytes `json:"extraData"` // Amount is the amount of tokens to be transferred. Amount BigInt `json:"amount"` }
RampTokenAmount represents the family-agnostic token amounts used for both OnRamp & OffRamp messages.
type SeqNumRange ¶
type SeqNumRange [2]SeqNum
SeqNumRange defines an inclusive range of sequence numbers.
func NewSeqNumRange ¶
func NewSeqNumRange(start, end SeqNum) SeqNumRange
func (SeqNumRange) Contains ¶
func (s SeqNumRange) Contains(seq SeqNum) bool
Contains returns true if the range contains the given sequence number.
func (SeqNumRange) End ¶
func (s SeqNumRange) End() SeqNum
func (SeqNumRange) Overlaps ¶
func (s SeqNumRange) Overlaps(other SeqNumRange) bool
Overlaps returns true if the two ranges overlap.
func (*SeqNumRange) SetEnd ¶
func (s *SeqNumRange) SetEnd(v SeqNum)
func (*SeqNumRange) SetStart ¶
func (s *SeqNumRange) SetStart(v SeqNum)
func (SeqNumRange) Start ¶
func (s SeqNumRange) Start() SeqNum
func (SeqNumRange) String ¶
func (s SeqNumRange) String() string
type TokenPrice ¶
func NewTokenPrice ¶
func NewTokenPrice(tokenID types.Account, price *big.Int) TokenPrice