@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
@@ -90,7 +90,7 @@ export class TokenSimulator {
90
90
  ];
91
91
  const results = (await Promise.all(chunk(calls, 5).map((batch)=>new BatchCall(this.defaultWallet, batch).simulate({
92
92
  from: this.defaultAddress
93
- })))).flat();
93
+ })))).flat().map((r)=>r.result);
94
94
  expect(results[0]).toEqual(this.totalSupply);
95
95
  // Check that all our balances match
96
96
  for(let i = 0; i < this.accounts.length; i++){
@@ -101,7 +101,7 @@ export class TokenSimulator {
101
101
  for (const address of this.accounts){
102
102
  const wallet = this.lookupProvider.get(address.toString());
103
103
  const asset = wallet ? this.token.withWallet(wallet) : this.token;
104
- const actualPrivateBalance = await asset.methods.balance_of_private(address).simulate({
104
+ const { result: actualPrivateBalance } = await asset.methods.balance_of_private(address).simulate({
105
105
  from: address
106
106
  });
107
107
  expect(actualPrivateBalance).toEqual(this.balanceOfPrivate(address));
@@ -40,4 +40,4 @@ export type WorkerWalletWrapper = {
40
40
  cleanup: () => Promise<void>;
41
41
  };
42
42
  export declare function createWorkerWalletClient(nodeUrl: string, proverEnabled: boolean, logger: Logger): Promise<WorkerWalletWrapper>;
43
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2V0dXBfdGVzdF93YWxsZXRzLmQudHMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvc3BhcnRhbi9zZXR1cF90ZXN0X3dhbGxldHMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQ0EsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLDJCQUEyQixDQUFDO0FBSXpELE9BQU8sRUFBRSxLQUFLLGdCQUFnQixFQUE2QixNQUFNLHFCQUFxQixDQUFDO0FBRXZGLE9BQU8sRUFBRSxLQUFLLFNBQVMsRUFBb0MsTUFBTSxzQkFBc0IsQ0FBQztBQUl4RixPQUFPLEtBQUssRUFBRSxNQUFNLEVBQUUsTUFBTSx1QkFBdUIsQ0FBQztBQUVwRCxPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0sZ0NBQWdDLENBQUM7QUFPL0QsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLCtCQUErQixDQUFDO0FBRTNELE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxpQ0FBaUMsQ0FBQztBQUUvRCxNQUFNLFdBQVcsWUFBWTtJQUMzQixTQUFTLEVBQUUsU0FBUyxDQUFDO0lBQ3JCLE1BQU0sRUFBRSxVQUFVLENBQUM7SUFDbkIsUUFBUSxFQUFFLFlBQVksRUFBRSxDQUFDO0lBQ3pCLGFBQWEsRUFBRSxhQUFhLENBQUM7SUFDN0IsaUJBQWlCLEVBQUUsWUFBWSxDQUFDO0lBQ2hDLFNBQVMsRUFBRSxNQUFNLENBQUM7SUFDbEIsZ0JBQWdCLEVBQUUsWUFBWSxDQUFDO0lBQy9CLFlBQVksRUFBRSxZQUFZLENBQUM7Q0FDNUI7QUFFRCxNQUFNLE1BQU0seUJBQXlCLEdBQUcsSUFBSSxDQUMxQyxZQUFZLEVBQ1osY0FBYyxHQUFHLGVBQWUsR0FBRyxXQUFXLEdBQUcsbUJBQW1CLENBQ3JFLENBQUM7QUFNRix3QkFBc0IsMkJBQTJCLENBQy9DLE9BQU8sRUFBRSxNQUFNLEVBQ2YsVUFBVSxFQUFFLE1BQU0sRUFDbEIsTUFBTSxFQUFFLE1BQU0sR0FDYixPQUFPLENBQUMsWUFBWSxDQUFDLENBeUJ2QjtBQUVELHdCQUFzQixxQ0FBcUMsQ0FDekQsTUFBTSxFQUFFLFVBQVUsRUFDbEIsU0FBUyxFQUFFLFNBQVMsRUFDcEIsVUFBVSxFQUFFLE1BQU0sRUFDbEIsTUFBTSxFQUFFLE1BQU0sRUFDZCxxQkFBcUIsU0FBSSxHQUN4QixPQUFPLENBQUMsWUFBWSxDQUFDLENBdUN2QjtBQW1ERCx3QkFBc0IsMkJBQTJCLENBQy9DLE1BQU0sRUFBRSxVQUFVLEVBQ2xCLFNBQVMsRUFBRSxTQUFTLEVBQ3BCLE1BQU0sRUFBRSxNQUFNLEVBQ2QscUJBQXFCLFNBQUksR0FDeEIsT0FBTyxDQUFDLHlCQUF5QixDQUFDLENBa0JwQztBQUVELHdCQUFzQiw0QkFBNEIsQ0FDaEQsT0FBTyxFQUFFLE1BQU0sRUFDZixTQUFTLEVBQUUsTUFBTSxFQUFFLEVBQ25CLG9CQUFvQixFQUFFLE1BQU0sRUFDNUIsVUFBVSxFQUFFLE1BQU0sRUFDbEIsTUFBTSxFQUFFLE1BQU0sRUFDZCxxQkFBcUIsU0FBSSxHQUN4QixPQUFPLENBQUMsWUFBWSxDQUFDLENBK0N2QjtBQWlGRCx3QkFBc0IsZ0JBQWdCLENBQUMsRUFDckMsTUFBTSxFQUNOLFlBQVksRUFDWixNQUFNLEVBQ04sY0FBYyxFQUNkLE1BQU0sRUFDTixnQkFBZ0IsRUFDakIsRUFBRTtJQUNELE1BQU0sRUFBRSxVQUFVLENBQUM7SUFDbkIsWUFBWSxFQUFFLFlBQVksQ0FBQztJQUMzQixNQUFNLEVBQUUsTUFBTSxDQUFDO0lBQ2YsY0FBYyxFQUFFLE1BQU0sQ0FBQztJQUN2QixNQUFNLEVBQUUsTUFBTSxDQUFDO0lBQ2YsZ0JBQWdCLENBQUMsRUFBRSxnQkFBZ0IsQ0FBQztDQUNyQyxpQkFxQkE7QUFFRCxNQUFNLE1BQU0sYUFBYSxHQUFHO0lBQzFCLE1BQU0sRUFBRSxVQUFVLENBQUM7SUFDbkIsU0FBUyxFQUFFLFNBQVMsQ0FBQztJQUNyQixPQUFPLEVBQUUsTUFBTSxPQUFPLENBQUMsSUFBSSxDQUFDLENBQUM7Q0FDOUIsQ0FBQztBQUVGLHdCQUFzQiw4QkFBOEIsQ0FDbEQsT0FBTyxFQUFFLE1BQU0sRUFDZixhQUFhLEVBQUUsT0FBTyxFQUN0QixNQUFNLEVBQUUsTUFBTSxHQUNiLE9BQU8sQ0FBQyxhQUFhLENBQUMsQ0FxQnhCO0FBRUQsTUFBTSxNQUFNLG1CQUFtQixHQUFHO0lBQ2hDLE1BQU0sRUFBRSxZQUFZLENBQUM7SUFDckIsU0FBUyxFQUFFLFNBQVMsQ0FBQztJQUNyQixPQUFPLEVBQUUsTUFBTSxPQUFPLENBQUMsSUFBSSxDQUFDLENBQUM7Q0FDOUIsQ0FBQztBQUVGLHdCQUFzQix3QkFBd0IsQ0FDNUMsT0FBTyxFQUFFLE1BQU0sRUFDZixhQUFhLEVBQUUsT0FBTyxFQUN0QixNQUFNLEVBQUUsTUFBTSxHQUNiLE9BQU8sQ0FBQyxtQkFBbUIsQ0FBQyxDQTJCOUIifQ==
43
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2V0dXBfdGVzdF93YWxsZXRzLmQudHMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvc3BhcnRhbi9zZXR1cF90ZXN0X3dhbGxldHMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQ0EsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLDJCQUEyQixDQUFDO0FBSXpELE9BQU8sRUFBRSxLQUFLLGdCQUFnQixFQUE2QixNQUFNLHFCQUFxQixDQUFDO0FBRXZGLE9BQU8sRUFBRSxLQUFLLFNBQVMsRUFBb0MsTUFBTSxzQkFBc0IsQ0FBQztBQUl4RixPQUFPLEtBQUssRUFBRSxNQUFNLEVBQUUsTUFBTSx1QkFBdUIsQ0FBQztBQUVwRCxPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0sZ0NBQWdDLENBQUM7QUFPL0QsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLCtCQUErQixDQUFDO0FBRTNELE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxpQ0FBaUMsQ0FBQztBQUUvRCxNQUFNLFdBQVcsWUFBWTtJQUMzQixTQUFTLEVBQUUsU0FBUyxDQUFDO0lBQ3JCLE1BQU0sRUFBRSxVQUFVLENBQUM7SUFDbkIsUUFBUSxFQUFFLFlBQVksRUFBRSxDQUFDO0lBQ3pCLGFBQWEsRUFBRSxhQUFhLENBQUM7SUFDN0IsaUJBQWlCLEVBQUUsWUFBWSxDQUFDO0lBQ2hDLFNBQVMsRUFBRSxNQUFNLENBQUM7SUFDbEIsZ0JBQWdCLEVBQUUsWUFBWSxDQUFDO0lBQy9CLFlBQVksRUFBRSxZQUFZLENBQUM7Q0FDNUI7QUFFRCxNQUFNLE1BQU0seUJBQXlCLEdBQUcsSUFBSSxDQUMxQyxZQUFZLEVBQ1osY0FBYyxHQUFHLGVBQWUsR0FBRyxXQUFXLEdBQUcsbUJBQW1CLENBQ3JFLENBQUM7QUFNRix3QkFBc0IsMkJBQTJCLENBQy9DLE9BQU8sRUFBRSxNQUFNLEVBQ2YsVUFBVSxFQUFFLE1BQU0sRUFDbEIsTUFBTSxFQUFFLE1BQU0sR0FDYixPQUFPLENBQUMsWUFBWSxDQUFDLENBeUJ2QjtBQUVELHdCQUFzQixxQ0FBcUMsQ0FDekQsTUFBTSxFQUFFLFVBQVUsRUFDbEIsU0FBUyxFQUFFLFNBQVMsRUFDcEIsVUFBVSxFQUFFLE1BQU0sRUFDbEIsTUFBTSxFQUFFLE1BQU0sRUFDZCxxQkFBcUIsU0FBSSxHQUN4QixPQUFPLENBQUMsWUFBWSxDQUFDLENBdUN2QjtBQW9ERCx3QkFBc0IsMkJBQTJCLENBQy9DLE1BQU0sRUFBRSxVQUFVLEVBQ2xCLFNBQVMsRUFBRSxTQUFTLEVBQ3BCLE1BQU0sRUFBRSxNQUFNLEVBQ2QscUJBQXFCLFNBQUksR0FDeEIsT0FBTyxDQUFDLHlCQUF5QixDQUFDLENBa0JwQztBQUVELHdCQUFzQiw0QkFBNEIsQ0FDaEQsT0FBTyxFQUFFLE1BQU0sRUFDZixTQUFTLEVBQUUsTUFBTSxFQUFFLEVBQ25CLG9CQUFvQixFQUFFLE1BQU0sRUFDNUIsVUFBVSxFQUFFLE1BQU0sRUFDbEIsTUFBTSxFQUFFLE1BQU0sRUFDZCxxQkFBcUIsU0FBSSxHQUN4QixPQUFPLENBQUMsWUFBWSxDQUFDLENBK0N2QjtBQTZFRCx3QkFBc0IsZ0JBQWdCLENBQUMsRUFDckMsTUFBTSxFQUNOLFlBQVksRUFDWixNQUFNLEVBQ04sY0FBYyxFQUNkLE1BQU0sRUFDTixnQkFBZ0IsRUFDakIsRUFBRTtJQUNELE1BQU0sRUFBRSxVQUFVLENBQUM7SUFDbkIsWUFBWSxFQUFFLFlBQVksQ0FBQztJQUMzQixNQUFNLEVBQUUsTUFBTSxDQUFDO0lBQ2YsY0FBYyxFQUFFLE1BQU0sQ0FBQztJQUN2QixNQUFNLEVBQUUsTUFBTSxDQUFDO0lBQ2YsZ0JBQWdCLENBQUMsRUFBRSxnQkFBZ0IsQ0FBQztDQUNyQyxpQkFxQkE7QUFFRCxNQUFNLE1BQU0sYUFBYSxHQUFHO0lBQzFCLE1BQU0sRUFBRSxVQUFVLENBQUM7SUFDbkIsU0FBUyxFQUFFLFNBQVMsQ0FBQztJQUNyQixPQUFPLEVBQUUsTUFBTSxPQUFPLENBQUMsSUFBSSxDQUFDLENBQUM7Q0FDOUIsQ0FBQztBQUVGLHdCQUFzQiw4QkFBOEIsQ0FDbEQsT0FBTyxFQUFFLE1BQU0sRUFDZixhQUFhLEVBQUUsT0FBTyxFQUN0QixNQUFNLEVBQUUsTUFBTSxHQUNiLE9BQU8sQ0FBQyxhQUFhLENBQUMsQ0FxQnhCO0FBRUQsTUFBTSxNQUFNLG1CQUFtQixHQUFHO0lBQ2hDLE1BQU0sRUFBRSxZQUFZLENBQUM7SUFDckIsU0FBUyxFQUFFLFNBQVMsQ0FBQztJQUNyQixPQUFPLEVBQUUsTUFBTSxPQUFPLENBQUMsSUFBSSxDQUFDLENBQUM7Q0FDOUIsQ0FBQztBQUVGLHdCQUFzQix3QkFBd0IsQ0FDNUMsT0FBTyxFQUFFLE1BQU0sRUFDZixhQUFhLEVBQUUsT0FBTyxFQUN0QixNQUFNLEVBQUUsTUFBTSxHQUNiLE9BQU8sQ0FBQyxtQkFBbUIsQ0FBQyxDQTJCOUIifQ==
@@ -1 +1 @@
1
- {"version":3,"file":"setup_test_wallets.d.ts","sourceRoot":"","sources":["../../src/spartan/setup_test_wallets.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"setup_test_wallets.d.ts","sourceRoot":"","sources":["../../src/spartan/setup_test_wallets.ts"],"names":[],"mappings":"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"}
@@ -86,13 +86,14 @@ async function deployAccountWithDiagnostics(account, paymentMethod, aztecNode, l
86
86
  const deployMethod = await account.getDeployMethod();
87
87
  let txHash;
88
88
  try {
89
- txHash = await deployMethod.send({
89
+ const deployResult = await deployMethod.send({
90
90
  from: AztecAddress.ZERO,
91
91
  fee: {
92
92
  paymentMethod
93
93
  },
94
94
  wait: NO_WAIT
95
95
  });
96
+ txHash = deployResult.txHash;
96
97
  await waitForTx(aztecNode, txHash, {
97
98
  timeout: 2400
98
99
  });
@@ -177,7 +178,7 @@ async function bridgeL1FeeJuice(l1RpcUrls, mnemonicOrPrivateKey, aztecNode, reci
177
178
  const l1Client = createExtendedL1Client(chain.rpcUrls, mnemonicOrPrivateKey, chain.chainInfo);
178
179
  const portal = await L1FeeJuicePortalManager.new(aztecNode, l1Client, log);
179
180
  const claim = await portal.bridgeTokensPublic(recipient, amount, true);
180
- const isSynced = async ()=>await aztecNode.getL1ToL2MessageBlock(Fr.fromHexString(claim.messageHash)) !== undefined;
181
+ const isSynced = async ()=>await aztecNode.getL1ToL2MessageCheckpoint(Fr.fromHexString(claim.messageHash)) !== undefined;
181
182
  await retryUntil(isSynced, `message ${claim.messageHash} sync`, 24, 0.5);
182
183
  log.info(`Created a claim for ${amount} L1 fee juice to ${recipient}.`, claim);
183
184
  return claim;
@@ -200,7 +201,7 @@ async function advanceL2Block(aztecNode, nodeAdmin) {
200
201
  }
201
202
  async function deployTokenAndMint(wallet, accounts, admin, mintAmount, paymentMethod, logger) {
202
203
  logger.verbose(`Deploying TokenContract...`);
203
- const { contract: tokenContract } = await TokenContract.deploy(wallet, admin, TOKEN_NAME, TOKEN_SYMBOL, TOKEN_DECIMALS).send({
204
+ const { receipt: { contract: tokenContract } } = await TokenContract.deploy(wallet, admin, TOKEN_NAME, TOKEN_SYMBOL, TOKEN_DECIMALS).send({
204
205
  from: admin,
205
206
  fee: {
206
207
  paymentMethod
@@ -14,7 +14,7 @@ export declare const WorkerWalletSchema: {
14
14
  simulateTx: z.ZodFunction<z.ZodTuple<[z.ZodType<import("@aztec/stdlib/tx").ExecutionPayload, z.ZodTypeDef, any>, opts: z.ZodType<import("@aztec/aztec.js/wallet").SimulateOptions, z.ZodTypeDef, any>], z.ZodUnknown>, z.ZodType<import("@aztec/stdlib/tx").TxSimulationResult, z.ZodTypeDef, any>>;
15
15
  executeUtility: z.ZodFunction<z.ZodTuple<[z.ZodType<import("@aztec/stdlib/abi").FunctionCall, z.ZodTypeDef, any>, opts: z.ZodType<import("@aztec/aztec.js/wallet").ExecuteUtilityOptions, z.ZodTypeDef, any>], z.ZodUnknown>, z.ZodType<import("@aztec/stdlib/tx").UtilityExecutionResult, z.ZodTypeDef, any>>;
16
16
  profileTx: z.ZodFunction<z.ZodTuple<[z.ZodType<import("@aztec/stdlib/tx").ExecutionPayload, z.ZodTypeDef, any>, opts: z.ZodType<import("@aztec/aztec.js/wallet").ProfileOptions, z.ZodTypeDef, any>], z.ZodUnknown>, z.ZodType<import("@aztec/stdlib/tx").TxProfileResult, z.ZodTypeDef, any>>;
17
- sendTx: z.ZodFunction<z.ZodTuple<[z.ZodType<import("@aztec/stdlib/tx").ExecutionPayload, z.ZodTypeDef, any>, opts: z.ZodType<import("@aztec/aztec.js/wallet").SendOptions<import("@aztec/aztec.js/contracts").InteractionWaitOptions>, z.ZodTypeDef, any>], z.ZodUnknown>, z.ZodType<import("@aztec/stdlib/tx").TxHash | import("@aztec/stdlib/tx").TxReceipt, z.ZodTypeDef, any>>;
17
+ sendTx: z.ZodFunction<z.ZodTuple<[z.ZodType<import("@aztec/stdlib/tx").ExecutionPayload, z.ZodTypeDef, any>, opts: z.ZodType<import("@aztec/aztec.js/wallet").SendOptions<import("@aztec/aztec.js/contracts").InteractionWaitOptions>, z.ZodTypeDef, any>], z.ZodUnknown>, z.ZodType<import("@aztec/aztec.js/contracts").TxSendResultImmediate | import("@aztec/aztec.js/contracts").TxSendResultMined<import("@aztec/stdlib/tx").TxReceipt>, z.ZodTypeDef, any>>;
18
18
  createAuthWit: z.ZodFunction<z.ZodTuple<[z.ZodType<AztecAddress, z.ZodTypeDef, any>, messageHashOrIntent: z.ZodType<import("@aztec/aztec.js/authorization").CallIntent | import("@aztec/aztec.js/authorization").IntentInnerHash, z.ZodTypeDef, any>], z.ZodUnknown>, z.ZodType<import("@aztec/stdlib/auth-witness").AuthWitness, z.ZodTypeDef, any>>;
19
19
  requestCapabilities: z.ZodFunction<z.ZodTuple<[z.ZodType<import("@aztec/aztec.js/wallet").AppCapabilities, z.ZodTypeDef, any>], z.ZodUnknown>, z.ZodType<import("@aztec/aztec.js/wallet").WalletCapabilities, z.ZodTypeDef, any>>;
20
20
  batch: z.ZodFunction<z.ZodTuple<[z.ZodType<readonly import("@aztec/aztec.js/wallet").BatchedMethod[], z.ZodTypeDef, any>], z.ZodUnknown>, z.ZodType<readonly import("@aztec/aztec.js/wallet").BatchedMethodResultWrapper<import("@aztec/aztec.js/wallet").BatchedMethod>[], z.ZodTypeDef, any>>;
@@ -211,6 +211,7 @@ export declare const WorkerWalletSchema: {
211
211
  interval?: number | undefined;
212
212
  dontThrowOnRevert?: boolean | undefined;
213
213
  }>]>>;
214
+ additionalScopes: import("@aztec/foundation/schemas").ZodNullableOptional<z.ZodArray<import("@aztec/foundation/schemas").ZodFor<AztecAddress>, "many">>;
214
215
  }, "strip", z.ZodTypeAny, {
215
216
  from: AztecAddress;
216
217
  authWitnesses?: import("@aztec/stdlib/auth-witness").AuthWitness[] | undefined;
@@ -235,6 +236,7 @@ export declare const WorkerWalletSchema: {
235
236
  interval?: number | undefined;
236
237
  dontThrowOnRevert?: boolean | undefined;
237
238
  } | undefined;
239
+ additionalScopes?: AztecAddress[] | undefined;
238
240
  }, {
239
241
  from?: any;
240
242
  authWitnesses?: string[] | undefined;
@@ -265,7 +267,8 @@ export declare const WorkerWalletSchema: {
265
267
  interval?: number | undefined;
266
268
  dontThrowOnRevert?: boolean | undefined;
267
269
  } | undefined;
270
+ additionalScopes?: any[] | undefined;
268
271
  }>], z.ZodUnknown>, import("@aztec/foundation/schemas").ZodFor<Tx>>;
269
272
  registerAccount: z.ZodFunction<z.ZodTuple<[z.ZodType<import("@aztec/foundation/schemas").Fr, any, string>, z.ZodType<import("@aztec/foundation/schemas").Fr, any, string>], z.ZodUnknown>, import("@aztec/foundation/schemas").ZodFor<AztecAddress>>;
270
273
  };
271
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoid29ya2VyX3dhbGxldF9zY2hlbWEuZC50cyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy90ZXN0LXdhbGxldC93b3JrZXJfd2FsbGV0X3NjaGVtYS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFFQSxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0sNkJBQTZCLENBQUM7QUFDM0QsT0FBTyxFQUFFLEVBQUUsRUFBRSxNQUFNLGtCQUFrQixDQUFDO0FBRXRDLE9BQU8sRUFBRSxDQUFDLEVBQUUsTUFBTSxLQUFLLENBQUM7QUFFeEIsaUdBQStGO0FBQy9GLGVBQU8sTUFBTSxrQkFBa0I7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Q0FJOUIsQ0FBQyJ9
274
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoid29ya2VyX3dhbGxldF9zY2hlbWEuZC50cyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy90ZXN0LXdhbGxldC93b3JrZXJfd2FsbGV0X3NjaGVtYS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFFQSxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0sNkJBQTZCLENBQUM7QUFDM0QsT0FBTyxFQUFFLEVBQUUsRUFBRSxNQUFNLGtCQUFrQixDQUFDO0FBRXRDLE9BQU8sRUFBRSxDQUFDLEVBQUUsTUFBTSxLQUFLLENBQUM7QUFFeEIsaUdBQStGO0FBQy9GLGVBQU8sTUFBTSxrQkFBa0I7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Q0FJOUIsQ0FBQyJ9
@@ -1 +1 @@
1
- {"version":3,"file":"worker_wallet_schema.d.ts","sourceRoot":"","sources":["../../src/test-wallet/worker_wallet_schema.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,YAAY,EAAE,MAAM,6BAA6B,CAAC;AAC3D,OAAO,EAAE,EAAE,EAAE,MAAM,kBAAkB,CAAC;AAEtC,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAExB,iGAA+F;AAC/F,eAAO,MAAM,kBAAkB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAI9B,CAAC"}
1
+ {"version":3,"file":"worker_wallet_schema.d.ts","sourceRoot":"","sources":["../../src/test-wallet/worker_wallet_schema.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,YAAY,EAAE,MAAM,6BAA6B,CAAC;AAC3D,OAAO,EAAE,EAAE,EAAE,MAAM,kBAAkB,CAAC;AAEtC,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAExB,iGAA+F;AAC/F,eAAO,MAAM,kBAAkB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAI9B,CAAC"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@aztec/end-to-end",
3
- "version": "4.0.4",
3
+ "version": "4.1.0-rc.2",
4
4
  "type": "module",
5
5
  "exports": "./dest/index.js",
6
6
  "inherits": [
@@ -26,45 +26,45 @@
26
26
  "formatting": "run -T prettier --check ./src && run -T eslint ./src"
27
27
  },
28
28
  "dependencies": {
29
- "@aztec/accounts": "4.0.4",
30
- "@aztec/archiver": "4.0.4",
31
- "@aztec/aztec": "4.0.4",
32
- "@aztec/aztec-node": "4.0.4",
33
- "@aztec/aztec.js": "4.0.4",
34
- "@aztec/bb-prover": "4.0.4",
35
- "@aztec/bb.js": "4.0.4",
36
- "@aztec/blob-client": "4.0.4",
37
- "@aztec/blob-lib": "4.0.4",
38
- "@aztec/bot": "4.0.4",
39
- "@aztec/cli": "4.0.4",
40
- "@aztec/constants": "4.0.4",
41
- "@aztec/entrypoints": "4.0.4",
42
- "@aztec/epoch-cache": "4.0.4",
43
- "@aztec/ethereum": "4.0.4",
44
- "@aztec/foundation": "4.0.4",
45
- "@aztec/kv-store": "4.0.4",
46
- "@aztec/l1-artifacts": "4.0.4",
47
- "@aztec/merkle-tree": "4.0.4",
48
- "@aztec/node-keystore": "4.0.4",
49
- "@aztec/noir-contracts.js": "4.0.4",
50
- "@aztec/noir-noirc_abi": "4.0.4",
51
- "@aztec/noir-protocol-circuits-types": "4.0.4",
52
- "@aztec/noir-test-contracts.js": "4.0.4",
53
- "@aztec/p2p": "4.0.4",
54
- "@aztec/protocol-contracts": "4.0.4",
55
- "@aztec/prover-client": "4.0.4",
56
- "@aztec/prover-node": "4.0.4",
57
- "@aztec/pxe": "4.0.4",
58
- "@aztec/sequencer-client": "4.0.4",
59
- "@aztec/simulator": "4.0.4",
60
- "@aztec/slasher": "4.0.4",
61
- "@aztec/stdlib": "4.0.4",
62
- "@aztec/telemetry-client": "4.0.4",
63
- "@aztec/validator-client": "4.0.4",
64
- "@aztec/validator-ha-signer": "4.0.4",
65
- "@aztec/wallet-sdk": "4.0.4",
66
- "@aztec/wallets": "4.0.4",
67
- "@aztec/world-state": "4.0.4",
29
+ "@aztec/accounts": "4.1.0-rc.2",
30
+ "@aztec/archiver": "4.1.0-rc.2",
31
+ "@aztec/aztec": "4.1.0-rc.2",
32
+ "@aztec/aztec-node": "4.1.0-rc.2",
33
+ "@aztec/aztec.js": "4.1.0-rc.2",
34
+ "@aztec/bb-prover": "4.1.0-rc.2",
35
+ "@aztec/bb.js": "4.1.0-rc.2",
36
+ "@aztec/blob-client": "4.1.0-rc.2",
37
+ "@aztec/blob-lib": "4.1.0-rc.2",
38
+ "@aztec/bot": "4.1.0-rc.2",
39
+ "@aztec/cli": "4.1.0-rc.2",
40
+ "@aztec/constants": "4.1.0-rc.2",
41
+ "@aztec/entrypoints": "4.1.0-rc.2",
42
+ "@aztec/epoch-cache": "4.1.0-rc.2",
43
+ "@aztec/ethereum": "4.1.0-rc.2",
44
+ "@aztec/foundation": "4.1.0-rc.2",
45
+ "@aztec/kv-store": "4.1.0-rc.2",
46
+ "@aztec/l1-artifacts": "4.1.0-rc.2",
47
+ "@aztec/merkle-tree": "4.1.0-rc.2",
48
+ "@aztec/node-keystore": "4.1.0-rc.2",
49
+ "@aztec/noir-contracts.js": "4.1.0-rc.2",
50
+ "@aztec/noir-noirc_abi": "4.1.0-rc.2",
51
+ "@aztec/noir-protocol-circuits-types": "4.1.0-rc.2",
52
+ "@aztec/noir-test-contracts.js": "4.1.0-rc.2",
53
+ "@aztec/p2p": "4.1.0-rc.2",
54
+ "@aztec/protocol-contracts": "4.1.0-rc.2",
55
+ "@aztec/prover-client": "4.1.0-rc.2",
56
+ "@aztec/prover-node": "4.1.0-rc.2",
57
+ "@aztec/pxe": "4.1.0-rc.2",
58
+ "@aztec/sequencer-client": "4.1.0-rc.2",
59
+ "@aztec/simulator": "4.1.0-rc.2",
60
+ "@aztec/slasher": "4.1.0-rc.2",
61
+ "@aztec/stdlib": "4.1.0-rc.2",
62
+ "@aztec/telemetry-client": "4.1.0-rc.2",
63
+ "@aztec/validator-client": "4.1.0-rc.2",
64
+ "@aztec/validator-ha-signer": "4.1.0-rc.2",
65
+ "@aztec/wallet-sdk": "4.1.0-rc.2",
66
+ "@aztec/wallets": "4.1.0-rc.2",
67
+ "@aztec/world-state": "4.1.0-rc.2",
68
68
  "@iarna/toml": "^2.2.5",
69
69
  "@jest/globals": "^30.0.0",
70
70
  "@noble/curves": "=1.0.0",
@@ -19,12 +19,16 @@ import { AMMContract } from '@aztec/noir-contracts.js/AMM';
19
19
  import { FPCContract } from '@aztec/noir-contracts.js/FPC';
20
20
  import { FeeJuiceContract } from '@aztec/noir-contracts.js/FeeJuice';
21
21
  import { SponsoredFPCContract } from '@aztec/noir-contracts.js/SponsoredFPC';
22
- import { TokenContract as BananaCoin, TokenContract } from '@aztec/noir-contracts.js/Token';
22
+ import { TokenContract as BananaCoin, TokenContract, TokenContractArtifact } from '@aztec/noir-contracts.js/Token';
23
23
  import { ProtocolContractAddress } from '@aztec/protocol-contracts';
24
24
  import { getCanonicalFeeJuice } from '@aztec/protocol-contracts/fee-juice';
25
25
  import { type PXEConfig, getPXEConfig } from '@aztec/pxe/server';
26
+ import { FunctionSelector, countArgumentsSize } from '@aztec/stdlib/abi';
27
+ import type { FunctionAbi } from '@aztec/stdlib/abi';
28
+ import { getContractClassFromArtifact } from '@aztec/stdlib/contract';
26
29
  import type { ContractInstanceWithAddress } from '@aztec/stdlib/contract';
27
30
  import { GasSettings } from '@aztec/stdlib/gas';
31
+ import type { AllowedElement } from '@aztec/stdlib/interfaces/server';
28
32
  import { deriveSigningKey } from '@aztec/stdlib/keys';
29
33
 
30
34
  import { MNEMONIC } from '../../fixtures/fixtures.js';
@@ -42,6 +46,35 @@ import { type ClientFlowsConfig, FULL_FLOWS_CONFIG, KEY_FLOWS_CONFIG } from './c
42
46
 
43
47
  const { BENCHMARK_CONFIG } = process.env;
44
48
 
49
+ /** Returns Token-specific allowlist entries for FPC-based fee payments (test-only). */
50
+ async function getTokenAllowedSetupFunctions(): Promise<AllowedElement[]> {
51
+ const tokenClassId = (await getContractClassFromArtifact(TokenContractArtifact)).id;
52
+ const allFunctions: FunctionAbi[] = (TokenContractArtifact.functions as FunctionAbi[]).concat(
53
+ TokenContractArtifact.nonDispatchPublicFunctions || [],
54
+ );
55
+ const getCalldataLength = (name: string) => {
56
+ const fn = allFunctions.find(f => f.name === name)!;
57
+ return 1 + countArgumentsSize(fn);
58
+ };
59
+ const increaseBalanceSelector = await FunctionSelector.fromSignature('_increase_public_balance((Field),u128)');
60
+ const transferInPublicSelector = await FunctionSelector.fromSignature(
61
+ 'transfer_in_public((Field),(Field),u128,Field)',
62
+ );
63
+ return [
64
+ {
65
+ classId: tokenClassId,
66
+ selector: increaseBalanceSelector,
67
+ calldataLength: getCalldataLength('_increase_public_balance'),
68
+ onlySelf: true,
69
+ },
70
+ {
71
+ classId: tokenClassId,
72
+ selector: transferInPublicSelector,
73
+ calldataLength: getCalldataLength('transfer_in_public'),
74
+ },
75
+ ];
76
+ }
77
+
45
78
  export type AccountType = 'ecdsar1' | 'schnorr';
46
79
  export type FeePaymentMethodGetter = (wallet: Wallet, sender: AztecAddress) => Promise<FeePaymentMethod | undefined>;
47
80
  export type BenchmarkingFeePaymentMethod = 'bridged_fee_juice' | 'private_fpc' | 'sponsored_fpc' | 'fee_juice';
@@ -130,11 +163,14 @@ export class ClientFlowsBenchmark {
130
163
 
131
164
  async setup() {
132
165
  this.logger.info('Setting up subsystems from fresh');
166
+ // Token allowlist entries are test-only: FPC-based fee payment with custom tokens won't work on mainnet alpha.
167
+ const tokenAllowList = await getTokenAllowedSetupFunctions();
133
168
  this.context = await setup(0, {
134
169
  ...this.setupOptions,
135
170
  fundSponsoredFPC: true,
136
171
  skipAccountDeployment: true,
137
172
  l1ContractsArgs: this.setupOptions,
173
+ txPublicSetupAllowListExtend: [...(this.setupOptions.txPublicSetupAllowListExtend ?? []), ...tokenAllowList],
138
174
  });
139
175
  await this.applyBaseSetup();
140
176
 
@@ -161,11 +197,15 @@ export class ClientFlowsBenchmark {
161
197
 
162
198
  /** Admin mints bananaCoin tokens privately to the target address and redeems them. */
163
199
  async mintPrivateBananas(amount: bigint, address: AztecAddress) {
164
- const balanceBefore = await this.bananaCoin.methods.balance_of_private(address).simulate({ from: address });
200
+ const { result: balanceBefore } = await this.bananaCoin.methods
201
+ .balance_of_private(address)
202
+ .simulate({ from: address });
165
203
 
166
204
  await mintTokensToPrivate(this.bananaCoin, this.adminAddress, address, amount);
167
205
 
168
- const balanceAfter = await this.bananaCoin.methods.balance_of_private(address).simulate({ from: address });
206
+ const { result: balanceAfter } = await this.bananaCoin.methods
207
+ .balance_of_private(address)
208
+ .simulate({ from: address });
169
209
  expect(balanceAfter).toEqual(balanceBefore + amount);
170
210
  }
171
211
 
@@ -241,13 +281,12 @@ export class ClientFlowsBenchmark {
241
281
 
242
282
  async applyDeployBananaToken() {
243
283
  this.logger.info('Applying banana token deployment');
244
- const { contract: bananaCoin, instance: bananaCoinInstance } = await BananaCoin.deploy(
245
- this.adminWallet,
246
- this.adminAddress,
247
- 'BC',
248
- 'BC',
249
- 18n,
250
- ).send({ from: this.adminAddress, wait: { returnReceipt: true } });
284
+ const {
285
+ receipt: { contract: bananaCoin, instance: bananaCoinInstance },
286
+ } = await BananaCoin.deploy(this.adminWallet, this.adminAddress, 'BC', 'BC', 18n).send({
287
+ from: this.adminAddress,
288
+ wait: { returnReceipt: true },
289
+ });
251
290
  this.logger.info(`BananaCoin deployed at ${bananaCoin.address}`);
252
291
  this.bananaCoin = bananaCoin;
253
292
  this.bananaCoinInstance = bananaCoinInstance;
@@ -255,13 +294,12 @@ export class ClientFlowsBenchmark {
255
294
 
256
295
  async applyDeployCandyBarToken() {
257
296
  this.logger.info('Applying candy bar token deployment');
258
- const { contract: candyBarCoin, instance: candyBarCoinInstance } = await TokenContract.deploy(
259
- this.adminWallet,
260
- this.adminAddress,
261
- 'CBC',
262
- 'CBC',
263
- 18n,
264
- ).send({ from: this.adminAddress, wait: { returnReceipt: true } });
297
+ const {
298
+ receipt: { contract: candyBarCoin, instance: candyBarCoinInstance },
299
+ } = await TokenContract.deploy(this.adminWallet, this.adminAddress, 'CBC', 'CBC', 18n).send({
300
+ from: this.adminAddress,
301
+ wait: { returnReceipt: true },
302
+ });
265
303
  this.logger.info(`CandyBarCoin deployed at ${candyBarCoin.address}`);
266
304
  this.candyBarCoin = candyBarCoin;
267
305
  this.candyBarCoinInstance = candyBarCoinInstance;
@@ -273,11 +311,12 @@ export class ClientFlowsBenchmark {
273
311
  expect((await this.context.wallet.getContractMetadata(feeJuiceContract.address)).isContractPublished).toBe(true);
274
312
 
275
313
  const bananaCoin = this.bananaCoin;
276
- const { contract: bananaFPC, instance: bananaFPCInstance } = await FPCContract.deploy(
277
- this.adminWallet,
278
- bananaCoin.address,
279
- this.adminAddress,
280
- ).send({ from: this.adminAddress, wait: { returnReceipt: true } });
314
+ const {
315
+ receipt: { contract: bananaFPC, instance: bananaFPCInstance },
316
+ } = await FPCContract.deploy(this.adminWallet, bananaCoin.address, this.adminAddress).send({
317
+ from: this.adminAddress,
318
+ wait: { returnReceipt: true },
319
+ });
281
320
 
282
321
  this.logger.info(`BananaPay deployed at ${bananaFPC.address}`);
283
322
 
@@ -340,14 +379,15 @@ export class ClientFlowsBenchmark {
340
379
 
341
380
  public async applyDeployAmm() {
342
381
  this.logger.info('Applying AMM deployment');
343
- const { contract: liquidityToken, instance: liquidityTokenInstance } = await TokenContract.deploy(
344
- this.adminWallet,
345
- this.adminAddress,
346
- 'LPT',
347
- 'LPT',
348
- 18n,
349
- ).send({ from: this.adminAddress, wait: { returnReceipt: true } });
350
- const { contract: amm, instance: ammInstance } = await AMMContract.deploy(
382
+ const {
383
+ receipt: { contract: liquidityToken, instance: liquidityTokenInstance },
384
+ } = await TokenContract.deploy(this.adminWallet, this.adminAddress, 'LPT', 'LPT', 18n).send({
385
+ from: this.adminAddress,
386
+ wait: { returnReceipt: true },
387
+ });
388
+ const {
389
+ receipt: { contract: amm, instance: ammInstance },
390
+ } = await AMMContract.deploy(
351
391
  this.adminWallet,
352
392
  this.bananaCoin.address,
353
393
  this.candyBarCoin.address,
@@ -25,7 +25,7 @@ export async function benchmarkSetup(
25
25
  ) {
26
26
  const context = await setup(1, { ...opts, telemetryConfig: { benchmark: true } });
27
27
  const defaultAccountAddress = context.accounts[0];
28
- const contract = await BenchmarkingContract.deploy(context.wallet).send({ from: defaultAccountAddress });
28
+ const { contract } = await BenchmarkingContract.deploy(context.wallet).send({ from: defaultAccountAddress });
29
29
  context.logger.info(`Deployed benchmarking contract at ${contract.address}`);
30
30
  const sequencer = (context.aztecNode as AztecNodeService).getSequencer()!;
31
31
  const telemetry = context.telemetryClient as BenchmarkTelemetryClient;
@@ -149,7 +149,12 @@ export async function sendTxs(
149
149
  context.logger.info(`Creating ${txCount} txs`);
150
150
  const [from] = context.accounts;
151
151
  context.logger.info(`Sending ${txCount} txs`);
152
- return Promise.all(calls.map(call => call.send({ from, wait: NO_WAIT })));
152
+ return Promise.all(
153
+ calls.map(async call => {
154
+ const { txHash } = await call.send({ from, wait: NO_WAIT });
155
+ return txHash;
156
+ }),
157
+ );
153
158
  }
154
159
 
155
160
  export async function waitTxs(txs: TxHash[], context: EndToEndContext, txWaitOpts?: WaitOpts) {
@@ -107,20 +107,24 @@ export class BlacklistTokenContractTest {
107
107
  await publicDeployAccounts(this.wallet, [this.adminAddress, this.otherAddress, this.blacklistedAddress]);
108
108
 
109
109
  this.logger.verbose(`Deploying TokenContract...`);
110
- this.asset = await TokenBlacklistContract.deploy(this.wallet, this.adminAddress).send({
110
+ ({ contract: this.asset } = await TokenBlacklistContract.deploy(this.wallet, this.adminAddress).send({
111
111
  from: this.adminAddress,
112
- });
112
+ }));
113
113
  this.logger.verbose(`Token deployed to ${this.asset.address}`);
114
114
 
115
115
  this.logger.verbose(`Deploying bad account...`);
116
- this.badAccount = await InvalidAccountContract.deploy(this.wallet).send({ from: this.adminAddress });
116
+ ({ contract: this.badAccount } = await InvalidAccountContract.deploy(this.wallet).send({
117
+ from: this.adminAddress,
118
+ }));
117
119
  this.logger.verbose(`Deployed to ${this.badAccount.address}.`);
118
120
 
119
121
  // Deploy a proxy contract for "on behalf of other" tests. The note owner must be the tx sender
120
122
  // (so their notes are in scope), but msg_sender in the target must differ from the note owner
121
123
  // to trigger authwit validation. The proxy forwards calls so that msg_sender != tx sender.
122
124
  this.logger.verbose(`Deploying generic proxy...`);
123
- this.authwitProxy = await GenericProxyContract.deploy(this.wallet).send({ from: this.adminAddress });
125
+ ({ contract: this.authwitProxy } = await GenericProxyContract.deploy(this.wallet).send({
126
+ from: this.adminAddress,
127
+ }));
124
128
  this.logger.verbose(`Deployed to ${this.authwitProxy.address}.`);
125
129
 
126
130
  await this.crossTimestampOfChange();
@@ -133,9 +137,9 @@ export class BlacklistTokenContractTest {
133
137
  [this.adminAddress, this.otherAddress, this.blacklistedAddress],
134
138
  );
135
139
 
136
- expect(await this.asset.methods.get_roles(this.adminAddress).simulate({ from: this.adminAddress })).toEqual(
137
- new Role().withAdmin().toNoirStruct(),
138
- );
140
+ expect(
141
+ (await this.asset.methods.get_roles(this.adminAddress).simulate({ from: this.adminAddress })).result,
142
+ ).toEqual(new Role().withAdmin().toNoirStruct());
139
143
  }
140
144
 
141
145
  async setup() {
@@ -189,9 +193,9 @@ export class BlacklistTokenContractTest {
189
193
 
190
194
  await this.crossTimestampOfChange();
191
195
 
192
- expect(await this.asset.methods.get_roles(this.adminAddress).simulate({ from: this.adminAddress })).toEqual(
193
- adminMinterRole.toNoirStruct(),
194
- );
196
+ expect(
197
+ (await this.asset.methods.get_roles(this.adminAddress).simulate({ from: this.adminAddress })).result,
198
+ ).toEqual(adminMinterRole.toNoirStruct());
195
199
 
196
200
  this.logger.verbose(`Minting ${amount} publicly...`);
197
201
  await asset.methods.mint_public(this.adminAddress, amount).send({ from: this.adminAddress });
@@ -199,7 +203,7 @@ export class BlacklistTokenContractTest {
199
203
  this.logger.verbose(`Minting ${amount} privately...`);
200
204
  const secret = Fr.random();
201
205
  const secretHash = await computeSecretHash(secret);
202
- const receipt = await asset.methods.mint_private(amount, secretHash).send({ from: this.adminAddress });
206
+ const { receipt } = await asset.methods.mint_private(amount, secretHash).send({ from: this.adminAddress });
203
207
 
204
208
  await this.addPendingShieldNoteToPXE(asset, this.adminAddress, amount, secretHash, receipt.txHash);
205
209
  await asset.methods.redeem_shield(this.adminAddress, amount, secret).send({ from: this.adminAddress });
@@ -207,20 +211,20 @@ export class BlacklistTokenContractTest {
207
211
 
208
212
  tokenSim.mintPublic(this.adminAddress, amount);
209
213
 
210
- const publicBalance = await asset.methods
214
+ const { result: publicBalance } = await asset.methods
211
215
  .balance_of_public(this.adminAddress)
212
216
  .simulate({ from: this.adminAddress });
213
217
  this.logger.verbose(`Public balance of wallet 0: ${publicBalance}`);
214
218
  expect(publicBalance).toEqual(this.tokenSim.balanceOfPublic(this.adminAddress));
215
219
 
216
220
  tokenSim.mintPrivate(this.adminAddress, amount);
217
- const privateBalance = await asset.methods
221
+ const { result: privateBalance } = await asset.methods
218
222
  .balance_of_private(this.adminAddress)
219
223
  .simulate({ from: this.adminAddress });
220
224
  this.logger.verbose(`Private balance of wallet 0: ${privateBalance}`);
221
225
  expect(privateBalance).toEqual(tokenSim.balanceOfPrivate(this.adminAddress));
222
226
 
223
- const totalSupply = await asset.methods.total_supply().simulate({ from: this.adminAddress });
227
+ const { result: totalSupply } = await asset.methods.total_supply().simulate({ from: this.adminAddress });
224
228
  this.logger.verbose(`Total supply: ${totalSupply}`);
225
229
  expect(totalSupply).toEqual(tokenSim.totalSupply);
226
230
  }
@@ -14,12 +14,16 @@ import { AppSubscriptionContract } from '@aztec/noir-contracts.js/AppSubscriptio
14
14
  import { FPCContract } from '@aztec/noir-contracts.js/FPC';
15
15
  import { FeeJuiceContract } from '@aztec/noir-contracts.js/FeeJuice';
16
16
  import { SponsoredFPCContract } from '@aztec/noir-contracts.js/SponsoredFPC';
17
- import { TokenContract as BananaCoin } from '@aztec/noir-contracts.js/Token';
17
+ import { TokenContract as BananaCoin, TokenContractArtifact } from '@aztec/noir-contracts.js/Token';
18
18
  import { CounterContract } from '@aztec/noir-test-contracts.js/Counter';
19
19
  import { ProtocolContractAddress } from '@aztec/protocol-contracts';
20
20
  import { getCanonicalFeeJuice } from '@aztec/protocol-contracts/fee-juice';
21
+ import { FunctionSelector, countArgumentsSize } from '@aztec/stdlib/abi';
22
+ import type { FunctionAbi } from '@aztec/stdlib/abi';
23
+ import { getContractClassFromArtifact } from '@aztec/stdlib/contract';
21
24
  import { GasSettings } from '@aztec/stdlib/gas';
22
25
  import type { AztecNodeAdmin } from '@aztec/stdlib/interfaces/client';
26
+ import type { AllowedElement } from '@aztec/stdlib/interfaces/server';
23
27
 
24
28
  import { getContract } from 'viem';
25
29
 
@@ -37,6 +41,46 @@ import { type BalancesFn, getBalancesFn, setupSponsoredFPC } from '../fixtures/u
37
41
  import { FeeJuicePortalTestingHarnessFactory, type GasBridgingTestHarness } from '../shared/gas_portal_test_harness.js';
38
42
  import { TestWallet } from '../test-wallet/test_wallet.js';
39
43
 
44
+ /** Returns the calldata length for a function: 1 (selector) + arguments size. */
45
+ function getCalldataLength(functionName: string): number {
46
+ const allFunctions: FunctionAbi[] = (TokenContractArtifact.functions as FunctionAbi[]).concat(
47
+ TokenContractArtifact.nonDispatchPublicFunctions || [],
48
+ );
49
+ const fn = allFunctions.find(f => f.name === functionName);
50
+ if (!fn) {
51
+ throw new Error(`Unknown function ${functionName} in Token artifact`);
52
+ }
53
+ return 1 + countArgumentsSize(fn);
54
+ }
55
+
56
+ /**
57
+ * Returns Token-specific allowlist entries needed for FPC-based fee payments.
58
+ * These are test-only — FPC-based fee payment with custom tokens won't work on mainnet alpha.
59
+ */
60
+ async function getTokenAllowedSetupFunctions(): Promise<AllowedElement[]> {
61
+ const tokenClassId = (await getContractClassFromArtifact(TokenContractArtifact)).id;
62
+ const increaseBalanceSelector = await FunctionSelector.fromSignature('_increase_public_balance((Field),u128)');
63
+ const transferInPublicSelector = await FunctionSelector.fromSignature(
64
+ 'transfer_in_public((Field),(Field),u128,Field)',
65
+ );
66
+
67
+ return [
68
+ // Token: needed for private transfers via FPC (transfer_to_public enqueues this)
69
+ {
70
+ classId: tokenClassId,
71
+ selector: increaseBalanceSelector,
72
+ calldataLength: getCalldataLength('_increase_public_balance'),
73
+ onlySelf: true,
74
+ },
75
+ // Token: needed for public transfers via FPC (fee_entrypoint_public enqueues this)
76
+ {
77
+ classId: tokenClassId,
78
+ selector: transferInPublicSelector,
79
+ calldataLength: getCalldataLength('transfer_in_public'),
80
+ },
81
+ ];
82
+ }
83
+
40
84
  /**
41
85
  * Test fixture for testing fees. Provides the following setup steps:
42
86
  * InitialAccounts: Initializes 3 Schnorr account contracts.
@@ -104,12 +148,15 @@ export class FeesTest {
104
148
 
105
149
  async setup() {
106
150
  this.logger.verbose('Setting up fresh context...');
151
+ // Token allowlist entries are test-only: FPC-based fee payment with custom tokens won't work on mainnet alpha.
152
+ const tokenAllowList = await getTokenAllowedSetupFunctions();
107
153
  this.context = await setup(0, {
108
154
  startProverNode: true,
109
155
  ...this.setupOptions,
110
156
  fundSponsoredFPC: true,
111
157
  skipAccountDeployment: true,
112
158
  l1ContractsArgs: { ...this.setupOptions },
159
+ txPublicSetupAllowListExtend: [...(this.setupOptions.txPublicSetupAllowListExtend ?? []), ...tokenAllowList],
113
160
  });
114
161
 
115
162
  this.rollupContract = RollupContract.getFromConfig(this.context.config);
@@ -157,11 +204,15 @@ export class FeesTest {
157
204
 
158
205
  /** Alice mints bananaCoin tokens privately to the target address and redeems them. */
159
206
  async mintPrivateBananas(amount: bigint, address: AztecAddress) {
160
- const balanceBefore = await this.bananaCoin.methods.balance_of_private(address).simulate({ from: address });
207
+ const { result: balanceBefore } = await this.bananaCoin.methods
208
+ .balance_of_private(address)
209
+ .simulate({ from: address });
161
210
 
162
211
  await mintTokensToPrivate(this.bananaCoin, this.aliceAddress, address, amount);
163
212
 
164
- const balanceAfter = await this.bananaCoin.methods.balance_of_private(address).simulate({ from: address });
213
+ const { result: balanceAfter } = await this.bananaCoin.methods
214
+ .balance_of_private(address)
215
+ .simulate({ from: address });
165
216
  expect(balanceAfter).toEqual(balanceBefore + amount);
166
217
  }
167
218
 
@@ -223,7 +274,7 @@ export class FeesTest {
223
274
  async applyDeployBananaToken() {
224
275
  this.logger.info('Applying deploy banana token setup');
225
276
 
226
- const bananaCoin = await BananaCoin.deploy(this.wallet, this.aliceAddress, 'BC', 'BC', 18n).send({
277
+ const { contract: bananaCoin } = await BananaCoin.deploy(this.wallet, this.aliceAddress, 'BC', 'BC', 18n).send({
227
278
  from: this.aliceAddress,
228
279
  });
229
280
  this.logger.info(`BananaCoin deployed at ${bananaCoin.address}`);
@@ -244,7 +295,7 @@ export class FeesTest {
244
295
  expect((await this.wallet.getContractMetadata(feeJuiceContract.address)).isContractPublished).toBe(true);
245
296
 
246
297
  const bananaCoin = this.bananaCoin;
247
- const bananaFPC = await FPCContract.deploy(this.wallet, bananaCoin.address, this.fpcAdmin).send({
298
+ const { contract: bananaFPC } = await FPCContract.deploy(this.wallet, bananaCoin.address, this.fpcAdmin).send({
248
299
  from: this.aliceAddress,
249
300
  });
250
301
 
@@ -65,9 +65,11 @@ export class NestedContractTest {
65
65
 
66
66
  async applyManual() {
67
67
  this.logger.info('Deploying parent and child contracts');
68
- const parentContract = await ParentContract.deploy(this.wallet).send({ from: this.defaultAccountAddress });
69
- const childContract = await ChildContract.deploy(this.wallet).send({ from: this.defaultAccountAddress });
70
- this.parentContract = parentContract;
71
- this.childContract = childContract;
68
+ ({ contract: this.parentContract } = await ParentContract.deploy(this.wallet).send({
69
+ from: this.defaultAccountAddress,
70
+ }));
71
+ ({ contract: this.childContract } = await ChildContract.deploy(this.wallet).send({
72
+ from: this.defaultAccountAddress,
73
+ }));
72
74
  }
73
75
  }