Skip to content

Switch Canton Chain to use dApp SDK Provider - #498

Merged
andrevmatos merged 25 commits into
mainfrom
canton-provider
Nov 10, 2026
Merged

andrevmatos merged 25 commits into
mainfrom
canton-provider

Conversation

@friedemannf

Copy link
Copy Markdown
Member

No description provided.

@vercel

vercel Bot commented Oct 14, 2026 •

Copy link
Copy Markdown

The latest updates on your projects. Learn more about Vercel for GitHub.

Project Deployment Actions Updated
ccip-tools-ts Ready Ready Preview Nov 9, 2026 1:21pm UTC

Request Review

add class + parsing for CantonInstrumentId
add static contract IDs to Canton ExtraArgs input
simplify event parsing
createPerPartyRouter, createCCIPSender and createCCIPReceiver re-fetched the
committed transaction by transactionHash. That field is only set for prepared
transactions of external parties, so wallet submissions through
prepareExecuteAndWait threw after the contract was created.
marek-sadura and others added 2 commits November 5, 2026 12:11
…t result

submitCommands already returns the committed transaction, so createCCIPSender
and createCCIPReceiver no longer fetch it again. createPerPartyRouter keeps one
re-fetch for the interface views, without the guard for an id that is always set.
## What

- Read the created contract from the transaction `submitCommands`
returns in `createCCIPSender` and `createCCIPReceiver`, like
`sendMessage` and `execute` do
- Re-fetch by `updateId` instead of `transactionHash` in
`createPerPartyRouter`, which still needs interface views

## Why

- `transactionHash` is only set for prepared transactions of external
parties. Wallet submissions through `prepareExecuteAndWait` leave it
empty, so each create threw after the contract landed:
  ```
CantonChain.createPerPartyRouter: failed to create router: transaction
hash not found in submitted transaction
  ```
- Hit in Transporter canton -> evm send setup with a fresh party on
`c59d9415`

## Testing

- No automated tests: `CantonChain` has a private constructor and no
tests for the creates. `npm run typecheck`, `oxlint`, `oxfmt --check`
and the 109 `src/canton` tests pass
- Transporter, canton -> evm send with a fresh party,
`disableAutomaticContractCreation: true`:
1. On `c59d9415`, sign the PerPartyRouter step. Confirm the error above,
and that the retry lists only the CCIPSender step (the router was
created)
2. On this branch, sign both steps. Confirm each create returns the
contract id (not run yet)

## Notes

- Stacked on #498

