@walletmesh/aztec-rpc-wallet 0.1.0

Sign up to get free protection for your applications and to get access to all the features.
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"}