@walletmesh/aztec-rpc-wallet 0.1.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (108) hide show
  1. package/CHANGELOG.md +7 -0
  2. package/LICENSE +201 -0
  3. package/README.md +260 -0
  4. package/dist/.tsbuildinfo +1 -0
  5. package/dist/aztecRemoteWallet.d.ts +73 -0
  6. package/dist/aztecRemoteWallet.d.ts.map +1 -0
  7. package/dist/aztecRemoteWallet.js +354 -0
  8. package/dist/chainProvider.d.ts +56 -0
  9. package/dist/chainProvider.d.ts.map +1 -0
  10. package/dist/chainProvider.js +98 -0
  11. package/dist/contractArtifactCache.d.ts +50 -0
  12. package/dist/contractArtifactCache.d.ts.map +1 -0
  13. package/dist/contractArtifactCache.js +66 -0
  14. package/dist/errors.d.ts +50 -0
  15. package/dist/errors.d.ts.map +1 -0
  16. package/dist/errors.js +62 -0
  17. package/dist/handlers/aztecAccountWallet.d.ts +4 -0
  18. package/dist/handlers/aztecAccountWallet.d.ts.map +1 -0
  19. package/dist/handlers/aztecAccountWallet.js +329 -0
  20. package/dist/handlers/transactions.d.ts +21 -0
  21. package/dist/handlers/transactions.d.ts.map +1 -0
  22. package/dist/handlers/transactions.js +90 -0
  23. package/dist/handlers.d.ts +27 -0
  24. package/dist/handlers.d.ts.map +1 -0
  25. package/dist/handlers.js +55 -0
  26. package/dist/index.d.ts +58 -0
  27. package/dist/index.d.ts.map +1 -0
  28. package/dist/index.js +33 -0
  29. package/dist/provider.d.ts +105 -0
  30. package/dist/provider.d.ts.map +1 -0
  31. package/dist/provider.js +160 -0
  32. package/dist/serializers/account.d.ts +167 -0
  33. package/dist/serializers/account.d.ts.map +1 -0
  34. package/dist/serializers/account.js +245 -0
  35. package/dist/serializers/contract-utils.d.ts +40 -0
  36. package/dist/serializers/contract-utils.d.ts.map +1 -0
  37. package/dist/serializers/contract-utils.js +102 -0
  38. package/dist/serializers/contract.d.ts +168 -0
  39. package/dist/serializers/contract.d.ts.map +1 -0
  40. package/dist/serializers/contract.js +268 -0
  41. package/dist/serializers/core.d.ts +110 -0
  42. package/dist/serializers/core.d.ts.map +1 -0
  43. package/dist/serializers/core.js +130 -0
  44. package/dist/serializers/index.d.ts +28 -0
  45. package/dist/serializers/index.d.ts.map +1 -0
  46. package/dist/serializers/index.js +159 -0
  47. package/dist/serializers/log.d.ts +113 -0
  48. package/dist/serializers/log.d.ts.map +1 -0
  49. package/dist/serializers/log.js +231 -0
  50. package/dist/serializers/note.d.ts +127 -0
  51. package/dist/serializers/note.d.ts.map +1 -0
  52. package/dist/serializers/note.js +182 -0
  53. package/dist/serializers/transaction-utils.d.ts +107 -0
  54. package/dist/serializers/transaction-utils.d.ts.map +1 -0
  55. package/dist/serializers/transaction-utils.js +130 -0
  56. package/dist/serializers/transaction.d.ts +103 -0
  57. package/dist/serializers/transaction.d.ts.map +1 -0
  58. package/dist/serializers/transaction.js +238 -0
  59. package/dist/serializers/types.d.ts +49 -0
  60. package/dist/serializers/types.d.ts.map +1 -0
  61. package/dist/serializers/types.js +22 -0
  62. package/dist/types.d.ts +391 -0
  63. package/dist/types.d.ts.map +1 -0
  64. package/dist/types.js +8 -0
  65. package/dist/wallet.d.ts +62 -0
  66. package/dist/wallet.d.ts.map +1 -0
  67. package/dist/wallet.js +77 -0
  68. package/package.json +44 -0
  69. package/src/aztecRemoteWallet.test.ts +542 -0
  70. package/src/aztecRemoteWallet.ts +484 -0
  71. package/src/chainProvider.test.ts +322 -0
  72. package/src/chainProvider.ts +122 -0
  73. package/src/contractArtifactCache.test.ts +126 -0
  74. package/src/contractArtifactCache.ts +75 -0
  75. package/src/errors.ts +71 -0
  76. package/src/handlers/aztecAccountWallet.test.ts +720 -0
  77. package/src/handlers/aztecAccountWallet.ts +593 -0
  78. package/src/handlers/transactions.ts +110 -0
  79. package/src/handlers.test.ts +270 -0
  80. package/src/handlers.ts +70 -0
  81. package/src/index.test.ts +23 -0
  82. package/src/index.ts +64 -0
  83. package/src/provider.test.ts +276 -0
  84. package/src/provider.ts +189 -0
  85. package/src/serializers/account.test.ts +125 -0
  86. package/src/serializers/account.ts +319 -0
  87. package/src/serializers/contract-utils.ts +104 -0
  88. package/src/serializers/contract.test.ts +162 -0
  89. package/src/serializers/contract.ts +350 -0
  90. package/src/serializers/core.test.ts +56 -0
  91. package/src/serializers/core.ts +141 -0
  92. package/src/serializers/index.test.ts +122 -0
  93. package/src/serializers/index.ts +213 -0
  94. package/src/serializers/log.test.ts +119 -0
  95. package/src/serializers/log.ts +283 -0
  96. package/src/serializers/note.test.ts +100 -0
  97. package/src/serializers/note.ts +227 -0
  98. package/src/serializers/transaction-utils.ts +237 -0
  99. package/src/serializers/transaction.test.ts +153 -0
  100. package/src/serializers/transaction.ts +342 -0
  101. package/src/serializers/types.ts +58 -0
  102. package/src/types.ts +295 -0
  103. package/src/wallet.test.ts +275 -0
  104. package/src/wallet.ts +94 -0
  105. package/tsconfig.build.json +6 -0
  106. package/tsconfig.json +11 -0
  107. package/typedoc.json +15 -0
  108. package/vitest.config.ts +10 -0
