@aztec/end-to-end 4.0.4 → 4.1.0-rc.2

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 (71) hide show
  1. package/dest/bench/client_flows/client_flows_benchmark.d.ts +1 -1
  2. package/dest/bench/client_flows/client_flows_benchmark.d.ts.map +1 -1
  3. package/dest/bench/client_flows/client_flows_benchmark.js +40 -9
  4. package/dest/bench/utils.d.ts +1 -1
  5. package/dest/bench/utils.d.ts.map +1 -1
  6. package/dest/bench/utils.js +6 -3
  7. package/dest/e2e_blacklist_token_contract/blacklist_token_contract_test.d.ts +1 -1
  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 +14 -14
  10. package/dest/e2e_fees/fees_test.d.ts +1 -1
  11. package/dest/e2e_fees/fees_test.d.ts.map +1 -1
  12. package/dest/e2e_fees/fees_test.js +45 -6
  13. package/dest/e2e_nested_contract/nested_contract_test.d.ts +1 -1
  14. package/dest/e2e_nested_contract/nested_contract_test.d.ts.map +1 -1
  15. package/dest/e2e_nested_contract/nested_contract_test.js +4 -6
  16. package/dest/e2e_p2p/p2p_network.d.ts +1 -1
  17. package/dest/e2e_p2p/p2p_network.d.ts.map +1 -1
  18. package/dest/e2e_p2p/p2p_network.js +2 -3
  19. package/dest/e2e_p2p/shared.js +1 -1
  20. package/dest/e2e_token_contract/token_contract_test.d.ts +1 -1
  21. package/dest/e2e_token_contract/token_contract_test.d.ts.map +1 -1
  22. package/dest/e2e_token_contract/token_contract_test.js +11 -11
  23. package/dest/fixtures/authwit_proxy.d.ts +3 -3
  24. package/dest/fixtures/authwit_proxy.d.ts.map +1 -1
  25. package/dest/fixtures/e2e_prover_test.d.ts +1 -1
  26. package/dest/fixtures/e2e_prover_test.d.ts.map +1 -1
  27. package/dest/fixtures/e2e_prover_test.js +6 -6
  28. package/dest/fixtures/setup.d.ts +1 -1
  29. package/dest/fixtures/setup.d.ts.map +1 -1
  30. package/dest/fixtures/setup.js +3 -3
  31. package/dest/fixtures/token_utils.d.ts +1 -1
  32. package/dest/fixtures/token_utils.d.ts.map +1 -1
  33. package/dest/fixtures/token_utils.js +2 -2
  34. package/dest/shared/cross_chain_test_harness.d.ts +1 -1
  35. package/dest/shared/cross_chain_test_harness.d.ts.map +1 -1
  36. package/dest/shared/cross_chain_test_harness.js +13 -13
  37. package/dest/shared/gas_portal_test_harness.js +2 -2
  38. package/dest/shared/submit-transactions.js +1 -1
  39. package/dest/shared/uniswap_l1_l2.d.ts +1 -1
  40. package/dest/shared/uniswap_l1_l2.d.ts.map +1 -1
  41. package/dest/shared/uniswap_l1_l2.js +5 -5
  42. package/dest/simulators/lending_simulator.d.ts +1 -1
  43. package/dest/simulators/lending_simulator.d.ts.map +1 -1
  44. package/dest/simulators/lending_simulator.js +2 -2
  45. package/dest/simulators/token_simulator.d.ts +1 -1
  46. package/dest/simulators/token_simulator.d.ts.map +1 -1
  47. package/dest/simulators/token_simulator.js +2 -2
  48. package/dest/spartan/setup_test_wallets.d.ts +1 -1
  49. package/dest/spartan/setup_test_wallets.d.ts.map +1 -1
  50. package/dest/spartan/setup_test_wallets.js +4 -3
  51. package/dest/test-wallet/worker_wallet_schema.d.ts +5 -2
  52. package/dest/test-wallet/worker_wallet_schema.d.ts.map +1 -1
  53. package/package.json +40 -40
  54. package/src/bench/client_flows/client_flows_benchmark.ts +70 -30
  55. package/src/bench/utils.ts +7 -2
  56. package/src/e2e_blacklist_token_contract/blacklist_token_contract_test.ts +18 -14
  57. package/src/e2e_fees/fees_test.ts +56 -5
  58. package/src/e2e_nested_contract/nested_contract_test.ts +6 -4
  59. package/src/e2e_p2p/p2p_network.ts +3 -2
  60. package/src/e2e_p2p/shared.ts +1 -1
  61. package/src/e2e_token_contract/token_contract_test.ts +16 -8
  62. package/src/fixtures/e2e_prover_test.ts +11 -5
  63. package/src/fixtures/setup.ts +4 -2
  64. package/src/fixtures/token_utils.ts +4 -2
  65. package/src/shared/cross_chain_test_harness.ts +13 -9
  66. package/src/shared/gas_portal_test_harness.ts +1 -1
  67. package/src/shared/submit-transactions.ts +1 -1
  68. package/src/shared/uniswap_l1_l2.ts +6 -4
  69. package/src/simulators/lending_simulator.ts +4 -2
  70. package/src/simulators/token_simulator.ts +6 -2
  71. package/src/spartan/setup_test_wallets.ts +6 -9
