@walletmesh/aztec-rpc-wallet 0.2.0 → 0.3.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (76) hide show
  1. package/CHANGELOG.md +12 -0
  2. package/dist/.tsbuildinfo +1 -1
  3. package/dist/aztecRemoteWallet.d.ts +4 -8
  4. package/dist/aztecRemoteWallet.d.ts.map +1 -1
  5. package/dist/aztecRemoteWallet.js +5 -29
  6. package/dist/contractArtifactCache.d.ts.map +1 -1
  7. package/dist/contractArtifactCache.js +20 -9
  8. package/dist/handlers/aztecAccountWallet.d.ts.map +1 -1
  9. package/dist/handlers/aztecAccountWallet.js +11 -44
  10. package/dist/serializers/account.d.ts +16 -16
  11. package/dist/serializers/account.d.ts.map +1 -1
  12. package/dist/serializers/account.js +43 -43
  13. package/dist/serializers/contract.d.ts +22 -76
  14. package/dist/serializers/contract.d.ts.map +1 -1
  15. package/dist/serializers/contract.js +68 -120
  16. package/dist/serializers/index.d.ts +0 -4
  17. package/dist/serializers/index.d.ts.map +1 -1
  18. package/dist/serializers/index.js +15 -20
  19. package/dist/serializers/log.d.ts +16 -16
  20. package/dist/serializers/log.d.ts.map +1 -1
  21. package/dist/serializers/log.js +43 -43
  22. package/dist/serializers/note.d.ts +12 -12
  23. package/dist/serializers/note.d.ts.map +1 -1
  24. package/dist/serializers/note.js +32 -32
  25. package/dist/serializers/transaction.d.ts +25 -26
  26. package/dist/serializers/transaction.d.ts.map +1 -1
  27. package/dist/serializers/transaction.js +92 -44
  28. package/dist/types.d.ts +7 -30
  29. package/dist/types.d.ts.map +1 -1
  30. package/dist/types.js +1 -1
  31. package/docs/README.md +264 -0
  32. package/docs/classes/AztecChainProvider.md +553 -0
  33. package/docs/classes/AztecChainWallet.md +409 -0
  34. package/docs/classes/AztecProvider.md +1112 -0
  35. package/docs/classes/AztecWalletError.md +213 -0
  36. package/docs/classes/ContractArtifactCache.md +81 -0
  37. package/docs/globals.md +34 -0
  38. package/docs/interfaces/AztecWalletBaseMethodMap.md +135 -0
  39. package/docs/interfaces/AztecWalletEventMap.md +17 -0
  40. package/docs/interfaces/AztecWalletMethodMap.md +1012 -0
  41. package/docs/type-aliases/AztecChainId.md +11 -0
  42. package/docs/type-aliases/AztecChainWalletMiddleware.md +13 -0
  43. package/docs/type-aliases/AztecWalletContext.md +29 -0
  44. package/docs/type-aliases/AztecWalletMethodHandler.md +37 -0
  45. package/docs/type-aliases/AztecWalletMiddleware.md +13 -0
  46. package/docs/type-aliases/AztecWalletRouterClient.md +13 -0
  47. package/docs/type-aliases/TransactionFunctionCall.md +33 -0
  48. package/docs/type-aliases/TransactionParams.md +27 -0
  49. package/docs/variables/AztecWalletErrorMap.md +13 -0
  50. package/package.json +9 -9
  51. package/src/aztecRemoteWallet.test.ts +22 -61
  52. package/src/aztecRemoteWallet.ts +8 -35
  53. package/src/chainProvider.test.ts +117 -38
  54. package/src/contractArtifactCache.test.ts +28 -45
  55. package/src/contractArtifactCache.ts +20 -10
  56. package/src/handlers/aztecAccountWallet.test.ts +12 -86
  57. package/src/handlers/aztecAccountWallet.ts +19 -77
  58. package/src/provider.test.ts +0 -2
  59. package/src/serializers/account.test.ts +19 -20
  60. package/src/serializers/account.ts +52 -52
  61. package/src/serializers/contract.test.ts +4 -140
  62. package/src/serializers/contract.ts +93 -166
  63. package/src/serializers/index.test.ts +30 -28
  64. package/src/serializers/index.ts +15 -21
  65. package/src/serializers/log.test.ts +42 -48
  66. package/src/serializers/log.ts +54 -54
  67. package/src/serializers/note.test.ts +43 -16
  68. package/src/serializers/note.ts +39 -39
  69. package/src/serializers/transaction.test.ts +48 -41
  70. package/src/serializers/transaction.ts +146 -58
  71. package/src/types.ts +7 -7
  72. package/src/wallet.test.ts +3 -3
  73. package/dist/serializers/transaction-utils.d.ts +0 -51
  74. package/dist/serializers/transaction-utils.d.ts.map +0 -1
  75. package/dist/serializers/transaction-utils.js +0 -103
  76. package/src/serializers/transaction-utils.ts +0 -174
