Valence ICA CCTP Transfer Library
The Valence ICA CCTP Transfer Library library allows remotely executing a CCTP transfer using a Valence interchain account on Noble Chain. It does that by remotely sending a MsgDepositForBurn to the ICS-27 ICA created by the Valence interchain account on Noble. It is typically used as part of a Valence Program. In that context, a Processor contract will be the main contract interacting with the Valence ICA CCTP Transfer Library.
High-level flow
---
title: ICA CCTP Transfer Library
---
graph LR
    subgraph Neutron
      P[Processor]
      L[ICA CCTP
      Transfer Library]
      I[Input Account]
      P -- 1)Transfer --> L
      L -- 2)Query ICA address --> I
      L -- 3)Do ICA MsgDepositForBurn --> I
    end
    subgraph Noble
      ICA[Interchain Account]
      I -- 4)Execute MsgDepositForBurn--> ICA
    end
Functions
| Function | Parameters | Description | 
|---|---|---|
| Transfer | - | Transfer funds with CCTP on Noble from the ICA created by the input_acount to a mint_recipient on a destination_domain_id | 
Configuration
The library is configured on instantiation via the LibraryConfig type.
#![allow(unused)] fn main() { pub struct LibraryConfig { // Address of the input account (Valence interchain account) pub input_addr: LibraryAccountType, // Amount that is going to be transferred pub amount: Uint128, // Denom that is going to be transferred pub denom: String, // Destination domain id pub destination_domain_id: u32, // This address is the bytes representation of the address (with 32 length and padded zeroes) // For more information, check https://docs.noble.xyz/cctp/mint#example pub mint_recipient: Binary, } }