Skip to content

Releases

v1.17.0 - Stable

Choose a tag to compare

@andrevmatos andrevmatos released this 10 Nov 20:22
726e2f4

Highlights

  • EVM: read multi-token pools with a { token } option; preflights catch paused or incomplete lanes
  • EVM: ERC-8056 (Scaled UI Amount) tokens: uiMultiplier, toUIAmount/fromUIAmount; CLI shows UI amounts
  • Solana: 2.0 Routers serving 1.6 and 2.0 lanes side by side; new lane --lane-version
  • CCIP 2.0: getVerifications composes missing USDC/LBTC verifier data from issuer attestations
  • CLI: send/show --wait poll pending USDC/LBTC attestations (CCTP v2 too)
  • EVM: send preflight simulates source pool lockOrBurn, catching hook, blocklist and curse reverts before signing
  • SDK: tokens without decimals() get their decimals from their pool, or from the chain default
  • CCT-SDK (EVM): pool query ops, simulateEVMTx, lockbox ownership, CrossChainPoolToken and more deployable pool types
  • Canton: CantonChain uses the dApp SDK provider; CCT-SDK registry pool ops
  • Sui: gRPC endpoint support, because public fullnodes no longer serve JSON-RPC
  • Fixes: show --no-api executions on Arbitrum Nitro chains; faster Solana OffRamp discovery; HTTP 429 errors are retried
  • ⚠️ Breaking: discoverOffRamp takes the lane, and cct/evm exports only the public ops

What's Changed

  • Support Sui gRPC endpoints and improve fixtures rate limiting in SDK by @andrevmatos in #512
  • feat(sdk): support tokens without the optional ERC-20 decimals() view via pool-declared and family-default decimals by @SyedAsadKazmi in #504
  • Chore/deps by @andrevmatos in #515
  • cct/canton: improve submission idempotency + ledger-effects responses by @stackman27 in #514
  • feat(cct-sdk): Deploy BurnToAddressTokenPool 2.0.0 by @apedrob in #497
  • feat(cct-sdk): Deploy BurnMintWithLockReleaseFlagTokenPool 2.0.0 by @apedrob in #499
  • refactor(cct-sdk): Derive pool interfaces from ABI table by @apedrob in #500
  • chore(cct-sdk): Vendor USDC pool ABIs by @apedrob in #505
  • feat(cct-sdk): Read USDC pools in getTokenPoolState by @apedrob in #506
  • fix(cct-sdk): Dedupe rate limit updates per lane and fastFinality by @apedrob in #507
  • feat(cct-sdk): Support all pool types in token pool factory by @mervin-link in #510
  • feat(cct-sdk): Add simulateEVMTx for CCT writes by @apedrob in #511
  • feat(cct-sdk): Support set rate limit admin on v2.0.0 pools by @apedrob in #508
  • feat(cct-sdk): Make sender optional on transfer + accept admin by @apedrob in #509
  • feat(sdk): Token verifier fallback for CCIP v2.0 manual execution by @andrevmatos in #520
  • feat(sdk)!: Select the OffRamp by lane version (Solana 2.0 Router serving 1.6 + 2.0 lanes) by @andrevmatos in #531
  • chore: bump deps by @andrevmatos in #532
  • fix(cli): poll pending attestations without delaying execution receipts by @andrevmatos in #533
  • feat(cct-canton): registry pool ops, holdings-label default, and preapproval auto-wire by @stackman27 in #516
  • feat(cct-sdk): Support CrossChainPoolToken 2.0.0 by @apedrob in #519
  • fix(cct-canton): detach caller-owned transferTimeout in deploy prepare by @stackman27 in #534
  • feat(sdk): Read multi-token pools through their PoolConfigManager by @andrevmatos in #521
  • feat(cct-sdk): Add lockbox ownership transfer + accept ops by @apedrob in #522
  • fix(cct-sdk): Add poolProgramAddress to Solana pool deploy ops by @apedrob in #523
  • fix(sdk): treat Solana 2.0 lanes in testing as 1.6 in every method by @andrevmatos in #537
  • Add fork test support for solana 2.0 token onboarding flow by @PabloMansanet in #525
  • Remove canAcceptLiquidity for 2.0 Solana token pools by @PabloMansanet in #527
  • docs(api-ref): add API v1 to v2 migration guide and retirement dates by @aelmanaa in #530
  • feat(cct-sdk): Add token pool query ops on EVM by @apedrob in #513
  • feat(sdk): Return ERC-8056 UI multipliers in getTokenInfo by @andrevmatos in #535
  • Switch Canton Chain to use dApp SDK Provider by @friedemannf in #498
  • chore: bump deps, v1.17 by @andrevmatos in #540