@@ -323,8 +323,9 @@ export class P2PNetworkTest {
323
323
  throw new Error('Call setupAccount before deploying spam contract');
324
324
  }
325
325
 
326
- const spamContract = await SpamContract.deploy(this.wallet).send({ from: this.defaultAccountAddress! });
327
- this.spamContract = spamContract;
326
+ ({ contract: this.spamContract } = await SpamContract.deploy(this.wallet).send({
327
+ from: this.defaultAccountAddress!,
328
+ }));
328
329
  }
329
330
 
330
331
  async removeInitialNode() {
@@ -41,7 +41,7 @@ export const submitComplexTxsTo = async (
41
41
  const spamCount = 15;
42
42
  for (let i = 0; i < numTxs; i++) {
43
43
  const method = spamContract.methods.spam(seed + BigInt(i * spamCount), spamCount, !!opts.callPublic);
44
- const txHash = await method.send({ from, wait: NO_WAIT });
44
+ const { txHash } = await method.send({ from, wait: NO_WAIT });
45
45
  logger.info(`Tx sent with hash ${txHash.toString()}`);
46
46
  txs.push(txHash);
47
47
  }
@@ -81,24 +81,28 @@ export class TokenContractTest {
81
81
  await publicDeployAccounts(this.wallet, [this.adminAddress, this.account1Address]);
82
82
 
83
83
  this.logger.verbose(`Deploying TokenContract...`);
84
- this.asset = await TokenContract.deploy(
84
+ ({ contract: this.asset } = await TokenContract.deploy(
85
85
  this.wallet,
86
86
  this.adminAddress,
87
87
  TokenContractTest.TOKEN_NAME,
88
88
  TokenContractTest.TOKEN_SYMBOL,
89
89
  TokenContractTest.TOKEN_DECIMALS,
90
- ).send({ from: this.adminAddress });
90
+ ).send({ from: this.adminAddress }));
91
91
  this.logger.verbose(`Token deployed to ${this.asset.address}`);
92
92
 
93
93
  this.logger.verbose(`Deploying bad account...`);
94
- this.badAccount = await InvalidAccountContract.deploy(this.wallet).send({ from: this.adminAddress });
94
+ ({ contract: this.badAccount } = await InvalidAccountContract.deploy(this.wallet).send({
95
+ from: this.adminAddress,
96
+ }));
95
97
  this.logger.verbose(`Deployed to ${this.badAccount.address}.`);
96
98
 
97
99
  // Deploy a proxy contract for "on behalf of other" tests. The note owner must be the tx sender
98
100
  // (so their notes are in scope), but msg_sender in the target must differ from the note owner
99
101
  // to trigger authwit validation. The proxy forwards calls so that msg_sender != tx sender.
100
102
  this.logger.verbose(`Deploying generic proxy...`);
101
- this.authwitProxy = await GenericProxyContract.deploy(this.wallet).send({ from: this.adminAddress });
103
+ ({ contract: this.authwitProxy } = await GenericProxyContract.deploy(this.wallet).send({
104
+ from: this.adminAddress,
105
+ }));
102
106
  this.logger.verbose(`Deployed to ${this.authwitProxy.address}.`);
103
107
 
104
108
  this.tokenSim = new TokenSimulator(this.asset, this.wallet, this.adminAddress, this.logger, [
@@ -106,7 +110,7 @@ export class TokenContractTest {
106
110
  this.account1Address,
107
111
  ]);
108
112
 
109
- expect(await this.asset.methods.get_admin().simulate({ from: this.adminAddress })).toBe(
113
+ expect((await this.asset.methods.get_admin().simulate({ from: this.adminAddress })).result).toBe(
110
114
  this.adminAddress.toBigInt(),
111
115
  );
112
116
  }
@@ -140,7 +144,9 @@ export class TokenContractTest {
140
144
  await asset.methods.mint_to_public(adminAddress, amount).send({ from: adminAddress });
141
145
  tokenSim.mintPublic(adminAddress, amount);
142
146
 
143
- const publicBalance = await asset.methods.balance_of_public(adminAddress).simulate({ from: adminAddress });
147
+ const { result: publicBalance } = await asset.methods
148
+ .balance_of_public(adminAddress)
149
+ .simulate({ from: adminAddress });
144
150
  this.logger.verbose(`Public balance of wallet 0: ${publicBalance}`);
145
151
  expect(publicBalance).toEqual(this.tokenSim.balanceOfPublic(adminAddress));
146
152
 
@@ -148,11 +154,13 @@ export class TokenContractTest {
148
154
  await mintTokensToPrivate(asset, adminAddress, adminAddress, amount);
149
155
  tokenSim.mintPrivate(adminAddress, amount);
150
156
 
151
- const privateBalance = await asset.methods.balance_of_private(adminAddress).simulate({ from: adminAddress });
157
+ const { result: privateBalance } = await asset.methods
158
+ .balance_of_private(adminAddress)
159
+ .simulate({ from: adminAddress });
152
160
  this.logger.verbose(`Private balance of wallet 0: ${privateBalance}`);
153
161
  expect(privateBalance).toEqual(tokenSim.balanceOfPrivate(adminAddress));
154
162
 
155
- const totalSupply = await asset.methods.total_supply().simulate({ from: adminAddress });
163
+ const { result: totalSupply } = await asset.methods.total_supply().simulate({ from: adminAddress });
156
164
  this.logger.verbose(`Total supply: ${totalSupply}`);
157
165
  expect(totalSupply).toEqual(tokenSim.totalSupply);
158
166
 
@@ -106,7 +106,9 @@ export class FullProverTest {
106
106
  await publicDeployAccounts(this.wallet, this.accounts.slice(0, 2));
107
107
 
108
108
  this.logger.info('Applying base setup: deploying token contract');
109
- const { contract: asset, instance } = await TokenContract.deploy(
109
+ const {
110
+ receipt: { contract: asset, instance },
111
+ } = await TokenContract.deploy(
110
112
  this.wallet,
111
113
  this.accounts[0],
112
114
  FullProverTest.TOKEN_NAME,
@@ -121,7 +123,7 @@ export class FullProverTest {
121
123
 
122
124
  this.tokenSim = new TokenSimulator(this.fakeProofsAsset, this.wallet, this.accounts[0], this.logger, this.accounts);
123
125
 
124
- expect(await this.fakeProofsAsset.methods.get_admin().simulate({ from: this.accounts[0] })).toBe(
126
+ expect((await this.fakeProofsAsset.methods.get_admin().simulate({ from: this.accounts[0] })).result).toBe(
125
127
  this.accounts[0].toBigInt(),
126
128
  );
127
129
  }
@@ -310,16 +312,20 @@ export class FullProverTest {
310
312
  } = this;
311
313
  tokenSim.mintPublic(address, publicAmount);
312
314
 
313
- const publicBalance = await fakeProofsAsset.methods.balance_of_public(address).simulate({ from: address });
315
+ const { result: publicBalance } = await fakeProofsAsset.methods
316
+ .balance_of_public(address)
317
+ .simulate({ from: address });
314
318
  this.logger.verbose(`Public balance of wallet 0: ${publicBalance}`);
315
319
  expect(publicBalance).toEqual(this.tokenSim.balanceOfPublic(address));
316
320
 
317
321
  tokenSim.mintPrivate(address, publicAmount);
318
- const privateBalance = await fakeProofsAsset.methods.balance_of_private(address).simulate({ from: address });
322
+ const { result: privateBalance } = await fakeProofsAsset.methods
323
+ .balance_of_private(address)
324
+ .simulate({ from: address });
319
325
  this.logger.verbose(`Private balance of wallet 0: ${privateBalance}`);
320
326
  expect(privateBalance).toEqual(tokenSim.balanceOfPrivate(address));
321
327
 
322
- const totalSupply = await fakeProofsAsset.methods.total_supply().simulate({ from: address });
328
+ const { result: totalSupply } = await fakeProofsAsset.methods.total_supply().simulate({ from: address });
323
329
  this.logger.verbose(`Total supply: ${totalSupply}`);
324
330
  expect(totalSupply).toEqual(tokenSim.totalSupply);
325
331
  }
@@ -753,7 +753,9 @@ export function getBalancesFn(
753
753
  ): (...addresses: (AztecAddress | { address: AztecAddress })[]) => Promise<bigint[]> {
754
754
  const balances = async (...addressLikes: (AztecAddress | { address: AztecAddress })[]) => {
755
755
  const addresses = addressLikes.map(addressLike => ('address' in addressLike ? addressLike.address : addressLike));
756
- const b = await Promise.all(addresses.map(address => method(address).simulate({ from: address })));
756
+ const b = await Promise.all(
757
+ addresses.map(async address => (await method(address).simulate({ from: address })).result),
758
+ );
757
759
  const debugString = `${symbol} balances: ${addresses.map((address, i) => `${address}: ${b[i]}`).join(', ')}`;
758
760
  logger.verbose(debugString);
759
761
  return b;
@@ -871,7 +873,7 @@ export async function publicDeployAccounts(
871
873
 
872
874
  const batch = new BatchCall(wallet, calls);
873
875
 
874
- const txReceipt = await batch.send({ from: accountsToDeploy[0] });
876
+ const { receipt: txReceipt } = await batch.send({ from: accountsToDeploy[0] });
875
877
  if (waitUntilProven) {
876
878
  if (!node) {
877
879
  throw new Error('Need to provide an AztecNode to wait for proven.');
@@ -6,7 +6,9 @@ import { TokenContract } from '@aztec/noir-contracts.js/Token';
6
6
 
7
7
  export async function deployToken(wallet: Wallet, admin: AztecAddress, initialAdminBalance: bigint, logger: Logger) {
8
8
  logger.info(`Deploying Token contract...`);
9
- const { contract, instance } = await TokenContract.deploy(wallet, admin, 'TokenName', 'TokenSymbol', 18).send({
9
+ const {
10
+ receipt: { contract, instance },
11
+ } = await TokenContract.deploy(wallet, admin, 'TokenName', 'TokenSymbol', 18).send({
10
12
  from: admin,
11
13
  wait: { returnReceipt: true },
12
14
  });
@@ -38,7 +40,7 @@ export async function expectTokenBalance(
38
40
  ) {
39
41
  // Then check the balance
40
42
  const contractWithWallet = TokenContract.at(token.address, wallet);
41
- const balance = await contractWithWallet.methods.balance_of_private(owner).simulate({ from: owner });
43
+ const { result: balance } = await contractWithWallet.methods.balance_of_private(owner).simulate({ from: owner });
42
44
  logger.info(`Account ${owner} balance: ${balance}`);
43
45
  expect(balance).toBe(expectedBalance);
44
46
  }
@@ -73,22 +73,26 @@ export async function deployAndInitializeTokenAndBridgeContracts(
73
73
  });
74
74
 
75
75
  // deploy l2 token
76
- const token = await TokenContract.deploy(wallet, owner, 'TokenName', 'TokenSymbol', 18).send({ from: owner });
76
+ const { contract: token } = await TokenContract.deploy(wallet, owner, 'TokenName', 'TokenSymbol', 18).send({
77
+ from: owner,
78
+ });
77
79
 
78
80
  // deploy l2 token bridge and attach to the portal
79
- const bridge = await TokenBridgeContract.deploy(wallet, token.address, tokenPortalAddress).send({ from: owner });
81
+ const { contract: bridge } = await TokenBridgeContract.deploy(wallet, token.address, tokenPortalAddress).send({
82
+ from: owner,
83
+ });
80
84
 
81
- if ((await token.methods.get_admin().simulate({ from: owner })) !== owner.toBigInt()) {
85
+ if ((await token.methods.get_admin().simulate({ from: owner })).result !== owner.toBigInt()) {
82
86
  throw new Error(`Token admin is not ${owner}`);
83
87
  }
84
88
 
85
- if (!(await bridge.methods.get_config().simulate({ from: owner })).token.equals(token.address)) {
89
+ if (!(await bridge.methods.get_config().simulate({ from: owner })).result.token.equals(token.address)) {
86
90
  throw new Error(`Bridge token is not ${token.address}`);
87
91
  }
88
92
 
89
93
  // make the bridge a minter on the token:
90
94
  await token.methods.set_minter(bridge.address, true).send({ from: owner });
91
- if ((await token.methods.is_minter(bridge.address).simulate({ from: owner })) === 1n) {
95
+ if ((await token.methods.is_minter(bridge.address).simulate({ from: owner })).result === 1n) {
92
96
  throw new Error(`Bridge is not a minter`);
93
97
  }
94
98
 
@@ -269,7 +273,7 @@ export class CrossChainTestHarness {
269
273
  authwitNonce: Fr = Fr.ZERO,
270
274
  authWitness: AuthWitness,
271
275
  ): Promise<TxReceipt> {
272
- const withdrawReceipt = await this.l2Bridge.methods
276
+ const { receipt: withdrawReceipt } = await this.l2Bridge.methods
273
277
  .exit_to_l1_private(this.l2Token.address, this.ethAccount, withdrawAmount, EthAddress.ZERO, authwitNonce)
274
278
  .send({ authWitnesses: [authWitness], from: this.ownerAddress });
275
279
 
@@ -277,7 +281,7 @@ export class CrossChainTestHarness {
277
281
  }
278
282
 
279
283
  async withdrawPublicFromAztecToL1(withdrawAmount: bigint, authwitNonce: Fr = Fr.ZERO): Promise<TxReceipt> {
280
- const withdrawReceipt = await this.l2Bridge.methods
284
+ const { receipt: withdrawReceipt } = await this.l2Bridge.methods
281
285
  .exit_to_l1_public(this.ethAccount, withdrawAmount, EthAddress.ZERO, authwitNonce)
282
286
  .send({ from: this.ownerAddress });
283
287
 
@@ -285,7 +289,7 @@ export class CrossChainTestHarness {
285
289
  }
286
290
 
287
291
  async getL2PrivateBalanceOf(owner: AztecAddress) {
288
- return await this.l2Token.methods.balance_of_private(owner).simulate({ from: owner });
292
+ return (await this.l2Token.methods.balance_of_private(owner).simulate({ from: owner })).result;
289
293
  }
290
294
 
291
295
  async expectPrivateBalanceOnL2(owner: AztecAddress, expectedBalance: bigint) {
@@ -295,7 +299,7 @@ export class CrossChainTestHarness {
295
299
  }
296
300
 
297
301
  async getL2PublicBalanceOf(owner: AztecAddress) {
298
- return await this.l2Token.methods.balance_of_public(owner).simulate({ from: this.ownerAddress });
302
+ return (await this.l2Token.methods.balance_of_public(owner).simulate({ from: this.ownerAddress })).result;
299
303
  }
300
304
 
301
305
  async expectPublicBalanceOnL2(owner: AztecAddress, expectedBalance: bigint) {
@@ -131,7 +131,7 @@ export class GasBridgingTestHarness implements IGasBridgingTestHarness {
131
131
  }
132
132
 
133
133
  async getL2PublicBalanceOf(owner: AztecAddress) {
134
- return await this.feeJuice.methods.balance_of_public(owner).simulate({ from: owner });
134
+ return (await this.feeJuice.methods.balance_of_public(owner).simulate({ from: owner })).result;
135
135
  }
136
136
 
137
137
  async expectPublicBalanceOnL2(owner: AztecAddress, expectedBalance: bigint) {
@@ -19,7 +19,7 @@ export const submitTxsTo = async (
19
19
  times(numTxs, async () => {
20
20
  const accountManager = await wallet.createSchnorrAccount(Fr.random(), Fr.random(), GrumpkinScalar.random());
21
21
  const deployMethod = await accountManager.getDeployMethod();
22
- const txHash = await deployMethod.send({ from: submitter, wait: NO_WAIT });
22
+ const { txHash } = await deployMethod.send({ from: submitter, wait: NO_WAIT });
23
23
 
24
24
  logger.info(`Tx sent with hash ${txHash}`);
25
25
  const receipt: TxReceipt = await wallet.getTxReceipt(txHash);
@@ -130,7 +130,9 @@ export const uniswapL1L2TestSuite = (
130
130
  client: l1Client,
131
131
  });
132
132
  // deploy l2 uniswap contract and attach to portal
133
- uniswapL2Contract = await UniswapContract.deploy(wallet, uniswapPortalAddress).send({ from: ownerAddress });
133
+ ({ contract: uniswapL2Contract } = await UniswapContract.deploy(wallet, uniswapPortalAddress).send({
134
+ from: ownerAddress,
135
+ }));
134
136
 
135
137
  const registryAddress = (await aztecNode.getNodeInfo()).l1ContractAddresses.registryAddress;
136
138
 
@@ -195,7 +197,7 @@ export const uniswapL1L2TestSuite = (
195
197
  logger.info('Withdrawing weth to L1 and sending message to swap to dai');
196
198
  const [secretForDepositingSwappedDai, secretHashForDepositingSwappedDai] = await generateClaimSecret();
197
199
 
198
- const l2UniswapInteractionReceipt = await uniswapL2Contract.methods
200
+ const { receipt: l2UniswapInteractionReceipt } = await uniswapL2Contract.methods
199
201
  .swap_private(
200
202
  wethCrossChainHarness.l2Token.address,
201
203
  wethCrossChainHarness.l2Bridge.address,
@@ -787,7 +789,7 @@ export const uniswapL1L2TestSuite = (
787
789
  logger.info('Withdrawing weth to L1 and sending message to swap to dai');
788
790
 
789
791
  const [, secretHashForDepositingSwappedDai] = await generateClaimSecret();
790
- const withdrawReceipt = await uniswapL2Contract.methods
792
+ const { receipt: withdrawReceipt } = await uniswapL2Contract.methods
791
793
  .swap_private(
792
794
  wethCrossChainHarness.l2Token.address,
793
795
  wethCrossChainHarness.l2Bridge.address,
@@ -915,7 +917,7 @@ export const uniswapL1L2TestSuite = (
915
917
 
916
918
  // Call swap_public on L2
917
919
  const secretHashForDepositingSwappedDai = Fr.random();
918
- const withdrawReceipt = await uniswapL2Contract.methods
920
+ const { receipt: withdrawReceipt } = await uniswapL2Contract.methods
919
921
  .swap_public(
920
922
  ownerAddress,
921
923
  wethCrossChainHarness.l2Bridge.address,
@@ -186,14 +186,16 @@ export class LendingSimulator {
186
186
 
187
187
  expect(this.borrowed).toEqual(this.stableCoin.totalSupply - this.mintedOutside);
188
188
 
189
- const asset = await this.lendingContract.methods.get_asset(0).simulate({ from: this.account.address });
189
+ const { result: asset } = await this.lendingContract.methods.get_asset(0).simulate({ from: this.account.address });
190
190
 
191
191
  const interestAccumulator = asset['interest_accumulator'];
192
192
  expect(interestAccumulator).toEqual(this.accumulator);
193
193
  expect(asset['last_updated_ts']).toEqual(BigInt(this.time));
194
194
 
195
195
  for (const key of [this.account.address, AztecAddress.fromField(await this.account.key())]) {
196
- const privatePos = await this.lendingContract.methods.get_position(key).simulate({ from: this.account.address });
196
+ const { result: privatePos } = await this.lendingContract.methods
197
+ .get_position(key)
198
+ .simulate({ from: this.account.address });
197
199
  expect(new Fr(privatePos['collateral'])).toEqual(this.collateral[key.toString()] ?? Fr.ZERO);
198
200
  expect(new Fr(privatePos['static_debt'])).toEqual(this.staticDebt[key.toString()] ?? Fr.ZERO);
199
201
  expect(privatePos['debt']).toEqual(
@@ -109,7 +109,9 @@ export class TokenSimulator {
109
109
  await Promise.all(
110
110
  chunk(calls, 5).map(batch => new BatchCall(this.defaultWallet, batch).simulate({ from: this.defaultAddress })),
111
111
  )
112
- ).flat();
112
+ )
113
+ .flat()
114
+ .map(r => r.result);
113
115
  expect(results[0]).toEqual(this.totalSupply);
114
116
 
115
117
  // Check that all our balances match
@@ -123,7 +125,9 @@ export class TokenSimulator {
123
125
  const wallet = this.lookupProvider.get(address.toString());
124
126
  const asset = wallet ? this.token.withWallet(wallet) : this.token;
125
127
 
126
- const actualPrivateBalance = await asset.methods.balance_of_private(address).simulate({ from: address });
128
+ const { result: actualPrivateBalance } = await asset.methods
129
+ .balance_of_private(address)
130
+ .simulate({ from: address });
127
131
  expect(actualPrivateBalance).toEqual(this.balanceOfPrivate(address));
128
132
  }
129
133
  }
@@ -130,7 +130,8 @@ async function deployAccountWithDiagnostics(
130
130
  const deployMethod = await account.getDeployMethod();
131
131
  let txHash;
132
132
  try {
133
- txHash = await deployMethod.send({ from: AztecAddress.ZERO, fee: { paymentMethod }, wait: NO_WAIT });
133
+ const deployResult = await deployMethod.send({ from: AztecAddress.ZERO, fee: { paymentMethod }, wait: NO_WAIT });
134
+ txHash = deployResult.txHash;
134
135
  await waitForTx(aztecNode, txHash, { timeout: 2400 });
135
136
  logger.info(`${accountLabel} deployed at ${account.address}`);
136
137
  } catch (error) {
@@ -266,7 +267,7 @@ async function bridgeL1FeeJuice(
266
267
  const claim = await portal.bridgeTokensPublic(recipient, amount, true /* mint */);
267
268
 
268
269
  const isSynced = async () =>
269
- (await aztecNode.getL1ToL2MessageBlock(Fr.fromHexString(claim.messageHash))) !== undefined;
270
+ (await aztecNode.getL1ToL2MessageCheckpoint(Fr.fromHexString(claim.messageHash))) !== undefined;
270
271
  await retryUntil(isSynced, `message ${claim.messageHash} sync`, 24, 0.5);
271
272
 
272
273
  log.info(`Created a claim for ${amount} L1 fee juice to ${recipient}.`, claim);
@@ -298,13 +299,9 @@ async function deployTokenAndMint(
298
299
  logger: Logger,
299
300
  ) {
300
301
  logger.verbose(`Deploying TokenContract...`);
301
- const { contract: tokenContract } = await TokenContract.deploy(
302
- wallet,
303
- admin,
304
- TOKEN_NAME,
305
- TOKEN_SYMBOL,
306
- TOKEN_DECIMALS,
307
- ).send({
302
+ const {
303
+ receipt: { contract: tokenContract },
304
+ } = await TokenContract.deploy(wallet, admin, TOKEN_NAME, TOKEN_SYMBOL, TOKEN_DECIMALS).send({
308
305
  from: admin,
309
306
  fee: {
310
307
  paymentMethod,