Skip to content

Add withdrawFeeTokens changeset for EVM fee-handling contracts#1792

Open
finleydecker wants to merge 1 commit intodevelopfrom
add-withdraw-fee-tokens-changeset
Open

Add withdrawFeeTokens changeset for EVM fee-handling contracts#1792
finleydecker wants to merge 1 commit intodevelopfrom
add-withdraw-fee-tokens-changeset

Conversation

@finleydecker
Copy link

@finleydecker finleydecker commented Mar 4, 2026

  • Adds WithdrawFeeTokens changeset and sequence for withdrawing accumulated fee tokens from OnRamp, CommitteeVerifier, and all TokenPool variants on EVM chains
  • Dispatches to the correct operation based on contract type (TokenPool requires a recipient; OnRamp/CommitteeVerifier send to their configured feeAggregator)
  • Batches multiple contract withdrawals into a single MCMS proposal
  • Uses auto-generated latest/operations/ for all contract operations (no manual ops)
  • Includes tests for each contract path, multi-contract batching, pool type routing, and input validation

Example inputs (can also batch)

environment: testnet
domain: ccip
changesets:
- evm-withdraw-fee-tokens:
    payload:
      cfg:
        chainsel: 3478487238524512106
        contractrefs:
        - type: OnRamp
          version: 2.0.0
        - type: CommitteeVerifier
          version: 2.0.0
          qualifier: alpha
        feetokens:
        - "0x779877A7B0D9E8603169DdbD7836e478b4624789"
      mcms:
        timelockdelay: 300000000000
environment: testnet
domain: ccip
changesets:
- evm-withdraw-fee-tokens:
    payload:
      cfg:
        chainsel: 3478487238524512106
        contractrefs:
        - type: BurnMintTokenPool
          version: 2.0.0
          qualifier: CCIP-BnM
        feetokens:
        - "0x779877A7B0D9E8603169DdbD7836e478b4624789"
        recipient: "0x1234567890abcdef1234567890abcdef12345678"
      mcms:
        timelockdelay: 300000000000

@finleydecker finleydecker marked this pull request as ready for review March 5, 2026 02:58
@finleydecker finleydecker requested a review from a team as a code owner March 5, 2026 02:58
@finleydecker finleydecker requested a review from kylesmartin March 5, 2026 02:58
kylesmartin
kylesmartin previously approved these changes Mar 5, 2026
Copilot AI review requested due to automatic review settings March 10, 2026 01:06
@finleydecker finleydecker requested a review from a team as a code owner March 10, 2026 01:06
Copy link
Contributor

Copilot AI left a comment

Choose a reason for hiding this comment

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

Pull request overview

Adds a new “withdraw fee tokens” workflow for EVM fee-handling contracts, enabling batched withdrawals across OnRamp, CommitteeVerifier, and TokenPool variants via an MCMS proposal.

Changes:

  • Adds an auto-generated withdrawFeeTokens write operation for the EVM OnRamp (v1.6.0 ops) and registers it in the ops-gen config.
  • Introduces a v1.7.0 sequence + changeset that routes withdrawals by contract type and batches results into a single MCMS batch operation.
  • Adds Go tests covering precondition validation and non-pool withdrawal paths (OnRamp / CommitteeVerifier) plus TokenPool recipient validation.

Reviewed changes

Copilot reviewed 6 out of 6 changed files in this pull request and generated 3 comments.

Show a summary per file
File Description
chains/evm/deployment/v1_6_0/operations/onramp/onramp.go Adds OnRamp withdrawFeeTokens contract method wrapper and write operation.
chains/evm/deployment/operations_gen_config.yaml Registers withdrawFeeTokens as an owner-only OnRamp operation for generation.
ccv/chains/evm/deployment/v1_7_0/sequences/withdraw_fee_tokens.go Adds routing + batching sequence for fee-token withdrawals across contract types.
ccv/chains/evm/deployment/v1_7_0/operations/onramp/on_ramp.go Removes redundant v1.7.0 OnRamp withdraw operation in favor of v1.6.0 generated op.
ccv/chains/evm/deployment/v1_7_0/changesets/withdraw_fee_tokens.go Adds changeset wrapper resolving datastore refs into sequence input.
ccv/chains/evm/deployment/v1_7_0/changesets/withdraw_fee_tokens_test.go Adds tests for validation + OnRamp/CommitteeVerifier apply paths.

💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.

@finleydecker finleydecker force-pushed the add-withdraw-fee-tokens-changeset branch from d1b2888 to 6072839 Compare March 11, 2026 06:50
@finleydecker finleydecker changed the base branch from develop to main March 11, 2026 07:09
@finleydecker finleydecker requested review from a team as code owners March 11, 2026 07:09
@finleydecker finleydecker changed the base branch from main to develop March 11, 2026 07:10
@finleydecker finleydecker force-pushed the add-withdraw-fee-tokens-changeset branch from 6072839 to 1f54830 Compare March 11, 2026 07:15
All operations use auto-generated latest/operations/ packages. Includes
OnRamp, CommitteeVerifier, and all 11 TokenPool variant types.
@finleydecker finleydecker force-pushed the add-withdraw-fee-tokens-changeset branch from 1f54830 to 89e3497 Compare March 11, 2026 07:16
@github-actions
Copy link

Metric add-withdraw-fee-tokens-changeset develop
Coverage 70.0% 69.8%

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