[JIRA](https://smartcontract-it.atlassian.net/browse/DAPP-12011)
@vercel

vercel Bot commented Nov 5, 2026

Copy link
Copy Markdown

You must have Developer access to commit code to Chainlink Labs on Vercel. If you contact an administrator and receive Developer access, commit again to see your changes.

Learn more: https://vercel.com/docs/accounts/team-members-and-roles/access-roles#team-level-roles

marek-sadura and others added 7 commits November 5, 2026 13:31
createPerPartyRouter, createCCIPSender and createCCIPReceiver return
{ contractId, updateId }, so callers that sign each create on its own
can link and confirm the ledger update without reading the wallet
response. The getOrCreate helpers still return the contract id.
## What

- Return `{ contractId, updateId }` from `createPerPartyRouter`,
`createCCIPSender` and `createCCIPReceiver` (new `CantonCreatedContract`
type)
  - `getOrCreate*` still return the contract id

## Why

- Transporter signs each setup create as its own tx and shows its update
id as the tx link. Today it wraps the provider to read
`tx.payload.updateId` from `prepareExecuteAndWait`, which depends on the
wallet response shape

## Testing

- No automated tests: `CantonChain` has a private constructor and no
tests for the creates. `npm run typecheck -w ccip-sdk`, `oxlint`, `oxfmt
--check` and the 109 `src/canton` tests pass
- Transporter, canton -> evm send with a fresh party,
`disableAutomaticContractCreation: true`, provider wrapper removed (not
run yet):
  1. Sign the PerPartyRouter step. Confirm the step links its update id
2. Sign the CCIPSender step, then the send. Confirm the send goes
through

## Notes

- Breaking for the three creates, but they are public only on
`canton-provider` (private on `main`, never released)
- `npm run typecheck` already fails in `ccip-cli` on `canton-provider`:
`filterEndpointsForFamily` and `isCantonLedgerUrl` are not exported

[JIRA](https://smartcontract-it.atlassian.net/browse/DAPP-12011)
getCCIPReceiver skipped a WaitForSafe receiver when the message finality
was 'safe' and accepted it for every other finality. A safe message never
found its receiver, and a finalized or block-depth message could resolve
to a safe receiver. Move the finality match into receiverFinalityMatches
with the WaitForSafe case fixed, and cover each receiver config against
each finality.
# Conflicts:
#	ccip-api-ref/docs-cli/configuration.mdx
#	ccip-cli/package.json
#	ccip-cli/src/index.ts
#	ccip-cli/src/providers/index.ts
#	ccip-sdk/package.json
#	ccip-sdk/src/api/index.ts
#	ccip-sdk/src/canton/client/client.ts
#	ccip-sdk/src/canton/client/index.ts
#	ccip-sdk/src/canton/events.ts
#	ccip-sdk/src/canton/explicit-disclosures/eds.ts
#	ccip-sdk/src/canton/index.ts
#	ccip-sdk/src/canton/token-metadata/client.ts
#	ccip-sdk/src/canton/transfer-instruction/client.ts
#	ccip-sdk/src/canton/types.ts
#	ccip-sdk/src/canton/update-id.ts
#	package-lock.json
…vider

# Conflicts:
#	ccip-sdk/src/canton/index.ts
@github-actions

github-actions Bot commented Nov 5, 2026 •

Copy link
Copy Markdown

CI Test Report

βœ… 4483/4483 tests passed (1111 suites) in 5m 50s

Summary

β„Ή tests 4483
β„Ή suites 1111
β„Ή pass 4483
β„Ή fail 0
β„Ή cancelled 0
β„Ή skipped 0
β„Ή todo 0
β„Ή duration_ms 350188.041227
Coverage report
File                                   | % Stmts | % Branch | % Funcs | % Lines | Uncovered Line #s 
---------------------------------------|---------|----------|---------|---------|-------------------
All files                              |   83.56 |     85.4 |   57.59 |   83.56 |                   
 ccip-cli/src                          |   93.77 |    86.13 |   88.46 |   93.77 |                   
  chain-selectors.ts                   |   98.14 |    90.22 |     100 |   98.14 | ...33-134,285-287 
  index.ts                             |   87.38 |    60.71 |   66.66 |   87.38 | ...04-208,214-219 
 ccip-cli/src/commands                 |   57.17 |    84.59 |   66.17 |   57.17 |                   
  index.ts                             |     100 |      100 |     100 |     100 |                   
  lane-latency.ts                      |   70.76 |    83.33 |   33.33 |   70.76 | ...,76-83,119-128 
  lane.ts                              |    88.5 |       75 |     100 |    88.5 | ...72-175,179-181 
  manual-exec.ts                       |   20.45 |      100 |       0 |   20.45 | ...42-152,154-350 
  parse.ts                             |    55.2 |      100 |       0 |    55.2 | 47-51,58-65,67-96 
  search.ts                            |   81.25 |      100 |       0 |   81.25 | 24-29             
  send.ts                              |   14.23 |      100 |       0 |   14.23 | ...08-236,238-548 
  show.ts                              |   88.27 |    85.61 |      90 |   88.27 | ...11-315,326-334 
  supported-tokens.ts                  |   17.93 |      100 |       0 |   17.93 | ...80-353,355-368 
  token.ts                             |   22.72 |      100 |       0 |   22.72 | ...3,60-67,69-132 
  types.ts                             |     100 |      100 |     100 |     100 |                   
  utils.ts                             |    92.5 |     84.5 |     100 |    92.5 | ...14,720,722-732 
 ccip-cli/src/commands/search          |   53.89 |    76.19 |    12.5 |   53.89 |                   
  messages.ts                          |   53.89 |    76.19 |    12.5 |   53.89 | ...36-258,260-295 
 ccip-cli/src/providers                |   54.76 |     79.2 |   22.22 |   54.76 |                   
  aptos.ts                             |   51.47 |      100 |       0 |   51.47 | ...,95-96,105-136 
  evm.ts                               |   72.25 |    63.63 |      75 |   72.25 | ...34,137-149,169 
  index.ts                             |   67.94 |    84.09 |      70 |   67.94 | ...25,387,447-496 
  solana.ts                            |   44.89 |      100 |       0 |   44.89 | ...12-113,122-147 
  sui.ts                               |    49.5 |      100 |       0 |    49.5 | ...57-258,267-301 
  ton.ts                               |   15.03 |      100 |       0 |   15.03 | 24-153            
 ccip-cli/src/providers/canton         |   65.84 |     65.8 |   45.09 |   65.84 |                   
  auth.ts                              |   82.41 |    73.01 |   53.33 |   82.41 | ...17-333,464-469 
  config.ts                            |      75 |    66.66 |   66.66 |      75 | ...18,120,122-124 
  index.ts                             |     100 |      100 |     100 |     100 |                   
  provider.ts                          |   56.86 |    53.12 |   46.66 |   56.86 | ...84-414,508-516 
  wallet.ts                            |    53.2 |      100 |   33.33 |    53.2 | ...59-261,412-453 
 ccip-cli/src/verifiers                |   82.26 |    90.47 |   33.33 |   82.26 |                   
  grpc-transport.ts                    |     100 |       90 |   66.66 |     100 | 48,57             
  options.ts                           |   62.12 |      100 |       0 |   62.12 | 12-20,34-37,52-63 
 ccip-sdk/src                          |   96.94 |    89.52 |   96.21 |   96.94 |                   
  all-chains.ts                        |     100 |      100 |     100 |     100 |                   
  chain.ts                             |   97.08 |    85.66 |   85.71 |   97.08 | ...2818,2851-2852 
  commits.ts                           |   97.18 |    92.85 |     100 |   97.18 | 111-118,201-202   
  execution.ts                         |   87.21 |    82.85 |     100 |   87.21 | ...04-211,234-235 
  explorer.ts                          |     100 |      100 |     100 |     100 |                   
  extra-args.ts                        |     100 |    91.17 |     100 |     100 | 258,287,302       
  fetch.ts                             |    97.3 |    94.54 |   97.95 |    97.3 | ...-954,1250-1252 
  gas.ts                               |   94.03 |    79.31 |     100 |   94.03 | ...11-322,456-467 
  http-status.ts                       |     100 |      100 |     100 |     100 |                   
  index.ts                             |     100 |      100 |     100 |     100 |                   
  messages.ts                          |   89.22 |    52.54 |     100 |   89.22 | ...48-249,273-274 
  networks.ts                          |     100 |      100 |     100 |     100 |                   
  offchain.ts                          |    95.2 |    87.39 |     100 |    95.2 | ...36-442,474-476 
  requests.ts                          |   96.85 |    90.22 |     100 |   96.85 | ...90-691,716-721 
  supported-chains.ts                  |     100 |       90 |     100 |     100 | 33-34             
  types.ts                             |     100 |      100 |     100 |     100 |                   
  utils.ts                             |   99.59 |    96.49 |     100 |   99.59 | 212-213,215       
 ccip-sdk/src/api                      |   95.38 |     82.8 |   95.23 |   95.38 |                   
  index.ts                             |   95.38 |     82.8 |   95.23 |   95.38 | ...34-935,939-947 
 ccip-sdk/src/aptos                    |   72.59 |    75.57 |    63.8 |   72.59 |                   
  exec.ts                              |   29.31 |      100 |       0 |   29.31 | 18-58             
  hasher.ts                            |   75.89 |       80 |   66.66 |   75.89 | 17-36,50-56       
  index.ts                             |   54.68 |    78.31 |   41.86 |   54.68 | ...1094,1098-1109 
  logs.ts                              |   95.09 |    74.76 |   90.38 |   95.09 | ...1442-1444,1731 
  send.ts                              |    25.6 |      100 |       0 |    25.6 | ...2,63-80,93-125 
  token.ts                             |     7.5 |      100 |       0 |     7.5 | 13-160            
  types.ts                             |   65.97 |      100 |       0 |   65.97 | 26-33,65-89       
 ccip-sdk/src/canton                   |   52.68 |    81.11 |   50.76 |   52.68 |                   
  acs.ts                               |      53 |    57.14 |   33.33 |      53 | ...0,51-90,96-100 
  addressCodec.ts                      |   92.07 |    94.11 |   80.64 |   92.07 | ...60-361,364-365 
  amount.ts                            |   92.59 |       70 |     100 |   92.59 | 22-23             
  ccv-addresses.ts                     |   96.99 |    79.16 |     100 |   96.99 | 19-20,22,29       
  daml-parse.ts                        |   85.48 |    73.21 |     100 |   85.48 | ...11,114-117,123 
  defaults.ts                          |     100 |      100 |     100 |     100 |                   
  events.ts                            |   10.52 |      100 |       0 |   10.52 | 5-30,33-57        
  index.ts                             |   37.95 |    71.69 |   18.46 |   37.95 | ...2689,2697-2702 
  networks.ts                          |     100 |      100 |     100 |     100 |                   
  receiver-finality.ts                 |     100 |      100 |     100 |     100 |                   
  types.ts                             |   94.41 |    83.33 |      80 |   94.41 | 176-180,191-196   
  update-id.ts                         |     100 |      100 |     100 |     100 |                   
 ccip-sdk/src/canton/authentication    |   93.05 |    79.31 |    92.3 |   93.05 |                   
  authorization-code.ts                |   89.83 |    84.31 |    90.9 |   89.83 | ...58-376,432-443 
  client-credentials.ts                |   91.28 |       75 |     100 |   91.28 | ...92-196,198-202 
  index.ts                             |    96.8 |       75 |     100 |    96.8 | 168-173           
  metadata.ts                          |   81.89 |    44.44 |      50 |   81.89 | ...55,73-78,93-94 
  static.ts                            |     100 |      100 |     100 |     100 |                   
  token-source.ts                      |   98.88 |    77.77 |     100 |   98.88 | 165-166           
  types.ts                             |     100 |      100 |     100 |     100 |                   
 .../canton/bindings/ccip-api-v2-2.0.0 |   69.23 |      100 |       0 |   69.23 |                   
  index.js                             |   69.23 |      100 |       0 |   69.23 | 3-6               
 ...on/bindings/ccip-api-v2-2.0.0/CCIP |   63.63 |      100 |       0 |   63.63 |                   
  index.js                             |   63.63 |      100 |       0 |   63.63 | 3-6               
 ...dings/ccip-api-v2-2.0.0/CCIP/APIV2 |   80.95 |      100 |       0 |   80.95 |                   
  index.js                             |   80.95 |      100 |       0 |   80.95 | 3-6               
 ...-2.0.0/CCIP/APIV2/ExecutingMessage |   64.73 |      100 |       4 |   64.73 |                   
  index.js                             |     100 |      100 |     100 |     100 |                   
  module.js                            |   63.13 |      100 |       0 |   63.13 | ...83-188,191-196 
 ...-api-v2-2.0.0/CCIP/APIV2/FeeQuoter |   58.15 |      100 |    3.03 |   58.15 |                   
  index.js                             |     100 |      100 |     100 |     100 |                   
  module.js                            |   56.77 |      100 |       0 |   56.77 | ...60-264,267-271 
 ...i-v2-2.0.0/CCIP/APIV2/GlobalConfig |   55.22 |      100 |    4.76 |   55.22 |                   
  index.js                             |     100 |      100 |     100 |     100 |                   
  module.js                            |   53.12 |      100 |       0 |   53.12 | ...75-181,184-190 
 ...-api-v2-2.0.0/CCIP/APIV2/RMNRemote |   65.51 |      100 |    4.34 |   65.51 |                   
  index.js                             |     100 |      100 |     100 |     100 |                   
  module.js                            |   63.63 |      100 |       0 |   63.63 | ...52-156,159-163 
 ...v2-2.0.0/CCIP/APIV2/SendingMessage |   54.28 |      100 |    4.34 |   54.28 |                   
  index.js                             |     100 |      100 |     100 |     100 |                   
  module.js                            |   52.23 |      100 |       0 |   52.23 | ...90-193,196-199 
 ....0.0/CCIP/APIV2/TokenAdminRegistry |   53.97 |      100 |    1.21 |   53.97 |                   
  index.js                             |     100 |      100 |     100 |     100 |                   
  module.js                            |   53.38 |      100 |       0 |   53.38 | ...82-686,689-693 
 .../bindings/ccip-client-api-v2-2.0.0 |   69.23 |      100 |       0 |   69.23 |                   
  index.js                             |   69.23 |      100 |       0 |   69.23 | 3-6               
 ...ings/ccip-client-api-v2-2.0.0/CCIP |   63.63 |      100 |       0 |   63.63 |                   
  index.js                             |   63.63 |      100 |       0 |   63.63 | 3-6               
 ...-client-api-v2-2.0.0/CCIP/ClientV2 |   52.26 |      100 |    1.47 |   52.26 |                   
  index.js                             |     100 |      100 |     100 |     100 |                   
  module.js                            |    51.6 |      100 |       0 |    51.6 | ...42-645,648-651 
 ...anton/bindings/ccip-codec-v2-2.0.0 |   69.23 |      100 |       0 |   69.23 |                   
  index.js                             |   69.23 |      100 |       0 |   69.23 | 3-6               
 .../bindings/ccip-codec-v2-2.0.0/CCIP |   63.63 |      100 |       0 |   63.63 |                   
  index.js                             |   63.63 |      100 |       0 |   63.63 | 3-6               
 ...s/ccip-codec-v2-2.0.0/CCIP/CodecV2 |   73.33 |      100 |       0 |   73.33 |                   
  index.js                             |   73.33 |      100 |       0 |   73.33 | 3-6               
 ...-2.0.0/CCIP/CodecV2/FinalityConfig |    49.2 |      100 |      25 |    49.2 |                   
  index.js                             |     100 |      100 |     100 |     100 |                   
  module.js                            |   40.74 |      100 |       0 |   40.74 | ...25,31-44,47-52 
 ...-2.0.0/CCIP/CodecV2/MessageCodecV1 |   38.82 |      100 |      25 |   38.82 |                   
  index.js                             |     100 |      100 |     100 |     100 |                   
  module.js                            |   31.57 |      100 |       0 |   31.57 | ...51,57-64,67-74 
 ...odec-v2-2.0.0/CCIP/CodecV2/Uint256 |   63.15 |      100 |   33.33 |   63.15 |                   
  index.js                             |     100 |      100 |     100 |     100 |                   
  module.js                            |   51.72 |      100 |       0 |   51.72 | 3-6,16-20,23-27   
 ...canton/bindings/ccip-core-v2-2.1.1 |   69.23 |      100 |       0 |   69.23 |                   
  index.js                             |   69.23 |      100 |       0 |   69.23 | 3-6               
 ...n/bindings/ccip-core-v2-2.1.1/CCIP |   63.63 |      100 |       0 |   63.63 |                   
  index.js                             |   63.63 |      100 |       0 |   63.63 | 3-6               
 ...ngs/ccip-core-v2-2.1.1/CCIP/CoreV2 |    86.2 |      100 |       0 |    86.2 |                   
  index.js                             |    86.2 |      100 |       0 |    86.2 | 3-6               
 ...2.1.1/CCIP/CoreV2/ExecutingMessage |   52.31 |      100 |    3.57 |   52.31 |                   
  index.js                             |     100 |      100 |     100 |     100 |                   
  module.js                            |   50.85 |      100 |       0 |   50.85 | ...80-284,287-291 
 ...ore-v2-2.1.1/CCIP/CoreV2/FeeQuoter |   60.24 |      100 |    1.61 |   60.24 |                   
  index.js                             |     100 |      100 |     100 |     100 |                   
  module.js                            |    59.5 |      100 |       0 |    59.5 | ...73-476,479-482 
 ...2-2.1.1/CCIP/CoreV2/FeeQuoterTypes |    48.8 |      100 |    9.09 |    48.8 |                   
  index.js                             |     100 |      100 |     100 |     100 |                   
  module.js                            |   45.91 |      100 |       0 |   45.91 | ...48-151,154-157 
 ...-v2-2.1.1/CCIP/CoreV2/GlobalConfig |      68 |      100 |    4.34 |      68 |                   
  index.js                             |     100 |      100 |     100 |     100 |                   
  module.js                            |   66.26 |      100 |       0 |   66.26 | ...40,144,152,156 
 ....1.1/CCIP/CoreV2/GlobalConfigTypes |   39.86 |      100 |    12.5 |   39.86 |                   
  index.js                             |     100 |      100 |     100 |     100 |                   
  module.js                            |   36.11 |      100 |       0 |   36.11 | ...27-133,136-142 
 ...ore-v2-2.1.1/CCIP/CoreV2/RMNRemote |   68.24 |      100 |    1.58 |   68.24 |                   
  index.js                             |     100 |      100 |     100 |     100 |                   
  module.js                            |   67.55 |      100 |       0 |   67.55 | ...04-406,409-411 
 ...2-2.1.1/CCIP/CoreV2/RMNRemoteTypes |    58.4 |      100 |      10 |    58.4 |                   
  index.js                             |     100 |      100 |     100 |     100 |                   
  module.js                            |   55.17 |      100 |       0 |   55.17 | ...07-109,112-114 
 ...2-2.1.1/CCIP/CoreV2/SendingMessage |   45.55 |      100 |    1.78 |   45.55 |                   
  index.js                             |     100 |      100 |     100 |     100 |                   
  module.js                            |   44.77 |      100 |       0 |   44.77 | ...15-621,624-630 
 ...1.1/CCIP/CoreV2/TokenAdminRegistry |   54.37 |      100 |    1.36 |   54.37 |                   
  index.js                             |     100 |      100 |     100 |     100 |                   
  module.js                            |   53.72 |      100 |       0 |   53.72 | ...14-620,623-629 
 ...CIP/CoreV2/TokenAdminRegistryTypes |   54.33 |      100 |   11.11 |   54.33 |                   
  index.js                             |     100 |      100 |     100 |     100 |                   
  module.js                            |   50.84 |      100 |       0 |   50.84 | ...07-110,113-116 
 ...nton/bindings/ccip-events-v2-2.0.0 |   69.23 |      100 |       0 |   69.23 |                   
  index.js                             |   69.23 |      100 |       0 |   69.23 | 3-6               
 ...bindings/ccip-events-v2-2.0.0/CCIP |   63.63 |      100 |       0 |   63.63 |                   
  index.js                             |   63.63 |      100 |       0 |   63.63 | 3-6               
 ...ccip-events-v2-2.0.0/CCIP/EventsV2 |   69.23 |      100 |       0 |   69.23 |                   
  index.js                             |   69.23 |      100 |       0 |   69.23 | 3-6               
 ...ents-v2-2.0.0/CCIP/EventsV2/Events |   56.94 |      100 |    4.34 |   56.94 |                   
  index.js                             |     100 |      100 |     100 |     100 |                   
  module.js                            |   55.55 |      100 |       0 |   55.55 | ...69-271,274-276 
 ...ts-v2-2.0.0/CCIP/EventsV2/Receipts |   79.36 |      100 |      25 |   79.36 |                   
  index.js                             |     100 |      100 |     100 |     100 |                   
  module.js                            |   75.92 |      100 |       0 |   75.92 | 3-6,44-52         
 ...ndings/ccip-extension-api-v2-2.0.0 |   69.23 |      100 |       0 |   69.23 |                   
  index.js                             |   69.23 |      100 |       0 |   69.23 | 3-6               
 ...s/ccip-extension-api-v2-2.0.0/CCIP |   63.63 |      100 |       0 |   63.63 |                   
  index.js                             |   63.63 |      100 |       0 |   63.63 | 3-6               
 ...ion-api-v2-2.0.0/CCIP/InterfacesV2 |   73.33 |      100 |       0 |   73.33 |                   
  index.js                             |   73.33 |      100 |       0 |   73.33 | 3-6               
 ...IP/InterfacesV2/CrossChainVerifier |    56.8 |      100 |    4.16 |    56.8 |                   
  index.js                             |     100 |      100 |     100 |     100 |                   
  module.js                            |    54.9 |      100 |       0 |    54.9 | ...87-193,196-202 
 ...2-2.0.0/CCIP/InterfacesV2/Executor |   59.45 |      100 |    6.25 |   59.45 |                   
  index.js                             |     100 |      100 |     100 |     100 |                   
  module.js                            |   56.83 |      100 |       0 |   56.83 | ...22-128,131-137 
 ...-2.0.0/CCIP/InterfacesV2/TokenPool |   49.31 |      100 |    2.38 |   49.31 |                   
  index.js                             |     100 |      100 |     100 |     100 |                   
  module.js                            |   48.25 |      100 |       0 |   48.25 | ...09-416,425-428 
 ...eceiver-v2-2.1.0/CCIP/CCIPReceiver |   57.89 |      100 |       0 |   57.89 |                   
  module.js                            |   57.89 |      100 |       0 |   57.89 | ...19-221,224-226 
 ...ime-v2-2.1.1/CCIP/RuntimeV2/OnRamp |   47.45 |      100 |       0 |   47.45 |                   
  module.js                            |   47.45 |      100 |       0 |   47.45 | ...64-366,369-371 
 ...2-2.1.1/CCIP/RuntimeV2/OnRampTypes |   46.15 |      100 |       0 |   46.15 |                   
  module.js                            |   46.15 |      100 |       0 |   46.15 | ...31,37-42,45-50 
 ....1.1/CCIP/RuntimeV2/PerPartyRouter |   57.89 |      100 |       0 |   57.89 |                   
  module.js                            |   57.89 |      100 |       0 |   57.89 | ...13-715,718-720 
 ...CCIP/RuntimeV2/PerPartyRouterTypes |   44.18 |      100 |       0 |   44.18 |                   
  module.js                            |   44.18 |      100 |       0 |   44.18 | ...61,67-74,77-84 
 ...ip-sender-v2-2.1.0/CCIP/CCIPSender |    51.8 |      100 |       0 |    51.8 |                   
  module.js                            |    51.8 |      100 |       0 |    51.8 | ...36-240,243-247 
 ...ton/bindings/ccip-tickets-v2-2.0.0 |   69.23 |      100 |       0 |   69.23 |                   
  index.js                             |   69.23 |      100 |       0 |   69.23 | 3-6               
 ...indings/ccip-tickets-v2-2.0.0/CCIP |   63.63 |      100 |       0 |   63.63 |                   
  index.js                             |   63.63 |      100 |       0 |   63.63 | 3-6               
 ...ip-tickets-v2-2.0.0/CCIP/TicketsV2 |   59.13 |      100 |    9.09 |   59.13 |                   
  index.js                             |     100 |      100 |     100 |     100 |                   
  module.js                            |   55.66 |      100 |       0 |   55.66 | ...75,81,85,93,97 
 ...anton/bindings/chainlink-api-2.0.0 |   69.23 |      100 |       0 |   69.23 |                   
  index.js                             |   69.23 |      100 |       0 |   69.23 | 3-6               
 ...ings/chainlink-api-2.0.0/Chainlink |   63.63 |      100 |       0 |   63.63 |                   
  index.js                             |   63.63 |      100 |       0 |   63.63 | 3-6               
 ...pi-2.0.0/Chainlink/InstanceAddress |   70.58 |      100 |   33.33 |   70.58 |                   
  index.js                             |     100 |      100 |     100 |     100 |                   
  module.js                            |      60 |      100 |       0 |      60 | 3-6,16-18,21-23   
 .../bindings/daml-prim-DA-Types-1.0.0 |   69.23 |      100 |       0 |   69.23 |                   
  index.js                             |   69.23 |      100 |       0 |   69.23 | 3-6               
 ...ndings/daml-prim-DA-Types-1.0.0/DA |   63.63 |      100 |       0 |   63.63 |                   
  index.js                             |   63.63 |      100 |       0 |   63.63 | 3-6               
 .../daml-prim-DA-Types-1.0.0/DA/Types |   10.84 |      100 |    4.54 |   10.84 |                   
  index.js                             |     100 |      100 |     100 |     100 |                   
  module.js                            |     9.7 |      100 |       0 |     9.7 | ...44-669,673-700 
 ...ngs/daml-stdlib-DA-Set-Types-1.0.0 |   69.23 |      100 |       0 |   69.23 |                   
  index.js                             |   69.23 |      100 |       0 |   69.23 | 3-6               
 .../daml-stdlib-DA-Set-Types-1.0.0/DA |   63.63 |      100 |       0 |   63.63 |                   
  index.js                             |   63.63 |      100 |       0 |   63.63 | 3-6               
 ...l-stdlib-DA-Set-Types-1.0.0/DA/Set |   63.63 |      100 |       0 |   63.63 |                   
  index.js                             |   63.63 |      100 |       0 |   63.63 | 3-6               
 ...ib-DA-Set-Types-1.0.0/DA/Set/Types |   55.55 |      100 |   33.33 |   55.55 |                   
  index.js                             |     100 |      100 |     100 |     100 |                   
  module.js                            |   40.74 |      100 |       0 |   40.74 | 3-6,15-26         
 ...gs/daml-stdlib-DA-Time-Types-1.0.0 |   69.23 |      100 |       0 |   69.23 |                   
  index.js                             |   69.23 |      100 |       0 |   69.23 | 3-6               
 ...daml-stdlib-DA-Time-Types-1.0.0/DA |   63.63 |      100 |       0 |   63.63 |                   
  index.js                             |   63.63 |      100 |       0 |   63.63 | 3-6               
 ...stdlib-DA-Time-Types-1.0.0/DA/Time |   63.63 |      100 |       0 |   63.63 |                   
  index.js                             |   63.63 |      100 |       0 |   63.63 | 3-6               
 ...-DA-Time-Types-1.0.0/DA/Time/Types |   70.58 |      100 |   33.33 |   70.58 |                   
  index.js                             |     100 |      100 |     100 |     100 |                   
  module.js                            |      60 |      100 |       0 |      60 | 3-6,16-18,21-23   
 ...-stdlib-DA-Internal-Template-1.0.0 |   69.23 |      100 |       0 |   69.23 |                   
  index.js                             |   69.23 |      100 |       0 |   69.23 | 3-6               
 ...dlib-DA-Internal-Template-1.0.0/DA |   63.63 |      100 |       0 |   63.63 |                   
  index.js                             |   63.63 |      100 |       0 |   63.63 | 3-6               
 ...nternal-Template-1.0.0/DA/Internal |   63.63 |      100 |       0 |   63.63 |                   
  index.js                             |   63.63 |      100 |       0 |   63.63 | 3-6               
 ...emplate-1.0.0/DA/Internal/Template |   77.41 |      100 |   33.33 |   77.41 |                   
  index.js                             |     100 |      100 |     100 |     100 |                   
  module.js                            |   68.18 |      100 |       0 |   68.18 | 3-6,16-17,20      
 ...src/canton/bindings/mcms-api-1.0.0 |   69.23 |      100 |       0 |   69.23 |                   
  index.js                             |   69.23 |      100 |       0 |   69.23 | 3-6               
 ...anton/bindings/mcms-api-1.0.0/MCMS |   76.47 |      100 |       0 |   76.47 |                   
  index.js                             |   76.47 |      100 |       0 |   76.47 | 3-6               
 ...bindings/mcms-api-1.0.0/MCMS/Codec |   54.02 |      100 |   16.66 |   54.02 |                   
  index.js                             |     100 |      100 |     100 |     100 |                   
  module.js                            |   48.71 |      100 |       0 |   48.71 | ...57,63-68,71-76 
 ...indings/mcms-api-1.0.0/MCMS/Crypto |   63.15 |      100 |   33.33 |   63.15 |                   
  index.js                             |     100 |      100 |     100 |     100 |                   
  module.js                            |   51.72 |      100 |       0 |   51.72 | 3-6,16-20,23-27   
 ...s/mcms-api-1.0.0/MCMS/MCMSReceiver |   54.83 |      100 |    8.33 |   54.83 |                   
  index.js                             |     100 |      100 |     100 |     100 |                   
  module.js                            |    51.3 |      100 |       0 |    51.3 | ...02-106,109-113 
 ...bindings/mcms-api-1.0.0/MCMS/Types |   43.24 |      100 |    7.69 |   43.24 |                   
  index.js                             |     100 |      100 |     100 |     100 |                   
  module.js                            |   40.84 |      100 |       0 |   40.84 | ...00-204,207-211 
 ...plice-api-token-burn-mint-v1-1.0.0 |   69.23 |      100 |       0 |   69.23 |                   
  index.js                             |   69.23 |      100 |       0 |   69.23 | 3-6               
 ...pi-token-burn-mint-v1-1.0.0/Splice |   63.63 |      100 |       0 |   63.63 |                   
  index.js                             |   63.63 |      100 |       0 |   63.63 | 3-6               
 ...oken-burn-mint-v1-1.0.0/Splice/Api |   63.63 |      100 |       0 |   63.63 |                   
  index.js                             |   63.63 |      100 |       0 |   63.63 | 3-6               
 ...urn-mint-v1-1.0.0/Splice/Api/Token |   63.63 |      100 |       0 |   63.63 |                   
  index.js                             |   63.63 |      100 |       0 |   63.63 | 3-6               
 ...-1.0.0/Splice/Api/Token/BurnMintV1 |   61.84 |      100 |    5.88 |   61.84 |                   
  index.js                             |     100 |      100 |     100 |     100 |                   
  module.js                            |   59.44 |      100 |       0 |   59.44 | ...30-134,137-141 
 .../splice-api-token-holding-v1-1.0.0 |   69.23 |      100 |       0 |   69.23 |                   
  index.js                             |   69.23 |      100 |       0 |   69.23 | 3-6               
 ...-api-token-holding-v1-1.0.0/Splice |   63.63 |      100 |       0 |   63.63 |                   
  index.js                             |   63.63 |      100 |       0 |   63.63 | 3-6               
 ...-token-holding-v1-1.0.0/Splice/Api |   63.63 |      100 |       0 |   63.63 |                   
  index.js                             |   63.63 |      100 |       0 |   63.63 | 3-6               
 ...-holding-v1-1.0.0/Splice/Api/Token |   63.63 |      100 |       0 |   63.63 |                   
  index.js                             |   63.63 |      100 |       0 |   63.63 | 3-6               
 ...1-1.0.0/Splice/Api/Token/HoldingV1 |      64 |      100 |   11.11 |      64 |                   
  index.js                             |     100 |      100 |     100 |     100 |                   
  module.js                            |   60.43 |      100 |       0 |   60.43 | ...70,76-81,84-89 
 ...splice-api-token-metadata-v1-1.0.0 |   69.23 |      100 |       0 |   69.23 |                   
  index.js                             |   69.23 |      100 |       0 |   69.23 | 3-6               
 ...api-token-metadata-v1-1.0.0/Splice |   63.63 |      100 |       0 |   63.63 |                   
  index.js                             |   63.63 |      100 |       0 |   63.63 | 3-6               
 ...token-metadata-v1-1.0.0/Splice/Api |   63.63 |      100 |       0 |   63.63 |                   
  index.js                             |   63.63 |      100 |       0 |   63.63 | 3-6               
 ...metadata-v1-1.0.0/Splice/Api/Token |   63.63 |      100 |       0 |   63.63 |                   
  index.js                             |   63.63 |      100 |       0 |   63.63 | 3-6               
 ...-1.0.0/Splice/Api/Token/MetadataV1 |   45.71 |      100 |    8.33 |   45.71 |                   
  index.js                             |     100 |      100 |     100 |     100 |                   
  module.js                            |   42.77 |      100 |       0 |   42.77 | ...57-159,162-164 
 ...oken-transfer-instruction-v1-1.0.0 |   69.23 |      100 |       0 |   69.23 |                   
  index.js                             |   69.23 |      100 |       0 |   69.23 | 3-6               
 ...ansfer-instruction-v1-1.0.0/Splice |   63.63 |      100 |       0 |   63.63 |                   
  index.js                             |   63.63 |      100 |       0 |   63.63 | 3-6               
 ...er-instruction-v1-1.0.0/Splice/Api |   63.63 |      100 |       0 |   63.63 |                   
  index.js                             |   63.63 |      100 |       0 |   63.63 | 3-6               
 ...truction-v1-1.0.0/Splice/Api/Token |   63.63 |      100 |       0 |   63.63 |                   
  index.js                             |   63.63 |      100 |       0 |   63.63 | 3-6               
 ...ce/Api/Token/TransferInstructionV1 |   56.73 |      100 |    2.32 |   56.73 |                   
  index.js                             |     100 |      100 |     100 |     100 |                   
  module.js                            |    55.7 |      100 |       0 |    55.7 | ...68-370,373-375 
 ccip-sdk/src/canton/clients           |     100 |     92.3 |     100 |     100 |                   
  url-template.ts                      |     100 |     92.3 |     100 |     100 | 43                
 ccip-sdk/src/canton/clients/eds       |    75.3 |      100 |    37.5 |    75.3 |                   
  client.ts                            |    75.3 |      100 |    37.5 |    75.3 | ...68,71-74,77-80 
 ...-sdk/src/canton/clients/ledger-api |     100 |      100 |     100 |     100 |                   
  client.ts                            |     100 |      100 |     100 |     100 |                   
 ...k/src/canton/clients/tokenStandard |      84 |      100 |      60 |      84 |                   
  client.ts                            |      84 |      100 |      60 |      84 | 40-43,46-49       
 ccip-sdk/src/cct                      |     100 |    98.38 |     100 |     100 |                   
  errors.ts                            |     100 |      100 |     100 |     100 |                   
  operation.ts                         |     100 |      100 |     100 |     100 |                   
  query.ts                             |     100 |      100 |     100 |     100 |                   
  remote-address.ts                    |     100 |    95.45 |     100 |     100 | 80                
  token-manager.ts                     |     100 |      100 |     100 |     100 |                   
 ccip-sdk/src/cct/canton               |   69.69 |       76 |   48.57 |   69.69 |                   
  constants.ts                         |     100 |      100 |     100 |     100 |                   
  encoding.ts                          |   98.24 |       75 |     100 |   98.24 | 53                
  gateway.test.helpers.ts              |   19.93 |       50 |       0 |   19.93 | ...45-228,237-286 
  index.ts                             |   86.86 |      100 |      40 |   86.86 | ...78-181,185-186 
  operation.ts                         |   96.04 |    71.42 |     100 |   96.04 | 126-127,131-135   
  query.ts                             |     100 |      100 |     100 |     100 |                   
  validate.ts                          |   79.84 |       75 |     100 |   79.84 | ...19-124,126-127 
 ...rc/cct/canton/token-admin-registry |      88 |    83.33 |     100 |      88 |                   
  shared.ts                            |      88 |    83.33 |     100 |      88 | 125-136,143-148   
 ...on/token-admin-registry/operations |   98.94 |    82.14 |     100 |   98.94 |                   
  get-token-admin-registry.ts          |   98.87 |    81.48 |     100 |   98.87 | 132,177           
  index.ts                             |     100 |      100 |     100 |     100 |                   
 ccip-sdk/src/cct/canton/token-pool    |   91.16 |       90 |   89.47 |   91.16 |                   
  preapproval.ts                       |   93.18 |    57.14 |     100 |   93.18 | 38-40             
  shared.ts                            |   91.02 |    94.33 |   88.88 |   91.02 | ...69-374,548-549 
 ...c/cct/canton/token-pool/operations |   91.78 |    71.83 |     100 |   91.78 |                   
  apply-chain-updates.ts               |   80.59 |    77.41 |     100 |   80.59 | ...36-141,226-235 
  deploy-token-pool.ts                 |   93.67 |    77.58 |     100 |   93.67 | ...19-224,226-231 
  get-rate-limiter-state.ts            |   96.66 |    79.31 |     100 |   96.66 | 75-80             
  get-token-pool-state.ts              |   93.07 |    55.55 |     100 |   93.07 | ...75,283-287,320 
  index.ts                             |     100 |      100 |     100 |     100 |                   
  pool-choice-operation.ts             |   89.47 |       80 |     100 |   89.47 | 33-38             
  set-observers.ts                     |     100 |      100 |     100 |     100 |                   
  set-rate-limit-config.ts             |   89.15 |    73.68 |     100 |   89.15 | ...21-126,158-163 
 ccip-sdk/src/cct/evm                  |   94.23 |    96.72 |   38.85 |   94.23 |                   
  index.ts                             |   93.35 |      100 |    26.2 |   93.35 | ...4410,4425-4426 
  operation.ts                         |     100 |      100 |     100 |     100 |                   
  query.ts                             |     100 |      100 |     100 |     100 |                   
  simulate.ts                          |   96.72 |    96.96 |     100 |   96.72 | 78-83             
  submit.ts                            |     100 |    87.17 |     100 |     100 | 45,93,113-114,133 
  validate.ts                          |   98.12 |    98.24 |     100 |   98.12 | 100-104           
 ...dk/src/cct/evm/advanced-pool-hooks |     100 |     97.5 |     100 |     100 |                   
  contracts.ts                         |     100 |     97.5 |     100 |     100 | 255               
 ...evm/advanced-pool-hooks/operations |   99.01 |    98.05 |     100 |   99.01 |                   
  apply-ccv-config-updates.ts          |   94.32 |    90.47 |     100 |   94.32 | 81-84,101-104     
  deploy-advanced-pool-hooks.ts        |     100 |      100 |     100 |     100 |                   
  ...-pool-hooks-authorized-callers.ts |     100 |      100 |     100 |     100 |                   
  get-all-ccv-configs.ts               |     100 |      100 |     100 |     100 |                   
  get-ccv-config.ts                    |     100 |      100 |     100 |     100 |                   
  get-policy-engine.ts                 |     100 |      100 |     100 |     100 |                   
  get-required-ccvs.ts                 |     100 |      100 |     100 |     100 |                   
  get-threshold-amount.ts              |     100 |      100 |     100 |     100 |                   
  index.ts                             |     100 |      100 |     100 |     100 |                   
  set-policy-engine.ts                 |     100 |      100 |     100 |     100 |                   
  set-threshold-amount.ts              |     100 |      100 |     100 |     100 |                   
  update-authorized-callers.ts         |     100 |      100 |     100 |     100 |                   
 .../cct/evm/artifacts/bytecode/V2_0_0 |     100 |      100 |     100 |     100 |                   
  advanced-pool-hooks.ts               |     100 |      100 |     100 |     100 |                   
  burn-from-mint-token-pool.ts         |     100 |      100 |     100 |     100 |                   
  burn-mint-token-pool.ts              |     100 |      100 |     100 |     100 |                   
  ...h-lock-release-flag-token-pool.ts |     100 |      100 |     100 |     100 |                   
  burn-to-address-mint-token-pool.ts   |     100 |      100 |     100 |     100 |                   
  burn-with-from-mint-token-pool.ts    |     100 |      100 |     100 |     100 |                   
  cross-chain-pool-token.ts            |     100 |      100 |     100 |     100 |                   
  cross-chain-token.ts                 |     100 |      100 |     100 |     100 |                   
  erc20-lockbox.ts                     |     100 |      100 |     100 |     100 |                   
  lock-release-token-pool.ts           |     100 |      100 |     100 |     100 |                   
  siloed-lock-release-token-pool.ts    |     100 |      100 |     100 |     100 |                   
 ccip-sdk/src/cct/evm/lockbox          |     100 |    97.05 |     100 |     100 |                   
  contracts.ts                         |     100 |    97.05 |     100 |     100 | 97                
 ...sdk/src/cct/evm/lockbox/operations |     100 |      100 |     100 |     100 |                   
  deploy-lockbox.ts                    |     100 |      100 |     100 |     100 |                   
  deposit.ts                           |     100 |      100 |     100 |     100 |                   
  ...all-lockbox-authorized-callers.ts |     100 |      100 |     100 |     100 |                   
  index.ts                             |     100 |      100 |     100 |     100 |                   
  update-authorized-callers.ts         |     100 |      100 |     100 |     100 |                   
  withdraw.ts                          |     100 |      100 |     100 |     100 |                   
 ccip-sdk/src/cct/evm/token            |   99.36 |    87.69 |     100 |   99.36 |                   
  contracts.ts                         |   99.05 |    91.48 |     100 |   99.05 | 87-88,110         
  roles.ts                             |     100 |    77.77 |     100 |     100 | 55-61,80-86       
 ...k/src/cct/evm/token-admin-registry |     100 |      100 |     100 |     100 |                   
  contracts.ts                         |     100 |      100 |     100 |     100 |                   
 ...vm/token-admin-registry/operations |     100 |      100 |     100 |     100 |                   
  accept-admin.ts                      |     100 |      100 |     100 |     100 |                   
  get-supported-tokens.ts              |     100 |      100 |     100 |     100 |                   
  get-token-admin-registry.ts          |     100 |      100 |     100 |     100 |                   
  index.ts                             |     100 |      100 |     100 |     100 |                   
  register-admin.ts                    |     100 |      100 |     100 |     100 |                   
  set-pool.ts                          |     100 |      100 |     100 |     100 |                   
  transfer-admin.ts                    |     100 |      100 |     100 |     100 |                   
 ccip-sdk/src/cct/evm/token-pool       |     100 |    99.45 |     100 |     100 |                   
  contracts.ts                         |     100 |    99.34 |     100 |     100 | 901               
  rate-limit.ts                        |     100 |      100 |     100 |     100 |                   
  remote-pool.ts                       |     100 |      100 |     100 |     100 |                   
 ...sdk/src/cct/evm/token-pool-factory |      99 |    93.33 |     100 |      99 |                   
  contracts.ts                         |   93.27 |    85.71 |     100 |   93.27 | 68-75             
  deploy.ts                            |     100 |    93.65 |     100 |     100 | 336,339,341,398   
  predict.ts                           |     100 |       95 |     100 |     100 | 88                
 .../src/cct/evm/token-pool/operations |   99.77 |    96.85 |     100 |   99.77 |                   
  accept-pool-ownership.ts             |     100 |      100 |     100 |     100 |                   
  add-remote-pool.ts                   |     100 |      100 |     100 |     100 |                   
  apply-allowlist-updates.ts           |     100 |    96.87 |     100 |     100 | 232               
  apply-chain-updates.ts               |     100 |      100 |     100 |     100 |                   
  ...en-transfer-fee-config-updates.ts |   97.98 |    92.59 |     100 |   97.98 | 159-162           
  configure-siloed-lockboxes.ts        |     100 |      100 |     100 |     100 |                   
  deploy-cross-chain-pool-token.ts     |     100 |      100 |     100 |     100 |                   
  deploy-token-pool.ts                 |     100 |    85.71 |     100 |     100 | 150-153,164       
  get-advanced-pool-hooks.ts           |     100 |      100 |     100 |     100 |                   
  get-all-siloed-lockbox-configs.ts    |     100 |      100 |     100 |     100 |                   
  get-allowed-finality-config.ts       |     100 |      100 |     100 |     100 |                   
  get-allowlist-enabled.ts             |     100 |      100 |     100 |     100 |                   
  get-allowlist.ts                     |     100 |      100 |     100 |     100 |                   
  get-available-tokens.ts              |     100 |    88.88 |     100 |     100 | 80                
  get-burn-address.ts                  |     100 |      100 |     100 |     100 |                   
  get-chain-rebalancer.ts              |     100 |      100 |     100 |     100 |                   
  get-dynamic-config.ts                |     100 |      100 |     100 |     100 |                   
  get-fee.ts                           |     100 |     90.9 |     100 |     100 | 56                
  get-lockbox.ts                       |     100 |      100 |     100 |     100 |                   
  get-rebalancer.ts                    |     100 |      100 |     100 |     100 |                   
  get-siloed-lockbox.ts                |     100 |    88.88 |     100 |     100 | 82                
  get-token-pool-remotes.ts            |     100 |      100 |     100 |     100 |                   
  get-token-pool-state.ts              |   98.75 |    96.15 |     100 |   98.75 | 316-319           
  get-token-transfer-fee-config.ts     |   94.79 |    57.14 |     100 |   94.79 | 63,66-69          
  index.ts                             |     100 |      100 |     100 |     100 |                   
  is-siloed.ts                         |     100 |      100 |     100 |     100 |                   
  provide-liquidity.ts                 |     100 |      100 |     100 |     100 |                   
  provide-siloed-liquidity.ts          |     100 |      100 |     100 |     100 |                   
  remove-remote-pool.ts                |     100 |      100 |     100 |     100 |                   
  set-allowed-finality-config.ts       |     100 |      100 |     100 |     100 |                   
  set-chain-rate-limiter-configs.ts    |     100 |    97.05 |     100 |     100 | 116               
  set-dynamic-config.ts                |     100 |      100 |     100 |     100 |                   
  set-rate-limit-admin.ts              |     100 |      100 |     100 |     100 |                   
  set-rebalancer.ts                    |     100 |      100 |     100 |     100 |                   
  set-remote-pool.ts                   |     100 |      100 |     100 |     100 |                   
  set-silo-rebalancer.ts               |     100 |      100 |     100 |     100 |                   
  transfer-liquidity.ts                |     100 |      100 |     100 |     100 |                   
  transfer-pool-ownership.ts           |     100 |      100 |     100 |     100 |                   
  update-advanced-pool-hooks.ts        |     100 |      100 |     100 |     100 |                   
  update-silo-designations.ts          |     100 |      100 |     100 |     100 |                   
  withdraw-fee-tokens.ts               |     100 |      100 |     100 |     100 |                   
  withdraw-liquidity.ts                |     100 |      100 |     100 |     100 |                   
  withdraw-siloed-liquidity.ts         |     100 |      100 |     100 |     100 |                   
 ccip-sdk/src/cct/evm/token/operations |     100 |     99.4 |     100 |     100 |                   
  accept-default-admin-transfer.ts     |     100 |      100 |     100 |     100 |                   
  accept-token-ownership.ts            |     100 |      100 |     100 |     100 |                   
  approve-token.ts                     |     100 |      100 |     100 |     100 |                   
  begin-default-admin-transfer.ts      |     100 |      100 |     100 |     100 |                   
  cancel-default-admin-transfer.ts     |     100 |      100 |     100 |     100 |                   
  deploy-token.ts                      |     100 |      100 |     100 |     100 |                   
  get-burners.ts                       |     100 |      100 |     100 |     100 |                   
  get-ccip-admin.ts                    |     100 |      100 |     100 |     100 |                   
  get-minters.ts                       |     100 |      100 |     100 |     100 |                   
  get-token-default-admin.ts           |     100 |      100 |     100 |     100 |                   
  get-token-owner.ts                   |     100 |      100 |     100 |     100 |                   
  grant-burn-role.ts                   |     100 |      100 |     100 |     100 |                   
  grant-mint-and-burn-roles.ts         |     100 |      100 |     100 |     100 |                   
  grant-mint-role.ts                   |     100 |      100 |     100 |     100 |                   
  index.ts                             |     100 |      100 |     100 |     100 |                   
  is-burner.ts                         |     100 |      100 |     100 |     100 |                   
  is-minter.ts                         |     100 |      100 |     100 |     100 |                   
  mint.ts                              |     100 |     90.9 |     100 |     100 | 85                
  revoke-burn-role.ts                  |     100 |      100 |     100 |     100 |                   
  revoke-mint-role.ts                  |     100 |      100 |     100 |     100 |                   
  set-ccip-admin.ts                    |     100 |      100 |     100 |     100 |                   
  transfer-token-ownership.ts          |     100 |      100 |     100 |     100 |                   
 ccip-sdk/src/cct/solana               |   99.71 |    97.52 |   98.13 |   99.71 |                   
  index.ts                             |   99.66 |      100 |   97.22 |   99.66 | 253-254,2375-2380 
  operation.ts                         |     100 |      100 |     100 |     100 |                   
  query.ts                             |     100 |      100 |     100 |     100 |                   
  serialize.ts                         |     100 |     92.3 |     100 |     100 | 27                
  submit.ts                            |   99.23 |     87.5 |     100 |   99.23 | 123               
  validate.ts                          |     100 |    99.32 |     100 |     100 | 433               
 ccip-sdk/src/cct/solana/programs      |     100 |      100 |     100 |     100 |                   
  alt.ts                               |     100 |      100 |     100 |     100 |                   
  fee-quoter.ts                        |     100 |      100 |     100 |     100 |                   
  router.ts                            |     100 |      100 |     100 |     100 |                   
  token-pool.ts                        |     100 |      100 |     100 |     100 |                   
  token.ts                             |     100 |      100 |     100 |     100 |                   
 ccip-sdk/src/cct/solana/token         |     100 |      100 |     100 |     100 |                   
  constants.ts                         |     100 |      100 |     100 |     100 |                   
 ...rc/cct/solana/token-admin-registry |     100 |      100 |     100 |     100 |                   
  constants.ts                         |     100 |      100 |     100 |     100 |                   
 ...na/token-admin-registry/operations |   99.63 |    98.76 |     100 |   99.63 |                   
  accept-admin.ts                      |     100 |      100 |     100 |     100 |                   
  append-to-lookup-table.ts            |     100 |      100 |     100 |     100 |                   
  create-lookup-table.ts               |     100 |      100 |     100 |     100 |                   
  get-supported-tokens.ts              |     100 |      100 |     100 |     100 |                   
  get-token-admin-registry.ts          |     100 |      100 |     100 |     100 |                   
  index.ts                             |     100 |      100 |     100 |     100 |                   
  ...override-pending-administrator.ts |     100 |      100 |     100 |     100 |                   
  register-admin.ts                    |   98.03 |       95 |     100 |   98.03 | 219-223           
  set-pool.ts                          |     100 |      100 |     100 |     100 |                   
  transfer-admin.ts                    |     100 |      100 |     100 |     100 |                   
 ...c/cct/solana/token-pool/operations |   99.64 |    98.44 |     100 |   99.64 |                   
  accept-pool-ownership.ts             |     100 |      100 |     100 |     100 |                   
  append-remote-pool-addresses.ts      |     100 |      100 |     100 |     100 |                   
  apply-chain-updates.ts               |     100 |    98.27 |     100 |     100 | 158               
  configure-allowlist.ts               |     100 |      100 |     100 |     100 |                   
  create-token-multisig.ts             |    95.9 |     92.5 |     100 |    95.9 | ...01-102,104-109 
  delete-chain-remote-config.ts        |     100 |      100 |     100 |     100 |                   
  deploy-token-pool.ts                 |     100 |      100 |     100 |     100 |                   
  edit-chain-remote-config.ts          |     100 |      100 |     100 |     100 |                   
  get-token-pool-remotes.ts            |     100 |      100 |     100 |     100 |                   
  get-token-pool-state.ts              |     100 |      100 |     100 |     100 |                   
  index.ts                             |     100 |      100 |     100 |     100 |                   
  init-chain-remote-config.ts          |     100 |      100 |     100 |     100 |                   
  provide-liquidity.ts                 |     100 |      100 |     100 |     100 |                   
  remove-from-allowlist.ts             |     100 |      100 |     100 |     100 |                   
  set-can-accept-liquidity.ts          |     100 |      100 |     100 |     100 |                   
  set-chain-rate-limit.ts              |   99.15 |    96.15 |     100 |   99.15 | 65-66             
  set-rate-limit-admin.ts              |     100 |      100 |     100 |     100 |                   
  set-rebalancer.ts                    |     100 |      100 |     100 |     100 |                   
  transfer-pool-ownership.ts           |     100 |      100 |     100 |     100 |                   
  withdraw-liquidity.ts                |     100 |      100 |     100 |     100 |                   
 ...dk/src/cct/solana/token/operations |     100 |    97.98 |     100 |     100 |                   
  approve-token.ts                     |     100 |      100 |     100 |     100 |                   
  create-token-account.ts              |     100 |      100 |     100 |     100 |                   
  deploy-token.ts                      |     100 |      100 |     100 |     100 |                   
  get-token-info.ts                    |     100 |       70 |     100 |     100 | 69,80-81          
  index.ts                             |     100 |      100 |     100 |     100 |                   
  mint-tokens.ts                       |     100 |      100 |     100 |     100 |                   
  set-token-authority.ts               |     100 |    97.61 |     100 |     100 | 141               
  update-metadata-authority.ts         |     100 |      100 |     100 |     100 |                   
 ccip-sdk/src/errors                   |   91.62 |    77.74 |   64.58 |   91.62 |                   
  CCIPError.ts                         |     100 |      100 |     100 |     100 |                   
  codes.ts                             |     100 |      100 |     100 |     100 |                   
  index.ts                             |     100 |      100 |     100 |     100 |                   
  pure.ts                              |     100 |       75 |     100 |     100 | 32                
  recovery.ts                          |     100 |      100 |     100 |     100 |                   
  specialized.ts                       |    89.8 |    75.17 |   62.77 |    89.8 | ...3949,3972-3981 
  utils.ts                             |   94.44 |    81.48 |     100 |   94.44 | 15,17,22,24       
 ccip-sdk/src/evm                      |   93.57 |    83.53 |   93.12 |   93.57 |                   
  const.ts                             |   98.68 |    92.85 |     100 |   98.68 | 124-125           
  errors.ts                            |   92.74 |    83.62 |     100 |   92.74 | ...85,239-242,247 
  exec-fixtures.test.helpers.ts        |   88.39 |       75 |      80 |   88.39 | ...01-105,107-111 
  extra-args.ts                        |   98.07 |    63.93 |     100 |   98.07 | ...85-186,211-212 
  fork.test.data.ts                    |     100 |      100 |     100 |     100 |                   
  gas.ts                               |   98.19 |    63.15 |     100 |   98.19 | 90-91,93          
  hasher.ts                            |     100 |     92.3 |     100 |     100 | 135               
  index.ts                             |   89.43 |    82.45 |   91.56 |   89.43 | ...2915,3072-3103 
  logs.ts                              |   99.16 |    92.25 |      90 |   99.16 | 70-71,76-77       
  messageCodec.ts                      |     100 |      100 |     100 |     100 |                   
  messages.ts                          |     100 |      100 |     100 |     100 |                   
  offchain.ts                          |   94.48 |    72.41 |     100 |   94.48 | ...23-124,126-128 
  simulate.ts                          |     100 |    94.82 |     100 |     100 | 109-111,425       
  types.ts                             |     100 |      100 |     100 |     100 |                   
 ccip-sdk/src/evm/viem                 |   79.76 |    90.62 |   69.23 |   79.76 |                   
  client-adapter.ts                    |     100 |       90 |     100 |     100 | 48,74             
  index.ts                             |     100 |      100 |     100 |     100 |                   
  wallet-adapter.ts                    |   63.09 |     90.9 |   55.55 |   63.09 | ...91-124,131-157 
 ccip-sdk/src/hasher                   |   94.24 |    80.35 |     100 |   94.24 |                   
  common.ts                            |     100 |      100 |     100 |     100 |                   
  hasher.ts                            |     100 |      100 |     100 |     100 |                   
  index.ts                             |     100 |      100 |     100 |     100 |                   
  merklemulti.ts                       |   93.43 |       78 |     100 |   93.43 | ...06-307,315-316 
 ccip-sdk/src/shared                   |    82.8 |    88.75 |   70.58 |    82.8 |                   
  bcs-codecs.ts                        |   74.82 |    66.66 |   44.44 |   74.82 | ...60-269,278-282 
  codec.ts                             |    94.3 |    95.08 |     100 |    94.3 | 139-140,178-186   
  constants.ts                         |     100 |      100 |     100 |     100 |                   
 ccip-sdk/src/solana                   |   90.69 |    83.49 |    94.3 |   90.69 |                   
  cleanup.ts                           |   58.17 |     62.5 |      80 |   58.17 | ...28-247,259-263 
  coder.ts                             |     100 |    88.23 |     100 |     100 | 33-36             
  exec-v2.ts                           |   97.67 |    87.71 |     100 |   97.67 | ...69-371,469-470 
  exec.ts                              |   81.59 |    63.33 |   83.33 |   81.59 | ...76-480,520-521 
  extra-args.ts                        |   79.51 |       84 |   83.33 |   79.51 | 137-195           
  fork.test.data.ts                    |     100 |      100 |     100 |     100 |                   
  gas.ts                               |   92.06 |       75 |     100 |   92.06 | ...,81-90,170-171 
  hasher.ts                            |   96.49 |    81.81 |     100 |   96.49 | 64-67             
  index.ts                             |   90.67 |    83.33 |   93.54 |   90.67 | ...2375,2379-2412 
  logs.ts                              |   90.11 |    78.57 |     100 |   90.11 | ...50-151,163-164 
  offchain.ts                          |     100 |      100 |     100 |     100 |                   
  resolution.ts                        |   99.82 |    98.38 |     100 |   99.82 | 199               
  send-v2.ts                           |   97.52 |    96.22 |     100 |   97.52 | 177-182,282-283   
  send.ts                              |   96.36 |    67.85 |     100 |   96.36 | ...07,412-413,447 
  signatures-cache.ts                  |   87.58 |    75.38 |     100 |   87.58 | ...25-232,274-275 
  token-admin-registry.ts              |     100 |    96.96 |     100 |     100 | 60                
  token-pool.ts                        |     100 |      100 |     100 |     100 |                   
  types.ts                             |     100 |      100 |     100 |     100 |                   
  utils.ts                             |   86.22 |    83.59 |   86.66 |   86.22 | ...71-772,973-976 
  v1.ts                                |   96.63 |       86 |     100 |   96.63 | 66-69,122-125     
 ccip-sdk/src/sui                      |   68.61 |    68.96 |   60.28 |   68.61 |                   
  discovery.ts                         |   31.38 |    28.57 |   13.33 |   31.38 | ...37-785,788-822 
  events.ts                            |   86.71 |     65.4 |   83.33 |   86.71 | ...20-627,686-699 
  exec.ts                              |   30.71 |      100 |       0 |   30.71 | 37-89,101-153     
  execution.test.data.ts               |     100 |      100 |     100 |     100 |                   
  grpc-shapes.ts                       |   82.66 |    60.63 |   88.57 |   82.66 | ...1150,1172-1175 
  grpc.ts                              |   74.13 |    76.32 |    65.3 |   74.13 | ...1082,1085-1094 
  hasher.ts                            |   98.19 |    66.66 |     100 |   98.19 | 35,51             
  index.ts                             |   50.48 |    76.56 |   41.17 |   50.48 | ...2381,2385-2401 
  logs.ts                              |   97.28 |    66.66 |     100 |   97.28 | ...62-165,186-187 
  objects.ts                           |   47.65 |       80 |   58.33 |   47.65 | ...60-316,327-470 
  types.ts                             |     100 |      100 |     100 |     100 |                   
 ccip-sdk/src/sui/manuallyExec         |   53.36 |       75 |      50 |   53.36 |                   
  encoder.ts                           |    83.9 |    66.66 |     100 |    83.9 | 51-58,73-77,82    
  index.ts                             |   33.82 |      100 |       0 |   33.82 | 47-136            
 ccip-sdk/src/ton                      |   91.66 |    83.61 |   92.42 |   91.66 |                   
  exec.ts                              |     100 |      100 |     100 |     100 |                   
  extra-args.ts                        |   98.66 |    72.72 |     100 |   98.66 | 156-157,222       
  hasher.ts                            |   78.07 |    77.77 |      75 |   78.07 | 100-108,156-187   
  index.ts                             |   93.09 |    85.75 |   85.93 |   93.09 | ...2207,2214-2215 
  logs.ts                              |    94.2 |    86.03 |     100 |    94.2 | ...17-624,680-683 
  send.ts                              |   95.52 |    66.66 |     100 |   95.52 | 37-44,188         
  ton-cache.ts                         |     100 |    96.55 |     100 |     100 | 102               
  types.ts                             |   91.24 |    81.25 |     100 |   91.24 | ...61-63,71-74,92 
  utils.ts                             |    77.4 |    70.58 |     100 |    77.4 | ...52-410,412-415 
 ccip-sdk/src/verifiers                |   98.13 |       91 |     100 |   98.13 |                   
  codec.ts                             |   96.87 |    89.13 |     100 |   96.87 | 51-53,70,97       
  index.ts                             |     100 |      100 |     100 |     100 |                   
  transport.ts                         |   98.54 |     87.5 |     100 |   98.54 | 84-85             
 scripts                               |   90.49 |    73.26 |     100 |   90.49 |                   
  test-endpoints.ts                    |   98.62 |    90.24 |     100 |   98.62 | 171-173,286       
  useResource.ts                       |   83.57 |    61.66 |     100 |   83.57 | ...81-286,301-302 
---------------------------------------|---------|----------|---------|---------|-------------------

marek-sadura and others added 2 commits November 5, 2026 19:25
)

## What

- Fix the `WaitForSafe` case in `CantonChain.getCCIPReceiver`: a safe
receiver now matches only `'safe'` messages
- The finality match moved into `receiverFinalityMatches`
(`canton/receiver-finality.ts`) so it can be unit tested

## Why

- The check was inverted (`if (finality === 'safe') return undefined`):
- A safe message never found its receiver, so the setup step kept asking
for a new one and `execute` threw with
`disableAutomaticContractCreation`
- A finalized or block-depth message could resolve to an existing safe
receiver with the same CCVs

## Testing

- `receiver-finality.test.ts` covers each receiver config against each
finality; it fails on the old logic. All 113 `src/canton` tests, `tsc
--noEmit`, `oxlint` and `oxfmt --check` pass in `ccip-sdk`
- Not run against a ledger: Transporter has no safe-finality lane to
Canton yet

[JIRA](https://smartcontract-it.atlassian.net/browse/DAPP-11855)
# Conflicts:
#	ccip-sdk/package.json
#	ccip-sdk/src/canton/index.ts
#	package-lock.json
@friedemannf
friedemannf marked this pull request as ready for review November 9, 2026 14:40
@friedemannf
friedemannf requested review from a team as code owners November 9, 2026 14:40
@andrevmatos
andrevmatos merged commit 6570a59 into main Nov 10, 2026
14 of 15 checks passed
@andrevmatos
andrevmatos deleted the canton-provider branch November 10, 2026 16:59

This branch was successfully deployed

1 active deployment
Preview β€” de3c002a Deployed Nov 9, 2026 by vercel[bot]
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants