diff --git a/.github/workflows/ci-core-reusable.yml b/.github/workflows/ci-core-reusable.yml index 122aa5e2cf72..6c44004f8d97 100644 --- a/.github/workflows/ci-core-reusable.yml +++ b/.github/workflows/ci-core-reusable.yml @@ -58,7 +58,7 @@ jobs: - name: Use Node.js uses: actions/setup-node@cdca7365b2dadb8aad0a33bc7601856ffabcc48e # v4 with: - node-version: 18.20.8 + node-version: 20 - name: Install yarn run: | @@ -187,6 +187,15 @@ jobs: ci_run forge --version ci_run rm -rf ./foundry-temp foundry_zksync_v0.1.5_linux_amd64.tar.gz + - name: (TEMPORARY) Update Node in ci_run container + run: | + ci_run bash -lc "curl -fsSL https://deb.nodesource.com/setup_20.x | bash -" + ci_run apt-get install -y nodejs + echo "Node version after update:" + ci_run node -v + ci_run npm -v + (ci_run yarn -v || ci_run npm install -g yarn) && ci_run yarn -v + - name: Build test dependencies run: | ci_run zkstack dev test build diff --git a/contracts b/contracts index 537b509d36e4..f180163527dd 160000 --- a/contracts +++ b/contracts @@ -1 +1 @@ -Subproject commit 537b509d36e480422209df72de0068ea0492a7b4 +Subproject commit f180163527dd2e8d2a193faabd07b8709bfc4f42 diff --git a/core/tests/highlevel-test-tools/tests/token-balance-migration-tester.ts b/core/tests/highlevel-test-tools/tests/token-balance-migration-tester.ts index e319d6ae05a4..46c6c904c87d 100644 --- a/core/tests/highlevel-test-tools/tests/token-balance-migration-tester.ts +++ b/core/tests/highlevel-test-tools/tests/token-balance-migration-tester.ts @@ -998,7 +998,6 @@ export async function readAndBroadcastInteropBundle( } export async function readAndUnbundleInteropBundle( - sourceChainId: number, wallet: zksync.Wallet, senderProvider: zksync.Provider, txHash: string @@ -1011,7 +1010,7 @@ export async function readAndUnbundleInteropBundle( await (await interopHandler.verifyBundle(data.rawData, data.proofDecoded)).wait(); // Unbundle the bundle, we will just set the call to `Executed` const callStatuses = [CallStatus.Executed]; - await (await interopHandler.unbundleBundle(sourceChainId, data.rawData, callStatuses)).wait(); + await (await interopHandler.unbundleBundle(data.rawData, callStatuses)).wait(); } /** diff --git a/core/tests/highlevel-test-tools/tests/token-balance-migration.test.ts b/core/tests/highlevel-test-tools/tests/token-balance-migration.test.ts index b7e1a88c3de9..190ae3a353e5 100644 --- a/core/tests/highlevel-test-tools/tests/token-balance-migration.test.ts +++ b/core/tests/highlevel-test-tools/tests/token-balance-migration.test.ts @@ -498,7 +498,6 @@ if (shouldSkip) { for (const bundleName of Object.keys(bundlesUnbundledOnL1)) { // We do not need to await the interop bundle as it was already executed on Gateway before we migrated back to L1. await readAndUnbundleInteropBundle( - chainHandler.inner.chainId, secondChainRichWallet, chainRichWallet.provider, bundlesUnbundledOnL1[bundleName].hash diff --git a/core/tests/ts-integration/tests/interop-b-unbundle.test.ts b/core/tests/ts-integration/tests/interop-b-unbundle.test.ts index 08f4b87e0e2d..63cfd9836142 100644 --- a/core/tests/ts-integration/tests/interop-b-unbundle.test.ts +++ b/core/tests/ts-integration/tests/interop-b-unbundle.test.ts @@ -174,7 +174,6 @@ describe('Interop-B Unbundle behavior checks', () => { bundles.fromSourceChain.data!.proofDecoded ]); const unbundleBundleData = ctx.interop2InteropHandler.interface.encodeFunctionData('unbundleBundle', [ - ctx.interop1ChainId, bundles.fromSourceChain.data!.rawData, finalCallStatuses ]); @@ -211,7 +210,7 @@ describe('Interop-B Unbundle behavior checks', () => { if (ctx.skipInteropTests) return; await expect( - ctx.interop2InteropHandler.unbundleBundle(ctx.interop1ChainId, bundles.fromDestinationChain.data!.rawData, [ + ctx.interop2InteropHandler.unbundleBundle(bundles.fromDestinationChain.data!.rawData, [ CallStatus.Executed, CallStatus.Cancelled, CallStatus.Executed @@ -247,7 +246,7 @@ describe('Interop-B Unbundle behavior checks', () => { ctx.interop2Recipient ); await expect( - altInterop2InteropHandler.unbundleBundle(ctx.interop1ChainId, bundles.fromDestinationChain.data!.rawData, [ + altInterop2InteropHandler.unbundleBundle(bundles.fromDestinationChain.data!.rawData, [ CallStatus.Executed, CallStatus.Unprocessed, CallStatus.Executed @@ -258,7 +257,7 @@ describe('Interop-B Unbundle behavior checks', () => { test('Cannot unbundle a failing call', async () => { if (ctx.skipInteropTests) return; await expect( - ctx.interop2InteropHandler.unbundleBundle(ctx.interop1ChainId, bundles.fromDestinationChain.data!.rawData, [ + ctx.interop2InteropHandler.unbundleBundle(bundles.fromDestinationChain.data!.rawData, [ CallStatus.Unprocessed, CallStatus.Executed, CallStatus.Unprocessed @@ -274,7 +273,6 @@ describe('Interop-B Unbundle behavior checks', () => { // Leave call 0 as unprocessed (base token transfer), cancel call 1, and execute call 2 (token transfer) const firstCallStatuses = [CallStatus.Unprocessed, CallStatus.Cancelled, CallStatus.Executed]; const firstUnbundleReceipt = await ctx.interop2InteropHandler.unbundleBundle( - ctx.interop1ChainId, bundles.fromDestinationChain.data!.rawData, firstCallStatuses ); @@ -298,7 +296,6 @@ describe('Interop-B Unbundle behavior checks', () => { // Unbundle again and process call 0 (base token transfer) const balanceBefore = await ctx.getInterop2Balance(ctx.dummyInteropRecipient); const secondUnbundleReceipt = await ctx.interop2InteropHandler.unbundleBundle( - ctx.interop1ChainId, bundles.fromDestinationChain.data!.rawData, [CallStatus.Executed, CallStatus.Unprocessed, CallStatus.Unprocessed] ); @@ -321,7 +318,7 @@ describe('Interop-B Unbundle behavior checks', () => { test('Cannot unbundle a processed call', async () => { if (ctx.skipInteropTests) return; await expect( - ctx.interop2InteropHandler.unbundleBundle(ctx.interop1ChainId, bundles.fromDestinationChain.data!.rawData, [ + ctx.interop2InteropHandler.unbundleBundle(bundles.fromDestinationChain.data!.rawData, [ CallStatus.Executed, CallStatus.Cancelled, CallStatus.Executed @@ -332,7 +329,7 @@ describe('Interop-B Unbundle behavior checks', () => { test('Cannot unbundle a cancelled call', async () => { if (ctx.skipInteropTests) return; await expect( - ctx.interop2InteropHandler.unbundleBundle(ctx.interop1ChainId, bundles.fromDestinationChain.data!.rawData, [ + ctx.interop2InteropHandler.unbundleBundle(bundles.fromDestinationChain.data!.rawData, [ CallStatus.Unprocessed, CallStatus.Executed, CallStatus.Unprocessed @@ -343,7 +340,7 @@ describe('Interop-B Unbundle behavior checks', () => { test('Cannot cancel a processed call', async () => { if (ctx.skipInteropTests) return; await expect( - ctx.interop2InteropHandler.unbundleBundle(ctx.interop1ChainId, bundles.fromDestinationChain.data!.rawData, [ + ctx.interop2InteropHandler.unbundleBundle(bundles.fromDestinationChain.data!.rawData, [ CallStatus.Cancelled, CallStatus.Cancelled, CallStatus.Cancelled