@aztec/end-to-end 0.0.1-commit.6b113946b → 0.0.1-commit.6bd18f1aa
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/bench/client_flows/client_flows_benchmark.d.ts +1 -1
- package/dest/bench/client_flows/client_flows_benchmark.d.ts.map +1 -1
- package/dest/bench/client_flows/client_flows_benchmark.js +12 -27
- package/dest/e2e_p2p/inactivity_slash_test.js +1 -1
- package/dest/fixtures/e2e_prover_test.d.ts +4 -3
- package/dest/fixtures/e2e_prover_test.d.ts.map +1 -1
- package/dest/fixtures/e2e_prover_test.js +5 -10
- package/dest/fixtures/get_bb_config.d.ts +1 -1
- package/dest/fixtures/get_bb_config.d.ts.map +1 -1
- package/dest/fixtures/get_bb_config.js +5 -5
- package/dest/fixtures/setup.d.ts +1 -1
- package/dest/fixtures/setup.d.ts.map +1 -1
- package/dest/fixtures/setup.js +12 -9
- package/dest/fixtures/token_utils.d.ts +1 -1
- package/dest/fixtures/token_utils.d.ts.map +1 -1
- package/dest/fixtures/token_utils.js +2 -5
- package/dest/simulators/lending_simulator.d.ts +1 -1
- package/dest/simulators/lending_simulator.d.ts.map +1 -1
- package/dest/simulators/lending_simulator.js +2 -2
- 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 +60 -10
- package/dest/test-wallet/test_wallet.d.ts +1 -1
- package/dest/test-wallet/test_wallet.d.ts.map +1 -1
- package/dest/test-wallet/test_wallet.js +33 -34
- package/dest/test-wallet/worker_wallet_schema.d.ts +2 -2
- package/package.json +39 -39
- package/src/bench/client_flows/client_flows_benchmark.ts +30 -21
- package/src/e2e_p2p/inactivity_slash_test.ts +1 -1
- package/src/fixtures/e2e_prover_test.ts +7 -15
- package/src/fixtures/get_bb_config.ts +7 -6
- package/src/fixtures/setup.ts +11 -8
- package/src/fixtures/token_utils.ts +1 -4
- package/src/simulators/lending_simulator.ts +4 -2
- package/src/spartan/setup_test_wallets.ts +61 -11
- package/src/test-wallet/test_wallet.ts +44 -37
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
import { generateSchnorrAccounts } from '@aztec/accounts/testing';
|
|
2
|
+
import { NO_FROM } from '@aztec/aztec.js/account';
|
|
2
3
|
import { AztecAddress } from '@aztec/aztec.js/addresses';
|
|
3
4
|
import { NO_WAIT } from '@aztec/aztec.js/contracts';
|
|
4
5
|
import { L1FeeJuicePortalManager } from '@aztec/aztec.js/ethereum';
|
|
@@ -8,7 +9,7 @@ import { Fr } from '@aztec/aztec.js/fields';
|
|
|
8
9
|
import { createAztecNodeClient, waitForTx } from '@aztec/aztec.js/node';
|
|
9
10
|
import { createEthereumChain } from '@aztec/ethereum/chain';
|
|
10
11
|
import { createExtendedL1Client } from '@aztec/ethereum/client';
|
|
11
|
-
import { retryUntil } from '@aztec/foundation/retry';
|
|
12
|
+
import { makeBackoff, retry, retryUntil } from '@aztec/foundation/retry';
|
|
12
13
|
import { TokenContract } from '@aztec/noir-contracts.js/Token';
|
|
13
14
|
import { registerInitialLocalNetworkAccountsInWallet } from '@aztec/wallets/testing';
|
|
14
15
|
import { getACVMConfig } from '../fixtures/get_acvm_config.js';
|
|
@@ -47,7 +48,7 @@ export async function deploySponsoredTestAccountsWithTokens(wallet, aztecNode, m
|
|
|
47
48
|
const paymentMethod = new SponsoredFeePaymentMethod(await getSponsoredFPCAddress());
|
|
48
49
|
const recipientDeployMethod = await recipientAccount.getDeployMethod();
|
|
49
50
|
await recipientDeployMethod.send({
|
|
50
|
-
from:
|
|
51
|
+
from: NO_FROM,
|
|
51
52
|
fee: {
|
|
52
53
|
paymentMethod
|
|
53
54
|
},
|
|
@@ -58,7 +59,7 @@ export async function deploySponsoredTestAccountsWithTokens(wallet, aztecNode, m
|
|
|
58
59
|
await Promise.all(fundedAccounts.map(async (a)=>{
|
|
59
60
|
const deployMethod = await a.getDeployMethod();
|
|
60
61
|
await deployMethod.send({
|
|
61
|
-
from:
|
|
62
|
+
from: NO_FROM,
|
|
62
63
|
fee: {
|
|
63
64
|
paymentMethod
|
|
64
65
|
},
|
|
@@ -85,11 +86,11 @@ export async function deploySponsoredTestAccountsWithTokens(wallet, aztecNode, m
|
|
|
85
86
|
async function deployAccountWithDiagnostics(account, paymentMethod, aztecNode, logger, accountLabel, estimateGas) {
|
|
86
87
|
const deployMethod = await account.getDeployMethod();
|
|
87
88
|
let txHash;
|
|
89
|
+
let gasSettings;
|
|
88
90
|
try {
|
|
89
|
-
let gasSettings;
|
|
90
91
|
if (estimateGas) {
|
|
91
92
|
const sim = await deployMethod.simulate({
|
|
92
|
-
from:
|
|
93
|
+
from: NO_FROM,
|
|
93
94
|
fee: {
|
|
94
95
|
paymentMethod
|
|
95
96
|
}
|
|
@@ -98,7 +99,7 @@ async function deployAccountWithDiagnostics(account, paymentMethod, aztecNode, l
|
|
|
98
99
|
logger.info(`${accountLabel} estimated gas: DA=${gasSettings.gasLimits.daGas} L2=${gasSettings.gasLimits.l2Gas}`);
|
|
99
100
|
}
|
|
100
101
|
const deployResult = await deployMethod.send({
|
|
101
|
-
from:
|
|
102
|
+
from: NO_FROM,
|
|
102
103
|
fee: {
|
|
103
104
|
paymentMethod,
|
|
104
105
|
gasSettings
|
|
@@ -126,6 +127,56 @@ async function deployAccountWithDiagnostics(account, paymentMethod, aztecNode, l
|
|
|
126
127
|
});
|
|
127
128
|
throw error;
|
|
128
129
|
}
|
|
130
|
+
// Track the tx hash across retries so we don't re-send when the previous tx is still pending.
|
|
131
|
+
let sentTxHash;
|
|
132
|
+
await retry(async ()=>{
|
|
133
|
+
// Check if already deployed (handles case where previous attempt succeeded but waitForTx timed out)
|
|
134
|
+
const existing = await aztecNode.getContract(account.address);
|
|
135
|
+
if (existing) {
|
|
136
|
+
logger.info(`${accountLabel} already deployed at ${account.address}, skipping`);
|
|
137
|
+
return;
|
|
138
|
+
}
|
|
139
|
+
// If we already sent a tx, check if it was dropped before deciding to re-send.
|
|
140
|
+
if (sentTxHash) {
|
|
141
|
+
const prevReceipt = await aztecNode.getTxReceipt(sentTxHash.txHash);
|
|
142
|
+
if (prevReceipt.isDropped()) {
|
|
143
|
+
logger.info(`${accountLabel} previous tx ${sentTxHash.txHash} was dropped, re-sending`);
|
|
144
|
+
sentTxHash = undefined;
|
|
145
|
+
} else {
|
|
146
|
+
logger.info(`${accountLabel} previous tx ${sentTxHash.txHash} still pending, waiting again...`);
|
|
147
|
+
}
|
|
148
|
+
}
|
|
149
|
+
if (!sentTxHash) {
|
|
150
|
+
const deployResult = await deployMethod.send({
|
|
151
|
+
from: AztecAddress.ZERO,
|
|
152
|
+
fee: {
|
|
153
|
+
paymentMethod,
|
|
154
|
+
gasSettings
|
|
155
|
+
},
|
|
156
|
+
wait: NO_WAIT
|
|
157
|
+
});
|
|
158
|
+
sentTxHash = {
|
|
159
|
+
txHash: deployResult.txHash
|
|
160
|
+
};
|
|
161
|
+
logger.info(`${accountLabel} tx sent`, {
|
|
162
|
+
txHash: sentTxHash.txHash.toString()
|
|
163
|
+
});
|
|
164
|
+
}
|
|
165
|
+
const receipt = await waitForTx(aztecNode, sentTxHash.txHash, {
|
|
166
|
+
timeout: 600
|
|
167
|
+
});
|
|
168
|
+
if (receipt.isDropped()) {
|
|
169
|
+
sentTxHash = undefined;
|
|
170
|
+
throw new Error(`${accountLabel} tx was dropped, retrying...`);
|
|
171
|
+
}
|
|
172
|
+
logger.info(`${accountLabel} deployed at ${account.address}`);
|
|
173
|
+
}, `deploy ${accountLabel}`, makeBackoff([
|
|
174
|
+
1,
|
|
175
|
+
2,
|
|
176
|
+
4,
|
|
177
|
+
8,
|
|
178
|
+
16
|
|
179
|
+
]), logger);
|
|
129
180
|
}
|
|
130
181
|
async function deployAccountsInBatches(accounts, paymentMethod, aztecNode, logger, labelPrefix, batchSize = 2, estimateGas) {
|
|
131
182
|
for(let i = 0; i < accounts.length; i += batchSize){
|
|
@@ -163,7 +214,7 @@ export async function deployTestAccountsWithTokens(nodeUrl, l1RpcUrls, mnemonicO
|
|
|
163
214
|
const paymentMethod = new FeeJuicePaymentMethodWithClaim(a.address, claims[i]);
|
|
164
215
|
const deployMethod = await a.getDeployMethod();
|
|
165
216
|
await deployMethod.send({
|
|
166
|
-
from:
|
|
217
|
+
from: NO_FROM,
|
|
167
218
|
fee: {
|
|
168
219
|
paymentMethod
|
|
169
220
|
}
|
|
@@ -213,14 +264,13 @@ async function advanceL2Block(aztecNode, nodeAdmin) {
|
|
|
213
264
|
}
|
|
214
265
|
async function deployTokenAndMint(wallet, accounts, admin, mintAmount, paymentMethod, logger) {
|
|
215
266
|
logger.verbose(`Deploying TokenContract...`);
|
|
216
|
-
const {
|
|
267
|
+
const { contract: tokenContract } = await TokenContract.deploy(wallet, admin, TOKEN_NAME, TOKEN_SYMBOL, TOKEN_DECIMALS).send({
|
|
217
268
|
from: admin,
|
|
218
269
|
fee: {
|
|
219
270
|
paymentMethod
|
|
220
271
|
},
|
|
221
272
|
wait: {
|
|
222
|
-
timeout: 600
|
|
223
|
-
returnReceipt: true
|
|
273
|
+
timeout: 600
|
|
224
274
|
}
|
|
225
275
|
});
|
|
226
276
|
const tokenAddress = tokenContract.address;
|
|
@@ -73,4 +73,4 @@ export declare class TestWallet extends BaseWallet {
|
|
|
73
73
|
sync(): Promise<void>;
|
|
74
74
|
stop(): Promise<void>;
|
|
75
75
|
}
|
|
76
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
76
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGVzdF93YWxsZXQuZC50cyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy90ZXN0LXdhbGxldC90ZXN0X3dhbGxldC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFHQSxPQUFPLEVBQUUsS0FBSyxPQUFPLEVBQUUsS0FBSyxlQUFlLEVBQVcsTUFBTSx5QkFBeUIsQ0FBQztBQUN0RixPQUFPLEVBQ0wsS0FBSyxVQUFVLEVBQ2YsS0FBSyxxQ0FBcUMsRUFDMUMsS0FBSyxlQUFlLEVBQ3BCLG1DQUFtQyxFQUlwQyxNQUFNLCtCQUErQixDQUFDO0FBQ3ZDLE9BQU8sS0FBSyxFQUFFLFNBQVMsRUFBRSxNQUFNLHNCQUFzQixDQUFDO0FBQ3RELE9BQU8sRUFBRSxjQUFjLEVBQUUsS0FBSyxXQUFXLEVBQUUsTUFBTSx3QkFBd0IsQ0FBQztBQUcxRSxPQUFPLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxNQUFNLGdDQUFnQyxDQUFDO0FBRXhELE9BQU8sS0FBSyxFQUFFLFdBQVcsRUFBRSxNQUFNLHdCQUF3QixDQUFDO0FBQzFELE9BQU8sRUFBRSxLQUFLLFNBQVMsRUFBZ0IsTUFBTSxtQkFBbUIsQ0FBQztBQUNqRSxPQUFPLEVBQUUsR0FBRyxFQUFFLEtBQUssa0JBQWtCLEVBQWEsTUFBTSxtQkFBbUIsQ0FBQztBQUM1RSxPQUFPLEVBQUUsV0FBVyxFQUFFLE1BQU0sNEJBQTRCLENBQUM7QUFDekQsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLDZCQUE2QixDQUFDO0FBRzNELE9BQU8sS0FBSyxFQUFFLE9BQU8sRUFBRSxNQUFNLG9CQUFvQixDQUFDO0FBQ2xELE9BQU8sS0FBSyxFQUNWLFdBQVcsRUFHWCxNQUFNLEVBQ04sU0FBUyxFQUNULGtCQUFrQixFQUNuQixNQUFNLGtCQUFrQixDQUFDO0FBQzFCLE9BQU8sRUFBRSxnQkFBZ0IsRUFBMEIsTUFBTSxrQkFBa0IsQ0FBQztBQUM1RSxPQUFPLEVBQUUsVUFBVSxFQUFFLEtBQUssNEJBQTRC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
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"test_wallet.d.ts","sourceRoot":"","sources":["../../src/test-wallet/test_wallet.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,KAAK,OAAO,EAAE,KAAK,eAAe,
|
|
1
|
+
{"version":3,"file":"test_wallet.d.ts","sourceRoot":"","sources":["../../src/test-wallet/test_wallet.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,14 +1,14 @@
|
|
|
1
1
|
import { EcdsaKAccountContract, EcdsaRAccountContract } from '@aztec/accounts/ecdsa';
|
|
2
2
|
import { SchnorrAccountContract } from '@aztec/accounts/schnorr';
|
|
3
3
|
import { StubAccountContractArtifact, createStubAccount } from '@aztec/accounts/stub';
|
|
4
|
-
import {
|
|
4
|
+
import { NO_FROM } from '@aztec/aztec.js/account';
|
|
5
5
|
import { SetPublicAuthwitContractInteraction, computeInnerAuthWitHashFromAction, isContractFunctionInteractionCallIntent, lookupValidity } from '@aztec/aztec.js/authorization';
|
|
6
6
|
import { AccountManager } from '@aztec/aztec.js/wallet';
|
|
7
|
+
import { DefaultEntrypoint } from '@aztec/entrypoints/default';
|
|
7
8
|
import { Fr } from '@aztec/foundation/curves/bn254';
|
|
8
9
|
import { GrumpkinScalar } from '@aztec/foundation/curves/grumpkin';
|
|
9
10
|
import { getPXEConfig } from '@aztec/pxe/config';
|
|
10
11
|
import { createPXE } from '@aztec/pxe/server';
|
|
11
|
-
import { AztecAddress } from '@aztec/stdlib/aztec-address';
|
|
12
12
|
import { getContractInstanceFromInstantiationParams } from '@aztec/stdlib/contract';
|
|
13
13
|
import { deriveSigningKey } from '@aztec/stdlib/keys';
|
|
14
14
|
import { mergeExecutionPayloads } from '@aztec/stdlib/tx';
|
|
@@ -67,9 +67,6 @@ import { AztecNodeProxy, ProvenTx } from './utils.js';
|
|
|
67
67
|
}
|
|
68
68
|
async getFakeAccountDataFor(address) {
|
|
69
69
|
const originalAccount = await this.getAccountFromAddress(address);
|
|
70
|
-
if (originalAccount instanceof SignerlessAccount) {
|
|
71
|
-
throw new Error(`Cannot create fake account data for SignerlessAccount at address: ${address}`);
|
|
72
|
-
}
|
|
73
70
|
const originalAddress = originalAccount.getCompleteAddress();
|
|
74
71
|
const contractInstance = await this.pxe.getContractInstance(originalAddress.address);
|
|
75
72
|
if (!contractInstance) {
|
|
@@ -99,12 +96,7 @@ import { AztecNodeProxy, ProvenTx } from './utils.js';
|
|
|
99
96
|
this.minFeePadding = value ?? 0.5;
|
|
100
97
|
}
|
|
101
98
|
getAccountFromAddress(address) {
|
|
102
|
-
|
|
103
|
-
if (address.equals(AztecAddress.ZERO)) {
|
|
104
|
-
account = new SignerlessAccount();
|
|
105
|
-
} else {
|
|
106
|
-
account = this.accounts.get(address?.toString() ?? '');
|
|
107
|
-
}
|
|
99
|
+
const account = this.accounts.get(address?.toString() ?? '');
|
|
108
100
|
if (!account) {
|
|
109
101
|
throw new Error(`Account not found in wallet for address: ${address}`);
|
|
110
102
|
}
|
|
@@ -152,35 +144,42 @@ import { AztecNodeProxy, ProvenTx } from './utils.js';
|
|
|
152
144
|
async simulateViaEntrypoint(executionPayload, opts) {
|
|
153
145
|
const { from, feeOptions, scopes, skipTxValidation, skipFeeEnforcement } = opts;
|
|
154
146
|
const skipKernels = this.simulationMode !== 'full';
|
|
155
|
-
const useOverride = this.simulationMode === 'kernelless-override' && !from.equals(AztecAddress.ZERO);
|
|
156
|
-
let overrides;
|
|
157
|
-
let fromAccount;
|
|
158
|
-
if (useOverride) {
|
|
159
|
-
const { account, instance, artifact } = await this.getFakeAccountDataFor(from);
|
|
160
|
-
fromAccount = account;
|
|
161
|
-
overrides = {
|
|
162
|
-
contracts: {
|
|
163
|
-
[from.toString()]: {
|
|
164
|
-
instance,
|
|
165
|
-
artifact
|
|
166
|
-
}
|
|
167
|
-
}
|
|
168
|
-
};
|
|
169
|
-
} else {
|
|
170
|
-
fromAccount = await this.getAccountFromAddress(from);
|
|
171
|
-
}
|
|
172
147
|
const feeExecutionPayload = await feeOptions.walletFeePaymentMethod?.getExecutionPayload();
|
|
173
|
-
const executionOptions = {
|
|
174
|
-
txNonce: Fr.random(),
|
|
175
|
-
cancellable: this.cancellableTransactions,
|
|
176
|
-
feePaymentMethodOptions: feeOptions.accountFeePaymentMethodOptions
|
|
177
|
-
};
|
|
178
148
|
const finalExecutionPayload = feeExecutionPayload ? mergeExecutionPayloads([
|
|
179
149
|
feeExecutionPayload,
|
|
180
150
|
executionPayload
|
|
181
151
|
]) : executionPayload;
|
|
182
152
|
const chainInfo = await this.getChainInfo();
|
|
183
|
-
|
|
153
|
+
let overrides;
|
|
154
|
+
let txRequest;
|
|
155
|
+
if (from === NO_FROM) {
|
|
156
|
+
const entrypoint = new DefaultEntrypoint();
|
|
157
|
+
txRequest = await entrypoint.createTxExecutionRequest(finalExecutionPayload, feeOptions.gasSettings, chainInfo);
|
|
158
|
+
} else {
|
|
159
|
+
const useOverride = this.simulationMode === 'kernelless-override';
|
|
160
|
+
let fromAccount;
|
|
161
|
+
if (useOverride) {
|
|
162
|
+
const { account, instance, artifact } = await this.getFakeAccountDataFor(from);
|
|
163
|
+
fromAccount = account;
|
|
164
|
+
overrides = {
|
|
165
|
+
contracts: {
|
|
166
|
+
[from.toString()]: {
|
|
167
|
+
instance,
|
|
168
|
+
artifact
|
|
169
|
+
}
|
|
170
|
+
}
|
|
171
|
+
};
|
|
172
|
+
} else {
|
|
173
|
+
fromAccount = await this.getAccountFromAddress(from);
|
|
174
|
+
}
|
|
175
|
+
const executionOptions = {
|
|
176
|
+
txNonce: Fr.random(),
|
|
177
|
+
cancellable: this.cancellableTransactions,
|
|
178
|
+
// If from is an address, feeOptions include the way the account contract should handle the fee payment
|
|
179
|
+
feePaymentMethodOptions: feeOptions.accountFeePaymentMethodOptions
|
|
180
|
+
};
|
|
181
|
+
txRequest = await fromAccount.createTxExecutionRequest(finalExecutionPayload, feeOptions.gasSettings, chainInfo, executionOptions);
|
|
182
|
+
}
|
|
184
183
|
return this.pxe.simulateTx(txRequest, {
|
|
185
184
|
simulatePublic: true,
|
|
186
185
|
skipKernels,
|
|
@@ -82,7 +82,7 @@ export declare const WorkerWalletSchema: {
|
|
|
82
82
|
extraHashedArgs: any[];
|
|
83
83
|
feePayer?: any;
|
|
84
84
|
}>, z.ZodObject<{
|
|
85
|
-
from: import("@aztec/foundation/schemas").ZodFor<AztecAddress>;
|
|
85
|
+
from: z.ZodUnion<[import("@aztec/foundation/schemas").ZodFor<AztecAddress>, z.ZodLiteral<"NO_FROM">]>;
|
|
86
86
|
authWitnesses: import("@aztec/foundation/schemas").ZodNullableOptional<z.ZodArray<z.ZodType<import("@aztec/stdlib/auth-witness").AuthWitness, any, string>, "many">>;
|
|
87
87
|
capsules: import("@aztec/foundation/schemas").ZodNullableOptional<z.ZodArray<z.ZodType<import("@aztec/stdlib/tx").Capsule, any, string>, "many">>;
|
|
88
88
|
fee: import("@aztec/foundation/schemas").ZodNullableOptional<z.ZodObject<{
|
|
@@ -213,7 +213,7 @@ export declare const WorkerWalletSchema: {
|
|
|
213
213
|
}>]>>;
|
|
214
214
|
additionalScopes: import("@aztec/foundation/schemas").ZodNullableOptional<z.ZodArray<import("@aztec/foundation/schemas").ZodFor<AztecAddress>, "many">>;
|
|
215
215
|
}, "strip", z.ZodTypeAny, {
|
|
216
|
-
from: AztecAddress;
|
|
216
|
+
from: "NO_FROM" | AztecAddress;
|
|
217
217
|
authWitnesses?: import("@aztec/stdlib/auth-witness").AuthWitness[] | undefined;
|
|
218
218
|
capsules?: import("@aztec/stdlib/tx").Capsule[] | undefined;
|
|
219
219
|
fee?: {
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@aztec/end-to-end",
|
|
3
|
-
"version": "0.0.1-commit.
|
|
3
|
+
"version": "0.0.1-commit.6bd18f1aa",
|
|
4
4
|
"type": "module",
|
|
5
5
|
"exports": "./dest/index.js",
|
|
6
6
|
"inherits": [
|
|
@@ -26,44 +26,44 @@
|
|
|
26
26
|
"formatting": "run -T prettier --check ./src && run -T eslint ./src"
|
|
27
27
|
},
|
|
28
28
|
"dependencies": {
|
|
29
|
-
"@aztec/accounts": "0.0.1-commit.
|
|
30
|
-
"@aztec/archiver": "0.0.1-commit.
|
|
31
|
-
"@aztec/aztec": "0.0.1-commit.
|
|
32
|
-
"@aztec/aztec-node": "0.0.1-commit.
|
|
33
|
-
"@aztec/aztec.js": "0.0.1-commit.
|
|
34
|
-
"@aztec/bb-prover": "0.0.1-commit.
|
|
35
|
-
"@aztec/bb.js": "0.0.1-commit.
|
|
36
|
-
"@aztec/blob-client": "0.0.1-commit.
|
|
37
|
-
"@aztec/blob-lib": "0.0.1-commit.
|
|
38
|
-
"@aztec/bot": "0.0.1-commit.
|
|
39
|
-
"@aztec/cli": "0.0.1-commit.
|
|
40
|
-
"@aztec/constants": "0.0.1-commit.
|
|
41
|
-
"@aztec/entrypoints": "0.0.1-commit.
|
|
42
|
-
"@aztec/epoch-cache": "0.0.1-commit.
|
|
43
|
-
"@aztec/ethereum": "0.0.1-commit.
|
|
44
|
-
"@aztec/foundation": "0.0.1-commit.
|
|
45
|
-
"@aztec/kv-store": "0.0.1-commit.
|
|
46
|
-
"@aztec/l1-artifacts": "0.0.1-commit.
|
|
47
|
-
"@aztec/node-keystore": "0.0.1-commit.
|
|
48
|
-
"@aztec/noir-contracts.js": "0.0.1-commit.
|
|
49
|
-
"@aztec/noir-noirc_abi": "0.0.1-commit.
|
|
50
|
-
"@aztec/noir-protocol-circuits-types": "0.0.1-commit.
|
|
51
|
-
"@aztec/noir-test-contracts.js": "0.0.1-commit.
|
|
52
|
-
"@aztec/p2p": "0.0.1-commit.
|
|
53
|
-
"@aztec/protocol-contracts": "0.0.1-commit.
|
|
54
|
-
"@aztec/prover-client": "0.0.1-commit.
|
|
55
|
-
"@aztec/prover-node": "0.0.1-commit.
|
|
56
|
-
"@aztec/pxe": "0.0.1-commit.
|
|
57
|
-
"@aztec/sequencer-client": "0.0.1-commit.
|
|
58
|
-
"@aztec/simulator": "0.0.1-commit.
|
|
59
|
-
"@aztec/slasher": "0.0.1-commit.
|
|
60
|
-
"@aztec/stdlib": "0.0.1-commit.
|
|
61
|
-
"@aztec/telemetry-client": "0.0.1-commit.
|
|
62
|
-
"@aztec/validator-client": "0.0.1-commit.
|
|
63
|
-
"@aztec/validator-ha-signer": "0.0.1-commit.
|
|
64
|
-
"@aztec/wallet-sdk": "0.0.1-commit.
|
|
65
|
-
"@aztec/wallets": "0.0.1-commit.
|
|
66
|
-
"@aztec/world-state": "0.0.1-commit.
|
|
29
|
+
"@aztec/accounts": "0.0.1-commit.6bd18f1aa",
|
|
30
|
+
"@aztec/archiver": "0.0.1-commit.6bd18f1aa",
|
|
31
|
+
"@aztec/aztec": "0.0.1-commit.6bd18f1aa",
|
|
32
|
+
"@aztec/aztec-node": "0.0.1-commit.6bd18f1aa",
|
|
33
|
+
"@aztec/aztec.js": "0.0.1-commit.6bd18f1aa",
|
|
34
|
+
"@aztec/bb-prover": "0.0.1-commit.6bd18f1aa",
|
|
35
|
+
"@aztec/bb.js": "0.0.1-commit.6bd18f1aa",
|
|
36
|
+
"@aztec/blob-client": "0.0.1-commit.6bd18f1aa",
|
|
37
|
+
"@aztec/blob-lib": "0.0.1-commit.6bd18f1aa",
|
|
38
|
+
"@aztec/bot": "0.0.1-commit.6bd18f1aa",
|
|
39
|
+
"@aztec/cli": "0.0.1-commit.6bd18f1aa",
|
|
40
|
+
"@aztec/constants": "0.0.1-commit.6bd18f1aa",
|
|
41
|
+
"@aztec/entrypoints": "0.0.1-commit.6bd18f1aa",
|
|
42
|
+
"@aztec/epoch-cache": "0.0.1-commit.6bd18f1aa",
|
|
43
|
+
"@aztec/ethereum": "0.0.1-commit.6bd18f1aa",
|
|
44
|
+
"@aztec/foundation": "0.0.1-commit.6bd18f1aa",
|
|
45
|
+
"@aztec/kv-store": "0.0.1-commit.6bd18f1aa",
|
|
46
|
+
"@aztec/l1-artifacts": "0.0.1-commit.6bd18f1aa",
|
|
47
|
+
"@aztec/node-keystore": "0.0.1-commit.6bd18f1aa",
|
|
48
|
+
"@aztec/noir-contracts.js": "0.0.1-commit.6bd18f1aa",
|
|
49
|
+
"@aztec/noir-noirc_abi": "0.0.1-commit.6bd18f1aa",
|
|
50
|
+
"@aztec/noir-protocol-circuits-types": "0.0.1-commit.6bd18f1aa",
|
|
51
|
+
"@aztec/noir-test-contracts.js": "0.0.1-commit.6bd18f1aa",
|
|
52
|
+
"@aztec/p2p": "0.0.1-commit.6bd18f1aa",
|
|
53
|
+
"@aztec/protocol-contracts": "0.0.1-commit.6bd18f1aa",
|
|
54
|
+
"@aztec/prover-client": "0.0.1-commit.6bd18f1aa",
|
|
55
|
+
"@aztec/prover-node": "0.0.1-commit.6bd18f1aa",
|
|
56
|
+
"@aztec/pxe": "0.0.1-commit.6bd18f1aa",
|
|
57
|
+
"@aztec/sequencer-client": "0.0.1-commit.6bd18f1aa",
|
|
58
|
+
"@aztec/simulator": "0.0.1-commit.6bd18f1aa",
|
|
59
|
+
"@aztec/slasher": "0.0.1-commit.6bd18f1aa",
|
|
60
|
+
"@aztec/stdlib": "0.0.1-commit.6bd18f1aa",
|
|
61
|
+
"@aztec/telemetry-client": "0.0.1-commit.6bd18f1aa",
|
|
62
|
+
"@aztec/validator-client": "0.0.1-commit.6bd18f1aa",
|
|
63
|
+
"@aztec/validator-ha-signer": "0.0.1-commit.6bd18f1aa",
|
|
64
|
+
"@aztec/wallet-sdk": "0.0.1-commit.6bd18f1aa",
|
|
65
|
+
"@aztec/wallets": "0.0.1-commit.6bd18f1aa",
|
|
66
|
+
"@aztec/world-state": "0.0.1-commit.6bd18f1aa",
|
|
67
67
|
"@iarna/toml": "^2.2.5",
|
|
68
68
|
"@jest/globals": "^30.0.0",
|
|
69
69
|
"@noble/curves": "=1.0.0",
|
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
import { NO_FROM } from '@aztec/aztec.js/account';
|
|
1
2
|
import { AztecAddress } from '@aztec/aztec.js/addresses';
|
|
2
3
|
import { FeeJuicePaymentMethodWithClaim } from '@aztec/aztec.js/fee';
|
|
3
4
|
import { type FeePaymentMethod, PrivateFeePaymentMethod, SponsoredFeePaymentMethod } from '@aztec/aztec.js/fee';
|
|
@@ -249,11 +250,14 @@ export class ClientFlowsBenchmark {
|
|
|
249
250
|
|
|
250
251
|
async applyDeployBananaToken() {
|
|
251
252
|
this.logger.info('Applying banana token deployment');
|
|
252
|
-
const {
|
|
253
|
-
|
|
254
|
-
|
|
253
|
+
const { contract: bananaCoin, instance: bananaCoinInstance } = await BananaCoin.deploy(
|
|
254
|
+
this.adminWallet,
|
|
255
|
+
this.adminAddress,
|
|
256
|
+
'BC',
|
|
257
|
+
'BC',
|
|
258
|
+
18n,
|
|
259
|
+
).send({
|
|
255
260
|
from: this.adminAddress,
|
|
256
|
-
wait: { returnReceipt: true },
|
|
257
261
|
});
|
|
258
262
|
this.logger.info(`BananaCoin deployed at ${bananaCoin.address}`);
|
|
259
263
|
this.bananaCoin = bananaCoin;
|
|
@@ -262,11 +266,14 @@ export class ClientFlowsBenchmark {
|
|
|
262
266
|
|
|
263
267
|
async applyDeployCandyBarToken() {
|
|
264
268
|
this.logger.info('Applying candy bar token deployment');
|
|
265
|
-
const {
|
|
266
|
-
|
|
267
|
-
|
|
269
|
+
const { contract: candyBarCoin, instance: candyBarCoinInstance } = await TokenContract.deploy(
|
|
270
|
+
this.adminWallet,
|
|
271
|
+
this.adminAddress,
|
|
272
|
+
'CBC',
|
|
273
|
+
'CBC',
|
|
274
|
+
18n,
|
|
275
|
+
).send({
|
|
268
276
|
from: this.adminAddress,
|
|
269
|
-
wait: { returnReceipt: true },
|
|
270
277
|
});
|
|
271
278
|
this.logger.info(`CandyBarCoin deployed at ${candyBarCoin.address}`);
|
|
272
279
|
this.candyBarCoin = candyBarCoin;
|
|
@@ -279,11 +286,12 @@ export class ClientFlowsBenchmark {
|
|
|
279
286
|
expect((await this.context.wallet.getContractMetadata(feeJuiceContract.address)).isContractPublished).toBe(true);
|
|
280
287
|
|
|
281
288
|
const bananaCoin = this.bananaCoin;
|
|
282
|
-
const {
|
|
283
|
-
|
|
284
|
-
|
|
289
|
+
const { contract: bananaFPC, instance: bananaFPCInstance } = await FPCContract.deploy(
|
|
290
|
+
this.adminWallet,
|
|
291
|
+
bananaCoin.address,
|
|
292
|
+
this.adminAddress,
|
|
293
|
+
).send({
|
|
285
294
|
from: this.adminAddress,
|
|
286
|
-
wait: { returnReceipt: true },
|
|
287
295
|
});
|
|
288
296
|
|
|
289
297
|
this.logger.info(`BananaPay deployed at ${bananaFPC.address}`);
|
|
@@ -333,7 +341,7 @@ export class ClientFlowsBenchmark {
|
|
|
333
341
|
const claim = await this.feeJuiceBridgeTestHarness.prepareTokensOnL1(benchysAddress);
|
|
334
342
|
const behchysDeployMethod = await benchysAccountManager.getDeployMethod();
|
|
335
343
|
await behchysDeployMethod.send({
|
|
336
|
-
from:
|
|
344
|
+
from: NO_FROM,
|
|
337
345
|
fee: { paymentMethod: new FeeJuicePaymentMethodWithClaim(benchysAddress, claim) },
|
|
338
346
|
});
|
|
339
347
|
// Register benchy on the user's Wallet, where we're going to be interacting from
|
|
@@ -347,20 +355,21 @@ export class ClientFlowsBenchmark {
|
|
|
347
355
|
|
|
348
356
|
public async applyDeployAmm() {
|
|
349
357
|
this.logger.info('Applying AMM deployment');
|
|
350
|
-
const {
|
|
351
|
-
|
|
352
|
-
|
|
358
|
+
const { contract: liquidityToken, instance: liquidityTokenInstance } = await TokenContract.deploy(
|
|
359
|
+
this.adminWallet,
|
|
360
|
+
this.adminAddress,
|
|
361
|
+
'LPT',
|
|
362
|
+
'LPT',
|
|
363
|
+
18n,
|
|
364
|
+
).send({
|
|
353
365
|
from: this.adminAddress,
|
|
354
|
-
wait: { returnReceipt: true },
|
|
355
366
|
});
|
|
356
|
-
const {
|
|
357
|
-
receipt: { contract: amm, instance: ammInstance },
|
|
358
|
-
} = await AMMContract.deploy(
|
|
367
|
+
const { contract: amm, instance: ammInstance } = await AMMContract.deploy(
|
|
359
368
|
this.adminWallet,
|
|
360
369
|
this.bananaCoin.address,
|
|
361
370
|
this.candyBarCoin.address,
|
|
362
371
|
liquidityToken.address,
|
|
363
|
-
).send({ from: this.adminAddress
|
|
372
|
+
).send({ from: this.adminAddress });
|
|
364
373
|
this.logger.info(`AMM deployed at ${amm.address}`);
|
|
365
374
|
await liquidityToken.methods.set_minter(amm.address, true).send({ from: this.adminAddress });
|
|
366
375
|
this.liquidityToken = liquidityToken;
|
|
@@ -58,6 +58,7 @@ export class P2PInactivityTest {
|
|
|
58
58
|
basePort: BOOT_NODE_UDP_PORT,
|
|
59
59
|
startProverNode: true,
|
|
60
60
|
initialConfig: {
|
|
61
|
+
anvilSlotsInAnEpoch: 4,
|
|
61
62
|
proverNodeConfig: { proverNodeEpochProvingDelayMs: AZTEC_SLOT_DURATION * 1000 },
|
|
62
63
|
aztecTargetCommitteeSize: COMMITTEE_SIZE,
|
|
63
64
|
aztecSlotDuration: AZTEC_SLOT_DURATION,
|
|
@@ -66,7 +67,6 @@ export class P2PInactivityTest {
|
|
|
66
67
|
listenAddress: '127.0.0.1',
|
|
67
68
|
minTxsPerBlock: 0,
|
|
68
69
|
aztecEpochDuration: EPOCH_DURATION,
|
|
69
|
-
validatorReexecute: false,
|
|
70
70
|
sentinelEnabled: true,
|
|
71
71
|
slashingQuorum: SLASHING_QUORUM,
|
|
72
72
|
slashingRoundSizeInEpochs: SLASHING_ROUND_SIZE_IN_EPOCHS,
|
|
@@ -4,12 +4,7 @@ import { AztecAddress, EthAddress } from '@aztec/aztec.js/addresses';
|
|
|
4
4
|
import { type Logger, createLogger } from '@aztec/aztec.js/log';
|
|
5
5
|
import type { AztecNode } from '@aztec/aztec.js/node';
|
|
6
6
|
import { CheatCodes } from '@aztec/aztec/testing';
|
|
7
|
-
import {
|
|
8
|
-
BBCircuitVerifier,
|
|
9
|
-
type ClientProtocolCircuitVerifier,
|
|
10
|
-
QueuedIVCVerifier,
|
|
11
|
-
TestCircuitVerifier,
|
|
12
|
-
} from '@aztec/bb-prover';
|
|
7
|
+
import type { ClientProtocolCircuitVerifier } from '@aztec/bb-prover';
|
|
13
8
|
import { BackendType, Barretenberg } from '@aztec/bb.js';
|
|
14
9
|
import type { DeployAztecL1ContractsReturnType } from '@aztec/ethereum/deploy-aztec-l1-contracts';
|
|
15
10
|
import { Buffer32 } from '@aztec/foundation/buffer';
|
|
@@ -68,7 +63,10 @@ export class FullProverTest {
|
|
|
68
63
|
private provenComponents: ProvenSetup[] = [];
|
|
69
64
|
private bbConfigCleanup?: () => Promise<void>;
|
|
70
65
|
private acvmConfigCleanup?: () => Promise<void>;
|
|
71
|
-
|
|
66
|
+
/** Returns the proof verifier from the prover node (for test assertions). */
|
|
67
|
+
get circuitProofVerifier(): ClientProtocolCircuitVerifier | undefined {
|
|
68
|
+
return this.proverAztecNode?.getProofVerifier();
|
|
69
|
+
}
|
|
72
70
|
provenAsset!: TokenContract;
|
|
73
71
|
context!: EndToEndContext;
|
|
74
72
|
private proverAztecNode!: AztecNodeService;
|
|
@@ -106,15 +104,13 @@ export class FullProverTest {
|
|
|
106
104
|
await publicDeployAccounts(this.wallet, this.accounts.slice(0, 2));
|
|
107
105
|
|
|
108
106
|
this.logger.info('Applying base setup: deploying token contract');
|
|
109
|
-
const {
|
|
110
|
-
receipt: { contract: asset, instance },
|
|
111
|
-
} = await TokenContract.deploy(
|
|
107
|
+
const { contract: asset, instance } = await TokenContract.deploy(
|
|
112
108
|
this.wallet,
|
|
113
109
|
this.accounts[0],
|
|
114
110
|
FullProverTest.TOKEN_NAME,
|
|
115
111
|
FullProverTest.TOKEN_SYMBOL,
|
|
116
112
|
FullProverTest.TOKEN_DECIMALS,
|
|
117
|
-
).send({ from: this.accounts[0]
|
|
113
|
+
).send({ from: this.accounts[0] });
|
|
118
114
|
this.logger.verbose(`Token deployed to ${asset.address}`);
|
|
119
115
|
|
|
120
116
|
this.fakeProofsAsset = asset;
|
|
@@ -170,9 +166,6 @@ export class FullProverTest {
|
|
|
170
166
|
|
|
171
167
|
await Barretenberg.initSingleton({ backend: BackendType.NativeUnixSocket });
|
|
172
168
|
|
|
173
|
-
const verifier = await BBCircuitVerifier.new(bbConfig);
|
|
174
|
-
this.circuitProofVerifier = new QueuedIVCVerifier(bbConfig, verifier);
|
|
175
|
-
|
|
176
169
|
this.logger.debug(`Configuring the node for real proofs...`);
|
|
177
170
|
await this.aztecNodeAdmin.setConfig({
|
|
178
171
|
realProofs: true,
|
|
@@ -180,7 +173,6 @@ export class FullProverTest {
|
|
|
180
173
|
});
|
|
181
174
|
} else {
|
|
182
175
|
this.logger.debug(`Configuring the node min txs per block ${this.minNumberOfTxsPerBlock}...`);
|
|
183
|
-
this.circuitProofVerifier = new TestCircuitVerifier();
|
|
184
176
|
await this.aztecNodeAdmin.setConfig({
|
|
185
177
|
minTxsPerBlock: this.minNumberOfTxsPerBlock,
|
|
186
178
|
});
|
|
@@ -13,8 +13,10 @@ const {
|
|
|
13
13
|
BB_SKIP_CLEANUP = '',
|
|
14
14
|
TEMP_DIR = tmpdir(),
|
|
15
15
|
BB_WORKING_DIRECTORY = '',
|
|
16
|
-
BB_NUM_IVC_VERIFIERS = '
|
|
16
|
+
BB_NUM_IVC_VERIFIERS = '8',
|
|
17
17
|
BB_IVC_CONCURRENCY = '1',
|
|
18
|
+
BB_CHONK_VERIFY_MAX_BATCH = '16',
|
|
19
|
+
BB_CHONK_VERIFY_BATCH_CONCURRENCY = '6',
|
|
18
20
|
} = process.env;
|
|
19
21
|
|
|
20
22
|
export const getBBConfig = async (
|
|
@@ -41,16 +43,15 @@ export const getBBConfig = async (
|
|
|
41
43
|
const bbSkipCleanup = ['1', 'true'].includes(BB_SKIP_CLEANUP);
|
|
42
44
|
const cleanup = bbSkipCleanup ? () => Promise.resolve() : () => tryRmDir(directoryToCleanup);
|
|
43
45
|
|
|
44
|
-
const numIvcVerifiers = Number(BB_NUM_IVC_VERIFIERS);
|
|
45
|
-
const ivcConcurrency = Number(BB_IVC_CONCURRENCY);
|
|
46
|
-
|
|
47
46
|
return {
|
|
48
47
|
bbSkipCleanup,
|
|
49
48
|
bbBinaryPath,
|
|
50
49
|
bbWorkingDirectory,
|
|
51
50
|
cleanup,
|
|
52
|
-
numConcurrentIVCVerifiers:
|
|
53
|
-
bbIVCConcurrency:
|
|
51
|
+
numConcurrentIVCVerifiers: Number(BB_NUM_IVC_VERIFIERS),
|
|
52
|
+
bbIVCConcurrency: Number(BB_IVC_CONCURRENCY),
|
|
53
|
+
bbChonkVerifyMaxBatch: Number(BB_CHONK_VERIFY_MAX_BATCH),
|
|
54
|
+
bbChonkVerifyConcurrency: Number(BB_CHONK_VERIFY_BATCH_CONCURRENCY),
|
|
54
55
|
};
|
|
55
56
|
} catch (err) {
|
|
56
57
|
logger.error(`Native BB not available, error: ${err}`);
|