Skip to content

Commit 7e7a3bf

Browse files
committed
format
1 parent a914a2b commit 7e7a3bf

File tree

7 files changed

+0
-24
lines changed

7 files changed

+0
-24
lines changed

src/content/ccip/api-reference/aptos/v1.6.0/receiver.mdx

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -49,7 +49,6 @@ public fun ccip_receive<T: key>(
4949
1. **Module Registration**: Your module must be registered as a valid receiver by calling `receiver_registry::register_receiver`. This is typically done once during your module's initialization and requires defining a unique, empty `ProofType` struct.
5050

5151
2. **Account Type**:
52-
5352
- If your module will handle tokens, it **must** be deployed to a **Resource Account**.
5453
- If your module is data-only, it can be deployed to a regular user account or a code object account.
5554

src/content/ccip/concepts/architecture/onchain/aptos/components.mdx

Lines changed: 0 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -26,17 +26,14 @@ This section provides more detail on the Onchain components for Aptos.
2626
**CCIP messages can be sent in any of the following combinations (terminology adapts to the destination blockchain):**
2727

2828
- **User Account → User Account / EOA / Wallet**
29-
3029
- **Supported Message Type**: Token-only transfers.
3130
- **Reason**: The recipient is a simple user account that does not have executable code. While a data payload can be sent in the CCIP message, the recipient account has no way to act upon or process that data.
3231

3332
- **User Account → Module / Smart Contract / Program**
34-
3533
- **Supported Message Type**: Token transfers, arbitrary data, and programmable token transfers (data + tokens).
3634
- **Reason**: The receiving module is designed with a `ccip_receive` function that can be programmed to handle incoming tokens, process arbitrary data, or both simultaneously according to your application's logic.
3735

3836
- **Module / Smart Contract / Program → User Account / EOA / Wallet**
39-
4037
- **Supported Message Type**: Token-only transfers.
4138
- **Reason**: Similar to the first case, the destination is a simple user account that cannot execute logic to process an incoming data payload.
4239

@@ -78,21 +75,17 @@ The `ccip_onramp::onramp` module is an internal CCIP module that handles the cor
7875
When the Router forwards a `ccip_send` request, the OnRamp performs the following actions:
7976

8077
- **Validations**
81-
8278
- Ensures that the destination chain is not cursed.
8379
- Verifies that the sender is on the allowlist if one is enabled for the destination lane.
8480

8581
- **Fee Collection**
86-
8782
- Withdraws the pre-calculated fee amount from the sender's specified `fee_token_store`, defaulting to the user's primary store if `0x0` is provided.
8883

8984
- **Token Handling**
90-
9185
- If the message involves token transfers, it initiates a secure callback pattern by calling the `Token Admin Dispatcher`.
9286
- The dispatcher uses the `Token Admin Registry` to store the message context (sender, receiver, etc.) before invoking the correct `Token Pool` to `lock_or_burn` the assets.
9387

9488
- **Nonce Management**
95-
9689
- For ordered messages, it calls the `Nonce Manager` to retrieve and increment the sender's nonce for that destination.
9790

9891
- **Event Emission**
@@ -116,7 +109,6 @@ During the **Commit Phase**, the following steps occur:
116109
The Committing DON calls the `commit` function on the `OffRamp` with a report that includes Merkle roots and price updates.
117110

118111
1. **Validation**:
119-
120112
- The `OffRamp` verifies the DON's signatures.
121113
- It verifies any "blessed" Merkle roots.
122114

src/content/ccip/concepts/architecture/onchain/aptos/overview.mdx

Lines changed: 0 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -66,9 +66,7 @@ On the Aptos destination blockchain, an onchain module called the `OffRamp` rece
6666
This outlines the process when initiating a CCIP transaction from the Aptos blockchain.
6767

6868
1. **Preparation**
69-
7069
- The Sender (a user's wallet or another module) prepares the information for a CCIP Message, including:
71-
7270
- **Receiver**: A byte array representing the destination address (e.g., a 20-byte EVM address).
7371
- **Data payload**: Arbitrary bytes to be delivered to the receiver.
7472
- **Tokens and amounts** (if applicable).
@@ -80,13 +78,10 @@ This outlines the process when initiating a CCIP transaction from the Aptos bloc
8078
- The Sender prepares to call the `ccip_router::router::ccip_send` entry function. Unlike EVM and SVM chains, a separate token approve transaction is not required. The user's signature on the `ccip_send` transaction itself authorizes the CCIP modules to withdraw the necessary tokens and fees from the sender's account.
8179

8280
1. **Sending**
83-
8481
- When the `ccip_send` transaction is executed:
85-
8682
- The `Router` module, as the entry point, performs initial validations and forwards the call to the appropriate `OnRamp` module.
8783

8884
- The `OnRamp` module executes the core logic:
89-
9085
- Verifications: It ensures that the destination chain is not cursed by checking with the `RMN Remote` module.
9186
- Fee Collection: It withdraws the required fee from the sender's fungible asset store. If the fee_token_store address is specified as 0x0, the module automatically resolves to the primary_fungible_store corresponding to the sender's account and the chosen fee_token.
9287
- Sequence Management: It increments the sequence number for the given destination chain. If required, it also interacts with the `Nonce Manager` to handle ordered message nonces.
@@ -98,27 +93,23 @@ This outlines the process when initiating a CCIP transaction from the Aptos bloc
9893
- Event Emission: A unique messageId is generated, and the `OnRamp` emits a `CCIPMessageSent` event containing the full, sequenced message details.
9994

10095
1. **Initial Offchain Processing**
101-
10296
- The CCIP Committing DON monitors the Aptos blockchain for the `CCIPMessageSent` event and begins processing the message offchain to prepare it for commitment on the destination chain.
10397

10498
### Destination Blockchain (Aptos)
10599

106100
This outlines the process when Aptos is the receiving chain for a CCIP message.
107101

108102
1. **Commit Phase**
109-
110103
- The final OCR report from the Committing DON, containing Merkle roots of batched messages and any price updates, is submitted to the `OffRamp` module's `commit` function.
111104
- The `OffRamp` verifies the DON's signatures.
112105
- If the report includes blessed Merkle roots, the `OffRamp` verifies the RMN signatures.
113106
- If the report contains price updates, the `OffRamp` calls the `Fee Quoter` module to update its onchain token and gas price data.
114107
- The `OffRamp` stores the verified Merkle root and emits a `CommitReportAccepted` event, confirming the messages are ready for execution.
115108

116109
1. **Secondary Offchain Processing**
117-
118110
- The CCIP Executing DON monitors for the `CommitReportAccepted` event. For each message in the committed batch, the DON computes its specific Merkle proof. Each message is then submitted in a separate transaction to the Aptos blockchain.
119111

120112
1. **Execution Phase**
121-
122113
- When the Executing DON calls the `OffRamp` module's `execute` function, the `OffRamp` first verifies the message's Merkle proof against a stored Merkle root. It performs several validations, including checking the `RMN Remote` module and ensuring the message has not already been executed.
123114
- If the message includes tokens, the `OffRamp` calls the `Token Admin Dispatcher`. This dispatcher follows a secure callback pattern using the `Token Admin Registry`: it initiates a `release_or_mint` operation, which invokes the correct Token Pool. The pool then calls the registry to get its input data, mints or releases the tokens, and sets the output. The released tokens are then deposited into the receiver's primary fungible store.
124115
- If the message contains arbitrary data, the `OffRamp` calls the `Receiver Dispatcher`. The dispatcher does not pass the message data directly. Instead, it securely stores the payload in the `Receiver Registry` and then triggers the `ccip_receive` entry function of the registered receiver module. The receiver module, in turn, must call receiver_registry::`get_receiver_input` within its own execution to securely fetch the message payload it is meant to process.

src/content/ccip/concepts/architecture/onchain/aptos/upgradability.mdx

Lines changed: 0 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -23,7 +23,6 @@ On the Aptos blockchain, upgradability primarily happens in two ways:
2323
Many CCIP modules (like `onramp`, `offramp`, `fee_quoter`) expose public entry functions that allow authorized accounts to adjust operational parameters. These functions modify onchain data stored in resources without requiring a new deployment.
2424

2525
Examples include:
26-
2726
- Enabling support for a new destination chain.
2827
- Updating fee parameters.
2928

@@ -34,7 +33,6 @@ On the Aptos blockchain, upgradability primarily happens in two ways:
3433
Aptos allows for module code to be upgraded in-place. This means a code upgrade for the CCIP protocol involves publishing the new, updated module bytecode to the existing Object address.
3534

3635
Because the Object address remains unchanged:
37-
3836
- External modules and off-chain clients that interact with CCIP do not need to update their stored addresses.
3937
- They seamlessly begin interacting with the new code after the upgrade is published.
4038

src/content/ccip/tutorials/aptos/destination/prerequisites.mdx

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -102,7 +102,6 @@ By defining these addresses in the `Move.toml` file, the example modules can int
102102
## Wallets
103103

104104
- **EVM Wallet and Private Key**: To send transactions from an EVM chain (like Ethereum Sepolia), you need a wallet and its private key.
105-
106105
- Set up a wallet like [MetaMask](https://metamask.io/).
107106
- You will need to export the private key for the account you intend to send _from_. Follow the [official MetaMask guide](https://support.metamask.io/configure/accounts/how-to-export-an-accounts-private-key/) to obtain your private key and add it to the `.env` file as shown below.
108107

src/content/ccip/tutorials/aptos/destination/programmatic-token-transfers.mdx

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -185,7 +185,6 @@ Execution state for CCIP message <YOUR_CCIP_MESSAGE_ID> is SUCCESS
185185
Once execution is successful, you need to verify that your module correctly forwarded the tokens.
186186

187187
- **Check the Event**: You can manually verify that your module emitted the correct `ForwardedTokens` event by using the [Aptos Explorer](https://explorer.aptoslabs.com/?network=testnet).
188-
189188
1. Search for your receiver module's address (the one you provided with `--aptosReceiver`).
190189
1. In the `Transactions` tab, find the latest transaction that calls the `offramp::execute` function.
191190
1. Click on the transaction and navigate to the `Events` tab.

src/content/ccip/tutorials/aptos/destination/token-transfers.mdx

Lines changed: 0 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -108,12 +108,10 @@ Copy the `account` value from the output and **prepend `0x` to it** and note it
108108
<Aside type="caution" title="Critical Settings">
109109

110110
- **Required Parameters**
111-
112111
- **`receiver`**: **MUST** be the recipient's 32-byte Aptos wallet address
113112
- **`data`**: **MUST** be empty (`0x`) for token-only transfers
114113

115114
- **Aptos Destination Configuration**
116-
117115
- **`gasLimit`**: Set to `0` (no module execution required)
118116
- **`allowOutOfOrderExecution`**: **MUST** be `true` for Aptos destinations
119117

0 commit comments

Comments
 (0)