@aztec/aztec.js 0.6.7 → 0.7.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 (166) hide show
  1. package/Dockerfile +15 -0
  2. package/package.json +6 -6
  3. package/src/abis/ecdsa_account_contract.json +2 -2
  4. package/src/abis/schnorr_account_contract.json +2 -2
  5. package/src/abis/schnorr_auth_witness_account_contract.json +542 -3
  6. package/src/abis/schnorr_single_key_account_contract.json +1 -1
  7. package/src/account/entrypoint/auth_witness_account_entrypoint.ts +41 -22
  8. package/src/account/entrypoint/entrypoint_payload.ts +1 -1
  9. package/src/account/entrypoint/index.ts +2 -10
  10. package/src/account/entrypoint/single_key_account_entrypoint.ts +2 -9
  11. package/src/account/entrypoint/stored_key_account_entrypoint.ts +2 -9
  12. package/src/aztec_rpc_client/wallet.ts +28 -13
  13. package/src/contract/base_contract_interaction.ts +0 -5
  14. package/src/contract/batch_call.ts +3 -4
  15. package/src/contract/contract.test.ts +2 -4
  16. package/src/contract/contract.ts +23 -0
  17. package/src/contract/contract_base.ts +14 -2
  18. package/src/contract/contract_function_interaction.ts +2 -3
  19. package/src/contract_deployer/contract_deployer.test.ts +1 -3
  20. package/src/contract_deployer/contract_deployer.ts +1 -1
  21. package/src/sandbox/index.ts +6 -19
  22. package/src/utils/account.ts +35 -79
  23. package/src/utils/cheat_codes.ts +3 -3
  24. package/.tsbuildinfo +0 -1
  25. package/dest/abis/ecdsa_account_contract.json +0 -160
  26. package/dest/abis/schnorr_account_contract.json +0 -148
  27. package/dest/abis/schnorr_auth_witness_account_contract.json +0 -104
  28. package/dest/abis/schnorr_single_key_account_contract.json +0 -103
  29. package/dest/account/account.d.ts +0 -72
  30. package/dest/account/account.d.ts.map +0 -1
  31. package/dest/account/account.js +0 -115
  32. package/dest/account/contract/auth_witness_account_contract.d.ts +0 -17
  33. package/dest/account/contract/auth_witness_account_contract.d.ts.map +0 -1
  34. package/dest/account/contract/auth_witness_account_contract.js +0 -23
  35. package/dest/account/contract/ecdsa_account_contract.d.ts +0 -16
  36. package/dest/account/contract/ecdsa_account_contract.d.ts.map +0 -1
  37. package/dest/account/contract/ecdsa_account_contract.js +0 -24
  38. package/dest/account/contract/index.d.ts +0 -28
  39. package/dest/account/contract/index.d.ts.map +0 -1
  40. package/dest/account/contract/index.js +0 -6
  41. package/dest/account/contract/schnorr_account_contract.d.ts +0 -16
  42. package/dest/account/contract/schnorr_account_contract.d.ts.map +0 -1
  43. package/dest/account/contract/schnorr_account_contract.js +0 -25
  44. package/dest/account/contract/single_key_account_contract.d.ts +0 -16
  45. package/dest/account/contract/single_key_account_contract.d.ts.map +0 -1
  46. package/dest/account/contract/single_key_account_contract.js +0 -21
  47. package/dest/account/deploy_account_sent_tx.d.ts +0 -28
  48. package/dest/account/deploy_account_sent_tx.d.ts.map +0 -1
  49. package/dest/account/deploy_account_sent_tx.js +0 -29
  50. package/dest/account/entrypoint/auth_witness_account_entrypoint.d.ts +0 -51
  51. package/dest/account/entrypoint/auth_witness_account_entrypoint.d.ts.map +0 -1
  52. package/dest/account/entrypoint/auth_witness_account_entrypoint.js +0 -82
  53. package/dest/account/entrypoint/entrypoint_collection.d.ts +0 -26
  54. package/dest/account/entrypoint/entrypoint_collection.d.ts.map +0 -1
  55. package/dest/account/entrypoint/entrypoint_collection.js +0 -40
  56. package/dest/account/entrypoint/entrypoint_payload.d.ts +0 -28
  57. package/dest/account/entrypoint/entrypoint_payload.d.ts.map +0 -1
  58. package/dest/account/entrypoint/entrypoint_payload.js +0 -48
  59. package/dest/account/entrypoint/entrypoint_utils.d.ts +0 -14
  60. package/dest/account/entrypoint/entrypoint_utils.d.ts.map +0 -1
  61. package/dest/account/entrypoint/entrypoint_utils.js +0 -24
  62. package/dest/account/entrypoint/index.d.ts +0 -27
  63. package/dest/account/entrypoint/index.d.ts.map +0 -1
  64. package/dest/account/entrypoint/index.js +0 -8
  65. package/dest/account/entrypoint/single_key_account_entrypoint.d.ts +0 -19
  66. package/dest/account/entrypoint/single_key_account_entrypoint.d.ts.map +0 -1
  67. package/dest/account/entrypoint/single_key_account_entrypoint.js +0 -53
  68. package/dest/account/entrypoint/stored_key_account_entrypoint.d.ts +0 -20
  69. package/dest/account/entrypoint/stored_key_account_entrypoint.d.ts.map +0 -1
  70. package/dest/account/entrypoint/stored_key_account_entrypoint.js +0 -50
  71. package/dest/account/index.d.ts +0 -50
  72. package/dest/account/index.d.ts.map +0 -1
  73. package/dest/account/index.js +0 -66
  74. package/dest/aztec_rpc_client/aztec_rpc_client.d.ts +0 -5
  75. package/dest/aztec_rpc_client/aztec_rpc_client.d.ts.map +0 -1
  76. package/dest/aztec_rpc_client/aztec_rpc_client.js +0 -18
  77. package/dest/aztec_rpc_client/index.d.ts +0 -3
  78. package/dest/aztec_rpc_client/index.d.ts.map +0 -1
  79. package/dest/aztec_rpc_client/index.js +0 -3
  80. package/dest/aztec_rpc_client/wallet.d.ts +0 -96
  81. package/dest/aztec_rpc_client/wallet.d.ts.map +0 -1
  82. package/dest/aztec_rpc_client/wallet.js +0 -167
  83. package/dest/contract/base_contract_interaction.d.ts +0 -50
  84. package/dest/contract/base_contract_interaction.d.ts.map +0 -1
  85. package/dest/contract/base_contract_interaction.js +0 -37
  86. package/dest/contract/batch_call.d.ts +0 -16
  87. package/dest/contract/batch_call.d.ts.map +0 -1
  88. package/dest/contract/batch_call.js +0 -22
  89. package/dest/contract/checker.d.ts +0 -11
  90. package/dest/contract/checker.d.ts.map +0 -1
  91. package/dest/contract/checker.js +0 -98
  92. package/dest/contract/checker.test.d.ts +0 -2
  93. package/dest/contract/checker.test.d.ts.map +0 -1
  94. package/dest/contract/checker.test.js +0 -168
  95. package/dest/contract/contract.d.ts +0 -22
  96. package/dest/contract/contract.d.ts.map +0 -1
  97. package/dest/contract/contract.js +0 -25
  98. package/dest/contract/contract.test.d.ts +0 -2
  99. package/dest/contract/contract.test.d.ts.map +0 -1
  100. package/dest/contract/contract.test.js +0 -143
  101. package/dest/contract/contract_base.d.ts +0 -63
  102. package/dest/contract/contract_base.d.ts.map +0 -1
  103. package/dest/contract/contract_base.js +0 -63
  104. package/dest/contract/contract_function_interaction.d.ts +0 -50
  105. package/dest/contract/contract_function_interaction.d.ts.map +0 -1
  106. package/dest/contract/contract_function_interaction.js +0 -60
  107. package/dest/contract/index.d.ts +0 -6
  108. package/dest/contract/index.d.ts.map +0 -1
  109. package/dest/contract/index.js +0 -6
  110. package/dest/contract/sent_tx.d.ts +0 -58
  111. package/dest/contract/sent_tx.d.ts.map +0 -1
  112. package/dest/contract/sent_tx.js +0 -86
  113. package/dest/contract/sent_tx.test.d.ts +0 -2
  114. package/dest/contract/sent_tx.test.d.ts.map +0 -1
  115. package/dest/contract/sent_tx.test.js +0 -42
  116. package/dest/contract_deployer/contract_deployer.d.ts +0 -25
  117. package/dest/contract_deployer/contract_deployer.d.ts.map +0 -1
  118. package/dest/contract_deployer/contract_deployer.js +0 -26
  119. package/dest/contract_deployer/contract_deployer.test.d.ts +0 -2
  120. package/dest/contract_deployer/contract_deployer.test.d.ts.map +0 -1
  121. package/dest/contract_deployer/contract_deployer.test.js +0 -48
  122. package/dest/contract_deployer/deploy_method.d.ts +0 -63
  123. package/dest/contract_deployer/deploy_method.d.ts.map +0 -1
  124. package/dest/contract_deployer/deploy_method.js +0 -80
  125. package/dest/contract_deployer/deploy_sent_tx.d.ts +0 -35
  126. package/dest/contract_deployer/deploy_sent_tx.d.ts.map +0 -1
  127. package/dest/contract_deployer/deploy_sent_tx.js +0 -39
  128. package/dest/contract_deployer/index.d.ts +0 -2
  129. package/dest/contract_deployer/index.d.ts.map +0 -1
  130. package/dest/contract_deployer/index.js +0 -2
  131. package/dest/index.d.ts +0 -13
  132. package/dest/index.d.ts.map +0 -1
  133. package/dest/index.js +0 -13
  134. package/dest/main.js +0 -2
  135. package/dest/main.js.LICENSE.txt +0 -10
  136. package/dest/sandbox/index.d.ts +0 -116
  137. package/dest/sandbox/index.d.ts.map +0 -1
  138. package/dest/sandbox/index.js +0 -75
  139. package/dest/utils/abi_types.d.ts +0 -7
  140. package/dest/utils/abi_types.d.ts.map +0 -1
  141. package/dest/utils/abi_types.js +0 -2
  142. package/dest/utils/account.d.ts +0 -20
  143. package/dest/utils/account.d.ts.map +0 -1
  144. package/dest/utils/account.js +0 -61
  145. package/dest/utils/cheat_codes.d.ts +0 -199
  146. package/dest/utils/cheat_codes.d.ts.map +0 -1
  147. package/dest/utils/cheat_codes.js +0 -279
  148. package/dest/utils/defaults.d.ts +0 -5
  149. package/dest/utils/defaults.d.ts.map +0 -1
  150. package/dest/utils/defaults.js +0 -5
  151. package/dest/utils/index.d.ts +0 -8
  152. package/dest/utils/index.d.ts.map +0 -1
  153. package/dest/utils/index.js +0 -8
  154. package/dest/utils/l1_contracts.d.ts +0 -32
  155. package/dest/utils/l1_contracts.d.ts.map +0 -1
  156. package/dest/utils/l1_contracts.js +0 -16
  157. package/dest/utils/l2_contracts.d.ts +0 -10
  158. package/dest/utils/l2_contracts.d.ts.map +0 -1
  159. package/dest/utils/l2_contracts.js +0 -10
  160. package/dest/utils/pub_key.d.ts +0 -8
  161. package/dest/utils/pub_key.d.ts.map +0 -1
  162. package/dest/utils/pub_key.js +0 -11
  163. package/dest/utils/secrets.d.ts +0 -8
  164. package/dest/utils/secrets.d.ts.map +0 -1
  165. package/dest/utils/secrets.js +0 -12
  166. package/src/account/entrypoint/entrypoint_collection.ts +0 -51
