@aztec/aztec.js 0.40.1 → 0.42.0

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 (107) hide show
  1. package/dest/account/index.d.ts +2 -2
  2. package/dest/account/index.d.ts.map +1 -1
  3. package/dest/account/interface.d.ts +16 -1
  4. package/dest/account/interface.d.ts.map +1 -1
  5. package/dest/account/interface.js +1 -1
  6. package/dest/account/wallet.d.ts +2 -2
  7. package/dest/account/wallet.d.ts.map +1 -1
  8. package/dest/account_manager/deploy_account_method.d.ts.map +1 -1
  9. package/dest/account_manager/deploy_account_method.js +8 -5
  10. package/dest/account_manager/index.d.ts +1 -1
  11. package/dest/account_manager/index.d.ts.map +1 -1
  12. package/dest/account_manager/index.js +2 -1
  13. package/dest/api/abi.d.ts +2 -2
  14. package/dest/api/abi.d.ts.map +1 -1
  15. package/dest/api/abi.js +1 -1
  16. package/dest/api/fee.d.ts +2 -0
  17. package/dest/api/fee.d.ts.map +1 -1
  18. package/dest/api/fee.js +3 -1
  19. package/dest/contract/base_contract_interaction.d.ts +7 -6
  20. package/dest/contract/base_contract_interaction.d.ts.map +1 -1
  21. package/dest/contract/base_contract_interaction.js +20 -9
  22. package/dest/contract/batch_call.d.ts +11 -0
  23. package/dest/contract/batch_call.d.ts.map +1 -1
  24. package/dest/contract/batch_call.js +50 -2
  25. package/dest/contract/contract_function_interaction.d.ts +2 -7
  26. package/dest/contract/contract_function_interaction.d.ts.map +1 -1
  27. package/dest/contract/contract_function_interaction.js +22 -36
  28. package/dest/contract/deploy_method.d.ts +5 -1
  29. package/dest/contract/deploy_method.d.ts.map +1 -1
  30. package/dest/contract/deploy_method.js +22 -6
  31. package/dest/contract/get_gas_limits.d.ts +1 -1
  32. package/dest/contract/get_gas_limits.d.ts.map +1 -1
  33. package/dest/contract/get_gas_limits.js +5 -3
  34. package/dest/contract/sent_tx.js +2 -2
  35. package/dest/entrypoint/default_entrypoint.d.ts.map +1 -1
  36. package/dest/entrypoint/default_entrypoint.js +6 -2
  37. package/dest/entrypoint/default_multi_call_entrypoint.d.ts.map +1 -1
  38. package/dest/entrypoint/default_multi_call_entrypoint.js +7 -5
  39. package/dest/entrypoint/payload.d.ts +26 -9
  40. package/dest/entrypoint/payload.d.ts.map +1 -1
  41. package/dest/entrypoint/payload.js +51 -28
  42. package/dest/fee/fee_payment_method.d.ts +6 -7
  43. package/dest/fee/fee_payment_method.d.ts.map +1 -1
  44. package/dest/fee/native_fee_payment_method.d.ts +5 -25
  45. package/dest/fee/native_fee_payment_method.d.ts.map +1 -1
  46. package/dest/fee/native_fee_payment_method.js +9 -45
  47. package/dest/fee/native_fee_payment_method_with_claim.d.ts +17 -0
  48. package/dest/fee/native_fee_payment_method_with_claim.d.ts.map +1 -0
  49. package/dest/fee/native_fee_payment_method_with_claim.js +32 -0
  50. package/dest/fee/no_fee_payment_method.d.ts +13 -0
  51. package/dest/fee/no_fee_payment_method.d.ts.map +1 -0
  52. package/dest/fee/no_fee_payment_method.js +17 -0
  53. package/dest/fee/private_fee_payment_method.d.ts +1 -5
  54. package/dest/fee/private_fee_payment_method.d.ts.map +1 -1
  55. package/dest/fee/private_fee_payment_method.js +15 -12
  56. package/dest/fee/public_fee_payment_method.d.ts +1 -5
  57. package/dest/fee/public_fee_payment_method.d.ts.map +1 -1
  58. package/dest/fee/public_fee_payment_method.js +15 -12
  59. package/dest/index.d.ts +11 -12
  60. package/dest/index.d.ts.map +1 -1
  61. package/dest/index.js +10 -11
  62. package/dest/rpc_clients/pxe_client.js +3 -3
  63. package/dest/utils/authwit.d.ts.map +1 -1
  64. package/dest/utils/authwit.js +2 -6
  65. package/dest/utils/cheat_codes.js +3 -3
  66. package/dest/wallet/account_wallet.d.ts +12 -1
  67. package/dest/wallet/account_wallet.d.ts.map +1 -1
  68. package/dest/wallet/account_wallet.js +58 -4
  69. package/dest/wallet/base_wallet.d.ts +10 -3
  70. package/dest/wallet/base_wallet.d.ts.map +1 -1
  71. package/dest/wallet/base_wallet.js +12 -3
  72. package/dest/wallet/create_recipient.d.ts.map +1 -1
  73. package/dest/wallet/create_recipient.js +3 -1
  74. package/dest/wallet/signerless_wallet.d.ts +2 -1
  75. package/dest/wallet/signerless_wallet.d.ts.map +1 -1
  76. package/dest/wallet/signerless_wallet.js +9 -6
  77. package/package.json +7 -7
  78. package/src/account/index.ts +2 -2
  79. package/src/account/interface.ts +17 -1
  80. package/src/account/wallet.ts +2 -2
  81. package/src/account_manager/deploy_account_method.ts +11 -3
  82. package/src/account_manager/index.ts +5 -1
  83. package/src/api/abi.ts +2 -2
  84. package/src/api/fee.ts +2 -0
  85. package/src/contract/base_contract_interaction.ts +32 -8
  86. package/src/contract/batch_call.ts +77 -1
  87. package/src/contract/contract_function_interaction.ts +31 -34
  88. package/src/contract/deploy_method.ts +23 -6
  89. package/src/contract/get_gas_limits.ts +4 -3
  90. package/src/contract/sent_tx.ts +1 -1
  91. package/src/entrypoint/default_entrypoint.ts +7 -1
  92. package/src/entrypoint/default_multi_call_entrypoint.ts +6 -4
  93. package/src/entrypoint/payload.ts +61 -25
  94. package/src/fee/fee_payment_method.ts +6 -8
  95. package/src/fee/native_fee_payment_method.ts +8 -46
  96. package/src/fee/native_fee_payment_method_with_claim.ts +33 -0
  97. package/src/fee/no_fee_payment_method.ts +23 -0
  98. package/src/fee/private_fee_payment_method.ts +15 -14
  99. package/src/fee/public_fee_payment_method.ts +15 -18
  100. package/src/index.ts +34 -32
  101. package/src/rpc_clients/pxe_client.ts +2 -2
  102. package/src/utils/authwit.ts +1 -5
  103. package/src/utils/cheat_codes.ts +3 -3
  104. package/src/wallet/account_wallet.ts +65 -3
  105. package/src/wallet/base_wallet.ts +21 -3
  106. package/src/wallet/create_recipient.ts +2 -0
  107. package/src/wallet/signerless_wallet.ts +10 -6
@@ -7,8 +7,8 @@
7
7
  * @packageDocumentation
8
8
  */
9
9
  import { type Fr } from '@aztec/circuits.js';
10
- export { AccountContract } from './contract.js';
11
- export { AccountInterface, AuthWitnessProvider } from './interface.js';
10
+ export { type AccountContract } from './contract.js';
11
+ export { type AccountInterface, type AuthWitnessProvider } from './interface.js';
12
12
  export * from './wallet.js';
13
13
  /** A contract deployment salt. */
14
14
  export type Salt = Fr | number | bigint;
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/account/index.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AACH,OAAO,EAAE,KAAK,EAAE,EAAE,MAAM,oBAAoB,CAAC;AAE7C,OAAO,EAAE,eAAe,EAAE,MAAM,eAAe,CAAC;AAChD,OAAO,EAAE,gBAAgB,EAAE,mBAAmB,EAAE,MAAM,gBAAgB,CAAC;AACvE,cAAc,aAAa,CAAC;AAE5B,kCAAkC;AAClC,MAAM,MAAM,IAAI,GAAG,EAAE,GAAG,MAAM,GAAG,MAAM,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/account/index.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AACH,OAAO,EAAE,KAAK,EAAE,EAAE,MAAM,oBAAoB,CAAC;AAE7C,OAAO,EAAE,KAAK,eAAe,EAAE,MAAM,eAAe,CAAC;AACrD,OAAO,EAAE,KAAK,gBAAgB,EAAE,KAAK,mBAAmB,EAAE,MAAM,gBAAgB,CAAC;AACjF,cAAc,aAAa,CAAC;AAE5B,kCAAkC;AAClC,MAAM,MAAM,IAAI,GAAG,EAAE,GAAG,MAAM,GAAG,MAAM,CAAC"}
@@ -1,7 +1,7 @@
1
1
  /// <reference types="node" resolution-mode="require"/>
2
2
  import { type AuthWitness, type CompleteAddress, type FunctionCall } from '@aztec/circuit-types';
3
3
  import { type AztecAddress } from '@aztec/circuits.js';
4
- import { type Fr } from '@aztec/foundation/fields';
4
+ import { type Fq, type Fr } from '@aztec/foundation/fields';
5
5
  import { type ContractFunctionInteraction } from '../contract/contract_function_interaction.js';
6
6
  import { type EntrypointInterface } from '../entrypoint/entrypoint.js';
7
7
  /** Creates authorization witnesses. */
@@ -40,4 +40,19 @@ export interface AccountInterface extends AuthWitnessProvider, EntrypointInterfa
40
40
  /** Returns the rollup version for this account */
41
41
  getVersion(): Fr;
42
42
  }
43
+ /**
44
+ * Handler for interfacing with an account's ability to rotate its keys.
45
+ */
46
+ export interface AccountKeyRotationInterface {
47
+ /**
48
+ * Rotates the account master nullifier key pair.
49
+ * @param newNskM - The new master nullifier secret key we want to use.
50
+ * @remarks - This function also calls the canonical key registry with the account's new derived master nullifier public key.
51
+ * We are doing it this way to avoid user error, in the case that a user rotates their keys in the key registry,
52
+ * but fails to do so in the key store. This leads to unspendable notes.
53
+ *
54
+ * This does not hinder our ability to spend notes tied to a previous master nullifier public key, provided we have the master nullifier secret key for it.
55
+ */
56
+ rotateNullifierKeys(newNskM: Fq): Promise<void>;
57
+ }
43
58
  //# sourceMappingURL=interface.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"interface.d.ts","sourceRoot":"","sources":["../../src/account/interface.ts"],"names":[],"mappings":";AAAA,OAAO,EAAE,KAAK,WAAW,EAAE,KAAK,eAAe,EAAE,KAAK,YAAY,EAAE,MAAM,sBAAsB,CAAC;AACjG,OAAO,EAAE,KAAK,YAAY,EAAE,MAAM,oBAAoB,CAAC;AACvD,OAAO,EAAE,KAAK,EAAE,EAAE,MAAM,0BAA0B,CAAC;AAEnD,OAAO,EAAE,KAAK,2BAA2B,EAAE,MAAM,8CAA8C,CAAC;AAChG,OAAO,EAAE,KAAK,mBAAmB,EAAE,MAAM,6BAA6B,CAAC;AAGvE,uCAAuC;AACvC,MAAM,WAAW,mBAAmB;IAClC;;;;;;;;OAQG;IACH,aAAa,CACX,mBAAmB,EACf,EAAE,GACF,MAAM,GACN;QACE,6BAA6B;QAC7B,MAAM,EAAE,YAAY,CAAC;QACrB,4BAA4B;QAC5B,MAAM,EAAE,2BAA2B,GAAG,YAAY,CAAC;QACnD,8BAA8B;QAC9B,OAAO,CAAC,EAAE,EAAE,CAAC;QACb,8BAA8B;QAC9B,OAAO,CAAC,EAAE,EAAE,CAAC;KACd,GACJ,OAAO,CAAC,WAAW,CAAC,CAAC;CACzB;AAED;;;GAGG;AACH,MAAM,WAAW,gBAAiB,SAAQ,mBAAmB,EAAE,mBAAmB;IAChF,qDAAqD;IACrD,kBAAkB,IAAI,eAAe,CAAC;IAEtC,4CAA4C;IAC5C,UAAU,IAAI,YAAY,CAAC;IAE3B,4CAA4C;IAC5C,UAAU,IAAI,EAAE,CAAC;IAEjB,kDAAkD;IAClD,UAAU,IAAI,EAAE,CAAC;CAClB"}