@@ -1,174 +0,0 @@
1
- /**
2
- * @module transaction-utils
3
- * Utilities for serializing and deserializing Aztec transaction execution requests.
4
- * These utilities handle the conversion between native Aztec types and JSON-RPC compatible formats.
5
- */
6
-
7
- import { HashedValues, FunctionCall, AuthWitness } from '@aztec/circuit-types';
8
- import { AztecAddress, Fr, FunctionSelector, GasSettings } from '@aztec/circuits.js';
9
- import type { FunctionType, AbiType } from '@aztec/foundation/abi';
10
- import type { ExecutionRequestInit } from '@aztec/aztec.js/entrypoint';
11
- import { NoFeePaymentMethod } from '@aztec/aztec.js';
12
-
13
- /**
14
- * Interface representing the serialized form of a function call.
15
- * This structure maps the native FunctionCall type to a JSON-serializable format
16
- * where complex Aztec types are converted to strings.
17
- *
18
- * @property name - The name of the function being called
19
- * @property to - The target contract address as a string
20
- * @property selector - The function selector as a string
21
- * @property type - The function type (public/private)
22
- * @property isStatic - Whether the function is static (read-only)
23
- * @property args - Array of function arguments as strings
24
- * @property returnTypes - Array of return type definitions
25
- */
26
- interface SerializedFunctionCall {
27
- name: string;
28
- to: string;
29
- selector: string;
30
- type: FunctionType;
31
- isStatic: boolean;
32
- args: string[];
33
- returnTypes: AbiType[];
34
- }
35
-
36
- /**
37
- * Interface representing the serialized form of an execution request initialization.
38
- * This structure maps the ExecutionRequestInit type to a JSON-serializable format
39
- * where complex Aztec types are converted to strings.
40
- *
41
- * @property calls - Array of serialized function calls
42
- * @property authWitnesses - Optional array of authentication witness strings
43
- * @property hashedArguments - Optional array of hashed argument values as base64 strings
44
- * @property fee - Fee settings including gas configuration
45
- * @property nonce - Optional transaction nonce as a string
46
- * @property cancellable - Optional flag indicating if the transaction can be cancelled
47
- */
48
- interface SerializedExecutionRequestInit {
49
- calls: SerializedFunctionCall[];
50
- authWitnesses?: string[];
51
- hashedArguments?: string[];
52
- fee: {
53
- gasSettings: string;
54
- };
55
- nonce?: string;
56
- cancellable?: boolean;
57
- }
58
-
59
- /**
60
- * Serializes an ExecutionRequestInit object to a string for JSON-RPC transport.
61
- * This function converts a native Aztec transaction execution request into a format
62
- * that can be safely transmitted over JSON-RPC, handling the conversion of complex
63
- * types like addresses, field elements, and function selectors to strings.
64
- *
65
- * Note: The fee payment method is not serialized as it contains async methods.
66
- * The deserializer will use a default NoFeePaymentMethod which should be replaced
67
- * by the caller with an appropriate implementation.
68
- *
69
- * @param init - The ExecutionRequestInit object to serialize, containing:
70
- * - calls: Array of function calls to execute
71
- * - fee: Gas settings and payment method
72
- * - authWitnesses: Optional authentication proofs
73
- * - hashedArguments: Optional pre-hashed arguments
74
- * - nonce: Optional transaction nonce
75
- * - cancellable: Optional cancellation flag
76
- * @returns A JSON string representation of the serialized data, with all complex
77
- * Aztec types converted to string representations
78
- * @throws If any of the complex types cannot be serialized
79
- */
80
- export function serializeExecutionRequestInit(init: ExecutionRequestInit): string {
81
- const serialized: SerializedExecutionRequestInit = {
82
- calls: init.calls.map((call) => ({
83
- name: call.name,
84
- to: call.to.toString(),
85
- selector: call.selector.toString(),
86
- type: call.type,
87
- isStatic: call.isStatic,
88
- args: call.args.map((arg) => arg.toString()),
89
- returnTypes: call.returnTypes,
90
- })),
91
- fee: {
92
- gasSettings: init.fee.gasSettings.toBuffer().toString('base64'),
93
- },
94
- };
95
-
96
- if (init.authWitnesses) {
97
- serialized.authWitnesses = init.authWitnesses.map((w) => w.toString());
98
- }
99
-
100
- if (init.hashedArguments) {
101
- serialized.hashedArguments = init.hashedArguments.map((ha) => ha.toBuffer().toString('base64'));
102
- }
103
-
104
- if (init.nonce) {
105
- serialized.nonce = init.nonce.toString();
106
- }
107
-
108
- if (init.cancellable !== undefined) {
109
- serialized.cancellable = init.cancellable;
110
- }
111
-
112
- return JSON.stringify(serialized);
113
- }
114
-
115
- /**
116
- * Deserializes a string into an ExecutionRequestInit object for use in the Aztec protocol.
117
- * This function reconstructs a native Aztec transaction execution request from its
118
- * JSON-RPC serialized form, converting string representations back into their
119
- * appropriate Aztec types.
120
- *
121
- * Note: A default NoFeePaymentMethod is used for the fee payment method.
122
- * The caller should override this with the appropriate implementation based on
123
- * their fee payment requirements.
124
- *
125
- * @param data - The serialized string data containing:
126
- * - calls: Array of serialized function calls
127
- * - fee: Serialized gas settings
128
- * - authWitnesses: Optional serialized authentication proofs
129
- * - hashedArguments: Optional serialized hashed arguments
130
- * - nonce: Optional serialized nonce
131
- * - cancellable: Optional cancellation flag
132
- * @returns The deserialized ExecutionRequestInit object with all string representations
133
- * converted back to their native Aztec types
134
- * @throws If any of the serialized data cannot be properly deserialized into valid Aztec types
135
- */
136
- export function deserializeExecutionRequestInit(data: string): ExecutionRequestInit {
137
- const parsed: SerializedExecutionRequestInit = JSON.parse(data);
138
-
139
- const result: ExecutionRequestInit = {
140
- calls: parsed.calls.map(
141
- (call) =>
142
- new FunctionCall(
143
- call.name,
144
- AztecAddress.fromString(call.to),
145
- FunctionSelector.fromString(call.selector),
146
- call.type,
147
- call.isStatic,
148
- call.args.map((arg) => Fr.fromString(arg)),
149
- call.returnTypes,
150
- ),
151
- ),
152
- fee: {
153
- gasSettings: GasSettings.fromBuffer(Buffer.from(parsed.fee.gasSettings, 'base64')),
154
- paymentMethod: new NoFeePaymentMethod(), // Default, caller should override
155
- },
156
- };
157
-
158
- if (parsed.authWitnesses) {
159
- result.authWitnesses = parsed.authWitnesses.map((w) => AuthWitness.fromString(w));
160
- }
161
- if (parsed.hashedArguments) {
162
- result.hashedArguments = parsed.hashedArguments.map((ha) =>
163
- HashedValues.fromBuffer(Buffer.from(ha, 'base64')),
164
- );
165
- }
166
- if (parsed.nonce) {
167
- result.nonce = Fr.fromString(parsed.nonce);
168
- }
169
- if (parsed.cancellable !== undefined) {
170
- result.cancellable = parsed.cancellable;
171
- }
172
-
173
- return result;
174
- }