Skip to content

[NONEVM-6030] [OffRamp] Make MIN_GASLIMIT and MIN_TT_GASLIMIT part of the dynamic config - #880

Merged
duck-types merged 14 commits into
mainfrom
feat/offramp/gas-limit-in-dynamic-config
Sep 24, 2026
Merged

duck-types merged 14 commits into
mainfrom
feat/offramp/gas-limit-in-dynamic-config

Conversation

@duck-types

@duck-types duck-types commented Sep 10, 2026 •

Copy link
Copy Markdown
Collaborator

@duck-types
duck-types force-pushed the feat/offramp/gas-limit-in-dynamic-config branch from 14fe01f to 63f11ff Compare September 16, 2026 13:57
@duck-types
duck-types force-pushed the feat/offramp/gas-limit-in-dynamic-config branch from 63f11ff to e6c0675 Compare September 16, 2026 14:41
@duck-types
duck-types marked this pull request as ready for review September 17, 2026 18:16
@duck-types
duck-types requested a review from a team as a code owner September 17, 2026 18:16
@duck-types
duck-types requested review from krebernisak and vicentevieytes and a lite review from Copilot September 17, 2026 18:16

Copilot AI left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

🟡 Changes recommended

The configured token-transfer floors are below the LockRelease pool’s 0.2 TON deployment requirement, and malformed amounts can panic deployment.

Get a fresh assessment by requesting another Copilot review.

Pull request overview

Adds minGasLimit and minTTGasLimit to OffRamp dynamic configuration, updating storage, bindings, deployment setup, wrappers, and tests.

Changes:

  • Introduces nested static/dynamic OffRamp configuration.
  • Updates serialization, getters, dynamic-config messages, and migrations.
  • Adds deployment defaults and test coverage.
File summaries
File Description
pkg/ccip/model/offramp.go Updates OffRamp model and builders.
pkg/ccip/chainaccessor/config.go Reads nested configuration.
pkg/ccip/bindings/offramp/reader.go Decodes nested getter output.
pkg/ccip/bindings/offramp/offramp.go Updates Go TLB bindings.
integration-tests/model/offramp_test.go Tests new configuration fields.
integration-tests/deployment/ccip/cs_test.go Updates deployment assertions.
integration-tests/deployment/ccip/cs_deployer_test.go Updates deployer assertions.
integration-tests/deployment/ccip/cs_add_lanes_test.go Updates lane assertions.
deployment/ccip/sequence/deploy_ccip.go Initializes dynamic gas limits.
deployment/ccip/cs_test_helpers.go Configures test gas limits.
deployment/ccip/config/deploy.go Adds OffRamp parameters and validation.
deployment/ccip/config/chain.go Adds gas-limit defaults.
deployment/ccip/1_6_0/sequences/deploy_chain_contracts.go Passes gas-limit defaults to deployment.
deployment/ccip/1_6_0/sequences/connect_chains.go Updates lane gas configuration.
contracts/wrappers/gen/ccip/OffRamp.ts Regenerates TypeScript bindings.
contracts/wrappers/firedrill/FiredrillOffRamp.ts Updates Firedrill config getter.
contracts/wrappers/ccip/OffRamp.ts Adds default gas-limit constants.
contracts/tests/gas-report/ccip/messaging/OffRamp.spec.ts Updates gas-report setup.
contracts/tests/firedrill/FiredrillOffRamp.spec.ts Updates getter assertions.
contracts/tests/ccip/router/Router.Setup.ts Updates router test setup.
contracts/tests/ccip/receiveExecutor/ReceiveExecutor.Setup.ts Updates token transfer defaults.
contracts/tests/ccip/offramp/OffRamp.spec.ts Updates upgrade assertions.
contracts/tests/ccip/offramp/OffRamp.Setup.ts Initializes dynamic configuration.
contracts/tests/ccip/offramp/OffRamp.execute.spec.ts Updates gas-limit execution tests.
contracts/tests/ccip/offramp/OffRamp.dynamicConfig.spec.ts Tests dynamic gas-limit updates.
contracts/contracts/firedrill/firedrill_offramp.tolk Updates Firedrill getter schema.
contracts/contracts/ccip/offramp/types.tolk Defines nested dynamic configuration.
contracts/contracts/ccip/offramp/storage.tolk Updates OffRamp storage layout.
contracts/contracts/ccip/offramp/messages.tolk Updates dynamic-config message schema.
contracts/contracts/ccip/offramp/events.tolk Updates dynamic-config event schema.
contracts/contracts/ccip/offramp/contract.tolk Uses dynamic limits and migrates storage.
Review details

Suppressed comments (1)

deployment/ccip/config/chain.go:59

  • This default is below the value required by the LockRelease token pool: LockReleaseTokenPool_OFF_RAMP_ACCOUNT_DEPLOY_VALUE is ton("0.2") (contracts/contracts/ccip/pools/lock_release/types.tolk:11), and deployOffRampAccountWithRelease sends that amount. With a 0.16 TON floor, the OffRamp accepts a transfer that cannot fund the account deployment, so the default token-transfer path can fail. Seed at least the 0.2 TON floor here.
	DefaultOffRampMinTTGasLimit = "0.16"
  • Files reviewed: 31/31 changed files
  • Comments generated: 5
  • Review effort level: Lite

💡 Add a code-review agent skill or configure MCP servers for context-aware, tailored reviews. Learn more in the docs.

Comment thread contracts/contracts/ccip/offramp/contract.tolk Outdated
Comment thread deployment/ccip/config/chain.go Outdated
Comment thread deployment/ccip/config/deploy.go
Comment thread contracts/wrappers/ccip/OffRamp.ts Outdated
Comment thread deployment/ccip/1_6_0/sequences/connect_chains.go Outdated

Copilot AI left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

🟡 Changes recommended

The new storage layout is not migratable from the current 1.7.0 contract because migration only accepts and decodes 1.6.2 storage.

Get a fresh assessment by requesting another Copilot review.

Review details
  • Files reviewed: 26/26 changed files
  • Comments generated: 2
  • Review effort level: Lite

Comment thread contracts/contracts/ccip/offramp/contract.tolk
Comment thread pkg/ccip/bindings/offramp/reader.go Outdated
// 5: minTTGasLimit (appended by this PR; old contracts return 5 elements)
//
// New fields are appended at the end so old contracts and old Go readers remain
// compatible — they simply read fewer stack elements.

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.

nice

struct OffRamp_StorageConfig {
staticConfig: OffRamp_StaticConfig;
dynamicConfig: Cell<OffRamp_DynamicConfig>;
}

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.

👍

vicentevieytes
vicentevieytes previously approved these changes Sep 22, 2026
@duck-types
duck-types enabled auto-merge (squash) September 24, 2026 13:41
@duck-types
duck-types merged commit 0dd2606 into main Sep 24, 2026
37 checks passed
@duck-types
duck-types deleted the feat/offramp/gas-limit-in-dynamic-config branch September 24, 2026 13:46
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