1.0.32 • Published 10 months ago
@automata-network/cctp-sdk v1.0.32
cctp-sdk
An SDK to integrate with Circle CCTP
Install
npm i @automata-network/cctp-sdk -S
Usage
import { CCTPDomain, CCTPSdk } from "@automata-network/cctp-sdk";
const testnetSdk = CCTPSdk().testnet();
const result = await testnetSdk.transferUSDC({
signer, // your signer
sourceDomain: CCTPDomain.Ethereum
destinationDomain: CCTPDomain.Avalanche,
destinationAddress: "0xAbD1626FCc4b288aF31695b007Ca1268D7E9Fe19",
amount: ethers.utils
.parseUnits("0.0001", 6)
.toString(),
onApprove: () => {
// show your loading toast
},
onBurnUSDC: () => {
// show your loading toast
},
onGetMessageBytes: () => {
// show your loading toast
},
onFetchAttestation: () => {
// show your loading toast
},
onMintUSDC: () => {
// show your loading toast
},
beforeMintUSDC: async () => {
// switch chain here before sending redemption
},
destinationSigner, // another signer for sending redemption, if you use same signer as the source chain, can skip this settings
});
or you can do it step by step:
// step1: approve
await testnetSdk.approveUSDC();
// step2: burnUSDC
await testnetSdk.burnUSDC();
// step3: getMessageBytes
await testnetSdk.getMessageBytes();
// step4: waitForAttestation
await testnetSdk.waitForAttestation();
// or you can fetch attestation without result check and retry
await testnetSdk.fetchAttestation();
// step5: mintUSDC
await testnetSdk.mintUSDC();
see here for more details
if you need to add your configs:
import {
CCTPDomain,
CCTPSdk,
defaultConfigs,
} from "@automata-network/cctp-sdk";
const testnetSdk = CCTPSdk({
mainnet: {
irisApiHost: defaultConfigs.mainnet.irisApiHost,
networks: [
{
domain: CCTPDomain.Avalanche,
usdcContractAddress: "0x5425890298aed601595a70ab815c96711a31bc65",
cctpMessageTransmitterContractAddress:
"0xa9fb1b3009dcb79e2fe346c16a604b8fa8ae0a79",
cctpMessengerContractAddress:
"0xeb08f243e5d3fcff26a9e38ae5520a669f4019d0",
rpc: "https://rpc.ankr.com/avalanche_fuji",
},
],
},
testnet: {
irisApiHost: defaultConfigs.testnet.irisApiHost,
networks: [
{
domain: CCTPDomain.Avalanche,
usdcContractAddress: "0x5425890298aed601595a70ab815c96711a31bc65",
cctpMessageTransmitterContractAddress:
"0xa9fb1b3009dcb79e2fe346c16a604b8fa8ae0a79",
cctpMessengerContractAddress:
"0xeb08f243e5d3fcff26a9e38ae5520a669f4019d0",
rpc: "https://rpc.ankr.com/avalanche_fuji",
},
],
},
}).testnet();
check if the transfer is completed
const isTransferCompleted = await testnetSdk.isTransferCompleted({
messageBytes: result.messageBytes, // messageBytes is from testnetSdk.transferUSDC, or testnetSdk.getMessageBytes
});
LICENSE
MIT
1.0.32
10 months ago
1.0.29
1 year ago
1.0.31
1 year ago
1.0.30
1 year ago
1.0.19
1 year ago
1.0.18
1 year ago
1.0.17
1 year ago
1.0.22
1 year ago
1.0.21
1 year ago
1.0.20
1 year ago
1.0.26
1 year ago
1.0.25
1 year ago
1.0.24
1 year ago
1.0.23
1 year ago
1.0.28
1 year ago
1.0.27
1 year ago
1.0.16
2 years ago
1.0.14
2 years ago
1.0.13
2 years ago
1.0.12
2 years ago
1.0.9
2 years ago
1.0.8
2 years ago
1.0.7
2 years ago
1.0.11
2 years ago
1.0.10
2 years ago
1.0.6
2 years ago
1.0.5
2 years ago
1.0.4
2 years ago
1.0.3
2 years ago
1.0.2
2 years ago
1.0.1
2 years ago
1.0.0
2 years ago