@@ -1,23 +0,0 @@
1
- import { Schnorr } from '@aztec/circuits.js/barretenberg';
2
- import AuthWitnessAccountContractAbi from '../../abis/schnorr_auth_witness_account_contract.json' assert { type: 'json' };
3
- import { AuthWitnessAccountEntrypoint } from '../entrypoint/auth_witness_account_entrypoint.js';
4
- /**
5
- * Account contract that authenticates transactions using Schnorr signatures verified against
6
- * the note encryption key, relying on a single private key for both encryption and authentication.
7
- * Extended to pull verification data from the oracle instead of passed as arguments.
8
- */
9
- export class AuthWitnessAccountContract {
10
- constructor(encryptionPrivateKey) {
11
- this.encryptionPrivateKey = encryptionPrivateKey;
12
- }
13
- getDeploymentArgs() {
14
- return Promise.resolve([]);
15
- }
16
- async getEntrypoint({ address, partialAddress }, { chainId, version }) {
17
- return new AuthWitnessAccountEntrypoint(address, partialAddress, this.encryptionPrivateKey, await Schnorr.new(), chainId, version);
18
- }
19
- getContractAbi() {
20
- return AuthWitnessAccountContractAbi;
21
- }
22
- }
23
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXV0aF93aXRuZXNzX2FjY291bnRfY29udHJhY3QuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvYWNjb3VudC9jb250cmFjdC9hdXRoX3dpdG5lc3NfYWNjb3VudF9jb250cmFjdC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsT0FBTyxFQUFFLE1BQU0saUNBQWlDLENBQUM7QUFJMUQsT0FBTyw2QkFBNkIsTUFBTSx1REFBdUQsQ0FBQyxTQUFTLElBQUksRUFBRSxNQUFNLEVBQUUsQ0FBQztBQUMxSCxPQUFPLEVBQUUsNEJBQTRCLEVBQUUsTUFBTSxrREFBa0QsQ0FBQztBQUdoRzs7OztHQUlHO0FBQ0gsTUFBTSxPQUFPLDBCQUEwQjtJQUNyQyxZQUFvQixvQkFBd0M7UUFBeEMseUJBQW9CLEdBQXBCLG9CQUFvQixDQUFvQjtJQUFHLENBQUM7SUFFekQsaUJBQWlCO1FBQ3RCLE9BQU8sT0FBTyxDQUFDLE9BQU8sQ0FBQyxFQUFFLENBQUMsQ0FBQztJQUM3QixDQUFDO0lBRU0sS0FBSyxDQUFDLGFBQWEsQ0FBQyxFQUFFLE9BQU8sRUFBRSxjQUFjLEVBQW1CLEVBQUUsRUFBRSxPQUFPLEVBQUUsT0FBTyxFQUFZO1FBQ3JHLE9BQU8sSUFBSSw0QkFBNEIsQ0FDckMsT0FBTyxFQUNQLGNBQWMsRUFDZCxJQUFJLENBQUMsb0JBQW9CLEVBQ3pCLE1BQU0sT0FBTyxDQUFDLEdBQUcsRUFBRSxFQUNuQixPQUFPLEVBQ1AsT0FBTyxDQUNSLENBQUM7SUFDSixDQUFDO0lBRU0sY0FBYztRQUNuQixPQUFPLDZCQUF1RCxDQUFDO0lBQ2pFLENBQUM7Q0FDRiJ9
@@ -1,16 +0,0 @@
1
- /// <reference types="node" resolution-mode="require"/>
2
- import { ContractAbi } from '@aztec/foundation/abi';
3
- import { CompleteAddress, NodeInfo } from '@aztec/types';
4
- import { StoredKeyAccountEntrypoint } from '../entrypoint/stored_key_account_entrypoint.js';
5
- import { AccountContract } from './index.js';
6
- /**
7
- * Account contract that authenticates transactions using ECDSA signatures
8
- * verified against a secp256k1 public key stored in an immutable encrypted note.
9
- */ export declare class EcdsaAccountContract implements AccountContract {
10
- private signingPrivateKey;
11
- constructor(signingPrivateKey: Buffer);
12
- getDeploymentArgs(): Promise<Buffer[]>;
13
- getEntrypoint({ address }: CompleteAddress, { chainId, version }: NodeInfo): Promise<StoredKeyAccountEntrypoint>;
14
- getContractAbi(): ContractAbi;
15
- }
16
- //# sourceMappingURL=ecdsa_account_contract.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"ecdsa_account_contract.d.ts","sourceRoot":"","sources":["../../../src/account/contract/ecdsa_account_contract.ts"],"names":[],"mappings":";AACA,OAAO,EAAE,WAAW,EAAE,MAAM,uBAAuB,CAAC;AACpD,OAAO,EAAE,eAAe,EAAE,QAAQ,EAAE,MAAM,cAAc,CAAC;AAGzD,OAAO,EAAE,0BAA0B,EAAE,MAAM,gDAAgD,CAAC;AAC5F,OAAO,EAAE,eAAe,EAAE,MAAM,YAAY,CAAC;AAE7C;;;GAGG,CAAC,qBAAa,oBAAqB,YAAW,eAAe;IAClD,OAAO,CAAC,iBAAiB;gBAAjB,iBAAiB,EAAE,MAAM;IAEhC,iBAAiB;IAKjB,aAAa,CAAC,EAAE,OAAO,EAAE,EAAE,eAAe,EAAE,EAAE,OAAO,EAAE,OAAO,EAAE,EAAE,QAAQ;IAMhF,cAAc,IAAI,WAAW;CAGrC"}
@@ -1,24 +0,0 @@
1
- import { Ecdsa } from '@aztec/circuits.js/barretenberg';
2
- import EcdsaAccountContractAbi from '../../abis/ecdsa_account_contract.json' assert { type: 'json' };
3
- import { StoredKeyAccountEntrypoint } from '../entrypoint/stored_key_account_entrypoint.js';
4
- /**
5
- * Account contract that authenticates transactions using ECDSA signatures
6
- * verified against a secp256k1 public key stored in an immutable encrypted note.
7
- */ export class EcdsaAccountContract {
8
- constructor(signingPrivateKey) {
9
- this.signingPrivateKey = signingPrivateKey;
10
- }
11
- async getDeploymentArgs() {
12
- const signingPublicKey = await Ecdsa.new().then(e => e.computePublicKey(this.signingPrivateKey));
13
- return [signingPublicKey.subarray(0, 32), signingPublicKey.subarray(32, 64)];
14
- }
15
- async getEntrypoint({ address }, { chainId, version }) {
16
- const ecdsa = await Ecdsa.new();
17
- const signClosure = (msg) => ecdsa.constructSignature(msg, this.signingPrivateKey);
18
- return new StoredKeyAccountEntrypoint(address, signClosure, chainId, version);
19
- }
20
- getContractAbi() {
21
- return EcdsaAccountContractAbi;
22
- }
23
- }
24
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZWNkc2FfYWNjb3VudF9jb250cmFjdC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9hY2NvdW50L2NvbnRyYWN0L2VjZHNhX2FjY291bnRfY29udHJhY3QudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLEtBQUssRUFBRSxNQUFNLGlDQUFpQyxDQUFDO0FBSXhELE9BQU8sdUJBQXVCLE1BQU0sd0NBQXdDLENBQUMsU0FBUyxJQUFJLEVBQUUsTUFBTSxFQUFFLENBQUM7QUFDckcsT0FBTyxFQUFFLDBCQUEwQixFQUFFLE1BQU0sZ0RBQWdELENBQUM7QUFHNUY7OztHQUdHLENBQUMsTUFBTSxPQUFPLG9CQUFvQjtJQUNuQyxZQUFvQixpQkFBeUI7UUFBekIsc0JBQWlCLEdBQWpCLGlCQUFpQixDQUFRO0lBQUcsQ0FBQztJQUUxQyxLQUFLLENBQUMsaUJBQWlCO1FBQzVCLE1BQU0sZ0JBQWdCLEdBQUcsTUFBTSxLQUFLLENBQUMsR0FBRyxFQUFFLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLGdCQUFnQixDQUFDLElBQUksQ0FBQyxpQkFBaUIsQ0FBQyxDQUFDLENBQUM7UUFDakcsT0FBTyxDQUFDLGdCQUFnQixDQUFDLFFBQVEsQ0FBQyxDQUFDLEVBQUUsRUFBRSxDQUFDLEVBQUUsZ0JBQWdCLENBQUMsUUFBUSxDQUFDLEVBQUUsRUFBRSxFQUFFLENBQUMsQ0FBQyxDQUFDO0lBQy9FLENBQUM7SUFFTSxLQUFLLENBQUMsYUFBYSxDQUFDLEVBQUUsT0FBTyxFQUFtQixFQUFFLEVBQUUsT0FBTyxFQUFFLE9BQU8sRUFBWTtRQUNyRixNQUFNLEtBQUssR0FBRyxNQUFNLEtBQUssQ0FBQyxHQUFHLEVBQUUsQ0FBQztRQUNoQyxNQUFNLFdBQVcsR0FBRyxDQUFDLEdBQVcsRUFBRSxFQUFFLENBQUMsS0FBSyxDQUFDLGtCQUFrQixDQUFDLEdBQUcsRUFBRSxJQUFJLENBQUMsaUJBQWlCLENBQUMsQ0FBQztRQUMzRixPQUFPLElBQUksMEJBQTBCLENBQUMsT0FBTyxFQUFFLFdBQVcsRUFBRSxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUM7SUFDaEYsQ0FBQztJQUVNLGNBQWM7UUFDbkIsT0FBTyx1QkFBaUQsQ0FBQztJQUMzRCxDQUFDO0NBQ0YifQ==
@@ -1,28 +0,0 @@
1
- import { ContractAbi } from '@aztec/foundation/abi';
2
- import { CompleteAddress, NodeInfo } from '@aztec/types';
3
- import { Entrypoint } from '../index.js';
4
- export * from './ecdsa_account_contract.js';
5
- export * from './schnorr_account_contract.js';
6
- export * from './single_key_account_contract.js';
7
- export * from './auth_witness_account_contract.js';
8
- /**
9
- * An account contract instance. Knows its ABI, deployment arguments, and to create
10
- * transaction execution requests out of function calls through an entrypoint.
11
- */
12
- export interface AccountContract {
13
- /**
14
- * Returns the ABI of this account contract.
15
- */
16
- getContractAbi(): ContractAbi;
17
- /**
18
- * Returns the deployment arguments for this instance.
19
- */
20
- getDeploymentArgs(): Promise<any[]>;
21
- /**
22
- * Creates an entrypoint for creating transaction execution requests for this account contract.
23
- * @param address - Complete address of the deployed account contract.
24
- * @param nodeInfo - Chain id and protocol version where the account contract is deployed.
25
- */
26
- getEntrypoint(address: CompleteAddress, nodeInfo: NodeInfo): Promise<Entrypoint>;
27
- }
28
- //# sourceMappingURL=index.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/account/contract/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,MAAM,uBAAuB,CAAC;AACpD,OAAO,EAAE,eAAe,EAAE,QAAQ,EAAE,MAAM,cAAc,CAAC;AAEzD,OAAO,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AAEzC,cAAc,6BAA6B,CAAC;AAC5C,cAAc,+BAA+B,CAAC;AAC9C,cAAc,kCAAkC,CAAC;AACjD,cAAc,oCAAoC,CAAC;AAGnD;;;GAGG;AACH,MAAM,WAAW,eAAe;IAC9B;;OAEG;IACH,cAAc,IAAI,WAAW,CAAC;IAC9B;;OAEG;IACH,iBAAiB,IAAI,OAAO,CAAC,GAAG,EAAE,CAAC,CAAC;IACpC;;;;OAIG;IACH,aAAa,CAAC,OAAO,EAAE,eAAe,EAAE,QAAQ,EAAE,QAAQ,GAAG,OAAO,CAAC,UAAU,CAAC,CAAC;CAClF"}
@@ -1,6 +0,0 @@
1
- export * from './ecdsa_account_contract.js';
2
- export * from './schnorr_account_contract.js';
3
- export * from './single_key_account_contract.js';
4
- export * from './auth_witness_account_contract.js';
5
- // docs:end:account-contract-interface
6
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvYWNjb3VudC9jb250cmFjdC9pbmRleC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFLQSxjQUFjLDZCQUE2QixDQUFDO0FBQzVDLGNBQWMsK0JBQStCLENBQUM7QUFDOUMsY0FBYyxrQ0FBa0MsQ0FBQztBQUNqRCxjQUFjLG9DQUFvQyxDQUFDO0FBdUJuRCxzQ0FBc0MifQ==
@@ -1,16 +0,0 @@
1
- import { ContractAbi } from '@aztec/foundation/abi';
2
- import { CompleteAddress, GrumpkinPrivateKey, NodeInfo } from '@aztec/types';
3
- import { StoredKeyAccountEntrypoint } from '../entrypoint/stored_key_account_entrypoint.js';
4
- import { AccountContract } from './index.js';
5
- /**
6
- * Account contract that authenticates transactions using Schnorr signatures
7
- * verified against a Grumpkin public key stored in an immutable encrypted note.
8
- */
9
- export declare class SchnorrAccountContract implements AccountContract {
10
- private signingPrivateKey;
11
- constructor(signingPrivateKey: GrumpkinPrivateKey);
12
- getDeploymentArgs(): Promise<import("@aztec/circuits.js").Fr[]>;
13
- getEntrypoint({ address }: CompleteAddress, { chainId, version }: NodeInfo): Promise<StoredKeyAccountEntrypoint>;
14
- getContractAbi(): ContractAbi;
15
- }
16
- //# sourceMappingURL=schnorr_account_contract.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"schnorr_account_contract.d.ts","sourceRoot":"","sources":["../../../src/account/contract/schnorr_account_contract.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,WAAW,EAAE,MAAM,uBAAuB,CAAC;AACpD,OAAO,EAAE,eAAe,EAAE,kBAAkB,EAAE,QAAQ,EAAE,MAAM,cAAc,CAAC;AAG7E,OAAO,EAAE,0BAA0B,EAAE,MAAM,gDAAgD,CAAC;AAC5F,OAAO,EAAE,eAAe,EAAE,MAAM,YAAY,CAAC;AAE7C;;;GAGG;AACH,qBAAa,sBAAuB,YAAW,eAAe;IAChD,OAAO,CAAC,iBAAiB;gBAAjB,iBAAiB,EAAE,kBAAkB;IAE5C,iBAAiB;IAKjB,aAAa,CAAC,EAAE,OAAO,EAAE,EAAE,eAAe,EAAE,EAAE,OAAO,EAAE,OAAO,EAAE,EAAE,QAAQ;IAMhF,cAAc,IAAI,WAAW;CAGrC"}
@@ -1,25 +0,0 @@
1
- import { Schnorr } from '@aztec/circuits.js/barretenberg';
2
- import SchnorrAccountContractAbi from '../../abis/schnorr_account_contract.json' assert { type: 'json' };
3
- import { StoredKeyAccountEntrypoint } from '../entrypoint/stored_key_account_entrypoint.js';
4
- /**
5
- * Account contract that authenticates transactions using Schnorr signatures
6
- * verified against a Grumpkin public key stored in an immutable encrypted note.
7
- */
8
- export class SchnorrAccountContract {
9
- constructor(signingPrivateKey) {
10
- this.signingPrivateKey = signingPrivateKey;
11
- }
12
- async getDeploymentArgs() {
13
- const signingPublicKey = await Schnorr.new().then(e => e.computePublicKey(this.signingPrivateKey));
14
- return [signingPublicKey.x, signingPublicKey.y];
15
- }
16
- async getEntrypoint({ address }, { chainId, version }) {
17
- const schnorr = await Schnorr.new();
18
- const signClosure = (msg) => schnorr.constructSignature(msg, this.signingPrivateKey);
19
- return new StoredKeyAccountEntrypoint(address, signClosure, chainId, version);
20
- }
21
- getContractAbi() {
22
- return SchnorrAccountContractAbi;
23
- }
24
- }
25
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2Nobm9ycl9hY2NvdW50X2NvbnRyYWN0LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL2FjY291bnQvY29udHJhY3Qvc2Nobm9ycl9hY2NvdW50X2NvbnRyYWN0LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxPQUFPLEVBQUUsTUFBTSxpQ0FBaUMsQ0FBQztBQUkxRCxPQUFPLHlCQUF5QixNQUFNLDBDQUEwQyxDQUFDLFNBQVMsSUFBSSxFQUFFLE1BQU0sRUFBRSxDQUFDO0FBQ3pHLE9BQU8sRUFBRSwwQkFBMEIsRUFBRSxNQUFNLGdEQUFnRCxDQUFDO0FBRzVGOzs7R0FHRztBQUNILE1BQU0sT0FBTyxzQkFBc0I7SUFDakMsWUFBb0IsaUJBQXFDO1FBQXJDLHNCQUFpQixHQUFqQixpQkFBaUIsQ0FBb0I7SUFBRyxDQUFDO0lBRXRELEtBQUssQ0FBQyxpQkFBaUI7UUFDNUIsTUFBTSxnQkFBZ0IsR0FBRyxNQUFNLE9BQU8sQ0FBQyxHQUFHLEVBQUUsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsZ0JBQWdCLENBQUMsSUFBSSxDQUFDLGlCQUFpQixDQUFDLENBQUMsQ0FBQztRQUNuRyxPQUFPLENBQUMsZ0JBQWdCLENBQUMsQ0FBQyxFQUFFLGdCQUFnQixDQUFDLENBQUMsQ0FBQyxDQUFDO0lBQ2xELENBQUM7SUFFTSxLQUFLLENBQUMsYUFBYSxDQUFDLEVBQUUsT0FBTyxFQUFtQixFQUFFLEVBQUUsT0FBTyxFQUFFLE9BQU8sRUFBWTtRQUNyRixNQUFNLE9BQU8sR0FBRyxNQUFNLE9BQU8sQ0FBQyxHQUFHLEVBQUUsQ0FBQztRQUNwQyxNQUFNLFdBQVcsR0FBRyxDQUFDLEdBQVcsRUFBRSxFQUFFLENBQUMsT0FBTyxDQUFDLGtCQUFrQixDQUFDLEdBQUcsRUFBRSxJQUFJLENBQUMsaUJBQWlCLENBQUMsQ0FBQztRQUM3RixPQUFPLElBQUksMEJBQTBCLENBQUMsT0FBTyxFQUFFLFdBQVcsRUFBRSxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUM7SUFDaEYsQ0FBQztJQUVNLGNBQWM7UUFDbkIsT0FBTyx5QkFBbUQsQ0FBQztJQUM3RCxDQUFDO0NBQ0YifQ==
@@ -1,16 +0,0 @@
1
- import { ContractAbi } from '@aztec/foundation/abi';
2
- import { CompleteAddress, GrumpkinPrivateKey, NodeInfo } from '@aztec/types';
3
- import { SingleKeyAccountEntrypoint } from '../entrypoint/single_key_account_entrypoint.js';
4
- import { AccountContract } from './index.js';
5
- /**
6
- * Account contract that authenticates transactions using Schnorr signatures verified against
7
- * the note encryption key, relying on a single private key for both encryption and authentication.
8
- */
9
- export declare class SingleKeyAccountContract implements AccountContract {
10
- private encryptionPrivateKey;
11
- constructor(encryptionPrivateKey: GrumpkinPrivateKey);
12
- getDeploymentArgs(): Promise<never[]>;
13
- getEntrypoint({ address, partialAddress }: CompleteAddress, { chainId, version }: NodeInfo): Promise<SingleKeyAccountEntrypoint>;
14
- getContractAbi(): ContractAbi;
15
- }
16
- //# sourceMappingURL=single_key_account_contract.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"single_key_account_contract.d.ts","sourceRoot":"","sources":["../../../src/account/contract/single_key_account_contract.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,MAAM,uBAAuB,CAAC;AACpD,OAAO,EAAE,eAAe,EAAE,kBAAkB,EAAE,QAAQ,EAAE,MAAM,cAAc,CAAC;AAG7E,OAAO,EAAE,0BAA0B,EAAE,MAAM,gDAAgD,CAAC;AAC5F,OAAO,EAAE,eAAe,EAAE,MAAM,YAAY,CAAC;AAE7C;;;GAGG;AACH,qBAAa,wBAAyB,YAAW,eAAe;IAClD,OAAO,CAAC,oBAAoB;gBAApB,oBAAoB,EAAE,kBAAkB;IAErD,iBAAiB;IAIjB,aAAa,CAAC,EAAE,OAAO,EAAE,cAAc,EAAE,EAAE,eAAe,EAAE,EAAE,OAAO,EAAE,OAAO,EAAE,EAAE,QAAQ;IAM1F,cAAc,IAAI,WAAW;CAGrC"}
@@ -1,21 +0,0 @@
1
- import SchnorrSingleKeyAccountContractAbi from '../../abis/schnorr_single_key_account_contract.json' assert { type: 'json' };
2
- import { SingleKeyAccountEntrypoint } from '../entrypoint/single_key_account_entrypoint.js';
3
- /**
4
- * Account contract that authenticates transactions using Schnorr signatures verified against
5
- * the note encryption key, relying on a single private key for both encryption and authentication.
6
- */
7
- export class SingleKeyAccountContract {
8
- constructor(encryptionPrivateKey) {
9
- this.encryptionPrivateKey = encryptionPrivateKey;
10
- }
11
- getDeploymentArgs() {
12
- return Promise.resolve([]);
13
- }
14
- getEntrypoint({ address, partialAddress }, { chainId, version }) {
15
- return Promise.resolve(new SingleKeyAccountEntrypoint(address, partialAddress, this.encryptionPrivateKey, chainId, version));
16
- }
17
- getContractAbi() {
18
- return SchnorrSingleKeyAccountContractAbi;
19
- }
20
- }
21
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2luZ2xlX2tleV9hY2NvdW50X2NvbnRyYWN0LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL2FjY291bnQvY29udHJhY3Qvc2luZ2xlX2tleV9hY2NvdW50X2NvbnRyYWN0LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUdBLE9BQU8sa0NBQWtDLE1BQU0scURBQXFELENBQUMsU0FBUyxJQUFJLEVBQUUsTUFBTSxFQUFFLENBQUM7QUFDN0gsT0FBTyxFQUFFLDBCQUEwQixFQUFFLE1BQU0sZ0RBQWdELENBQUM7QUFHNUY7OztHQUdHO0FBQ0gsTUFBTSxPQUFPLHdCQUF3QjtJQUNuQyxZQUFvQixvQkFBd0M7UUFBeEMseUJBQW9CLEdBQXBCLG9CQUFvQixDQUFvQjtJQUFHLENBQUM7SUFFekQsaUJBQWlCO1FBQ3RCLE9BQU8sT0FBTyxDQUFDLE9BQU8sQ0FBQyxFQUFFLENBQUMsQ0FBQztJQUM3QixDQUFDO0lBRU0sYUFBYSxDQUFDLEVBQUUsT0FBTyxFQUFFLGNBQWMsRUFBbUIsRUFBRSxFQUFFLE9BQU8sRUFBRSxPQUFPLEVBQVk7UUFDL0YsT0FBTyxPQUFPLENBQUMsT0FBTyxDQUNwQixJQUFJLDBCQUEwQixDQUFDLE9BQU8sRUFBRSxjQUFjLEVBQUUsSUFBSSxDQUFDLG9CQUFvQixFQUFFLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FDckcsQ0FBQztJQUNKLENBQUM7SUFFTSxjQUFjO1FBQ25CLE9BQU8sa0NBQTRELENBQUM7SUFDdEUsQ0FBQztDQUNGIn0=
@@ -1,28 +0,0 @@
1
- import { FieldsOf } from '@aztec/circuits.js';
2
- import { TxHash, TxReceipt } from '@aztec/types';
3
- import { SentTx, WaitOpts, Wallet } from '../index.js';
4
- /** Extends a transaction receipt with a wallet instance for the newly deployed contract. */
5
- export type DeployAccountTxReceipt = FieldsOf<TxReceipt> & {
6
- /** Wallet that corresponds to the newly deployed account contract. */
7
- wallet: Wallet;
8
- };
9
- /**
10
- * A deployment transaction for an account contract sent to the network, extending SentTx with methods to get the resulting wallet.
11
- */
12
- export declare class DeployAccountSentTx extends SentTx {
13
- private wallet;
14
- constructor(wallet: Wallet, txHashPromise: Promise<TxHash>);
15
- /**
16
- * Awaits for the tx to be mined and returns the contract instance. Throws if tx is not mined.
17
- * @param opts - Options for configuring the waiting for the tx to be mined.
18
- * @returns The deployed contract instance.
19
- */
20
- getWallet(opts?: WaitOpts): Promise<Wallet>;
21
- /**
22
- * Awaits for the tx to be mined and returns the receipt along with a wallet instance. Throws if tx is not mined.
23
- * @param opts - Options for configuring the waiting for the tx to be mined.
24
- * @returns The transaction receipt with the wallet for the deployed account contract.
25
- */
26
- wait(opts?: WaitOpts): Promise<DeployAccountTxReceipt>;
27
- }
28
- //# sourceMappingURL=deploy_account_sent_tx.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"deploy_account_sent_tx.d.ts","sourceRoot":"","sources":["../../src/account/deploy_account_sent_tx.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,oBAAoB,CAAC;AAC9C,OAAO,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,cAAc,CAAC;AAEjD,OAAO,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,EAAE,MAAM,aAAa,CAAC;AAEvD,4FAA4F;AAC5F,MAAM,MAAM,sBAAsB,GAAG,QAAQ,CAAC,SAAS,CAAC,GAAG;IACzD,sEAAsE;IACtE,MAAM,EAAE,MAAM,CAAC;CAChB,CAAC;AAEF;;GAEG;AACH,qBAAa,mBAAoB,SAAQ,MAAM;IACjC,OAAO,CAAC,MAAM;gBAAN,MAAM,EAAE,MAAM,EAAE,aAAa,EAAE,OAAO,CAAC,MAAM,CAAC;IAIlE;;;;OAIG;IACU,SAAS,CAAC,IAAI,CAAC,EAAE,QAAQ,GAAG,OAAO,CAAC,MAAM,CAAC;IAKxD;;;;OAIG;IACU,IAAI,CAAC,IAAI,CAAC,EAAE,QAAQ,GAAG,OAAO,CAAC,sBAAsB,CAAC;CAIpE"}
@@ -1,29 +0,0 @@
1
- import { SentTx } from '../index.js';
2
- /**
3
- * A deployment transaction for an account contract sent to the network, extending SentTx with methods to get the resulting wallet.
4
- */
5
- export class DeployAccountSentTx extends SentTx {
6
- constructor(wallet, txHashPromise) {
7
- super(wallet, txHashPromise);
8
- this.wallet = wallet;
9
- }
10
- /**
11
- * Awaits for the tx to be mined and returns the contract instance. Throws if tx is not mined.
12
- * @param opts - Options for configuring the waiting for the tx to be mined.
13
- * @returns The deployed contract instance.
14
- */
15
- async getWallet(opts) {
16
- const receipt = await this.wait(opts);
17
- return receipt.wallet;
18
- }
19
- /**
20
- * Awaits for the tx to be mined and returns the receipt along with a wallet instance. Throws if tx is not mined.
21
- * @param opts - Options for configuring the waiting for the tx to be mined.
22
- * @returns The transaction receipt with the wallet for the deployed account contract.
23
- */
24
- async wait(opts) {
25
- const receipt = await super.wait(opts);
26
- return { ...receipt, wallet: this.wallet };
27
- }
28
- }
29
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGVwbG95X2FjY291bnRfc2VudF90eC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9hY2NvdW50L2RlcGxveV9hY2NvdW50X3NlbnRfdHgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBR0EsT0FBTyxFQUFFLE1BQU0sRUFBb0IsTUFBTSxhQUFhLENBQUM7QUFRdkQ7O0dBRUc7QUFDSCxNQUFNLE9BQU8sbUJBQW9CLFNBQVEsTUFBTTtJQUM3QyxZQUFvQixNQUFjLEVBQUUsYUFBOEI7UUFDaEUsS0FBSyxDQUFDLE1BQU0sRUFBRSxhQUFhLENBQUMsQ0FBQztRQURYLFdBQU0sR0FBTixNQUFNLENBQVE7SUFFbEMsQ0FBQztJQUVEOzs7O09BSUc7SUFDSSxLQUFLLENBQUMsU0FBUyxDQUFDLElBQWU7UUFDcEMsTUFBTSxPQUFPLEdBQUcsTUFBTSxJQUFJLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDO1FBQ3RDLE9BQU8sT0FBTyxDQUFDLE1BQU0sQ0FBQztJQUN4QixDQUFDO0lBRUQ7Ozs7T0FJRztJQUNJLEtBQUssQ0FBQyxJQUFJLENBQUMsSUFBZTtRQUMvQixNQUFNLE9BQU8sR0FBRyxNQUFNLEtBQUssQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUM7UUFDdkMsT0FBTyxFQUFFLEdBQUcsT0FBTyxFQUFFLE1BQU0sRUFBRSxJQUFJLENBQUMsTUFBTSxFQUFFLENBQUM7SUFDN0MsQ0FBQztDQUNGIn0=
@@ -1,51 +0,0 @@
1
- /// <reference types="node" resolution-mode="require"/>
2
- import { AztecAddress, Fr, GrumpkinPrivateKey, PartialAddress } from '@aztec/circuits.js';
3
- import { Schnorr } from '@aztec/circuits.js/barretenberg';
4
- import { FunctionCall, TxExecutionRequest } from '@aztec/types';
5
- import { CreateTxRequestOpts, Entrypoint } from './index.js';
6
- /**
7
- * Account contract implementation that uses a single key for signing and encryption. This public key is not
8
- * stored in the contract, but rather verified against the contract address. Note that this approach is not
9
- * secure and should not be used in real use cases.
10
- * The entrypoint is extended to support signing and creating eip1271-like witnesses.
11
- */
12
- export declare class AuthWitnessAccountEntrypoint implements Entrypoint {
13
- private address;
14
- private partialAddress;
15
- private privateKey;
16
- private signer;
17
- private chainId;
18
- private version;
19
- constructor(address: AztecAddress, partialAddress: PartialAddress, privateKey: GrumpkinPrivateKey, signer: Schnorr, chainId?: number, version?: number);
20
- /**
21
- * Sign a message hash with the private key.
22
- * @param message - The message hash to sign.
23
- * @returns The signature as a Buffer.
24
- */
25
- sign(message: Buffer): Buffer;
26
- /**
27
- * Creates an AuthWitness witness for the given message. In this case, witness is the public key, the signature
28
- * and the partial address, to be used for verification.
29
- * @param message - The message hash to sign.
30
- * @returns [publicKey, signature, partialAddress] as Fr[].
31
- */
32
- createAuthWitness(message: Buffer): Promise<Fr[]>;
33
- /**
34
- * Returns the transaction request and the auth witness for the given function calls.
35
- * Returning the witness here as a nonce is generated in the buildPayload action.
36
- * @param executions - The function calls to execute
37
- * @param opts - The options
38
- * @returns The TxRequest, the auth witness to insert in db and the message signed
39
- */
40
- createTxExecutionRequestWithWitness(executions: FunctionCall[], opts?: CreateTxRequestOpts): Promise<{
41
- /** The transaction request */
42
- txRequest: TxExecutionRequest;
43
- /** The auth witness */
44
- witness: Fr[];
45
- /** The message signed */
46
- message: Buffer;
47
- }>;
48
- createTxExecutionRequest(executions: FunctionCall[], _opts?: CreateTxRequestOpts): Promise<TxExecutionRequest>;
49
- private getEntrypointAbi;
50
- }
51
- //# sourceMappingURL=auth_witness_account_entrypoint.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"auth_witness_account_entrypoint.d.ts","sourceRoot":"","sources":["../../../src/account/entrypoint/auth_witness_account_entrypoint.ts"],"names":[],"mappings":";AAAA,OAAO,EAAE,YAAY,EAAE,EAAE,EAAgB,kBAAkB,EAAE,cAAc,EAAa,MAAM,oBAAoB,CAAC;AACnH,OAAO,EAAE,OAAO,EAAE,MAAM,iCAAiC,CAAC;AAE1D,OAAO,EAAE,YAAY,EAAmB,kBAAkB,EAAE,MAAM,cAAc,CAAC;AAMjF,OAAO,EAAE,mBAAmB,EAAE,UAAU,EAAE,MAAM,YAAY,CAAC;AAE7D;;;;;GAKG;AACH,qBAAa,4BAA6B,YAAW,UAAU;IAE3D,OAAO,CAAC,OAAO;IACf,OAAO,CAAC,cAAc;IACtB,OAAO,CAAC,UAAU;IAClB,OAAO,CAAC,MAAM;IACd,OAAO,CAAC,OAAO;IACf,OAAO,CAAC,OAAO;gBALP,OAAO,EAAE,YAAY,EACrB,cAAc,EAAE,cAAc,EAC9B,UAAU,EAAE,kBAAkB,EAC9B,MAAM,EAAE,OAAO,EACf,OAAO,GAAE,MAAyB,EAClC,OAAO,GAAE,MAAwB;IAG3C;;;;OAIG;IACI,IAAI,CAAC,OAAO,EAAE,MAAM,GAAG,MAAM;IAIpC;;;;;OAKG;IACG,iBAAiB,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC,EAAE,EAAE,CAAC;IAYvD;;;;;;OAMG;IACG,mCAAmC,CACvC,UAAU,EAAE,YAAY,EAAE,EAC1B,IAAI,GAAE,mBAAwB,GAC7B,OAAO,CAAC;QACT,8BAA8B;QAC9B,SAAS,EAAE,kBAAkB,CAAC;QAC9B,uBAAuB;QACvB,OAAO,EAAE,EAAE,EAAE,CAAC;QACd,yBAAyB;QACzB,OAAO,EAAE,MAAM,CAAC;KACjB,CAAC;IAuBF,wBAAwB,CAAC,UAAU,EAAE,YAAY,EAAE,EAAE,KAAK,GAAE,mBAAwB,GAAG,OAAO,CAAC,kBAAkB,CAAC;IAIlH,OAAO,CAAC,gBAAgB;CAOzB"}
@@ -1,82 +0,0 @@
1
- import { Fr, FunctionData, TxContext } from '@aztec/circuits.js';
2
- import { encodeArguments } from '@aztec/foundation/abi';
3
- import { PackedArguments, TxExecutionRequest } from '@aztec/types';
4
- import SchnorrAuthWitnessAccountContractAbi from '../../abis/schnorr_auth_witness_account_contract.json' assert { type: 'json' };
5
- import { generatePublicKey } from '../../index.js';
6
- import { DEFAULT_CHAIN_ID, DEFAULT_VERSION } from '../../utils/defaults.js';
7
- import { buildPayload, hashPayload } from './entrypoint_payload.js';
8
- /**
9
- * Account contract implementation that uses a single key for signing and encryption. This public key is not
10
- * stored in the contract, but rather verified against the contract address. Note that this approach is not
11
- * secure and should not be used in real use cases.
12
- * The entrypoint is extended to support signing and creating eip1271-like witnesses.
13
- */
14
- export class AuthWitnessAccountEntrypoint {
15
- constructor(address, partialAddress, privateKey, signer, chainId = DEFAULT_CHAIN_ID, version = DEFAULT_VERSION) {
16
- this.address = address;
17
- this.partialAddress = partialAddress;
18
- this.privateKey = privateKey;
19
- this.signer = signer;
20
- this.chainId = chainId;
21
- this.version = version;
22
- }
23
- /**
24
- * Sign a message hash with the private key.
25
- * @param message - The message hash to sign.
26
- * @returns The signature as a Buffer.
27
- */
28
- sign(message) {
29
- return this.signer.constructSignature(message, this.privateKey).toBuffer();
30
- }
31
- /**
32
- * Creates an AuthWitness witness for the given message. In this case, witness is the public key, the signature
33
- * and the partial address, to be used for verification.
34
- * @param message - The message hash to sign.
35
- * @returns [publicKey, signature, partialAddress] as Fr[].
36
- */
37
- async createAuthWitness(message) {
38
- const signature = this.sign(message);
39
- const publicKey = await generatePublicKey(this.privateKey);
40
- const sigFr = [];
41
- for (let i = 0; i < 64; i++) {
42
- sigFr.push(new Fr(signature[i]));
43
- }
44
- return [...publicKey.toFields(), ...sigFr, this.partialAddress];
45
- }
46
- /**
47
- * Returns the transaction request and the auth witness for the given function calls.
48
- * Returning the witness here as a nonce is generated in the buildPayload action.
49
- * @param executions - The function calls to execute
50
- * @param opts - The options
51
- * @returns The TxRequest, the auth witness to insert in db and the message signed
52
- */
53
- async createTxExecutionRequestWithWitness(executions, opts = {}) {
54
- if (opts.origin && !opts.origin.equals(this.address)) {
55
- throw new Error(`Sender ${opts.origin.toString()} does not match account address ${this.address.toString()}`);
56
- }
57
- const { payload, packedArguments: callsPackedArguments } = await buildPayload(executions);
58
- const message = await hashPayload(payload);
59
- const witness = await this.createAuthWitness(message);
60
- const args = [payload];
61
- const abi = this.getEntrypointAbi();
62
- const packedArgs = await PackedArguments.fromArgs(encodeArguments(abi, args));
63
- const txRequest = TxExecutionRequest.from({
64
- argsHash: packedArgs.hash,
65
- origin: this.address,
66
- functionData: FunctionData.fromAbi(abi),
67
- txContext: TxContext.empty(this.chainId, this.version),
68
- packedArguments: [...callsPackedArguments, packedArgs],
69
- });
70
- return { txRequest, message, witness };
71
- }
72
- createTxExecutionRequest(executions, _opts = {}) {
73
- throw new Error(`Not implemented, use createTxExecutionRequestWithWitness instead`);
74
- }
75
- getEntrypointAbi() {
76
- const abi = SchnorrAuthWitnessAccountContractAbi.functions.find(f => f.name === 'entrypoint');
77
- if (!abi)
78
- throw new Error(`Entrypoint abi for account contract not found`);
79
- return abi;
80
- }
81
- }
82
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXV0aF93aXRuZXNzX2FjY291bnRfZW50cnlwb2ludC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9hY2NvdW50L2VudHJ5cG9pbnQvYXV0aF93aXRuZXNzX2FjY291bnRfZW50cnlwb2ludC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQWdCLEVBQUUsRUFBRSxZQUFZLEVBQXNDLFNBQVMsRUFBRSxNQUFNLG9CQUFvQixDQUFDO0FBRW5ILE9BQU8sRUFBNEIsZUFBZSxFQUFFLE1BQU0sdUJBQXVCLENBQUM7QUFDbEYsT0FBTyxFQUFnQixlQUFlLEVBQUUsa0JBQWtCLEVBQUUsTUFBTSxjQUFjLENBQUM7QUFFakYsT0FBTyxvQ0FBb0MsTUFBTSx1REFBdUQsQ0FBQyxTQUFTLElBQUksRUFBRSxNQUFNLEVBQUUsQ0FBQztBQUNqSSxPQUFPLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUNuRCxPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsZUFBZSxFQUFFLE1BQU0seUJBQXlCLENBQUM7QUFDNUUsT0FBTyxFQUFFLFlBQVksRUFBRSxXQUFXLEVBQUUsTUFBTSx5QkFBeUIsQ0FBQztBQUdwRTs7Ozs7R0FLRztBQUNILE1BQU0sT0FBTyw0QkFBNEI7SUFDdkMsWUFDVSxPQUFxQixFQUNyQixjQUE4QixFQUM5QixVQUE4QixFQUM5QixNQUFlLEVBQ2YsVUFBa0IsZ0JBQWdCLEVBQ2xDLFVBQWtCLGVBQWU7UUFMakMsWUFBTyxHQUFQLE9BQU8sQ0FBYztRQUNyQixtQkFBYyxHQUFkLGNBQWMsQ0FBZ0I7UUFDOUIsZUFBVSxHQUFWLFVBQVUsQ0FBb0I7UUFDOUIsV0FBTSxHQUFOLE1BQU0sQ0FBUztRQUNmLFlBQU8sR0FBUCxPQUFPLENBQTJCO1FBQ2xDLFlBQU8sR0FBUCxPQUFPLENBQTBCO0lBQ3hDLENBQUM7SUFFSjs7OztPQUlHO0lBQ0ksSUFBSSxDQUFDLE9BQWU7UUFDekIsT0FBTyxJQUFJ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
@@ -1,26 +0,0 @@
1
- import { AztecAddress } from '@aztec/circuits.js';
2
- import { FunctionCall, TxExecutionRequest } from '@aztec/types';
3
- import { Account } from '../account.js';
4
- import { CreateTxRequestOpts, Entrypoint } from './index.js';
5
- /**
6
- * An entrypoint that groups together multiple concrete entrypoints.
7
- * Delegates to the registered entrypoints based on the requested origin.
8
- */
9
- export declare class EntrypointCollection implements Entrypoint {
10
- private entrypoints;
11
- constructor(entrypoints?: [AztecAddress, Entrypoint][]);
12
- /**
13
- * Creates a new instance out of a set of Accounts.
14
- * @param accounts - Accounts to register in this entrypoint.
15
- * @returns A new instance.
16
- */
17
- static fromAccounts(accounts: Account[]): Promise<EntrypointCollection>;
18
- /**
19
- * Registers an entrypoint against an aztec address
20
- * @param addr - The aztec address against which to register the implementation.
21
- * @param impl - The entrypoint to be registered.
22
- */
23
- registerAccount(addr: AztecAddress, impl: Entrypoint): void;
24
- createTxExecutionRequest(executions: FunctionCall[], opts?: CreateTxRequestOpts): Promise<TxExecutionRequest>;
25
- }
26
- //# sourceMappingURL=entrypoint_collection.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"entrypoint_collection.d.ts","sourceRoot":"","sources":["../../../src/account/entrypoint/entrypoint_collection.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAC;AAClD,OAAO,EAAE,YAAY,EAAE,kBAAkB,EAAE,MAAM,cAAc,CAAC;AAEhE,OAAO,EAAE,OAAO,EAAE,MAAM,eAAe,CAAC;AACxC,OAAO,EAAE,mBAAmB,EAAE,UAAU,EAAE,MAAM,YAAY,CAAC;AAE7D;;;GAGG;AACH,qBAAa,oBAAqB,YAAW,UAAU;IACrD,OAAO,CAAC,WAAW,CAAsC;gBAE7C,WAAW,GAAE,CAAC,YAAY,EAAE,UAAU,CAAC,EAAO;IAM1D;;;;OAIG;WACU,YAAY,CAAC,QAAQ,EAAE,OAAO,EAAE;IAQ7C;;;;OAIG;IACI,eAAe,CAAC,IAAI,EAAE,YAAY,EAAE,IAAI,EAAE,UAAU;IAIpD,wBAAwB,CAC7B,UAAU,EAAE,YAAY,EAAE,EAC1B,IAAI,GAAE,mBAAwB,GAC7B,OAAO,CAAC,kBAAkB,CAAC;CAM/B"}
@@ -1,40 +0,0 @@
1
- /**
2
- * An entrypoint that groups together multiple concrete entrypoints.
3
- * Delegates to the registered entrypoints based on the requested origin.
4
- */
5
- export class EntrypointCollection {
6
- constructor(entrypoints = []) {
7
- this.entrypoints = new Map();
8
- for (const [key, value] of entrypoints) {
9
- this.registerAccount(key, value);
10
- }
11
- }
12
- /**
13
- * Creates a new instance out of a set of Accounts.
14
- * @param accounts - Accounts to register in this entrypoint.
15
- * @returns A new instance.
16
- */
17
- static async fromAccounts(accounts) {
18
- const collection = new EntrypointCollection();
19
- for (const account of accounts) {
20
- collection.registerAccount((await account.getCompleteAddress()).address, await account.getEntrypoint());
21
- }
22
- return collection;
23
- }
24
- /**
25
- * Registers an entrypoint against an aztec address
26
- * @param addr - The aztec address against which to register the implementation.
27
- * @param impl - The entrypoint to be registered.
28
- */
29
- registerAccount(addr, impl) {
30
- this.entrypoints.set(addr.toString(), impl);
31
- }
32
- createTxExecutionRequest(executions, opts = {}) {
33
- const defaultAccount = this.entrypoints.values().next().value;
34
- const impl = opts.origin ? this.entrypoints.get(opts.origin.toString()) : defaultAccount;
35
- if (!impl)
36
- throw new Error(`No entrypoint registered for ${opts.origin}`);
37
- return impl.createTxExecutionRequest(executions, opts);
38
- }
39
- }
40
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZW50cnlwb2ludF9jb2xsZWN0aW9uLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL2FjY291bnQvZW50cnlwb2ludC9lbnRyeXBvaW50X2NvbGxlY3Rpb24udHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBTUE7OztHQUdHO0FBQ0gsTUFBTSxPQUFPLG9CQUFvQjtJQUcvQixZQUFZLGNBQTRDLEVBQUU7UUFGbEQsZ0JBQVcsR0FBNEIsSUFBSSxHQUFHLEVBQUUsQ0FBQztRQUd2RCxLQUFLLE1BQU0sQ0FBQyxHQUFHLEVBQUUsS0FBSyxDQUFDLElBQUksV0FBVyxFQUFFO1lBQ3RDLElBQUksQ0FBQyxlQUFlLENBQUMsR0FBRyxFQUFFLEtBQUssQ0FBQyxDQUFDO1NBQ2xDO0lBQ0gsQ0FBQztJQUVEOzs7O09BSUc7SUFDSCxNQUFNLENBQUMsS0FBSyxDQUFDLFlBQVksQ0FBQyxRQUFtQjtRQUMzQyxNQUFNLFVBQVUsR0FBRyxJQUFJLG9CQUFvQixFQUFFLENBQUM7UUFDOUMsS0FBSyxNQUFNLE9BQU8sSUFBSSxRQUFRLEVBQUU7WUFDOUIsVUFBVSxDQUFDLGVBQWUsQ0FBQyxDQUFDLE1BQU0sT0FBTyxDQUFDLGtCQUFrQixFQUFFLENBQUMsQ0FBQyxPQUFPLEVBQUUsTUFBTSxPQUFPLENBQUMsYUFBYSxFQUFFLENBQUMsQ0FBQztTQUN6RztRQUNELE9BQU8sVUFBVSxDQUFDO0lBQ3BCLENBQUM7SUFFRDs7OztPQUlHO0lBQ0ksZUFBZSxDQUFDLElBQWtCLEVBQUUsSUFBZ0I7UUFDekQsSUFBSSxDQUFDLFdBQVcsQ0FBQyxHQUFHLENBQUMsSUFBSSxDQUFDLFFBQVEsRUFBRSxFQUFFLElBQUksQ0FBQyxDQUFDO0lBQzlDLENBQUM7SUFFTSx3QkFBd0IsQ0FDN0IsVUFBMEIsRUFDMUIsT0FBNEIsRUFBRTtRQUU5QixNQUFNLGNBQWMsR0FBRyxJQUFJLENBQUMsV0FBVyxDQUFDLE1BQU0sRUFBRSxDQUFDLElBQUksRUFBRSxDQUFDLEtBQW1CLENBQUM7UUFDNUUsTUFBTSxJQUFJLEdBQUcsSUFBSSxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLFdBQVcsQ0FBQyxHQUFHLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxRQUFRLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxjQUFjLENBQUM7UUFDekYsSUFBSSxDQUFDLElBQUk7WUFBRSxNQUFNLElBQUksS0FBSyxDQUFDLGdDQUFnQyxJQUFJLENBQUMsTUFBTSxFQUFFLENBQUMsQ0FBQztRQUMxRSxPQUFPLElBQUksQ0FBQyx3QkFBd0IsQ0FBQyxVQUFVLEVBQUUsSUFBSSxDQUFDLENBQUM7SUFDekQsQ0FBQztDQUNGIn0=
@@ -1,28 +0,0 @@
1
- /// <reference types="node" resolution-mode="require"/>
2
- import { Fr } from '@aztec/circuits.js';
3
- import { FunctionCall, PackedArguments } from '@aztec/types';
4
- export declare const ACCOUNT_MAX_PRIVATE_CALLS = 2;
5
- export declare const ACCOUNT_MAX_PUBLIC_CALLS = 2;
6
- /** Encoded payload for the account contract entrypoint */
7
- export type EntrypointPayload = {
8
- /** Concatenated arguments for every call */
9
- flattened_args_hashes: Fr[];
10
- /** Concatenated selectors for every call */
11
- flattened_selectors: Fr[];
12
- /** Concatenated target addresses for every call */
13
- flattened_targets: Fr[];
14
- /** A nonce for replay protection */
15
- nonce: Fr;
16
- };
17
- /** Assembles an entrypoint payload from a set of private and public function calls */
18
- export declare function buildPayload(calls: FunctionCall[]): Promise<{
19
- /** The payload for the entrypoint function */
20
- payload: EntrypointPayload;
21
- /** The packed arguments of functions called */
22
- packedArguments: PackedArguments[];
23
- }>;
24
- /** Compresses an entrypoint payload to a 32-byte buffer (useful for signing) */
25
- export declare function hashPayload(payload: EntrypointPayload): Promise<Buffer>;
26
- /** Flattens an entrypoint payload */
27
- export declare function flattenPayload(payload: EntrypointPayload): Fr[];
28
- //# sourceMappingURL=entrypoint_payload.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"entrypoint_payload.d.ts","sourceRoot":"","sources":["../../../src/account/entrypoint/entrypoint_payload.ts"],"names":[],"mappings":";AAAA,OAAO,EAAgB,EAAE,EAAkB,MAAM,oBAAoB,CAAC;AAGtE,OAAO,EAAE,YAAY,EAAE,eAAe,EAAqB,MAAM,cAAc,CAAC;AAKhF,eAAO,MAAM,yBAAyB,IAAI,CAAC;AAC3C,eAAO,MAAM,wBAAwB,IAAI,CAAC;AAE1C,0DAA0D;AAC1D,MAAM,MAAM,iBAAiB,GAAG;IAE9B,4CAA4C;IAC5C,qBAAqB,EAAE,EAAE,EAAE,CAAC;IAE5B,4CAA4C;IAC5C,mBAAmB,EAAE,EAAE,EAAE,CAAC;IAE1B,mDAAmD;IACnD,iBAAiB,EAAE,EAAE,EAAE,CAAC;IACxB,oCAAoC;IACpC,KAAK,EAAE,EAAE,CAAC;CACX,CAAC;AAEF,sFAAsF;AACtF,wBAAsB,YAAY,CAAC,KAAK,EAAE,YAAY,EAAE,GAAG,OAAO,CAAC;IACjE,8CAA8C;IAC9C,OAAO,EAAE,iBAAiB,CAAC;IAC3B,+CAA+C;IAC/C,eAAe,EAAE,eAAe,EAAE,CAAC;CACpC,CAAC,CA6BD;AAED,gFAAgF;AAChF,wBAAsB,WAAW,CAAC,OAAO,EAAE,iBAAiB,mBAM3D;AAED,qCAAqC;AACrC,wBAAgB,cAAc,CAAC,OAAO,EAAE,iBAAiB,QAOxD"}
@@ -1,48 +0,0 @@
1
- import { CircuitsWasm, Fr, GeneratorIndex } from '@aztec/circuits.js';
2
- import { pedersenPlookupCompressWithHashIndex } from '@aztec/circuits.js/barretenberg';
3
- import { padArrayEnd } from '@aztec/foundation/collection';
4
- import { PackedArguments, emptyFunctionCall } from '@aztec/types';
5
- import partition from 'lodash.partition';
6
- // These must match the values defined in yarn-project/noir-libs/noir-aztec/src/entrypoint.nr
7
- export const ACCOUNT_MAX_PRIVATE_CALLS = 2;
8
- export const ACCOUNT_MAX_PUBLIC_CALLS = 2;
9
- /** Assembles an entrypoint payload from a set of private and public function calls */
10
- export async function buildPayload(calls) {
11
- const nonce = Fr.random();
12
- const [privateCalls, publicCalls] = partition(calls, call => call.functionData.isPrivate);
13
- const paddedCalls = [
14
- ...padArrayEnd(privateCalls, emptyFunctionCall(), ACCOUNT_MAX_PRIVATE_CALLS),
15
- ...padArrayEnd(publicCalls, emptyFunctionCall(), ACCOUNT_MAX_PUBLIC_CALLS),
16
- ];
17
- const packedArguments = [];
18
- const wasm = await CircuitsWasm.get();
19
- for (const call of paddedCalls) {
20
- packedArguments.push(await PackedArguments.fromArgs(call.args, wasm));
21
- }
22
- return {
23
- payload: {
24
- // eslint-disable-next-line camelcase
25
- flattened_args_hashes: packedArguments.map(args => args.hash),
26
- // eslint-disable-next-line camelcase
27
- flattened_selectors: paddedCalls.map(call => call.functionData.selector.toField()),
28
- // eslint-disable-next-line camelcase
29
- flattened_targets: paddedCalls.map(call => call.to.toField()),
30
- nonce,
31
- },
32
- packedArguments,
33
- };
34
- }
35
- /** Compresses an entrypoint payload to a 32-byte buffer (useful for signing) */
36
- export async function hashPayload(payload) {
37
- return pedersenPlookupCompressWithHashIndex(await CircuitsWasm.get(), flattenPayload(payload).map(fr => fr.toBuffer()), GeneratorIndex.SIGNATURE_PAYLOAD);
38
- }
39
- /** Flattens an entrypoint payload */
40
- export function flattenPayload(payload) {
41
- return [
42
- ...payload.flattened_args_hashes,
43
- ...payload.flattened_selectors,
44
- ...payload.flattened_targets,
45
- payload.nonce,
46
- ];
47
- }
48
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZW50cnlwb2ludF9wYXlsb2FkLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL2FjY291bnQvZW50cnlwb2ludC9lbnRyeXBvaW50X3BheWxvYWQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFlBQVksRUFBRSxFQUFFLEVBQUUsY0FBYyxFQUFFLE1BQU0sb0JBQW9CLENBQUM7QUFDdEUsT0FBTyxFQUFFLG9DQUFvQyxFQUFFLE1BQU0saUNBQWlDLENBQUM7QUFDdkYsT0FBTyxFQUFFLFdBQVcsRUFBRSxNQUFNLDhCQUE4QixDQUFDO0FBQzNELE9BQU8sRUFBZ0IsZUFBZSxFQUFFLGlCQUFpQixFQUFFLE1BQU0sY0FBYyxDQUFDO0FBRWhGLE9BQU8sU0FBUyxNQUFNLGtCQUFrQixDQUFDO0FBRXpDLDZGQUE2RjtBQUM3RixNQUFNLENBQUMsTUFBTSx5QkFBeUIsR0FBRyxDQUFDLENBQUM7QUFDM0MsTUFBTSxDQUFDLE1BQU0sd0JBQXdCLEdBQUcsQ0FBQyxDQUFDO0FBaUIxQyxzRkFBc0Y7QUFDdEYsTUFBTSxDQUFDLEtBQUssVUFBVSxZQUFZLENBQUMsS0FBcUI7SUFNdEQsTUFBTSxLQUFLLEdBQUcsRUFBRSxDQUFDLE1BQU0sRUFBRSxDQUFDO0lBRTFCLE1BQU0sQ0FBQyxZQUFZLEVBQUUsV0FBVyxDQUFDLEdBQUcsU0FBUyxDQUFDLEtBQUssRUFBRSxJQUFJLENBQUMsRUFBRSxDQUFDLElBQUksQ0FBQyxZQUFZLENBQUMsU0FBUyxDQUFDLENBQUM7SUFFMUYsTUFBTSxXQUFXLEdBQUc7UUFDbEIsR0FBRyxXQUFXLENBQUMsWUFBWSxFQUFFLGlCQUFpQixFQUFFLEVBQUUseUJBQXlCLENBQUM7UUFDNUUsR0FBRyxXQUFXLENBQUMsV0FBVyxFQUFFLGlCQUFpQixFQUFFLEVBQUUsd0JBQXdCLENBQUM7S0FDM0UsQ0FBQztJQUVGLE1BQU0sZUFBZSxHQUFHLEVBQUUsQ0FBQztJQUMzQixNQUFNLElBQUksR0FBRyxNQUFNLFlBQVksQ0FBQyxHQUFHLEVBQUUsQ0FBQztJQUV0QyxLQUFLLE1BQU0sSUFBSSxJQUFJLFdBQVcsRUFBRTtRQUM5QixlQUFlLENBQUMsSUFBSSxDQUFDLE1BQU0sZUFBZSxDQUFDLFFBQVEsQ0FBQyxJQUFJLENBQUMsSUFBSSxFQUFFLElBQUksQ0FBQyxDQUFDLENBQUM7S0FDdkU7SUFFRCxPQUFPO1FBQ0wsT0FBTyxFQUFFO1lBQ1AscUNBQXFDO1lBQ3JDLHFCQUFxQixFQUFFLGVBQWUsQ0FBQyxHQUFHLENBQUMsSUFBSSxDQUFDLEVBQUUsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDO1lBQzdELHFDQUFxQztZQUNyQyxtQkFBbUIsRUFBRSxXQUFXLENBQUMsR0FBRyxDQUFDLElBQUksQ0FBQyxFQUFFLENBQUMsSUFBSSxDQUFDLFlBQVksQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLENBQUM7WUFDbEYscUNBQXFDO1lBQ3JDLGlCQUFpQixFQUFFLFdBQVcsQ0FBQyxHQUFHLENBQUMsSUFBSSxDQUFDLEVBQUUsQ0FBQyxJQUFJLENBQUMsRUFBRSxDQUFDLE9BQU8sRUFBRSxDQUFDO1lBQzdELEtBQUs7U0FDTjtRQUNELGVBQWU7S0FDaEIsQ0FBQztBQUNKLENBQUM7QUFFRCxnRkFBZ0Y7QUFDaEYsTUFBTSxDQUFDLEtBQUssVUFBVSxXQUFXLENBQUMsT0FBMEI7SUFDMUQsT0FBTyxvQ0FBb0MsQ0FDekMsTUFBTSxZQUFZLENBQUMsR0FBRyxFQUFFLEVBQ3hCLGNBQWMsQ0FBQyxPQUFPLENBQUMsQ0FBQyxHQUFHLENBQUMsRUFBRSxDQUFDLEVBQUUsQ0FBQyxFQUFFLENBQUMsUUFBUSxFQUFFLENBQUMsRUFDaEQsY0FBYyxDQUFDLGlCQUFpQixDQUNqQyxDQUFDO0FBQ0osQ0FBQztBQUVELHFDQUFxQztBQUNyQyxNQUFNLFVBQVUsY0FBYyxDQUFDLE9BQTBCO0lBQ3ZELE9BQU87UUFDTCxHQUFHLE9BQU8sQ0FBQyxxQkFBcUI7UUFDaEMsR0FBRyxPQUFPLENBQUMsbUJBQW1CO1FBQzlCLEdBQUcsT0FBTyxDQUFDLGlCQUFpQjtRQUM1QixPQUFPLENBQUMsS0FBSztLQUNkLENBQUM7QUFDSixDQUFDIn0=
@@ -1,14 +0,0 @@
1
- import { AztecAddress } from '@aztec/circuits.js';
2
- import { FunctionAbi } from '@aztec/foundation/abi';
3
- import { NodeInfo, PackedArguments, TxExecutionRequest } from '@aztec/types';
4
- /**
5
- * Utility for building a TxExecutionRequest in the context of an Entrypoint.
6
- * @param origin - Address of the account contract sending this transaction.
7
- * @param entrypointMethod - Initial method called in the account contract.
8
- * @param args - Arguments used when calling this initial method.
9
- * @param callsPackedArguments - Packed arguments of nested calls (if any).
10
- * @param nodeInfo - Node info with chain id and version.
11
- * @returns A TxExecutionRequest ready to be simulated, proven, and sent.
12
- */
13
- export declare function buildTxExecutionRequest(origin: AztecAddress, entrypointMethod: FunctionAbi, args: any[], callsPackedArguments: PackedArguments[], nodeInfo: NodeInfo): Promise<TxExecutionRequest>;
14
- //# sourceMappingURL=entrypoint_utils.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"entrypoint_utils.d.ts","sourceRoot":"","sources":["../../../src/account/entrypoint/entrypoint_utils.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAA2B,MAAM,oBAAoB,CAAC;AAC3E,OAAO,EAAE,WAAW,EAAmB,MAAM,uBAAuB,CAAC;AACrE,OAAO,EAAE,QAAQ,EAAE,eAAe,EAAE,kBAAkB,EAAE,MAAM,cAAc,CAAC;AAE7E;;;;;;;;GAQG;AACH,wBAAsB,uBAAuB,CAC3C,MAAM,EAAE,YAAY,EACpB,gBAAgB,EAAE,WAAW,EAC7B,IAAI,EAAE,GAAG,EAAE,EACX,oBAAoB,EAAE,eAAe,EAAE,EACvC,QAAQ,EAAE,QAAQ,GACjB,OAAO,CAAC,kBAAkB,CAAC,CAW7B"}