From 21d04500524a823bacf76c11662db0fd1db70a17 Mon Sep 17 00:00:00 2001 From: Henry <11198460+godzillaba@users.noreply.github.com> Date: Wed, 30 Jul 2025 10:50:08 -0500 Subject: [PATCH 1/7] remove legacy patchwork --- packages/sdk/scripts/genNetwork.ts | 63 +----------------------------- 1 file changed, 2 insertions(+), 61 deletions(-) diff --git a/packages/sdk/scripts/genNetwork.ts b/packages/sdk/scripts/genNetwork.ts index be6b4270b..844cd9239 100644 --- a/packages/sdk/scripts/genNetwork.ts +++ b/packages/sdk/scripts/genNetwork.ts @@ -2,14 +2,6 @@ import { loadEnv } from '../src/lib/utils/env' import { execSync } from 'child_process' import * as fs from 'fs' -import { IERC20Bridge__factory } from '../src/lib/abi/factories/IERC20Bridge__factory' -import { ethers } from 'ethers' -import { - L2Network, - ArbitrumNetwork, - mapL2NetworkToArbitrumNetwork, -} from '../src/lib/dataEntities/networks' - loadEnv() const isTestingOrbitChains = process.env.ORBIT_TEST === '1' @@ -35,66 +27,15 @@ function getLocalNetworksFromContainer(which: 'l1l2' | 'l2l3'): any { throw new Error('nitro-testnode sequencer not found') } -/** - * the container's files are written by the token bridge deployment step of the test node, which runs a script in token-bridge-contracts. - * once the script in token-bridge-contracts repo uses an sdk version with the same types and is updated to populate those fields, - * we can remove this patchwork - */ -async function patchNetworks( - l2Network: L2Network, - l3Network: L2Network | undefined, - l2Provider: ethers.providers.Provider | undefined -): Promise<{ - patchedL2Network: ArbitrumNetwork - patchedL3Network?: ArbitrumNetwork -}> { - const patchedL2Network = mapL2NetworkToArbitrumNetwork(l2Network) - - // native token for l3 - if (l3Network && l2Provider) { - const patchedL3Network = mapL2NetworkToArbitrumNetwork(l3Network) - - try { - patchedL3Network.nativeToken = await IERC20Bridge__factory.connect( - l3Network.ethBridge.bridge, - l2Provider - ).nativeToken() - } catch (e) { - // l3 network doesn't have a native token - } - - return { patchedL2Network, patchedL3Network } - } - - return { patchedL2Network } -} - async function main() { fs.rmSync('localNetwork.json', { force: true }) - let output = getLocalNetworksFromContainer('l1l2') + const output = getLocalNetworksFromContainer('l1l2') if (isTestingOrbitChains) { // When running with L3 active, the container calls the L3 network L2 so we rename it here const { l2Network: l3Network } = getLocalNetworksFromContainer('l2l3') - const { patchedL2Network, patchedL3Network } = await patchNetworks( - output.l2Network, - l3Network, - new ethers.providers.JsonRpcProvider(process.env['ARB_URL']) - ) - - output = { - l2Network: patchedL2Network, - l3Network: patchedL3Network, - } - } else { - const { patchedL2Network } = await patchNetworks( - output.l2Network, - undefined, - undefined - ) - - output.l2Network = patchedL2Network + output.l3Network = l3Network } fs.writeFileSync('localNetwork.json', JSON.stringify(output, null, 2)) From 976f54bf7411a54a9673e8f99716d70d0df54546 Mon Sep 17 00:00:00 2001 From: Henry <11198460+godzillaba@users.noreply.github.com> Date: Thu, 31 Jul 2025 09:05:32 -0600 Subject: [PATCH 2/7] temporary testnode ref --- .github/workflows/build-test.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/build-test.yml b/.github/workflows/build-test.yml index 11d1c0815..92d181a4d 100644 --- a/.github/workflows/build-test.yml +++ b/.github/workflows/build-test.yml @@ -183,7 +183,7 @@ jobs: - name: Set up the local node uses: OffchainLabs/actions/run-nitro-test-node@main with: - nitro-testnode-ref: f5a54d679733c65b81d5106488feb957ec579a46 + nitro-testnode-ref: ha/bump-token-bridge-sdk-dep l3-node: ${{ matrix.orbit-test == '1' }} args: ${{ matrix.decimals == 16 && '--l3-fee-token --l3-fee-token-decimals 16' || matrix.decimals == 20 && '--l3-fee-token --l3-fee-token-decimals 20' || matrix.decimals == 18 && '--l3-fee-token' || '' }} From bd6ac34012364d16232d7cd2a93e34942d109955 Mon Sep 17 00:00:00 2001 From: Henry <11198460+godzillaba@users.noreply.github.com> Date: Wed, 6 Aug 2025 12:18:00 -0700 Subject: [PATCH 3/7] throw on legacy network type --- packages/sdk/scripts/genNetwork.ts | 10 ++++++++++ 1 file changed, 10 insertions(+) diff --git a/packages/sdk/scripts/genNetwork.ts b/packages/sdk/scripts/genNetwork.ts index 844cd9239..d68bb2590 100644 --- a/packages/sdk/scripts/genNetwork.ts +++ b/packages/sdk/scripts/genNetwork.ts @@ -1,6 +1,8 @@ import { loadEnv } from '../src/lib/utils/env' import { execSync } from 'child_process' import * as fs from 'fs' +import { L2Network } from '../../../dist' +import { ArbitrumNetwork } from '../dist' loadEnv() @@ -27,6 +29,10 @@ function getLocalNetworksFromContainer(which: 'l1l2' | 'l2l3'): any { throw new Error('nitro-testnode sequencer not found') } +function isLegacyNetworkType(network: L2Network | ArbitrumNetwork): network is L2Network { + return 'partnerChainID' in network +} + async function main() { fs.rmSync('localNetwork.json', { force: true }) @@ -38,6 +44,10 @@ async function main() { output.l3Network = l3Network } + if (isLegacyNetworkType(output.l2Network) || (output.l3Network && isLegacyNetworkType(output.l3Network))) { + throw new Error('Legacy L2Network type detected. Please use the latest testnode version and token-bridge-contracts version 1.2.5 or above.') + } + fs.writeFileSync('localNetwork.json', JSON.stringify(output, null, 2)) console.log('localnetwork.json updated') } From 20084842fbf88b84c783d3927c8948c4407408f8 Mon Sep 17 00:00:00 2001 From: Henry <11198460+godzillaba@users.noreply.github.com> Date: Wed, 6 Aug 2025 12:26:56 -0700 Subject: [PATCH 4/7] fmt --- packages/sdk/scripts/genNetwork.ts | 13 ++++++++++--- 1 file changed, 10 insertions(+), 3 deletions(-) diff --git a/packages/sdk/scripts/genNetwork.ts b/packages/sdk/scripts/genNetwork.ts index d68bb2590..2e7ef62bb 100644 --- a/packages/sdk/scripts/genNetwork.ts +++ b/packages/sdk/scripts/genNetwork.ts @@ -29,7 +29,9 @@ function getLocalNetworksFromContainer(which: 'l1l2' | 'l2l3'): any { throw new Error('nitro-testnode sequencer not found') } -function isLegacyNetworkType(network: L2Network | ArbitrumNetwork): network is L2Network { +function isLegacyNetworkType( + network: L2Network | ArbitrumNetwork +): network is L2Network { return 'partnerChainID' in network } @@ -44,8 +46,13 @@ async function main() { output.l3Network = l3Network } - if (isLegacyNetworkType(output.l2Network) || (output.l3Network && isLegacyNetworkType(output.l3Network))) { - throw new Error('Legacy L2Network type detected. Please use the latest testnode version and token-bridge-contracts version 1.2.5 or above.') + if ( + isLegacyNetworkType(output.l2Network) || + (output.l3Network && isLegacyNetworkType(output.l3Network)) + ) { + throw new Error( + 'Legacy L2Network type detected. Please use the latest testnode version and token-bridge-contracts version 1.2.5 or above.' + ) } fs.writeFileSync('localNetwork.json', JSON.stringify(output, null, 2)) From af218d7fa34daf4c33fb4f96225cc5f5d362467b Mon Sep 17 00:00:00 2001 From: Henry <11198460+godzillaba@users.noreply.github.com> Date: Wed, 6 Aug 2025 12:43:30 -0700 Subject: [PATCH 5/7] fix import --- packages/sdk/scripts/genNetwork.ts | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/packages/sdk/scripts/genNetwork.ts b/packages/sdk/scripts/genNetwork.ts index 2e7ef62bb..60ba2c76f 100644 --- a/packages/sdk/scripts/genNetwork.ts +++ b/packages/sdk/scripts/genNetwork.ts @@ -1,8 +1,7 @@ import { loadEnv } from '../src/lib/utils/env' import { execSync } from 'child_process' import * as fs from 'fs' -import { L2Network } from '../../../dist' -import { ArbitrumNetwork } from '../dist' +import { ArbitrumNetwork, L2Network } from '../src' loadEnv() From c512a2af24e8d3e74caa31171db1821e6b3c9546 Mon Sep 17 00:00:00 2001 From: Henry <11198460+godzillaba@users.noreply.github.com> Date: Thu, 7 Aug 2025 06:47:37 -0700 Subject: [PATCH 6/7] use release testnode --- .github/workflows/build-test.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/build-test.yml b/.github/workflows/build-test.yml index 92d181a4d..d9af8a58b 100644 --- a/.github/workflows/build-test.yml +++ b/.github/workflows/build-test.yml @@ -183,7 +183,7 @@ jobs: - name: Set up the local node uses: OffchainLabs/actions/run-nitro-test-node@main with: - nitro-testnode-ref: ha/bump-token-bridge-sdk-dep + nitro-testnode-ref: release l3-node: ${{ matrix.orbit-test == '1' }} args: ${{ matrix.decimals == 16 && '--l3-fee-token --l3-fee-token-decimals 16' || matrix.decimals == 20 && '--l3-fee-token --l3-fee-token-decimals 20' || matrix.decimals == 18 && '--l3-fee-token' || '' }} From a1884da16bb56c911bf70442366bbd6b2afa9873 Mon Sep 17 00:00:00 2001 From: Henry <11198460+godzillaba@users.noreply.github.com> Date: Thu, 7 Aug 2025 22:21:17 -0700 Subject: [PATCH 7/7] bump gas subtraction in test --- packages/sdk/tests/integration/standarderc20.test.ts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/packages/sdk/tests/integration/standarderc20.test.ts b/packages/sdk/tests/integration/standarderc20.test.ts index c691c4463..67d85f0d8 100644 --- a/packages/sdk/tests/integration/standarderc20.test.ts +++ b/packages/sdk/tests/integration/standarderc20.test.ts @@ -257,7 +257,7 @@ describe('standard ERC20', () => { // force the redeem to fail by submitted just a bit under the required gas // so it is enough to pay for L1 + L2 intrinsic gas costs - await redeemAndTest(waitRes.message, 0, gasComponents.gasEstimate.sub(3000)) + await redeemAndTest(waitRes.message, 0, gasComponents.gasEstimate.sub(9000)) await redeemAndTest(waitRes.message, 1) })