@walletmesh/aztec-rpc-wallet 0.3.1 → 0.4.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.
- package/CHANGELOG.md +20 -0
- package/README.md +290 -228
- package/dist/.tsbuildinfo +1 -1
- package/dist/client/aztec-dapp-wallet.d.ts +401 -0
- package/dist/client/aztec-dapp-wallet.d.ts.map +1 -0
- package/dist/client/aztec-dapp-wallet.js +705 -0
- package/dist/client/aztec-router-provider.d.ts +58 -0
- package/dist/client/aztec-router-provider.d.ts.map +1 -0
- package/dist/client/aztec-router-provider.js +62 -0
- package/dist/client/helpers.d.ts +44 -0
- package/dist/client/helpers.d.ts.map +1 -0
- package/dist/client/helpers.js +79 -0
- package/dist/client/register-serializers.d.ts +41 -0
- package/dist/client/register-serializers.d.ts.map +1 -0
- package/dist/client/register-serializers.js +97 -0
- package/dist/contractArtifactCache.d.ts +49 -32
- package/dist/contractArtifactCache.d.ts.map +1 -1
- package/dist/contractArtifactCache.js +47 -34
- package/dist/errors.d.ts +50 -8
- package/dist/errors.d.ts.map +1 -1
- package/dist/errors.js +50 -10
- package/dist/index.d.ts +53 -40
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +52 -17
- package/dist/types.d.ts +345 -270
- package/dist/types.d.ts.map +1 -1
- package/dist/types.js +10 -8
- package/dist/wallet/create-node.d.ts +73 -0
- package/dist/wallet/create-node.d.ts.map +1 -0
- package/dist/wallet/create-node.js +99 -0
- package/dist/wallet/handlers/account.d.ts +67 -0
- package/dist/wallet/handlers/account.d.ts.map +1 -0
- package/dist/wallet/handlers/account.js +85 -0
- package/dist/wallet/handlers/contract-interaction.d.ts +77 -0
- package/dist/wallet/handlers/contract-interaction.d.ts.map +1 -0
- package/dist/wallet/handlers/contract-interaction.js +219 -0
- package/dist/wallet/handlers/contract.d.ts +96 -0
- package/dist/wallet/handlers/contract.d.ts.map +1 -0
- package/dist/wallet/handlers/contract.js +146 -0
- package/dist/wallet/handlers/event.d.ts +62 -0
- package/dist/wallet/handlers/event.d.ts.map +1 -0
- package/dist/wallet/handlers/event.js +85 -0
- package/dist/wallet/handlers/index.d.ts +88 -0
- package/dist/wallet/handlers/index.d.ts.map +1 -0
- package/dist/wallet/handlers/index.js +47 -0
- package/dist/wallet/handlers/node.d.ts +117 -0
- package/dist/wallet/handlers/node.d.ts.map +1 -0
- package/dist/wallet/handlers/node.js +196 -0
- package/dist/wallet/handlers/senders.d.ts +70 -0
- package/dist/wallet/handlers/senders.d.ts.map +1 -0
- package/dist/wallet/handlers/senders.js +92 -0
- package/dist/wallet/handlers/transaction.d.ts +123 -0
- package/dist/wallet/handlers/transaction.d.ts.map +1 -0
- package/dist/wallet/handlers/transaction.js +191 -0
- package/dist/wallet/serializers.d.ts +75 -0
- package/dist/wallet/serializers.d.ts.map +1 -0
- package/dist/wallet/serializers.js +501 -0
- package/docs/README.md +290 -229
- package/docs/classes/AztecDappWallet.md +1304 -0
- package/docs/classes/AztecRouterProvider.md +1058 -0
- package/docs/classes/AztecWalletError.md +124 -47
- package/docs/classes/ContractArtifactCache.md +48 -31
- package/docs/functions/connectAztec.md +62 -0
- package/docs/functions/createAztecWallet.md +46 -0
- package/docs/functions/createAztecWalletNode.md +96 -0
- package/docs/functions/registerAztecSerializers.md +61 -0
- package/docs/functions/registerWalletAztecSerializers.md +39 -0
- package/docs/globals.md +16 -14
- package/docs/interfaces/AztecHandlerContext.md +54 -0
- package/docs/interfaces/AztecWalletContext.md +50 -0
- package/docs/interfaces/AztecWalletMethodMap.md +470 -477
- package/docs/type-aliases/AztecChainId.md +16 -3
- package/docs/variables/ALL_AZTEC_METHODS.md +20 -0
- package/docs/variables/AztecWalletErrorMap.md +9 -4
- package/docs/variables/AztecWalletSerializer.md +45 -0
- package/package.json +9 -9
- package/src/client/aztec-dapp-wallet.test.ts +628 -0
- package/src/client/aztec-dapp-wallet.ts +879 -0
- package/src/client/aztec-router-provider.test.ts +235 -0
- package/src/client/aztec-router-provider.ts +64 -0
- package/src/client/helpers.test.ts +187 -0
- package/src/client/helpers.ts +91 -0
- package/src/client/register-serializers.ts +108 -0
- package/src/contractArtifactCache.test.ts +21 -10
- package/src/contractArtifactCache.ts +54 -35
- package/src/errors.ts +58 -10
- package/src/index.test.ts +2 -6
- package/src/index.ts +73 -37
- package/src/types.ts +379 -217
- package/src/wallet/create-node.test.ts +332 -0
- package/src/wallet/create-node.ts +120 -0
- package/src/wallet/handlers/account.test.ts +172 -0
- package/src/wallet/handlers/account.ts +99 -0
- package/src/wallet/handlers/contract-interaction.test.ts +248 -0
- package/src/wallet/handlers/contract-interaction.ts +269 -0
- package/src/wallet/handlers/contract.test.ts +245 -0
- package/src/wallet/handlers/contract.ts +174 -0
- package/src/wallet/handlers/event.test.ts +216 -0
- package/src/wallet/handlers/event.ts +99 -0
- package/src/wallet/handlers/index.ts +84 -0
- package/src/wallet/handlers/node.test.ts +304 -0
- package/src/wallet/handlers/node.ts +230 -0
- package/src/wallet/handlers/senders.test.ts +172 -0
- package/src/wallet/handlers/senders.ts +106 -0
- package/src/wallet/handlers/transaction.test.ts +371 -0
- package/src/wallet/handlers/transaction.ts +239 -0
- package/src/wallet/serializers.test.ts +253 -0
- package/src/wallet/serializers.ts +586 -0
- package/typedoc.json +23 -1
- package/dist/aztecRemoteWallet.d.ts +0 -70
- package/dist/aztecRemoteWallet.d.ts.map +0 -1
- package/dist/aztecRemoteWallet.js +0 -335
- package/dist/chainProvider.d.ts +0 -56
- package/dist/chainProvider.d.ts.map +0 -1
- package/dist/chainProvider.js +0 -98
- package/dist/handlers/aztecAccountWallet.d.ts +0 -4
- package/dist/handlers/aztecAccountWallet.d.ts.map +0 -1
- package/dist/handlers/aztecAccountWallet.js +0 -295
- package/dist/handlers/transactions.d.ts +0 -21
- package/dist/handlers/transactions.d.ts.map +0 -1
- package/dist/handlers/transactions.js +0 -98
- package/dist/handlers.d.ts +0 -27
- package/dist/handlers.d.ts.map +0 -1
- package/dist/handlers.js +0 -55
- package/dist/provider.d.ts +0 -105
- package/dist/provider.d.ts.map +0 -1
- package/dist/provider.js +0 -160
- package/dist/serializers/account.d.ts +0 -164
- package/dist/serializers/account.d.ts.map +0 -1
- package/dist/serializers/account.js +0 -244
- package/dist/serializers/contract.d.ts +0 -62
- package/dist/serializers/contract.d.ts.map +0 -1
- package/dist/serializers/contract.js +0 -130
- package/dist/serializers/index.d.ts +0 -21
- package/dist/serializers/index.d.ts.map +0 -1
- package/dist/serializers/index.js +0 -154
- package/dist/serializers/log.d.ts +0 -66
- package/dist/serializers/log.d.ts.map +0 -1
- package/dist/serializers/log.js +0 -222
- package/dist/serializers/note.d.ts +0 -124
- package/dist/serializers/note.d.ts.map +0 -1
- package/dist/serializers/note.js +0 -208
- package/dist/serializers/transaction.d.ts +0 -99
- package/dist/serializers/transaction.d.ts.map +0 -1
- package/dist/serializers/transaction.js +0 -275
- package/dist/wallet.d.ts +0 -62
- package/dist/wallet.d.ts.map +0 -1
- package/dist/wallet.js +0 -77
- package/docs/classes/AztecChainProvider.md +0 -553
- package/docs/classes/AztecChainWallet.md +0 -409
- package/docs/classes/AztecProvider.md +0 -1112
- package/docs/interfaces/AztecWalletBaseMethodMap.md +0 -135
- package/docs/interfaces/AztecWalletEventMap.md +0 -17
- package/docs/type-aliases/AztecChainWalletMiddleware.md +0 -13
- package/docs/type-aliases/AztecWalletContext.md +0 -29
- package/docs/type-aliases/AztecWalletMethodHandler.md +0 -37
- package/docs/type-aliases/AztecWalletMiddleware.md +0 -13
- package/docs/type-aliases/AztecWalletRouterClient.md +0 -13
- package/docs/type-aliases/TransactionFunctionCall.md +0 -33
- package/docs/type-aliases/TransactionParams.md +0 -27
- package/src/aztecRemoteWallet.test.ts +0 -505
- package/src/aztecRemoteWallet.ts +0 -467
- package/src/chainProvider.test.ts +0 -401
- package/src/chainProvider.ts +0 -116
- package/src/handlers/aztecAccountWallet.test.ts +0 -650
- package/src/handlers/aztecAccountWallet.ts +0 -531
- package/src/handlers/transactions.ts +0 -124
- package/src/handlers.test.ts +0 -270
- package/src/handlers.ts +0 -70
- package/src/provider.test.ts +0 -277
- package/src/provider.ts +0 -189
- package/src/serializers/account.test.ts +0 -125
- package/src/serializers/account.ts +0 -301
- package/src/serializers/contract.test.ts +0 -24
- package/src/serializers/contract.ts +0 -183
- package/src/serializers/index.test.ts +0 -136
- package/src/serializers/index.ts +0 -191
- package/src/serializers/log.test.ts +0 -286
- package/src/serializers/log.ts +0 -292
- package/src/serializers/note.test.ts +0 -125
- package/src/serializers/note.ts +0 -250
- package/src/serializers/transaction.test.ts +0 -320
- package/src/serializers/transaction.ts +0 -409
- package/src/wallet.test.ts +0 -275
- package/src/wallet.ts +0 -94
@@ -0,0 +1,253 @@
|
|
1
|
+
import { describe, it, expect } from 'vitest';
|
2
|
+
import { AztecAddress, Fr, AuthWitness } from '@aztec/aztec.js';
|
3
|
+
import type { ContractArtifact } from '@aztec/aztec.js';
|
4
|
+
import { FunctionSelector } from '@aztec/stdlib/abi';
|
5
|
+
import { FunctionType } from '@aztec/stdlib/abi';
|
6
|
+
import { Capsule, HashedValues } from '@aztec/stdlib/tx';
|
7
|
+
import { ExecutionPayload } from '@aztec/entrypoints/payload';
|
8
|
+
import { AztecWalletSerializer } from './serializers.js';
|
9
|
+
import { FunctionCall } from '@aztec/stdlib/abi';
|
10
|
+
|
11
|
+
describe('ExecutionPayload Serialization', () => {
|
12
|
+
it('should serialize and deserialize ExecutionPayload correctly', async () => {
|
13
|
+
// Create test data for FunctionCall
|
14
|
+
const functionCall = new FunctionCall(
|
15
|
+
'transfer',
|
16
|
+
AztecAddress.fromString('0x1234567890abcdef1234567890abcdef1234567890abcdef1234567890abcdef'),
|
17
|
+
FunctionSelector.fromField(new Fr(0x12345678)), // Use a valid 4-byte value
|
18
|
+
FunctionType.PRIVATE,
|
19
|
+
false,
|
20
|
+
[Fr.random(), Fr.random()],
|
21
|
+
[],
|
22
|
+
);
|
23
|
+
|
24
|
+
// Create test data for ExecutionPayload
|
25
|
+
const executionPayload = new ExecutionPayload(
|
26
|
+
[functionCall],
|
27
|
+
[AuthWitness.random()],
|
28
|
+
[
|
29
|
+
new Capsule(
|
30
|
+
AztecAddress.fromString('0xabcdef1234567890abcdef1234567890abcdef1234567890abcdef1234567890'),
|
31
|
+
Fr.random(),
|
32
|
+
[Fr.random()],
|
33
|
+
),
|
34
|
+
],
|
35
|
+
[HashedValues.random()],
|
36
|
+
);
|
37
|
+
|
38
|
+
// Test params serialization - simulate the actual parameter structure
|
39
|
+
const params = { executionPayload };
|
40
|
+
const serializedParams = await AztecWalletSerializer.params.serialize('aztec_wmExecuteTx', params);
|
41
|
+
|
42
|
+
// Test params deserialization
|
43
|
+
const deserializedParams = await AztecWalletSerializer.params.deserialize(
|
44
|
+
'aztec_wmExecuteTx',
|
45
|
+
serializedParams,
|
46
|
+
);
|
47
|
+
|
48
|
+
expect(deserializedParams).toBeDefined();
|
49
|
+
expect(Array.isArray(deserializedParams)).toBe(true);
|
50
|
+
const paramsArray = deserializedParams as unknown[];
|
51
|
+
expect(paramsArray).toHaveLength(1);
|
52
|
+
const result = paramsArray[0] as ExecutionPayload;
|
53
|
+
|
54
|
+
// Verify the structure is preserved
|
55
|
+
expect(result).toBeDefined();
|
56
|
+
expect(result.calls).toHaveLength(1);
|
57
|
+
expect(result.authWitnesses).toHaveLength(1);
|
58
|
+
expect(result.capsules).toHaveLength(1);
|
59
|
+
expect(result.extraHashedArgs).toHaveLength(1);
|
60
|
+
|
61
|
+
// Verify the function call data
|
62
|
+
const deserializedCall = result.calls[0];
|
63
|
+
expect(deserializedCall).toBeDefined();
|
64
|
+
if (deserializedCall) {
|
65
|
+
expect(deserializedCall.name).toBe(functionCall.name);
|
66
|
+
expect(deserializedCall.type).toBe(functionCall.type);
|
67
|
+
expect(deserializedCall.isStatic).toBe(functionCall.isStatic);
|
68
|
+
expect(deserializedCall.args).toHaveLength(2);
|
69
|
+
}
|
70
|
+
});
|
71
|
+
|
72
|
+
it('should handle ExecutionPayload with empty extraHashedArgs', async () => {
|
73
|
+
const executionPayload = new ExecutionPayload(
|
74
|
+
[],
|
75
|
+
[],
|
76
|
+
[],
|
77
|
+
// Note: extraHashedArgs is optional and defaults to []
|
78
|
+
);
|
79
|
+
|
80
|
+
// Test params serialization - simulate the actual parameter structure
|
81
|
+
const params = { executionPayload };
|
82
|
+
const serializedParams = await AztecWalletSerializer.params.serialize('aztec_wmExecuteTx', params);
|
83
|
+
|
84
|
+
const deserializedParams = await AztecWalletSerializer.params.deserialize(
|
85
|
+
'aztec_wmExecuteTx',
|
86
|
+
serializedParams,
|
87
|
+
);
|
88
|
+
|
89
|
+
expect(deserializedParams).toBeDefined();
|
90
|
+
expect(Array.isArray(deserializedParams)).toBe(true);
|
91
|
+
const paramsArray = deserializedParams as unknown[];
|
92
|
+
const result = paramsArray[0] as ExecutionPayload;
|
93
|
+
expect(result.extraHashedArgs).toEqual([]);
|
94
|
+
});
|
95
|
+
});
|
96
|
+
|
97
|
+
describe('DeployContract Serialization', () => {
|
98
|
+
it('should serialize and deserialize aztec_wmDeployContract params correctly', async () => {
|
99
|
+
// Create a minimal valid ContractArtifact
|
100
|
+
const artifact: ContractArtifact = {
|
101
|
+
name: 'TestContract',
|
102
|
+
functions: [
|
103
|
+
{
|
104
|
+
name: 'constructor',
|
105
|
+
functionType: FunctionType.PRIVATE,
|
106
|
+
isInternal: false,
|
107
|
+
isStatic: false,
|
108
|
+
isInitializer: true,
|
109
|
+
parameters: [
|
110
|
+
{
|
111
|
+
name: 'owner',
|
112
|
+
type: { kind: 'field' },
|
113
|
+
visibility: 'private',
|
114
|
+
},
|
115
|
+
],
|
116
|
+
returnTypes: [],
|
117
|
+
errorTypes: {},
|
118
|
+
bytecode: Buffer.from('test'),
|
119
|
+
debugSymbols: '',
|
120
|
+
},
|
121
|
+
],
|
122
|
+
nonDispatchPublicFunctions: [],
|
123
|
+
outputs: {
|
124
|
+
structs: {},
|
125
|
+
globals: {},
|
126
|
+
},
|
127
|
+
storageLayout: {},
|
128
|
+
notes: {},
|
129
|
+
fileMap: {},
|
130
|
+
};
|
131
|
+
|
132
|
+
const args = [AztecAddress.random().toString(), '12345'];
|
133
|
+
const constructorName = 'constructor';
|
134
|
+
|
135
|
+
// Test params serialization
|
136
|
+
const params = { artifact, args, constructorName };
|
137
|
+
const serializedParams = await AztecWalletSerializer.params.serialize('aztec_wmDeployContract', params);
|
138
|
+
|
139
|
+
// Test params deserialization
|
140
|
+
const deserializedParams = await AztecWalletSerializer.params.deserialize(
|
141
|
+
'aztec_wmDeployContract',
|
142
|
+
serializedParams,
|
143
|
+
);
|
144
|
+
|
145
|
+
expect(deserializedParams).toBeDefined();
|
146
|
+
expect(Array.isArray(deserializedParams)).toBe(true);
|
147
|
+
const paramsArray = deserializedParams as unknown[];
|
148
|
+
expect(paramsArray).toHaveLength(1);
|
149
|
+
|
150
|
+
const result = paramsArray[0] as {
|
151
|
+
artifact: ContractArtifact;
|
152
|
+
args: unknown[];
|
153
|
+
constructorName?: string;
|
154
|
+
};
|
155
|
+
|
156
|
+
// Verify the artifact structure
|
157
|
+
expect(result.artifact).toBeDefined();
|
158
|
+
expect(result.artifact.name).toBe('TestContract');
|
159
|
+
expect(result.artifact.functions).toHaveLength(1);
|
160
|
+
expect(result.artifact.functions[0]?.name).toBe('constructor');
|
161
|
+
expect(result.artifact.functions[0]?.isInitializer).toBe(true);
|
162
|
+
|
163
|
+
// Verify args
|
164
|
+
expect(result.args).toEqual(args);
|
165
|
+
|
166
|
+
// Verify constructorName
|
167
|
+
expect(result.constructorName).toBe(constructorName);
|
168
|
+
});
|
169
|
+
|
170
|
+
it('should handle aztec_wmDeployContract without constructorName', async () => {
|
171
|
+
const artifact: ContractArtifact = {
|
172
|
+
name: 'TestContract',
|
173
|
+
functions: [],
|
174
|
+
nonDispatchPublicFunctions: [],
|
175
|
+
outputs: {
|
176
|
+
structs: {},
|
177
|
+
globals: {},
|
178
|
+
},
|
179
|
+
storageLayout: {},
|
180
|
+
notes: {},
|
181
|
+
fileMap: {},
|
182
|
+
};
|
183
|
+
|
184
|
+
const args: unknown[] = [];
|
185
|
+
|
186
|
+
// Test without constructorName
|
187
|
+
const params = { artifact, args };
|
188
|
+
const serializedParams = await AztecWalletSerializer.params.serialize('aztec_wmDeployContract', params);
|
189
|
+
|
190
|
+
const deserializedParams = await AztecWalletSerializer.params.deserialize(
|
191
|
+
'aztec_wmDeployContract',
|
192
|
+
serializedParams,
|
193
|
+
);
|
194
|
+
|
195
|
+
const paramsArray = deserializedParams as unknown[];
|
196
|
+
const result = paramsArray[0] as {
|
197
|
+
artifact: ContractArtifact;
|
198
|
+
args: unknown[];
|
199
|
+
constructorName?: string;
|
200
|
+
};
|
201
|
+
|
202
|
+
expect(result.constructorName).toBeUndefined();
|
203
|
+
expect(result.args).toEqual([]);
|
204
|
+
});
|
205
|
+
|
206
|
+
it('should throw error for invalid ContractArtifact in aztec_wmDeployContract', async () => {
|
207
|
+
const invalidArtifact = {
|
208
|
+
// Missing required fields like 'name'
|
209
|
+
functions: [],
|
210
|
+
};
|
211
|
+
|
212
|
+
const args: unknown[] = [];
|
213
|
+
const params = { artifact: invalidArtifact, args };
|
214
|
+
const serializedParams = await AztecWalletSerializer.params.serialize('aztec_wmDeployContract', params);
|
215
|
+
|
216
|
+
// Should throw when deserializing with invalid artifact
|
217
|
+
await expect(
|
218
|
+
AztecWalletSerializer.params.deserialize('aztec_wmDeployContract', serializedParams),
|
219
|
+
).rejects.toThrow();
|
220
|
+
});
|
221
|
+
|
222
|
+
it('should validate args array in aztec_wmDeployContract', async () => {
|
223
|
+
const artifact: ContractArtifact = {
|
224
|
+
name: 'TestContract',
|
225
|
+
functions: [],
|
226
|
+
nonDispatchPublicFunctions: [],
|
227
|
+
outputs: {
|
228
|
+
structs: {},
|
229
|
+
globals: {},
|
230
|
+
},
|
231
|
+
storageLayout: {},
|
232
|
+
notes: {},
|
233
|
+
fileMap: {},
|
234
|
+
};
|
235
|
+
|
236
|
+
// Test with various types in args array
|
237
|
+
const args = ['string value', 123, true, { nested: 'object' }, ['array', 'of', 'values'], null];
|
238
|
+
|
239
|
+
const params = { artifact, args };
|
240
|
+
const serializedParams = await AztecWalletSerializer.params.serialize('aztec_wmDeployContract', params);
|
241
|
+
|
242
|
+
const deserializedParams = await AztecWalletSerializer.params.deserialize(
|
243
|
+
'aztec_wmDeployContract',
|
244
|
+
serializedParams,
|
245
|
+
);
|
246
|
+
|
247
|
+
const paramsArray = deserializedParams as unknown[];
|
248
|
+
const result = paramsArray[0] as { artifact: ContractArtifact; args: unknown[] };
|
249
|
+
|
250
|
+
// z.array(z.any()) should accept any values
|
251
|
+
expect(result.args).toEqual(args);
|
252
|
+
});
|
253
|
+
});
|