1.0.32 • Published 10 months ago

@automata-network/cctp-sdk v1.0.32

Weekly downloads
-
License
ISC
Repository
-
Last release
10 months ago

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