Overview
Implement the core service layer that orchestrates the CCTP burn → attest → mint cycle between an external chain (e.g., Ethereum) and Stellar using Soroban smart contracts.
Background
CCTP works in three phases:
- Burn – USDC is burned on the source chain and a message is emitted.
- Attest – Circle's Attestation API signs the message.
- Mint – The signed message is submitted to the destination chain (Stellar) to mint USDC.
Tasks
Acceptance Criteria
Overview
Implement the core service layer that orchestrates the CCTP burn → attest → mint cycle between an external chain (e.g., Ethereum) and Stellar using Soroban smart contracts.
Background
CCTP works in three phases:
Tasks
CCTPServiceclass undersrc/modules/cctp/initiateBurn(amount, sourceChain, destinationAddress)— submits burn tx and stores the resulting message hashpollAttestation(messageHash)— polls Circle Attestation API untilstatus: completemintOnStellar(attestation, messageBytes)— calls the SorobanreceiveMessageentry pointpending → attesting → minting → complete → failed)WalletService/ Stellar RPC clientAcceptance Criteria
CCTPServiceunit-tested with mocked Circle API and Stellar RPC