@aztec/end-to-end 3.0.0-nightly.20251007 → 3.0.0-nightly.20251008
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dest/e2e_p2p/shared.d.ts +2 -1
- package/dest/e2e_p2p/shared.d.ts.map +1 -1
- package/dest/e2e_p2p/shared.js +2 -2
- package/dest/fixtures/setup_l1_contracts.js +2 -2
- package/dest/fixtures/utils.js +2 -2
- package/dest/fixtures/web3signer.d.ts +1 -1
- package/dest/fixtures/web3signer.d.ts.map +1 -1
- package/dest/fixtures/web3signer.js +15 -5
- package/dest/spartan/setup_test_wallets.js +1 -1
- package/dest/spartan/utils.d.ts.map +1 -1
- package/dest/spartan/utils.js +7 -0
- package/package.json +37 -37
- package/src/e2e_p2p/shared.ts +3 -1
- package/src/fixtures/setup_l1_contracts.ts +2 -2
- package/src/fixtures/utils.ts +2 -2
- package/src/fixtures/web3signer.ts +21 -5
- package/src/spartan/setup_test_wallets.ts +1 -1
- package/src/spartan/utils.ts +10 -0
package/dest/e2e_p2p/shared.d.ts
CHANGED
|
@@ -16,12 +16,13 @@ export declare function awaitCommitteeExists({ rollup, logger, }: {
|
|
|
16
16
|
rollup: RollupContract;
|
|
17
17
|
logger: Logger;
|
|
18
18
|
}): Promise<readonly `0x${string}`[]>;
|
|
19
|
-
export declare function awaitOffenseDetected({ logger, nodeAdmin, slashingRoundSize, epochDuration, waitUntilOffenseCount, }: {
|
|
19
|
+
export declare function awaitOffenseDetected({ logger, nodeAdmin, slashingRoundSize, epochDuration, waitUntilOffenseCount, timeoutSeconds, }: {
|
|
20
20
|
nodeAdmin: AztecNodeAdmin;
|
|
21
21
|
logger: Logger;
|
|
22
22
|
slashingRoundSize: number;
|
|
23
23
|
epochDuration: number;
|
|
24
24
|
waitUntilOffenseCount?: number;
|
|
25
|
+
timeoutSeconds?: number;
|
|
25
26
|
}): Promise<import("@aztec/slasher").Offense[]>;
|
|
26
27
|
/**
|
|
27
28
|
* Await the committee to be slashed out of the validator set.
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"shared.d.ts","sourceRoot":"","sources":["../../src/e2e_p2p/shared.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,yBAAyB,CAAC;AAClE,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,mBAAmB,CAAC;AAC1D,OAAO,EACL,YAAY,EAEZ,KAAK,MAAM,EACX,QAAQ,EACR,KAAK,MAAM,EAIZ,MAAM,iBAAiB,CAAC;AACzB,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,sBAAsB,CAAC;AAC7D,OAAO,KAAK,EAAE,8BAA8B,EAAE,cAAc,EAAE,6BAA6B,EAAE,MAAM,iBAAiB,CAAC;AAGrH,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,oCAAoC,CAAC;AAIvE,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,iCAAiC,CAAC;AACtE,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,4BAA4B,CAAC;AAMvE,eAAO,MAAM,kBAAkB,GAC7B,QAAQ,MAAM,EACd,MAAM,YAAY,EAClB,cAAc,YAAY,EAC1B,QAAQ,MAAM,EACd,OAAM;IAAE,UAAU,CAAC,EAAE,OAAO,CAAA;CAAO,sBAsBpC,CAAC;AAGF,eAAO,MAAM,kBAAkB,GAC7B,QAAQ,MAAM,EACd,MAAM,gBAAgB,EACtB,QAAQ,MAAM,EACd,eAAe,kBAAkB,KAChC,OAAO,CAAC,MAAM,EAAE,CAMlB,CAAC;AAEF,wBAAsB,mBAAmB,CACvC,MAAM,EAAE,MAAM,EACd,IAAI,EAAE,gBAAgB,EACtB,MAAM,EAAE,MAAM,EACd,aAAa,EAAE,kBAAkB,GAChC,OAAO,CAAC,QAAQ,EAAE,CAAC,CAmBrB;AAED,wBAAgB,sBAAsB,CACpC,gBAAgB,EAAE,8BAA8B,GAAG,6BAA6B,EAChF,cAAc,EAAE,MAAM,EACtB,MAAM,EAAE,MAAM,GACb,OAAO,CAAC,MAAM,CAAC,CA0BjB;AAED,wBAAsB,oBAAoB,CAAC,EACzC,MAAM,EACN,MAAM,GACP,EAAE;IACD,MAAM,EAAE,cAAc,CAAC;IACvB,MAAM,EAAE,MAAM,CAAC;CAChB,GAAG,OAAO,CAAC,SAAS,KAAK,MAAM,EAAE,EAAE,CAAC,CAYpC;AAED,wBAAsB,oBAAoB,CAAC,EACzC,MAAM,EACN,SAAS,EACT,iBAAiB,EACjB,aAAa,EACb,qBAAqB,
|
|
1
|
+
{"version":3,"file":"shared.d.ts","sourceRoot":"","sources":["../../src/e2e_p2p/shared.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,yBAAyB,CAAC;AAClE,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,mBAAmB,CAAC;AAC1D,OAAO,EACL,YAAY,EAEZ,KAAK,MAAM,EACX,QAAQ,EACR,KAAK,MAAM,EAIZ,MAAM,iBAAiB,CAAC;AACzB,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,sBAAsB,CAAC;AAC7D,OAAO,KAAK,EAAE,8BAA8B,EAAE,cAAc,EAAE,6BAA6B,EAAE,MAAM,iBAAiB,CAAC;AAGrH,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,oCAAoC,CAAC;AAIvE,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,iCAAiC,CAAC;AACtE,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,4BAA4B,CAAC;AAMvE,eAAO,MAAM,kBAAkB,GAC7B,QAAQ,MAAM,EACd,MAAM,YAAY,EAClB,cAAc,YAAY,EAC1B,QAAQ,MAAM,EACd,OAAM;IAAE,UAAU,CAAC,EAAE,OAAO,CAAA;CAAO,sBAsBpC,CAAC;AAGF,eAAO,MAAM,kBAAkB,GAC7B,QAAQ,MAAM,EACd,MAAM,gBAAgB,EACtB,QAAQ,MAAM,EACd,eAAe,kBAAkB,KAChC,OAAO,CAAC,MAAM,EAAE,CAMlB,CAAC;AAEF,wBAAsB,mBAAmB,CACvC,MAAM,EAAE,MAAM,EACd,IAAI,EAAE,gBAAgB,EACtB,MAAM,EAAE,MAAM,EACd,aAAa,EAAE,kBAAkB,GAChC,OAAO,CAAC,QAAQ,EAAE,CAAC,CAmBrB;AAED,wBAAgB,sBAAsB,CACpC,gBAAgB,EAAE,8BAA8B,GAAG,6BAA6B,EAChF,cAAc,EAAE,MAAM,EACtB,MAAM,EAAE,MAAM,GACb,OAAO,CAAC,MAAM,CAAC,CA0BjB;AAED,wBAAsB,oBAAoB,CAAC,EACzC,MAAM,EACN,MAAM,GACP,EAAE;IACD,MAAM,EAAE,cAAc,CAAC;IACvB,MAAM,EAAE,MAAM,CAAC;CAChB,GAAG,OAAO,CAAC,SAAS,KAAK,MAAM,EAAE,EAAE,CAAC,CAYpC;AAED,wBAAsB,oBAAoB,CAAC,EACzC,MAAM,EACN,SAAS,EACT,iBAAiB,EACjB,aAAa,EACb,qBAAqB,EACrB,cAAoB,GACrB,EAAE;IACD,SAAS,EAAE,cAAc,CAAC;IAC1B,MAAM,EAAE,MAAM,CAAC;IACf,iBAAiB,EAAE,MAAM,CAAC;IAC1B,aAAa,EAAE,MAAM,CAAC;IACtB,qBAAqB,CAAC,EAAE,MAAM,CAAC;IAC/B,cAAc,CAAC,EAAE,MAAM,CAAC;CACzB,+CAkBA;AAED;;;GAGG;AACH,wBAAsB,oBAAoB,CAAC,EACzC,MAAM,EACN,UAAU,EACV,SAAS,EACT,YAAY,EACZ,gBAAgB,EAChB,iBAAiB,EACjB,iBAAiB,EACjB,kBAAkB,EAClB,MAAM,EACN,YAAY,GACb,EAAE;IACD,MAAM,EAAE,cAAc,CAAC;IACvB,UAAU,EAAE,gBAAgB,CAAC;IAC7B,SAAS,EAAE,SAAS,KAAK,MAAM,EAAE,EAAE,CAAC;IACpC,YAAY,EAAE,oBAAoB,CAAC;IACnC,gBAAgB,EAAE,8BAA8B,GAAG,6BAA6B,GAAG,SAAS,CAAC;IAC7F,iBAAiB,EAAE,MAAM,CAAC;IAC1B,iBAAiB,EAAE,MAAM,CAAC;IAC1B,kBAAkB,EAAE,MAAM,CAAC;IAC3B,MAAM,EAAE,MAAM,CAAC;IACf,YAAY,EAAE,MAAM,CAAC;CACtB,iBA2EA"}
|
package/dest/e2e_p2p/shared.js
CHANGED
|
@@ -99,7 +99,7 @@ export async function awaitCommitteeExists({ rollup, logger }) {
|
|
|
99
99
|
}, 'non-empty committee', 60);
|
|
100
100
|
return committee;
|
|
101
101
|
}
|
|
102
|
-
export async function awaitOffenseDetected({ logger, nodeAdmin, slashingRoundSize, epochDuration, waitUntilOffenseCount }) {
|
|
102
|
+
export async function awaitOffenseDetected({ logger, nodeAdmin, slashingRoundSize, epochDuration, waitUntilOffenseCount, timeoutSeconds = 120 }) {
|
|
103
103
|
const targetOffenseCount = waitUntilOffenseCount ?? 1;
|
|
104
104
|
logger.warn(`Waiting for ${pluralize('offense', targetOffenseCount)} to be detected`);
|
|
105
105
|
const offenses = await retryUntil(async ()=>{
|
|
@@ -107,7 +107,7 @@ export async function awaitOffenseDetected({ logger, nodeAdmin, slashingRoundSiz
|
|
|
107
107
|
if (offenses.length >= targetOffenseCount) {
|
|
108
108
|
return offenses;
|
|
109
109
|
}
|
|
110
|
-
}, 'non-empty offenses',
|
|
110
|
+
}, 'non-empty offenses', timeoutSeconds);
|
|
111
111
|
logger.info(`Hit ${offenses.length} offenses on rounds ${unique(offenses.map((o)=>getRoundForOffense(o, {
|
|
112
112
|
slashingRoundSize,
|
|
113
113
|
epochDuration
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { deployL1Contracts } from '@aztec/ethereum';
|
|
2
2
|
import { getVKTreeRoot } from '@aztec/noir-protocol-circuits-types/vk-tree';
|
|
3
|
-
import {
|
|
3
|
+
import { protocolContractsHash } from '@aztec/protocol-contracts';
|
|
4
4
|
import { foundry } from 'viem/chains';
|
|
5
5
|
export { deployAndInitializeTokenAndBridgeContracts } from '../shared/cross_chain_test_harness.js';
|
|
6
6
|
export const setupL1Contracts = async (l1RpcUrl, account, logger, args)=>{
|
|
@@ -8,7 +8,7 @@ export const setupL1Contracts = async (l1RpcUrl, account, logger, args)=>{
|
|
|
8
8
|
l1RpcUrl
|
|
9
9
|
], account, foundry, logger, {
|
|
10
10
|
vkTreeRoot: getVKTreeRoot(),
|
|
11
|
-
|
|
11
|
+
protocolContractsHash,
|
|
12
12
|
salt: undefined,
|
|
13
13
|
realVerifier: false,
|
|
14
14
|
...args
|
package/dest/fixtures/utils.js
CHANGED
|
@@ -21,7 +21,7 @@ import { DateProvider, TestDateProvider } from '@aztec/foundation/timer';
|
|
|
21
21
|
import { SponsoredFPCContract } from '@aztec/noir-contracts.js/SponsoredFPC';
|
|
22
22
|
import { getVKTreeRoot } from '@aztec/noir-protocol-circuits-types/vk-tree';
|
|
23
23
|
import { MockGossipSubNetwork, getMockPubSubP2PServiceFactory } from '@aztec/p2p/test-helpers';
|
|
24
|
-
import {
|
|
24
|
+
import { protocolContractsHash } from '@aztec/protocol-contracts';
|
|
25
25
|
import { createProverNode } from '@aztec/prover-node';
|
|
26
26
|
import { getPXEConfig } from '@aztec/pxe/server';
|
|
27
27
|
import { getContractClassFromArtifact, getContractInstanceFromInstantiationParams } from '@aztec/stdlib/contract';
|
|
@@ -71,7 +71,7 @@ export const getPrivateKeyFromIndex = (index)=>{
|
|
|
71
71
|
export const setupL1Contracts = async (l1RpcUrls, account, logger, args = {}, chain = foundry)=>{
|
|
72
72
|
const l1Data = await deployL1Contracts(l1RpcUrls, account, chain, logger, {
|
|
73
73
|
vkTreeRoot: getVKTreeRoot(),
|
|
74
|
-
|
|
74
|
+
protocolContractsHash,
|
|
75
75
|
genesisArchiveRoot: args.genesisArchiveRoot ?? new Fr(GENESIS_ARCHIVE_ROOT),
|
|
76
76
|
salt: args.salt,
|
|
77
77
|
initialValidators: args.initialValidators,
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
export declare function createWeb3SignerKeystore(dir: string, ...privateKeys: string[]): Promise<void>;
|
|
2
|
-
export declare function refreshWeb3Signer(url: string): Promise<void>;
|
|
2
|
+
export declare function refreshWeb3Signer(url: string, ...expectedAddresses: string[]): Promise<void>;
|
|
3
3
|
export declare function getWeb3SignerTestKeystoreDir(): string;
|
|
4
4
|
export declare function getWeb3SignerUrl(): string;
|
|
5
5
|
//# sourceMappingURL=web3signer.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"web3signer.d.ts","sourceRoot":"","sources":["../../src/fixtures/web3signer.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"web3signer.d.ts","sourceRoot":"","sources":["../../src/fixtures/web3signer.ts"],"names":[],"mappings":"AAQA,wBAAsB,wBAAwB,CAAC,GAAG,EAAE,MAAM,EAAE,GAAG,WAAW,EAAE,MAAM,EAAE,iBAcnF;AAED,wBAAsB,iBAAiB,CAAC,GAAG,EAAE,MAAM,EAAE,GAAG,iBAAiB,EAAE,MAAM,EAAE,iBAoBlF;AAED,wBAAgB,4BAA4B,IAAI,MAAM,CAOrD;AAED,wBAAgB,gBAAgB,IAAI,MAAM,CAMzC"}
|
|
@@ -1,5 +1,6 @@
|
|
|
1
|
-
import { sleep } from '@aztec/aztec.js';
|
|
1
|
+
import { retryUntil, sleep } from '@aztec/aztec.js';
|
|
2
2
|
import { randomBytes } from '@aztec/foundation/crypto';
|
|
3
|
+
import { RemoteSigner } from '@aztec/node-keystore';
|
|
3
4
|
import { mkdirSync } from 'node:fs';
|
|
4
5
|
import { writeFile } from 'node:fs/promises';
|
|
5
6
|
import { join } from 'node:path';
|
|
@@ -15,13 +16,22 @@ privateKey: ${pk}`).join('\n---\n');
|
|
|
15
16
|
flag: 'wx'
|
|
16
17
|
});
|
|
17
18
|
}
|
|
18
|
-
export async function refreshWeb3Signer(url) {
|
|
19
|
+
export async function refreshWeb3Signer(url, ...expectedAddresses) {
|
|
19
20
|
await fetch(new URL('reload', url), {
|
|
20
21
|
method: 'POST'
|
|
21
22
|
});
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
23
|
+
if (expectedAddresses.length > 0) {
|
|
24
|
+
await retryUntil(async ()=>{
|
|
25
|
+
try {
|
|
26
|
+
await RemoteSigner.validateAccess(url, expectedAddresses);
|
|
27
|
+
return true;
|
|
28
|
+
} catch {
|
|
29
|
+
return false;
|
|
30
|
+
}
|
|
31
|
+
}, 'web3signer refresh', 10, 0.5);
|
|
32
|
+
} else {
|
|
33
|
+
await sleep(1000);
|
|
34
|
+
}
|
|
25
35
|
}
|
|
26
36
|
export function getWeb3SignerTestKeystoreDir() {
|
|
27
37
|
if (process.env.WEB3_SIGNER_TEST_KEYSTORE_DIR) {
|
|
@@ -2,7 +2,7 @@ import { generateSchnorrAccounts } from '@aztec/accounts/testing';
|
|
|
2
2
|
import { AztecAddress, FeeJuicePaymentMethodWithClaim, Fr, L1FeeJuicePortalManager, SponsoredFeePaymentMethod, createAztecNodeClient, retryUntil } from '@aztec/aztec.js';
|
|
3
3
|
import { createEthereumChain, createExtendedL1Client } from '@aztec/ethereum';
|
|
4
4
|
import { TokenContract } from '@aztec/noir-contracts.js/Token';
|
|
5
|
-
import { registerInitialSandboxAccountsInWallet } from '@aztec/test-wallet';
|
|
5
|
+
import { registerInitialSandboxAccountsInWallet } from '@aztec/test-wallet/server';
|
|
6
6
|
import { TestWallet } from '@aztec/test-wallet/server';
|
|
7
7
|
import { getACVMConfig } from '../fixtures/get_acvm_config.js';
|
|
8
8
|
import { getBBConfig } from '../fixtures/get_bb_config.js';
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"utils.d.ts","sourceRoot":"","sources":["../../src/spartan/utils.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,sBAAsB,CAAC;AAC7D,OAAO,KAAK,EAAE,mBAAmB,EAAE,gBAAgB,EAAE,MAAM,iBAAiB,CAAC;AAC7E,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,uBAAuB,CAAC;AAGpD,OAAO,EACL,KAAK,cAAc,EACnB,KAAK,oBAAoB,EAG1B,MAAM,iCAAiC,CAAC;AAEzC,OAAO,EAAE,YAAY,EAAyB,MAAM,eAAe,CAAC;AAIpE,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAMxB,QAAA,MAAM,gBAAgB;;;;;;;;;;;;;;;EAKpB,CAAC;AAEH,MAAM,MAAM,UAAU,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,gBAAgB,CAAC,CAAC;AAE1D,wBAAgB,gBAAgB,CAAC,GAAG,EAAE,OAAO,GAAG,UAAU,CAIzD;AAyBD,wBAAgB,WAAW,WAE1B;AAED;;;;;;GAMG;AACH,wBAAgB,WAAW,CAAC,IAAI,EAAE,MAAM,EAAE,EAAE,MAAM,EAAE,MAAM,EAAE,GAAG,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,mBAEvF;AAED,wBAAgB,gBAAgB,CAAC,MAAM,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,EAAE,MAAM,EAAE,MAAM,EAAE,GAAG,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,mBAG5G;AAED,wBAAsB,gBAAgB,CAAC,EACrC,QAAQ,EACR,SAAS,EACT,aAAa,EACb,QAAQ,GACT,EAAE;IACD,QAAQ,EAAE,MAAM,CAAC;IACjB,SAAS,EAAE,MAAM,CAAC;IAClB,aAAa,EAAE,MAAM,CAAC;IAEtB,QAAQ,CAAC,EAAE,MAAM,CAAC;CACnB,GAAG,OAAO,CAAC;IACV,OAAO,EAAE,YAAY,CAAC;IACtB,IAAI,EAAE,MAAM,CAAC;CACd,CAAC,CA6DD;AAED,wBAAgB,sBAAsB,CAAC,SAAS,EAAE,MAAM;aAjE7C,YAAY;UACf,MAAM;GAsEb;AAED,wBAAgB,2BAA2B,CAAC,SAAS,EAAE,MAAM;aAzElD,YAAY;UACf,MAAM;GA8Eb;AAED,wBAAsB,oBAAoB,CAAC,EACzC,QAAQ,EACR,SAAS,EACT,IAAI,EACJ,KAAa,GACd,EAAE;IACD,QAAQ,EAAE,MAAM,CAAC;IACjB,SAAS,EAAE,MAAM,CAAC;IAClB,IAAI,EAAE,MAAM,CAAC;IACb,KAAK,CAAC,EAAE,OAAO,CAAC;CACjB,mBAOA;AAED,wBAAsB,qBAAqB,CAAC,EAC1C,QAAQ,EACR,SAAS,EACT,KAAK,EACL,OAAc,EACd,KAAa,GACd,EAAE;IACD,QAAQ,EAAE,MAAM,CAAC;IACjB,SAAS,EAAE,MAAM,CAAC;IAClB,KAAK,EAAE,MAAM,CAAC;IACd,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,KAAK,CAAC,EAAE,OAAO,CAAC;CACjB,
|
|
1
|
+
{"version":3,"file":"utils.d.ts","sourceRoot":"","sources":["../../src/spartan/utils.ts"],"names":[],"mappings":"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"}
|
package/dest/spartan/utils.js
CHANGED
|
@@ -154,6 +154,13 @@ export async function deleteResourceByName({ resource, namespace, name, force =
|
|
|
154
154
|
return stdout;
|
|
155
155
|
}
|
|
156
156
|
export async function deleteResourceByLabel({ resource, namespace, label, timeout = '5m', force = false }) {
|
|
157
|
+
// Check if the resource type exists before attempting to delete
|
|
158
|
+
try {
|
|
159
|
+
await execAsync(`kubectl api-resources --api-group="" --no-headers -o name | grep -q "^${resource}$" || kubectl api-resources --no-headers -o name | grep -q "^${resource}$"`);
|
|
160
|
+
} catch (error) {
|
|
161
|
+
logger.warn(`Resource type '${resource}' not found in cluster, skipping deletion ${error}`);
|
|
162
|
+
return '';
|
|
163
|
+
}
|
|
157
164
|
const command = `kubectl delete ${resource} -l ${label} -n ${namespace} --ignore-not-found=true --wait=true --timeout=${timeout} ${force ? '--force' : ''}`;
|
|
158
165
|
logger.info(`command: ${command}`);
|
|
159
166
|
const { stdout } = await execAsync(command);
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@aztec/end-to-end",
|
|
3
|
-
"version": "3.0.0-nightly.
|
|
3
|
+
"version": "3.0.0-nightly.20251008",
|
|
4
4
|
"type": "module",
|
|
5
5
|
"exports": "./dest/index.js",
|
|
6
6
|
"inherits": [
|
|
@@ -25,42 +25,42 @@
|
|
|
25
25
|
"formatting": "run -T prettier --check ./src && run -T eslint ./src"
|
|
26
26
|
},
|
|
27
27
|
"dependencies": {
|
|
28
|
-
"@aztec/accounts": "3.0.0-nightly.
|
|
29
|
-
"@aztec/archiver": "3.0.0-nightly.
|
|
30
|
-
"@aztec/aztec": "3.0.0-nightly.
|
|
31
|
-
"@aztec/aztec-node": "3.0.0-nightly.
|
|
32
|
-
"@aztec/aztec.js": "3.0.0-nightly.
|
|
33
|
-
"@aztec/bb-prover": "3.0.0-nightly.
|
|
34
|
-
"@aztec/blob-lib": "3.0.0-nightly.
|
|
35
|
-
"@aztec/blob-sink": "3.0.0-nightly.
|
|
36
|
-
"@aztec/bot": "3.0.0-nightly.
|
|
37
|
-
"@aztec/cli": "3.0.0-nightly.
|
|
38
|
-
"@aztec/constants": "3.0.0-nightly.
|
|
39
|
-
"@aztec/entrypoints": "3.0.0-nightly.
|
|
40
|
-
"@aztec/epoch-cache": "3.0.0-nightly.
|
|
41
|
-
"@aztec/ethereum": "3.0.0-nightly.
|
|
42
|
-
"@aztec/foundation": "3.0.0-nightly.
|
|
43
|
-
"@aztec/kv-store": "3.0.0-nightly.
|
|
44
|
-
"@aztec/l1-artifacts": "3.0.0-nightly.
|
|
45
|
-
"@aztec/merkle-tree": "3.0.0-nightly.
|
|
46
|
-
"@aztec/node-keystore": "3.0.0-nightly.
|
|
47
|
-
"@aztec/noir-contracts.js": "3.0.0-nightly.
|
|
48
|
-
"@aztec/noir-noirc_abi": "3.0.0-nightly.
|
|
49
|
-
"@aztec/noir-protocol-circuits-types": "3.0.0-nightly.
|
|
50
|
-
"@aztec/noir-test-contracts.js": "3.0.0-nightly.
|
|
51
|
-
"@aztec/p2p": "3.0.0-nightly.
|
|
52
|
-
"@aztec/protocol-contracts": "3.0.0-nightly.
|
|
53
|
-
"@aztec/prover-client": "3.0.0-nightly.
|
|
54
|
-
"@aztec/prover-node": "3.0.0-nightly.
|
|
55
|
-
"@aztec/pxe": "3.0.0-nightly.
|
|
56
|
-
"@aztec/sequencer-client": "3.0.0-nightly.
|
|
57
|
-
"@aztec/simulator": "3.0.0-nightly.
|
|
58
|
-
"@aztec/slasher": "3.0.0-nightly.
|
|
59
|
-
"@aztec/stdlib": "3.0.0-nightly.
|
|
60
|
-
"@aztec/telemetry-client": "3.0.0-nightly.
|
|
61
|
-
"@aztec/test-wallet": "3.0.0-nightly.
|
|
62
|
-
"@aztec/validator-client": "3.0.0-nightly.
|
|
63
|
-
"@aztec/world-state": "3.0.0-nightly.
|
|
28
|
+
"@aztec/accounts": "3.0.0-nightly.20251008",
|
|
29
|
+
"@aztec/archiver": "3.0.0-nightly.20251008",
|
|
30
|
+
"@aztec/aztec": "3.0.0-nightly.20251008",
|
|
31
|
+
"@aztec/aztec-node": "3.0.0-nightly.20251008",
|
|
32
|
+
"@aztec/aztec.js": "3.0.0-nightly.20251008",
|
|
33
|
+
"@aztec/bb-prover": "3.0.0-nightly.20251008",
|
|
34
|
+
"@aztec/blob-lib": "3.0.0-nightly.20251008",
|
|
35
|
+
"@aztec/blob-sink": "3.0.0-nightly.20251008",
|
|
36
|
+
"@aztec/bot": "3.0.0-nightly.20251008",
|
|
37
|
+
"@aztec/cli": "3.0.0-nightly.20251008",
|
|
38
|
+
"@aztec/constants": "3.0.0-nightly.20251008",
|
|
39
|
+
"@aztec/entrypoints": "3.0.0-nightly.20251008",
|
|
40
|
+
"@aztec/epoch-cache": "3.0.0-nightly.20251008",
|
|
41
|
+
"@aztec/ethereum": "3.0.0-nightly.20251008",
|
|
42
|
+
"@aztec/foundation": "3.0.0-nightly.20251008",
|
|
43
|
+
"@aztec/kv-store": "3.0.0-nightly.20251008",
|
|
44
|
+
"@aztec/l1-artifacts": "3.0.0-nightly.20251008",
|
|
45
|
+
"@aztec/merkle-tree": "3.0.0-nightly.20251008",
|
|
46
|
+
"@aztec/node-keystore": "3.0.0-nightly.20251008",
|
|
47
|
+
"@aztec/noir-contracts.js": "3.0.0-nightly.20251008",
|
|
48
|
+
"@aztec/noir-noirc_abi": "3.0.0-nightly.20251008",
|
|
49
|
+
"@aztec/noir-protocol-circuits-types": "3.0.0-nightly.20251008",
|
|
50
|
+
"@aztec/noir-test-contracts.js": "3.0.0-nightly.20251008",
|
|
51
|
+
"@aztec/p2p": "3.0.0-nightly.20251008",
|
|
52
|
+
"@aztec/protocol-contracts": "3.0.0-nightly.20251008",
|
|
53
|
+
"@aztec/prover-client": "3.0.0-nightly.20251008",
|
|
54
|
+
"@aztec/prover-node": "3.0.0-nightly.20251008",
|
|
55
|
+
"@aztec/pxe": "3.0.0-nightly.20251008",
|
|
56
|
+
"@aztec/sequencer-client": "3.0.0-nightly.20251008",
|
|
57
|
+
"@aztec/simulator": "3.0.0-nightly.20251008",
|
|
58
|
+
"@aztec/slasher": "3.0.0-nightly.20251008",
|
|
59
|
+
"@aztec/stdlib": "3.0.0-nightly.20251008",
|
|
60
|
+
"@aztec/telemetry-client": "3.0.0-nightly.20251008",
|
|
61
|
+
"@aztec/test-wallet": "3.0.0-nightly.20251008",
|
|
62
|
+
"@aztec/validator-client": "3.0.0-nightly.20251008",
|
|
63
|
+
"@aztec/world-state": "3.0.0-nightly.20251008",
|
|
64
64
|
"@iarna/toml": "^2.2.5",
|
|
65
65
|
"@jest/globals": "^30.0.0",
|
|
66
66
|
"@noble/curves": "=1.0.0",
|
package/src/e2e_p2p/shared.ts
CHANGED
|
@@ -152,12 +152,14 @@ export async function awaitOffenseDetected({
|
|
|
152
152
|
slashingRoundSize,
|
|
153
153
|
epochDuration,
|
|
154
154
|
waitUntilOffenseCount,
|
|
155
|
+
timeoutSeconds = 120,
|
|
155
156
|
}: {
|
|
156
157
|
nodeAdmin: AztecNodeAdmin;
|
|
157
158
|
logger: Logger;
|
|
158
159
|
slashingRoundSize: number;
|
|
159
160
|
epochDuration: number;
|
|
160
161
|
waitUntilOffenseCount?: number;
|
|
162
|
+
timeoutSeconds?: number;
|
|
161
163
|
}) {
|
|
162
164
|
const targetOffenseCount = waitUntilOffenseCount ?? 1;
|
|
163
165
|
logger.warn(`Waiting for ${pluralize('offense', targetOffenseCount)} to be detected`);
|
|
@@ -169,7 +171,7 @@ export async function awaitOffenseDetected({
|
|
|
169
171
|
}
|
|
170
172
|
},
|
|
171
173
|
'non-empty offenses',
|
|
172
|
-
|
|
174
|
+
timeoutSeconds,
|
|
173
175
|
);
|
|
174
176
|
logger.info(
|
|
175
177
|
`Hit ${offenses.length} offenses on rounds ${unique(offenses.map(o => getRoundForOffense(o, { slashingRoundSize, epochDuration })))}`,
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import type { Logger } from '@aztec/aztec.js';
|
|
2
2
|
import { type DeployL1ContractsArgs, type L1ContractsConfig, deployL1Contracts } from '@aztec/ethereum';
|
|
3
3
|
import { getVKTreeRoot } from '@aztec/noir-protocol-circuits-types/vk-tree';
|
|
4
|
-
import {
|
|
4
|
+
import { protocolContractsHash } from '@aztec/protocol-contracts';
|
|
5
5
|
|
|
6
6
|
import type { HDAccount, PrivateKeyAccount } from 'viem';
|
|
7
7
|
import { foundry } from 'viem/chains';
|
|
@@ -16,7 +16,7 @@ export const setupL1Contracts = async (
|
|
|
16
16
|
) => {
|
|
17
17
|
const l1Data = await deployL1Contracts([l1RpcUrl], account, foundry, logger, {
|
|
18
18
|
vkTreeRoot: getVKTreeRoot(),
|
|
19
|
-
|
|
19
|
+
protocolContractsHash,
|
|
20
20
|
salt: undefined,
|
|
21
21
|
realVerifier: false,
|
|
22
22
|
...args,
|
package/src/fixtures/utils.ts
CHANGED
|
@@ -52,7 +52,7 @@ import { SponsoredFPCContract } from '@aztec/noir-contracts.js/SponsoredFPC';
|
|
|
52
52
|
import { getVKTreeRoot } from '@aztec/noir-protocol-circuits-types/vk-tree';
|
|
53
53
|
import type { P2PClientDeps } from '@aztec/p2p';
|
|
54
54
|
import { MockGossipSubNetwork, getMockPubSubP2PServiceFactory } from '@aztec/p2p/test-helpers';
|
|
55
|
-
import {
|
|
55
|
+
import { protocolContractsHash } from '@aztec/protocol-contracts';
|
|
56
56
|
import { type ProverNode, type ProverNodeConfig, type ProverNodeDeps, createProverNode } from '@aztec/prover-node';
|
|
57
57
|
import { type PXEConfig, getPXEConfig } from '@aztec/pxe/server';
|
|
58
58
|
import type { SequencerClient } from '@aztec/sequencer-client';
|
|
@@ -125,7 +125,7 @@ export const setupL1Contracts = async (
|
|
|
125
125
|
) => {
|
|
126
126
|
const l1Data = await deployL1Contracts(l1RpcUrls, account, chain, logger, {
|
|
127
127
|
vkTreeRoot: getVKTreeRoot(),
|
|
128
|
-
|
|
128
|
+
protocolContractsHash,
|
|
129
129
|
genesisArchiveRoot: args.genesisArchiveRoot ?? new Fr(GENESIS_ARCHIVE_ROOT),
|
|
130
130
|
salt: args.salt,
|
|
131
131
|
initialValidators: args.initialValidators,
|
|
@@ -1,5 +1,6 @@
|
|
|
1
|
-
import { sleep } from '@aztec/aztec.js';
|
|
1
|
+
import { retryUntil, sleep } from '@aztec/aztec.js';
|
|
2
2
|
import { randomBytes } from '@aztec/foundation/crypto';
|
|
3
|
+
import { RemoteSigner } from '@aztec/node-keystore';
|
|
3
4
|
|
|
4
5
|
import { mkdirSync } from 'node:fs';
|
|
5
6
|
import { writeFile } from 'node:fs/promises';
|
|
@@ -21,11 +22,26 @@ privateKey: ${pk}`,
|
|
|
21
22
|
await writeFile(path, yaml, { flag: 'wx' });
|
|
22
23
|
}
|
|
23
24
|
|
|
24
|
-
export async function refreshWeb3Signer(url: string) {
|
|
25
|
+
export async function refreshWeb3Signer(url: string, ...expectedAddresses: string[]) {
|
|
25
26
|
await fetch(new URL('reload', url), { method: 'POST' });
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
27
|
+
|
|
28
|
+
if (expectedAddresses.length > 0) {
|
|
29
|
+
await retryUntil(
|
|
30
|
+
async () => {
|
|
31
|
+
try {
|
|
32
|
+
await RemoteSigner.validateAccess(url, expectedAddresses);
|
|
33
|
+
return true;
|
|
34
|
+
} catch {
|
|
35
|
+
return false;
|
|
36
|
+
}
|
|
37
|
+
},
|
|
38
|
+
'web3signer refresh',
|
|
39
|
+
10,
|
|
40
|
+
0.5,
|
|
41
|
+
);
|
|
42
|
+
} else {
|
|
43
|
+
await sleep(1000);
|
|
44
|
+
}
|
|
29
45
|
}
|
|
30
46
|
|
|
31
47
|
export function getWeb3SignerTestKeystoreDir(): string {
|
|
@@ -15,7 +15,7 @@ import { createEthereumChain, createExtendedL1Client } from '@aztec/ethereum';
|
|
|
15
15
|
import type { Logger } from '@aztec/foundation/log';
|
|
16
16
|
import { TokenContract } from '@aztec/noir-contracts.js/Token';
|
|
17
17
|
import type { AztecNodeAdmin } from '@aztec/stdlib/interfaces/client';
|
|
18
|
-
import { registerInitialSandboxAccountsInWallet } from '@aztec/test-wallet';
|
|
18
|
+
import { registerInitialSandboxAccountsInWallet } from '@aztec/test-wallet/server';
|
|
19
19
|
import { TestWallet } from '@aztec/test-wallet/server';
|
|
20
20
|
|
|
21
21
|
import { getACVMConfig } from '../fixtures/get_acvm_config.js';
|
package/src/spartan/utils.ts
CHANGED
|
@@ -204,6 +204,16 @@ export async function deleteResourceByLabel({
|
|
|
204
204
|
timeout?: string;
|
|
205
205
|
force?: boolean;
|
|
206
206
|
}) {
|
|
207
|
+
// Check if the resource type exists before attempting to delete
|
|
208
|
+
try {
|
|
209
|
+
await execAsync(
|
|
210
|
+
`kubectl api-resources --api-group="" --no-headers -o name | grep -q "^${resource}$" || kubectl api-resources --no-headers -o name | grep -q "^${resource}$"`,
|
|
211
|
+
);
|
|
212
|
+
} catch (error) {
|
|
213
|
+
logger.warn(`Resource type '${resource}' not found in cluster, skipping deletion ${error}`);
|
|
214
|
+
return '';
|
|
215
|
+
}
|
|
216
|
+
|
|
207
217
|
const command = `kubectl delete ${resource} -l ${label} -n ${namespace} --ignore-not-found=true --wait=true --timeout=${timeout} ${
|
|
208
218
|
force ? '--force' : ''
|
|
209
219
|
}`;
|