Skip to content

feat(cct-sdk): Add mint/burn role management ops - #402

Open
apedrob wants to merge 4 commits into
cct-sdkfrom
feature/DAPP-11352-mint-burn-roles
Open

feat(cct-sdk): Add mint/burn role management ops#402
apedrob wants to merge 4 commits into
cct-sdkfrom
feature/DAPP-11352-mint-burn-roles

Conversation

@apedrob

@apedrob apedrob commented Sep 4, 2026

Copy link
Copy Markdown
Contributor

What

  • Add five mint/burn role ops for BurnMintERC677 tokens (v1.5 / v1.6), each as
    generateUnsigned<Op> and <op>, plus the isMinter/isBurner and owner reads they gate on

Why

  • Burn/mint pool cannot bridge until the token owner grants it both roles

Testing

  • Unit tests

@apedrob
apedrob requested review from a team, PabloMansanet and aelmanaa as code owners September 4, 2026 15:32
@vercel

vercel Bot commented Sep 4, 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

@apedrob
apedrob requested a review from mervin-link September 4, 2026 15:32

@mervin-link mervin-link left a comment

Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Approved ✅

Tested all ops in sepolia:

Question

  • What is the plan for supporting v2.0 tokens? Since their mint/burn authorization uses AccessControl rather than isMinter/isBurner plus owner(), I’m concerned we’ll need to duplicate these readers and operations per version.

@aelmanaa

aelmanaa commented Sep 8, 2026

Copy link
Copy Markdown
Collaborator

Overview

APPROVE — 0 blockers, 0 correctness majors. Correct, type-safe, contract-grounded, and live-proven.

Adds 5 EVM token role ops (grantMintRole, grantBurnRole, grantMintAndBurnRoles, revokeMintRole, revokeBurnRole) for BurnMintERC677/FactoryBurnMintERC20 (v1.5.1/v1.6.2), plus contract helpers (readTokenRole, readTokenOwner, assertTokenOwner). Fills the grant-mint/burn-role gap.

Contract grounding:

  • All 5 role functions + isMinter/isBurner/owner exist and are version-identical across v1.5.1 → v1.6.2
  • All writes are onlyOwner (Ownable2Step, not AccessControl)
  • grantMintAndBurnRoles is a native single on-chain function → one callTx

Family gating: readTokenRole calls isMinter/isBurner and maps CALL_EXCEPTION/BAD_DATACCTContractTypeInvalidError, robust against v2 CrossChainToken, LockRelease, plain ERC20, pools, EOAs.

Live Sepolia verification: All ops (grant/revoke/combined/no-op/owner/family) proven on real throwaway v1.5.1 token 0xbb1f9c847601da2f1d56d3181ed5761e613f30a9.


[COMMENT 1/6] 🔴 HIGH (DX/Coverage) — Version mismatch trap: ops reject the token cct.deployToken produces

Problem: cct.deployToken deploys v2.0.0 CrossChainToken only, but the 5 role ops accept v1.5.1/v1.6.2 FactoryBurnMintERC20 only and reject v2 (uses AccessControl MINTER_ROLE/grantRole, not isMinter/onlyOwner). Yet the deployToken/deployTokenPool JSDoc says the next step is "grantMintAndBurnRoles(pool)" — and this branch adds an SDK method of the identical name that throws on that very token.

Live proof: grantMintRole on real CrossChainToken 2.0.0 from cct.deployToken (0x8Fe1bE2e…) → CCTContractTypeInvalidError "Expected a BurnMintERC677 token (FactoryBurnMintERC20 v1.5.1 / v1.6.2)".

Impact: An agent chaining deployToken → grantMintAndBurnRoles hits a hard, non-obvious failure.

Fixes needed (in priority order):

  1. State in the 5 op JSDocs that the token must not be a v2.0.0 CrossChainToken
  2. Disambiguate the deploy prose (there, "grantMintAndBurnRoles" refers to the on-chain call, not cct.grantMintAndBurnRoles)
  3. Recommended: Add a v2 companion op (grantRole(MINTER_ROLE) + grantRole(BURNER_ROLE) via AccessControl) so v2 role management is reachable — same v2-model-split pattern as allowlist→hooks and setRateLimitAdmin→setDynamicConfig transitions

