@aztec/end-to-end 0.81.0 → 0.82.0
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_blacklist_token_contract/blacklist_token_contract_test.d.ts +3 -2
- package/dest/e2e_blacklist_token_contract/blacklist_token_contract_test.d.ts.map +1 -1
- package/dest/e2e_blacklist_token_contract/blacklist_token_contract_test.js +7 -7
- package/dest/e2e_cross_chain_messaging/cross_chain_messaging_test.d.ts +0 -1
- package/dest/e2e_cross_chain_messaging/cross_chain_messaging_test.d.ts.map +1 -1
- package/dest/e2e_cross_chain_messaging/cross_chain_messaging_test.js +3 -18
- package/dest/e2e_deploy_contract/deploy_test.d.ts +2 -0
- package/dest/e2e_deploy_contract/deploy_test.d.ts.map +1 -1
- package/dest/e2e_deploy_contract/deploy_test.js +2 -0
- package/dest/e2e_epochs/epochs_test.d.ts +1 -2
- package/dest/e2e_epochs/epochs_test.d.ts.map +1 -1
- package/dest/e2e_epochs/epochs_test.js +7 -6
- package/dest/e2e_fees/fees_test.d.ts.map +1 -1
- package/dest/e2e_fees/fees_test.js +20 -29
- package/dest/e2e_prover/e2e_prover_test.d.ts +2 -0
- package/dest/e2e_prover/e2e_prover_test.d.ts.map +1 -1
- package/dest/e2e_prover/e2e_prover_test.js +7 -8
- package/dest/e2e_token_contract/token_contract_test.d.ts +2 -1
- package/dest/e2e_token_contract/token_contract_test.d.ts.map +1 -1
- package/dest/e2e_token_contract/token_contract_test.js +3 -1
- package/dest/fixtures/snapshot_manager.d.ts +4 -2
- package/dest/fixtures/snapshot_manager.d.ts.map +1 -1
- package/dest/fixtures/snapshot_manager.js +17 -16
- package/dest/fixtures/utils.d.ts +5 -5
- package/dest/fixtures/utils.d.ts.map +1 -1
- package/dest/fixtures/utils.js +13 -8
- package/dest/shared/capture_private_execution_steps.d.ts +7 -0
- package/dest/shared/capture_private_execution_steps.d.ts.map +1 -0
- package/dest/shared/capture_private_execution_steps.js +40 -0
- package/dest/shared/cross_chain_test_harness.d.ts +2 -2
- package/dest/shared/cross_chain_test_harness.d.ts.map +1 -1
- package/dest/shared/cross_chain_test_harness.js +16 -4
- package/dest/shared/gas_portal_test_harness.d.ts +11 -1
- package/dest/shared/gas_portal_test_harness.d.ts.map +1 -1
- package/dest/shared/gas_portal_test_harness.js +27 -12
- package/dest/shared/uniswap_l1_l2.d.ts.map +1 -1
- package/dest/shared/uniswap_l1_l2.js +24 -16
- package/dest/simulators/lending_simulator.d.ts +3 -5
- package/dest/simulators/lending_simulator.d.ts.map +1 -1
- package/dest/simulators/lending_simulator.js +5 -13
- package/dest/spartan/setup_test_wallets.d.ts +1 -1
- package/dest/spartan/setup_test_wallets.d.ts.map +1 -1
- package/dest/spartan/setup_test_wallets.js +6 -4
- package/dest/spartan/utils.d.ts +18 -5
- package/dest/spartan/utils.d.ts.map +1 -1
- package/dest/spartan/utils.js +8 -5
- package/package.json +33 -31
- package/src/e2e_blacklist_token_contract/blacklist_token_contract_test.ts +9 -5
- package/src/e2e_cross_chain_messaging/cross_chain_messaging_test.ts +3 -19
- package/src/e2e_deploy_contract/deploy_test.ts +3 -0
- package/src/e2e_epochs/epochs_test.ts +6 -5
- package/src/e2e_fees/fees_test.ts +21 -28
- package/src/e2e_prover/e2e_prover_test.ts +8 -7
- package/src/e2e_token_contract/token_contract_test.ts +4 -2
- package/src/fixtures/snapshot_manager.ts +24 -10
- package/src/fixtures/utils.ts +25 -9
- package/src/guides/up_quick_start.sh +1 -2
- package/src/shared/capture_private_execution_steps.ts +43 -0
- package/src/shared/cross_chain_test_harness.ts +14 -3
- package/src/shared/gas_portal_test_harness.ts +29 -9
- package/src/shared/uniswap_l1_l2.ts +16 -16
- package/src/simulators/lending_simulator.ts +7 -12
- package/src/spartan/setup_test_wallets.ts +7 -7
- package/src/spartan/utils.ts +8 -5
|
@@ -76,23 +76,15 @@ const computeMultiplier = (rate, dt)=>{
|
|
|
76
76
|
}
|
|
77
77
|
async prepare() {
|
|
78
78
|
this.accumulator = BASE;
|
|
79
|
-
const slot = await this.rollup.
|
|
80
|
-
|
|
81
|
-
]);
|
|
82
|
-
this.time = Number(await this.rollup.read.getTimestampForSlot([
|
|
83
|
-
slot
|
|
84
|
-
]));
|
|
79
|
+
const slot = await this.rollup.getSlotAt(BigInt(await this.cc.eth.timestamp()) + BigInt(this.ethereumSlotDuration));
|
|
80
|
+
this.time = Number(await this.rollup.getTimestampForSlot(slot));
|
|
85
81
|
}
|
|
86
82
|
async progressSlots(diff, dateProvider) {
|
|
87
83
|
if (diff <= 1) {
|
|
88
84
|
return;
|
|
89
85
|
}
|
|
90
|
-
const slot = await this.rollup.
|
|
91
|
-
|
|
92
|
-
]);
|
|
93
|
-
const ts = Number(await this.rollup.read.getTimestampForSlot([
|
|
94
|
-
slot + BigInt(diff)
|
|
95
|
-
]));
|
|
86
|
+
const slot = await this.rollup.getSlotAt(BigInt(await this.cc.eth.timestamp()));
|
|
87
|
+
const ts = Number(await this.rollup.getTimestampForSlot(slot + BigInt(diff)));
|
|
96
88
|
const timeDiff = ts - this.time;
|
|
97
89
|
this.time = ts;
|
|
98
90
|
// Mine ethereum blocks such that the next block will be in a new slot
|
|
@@ -100,7 +92,7 @@ const computeMultiplier = (rate, dt)=>{
|
|
|
100
92
|
if (dateProvider) {
|
|
101
93
|
dateProvider.setTime(this.time * 1000);
|
|
102
94
|
}
|
|
103
|
-
await this.cc.rollup.markAsProven(await this.rollup.
|
|
95
|
+
await this.cc.rollup.markAsProven(await this.rollup.getBlockNumber());
|
|
104
96
|
this.accumulator = muldivDown(this.accumulator, computeMultiplier(this.rate, BigInt(timeDiff)), BASE);
|
|
105
97
|
}
|
|
106
98
|
depositPrivate(from, onBehalfOf, amount) {
|
|
@@ -10,7 +10,7 @@ export interface TestWallets {
|
|
|
10
10
|
tokenAddress: AztecAddress;
|
|
11
11
|
}
|
|
12
12
|
export declare function setupTestWalletsWithTokens(pxeUrl: string, mintAmount: bigint, logger: Logger): Promise<TestWallets>;
|
|
13
|
-
export declare function deployTestWalletWithTokens(pxeUrl: string, nodeUrl: string, l1RpcUrls: string[], mnemonicOrPrivateKey: string, mintAmount: bigint, logger: Logger, numberOfFundedWallets?: number
|
|
13
|
+
export declare function deployTestWalletWithTokens(pxeUrl: string, nodeUrl: string, l1RpcUrls: string[], mnemonicOrPrivateKey: string, mintAmount: bigint, logger: Logger, numberOfFundedWallets?: number): Promise<TestWallets>;
|
|
14
14
|
export declare function performTransfers({ testWallets, rounds, transferAmount, logger, }: {
|
|
15
15
|
testWallets: TestWallets;
|
|
16
16
|
rounds: number;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"setup_test_wallets.d.ts","sourceRoot":"","sources":["../../src/spartan/setup_test_wallets.ts"],"names":[],"mappings":"AAEA,OAAO,EACL,KAAK,0BAA0B,EAC/B,KAAK,YAAY,EAKjB,KAAK,GAAG,EAIT,MAAM,iBAAiB,CAAC;AAEzB,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,uBAAuB,CAAC;AACpD,OAAO,EAAE,aAAa,EAAE,MAAM,gCAAgC,CAAC;
|
|
1
|
+
{"version":3,"file":"setup_test_wallets.d.ts","sourceRoot":"","sources":["../../src/spartan/setup_test_wallets.ts"],"names":[],"mappings":"AAEA,OAAO,EACL,KAAK,0BAA0B,EAC/B,KAAK,YAAY,EAKjB,KAAK,GAAG,EAIT,MAAM,iBAAiB,CAAC;AAEzB,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,uBAAuB,CAAC;AACpD,OAAO,EAAE,aAAa,EAAE,MAAM,gCAAgC,CAAC;AAG/D,MAAM,WAAW,WAAW;IAC1B,GAAG,EAAE,GAAG,CAAC;IACT,OAAO,EAAE,0BAA0B,EAAE,CAAC;IACtC,gBAAgB,EAAE,aAAa,CAAC;IAChC,SAAS,EAAE,MAAM,CAAC;IAClB,eAAe,EAAE,0BAA0B,CAAC;IAC5C,YAAY,EAAE,YAAY,CAAC;CAC5B;AAMD,wBAAsB,0BAA0B,CAC9C,MAAM,EAAE,MAAM,EACd,UAAU,EAAE,MAAM,EAClB,MAAM,EAAE,MAAM,GACb,OAAO,CAAC,WAAW,CAAC,CAYtB;AAED,wBAAsB,0BAA0B,CAC9C,MAAM,EAAE,MAAM,EACd,OAAO,EAAE,MAAM,EACf,SAAS,EAAE,MAAM,EAAE,EACnB,oBAAoB,EAAE,MAAM,EAC5B,UAAU,EAAE,MAAM,EAClB,MAAM,EAAE,MAAM,EACd,qBAAqB,SAAI,GACxB,OAAO,CAAC,WAAW,CAAC,CAoCtB;AA6DD,wBAAsB,gBAAgB,CAAC,EACrC,WAAW,EACX,MAAM,EACN,cAAc,EACd,MAAM,GACP,EAAE;IACD,WAAW,EAAE,WAAW,CAAC;IACzB,MAAM,EAAE,MAAM,CAAC;IACf,cAAc,EAAE,MAAM,CAAC;IACvB,MAAM,EAAE,MAAM,CAAC;CAChB,iBAkBA"}
|
|
@@ -22,13 +22,13 @@ export async function setupTestWalletsWithTokens(pxeUrl, mintAmount, logger) {
|
|
|
22
22
|
recipientWallet
|
|
23
23
|
};
|
|
24
24
|
}
|
|
25
|
-
export async function deployTestWalletWithTokens(pxeUrl, nodeUrl, l1RpcUrls, mnemonicOrPrivateKey, mintAmount, logger, numberOfFundedWallets = 1
|
|
25
|
+
export async function deployTestWalletWithTokens(pxeUrl, nodeUrl, l1RpcUrls, mnemonicOrPrivateKey, mintAmount, logger, numberOfFundedWallets = 1) {
|
|
26
26
|
const pxe = await createCompatibleClient(pxeUrl, logger);
|
|
27
27
|
const node = createAztecNodeClient(nodeUrl);
|
|
28
28
|
const [recipient, ...funded] = await generateSchnorrAccounts(numberOfFundedWallets + 1);
|
|
29
29
|
const recipientWallet = await getSchnorrWalletWithSecretKey(pxe, recipient.secret, recipient.signingKey, recipient.salt);
|
|
30
30
|
const fundedAccounts = await Promise.all(funded.map((a)=>getSchnorrAccount(pxe, a.secret, a.signingKey, a.salt)));
|
|
31
|
-
const claims = await Promise.all(fundedAccounts.map((a)=>bridgeL1FeeJuice(l1RpcUrls, mnemonicOrPrivateKey, pxe, a.getAddress(),
|
|
31
|
+
const claims = await Promise.all(fundedAccounts.map((a)=>bridgeL1FeeJuice(l1RpcUrls, mnemonicOrPrivateKey, pxe, a.getAddress(), undefined, logger)));
|
|
32
32
|
// Progress by 2 L2 blocks so that the l1ToL2Message added above will be available to use on L2.
|
|
33
33
|
await advanceL2Block(node);
|
|
34
34
|
await advanceL2Block(node);
|
|
@@ -59,16 +59,18 @@ async function bridgeL1FeeJuice(l1RpcUrls, mnemonicOrPrivateKey, pxe, recipient,
|
|
|
59
59
|
const { l1ChainId } = await pxe.getNodeInfo();
|
|
60
60
|
const chain = createEthereumChain(l1RpcUrls, l1ChainId);
|
|
61
61
|
const { publicClient, walletClient } = createL1Clients(chain.rpcUrls, mnemonicOrPrivateKey, chain.chainInfo);
|
|
62
|
+
// docs:start:bridge_fee_juice
|
|
62
63
|
const portal = await L1FeeJuicePortalManager.new(pxe, publicClient, walletClient, log);
|
|
63
64
|
const claim = await portal.bridgeTokensPublic(recipient, amount, true);
|
|
65
|
+
// docs:end:bridge_fee_juice
|
|
64
66
|
const isSynced = async ()=>await pxe.isL1ToL2MessageSynced(Fr.fromHexString(claim.messageHash));
|
|
65
67
|
await retryUntil(isSynced, `message ${claim.messageHash} sync`, 24, 0.5);
|
|
66
68
|
log.info(`Created a claim for ${amount} L1 fee juice to ${recipient}.`, claim);
|
|
67
69
|
return claim;
|
|
68
70
|
}
|
|
69
|
-
async function advanceL2Block(node) {
|
|
71
|
+
async function advanceL2Block(node, nodeAdmin) {
|
|
70
72
|
const initialBlockNumber = await node.getBlockNumber();
|
|
71
|
-
await
|
|
73
|
+
await nodeAdmin?.flushTxs();
|
|
72
74
|
await retryUntil(async ()=>await node.getBlockNumber() >= initialBlockNumber + 1);
|
|
73
75
|
}
|
|
74
76
|
async function deployTokenAndMint(wallets, admin, mintAmount, logger) {
|
package/dest/spartan/utils.d.ts
CHANGED
|
@@ -13,6 +13,7 @@ declare const k8sLocalConfigSchema: z.ZodObject<{
|
|
|
13
13
|
INSTANCE_NAME: z.ZodString;
|
|
14
14
|
NAMESPACE: z.ZodString;
|
|
15
15
|
CONTAINER_NODE_PORT: z.ZodDefault<z.ZodNumber>;
|
|
16
|
+
CONTAINER_NODE_ADMIN_PORT: z.ZodDefault<z.ZodNumber>;
|
|
16
17
|
CONTAINER_SEQUENCER_PORT: z.ZodDefault<z.ZodNumber>;
|
|
17
18
|
CONTAINER_PROVER_NODE_PORT: z.ZodDefault<z.ZodNumber>;
|
|
18
19
|
CONTAINER_PXE_PORT: z.ZodDefault<z.ZodNumber>;
|
|
@@ -33,6 +34,7 @@ declare const k8sLocalConfigSchema: z.ZodObject<{
|
|
|
33
34
|
INSTANCE_NAME: string;
|
|
34
35
|
NAMESPACE: string;
|
|
35
36
|
CONTAINER_NODE_PORT: number;
|
|
37
|
+
CONTAINER_NODE_ADMIN_PORT: number;
|
|
36
38
|
CONTAINER_SEQUENCER_PORT: number;
|
|
37
39
|
CONTAINER_PROVER_NODE_PORT: number;
|
|
38
40
|
CONTAINER_PXE_PORT: number;
|
|
@@ -56,6 +58,7 @@ declare const k8sLocalConfigSchema: z.ZodObject<{
|
|
|
56
58
|
K8S: "local";
|
|
57
59
|
ETHEREUM_HOSTS?: string | undefined;
|
|
58
60
|
CONTAINER_NODE_PORT?: number | undefined;
|
|
61
|
+
CONTAINER_NODE_ADMIN_PORT?: number | undefined;
|
|
59
62
|
CONTAINER_SEQUENCER_PORT?: number | undefined;
|
|
60
63
|
CONTAINER_PROVER_NODE_PORT?: number | undefined;
|
|
61
64
|
CONTAINER_PXE_PORT?: number | undefined;
|
|
@@ -74,6 +77,7 @@ declare const k8sGCloudConfigSchema: z.ZodObject<z.objectUtil.extendShape<{
|
|
|
74
77
|
INSTANCE_NAME: z.ZodString;
|
|
75
78
|
NAMESPACE: z.ZodString;
|
|
76
79
|
CONTAINER_NODE_PORT: z.ZodDefault<z.ZodNumber>;
|
|
80
|
+
CONTAINER_NODE_ADMIN_PORT: z.ZodDefault<z.ZodNumber>;
|
|
77
81
|
CONTAINER_SEQUENCER_PORT: z.ZodDefault<z.ZodNumber>;
|
|
78
82
|
CONTAINER_PROVER_NODE_PORT: z.ZodDefault<z.ZodNumber>;
|
|
79
83
|
CONTAINER_PXE_PORT: z.ZodDefault<z.ZodNumber>;
|
|
@@ -98,6 +102,7 @@ declare const k8sGCloudConfigSchema: z.ZodObject<z.objectUtil.extendShape<{
|
|
|
98
102
|
INSTANCE_NAME: string;
|
|
99
103
|
NAMESPACE: string;
|
|
100
104
|
CONTAINER_NODE_PORT: number;
|
|
105
|
+
CONTAINER_NODE_ADMIN_PORT: number;
|
|
101
106
|
CONTAINER_SEQUENCER_PORT: number;
|
|
102
107
|
CONTAINER_PROVER_NODE_PORT: number;
|
|
103
108
|
CONTAINER_PXE_PORT: number;
|
|
@@ -125,6 +130,7 @@ declare const k8sGCloudConfigSchema: z.ZodObject<z.objectUtil.extendShape<{
|
|
|
125
130
|
REGION: string;
|
|
126
131
|
ETHEREUM_HOSTS?: string | undefined;
|
|
127
132
|
CONTAINER_NODE_PORT?: number | undefined;
|
|
133
|
+
CONTAINER_NODE_ADMIN_PORT?: number | undefined;
|
|
128
134
|
CONTAINER_SEQUENCER_PORT?: number | undefined;
|
|
129
135
|
CONTAINER_PROVER_NODE_PORT?: number | undefined;
|
|
130
136
|
CONTAINER_PXE_PORT?: number | undefined;
|
|
@@ -138,6 +144,7 @@ declare const k8sGCloudConfigSchema: z.ZodObject<z.objectUtil.extendShape<{
|
|
|
138
144
|
declare const directConfigSchema: z.ZodObject<{
|
|
139
145
|
PXE_URL: z.ZodString;
|
|
140
146
|
NODE_URL: z.ZodString;
|
|
147
|
+
NODE_ADMIN_URL: z.ZodString;
|
|
141
148
|
ETHEREUM_HOSTS: z.ZodEffects<z.ZodString, string, string>;
|
|
142
149
|
K8S: z.ZodLiteral<"false">;
|
|
143
150
|
}, "strip", z.ZodTypeAny, {
|
|
@@ -145,11 +152,13 @@ declare const directConfigSchema: z.ZodObject<{
|
|
|
145
152
|
ETHEREUM_HOSTS: string;
|
|
146
153
|
K8S: "false";
|
|
147
154
|
NODE_URL: string;
|
|
155
|
+
NODE_ADMIN_URL: string;
|
|
148
156
|
}, {
|
|
149
157
|
PXE_URL: string;
|
|
150
158
|
ETHEREUM_HOSTS: string;
|
|
151
159
|
K8S: "false";
|
|
152
160
|
NODE_URL: string;
|
|
161
|
+
NODE_ADMIN_URL: string;
|
|
153
162
|
}>;
|
|
154
163
|
declare const envSchema: z.ZodDiscriminatedUnion<"K8S", [z.ZodObject<{
|
|
155
164
|
ETHEREUM_SLOT_DURATION: z.ZodNumber;
|
|
@@ -159,6 +168,7 @@ declare const envSchema: z.ZodDiscriminatedUnion<"K8S", [z.ZodObject<{
|
|
|
159
168
|
INSTANCE_NAME: z.ZodString;
|
|
160
169
|
NAMESPACE: z.ZodString;
|
|
161
170
|
CONTAINER_NODE_PORT: z.ZodDefault<z.ZodNumber>;
|
|
171
|
+
CONTAINER_NODE_ADMIN_PORT: z.ZodDefault<z.ZodNumber>;
|
|
162
172
|
CONTAINER_SEQUENCER_PORT: z.ZodDefault<z.ZodNumber>;
|
|
163
173
|
CONTAINER_PROVER_NODE_PORT: z.ZodDefault<z.ZodNumber>;
|
|
164
174
|
CONTAINER_PXE_PORT: z.ZodDefault<z.ZodNumber>;
|
|
@@ -179,6 +189,7 @@ declare const envSchema: z.ZodDiscriminatedUnion<"K8S", [z.ZodObject<{
|
|
|
179
189
|
INSTANCE_NAME: string;
|
|
180
190
|
NAMESPACE: string;
|
|
181
191
|
CONTAINER_NODE_PORT: number;
|
|
192
|
+
CONTAINER_NODE_ADMIN_PORT: number;
|
|
182
193
|
CONTAINER_SEQUENCER_PORT: number;
|
|
183
194
|
CONTAINER_PROVER_NODE_PORT: number;
|
|
184
195
|
CONTAINER_PXE_PORT: number;
|
|
@@ -202,6 +213,7 @@ declare const envSchema: z.ZodDiscriminatedUnion<"K8S", [z.ZodObject<{
|
|
|
202
213
|
K8S: "local";
|
|
203
214
|
ETHEREUM_HOSTS?: string | undefined;
|
|
204
215
|
CONTAINER_NODE_PORT?: number | undefined;
|
|
216
|
+
CONTAINER_NODE_ADMIN_PORT?: number | undefined;
|
|
205
217
|
CONTAINER_SEQUENCER_PORT?: number | undefined;
|
|
206
218
|
CONTAINER_PROVER_NODE_PORT?: number | undefined;
|
|
207
219
|
CONTAINER_PXE_PORT?: number | undefined;
|
|
@@ -219,6 +231,7 @@ declare const envSchema: z.ZodDiscriminatedUnion<"K8S", [z.ZodObject<{
|
|
|
219
231
|
INSTANCE_NAME: z.ZodString;
|
|
220
232
|
NAMESPACE: z.ZodString;
|
|
221
233
|
CONTAINER_NODE_PORT: z.ZodDefault<z.ZodNumber>;
|
|
234
|
+
CONTAINER_NODE_ADMIN_PORT: z.ZodDefault<z.ZodNumber>;
|
|
222
235
|
CONTAINER_SEQUENCER_PORT: z.ZodDefault<z.ZodNumber>;
|
|
223
236
|
CONTAINER_PROVER_NODE_PORT: z.ZodDefault<z.ZodNumber>;
|
|
224
237
|
CONTAINER_PXE_PORT: z.ZodDefault<z.ZodNumber>;
|
|
@@ -243,6 +256,7 @@ declare const envSchema: z.ZodDiscriminatedUnion<"K8S", [z.ZodObject<{
|
|
|
243
256
|
INSTANCE_NAME: string;
|
|
244
257
|
NAMESPACE: string;
|
|
245
258
|
CONTAINER_NODE_PORT: number;
|
|
259
|
+
CONTAINER_NODE_ADMIN_PORT: number;
|
|
246
260
|
CONTAINER_SEQUENCER_PORT: number;
|
|
247
261
|
CONTAINER_PROVER_NODE_PORT: number;
|
|
248
262
|
CONTAINER_PXE_PORT: number;
|
|
@@ -270,6 +284,7 @@ declare const envSchema: z.ZodDiscriminatedUnion<"K8S", [z.ZodObject<{
|
|
|
270
284
|
REGION: string;
|
|
271
285
|
ETHEREUM_HOSTS?: string | undefined;
|
|
272
286
|
CONTAINER_NODE_PORT?: number | undefined;
|
|
287
|
+
CONTAINER_NODE_ADMIN_PORT?: number | undefined;
|
|
273
288
|
CONTAINER_SEQUENCER_PORT?: number | undefined;
|
|
274
289
|
CONTAINER_PROVER_NODE_PORT?: number | undefined;
|
|
275
290
|
CONTAINER_PXE_PORT?: number | undefined;
|
|
@@ -282,6 +297,7 @@ declare const envSchema: z.ZodDiscriminatedUnion<"K8S", [z.ZodObject<{
|
|
|
282
297
|
}>, z.ZodObject<{
|
|
283
298
|
PXE_URL: z.ZodString;
|
|
284
299
|
NODE_URL: z.ZodString;
|
|
300
|
+
NODE_ADMIN_URL: z.ZodString;
|
|
285
301
|
ETHEREUM_HOSTS: z.ZodEffects<z.ZodString, string, string>;
|
|
286
302
|
K8S: z.ZodLiteral<"false">;
|
|
287
303
|
}, "strip", z.ZodTypeAny, {
|
|
@@ -289,11 +305,13 @@ declare const envSchema: z.ZodDiscriminatedUnion<"K8S", [z.ZodObject<{
|
|
|
289
305
|
ETHEREUM_HOSTS: string;
|
|
290
306
|
K8S: "false";
|
|
291
307
|
NODE_URL: string;
|
|
308
|
+
NODE_ADMIN_URL: string;
|
|
292
309
|
}, {
|
|
293
310
|
PXE_URL: string;
|
|
294
311
|
ETHEREUM_HOSTS: string;
|
|
295
312
|
K8S: "false";
|
|
296
313
|
NODE_URL: string;
|
|
314
|
+
NODE_ADMIN_URL: string;
|
|
297
315
|
}>]>;
|
|
298
316
|
export type K8sLocalConfig = z.infer<typeof k8sLocalConfigSchema>;
|
|
299
317
|
export type K8sGCloudConfig = z.infer<typeof k8sGCloudConfigSchema>;
|
|
@@ -407,11 +425,6 @@ export declare function enableValidatorDynamicBootNode(instanceName: string, nam
|
|
|
407
425
|
export declare function runAlertCheck(config: EnvConfig, alerts: AlertConfig[], logger: Logger): Promise<void>;
|
|
408
426
|
export declare function updateSequencerConfig(url: string, config: Partial<SequencerConfig>): Promise<void>;
|
|
409
427
|
export declare function getSequencers(namespace: string): Promise<string[]>;
|
|
410
|
-
export declare function updateK8sSequencersConfig(args: {
|
|
411
|
-
containerPort: number;
|
|
412
|
-
namespace: string;
|
|
413
|
-
config: Partial<SequencerConfig>;
|
|
414
|
-
}): Promise<void>;
|
|
415
428
|
export declare function updateSequencersConfig(env: EnvConfig, config: Partial<SequencerConfig>): Promise<void>;
|
|
416
429
|
/**
|
|
417
430
|
* Rolls the Aztec pods in the given namespace.
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"utils.d.ts","sourceRoot":"","sources":["../../src/spartan/utils.ts"],"names":[],"mappings":";AACA,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,yBAAyB,CAAC;AAChE,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,uBAAuB,CAAC;AAEpD,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,yBAAyB,CAAC;
|
|
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
|
@@ -1,5 +1,6 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import { createLogger, sleep } from '@aztec/aztec.js';
|
|
2
2
|
import { makeBackoff, retry } from '@aztec/foundation/retry';
|
|
3
|
+
import { createAztecNodeAdminClient } from '@aztec/stdlib/interfaces/client';
|
|
3
4
|
import { exec, execSync, spawn } from 'child_process';
|
|
4
5
|
import path from 'path';
|
|
5
6
|
import { promisify } from 'util';
|
|
@@ -23,6 +24,7 @@ const k8sLocalConfigSchema = z.object({
|
|
|
23
24
|
INSTANCE_NAME: z.string().min(1, 'INSTANCE_NAME env variable must be set'),
|
|
24
25
|
NAMESPACE: z.string().min(1, 'NAMESPACE env variable must be set'),
|
|
25
26
|
CONTAINER_NODE_PORT: z.coerce.number().default(8080),
|
|
27
|
+
CONTAINER_NODE_ADMIN_PORT: z.coerce.number().default(8880),
|
|
26
28
|
CONTAINER_SEQUENCER_PORT: z.coerce.number().default(8080),
|
|
27
29
|
CONTAINER_PROVER_NODE_PORT: z.coerce.number().default(8080),
|
|
28
30
|
CONTAINER_PXE_PORT: z.coerce.number().default(8080),
|
|
@@ -44,6 +46,7 @@ const k8sGCloudConfigSchema = k8sLocalConfigSchema.extend({
|
|
|
44
46
|
const directConfigSchema = z.object({
|
|
45
47
|
PXE_URL: z.string().url('PXE_URL must be a valid URL'),
|
|
46
48
|
NODE_URL: z.string().url('NODE_URL must be a valid URL'),
|
|
49
|
+
NODE_ADMIN_URL: z.string().url('NODE_ADMIN_URL must be a valid URL'),
|
|
47
50
|
ETHEREUM_HOSTS: ethereumHostsSchema,
|
|
48
51
|
K8S: z.literal('false')
|
|
49
52
|
});
|
|
@@ -388,7 +391,7 @@ export async function runAlertCheck(config, alerts, logger) {
|
|
|
388
391
|
}
|
|
389
392
|
}
|
|
390
393
|
export async function updateSequencerConfig(url, config) {
|
|
391
|
-
const node =
|
|
394
|
+
const node = createAztecNodeAdminClient(url);
|
|
392
395
|
// Retry incase the port forward is not ready yet
|
|
393
396
|
await retry(()=>node.setConfig(config), 'Update sequencer config', makeBackoff([
|
|
394
397
|
1,
|
|
@@ -401,7 +404,7 @@ export async function getSequencers(namespace) {
|
|
|
401
404
|
const { stdout } = await execAsync(command);
|
|
402
405
|
return stdout.split(' ');
|
|
403
406
|
}
|
|
404
|
-
|
|
407
|
+
async function updateK8sSequencersConfig(args) {
|
|
405
408
|
const { containerPort, namespace, config } = args;
|
|
406
409
|
const sequencers = await getSequencers(namespace);
|
|
407
410
|
for (const sequencer of sequencers){
|
|
@@ -418,12 +421,12 @@ export async function updateK8sSequencersConfig(args) {
|
|
|
418
421
|
export async function updateSequencersConfig(env, config) {
|
|
419
422
|
if (isK8sConfig(env)) {
|
|
420
423
|
await updateK8sSequencersConfig({
|
|
421
|
-
containerPort: env.
|
|
424
|
+
containerPort: env.CONTAINER_NODE_ADMIN_PORT,
|
|
422
425
|
namespace: env.NAMESPACE,
|
|
423
426
|
config
|
|
424
427
|
});
|
|
425
428
|
} else {
|
|
426
|
-
await updateSequencerConfig(env.
|
|
429
|
+
await updateSequencerConfig(env.NODE_ADMIN_URL, config);
|
|
427
430
|
}
|
|
428
431
|
}
|
|
429
432
|
/**
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@aztec/end-to-end",
|
|
3
|
-
"version": "0.
|
|
3
|
+
"version": "0.82.0",
|
|
4
4
|
"type": "module",
|
|
5
5
|
"exports": "./dest/index.js",
|
|
6
6
|
"inherits": [
|
|
@@ -26,38 +26,40 @@
|
|
|
26
26
|
"formatting": "run -T prettier --check ./src && run -T eslint ./src"
|
|
27
27
|
},
|
|
28
28
|
"dependencies": {
|
|
29
|
-
"@aztec/accounts": "0.
|
|
30
|
-
"@aztec/archiver": "0.
|
|
31
|
-
"@aztec/aztec": "0.
|
|
32
|
-
"@aztec/aztec-node": "0.
|
|
33
|
-
"@aztec/aztec.js": "0.
|
|
34
|
-
"@aztec/bb-prover": "0.
|
|
35
|
-
"@aztec/blob-lib": "0.
|
|
36
|
-
"@aztec/blob-sink": "0.
|
|
37
|
-
"@aztec/bot": "0.
|
|
38
|
-
"@aztec/constants": "0.
|
|
39
|
-
"@aztec/entrypoints": "0.
|
|
40
|
-
"@aztec/epoch-cache": "0.
|
|
41
|
-
"@aztec/ethereum": "0.
|
|
42
|
-
"@aztec/foundation": "0.
|
|
43
|
-
"@aztec/kv-store": "0.
|
|
44
|
-
"@aztec/l1-artifacts": "0.
|
|
45
|
-
"@aztec/merkle-tree": "0.
|
|
46
|
-
"@aztec/noir-contracts.js": "0.
|
|
47
|
-
"@aztec/noir-
|
|
48
|
-
"@aztec/
|
|
49
|
-
"@aztec/
|
|
50
|
-
"@aztec/
|
|
51
|
-
"@aztec/prover-
|
|
52
|
-
"@aztec/
|
|
53
|
-
"@aztec/
|
|
54
|
-
"@aztec/
|
|
55
|
-
"@aztec/
|
|
56
|
-
"@aztec/
|
|
57
|
-
"@aztec/
|
|
58
|
-
"@aztec/
|
|
29
|
+
"@aztec/accounts": "0.82.0",
|
|
30
|
+
"@aztec/archiver": "0.82.0",
|
|
31
|
+
"@aztec/aztec": "0.82.0",
|
|
32
|
+
"@aztec/aztec-node": "0.82.0",
|
|
33
|
+
"@aztec/aztec.js": "0.82.0",
|
|
34
|
+
"@aztec/bb-prover": "0.82.0",
|
|
35
|
+
"@aztec/blob-lib": "0.82.0",
|
|
36
|
+
"@aztec/blob-sink": "0.82.0",
|
|
37
|
+
"@aztec/bot": "0.82.0",
|
|
38
|
+
"@aztec/constants": "0.82.0",
|
|
39
|
+
"@aztec/entrypoints": "0.82.0",
|
|
40
|
+
"@aztec/epoch-cache": "0.82.0",
|
|
41
|
+
"@aztec/ethereum": "0.82.0",
|
|
42
|
+
"@aztec/foundation": "0.82.0",
|
|
43
|
+
"@aztec/kv-store": "0.82.0",
|
|
44
|
+
"@aztec/l1-artifacts": "0.82.0",
|
|
45
|
+
"@aztec/merkle-tree": "0.82.0",
|
|
46
|
+
"@aztec/noir-contracts.js": "0.82.0",
|
|
47
|
+
"@aztec/noir-noirc_abi": "0.82.0",
|
|
48
|
+
"@aztec/noir-protocol-circuits-types": "0.82.0",
|
|
49
|
+
"@aztec/p2p": "0.82.0",
|
|
50
|
+
"@aztec/protocol-contracts": "0.82.0",
|
|
51
|
+
"@aztec/prover-client": "0.82.0",
|
|
52
|
+
"@aztec/prover-node": "0.82.0",
|
|
53
|
+
"@aztec/pxe": "0.82.0",
|
|
54
|
+
"@aztec/sequencer-client": "0.82.0",
|
|
55
|
+
"@aztec/simulator": "0.82.0",
|
|
56
|
+
"@aztec/stdlib": "0.82.0",
|
|
57
|
+
"@aztec/telemetry-client": "0.82.0",
|
|
58
|
+
"@aztec/validator-client": "0.82.0",
|
|
59
|
+
"@aztec/world-state": "0.82.0",
|
|
59
60
|
"@iarna/toml": "^2.2.5",
|
|
60
61
|
"@jest/globals": "^29.5.0",
|
|
62
|
+
"@msgpack/msgpack": "^3.0.0-beta2",
|
|
61
63
|
"@noble/curves": "^1.0.0",
|
|
62
64
|
"@swc/core": "^1.4.11",
|
|
63
65
|
"@swc/jest": "^0.2.36",
|
|
@@ -1,9 +1,11 @@
|
|
|
1
1
|
import { getSchnorrWallet } from '@aztec/accounts/schnorr';
|
|
2
2
|
import {
|
|
3
3
|
type AccountWallet,
|
|
4
|
+
AztecAddress,
|
|
4
5
|
type CompleteAddress,
|
|
5
6
|
Fr,
|
|
6
7
|
type Logger,
|
|
8
|
+
type PXE,
|
|
7
9
|
type TxHash,
|
|
8
10
|
computeSecretHash,
|
|
9
11
|
createLogger,
|
|
@@ -61,6 +63,7 @@ export class BlacklistTokenContractTest {
|
|
|
61
63
|
private snapshotManager: ISnapshotManager;
|
|
62
64
|
logger: Logger;
|
|
63
65
|
wallets: AccountWallet[] = [];
|
|
66
|
+
pxe!: PXE;
|
|
64
67
|
accounts: CompleteAddress[] = [];
|
|
65
68
|
asset!: TokenBlacklistContract;
|
|
66
69
|
tokenSim!: TokenSimulator;
|
|
@@ -94,6 +97,7 @@ export class BlacklistTokenContractTest {
|
|
|
94
97
|
'3_accounts',
|
|
95
98
|
deployAccounts(3, this.logger),
|
|
96
99
|
async ({ deployedAccounts }, { pxe }) => {
|
|
100
|
+
this.pxe = pxe;
|
|
97
101
|
this.wallets = await Promise.all(deployedAccounts.map(a => getSchnorrWallet(pxe, a.address, a.signingKey)));
|
|
98
102
|
this.admin = this.wallets[0];
|
|
99
103
|
this.other = this.wallets[1];
|
|
@@ -164,12 +168,12 @@ export class BlacklistTokenContractTest {
|
|
|
164
168
|
|
|
165
169
|
async addPendingShieldNoteToPXE(
|
|
166
170
|
contract: TokenBlacklistContract,
|
|
167
|
-
|
|
171
|
+
recipient: AztecAddress,
|
|
168
172
|
amount: bigint,
|
|
169
173
|
secretHash: Fr,
|
|
170
174
|
txHash: TxHash,
|
|
171
175
|
) {
|
|
172
|
-
const txEffects = await
|
|
176
|
+
const txEffects = await this.pxe.getTxEffect(txHash);
|
|
173
177
|
await contract.methods
|
|
174
178
|
.deliver_transparent_note(
|
|
175
179
|
contract.address,
|
|
@@ -178,7 +182,7 @@ export class BlacklistTokenContractTest {
|
|
|
178
182
|
txHash.hash,
|
|
179
183
|
this.#toBoundedVec(txEffects!.data.noteHashes, MAX_NOTE_HASHES_PER_TX),
|
|
180
184
|
txEffects!.data.nullifiers[0],
|
|
181
|
-
|
|
185
|
+
recipient,
|
|
182
186
|
)
|
|
183
187
|
.simulate();
|
|
184
188
|
}
|
|
@@ -218,9 +222,9 @@ export class BlacklistTokenContractTest {
|
|
|
218
222
|
const secretHash = await computeSecretHash(secret);
|
|
219
223
|
const receipt = await asset.methods.mint_private(amount, secretHash).send().wait();
|
|
220
224
|
|
|
221
|
-
await this.addPendingShieldNoteToPXE(asset, wallets[0], amount, secretHash, receipt.txHash);
|
|
225
|
+
await this.addPendingShieldNoteToPXE(asset, wallets[0].getAddress(), amount, secretHash, receipt.txHash);
|
|
222
226
|
const txClaim = asset.methods.redeem_shield(accounts[0].address, amount, secret).send();
|
|
223
|
-
await txClaim.wait(
|
|
227
|
+
await txClaim.wait();
|
|
224
228
|
this.logger.verbose(`Minting complete.`);
|
|
225
229
|
|
|
226
230
|
return { amount };
|
|
@@ -12,7 +12,7 @@ import {
|
|
|
12
12
|
} from '@aztec/aztec.js';
|
|
13
13
|
import { CheatCodes } from '@aztec/aztec.js/testing';
|
|
14
14
|
import { type ViemPublicClient, createL1Clients, deployL1Contract } from '@aztec/ethereum';
|
|
15
|
-
import { InboxAbi, OutboxAbi,
|
|
15
|
+
import { InboxAbi, OutboxAbi, TestERC20Abi, TestERC20Bytecode } from '@aztec/l1-artifacts';
|
|
16
16
|
import { TokenContract } from '@aztec/noir-contracts.js/Token';
|
|
17
17
|
import { TokenBridgeContract } from '@aztec/noir-contracts.js/TokenBridge';
|
|
18
18
|
|
|
@@ -49,7 +49,6 @@ export class CrossChainMessagingTest {
|
|
|
49
49
|
l2Token!: TokenContract;
|
|
50
50
|
l2Bridge!: TokenBridgeContract;
|
|
51
51
|
|
|
52
|
-
rollup!: any; // GetContractReturnType<typeof RollupAbi> | undefined;
|
|
53
52
|
inbox!: any; // GetContractReturnType<typeof InboxAbi> | undefined;
|
|
54
53
|
outbox!: any; // GetContractReturnType<typeof OutboxAbi> | undefined;
|
|
55
54
|
cheatcodes!: CheatCodes;
|
|
@@ -60,7 +59,7 @@ export class CrossChainMessagingTest {
|
|
|
60
59
|
}
|
|
61
60
|
|
|
62
61
|
async assumeProven() {
|
|
63
|
-
await this.cheatcodes.rollup.markAsProven(
|
|
62
|
+
await this.cheatcodes.rollup.markAsProven();
|
|
64
63
|
}
|
|
65
64
|
|
|
66
65
|
async setup() {
|
|
@@ -88,17 +87,11 @@ export class CrossChainMessagingTest {
|
|
|
88
87
|
await this.snapshotManager.snapshot(
|
|
89
88
|
'3_accounts',
|
|
90
89
|
deployAccounts(3, this.logger),
|
|
91
|
-
async ({ deployedAccounts }, { pxe, aztecNodeConfig, aztecNode
|
|
90
|
+
async ({ deployedAccounts }, { pxe, aztecNodeConfig, aztecNode }) => {
|
|
92
91
|
this.wallets = await Promise.all(deployedAccounts.map(a => getSchnorrWallet(pxe, a.address, a.signingKey)));
|
|
93
92
|
this.accounts = this.wallets.map(w => w.getCompleteAddress());
|
|
94
93
|
this.wallets.forEach((w, i) => this.logger.verbose(`Wallet ${i} address: ${w.getAddress()}`));
|
|
95
94
|
|
|
96
|
-
this.rollup = getContract({
|
|
97
|
-
address: deployL1ContractsValues.l1ContractAddresses.rollupAddress.toString(),
|
|
98
|
-
abi: RollupAbi,
|
|
99
|
-
client: deployL1ContractsValues.walletClient,
|
|
100
|
-
});
|
|
101
|
-
|
|
102
95
|
this.user1Wallet = this.wallets[0];
|
|
103
96
|
this.user2Wallet = this.wallets[1];
|
|
104
97
|
|
|
@@ -126,15 +119,6 @@ export class CrossChainMessagingTest {
|
|
|
126
119
|
['Underlying', 'UND', walletClient.account.address],
|
|
127
120
|
).then(({ address }) => address);
|
|
128
121
|
|
|
129
|
-
const underlyingERC20 = getContract({
|
|
130
|
-
address: underlyingERC20Address!.toString(),
|
|
131
|
-
abi: TestERC20Abi,
|
|
132
|
-
client: walletClient,
|
|
133
|
-
});
|
|
134
|
-
|
|
135
|
-
// allow anyone to mint
|
|
136
|
-
await underlyingERC20.write.setFreeForAll([true], {} as any);
|
|
137
|
-
|
|
138
122
|
this.logger.verbose(`Setting up cross chain harness...`);
|
|
139
123
|
this.crossChainTestHarness = await CrossChainTestHarness.new(
|
|
140
124
|
this.aztecNode,
|
|
@@ -14,6 +14,7 @@ import {
|
|
|
14
14
|
getContractInstanceFromDeployParams,
|
|
15
15
|
} from '@aztec/aztec.js';
|
|
16
16
|
import type { StatefulTestContract } from '@aztec/noir-contracts.js/StatefulTest';
|
|
17
|
+
import type { AztecNodeAdmin } from '@aztec/stdlib/interfaces/client';
|
|
17
18
|
|
|
18
19
|
import { type ISnapshotManager, createSnapshotManager, deployAccounts } from '../fixtures/snapshot_manager.js';
|
|
19
20
|
|
|
@@ -27,6 +28,7 @@ export class DeployTest {
|
|
|
27
28
|
public pxe!: PXE;
|
|
28
29
|
public wallet!: AccountWallet;
|
|
29
30
|
public aztecNode!: AztecNode;
|
|
31
|
+
public aztecNodeAdmin!: AztecNodeAdmin;
|
|
30
32
|
|
|
31
33
|
constructor(testName: string) {
|
|
32
34
|
this.logger = createLogger(`e2e:e2e_deploy_contract:${testName}`);
|
|
@@ -37,6 +39,7 @@ export class DeployTest {
|
|
|
37
39
|
await this.applyInitialAccountSnapshot();
|
|
38
40
|
const context = await this.snapshotManager.setup();
|
|
39
41
|
({ pxe: this.pxe, aztecNode: this.aztecNode } = context);
|
|
42
|
+
this.aztecNodeAdmin = context.aztecNode;
|
|
40
43
|
return this;
|
|
41
44
|
}
|
|
42
45
|
|
|
@@ -1,8 +1,7 @@
|
|
|
1
1
|
import { AztecNodeService } from '@aztec/aztec-node';
|
|
2
|
-
import { Fr, type Logger, getTimestampRangeForEpoch, retryUntil, sleep } from '@aztec/aztec.js';
|
|
2
|
+
import { Fr, type Logger, MerkleTreeId, getTimestampRangeForEpoch, retryUntil, sleep } from '@aztec/aztec.js';
|
|
3
3
|
import { RollupContract } from '@aztec/ethereum/contracts';
|
|
4
|
-
import { ChainMonitor } from '@aztec/ethereum/test';
|
|
5
|
-
import { DelayedTxUtils, type Delayer, waitUntilL1Timestamp } from '@aztec/ethereum/test';
|
|
4
|
+
import { ChainMonitor, DelayedTxUtils, type Delayer, waitUntilL1Timestamp } from '@aztec/ethereum/test';
|
|
6
5
|
import { randomBytes } from '@aztec/foundation/crypto';
|
|
7
6
|
import { withLogNameSuffix } from '@aztec/foundation/log';
|
|
8
7
|
import { ProverNode, ProverNodePublisher } from '@aztec/prover-node';
|
|
@@ -11,7 +10,6 @@ import type { SequencerPublisher } from '@aztec/sequencer-client';
|
|
|
11
10
|
import type { TestSequencerClient } from '@aztec/sequencer-client/test';
|
|
12
11
|
import type { L2BlockNumber } from '@aztec/stdlib/block';
|
|
13
12
|
import type { L1RollupConstants } from '@aztec/stdlib/epoch-helpers';
|
|
14
|
-
import { MerkleTreeId } from '@aztec/stdlib/trees';
|
|
15
13
|
|
|
16
14
|
import { join } from 'path';
|
|
17
15
|
import type { Hex, PublicClient } from 'viem';
|
|
@@ -208,8 +206,11 @@ export class EpochsTestContext {
|
|
|
208
206
|
|
|
209
207
|
/** Verifies whether the given block number is found on the aztec node. */
|
|
210
208
|
public async verifyHistoricBlock(blockNumber: L2BlockNumber, expectedSuccess: boolean) {
|
|
209
|
+
// We use `findLeavesIndexes` here, but could use any function that queries the world-state
|
|
210
|
+
// at a particular block, so we know whether that historic block is available or has been
|
|
211
|
+
// pruned. Note that `getBlock` would not work here, since it only hits the archiver.
|
|
211
212
|
const result = await this.context.aztecNode
|
|
212
|
-
.
|
|
213
|
+
.findLeavesIndexes(blockNumber, MerkleTreeId.NULLIFIER_TREE, [Fr.ZERO])
|
|
213
214
|
.then(_ => true)
|
|
214
215
|
.catch(_ => false);
|
|
215
216
|
expect(result).toBe(expectedSuccess);
|