@aztec/end-to-end 1.0.0-nightly.20250811 → 1.0.0-nightly.20250812
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/benchmark.d.ts +1 -1
- package/dest/bench/client_flows/benchmark.d.ts.map +1 -1
- package/dest/bench/client_flows/client_flows_benchmark.d.ts.map +1 -1
- package/dest/bench/client_flows/client_flows_benchmark.js +30 -12
- package/dest/bench/utils.d.ts.map +1 -1
- package/dest/bench/utils.js +6 -2
- package/dest/e2e_blacklist_token_contract/blacklist_token_contract_test.d.ts +3 -0
- 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 +47 -15
- package/dest/e2e_cross_chain_messaging/cross_chain_messaging_test.d.ts +2 -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 +12 -9
- package/dest/e2e_deploy_contract/deploy_test.d.ts +1 -1
- package/dest/e2e_deploy_contract/deploy_test.d.ts.map +1 -1
- package/dest/e2e_deploy_contract/deploy_test.js +5 -4
- package/dest/e2e_fees/bridging_race.notest.js +3 -1
- package/dest/e2e_fees/fees_test.d.ts +2 -2
- package/dest/e2e_fees/fees_test.d.ts.map +1 -1
- package/dest/e2e_fees/fees_test.js +29 -33
- package/dest/e2e_nested_contract/nested_contract_test.d.ts +3 -3
- package/dest/e2e_nested_contract/nested_contract_test.d.ts.map +1 -1
- package/dest/e2e_nested_contract/nested_contract_test.js +17 -12
- package/dest/e2e_p2p/p2p_network.d.ts +2 -1
- package/dest/e2e_p2p/p2p_network.d.ts.map +1 -1
- package/dest/e2e_p2p/p2p_network.js +5 -1
- package/dest/e2e_p2p/shared.d.ts +2 -2
- package/dest/e2e_p2p/shared.d.ts.map +1 -1
- package/dest/e2e_p2p/shared.js +7 -3
- package/dest/e2e_token_contract/token_contract_test.d.ts +8 -4
- package/dest/e2e_token_contract/token_contract_test.d.ts.map +1 -1
- package/dest/e2e_token_contract/token_contract_test.js +48 -23
- package/dest/fixtures/e2e_prover_test.d.ts.map +1 -1
- package/dest/fixtures/e2e_prover_test.js +22 -8
- package/dest/fixtures/snapshot_manager.js +3 -1
- package/dest/fixtures/token_utils.d.ts +3 -3
- package/dest/fixtures/token_utils.d.ts.map +1 -1
- package/dest/fixtures/token_utils.js +13 -7
- package/dest/fixtures/utils.d.ts +4 -3
- package/dest/fixtures/utils.d.ts.map +1 -1
- package/dest/fixtures/utils.js +14 -6
- package/dest/sample-dapp/connect.d.mts +2 -0
- package/dest/sample-dapp/connect.d.mts.map +1 -0
- package/dest/sample-dapp/connect.js +1 -1
- package/dest/sample-dapp/contracts.d.mts +3 -0
- package/dest/sample-dapp/contracts.d.mts.map +1 -0
- package/dest/sample-dapp/contracts.js +1 -1
- package/dest/sample-dapp/deploy.d.mts +3 -0
- package/dest/sample-dapp/deploy.d.mts.map +1 -0
- package/dest/sample-dapp/deploy.js +4 -1
- package/dest/sample-dapp/index.d.mts +2 -0
- package/dest/sample-dapp/index.d.mts.map +1 -0
- package/dest/sample-dapp/index.js +18 -7
- package/dest/shared/cross_chain_test_harness.d.ts +6 -3
- package/dest/shared/cross_chain_test_harness.d.ts.map +1 -1
- package/dest/shared/cross_chain_test_harness.js +50 -20
- package/dest/shared/gas_portal_test_harness.d.ts +3 -3
- package/dest/shared/gas_portal_test_harness.d.ts.map +1 -1
- package/dest/shared/gas_portal_test_harness.js +9 -5
- package/dest/shared/uniswap_l1_l2.d.ts.map +1 -1
- package/dest/shared/uniswap_l1_l2.js +37 -14
- package/dest/simulators/lending_simulator.js +6 -2
- package/dest/simulators/token_simulator.d.ts +2 -1
- package/dest/simulators/token_simulator.d.ts.map +1 -1
- package/dest/simulators/token_simulator.js +12 -4
- package/dest/spartan/setup_test_wallets.d.ts +2 -0
- package/dest/spartan/setup_test_wallets.d.ts.map +1 -1
- package/dest/spartan/setup_test_wallets.js +15 -5
- package/package.json +35 -35
- package/src/bench/client_flows/benchmark.ts +1 -1
- package/src/bench/client_flows/client_flows_benchmark.ts +20 -11
- package/src/bench/utils.ts +4 -2
- package/src/e2e_blacklist_token_contract/blacklist_token_contract_test.ts +28 -17
- package/src/e2e_cross_chain_messaging/cross_chain_messaging_test.ts +13 -8
- package/src/e2e_deploy_contract/deploy_test.ts +5 -5
- package/src/e2e_fees/bridging_race.notest.ts +1 -1
- package/src/e2e_fees/fees_test.ts +37 -46
- package/src/e2e_nested_contract/nested_contract_test.ts +16 -11
- package/src/e2e_p2p/p2p_network.ts +6 -2
- package/src/e2e_p2p/shared.ts +4 -2
- package/src/e2e_token_contract/token_contract_test.ts +38 -36
- package/src/fixtures/e2e_prover_test.ts +13 -7
- package/src/fixtures/snapshot_manager.ts +1 -1
- package/src/fixtures/token_utils.ts +13 -6
- package/src/fixtures/utils.ts +14 -7
- package/src/sample-dapp/connect.mjs +1 -1
- package/src/sample-dapp/contracts.mjs +1 -1
- package/src/sample-dapp/deploy.mjs +3 -3
- package/src/sample-dapp/index.mjs +11 -7
- package/src/shared/cross_chain_test_harness.ts +31 -18
- package/src/shared/gas_portal_test_harness.ts +6 -6
- package/src/shared/uniswap_l1_l2.ts +19 -15
- package/src/simulators/lending_simulator.ts +2 -2
- package/src/simulators/token_simulator.ts +12 -3
- package/src/spartan/setup_test_wallets.ts +40 -16
|
@@ -6,12 +6,10 @@ import { RollupContract, createExtendedL1Client } from '@aztec/ethereum';
|
|
|
6
6
|
import { ChainMonitor } from '@aztec/ethereum/test';
|
|
7
7
|
import { EthAddress } from '@aztec/foundation/eth-address';
|
|
8
8
|
import { TestERC20Abi } from '@aztec/l1-artifacts';
|
|
9
|
-
import { AppSubscriptionContract } from '@aztec/noir-contracts.js/AppSubscription';
|
|
10
9
|
import { FPCContract } from '@aztec/noir-contracts.js/FPC';
|
|
11
10
|
import { FeeJuiceContract } from '@aztec/noir-contracts.js/FeeJuice';
|
|
12
11
|
import { SponsoredFPCContract } from '@aztec/noir-contracts.js/SponsoredFPC';
|
|
13
12
|
import { TokenContract as BananaCoin } from '@aztec/noir-contracts.js/Token';
|
|
14
|
-
import { CounterContract } from '@aztec/noir-test-contracts.js/Counter';
|
|
15
13
|
import { ProtocolContractAddress } from '@aztec/protocol-contracts';
|
|
16
14
|
import { getCanonicalFeeJuice } from '@aztec/protocol-contracts/fee-juice';
|
|
17
15
|
import { GasSettings } from '@aztec/stdlib/gas';
|
|
@@ -35,6 +33,7 @@ const { E2E_DATA_PATH: dataPath } = process.env;
|
|
|
35
33
|
numberOfAccounts;
|
|
36
34
|
snapshotManager;
|
|
37
35
|
wallets;
|
|
36
|
+
accounts;
|
|
38
37
|
logger;
|
|
39
38
|
pxe;
|
|
40
39
|
aztecNode;
|
|
@@ -69,6 +68,7 @@ const { E2E_DATA_PATH: dataPath } = process.env;
|
|
|
69
68
|
constructor(testName, numberOfAccounts = 3, setupOptions = {}){
|
|
70
69
|
this.numberOfAccounts = numberOfAccounts;
|
|
71
70
|
this.wallets = [];
|
|
71
|
+
this.accounts = [];
|
|
72
72
|
this.ALICE_INITIAL_BANANAS = BigInt(1e22);
|
|
73
73
|
this.SUBSCRIPTION_AMOUNT = BigInt(1e19);
|
|
74
74
|
this.APP_SPONSORED_TX_GAS_LIMIT = BigInt(10e9);
|
|
@@ -117,15 +117,21 @@ const { E2E_DATA_PATH: dataPath } = process.env;
|
|
|
117
117
|
proverBlockRewards
|
|
118
118
|
};
|
|
119
119
|
}
|
|
120
|
-
async mintAndBridgeFeeJuice(
|
|
121
|
-
const claim = await this.feeJuiceBridgeTestHarness.prepareTokensOnL1(amount,
|
|
120
|
+
async mintAndBridgeFeeJuice(minter, recipient, amount) {
|
|
121
|
+
const claim = await this.feeJuiceBridgeTestHarness.prepareTokensOnL1(amount, recipient);
|
|
122
122
|
const { claimSecret: secret, messageLeafIndex: index } = claim;
|
|
123
|
-
await this.feeJuiceContract.methods.claim(
|
|
123
|
+
await this.feeJuiceContract.methods.claim(recipient, amount, secret, index).send({
|
|
124
|
+
from: minter
|
|
125
|
+
}).wait();
|
|
124
126
|
}
|
|
125
127
|
/** Alice mints bananaCoin tokens privately to the target address and redeems them. */ async mintPrivateBananas(amount, address) {
|
|
126
|
-
const balanceBefore = await this.bananaCoin.methods.balance_of_private(address).simulate(
|
|
127
|
-
|
|
128
|
-
|
|
128
|
+
const balanceBefore = await this.bananaCoin.methods.balance_of_private(address).simulate({
|
|
129
|
+
from: this.aliceAddress
|
|
130
|
+
});
|
|
131
|
+
await mintTokensToPrivate(this.bananaCoin, this.aliceAddress, this.aliceWallet, address, amount);
|
|
132
|
+
const balanceAfter = await this.bananaCoin.methods.balance_of_private(address).simulate({
|
|
133
|
+
from: this.aliceAddress
|
|
134
|
+
});
|
|
129
135
|
expect(balanceAfter).toEqual(balanceBefore + amount);
|
|
130
136
|
}
|
|
131
137
|
async applyBaseSnapshots() {
|
|
@@ -144,8 +150,9 @@ const { E2E_DATA_PATH: dataPath } = process.env;
|
|
|
144
150
|
this.cheatCodes = await CheatCodes.create(aztecNodeConfig.l1RpcUrls, pxe);
|
|
145
151
|
this.wallets = await Promise.all(deployedAccounts.map((a)=>getSchnorrWallet(pxe, a.address, a.signingKey)));
|
|
146
152
|
this.wallets.forEach((w, i)=>this.logger.verbose(`Wallet ${i} address: ${w.getAddress()}`));
|
|
153
|
+
this.accounts = this.wallets.map((w)=>w.getAddress());
|
|
147
154
|
[this.aliceWallet, this.bobWallet] = this.wallets.slice(0, 2);
|
|
148
|
-
[this.aliceAddress, this.bobAddress, this.sequencerAddress] = this.
|
|
155
|
+
[this.aliceAddress, this.bobAddress, this.sequencerAddress] = this.accounts;
|
|
149
156
|
// We set Alice as the FPC admin to avoid the need for deployment of another account.
|
|
150
157
|
this.fpcAdmin = this.aliceAddress;
|
|
151
158
|
const canonicalFeeJuice = await getCanonicalFeeJuice();
|
|
@@ -160,7 +167,7 @@ const { E2E_DATA_PATH: dataPath } = process.env;
|
|
|
160
167
|
await this.snapshotManager.snapshot('setup_fee_juice', async ()=>{}, async (_data, context)=>{
|
|
161
168
|
this.context = context;
|
|
162
169
|
this.feeJuiceContract = await FeeJuiceContract.at(ProtocolContractAddress.FeeJuice, this.aliceWallet);
|
|
163
|
-
this.getGasBalanceFn = getBalancesFn('⛽', this.feeJuiceContract.methods.balance_of_public, this.logger);
|
|
170
|
+
this.getGasBalanceFn = getBalancesFn('⛽', this.feeJuiceContract.methods.balance_of_public, this.aliceAddress, this.logger);
|
|
164
171
|
this.feeJuiceBridgeTestHarness = await FeeJuicePortalTestingHarnessFactory.create({
|
|
165
172
|
aztecNode: context.aztecNode,
|
|
166
173
|
aztecNodeAdmin: context.aztecNode,
|
|
@@ -173,7 +180,9 @@ const { E2E_DATA_PATH: dataPath } = process.env;
|
|
|
173
180
|
}
|
|
174
181
|
async applyDeployBananaTokenSnapshot() {
|
|
175
182
|
await this.snapshotManager.snapshot('deploy_banana_token', async ()=>{
|
|
176
|
-
const bananaCoin = await BananaCoin.deploy(this.aliceWallet, this.aliceAddress, 'BC', 'BC', 18n).send(
|
|
183
|
+
const bananaCoin = await BananaCoin.deploy(this.aliceWallet, this.aliceAddress, 'BC', 'BC', 18n).send({
|
|
184
|
+
from: this.aliceAddress
|
|
185
|
+
}).deployed();
|
|
177
186
|
this.logger.info(`BananaCoin deployed at ${bananaCoin.address}`);
|
|
178
187
|
return {
|
|
179
188
|
bananaCoinAddress: bananaCoin.address
|
|
@@ -181,8 +190,8 @@ const { E2E_DATA_PATH: dataPath } = process.env;
|
|
|
181
190
|
}, async ({ bananaCoinAddress })=>{
|
|
182
191
|
this.bananaCoin = await BananaCoin.at(bananaCoinAddress, this.aliceWallet);
|
|
183
192
|
const logger = this.logger;
|
|
184
|
-
this.getBananaPublicBalanceFn = getBalancesFn('🍌.public', this.bananaCoin.methods.balance_of_public, logger);
|
|
185
|
-
this.getBananaPrivateBalanceFn = getBalancesFn('🍌.private', this.bananaCoin.methods.balance_of_private, logger);
|
|
193
|
+
this.getBananaPublicBalanceFn = getBalancesFn('🍌.public', this.bananaCoin.methods.balance_of_public, this.aliceAddress, logger);
|
|
194
|
+
this.getBananaPrivateBalanceFn = getBalancesFn('🍌.private', this.bananaCoin.methods.balance_of_private, this.aliceAddress, logger);
|
|
186
195
|
});
|
|
187
196
|
}
|
|
188
197
|
async applyFPCSetupSnapshot() {
|
|
@@ -190,9 +199,11 @@ const { E2E_DATA_PATH: dataPath } = process.env;
|
|
|
190
199
|
const feeJuiceContract = this.feeJuiceBridgeTestHarness.feeJuice;
|
|
191
200
|
expect((await context.pxe.getContractMetadata(feeJuiceContract.address)).isContractPublished).toBe(true);
|
|
192
201
|
const bananaCoin = this.bananaCoin;
|
|
193
|
-
const bananaFPC = await FPCContract.deploy(this.aliceWallet, bananaCoin.address, this.fpcAdmin).send(
|
|
202
|
+
const bananaFPC = await FPCContract.deploy(this.aliceWallet, bananaCoin.address, this.fpcAdmin).send({
|
|
203
|
+
from: this.aliceAddress
|
|
204
|
+
}).deployed();
|
|
194
205
|
this.logger.info(`BananaPay deployed at ${bananaFPC.address}`);
|
|
195
|
-
await this.feeJuiceBridgeTestHarness.bridgeFromL1ToL2(FEE_FUNDING_FOR_TESTER_ACCOUNT, bananaFPC.address);
|
|
206
|
+
await this.feeJuiceBridgeTestHarness.bridgeFromL1ToL2(FEE_FUNDING_FOR_TESTER_ACCOUNT, bananaFPC.address, this.aliceAddress);
|
|
196
207
|
return {
|
|
197
208
|
bananaFPCAddress: bananaFPC.address,
|
|
198
209
|
feeJuiceAddress: feeJuiceContract.address,
|
|
@@ -247,7 +258,9 @@ const { E2E_DATA_PATH: dataPath } = process.env;
|
|
|
247
258
|
async applyFundAliceWithBananas() {
|
|
248
259
|
await this.snapshotManager.snapshot('fund_alice', async ()=>{
|
|
249
260
|
await this.mintPrivateBananas(this.ALICE_INITIAL_BANANAS, this.aliceAddress);
|
|
250
|
-
await this.bananaCoin.methods.mint_to_public(this.aliceAddress, this.ALICE_INITIAL_BANANAS).send(
|
|
261
|
+
await this.bananaCoin.methods.mint_to_public(this.aliceAddress, this.ALICE_INITIAL_BANANAS).send({
|
|
262
|
+
from: this.aliceAddress
|
|
263
|
+
}).wait();
|
|
251
264
|
}, ()=>Promise.resolve());
|
|
252
265
|
}
|
|
253
266
|
async applyFundAliceWithPrivateBananas() {
|
|
@@ -255,21 +268,4 @@ const { E2E_DATA_PATH: dataPath } = process.env;
|
|
|
255
268
|
await this.mintPrivateBananas(this.ALICE_INITIAL_BANANAS, this.aliceAddress);
|
|
256
269
|
}, ()=>Promise.resolve());
|
|
257
270
|
}
|
|
258
|
-
async applySetupSubscription() {
|
|
259
|
-
await this.snapshotManager.snapshot('setup_subscription', async ()=>{
|
|
260
|
-
const counterContract = await CounterContract.deploy(this.bobWallet, 0, this.bobAddress).send().deployed();
|
|
261
|
-
// Deploy subscription contract, that allows subscriptions for SUBSCRIPTION_AMOUNT of bananas
|
|
262
|
-
const subscriptionContract = await AppSubscriptionContract.deploy(this.bobWallet, counterContract.address, this.bobAddress, this.bananaCoin.address, this.SUBSCRIPTION_AMOUNT, this.APP_SPONSORED_TX_GAS_LIMIT).send().deployed();
|
|
263
|
-
// Mint some Fee Juice to the subscription contract
|
|
264
|
-
// Could also use bridgeFromL1ToL2 from the harness, but this is more direct
|
|
265
|
-
await this.mintAndBridgeFeeJuice(subscriptionContract.address, FEE_FUNDING_FOR_TESTER_ACCOUNT);
|
|
266
|
-
return {
|
|
267
|
-
counterContractAddress: counterContract.address,
|
|
268
|
-
subscriptionContractAddress: subscriptionContract.address
|
|
269
|
-
};
|
|
270
|
-
}, async ({ counterContractAddress, subscriptionContractAddress })=>{
|
|
271
|
-
this.counterContract = await CounterContract.at(counterContractAddress, this.bobWallet);
|
|
272
|
-
this.subscriptionContract = await AppSubscriptionContract.at(subscriptionContractAddress, this.bobWallet);
|
|
273
|
-
});
|
|
274
|
-
}
|
|
275
271
|
}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { type AccountWallet,
|
|
1
|
+
import { type AccountWallet, AztecAddress, type Logger, type PXE } from '@aztec/aztec.js';
|
|
2
2
|
import { ChildContract } from '@aztec/noir-test-contracts.js/Child';
|
|
3
3
|
import { ParentContract } from '@aztec/noir-test-contracts.js/Parent';
|
|
4
4
|
import { type SubsystemsContext } from '../fixtures/snapshot_manager.js';
|
|
@@ -6,8 +6,8 @@ export declare class NestedContractTest {
|
|
|
6
6
|
private numberOfAccounts;
|
|
7
7
|
private snapshotManager;
|
|
8
8
|
logger: Logger;
|
|
9
|
-
|
|
10
|
-
|
|
9
|
+
wallet: AccountWallet;
|
|
10
|
+
defaultAccountAddress: AztecAddress;
|
|
11
11
|
pxe: PXE;
|
|
12
12
|
parentContract: ParentContract;
|
|
13
13
|
childContract: ChildContract;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"nested_contract_test.d.ts","sourceRoot":"","sources":["../../src/e2e_nested_contract/nested_contract_test.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,KAAK,aAAa,EAAE,
|
|
1
|
+
{"version":3,"file":"nested_contract_test.d.ts","sourceRoot":"","sources":["../../src/e2e_nested_contract/nested_contract_test.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,KAAK,aAAa,EAAE,YAAY,EAAE,KAAK,MAAM,EAAE,KAAK,GAAG,EAAgB,MAAM,iBAAiB,CAAC;AACxG,OAAO,EAAE,aAAa,EAAE,MAAM,qCAAqC,CAAC;AACpE,OAAO,EAAE,cAAc,EAAE,MAAM,sCAAsC,CAAC;AAEtE,OAAO,EAEL,KAAK,iBAAiB,EAIvB,MAAM,iCAAiC,CAAC;AAIzC,qBAAa,kBAAkB;IAY3B,OAAO,CAAC,gBAAgB;IAX1B,OAAO,CAAC,eAAe,CAAmB;IAC1C,MAAM,EAAE,MAAM,CAAC;IACf,MAAM,EAAG,aAAa,CAAC;IACvB,qBAAqB,EAAG,YAAY,CAAC;IACrC,GAAG,EAAG,GAAG,CAAC;IAEV,cAAc,EAAG,cAAc,CAAC;IAChC,aAAa,EAAG,aAAa,CAAC;gBAG5B,QAAQ,EAAE,MAAM,EACR,gBAAgB,SAAI;IAM9B;;;;OAIG;IACG,kBAAkB;IAuBlB,KAAK;IAIL,QAAQ;IAId,QAAQ,GAAI,CAAC,EACX,MAAM,MAAM,EACZ,OAAO,CAAC,OAAO,EAAE,iBAAiB,KAAK,OAAO,CAAC,CAAC,CAAC,EACjD,UAAS,CAAC,YAAY,EAAE,CAAC,EAAE,OAAO,EAAE,iBAAiB,KAAK,OAAO,CAAC,IAAI,CAA2B,KAChG,OAAO,CAAC,IAAI,CAAC,CAAwD;IAElE,oBAAoB;CAkB3B"}
|
|
@@ -8,15 +8,13 @@ export class NestedContractTest {
|
|
|
8
8
|
numberOfAccounts;
|
|
9
9
|
snapshotManager;
|
|
10
10
|
logger;
|
|
11
|
-
|
|
12
|
-
|
|
11
|
+
wallet;
|
|
12
|
+
defaultAccountAddress;
|
|
13
13
|
pxe;
|
|
14
14
|
parentContract;
|
|
15
15
|
childContract;
|
|
16
16
|
constructor(testName, numberOfAccounts = 1){
|
|
17
17
|
this.numberOfAccounts = numberOfAccounts;
|
|
18
|
-
this.wallets = [];
|
|
19
|
-
this.accounts = [];
|
|
20
18
|
this.snapshot = (name, apply, restore = ()=>Promise.resolve())=>this.snapshotManager.snapshot(name, apply, restore);
|
|
21
19
|
this.logger = createLogger(`e2e:e2e_nested_contract:${testName}`);
|
|
22
20
|
this.snapshotManager = createSnapshotManager(`e2e_nested_contract/${testName}-${numberOfAccounts}`, dataPath);
|
|
@@ -27,14 +25,17 @@ export class NestedContractTest {
|
|
|
27
25
|
* 2. Publicly deploy accounts
|
|
28
26
|
*/ async applyBaseSnapshots() {
|
|
29
27
|
await this.snapshotManager.snapshot('accounts', deployAccounts(this.numberOfAccounts, this.logger), async ({ deployedAccounts }, { pxe })=>{
|
|
30
|
-
|
|
31
|
-
this.
|
|
32
|
-
this.
|
|
28
|
+
const wallets = await Promise.all(deployedAccounts.map((a)=>getSchnorrWallet(pxe, a.address, a.signingKey)));
|
|
29
|
+
wallets.forEach((w, i)=>this.logger.verbose(`Wallet ${i} address: ${w.getAddress()}`));
|
|
30
|
+
[this.wallet] = wallets;
|
|
31
|
+
this.defaultAccountAddress = this.wallet.getAddress();
|
|
33
32
|
this.pxe = pxe;
|
|
34
33
|
});
|
|
35
34
|
await this.snapshotManager.snapshot('public_deploy', async ()=>{}, async ()=>{
|
|
36
35
|
this.logger.verbose(`Public deploy accounts...`);
|
|
37
|
-
await publicDeployAccounts(this.
|
|
36
|
+
await publicDeployAccounts(this.wallet, [
|
|
37
|
+
this.defaultAccountAddress
|
|
38
|
+
]);
|
|
38
39
|
});
|
|
39
40
|
}
|
|
40
41
|
async setup() {
|
|
@@ -46,15 +47,19 @@ export class NestedContractTest {
|
|
|
46
47
|
snapshot;
|
|
47
48
|
async applyManualSnapshots() {
|
|
48
49
|
await this.snapshotManager.snapshot('manual', async ()=>{
|
|
49
|
-
const parentContract = await ParentContract.deploy(this.
|
|
50
|
-
|
|
50
|
+
const parentContract = await ParentContract.deploy(this.wallet).send({
|
|
51
|
+
from: this.defaultAccountAddress
|
|
52
|
+
}).deployed();
|
|
53
|
+
const childContract = await ChildContract.deploy(this.wallet).send({
|
|
54
|
+
from: this.defaultAccountAddress
|
|
55
|
+
}).deployed();
|
|
51
56
|
return {
|
|
52
57
|
parentContractAddress: parentContract.address,
|
|
53
58
|
childContractAddress: childContract.address
|
|
54
59
|
};
|
|
55
60
|
}, async ({ parentContractAddress, childContractAddress })=>{
|
|
56
|
-
this.parentContract = await ParentContract.at(parentContractAddress, this.
|
|
57
|
-
this.childContract = await ChildContract.at(childContractAddress, this.
|
|
61
|
+
this.parentContract = await ParentContract.at(parentContractAddress, this.wallet);
|
|
62
|
+
this.childContract = await ChildContract.at(childContractAddress, this.wallet);
|
|
58
63
|
});
|
|
59
64
|
}
|
|
60
65
|
}
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import type { InitialAccountData } from '@aztec/accounts/testing';
|
|
2
2
|
import type { AztecNodeConfig, AztecNodeService } from '@aztec/aztec-node';
|
|
3
|
-
import { type AccountWalletWithSecretKey } from '@aztec/aztec.js';
|
|
3
|
+
import { type AccountWalletWithSecretKey, AztecAddress } from '@aztec/aztec.js';
|
|
4
4
|
import { type Operator, RollupContract, type ViemClient } from '@aztec/ethereum';
|
|
5
5
|
import { ChainMonitor } from '@aztec/ethereum/test';
|
|
6
6
|
import { type Logger } from '@aztec/foundation/log';
|
|
@@ -52,6 +52,7 @@ export declare class P2PNetworkTest {
|
|
|
52
52
|
deployedAccounts: InitialAccountData[];
|
|
53
53
|
prefilledPublicData: PublicDataTreeLeaf[];
|
|
54
54
|
wallet?: AccountWalletWithSecretKey;
|
|
55
|
+
defaultAccountAddress?: AztecAddress;
|
|
55
56
|
spamContract?: SpamContract;
|
|
56
57
|
bootstrapNode?: BootstrapNode;
|
|
57
58
|
constructor(testName: string, bootstrapNodeEnr: string, bootNodePort: number, numberOfValidators: number, initialValidatorConfig: AztecNodeConfig, numberOfNodes?: number, metricsPort?: number | undefined, startProverNode?: boolean, mockZkPassportVerifier?: boolean);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"p2p_network.d.ts","sourceRoot":"","sources":["../../src/e2e_p2p/p2p_network.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,yBAAyB,CAAC;AAClE,OAAO,KAAK,EAAE,eAAe,EAAE,gBAAgB,EAAE,MAAM,mBAAmB,CAAC;AAC3E,OAAO,EAAE,KAAK,0BAA0B,EAAkB,MAAM,iBAAiB,CAAC;
|
|
1
|
+
{"version":3,"file":"p2p_network.d.ts","sourceRoot":"","sources":["../../src/e2e_p2p/p2p_network.ts"],"names":[],"mappings":"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"}
|
|
@@ -46,6 +46,7 @@ export class P2PNetworkTest {
|
|
|
46
46
|
prefilledPublicData;
|
|
47
47
|
// The re-execution test needs a wallet and a spam contract
|
|
48
48
|
wallet;
|
|
49
|
+
defaultAccountAddress;
|
|
49
50
|
spamContract;
|
|
50
51
|
bootstrapNode;
|
|
51
52
|
constructor(testName, bootstrapNodeEnr, bootNodePort, numberOfValidators, initialValidatorConfig, numberOfNodes = 0, // If set enable metrics collection
|
|
@@ -199,6 +200,7 @@ export class P2PNetworkTest {
|
|
|
199
200
|
this.deployedAccounts = deployedAccounts;
|
|
200
201
|
const [account] = deployedAccounts;
|
|
201
202
|
this.wallet = await getSchnorrWalletWithSecretKey(pxe, account.secret, account.signingKey, account.salt);
|
|
203
|
+
this.defaultAccountAddress = this.wallet.getAddress();
|
|
202
204
|
});
|
|
203
205
|
}
|
|
204
206
|
async deploySpamContract() {
|
|
@@ -206,7 +208,9 @@ export class P2PNetworkTest {
|
|
|
206
208
|
if (!this.wallet) {
|
|
207
209
|
throw new Error('Call snapshot t.setupAccount before deploying account contract');
|
|
208
210
|
}
|
|
209
|
-
const spamContract = await SpamContract.deploy(this.wallet).send(
|
|
211
|
+
const spamContract = await SpamContract.deploy(this.wallet).send({
|
|
212
|
+
from: this.defaultAccountAddress
|
|
213
|
+
}).deployed();
|
|
210
214
|
return {
|
|
211
215
|
contractAddress: spamContract.address
|
|
212
216
|
};
|
package/dest/e2e_p2p/shared.d.ts
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import type { InitialAccountData } from '@aztec/accounts/testing';
|
|
2
2
|
import type { AztecNodeService } from '@aztec/aztec-node';
|
|
3
|
-
import { type Logger, ProvenTx, type SentTx } from '@aztec/aztec.js';
|
|
3
|
+
import { AztecAddress, type Logger, ProvenTx, type SentTx } from '@aztec/aztec.js';
|
|
4
4
|
import type { RollupCheatCodes } from '@aztec/aztec/testing';
|
|
5
5
|
import type { RollupContract, ViemClient } from '@aztec/ethereum';
|
|
6
6
|
import type { SlashFactoryAbi } from '@aztec/l1-artifacts/SlashFactoryAbi';
|
|
@@ -10,7 +10,7 @@ import { PXEService } from '@aztec/pxe/server';
|
|
|
10
10
|
import { Offense } from '@aztec/slasher';
|
|
11
11
|
import type { GetContractReturnType } from 'viem';
|
|
12
12
|
import type { NodeContext } from '../fixtures/setup_p2p_test.js';
|
|
13
|
-
export declare const submitComplexTxsTo: (logger: Logger, spamContract: SpamContract, numTxs: number, opts?: {
|
|
13
|
+
export declare const submitComplexTxsTo: (logger: Logger, from: AztecAddress, spamContract: SpamContract, numTxs: number, opts?: {
|
|
14
14
|
callPublic?: boolean;
|
|
15
15
|
}) => Promise<SentTx[]>;
|
|
16
16
|
export declare const createPXEServiceAndSubmitTransactions: (logger: Logger, node: AztecNodeService, numTxs: number, fundedAccount: InitialAccountData) => Promise<NodeContext>;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"shared.d.ts","sourceRoot":"","sources":["../../src/e2e_p2p/shared.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,yBAAyB,CAAC;AAClE,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,mBAAmB,CAAC;AAC1D,OAAO,
|
|
1
|
+
{"version":3,"file":"shared.d.ts","sourceRoot":"","sources":["../../src/e2e_p2p/shared.ts"],"names":[],"mappings":"AACA,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,cAAc,EAAE,UAAU,EAAE,MAAM,iBAAiB,CAAC;AAElE,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,qCAAqC,CAAC;AAC3E,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,yCAAyC,CAAC;AACnF,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,oCAAoC,CAAC;AAEvE,OAAO,EAAE,UAAU,EAAyD,MAAM,mBAAmB,CAAC;AACtG,OAAO,EAAE,OAAO,EAAmB,MAAM,gBAAgB,CAAC;AAE1D,OAAO,KAAK,EAAE,qBAAqB,EAAE,MAAM,MAAM,CAAC;AAElD,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,+BAA+B,CAAC;AAIjE,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,qCAAqC,GAChD,QAAQ,MAAM,EACd,MAAM,gBAAgB,EACtB,QAAQ,MAAM,EACd,eAAe,kBAAkB,KAChC,OAAO,CAAC,WAAW,CAgBrB,CAAC;AAEF,wBAAsB,sCAAsC,CAC1D,MAAM,EAAE,MAAM,EACd,IAAI,EAAE,gBAAgB,EACtB,MAAM,EAAE,MAAM,EACd,aAAa,EAAE,kBAAkB,GAChC,OAAO,CAAC;IAAE,UAAU,EAAE,UAAU,CAAC;IAAC,GAAG,EAAE,QAAQ,EAAE,CAAC;IAAC,IAAI,EAAE,gBAAgB,CAAA;CAAE,CAAC,CAqB9E;AAED,wBAAsB,sBAAsB,CAC1C,gBAAgB,EAAE,qBAAqB,CAAC,OAAO,mBAAmB,EAAE,UAAU,CAAC,EAC/E,cAAc,EAAE,MAAM,iBAiBvB;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;;;GAGG;AACH,wBAAsB,oBAAoB,CAAC,EACzC,OAAO,EACP,MAAM,EACN,UAAU,EACV,SAAS,EACT,cAAc,EACd,YAAY,EACZ,gBAAgB,EAChB,iBAAiB,EACjB,iBAAiB,EACjB,MAAM,EACN,WAAW,GACZ,EAAE;IACD,OAAO,EAAE,OAAO,CAAC;IACjB,MAAM,EAAE,cAAc,CAAC;IACvB,UAAU,EAAE,gBAAgB,CAAC;IAC7B,SAAS,EAAE,SAAS,KAAK,MAAM,EAAE,EAAE,CAAC;IACpC,cAAc,EAAE,MAAM,CAAC;IACvB,YAAY,EAAE,qBAAqB,CAAC,OAAO,eAAe,EAAE,UAAU,CAAC,CAAC;IACxE,gBAAgB,EAAE,qBAAqB,CAAC,OAAO,mBAAmB,EAAE,UAAU,CAAC,CAAC;IAChF,iBAAiB,EAAE,MAAM,CAAC;IAC1B,iBAAiB,EAAE,MAAM,CAAC;IAC1B,MAAM,EAAE,MAAM,CAAC;IACf,WAAW,EAAE,MAAM,OAAO,CAAC,IAAI,CAAC,CAAC;CAClC,iBAgEA"}
|
package/dest/e2e_p2p/shared.js
CHANGED
|
@@ -6,12 +6,14 @@ import { createPXEService, getPXEServiceConfig as getRpcConfig } from '@aztec/px
|
|
|
6
6
|
import { OffenseToBigInt } from '@aztec/slasher';
|
|
7
7
|
import { submitTxsTo } from '../shared/submit-transactions.js';
|
|
8
8
|
// submits a set of transactions to the provided Private eXecution Environment (PXE)
|
|
9
|
-
export const submitComplexTxsTo = async (logger, spamContract, numTxs, opts = {})=>{
|
|
9
|
+
export const submitComplexTxsTo = async (logger, from, spamContract, numTxs, opts = {})=>{
|
|
10
10
|
const txs = [];
|
|
11
11
|
const seed = 1234n;
|
|
12
12
|
const spamCount = 15;
|
|
13
13
|
for(let i = 0; i < numTxs; i++){
|
|
14
|
-
const tx = spamContract.methods.spam(seed + BigInt(i * spamCount), spamCount, !!opts.callPublic).send(
|
|
14
|
+
const tx = spamContract.methods.spam(seed + BigInt(i * spamCount), spamCount, !!opts.callPublic).send({
|
|
15
|
+
from
|
|
16
|
+
});
|
|
15
17
|
const txHash = await tx.getTxHash();
|
|
16
18
|
logger.info(`Tx sent with hash ${txHash.toString()}`);
|
|
17
19
|
const receipt = await tx.getReceipt();
|
|
@@ -57,7 +59,9 @@ export async function createPXEServiceAndPrepareTransactions(logger, node, numTx
|
|
|
57
59
|
});
|
|
58
60
|
const contract = await TestContract.at(testContractInstance.address, wallet);
|
|
59
61
|
const txs = await timesAsync(numTxs, async ()=>{
|
|
60
|
-
const tx = await contract.methods.emit_nullifier(Fr.random()).prove(
|
|
62
|
+
const tx = await contract.methods.emit_nullifier(Fr.random()).prove({
|
|
63
|
+
from: account.getAddress()
|
|
64
|
+
});
|
|
61
65
|
const txHash = tx.getTxHash();
|
|
62
66
|
logger.info(`Tx prepared with hash ${txHash}`);
|
|
63
67
|
return tx;
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { type AccountWallet,
|
|
1
|
+
import { type AccountWallet, AztecAddress, type AztecNode, type Logger } from '@aztec/aztec.js';
|
|
2
2
|
import { TokenContract } from '@aztec/noir-contracts.js/Token';
|
|
3
3
|
import { InvalidAccountContract } from '@aztec/noir-test-contracts.js/InvalidAccount';
|
|
4
4
|
import { type SubsystemsContext } from '../fixtures/snapshot_manager.js';
|
|
@@ -9,12 +9,16 @@ export declare class TokenContractTest {
|
|
|
9
9
|
static TOKEN_DECIMALS: bigint;
|
|
10
10
|
private snapshotManager;
|
|
11
11
|
logger: Logger;
|
|
12
|
-
wallets: AccountWallet[];
|
|
13
|
-
accounts: CompleteAddress[];
|
|
14
12
|
asset: TokenContract;
|
|
15
13
|
tokenSim: TokenSimulator;
|
|
16
|
-
badAccount: InvalidAccountContract;
|
|
17
14
|
node: AztecNode;
|
|
15
|
+
badAccount: InvalidAccountContract;
|
|
16
|
+
admin: AccountWallet;
|
|
17
|
+
adminAddress: AztecAddress;
|
|
18
|
+
account1: AccountWallet;
|
|
19
|
+
account1Address: AztecAddress;
|
|
20
|
+
account2: AccountWallet;
|
|
21
|
+
account2Address: AztecAddress;
|
|
18
22
|
constructor(testName: string);
|
|
19
23
|
/**
|
|
20
24
|
* Adds two state shifts to snapshot manager.
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"token_contract_test.d.ts","sourceRoot":"","sources":["../../src/e2e_token_contract/token_contract_test.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,KAAK,aAAa,EAAE,
|
|
1
|
+
{"version":3,"file":"token_contract_test.d.ts","sourceRoot":"","sources":["../../src/e2e_token_contract/token_contract_test.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,KAAK,aAAa,EAAE,YAAY,EAAE,KAAK,SAAS,EAAE,KAAK,MAAM,EAAgB,MAAM,iBAAiB,CAAC;AAC9G,OAAO,EAAE,aAAa,EAAE,MAAM,gCAAgC,CAAC;AAC/D,OAAO,EAAE,sBAAsB,EAAE,MAAM,8CAA8C,CAAC;AAItF,OAAO,EAEL,KAAK,iBAAiB,EAIvB,MAAM,iCAAiC,CAAC;AAEzC,OAAO,EAAE,cAAc,EAAE,MAAM,kCAAkC,CAAC;AAIlE,qBAAa,iBAAiB;IAC5B,MAAM,CAAC,UAAU,SAAU;IAC3B,MAAM,CAAC,YAAY,SAAS;IAC5B,MAAM,CAAC,cAAc,SAAO;IAC5B,OAAO,CAAC,eAAe,CAAmB;IAC1C,MAAM,EAAE,MAAM,CAAC;IACf,KAAK,EAAG,aAAa,CAAC;IACtB,QAAQ,EAAG,cAAc,CAAC;IAC1B,IAAI,EAAG,SAAS,CAAC;IAEjB,UAAU,EAAG,sBAAsB,CAAC;IACpC,KAAK,EAAG,aAAa,CAAC;IACtB,YAAY,EAAG,YAAY,CAAC;IAC5B,QAAQ,EAAG,aAAa,CAAC;IACzB,eAAe,EAAG,YAAY,CAAC;IAC/B,QAAQ,EAAG,aAAa,CAAC;IACzB,eAAe,EAAG,YAAY,CAAC;gBAEnB,QAAQ,EAAE,MAAM;IAO5B;;;;OAIG;IACG,kBAAkB;IAkElB,KAAK;IAIX,QAAQ,GAAI,CAAC,EACX,MAAM,MAAM,EACZ,OAAO,CAAC,OAAO,EAAE,iBAAiB,KAAK,OAAO,CAAC,CAAC,CAAC,EACjD,UAAS,CAAC,YAAY,EAAE,CAAC,EAAE,OAAO,EAAE,iBAAiB,KAAK,OAAO,CAAC,IAAI,CAA2B,KAChG,OAAO,CAAC,IAAI,CAAC,CAAwD;IAElE,QAAQ;IAIR,iBAAiB;CAqCxB"}
|
|
@@ -13,12 +13,16 @@ export class TokenContractTest {
|
|
|
13
13
|
static TOKEN_DECIMALS = 18n;
|
|
14
14
|
snapshotManager;
|
|
15
15
|
logger;
|
|
16
|
-
wallets = [];
|
|
17
|
-
accounts = [];
|
|
18
16
|
asset;
|
|
19
17
|
tokenSim;
|
|
20
|
-
badAccount;
|
|
21
18
|
node;
|
|
19
|
+
badAccount;
|
|
20
|
+
admin;
|
|
21
|
+
adminAddress;
|
|
22
|
+
account1;
|
|
23
|
+
account1Address;
|
|
24
|
+
account2;
|
|
25
|
+
account2Address;
|
|
22
26
|
constructor(testName){
|
|
23
27
|
this.logger = createLogger(`e2e:e2e_token_contract:${testName}`);
|
|
24
28
|
this.snapshotManager = createSnapshotManager(`e2e_token_contract/${testName}`, dataPath, {
|
|
@@ -34,19 +38,27 @@ export class TokenContractTest {
|
|
|
34
38
|
jest.setTimeout(120_000);
|
|
35
39
|
await this.snapshotManager.snapshot('3_accounts', deployAccounts(3, this.logger), async ({ deployedAccounts }, { pxe, aztecNode })=>{
|
|
36
40
|
this.node = aztecNode;
|
|
37
|
-
|
|
38
|
-
this.
|
|
41
|
+
const wallets = await Promise.all(deployedAccounts.map((a)=>getSchnorrWallet(pxe, a.address, a.signingKey)));
|
|
42
|
+
[this.admin, this.account1, this.account2] = wallets;
|
|
43
|
+
[this.adminAddress, this.account1Address, this.account2Address] = wallets.map((w)=>w.getAddress());
|
|
39
44
|
});
|
|
40
45
|
await this.snapshotManager.snapshot('e2e_token_contract', async ()=>{
|
|
41
46
|
// Create the token contract state.
|
|
42
47
|
// Move this account thing to addAccounts above?
|
|
43
48
|
this.logger.verbose(`Public deploy accounts...`);
|
|
44
|
-
await publicDeployAccounts(this.
|
|
49
|
+
await publicDeployAccounts(this.admin, [
|
|
50
|
+
this.adminAddress,
|
|
51
|
+
this.account1Address
|
|
52
|
+
]);
|
|
45
53
|
this.logger.verbose(`Deploying TokenContract...`);
|
|
46
|
-
const asset = await TokenContract.deploy(this.
|
|
54
|
+
const asset = await TokenContract.deploy(this.admin, this.adminAddress, TokenContractTest.TOKEN_NAME, TokenContractTest.TOKEN_SYMBOL, TokenContractTest.TOKEN_DECIMALS).send({
|
|
55
|
+
from: this.adminAddress
|
|
56
|
+
}).deployed();
|
|
47
57
|
this.logger.verbose(`Token deployed to ${asset.address}`);
|
|
48
58
|
this.logger.verbose(`Deploying bad account...`);
|
|
49
|
-
this.badAccount = await InvalidAccountContract.deploy(this.
|
|
59
|
+
this.badAccount = await InvalidAccountContract.deploy(this.admin).send({
|
|
60
|
+
from: this.adminAddress
|
|
61
|
+
}).deployed();
|
|
50
62
|
this.logger.verbose(`Deployed to ${this.badAccount.address}.`);
|
|
51
63
|
return {
|
|
52
64
|
tokenContractAddress: asset.address,
|
|
@@ -54,12 +66,17 @@ export class TokenContractTest {
|
|
|
54
66
|
};
|
|
55
67
|
}, async ({ tokenContractAddress, badAccountAddress })=>{
|
|
56
68
|
// Restore the token contract state.
|
|
57
|
-
this.asset = await TokenContract.at(tokenContractAddress, this.
|
|
69
|
+
this.asset = await TokenContract.at(tokenContractAddress, this.admin);
|
|
58
70
|
this.logger.verbose(`Token contract address: ${this.asset.address}`);
|
|
59
|
-
this.tokenSim = new TokenSimulator(this.asset, this.
|
|
60
|
-
|
|
71
|
+
this.tokenSim = new TokenSimulator(this.asset, this.admin, this.adminAddress, this.logger, [
|
|
72
|
+
this.adminAddress,
|
|
73
|
+
this.account1Address
|
|
74
|
+
]);
|
|
75
|
+
this.badAccount = await InvalidAccountContract.at(badAccountAddress, this.admin);
|
|
61
76
|
this.logger.verbose(`Bad account address: ${this.badAccount.address}`);
|
|
62
|
-
expect(await this.asset.methods.get_admin().simulate(
|
|
77
|
+
expect(await this.asset.methods.get_admin().simulate({
|
|
78
|
+
from: this.adminAddress
|
|
79
|
+
})).toBe(this.adminAddress.toBigInt());
|
|
63
80
|
});
|
|
64
81
|
// TokenContract.artifact.functions.forEach(fn => {
|
|
65
82
|
// const sig = decodeFunctionSignature(fn.name, fn.parameters);
|
|
@@ -75,27 +92,35 @@ export class TokenContractTest {
|
|
|
75
92
|
}
|
|
76
93
|
async applyMintSnapshot() {
|
|
77
94
|
await this.snapshotManager.snapshot('mint', async ()=>{
|
|
78
|
-
const { asset,
|
|
95
|
+
const { asset, admin, adminAddress } = this;
|
|
79
96
|
const amount = 10000n;
|
|
80
97
|
this.logger.verbose(`Minting ${amount} publicly...`);
|
|
81
|
-
await asset.methods.mint_to_public(
|
|
98
|
+
await asset.methods.mint_to_public(adminAddress, amount).send({
|
|
99
|
+
from: adminAddress
|
|
100
|
+
}).wait();
|
|
82
101
|
this.logger.verbose(`Minting ${amount} privately...`);
|
|
83
|
-
await mintTokensToPrivate(asset,
|
|
102
|
+
await mintTokensToPrivate(asset, adminAddress, admin, adminAddress, amount);
|
|
84
103
|
this.logger.verbose(`Minting complete.`);
|
|
85
104
|
return {
|
|
86
105
|
amount
|
|
87
106
|
};
|
|
88
107
|
}, async ({ amount })=>{
|
|
89
|
-
const { asset,
|
|
90
|
-
tokenSim.mintPublic(
|
|
91
|
-
const publicBalance = await asset.methods.balance_of_public(
|
|
108
|
+
const { asset, adminAddress, tokenSim } = this;
|
|
109
|
+
tokenSim.mintPublic(adminAddress, amount);
|
|
110
|
+
const publicBalance = await asset.methods.balance_of_public(adminAddress).simulate({
|
|
111
|
+
from: adminAddress
|
|
112
|
+
});
|
|
92
113
|
this.logger.verbose(`Public balance of wallet 0: ${publicBalance}`);
|
|
93
|
-
expect(publicBalance).toEqual(this.tokenSim.balanceOfPublic(
|
|
94
|
-
tokenSim.mintPrivate(
|
|
95
|
-
const privateBalance = await asset.methods.balance_of_private(
|
|
114
|
+
expect(publicBalance).toEqual(this.tokenSim.balanceOfPublic(adminAddress));
|
|
115
|
+
tokenSim.mintPrivate(adminAddress, amount);
|
|
116
|
+
const privateBalance = await asset.methods.balance_of_private(adminAddress).simulate({
|
|
117
|
+
from: adminAddress
|
|
118
|
+
});
|
|
96
119
|
this.logger.verbose(`Private balance of wallet 0: ${privateBalance}`);
|
|
97
|
-
expect(privateBalance).toEqual(tokenSim.balanceOfPrivate(
|
|
98
|
-
const totalSupply = await asset.methods.total_supply().simulate(
|
|
120
|
+
expect(privateBalance).toEqual(tokenSim.balanceOfPrivate(adminAddress));
|
|
121
|
+
const totalSupply = await asset.methods.total_supply().simulate({
|
|
122
|
+
from: adminAddress
|
|
123
|
+
});
|
|
99
124
|
this.logger.verbose(`Total supply: ${totalSupply}`);
|
|
100
125
|
expect(totalSupply).toEqual(tokenSim.totalSupply);
|
|
101
126
|
return Promise.resolve();
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"e2e_prover_test.d.ts","sourceRoot":"","sources":["../../src/fixtures/e2e_prover_test.ts"],"names":[],"mappings":"AAKA,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,yBAAyB,CAAC;AAElE,OAAO,EACL,KAAK,0BAA0B,EAC/B,KAAK,SAAS,EACd,KAAK,eAAe,EACpB,UAAU,EACV,KAAK,MAAM,EAGZ,MAAM,iBAAiB,CAAC;AACzB,OAAO,EAAE,UAAU,EAAE,MAAM,sBAAsB,CAAC;AAClD,OAAO,EAEL,KAAK,6BAA6B,EAGnC,MAAM,kBAAkB,CAAC;AAE1B,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,yBAAyB,CAAC;AAC9D,OAAO,KAAK,EAAE,2BAA2B,EAAE,MAAM,iBAAiB,CAAC;AAInE,OAAO,EAAE,aAAa,EAAE,MAAM,gCAAgC,CAAC;AAE/D,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,mBAAmB,CAAC;AACpD,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,iCAAiC,CAAC;AAMtE,OAAO,EAAE,cAAc,EAAE,MAAM,kCAAkC,CAAC;AAGlE,OAAO,EAEL,KAAK,iBAAiB,EAIvB,MAAM,uBAAuB,CAAC;AAU/B;;;;;GAKG;AAEH,qBAAa,cAAc;IA6BvB,OAAO,CAAC,sBAAsB;IAE9B,OAAO,CAAC,UAAU;IA9BpB,MAAM,CAAC,UAAU,SAAU;IAC3B,MAAM,CAAC,YAAY,SAAS;IAC5B,MAAM,CAAC,cAAc,SAAO;IAC5B,OAAO,CAAC,eAAe,CAAmB;IAC1C,MAAM,EAAE,MAAM,CAAC;IACf,gBAAgB,EAAE,kBAAkB,EAAE,CAAM;IAC5C,OAAO,EAAE,0BAA0B,EAAE,CAAM;IAC3C,QAAQ,EAAE,eAAe,EAAE,CAAM;IACjC,eAAe,EAAG,aAAa,CAAC;IAChC,QAAQ,EAAG,cAAc,CAAC;IAC1B,SAAS,EAAG,SAAS,CAAC;IACtB,cAAc,EAAG,cAAc,CAAC;IAChC,GAAG,EAAG,UAAU,CAAC;IACjB,UAAU,EAAG,UAAU,CAAC;IACxB,QAAQ,EAAG,cAAc,CAAC;IAC1B,OAAO,CAAC,gBAAgB,CAAqB;IAC7C,OAAO,CAAC,eAAe,CAAC,CAAsB;IAC9C,OAAO,CAAC,iBAAiB,CAAC,CAAsB;IAChD,oBAAoB,CAAC,EAAE,6BAA6B,CAAC;IACrD,YAAY,EAAE,aAAa,EAAE,CAAM;IACnC,OAAO,CAAC,OAAO,CAAqB;IACpC,OAAO,CAAC,UAAU,CAAc;IAChC,OAAO,CAAC,mBAAmB,CAAc;IAClC,WAAW,EAAG,2BAA2B,CAAC;IAC1C,aAAa,EAAG,UAAU,CAAC;gBAGhC,QAAQ,EAAE,MAAM,EACR,sBAAsB,EAAE,MAAM,EACtC,QAAQ,EAAE,UAAU,EACZ,UAAU,UAAO;IAa3B;;;;OAIG;IACG,kBAAkB;
|
|
1
|
+
{"version":3,"file":"e2e_prover_test.d.ts","sourceRoot":"","sources":["../../src/fixtures/e2e_prover_test.ts"],"names":[],"mappings":"AAKA,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,yBAAyB,CAAC;AAElE,OAAO,EACL,KAAK,0BAA0B,EAC/B,KAAK,SAAS,EACd,KAAK,eAAe,EACpB,UAAU,EACV,KAAK,MAAM,EAGZ,MAAM,iBAAiB,CAAC;AACzB,OAAO,EAAE,UAAU,EAAE,MAAM,sBAAsB,CAAC;AAClD,OAAO,EAEL,KAAK,6BAA6B,EAGnC,MAAM,kBAAkB,CAAC;AAE1B,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,yBAAyB,CAAC;AAC9D,OAAO,KAAK,EAAE,2BAA2B,EAAE,MAAM,iBAAiB,CAAC;AAInE,OAAO,EAAE,aAAa,EAAE,MAAM,gCAAgC,CAAC;AAE/D,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,mBAAmB,CAAC;AACpD,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,iCAAiC,CAAC;AAMtE,OAAO,EAAE,cAAc,EAAE,MAAM,kCAAkC,CAAC;AAGlE,OAAO,EAEL,KAAK,iBAAiB,EAIvB,MAAM,uBAAuB,CAAC;AAU/B;;;;;GAKG;AAEH,qBAAa,cAAc;IA6BvB,OAAO,CAAC,sBAAsB;IAE9B,OAAO,CAAC,UAAU;IA9BpB,MAAM,CAAC,UAAU,SAAU;IAC3B,MAAM,CAAC,YAAY,SAAS;IAC5B,MAAM,CAAC,cAAc,SAAO;IAC5B,OAAO,CAAC,eAAe,CAAmB;IAC1C,MAAM,EAAE,MAAM,CAAC;IACf,gBAAgB,EAAE,kBAAkB,EAAE,CAAM;IAC5C,OAAO,EAAE,0BAA0B,EAAE,CAAM;IAC3C,QAAQ,EAAE,eAAe,EAAE,CAAM;IACjC,eAAe,EAAG,aAAa,CAAC;IAChC,QAAQ,EAAG,cAAc,CAAC;IAC1B,SAAS,EAAG,SAAS,CAAC;IACtB,cAAc,EAAG,cAAc,CAAC;IAChC,GAAG,EAAG,UAAU,CAAC;IACjB,UAAU,EAAG,UAAU,CAAC;IACxB,QAAQ,EAAG,cAAc,CAAC;IAC1B,OAAO,CAAC,gBAAgB,CAAqB;IAC7C,OAAO,CAAC,eAAe,CAAC,CAAsB;IAC9C,OAAO,CAAC,iBAAiB,CAAC,CAAsB;IAChD,oBAAoB,CAAC,EAAE,6BAA6B,CAAC;IACrD,YAAY,EAAE,aAAa,EAAE,CAAM;IACnC,OAAO,CAAC,OAAO,CAAqB;IACpC,OAAO,CAAC,UAAU,CAAc;IAChC,OAAO,CAAC,mBAAmB,CAAc;IAClC,WAAW,EAAG,2BAA2B,CAAC;IAC1C,aAAa,EAAG,UAAU,CAAC;gBAGhC,QAAQ,EAAE,MAAM,EACR,sBAAsB,EAAE,MAAM,EACtC,QAAQ,EAAE,UAAU,EACZ,UAAU,UAAO;IAa3B;;;;OAIG;IACG,kBAAkB;IAwDlB,KAAK;YAiKG,WAAW;IAQzB,QAAQ,GAAI,CAAC,EACX,MAAM,MAAM,EACZ,OAAO,CAAC,OAAO,EAAE,iBAAiB,KAAK,OAAO,CAAC,CAAC,CAAC,EACjD,UAAS,CAAC,YAAY,EAAE,CAAC,EAAE,OAAO,EAAE,iBAAiB,KAAK,OAAO,CAAC,IAAI,CAA2B,KAChG,OAAO,CAAC,IAAI,CAAC,CAAwD;IAElE,QAAQ;IAeR,iBAAiB;CAiDxB"}
|
|
@@ -85,7 +85,9 @@ const { E2E_DATA_PATH: dataPath } = process.env;
|
|
|
85
85
|
this.logger.verbose(`Public deploy accounts...`);
|
|
86
86
|
await publicDeployAccounts(this.wallets[0], this.accounts.slice(0, 2));
|
|
87
87
|
this.logger.verbose(`Deploying TokenContract...`);
|
|
88
|
-
const asset = await TokenContract.deploy(this.wallets[0], this.accounts[0], FullProverTest.TOKEN_NAME, FullProverTest.TOKEN_SYMBOL, FullProverTest.TOKEN_DECIMALS).send(
|
|
88
|
+
const asset = await TokenContract.deploy(this.wallets[0], this.accounts[0], FullProverTest.TOKEN_NAME, FullProverTest.TOKEN_SYMBOL, FullProverTest.TOKEN_DECIMALS).send({
|
|
89
|
+
from: this.wallets[0].getAddress()
|
|
90
|
+
}).deployed();
|
|
89
91
|
this.logger.verbose(`Token deployed to ${asset.address}`);
|
|
90
92
|
return {
|
|
91
93
|
tokenContractAddress: asset.address
|
|
@@ -94,8 +96,10 @@ const { E2E_DATA_PATH: dataPath } = process.env;
|
|
|
94
96
|
// Restore the token contract state.
|
|
95
97
|
this.fakeProofsAsset = await TokenContract.at(tokenContractAddress, this.wallets[0]);
|
|
96
98
|
this.logger.verbose(`Token contract address: ${this.fakeProofsAsset.address}`);
|
|
97
|
-
this.tokenSim = new TokenSimulator(this.fakeProofsAsset, this.wallets[0], this.logger, this.accounts.map((a)=>a.address));
|
|
98
|
-
expect(await this.fakeProofsAsset.methods.get_admin().simulate(
|
|
99
|
+
this.tokenSim = new TokenSimulator(this.fakeProofsAsset, this.wallets[0], this.wallets[0].getAddress(), this.logger, this.accounts.map((a)=>a.address));
|
|
100
|
+
expect(await this.fakeProofsAsset.methods.get_admin().simulate({
|
|
101
|
+
from: this.accounts[0].address
|
|
102
|
+
})).toBe(this.accounts[0].address.toBigInt());
|
|
99
103
|
});
|
|
100
104
|
}
|
|
101
105
|
async setup() {
|
|
@@ -253,9 +257,13 @@ const { E2E_DATA_PATH: dataPath } = process.env;
|
|
|
253
257
|
const privateAmount = 10000n;
|
|
254
258
|
const publicAmount = 10000n;
|
|
255
259
|
this.logger.verbose(`Minting ${privateAmount + publicAmount} publicly...`);
|
|
256
|
-
await asset.methods.mint_to_public(accounts[0].address, privateAmount + publicAmount).send(
|
|
260
|
+
await asset.methods.mint_to_public(accounts[0].address, privateAmount + publicAmount).send({
|
|
261
|
+
from: accounts[0].address
|
|
262
|
+
}).wait();
|
|
257
263
|
this.logger.verbose(`Transferring ${privateAmount} to private...`);
|
|
258
|
-
await asset.methods.transfer_to_private(accounts[0].address, privateAmount).send(
|
|
264
|
+
await asset.methods.transfer_to_private(accounts[0].address, privateAmount).send({
|
|
265
|
+
from: accounts[0].address
|
|
266
|
+
}).wait();
|
|
259
267
|
this.logger.verbose(`Minting complete.`);
|
|
260
268
|
return {
|
|
261
269
|
amount: publicAmount
|
|
@@ -263,14 +271,20 @@ const { E2E_DATA_PATH: dataPath } = process.env;
|
|
|
263
271
|
}, async ({ amount })=>{
|
|
264
272
|
const { fakeProofsAsset: asset, accounts: [{ address }], tokenSim } = this;
|
|
265
273
|
tokenSim.mintPublic(address, amount);
|
|
266
|
-
const publicBalance = await asset.methods.balance_of_public(address).simulate(
|
|
274
|
+
const publicBalance = await asset.methods.balance_of_public(address).simulate({
|
|
275
|
+
from: address
|
|
276
|
+
});
|
|
267
277
|
this.logger.verbose(`Public balance of wallet 0: ${publicBalance}`);
|
|
268
278
|
expect(publicBalance).toEqual(this.tokenSim.balanceOfPublic(address));
|
|
269
279
|
tokenSim.mintPrivate(address, amount);
|
|
270
|
-
const privateBalance = await asset.methods.balance_of_private(address).simulate(
|
|
280
|
+
const privateBalance = await asset.methods.balance_of_private(address).simulate({
|
|
281
|
+
from: address
|
|
282
|
+
});
|
|
271
283
|
this.logger.verbose(`Private balance of wallet 0: ${privateBalance}`);
|
|
272
284
|
expect(privateBalance).toEqual(tokenSim.balanceOfPrivate(address));
|
|
273
|
-
const totalSupply = await asset.methods.total_supply().simulate(
|
|
285
|
+
const totalSupply = await asset.methods.total_supply().simulate({
|
|
286
|
+
from: address
|
|
287
|
+
});
|
|
274
288
|
this.logger.verbose(`Total supply: ${totalSupply}`);
|
|
275
289
|
expect(totalSupply).toEqual(tokenSim.totalSupply);
|
|
276
290
|
return Promise.resolve();
|
|
@@ -493,7 +493,9 @@ export function createSnapshotManager(testName, dataPath, config = {}, deployL1C
|
|
|
493
493
|
...instances.map((instance)=>publishInstance(sender, instance))
|
|
494
494
|
]);
|
|
495
495
|
const batch = new BatchCall(sender, calls);
|
|
496
|
-
const txReceipt = await batch.send(
|
|
496
|
+
const txReceipt = await batch.send({
|
|
497
|
+
from: accountAddressesToDeploy[0]
|
|
498
|
+
}).wait();
|
|
497
499
|
if (waitUntilProven) {
|
|
498
500
|
if (!pxeOrNode) {
|
|
499
501
|
throw new Error('Need to provide a PXE or AztecNode to wait for proven.');
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import { type AztecAddress, type Logger, type Wallet } from '@aztec/aztec.js';
|
|
2
2
|
import { TokenContract } from '@aztec/noir-contracts.js/Token';
|
|
3
|
-
export declare function deployToken(adminWallet: Wallet, initialAdminBalance: bigint, logger: Logger): Promise<TokenContract>;
|
|
4
|
-
export declare function mintTokensToPrivate(token: TokenContract, minterWallet: Wallet, recipient: AztecAddress, amount: bigint): Promise<void>;
|
|
3
|
+
export declare function deployToken(adminWallet: Wallet, deployerAddress: AztecAddress, initialAdminBalance: bigint, logger: Logger): Promise<TokenContract>;
|
|
4
|
+
export declare function mintTokensToPrivate(token: TokenContract, minter: AztecAddress, minterWallet: Wallet, recipient: AztecAddress, amount: bigint): Promise<void>;
|
|
5
5
|
export declare function expectTokenBalance(wallet: Wallet, token: TokenContract, owner: AztecAddress, expectedBalance: bigint, logger: Logger): Promise<void>;
|
|
6
|
-
export declare function mintNotes(sender: Wallet, recipient: AztecAddress, asset: TokenContract, noteAmounts: bigint[]): Promise<bigint>;
|
|
6
|
+
export declare function mintNotes(sender: Wallet, minter: AztecAddress, recipient: AztecAddress, asset: TokenContract, noteAmounts: bigint[]): Promise<bigint>;
|
|
7
7
|
//# sourceMappingURL=token_utils.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"token_utils.d.ts","sourceRoot":"","sources":["../../src/fixtures/token_utils.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,YAAY,EAAa,KAAK,MAAM,EAAE,KAAK,MAAM,EAAE,MAAM,iBAAiB,CAAC;AACzF,OAAO,EAAE,aAAa,EAAE,MAAM,gCAAgC,CAAC;AAI/D,wBAAsB,WAAW,
|
|
1
|
+
{"version":3,"file":"token_utils.d.ts","sourceRoot":"","sources":["../../src/fixtures/token_utils.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,YAAY,EAAa,KAAK,MAAM,EAAE,KAAK,MAAM,EAAE,MAAM,iBAAiB,CAAC;AACzF,OAAO,EAAE,aAAa,EAAE,MAAM,gCAAgC,CAAC;AAI/D,wBAAsB,WAAW,CAC/B,WAAW,EAAE,MAAM,EACnB,eAAe,EAAE,YAAY,EAC7B,mBAAmB,EAAE,MAAM,EAC3B,MAAM,EAAE,MAAM,0BAef;AAED,wBAAsB,mBAAmB,CACvC,KAAK,EAAE,aAAa,EACpB,MAAM,EAAE,YAAY,EACpB,YAAY,EAAE,MAAM,EACpB,SAAS,EAAE,YAAY,EACvB,MAAM,EAAE,MAAM,iBAIf;AAGD,wBAAsB,kBAAkB,CACtC,MAAM,EAAE,MAAM,EACd,KAAK,EAAE,aAAa,EACpB,KAAK,EAAE,YAAY,EACnB,eAAe,EAAE,MAAM,EACvB,MAAM,EAAE,MAAM,iBAOf;AAED,wBAAsB,SAAS,CAC7B,MAAM,EAAE,MAAM,EACd,MAAM,EAAE,YAAY,EACpB,SAAS,EAAE,YAAY,EACvB,KAAK,EAAE,aAAa,EACpB,WAAW,EAAE,MAAM,EAAE,GACpB,OAAO,CAAC,MAAM,CAAC,CAWjB"}
|