@aelmanaa

aelmanaa commented Sep 8, 2026

Copy link
Copy Markdown
Collaborator

[COMMENT 2/6] 🟡 Coordination — Collides with sibling DAPP-11353 on token/contracts.ts

This branch and the unmerged DAPP-11353 (role reads getMinters/getBurners + mint) both independently add identical helpers to token/contracts.ts:

  • This branch (11352): getErc20Token, readTokenRole, readTokenOwner, assertTokenOwner
  • DAPP-11353: getErc20Token, readTokenRole, readTokenRoleHolders
  • Overlap: getErc20Token + readTokenRole are added by both

They're siblings splitting the mint/burn-role feature (this = writes, 11353 = reads+mint). Whichever merges first, the second will conflict on the shared functions.

Fix: Coordinate merge order deliberately. Options:

  1. Stack one on the other — 11353 lands first (shared helpers + reads), 11352 rebases and reuses them
  2. Extract shared helpers to a base PR — land getErc20Token/readTokenRole once, both feature PRs depend on it

Action needed: Align with 11353 author on which pattern; document the decision for the merge.

@aelmanaa

aelmanaa commented Sep 8, 2026

Copy link
Copy Markdown
Collaborator

[COMMENT 3/6] 🟡 Medium (DX) — No in-SDK source for the token these ops require

Since deployToken is v2-only, there's no SDK path to deploy the v1.5.1/v1.6.2 FactoryBurnMintERC20 that these role ops target. The ops' primary use case is granting mint/burn roles to a pool after deploy, but the "freshly deployed pool" example has no matching "freshly deployed token" story.

Impact: Users reach these ops and have no in-SDK way to produce a compatible token (v2 deployToken tokens are rejected by these ops).

Fix: Document where the compatible v1.5.1/v1.6.2 FactoryBurnMintERC20 token comes from — CCIP token factory / external Foundry deploy / other source. Add a note to the facade JSDoc on one or more ops pointing to that documentation so the on-ramp isn't a dead end.

Example note:

