deposit_for_burn() (full runnable script can be found in
the aptos-cctp repository):
Typescript
receive_message() (full runnable script can be found in the
aptos-cctp repository):
Typescript
WHAT’S NEXT
Documentation Index
Fetch the complete documentation index at: /llms.txt
Use this file to discover all available pages before exploring further.
Explore this tutorial for transferring USDC between Aptos testnet and Base Sepolia Testnet via CCTP V1
deposit_for_burn() (full runnable script can be found in
the aptos-cctp repository):
// Aptos Testnet Stablecoin object
const BURN_TOKEN =
"0x69091fbab5f7d635ee7ac5098cf0c1efbe31d68fec0f2cd565e8d168daf52832";
const aptosClient = new Aptos(new AptosConfig({ network: Network.TESTNET }));
const userAccount = Account.fromPrivateKey({
privateKey: new Ed25519PrivateKey(APTOS_PRIVATE_KEY),
});
// Create a transaction with deposit for burn script
const buffer = readFileSync(
"typescript/example/precompiled-move-scripts/testnet/deposit_for_burn.mv",
);
const bytecode = Uint8Array.from(buffer);
const amount = new U64(1);
const destinationDomain = new U32(6);
const burnToken = AccountAddress.from(BURN_TOKEN);
const mintRecipient = AccountAddress.from(evmSigner.address);
const functionArguments: Array<any> = [
amount,
destinationDomain,
mintRecipient,
burnToken,
];
const transaction = await aptosClient.transaction.build.simple({
sender: userAccount.accountAddress,
data: {
bytecode,
functionArguments,
},
});
const pendingTxn = await aptosClient.signAndSubmitTransaction({
signer: userAccount,
transaction,
});
const depositForBurnTx = await aptosClient.waitForTransaction({
transactionHash: pendingTxn.hash,
});
console.log(
`Deposit for burn transaction completed successfully: https://explorer.aptoslabs.com/txn/${depositForBurnTx.hash}`,
);
// Fetch the event data from the transaction
const messageSentEvent = (
depositForBurnTx as UserTransactionResponse
).events.find(
(e: any) =>
e.type ===
`${MESSAGE_TRANSMITTER_PACKAGE_ID}::message_transmitter::MessageSent`,
);
receive_message() (full runnable script can be found in the
aptos-cctp repository):
const bytecode = Uint8Array.from(
fs.readFileSync(
"typescript/example/precompiled-move-scripts/testnet/handle_receive_message.mv",
),
);
const functionArguments: Array<any> = [
MoveVector.U8(messageBytes as Buffer),
MoveVector.U8(attestationSignature),
];
const transaction = await aptosClient.transaction.build.simple({
sender: userAccount.accountAddress,
data: {
bytecode,
functionArguments,
},
});
const pendingTxn = await aptosClient.signAndSubmitTransaction({
signer: userAccount,
transaction,
});
const receiveMessageTx = await aptosClient.waitForTransaction({
transactionHash: pendingTxn.hash,
});
console.log(
`Receive message transaction completed successfully: https://explorer.aptoslabs.com/txn/${receiveMessageTx.hash}`,
);