Skip to content

build: add prepare script for git-based installation#667

Open
douglance wants to merge 23 commits into
mainfrom
feat/add-prepare-script
Open

build: add prepare script for git-based installation#667
douglance wants to merge 23 commits into
mainfrom
feat/add-prepare-script

Conversation

@douglance

@douglance douglance commented Mar 23, 2026

Copy link
Copy Markdown
Contributor

Summary

  • Adds a prepare lifecycle script to src/package.json that builds the TypeScript output when the package is installed from a git URL
  • Adds payable mutator to the UpgradeExecutor ABI

Details

When installing chain-sdk from a git URL (e.g. github:OffchainLabs/arbitrum-chain-sdk#branch&path:src), package managers clone the repo but don't build it, so dist/ is missing and the package is empty. The prepare script runs automatically after install for git-hosted dependencies, navigating to the repo root and running the TypeScript compiler to produce the dist/ output.

This has no effect on installs from the npm registry, since published tarballs already contain the built dist/.

yahgwai added 11 commits March 19, 2026 13:20
Prepare token bridge deployment transactions without requiring an orbit
chain RPC. enqueueTokenBridgeDeployment encodes the createTokenBridge
call with caller-provided gas params. enqueueSetWethGateway encodes the
setGateways call through UpgradeExecutor with explicit retryable costs.
- Rename maxFeePerGas to maxGasPrice in enqueueSetWethGateway for
  consistency with enqueueTokenBridgeDeployment and the constant name
- Nest rollup/rollupOwner in params object to match existing
  createTokenBridgePrepareTransactionRequest pattern
- Update idempotency comment to explain parent-chain-only check rationale
  and that failed retryables should be manually redeemed
- Restore gas override comments from reference implementation
- Replace duplicate deposit test with calldata verification test for
  enqueueSetWethGateway
…red ABI

- Rename enqueueTokenBridgeDeployment to
  enqueueTokenBridgePrepareTransactionRequest
- Rename enqueueSetWethGateway to
  enqueueSetWethGatewayPrepareTransactionRequest
- Extract parentChainGatewayRouterAbi to src/contracts/GatewayRouter.ts,
  replacing inline copies in both enqueue and existing set weth gateway files
…tion

- Split maxSubmissionFee into maxSubmissionCostForFactory and
  maxSubmissionCostForContracts to match existing retryable fee formula
- Update retryable fee calculation to sum both submission costs
- Rename enqueueSetWethGateway* to enqueueTokenBridgePrepareSetWethGateway*
  to match createTokenBridgePrepareSetWethGateway* naming convention
- Remove CR comments
Fixes vitest type checker failure caused by dynamic import syntax.
@douglance douglance force-pushed the feat/add-prepare-script branch from 900895e to 7e2a1f0 Compare March 23, 2026 18:02
When installing chain-sdk from a git URL with &path:src, package managers
extract only the subdirectory. This prepare script goes up to the repo root
and runs the TypeScript build so dist/ exists.
@douglance douglance force-pushed the feat/add-prepare-script branch from 7e2a1f0 to ba3e4e8 Compare March 23, 2026 18:04
@TucksonDev TucksonDev changed the base branch from main to feat/enqueue-token-bridge-deployment March 23, 2026 18:07
@TucksonDev TucksonDev requested review from spsjvc and yahgwai March 25, 2026 11:01
yahgwai and others added 7 commits March 25, 2026 11:45
Extract getFactoryDeploymentDataSize and getContractsDeploymentData from
the existing estimation functions so that the enqueue variants can reuse
the same data-size logic for calculating retryable submission fees.
Replicates the SDK's estimateSubmissionFee logic: calls the Inbox's
calculateRetryableSubmissionFee on the parent chain with the current
base fee, then applies a 300% safety buffer matching the SDK default.
…tions

The enqueue functions now estimate maxSubmissionCost from parent chain
state using the shared data-size helpers and the Inbox's
calculateRetryableSubmissionFee, matching the approach used by the
create* variants via the SDK. Callers no longer need to provide
maxSubmissionCostForFactory, maxSubmissionCostForContracts, or
maxSubmissionCost.
The contracts deployment (7+ contracts + initialization) needs more gas
than the factory deployment (single contract creation).
Instead of using a hardcoded default, read gasLimitForL2FactoryDeployment
from the TokenBridgeCreator contract. The caller can still override via
the maxGasForFactory parameter.
Apply Prettier formatting and allowlist 6 transitive dev-only CVEs
in audit-ci.jsonc (flatted, picomatch, brace-expansion, yaml).
Base automatically changed from feat/enqueue-token-bridge-deployment to main April 22, 2026 14:44
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