@@ -0,0 +1,50 @@
1
+ /**
2
+ * @module contractArtifactCache
3
+ *
4
+ * This module provides caching functionality for Aztec contract artifacts.
5
+ * It helps improve performance by avoiding repeated fetches of the same contract artifacts.
6
+ */
7
+ import type { AztecAddress, ContractArtifact, Wallet } from '@aztec/aztec.js';
8
+ /**
9
+ * Caches contract artifacts to optimize contract interactions.
10
+ *
11
+ * This class maintains an in-memory cache of contract artifacts indexed by contract address.
12
+ * When a contract artifact is requested:
13
+ * 1. First checks the cache for an existing artifact
14
+ * 2. If not found, fetches the contract instance and its artifact from the wallet
15
+ * 3. Stores the artifact in the cache for future use
16
+ * 4. Returns the artifact to the caller
17
+ *
18
+ * This caching mechanism helps reduce:
19
+ * - Network requests to fetch contract data
20
+ * - Processing overhead of parsing contract artifacts
21
+ * - Memory usage by reusing existing artifacts
22
+ */
23
+ export declare class ContractArtifactCache {
24
+ /** Map of contract addresses to their artifacts */
25
+ private cache;
26
+ /** Reference to the wallet instance for fetching contract data */
27
+ private wallet;
28
+ /**
29
+ * Creates a new ContractArtifactCache instance.
30
+ * @param wallet - Wallet instance used to fetch contract data when cache misses occur
31
+ */
32
+ constructor(wallet: Wallet);
33
+ /**
34
+ * Retrieves the contract artifact for a given contract address.
35
+ * First checks the cache, then falls back to fetching from the wallet if needed.
36
+ *
37
+ * The process:
38
+ * 1. Check if artifact exists in cache
39
+ * 2. If not, get contract instance from wallet
40
+ * 3. Use instance to get contract class ID
41
+ * 4. Fetch artifact using class ID
42
+ * 5. Cache the artifact for future use
43
+ *
44
+ * @param contractAddress - The contract address to retrieve the artifact for
45
+ * @returns Promise resolving to the contract artifact
46
+ * @throws {AztecWalletError} If contract instance or class not registered
47
+ */
48
+ getContractArtifact(contractAddress: AztecAddress): Promise<ContractArtifact>;
49
+ }
50
+ //# sourceMappingURL=contractArtifactCache.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"contractArtifactCache.d.ts","sourceRoot":"","sources":["../src/contractArtifactCache.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,KAAK,EAAE,YAAY,EAAE,gBAAgB,EAAE,MAAM,EAAE,MAAM,iBAAiB,CAAC;AAI9E;;;;;;;;;;;;;;GAcG;AACH,qBAAa,qBAAqB;IAChC,mDAAmD;IACnD,OAAO,CAAC,KAAK,CAAuC;IACpD,kEAAkE;IAClE,OAAO,CAAC,MAAM,CAAS;IAEvB;;;OAGG;gBACS,MAAM,EAAE,MAAM;IAI1B;;;;;;;;;;;;;;OAcG;IACU,mBAAmB,CAAC,eAAe,EAAE,YAAY,GAAG,OAAO,CAAC,gBAAgB,CAAC;CAmB3F"}
@@ -0,0 +1,66 @@
1
+ /**
2
+ * @module contractArtifactCache
3
+ *
4
+ * This module provides caching functionality for Aztec contract artifacts.
5
+ * It helps improve performance by avoiding repeated fetches of the same contract artifacts.
6
+ */
7
+ import { AztecWalletError } from './errors.js';
8
+ /**
9
+ * Caches contract artifacts to optimize contract interactions.
10
+ *
11
+ * This class maintains an in-memory cache of contract artifacts indexed by contract address.
12
+ * When a contract artifact is requested:
13
+ * 1. First checks the cache for an existing artifact
14
+ * 2. If not found, fetches the contract instance and its artifact from the wallet
15
+ * 3. Stores the artifact in the cache for future use
16
+ * 4. Returns the artifact to the caller
17
+ *
18
+ * This caching mechanism helps reduce:
19
+ * - Network requests to fetch contract data
20
+ * - Processing overhead of parsing contract artifacts
21
+ * - Memory usage by reusing existing artifacts
22
+ */
23
+ export class ContractArtifactCache {
24
+ /**
25
+ * Creates a new ContractArtifactCache instance.
26
+ * @param wallet - Wallet instance used to fetch contract data when cache misses occur
27
+ */
28
+ constructor(wallet) {
29
+ /** Map of contract addresses to their artifacts */
30
+ this.cache = new Map();
31
+ this.wallet = wallet;
32
+ }
33
+ /**
34
+ * Retrieves the contract artifact for a given contract address.
35
+ * First checks the cache, then falls back to fetching from the wallet if needed.
36
+ *
37
+ * The process:
38
+ * 1. Check if artifact exists in cache
39
+ * 2. If not, get contract instance from wallet
40
+ * 3. Use instance to get contract class ID
41
+ * 4. Fetch artifact using class ID
42
+ * 5. Cache the artifact for future use
43
+ *
44
+ * @param contractAddress - The contract address to retrieve the artifact for
45
+ * @returns Promise resolving to the contract artifact
46
+ * @throws {AztecWalletError} If contract instance or class not registered
47
+ */
48
+ async getContractArtifact(contractAddress) {
49
+ const addressStr = contractAddress.toString();
50
+ const cached = this.cache.get(addressStr);
51
+ if (cached) {
52
+ return cached;
53
+ }
54
+ const contract = await this.wallet.getContractInstance(contractAddress);
55
+ if (!contract) {
56
+ throw new AztecWalletError('contractInstanceNotRegistered', addressStr);
57
+ }
58
+ const artifact = await this.wallet.getContractArtifact(contract.contractClassId);
59
+ if (!artifact) {
60
+ throw new AztecWalletError('contractClassNotRegistered', contract.contractClassId.toString());
61
+ }
62
+ this.cache.set(addressStr, artifact);
63
+ return artifact;
64
+ }
65
+ }
66
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29udHJhY3RBcnRpZmFjdENhY2hlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vc3JjL2NvbnRyYWN0QXJ0aWZhY3RDYWNoZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTs7Ozs7R0FLRztBQUlILE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLGFBQWEsQ0FBQztBQUUvQzs7Ozs7Ozs7Ozs7Ozs7R0FjRztBQUNILE1BQU0sT0FBTyxxQkFBcUI7SUFNaEM7OztPQUdHO0lBQ0gsWUFBWSxNQUFjO1FBVDFCLG1EQUFtRDtRQUMzQyxVQUFLLEdBQUcsSUFBSSxHQUFHLEVBQTRCLENBQUM7UUFTbEQsSUFBSSxDQUFDLE1BQU0sR0FBRyxNQUFNLENBQUM7SUFDdkIsQ0FBQztJQUVEOzs7Ozs7Ozs7Ozs7OztPQWNHO0lBQ0ksS0FBSyxDQUFDLG1CQUFtQixDQUFDLGVBQTZCO1FBQzVELE1BQU0sVUFBVSxHQUFHLGVBQWUsQ0FBQyxRQUFRLEVBQUUsQ0FBQztRQUM5QyxNQUFNLE1BQU0sR0FBRyxJQUFJLENBQUMsS0FBSyxDQUFDLEdBQUcsQ0FBQyxVQUFVLENBQUMsQ0FBQztRQUMxQyxJQUFJLE1BQU0sRUFBRSxDQUFDO1lBQ1gsT0FBTyxNQUFNLENBQUM7UUFDaEIsQ0FBQztRQUVELE1BQU0sUUFBUSxHQUFHLE1BQU0sSUFBSSxDQUFDLE1BQU0sQ0FBQyxtQkFBbUIsQ0FBQyxlQUFlLENBQUMsQ0FBQztRQUN4RSxJQUFJLENBQUMsUUFBUSxFQUFFLENBQUM7WUFDZCxNQUFNLElBQUksZ0JBQWdCLENBQUMsK0JBQStCLEVBQUUsVUFBVSxDQUFDLENBQUM7UUFDMUUsQ0FBQztRQUNELE1BQU0sUUFBUSxHQUFHLE1BQU0sSUFBSSxDQUFDLE1BQU0sQ0FBQyxtQkFBbUIsQ0FBQyxRQUFRLENBQUMsZUFBZSxDQUFDLENBQUM7UUFDakYsSUFBSSxDQUFDLFFBQVEsRUFBRSxDQUFDO1lBQ2QsTUFBTSxJQUFJLGdCQUFnQixDQUFDLDRCQUE0QixFQUFFLFFBQVEsQ0FBQyxlQUFlLENBQUMsUUFBUSxFQUFFLENBQUMsQ0FBQztRQUNoRyxDQUFDO1FBRUQsSUFBSSxDQUFDLEtBQUssQ0FBQyxHQUFHLENBQUMsVUFBVSxFQUFFLFFBQVEsQ0FBQyxDQUFDO1FBQ3JDLE9BQU8sUUFBUSxDQUFDO0lBQ2xCLENBQUM7Q0FDRiJ9
@@ -0,0 +1,50 @@
1
+ import { JSONRPCError } from '@walletmesh/jsonrpc';
2
+ /**
3
+ * Enum of available Aztec Wallet RPC error types.
4
+ * @public
5
+ */
6
+ export declare const AztecWalletErrorType: {
7
+ readonly unknownInternalError: "unknownInternalError";
8
+ readonly refused: "refused";
9
+ readonly walletNotConnected: "walletNotConnected";
10
+ readonly contractInstanceNotRegistered: "contractInstanceNotRegistered";
11
+ readonly contractClassNotRegistered: "contractClassNotRegistered";
12
+ readonly senderNotRegistered: "senderNotRegistered";
13
+ readonly invalidResponse: "invalidResponse";
14
+ readonly notConnected: "notConnected";
15
+ readonly chainNotSupported: "chainNotSupported";
16
+ readonly invalidRequest: "invalidRequest";
17
+ readonly invalidParams: "invalidParams";
18
+ readonly permissionDenied: "permissionDenied";
19
+ readonly sessionNotFound: "sessionNotFound";
20
+ readonly sessionExpired: "sessionExpired";
21
+ readonly transactionNotFound: "transactionNotFound";
22
+ readonly blockNotFound: "blockNotFound";
23
+ readonly authWitnessNotFound: "authWitnessNotFound";
24
+ };
25
+ /**
26
+ * Type representing valid Aztec Wallet RPC error types.
27
+ * @public
28
+ */
29
+ export type AztecWalletErrorType = (typeof AztecWalletErrorType)[keyof typeof AztecWalletErrorType];
30
+ /**
31
+ * Map of error codes and messages for Aztec Wallet RPC errors.
32
+ * @public
33
+ */
34
+ export declare const AztecWalletErrorMap: Record<AztecWalletErrorType, {
35
+ code: number;
36
+ message: string;
37
+ }>;
38
+ /**
39
+ * Custom error class for Aztec Wallet RPC errors.
40
+ * @public
41
+ */
42
+ export declare class AztecWalletError extends JSONRPCError {
43
+ /**
44
+ * Creates a new AztecWalletError.
45
+ * @param err - The error type from AztecWalletErrorMap
46
+ * @param data - Optional additional error data
47
+ */
48
+ constructor(err: AztecWalletErrorType, data?: string);
49
+ }
50
+ //# sourceMappingURL=errors.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"errors.d.ts","sourceRoot":"","sources":["../src/errors.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,qBAAqB,CAAC;AAGnD;;;GAGG;AACH,eAAO,MAAM,oBAAoB;;;;;;;;;;;;;;;;;;CAkBvB,CAAC;AAEX;;;GAGG;AACH,MAAM,MAAM,oBAAoB,GAAG,CAAC,OAAO,oBAAoB,CAAC,CAAC,MAAM,OAAO,oBAAoB,CAAC,CAAC;AAEpG;;;GAGG;AACH,eAAO,MAAM,mBAAmB,EAAE,MAAM,CAAC,oBAAoB,EAAE;IAAE,IAAI,EAAE,MAAM,CAAC;IAAC,OAAO,EAAE,MAAM,CAAA;CAAE,CAkB/F,CAAC;AAEF;;;GAGG;AACH,qBAAa,gBAAiB,SAAQ,YAAY;IAChD;;;;OAIG;gBACS,GAAG,EAAE,oBAAoB,EAAE,IAAI,CAAC,EAAE,MAAM;CAGrD"}
package/dist/errors.js ADDED
@@ -0,0 +1,62 @@
1
+ import { JSONRPCError } from '@walletmesh/jsonrpc';
2
+ /**
3
+ * Enum of available Aztec Wallet RPC error types.
4
+ * @public
5
+ */
6
+ export const AztecWalletErrorType = {
7
+ unknownInternalError: 'unknownInternalError',
8
+ refused: 'refused',
9
+ walletNotConnected: 'walletNotConnected',
10
+ contractInstanceNotRegistered: 'contractInstanceNotRegistered',
11
+ contractClassNotRegistered: 'contractClassNotRegistered',
12
+ senderNotRegistered: 'senderNotRegistered',
13
+ invalidResponse: 'invalidResponse',
14
+ notConnected: 'notConnected',
15
+ chainNotSupported: 'chainNotSupported',
16
+ invalidRequest: 'invalidRequest',
17
+ invalidParams: 'invalidParams',
18
+ permissionDenied: 'permissionDenied',
19
+ sessionNotFound: 'sessionNotFound',
20
+ sessionExpired: 'sessionExpired',
21
+ transactionNotFound: 'transactionNotFound',
22
+ blockNotFound: 'blockNotFound',
23
+ authWitnessNotFound: 'authWitnessNotFound',
24
+ };
25
+ /**
26
+ * Map of error codes and messages for Aztec Wallet RPC errors.
27
+ * @public
28
+ */
29
+ export const AztecWalletErrorMap = {
30
+ unknownInternalError: { code: -32000, message: 'Unknown internal error' },
31
+ refused: { code: -32001, message: 'User refused transaction' },
32
+ walletNotConnected: { code: -32002, message: 'Wallet not connected' },
33
+ contractInstanceNotRegistered: { code: -32003, message: 'Contract instance not registered' },
34
+ contractClassNotRegistered: { code: -32004, message: 'Contract class not registered' },
35
+ senderNotRegistered: { code: -32005, message: 'Sender not registered' },
36
+ invalidResponse: { code: -32006, message: 'Invalid response format' },
37
+ notConnected: { code: -32007, message: 'Not connected to any chain' },
38
+ chainNotSupported: { code: -32008, message: 'Chain not supported' },
39
+ invalidRequest: { code: -32009, message: 'Invalid request format' },
40
+ invalidParams: { code: -32010, message: 'Invalid parameters' },
41
+ permissionDenied: { code: -32011, message: 'Permission denied' },
42
+ sessionNotFound: { code: -32012, message: 'Session not found' },
43
+ sessionExpired: { code: -32013, message: 'Session expired' },
44
+ transactionNotFound: { code: -32014, message: 'Transaction not found' },
45
+ blockNotFound: { code: -32015, message: 'Block not found' },
46
+ authWitnessNotFound: { code: -32016, message: 'Authorization witness not found' },
47
+ };
48
+ /**
49
+ * Custom error class for Aztec Wallet RPC errors.
50
+ * @public
51
+ */
52
+ export class AztecWalletError extends JSONRPCError {
53
+ /**
54
+ * Creates a new AztecWalletError.
55
+ * @param err - The error type from AztecWalletErrorMap
56
+ * @param data - Optional additional error data
57
+ */
58
+ constructor(err, data) {
59
+ super(AztecWalletErrorMap[err].code, AztecWalletErrorMap[err].message, data);
60
+ }
61
+ }
62
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZXJyb3JzLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vc3JjL2Vycm9ycy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0scUJBQXFCLENBQUM7QUFHbkQ7OztHQUdHO0FBQ0gsTUFBTSxDQUFDLE1BQU0sb0JBQW9CLEdBQUc7SUFDbEMsb0JBQW9CLEVBQUUsc0JBQXNCO0lBQzVDLE9BQU8sRUFBRSxTQUFTO0lBQ2xCLGtCQUFrQixFQUFFLG9CQUFvQjtJQUN4Qyw2QkFBNkIsRUFBRSwrQkFBK0I7SUFDOUQsMEJBQTBCLEVBQUUsNEJBQTRCO0lBQ3hELG1CQUFtQixFQUFFLHFCQUFxQjtJQUMxQyxlQUFlLEVBQUUsaUJBQWlCO0lBQ2xDLFlBQVksRUFBRSxjQUFjO0lBQzVCLGlCQUFpQixFQUFFLG1CQUFtQjtJQUN0QyxjQUFjLEVBQUUsZ0JBQWdCO0lBQ2hDLGFBQWEsRUFBRSxlQUFlO0lBQzlCLGdCQUFnQixFQUFFLGtCQUFrQjtJQUNwQyxlQUFlLEVBQUUsaUJBQWlCO0lBQ2xDLGNBQWMsRUFBRSxnQkFBZ0I7SUFDaEMsbUJBQW1CLEVBQUUscUJBQXFCO0lBQzFDLGFBQWEsRUFBRSxlQUFlO0lBQzlCLG1CQUFtQixFQUFFLHFCQUFxQjtDQUNsQyxDQUFDO0FBUVg7OztHQUdHO0FBQ0gsTUFBTSxDQUFDLE1BQU0sbUJBQW1CLEdBQW9FO0lBQ2xHLG9CQUFvQixFQUFFLEVBQUUsSUFBSSxFQUFFLENBQUMsS0FBSyxFQUFFLE9BQU8sRUFBRSx3QkFBd0IsRUFBRTtJQUN6RSxPQUFPLEVBQUUsRUFBRSxJQUFJLEVBQUUsQ0FBQyxLQUFLLEVBQUUsT0FBTyxFQUFFLDBCQUEwQixFQUFFO0lBQzlELGtCQUFrQixFQUFFLEVBQUUsSUFBSSxFQUFFLENBQUMsS0FBSyxFQUFFLE9BQU8sRUFBRSxzQkFBc0IsRUFBRTtJQUNyRSw2QkFBNkIsRUFBRSxFQUFFLElBQUksRUFBRSxDQUFDLEtBQUssRUFBRSxPQUFPLEVBQUUsa0NBQWtDLEVBQUU7SUFDNUYsMEJBQTBCLEVBQUUsRUFBRSxJQUFJLEVBQUUsQ0FBQyxLQUFLLEVBQUUsT0FBTyxFQUFFLCtCQUErQixFQUFFO0lBQ3RGLG1CQUFtQixFQUFFLEVBQUUsSUFBSSxFQUFFLENBQUMsS0FBSyxFQUFFLE9BQU8sRUFBRSx1QkFBdUIsRUFBRTtJQUN2RSxlQUFlLEVBQUUsRUFBRSxJQUFJLEVBQUUsQ0FBQyxLQUFLLEVBQUUsT0FBTyxFQUFFLHlCQUF5QixFQUFFO0lBQ3JFLFlBQVksRUFBRSxFQUFFLElBQUksRUFBRSxDQUFDLEtBQUssRUFBRSxPQUFPLEVBQUUsNEJBQTRCLEVBQUU7SUFDckUsaUJBQWlCLEVBQUUsRUFBRSxJQUFJLEVBQUUsQ0FBQyxLQUFLLEVBQUUsT0FBTyxFQUFFLHFCQUFxQixFQUFFO0lBQ25FLGNBQWMsRUFBRSxFQUFFLElBQUksRUFBRSxDQUFDLEtBQUssRUFBRSxPQUFPLEVBQUUsd0JBQXdCLEVBQUU7SUFDbkUsYUFBYSxFQUFFLEVBQUUsSUFBSSxFQUFFLENBQUMsS0FBSyxFQUFFLE9BQU8sRUFBRSxvQkFBb0IsRUFBRTtJQUM5RCxnQkFBZ0IsRUFBRSxFQUFFLElBQUksRUFBRSxDQUFDLEtBQUssRUFBRSxPQUFPLEVBQUUsbUJBQW1CLEVBQUU7SUFDaEUsZUFBZSxFQUFFLEVBQUUsSUFBSSxFQUFFLENBQUMsS0FBSyxFQUFFLE9BQU8sRUFBRSxtQkFBbUIsRUFBRTtJQUMvRCxjQUFjLEVBQUUsRUFBRSxJQUFJLEVBQUUsQ0FBQyxLQUFLLEVBQUUsT0FBTyxFQUFFLGlCQUFpQixFQUFFO0lBQzVELG1CQUFtQixFQUFFLEVBQUUsSUFBSSxFQUFFLENBQUMsS0FBSyxFQUFFLE9BQU8sRUFBRSx1QkFBdUIsRUFBRTtJQUN2RSxhQUFhLEVBQUUsRUFBRSxJQUFJLEVBQUUsQ0FBQyxLQUFLLEVBQUUsT0FBTyxFQUFFLGlCQUFpQixFQUFFO0lBQzNELG1CQUFtQixFQUFFLEVBQUUsSUFBSSxFQUFFLENBQUMsS0FBSyxFQUFFLE9BQU8sRUFBRSxpQ0FBaUMsRUFBRTtDQUNsRixDQUFDO0FBRUY7OztHQUdHO0FBQ0gsTUFBTSxPQUFPLGdCQUFpQixTQUFRLFlBQVk7SUFDaEQ7Ozs7T0FJRztJQUNILFlBQVksR0FBeUIsRUFBRSxJQUFhO1FBQ2xELEtBQUssQ0FBQyxtQkFBbUIsQ0FBQyxHQUFHLENBQUMsQ0FBQyxJQUFJLEVBQUUsbUJBQW1CLENBQUMsR0FBRyxDQUFDLENBQUMsT0FBTyxFQUFFLElBQUksQ0FBQyxDQUFDO0lBQy9FLENBQUM7Q0FDRiJ9
@@ -0,0 +1,4 @@
1
+ import type { AztecWalletContext, AztecWalletMethodMap } from '../types.js';
2
+ export declare const AZTEC_WALLET_METHODS: (keyof AztecWalletMethodMap)[];
3
+ export declare function aztecWalletHandler<M extends keyof AztecWalletMethodMap>(context: AztecWalletContext, method: M, params: AztecWalletMethodMap[M]['params']): Promise<AztecWalletMethodMap[M]['result']>;
4
+ //# sourceMappingURL=aztecAccountWallet.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"aztecAccountWallet.d.ts","sourceRoot":"","sources":["../../src/handlers/aztecAccountWallet.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,kBAAkB,EAAE,oBAAoB,EAAE,MAAM,aAAa,CAAC;AAE5E,eAAO,MAAM,oBAAoB,EAAE,CAAC,MAAM,oBAAoB,CAAC,EA8CrD,CAAC;AAwVX,wBAAsB,kBAAkB,CAAC,CAAC,SAAS,MAAM,oBAAoB,EAC3E,OAAO,EAAE,kBAAkB,EAC3B,MAAM,EAAE,CAAC,EACT,MAAM,EAAE,oBAAoB,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,GACxC,OAAO,CAAC,oBAAoB,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAkM5C"}
@@ -0,0 +1,329 @@
1
+ import { AztecWalletError } from '../errors.js';
2
+ export const AZTEC_WALLET_METHODS = [
3
+ 'aztec_getBlock',
4
+ 'aztec_getBlockNumber',
5
+ 'aztec_getChainId',
6
+ 'aztec_getVersion',
7
+ 'aztec_getNodeInfo',
8
+ 'aztec_getCurrentBaseFees',
9
+ 'aztec_setScopes',
10
+ 'aztec_getScopes',
11
+ 'aztec_isL1ToL2MessageSynced',
12
+ 'aztec_getL1ToL2MembershipWitness',
13
+ 'aztec_addCapsule',
14
+ 'aztec_getAddress',
15
+ 'aztec_getCompleteAddress',
16
+ 'aztec_registerAccount',
17
+ 'aztec_getRegisteredAccounts',
18
+ 'aztec_addAuthWitness',
19
+ 'aztec_getAuthWitness',
20
+ 'aztec_createAuthWit',
21
+ 'aztec_registerSender',
22
+ 'aztec_getSenders',
23
+ 'aztec_removeSender',
24
+ 'aztec_getContracts',
25
+ 'aztec_getContractInstance',
26
+ 'aztec_getContractClass',
27
+ 'aztec_getContractArtifact',
28
+ 'aztec_isContractClassPubliclyRegistered',
29
+ 'aztec_isContractPubliclyDeployed',
30
+ 'aztec_isContractInitialized',
31
+ 'aztec_registerContract',
32
+ 'aztec_registerContractClass',
33
+ 'aztec_getPublicStorageAt',
34
+ 'aztec_createTxExecutionRequest',
35
+ 'aztec_proveTx',
36
+ 'aztec_sendTx',
37
+ 'aztec_getTxEffect',
38
+ 'aztec_getTxReceipt',
39
+ 'aztec_simulateTx',
40
+ 'aztec_simulateUnconstrained',
41
+ 'aztec_getIncomingNotes',
42
+ 'aztec_addNote',
43
+ 'aztec_addNullifiedNote',
44
+ 'aztec_getUnencryptedLogs',
45
+ 'aztec_getContractClassLogs',
46
+ 'aztec_getEncryptedEvents',
47
+ 'aztec_getUnencryptedEvents',
48
+ ];
49
+ // Handler functions with proper type safety
50
+ async function handleGetBlock(wallet, params) {
51
+ const block = await wallet.getBlock(params.number);
52
+ if (!block)
53
+ throw new AztecWalletError('blockNotFound', 'aztec_getBlock');
54
+ return block;
55
+ }
56
+ async function handleGetBlockNumber(wallet) {
57
+ return await wallet.getBlockNumber();
58
+ }
59
+ async function handleGetChainId(wallet) {
60
+ return Number(wallet.getChainId());
61
+ }
62
+ async function handleGetVersion(wallet) {
63
+ return Number(wallet.getVersion());
64
+ }
65
+ async function handleGetNodeInfo(wallet) {
66
+ return await wallet.getNodeInfo();
67
+ }
68
+ async function handleGetCurrentBaseFees(wallet) {
69
+ return await wallet.getCurrentBaseFees();
70
+ }
71
+ async function handleSetScopes(wallet, params) {
72
+ await wallet.setScopes(params.scopes);
73
+ return true;
74
+ }
75
+ async function handleGetScopes(wallet) {
76
+ const scopes = await wallet.getScopes();
77
+ return scopes ?? [];
78
+ }
79
+ async function handleAddCapsule(wallet, params) {
80
+ await wallet.addCapsule(params.capsule);
81
+ return true;
82
+ }
83
+ async function handleGetAddress(wallet) {
84
+ return wallet.getAddress();
85
+ }
86
+ async function handleGetCompleteAddress(wallet) {
87
+ return wallet.getCompleteAddress();
88
+ }
89
+ async function handleRegisterAccount(wallet, params) {
90
+ return await wallet.registerAccount(params.secretKey, params.partialAddress);
91
+ }
92
+ async function handleGetRegisteredAccounts(wallet) {
93
+ return await wallet.getRegisteredAccounts();
94
+ }
95
+ async function handleRegisterSender(wallet, params) {
96
+ return await wallet.registerSender(params.sender);
97
+ }
98
+ async function handleGetSenders(wallet) {
99
+ return await wallet.getSenders();
100
+ }
101
+ async function handleRemoveSender(wallet, params) {
102
+ await wallet.removeSender(params.sender);
103
+ return true;
104
+ }
105
+ async function handleAddAuthWitness(wallet, params) {
106
+ await wallet.addAuthWitness(params.authWitness);
107
+ return true;
108
+ }
109
+ async function handleGetAuthWitness(wallet, params) {
110
+ const witness = await wallet.getAuthWitness(params.messageHash);
111
+ if (!witness)
112
+ throw new AztecWalletError('authWitnessNotFound', 'aztec_getAuthWitness');
113
+ return witness;
114
+ }
115
+ async function handleCreateAuthWit(wallet, params) {
116
+ return await wallet.createAuthWit(params.intent);
117
+ }
118
+ async function handleL1ToL2MessageSynced(wallet, params) {
119
+ return await wallet.isL1ToL2MessageSynced(params.l1ToL2Message);
120
+ }
121
+ async function handleGetContracts(wallet) {
122
+ return await wallet.getContracts();
123
+ }
124
+ async function handleGetContractInstance(wallet, params) {
125
+ const instance = await wallet.getContractInstance(params.address);
126
+ if (!instance)
127
+ throw new AztecWalletError('contractInstanceNotRegistered', 'aztec_getContractInstance');
128
+ return instance;
129
+ }
130
+ async function handleGetContractClass(wallet, params) {
131
+ const contractClass = await wallet.getContractClass(params.id);
132
+ if (!contractClass)
133
+ throw new AztecWalletError('contractClassNotRegistered', 'aztec_getContractClass');
134
+ return contractClass;
135
+ }
136
+ async function handleGetContractArtifact(wallet, params) {
137
+ const artifact = await wallet.getContractArtifact(params.id);
138
+ if (!artifact)
139
+ throw new AztecWalletError('contractClassNotRegistered', 'aztec_getContractArtifact');
140
+ return artifact;
141
+ }
142
+ async function handleIsContractClassPubliclyRegistered(wallet, params) {
143
+ return await wallet.isContractClassPubliclyRegistered(params.id);
144
+ }
145
+ async function handleIsContractPubliclyDeployed(wallet, params) {
146
+ return await wallet.isContractPubliclyDeployed(params.address);
147
+ }
148
+ async function handleIsContractInitialized(wallet, params) {
149
+ return await wallet.isContractInitialized(params.address);
150
+ }
151
+ async function handleRegisterContract(wallet, params) {
152
+ const { instance, artifact } = params;
153
+ await wallet.registerContract({ instance, artifact });
154
+ return true;
155
+ }
156
+ async function handleRegisterContractClass(wallet, params) {
157
+ const { artifact } = params;
158
+ await wallet.registerContractClass(artifact);
159
+ return true;
160
+ }
161
+ async function handleGetTxReceipt(wallet, params) {
162
+ const receipt = await wallet.getTxReceipt(params.txHash);
163
+ if (!receipt)
164
+ throw new AztecWalletError('transactionNotFound', 'aztec_getTxReceipt');
165
+ return receipt;
166
+ }
167
+ async function handleSimulateTx(wallet, params) {
168
+ const { txRequest, simulatePublic, msgSender, skipTxValidation, enforceFeePayment, profile } = params;
169
+ return await wallet.simulateTx(txRequest, simulatePublic, msgSender, skipTxValidation, enforceFeePayment, profile);
170
+ }
171
+ async function handleSimulateUnconstrained(wallet, params) {
172
+ const { functionName, args, to, from } = params;
173
+ return await wallet.simulateUnconstrained(functionName, args, to, from);
174
+ }
175
+ async function handleCreateTxExecutionRequest(wallet, params) {
176
+ return await wallet.createTxExecutionRequest(params.exec);
177
+ }
178
+ async function handleProveTx(wallet, params) {
179
+ return await wallet.proveTx(params.txRequest, params.privateExecutionResult);
180
+ }
181
+ async function handleSendTx(wallet, params) {
182
+ return await wallet.sendTx(params.tx);
183
+ }
184
+ async function handleGetTxEffect(wallet, params) {
185
+ const effect = await wallet.getTxEffect(params.txHash);
186
+ if (!effect)
187
+ throw new AztecWalletError('transactionNotFound', 'aztec_getTxEffect');
188
+ return effect;
189
+ }
190
+ async function handleGetPublicStorageAt(wallet, params) {
191
+ return await wallet.getPublicStorageAt(params.contract, params.storageSlot);
192
+ }
193
+ async function handleGetIncomingNotes(wallet, params) {
194
+ return await wallet.getIncomingNotes(params.filter);
195
+ }
196
+ async function handleAddNote(wallet, params) {
197
+ await wallet.addNote(params.note);
198
+ return true;
199
+ }
200
+ async function handleAddNullifiedNote(wallet, params) {
201
+ await wallet.addNullifiedNote(params.note);
202
+ return true;
203
+ }
204
+ async function handleGetUnencryptedLogs(wallet, params) {
205
+ return await wallet.getUnencryptedLogs(params.filter);
206
+ }
207
+ async function handleGetContractClassLogs(wallet, params) {
208
+ return await wallet.getContractClassLogs(params.filter);
209
+ }
210
+ async function handleGetEncryptedEvents(wallet, params) {
211
+ const { event, from, limit, vpks } = params;
212
+ return await wallet.getEncryptedEvents(event, from, limit, vpks);
213
+ }
214
+ async function handleGetUnencryptedEvents(wallet, params) {
215
+ const { event, from, limit } = params;
216
+ return await wallet.getUnencryptedEvents(event, from, limit);
217
+ }
218
+ async function handleL1ToL2MembershipWitness(wallet, params) {
219
+ const { contractAddress, messageHash, secret } = params;
220
+ return await wallet.getL1ToL2MembershipWitness(contractAddress, messageHash, secret);
221
+ }
222
+ export async function aztecWalletHandler(context, method, params) {
223
+ switch (method) {
224
+ // Chain methods
225
+ case 'aztec_getBlock':
226
+ return handleGetBlock(context.wallet, params);
227
+ case 'aztec_getBlockNumber':
228
+ return handleGetBlockNumber(context.wallet);
229
+ case 'aztec_getChainId':
230
+ return handleGetChainId(context.wallet);
231
+ case 'aztec_getVersion':
232
+ return handleGetVersion(context.wallet);
233
+ case 'aztec_getNodeInfo':
234
+ return handleGetNodeInfo(context.wallet);
235
+ case 'aztec_getCurrentBaseFees':
236
+ return handleGetCurrentBaseFees(context.wallet);
237
+ // Scopes methods
238
+ case 'aztec_setScopes':
239
+ return handleSetScopes(context.wallet, params);
240
+ case 'aztec_getScopes':
241
+ return handleGetScopes(context.wallet);
242
+ // L1->L2 Messages methods
243
+ case 'aztec_isL1ToL2MessageSynced':
244
+ return handleL1ToL2MessageSynced(context.wallet, params);
245
+ case 'aztec_getL1ToL2MembershipWitness':
246
+ return handleL1ToL2MembershipWitness(context.wallet, params);
247
+ // Capsules methods
248
+ case 'aztec_addCapsule':
249
+ return handleAddCapsule(context.wallet, params);
250
+ // Accounts methods
251
+ case 'aztec_getAddress':
252
+ return handleGetAddress(context.wallet);
253
+ case 'aztec_getCompleteAddress':
254
+ return handleGetCompleteAddress(context.wallet);
255
+ case 'aztec_registerAccount':
256
+ return handleRegisterAccount(context.wallet, params);
257
+ case 'aztec_getRegisteredAccounts':
258
+ return handleGetRegisteredAccounts(context.wallet);
259
+ // AuthWitness methods
260
+ case 'aztec_addAuthWitness':
261
+ return handleAddAuthWitness(context.wallet, params);
262
+ case 'aztec_getAuthWitness':
263
+ return handleGetAuthWitness(context.wallet, params);
264
+ case 'aztec_createAuthWit':
265
+ return handleCreateAuthWit(context.wallet, params);
266
+ // Senders methods
267
+ case 'aztec_registerSender':
268
+ return handleRegisterSender(context.wallet, params);
269
+ case 'aztec_getSenders':
270
+ return handleGetSenders(context.wallet);
271
+ case 'aztec_removeSender':
272
+ return handleRemoveSender(context.wallet, params);
273
+ // Contracts methods
274
+ case 'aztec_getContracts':
275
+ return handleGetContracts(context.wallet);
276
+ case 'aztec_getContractInstance':
277
+ return handleGetContractInstance(context.wallet, params);
278
+ case 'aztec_getContractClass':
279
+ return handleGetContractClass(context.wallet, params);
280
+ case 'aztec_getContractArtifact':
281
+ return handleGetContractArtifact(context.wallet, params);
282
+ case 'aztec_isContractClassPubliclyRegistered':
283
+ return handleIsContractClassPubliclyRegistered(context.wallet, params);
284
+ case 'aztec_isContractPubliclyDeployed':
285
+ return handleIsContractPubliclyDeployed(context.wallet, params);
286
+ case 'aztec_isContractInitialized':
287
+ return handleIsContractInitialized(context.wallet, params);
288
+ case 'aztec_registerContract':
289
+ return handleRegisterContract(context.wallet, params);
290
+ case 'aztec_registerContractClass':
291
+ return handleRegisterContractClass(context.wallet, params);
292
+ case 'aztec_getPublicStorageAt':
293
+ return handleGetPublicStorageAt(context.wallet, params);
294
+ // Transactions methods
295
+ case 'aztec_createTxExecutionRequest':
296
+ return handleCreateTxExecutionRequest(context.wallet, params);
297
+ case 'aztec_proveTx':
298
+ return handleProveTx(context.wallet, params);
299
+ case 'aztec_sendTx':
300
+ return handleSendTx(context.wallet, params);
301
+ case 'aztec_getTxEffect':
302
+ return handleGetTxEffect(context.wallet, params);
303
+ case 'aztec_getTxReceipt':
304
+ return handleGetTxReceipt(context.wallet, params);
305
+ case 'aztec_simulateTx':
306
+ return handleSimulateTx(context.wallet, params);
307
+ case 'aztec_simulateUnconstrained':
308
+ return handleSimulateUnconstrained(context.wallet, params);
309
+ // Notes methods
310
+ case 'aztec_getIncomingNotes':
311
+ return handleGetIncomingNotes(context.wallet, params);
312
+ case 'aztec_addNote':
313
+ return handleAddNote(context.wallet, params);
314
+ case 'aztec_addNullifiedNote':
315
+ return handleAddNullifiedNote(context.wallet, params);
316
+ // Logs methods
317
+ case 'aztec_getUnencryptedLogs':
318
+ return handleGetUnencryptedLogs(context.wallet, params);
319
+ case 'aztec_getContractClassLogs':
320
+ return handleGetContractClassLogs(context.wallet, params);
321
+ case 'aztec_getEncryptedEvents':
322
+ return handleGetEncryptedEvents(context.wallet, params);
323
+ case 'aztec_getUnencryptedEvents':
324
+ return handleGetUnencryptedEvents(context.wallet, params);
325
+ default:
326
+ throw new AztecWalletError('invalidRequest', `Method not supported: ${String(method)}`);
327
+ }
328
+ }
329
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXp0ZWNBY2NvdW50V2FsbGV0LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL2hhbmRsZXJzL2F6dGVjQWNjb3VudFdhbGxldC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFDQSxPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSxjQUFjLENBQUM7QUFHaEQsTUFBTSxDQUFDLE1BQU0sb0JBQW9CLEdBQW1DO0lBQ2xFLGdCQUFnQjtJQUNoQixzQkFBc0I7SUFDdEIsa0JBQWtCO0lBQ2xCLGtCQUFrQjtJQUNsQixtQkFBbUI7SUFDbkIsMEJBQTBCO0lBQzFCLGlCQUFpQjtJQUNqQixpQkFBaUI7SUFDakIsNkJBQTZCO0lBQzdCLGtDQUFrQztJQUNsQyxrQkFBa0I7SUFDbEIsa0JBQWtCO0lBQ2xCLDBCQUEwQjtJQUMxQix1QkFBdUI7SUFDdkIsNkJBQTZCO0lBQzdCLHNCQUFzQjtJQUN0QixzQkFBc0I7SUFDdEIscUJBQXFCO0lBQ3JCLHNCQUFzQjtJQUN0QixrQkFBa0I7SUFDbEIsb0JBQW9CO0lBQ3BCLG9CQUFvQjtJQUNwQiwyQkFBMkI7SUFDM0Isd0JBQXdCO0lBQ3hCLDJCQUEyQjtJQUMzQix5Q0FBeUM7SUFDekMsa0NBQWtDO0lBQ2xDLDZCQUE2QjtJQUM3Qix3QkFBd0I7SUFDeEIsNkJBQTZCO0lBQzdCLDBCQUEwQjtJQUMxQixnQ0FBZ0M7SUFDaEMsZUFBZTtJQUNmLGNBQWM7SUFDZCxtQkFBbUI7SUFDbkIsb0JBQW9CO0lBQ3BCLGtCQUFrQjtJQUNsQiw2QkFBNkI7SUFDN0Isd0JBQXdCO0lBQ3hCLGVBQWU7SUFDZix3QkFBd0I7SUFDeEIsMEJBQTBCO0lBQzFCLDRCQUE0QjtJQUM1QiwwQkFBMEI7SUFDMUIsNEJBQTRCO0NBQ3BCLENBQUM7QUFFWCw0Q0FBNEM7QUFDNUMsS0FBSyxVQUFVLGNBQWMsQ0FDM0IsTUFBcUIsRUFDckIsTUFBd0Q7SUFFeEQsTUFBTSxLQUFLLEdBQUcsTUFBTSxNQUFNLENBQUMsUUFBUSxD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
@@ -0,0 +1,21 @@
1
+ import type { AztecWalletContext, TransactionFunctionCall, TransactionParams } from '../types.js';
2
+ /**
3
+ * Handles the 'aztec_sendTransaction' JSON-RPC method.
4
+ * Sends transactions to the Aztec network and returns the transaction hash.
5
+ * @param params - The transaction parameters
6
+ * @param params.functionCalls - Array of function calls to execute
7
+ * @param params.authwits - Optional array of authorization witnesses for the transaction
8
+ * @returns A Promise that resolves to the transaction hash string
9
+ */
10
+ export declare function sendTransaction(context: AztecWalletContext, params: TransactionParams): Promise<string>;
11
+ /**
12
+ * Handles the 'aztec_simulateTransaction' JSON-RPC method.
13
+ * Simulates a transaction without submitting it to the network.
14
+ * @param params - The transaction parameters to simulate
15
+ * @param params.contractAddress - The target contract address
16
+ * @param params.functionName - The contract function to call
17
+ * @param params.args - The function arguments
18
+ * @returns A Promise that resolves to the simulation result
19
+ */
20
+ export declare function simulateTransaction(context: AztecWalletContext, params: TransactionFunctionCall): Promise<unknown>;
21
+ //# sourceMappingURL=transactions.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"transactions.d.ts","sourceRoot":"","sources":["../../src/handlers/transactions.ts"],"names":[],"mappings":"AAWA,OAAO,KAAK,EAAE,kBAAkB,EAAE,uBAAuB,EAAE,iBAAiB,EAAE,MAAM,aAAa,CAAC;AAGlG;;;;;;;GAOG;AACH,wBAAsB,eAAe,CACnC,OAAO,EAAE,kBAAkB,EAC3B,MAAM,EAAE,iBAAiB,GACxB,OAAO,CAAC,MAAM,CAAC,CA0CjB;AAED;;;;;;;;GAQG;AACH,wBAAsB,mBAAmB,CACvC,OAAO,EAAE,kBAAkB,EAC3B,MAAM,EAAE,uBAAuB,GAC9B,OAAO,CAAC,OAAO,CAAC,CA4BlB"}