@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.
Files changed (94) hide show
  1. package/dest/bench/client_flows/benchmark.d.ts +1 -1
  2. package/dest/bench/client_flows/benchmark.d.ts.map +1 -1
  3. package/dest/bench/client_flows/client_flows_benchmark.d.ts.map +1 -1
  4. package/dest/bench/client_flows/client_flows_benchmark.js +30 -12
  5. package/dest/bench/utils.d.ts.map +1 -1
  6. package/dest/bench/utils.js +6 -2
  7. package/dest/e2e_blacklist_token_contract/blacklist_token_contract_test.d.ts +3 -0
  8. package/dest/e2e_blacklist_token_contract/blacklist_token_contract_test.d.ts.map +1 -1
  9. package/dest/e2e_blacklist_token_contract/blacklist_token_contract_test.js +47 -15
  10. package/dest/e2e_cross_chain_messaging/cross_chain_messaging_test.d.ts +2 -1
  11. package/dest/e2e_cross_chain_messaging/cross_chain_messaging_test.d.ts.map +1 -1
  12. package/dest/e2e_cross_chain_messaging/cross_chain_messaging_test.js +12 -9
  13. package/dest/e2e_deploy_contract/deploy_test.d.ts +1 -1
  14. package/dest/e2e_deploy_contract/deploy_test.d.ts.map +1 -1
  15. package/dest/e2e_deploy_contract/deploy_test.js +5 -4
  16. package/dest/e2e_fees/bridging_race.notest.js +3 -1
  17. package/dest/e2e_fees/fees_test.d.ts +2 -2
  18. package/dest/e2e_fees/fees_test.d.ts.map +1 -1
  19. package/dest/e2e_fees/fees_test.js +29 -33
  20. package/dest/e2e_nested_contract/nested_contract_test.d.ts +3 -3
  21. package/dest/e2e_nested_contract/nested_contract_test.d.ts.map +1 -1
  22. package/dest/e2e_nested_contract/nested_contract_test.js +17 -12
  23. package/dest/e2e_p2p/p2p_network.d.ts +2 -1
  24. package/dest/e2e_p2p/p2p_network.d.ts.map +1 -1
  25. package/dest/e2e_p2p/p2p_network.js +5 -1
  26. package/dest/e2e_p2p/shared.d.ts +2 -2
  27. package/dest/e2e_p2p/shared.d.ts.map +1 -1
  28. package/dest/e2e_p2p/shared.js +7 -3
  29. package/dest/e2e_token_contract/token_contract_test.d.ts +8 -4
  30. package/dest/e2e_token_contract/token_contract_test.d.ts.map +1 -1
  31. package/dest/e2e_token_contract/token_contract_test.js +48 -23
  32. package/dest/fixtures/e2e_prover_test.d.ts.map +1 -1
  33. package/dest/fixtures/e2e_prover_test.js +22 -8
  34. package/dest/fixtures/snapshot_manager.js +3 -1
  35. package/dest/fixtures/token_utils.d.ts +3 -3
  36. package/dest/fixtures/token_utils.d.ts.map +1 -1
  37. package/dest/fixtures/token_utils.js +13 -7
  38. package/dest/fixtures/utils.d.ts +4 -3
  39. package/dest/fixtures/utils.d.ts.map +1 -1
  40. package/dest/fixtures/utils.js +14 -6
  41. package/dest/sample-dapp/connect.d.mts +2 -0
  42. package/dest/sample-dapp/connect.d.mts.map +1 -0
  43. package/dest/sample-dapp/connect.js +1 -1
  44. package/dest/sample-dapp/contracts.d.mts +3 -0
  45. package/dest/sample-dapp/contracts.d.mts.map +1 -0
  46. package/dest/sample-dapp/contracts.js +1 -1
  47. package/dest/sample-dapp/deploy.d.mts +3 -0
  48. package/dest/sample-dapp/deploy.d.mts.map +1 -0
  49. package/dest/sample-dapp/deploy.js +4 -1
  50. package/dest/sample-dapp/index.d.mts +2 -0
  51. package/dest/sample-dapp/index.d.mts.map +1 -0
  52. package/dest/sample-dapp/index.js +18 -7
  53. package/dest/shared/cross_chain_test_harness.d.ts +6 -3
  54. package/dest/shared/cross_chain_test_harness.d.ts.map +1 -1
  55. package/dest/shared/cross_chain_test_harness.js +50 -20
  56. package/dest/shared/gas_portal_test_harness.d.ts +3 -3
  57. package/dest/shared/gas_portal_test_harness.d.ts.map +1 -1
  58. package/dest/shared/gas_portal_test_harness.js +9 -5
  59. package/dest/shared/uniswap_l1_l2.d.ts.map +1 -1
  60. package/dest/shared/uniswap_l1_l2.js +37 -14
  61. package/dest/simulators/lending_simulator.js +6 -2
  62. package/dest/simulators/token_simulator.d.ts +2 -1
  63. package/dest/simulators/token_simulator.d.ts.map +1 -1
  64. package/dest/simulators/token_simulator.js +12 -4
  65. package/dest/spartan/setup_test_wallets.d.ts +2 -0
  66. package/dest/spartan/setup_test_wallets.d.ts.map +1 -1
  67. package/dest/spartan/setup_test_wallets.js +15 -5
  68. package/package.json +35 -35
  69. package/src/bench/client_flows/benchmark.ts +1 -1
  70. package/src/bench/client_flows/client_flows_benchmark.ts +20 -11
  71. package/src/bench/utils.ts +4 -2
  72. package/src/e2e_blacklist_token_contract/blacklist_token_contract_test.ts +28 -17
  73. package/src/e2e_cross_chain_messaging/cross_chain_messaging_test.ts +13 -8
  74. package/src/e2e_deploy_contract/deploy_test.ts +5 -5
  75. package/src/e2e_fees/bridging_race.notest.ts +1 -1
  76. package/src/e2e_fees/fees_test.ts +37 -46
  77. package/src/e2e_nested_contract/nested_contract_test.ts +16 -11
  78. package/src/e2e_p2p/p2p_network.ts +6 -2
  79. package/src/e2e_p2p/shared.ts +4 -2
  80. package/src/e2e_token_contract/token_contract_test.ts +38 -36
  81. package/src/fixtures/e2e_prover_test.ts +13 -7
  82. package/src/fixtures/snapshot_manager.ts +1 -1
  83. package/src/fixtures/token_utils.ts +13 -6
  84. package/src/fixtures/utils.ts +14 -7
  85. package/src/sample-dapp/connect.mjs +1 -1
  86. package/src/sample-dapp/contracts.mjs +1 -1
  87. package/src/sample-dapp/deploy.mjs +3 -3
  88. package/src/sample-dapp/index.mjs +11 -7
  89. package/src/shared/cross_chain_test_harness.ts +31 -18
  90. package/src/shared/gas_portal_test_harness.ts +6 -6
  91. package/src/shared/uniswap_l1_l2.ts +19 -15
  92. package/src/simulators/lending_simulator.ts +2 -2
  93. package/src/simulators/token_simulator.ts +12 -3
  94. 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(address, amount) {
121
- const claim = await this.feeJuiceBridgeTestHarness.prepareTokensOnL1(amount, address);
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(address, amount, secret, index).send().wait();
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
- await mintTokensToPrivate(this.bananaCoin, this.aliceWallet, address, amount);
128
- const balanceAfter = await this.bananaCoin.methods.balance_of_private(address).simulate();
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.wallets.map((w)=>w.getAddress());
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().deployed();
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().deployed();
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().wait();
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, type CompleteAddress, type Logger, type PXE } from '@aztec/aztec.js';
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
- wallets: AccountWallet[];
10
- accounts: CompleteAddress[];
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,KAAK,eAAe,EAAE,KAAK,MAAM,EAAE,KAAK,GAAG,EAAgB,MAAM,iBAAiB,CAAC;AAChH,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,OAAO,EAAE,aAAa,EAAE,CAAM;IAC9B,QAAQ,EAAE,eAAe,EAAE,CAAM;IACjC,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;IAsBlB,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;CAc3B"}
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
- wallets;
12
- accounts;
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
- this.wallets = await Promise.all(deployedAccounts.map((a)=>getSchnorrWallet(pxe, a.address, a.signingKey)));
31
- this.accounts = await pxe.getRegisteredAccounts();
32
- this.wallets.forEach((w, i)=>this.logger.verbose(`Wallet ${i} address: ${w.getAddress()}`));
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.wallets[0], this.accounts.slice(0, 2));
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.wallets[0]).send().deployed();
50
- const childContract = await ChildContract.deploy(this.wallets[0]).send().deployed();
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.wallets[0]);
57
- this.childContract = await ChildContract.at(childContractAddress, this.wallets[0]);
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":"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"}
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,EAAE,YAAY,EAAkB,MAAM,iBAAiB,CAAC;AAChG,OAAO,EAKL,KAAK,QAAQ,EACb,cAAc,EACd,KAAK,UAAU,EAGhB,MAAM,iBAAiB,CAAC;AACzB,OAAO,EAAE,YAAY,EAAE,MAAM,sBAAsB,CAAC;AAEpD,OAAO,EAAE,KAAK,MAAM,EAAgB,MAAM,uBAAuB,CAAC;AAClE,OAAO,EAAa,eAAe,EAAE,UAAU,EAAE,mBAAmB,EAAgB,MAAM,qBAAqB,CAAC;AAChH,OAAO,EAAE,YAAY,EAAE,MAAM,oCAAoC,CAAC;AAClE,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,sBAAsB,CAAC;AAG1D,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,qBAAqB,CAAC;AAK9D,OAAO,EAAE,KAAK,qBAAqB,EAA2B,MAAM,MAAM,CAAC;AAQ3E,OAAO,EAEL,KAAK,iBAAiB,EAGvB,MAAM,iCAAiC,CAAC;AAOzC,eAAO,MAAM,mBAAmB,QAA0C,CAAC;AAE3E,eAAO,MAAM,qCAAqC;;;;CAIjD,CAAC;AAEF,qBAAa,cAAc;IAyBhB,gBAAgB,EAAE,MAAM;IACxB,YAAY,EAAE,MAAM;IACpB,kBAAkB,EAAE,MAAM;IAE1B,aAAa;IAEpB,OAAO,CAAC,WAAW,CAAC;IA9BtB,OAAO,CAAC,eAAe,CAAmB;IACnC,qBAAqB,EAAE,KAAK,MAAM,EAAE,CAAC;IACrC,WAAW;;;;;;;;;;wTAlBP,CAAC;sBAAsB,CAAC;;;;;;MAkBhB;IAEZ,MAAM,EAAE,MAAM,CAAC;IACf,OAAO,EAAG,YAAY,CAAC;IAEvB,GAAG,EAAG,iBAAiB,CAAC;IACxB,mBAAmB,EAAE,KAAK,MAAM,EAAE,EAAE,CAAM;IAC1C,kBAAkB,EAAE,MAAM,EAAE,CAAM;IAClC,iBAAiB,EAAE,MAAM,EAAE,CAAM;IACjC,UAAU,EAAE,QAAQ,EAAE,CAAM;IAE5B,gBAAgB,EAAE,kBAAkB,EAAE,CAAM;IAC5C,mBAAmB,EAAE,kBAAkB,EAAE,CAAM;IAE/C,MAAM,CAAC,EAAE,0BAA0B,CAAC;IACpC,qBAAqB,CAAC,EAAE,YAAY,CAAC;IACrC,YAAY,CAAC,EAAE,YAAY,CAAC;IAE5B,aAAa,CAAC,EAAE,aAAa,CAAC;gBAGnC,QAAQ,EAAE,MAAM,EACT,gBAAgB,EAAE,MAAM,EACxB,YAAY,EAAE,MAAM,EACpB,kBAAkB,EAAE,MAAM,EACjC,sBAAsB,EAAE,eAAe,EAChC,aAAa,SAAI,EAEhB,WAAW,CAAC,EAAE,MAAM,YAAA,EAC5B,eAAe,CAAC,EAAE,OAAO,EACzB,sBAAsB,CAAC,EAAE,OAAO;WAiDrB,MAAM,CAAC,EAClB,QAAQ,EACR,aAAa,EACb,kBAAkB,EAClB,QAAQ,EACR,WAAW,EACX,aAAa,EACb,eAAe,EACf,sBAAsB,GACvB,EAAE;QACD,QAAQ,EAAE,MAAM,CAAC;QACjB,aAAa,EAAE,MAAM,CAAC;QACtB,kBAAkB,EAAE,MAAM,CAAC;QAC3B,QAAQ,CAAC,EAAE,MAAM,CAAC;QAClB,WAAW,CAAC,EAAE,MAAM,CAAC;QACrB,aAAa,CAAC,EAAE,OAAO,CAAC,eAAe,CAAC,CAAC;QACzC,eAAe,CAAC,EAAE,OAAO,CAAC;QAC1B,sBAAsB,CAAC,EAAE,OAAO,CAAC;KAClC;IAwBD,IAAI,aAAa,uBAKhB;IAEK,gBAAgB;IActB,aAAa;;;IAkBP,kBAAkB;IA2ElB,YAAY;IAaZ,kBAAkB;IAsBlB,iBAAiB;IAgBjB,WAAW;;;;YAIH,YAAY;IAQpB,KAAK;IAcL,SAAS,CAAC,KAAK,EAAE,gBAAgB,EAAE;IAanC,QAAQ;IAMR,YAAY,IAAI,OAAO,CAAC;QAC5B,MAAM,EAAE,cAAc,CAAC;QACvB,eAAe,EAAE,qBAAqB,CAAC,OAAO,UAAU,EAAE,UAAU,CAAC,CAAC;QACtE,gBAAgB,EAAE,qBAAqB,CAAC,OAAO,mBAAmB,EAAE,UAAU,CAAC,CAAC;QAChF,YAAY,EAAE,qBAAqB,CAAC,OAAO,eAAe,EAAE,UAAU,CAAC,CAAC;KACzE,CAAC;CA8BH"}
@@ -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().deployed();
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
  };
