@aztec/aztec.js 0.7.2 → 0.7.3

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 (143) hide show
  1. package/.tsbuildinfo +1 -0
  2. package/dest/abis/ecdsa_account_contract.json +160 -0
  3. package/dest/abis/schnorr_account_contract.json +148 -0
  4. package/dest/abis/schnorr_auth_witness_account_contract.json +643 -0
  5. package/dest/abis/schnorr_single_key_account_contract.json +103 -0
  6. package/dest/account/account.d.ts +72 -0
  7. package/dest/account/account.d.ts.map +1 -0
  8. package/dest/account/account.js +115 -0
  9. package/dest/account/contract/auth_witness_account_contract.d.ts +17 -0
  10. package/dest/account/contract/auth_witness_account_contract.d.ts.map +1 -0
  11. package/dest/account/contract/auth_witness_account_contract.js +23 -0
  12. package/dest/account/contract/ecdsa_account_contract.d.ts +16 -0
  13. package/dest/account/contract/ecdsa_account_contract.d.ts.map +1 -0
  14. package/dest/account/contract/ecdsa_account_contract.js +24 -0
  15. package/dest/account/contract/index.d.ts +28 -0
  16. package/dest/account/contract/index.d.ts.map +1 -0
  17. package/dest/account/contract/index.js +6 -0
  18. package/dest/account/contract/schnorr_account_contract.d.ts +16 -0
  19. package/dest/account/contract/schnorr_account_contract.d.ts.map +1 -0
  20. package/dest/account/contract/schnorr_account_contract.js +25 -0
  21. package/dest/account/contract/single_key_account_contract.d.ts +16 -0
  22. package/dest/account/contract/single_key_account_contract.d.ts.map +1 -0
  23. package/dest/account/contract/single_key_account_contract.js +21 -0
  24. package/dest/account/deploy_account_sent_tx.d.ts +28 -0
  25. package/dest/account/deploy_account_sent_tx.d.ts.map +1 -0
  26. package/dest/account/deploy_account_sent_tx.js +29 -0
  27. package/dest/account/entrypoint/auth_witness_account_entrypoint.d.ts +74 -0
  28. package/dest/account/entrypoint/auth_witness_account_entrypoint.d.ts.map +1 -0
  29. package/dest/account/entrypoint/auth_witness_account_entrypoint.js +68 -0
  30. package/dest/account/entrypoint/entrypoint_payload.d.ts +28 -0
  31. package/dest/account/entrypoint/entrypoint_payload.d.ts.map +1 -0
  32. package/dest/account/entrypoint/entrypoint_payload.js +48 -0
  33. package/dest/account/entrypoint/entrypoint_utils.d.ts +14 -0
  34. package/dest/account/entrypoint/entrypoint_utils.d.ts.map +1 -0
  35. package/dest/account/entrypoint/entrypoint_utils.js +24 -0
  36. package/dest/account/entrypoint/index.d.ts +20 -0
  37. package/dest/account/entrypoint/index.d.ts.map +1 -0
  38. package/dest/account/entrypoint/index.js +7 -0
  39. package/dest/account/entrypoint/single_key_account_entrypoint.d.ts +19 -0
  40. package/dest/account/entrypoint/single_key_account_entrypoint.d.ts.map +1 -0
  41. package/dest/account/entrypoint/single_key_account_entrypoint.js +50 -0
  42. package/dest/account/entrypoint/stored_key_account_entrypoint.d.ts +20 -0
  43. package/dest/account/entrypoint/stored_key_account_entrypoint.d.ts.map +1 -0
  44. package/dest/account/entrypoint/stored_key_account_entrypoint.js +47 -0
  45. package/dest/account/index.d.ts +50 -0
  46. package/dest/account/index.d.ts.map +1 -0
  47. package/dest/account/index.js +66 -0
  48. package/dest/aztec_rpc_client/aztec_rpc_client.d.ts +5 -0
  49. package/dest/aztec_rpc_client/aztec_rpc_client.d.ts.map +1 -0
  50. package/dest/aztec_rpc_client/aztec_rpc_client.js +18 -0
  51. package/dest/aztec_rpc_client/index.d.ts +3 -0
  52. package/dest/aztec_rpc_client/index.d.ts.map +1 -0
  53. package/dest/aztec_rpc_client/index.js +3 -0
  54. package/dest/aztec_rpc_client/wallet.d.ts +109 -0
  55. package/dest/aztec_rpc_client/wallet.d.ts.map +1 -0
  56. package/dest/aztec_rpc_client/wallet.js +186 -0
  57. package/dest/contract/base_contract_interaction.d.ts +45 -0
  58. package/dest/contract/base_contract_interaction.d.ts.map +1 -0
  59. package/dest/contract/base_contract_interaction.js +37 -0
  60. package/dest/contract/batch_call.d.ts +15 -0
  61. package/dest/contract/batch_call.d.ts.map +1 -0
  62. package/dest/contract/batch_call.js +21 -0
  63. package/dest/contract/checker.d.ts +11 -0
  64. package/dest/contract/checker.d.ts.map +1 -0
  65. package/dest/contract/checker.js +98 -0
  66. package/dest/contract/checker.test.d.ts +2 -0
  67. package/dest/contract/checker.test.d.ts.map +1 -0
  68. package/dest/contract/checker.test.js +168 -0
  69. package/dest/contract/contract.d.ts +39 -0
  70. package/dest/contract/contract.d.ts.map +1 -0
  71. package/dest/contract/contract.js +45 -0
  72. package/dest/contract/contract.test.d.ts +2 -0
  73. package/dest/contract/contract.test.d.ts.map +1 -0
  74. package/dest/contract/contract.test.js +141 -0
  75. package/dest/contract/contract_base.d.ts +72 -0
  76. package/dest/contract/contract_base.d.ts.map +1 -0
  77. package/dest/contract/contract_base.js +74 -0
  78. package/dest/contract/contract_function_interaction.d.ts +49 -0
  79. package/dest/contract/contract_function_interaction.d.ts.map +1 -0
  80. package/dest/contract/contract_function_interaction.js +59 -0
  81. package/dest/contract/index.d.ts +6 -0
  82. package/dest/contract/index.d.ts.map +1 -0
  83. package/dest/contract/index.js +6 -0
  84. package/dest/contract/sent_tx.d.ts +58 -0
  85. package/dest/contract/sent_tx.d.ts.map +1 -0
  86. package/dest/contract/sent_tx.js +86 -0
  87. package/dest/contract/sent_tx.test.d.ts +2 -0
  88. package/dest/contract/sent_tx.test.d.ts.map +1 -0
  89. package/dest/contract/sent_tx.test.js +42 -0
  90. package/dest/contract_deployer/contract_deployer.d.ts +25 -0
  91. package/dest/contract_deployer/contract_deployer.d.ts.map +1 -0
  92. package/dest/contract_deployer/contract_deployer.js +26 -0
  93. package/dest/contract_deployer/contract_deployer.test.d.ts +2 -0
  94. package/dest/contract_deployer/contract_deployer.test.d.ts.map +1 -0
  95. package/dest/contract_deployer/contract_deployer.test.js +46 -0
  96. package/dest/contract_deployer/deploy_method.d.ts +63 -0
  97. package/dest/contract_deployer/deploy_method.d.ts.map +1 -0
  98. package/dest/contract_deployer/deploy_method.js +80 -0
  99. package/dest/contract_deployer/deploy_sent_tx.d.ts +35 -0
  100. package/dest/contract_deployer/deploy_sent_tx.d.ts.map +1 -0
  101. package/dest/contract_deployer/deploy_sent_tx.js +39 -0
  102. package/dest/contract_deployer/index.d.ts +2 -0
  103. package/dest/contract_deployer/index.d.ts.map +1 -0
  104. package/dest/contract_deployer/index.js +2 -0
  105. package/dest/index.d.ts +13 -0
  106. package/dest/index.d.ts.map +1 -0
  107. package/dest/index.js +13 -0
  108. package/dest/main.js +2 -0
  109. package/dest/main.js.LICENSE.txt +10 -0
  110. package/dest/sandbox/index.d.ts +111 -0
  111. package/dest/sandbox/index.d.ts.map +1 -0
  112. package/dest/sandbox/index.js +69 -0
  113. package/dest/utils/abi_types.d.ts +7 -0
  114. package/dest/utils/abi_types.d.ts.map +1 -0
  115. package/dest/utils/abi_types.js +2 -0
  116. package/dest/utils/account.d.ts +23 -0
  117. package/dest/utils/account.d.ts.map +1 -0
  118. package/dest/utils/account.js +40 -0
  119. package/dest/utils/cheat_codes.d.ts +199 -0
  120. package/dest/utils/cheat_codes.d.ts.map +1 -0
  121. package/dest/utils/cheat_codes.js +279 -0
  122. package/dest/utils/defaults.d.ts +5 -0
  123. package/dest/utils/defaults.d.ts.map +1 -0
  124. package/dest/utils/defaults.js +5 -0
  125. package/dest/utils/index.d.ts +8 -0
  126. package/dest/utils/index.d.ts.map +1 -0
  127. package/dest/utils/index.js +8 -0
  128. package/dest/utils/l1_contracts.d.ts +32 -0
  129. package/dest/utils/l1_contracts.d.ts.map +1 -0
  130. package/dest/utils/l1_contracts.js +16 -0
  131. package/dest/utils/l2_contracts.d.ts +10 -0
  132. package/dest/utils/l2_contracts.d.ts.map +1 -0
  133. package/dest/utils/l2_contracts.js +10 -0
  134. package/dest/utils/pub_key.d.ts +8 -0
  135. package/dest/utils/pub_key.d.ts.map +1 -0
  136. package/dest/utils/pub_key.js +11 -0
  137. package/dest/utils/secrets.d.ts +8 -0
  138. package/dest/utils/secrets.d.ts.map +1 -0
  139. package/dest/utils/secrets.js +12 -0
  140. package/package.json +4 -4
  141. package/src/abis/ecdsa_account_contract.json +1 -1
  142. package/src/abis/schnorr_account_contract.json +1 -1
  143. package/Dockerfile +0 -15