1
+ {"version":3,"file":"interface.d.ts","sourceRoot":"","sources":["../../src/account/interface.ts"],"names":[],"mappings":";AAAA,OAAO,EAAE,KAAK,WAAW,EAAE,KAAK,eAAe,EAAE,KAAK,YAAY,EAAE,MAAM,sBAAsB,CAAC;AACjG,OAAO,EAAE,KAAK,YAAY,EAAE,MAAM,oBAAoB,CAAC;AACvD,OAAO,EAAE,KAAK,EAAE,EAAE,KAAK,EAAE,EAAE,MAAM,0BAA0B,CAAC;AAE5D,OAAO,EAAE,KAAK,2BAA2B,EAAE,MAAM,8CAA8C,CAAC;AAChG,OAAO,EAAE,KAAK,mBAAmB,EAAE,MAAM,6BAA6B,CAAC;AAGvE,uCAAuC;AACvC,MAAM,WAAW,mBAAmB;IAClC;;;;;;;;OAQG;IACH,aAAa,CACX,mBAAmB,EACf,EAAE,GACF,MAAM,GACN;QACE,6BAA6B;QAC7B,MAAM,EAAE,YAAY,CAAC;QACrB,4BAA4B;QAC5B,MAAM,EAAE,2BAA2B,GAAG,YAAY,CAAC;QACnD,8BAA8B;QAC9B,OAAO,CAAC,EAAE,EAAE,CAAC;QACb,8BAA8B;QAC9B,OAAO,CAAC,EAAE,EAAE,CAAC;KACd,GACJ,OAAO,CAAC,WAAW,CAAC,CAAC;CACzB;AAED;;;GAGG;AACH,MAAM,WAAW,gBAAiB,SAAQ,mBAAmB,EAAE,mBAAmB;IAChF,qDAAqD;IACrD,kBAAkB,IAAI,eAAe,CAAC;IAEtC,4CAA4C;IAC5C,UAAU,IAAI,YAAY,CAAC;IAE3B,4CAA4C;IAC5C,UAAU,IAAI,EAAE,CAAC;IAEjB,kDAAkD;IAClD,UAAU,IAAI,EAAE,CAAC;CAClB;AAED;;GAEG;AACH,MAAM,WAAW,2BAA2B;IAC1C;;;;;;;;OAQG;IACH,mBAAmB,CAAC,OAAO,EAAE,EAAE,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;CACjD"}
@@ -1,3 +1,3 @@
1
1
  export {};
2
2
  // docs:end:account-interface
3
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW50ZXJmYWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL2FjY291bnQvaW50ZXJmYWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7QUFxREEsNkJBQTZCIn0=
3
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW50ZXJmYWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL2FjY291bnQvaW50ZXJmYWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7QUFxRUEsNkJBQTZCIn0=
@@ -1,7 +1,7 @@
1
1
  import { type PXE } from '@aztec/circuit-types';
2
- import { type AccountInterface } from './interface.js';
2
+ import { type AccountInterface, type AccountKeyRotationInterface } from './interface.js';
3
3
  /**
4
4
  * The wallet interface.
5
5
  */
6
- export type Wallet = AccountInterface & PXE;
6
+ export type Wallet = AccountInterface & PXE & AccountKeyRotationInterface;
7
7
  //# sourceMappingURL=wallet.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"wallet.d.ts","sourceRoot":"","sources":["../../src/account/wallet.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,GAAG,EAAE,MAAM,sBAAsB,CAAC;AAEhD,OAAO,EAAE,KAAK,gBAAgB,EAAE,MAAM,gBAAgB,CAAC;AAEvD;;GAEG;AACH,MAAM,MAAM,MAAM,GAAG,gBAAgB,GAAG,GAAG,CAAC"}