* @remarks
* The token must be a BurnMintERC677 (FactoryBurnMintERC20 v1.5.1 or v1.6.2). 
* See [supported token types](#supported-token-types) for deployment options.

@aelmanaa

aelmanaa commented Sep 8, 2026

Copy link
Copy Markdown
Collaborator

[COMMENT 4/6] 🔵 Low (Arch) — Public API surface widened via export *

export * from './token/contracts.ts' in index.ts auto-widens 4 low-level helpers (readTokenRole, readTokenOwner, assertTokenOwner, getErc20Token) to public API.

Context: This is consistent with existing precedent (getTokenInterface, getTokenArtifact are public helpers), but these helpers become API commitments once exported. Verify this is intentional.

Recommendation:

  • If yes, intended: no action needed (aligns with existing pattern).
  • If no, too internal: narrow the re-export to only the operation facades and document these as internal utilities.

This is a polish point, not a blocker — confirm intent before merge.

@aelmanaa

aelmanaa commented Sep 8, 2026

Copy link
Copy Markdown
Collaborator

[COMMENT 5/6] 🔵 Low (Test) — Cover the two op-specific branches

The role tests cover basic encode/submit/non-owner paths but don't explicitly cover:

  1. No-op guard rejection — redundant grant (already holds role) and revoke (doesn't hold role) return CCTParamsInvalidError (live-proven above)
  2. Family-gate CCTContractTypeInvalidError path — calling on a v2 CrossChainToken or incompatible token type fails before calldata (live-proven above on actual deployToken output)

Both paths are now live-proven and important for correctness. Add unit test cases for each to the test file so the no-op guards and type validation are explicitly covered in CI.

Examples (pseudocode):

// No-op guard: grant again
it('rejects grant when recipient already holds the role', async () => {
  await grantMintRole({ token, account: A }).execute()
  await expect(
    grantMintRole({ token, account: A }).execute()
  ).rejects.toThrow(CCTParamsInvalidError)
})

// Family gate: v2 token
it('rejects v2 CrossChainToken (AccessControl, not onlyOwner)', async () => {
  const v2Token = await deployToken() // returns v2.0.0 CrossChainToken
  await expect(
    grantMintRole({ token: v2Token, account: A }).execute()
  ).rejects.toThrow(CCTContractTypeInvalidError)
})

@aelmanaa

aelmanaa commented Sep 8, 2026

Copy link
Copy Markdown
Collaborator

[COMMENT 6/6] 🔵 Nits

  1. Cross-reference: Mirror the "or do both in one tx → grantMintAndBurnRoles" pointer onto grantBurnRole JSDoc. Currently only grantMintRole calls out the combined option.

  2. Primary use case: Add @see {@link deployTokenPool} on all 5 role ops — the primary use case is granting roles to a freshly deployed pool.

  3. Cross-family: Add a one-line @remarks on the role ops noting the Solana counterpart is the SPL setTokenAuthority/transferMintAuthority model (for users familiar with Solana tooling).

Example:

/**
 * Grants the BURNER_ROLE to an account on a BurnMintERC677 token.
 * 
 * To grant both MINTER_ROLE and BURNER_ROLE in one transaction, use {@link grantMintAndBurnRoles}.
 * 
 * @remarks
 * The token must be a BurnMintERC677 (FactoryBurnMintERC20 v1.5.1 or v1.6.2).
 * The Solana equivalent is `setTokenAuthority` on SPL tokens.
 * 
 * @see {@link deployTokenPool} — primary use case
 */

@apedrob
apedrob requested a review from a team as a code owner September 8, 2026 13:55
@github-actions

github-actions Bot commented Sep 8, 2026

Copy link
Copy Markdown

CI Test Report

2521/2527 tests passed (651 suites) in 5m 30s

Summary

ℹ tests 2527
ℹ suites 651
ℹ pass 2521
ℹ fail 0
ℹ cancelled 0
ℹ skipped 6
ℹ todo 0
ℹ duration_ms 329550.351825
Coverage report
File                                   | % Stmts | % Branch | % Funcs | % Lines | Uncovered Line #s 
---------------------------------------|---------|----------|---------|---------|-------------------
All files                              |   84.38 |    82.84 |   76.92 |   84.38 |                   
 ccip-cli/src                          |   90.42 |    59.25 |      75 |   90.42 |                   
  index.ts                             |   90.42 |    59.25 |      75 |   90.42 | ...73-174,180-185 
 ccip-cli/src/commands                 |   52.65 |    75.47 |    62.9 |   52.65 |                   
  index.ts                             |     100 |      100 |     100 |     100 |                   
  lane-latency.ts                      |   70.76 |    83.33 |   33.33 |   70.76 | ...,76-83,119-128 
  lane.ts                              |   86.98 |    68.42 |     100 |   86.98 | ...41-144,148-150 
  manual-exec.ts                       |   20.34 |      100 |       0 |   20.34 | ...39-149,151-347 
  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.13 |      100 |       0 |   14.13 | ...09-237,239-552 
  show.ts                              |   75.68 |    63.75 |     100 |   75.68 | ...15-318,399-401 
  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                             |   87.89 |    79.48 |   96.66 |   87.89 | ...11-721,729-737 
 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                |   53.37 |    86.45 |   21.73 |   53.37 |                   
  aptos.ts                             |   51.47 |      100 |       0 |   51.47 | ...,95-96,105-136 
  evm.ts                               |    36.3 |      100 |       0 |    36.3 | ...69-104,116-168 
  index.ts                             |   81.37 |    85.71 |    90.9 |   81.37 | ...20,290,344-392 
  solana.ts                            |   47.44 |      100 |       0 |   47.44 | ...02-103,112-137 
  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         |    85.4 |    77.89 |      68 |    85.4 |                   
  auth.ts                              |   82.41 |    73.01 |   53.33 |   82.41 | ...17-333,464-469 
  config.ts                            |   80.41 |    81.81 |     100 |   80.41 | 36-43,48-58       
  index.ts                             |     100 |      100 |     100 |     100 |                   
  wallet.ts                            |   92.93 |      100 |   85.71 |   92.93 | 172-184           
 ccip-sdk/src                          |   95.43 |    88.24 |    92.9 |   95.43 |                   
  chain.ts                             |   96.49 |    83.96 |   84.37 |   96.49 | ...2427,2460-2461 
  commits.ts                           |    90.9 |    81.25 |     100 |    90.9 | ...06,115-118,120 
  execution.ts                         |   93.13 |    88.23 |     100 |   93.13 | ...53-159,192-199 
  explorer.ts                          |     100 |      100 |     100 |     100 |                   
  extra-args.ts                        |     100 |    89.47 |     100 |     100 | 225,260,297,312   
  fetch.ts                             |   98.06 |    93.56 |   97.77 |   98.06 | ...-881,1127-1129 
  gas.ts                               |   85.17 |    86.04 |      75 |   85.17 | ...83-294,403-452 
  http-status.ts                       |     100 |      100 |     100 |     100 |                   
  index.ts                             |     100 |      100 |     100 |     100 |                   
  messages.ts                          |    79.2 |    47.16 |      40 |    79.2 | ...99-310,314-327 
  networks.ts                          |     100 |      100 |     100 |     100 |                   
  offchain.ts                          |   84.64 |    76.92 |     100 |   84.64 | ...18-227,236-237 
  requests.ts                          |    95.4 |    90.58 |     100 |    95.4 | ...54-655,680-685 
  supported-chains.ts                  |     100 |      100 |     100 |     100 |                   
  types.ts                             |     100 |      100 |     100 |     100 |                   
  utils.ts                             |    99.2 |       96 |     100 |    99.2 | ...12,217-218,220 
 ccip-sdk/src/api                      |   93.22 |    83.44 |   94.73 |   93.22 |                   
  index.ts                             |   93.22 |    83.44 |   94.73 |   93.22 | ...92-895,898-901 
 ccip-sdk/src/aptos                    |   78.76 |       78 |   76.19 |   78.76 |                   
  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                             |   68.84 |    79.67 |   67.44 |   68.84 | ...1072,1076-1087 
  logs.ts                              |   96.47 |    77.41 |    92.3 |   96.47 | ...1442-1444,1731 
  send.ts                              |    25.6 |      100 |       0 |    25.6 | ...2,63-80,93-125 
  token.ts                             |   23.75 |       75 |     100 |   23.75 | 35-156            
  types.ts                             |   65.97 |      100 |       0 |   65.97 | 26-33,65-89       
 ccip-sdk/src/canton                   |   45.32 |    76.16 |   31.66 |   45.32 |                   
  amount.ts                            |   92.59 |       70 |     100 |   92.59 | 22-23             
  ccv-addresses.ts                     |     100 |    91.07 |     100 |     100 | 13,30,64,67       
  defaults.ts                          |   99.28 |    90.24 |     100 |   99.28 | 93                
  events.ts                            |   45.38 |     52.5 |   23.52 |   45.38 | ...15-527,533-542 
  index.ts                             |   34.89 |    58.82 |   12.82 |   34.89 | ...2614,2617-2619 
  types.ts                             |   95.26 |      100 |      50 |   95.26 | 55-62             
  update-id.ts                         |   98.11 |    88.88 |     100 |   98.11 | 52                
 ccip-sdk/src/canton/authentication    |   92.93 |    79.31 |    92.3 |   92.93 |                   
  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                      |   97.81 |    77.77 |     100 |   97.81 | 167-170           
  types.ts                             |     100 |      100 |     100 |     100 |                   
 ccip-sdk/src/canton/client            |    57.4 |    60.86 |   22.85 |    57.4 |                   
  client.ts                            |   55.62 |    59.09 |   22.85 |   55.62 | ...37-756,771-791 
  index.ts                             |     100 |      100 |     100 |     100 |                   
 ...dk/src/canton/explicit-disclosures |   74.81 |    69.35 |    55.1 |   74.81 |                   
  acs.ts                               |   87.36 |     69.1 |      90 |   87.36 | ...20,568,606-607 
  eds.ts                               |   54.34 |      100 |       0 |   54.34 | ...86-393,397-402 
 ccip-sdk/src/canton/token-metadata    |   61.37 |      100 |       0 |   61.37 |                   
  client.ts                            |   61.37 |      100 |       0 |   61.37 | 111-178,185-189   
 ...dk/src/canton/transfer-instruction |    52.4 |      100 |       0 |    52.4 |                   
  client.ts                            |    52.4 |      100 |       0 |    52.4 | 104-197,204-208   
 ccip-sdk/src/cct                      |     100 |    87.09 |     100 |     100 |                   
  errors.ts                            |     100 |    83.33 |     100 |     100 | 138-142,203       
  operation.ts                         |     100 |      100 |     100 |     100 |                   
  query.ts                             |     100 |      100 |     100 |     100 |                   
  token-manager.ts                     |     100 |      100 |     100 |     100 |                   
 ccip-sdk/src/cct/evm                  |   96.81 |    96.21 |   63.63 |   96.81 |                   
  index.ts                             |    95.7 |      100 |   48.14 |    95.7 | ...1494,1526-1529 
  operation.ts                         |     100 |      100 |     100 |     100 |                   
  query.ts                             |     100 |      100 |     100 |     100 |                   
  submit.ts                            |     100 |    79.16 |     100 |     100 | 28,52,68-69,87    
  validate.ts                          |     100 |      100 |     100 |     100 |                   
 .../cct/evm/artifacts/bytecode/V2_0_0 |     100 |      100 |     100 |     100 |                   
  burn-from-mint-token-pool.ts         |     100 |      100 |     100 |     100 |                   
  burn-mint-token-pool.ts              |     100 |      100 |     100 |     100 |                   
  burn-with-from-mint-token-pool.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 |                   
 ccip-sdk/src/cct/evm/lockbox          |     100 |      100 |     100 |     100 |                   
  contracts.ts                         |     100 |      100 |     100 |     100 |                   
 ...sdk/src/cct/evm/lockbox/operations |     100 |      100 |     100 |     100 |                   
  authorize-callers.ts                 |     100 |      100 |     100 |     100 |                   
  deploy-lockbox.ts                    |     100 |      100 |     100 |     100 |                   
 ccip-sdk/src/cct/evm/token            |   91.93 |       80 |   71.42 |   91.93 |                   
  contracts.ts                         |   91.93 |       80 |   71.42 |   91.93 | ...,97-99,136-145 
 ...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 |                   
  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 |      100 |     100 |     100 |                   
  contracts.ts                         |     100 |      100 |     100 |     100 |                   
  rate-limit.ts                        |     100 |      100 |     100 |     100 |                   
  remote-pool.ts                       |     100 |      100 |     100 |     100 |                   
 .../src/cct/evm/token-pool/operations |   99.82 |    97.57 |     100 |   99.82 |                   
  add-remote-pool.ts                   |     100 |      100 |     100 |     100 |                   
  apply-allowlist-updates.ts           |     100 |    96.29 |     100 |     100 | 229               
  apply-chain-updates.ts               |     100 |      100 |     100 |     100 |                   
  deploy-token-pool.ts                 |     100 |    85.71 |     100 |     100 | 83-86             
  get-token-pool-remotes.ts            |     100 |      100 |     100 |     100 |                   
  get-token-pool-state.ts              |   98.61 |       95 |     100 |   98.61 | 282-285           
  remove-remote-pool.ts                |     100 |      100 |     100 |     100 |                   
  set-chain-rate-limiter-configs.ts    |     100 |    97.05 |     100 |     100 | 112               
  set-dynamic-config.ts                |     100 |      100 |     100 |     100 |                   
  set-rate-limit-admin.ts              |     100 |      100 |     100 |     100 |                   
  set-remote-pool.ts                   |     100 |      100 |     100 |     100 |                   
  transfer-ownership.ts                |     100 |      100 |     100 |     100 |                   
 ccip-sdk/src/cct/evm/token/operations |    96.4 |    89.83 |     100 |    96.4 |                   
  deploy-token.ts                      |     100 |      100 |     100 |     100 |                   
  grant-burn-role.ts                   |    95.4 |    85.71 |     100 |    95.4 | 63-66             
  grant-mint-and-burn-roles.ts         |   95.78 |       75 |     100 |   95.78 | 68-71             
  grant-mint-role.ts                   |    95.4 |    85.71 |     100 |    95.4 | 63-66             
  revoke-burn-role.ts                  |    95.4 |    85.71 |     100 |    95.4 | 63-66             
  revoke-mint-role.ts                  |    95.4 |    85.71 |     100 |    95.4 | 63-66             
 ccip-sdk/src/cct/solana               |   99.73 |    96.78 |   97.97 |   99.73 |                   
  index.ts                             |   99.67 |      100 |   97.22 |   99.67 | 258-259,2425-2430 
  operation.ts                         |     100 |      100 |     100 |     100 |                   
  query.ts                             |     100 |      100 |     100 |     100 |                   
  serialize.ts                         |     100 |     92.3 |     100 |     100 | 27                
  submit.ts                            |     100 |    81.81 |     100 |     100 | 31,48,53,72       
  validate.ts                          |     100 |    98.05 |     100 |     100 | 214,321           
 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.61 |    98.74 |     100 |   99.61 |                   
  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                    |   97.95 |    94.44 |     100 |   97.95 | 212-216           
  set-pool.ts                          |     100 |      100 |     100 |     100 |                   
  transfer-admin.ts                    |     100 |      100 |     100 |     100 |                   
 ...c/cct/solana/token-pool/operations |   99.62 |    98.23 |     100 |   99.62 |                   
  accept-ownership.ts                  |     100 |      100 |     100 |     100 |                   
  append-remote-pool-addresses.ts      |     100 |      100 |     100 |     100 |                   
  apply-chain-updates.ts               |     100 |    98.36 |     100 |     100 | 148               
  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 |    94.11 |     100 |     100 | 126               
  set-can-accept-liquidity.ts          |     100 |      100 |     100 |     100 |                   
  set-chain-rate-limit.ts              |   99.11 |    96.15 |     100 |   99.11 | 64-65             
  set-rate-limit-admin.ts              |     100 |      100 |     100 |     100 |                   
  set-rebalancer.ts                    |     100 |      100 |     100 |     100 |                   
  transfer-ownership.ts                |     100 |      100 |     100 |     100 |                   
  withdraw-liquidity.ts                |     100 |      100 |     100 |     100 |                   
 ...dk/src/cct/solana/token/operations |     100 |    98.41 |     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 |      100 |     100 |     100 |                   
  update-metadata-authority.ts         |     100 |      100 |     100 |     100 |                   
 ccip-sdk/src/errors                   |   90.42 |    77.16 |   59.55 |   90.42 |                   
  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                       |   88.26 |    73.91 |   57.36 |   88.26 | ...3636,3659-3668 
  utils.ts                             |   94.44 |    81.48 |     100 |   94.44 | 15,17,22,24       
 ccip-sdk/src/evm                      |   93.08 |    82.47 |   93.16 |   93.08 |                   
  const.ts                             |   98.66 |    92.85 |     100 |   98.66 | 122-123           
  errors.ts                            |   91.98 |    81.57 |     100 |   91.98 | ...85,239-242,247 
  extra-args.ts                        |    94.5 |    61.01 |     100 |    94.5 | ...11-212,328-340 
  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                             |   88.69 |    80.64 |    90.9 |   88.69 | ...2716,2871-2902 
  logs.ts                              |   99.16 |    92.02 |      90 |   99.16 | 69-70,75-76       
  messageCodec.ts                      |     100 |      100 |     100 |     100 |                   
  messages.ts                          |     100 |      100 |     100 |     100 |                   
  offchain.ts                          |    87.5 |    71.42 |     100 |    87.5 | 13-14             
  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.29 |    78.94 |     100 |   94.29 |                   
  common.ts                            |     100 |      100 |     100 |     100 |                   
  hasher.ts                            |     100 |    66.66 |     100 |     100 | 19                
  index.ts                             |     100 |      100 |     100 |     100 |                   
  merklemulti.ts                       |   93.43 |       78 |     100 |   93.43 | ...06-307,315-316 
 ccip-sdk/src/shared                   |   85.32 |    84.33 |   82.35 |   85.32 |                   
  bcs-codecs.ts                        |   79.07 |    60.86 |   66.66 |   79.07 | ...42-252,260-269 
  codec.ts                             |    94.3 |    93.22 |     100 |    94.3 | 139-140,178-186   
  constants.ts                         |     100 |      100 |     100 |     100 |                   
 ccip-sdk/src/solana                   |   79.13 |    75.73 |   84.34 |   79.13 |                   
  cleanup.ts                           |   26.95 |    66.66 |   33.33 |   26.95 | ...59-101,114-227 
  exec.ts                              |   69.11 |    62.96 |   66.66 |   69.11 | ...69-473,513-514 
  extra-args.ts                        |   59.49 |    76.47 |      60 |   59.49 | 86-122,132-190    
  fork.test.data.ts                    |     100 |      100 |     100 |     100 |                   
  gas.ts                               |   92.06 |    68.57 |     100 |   92.06 | ...,81-90,170-171 
  hasher.ts                            |   96.49 |    81.81 |     100 |   96.49 | 64-67             
  index.ts                             |   83.03 |    78.91 |   87.03 |   83.03 | ...2129,2133-2166 
  logs.ts                              |   87.79 |    74.07 |     100 |   87.79 | ...50-151,163-164 
  offchain.ts                          |     100 |      100 |     100 |     100 |                   
  patchBorsh.ts                        |   78.31 |       50 |     100 |   78.31 | ...47,65-66,72-78 
  send.ts                              |    77.6 |    33.33 |      80 |    77.6 | ...52-360,403-442 
  signatures-cache.ts                  |   79.78 |    71.15 |    87.5 |   79.78 | ...51-260,274-275 
  token-admin-registry.ts              |     100 |    96.29 |     100 |     100 | 27                
  types.ts                             |     100 |      100 |     100 |     100 |                   
  utils.ts                             |   81.56 |     77.1 |   83.33 |   81.56 | ...87-588,625-640 
 ccip-sdk/src/sui                      |   73.18 |    70.66 |   81.14 |   73.18 |                   
  discovery.ts                         |   47.37 |    48.27 |      60 |   47.37 | ...34-782,785-819 
  events.ts                            |   89.83 |    72.67 |     100 |   89.83 | ...19-626,685-698 
  exec.ts                              |   30.71 |      100 |       0 |   30.71 | 37-89,101-153     
  hasher.ts                            |   98.19 |    66.66 |     100 |   98.19 | 35,51             
  index.ts                             |   76.12 |    70.47 |   79.68 |   76.12 | ...2314,2330-2331 
  logs.ts                              |   97.89 |    74.02 |     100 |   97.89 | ...62-165,186-187 
  objects.ts                           |    54.6 |    83.33 |   83.33 |    54.6 | ...57-313,324-467 
  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                      |      86 |    80.53 |   88.28 |      86 |                   
  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                             |   84.81 |     79.6 |   79.03 |   84.81 | ...2111,2118-2119 
  logs.ts                              |   93.84 |    83.43 |     100 |   93.84 | ...09-616,672-675 
  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                             |    63.1 |    77.77 |    90.9 |    63.1 | ...37-395,397-400 
 scripts                               |   87.95 |    63.88 |     100 |   87.95 |                   
  test-endpoints.ts                    |   97.98 |    72.72 |     100 |   97.98 | 137-139           
  useResource.ts                       |   83.57 |    62.29 |     100 |   83.57 | ...81-286,301-302 
---------------------------------------|---------|----------|---------|---------|-------------------

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