Documentation
¶
Index ¶
- Variables
- func VerifyFinalizeRegulatedTokenOwnership(deps dependency.AptosDeps, tokenCodeObjectAddress aptos.AccountAddress, ...) error
- type AcceptTokenAdminsSeqInput
- type AcceptTokenOwnershipsSeqInput
- type AcceptTokenPoolOwnershipsSeqInput
- type AptosCurseUncurseInput
- type ConnectTokenPoolSeqInput
- type DeployCCIPSeqInput
- type DeployCCIPSeqOutput
- type DeployCurseMCMSSeqInput
- type DeployCurseMCMSSeqOutput
- type DeployMCMSSeqOutput
- type DeployRegulatedTokenSeqInput
- type DeployRegulatedTokenSeqOutput
- type DeployTokenFaucetSeqInput
- type DeployTokenPoolSeqInput
- type DeployTokenPoolSeqOutput
- type DeployTokenSeqInput
- type DeployTokenSeqOutput
- type DynamicSeqInput
- type ExecuteTokenOwnershipTransfersSeqInput
- type ExecuteTokenPoolOwnershipTransfersSeqInput
- type RemotePool
- type TokenAcceptInput
- type TokenPoolAcceptInput
- type TokenPoolTransferInput
- type TokenTransferInput
- type TransferTokenAdminsSeqInput
- type TransferTokenOwnershipsSeqInput
- type TransferTokenPoolOwnershipsSeqInput
Constants ¶
This section is empty.
Variables ¶
var AcceptTokenAdminsSequence = operations.NewSequence( "accept-token-admins", operation.Version1_0_0, "Accepts the admin role of one or multiple pending admin transfers on regulated token instances", acceptTokenAdminsSequence, )
var AcceptTokenOwnershipsSequence = operations.NewSequence( "accept-token-ownerships", operation.Version1_0_0, "Accepts the ownership of one or multiple managed/regulated token instances", acceptTokenOwnershipsSequence, )
var AcceptTokenPoolOwnershipsSequence = operations.NewSequence( "accept-token-pool-ownerships", operation.Version1_0_0, "Accept ownership of one or multiple managed/BnM/LnR token pool instances", acceptTokenPoolOwnershipsSequence, )
var AptosCurseSequence = cldf_ops.NewSequence( "aptos-curse-sequence", operation.Version1_0_0, "Curse sequence for Aptos", func(b cldf_ops.Bundle, chains cldf_chain.BlockChains, in AptosCurseUncurseInput) (output sequences.OnChainOutput, err error) { chain, ok := chains.AptosChains()[in.ChainSelector] if !ok { return sequences.OnChainOutput{}, fmt.Errorf("chain with selector %d not found in environment", in.ChainSelector) } subjectBytes := make([][]byte, len(in.Subjects)) for i, subject := range in.Subjects { subjectBytes[i] = subject[:] } curseInput := rmnops.CurseMultipleInput{ CCIPAddress: in.CCIPAddress, Subjects: subjectBytes, } deps := dependency.AptosDeps{ AptosChain: chain, } report, err := cldf_ops.ExecuteOperation(b, rmnops.CurseMultipleOp, deps, curseInput) if err != nil { return sequences.OnChainOutput{}, fmt.Errorf("failed to execute curse operation on Aptos chain %d: %w", chain.Selector, err) } batchOperation := mcmstypes.BatchOperation{ ChainSelector: mcmstypes.ChainSelector(chain.Selector), Transactions: []mcmstypes.Transaction{report.Output}, } return sequences.OnChainOutput{ BatchOps: []mcmstypes.BatchOperation{batchOperation}, }, nil }, )
var AptosUncurseSequence = cldf_ops.NewSequence( "aptos-uncurse-sequence", operation.Version1_0_0, "Uncurse sequence for Aptos", func(b cldf_ops.Bundle, chains cldf_chain.BlockChains, in AptosCurseUncurseInput) (output sequences.OnChainOutput, err error) { chain, ok := chains.AptosChains()[in.ChainSelector] if !ok { return sequences.OnChainOutput{}, fmt.Errorf("chain with selector %d not found in environment", in.ChainSelector) } subjectBytes := make([][]byte, len(in.Subjects)) for i, subject := range in.Subjects { subjectBytes[i] = subject[:] } uncurseInput := rmnops.UncurseMultipleInput{ CCIPAddress: in.CCIPAddress, Subjects: subjectBytes, } deps := dependency.AptosDeps{ AptosChain: chain, } report, err := cldf_ops.ExecuteOperation(b, rmnops.UncurseMultipleOp, deps, uncurseInput) if err != nil { return sequences.OnChainOutput{}, fmt.Errorf("failed to execute uncurse operation on Aptos chain %d: %w", chain.Selector, err) } batchOperation := mcmstypes.BatchOperation{ ChainSelector: mcmstypes.ChainSelector(chain.Selector), Transactions: []mcmstypes.Transaction{report.Output}, } return sequences.OnChainOutput{ BatchOps: []mcmstypes.BatchOperation{batchOperation}, }, nil }, )
var ConnectTokenPoolSequence = operations.NewSequence( "connect-aptos-evm-token-pools", operation.Version1_0_0, "Connects EVM<>Aptos lanes token pools", connectTokenPoolSequence, )
var DeployAptosTokenPoolSequence = operations.NewSequence( "deploy-aptos-token-pool", operation.Version1_0_0, "Deploys token and token pool and configures", deployAptosTokenPoolSequence, )
DeployAptosTokenPoolSequence deploys token pool to the same address as Token Object Address
var DeployAptosTokenSequence = operations.NewSequence( "deploy-aptos-token", operation.Version1_0_0, "Deploys token and configures", deployAptosTokenSequence, )
var DeployCCIPSequence = operations.NewSequence( "deploy-aptos-ccip-sequence", operation.Version1_0_0, "Deploy Aptos CCIP contracts and initialize them", deployCCIPSequence, )
var DeployCurseMCMSSequence = operations.NewSequence( "deploy-aptos-curse-mcms-sequence", operation.Version1_0_0, "Deploy and configure Aptos CurseMCMS contract", deployCurseMCMSSequence, )
var DeployMCMSSequence = operations.NewSequence( "deploy-aptos-mcms-sequence", operation.Version1_0_0, "Deploy Aptos MCMS contract and configure it", deployMCMSSequence, )
var DeployRegulatedTokenSequence = operations.NewSequence( "deploy-regulated-token-aptos-sequence", operation.Version1_0_0, "Deploy regulated token directly (regulated_token cannot be deployed via MCMS due to DFA re-entrancy) then build MCMS accept_ownership + accept_admin batch", deployRegulatedTokenSequence, )
var DeployTokenFaucetSequence = operations.NewSequence( "deploy-aptos-token-faucet", operation.Version1_0_0, "Deploys a token faucet onto an existing manage_token instance", deployAptosTokenFaucetSequence, )
var DynamicSequence = operations.NewSequence( "aptos-dynamic-sequence", operation.Version1_0_0, "Allows operations to be retrieved and executed at runtime", dynamicSequence, )
DynamicSequence allows operations to be retrieved and executed at runtime
var ExecuteTokenOwnershipTransfersSequence = operations.NewSequence( "execute-token-ownership-transfers", operation.Version1_0_0, "Executes the pending ownership transfer(s) of one or multiple managed/regulated token instances", executeTokenOwnershipTransfersSequence, )
var ExecuteTokenPoolOwnershipTransfersSequence = operations.NewSequence( "execute-token-pool-ownership-transfers", operation.Version1_0_0, "Executed the ownership transfer of one or multiple managed/BnM/LnR token pool instances", executeTokenPoolOwnershipTransfersSequence, )
var FinalizeRegulatedTokenOwnershipSequence = operations.NewSequence( "finalize-regulated-token-ownership-sequence", operation.Version1_0_0, "Run regulated_token::execute_ownership_transfer (EOA) when a pending transfer exists", finalizeRegulatedTokenOwnershipSequence, )
FinalizeRegulatedTokenOwnershipSequence runs regulated_token::execute_ownership_transfer (EOA) to finalize the 3-step ownable handoff after MCMS has accepted ownership. The full validation (transfer is to MCMS, accepted, deployer is current owner) lives in VerifyFinalizeRegulatedTokenOwnership and must be invoked by the calling changeset's VerifyPreconditions;
var MigrateOnRampDestChainConfigsToV2Sequence = operations.NewSequence( "migrate-onramp-dest-chain-configs-to-v2-sequence", operation.Version1_0_0, "Migrates OnRamp destination chain configs from V1 to V2", migrateOnRampDestChainConfigsToV2Sequence, )
var TransferTokenAdminsSequence = operations.NewSequence( "transfer-token-admins", operation.Version1_0_0, "Transfers the admin role of one or multiple regulated token instances", transferTokenAdminsSequence, )
var TransferTokenOwnershipsSequence = operations.NewSequence( "transfer-token-ownerships", operation.Version1_0_0, "Transfers the ownership of one or multiple managed/regulated token instances", transferTokenOwnershipsSequence, )
var TransferTokenPoolOwnershipsSequence = operations.NewSequence( "transfer-token-pool-ownerships", operation.Version1_0_0, "Initiates the ownership transfer of one or multiple managed/BnM/LnR token pool instances to a new owner", transferTokenPoolOwnershipSequence, )
var UpgradeCCIPSequence = operations.NewSequence( "upgrade-aptos-ccip-sequence", operation.Version1_0_0, "Upgrade Aptos CCIP contracts", upgradeCCIPSequence, )
Functions ¶
func VerifyFinalizeRegulatedTokenOwnership ¶
func VerifyFinalizeRegulatedTokenOwnership( deps dependency.AptosDeps, tokenCodeObjectAddress aptos.AccountAddress, mcmsAddress aptos.AccountAddress, ) error
VerifyFinalizeRegulatedTokenOwnership validates that the regulated token is in a state where the deployer EOA can run execute_ownership_transfer to finalize the 3-step handoff to MCMS.
Types ¶
type AcceptTokenAdminsSeqInput ¶
type AcceptTokenAdminsSeqInput struct {
Accepts []TokenAcceptInput
}
type AcceptTokenOwnershipsSeqInput ¶
type AcceptTokenOwnershipsSeqInput struct {
Accepts []TokenAcceptInput
}
type AcceptTokenPoolOwnershipsSeqInput ¶
type AcceptTokenPoolOwnershipsSeqInput struct {
Accepts []TokenPoolAcceptInput
}
type AptosCurseUncurseInput ¶
type AptosCurseUncurseInput struct {
CCIPAddress aptos.AccountAddress
ChainSelector uint64
Subjects []fastcurse.Subject
}
type ConnectTokenPoolSeqInput ¶
type ConnectTokenPoolSeqInput struct {
TokenPoolAddress aptos.AccountAddress
TokenPoolType cldf.ContractType
RemotePools map[uint64]RemotePool
RemotePoolsToRemove []uint64 // To re-set a pool also add its address on the removing list
TokenAddress aptos.AccountAddress
TokenTransferFeeByRemoteChainConfig map[uint64]fee_quoter.TokenTransferFeeConfig
}
Connect Token Pool sequence input
type DeployCCIPSeqInput ¶
type DeployCCIPSeqInput struct {
MCMSAddress aptos.AccountAddress
CCIPConfig config.ChainContractParams
LinkTokenAddress aptos.AccountAddress
}
type DeployCCIPSeqOutput ¶
type DeployCCIPSeqOutput struct {
CCIPAddress aptos.AccountAddress
MCMSOperations []mcmstypes.BatchOperation
}
type DeployCurseMCMSSeqInput ¶
type DeployCurseMCMSSeqInput struct {
MCMSAddress aptos.AccountAddress
CCIPAddress aptos.AccountAddress
CurseMCMS cldfproposalutils.MCMSWithTimelockConfig
}
DeployCurseMCMSSeqInput holds the configuration for deploying CurseMCMS.
type DeployCurseMCMSSeqOutput ¶
type DeployCurseMCMSSeqOutput struct {
CurseMCMSAddress aptos.AccountAddress
CurseMCMSOperation mcmstypes.BatchOperation
}
DeployCurseMCMSSeqOutput holds the deployed address and a CurseMCMS self-governance batch (AcceptOwnership + SetMinDelay) that must be submitted as a proposal targeting the CurseMCMS contract.
type DeployMCMSSeqOutput ¶
type DeployMCMSSeqOutput struct {
MCMSAddress aptos.AccountAddress
MCMSOperation mcmstypes.BatchOperation
}
Deploy MCMS Sequence
type DeployRegulatedTokenSeqInput ¶
type DeployRegulatedTokenSeqInput struct {
MCMSAddress aptos.AccountAddress
TokenParams config.TokenParams
TokenMint *config.TokenMint
RegistrarPreregister bool
}
DeployRegulatedTokenSeqInput is input for DeployRegulatedTokenSequence.
type DeployRegulatedTokenSeqOutput ¶
type DeployRegulatedTokenSeqOutput struct {
TokenCodeObjectAddress aptos.AccountAddress
TokenMetadataAddress aptos.AccountAddress
MCMSOperations []mcmstypes.BatchOperation
}
DeployRegulatedTokenSeqOutput contains token addresses and MCMS batch operations (accept_ownership + accept_admin) to be wrapped in a timelock proposal.
type DeployTokenFaucetSeqInput ¶
type DeployTokenFaucetSeqInput struct {
MCMSAddress aptos.AccountAddress
TokenCodeObjAddress aptos.AccountAddress
}
type DeployTokenPoolSeqInput ¶
type DeployTokenPoolSeqInput struct {
TokenCodeObjAddress aptos.AccountAddress
TokenAddress aptos.AccountAddress
TokenOwnerAddress aptos.AccountAddress
PoolType cldf.ContractType
IsTokenOwnedByMCMS bool
}
Deploy Token Pool sequence input
type DeployTokenPoolSeqOutput ¶
type DeployTokenPoolSeqOutput struct {
TokenPoolAddress aptos.AccountAddress
MCMSOps []mcmstypes.BatchOperation
}
type DeployTokenSeqInput ¶
type DeployTokenSeqInput struct {
MCMSAddress aptos.AccountAddress
TokenParams config.TokenParams
TokenMint *config.TokenMint
}
type DeployTokenSeqOutput ¶
type DeployTokenSeqOutput struct {
TokenAddress aptos.AccountAddress
TokenCodeObjAddress aptos.AccountAddress
TokenOwnerAddress aptos.AccountAddress
MCMSOperations []mcmstypes.BatchOperation
}
type DynamicSeqInput ¶
type DynamicSeqInput struct {
Defs []operations.Definition
Inputs []any // Each element should be the corresponding input type for its operation
ChainSelector uint64
}
type ExecuteTokenOwnershipTransfersSeqInput ¶
type ExecuteTokenOwnershipTransfersSeqInput struct {
Transfers []TokenTransferInput
}
type ExecuteTokenPoolOwnershipTransfersSeqInput ¶
type ExecuteTokenPoolOwnershipTransfersSeqInput struct {
Transfers []TokenPoolTransferInput
}
type RemotePool ¶
type RemotePool struct {
RemotePoolAddress []byte
RemoteTokenAddress []byte
config.RateLimiterConfig
}
type TokenAcceptInput ¶
type TokenAcceptInput struct {
TokenCodeObjAddress aptos.AccountAddress
TokenType deployment.ContractType
}
type TokenPoolAcceptInput ¶
type TokenPoolAcceptInput struct {
TokenPoolAddress aptos.AccountAddress
TokenPoolType cldf.ContractType
}
type TokenPoolTransferInput ¶
type TokenPoolTransferInput struct {
TokenPoolAddress aptos.AccountAddress
To aptos.AccountAddress
TokenPoolType cldf.ContractType
}
type TokenTransferInput ¶
type TokenTransferInput struct {
TokenCodeObjAddress aptos.AccountAddress
TokenType deployment.ContractType
To aptos.AccountAddress
}
type TransferTokenAdminsSeqInput ¶
type TransferTokenAdminsSeqInput struct {
Transfers []TokenTransferInput
}
type TransferTokenOwnershipsSeqInput ¶
type TransferTokenOwnershipsSeqInput struct {
Transfers []TokenTransferInput
}
type TransferTokenPoolOwnershipsSeqInput ¶
type TransferTokenPoolOwnershipsSeqInput struct {
Transfers []TokenPoolTransferInput
}