@@ -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,EAEL,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,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"}
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"}
@@ -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, type AztecNode, type CompleteAddress, type Logger } from '@aztec/aztec.js';
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,KAAK,SAAS,EAAE,KAAK,eAAe,EAAE,KAAK,MAAM,EAAgB,MAAM,iBAAiB,CAAC;AACtH,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,OAAO,EAAE,aAAa,EAAE,CAAM;IAC9B,QAAQ,EAAE,eAAe,EAAE,CAAM;IACjC,KAAK,EAAG,aAAa,CAAC;IACtB,QAAQ,EAAG,cAAc,CAAC;IAC1B,UAAU,EAAG,sBAAsB,CAAC;IACpC,IAAI,EAAG,SAAS,CAAC;gBAEL,QAAQ,EAAE,MAAM;IAO5B;;;;OAIG;IACG,kBAAkB;IAiElB,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;CAyCxB"}
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
- this.wallets = await Promise.all(deployedAccounts.map((a)=>getSchnorrWallet(pxe, a.address, a.signingKey)));
38
- this.accounts = this.wallets.map((w)=>w.getCompleteAddress());
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.wallets[0], this.accounts.slice(0, 2));
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.wallets[0], this.accounts[0], TokenContractTest.TOKEN_NAME, TokenContractTest.TOKEN_SYMBOL, TokenContractTest.TOKEN_DECIMALS).send().deployed();
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.wallets[0]).send().deployed();
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.wallets[0]);
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.wallets[0], this.logger, this.accounts.map((a)=>a.address));
60
- this.badAccount = await InvalidAccountContract.at(badAccountAddress, this.wallets[0]);
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()).toBe(this.accounts[0].address.toBigInt());
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, wallets } = this;
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(wallets[0].getAddress(), amount).send().wait();
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, wallets[0], wallets[0].getAddress(), amount);
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, accounts: [{ address }], tokenSim } = this;
90
- tokenSim.mintPublic(address, amount);
91
- const publicBalance = await asset.methods.balance_of_public(address).simulate();
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(address));
94
- tokenSim.mintPrivate(address, amount);
95
- const privateBalance = await asset.methods.balance_of_private(address).simulate();
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(address));
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;IAqDlB,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;CA8CxB"}
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().deployed();
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()).toBe(this.accounts[0].address.toBigInt());
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().wait();
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().wait();
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().wait();
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,CAAC,WAAW,EAAE,MAAM,EAAE,mBAAmB,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,0BAcjG;AAED,wBAAsB,mBAAmB,CACvC,KAAK,EAAE,aAAa,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,SAAS,EAAE,YAAY,EACvB,KAAK,EAAE,aAAa,EACpB,WAAW,EAAE,MAAM,EAAE,GACpB,OAAO,CAAC,MAAM,CAAC,CAWjB"}
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"}