Full Changelog: v1.16.1...v1.17.0

v1.16.1 - Fixes

Choose a tag to compare

@andrevmatos andrevmatos released this 17 Oct 20:16
f3f36e3

What's Changed

New Contributors

Full Changelog: v1.16.0...v1.16.1

v1.16.0 - Stable

Choose a tag to compare

@andrevmatos andrevmatos released this 09 Oct 23:18
15f44cf

Highlights

  • CCT-SDK: full SiloedLockReleaseTokenPool lifecycle:
    • deploy it at v2.0.0 and bind per-lane lockboxes: configureSiloedLockboxes, getSiloedLockbox, getAllSiloedLockboxConfigs
    • manage v1.6.x silos: provideSiloedLiquidity, withdrawSiloedLiquidity, setSiloRebalancer, updateSiloDesignations, with the isSiloed/getChainRebalancer/getAvailableTokens reads
  • CCT-SDK: operations resolve on-chain state themselves — applyChainUpdates and registerAdmin take a single version-less params shape (pool/module version detected on-chain), AdvancedPoolHooks ops accept a pool's address and resolve its hooks, Solana ops resolve the pool program from tokenAddress, and Canton ops derive pool type, owners and TokenAdminRegistry from the ledger
  • CCT-SDK: unified prepare operation lifecycle (validation + parsing in one hook), typed CCT errors importable from the SDK root, and pool-type registries exported — EVM DEPLOYABLE_TOKEN_POOL_TYPES and Solana SOLANA_TOKEN_POOL_TYPES with type guards, ready for runtime validation and things like z.enum(...)
  • Solana: CCIP 2.0 manualExec — 2.0 pool IDL decoding, faster-than-finality rate limits and per-chain finality surfaced in pool reads, allowlisted lanes consistently reported as unsupported (so getFee and sendMessage always agree, and quotes no longer need sender), and separate buffering/execution stages so oversized manual executions can be staged unsigned (Ledger-friendly)
  • EVM: the nonce cache no longer replaces pending or in-flight transactions (TOB-CLCCT-12): safe rollback on inconclusive failures, and no re-prompt after a user rejection
  • EVM: getLogs honors RPC-stated block-range limits below 100 blocks (e.g. Alchemy's free plan), fixing ccip-cli show --wait on such endpoints
  • EVM: admin-transfer ops (beginDefaultAdminTransfer/accept/cancel) now also work on v1 FactoryBurnMintERC20 tokens
  • Canton: per-service HTTP protocol selection, with automatic h2 → HTTP/1.1 fallback

What's Changed

New Contributors

Full Changelog: v1.15.0...v1.16.0

v1.15.0 - CCT SDK

Choose a tag to compare

@andrevmatos andrevmatos released this 30 Sep 23:04
f22265f

Highlights

  • CCT-SDK: @chainlink/ccip-sdk/cct/{evm,solana,canton} entrypoints with whole new child classes for managing TokenPools!!
  • Solana: v2 (preview) send support

What's Changed

Full Changelog: v1.14.0...v1.15.0

v1.14.0 - Stable

Choose a tag to compare

@andrevmatos andrevmatos released this 25 Sep 18:33
3f112d8

Highlights

  • Solana support for V1 txs (show, send, exec)
  • SDK support for fetching v2 verifications directly from verifiers (passed/asked explicitly), bypassing indexer
    • CLI has grpc support, SDK defaults to assuming a webGrpc proxy in front
  • Aptos, Sui: support for querying and streaming failed executions
  • Canton: Ledger hardwallet support on CLI, OIDC on config
  • CLI: arbitrary chain-selectors injection/override support (for testing/private chains)
  • Better bundler tree-shaking

What's Changed

Full Changelog: v1.13.0...v1.14.0

v1.13.0 - Stable

Choose a tag to compare

@andrevmatos andrevmatos released this 26 Aug 11:32
cff6b39

Highlights

  • Performance: Fixed several memory leaks and spikes, which hindered ccip-sdk usage on long-lived, continuously polling services (e.g. through chain.getLogs)
  • Tooling: migrated to TypeScript 7 and Oxlint (from eslint)
  • SDK: chain.getLogs gain a new filter: since, which receives a ChainLog from a previous call, and can then resume from it (i.e. fetching logs since this given cursor) more efficiently in many chains than the usual startBlock/startTime

What's Changed

Full Changelog: v1.12.0...v1.13.0

v1.12.0 - Stable

Choose a tag to compare

@andrevmatos andrevmatos released this 19 Aug 21:16
f084a85

Highlights

  • SDK: support a new typeAndVersions?: (string | RegExp)[] filter option for getLogs, emitting only logs from addresses matching type string or typeAndVersion regexp
  • EVM: gracefully handle RPCs limiting the number of topics filters in getLogs
  • EVM: improve USDCTokenPoolProxy 2.0.0 multiple getPools() support
  • Aptos: support multiple topics in getLogs
  • Aptos: always format addresses as short hex (strip leading zeros)
  • Solana: preview support for latest v2 contracts
  • TON: improve logs masterchain blockNumber fetching
  • Canton: support v2 apis

What's Changed

New Contributors

Full Changelog: v1.11.1...v1.12.0

v1.11.1 - Fixes

Choose a tag to compare

@aelmanaa aelmanaa released this 11 Aug 23:09
a9e845f

Highlights

  • Destination-denominated amounts in checkExecute are now compared consistently across chains.
  • Sui SuiExtraArgsV1 codec now correctly round-trips to/from Solana.
  • Aptos typeAndVersion now accepts a bare package address.

What's Changed

v1.11.0 - Stable

Choose a tag to compare

@andrevmatos andrevmatos released this 07 Aug 22:45
c34baf7

Highlights

  • SDK: sendMessage and execute methods now accept opts.txGasLimit, skips estimation
  • CLI: send and manual-exec --tx-gas-limit option to force gas limit for txs
  • SDK/CLI: add q free-text filter to searchMessages and -q to search messages; matches token and pool addresses, tx hashes, messageId, sender and receiver
  • SDK: searchAllMessages accepts options.cursor to resume from a previous page
  • CLI: search messages --cursor resumes an earlier run; when --limit caps the results, the next cursor is printed to stderr
  • SDK/CLI: CCIPAPIClient.getLaneLatency accepts options.sourceTokenAddress, exposed as lane-latency --source-token
  • SDK: Breaking: lane latency INSUFFICIENT_DATA now throws CCIPLaneLatencyInsufficientDataError instead of CCIPHttpError
  • SDK: estimateReceiveExecution now preflights the whole delivery pre-send: requested finality via the destination OffRamp's getCCVsForMessage, OffRamp lane gates, inbound rate limits, and, for token transfers, each destination pool's releaseOrMint
    • catches unregistered tokens, mis-wired source pools, missing mint/burn authority, RMN curses and insufficient liquidity, which previously only surfaced after the message stranded on the destination
    • source pools are simulated too, so the check consumes the same post-fee amount and destPoolData the OnRamp would emit
    • new simulateReleaseOrMint, simulateLockOrBurn, classifyPoolRevert, isTransientReleaseOrMintRevert, and errors CCIPDestExecutionRevertError, CCIPDestSimulationUnavailableError, CCIPSourcePoolRevertError
  • CLI: send warns and continues when the preflight is inconclusive (destination RPC failure, attestation-consuming pool) instead of failing; --estimate-gas-limit/--only-estimate still make it fatal
  • CLI: send --only-ccvs prints the destination-required CCV set (requiredCCVs, optionalCCVs, optionalThreshold) and exits, without sending
  • SDK: getRequiredCCVs exported to read that set programmatically, plus encodeMessageV1/encodeTokenTransferV1 for the message encoding it uses
  • EVM: getOffRampConfig now also returns rmn, when the OffRamp's RMNProxy is set

What's Changed

  • Show TON and Canton chain families in Multi-Chain Support by @SyedAsadKazmi in #299
  • Misc by @andrevmatos in #308
  • Misc by @andrevmatos in #314
  • sui: fix, remove graphql by @andrevmatos in #320
  • feat(evm): pre-send CCV/finality preflight via getCCVsForMessage by @aelmanaa in #288
  • fix(docs): hamburger menu layered behind content on small screens by @SyedAsadKazmi in #326
  • feat(sdk): add pre-send destination-liquidity preflight that mandatorily simulates the destination pool's releaseOrMint for token transfers by @aelmanaa in #301
  • Misc by @andrevmatos in #325
  • fix(sdk): fix dead RMN zero-address guard in getOffRampConfig and haden getARM() result by @aelmanaa in #327
  • fix(sdk): normalize finality via encodeFinality before CCTP fast/standard tier comparison by @aelmanaa in #330
  • docs: explain JSON integer precision loss in --format=json and how to read it correctly by @aelmanaa in #331
  • Ton, Sui<->Solana, Solana v2 fixes by @andrevmatos in #338
  • feat(api): add q search filter, cursor resume, and token-specific lane latency by @aelmanaa in #343

Full Changelog: v1.10.3...v1.11.0

v1.10.3 - Fixes

Choose a tag to compare

@andrevmatos andrevmatos released this 14 Jul 00:37
22aeb0c

What's Changed

Full Changelog: v1.10.2...v1.10.3