@@ -0,0 +1,66 @@
1
+ import { CompleteAddress } from '@aztec/types';
2
+ import { AccountWallet } from '../index.js';
3
+ import { Account } from './account.js';
4
+ import { EcdsaAccountContract } from './contract/ecdsa_account_contract.js';
5
+ import { SchnorrAccountContract } from './contract/schnorr_account_contract.js';
6
+ import { SingleKeyAccountContract } from './contract/single_key_account_contract.js';
7
+ export { Account } from './account.js';
8
+ export * from './contract/index.js';
9
+ export * from './entrypoint/index.js';
10
+ export { CompleteAddress };
11
+ /**
12
+ * Creates an Account that relies on an ECDSA signing key for authentication.
13
+ * @param rpc - An AztecRPC server instance.
14
+ * @param encryptionPrivateKey - Grumpkin key used for note encryption.
15
+ * @param signingPrivateKey - Secp256k1 key used for signing transactions.
16
+ * @param saltOrAddress - Deployment salt or complete address if account contract is already deployed.
17
+ */
18
+ export function getEcdsaAccount(rpc, encryptionPrivateKey, signingPrivateKey, saltOrAddress) {
19
+ return new Account(rpc, encryptionPrivateKey, new EcdsaAccountContract(signingPrivateKey), saltOrAddress);
20
+ }
21
+ /**
22
+ * Creates an Account that relies on a Grumpkin signing key for authentication.
23
+ * @param rpc - An AztecRPC server instance.
24
+ * @param encryptionPrivateKey - Grumpkin key used for note encryption.
25
+ * @param signingPrivateKey - Grumpkin key used for signing transactions.
26
+ * @param saltOrAddress - Deployment salt or complete address if account contract is already deployed.
27
+ */
28
+ export function getSchnorrAccount(rpc, encryptionPrivateKey, signingPrivateKey, saltOrAddress) {
29
+ return new Account(rpc, encryptionPrivateKey, new SchnorrAccountContract(signingPrivateKey), saltOrAddress);
30
+ }
31
+ /**
32
+ * Creates an Account that uses the same Grumpkin key for encryption and authentication.
33
+ * @param rpc - An AztecRPC server instance.
34
+ * @param encryptionAndSigningPrivateKey - Grumpkin key used for note encryption and signing transactions.
35
+ * @param saltOrAddress - Deployment salt or complete address if account contract is already deployed.
36
+ */
37
+ export function getUnsafeSchnorrAccount(rpc, encryptionAndSigningPrivateKey, saltOrAddress) {
38
+ return new Account(rpc, encryptionAndSigningPrivateKey, new SingleKeyAccountContract(encryptionAndSigningPrivateKey), saltOrAddress);
39
+ }
40
+ /**
41
+ * Gets a wallet for an already registered account using Schnorr signatures with a single key for encryption and authentication.
42
+ * @param rpc - An AztecRPC server instance.
43
+ * @param address - Address for the account.
44
+ * @param signingPrivateKey - Grumpkin key used for note encryption and signing transactions.
45
+ * @returns A wallet for this account that can be used to interact with a contract instance.
46
+ */
47
+ export function getUnsafeSchnorrWallet(rpc, address, signingKey) {
48
+ return getWallet(rpc, address, new SingleKeyAccountContract(signingKey));
49
+ }
50
+ /**
51
+ * Gets a wallet for an already registered account.
52
+ * @param rpc - An AztecRPC server instance.
53
+ * @param address - Address for the account.
54
+ * @param accountContract - Account contract implementation.
55
+ * * @returns A wallet for this account that can be used to interact with a contract instance.
56
+ */
57
+ export async function getWallet(rpc, address, accountContract) {
58
+ const completeAddress = await rpc.getAccount(address);
59
+ if (!completeAddress) {
60
+ throw new Error(`Account ${address} not found`);
61
+ }
62
+ const nodeInfo = await rpc.getNodeInfo();
63
+ const entrypoint = await accountContract.getEntrypoint(completeAddress, nodeInfo);
64
+ return new AccountWallet(rpc, entrypoint, completeAddress);
65
+ }
66
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvYWNjb3VudC9pbmRleC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQVksZUFBZSxFQUFzQixNQUFNLGNBQWMsQ0FBQztBQUU3RSxPQUFPLEVBQW1CLGFBQWEsRUFBb0IsTUFBTSxhQUFhLENBQUM7QUFDL0UsT0FBTyxFQUFFLE9BQU8sRUFBRSxNQUFNLGNBQWMsQ0FBQztBQUN2QyxPQUFPLEVBQUUsb0JBQW9CLEVBQUUsTUFBTSxzQ0FBc0MsQ0FBQztBQUM1RSxPQUFPLEVBQUUsc0JBQXNCLEVBQUUsTUFBTSx3Q0FBd0MsQ0FBQztBQUNoRixPQUFPLEVBQUUsd0JBQXdCLEVBQUUsTUFBTSwyQ0FBMkMsQ0FBQztBQUVyRixPQUFPLEVBQUUsT0FBTyxFQUFFLE1BQU0sY0FBYyxDQUFDO0FBQ3ZDLGNBQWMscUJBQXFCLENBQUM7QUFDcEMsY0FBYyx1QkFBdUIsQ0FBQztBQUN0QyxPQUFPLEVBQUUsZUFBZSxFQUFFLENBQUM7QUFLM0I7Ozs7OztHQU1HO0FBQ0gsTUFBTSxVQUFVLGVBQWUsQ0FDN0IsR0FBYSxFQUNiLG9CQUF3QyxFQUN4QyxpQkFBeUIsRUFDekIsYUFBc0M7SUFFdEMsT0FBTyxJQUFJLE9BQU8sQ0FBQyxHQUFHLEVBQUUsb0JBQW9CLEVBQUUsSUFBSSxvQkFBb0IsQ0FBQyxpQkFBaUIsQ0FBQyxFQUFFLGFBQWEsQ0FBQyxDQUFDO0FBQzVHLENBQUM7QUFFRDs7Ozs7O0dBTUc7QUFDSCxNQUFNLFVBQVUsaUJBQWlCLENBQy9CLEdBQWEsRUFDYixvQkFBd0MsRUFDeEMsaUJBQXFDLEVBQ3JDLGFBQXNDO0lBRXRDLE9BQU8sSUFBSSxPQUFPLENBQUMsR0FBRyxFQUFFLG9CQUFvQixFQUFFLElBQUksc0JBQXNCLENBQUMsaUJBQWlCLENBQUMsRUFBRSxhQUFhLENBQUMsQ0FBQztBQUM5RyxDQUFDO0FBRUQ7Ozs7O0dBS0c7QUFDSCxNQUFNLFVBQVUsdUJBQXVCLENBQ3JDLEdBQWEsRUFDYiw4QkFBa0QsRUFDbEQsYUFBc0M7SUFFdEMsT0FBTyxJQUFJLE9BQU8sQ0FDaEIsR0FBRyxFQUNILDhCQUE4QixFQUM5QixJQUFJLHdCQUF3QixDQUFDLDhCQUE4QixDQUFDLEVBQzVELGFBQWEsQ0FDZCxDQUFDO0FBQ0osQ0FBQztBQUVEOzs7Ozs7R0FNRztBQUNILE1BQU0sVUFBVSxzQkFBc0IsQ0FDcEMsR0FBYSxFQUNiLE9BQXFCLEVBQ3JCLFVBQThCO0lBRTlCLE9BQU8sU0FBUyxDQUFDLEdBQUcsRUFBRSxPQUFPLEVBQUUsSUFBSSx3QkFBd0IsQ0FBQyxVQUFVLENBQUMsQ0FBQyxDQUFDO0FBQzNFLENBQUM7QUFFRDs7Ozs7O0dBTUc7QUFDSCxNQUFNLENBQUMsS0FBSyxVQUFVLFNBQVMsQ0FDN0IsR0FBYSxFQUNiLE9BQXFCLEVBQ3JCLGVBQWdDO0lBRWhDLE1BQU0sZUFBZSxHQUFHLE1BQU0sR0FBRyxDQUFDLFVBQVUsQ0FBQyxPQUFPLENBQUMsQ0FBQztJQUN0RCxJQUFJLENBQUMsZUFBZSxFQUFFO1FBQ3BCLE1BQU0sSUFBSSxLQUFLLENBQUMsV0FBVyxPQUFPLFlBQVksQ0FBQyxDQUFDO0tBQ2pEO0lBQ0QsTUFBTSxRQUFRLEdBQUcsTUFBTSxHQUFHLENBQUMsV0FBVyxFQUFFLENBQUM7SUFDekMsTUFBTSxVQUFVLEdBQUcsTUFBTSxlQUFlLENBQUMsYUFBYSxDQUFDLGVBQWUsRUFBRSxRQUFRLENBQUMsQ0FBQztJQUNsRixPQUFPLElBQUksYUFBYSxDQUFDLEdBQUcsRUFBRSxVQUFVLEVBQUUsZUFBZSxDQUFDLENBQUM7QUFDN0QsQ0FBQyJ9
@@ -0,0 +1,5 @@
1
+ import { defaultFetch } from '@aztec/foundation/json-rpc/client';
2
+ import { AztecRPC } from '@aztec/types';
3
+ export { makeFetch } from '@aztec/foundation/json-rpc/client';
4
+ export declare const createAztecRpcClient: (url: string, fetch?: typeof defaultFetch) => AztecRPC;
5
+ //# sourceMappingURL=aztec_rpc_client.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"aztec_rpc_client.d.ts","sourceRoot":"","sources":["../../src/aztec_rpc_client/aztec_rpc_client.ts"],"names":[],"mappings":"AACA,OAAO,EAAuB,YAAY,EAAE,MAAM,mCAAmC,CAAC;AACtF,OAAO,EACL,QAAQ,EAST,MAAM,cAAc,CAAC;AAEtB,OAAO,EAAE,SAAS,EAAE,MAAM,mCAAmC,CAAC;AAE9D,eAAO,MAAM,oBAAoB,QAAS,MAAM,kCAAyB,QAmBtE,CAAC"}
@@ -0,0 +1,18 @@
1
+ import { AztecAddress, CompleteAddress, EthAddress, Fr, GrumpkinScalar, Point } from '@aztec/circuits.js';
2
+ import { createJsonRpcClient, defaultFetch } from '@aztec/foundation/json-rpc/client';
3
+ import { ContractData, ExtendedContractData, L2BlockL2Logs, NotePreimage, Tx, TxExecutionRequest, TxHash, TxReceipt, } from '@aztec/types';
4
+ export { makeFetch } from '@aztec/foundation/json-rpc/client';
5
+ export const createAztecRpcClient = (url, fetch = defaultFetch) => createJsonRpcClient(url, {
6
+ CompleteAddress,
7
+ AztecAddress,
8
+ TxExecutionRequest,
9
+ ContractData,
10
+ ExtendedContractData,
11
+ TxHash,
12
+ EthAddress,
13
+ Point,
14
+ Fr,
15
+ GrumpkinScalar,
16
+ NotePreimage,
17
+ }, { Tx, TxReceipt, L2BlockL2Logs }, false, fetch);
18
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXp0ZWNfcnBjX2NsaWVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9henRlY19ycGNfY2xpZW50L2F6dGVjX3JwY19jbGllbnQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFlBQVksRUFBRSxlQUFlLEVBQUUsVUFBVSxFQUFFLEVBQUUsRUFBRSxjQUFjLEVBQUUsS0FBSyxFQUFFLE1BQU0sb0JBQW9CLENBQUM7QUFDMUcsT0FBTyxFQUFFLG1CQUFtQixFQUFFLFlBQVksRUFBRSxNQUFNLG1DQUFtQyxDQUFDO0FBQ3RGLE9BQU8sRUFFTCxZQUFZLEVBQ1osb0JBQW9CLEVBQ3BCLGFBQWEsRUFDYixZQUFZLEVBQ1osRUFBRSxFQUNGLGtCQUFrQixFQUNsQixNQUFNLEVBQ04sU0FBUyxHQUNWLE1BQU0sY0FBYyxDQUFDO0FBRXRCLE9BQU8sRUFBRSxTQUFTLEVBQUUsTUFBTSxtQ0FBbUMsQ0FBQztBQUU5RCxNQUFNLENBQUMsTUFBTSxvQkFBb0IsR0FBRyxDQUFDLEdBQVcsRUFBRSxLQUFLLEdBQUcsWUFBWSxFQUFZLEVBQUUsQ0FDbEYsbUJBQW1CLENBQ2pCLEdBQUcsRUFDSDtJQUNFLGVBQWU7SUFDZixZQUFZO0lBQ1osa0JBQWtCO0lBQ2xCLFlBQVk7SUFDWixvQkFBb0I7SUFDcEIsTUFBTTtJQUNOLFVBQVU7SUFDVixLQUFLO0lBQ0wsRUFBRTtJQUNGLGNBQWM7SUFDZCxZQUFZO0NBQ2IsRUFDRCxFQUFFLEVBQUUsRUFBRSxTQUFTLEVBQUUsYUFBYSxFQUFFLEVBQ2hDLEtBQUssRUFDTCxLQUFLLENBQ04sQ0FBQyJ9
@@ -0,0 +1,3 @@
1
+ export * from './aztec_rpc_client.js';
2
+ export * from './wallet.js';
3
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/aztec_rpc_client/index.ts"],"names":[],"mappings":"AAAA,cAAc,uBAAuB,CAAC;AACtC,cAAc,aAAa,CAAC"}
@@ -0,0 +1,3 @@
1
+ export * from './aztec_rpc_client.js';
2
+ export * from './wallet.js';
3
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvYXp0ZWNfcnBjX2NsaWVudC9pbmRleC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxjQUFjLHVCQUF1QixDQUFDO0FBQ3RDLGNBQWMsYUFBYSxDQUFDIn0=
@@ -0,0 +1,109 @@
1
+ /// <reference types="node" resolution-mode="require"/>
2
+ import { AztecAddress, Fr, GrumpkinPrivateKey, PartialAddress } from '@aztec/circuits.js';
3
+ import { AztecRPC, ContractData, DeployedContract, ExtendedContractData, FunctionCall, L2BlockL2Logs, NodeInfo, NotePreimage, SyncStatus, Tx, TxExecutionRequest, TxHash, TxReceipt } from '@aztec/types';
4
+ import { Entrypoint, IAuthWitnessAccountEntrypoint } from '../account/entrypoint/index.js';
5
+ import { CompleteAddress } from '../index.js';
6
+ /**
7
+ * The wallet interface.
8
+ */
9
+ export type Wallet = Entrypoint & AztecRPC;
10
+ /**
11
+ * A base class for Wallet implementations
12
+ */
13
+ export declare abstract class BaseWallet implements Wallet {
14
+ protected readonly rpc: AztecRPC;
15
+ constructor(rpc: AztecRPC);
16
+ abstract createTxExecutionRequest(execs: FunctionCall[]): Promise<TxExecutionRequest>;
17
+ registerAccount(privKey: GrumpkinPrivateKey, partialAddress: PartialAddress): Promise<void>;
18
+ registerRecipient(account: CompleteAddress): Promise<void>;
19
+ getAccounts(): Promise<CompleteAddress[]>;
20
+ getAccount(address: AztecAddress): Promise<CompleteAddress | undefined>;
21
+ getRecipients(): Promise<CompleteAddress[]>;
22
+ getRecipient(address: AztecAddress): Promise<CompleteAddress | undefined>;
23
+ addContracts(contracts: DeployedContract[]): Promise<void>;
24
+ getContracts(): Promise<AztecAddress[]>;
25
+ simulateTx(txRequest: TxExecutionRequest, simulatePublic: boolean): Promise<Tx>;
26
+ sendTx(tx: Tx): Promise<TxHash>;
27
+ getTxReceipt(txHash: TxHash): Promise<TxReceipt>;
28
+ getPrivateStorageAt(owner: AztecAddress, contract: AztecAddress, storageSlot: Fr): Promise<NotePreimage[]>;
29
+ getPublicStorageAt(contract: AztecAddress, storageSlot: Fr): Promise<any>;
30
+ viewTx(functionName: string, args: any[], to: AztecAddress, from?: AztecAddress | undefined): Promise<any>;
31
+ getExtendedContractData(contractAddress: AztecAddress): Promise<ExtendedContractData | undefined>;
32
+ getContractData(contractAddress: AztecAddress): Promise<ContractData | undefined>;
33
+ getUnencryptedLogs(from: number, limit: number): Promise<L2BlockL2Logs[]>;
34
+ getBlockNumber(): Promise<number>;
35
+ getNodeInfo(): Promise<NodeInfo>;
36
+ isGlobalStateSynchronised(): Promise<boolean>;
37
+ isAccountStateSynchronised(account: AztecAddress): Promise<boolean>;
38
+ getSyncStatus(): Promise<SyncStatus>;
39
+ addAuthWitness(messageHash: Fr, witness: Fr[]): Promise<void>;
40
+ }
41
+ /**
42
+ * A simple wallet implementation that forwards authentication requests to a provided entrypoint implementation.
43
+ */
44
+ export declare class EntrypointWallet extends BaseWallet {
45
+ protected accountImpl: Entrypoint;
46
+ constructor(rpc: AztecRPC, accountImpl: Entrypoint);
47
+ createTxExecutionRequest(executions: FunctionCall[]): Promise<TxExecutionRequest>;
48
+ }
49
+ /**
50
+ * A wallet implementation supporting auth witnesses.
51
+ * This wallet inserts eip1271-like witnesses into the RPC, which are then fetched using an oracle
52
+ * to provide authentication data to the contract during execution.
53
+ */
54
+ export declare class AuthWitnessEntrypointWallet extends BaseWallet {
55
+ protected accountImpl: IAuthWitnessAccountEntrypoint;
56
+ protected address: CompleteAddress;
57
+ constructor(rpc: AztecRPC, accountImpl: IAuthWitnessAccountEntrypoint, address: CompleteAddress);
58
+ /**
59
+ * Create a transaction request and add the auth witness to the RPC.
60
+ * Note: When used in simulations, the witness that is inserted could be used later by attacker with
61
+ * access to the RPC.
62
+ * Meaning that if you were to use someone elses rpc with db you could send these transactions.
63
+ * For simulations it would be desirable to bypass such that no data is generated.
64
+ *
65
+ * @param executions - The function calls to execute.
66
+ * @param opts - The options.
67
+ * @returns - The TxRequest
68
+ */
69
+ createTxExecutionRequest(executions: FunctionCall[]): Promise<TxExecutionRequest>;
70
+ sign(messageHash: Buffer): Promise<Buffer>;
71
+ /**
72
+ * Signs the `messageHash` and adds the witness to the RPC.
73
+ * This is useful for signing messages that are not directly part of the transaction payload, such as
74
+ * approvals .
75
+ * @param messageHash - The message hash to sign
76
+ * @param opts - The options.
77
+ */
78
+ signAndAddAuthWitness(messageHash: Buffer): Promise<void>;
79
+ /**
80
+ * Signs the `messageHash` and adds the witness to the RPC.
81
+ * This is useful for signing messages that are not directly part of the transaction payload, such as
82
+ * approvals .
83
+ * @param messageHash - The message hash to sign
84
+ */
85
+ signAndGetAuthWitness(messageHash: Buffer): Promise<Fr[]>;
86
+ /** Returns the complete address of the account that implements this wallet. */
87
+ getCompleteAddress(): CompleteAddress;
88
+ /** Returns the address of the account that implements this wallet. */
89
+ getAddress(): AztecAddress;
90
+ }
91
+ /**
92
+ * A wallet implementation that forwards authentication requests to a provided account.
93
+ */
94
+ export declare class AccountWallet extends EntrypointWallet {
95
+ protected accountImpl: Entrypoint;
96
+ protected address: CompleteAddress;
97
+ constructor(rpc: AztecRPC, accountImpl: Entrypoint, address: CompleteAddress);
98
+ /** Returns the complete address of the account that implements this wallet. */
99
+ getCompleteAddress(): CompleteAddress;
100
+ /** Returns the address of the account that implements this wallet. */
101
+ getAddress(): AztecAddress;
102
+ }
103
+ /**
104
+ * Wallet implementation which creates a transaction request directly to the requested contract without any signing.
105
+ */
106
+ export declare class SignerlessWallet extends BaseWallet {
107
+ createTxExecutionRequest(executions: FunctionCall[]): Promise<TxExecutionRequest>;
108
+ }
109
+ //# sourceMappingURL=wallet.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"wallet.d.ts","sourceRoot":"","sources":["../../src/aztec_rpc_client/wallet.ts"],"names":[],"mappings":";AAAA,OAAO,EAAE,YAAY,EAAgB,EAAE,EAAE,kBAAkB,EAAE,cAAc,EAAa,MAAM,oBAAoB,CAAC;AACnH,OAAO,EACL,QAAQ,EACR,YAAY,EACZ,gBAAgB,EAChB,oBAAoB,EACpB,YAAY,EACZ,aAAa,EACb,QAAQ,EACR,YAAY,EAEZ,UAAU,EACV,EAAE,EACF,kBAAkB,EAClB,MAAM,EACN,SAAS,EACV,MAAM,cAAc,CAAC;AAEtB,OAAO,EAAE,UAAU,EAAE,6BAA6B,EAAE,MAAM,gCAAgC,CAAC;AAC3F,OAAO,EAAE,eAAe,EAAE,MAAM,aAAa,CAAC;AAE9C;;GAEG;AACH,MAAM,MAAM,MAAM,GAAG,UAAU,GAAG,QAAQ,CAAC;AAE3C;;GAEG;AACH,8BAAsB,UAAW,YAAW,MAAM;IACpC,SAAS,CAAC,QAAQ,CAAC,GAAG,EAAE,QAAQ;gBAAb,GAAG,EAAE,QAAQ;IAE5C,QAAQ,CAAC,wBAAwB,CAAC,KAAK,EAAE,YAAY,EAAE,GAAG,OAAO,CAAC,kBAAkB,CAAC;IAErF,eAAe,CAAC,OAAO,EAAE,kBAAkB,EAAE,cAAc,EAAE,cAAc,GAAG,OAAO,CAAC,IAAI,CAAC;IAG3F,iBAAiB,CAAC,OAAO,EAAE,eAAe,GAAG,OAAO,CAAC,IAAI,CAAC;IAG1D,WAAW,IAAI,OAAO,CAAC,eAAe,EAAE,CAAC;IAGzC,UAAU,CAAC,OAAO,EAAE,YAAY,GAAG,OAAO,CAAC,eAAe,GAAG,SAAS,CAAC;IAGvE,aAAa,IAAI,OAAO,CAAC,eAAe,EAAE,CAAC;IAG3C,YAAY,CAAC,OAAO,EAAE,YAAY,GAAG,OAAO,CAAC,eAAe,GAAG,SAAS,CAAC;IAGzE,YAAY,CAAC,SAAS,EAAE,gBAAgB,EAAE,GAAG,OAAO,CAAC,IAAI,CAAC;IAG1D,YAAY,IAAI,OAAO,CAAC,YAAY,EAAE,CAAC;IAGvC,UAAU,CAAC,SAAS,EAAE,kBAAkB,EAAE,cAAc,EAAE,OAAO,GAAG,OAAO,CAAC,EAAE,CAAC;IAG/E,MAAM,CAAC,EAAE,EAAE,EAAE,GAAG,OAAO,CAAC,MAAM,CAAC;IAG/B,YAAY,CAAC,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,SAAS,CAAC;IAGhD,mBAAmB,CAAC,KAAK,EAAE,YAAY,EAAE,QAAQ,EAAE,YAAY,EAAE,WAAW,EAAE,EAAE,GAAG,OAAO,CAAC,YAAY,EAAE,CAAC;IAG1G,kBAAkB,CAAC,QAAQ,EAAE,YAAY,EAAE,WAAW,EAAE,EAAE,GAAG,OAAO,CAAC,GAAG,CAAC;IAGzE,MAAM,CAAC,YAAY,EAAE,MAAM,EAAE,IAAI,EAAE,GAAG,EAAE,EAAE,EAAE,EAAE,YAAY,EAAE,IAAI,CAAC,EAAE,YAAY,GAAG,SAAS,GAAG,OAAO,CAAC,GAAG,CAAC;IAG1G,uBAAuB,CAAC,eAAe,EAAE,YAAY,GAAG,OAAO,CAAC,oBAAoB,GAAG,SAAS,CAAC;IAGjG,eAAe,CAAC,eAAe,EAAE,YAAY,GAAG,OAAO,CAAC,YAAY,GAAG,SAAS,CAAC;IAGjF,kBAAkB,CAAC,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,GAAG,OAAO,CAAC,aAAa,EAAE,CAAC;IAGzE,cAAc,IAAI,OAAO,CAAC,MAAM,CAAC;IAGjC,WAAW,IAAI,OAAO,CAAC,QAAQ,CAAC;IAGhC,yBAAyB;IAGzB,0BAA0B,CAAC,OAAO,EAAE,YAAY;IAGhD,aAAa,IAAI,OAAO,CAAC,UAAU,CAAC;IAGpC,cAAc,CAAC,WAAW,EAAE,EAAE,EAAE,OAAO,EAAE,EAAE,EAAE;CAG9C;AAED;;GAEG;AACH,qBAAa,gBAAiB,SAAQ,UAAU;IACnB,SAAS,CAAC,WAAW,EAAE,UAAU;gBAAhD,GAAG,EAAE,QAAQ,EAAY,WAAW,EAAE,UAAU;IAG5D,wBAAwB,CAAC,UAAU,EAAE,YAAY,EAAE,GAAG,OAAO,CAAC,kBAAkB,CAAC;CAGlF;AAED;;;;GAIG;AACH,qBAAa,2BAA4B,SAAQ,UAAU;IAC9B,SAAS,CAAC,WAAW,EAAE,6BAA6B;IAAE,SAAS,CAAC,OAAO,EAAE,eAAe;gBAAvG,GAAG,EAAE,QAAQ,EAAY,WAAW,EAAE,6BAA6B,EAAY,OAAO,EAAE,eAAe;IAInH;;;;;;;;;;OAUG;IACG,wBAAwB,CAAC,UAAU,EAAE,YAAY,EAAE,GAAG,OAAO,CAAC,kBAAkB,CAAC;IAMvF,IAAI,CAAC,WAAW,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC;IAI1C;;;;;;OAMG;IACG,qBAAqB,CAAC,WAAW,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAM/D;;;;;OAKG;IACG,qBAAqB,CAAC,WAAW,EAAE,MAAM,GAAG,OAAO,CAAC,EAAE,EAAE,CAAC;IAI/D,+EAA+E;IACxE,kBAAkB;IAIzB,sEAAsE;IAC/D,UAAU;CAGlB;AAED;;GAEG;AACH,qBAAa,aAAc,SAAQ,gBAAgB;IACtB,SAAS,CAAC,WAAW,EAAE,UAAU;IAAE,SAAS,CAAC,OAAO,EAAE,eAAe;gBAApF,GAAG,EAAE,QAAQ,EAAY,WAAW,EAAE,UAAU,EAAY,OAAO,EAAE,eAAe;IAIhG,+EAA+E;IACxE,kBAAkB;IAIzB,sEAAsE;IAC/D,UAAU;CAGlB;AAED;;GAEG;AACH,qBAAa,gBAAiB,SAAQ,UAAU;IACxC,wBAAwB,CAAC,UAAU,EAAE,YAAY,EAAE,GAAG,OAAO,CAAC,kBAAkB,CAAC;CAaxF"}
@@ -0,0 +1,186 @@
1
+ import { CircuitsWasm, Fr, TxContext } from '@aztec/circuits.js';
2
+ import { PackedArguments, TxExecutionRequest, } from '@aztec/types';
3
+ /**
4
+ * A base class for Wallet implementations
5
+ */
6
+ export class BaseWallet {
7
+ constructor(rpc) {
8
+ this.rpc = rpc;
9
+ }
10
+ registerAccount(privKey, partialAddress) {
11
+ return this.rpc.registerAccount(privKey, partialAddress);
12
+ }
13
+ registerRecipient(account) {
14
+ return this.rpc.registerRecipient(account);
15
+ }
16
+ getAccounts() {
17
+ return this.rpc.getAccounts();
18
+ }
19
+ getAccount(address) {
20
+ return this.rpc.getAccount(address);
21
+ }
22
+ getRecipients() {
23
+ return this.rpc.getRecipients();
24
+ }
25
+ getRecipient(address) {
26
+ return this.rpc.getRecipient(address);
27
+ }
28
+ addContracts(contracts) {
29
+ return this.rpc.addContracts(contracts);
30
+ }
31
+ getContracts() {
32
+ return this.rpc.getContracts();
33
+ }
34
+ simulateTx(txRequest, simulatePublic) {
35
+ return this.rpc.simulateTx(txRequest, simulatePublic);
36
+ }
37
+ sendTx(tx) {
38
+ return this.rpc.sendTx(tx);
39
+ }
40
+ getTxReceipt(txHash) {
41
+ return this.rpc.getTxReceipt(txHash);
42
+ }
43
+ getPrivateStorageAt(owner, contract, storageSlot) {
44
+ return this.rpc.getPrivateStorageAt(owner, contract, storageSlot);
45
+ }
46
+ getPublicStorageAt(contract, storageSlot) {
47
+ return this.rpc.getPublicStorageAt(contract, storageSlot);
48
+ }
49
+ viewTx(functionName, args, to, from) {
50
+ return this.rpc.viewTx(functionName, args, to, from);
51
+ }
52
+ getExtendedContractData(contractAddress) {
53
+ return this.rpc.getExtendedContractData(contractAddress);
54
+ }
55
+ getContractData(contractAddress) {
56
+ return this.rpc.getContractData(contractAddress);
57
+ }
58
+ getUnencryptedLogs(from, limit) {
59
+ return this.rpc.getUnencryptedLogs(from, limit);
60
+ }
61
+ getBlockNumber() {
62
+ return this.rpc.getBlockNumber();
63
+ }
64
+ getNodeInfo() {
65
+ return this.rpc.getNodeInfo();
66
+ }
67
+ isGlobalStateSynchronised() {
68
+ return this.rpc.isGlobalStateSynchronised();
69
+ }
70
+ isAccountStateSynchronised(account) {
71
+ return this.rpc.isAccountStateSynchronised(account);
72
+ }
73
+ getSyncStatus() {
74
+ return this.rpc.getSyncStatus();
75
+ }
76
+ addAuthWitness(messageHash, witness) {
77
+ return this.rpc.addAuthWitness(messageHash, witness);
78
+ }
79
+ }
80
+ /**
81
+ * A simple wallet implementation that forwards authentication requests to a provided entrypoint implementation.
82
+ */
83
+ export class EntrypointWallet extends BaseWallet {
84
+ constructor(rpc, accountImpl) {
85
+ super(rpc);
86
+ this.accountImpl = accountImpl;
87
+ }
88
+ createTxExecutionRequest(executions) {
89
+ return this.accountImpl.createTxExecutionRequest(executions);
90
+ }
91
+ }
92
+ /**
93
+ * A wallet implementation supporting auth witnesses.
94
+ * This wallet inserts eip1271-like witnesses into the RPC, which are then fetched using an oracle
95
+ * to provide authentication data to the contract during execution.
96
+ */
97
+ export class AuthWitnessEntrypointWallet extends BaseWallet {
98
+ constructor(rpc, accountImpl, address) {
99
+ super(rpc);
100
+ this.accountImpl = accountImpl;
101
+ this.address = address;
102
+ }
103
+ /**
104
+ * Create a transaction request and add the auth witness to the RPC.
105
+ * Note: When used in simulations, the witness that is inserted could be used later by attacker with
106
+ * access to the RPC.
107
+ * Meaning that if you were to use someone elses rpc with db you could send these transactions.
108
+ * For simulations it would be desirable to bypass such that no data is generated.
109
+ *
110
+ * @param executions - The function calls to execute.
111
+ * @param opts - The options.
112
+ * @returns - The TxRequest
113
+ */
114
+ async createTxExecutionRequest(executions) {
115
+ const { txRequest, message, witness } = await this.accountImpl.createTxExecutionRequestWithWitness(executions);
116
+ await this.rpc.addAuthWitness(Fr.fromBuffer(message), witness);
117
+ return txRequest;
118
+ }
119
+ sign(messageHash) {
120
+ return Promise.resolve(this.accountImpl.sign(messageHash));
121
+ }
122
+ /**
123
+ * Signs the `messageHash` and adds the witness to the RPC.
124
+ * This is useful for signing messages that are not directly part of the transaction payload, such as
125
+ * approvals .
126
+ * @param messageHash - The message hash to sign
127
+ * @param opts - The options.
128
+ */
129
+ async signAndAddAuthWitness(messageHash) {
130
+ const witness = await this.accountImpl.createAuthWitness(messageHash);
131
+ await this.rpc.addAuthWitness(Fr.fromBuffer(messageHash), witness);
132
+ return Promise.resolve();
133
+ }
134
+ /**
135
+ * Signs the `messageHash` and adds the witness to the RPC.
136
+ * This is useful for signing messages that are not directly part of the transaction payload, such as
137
+ * approvals .
138
+ * @param messageHash - The message hash to sign
139
+ */
140
+ async signAndGetAuthWitness(messageHash) {
141
+ return await this.accountImpl.createAuthWitness(messageHash);
142
+ }
143
+ /** Returns the complete address of the account that implements this wallet. */
144
+ getCompleteAddress() {
145
+ return this.address;
146
+ }
147
+ /** Returns the address of the account that implements this wallet. */
148
+ getAddress() {
149
+ return this.address.address;
150
+ }
151
+ }
152
+ /**
153
+ * A wallet implementation that forwards authentication requests to a provided account.
154
+ */
155
+ export class AccountWallet extends EntrypointWallet {
156
+ constructor(rpc, accountImpl, address) {
157
+ super(rpc, accountImpl);
158
+ this.accountImpl = accountImpl;
159
+ this.address = address;
160
+ }
161
+ /** Returns the complete address of the account that implements this wallet. */
162
+ getCompleteAddress() {
163
+ return this.address;
164
+ }
165
+ /** Returns the address of the account that implements this wallet. */
166
+ getAddress() {
167
+ return this.address.address;
168
+ }
169
+ }
170
+ /**
171
+ * Wallet implementation which creates a transaction request directly to the requested contract without any signing.
172
+ */
173
+ export class SignerlessWallet extends BaseWallet {
174
+ async createTxExecutionRequest(executions) {
175
+ if (executions.length !== 1) {
176
+ throw new Error(`Unexpected number of executions. Expected 1, received ${executions.length})`);
177
+ }
178
+ const [execution] = executions;
179
+ const wasm = await CircuitsWasm.get();
180
+ const packedArguments = await PackedArguments.fromArgs(execution.args, wasm);
181
+ const { chainId, version } = await this.rpc.getNodeInfo();
182
+ const txContext = TxContext.empty(chainId, version);
183
+ return Promise.resolve(new TxExecutionRequest(execution.to, execution.functionData, packedArguments.hash, txContext, [packedArguments]));
184
+ }
185
+ }
186
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoid2FsbGV0LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL2F6dGVjX3JwY19jbGllbnQvd2FsbGV0LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBZ0IsWUFBWSxFQUFFLEVBQUUsRUFBc0MsU0FBUyxFQUFFLE1BQU0sb0JBQW9CLENBQUM7QUFDbkgsT0FBTyxFQVNMLGVBQWUsRUFHZixrQkFBa0IsR0FHbkIsTUFBTSxjQUFjLENBQUM7QUFVdEI7O0dBRUc7QUFDSCxNQUFNLE9BQWdCLFVBQVU7SUFDOUIsWUFBK0IsR0FBYTtRQUFiLFFBQUcsR0FBSCxHQUFHLENBQVU7SUFBRyxDQUFDO0lBSWhELGVBQWUsQ0FBQyxPQUEyQixFQUFFLGNBQThCO1FBQ3pFLE9BQU8sSUFBSSxDQUFDLEdBQUcsQ0FBQyxlQUFlLENBQUMsT0FBTyxFQUFFLGNBQWMsQ0FBQyxDQUFDO0lBQzNELENBQUM7SUFDRCxpQkFBaUIsQ0FBQyxPQUF3QjtRQUN4QyxPQUFPLElBQUksQ0FBQyxHQUFHLENBQUMsaUJBQWlCLENBQUMsT0FBTyxDQUFDLENBQUM7SUFDN0MsQ0FBQztJQUNELFdBQVc7UUFDVCxPQUFPLElBQUksQ0FBQyxHQUFHLENBQUMsV0FBVyxFQUFFLENBQUM7SUFDaEMsQ0FBQztJQUNELFVBQVUsQ0FBQyxPQUFxQjtRQUM5QixPQUFPLElBQUksQ0FBQyxHQUFHLENBQUMsVUFBVSxDQUFDLE9BQU8sQ0FBQyxDQUFDO0lBQ3RDLENBQUM7SUFDRCxhQUFhO1FBQ1gsT0FBTyxJQUFJLENBQUMsR0FBRyxDQUFDLGFBQWEsRUFBRSxDQUFDO0lBQ2xDLENBQUM7SUFDRCxZQUFZLENBQUMsT0FBcUI7UUFDaEMsT0FBTyxJQUFJLENBQUMsR0FBRyxDQUFDLFlBQVksQ0FBQyxPQUFPLENBQUMsQ0FBQztJQUN4QyxDQUFDO0lBQ0QsWUFBWSxDQUFDLFNBQTZCO1FBQ3hDLE9BQU8sSUFBSSxDQUFDLEdBQUcsQ0FBQyxZQUFZLENBQUMsU0FB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
@@ -0,0 +1,45 @@
1
+ import { AztecRPC, Tx, TxExecutionRequest } from '@aztec/types';
2
+ import { SentTx } from './sent_tx.js';
3
+ /**
4
+ * Represents options for calling a (constrained) function in a contract.
5
+ * Allows the user to specify the sender address and nonce for a transaction.
6
+ */
7
+ export interface SendMethodOptions {
8
+ /**
9
+ * Wether to skip the simulation of the public part of the transaction.
10
+ */
11
+ skipPublicSimulation?: boolean;
12
+ }
13
+ /**
14
+ * Base class for an interaction with a contract, be it a deployment, a function call, or a batch.
15
+ * Implements the sequence create/simulate/send.
16
+ */
17
+ export declare abstract class BaseContractInteraction {
18
+ protected rpc: AztecRPC;
19
+ protected tx?: Tx;
20
+ protected txRequest?: TxExecutionRequest;
21
+ constructor(rpc: AztecRPC);
22
+ /**
23
+ * Create a transaction execution request ready to be simulated.
24
+ * @param options - An optional object containing additional configuration for the transaction.
25
+ * @returns A transaction execution request.
26
+ */
27
+ abstract create(options?: SendMethodOptions): Promise<TxExecutionRequest>;
28
+ /**
29
+ * Simulates a transaction execution request and returns a tx object ready to be sent.
30
+ * @param options - optional arguments to be used in the creation of the transaction
31
+ * @returns The resulting transaction
32
+ */
33
+ simulate(options?: SendMethodOptions): Promise<Tx>;
34
+ /**
35
+ * Sends a transaction to the contract function with the specified options.
36
+ * This function throws an error if called on an unconstrained function.
37
+ * It creates and signs the transaction if necessary, and returns a SentTx instance,
38
+ * which can be used to track the transaction status, receipt, and events.
39
+ * @param options - An optional object containing 'from' property representing
40
+ * the AztecAddress of the sender. If not provided, the default address is used.
41
+ * @returns A SentTx instance for tracking the transaction status and information.
42
+ */
43
+ send(options?: SendMethodOptions): SentTx;
44
+ }
45
+ //# sourceMappingURL=base_contract_interaction.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"base_contract_interaction.d.ts","sourceRoot":"","sources":["../../src/contract/base_contract_interaction.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,EAAE,EAAE,kBAAkB,EAAE,MAAM,cAAc,CAAC;AAEhE,OAAO,EAAE,MAAM,EAAE,MAAM,cAAc,CAAC;AAEtC;;;GAGG;AACH,MAAM,WAAW,iBAAiB;IAChC;;OAEG;IACH,oBAAoB,CAAC,EAAE,OAAO,CAAC;CAChC;AAED;;;GAGG;AACH,8BAAsB,uBAAuB;IAI/B,SAAS,CAAC,GAAG,EAAE,QAAQ;IAHnC,SAAS,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC;IAClB,SAAS,CAAC,SAAS,CAAC,EAAE,kBAAkB,CAAC;gBAEnB,GAAG,EAAE,QAAQ;IAEnC;;;;OAIG;aACa,MAAM,CAAC,OAAO,CAAC,EAAE,iBAAiB,GAAG,OAAO,CAAC,kBAAkB,CAAC;IAEhF;;;;OAIG;IACU,QAAQ,CAAC,OAAO,GAAE,iBAAsB,GAAG,OAAO,CAAC,EAAE,CAAC;IAMnE;;;;;;;;OAQG;IACI,IAAI,CAAC,OAAO,GAAE,iBAAsB;CAQ5C"}
@@ -0,0 +1,37 @@
1
+ import { SentTx } from './sent_tx.js';
2
+ /**
3
+ * Base class for an interaction with a contract, be it a deployment, a function call, or a batch.
4
+ * Implements the sequence create/simulate/send.
5
+ */
6
+ export class BaseContractInteraction {
7
+ constructor(rpc) {
8
+ this.rpc = rpc;
9
+ }
10
+ /**
11
+ * Simulates a transaction execution request and returns a tx object ready to be sent.
12
+ * @param options - optional arguments to be used in the creation of the transaction
13
+ * @returns The resulting transaction
14
+ */
15
+ async simulate(options = {}) {
16
+ const txRequest = this.txRequest ?? (await this.create(options));
17
+ this.tx = await this.rpc.simulateTx(txRequest, !options.skipPublicSimulation);
18
+ return this.tx;
19
+ }
20
+ /**
21
+ * Sends a transaction to the contract function with the specified options.
22
+ * This function throws an error if called on an unconstrained function.
23
+ * It creates and signs the transaction if necessary, and returns a SentTx instance,
24
+ * which can be used to track the transaction status, receipt, and events.
25
+ * @param options - An optional object containing 'from' property representing
26
+ * the AztecAddress of the sender. If not provided, the default address is used.
27
+ * @returns A SentTx instance for tracking the transaction status and information.
28
+ */
29
+ send(options = {}) {
30
+ const promise = (async () => {
31
+ const tx = this.tx ?? (await this.simulate(options));
32
+ return this.rpc.sendTx(tx);
33
+ })();
34
+ return new SentTx(this.rpc, promise);
35
+ }
36
+ }
37
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYmFzZV9jb250cmFjdF9pbnRlcmFjdGlvbi5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9jb250cmFjdC9iYXNlX2NvbnRyYWN0X2ludGVyYWN0aW9uLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUVBLE9BQU8sRUFBRSxNQUFNLEVBQUUsTUFBTSxjQUFjLENBQUM7QUFhdEM7OztHQUdHO0FBQ0gsTUFBTSxPQUFnQix1QkFBdUI7SUFJM0MsWUFBc0IsR0FBYTtRQUFiLFFBQUcsR0FBSCxHQUFHLENBQVU7SUFBRyxDQUFDO0lBU3ZDOzs7O09BSUc7SUFDSSxLQUFLLENBQUMsUUFBUSxDQUFDLFVBQTZCLEVBQUU7UUFDbkQsTUFBTSxTQUFTLEdBQUcsSUFBSSxDQUFDLFNBQVMsSUFBSSxDQUFDLE1BQU0sSUFBSSxDQUFDLE1BQU0sQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDO1FBQ2pFLElBQUksQ0FBQyxFQUFFLEdBQUcsTUFBTSxJQUFJLENBQUMsR0FBRyxDQUFDLFVBQVUsQ0FBQyxTQUFTLEVBQUUsQ0FBQyxPQUFPLENBQUMsb0JBQW9CLENBQUMsQ0FBQztRQUM5RSxPQUFPLElBQUksQ0FBQyxFQUFFLENBQUM7SUFDakIsQ0FBQztJQUVEOzs7Ozs7OztPQVFHO0lBQ0ksSUFBSSxDQUFDLFVBQTZCLEVBQUU7UUFDekMsTUFBTSxPQUFPLEdBQUcsQ0FBQyxLQUFLLElBQUksRUFBRTtZQUMxQixNQUFNLEVBQUUsR0FBRyxJQUFJLENBQUMsRUFBRSxJQUFJLENBQUMsTUFBTSxJQUFJLENBQUMsUUFBUSxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUM7WUFDckQsT0FBTyxJQUFJLENBQUMsR0FBRyxDQUFDLE1BQU0sQ0FBQyxFQUFFLENBQUMsQ0FBQztRQUM3QixDQUFDLENBQUMsRUFBRSxDQUFDO1FBRUwsT0FBTyxJQUFJLE1BQU0sQ0FBQyxJQUFJLENBQUMsR0FBRyxFQUFFLE9BQU8sQ0FBQyxDQUFDO0lBQ3ZDLENBQUM7Q0FDRiJ9
@@ -0,0 +1,15 @@
1
+ import { FunctionCall, TxExecutionRequest, Wallet } from '../index.js';
2
+ import { BaseContractInteraction } from './base_contract_interaction.js';
3
+ /** A batch of function calls to be sent as a single transaction through a wallet. */
4
+ export declare class BatchCall extends BaseContractInteraction {
5
+ protected wallet: Wallet;
6
+ protected calls: FunctionCall[];
7
+ constructor(wallet: Wallet, calls: FunctionCall[]);
8
+ /**
9
+ * Create a transaction execution request that represents this batch, encoded and authenticated by the
10
+ * user's wallet, ready to be simulated.
11
+ * @returns A Promise that resolves to a transaction instance.
12
+ */
13
+ create(): Promise<TxExecutionRequest>;
14
+ }
15
+ //# sourceMappingURL=batch_call.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"batch_call.d.ts","sourceRoot":"","sources":["../../src/contract/batch_call.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,kBAAkB,EAAE,MAAM,EAAE,MAAM,aAAa,CAAC;AACvE,OAAO,EAAE,uBAAuB,EAAE,MAAM,gCAAgC,CAAC;AAEzE,qFAAqF;AACrF,qBAAa,SAAU,SAAQ,uBAAuB;IACxC,SAAS,CAAC,MAAM,EAAE,MAAM;IAAE,SAAS,CAAC,KAAK,EAAE,YAAY,EAAE;gBAA/C,MAAM,EAAE,MAAM,EAAY,KAAK,EAAE,YAAY,EAAE;IAIrE;;;;OAIG;IACU,MAAM,IAAI,OAAO,CAAC,kBAAkB,CAAC;CAMnD"}
@@ -0,0 +1,21 @@
1
+ import { BaseContractInteraction } from './base_contract_interaction.js';
2
+ /** A batch of function calls to be sent as a single transaction through a wallet. */
3
+ export class BatchCall extends BaseContractInteraction {
4
+ constructor(wallet, calls) {
5
+ super(wallet);
6
+ this.wallet = wallet;
7
+ this.calls = calls;
8
+ }
9
+ /**
10
+ * Create a transaction execution request that represents this batch, encoded and authenticated by the
11
+ * user's wallet, ready to be simulated.
12
+ * @returns A Promise that resolves to a transaction instance.
13
+ */
14
+ async create() {
15
+ if (!this.txRequest) {
16
+ this.txRequest = await this.wallet.createTxExecutionRequest(this.calls);
17
+ }
18
+ return this.txRequest;
19
+ }
20
+ }
21
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYmF0Y2hfY2FsbC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9jb250cmFjdC9iYXRjaF9jYWxsLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUNBLE9BQU8sRUFBRSx1QkFBdUIsRUFBRSxNQUFNLGdDQUFnQyxDQUFDO0FBRXpFLHFGQUFxRjtBQUNyRixNQUFNLE9BQU8sU0FBVSxTQUFRLHVCQUF1QjtJQUNwRCxZQUFzQixNQUFjLEVBQVksS0FBcUI7UUFDbkUsS0FBSyxDQUFDLE1BQU0sQ0FBQyxDQUFDO1FBRE0sV0FBTSxHQUFOLE1BQU0sQ0FBUTtRQUFZLFVBQUssR0FBTCxLQUFLLENBQWdCO0lBRXJFLENBQUM7SUFFRDs7OztPQUlHO0lBQ0ksS0FBSyxDQUFDLE1BQU07UUFDakIsSUFBSSxDQUFDLElBQUksQ0FBQyxTQUFTLEVBQUU7WUFDbkIsSUFBSSxDQUFDLFNBQVMsR0FBRyxNQUFNLElBQUksQ0FBQyxNQUFNLENBQUMsd0JBQXdCLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDO1NBQ3pFO1FBQ0QsT0FBTyxJQUFJLENBQUMsU0FBUyxDQUFDO0lBQ3hCLENBQUM7Q0FDRiJ9
@@ -0,0 +1,11 @@
1
+ import { ContractAbi } from '@aztec/foundation/abi';
2
+ /**
3
+ * Validates the given ContractAbi object by checking its functions and their parameters.
4
+ * Ensures that the ABI has at least one function, a constructor, valid bytecode, and correct parameter types.
5
+ * Throws an error if any inconsistency is detected during the validation process.
6
+ *
7
+ * @param abi - The ContractAbi object to be validated.
8
+ * @returns A boolean value indicating whether the ABI is valid or not.
9
+ */
10
+ export declare function abiChecker(abi: ContractAbi): boolean;
11
+ //# sourceMappingURL=checker.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"checker.d.ts","sourceRoot":"","sources":["../../src/contract/checker.ts"],"names":[],"mappings":"AAAA,OAAO,EAAsB,WAAW,EAAc,MAAM,uBAAuB,CAAC;AAQpF;;;;;;;GAOG;AACH,wBAAgB,UAAU,CAAC,GAAG,EAAE,WAAW,WA8B1C"}