@walletmesh/aztec-rpc-wallet 0.3.0 → 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 +26 -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 -268
- 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 +471 -470
- 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 -296
- 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 -504
- 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 -649
- package/src/handlers/aztecAccountWallet.ts +0 -532
- 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 -274
- 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
@@ -1,649 +0,0 @@
|
|
1
|
-
import { describe, expect, it, vi, beforeEach } from 'vitest';
|
2
|
-
import type { AccountWallet } from '@aztec/aztec.js';
|
3
|
-
import { Fr, AztecAddress, TxHash, ExtendedNote, EventSelector } from '@aztec/aztec.js';
|
4
|
-
import type {
|
5
|
-
TxExecutionRequest,
|
6
|
-
ContractInstanceWithAddress,
|
7
|
-
ContractArtifact,
|
8
|
-
PublicKeys,
|
9
|
-
AuthWitness,
|
10
|
-
Tx,
|
11
|
-
} from '@aztec/aztec.js';
|
12
|
-
import type { PrivateExecutionResult, EventMetadataDefinition } from '@aztec/circuit-types';
|
13
|
-
import type { IntentAction, IntentInnerHash } from '@aztec/aztec.js/utils';
|
14
|
-
import { Point } from '@aztec/circuits.js';
|
15
|
-
import type { AztecWalletMethodMap } from '../types.js';
|
16
|
-
import { aztecWalletHandler } from './aztecAccountWallet.js';
|
17
|
-
import { AztecWalletError } from '../errors.js';
|
18
|
-
import type { AztecWalletContext } from '../types.js';
|
19
|
-
|
20
|
-
describe('Aztec Account Wallet Handler', () => {
|
21
|
-
let context: AztecWalletContext;
|
22
|
-
let wallet: AccountWallet;
|
23
|
-
|
24
|
-
beforeEach(() => {
|
25
|
-
// Mock wallet with common methods
|
26
|
-
wallet = {
|
27
|
-
getBlock: vi.fn(),
|
28
|
-
getBlockNumber: vi.fn(),
|
29
|
-
getChainId: vi.fn(),
|
30
|
-
getVersion: vi.fn(),
|
31
|
-
getNodeInfo: vi.fn(),
|
32
|
-
getCurrentBaseFees: vi.fn(),
|
33
|
-
setScopes: vi.fn(),
|
34
|
-
getScopes: vi.fn(),
|
35
|
-
addCapsule: vi.fn(),
|
36
|
-
getAddress: vi.fn(),
|
37
|
-
getCompleteAddress: vi.fn(),
|
38
|
-
registerAccount: vi.fn(),
|
39
|
-
getRegisteredAccounts: vi.fn(),
|
40
|
-
registerSender: vi.fn(),
|
41
|
-
getSenders: vi.fn(),
|
42
|
-
removeSender: vi.fn(),
|
43
|
-
addAuthWitness: vi.fn(),
|
44
|
-
getAuthWitness: vi.fn(),
|
45
|
-
createAuthWit: vi.fn(),
|
46
|
-
isL1ToL2MessageSynced: vi.fn(),
|
47
|
-
getContracts: vi.fn(),
|
48
|
-
getContractMetadata: vi.fn(),
|
49
|
-
getContractClassMetadata: vi.fn(),
|
50
|
-
registerContract: vi.fn(),
|
51
|
-
registerContractClass: vi.fn(),
|
52
|
-
getPublicStorageAt: vi.fn(),
|
53
|
-
createTxExecutionRequest: vi.fn(),
|
54
|
-
proveTx: vi.fn(),
|
55
|
-
sendTx: vi.fn(),
|
56
|
-
getTxEffect: vi.fn(),
|
57
|
-
getTxReceipt: vi.fn(),
|
58
|
-
simulateTx: vi.fn(),
|
59
|
-
simulateUnconstrained: vi.fn(),
|
60
|
-
getNotes: vi.fn(),
|
61
|
-
addNote: vi.fn(),
|
62
|
-
addNullifiedNote: vi.fn(),
|
63
|
-
getPublicLogs: vi.fn(),
|
64
|
-
getContractClassLogs: vi.fn(),
|
65
|
-
getPrivateEvents: vi.fn(),
|
66
|
-
getPublicEvents: vi.fn(),
|
67
|
-
getL1ToL2MembershipWitness: vi.fn(),
|
68
|
-
} as unknown as AccountWallet;
|
69
|
-
|
70
|
-
context = { wallet } as AztecWalletContext;
|
71
|
-
});
|
72
|
-
|
73
|
-
describe('Chain Methods', () => {
|
74
|
-
it('handles aztec_getBlock', async () => {
|
75
|
-
const mockBlock = { number: 1, hash: '0x123' };
|
76
|
-
wallet.getBlock = vi.fn().mockResolvedValue(mockBlock);
|
77
|
-
|
78
|
-
const result = await aztecWalletHandler(context, 'aztec_getBlock', { number: 1 });
|
79
|
-
expect(result).toEqual(mockBlock);
|
80
|
-
expect(wallet.getBlock).toHaveBeenCalledWith(1);
|
81
|
-
});
|
82
|
-
|
83
|
-
it('throws error when block not found', async () => {
|
84
|
-
wallet.getBlock = vi.fn().mockResolvedValue(null);
|
85
|
-
|
86
|
-
await expect(aztecWalletHandler(context, 'aztec_getBlock', { number: 1 })).rejects.toThrow(
|
87
|
-
AztecWalletError,
|
88
|
-
);
|
89
|
-
});
|
90
|
-
|
91
|
-
it('handles aztec_getBlockNumber', async () => {
|
92
|
-
const mockBlockNumber = 100;
|
93
|
-
wallet.getBlockNumber = vi.fn().mockResolvedValue(mockBlockNumber);
|
94
|
-
|
95
|
-
const result = await aztecWalletHandler(context, 'aztec_getBlockNumber', {});
|
96
|
-
expect(result).toBe(mockBlockNumber);
|
97
|
-
});
|
98
|
-
|
99
|
-
it('handles aztec_getChainId', async () => {
|
100
|
-
wallet.getChainId = vi.fn().mockReturnValue(BigInt(1));
|
101
|
-
|
102
|
-
const result = await aztecWalletHandler(context, 'aztec_getChainId', {});
|
103
|
-
expect(result).toBe(1);
|
104
|
-
});
|
105
|
-
|
106
|
-
it('handles aztec_getVersion', async () => {
|
107
|
-
wallet.getVersion = vi.fn().mockReturnValue(BigInt(1));
|
108
|
-
|
109
|
-
const result = await aztecWalletHandler(context, 'aztec_getVersion', {});
|
110
|
-
expect(result).toBe(1);
|
111
|
-
});
|
112
|
-
});
|
113
|
-
|
114
|
-
describe('Scope Methods', () => {
|
115
|
-
it('handles aztec_setScopes', async () => {
|
116
|
-
const mockAddress = await AztecAddress.random();
|
117
|
-
const scopes = [mockAddress];
|
118
|
-
wallet.setScopes = vi.fn().mockResolvedValue(undefined);
|
119
|
-
|
120
|
-
const result = await aztecWalletHandler(context, 'aztec_setScopes', { scopes });
|
121
|
-
expect(result).toBe(true);
|
122
|
-
expect(wallet.setScopes).toHaveBeenCalledWith(scopes);
|
123
|
-
});
|
124
|
-
|
125
|
-
it('handles aztec_getScopes', async () => {
|
126
|
-
const scopes = [await AztecAddress.random(), await AztecAddress.random()];
|
127
|
-
wallet.getScopes = vi.fn().mockResolvedValue(scopes);
|
128
|
-
|
129
|
-
const result = await aztecWalletHandler(context, 'aztec_getScopes', {});
|
130
|
-
expect(result).toEqual(scopes);
|
131
|
-
});
|
132
|
-
|
133
|
-
it('handles aztec_getScopes with null response', async () => {
|
134
|
-
wallet.getScopes = vi.fn().mockResolvedValue(null);
|
135
|
-
|
136
|
-
const result = await aztecWalletHandler(context, 'aztec_getScopes', {});
|
137
|
-
expect(result).toEqual([]);
|
138
|
-
});
|
139
|
-
});
|
140
|
-
|
141
|
-
describe('Account Methods', () => {
|
142
|
-
it('handles aztec_getAddress', async () => {
|
143
|
-
const mockAddress = await AztecAddress.random();
|
144
|
-
wallet.getAddress = vi.fn().mockReturnValue(mockAddress);
|
145
|
-
|
146
|
-
const result = await aztecWalletHandler(context, 'aztec_getAddress', {});
|
147
|
-
expect(result).toBe(mockAddress);
|
148
|
-
});
|
149
|
-
|
150
|
-
it('handles aztec_getCompleteAddress', async () => {
|
151
|
-
const mockAddress = {
|
152
|
-
address: await AztecAddress.random(),
|
153
|
-
publicKey: await AztecAddress.random(),
|
154
|
-
};
|
155
|
-
wallet.getCompleteAddress = vi.fn().mockReturnValue(mockAddress);
|
156
|
-
|
157
|
-
const result = await aztecWalletHandler(context, 'aztec_getCompleteAddress', {});
|
158
|
-
expect(result).toBe(mockAddress);
|
159
|
-
});
|
160
|
-
|
161
|
-
it('handles aztec_registerAccount', async () => {
|
162
|
-
const mockParams = { secretKey: new Fr(1), partialAddress: new Fr(2) };
|
163
|
-
const mockResult = { address: AztecAddress.random() };
|
164
|
-
wallet.registerAccount = vi.fn().mockResolvedValue(mockResult);
|
165
|
-
|
166
|
-
const result = await aztecWalletHandler(context, 'aztec_registerAccount', mockParams);
|
167
|
-
expect(result).toBe(mockResult);
|
168
|
-
expect(wallet.registerAccount).toHaveBeenCalledWith(mockParams.secretKey, mockParams.partialAddress);
|
169
|
-
});
|
170
|
-
});
|
171
|
-
|
172
|
-
describe('Node Info Methods', () => {
|
173
|
-
it('handles aztec_getNodeInfo', async () => {
|
174
|
-
const mockNodeInfo = { version: '1.0.0', status: 'running' };
|
175
|
-
wallet.getNodeInfo = vi.fn().mockResolvedValue(mockNodeInfo);
|
176
|
-
|
177
|
-
const result = await aztecWalletHandler(context, 'aztec_getNodeInfo', {});
|
178
|
-
expect(result).toBe(mockNodeInfo);
|
179
|
-
});
|
180
|
-
|
181
|
-
it('handles aztec_getCurrentBaseFees', async () => {
|
182
|
-
const mockFees = { baseFee: BigInt(1000) };
|
183
|
-
wallet.getCurrentBaseFees = vi.fn().mockResolvedValue(mockFees);
|
184
|
-
|
185
|
-
const result = await aztecWalletHandler(context, 'aztec_getCurrentBaseFees', {});
|
186
|
-
expect(result).toBe(mockFees);
|
187
|
-
});
|
188
|
-
});
|
189
|
-
|
190
|
-
describe('L1->L2 Message Methods', () => {
|
191
|
-
it('handles aztec_isL1ToL2MessageSynced', async () => {
|
192
|
-
const mockMessage = await Fr.random();
|
193
|
-
wallet.isL1ToL2MessageSynced = vi.fn().mockResolvedValue(true);
|
194
|
-
|
195
|
-
const result = await aztecWalletHandler(context, 'aztec_isL1ToL2MessageSynced', {
|
196
|
-
l1ToL2Message: mockMessage,
|
197
|
-
});
|
198
|
-
expect(result).toBe(true);
|
199
|
-
});
|
200
|
-
|
201
|
-
it('handles aztec_getL1ToL2MembershipWitness', async () => {
|
202
|
-
const mockParams = {
|
203
|
-
contractAddress: await AztecAddress.random(),
|
204
|
-
messageHash: await Fr.random(),
|
205
|
-
secret: await Fr.random(),
|
206
|
-
};
|
207
|
-
const mockWitness = { witness: new Uint8Array([1, 2, 3]) };
|
208
|
-
wallet.getL1ToL2MembershipWitness = vi.fn().mockResolvedValue(mockWitness);
|
209
|
-
|
210
|
-
const result = await aztecWalletHandler(context, 'aztec_getL1ToL2MembershipWitness', mockParams);
|
211
|
-
expect(result).toBe(mockWitness);
|
212
|
-
expect(wallet.getL1ToL2MembershipWitness).toHaveBeenCalledWith(
|
213
|
-
mockParams.contractAddress,
|
214
|
-
mockParams.messageHash,
|
215
|
-
mockParams.secret,
|
216
|
-
);
|
217
|
-
});
|
218
|
-
});
|
219
|
-
|
220
|
-
describe('Note Methods', () => {
|
221
|
-
it('handles aztec_getNotes', async () => {
|
222
|
-
const mockFilter = { contractAddress: await AztecAddress.random() };
|
223
|
-
const mockNote = await ExtendedNote.random();
|
224
|
-
const mockNotes = [mockNote];
|
225
|
-
wallet.getNotes = vi.fn().mockResolvedValue(mockNotes);
|
226
|
-
|
227
|
-
const result = await aztecWalletHandler(context, 'aztec_getNotes', { filter: mockFilter });
|
228
|
-
expect(result).toBe(mockNotes);
|
229
|
-
expect(wallet.getNotes).toHaveBeenCalledWith(mockFilter);
|
230
|
-
});
|
231
|
-
|
232
|
-
it('handles aztec_addNote', async () => {
|
233
|
-
const mockNote = await ExtendedNote.random();
|
234
|
-
wallet.addNote = vi.fn().mockResolvedValue(undefined);
|
235
|
-
|
236
|
-
const result = await aztecWalletHandler(context, 'aztec_addNote', { note: mockNote });
|
237
|
-
expect(result).toBe(true);
|
238
|
-
expect(wallet.addNote).toHaveBeenCalledWith(mockNote);
|
239
|
-
});
|
240
|
-
|
241
|
-
it('handles aztec_addNullifiedNote', async () => {
|
242
|
-
const mockNote = await ExtendedNote.random();
|
243
|
-
Object.assign(mockNote, { nullified: true });
|
244
|
-
wallet.addNullifiedNote = vi.fn().mockResolvedValue(undefined);
|
245
|
-
|
246
|
-
const result = await aztecWalletHandler(context, 'aztec_addNullifiedNote', { note: mockNote });
|
247
|
-
expect(result).toBe(true);
|
248
|
-
expect(wallet.addNullifiedNote).toHaveBeenCalledWith(mockNote);
|
249
|
-
});
|
250
|
-
});
|
251
|
-
|
252
|
-
describe('Contract Methods', () => {
|
253
|
-
it('handles aztec_getContractMetadata', async () => {
|
254
|
-
const mockAddress = await AztecAddress.random();
|
255
|
-
const mockMetadata = { address: mockAddress };
|
256
|
-
wallet.getContractMetadata = vi.fn().mockResolvedValue(mockMetadata);
|
257
|
-
|
258
|
-
const result = await aztecWalletHandler(context, 'aztec_getContractMetadata', { address: mockAddress });
|
259
|
-
expect(result).toBe(mockMetadata);
|
260
|
-
});
|
261
|
-
|
262
|
-
it('handles aztec_getContractClassMetadata', async () => {
|
263
|
-
const mockId = await Fr.random();
|
264
|
-
const mockMetadata = { id: mockId };
|
265
|
-
wallet.getContractClassMetadata = vi.fn().mockResolvedValue(mockMetadata);
|
266
|
-
|
267
|
-
const result = await aztecWalletHandler(context, 'aztec_getContractClassMetadata', { id: mockId });
|
268
|
-
expect(result).toBe(mockMetadata);
|
269
|
-
});
|
270
|
-
|
271
|
-
it('handles aztec_registerContract', async () => {
|
272
|
-
const mockAddress = await AztecAddress.random();
|
273
|
-
const mockPublicKeys = {
|
274
|
-
masterNullifierPublicKey: new Fr(1),
|
275
|
-
masterIncomingViewingPublicKey: new Fr(2),
|
276
|
-
masterOutgoingViewingPublicKey: new Fr(3),
|
277
|
-
masterTaggingPublicKey: new Fr(4),
|
278
|
-
masterClaimingPublicKey: new Fr(5),
|
279
|
-
masterNoteHashingPublicKey: new Fr(6),
|
280
|
-
masterNoteCommitmentPublicKey: new Fr(7),
|
281
|
-
masterNullifierGeneratorPublicKey: new Fr(8),
|
282
|
-
masterTaggingGeneratorPublicKey: new Fr(9),
|
283
|
-
masterClaimingGeneratorPublicKey: new Fr(10),
|
284
|
-
hash: () => new Fr(11),
|
285
|
-
isEmpty: () => false,
|
286
|
-
equals: () => false,
|
287
|
-
toBuffer: () => new Uint8Array(),
|
288
|
-
toString: () => 'mockPublicKeys',
|
289
|
-
toJSON: () => ({}),
|
290
|
-
} as unknown as PublicKeys;
|
291
|
-
|
292
|
-
const mockInstance = {
|
293
|
-
address: mockAddress,
|
294
|
-
version: 1,
|
295
|
-
salt: new Fr(2),
|
296
|
-
deployer: mockAddress,
|
297
|
-
contractClassId: new Fr(3),
|
298
|
-
initializationHash: new Fr(4),
|
299
|
-
publicKeys: mockPublicKeys,
|
300
|
-
} as unknown as ContractInstanceWithAddress;
|
301
|
-
|
302
|
-
const mockArtifact = {
|
303
|
-
name: 'TestContract',
|
304
|
-
functions: {
|
305
|
-
test: {
|
306
|
-
name: 'test',
|
307
|
-
parameters: [],
|
308
|
-
},
|
309
|
-
},
|
310
|
-
outputs: {
|
311
|
-
structs: {},
|
312
|
-
globals: {},
|
313
|
-
},
|
314
|
-
storageLayout: {
|
315
|
-
structs: {},
|
316
|
-
globals: {},
|
317
|
-
},
|
318
|
-
notes: {},
|
319
|
-
fileMap: {},
|
320
|
-
} as unknown as ContractArtifact;
|
321
|
-
const mockParams = {
|
322
|
-
instance: mockInstance,
|
323
|
-
artifact: mockArtifact,
|
324
|
-
};
|
325
|
-
wallet.registerContract = vi.fn().mockResolvedValue(undefined);
|
326
|
-
|
327
|
-
const result = await aztecWalletHandler(context, 'aztec_registerContract', mockParams);
|
328
|
-
expect(result).toBe(true);
|
329
|
-
expect(wallet.registerContract).toHaveBeenCalledWith(mockParams);
|
330
|
-
});
|
331
|
-
});
|
332
|
-
|
333
|
-
describe('Log Methods', () => {
|
334
|
-
it('handles aztec_getPublicLogs', async () => {
|
335
|
-
const mockFilter = { contractAddress: await AztecAddress.random() };
|
336
|
-
const mockLogs = [{ data: new Uint8Array([1, 2, 3]) }];
|
337
|
-
wallet.getPublicLogs = vi.fn().mockResolvedValue(mockLogs);
|
338
|
-
|
339
|
-
const result = await aztecWalletHandler(context, 'aztec_getPublicLogs', { filter: mockFilter });
|
340
|
-
expect(result).toBe(mockLogs);
|
341
|
-
expect(wallet.getPublicLogs).toHaveBeenCalledWith(mockFilter);
|
342
|
-
});
|
343
|
-
|
344
|
-
it('handles aztec_getContractClassLogs', async () => {
|
345
|
-
const mockFilter = { contractAddress: await AztecAddress.random() };
|
346
|
-
const mockLogs = [{ data: new Uint8Array([1, 2, 3]) }];
|
347
|
-
wallet.getContractClassLogs = vi.fn().mockResolvedValue(mockLogs);
|
348
|
-
|
349
|
-
const result = await aztecWalletHandler(context, 'aztec_getContractClassLogs', { filter: mockFilter });
|
350
|
-
expect(result).toBe(mockLogs);
|
351
|
-
});
|
352
|
-
|
353
|
-
it('handles aztec_getPrivateEvents', async () => {
|
354
|
-
const mockEvent = {
|
355
|
-
name: 'TestEvent',
|
356
|
-
parameters: [{ name: 'value', type: 'field' }],
|
357
|
-
returnType: { type: 'struct', items: [{ name: 'value', type: 'field' }] },
|
358
|
-
eventSelector: await EventSelector.random(),
|
359
|
-
abiType: 'event',
|
360
|
-
fieldNames: ['value'],
|
361
|
-
} as unknown as EventMetadataDefinition;
|
362
|
-
const mockParams = {
|
363
|
-
event: mockEvent,
|
364
|
-
from: 0,
|
365
|
-
limit: 10,
|
366
|
-
vpks: [await Point.random()],
|
367
|
-
};
|
368
|
-
const mockEvents = [{ data: new Uint8Array([1, 2, 3]) }];
|
369
|
-
wallet.getPrivateEvents = vi.fn().mockResolvedValue(mockEvents);
|
370
|
-
|
371
|
-
const result = await aztecWalletHandler(context, 'aztec_getPrivateEvents', mockParams);
|
372
|
-
expect(result).toBe(mockEvents);
|
373
|
-
expect(wallet.getPrivateEvents).toHaveBeenCalledWith(
|
374
|
-
mockParams.event,
|
375
|
-
mockParams.from,
|
376
|
-
mockParams.limit,
|
377
|
-
mockParams.vpks,
|
378
|
-
);
|
379
|
-
});
|
380
|
-
|
381
|
-
it('handles aztec_getPublicEvents', async () => {
|
382
|
-
const mockEvent = {
|
383
|
-
name: 'TestEvent',
|
384
|
-
parameters: [{ name: 'value', type: 'field' }],
|
385
|
-
returnType: { type: 'struct', items: [{ name: 'value', type: 'field' }] },
|
386
|
-
eventSelector: await EventSelector.random(),
|
387
|
-
abiType: 'event',
|
388
|
-
fieldNames: ['value'],
|
389
|
-
} as unknown as EventMetadataDefinition;
|
390
|
-
const mockParams = {
|
391
|
-
event: mockEvent,
|
392
|
-
from: 0,
|
393
|
-
limit: 10,
|
394
|
-
};
|
395
|
-
const mockEvents = [{ data: new Uint8Array([1, 2, 3]) }];
|
396
|
-
wallet.getPublicEvents = vi.fn().mockResolvedValue(mockEvents);
|
397
|
-
|
398
|
-
const result = await aztecWalletHandler(context, 'aztec_getPublicEvents', mockParams);
|
399
|
-
expect(result).toBe(mockEvents);
|
400
|
-
expect(wallet.getPublicEvents).toHaveBeenCalledWith(
|
401
|
-
mockParams.event,
|
402
|
-
mockParams.from,
|
403
|
-
mockParams.limit,
|
404
|
-
);
|
405
|
-
});
|
406
|
-
});
|
407
|
-
|
408
|
-
describe('Transaction Methods', () => {
|
409
|
-
it('handles aztec_getTxReceipt', async () => {
|
410
|
-
const mockTxHash = await TxHash.random();
|
411
|
-
const mockReceipt = { status: 1 };
|
412
|
-
wallet.getTxReceipt = vi.fn().mockResolvedValue(mockReceipt);
|
413
|
-
|
414
|
-
const result = await aztecWalletHandler(context, 'aztec_getTxReceipt', { txHash: mockTxHash });
|
415
|
-
expect(result).toBe(mockReceipt);
|
416
|
-
});
|
417
|
-
|
418
|
-
it('throws error when transaction receipt not found', async () => {
|
419
|
-
wallet.getTxReceipt = vi.fn().mockResolvedValue(null);
|
420
|
-
|
421
|
-
const mockTxHash = await TxHash.random();
|
422
|
-
await expect(aztecWalletHandler(context, 'aztec_getTxReceipt', { txHash: mockTxHash })).rejects.toThrow(
|
423
|
-
AztecWalletError,
|
424
|
-
);
|
425
|
-
});
|
426
|
-
|
427
|
-
it('handles aztec_simulateTx', async () => {
|
428
|
-
const mockParams = {
|
429
|
-
txRequest: {
|
430
|
-
origin: await AztecAddress.random(),
|
431
|
-
functionSelector: new Fr(1),
|
432
|
-
firstCallArgsHash: new Fr(2),
|
433
|
-
txContext: {
|
434
|
-
chainId: 1,
|
435
|
-
version: 1,
|
436
|
-
protocolVersion: 1,
|
437
|
-
excessFeeReceiver: await AztecAddress.random(),
|
438
|
-
},
|
439
|
-
callData: new Uint8Array(),
|
440
|
-
gasLimit: 1000000n,
|
441
|
-
gasPrice: 1000000n,
|
442
|
-
storageContractAddress: await AztecAddress.random(),
|
443
|
-
portalContract: await AztecAddress.random(),
|
444
|
-
argsOfCalls: [],
|
445
|
-
authWitnesses: [],
|
446
|
-
toTxRequest: () => ({ id: '0x123' }),
|
447
|
-
toBuffer: () => new Uint8Array(),
|
448
|
-
} as unknown as TxExecutionRequest,
|
449
|
-
simulatePublic: true,
|
450
|
-
msgSender: await AztecAddress.random(),
|
451
|
-
skipTxValidation: false,
|
452
|
-
enforceFeePayment: true,
|
453
|
-
profile: true,
|
454
|
-
};
|
455
|
-
const mockResult = { success: true };
|
456
|
-
wallet.simulateTx = vi.fn().mockResolvedValue(mockResult);
|
457
|
-
|
458
|
-
const result = await aztecWalletHandler(context, 'aztec_simulateTx', mockParams);
|
459
|
-
expect(result).toBe(mockResult);
|
460
|
-
expect(wallet.simulateTx).toHaveBeenCalledWith(
|
461
|
-
mockParams.txRequest,
|
462
|
-
mockParams.simulatePublic,
|
463
|
-
mockParams.msgSender,
|
464
|
-
mockParams.skipTxValidation,
|
465
|
-
mockParams.enforceFeePayment,
|
466
|
-
mockParams.profile,
|
467
|
-
);
|
468
|
-
});
|
469
|
-
});
|
470
|
-
|
471
|
-
describe('Capsule Methods', () => {
|
472
|
-
it('handles aztec_addCapsule', async () => {
|
473
|
-
const mockCapsule = [await Fr.random(), await Fr.random(), await Fr.random()];
|
474
|
-
wallet.addCapsule = vi.fn().mockResolvedValue(undefined);
|
475
|
-
|
476
|
-
const result = await aztecWalletHandler(context, 'aztec_addCapsule', { capsule: mockCapsule });
|
477
|
-
expect(result).toBe(true);
|
478
|
-
expect(wallet.addCapsule).toHaveBeenCalledWith(mockCapsule);
|
479
|
-
});
|
480
|
-
});
|
481
|
-
|
482
|
-
describe('Auth Witness Methods', () => {
|
483
|
-
it('handles aztec_addAuthWitness', async () => {
|
484
|
-
const mockAuthWitness = {
|
485
|
-
requestHash: await Fr.random(),
|
486
|
-
witness: new Uint8Array([1, 2, 3]),
|
487
|
-
toJSON: () => ({}),
|
488
|
-
toBuffer: () => new Uint8Array([1, 2, 3]),
|
489
|
-
} as unknown as AuthWitness;
|
490
|
-
wallet.addAuthWitness = vi.fn().mockResolvedValue(undefined);
|
491
|
-
|
492
|
-
const result = await aztecWalletHandler(context, 'aztec_addAuthWitness', {
|
493
|
-
authWitness: mockAuthWitness,
|
494
|
-
});
|
495
|
-
expect(result).toBe(true);
|
496
|
-
expect(wallet.addAuthWitness).toHaveBeenCalledWith(mockAuthWitness);
|
497
|
-
});
|
498
|
-
|
499
|
-
it('handles aztec_createAuthWit', async () => {
|
500
|
-
const mockIntent = (await Fr.random()) as unknown as IntentAction | IntentInnerHash;
|
501
|
-
const mockAuthWit = { witness: new Uint8Array([4, 5, 6]) };
|
502
|
-
wallet.createAuthWit = vi.fn().mockResolvedValue(mockAuthWit);
|
503
|
-
|
504
|
-
const result = await aztecWalletHandler(context, 'aztec_createAuthWit', { intent: mockIntent });
|
505
|
-
expect(result).toBe(mockAuthWit);
|
506
|
-
expect(wallet.createAuthWit).toHaveBeenCalledWith(mockIntent);
|
507
|
-
});
|
508
|
-
});
|
509
|
-
|
510
|
-
describe('Sender Methods', () => {
|
511
|
-
it('handles aztec_registerSender', async () => {
|
512
|
-
const mockSender = await AztecAddress.random();
|
513
|
-
const mockResult = { success: true };
|
514
|
-
wallet.registerSender = vi.fn().mockResolvedValue(mockResult);
|
515
|
-
|
516
|
-
const result = await aztecWalletHandler(context, 'aztec_registerSender', { sender: mockSender });
|
517
|
-
expect(result).toBe(mockResult);
|
518
|
-
expect(wallet.registerSender).toHaveBeenCalledWith(mockSender);
|
519
|
-
});
|
520
|
-
|
521
|
-
it('handles aztec_removeSender', async () => {
|
522
|
-
const mockSender = await AztecAddress.random();
|
523
|
-
wallet.removeSender = vi.fn().mockResolvedValue(undefined);
|
524
|
-
|
525
|
-
const result = await aztecWalletHandler(context, 'aztec_removeSender', { sender: mockSender });
|
526
|
-
expect(result).toBe(true);
|
527
|
-
expect(wallet.removeSender).toHaveBeenCalledWith(mockSender);
|
528
|
-
});
|
529
|
-
});
|
530
|
-
|
531
|
-
describe('Transaction Methods', () => {
|
532
|
-
it('handles aztec_proveTx', async () => {
|
533
|
-
const mockTxRequest = {
|
534
|
-
origin: await AztecAddress.random(),
|
535
|
-
functionSelector: new Fr(1),
|
536
|
-
firstCallArgsHash: new Fr(2),
|
537
|
-
txContext: {
|
538
|
-
chainId: 1,
|
539
|
-
version: 1,
|
540
|
-
protocolVersion: 1,
|
541
|
-
excessFeeReceiver: await AztecAddress.random(),
|
542
|
-
},
|
543
|
-
callData: new Uint8Array(),
|
544
|
-
gasLimit: 1000000n,
|
545
|
-
gasPrice: 1000000n,
|
546
|
-
storageContractAddress: await AztecAddress.random(),
|
547
|
-
portalContract: await AztecAddress.random(),
|
548
|
-
argsOfCalls: [],
|
549
|
-
authWitnesses: [],
|
550
|
-
toTxRequest: () => ({ id: '0x123' }),
|
551
|
-
toBuffer: () => new Uint8Array(),
|
552
|
-
} as unknown as TxExecutionRequest;
|
553
|
-
const mockPrivateExecutionResult = {
|
554
|
-
acir: new Uint8Array([1, 2, 3]),
|
555
|
-
vk: new Uint8Array([4, 5, 6]),
|
556
|
-
partialWitness: new Uint8Array([7, 8, 9]),
|
557
|
-
publicInputs: [await Fr.random()],
|
558
|
-
success: true,
|
559
|
-
gasUsed: 1000n,
|
560
|
-
returnValue: new Uint8Array(),
|
561
|
-
unencryptedLogs: [],
|
562
|
-
contractClassLogs: [],
|
563
|
-
encryptedLogs: [],
|
564
|
-
encryptedLogPreimages: [],
|
565
|
-
encryptedLogKeys: [],
|
566
|
-
} as unknown as PrivateExecutionResult;
|
567
|
-
const mockProvenTx = { hash: await TxHash.random() };
|
568
|
-
wallet.proveTx = vi.fn().mockResolvedValue(mockProvenTx);
|
569
|
-
|
570
|
-
const result = await aztecWalletHandler(context, 'aztec_proveTx', {
|
571
|
-
txRequest: mockTxRequest,
|
572
|
-
privateExecutionResult: mockPrivateExecutionResult,
|
573
|
-
});
|
574
|
-
expect(result).toBe(mockProvenTx);
|
575
|
-
expect(wallet.proveTx).toHaveBeenCalledWith(mockTxRequest, mockPrivateExecutionResult);
|
576
|
-
});
|
577
|
-
|
578
|
-
it('handles aztec_sendTx', async () => {
|
579
|
-
const mockTx = {
|
580
|
-
hash: await TxHash.random(),
|
581
|
-
data: new Uint8Array([1, 2, 3]),
|
582
|
-
clientIvcProof: new Uint8Array([4, 5, 6]),
|
583
|
-
unencryptedLogs: [],
|
584
|
-
contractClassLogs: [],
|
585
|
-
encryptedLogs: [],
|
586
|
-
encryptedLogPreimages: [],
|
587
|
-
encryptedLogKeys: [],
|
588
|
-
encryptedLogsSalt: await Fr.random(),
|
589
|
-
encryptedLogsCommitment: await Fr.random(),
|
590
|
-
encryptedLogsTreeIndex: 0,
|
591
|
-
encryptedLogProofs: [],
|
592
|
-
encryptedLogProofsTreeIndex: 0,
|
593
|
-
encryptedLogProofsCommitment: await Fr.random(),
|
594
|
-
encryptedLogProofsSalt: await Fr.random(),
|
595
|
-
toBuffer: () => new Uint8Array(),
|
596
|
-
toString: () => 'mockTx',
|
597
|
-
} as unknown as Tx;
|
598
|
-
const mockTxHash = await TxHash.random();
|
599
|
-
wallet.sendTx = vi.fn().mockResolvedValue(mockTxHash);
|
600
|
-
|
601
|
-
const result = await aztecWalletHandler(context, 'aztec_sendTx', { tx: mockTx });
|
602
|
-
expect(result).toBe(mockTxHash);
|
603
|
-
expect(wallet.sendTx).toHaveBeenCalledWith(mockTx);
|
604
|
-
});
|
605
|
-
|
606
|
-
it('handles aztec_getTxEffect', async () => {
|
607
|
-
const mockTxHash = await TxHash.random();
|
608
|
-
const mockEffect = { success: true };
|
609
|
-
wallet.getTxEffect = vi.fn().mockResolvedValue(mockEffect);
|
610
|
-
|
611
|
-
const result = await aztecWalletHandler(context, 'aztec_getTxEffect', { txHash: mockTxHash });
|
612
|
-
expect(result).toBe(mockEffect);
|
613
|
-
expect(wallet.getTxEffect).toHaveBeenCalledWith(mockTxHash);
|
614
|
-
});
|
615
|
-
|
616
|
-
it('throws error when transaction effect not found', async () => {
|
617
|
-
wallet.getTxEffect = vi.fn().mockResolvedValue(null);
|
618
|
-
|
619
|
-
const mockTxHash = await TxHash.random();
|
620
|
-
await expect(aztecWalletHandler(context, 'aztec_getTxEffect', { txHash: mockTxHash })).rejects.toThrow(
|
621
|
-
AztecWalletError,
|
622
|
-
);
|
623
|
-
});
|
624
|
-
});
|
625
|
-
|
626
|
-
describe('Public Storage Methods', () => {
|
627
|
-
it('handles aztec_getPublicStorageAt', async () => {
|
628
|
-
const mockContract = await AztecAddress.random();
|
629
|
-
const mockStorageSlot = await Fr.random();
|
630
|
-
const mockValue = await Fr.random();
|
631
|
-
wallet.getPublicStorageAt = vi.fn().mockResolvedValue(mockValue);
|
632
|
-
|
633
|
-
const result = await aztecWalletHandler(context, 'aztec_getPublicStorageAt', {
|
634
|
-
contract: mockContract,
|
635
|
-
storageSlot: mockStorageSlot,
|
636
|
-
});
|
637
|
-
expect(result).toBe(mockValue);
|
638
|
-
expect(wallet.getPublicStorageAt).toHaveBeenCalledWith(mockContract, mockStorageSlot);
|
639
|
-
});
|
640
|
-
});
|
641
|
-
|
642
|
-
describe('Error Handling', () => {
|
643
|
-
it('throws error for unsupported method', async () => {
|
644
|
-
await expect(
|
645
|
-
aztecWalletHandler(context, 'not_a_real_method' as keyof AztecWalletMethodMap, {}),
|
646
|
-
).rejects.toThrow(AztecWalletError);
|
647
|
-
});
|
648
|
-
});
|
649
|
-
});
|