build: add prepare script for git-based installation#667
Open
douglance wants to merge 23 commits into
Open
Conversation
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.
900895e to
7e2a1f0
Compare
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.
7e2a1f0 to
ba3e4e8
Compare
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).
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Summary
preparelifecycle script tosrc/package.jsonthat builds the TypeScript output when the package is installed from a git URLpayablemutator to the UpgradeExecutor ABIDetails
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, sodist/is missing and the package is empty. Thepreparescript runs automatically after install for git-hosted dependencies, navigating to the repo root and running the TypeScript compiler to produce thedist/output.This has no effect on installs from the npm registry, since published tarballs already contain the built
dist/.