1
+ {"version":3,"file":"wallet.d.ts","sourceRoot":"","sources":["../../src/account/wallet.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,GAAG,EAAE,MAAM,sBAAsB,CAAC;AAEhD,OAAO,EAAE,KAAK,gBAAgB,EAAE,KAAK,2BAA2B,EAAE,MAAM,gBAAgB,CAAC;AAEzF;;GAEG;AACH,MAAM,MAAM,MAAM,GAAG,gBAAgB,GAAG,GAAG,GAAG,2BAA2B,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"deploy_account_method.d.ts","sourceRoot":"","sources":["../../src/account_manager/deploy_account_method.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,EAAE,EAAgB,MAAM,oBAAoB,CAAC;AAC3D,OAAO,EACL,KAAK,gBAAgB,EACrB,KAAK,gBAAgB,EAGtB,MAAM,uBAAuB,CAAC;AAE/B,OAAO,EAAE,KAAK,mBAAmB,EAAE,MAAM,yBAAyB,CAAC;AACnE,OAAO,EAAE,KAAK,MAAM,EAAE,MAAM,sBAAsB,CAAC;AACnD,OAAO,EAAE,KAAK,oBAAoB,EAAE,MAAM,sBAAsB,CAAC;AAEjE,OAAO,EAAE,YAAY,EAAE,KAAK,aAAa,EAAE,MAAM,8BAA8B,CAAC;AAGhF;;GAEG;AACH,qBAAa,mBAAoB,SAAQ,YAAY;;gBAKjD,mBAAmB,EAAE,mBAAmB,EACxC,cAAc,EAAE,EAAE,EAClB,MAAM,EAAE,MAAM,EACd,QAAQ,EAAE,gBAAgB,EAC1B,IAAI,GAAE,GAAG,EAAO,EAChB,yBAAyB,CAAC,EAAE,MAAM,GAAG,gBAAgB,EACrD,wBAAwB,CAAC,EAAE,MAAM,GAAG,gBAAgB;cAkB7B,0BAA0B,CAAC,OAAO,EAAE,aAAa,GAAG,OAAO,CAAC,oBAAoB,CAAC;CAyB3G"}
1
+ {"version":3,"file":"deploy_account_method.d.ts","sourceRoot":"","sources":["../../src/account_manager/deploy_account_method.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,EAAE,EAAE,MAAM,oBAAoB,CAAC;AAC7C,OAAO,EACL,KAAK,gBAAgB,EACrB,KAAK,gBAAgB,EAItB,MAAM,uBAAuB,CAAC;AAE/B,OAAO,EAAE,KAAK,mBAAmB,EAAE,MAAM,yBAAyB,CAAC;AACnE,OAAO,EAAE,KAAK,MAAM,EAAE,MAAM,sBAAsB,CAAC;AACnD,OAAO,EAAE,KAAK,oBAAoB,EAAE,MAAM,sBAAsB,CAAC;AAEjE,OAAO,EAAE,YAAY,EAAE,KAAK,aAAa,EAAE,MAAM,8BAA8B,CAAC;AAGhF;;GAEG;AACH,qBAAa,mBAAoB,SAAQ,YAAY;;gBAKjD,mBAAmB,EAAE,mBAAmB,EACxC,cAAc,EAAE,EAAE,EAClB,MAAM,EAAE,MAAM,EACd,QAAQ,EAAE,gBAAgB,EAC1B,IAAI,GAAE,GAAG,EAAO,EAChB,yBAAyB,CAAC,EAAE,MAAM,GAAG,gBAAgB,EACrD,wBAAwB,CAAC,EAAE,MAAM,GAAG,gBAAgB;cAkB7B,0BAA0B,CAAC,OAAO,EAAE,aAAa,GAAG,OAAO,CAAC,oBAAoB,CAAC;CAgC3G"}
@@ -1,7 +1,6 @@
1
1
  var _DeployAccountMethod_authWitnessProvider, _DeployAccountMethod_feePaymentArtifact;
2
2
  import { __classPrivateFieldGet, __classPrivateFieldSet } from "tslib";
3
- import { FunctionData } from '@aztec/circuits.js';
4
- import { encodeArguments, getFunctionArtifact, } from '@aztec/foundation/abi';
3
+ import { FunctionSelector, encodeArguments, getFunctionArtifact, } from '@aztec/foundation/abi';
5
4
  import { Contract } from '../contract/contract.js';
6
5
  import { DeployMethod } from '../contract/deploy_method.js';
7
6
  import { EntrypointPayload } from '../entrypoint/payload.js';
@@ -23,11 +22,15 @@ export class DeployAccountMethod extends DeployMethod {
23
22
  if (options.fee && __classPrivateFieldGet(this, _DeployAccountMethod_feePaymentArtifact, "f")) {
24
23
  const { address } = this.getInstance();
25
24
  const emptyAppPayload = EntrypointPayload.fromAppExecution([]);
26
- const feePayload = await EntrypointPayload.fromFeeOptions(options?.fee);
25
+ const feePayload = await EntrypointPayload.fromFeeOptions(address, options?.fee);
27
26
  exec.calls.push({
27
+ name: __classPrivateFieldGet(this, _DeployAccountMethod_feePaymentArtifact, "f").name,
28
28
  to: address,
29
29
  args: encodeArguments(__classPrivateFieldGet(this, _DeployAccountMethod_feePaymentArtifact, "f"), [emptyAppPayload, feePayload]),
30
- functionData: FunctionData.fromAbi(__classPrivateFieldGet(this, _DeployAccountMethod_feePaymentArtifact, "f")),
30
+ selector: FunctionSelector.fromNameAndParameters(__classPrivateFieldGet(this, _DeployAccountMethod_feePaymentArtifact, "f").name, __classPrivateFieldGet(this, _DeployAccountMethod_feePaymentArtifact, "f").parameters),
31
+ type: __classPrivateFieldGet(this, _DeployAccountMethod_feePaymentArtifact, "f").functionType,
32
+ isStatic: __classPrivateFieldGet(this, _DeployAccountMethod_feePaymentArtifact, "f").isStatic,
33
+ returnTypes: __classPrivateFieldGet(this, _DeployAccountMethod_feePaymentArtifact, "f").returnTypes,
31
34
  });
32
35
  exec.authWitnesses ?? (exec.authWitnesses = []);
33
36
  exec.packedArguments ?? (exec.packedArguments = []);
@@ -40,4 +43,4 @@ export class DeployAccountMethod extends DeployMethod {
40
43
  }
41
44
  }
42
45
  _DeployAccountMethod_authWitnessProvider = new WeakMap(), _DeployAccountMethod_feePaymentArtifact = new WeakMap();
43
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGVwbG95X2FjY291bnRfbWV0aG9kLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL2FjY291bnRfbWFuYWdlci9kZXBsb3lfYWNjb3VudF9tZXRob2QudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7QUFBQSxPQUFPLEVBQVcsWUFBWSxFQUFFLE1BQU0sb0JBQW9CLENBQUM7QUFDM0QsT0FBTyxFQUdMLGVBQWUsRUFDZixtQkFBbUIsR0FDcEIsTUFBTSx1QkFBdUIsQ0FBQztBQUsvQixPQUFPLEVBQUUsUUFBUSxFQUFFLE1BQU0seUJBQXlCLENBQUM7QUFDbkQsT0FBTyxFQUFFLFlBQVksRUFBc0IsTUFBTSw4QkFBOEIsQ0FBQztBQUNoRixPQUFPLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSwwQkFBMEIsQ0FBQztBQUU3RDs7R0FFRztBQUNILE1BQU0sT0FBTyxtQkFBb0IsU0FBUSxZQUFZO0lBSW5ELFlBQ0UsbUJBQXdDLEVBQ3hDLGNBQWtCLEVBQ2xCLE1BQWMsRUFDZCxRQUEwQixFQUMxQixPQUFjLEVBQUUsRUFDaEIseUJBQXFELEVBQ3JELHdCQUFvRDtRQUVwRCxLQUFLLENBQ0gsY0FBYyxFQUNkLE1BQU0sRUFDTixRQUFRLEVBQ1IsQ0FBQyxPQUFPLEVBQUUsTUFBTSxFQUFFLEVBQUUsQ0FBQyxRQUFRLENBQUMsRUFBRSxDQUFDLE9BQU8sRUFBRSxRQUFRLEVBQUUsTUFBTSxDQUFDLEVBQzNELElBQUksRUFDSix5QkFBeUIsQ0FDMUIsQ0FBQztRQW5CSiwyREFBMEM7UUFDMUMsMERBQWtEO1FBb0JoRCx1QkFBQSxJQUFJLDRDQUF3QixtQkFBbUIsTUFBQSxDQUFDO1FBQ2hELHVCQUFBLElBQUksMkNBQ0YsT0FBTyx3QkFBd0IsS0FBSyxRQUFRO1lBQzFDLENBQUMsQ0FBQyxtQkFBbUIsQ0FBQyxRQUFRLEVBQUUsd0JBQXdCLENBQUM7WUFDekQsQ0FBQyxDQUFDLHdCQUF3QixNQUFBLENBQUM7SUFDakMsQ0FBQztJQUVrQixLQUFLLENBQUMsMEJBQTBCLENBQUMsT0FBc0I7UUFDeEUsTUFBTSxJQUFJLEdBQUcsTUFBTSxLQUFLLENBQUMsMEJBQTBCLENBQUMsT0FBTyxDQUFDLENBQUM7UUFFN0QsSUFBSSxPQUFPLENBQUMsR0FBRyxJQUFJLHVCQUFBLElBQUksK0NBQW9CLEVBQUUsQ0FBQztZQUM1QyxNQUFNLEVBQUUsT0FBTyxFQUFFLEdBQUcsSUFBSSxDQUFDLFdBQVcsRUFBRSxDQUFDO1lBQ3ZDLE1BQU0sZUFBZSxHQUFHLGlCQUFpQixDQUFDLGdCQUFnQixDQUFDLEVBQUUsQ0FBQyxDQUFDO1lBQy9ELE1BQU0sVUFBVSxHQUFHLE1BQU0saUJBQWlCLENBQUMsY0FBYyxDQUFDLE9BQU8sRUFBRSxHQUFHLENBQUMsQ0FBQztZQUV4RSxJQUFJLENBQUMsS0FBSyxDQUFDLElBQUksQ0FBQztnQkFDZCxFQUFFLEVBQUUsT0FBTztnQkFDWCxJQUFJLEVBQUUsZUFBZSxDQUFDLHVCQUFBLElBQUksK0NBQW9CLEVBQUUsQ0FBQyxlQUFlLEVBQUUsVUFBVSxDQUFDLENBQUM7Z0JBQzlFLFlBQVksRUFBRSxZQUFZLENBQUMsT0FBTyxDQUFDLHVCQUFBLElBQUksK0NBQW9CLENBQUM7YUFDN0QsQ0FBQyxDQUFDO1lBRUgsSUFBSSxDQUFDLGFBQWEsS0FBbEIsSUFBSSxDQUFDLGFBQWEsR0FBSyxFQUFFLEVBQUM7WUFDMUIsSUFBSSxDQUFDLGVBQWUsS0FBcEIsSUFBSSxDQUFDLGVBQWUsR0FBSyxFQUFFLEVBQUM7WUFFNUIsSUFBSSxDQUFDLGFBQWEsQ0FBQyxJQUFJLENBQUMsTUFBTSx1QkFBQSxJQUFJLGdEQUFxQixDQUFDLGFBQWEsQ0FBQyxlQUFlLENBQUMsSUFBSSxFQUFFLENBQUMsQ0FBQyxDQUFDO1lBQy9GLElBQUksQ0FBQyxhQUFhLENBQUMsSUFBSSxDQUFDLE1BQU0sdUJBQUEsSUFBSSxnREFBcUIsQ0FBQyxhQUFhLENBQUMsVUFBVSxDQUFDLElBQUksRUFBRSxDQUFDLENBQUMsQ0FBQztZQUMxRixJQUFJLENBQUMsZUFBZSxDQUFDLElBQUksQ0FBQyxHQUFHLGVBQWUsQ0FBQyxlQUFlLENBQUMsQ0FBQztZQUM5RCxJQUFJLENBQUMsZUFBZSxDQUFDLElBQUksQ0FBQyxHQUFHLFVBQVUsQ0FBQyxlQUFlLENBQUMsQ0FBQztRQUMzRCxDQUFDO1FBRUQsT0FBTyxJQUFJLENBQUM7SUFDZCxDQUFDO0NBQ0YifQ==
46
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGVwbG95X2FjY291bnRfbWV0aG9kLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL2FjY291bnRfbWFuYWdlci9kZXBsb3lfYWNjb3VudF9tZXRob2QudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7QUFDQSxPQUFPLEVBR0wsZ0JBQWdCLEVBQ2hCLGVBQWUsRUFDZixtQkFBbUIsR0FDcEIsTUFBTSx1QkFBdUIsQ0FBQztBQUsvQixPQUFPLEVBQUUsUUFBUSxFQUFFLE1BQU0seUJBQXlCLENBQUM7QUFDbkQsT0FBTyxFQUFFLFlBQVksRUFBc0IsTUFBTSw4QkFBOEIsQ0FBQztBQUNoRixPQUFPLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSwwQkFBMEIsQ0FBQztBQUU3RDs7R0FFRztBQUNILE1BQU0sT0FBTyxtQkFBb0IsU0FBUSxZQUFZO0lBSW5ELFlBQ0UsbUJBQXdDLEVBQ3hDLGNBQWtCLEVBQ2xCLE1BQWMsRUFDZCxRQUEwQixFQUMxQixPQUFjLEVBQUUsRUFDaEIseUJBQXFELEVBQ3JELHdCQUFvRDtRQUVwRCxLQUFLLENBQ0gsY0FBYyxFQUNkLE1BQU0sRUFDTixRQUFRLEVBQ1IsQ0FBQyxPQUFPLEVBQUUsTUFBTSxFQUFFLEVBQUUsQ0FBQyxRQUFRLENBQUMsRUFBRSxDQUFDLE9BQU8sRUFBRSxRQUFRLEVBQUUsTUFBTSxDQUFDLEVBQzNELElBQUksRUFDSix5QkFBeUIsQ0FDMUIsQ0FBQztRQW5CSiwyREFBMEM7UUFDMUMsMERBQWtEO1FBb0JoRCx1QkFBQSxJQUFJLDRDQUF3QixtQkFBbUIsTUFBQSxDQUFDO1FBQ2hELHVCQUFBLElBQUksMkNBQ0YsT0FBTyx3QkFBd0IsS0FBSyxRQUFRO1lBQzFDLENBQUMsQ0FBQyxtQkFBbUIsQ0FBQyxRQUFRLEVBQUUsd0JBQXdCLENBQUM7WUFDekQsQ0FBQyxDQUFDLHdCQUF3QixNQUFBLENBQUM7SUFDakMsQ0FBQztJQUVrQixLQUFLLENBQUMsMEJBQTBCLENBQUMsT0FBc0I7UUFDeEUsTUFBTSxJQUFJLEdBQUcsTUFBTSxLQUFLLENBQUMsMEJBQTBCLENBQUMsT0FBTyxDQUFDLENBQUM7UUFFN0QsSUFBSSxPQUFPLENBQUMsR0FBRyxJQUFJLHVCQUFBLElBQUksK0NBQW9CLEVBQUUsQ0FBQztZQUM1QyxNQUFNLEVBQUUsT0FBTyxFQUFFLEdBQUcsSUFBSSxDQUFDLFdBQVcsRUFBRSxDQUFDO1lBQ3ZDLE1BQU0sZUFBZSxHQUFHLGlCQUFpQixDQUFDLGdCQUFnQixDQUFDLEVBQUUsQ0FBQyxDQUFDO1lBQy9ELE1BQU0sVUFBVSxHQUFHLE1BQU0saUJBQWlCLENBQUMsY0FBYyxDQUFDLE9BQU8sRUFBRSxPQUFPLEVBQUUsR0FBRyxDQUFDLENBQUM7WUFFakYsSUFBSSxDQUFDLEtBQUssQ0FBQyxJQUFJLENBQUM7Z0JBQ2QsSUFBSSxFQUFFLHVCQUFBLElBQUksK0NBQW9CLENBQUMsSUFBSTtnQkFDbkMsRUFBRSxFQUFFLE9BQU87Z0JBQ1gsSUFBSSxFQUFFLGVBQWUsQ0FBQyx1QkFBQSxJQUFJLCtDQUFvQixFQUFFLENBQUMsZUFBZSxFQUFFLFVBQVUsQ0FBQyxDQUFDO2dCQUM5RSxRQUFRLEVBQUUsZ0JBQWdCLENBQUMscUJBQXFCLENBQzlDLHVCQUFBLElBQUksK0NBQW9CLENBQUMsSUFBSSxFQUM3Qix1QkFBQSxJQUFJLCtDQUFvQixDQUFDLFVBQVUsQ0FDcEM7Z0JBQ0QsSUFBSSxFQUFFLHVCQUFBLElBQUksK0NBQW9CLENBQUMsWUFBWTtnQkFDM0MsUUFBUSxFQUFFLHVCQUFBLElBQUksK0NBQW9CLENBQUMsUUFBUTtnQkFDM0MsV0FBVyxFQUFFLHVCQUFBLElBQUksK0NBQW9CLENBQUMsV0FBVzthQUNsRCxDQUFDLENBQUM7WUFFSCxJQUFJLENBQUMsYUFBYSxLQUFsQixJQUFJLENBQUMsYUFBYSxHQUFLLEVBQUUsRUFBQztZQUMxQixJQUFJLENBQUMsZUFBZSxLQUFwQixJQUFJLENBQUMsZUFBZSxHQUFLLEVBQUUsRUFBQztZQUU1QixJQUFJLENBQUMsYUFBYSxDQUFDLElBQUksQ0FBQyxNQUFNLHVCQUFBLElBQUksZ0RBQXFCLENBQUMsYUFBYSxDQUFDLGVBQWUsQ0FBQyxJQUFJLEVBQUUsQ0FBQyxDQUFDLENBQUM7WUFDL0YsSUFBSSxDQUFDLGFBQWEsQ0FBQyxJQUFJLENBQUMsTUFBTSx1QkFBQSxJQUFJLGdEQUFxQixDQUFDLGFBQWEsQ0FBQyxVQUFVLENBQUMsSUFBSSxFQUFFLENBQUMsQ0FBQyxDQUFDO1lBQzFGLElBQUksQ0FBQyxlQUFlLENBQUMsSUFBSSxDQUFDLEdBQUcsZUFBZSxDQUFDLGVBQWUsQ0FBQyxDQUFDO1lBQzlELElBQUksQ0FBQyxlQUFlLENBQUMsSUFBSSxDQUFDLEdBQUcsVUFBVSxDQUFDLGVBQWUsQ0FBQyxDQUFDO1FBQzNELENBQUM7UUFFRCxPQUFPLElBQUksQ0FBQztJQUNkLENBQUM7Q0FDRiJ9
@@ -12,7 +12,7 @@ import { DeployAccountSentTx } from './deploy_account_sent_tx.js';
12
12
  /**
13
13
  * Options to deploy an account contract.
14
14
  */
15
- export type DeployAccountOptions = Pick<DeployOptions, 'fee' | 'skipClassRegistration' | 'skipPublicDeployment'>;
15
+ export type DeployAccountOptions = Pick<DeployOptions, 'fee' | 'skipClassRegistration' | 'skipPublicDeployment' | 'estimateGas'>;
16
16
  /**
17
17
  * Manages a user account. Provides methods for calculating the account's address, deploying the account contract,
18
18
  * and creating and registering the user wallet in the PXE Service.
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/account_manager/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,eAAe,EAAE,KAAK,GAAG,EAAE,MAAM,sBAAsB,CAAC;AAEjE,OAAO,EAAE,EAAE,EAAE,MAAM,0BAA0B,CAAC;AAC9C,OAAO,EAAE,KAAK,2BAA2B,EAAE,MAAM,wBAAwB,CAAC;AAE1E,OAAO,EAAE,KAAK,eAAe,EAAE,MAAM,wBAAwB,CAAC;AAC9D,OAAO,EAAE,KAAK,IAAI,EAAE,MAAM,qBAAqB,CAAC;AAChD,OAAO,EAAE,KAAK,gBAAgB,EAAE,MAAM,yBAAyB,CAAC;AAChE,OAAO,EAAE,KAAK,aAAa,EAAE,MAAM,8BAA8B,CAAC;AAClE,OAAO,EAAmB,KAAK,QAAQ,EAAE,MAAM,wBAAwB,CAAC;AAGxE,OAAO,EAAE,0BAA0B,EAAoB,MAAM,oBAAoB,CAAC;AAClF,OAAO,EAAE,mBAAmB,EAAE,MAAM,4BAA4B,CAAC;AACjE,OAAO,EAAE,mBAAmB,EAAE,MAAM,6BAA6B,CAAC;AAElE;;GAEG;AACH,MAAM,MAAM,oBAAoB,GAAG,IAAI,CAAC,aAAa,EAAE,KAAK,GAAG,uBAAuB,GAAG,sBAAsB,CAAC,CAAC;AAEjH;;;GAGG;AACH,qBAAa,cAAc;;IAUb,OAAO,CAAC,GAAG;IAAO,OAAO,CAAC,SAAS;IAAM,OAAO,CAAC,eAAe;IAT5E,gDAAgD;IAChD,SAAgB,IAAI,EAAE,EAAE,CAAC;IAGzB,OAAO,CAAC,eAAe,CAAC,CAAkB;IAC1C,OAAO,CAAC,QAAQ,CAAC,CAA8B;IAC/C,OAAO,CAAC,cAAc,CAAC,CAAK;IAC5B,OAAO,CAAC,YAAY,CAAC,CAAsB;gBAEvB,GAAG,EAAE,GAAG,EAAU,SAAS,EAAE,EAAE,EAAU,eAAe,EAAE,eAAe,EAAE,IAAI,CAAC,EAAE,IAAI;IAI1G,SAAS,CAAC,iBAAiB;IAO3B;;;OAGG;IACU,UAAU,IAAI,OAAO,CAAC,gBAAgB,CAAC;IAMpD;;;;OAIG;IACI,kBAAkB,IAAI,eAAe;IAQ5C;;;;OAIG;IACI,WAAW,IAAI,2BAA2B;IAWjD;;;;OAIG;IACU,SAAS,IAAI,OAAO,CAAC,0BAA0B,CAAC;IAK7D;;;;;;OAMG;IACU,QAAQ,CAAC,IAAI,GAAE,QAA0B,GAAG,OAAO,CAAC,0BAA0B,CAAC;IAW5F;;;;;OAKG;IACU,eAAe;IA4B5B;;;;;;;OAOG;IACI,MAAM,CAAC,IAAI,CAAC,EAAE,oBAAoB,GAAG,mBAAmB;IAgB/D;;;;;;OAMG;IACU,SAAS,CAAC,IAAI,GAAE,QAA0B,GAAG,OAAO,CAAC,0BAA0B,CAAC;IAK7F;;OAEG;IACI,YAAY;CAQpB"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/account_manager/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,eAAe,EAAE,KAAK,GAAG,EAAE,MAAM,sBAAsB,CAAC;AAEjE,OAAO,EAAE,EAAE,EAAE,MAAM,0BAA0B,CAAC;AAC9C,OAAO,EAAE,KAAK,2BAA2B,EAAE,MAAM,wBAAwB,CAAC;AAE1E,OAAO,EAAE,KAAK,eAAe,EAAE,MAAM,wBAAwB,CAAC;AAC9D,OAAO,EAAE,KAAK,IAAI,EAAE,MAAM,qBAAqB,CAAC;AAChD,OAAO,EAAE,KAAK,gBAAgB,EAAE,MAAM,yBAAyB,CAAC;AAChE,OAAO,EAAE,KAAK,aAAa,EAAE,MAAM,8BAA8B,CAAC;AAClE,OAAO,EAAmB,KAAK,QAAQ,EAAE,MAAM,wBAAwB,CAAC;AAGxE,OAAO,EAAE,0BAA0B,EAAoB,MAAM,oBAAoB,CAAC;AAClF,OAAO,EAAE,mBAAmB,EAAE,MAAM,4BAA4B,CAAC;AACjE,OAAO,EAAE,mBAAmB,EAAE,MAAM,6BAA6B,CAAC;AAElE;;GAEG;AACH,MAAM,MAAM,oBAAoB,GAAG,IAAI,CACrC,aAAa,EACb,KAAK,GAAG,uBAAuB,GAAG,sBAAsB,GAAG,aAAa,CACzE,CAAC;AAEF;;;GAGG;AACH,qBAAa,cAAc;;IAUb,OAAO,CAAC,GAAG;IAAO,OAAO,CAAC,SAAS;IAAM,OAAO,CAAC,eAAe;IAT5E,gDAAgD;IAChD,SAAgB,IAAI,EAAE,EAAE,CAAC;IAGzB,OAAO,CAAC,eAAe,CAAC,CAAkB;IAC1C,OAAO,CAAC,QAAQ,CAAC,CAA8B;IAC/C,OAAO,CAAC,cAAc,CAAC,CAAK;IAC5B,OAAO,CAAC,YAAY,CAAC,CAAsB;gBAEvB,GAAG,EAAE,GAAG,EAAU,SAAS,EAAE,EAAE,EAAU,eAAe,EAAE,eAAe,EAAE,IAAI,CAAC,EAAE,IAAI;IAI1G,SAAS,CAAC,iBAAiB;IAO3B;;;OAGG;IACU,UAAU,IAAI,OAAO,CAAC,gBAAgB,CAAC;IAMpD;;;;OAIG;IACI,kBAAkB,IAAI,eAAe;IAQ5C;;;;OAIG;IACI,WAAW,IAAI,2BAA2B;IAWjD;;;;OAIG;IACU,SAAS,IAAI,OAAO,CAAC,0BAA0B,CAAC;IAK7D;;;;;;OAMG;IACU,QAAQ,CAAC,IAAI,GAAE,QAA0B,GAAG,OAAO,CAAC,0BAA0B,CAAC;IAW5F;;;;;OAKG;IACU,eAAe;IA4B5B;;;;;;;OAOG;IACI,MAAM,CAAC,IAAI,CAAC,EAAE,oBAAoB,GAAG,mBAAmB;IAiB/D;;;;;;OAMG;IACU,SAAS,CAAC,IAAI,GAAE,QAA0B,GAAG,OAAO,CAAC,0BAA0B,CAAC;IAK7F;;OAEG;IACI,YAAY;CAQpB"}
@@ -127,6 +127,7 @@ export class AccountManager {
127
127
  skipInitialization: false,
128
128
  universalDeploy: true,
129
129
  fee: opts?.fee,
130
+ estimateGas: opts?.estimateGas,
130
131
  }))
131
132
  .then(tx => tx.getTxHash());
132
133
  return new DeployAccountSentTx(this.pxe, sentTx, this.getWallet());
@@ -153,4 +154,4 @@ _AccountManager_instances = new WeakSet(), _AccountManager_register = async func
153
154
  const completeAddress = this.getCompleteAddress();
154
155
  await this.pxe.registerAccount(this.secretKey, completeAddress.partialAddress);
155
156
  };
156
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvYWNjb3VudF9tYW5hZ2VyL2luZGV4LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7O0FBQUEsT0FBTyxFQUFFLGVBQWUsRUFBWSxNQUFNLHNCQUFzQixDQUFDO0FBQ2pFLE9BQU8sRUFBRSxVQUFVLEVBQUUsbUNBQW1DLEVBQUUsTUFBTSxvQkFBb0IsQ0FBQztBQUNyRixPQUFPLEVBQUUsRUFBRSxFQUFFLE1BQU0sMEJBQTBCLENBQUM7QUFPOUMsT0FBTyxFQUFFLGVBQWUsRUFBaUIsTUFBTSx3QkFBd0IsQ0FBQztBQUN4RSxPQUFPLEVBQUUsMEJBQTBCLEVBQUUsTUFBTSxnREFBZ0QsQ0FBQztBQUM1RixPQUFPLEVBQUUsbUJBQW1CLEVBQUUsTUFBTSxxQkFBcUIsQ0FBQztBQUMxRCxPQUFPLEVBQUUsMEJBQTBCLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSxvQkFBb0IsQ0FBQztBQUNsRixPQUFPLEVBQUUsbUJBQW1CLEVBQUUsTUFBTSw0QkFBNEIsQ0FBQztBQUNqRSxPQUFPLEVBQUUsbUJBQW1CLEVBQUUsTUFBTSw2QkFBNkIsQ0FBQztBQU9sRTs7O0dBR0c7QUFDSCxNQUFNLE9BQU8sY0FBYztJQVV6QixZQUFvQixHQUFRLEVBQVUsU0FBYSxFQUFVLGVBQWdDLEVBQUUsSUFBVzs7UUFBdEYsUUFBRyxHQUFILEdBQUcsQ0FBSztRQUFVLGNBQVMsR0FBVCxTQUFTLENBQUk7UUFBVSxvQkFBZSxHQUFmLGVBQWUsQ0FBaUI7UUFDM0YsSUFBSSxDQUFDLElBQUksR0FBRyxJQUFJLEtBQUssU0FBUyxDQUFDLENBQUMsQ0FBQyxJQUFJLEVBQUUsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLE1BQU0sRUFBRSxDQUFDO0lBQzlELENBQUM7SUFFUyxpQkFBaUI7UUFDekIsSUFBSSxDQUFDLElBQUksQ0FBQyxjQUFjLEVBQUUsQ0FBQztZQUN6QixJQUFJLENB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
157
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvYWNjb3VudF9tYW5hZ2VyL2luZGV4LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7O0FBQUEsT0FBTyxFQUFFLGVBQWUsRUFBWSxNQUFNLHNCQUFzQixDQUFDO0FBQ2pFLE9BQU8sRUFBRSxVQUFVLEVBQUUsbUNBQW1DLEVBQUUsTUFBTSxvQkFBb0IsQ0FBQztBQUNyRixPQUFPLEVBQUUsRUFBRSxFQUFFLE1BQU0sMEJBQTBCLENBQUM7QUFPOUMsT0FBTyxFQUFFLGVBQWUsRUFBaUIsTUFBTSx3QkFBd0IsQ0FBQztBQUN4RSxPQUFPLEVBQUUsMEJBQTBCLEVBQUUsTUFBTSxnREFBZ0QsQ0FBQztBQUM1RixPQUFPLEVBQUUsbUJBQW1CLEVBQUUsTUFBTSxxQkFBcUIsQ0FBQztBQUMxRCxPQUFPLEVBQUUsMEJBQTBCLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSxvQkFBb0IsQ0FBQztBQUNsRixPQUFPLEVBQUUsbUJBQW1CLEVBQUUsTUFBTSw0QkFBNEIsQ0FBQztBQUNqRSxPQUFPLEVBQUUsbUJBQW1CLEVBQUUsTUFBTSw2QkFBNkIsQ0FBQztBQVVsRTs7O0dBR0c7QUFDSCxNQUFNLE9BQU8sY0FBYztJQVV6QixZQUFvQixHQUFRLEVBQVUsU0FBYSxFQUFVLGVBQWdDLEVBQUUsSUFBVzs7UUFBdEYsUUFBRyxHQUFILEdBQUcsQ0FBSztRQUFVLGNBQVMsR0FBVCxTQUFTLENBQUk7UUFBVSxvQkFBZSxHQUFmLGVBQWUsQ0FBaUI7UUFDM0YsSUFBSSxDQUFDLElBQUksR0FBRyxJQUFJLEtBQUssU0FBUyxDQUFDLENBQUMsQ0FBQyxJQUFJLEVBQUUsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLE1BQU0sRUFBRSxDQUFDO0lBQzlELENBQUM7SUFFUyxpQkFBaUI7UUFDekIsSUFBSSxDQUFDLElBQUksQ0FBQyxjQUFjLEVBQUUsQ0FBQztZQUN6QixJQUFJLENB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
package/dest/api/abi.d.ts CHANGED
@@ -1,4 +1,4 @@
1
- export { ContractArtifact, FunctionArtifact, FunctionSelector } from '@aztec/foundation/abi';
1
+ export { type ContractArtifact, type FunctionArtifact, FunctionSelector } from '@aztec/foundation/abi';
2
2
  export { loadContractArtifact, contractArtifactToBuffer, contractArtifactFromBuffer } from '@aztec/types/abi';
3
- export { NoirCompiledContract } from '@aztec/types/noir';
3
+ export { type NoirCompiledContract } from '@aztec/types/noir';
4
4
  //# sourceMappingURL=abi.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"abi.d.ts","sourceRoot":"","sources":["../../src/api/abi.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,gBAAgB,EAAE,gBAAgB,EAAE,gBAAgB,EAAE,MAAM,uBAAuB,CAAC;AAC7F,OAAO,EAAE,oBAAoB,EAAE,wBAAwB,EAAE,0BAA0B,EAAE,MAAM,kBAAkB,CAAC;AAC9G,OAAO,EAAE,oBAAoB,EAAE,MAAM,mBAAmB,CAAC"}
1
+ {"version":3,"file":"abi.d.ts","sourceRoot":"","sources":["../../src/api/abi.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,gBAAgB,EAAE,KAAK,gBAAgB,EAAE,gBAAgB,EAAE,MAAM,uBAAuB,CAAC;AACvG,OAAO,EAAE,oBAAoB,EAAE,wBAAwB,EAAE,0BAA0B,EAAE,MAAM,kBAAkB,CAAC;AAC9G,OAAO,EAAE,KAAK,oBAAoB,EAAE,MAAM,mBAAmB,CAAC"}
package/dest/api/abi.js CHANGED
@@ -1,3 +1,3 @@
1
1
  export { FunctionSelector } from '@aztec/foundation/abi';
2
2
  export { loadContractArtifact, contractArtifactToBuffer, contractArtifactFromBuffer } from '@aztec/types/abi';
3
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYWJpLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL2FwaS9hYmkudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFzQyxnQkFBZ0IsRUFBRSxNQUFNLHVCQUF1QixDQUFDO0FBQzdGLE9BQU8sRUFBRSxvQkFBb0IsRUFBRSx3QkFBd0IsRUFBRSwwQkFBMEIsRUFBRSxNQUFNLGtCQUFrQixDQUFDIn0=
3
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYWJpLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL2FwaS9hYmkudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFnRCxnQkFBZ0IsRUFBRSxNQUFNLHVCQUF1QixDQUFDO0FBQ3ZHLE9BQU8sRUFBRSxvQkFBb0IsRUFBRSx3QkFBd0IsRUFBRSwwQkFBMEIsRUFBRSxNQUFNLGtCQUFrQixDQUFDIn0=
package/dest/api/fee.d.ts CHANGED
@@ -2,4 +2,6 @@ export type { FeePaymentMethod } from '../fee/fee_payment_method.js';
2
2
  export { NativeFeePaymentMethod } from '../fee/native_fee_payment_method.js';
3
3
  export { PrivateFeePaymentMethod } from '../fee/private_fee_payment_method.js';
4
4
  export { PublicFeePaymentMethod } from '../fee/public_fee_payment_method.js';
5
+ export { NativeFeePaymentMethodWithClaim } from '../fee/native_fee_payment_method_with_claim.js';
6
+ export { NoFeePaymentMethod } from '../fee/no_fee_payment_method.js';
5
7
  //# sourceMappingURL=fee.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"fee.d.ts","sourceRoot":"","sources":["../../src/api/fee.ts"],"names":[],"mappings":"AAAA,YAAY,EAAE,gBAAgB,EAAE,MAAM,8BAA8B,CAAC;AACrE,OAAO,EAAE,sBAAsB,EAAE,MAAM,qCAAqC,CAAC;AAC7E,OAAO,EAAE,uBAAuB,EAAE,MAAM,sCAAsC,CAAC;AAC/E,OAAO,EAAE,sBAAsB,EAAE,MAAM,qCAAqC,CAAC"}
1
+ {"version":3,"file":"fee.d.ts","sourceRoot":"","sources":["../../src/api/fee.ts"],"names":[],"mappings":"AAAA,YAAY,EAAE,gBAAgB,EAAE,MAAM,8BAA8B,CAAC;AACrE,OAAO,EAAE,sBAAsB,EAAE,MAAM,qCAAqC,CAAC;AAC7E,OAAO,EAAE,uBAAuB,EAAE,MAAM,sCAAsC,CAAC;AAC/E,OAAO,EAAE,sBAAsB,EAAE,MAAM,qCAAqC,CAAC;AAC7E,OAAO,EAAE,+BAA+B,EAAE,MAAM,gDAAgD,CAAC;AACjG,OAAO,EAAE,kBAAkB,EAAE,MAAM,iCAAiC,CAAC"}
package/dest/api/fee.js CHANGED
@@ -1,4 +1,6 @@
1
1
  export { NativeFeePaymentMethod } from '../fee/native_fee_payment_method.js';
2
2
  export { PrivateFeePaymentMethod } from '../fee/private_fee_payment_method.js';
3
3
  export { PublicFeePaymentMethod } from '../fee/public_fee_payment_method.js';
4
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZmVlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL2FwaS9mZWUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQ0EsT0FBTyxFQUFFLHNCQUFzQixFQUFFLE1BQU0scUNBQXFDLENBQUM7QUFDN0UsT0FBTyxFQUFFLHVCQUF1QixFQUFFLE1BQU0sc0NBQXNDLENBQUM7QUFDL0UsT0FBTyxFQUFFLHNCQUFzQixFQUFFLE1BQU0scUNBQXFDLENBQUMifQ==
4
+ export { NativeFeePaymentMethodWithClaim } from '../fee/native_fee_payment_method_with_claim.js';
5
+ export { NoFeePaymentMethod } from '../fee/no_fee_payment_method.js';
6
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZmVlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL2FwaS9mZWUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQ0EsT0FBTyxFQUFFLHNCQUFzQixFQUFFLE1BQU0scUNBQXFDLENBQUM7QUFDN0UsT0FBTyxFQUFFLHVCQUF1QixFQUFFLE1BQU0sc0NBQXNDLENBQUM7QUFDL0UsT0FBTyxFQUFFLHNCQUFzQixFQUFFLE1BQU0scUNBQXFDLENBQUM7QUFDN0UsT0FBTyxFQUFFLCtCQUErQixFQUFFLE1BQU0sZ0RBQWdELENBQUM7QUFDakcsT0FBTyxFQUFFLGtCQUFrQixFQUFFLE1BQU0saUNBQWlDLENBQUMifQ==
@@ -23,6 +23,7 @@ export declare abstract class BaseContractInteraction {
23
23
  protected wallet: Wallet;
24
24
  protected tx?: Tx;
25
25
  protected txRequest?: TxExecutionRequest;
26
+ protected log: import("@aztec/foundation/log").Logger;
26
27
  constructor(wallet: Wallet);
27
28
  /**
28
29
  * Create a transaction execution request ready to be simulated.
@@ -47,19 +48,19 @@ export declare abstract class BaseContractInteraction {
47
48
  */
48
49
  send(options?: SendMethodOptions): SentTx;
49
50
  /**
50
- * Estimates gas for a given tx request and returns defaults gas settings for it.
51
- * @param txRequest - Transaction execution request to process.
52
- * @returns Gas settings.
51
+ * Estimates gas for a given tx request and returns gas limits for it.
52
+ * @param opts - Options.
53
+ * @returns Gas limits.
53
54
  */
54
- protected estimateGas(txRequest: TxExecutionRequest): Promise<GasSettings>;
55
+ estimateGas(opts?: Omit<SendMethodOptions, 'estimateGas' | 'skipPublicSimulation'>): Promise<Pick<GasSettings, 'gasLimits' | 'teardownGasLimits'>>;
55
56
  /**
56
57
  * Helper method to return fee options based on the user opts, estimating tx gas if needed.
57
58
  * @param request - Request to execute for this interaction.
58
59
  * @returns Fee options for the actual transaction.
59
60
  */
60
- protected getFeeOptions(request: ExecutionRequestInit): Promise<{
61
+ protected getFeeOptionsFromEstimatedGas(request: ExecutionRequestInit): Promise<{
61
62
  gasSettings: GasSettings;
62
- paymentMethod: import("../index.js").FeePaymentMethod;
63
+ paymentMethod: import("../index.js").FeePaymentMethod; /** Wether to skip the simulation of the public part of the transaction. */
63
64
  } | undefined>;
64
65
  }
65
66
  //# sourceMappingURL=base_contract_interaction.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"base_contract_interaction.d.ts","sourceRoot":"","sources":["../../src/contract/base_contract_interaction.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,EAAE,EAAE,KAAK,kBAAkB,EAAE,MAAM,sBAAsB,CAAC;AACxE,OAAO,EAAE,WAAW,EAAE,MAAM,oBAAoB,CAAC;AAEjD,OAAO,EAAE,KAAK,MAAM,EAAE,MAAM,sBAAsB,CAAC;AACnD,OAAO,EAAE,KAAK,oBAAoB,EAAE,KAAK,UAAU,EAAE,MAAM,6BAA6B,CAAC;AAEzF,OAAO,EAAE,MAAM,EAAE,MAAM,cAAc,CAAC;AAEtC;;;GAGG;AACH,MAAM,MAAM,iBAAiB,GAAG;IAC9B,2EAA2E;IAC3E,oBAAoB,CAAC,EAAE,OAAO,CAAC;IAC/B,2CAA2C;IAC3C,GAAG,CAAC,EAAE,UAAU,CAAC;IACjB,uJAAuJ;IACvJ,WAAW,CAAC,EAAE,OAAO,CAAC;CACvB,CAAC;AAEF;;;GAGG;AACH,8BAAsB,uBAAuB;IAI/B,SAAS,CAAC,MAAM,EAAE,MAAM;IAHpC,SAAS,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC;IAClB,SAAS,CAAC,SAAS,CAAC,EAAE,kBAAkB,CAAC;gBAEnB,MAAM,EAAE,MAAM;IAEpC;;;;OAIG;aACa,MAAM,CAAC,OAAO,CAAC,EAAE,iBAAiB,GAAG,OAAO,CAAC,kBAAkB,CAAC;IAEhF;;;;OAIG;IACU,KAAK,CAAC,OAAO,GAAE,iBAAsB,GAAG,OAAO,CAAC,EAAE,CAAC;IAMhE;;;;;;;;OAQG;IACI,IAAI,CAAC,OAAO,GAAE,iBAAsB;IAS3C;;;;OAIG;cACa,WAAW,CAAC,SAAS,EAAE,kBAAkB;IAMzD;;;;OAIG;cACa,aAAa,CAAC,OAAO,EAAE,oBAAoB;;;;CAU5D"}
1
+ {"version":3,"file":"base_contract_interaction.d.ts","sourceRoot":"","sources":["../../src/contract/base_contract_interaction.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,EAAE,EAAE,KAAK,kBAAkB,EAAE,MAAM,sBAAsB,CAAC;AACxE,OAAO,EAAE,WAAW,EAAE,MAAM,oBAAoB,CAAC;AAGjD,OAAO,EAAE,KAAK,MAAM,EAAE,MAAM,sBAAsB,CAAC;AACnD,OAAO,EAAE,KAAK,oBAAoB,EAAE,KAAK,UAAU,EAAE,MAAM,6BAA6B,CAAC;AAEzF,OAAO,EAAE,MAAM,EAAE,MAAM,cAAc,CAAC;AAEtC;;;GAGG;AACH,MAAM,MAAM,iBAAiB,GAAG;IAC9B,2EAA2E;IAC3E,oBAAoB,CAAC,EAAE,OAAO,CAAC;IAC/B,2CAA2C;IAC3C,GAAG,CAAC,EAAE,UAAU,CAAC;IACjB,uJAAuJ;IACvJ,WAAW,CAAC,EAAE,OAAO,CAAC;CACvB,CAAC;AAEF;;;GAGG;AACH,8BAAsB,uBAAuB;IAM/B,SAAS,CAAC,MAAM,EAAE,MAAM;IALpC,SAAS,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC;IAClB,SAAS,CAAC,SAAS,CAAC,EAAE,kBAAkB,CAAC;IAEzC,SAAS,CAAC,GAAG,yCAAsD;gBAE7C,MAAM,EAAE,MAAM;IAEpC;;;;OAIG;aACa,MAAM,CAAC,OAAO,CAAC,EAAE,iBAAiB,GAAG,OAAO,CAAC,kBAAkB,CAAC;IAEhF;;;;OAIG;IACU,KAAK,CAAC,OAAO,GAAE,iBAAsB,GAAG,OAAO,CAAC,EAAE,CAAC;IAMhE;;;;;;;;OAQG;IACI,IAAI,CAAC,OAAO,GAAE,iBAAsB;IAS3C;;;;OAIG;IACU,WAAW,CACtB,IAAI,CAAC,EAAE,IAAI,CAAC,iBAAiB,EAAE,aAAa,GAAG,sBAAsB,CAAC,GACrE,OAAO,CAAC,IAAI,CAAC,WAAW,EAAE,WAAW,GAAG,mBAAmB,CAAC,CAAC;IAkBhE;;;;OAIG;cACa,6BAA6B,CAAC,OAAO,EAAE,oBAAoB;;+DAtF3E,2EAA2E;;CAuG5E"}
@@ -1,4 +1,5 @@
1
1
  import { GasSettings } from '@aztec/circuits.js';
2
+ import { createDebugLogger } from '@aztec/foundation/log';
2
3
  import { getGasLimits } from './get_gas_limits.js';
3
4
  import { SentTx } from './sent_tx.js';
4
5
  /**
@@ -8,6 +9,7 @@ import { SentTx } from './sent_tx.js';
8
9
  export class BaseContractInteraction {
9
10
  constructor(wallet) {
10
11
  this.wallet = wallet;
12
+ this.log = createDebugLogger('aztec:js:contract_interaction');
11
13
  }
12
14
  /**
13
15
  * Proves a transaction execution request and returns a tx object ready to be sent.
@@ -36,29 +38,38 @@ export class BaseContractInteraction {
36
38
  return new SentTx(this.wallet, promise);
37
39
  }
38
40
  /**
39
- * Estimates gas for a given tx request and returns defaults gas settings for it.
40
- * @param txRequest - Transaction execution request to process.
41
- * @returns Gas settings.
41
+ * Estimates gas for a given tx request and returns gas limits for it.
42
+ * @param opts - Options.
43
+ * @returns Gas limits.
42
44
  */
43
- async estimateGas(txRequest) {
45
+ async estimateGas(opts) {
46
+ // REFACTOR: both `this.txRequest = undefined` below are horrible, we should not be caching stuff that doesn't need to be.
47
+ // This also hints at a weird interface for create/request/estimate/send etc.
48
+ // Ensure we don't accidentally use a version of tx request that has estimateGas set to true, leading to an infinite loop.
49
+ this.txRequest = undefined;
50
+ const txRequest = await this.create({ ...opts, estimateGas: false });
51
+ // Ensure we don't accidentally cache a version of tx request that has estimateGas forcefully set to false.
52
+ this.txRequest = undefined;
44
53
  const simulationResult = await this.wallet.simulateTx(txRequest, true);
45
- const { totalGas: gasLimits, teardownGas: teardownGasLimits } = getGasLimits(simulationResult);
46
- return GasSettings.default({ gasLimits, teardownGasLimits });
54
+ const { totalGas: gasLimits, teardownGas: teardownGasLimits } = getGasLimits(simulationResult, (opts?.fee?.gasSettings ?? GasSettings.default()).teardownGasLimits);
55
+ return { gasLimits, teardownGasLimits };
47
56
  }
48
57
  /**
49
58
  * Helper method to return fee options based on the user opts, estimating tx gas if needed.
50
59
  * @param request - Request to execute for this interaction.
51
60
  * @returns Fee options for the actual transaction.
52
61
  */
53
- async getFeeOptions(request) {
62
+ async getFeeOptionsFromEstimatedGas(request) {
54
63
  const fee = request.fee;
55
64
  if (fee) {
56
65
  const txRequest = await this.wallet.createTxExecutionRequest(request);
57
- const { gasLimits, teardownGasLimits } = await this.estimateGas(txRequest);
66
+ const simulationResult = await this.wallet.simulateTx(txRequest, true);
67
+ const { totalGas: gasLimits, teardownGas: teardownGasLimits } = getGasLimits(simulationResult, fee.gasSettings.teardownGasLimits);
68
+ this.log.debug(`Estimated gas limits for tx: DA=${gasLimits.daGas} L2=${gasLimits.l2Gas} teardownDA=${teardownGasLimits.daGas} teardownL2=${teardownGasLimits.l2Gas}`);
58
69
  const gasSettings = GasSettings.default({ ...fee.gasSettings, gasLimits, teardownGasLimits });
59
70
  return { ...fee, gasSettings };
60
71
  }
61
72
  return fee;
62
73
  }
63
74
  }
64
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYmFzZV9jb250cmFjdF9pbnRlcmFjdGlvbi5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9jb250cmFjdC9iYXNlX2NvbnRyYWN0X2ludGVyYWN0aW9uLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUNBLE9BQU8sRUFBRSxXQUFXLEVBQUUsTUFBTSxvQkFBb0IsQ0FBQztBQUlqRCxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0scUJBQXFCLENBQUM7QUFDbkQsT0FBTyxFQUFFLE1BQU0sRUFBRSxNQUFNLGNBQWMsQ0FBQztBQWV0Qzs7O0dBR0c7QUFDSCxNQUFNLE9BQWdCLHVCQUF1QjtJQUkzQyxZQUFzQixNQUFjO1FBQWQsV0FBTSxHQUFOLE1BQU0sQ0FBUTtJQUFHLENBQUM7SUFTeEM7Ozs7T0FJRztJQUNJLEtBQUssQ0FBQyxLQUFLLENBQUMsVUFBNkIsRUFBRTtRQUNoRCxNQUFNLFNBQVMsR0FBRyxJQUFJLENBQUMsU0FBUyxJQUFJLENBQUMsTUFBTSxJQUFJLENBQUMsTUFBTSxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUM7UUFDakUsSUFBSSxDQUFDLEVBQUUsR0FBRyxNQUFNLElBQUksQ0FBQyxNQUFNLENBQUMsT0FBTyxDQUFDLFNBQVMsRUFBRSxDQUFDLE9BQU8sQ0FBQyxvQkFBb0IsQ0FBQyxDQUFDO1FBQzlFLE9BQU8sSUFBSSxDQUFDLEVBQUUsQ0FBQztJQUNqQixDQUFDO0lBRUQ7Ozs7Ozs7O09BUUc7SUFDSSxJQUFJLENBQUMsVUFBNkIsRUFBRTtRQUN6QyxNQUFNLE9BQU8sR0FBRyxDQUFDLEtBQUssSUFBSSxFQUFFO1lBQzFCLE1BQU0sRUFBRSxHQUFHLElBQUksQ0FBQyxFQUFFLElBQUksQ0FBQyxNQUFNLElBQUksQ0FBQyxLQUFLLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQztZQUNsRCxPQUFPLElBQUksQ0FBQyxNQUFNLENBQUMsTUFBTSxDQUFDLEVBQUUsQ0FBQyxDQUFDO1FBQ2hDLENBQUMsQ0FBQyxFQUFFLENBQUM7UUFFTCxPQUFPLElBQUksTUFBTSxDQUFDLElBQUksQ0FBQyxNQUFNLEVBQUUsT0FBTyxDQUFDLENBQUM7SUFDMUMsQ0FBQztJQUVEOzs7O09BSUc7SUFDTyxLQUFLLENBQUMsV0FBVyxDQUFDLFNBQTZCO1FBQ3ZELE1BQU0sZ0JBQWdCLEdBQUcsTUFBTSxJQUFJLENBQUMsTUFBTSxDQUFDLFVBQVUsQ0FBQyxTQUFTLEVBQUUsSUFBSSxDQUFDLENBQUM7UUFDdkUsTUFBTSxFQUFFLFFBQVEsRUFBRSxTQUFTLEVBQUUsV0FBVyxFQUFFLGlCQUFpQixFQUFFLEdBQUcsWUFBWSxDQUFDLGdCQUFnQixDQUFDLENBQUM7UUFDL0YsT0FBTyxXQUFXLENBQUMsT0FBTyxDQUFDLEVBQUUsU0FBUyxFQUFFLGlCQUFpQixFQUFFLENBQUMsQ0FBQztJQUMvRCxDQUFDO0lBRUQ7Ozs7T0FJRztJQUNPLEtBQUssQ0FBQyxhQUFhLENBQUMsT0FBNkI7UUFDekQsTUFBTSxHQUFHLEdBQUcsT0FBTyxDQUFDLEdBQUcsQ0FBQztRQUN4QixJQUFJLEdBQUcsRUFBRSxDQUFDO1lBQ1IsTUFBTSxTQUFTLEdBQUcsTUFBTSxJQUFJLENBQUMsTUFBTSxDQUFDLHdCQUF3QixDQUFDLE9BQU8sQ0FBQyxDQUFDO1lBQ3RFLE1BQU0sRUFBRSxTQUFTLEVBQUUsaUJBQWlCLEVBQUUsR0FBRyxNQUFNLElBQUksQ0FBQyxXQUFXLENBQUMsU0FBUyxDQUFDLENBQUM7WUFDM0UsTUFBTSxXQUFXLEdBQUcsV0FBVyxDQUFDLE9BQU8sQ0FBQyxFQUFFLEdBQUcsR0FBRyxDQUFDLFdBQVcsRUFBRSxTQUFTLEVBQUUsaUJBQWlCLEVBQUUsQ0FBQyxDQUFDO1lBQzlGLE9BQU8sRUFBRSxHQUFHLEdBQUcsRUFBRSxXQUFXLEVBQUUsQ0FBQztRQUNqQyxDQUFDO1FBQ0QsT0FBTyxHQUFHLENBQUM7SUFDYixDQUFDO0NBQ0YifQ==
75
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYmFzZV9jb250cmFjdF9pbnRlcmFjdGlvbi5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9jb250cmFjdC9iYXNlX2NvbnRyYWN0X2ludGVyYWN0aW9uLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUNBLE9BQU8sRUFBRSxXQUFXLEVBQUUsTUFBTSxvQkFBb0IsQ0FBQztBQUNqRCxPQUFPLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSx1QkFBdUIsQ0FBQztBQUkxRCxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0scUJBQXFCLENBQUM7QUFDbkQsT0FBTyxFQUFFLE1BQU0sRUFBRSxNQUFNLGNBQWMsQ0FBQztBQWV0Qzs7O0dBR0c7QUFDSCxNQUFNLE9BQWdCLHVCQUF1QjtJQU0zQyxZQUFzQixNQUFjO1FBQWQsV0FBTSxHQUFOLE1BQU0sQ0FBUTtRQUYxQixRQUFHLEdBQUcsaUJBQWlCLENBQUMsK0JBQStCLENBQUMsQ0FBQztJQUU1QixDQUFDO0lBU3hDOzs7O09BSUc7SUFDSSxLQUFLLENBQUMsS0FBSyxDQUFDLFVBQTZCLEVBQUU7UUFDaEQsTUFBTSxTQUFTLEdBQUcsSUFBSSxDQUFDLFNBQVMsSUFBSSxDQUFDLE1BQU0sSUFBSSxDQUFDLE1BQU0sQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDO1FBQ2pFLElBQUksQ0FBQyxFQUFFLEdBQUcsTUFBTSxJQUFJLENBQUMsTUFBTSxDQUFDLE9BQU8sQ0FBQyxTQUFTLEVBQUUsQ0FBQyxPQUFPLENBQUMsb0JBQW9CLENBQUMsQ0FBQztRQUM5RSxPQUFPLElBQUksQ0FBQyxFQUFFLENBQUM7SUFDakIsQ0FBQztJQUVEOzs7Ozs7OztPQVFHO0lBQ0ksSUFBSSxDQUFDLFVBQTZCLEVBQUU7UUFDekMsTUFBTSxPQUFPLEdBQUcsQ0FBQyxLQUFLLElBQUksRUFBRTtZQUMxQixNQUFNLEVBQUUsR0FBRyxJQUFJLENBQUMsRUFBRSxJQUFJLENBQUMsTUFBTSxJQUFJLENBQUMsS0FBSyxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUM7WUFDbEQsT0FBTyxJQUFJLENBQUMsTUFBTSxDQUFDLE1BQU0sQ0FBQyxFQUFFLENBQUMsQ0FBQztRQUNoQyxDQUFDLENBQUMsRUFBRSxDQUFDO1FBRUwsT0FBTyxJQUFJLE1BQU0sQ0FBQyxJQUFJLENBQUMsTUFBTSxFQUFFLE9BQU8sQ0FBQyxDQUFDO0lBQzFDLENBQUM7SUFFRDs7OztPQUlHO0lBQ0ksS0FBSyxDQUFDLFdBQVcsQ0FDdEIsSUFBc0U7UUFFdEUsMEhBQTBIO1FBQzFILDZFQUE2RTtRQUU3RSwwSEFBMEg7UUFDMUgsSUFBSSxDQUFDLFNBQVMsR0FBRyxTQUFTLENBQUM7UUFDM0IsTUFBTSxTQUFTLEdBQUcsTUFBTSxJQUFJLENBQUMsTUFBTSxDQUFDLEVBQUUsR0FBRyxJQUFJLEVBQUUsV0FBVyxFQUFFLEtBQUssRUFBRSxDQUFDLENBQUM7UUFDckUsMkdBQTJHO1FBQzNHLElBQUksQ0FBQyxTQUFTLEdBQUcsU0FBUyxDQUFDO1FBRTNCLE1BQU0sZ0JBQWdCLEdBQUcsTUFBTSxJQUFJLENBQUMsTUFBTSxDQUFDLFVBQVUsQ0FBQyxTQUFTLEVBQUUsSUFBSSxDQUFDLENBQUM7UUFDdkUsTUFBTSxFQUFFLFFBQVEsRUFBRSxTQUFTLEVBQUUsV0FBVyxFQUFFLGlCQUFpQixFQUFFLEdBQUcsWUFBWSxDQUMxRSxnQkFBZ0IsRUFDaEIsQ0FBQyxJQUFJLEVBQUUsR0FBRyxFQUFFLFdBQVcsSUFBSSxXQUFXLENBQUMsT0FBTyxFQUFFLENBQUMsQ0FBQyxpQkFBaUIsQ0FDcEUsQ0FBQztRQUNGLE9BQU8sRUFBRSxTQUFTLEVBQUUsaUJBQWlCLEVBQUUsQ0FBQztJQUMxQyxDQUFDO0lBRUQ7Ozs7T0FJRztJQUNPLEtBQUssQ0FBQyw2QkFBNkIsQ0FBQyxPQUE2QjtRQUN6RSxNQUFNLEdBQUcsR0FBRyxPQUFPLENBQUMsR0FBRyxDQUFDO1FBQ3hCLElBQUksR0FBRyxFQUFFLENBQUM7WUFDUixNQUFNLFNBQVMsR0FBRyxNQUFNLElBQUksQ0FBQyxNQUFNLENBQUMsd0JBQXdCLENBQUMsT0FBTyxDQUFDLENBQUM7WUFDdEUsTUFBTSxnQkFBZ0IsR0FBRyxNQUFNLElBQUksQ0FBQyxNQUFNLENBQUMsVUFBVSxDQUFDLFNBQVMsRUFBRSxJQUFJLENBQUMsQ0FBQztZQUN2RSxNQUFNLEVBQUUsUUFBUSxFQUFFLFNBQVMsRUFBRSxXQUFXLEVBQUUsaUJBQWlCLEVBQUUsR0FBRyxZQUFZLENBQzFFLGdCQUFnQixFQUNoQixHQUFHLENBQUMsV0FBVyxDQUFDLGlCQUFpQixDQUNsQyxDQUFDO1lBQ0YsSUFBSSxDQUFDLEdBQUcsQ0FBQyxLQUFLLENBQ1osbUNBQW1DLFNBQVMsQ0FBQyxLQUFLLE9BQU8sU0FBUyxDQUFDLEtBQUssZUFBZSxpQkFBaUIsQ0FBQyxLQUFLLGVBQWUsaUJBQWlCLENBQUMsS0FBSyxFQUFFLENBQ3ZKLENBQUM7WUFDRixNQUFNLFdBQVcsR0FBRyxXQUFXLENBQUMsT0FBTyxDQUFDLEVBQUUsR0FBRyxHQUFHLENBQUMsV0FBVyxFQUFFLFNBQVMsRUFBRSxpQkFBaUIsRUFBRSxDQUFDLENBQUM7WUFDOUYsT0FBTyxFQUFFLEdBQUcsR0FBRyxFQUFFLFdBQVcsRUFBRSxDQUFDO1FBQ2pDLENBQUM7UUFDRCxPQUFPLEdBQUcsQ0FBQztJQUNiLENBQUM7Q0FDRiJ9
@@ -1,6 +1,7 @@
1
1
  import { type FunctionCall, type TxExecutionRequest } from '@aztec/circuit-types';
2
2
  import { type Wallet } from '../account/index.js';
3
3
  import { BaseContractInteraction, type SendMethodOptions } from './base_contract_interaction.js';
4
+ import type { SimulateMethodOptions } from './contract_function_interaction.js';
4
5
  /** A batch of function calls to be sent as a single transaction through a wallet. */
5
6
  export declare class BatchCall extends BaseContractInteraction {
6
7
  protected calls: FunctionCall[];
@@ -12,5 +13,15 @@ export declare class BatchCall extends BaseContractInteraction {
12
13
  * @returns A Promise that resolves to a transaction instance.
13
14
  */
14
15
  create(opts?: SendMethodOptions): Promise<TxExecutionRequest>;
16
+ /**
17
+ * Simulate a transaction and get its return values
18
+ * Differs from prove in a few important ways:
19
+ * 1. It returns the values of the function execution
20
+ * 2. It supports `unconstrained`, `private` and `public` functions
21
+ *
22
+ * @param options - An optional object containing additional configuration for the transaction.
23
+ * @returns The result of the transaction as returned by the contract function.
24
+ */
25
+ simulate(options?: SimulateMethodOptions): Promise<any>;
15
26
  }
16
27
  //# sourceMappingURL=batch_call.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"batch_call.d.ts","sourceRoot":"","sources":["../../src/contract/batch_call.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,YAAY,EAAE,KAAK,kBAAkB,EAAE,MAAM,sBAAsB,CAAC;AAElF,OAAO,EAAE,KAAK,MAAM,EAAE,MAAM,qBAAqB,CAAC;AAClD,OAAO,EAAE,uBAAuB,EAAE,KAAK,iBAAiB,EAAE,MAAM,gCAAgC,CAAC;AAEjG,qFAAqF;AACrF,qBAAa,SAAU,SAAQ,uBAAuB;IACxB,SAAS,CAAC,KAAK,EAAE,YAAY,EAAE;gBAA/C,MAAM,EAAE,MAAM,EAAY,KAAK,EAAE,YAAY,EAAE;IAI3D;;;;;OAKG;IACU,MAAM,CAAC,IAAI,CAAC,EAAE,iBAAiB,GAAG,OAAO,CAAC,kBAAkB,CAAC;CAQ3E"}
1
+ {"version":3,"file":"batch_call.d.ts","sourceRoot":"","sources":["../../src/contract/batch_call.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,YAAY,EAAE,KAAK,kBAAkB,EAAE,MAAM,sBAAsB,CAAC;AAGlF,OAAO,EAAE,KAAK,MAAM,EAAE,MAAM,qBAAqB,CAAC;AAClD,OAAO,EAAE,uBAAuB,EAAE,KAAK,iBAAiB,EAAE,MAAM,gCAAgC,CAAC;AACjG,OAAO,KAAK,EAAE,qBAAqB,EAAE,MAAM,oCAAoC,CAAC;AAEhF,qFAAqF;AACrF,qBAAa,SAAU,SAAQ,uBAAuB;IACxB,SAAS,CAAC,KAAK,EAAE,YAAY,EAAE;gBAA/C,MAAM,EAAE,MAAM,EAAY,KAAK,EAAE,YAAY,EAAE;IAI3D;;;;;OAKG;IACU,MAAM,CAAC,IAAI,CAAC,EAAE,iBAAiB,GAAG,OAAO,CAAC,kBAAkB,CAAC;IAS1E;;;;;;;;OAQG;IACU,QAAQ,CAAC,OAAO,GAAE,qBAA0B,GAAG,OAAO,CAAC,GAAG,CAAC;CAgEzE"}
@@ -1,3 +1,4 @@
1
+ import { FunctionType, decodeReturnValues } from '@aztec/foundation/abi';
1
2
  import { BaseContractInteraction } from './base_contract_interaction.js';
2
3
  /** A batch of function calls to be sent as a single transaction through a wallet. */
3
4
  export class BatchCall extends BaseContractInteraction {
@@ -14,10 +15,57 @@ export class BatchCall extends BaseContractInteraction {
14
15
  async create(opts) {
15
16
  if (!this.txRequest) {
16
17
  const calls = this.calls;
17
- const fee = opts?.estimateGas ? await this.getFeeOptions({ calls, fee: opts?.fee }) : opts?.fee;
18
+ const fee = opts?.estimateGas ? await this.getFeeOptionsFromEstimatedGas({ calls, fee: opts?.fee }) : opts?.fee;
18
19
  this.txRequest = await this.wallet.createTxExecutionRequest({ calls, fee });
19
20
  }
20
21
  return this.txRequest;
21
22
  }
23
+ /**
24
+ * Simulate a transaction and get its return values
25
+ * Differs from prove in a few important ways:
26
+ * 1. It returns the values of the function execution
27
+ * 2. It supports `unconstrained`, `private` and `public` functions
28
+ *
29
+ * @param options - An optional object containing additional configuration for the transaction.
30
+ * @returns The result of the transaction as returned by the contract function.
31
+ */
32
+ async simulate(options = {}) {
33
+ const { calls, unconstrained } = this.calls.reduce((acc, current, index) => {
34
+ if (current.type === FunctionType.UNCONSTRAINED) {
35
+ acc.unconstrained.push([current, index]);
36
+ }
37
+ else {
38
+ acc.calls.push([
39
+ current,
40
+ index,
41
+ current.type === FunctionType.PRIVATE ? acc.privateIndex++ : acc.publicIndex++,
42
+ ]);
43
+ }
44
+ return acc;
45
+ }, { calls: [], unconstrained: [], publicIndex: 0, privateIndex: 0 });
46
+ const txRequest = await this.wallet.createTxExecutionRequest({ calls: calls.map(indexedCall => indexedCall[0]) });
47
+ const unconstrainedCalls = unconstrained.map(async (indexedCall) => {
48
+ const call = indexedCall[0];
49
+ return [await this.wallet.simulateUnconstrained(call.name, call.args, call.to, options?.from), indexedCall[1]];
50
+ });
51
+ const [unconstrainedResults, simulatedTx] = await Promise.all([
52
+ Promise.all(unconstrainedCalls),
53
+ this.wallet.simulateTx(txRequest, true, options?.from),
54
+ ]);
55
+ const results = [];
56
+ unconstrainedResults.forEach(([result, index]) => {
57
+ results[index] = result;
58
+ });
59
+ calls.forEach(([call, callIndex, resultIndex]) => {
60
+ // As account entrypoints are private, for private functions we retrieve the return values from the first nested call
61
+ // since we're interested in the first set of values AFTER the account entrypoint
62
+ // For public functions we retrieve the first values directly from the public output.
63
+ const rawReturnValues = call.type == FunctionType.PRIVATE
64
+ ? simulatedTx.privateReturnValues?.nested?.[resultIndex].values
65
+ : simulatedTx.publicOutput?.publicReturnValues?.[resultIndex].values;
66
+ results[callIndex] = rawReturnValues ? decodeReturnValues(call.returnTypes, rawReturnValues) : [];
67
+ });
68
+ return results;
69
+ }
22
70
  }
23
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYmF0Y2hfY2FsbC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9jb250cmFjdC9iYXRjaF9jYWxsLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUdBLE9BQU8sRUFBRSx1QkFBdUIsRUFBMEIsTUFBTSxnQ0FBZ0MsQ0FBQztBQUVqRyxxRkFBcUY7QUFDckYsTUFBTSxPQUFPLFNBQVUsU0FBUSx1QkFBdUI7SUFDcEQsWUFBWSxNQUFjLEVBQVksS0FBcUI7UUFDekQsS0FBSyxDQUFDLE1BQU0sQ0FBQyxDQUFDO1FBRHNCLFVBQUssR0FBTCxLQUFLLENBQWdCO0lBRTNELENBQUM7SUFFRDs7Ozs7T0FLRztJQUNJLEtBQUssQ0FBQyxNQUFNLENBQUMsSUFBd0I7UUFDMUMsSUFBSSxDQUFDLElBQUksQ0FBQyxTQUFTLEVBQUUsQ0FBQztZQUNwQixNQUFNLEtBQUssR0FBRyxJQUFJLENBQUMsS0FBSyxDQUFDO1lBQ3pCLE1BQU0sR0FBRyxHQUFHLElBQUksRUFBRSxXQUFXLENBQUMsQ0FBQyxDQUFDLE1BQU0sSUFBSSxDQUFDLGFBQWEsQ0FBQyxFQUFFLEtBQUssRUFBRSxHQUFHLEVBQUUsSUFBSSxFQUFFLEdBQUcsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUksRUFBRSxHQUFHLENBQUM7WUFDaEcsSUFBSSxDQUFDLFNBQVMsR0FBRyxNQUFNLElBQUksQ0FBQyxNQUFNLENBQUMsd0JBQXdCLENBQUMsRUFBRSxLQUFLLEVBQUUsR0FBRyxFQUFFLENBQUMsQ0FBQztRQUM5RSxDQUFDO1FBQ0QsT0FBTyxJQUFJLENBQUMsU0FBUyxDQUFDO0lBQ3hCLENBQUM7Q0FDRiJ9
71
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYmF0Y2hfY2FsbC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9jb250cmFjdC9iYXRjaF9jYWxsLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUNBLE9BQU8sRUFBRSxZQUFZLEVBQUUsa0JBQWtCLEVBQUUsTUFBTSx1QkFBdUIsQ0FBQztBQUd6RSxPQUFPLEVBQUUsdUJBQXVCLEVBQTBCLE1BQU0sZ0NBQWdDLENBQUM7QUFHakcscUZBQXFGO0FBQ3JGLE1BQU0sT0FBTyxTQUFVLFNBQVEsdUJBQXVCO0lBQ3BELFlBQVksTUFBYyxFQUFZLEtBQXFCO1FBQ3pELEtBQUssQ0FBQyxNQUFNLENBQUMsQ0FBQztRQURzQixVQUFLLEdBQUwsS0FBSyxDQUFnQjtJQUUzRCxDQUFDO0lBRUQ7Ozs7O09BS0c7SUFDSSxLQUFLLENBQUMsTUFBTSxDQUFDLElBQXdCO1FBQzFDLElBQUksQ0FBQyxJQUFJLENBQUMsU0FBUyxFQUFFLENBQUM7WUFDcEIsTUFBTSxLQUFLLEdBQUcsSUFBSSxDQUFDLEtBQUssQ0FBQztZQUN6QixNQUFNLEdBQUcsR0FBRyxJQUFJLEVBQUUsV0FBVyxDQUFDLENBQUMsQ0FBQyxNQUFNLElBQUksQ0FBQyw2QkFBNkIsQ0FBQyxFQUFFLEtBQUssRUFBRSxHQUFHLEVBQUUsSUFBSSxFQUFFLEdBQUcsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUksRUFBRSxHQUFHLENBQUM7WUFDaEgsSUFBSSxDQUFDLFNBQVMsR0FBRyxNQUFNLElBQUksQ0FBQyxNQUFNLENBQUMsd0JBQXdCLENBQUMsRUFBRSxLQUFLLEVBQUUsR0FBRyxFQUFFLENBQUMsQ0FBQztRQUM5RSxDQUFDO1FBQ0QsT0FBTyxJQUFJLENBQUMsU0FBUyxDQUFDO0lBQ3hCLENBQUM7SUFFRDs7Ozs7Ozs7T0FRRztJQUNJLEtBQUssQ0FBQyxRQUFRLENBQUMsVUFBaUMsRUFBRTtRQUN2RCxNQUFNLEVBQUUsS0FBSyxFQUFFLGFBQWEsRUFBRSxHQUFHLElB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
@@ -1,5 +1,5 @@
1
- import { type FunctionCall, TxExecutionRequest } from '@aztec/circuit-types';
2
- import { type AztecAddress, GasSettings } from '@aztec/circuits.js';
1
+ import type { FunctionCall, TxExecutionRequest } from '@aztec/circuit-types';
2
+ import { type AztecAddress, type GasSettings } from '@aztec/circuits.js';
3
3
  import { type FunctionAbi } from '@aztec/foundation/abi';
4
4
  import { type Wallet } from '../account/wallet.js';
5
5
  import { BaseContractInteraction, type SendMethodOptions } from './base_contract_interaction.js';
@@ -42,11 +42,6 @@ export declare class ContractFunctionInteraction extends BaseContractInteraction
42
42
  * Differs from prove in a few important ways:
43
43
  * 1. It returns the values of the function execution
44
44
  * 2. It supports `unconstrained`, `private` and `public` functions
45
- * 3. For `private` execution it:
46
- * 3.a SKIPS the entrypoint and starts directly at the function
47
- * 4. For `public` execution it:
48
- * 4.a Removes the `txRequest` value after ended simulation
49
- * 4.b Ignores the `from` in the options
50
45
  *
51
46
  * @param options - An optional object containing additional configuration for the transaction.
52
47
  * @returns The result of the transaction as returned by the contract function.
@@ -1 +1 @@
1
- {"version":3,"file":"contract_function_interaction.d.ts","sourceRoot":"","sources":["../../src/contract/contract_function_interaction.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,YAAY,EAAgB,kBAAkB,EAAE,MAAM,sBAAsB,CAAC;AAC3F,OAAO,EAAE,KAAK,YAAY,EAAgB,WAAW,EAAa,MAAM,oBAAoB,CAAC;AAC7F,OAAO,EAAE,KAAK,WAAW,EAAqD,MAAM,uBAAuB,CAAC;AAE5G,OAAO,EAAE,KAAK,MAAM,EAAE,MAAM,sBAAsB,CAAC;AACnD,OAAO,EAAE,uBAAuB,EAAE,KAAK,iBAAiB,EAAE,MAAM,gCAAgC,CAAC;AAEjG,OAAO,EAAE,iBAAiB,EAAE,CAAC;AAE7B;;;;GAIG;AACH,MAAM,MAAM,qBAAqB,GAAG;IAClC,kCAAkC;IAClC,IAAI,CAAC,EAAE,YAAY,CAAC;IACpB,uCAAuC;IACvC,WAAW,CAAC,EAAE,WAAW,CAAC;CAC3B,CAAC;AAEF;;;GAGG;AACH,qBAAa,2BAA4B,SAAQ,uBAAuB;IAGpE,SAAS,CAAC,eAAe,EAAE,YAAY;IACvC,SAAS,CAAC,WAAW,EAAE,WAAW;IAClC,SAAS,CAAC,IAAI,EAAE,GAAG,EAAE;gBAHrB,MAAM,EAAE,MAAM,EACJ,eAAe,EAAE,YAAY,EAC7B,WAAW,EAAE,WAAW,EACxB,IAAI,EAAE,GAAG,EAAE;IAQvB;;;;;OAKG;IACU,MAAM,CAAC,IAAI,CAAC,EAAE,iBAAiB,GAAG,OAAO,CAAC,kBAAkB,CAAC;IAY1E;;;;OAIG;IACI,OAAO,IAAI,YAAY;IAM9B;;;;;;;;;;;;;OAaG;IACU,QAAQ,CAAC,OAAO,GAAE,qBAA0B,GAAG,OAAO,CAAC,GAAG,CAAC;CA6BzE"}
1
+ {"version":3,"file":"contract_function_interaction.d.ts","sourceRoot":"","sources":["../../src/contract/contract_function_interaction.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,YAAY,EAAE,kBAAkB,EAAE,MAAM,sBAAsB,CAAC;AAC7E,OAAO,EAAE,KAAK,YAAY,EAAE,KAAK,WAAW,EAAE,MAAM,oBAAoB,CAAC;AACzE,OAAO,EACL,KAAK,WAAW,EAKjB,MAAM,uBAAuB,CAAC;AAE/B,OAAO,EAAE,KAAK,MAAM,EAAE,MAAM,sBAAsB,CAAC;AACnD,OAAO,EAAE,uBAAuB,EAAE,KAAK,iBAAiB,EAAE,MAAM,gCAAgC,CAAC;AAEjG,OAAO,EAAE,iBAAiB,EAAE,CAAC;AAE7B;;;;GAIG;AACH,MAAM,MAAM,qBAAqB,GAAG;IAClC,kCAAkC;IAClC,IAAI,CAAC,EAAE,YAAY,CAAC;IACpB,uCAAuC;IACvC,WAAW,CAAC,EAAE,WAAW,CAAC;CAC3B,CAAC;AAEF;;;GAGG;AACH,qBAAa,2BAA4B,SAAQ,uBAAuB;IAGpE,SAAS,CAAC,eAAe,EAAE,YAAY;IACvC,SAAS,CAAC,WAAW,EAAE,WAAW;IAClC,SAAS,CAAC,IAAI,EAAE,GAAG,EAAE;gBAHrB,MAAM,EAAE,MAAM,EACJ,eAAe,EAAE,YAAY,EAC7B,WAAW,EAAE,WAAW,EACxB,IAAI,EAAE,GAAG,EAAE;IAQvB;;;;;OAKG;IACU,MAAM,CAAC,IAAI,CAAC,EAAE,iBAAiB,GAAG,OAAO,CAAC,kBAAkB,CAAC;IAY1E;;;;OAIG;IACI,OAAO,IAAI,YAAY;IAa9B;;;;;;;;OAQG;IACU,QAAQ,CAAC,OAAO,GAAE,qBAA0B,GAAG,OAAO,CAAC,GAAG,CAAC;CAkBzE"}
@@ -1,6 +1,4 @@
1
- import { PackedValues, TxExecutionRequest } from '@aztec/circuit-types';
2
- import { FunctionData, GasSettings, TxContext } from '@aztec/circuits.js';
3
- import { FunctionType, decodeReturnValues, encodeArguments } from '@aztec/foundation/abi';
1
+ import { FunctionSelector, FunctionType, decodeReturnValues, encodeArguments, } from '@aztec/foundation/abi';
4
2
  import { BaseContractInteraction } from './base_contract_interaction.js';
5
3
  /**
6
4
  * This is the class that is returned when calling e.g. `contract.methods.myMethod(arg0, arg1)`.
@@ -28,7 +26,7 @@ export class ContractFunctionInteraction extends BaseContractInteraction {
28
26
  }
29
27
  if (!this.txRequest) {
30
28
  const calls = [this.request()];
31
- const fee = opts?.estimateGas ? await this.getFeeOptions({ calls, fee: opts?.fee }) : opts?.fee;
29
+ const fee = opts?.estimateGas ? await this.getFeeOptionsFromEstimatedGas({ calls, fee: opts?.fee }) : opts?.fee;
32
30
  this.txRequest = await this.wallet.createTxExecutionRequest({ calls, fee });
33
31
  }
34
32
  return this.txRequest;
@@ -40,50 +38,38 @@ export class ContractFunctionInteraction extends BaseContractInteraction {
40
38
  */
41
39
  request() {
42
40
  const args = encodeArguments(this.functionDao, this.args);
43
- const functionData = FunctionData.fromAbi(this.functionDao);
44
- return { args, functionData, to: this.contractAddress };
41
+ return {
42
+ name: this.functionDao.name,
43
+ args,
44
+ selector: FunctionSelector.fromNameAndParameters(this.functionDao.name, this.functionDao.parameters),
45
+ type: this.functionDao.functionType,
46
+ to: this.contractAddress,
47
+ isStatic: this.functionDao.isStatic,
48
+ returnTypes: this.functionDao.returnTypes,
49
+ };
45
50
  }
46
51
  /**
47
52
  * Simulate a transaction and get its return values
48
53
  * Differs from prove in a few important ways:
49
54
  * 1. It returns the values of the function execution
50
55
  * 2. It supports `unconstrained`, `private` and `public` functions
51
- * 3. For `private` execution it:
52
- * 3.a SKIPS the entrypoint and starts directly at the function
53
- * 4. For `public` execution it:
54
- * 4.a Removes the `txRequest` value after ended simulation
55
- * 4.b Ignores the `from` in the options
56
56
  *
57
57
  * @param options - An optional object containing additional configuration for the transaction.
58
58
  * @returns The result of the transaction as returned by the contract function.
59
59
  */
60
60
  async simulate(options = {}) {
61
61
  if (this.functionDao.functionType == FunctionType.UNCONSTRAINED) {
62
- return this.wallet.viewTx(this.functionDao.name, this.args, this.contractAddress, options.from);
63
- }
64
- if (this.functionDao.functionType == FunctionType.SECRET) {
65
- const nodeInfo = await this.wallet.getNodeInfo();
66
- const packedArgs = PackedValues.fromValues(encodeArguments(this.functionDao, this.args));
67
- const gasSettings = options.gasSettings ?? GasSettings.simulation();
68
- const txRequest = TxExecutionRequest.from({
69
- firstCallArgsHash: packedArgs.hash,
70
- origin: this.contractAddress,
71
- functionData: FunctionData.fromAbi(this.functionDao),
72
- txContext: new TxContext(nodeInfo.chainId, nodeInfo.protocolVersion, gasSettings),
73
- argsOfCalls: [packedArgs],
74
- authWitnesses: [],
75
- });
76
- const simulatedTx = await this.wallet.simulateTx(txRequest, true, options.from ?? this.wallet.getAddress());
77
- const flattened = simulatedTx.privateReturnValues;
78
- return flattened ? decodeReturnValues(this.functionDao, flattened) : [];
79
- }
80
- else {
81
- const txRequest = await this.create();
82
- const simulatedTx = await this.wallet.simulateTx(txRequest, true);
83
- this.txRequest = undefined;
84
- const flattened = simulatedTx.publicOutput?.publicReturnValues;
85
- return flattened ? decodeReturnValues(this.functionDao, flattened) : [];
62
+ return this.wallet.simulateUnconstrained(this.functionDao.name, this.args, this.contractAddress, options?.from);
86
63
  }
64
+ const txRequest = await this.create();
65
+ const simulatedTx = await this.wallet.simulateTx(txRequest, true, options?.from);
66
+ // As account entrypoints are private, for private functions we retrieve the return values from the first nested call
67
+ // since we're interested in the first set of values AFTER the account entrypoint
68
+ // For public functions we retrieve the first values directly from the public output.
69
+ const rawReturnValues = this.functionDao.functionType == FunctionType.PRIVATE
70
+ ? simulatedTx.privateReturnValues?.nested?.[0].values
71
+ : simulatedTx.publicOutput?.publicReturnValues?.[0].values;
72
+ return rawReturnValues ? decodeReturnValues(this.functionDao.returnTypes, rawReturnValues) : [];
87
73
  }
88
74
  }
89
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29udHJhY3RfZnVuY3Rpb25faW50ZXJhY3Rpb24uanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvY29udHJhY3QvY29udHJhY3RfZnVuY3Rpb25faW50ZXJhY3Rpb24udHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFxQixZQUFZLEVBQUUsa0JBQWtCLEVBQUUsTUFBTSxzQkFBc0IsQ0FBQztBQUMzRixPQUFPLEVBQXFCLFlBQVksRUFBRSxXQUFXLEVBQUUsU0FBUyxFQUFFLE1BQU0sb0JBQW9CLENBQUM7QUFDN0YsT0FBTyxFQUFvQixZQUFZLEVBQUUsa0JBQWtCLEVBQUUsZUFBZSxFQUFFLE1BQU0sdUJBQXVCLENBQUM7QUFHNUcsT0FBTyxFQUFFLHVCQUF1QixFQUEwQixNQUFNLGdDQUFnQyxDQUFDO0FBZ0JqRzs7O0dBR0c7QUFDSCxNQUFNLE9BQU8sMkJBQTRCLFNBQVEsdUJBQXVCO0lBQ3RFLFlBQ0UsTUFBYyxFQUNKLGVBQTZCLEVBQzdCLFdBQXdCLEVBQ3hCLElBQVc7UUFFckIsS0FBSyxDQUFDLE1BQU0sQ0FBQyxDQUFDO1FBSkosb0JBQWUsR0FBZixlQUFlLENBQWM7UUFDN0IsZ0JBQVcsR0FBWCxXQUFXLENBQWE7UUFDeEIsU0FBSSxHQUFKLElBQUksQ0FBTztRQUdyQixJQUFJLElBQUksQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLEVBQUUsQ0FBQyxHQUFHLEtBQUssU0FBUyxJQUFJLEdBQUcsS0FBSyxJQUFJLENBQUMsRUFBRSxDQUFDO1lBQ3hELE1BQU0sSUFBSSxLQUFLLENBQUMsNkVBQTZFLEdBQUcsSUFBSSxDQUFDLENBQUM7UUFDeEcsQ0FBQztJQUNILENBQUM7SUFFRDs7Ozs7T0FLRztJQUNJLEtBQUssQ0FBQyxNQUFNLENBQUMsSUFBd0I7UUFDMUMsSUFBSSxJQUFJLENBQUMsV0FBVyxDQUFDLFlBQVksS0FBSyxZQUFZLENBQUMsYUFBYSxFQUFFLENBQUM7WUFDakUsTUFBTSxJQUFJ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
75
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29udHJhY3RfZnVuY3Rpb25faW50ZXJhY3Rpb24uanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvY29udHJhY3QvY29udHJhY3RfZnVuY3Rpb25faW50ZXJhY3Rpb24udHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBRUEsT0FBTyxFQUVMLGdCQUFnQixFQUNoQixZQUFZLEVBQ1osa0JBQWtCLEVBQ2xCLGVBQWUsR0FDaEIsTUFBTSx1QkFBdUIsQ0FBQztBQUcvQixPQUFPLEVBQUUsdUJBQXVCLEVBQTBCLE1BQU0sZ0NBQWdDLENBQUM7QUFnQmpHOzs7R0FHRztBQUNILE1BQU0sT0FBTywyQkFBNEIsU0FBUSx1QkFBdUI7SUFDdEUsWUFDRSxNQUFjLEVBQ0osZUFBNkIsRUFDN0IsV0FBd0IsRUFDeEIsSUFBVztRQUVyQixLQUFLLENBQUMsTUFBTSxDQUFDLENBQUM7UUFKSixvQkFBZSxHQUFmLGVBQWUsQ0FBYztRQUM3QixnQkFBVyxHQUFYLFdBQVcsQ0FBYTtRQUN4QixTQUFJLEdBQUosSUFBSSxDQUFPO1FBR3JCLElBQUksSUFBSSxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsRUFBRSxDQUFDLEdBQUcsS0FBSyxTQUFTLElBQUksR0FBRyxLQUFLLElBQUksQ0FBQyxFQUFFLENBQUM7WUFDeEQsTUFBTSxJQUFJLEtBQUssQ0FBQyw2RUFBNkUsR0FBRyxJQUFJLENBQUMsQ0FBQztRQUN4RyxDQUFDO0lBQ0gsQ0FBQztJQUVEOzs7OztPQUtHO0lBQ0ksS0FBSyxDQUFDLE1BQU0sQ0FBQyxJQUF3QjtRQUMxQyxJQUFJLElBQUksQ0FBQyxXQUFXLENBQUMsWUFBWSxLQUFLLFlBQVksQ0FBQyxhQUFhLEVBQUUsQ0FBQztZQUNqRSxNQUFNLElBQUksS0FBSyxDQUFDLG1EQUFtRCxDQUFDLENBQUM7UUFDdkUsQ0FBQztRQUNELElBQUksQ0FBQyxJQUFJLENBQUMsU0FBUyxFQUFFLENBQUM7WUFDcEIsTUFBTSxLQUFLLEdBQUcsQ0FBQyxJ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