@walletmesh/aztec-rpc-wallet 0.1.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +7 -0
- package/LICENSE +201 -0
- package/README.md +260 -0
- package/dist/.tsbuildinfo +1 -0
- package/dist/aztecRemoteWallet.d.ts +73 -0
- package/dist/aztecRemoteWallet.d.ts.map +1 -0
- package/dist/aztecRemoteWallet.js +354 -0
- package/dist/chainProvider.d.ts +56 -0
- package/dist/chainProvider.d.ts.map +1 -0
- package/dist/chainProvider.js +98 -0
- package/dist/contractArtifactCache.d.ts +50 -0
- package/dist/contractArtifactCache.d.ts.map +1 -0
- package/dist/contractArtifactCache.js +66 -0
- package/dist/errors.d.ts +50 -0
- package/dist/errors.d.ts.map +1 -0
- package/dist/errors.js +62 -0
- package/dist/handlers/aztecAccountWallet.d.ts +4 -0
- package/dist/handlers/aztecAccountWallet.d.ts.map +1 -0
- package/dist/handlers/aztecAccountWallet.js +329 -0
- package/dist/handlers/transactions.d.ts +21 -0
- package/dist/handlers/transactions.d.ts.map +1 -0
- package/dist/handlers/transactions.js +90 -0
- package/dist/handlers.d.ts +27 -0
- package/dist/handlers.d.ts.map +1 -0
- package/dist/handlers.js +55 -0
- package/dist/index.d.ts +58 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +33 -0
- package/dist/provider.d.ts +105 -0
- package/dist/provider.d.ts.map +1 -0
- package/dist/provider.js +160 -0
- package/dist/serializers/account.d.ts +167 -0
- package/dist/serializers/account.d.ts.map +1 -0
- package/dist/serializers/account.js +245 -0
- package/dist/serializers/contract-utils.d.ts +40 -0
- package/dist/serializers/contract-utils.d.ts.map +1 -0
- package/dist/serializers/contract-utils.js +102 -0
- package/dist/serializers/contract.d.ts +168 -0
- package/dist/serializers/contract.d.ts.map +1 -0
- package/dist/serializers/contract.js +268 -0
- package/dist/serializers/core.d.ts +110 -0
- package/dist/serializers/core.d.ts.map +1 -0
- package/dist/serializers/core.js +130 -0
- package/dist/serializers/index.d.ts +28 -0
- package/dist/serializers/index.d.ts.map +1 -0
- package/dist/serializers/index.js +159 -0
- package/dist/serializers/log.d.ts +113 -0
- package/dist/serializers/log.d.ts.map +1 -0
- package/dist/serializers/log.js +231 -0
- package/dist/serializers/note.d.ts +127 -0
- package/dist/serializers/note.d.ts.map +1 -0
- package/dist/serializers/note.js +182 -0
- package/dist/serializers/transaction-utils.d.ts +107 -0
- package/dist/serializers/transaction-utils.d.ts.map +1 -0
- package/dist/serializers/transaction-utils.js +130 -0
- package/dist/serializers/transaction.d.ts +103 -0
- package/dist/serializers/transaction.d.ts.map +1 -0
- package/dist/serializers/transaction.js +238 -0
- package/dist/serializers/types.d.ts +49 -0
- package/dist/serializers/types.d.ts.map +1 -0
- package/dist/serializers/types.js +22 -0
- package/dist/types.d.ts +391 -0
- package/dist/types.d.ts.map +1 -0
- package/dist/types.js +8 -0
- package/dist/wallet.d.ts +62 -0
- package/dist/wallet.d.ts.map +1 -0
- package/dist/wallet.js +77 -0
- package/package.json +44 -0
- package/src/aztecRemoteWallet.test.ts +542 -0
- package/src/aztecRemoteWallet.ts +484 -0
- package/src/chainProvider.test.ts +322 -0
- package/src/chainProvider.ts +122 -0
- package/src/contractArtifactCache.test.ts +126 -0
- package/src/contractArtifactCache.ts +75 -0
- package/src/errors.ts +71 -0
- package/src/handlers/aztecAccountWallet.test.ts +720 -0
- package/src/handlers/aztecAccountWallet.ts +593 -0
- package/src/handlers/transactions.ts +110 -0
- package/src/handlers.test.ts +270 -0
- package/src/handlers.ts +70 -0
- package/src/index.test.ts +23 -0
- package/src/index.ts +64 -0
- package/src/provider.test.ts +276 -0
- package/src/provider.ts +189 -0
- package/src/serializers/account.test.ts +125 -0
- package/src/serializers/account.ts +319 -0
- package/src/serializers/contract-utils.ts +104 -0
- package/src/serializers/contract.test.ts +162 -0
- package/src/serializers/contract.ts +350 -0
- package/src/serializers/core.test.ts +56 -0
- package/src/serializers/core.ts +141 -0
- package/src/serializers/index.test.ts +122 -0
- package/src/serializers/index.ts +213 -0
- package/src/serializers/log.test.ts +119 -0
- package/src/serializers/log.ts +283 -0
- package/src/serializers/note.test.ts +100 -0
- package/src/serializers/note.ts +227 -0
- package/src/serializers/transaction-utils.ts +237 -0
- package/src/serializers/transaction.test.ts +153 -0
- package/src/serializers/transaction.ts +342 -0
- package/src/serializers/types.ts +58 -0
- package/src/types.ts +295 -0
- package/src/wallet.test.ts +275 -0
- package/src/wallet.ts +94 -0
- package/tsconfig.build.json +6 -0
- package/tsconfig.json +11 -0
- package/typedoc.json +15 -0
- package/vitest.config.ts +10 -0
@@ -0,0 +1,484 @@
|
|
1
|
+
import type {
|
2
|
+
AuthWitness,
|
3
|
+
AztecAddress,
|
4
|
+
ContractArtifact,
|
5
|
+
ContractClassWithId,
|
6
|
+
ContractInstanceWithAddress,
|
7
|
+
ExtendedNote,
|
8
|
+
TxExecutionRequest,
|
9
|
+
TxHash,
|
10
|
+
TxReceipt,
|
11
|
+
L2Block,
|
12
|
+
LogFilter,
|
13
|
+
Point,
|
14
|
+
SiblingPath,
|
15
|
+
PartialAddress,
|
16
|
+
CompleteAddress,
|
17
|
+
NodeInfo,
|
18
|
+
Tx,
|
19
|
+
Wallet,
|
20
|
+
} from '@aztec/aztec.js';
|
21
|
+
|
22
|
+
import type { IntentAction, IntentInnerHash } from '@aztec/aztec.js/utils';
|
23
|
+
import type { ExecutionRequestInit } from '@aztec/aztec.js/entrypoint';
|
24
|
+
import type { AbiDecoded } from '@aztec/foundation/abi';
|
25
|
+
import type {
|
26
|
+
IncomingNotesFilter,
|
27
|
+
EventMetadataDefinition,
|
28
|
+
PrivateExecutionResult,
|
29
|
+
TxProvingResult,
|
30
|
+
UniqueNote,
|
31
|
+
GetUnencryptedLogsResponse,
|
32
|
+
PXEInfo,
|
33
|
+
TxSimulationResult,
|
34
|
+
InBlock,
|
35
|
+
TxEffect,
|
36
|
+
} from '@aztec/circuit-types';
|
37
|
+
import type { GasFees, L1_TO_L2_MSG_TREE_HEIGHT } from '@aztec/circuits.js';
|
38
|
+
|
39
|
+
import { Fr } from '@aztec/aztec.js';
|
40
|
+
|
41
|
+
import type { JSONRPCTransport } from '@walletmesh/jsonrpc';
|
42
|
+
import { AztecProvider } from './provider.js';
|
43
|
+
import type { AztecChainId, AztecWalletMethodMap } from './types.js';
|
44
|
+
|
45
|
+
export class AztecRemoteWallet implements Wallet {
|
46
|
+
private _address: AztecAddress | undefined;
|
47
|
+
private _completeAddress: CompleteAddress | undefined;
|
48
|
+
private _chainId: Fr | undefined;
|
49
|
+
private _version: Fr | undefined;
|
50
|
+
private _scopes: AztecAddress[] | undefined;
|
51
|
+
|
52
|
+
constructor(
|
53
|
+
private _provider: AztecProvider,
|
54
|
+
private _providerChainId: AztecChainId,
|
55
|
+
) {}
|
56
|
+
|
57
|
+
async isL1ToL2MessageSynced(l1ToL2Message: Fr): Promise<boolean> {
|
58
|
+
return this._provider
|
59
|
+
.chain(this._providerChainId)
|
60
|
+
.call('aztec_isL1ToL2MessageSynced', { l1ToL2Message })
|
61
|
+
.execute() as Promise<AztecWalletMethodMap['aztec_isL1ToL2MessageSynced']['result']>;
|
62
|
+
}
|
63
|
+
|
64
|
+
getAddress(): AztecAddress {
|
65
|
+
if (!this._address) {
|
66
|
+
this._provider
|
67
|
+
.chain(this._providerChainId)
|
68
|
+
.call('aztec_getAddress')
|
69
|
+
.execute()
|
70
|
+
.then((result) => {
|
71
|
+
this._address = result as AztecWalletMethodMap['aztec_getAddress']['result'];
|
72
|
+
});
|
73
|
+
throw new Error('Address not yet available');
|
74
|
+
}
|
75
|
+
return this._address;
|
76
|
+
}
|
77
|
+
|
78
|
+
getCompleteAddress(): CompleteAddress {
|
79
|
+
if (!this._completeAddress) {
|
80
|
+
this._provider
|
81
|
+
.chain(this._providerChainId)
|
82
|
+
.call('aztec_getCompleteAddress')
|
83
|
+
.execute()
|
84
|
+
.then((result) => {
|
85
|
+
this._completeAddress = result as AztecWalletMethodMap['aztec_getCompleteAddress']['result'];
|
86
|
+
});
|
87
|
+
throw new Error('Complete address not yet available');
|
88
|
+
}
|
89
|
+
return this._completeAddress;
|
90
|
+
}
|
91
|
+
|
92
|
+
getChainId(): Fr {
|
93
|
+
if (!this._chainId) {
|
94
|
+
this._provider
|
95
|
+
.chain(this._providerChainId)
|
96
|
+
.call('aztec_getChainId')
|
97
|
+
.execute()
|
98
|
+
.then((result) => {
|
99
|
+
const chainId = result as AztecWalletMethodMap['aztec_getChainId']['result'];
|
100
|
+
this._chainId = Fr.fromString(chainId.toString(10));
|
101
|
+
});
|
102
|
+
throw new Error('Chain ID not yet available');
|
103
|
+
}
|
104
|
+
return this._chainId;
|
105
|
+
}
|
106
|
+
|
107
|
+
getVersion(): Fr {
|
108
|
+
if (!this._version) {
|
109
|
+
this._provider
|
110
|
+
.chain(this._providerChainId)
|
111
|
+
.call('aztec_getVersion')
|
112
|
+
.execute()
|
113
|
+
.then((result) => {
|
114
|
+
const version = result as AztecWalletMethodMap['aztec_getVersion']['result'];
|
115
|
+
this._version = Fr.fromString(version.toString(10));
|
116
|
+
});
|
117
|
+
throw new Error('Version not yet available');
|
118
|
+
}
|
119
|
+
return this._version;
|
120
|
+
}
|
121
|
+
|
122
|
+
async createTxExecutionRequest(exec: ExecutionRequestInit): Promise<TxExecutionRequest> {
|
123
|
+
return this._provider
|
124
|
+
.chain(this._providerChainId)
|
125
|
+
.call('aztec_createTxExecutionRequest', { exec })
|
126
|
+
.execute() as Promise<AztecWalletMethodMap['aztec_createTxExecutionRequest']['result']>;
|
127
|
+
}
|
128
|
+
|
129
|
+
async createAuthWit(intent: Fr | Buffer | IntentAction | IntentInnerHash): Promise<AuthWitness> {
|
130
|
+
return this._provider
|
131
|
+
.chain(this._providerChainId)
|
132
|
+
.call('aztec_createAuthWit', { intent })
|
133
|
+
.execute() as Promise<AztecWalletMethodMap['aztec_createAuthWit']['result']>;
|
134
|
+
}
|
135
|
+
|
136
|
+
setScopes(scopes: AztecAddress[]): void {
|
137
|
+
// TODO: would be nice to return a promise here
|
138
|
+
this._scopes = scopes;
|
139
|
+
this._provider
|
140
|
+
.chain(this._providerChainId)
|
141
|
+
.call('aztec_setScopes', { scopes })
|
142
|
+
.execute()
|
143
|
+
.then((result) => {
|
144
|
+
const success = result as AztecWalletMethodMap['aztec_setScopes']['result'];
|
145
|
+
console.debug(`setScopes(${scopes}) result: ${success}`);
|
146
|
+
});
|
147
|
+
}
|
148
|
+
|
149
|
+
getScopes(): AztecAddress[] {
|
150
|
+
// TODO: would be nice to return a promise here
|
151
|
+
if (!this._scopes) {
|
152
|
+
this._provider
|
153
|
+
.chain(this._providerChainId)
|
154
|
+
.call('aztec_getScopes')
|
155
|
+
.execute()
|
156
|
+
.then((result) => {
|
157
|
+
this._scopes = result as AztecWalletMethodMap['aztec_getScopes']['result'];
|
158
|
+
});
|
159
|
+
throw new Error('Scopes not yet available');
|
160
|
+
}
|
161
|
+
return this._scopes;
|
162
|
+
}
|
163
|
+
|
164
|
+
async getScopesAsync(): Promise<AztecAddress[]> {
|
165
|
+
const scopes = (await this._provider
|
166
|
+
.chain(this._providerChainId)
|
167
|
+
.call('aztec_getScopes')
|
168
|
+
.execute()) as AztecWalletMethodMap['aztec_getScopes']['result'];
|
169
|
+
this._scopes = scopes;
|
170
|
+
return scopes;
|
171
|
+
}
|
172
|
+
|
173
|
+
async getContractInstance(address: AztecAddress): Promise<ContractInstanceWithAddress | undefined> {
|
174
|
+
return this._provider
|
175
|
+
.chain(this._providerChainId)
|
176
|
+
.call('aztec_getContractInstance', { address })
|
177
|
+
.execute() as Promise<AztecWalletMethodMap['aztec_getContractInstance']['result']>;
|
178
|
+
}
|
179
|
+
|
180
|
+
async getContractClass(id: Fr): Promise<ContractClassWithId | undefined> {
|
181
|
+
return this._provider
|
182
|
+
.chain(this._providerChainId)
|
183
|
+
.call('aztec_getContractClass', { id })
|
184
|
+
.execute() as Promise<AztecWalletMethodMap['aztec_getContractClass']['result']>;
|
185
|
+
}
|
186
|
+
|
187
|
+
async getContractArtifact(id: Fr): Promise<ContractArtifact | undefined> {
|
188
|
+
return this._provider
|
189
|
+
.chain(this._providerChainId)
|
190
|
+
.call('aztec_getContractArtifact', { id })
|
191
|
+
.execute() as Promise<AztecWalletMethodMap['aztec_getContractArtifact']['result']>;
|
192
|
+
}
|
193
|
+
|
194
|
+
async addCapsule(capsule: Fr[]): Promise<void> {
|
195
|
+
const result = (await this._provider
|
196
|
+
.chain(this._providerChainId)
|
197
|
+
.call('aztec_addCapsule', { capsule })
|
198
|
+
.execute()) as AztecWalletMethodMap['aztec_addCapsule']['result'];
|
199
|
+
if (!result) throw new Error('Failed to add capsule');
|
200
|
+
}
|
201
|
+
|
202
|
+
async registerAccount(secretKey: Fr, partialAddress: PartialAddress): Promise<CompleteAddress> {
|
203
|
+
return this._provider
|
204
|
+
.chain(this._providerChainId)
|
205
|
+
.call('aztec_registerAccount', { secretKey, partialAddress })
|
206
|
+
.execute() as Promise<AztecWalletMethodMap['aztec_registerAccount']['result']>;
|
207
|
+
}
|
208
|
+
|
209
|
+
async getRegisteredAccounts(): Promise<CompleteAddress[]> {
|
210
|
+
return this._provider
|
211
|
+
.chain(this._providerChainId)
|
212
|
+
.call('aztec_getRegisteredAccounts')
|
213
|
+
.execute() as Promise<AztecWalletMethodMap['aztec_getRegisteredAccounts']['result']>;
|
214
|
+
}
|
215
|
+
|
216
|
+
async registerSender(address: AztecAddress): Promise<AztecAddress> {
|
217
|
+
return this._provider
|
218
|
+
.chain(this._providerChainId)
|
219
|
+
.call('aztec_registerSender', { sender: address })
|
220
|
+
.execute() as Promise<AztecWalletMethodMap['aztec_registerSender']['result']>;
|
221
|
+
}
|
222
|
+
|
223
|
+
async getSenders(): Promise<AztecAddress[]> {
|
224
|
+
return this._provider.chain(this._providerChainId).call('aztec_getSenders').execute() as Promise<
|
225
|
+
AztecWalletMethodMap['aztec_getSenders']['result']
|
226
|
+
>;
|
227
|
+
}
|
228
|
+
|
229
|
+
async removeSender(address: AztecAddress): Promise<void> {
|
230
|
+
const result = (await this._provider
|
231
|
+
.chain(this._providerChainId)
|
232
|
+
.call('aztec_removeSender', { sender: address })
|
233
|
+
.execute()) as AztecWalletMethodMap['aztec_removeSender']['result'];
|
234
|
+
if (!result) throw new Error('Failed to remove sender');
|
235
|
+
}
|
236
|
+
|
237
|
+
async registerContract(contract: {
|
238
|
+
instance: ContractInstanceWithAddress;
|
239
|
+
artifact?: ContractArtifact;
|
240
|
+
}): Promise<void> {
|
241
|
+
const result = (await this._provider
|
242
|
+
.chain(this._providerChainId)
|
243
|
+
.call('aztec_registerContract', { instance: contract.instance, artifact: contract.artifact })
|
244
|
+
.execute()) as AztecWalletMethodMap['aztec_registerContract']['result'];
|
245
|
+
if (!result) throw new Error('Failed to register contract');
|
246
|
+
}
|
247
|
+
|
248
|
+
async registerContractClass(artifact: ContractArtifact): Promise<void> {
|
249
|
+
const result = (await this._provider
|
250
|
+
.chain(this._providerChainId)
|
251
|
+
.call('aztec_registerContractClass', { artifact })
|
252
|
+
.execute()) as AztecWalletMethodMap['aztec_registerContractClass']['result'];
|
253
|
+
if (!result) throw new Error('Failed to register contract class');
|
254
|
+
}
|
255
|
+
|
256
|
+
async getContracts(): Promise<AztecAddress[]> {
|
257
|
+
return this._provider.chain(this._providerChainId).call('aztec_getContracts').execute() as Promise<
|
258
|
+
AztecWalletMethodMap['aztec_getContracts']['result']
|
259
|
+
>;
|
260
|
+
}
|
261
|
+
|
262
|
+
async proveTx(
|
263
|
+
txRequest: TxExecutionRequest,
|
264
|
+
privateExecutionResult: PrivateExecutionResult,
|
265
|
+
): Promise<TxProvingResult> {
|
266
|
+
return this._provider
|
267
|
+
.chain(this._providerChainId)
|
268
|
+
.call('aztec_proveTx', { txRequest, privateExecutionResult })
|
269
|
+
.execute() as Promise<AztecWalletMethodMap['aztec_proveTx']['result']>;
|
270
|
+
}
|
271
|
+
|
272
|
+
async simulateTx(
|
273
|
+
txRequest: TxExecutionRequest,
|
274
|
+
simulatePublic: boolean,
|
275
|
+
msgSender?: AztecAddress,
|
276
|
+
skipTxValidation?: boolean,
|
277
|
+
enforceFeePayment?: boolean,
|
278
|
+
profile?: boolean,
|
279
|
+
): Promise<TxSimulationResult> {
|
280
|
+
const scopes = await this.getScopesAsync();
|
281
|
+
return this._provider
|
282
|
+
.chain(this._providerChainId)
|
283
|
+
.call('aztec_simulateTx', {
|
284
|
+
txRequest,
|
285
|
+
simulatePublic,
|
286
|
+
msgSender,
|
287
|
+
skipTxValidation,
|
288
|
+
enforceFeePayment,
|
289
|
+
profile,
|
290
|
+
})
|
291
|
+
.execute() as Promise<AztecWalletMethodMap['aztec_simulateTx']['result']>;
|
292
|
+
}
|
293
|
+
|
294
|
+
async sendTx(tx: Tx): Promise<TxHash> {
|
295
|
+
return this._provider.chain(this._providerChainId).call('aztec_sendTx', { tx }).execute() as Promise<
|
296
|
+
AztecWalletMethodMap['aztec_sendTx']['result']
|
297
|
+
>;
|
298
|
+
}
|
299
|
+
|
300
|
+
async getTxEffect(txHash: TxHash): Promise<InBlock<TxEffect>> {
|
301
|
+
return this._provider
|
302
|
+
.chain(this._providerChainId)
|
303
|
+
.call('aztec_getTxEffect', { txHash })
|
304
|
+
.execute() as Promise<AztecWalletMethodMap['aztec_getTxEffect']['result']>;
|
305
|
+
}
|
306
|
+
|
307
|
+
async getTxReceipt(txHash: TxHash): Promise<TxReceipt> {
|
308
|
+
return this._provider
|
309
|
+
.chain(this._providerChainId)
|
310
|
+
.call('aztec_getTxReceipt', { txHash })
|
311
|
+
.execute() as Promise<AztecWalletMethodMap['aztec_getTxReceipt']['result']>;
|
312
|
+
}
|
313
|
+
|
314
|
+
async getIncomingNotes(filter: IncomingNotesFilter): Promise<UniqueNote[]> {
|
315
|
+
return this._provider
|
316
|
+
.chain(this._providerChainId)
|
317
|
+
.call('aztec_getIncomingNotes', { filter })
|
318
|
+
.execute() as Promise<AztecWalletMethodMap['aztec_getIncomingNotes']['result']>;
|
319
|
+
}
|
320
|
+
|
321
|
+
async getPublicStorageAt(contract: AztecAddress, storageSlot: Fr): Promise<Fr> {
|
322
|
+
return this._provider
|
323
|
+
.chain(this._providerChainId)
|
324
|
+
.call('aztec_getPublicStorageAt', { contract, storageSlot })
|
325
|
+
.execute() as Promise<AztecWalletMethodMap['aztec_getPublicStorageAt']['result']>;
|
326
|
+
}
|
327
|
+
|
328
|
+
async addNote(note: ExtendedNote): Promise<void> {
|
329
|
+
const result = (await this._provider
|
330
|
+
.chain(this._providerChainId)
|
331
|
+
.call('aztec_addNote', { note })
|
332
|
+
.execute()) as AztecWalletMethodMap['aztec_addNote']['result'];
|
333
|
+
if (!result) throw new Error('Failed to add note');
|
334
|
+
}
|
335
|
+
|
336
|
+
async addNullifiedNote(note: ExtendedNote): Promise<void> {
|
337
|
+
const result = (await this._provider
|
338
|
+
.chain(this._providerChainId)
|
339
|
+
.call('aztec_addNullifiedNote', { note })
|
340
|
+
.execute()) as AztecWalletMethodMap['aztec_addNullifiedNote']['result'];
|
341
|
+
if (!result) throw new Error('Failed to add nullified note');
|
342
|
+
}
|
343
|
+
|
344
|
+
async getBlock(number: number): Promise<L2Block | undefined> {
|
345
|
+
return this._provider
|
346
|
+
.chain(this._providerChainId)
|
347
|
+
.call('aztec_getBlock', { number })
|
348
|
+
.execute() as Promise<AztecWalletMethodMap['aztec_getBlock']['result']>;
|
349
|
+
}
|
350
|
+
|
351
|
+
async getCurrentBaseFees(): Promise<GasFees> {
|
352
|
+
return this._provider.chain(this._providerChainId).call('aztec_getCurrentBaseFees').execute() as Promise<
|
353
|
+
AztecWalletMethodMap['aztec_getCurrentBaseFees']['result']
|
354
|
+
>;
|
355
|
+
}
|
356
|
+
|
357
|
+
async simulateUnconstrained(
|
358
|
+
functionName: string,
|
359
|
+
args: unknown[],
|
360
|
+
to: AztecAddress,
|
361
|
+
from?: AztecAddress,
|
362
|
+
): Promise<AbiDecoded> {
|
363
|
+
return this._provider
|
364
|
+
.chain(this._providerChainId)
|
365
|
+
.call('aztec_simulateUnconstrained', { functionName, args, to, from })
|
366
|
+
.execute() as Promise<AztecWalletMethodMap['aztec_simulateUnconstrained']['result']>;
|
367
|
+
}
|
368
|
+
|
369
|
+
async getUnencryptedLogs(filter: LogFilter): Promise<GetUnencryptedLogsResponse> {
|
370
|
+
return this._provider
|
371
|
+
.chain(this._providerChainId)
|
372
|
+
.call('aztec_getUnencryptedLogs', { filter })
|
373
|
+
.execute() as Promise<AztecWalletMethodMap['aztec_getUnencryptedLogs']['result']>;
|
374
|
+
}
|
375
|
+
|
376
|
+
async getContractClassLogs(filter: LogFilter): Promise<GetUnencryptedLogsResponse> {
|
377
|
+
return this._provider
|
378
|
+
.chain(this._providerChainId)
|
379
|
+
.call('aztec_getContractClassLogs', { filter })
|
380
|
+
.execute() as Promise<AztecWalletMethodMap['aztec_getContractClassLogs']['result']>;
|
381
|
+
}
|
382
|
+
|
383
|
+
async getBlockNumber(): Promise<number> {
|
384
|
+
return this._provider.chain(this._providerChainId).call('aztec_getBlockNumber').execute() as Promise<
|
385
|
+
AztecWalletMethodMap['aztec_getBlockNumber']['result']
|
386
|
+
>;
|
387
|
+
}
|
388
|
+
|
389
|
+
async getProvenBlockNumber(): Promise<number> {
|
390
|
+
return this._provider
|
391
|
+
.chain(this._providerChainId)
|
392
|
+
.call('aztec_getProvenBlockNumber')
|
393
|
+
.execute() as Promise<AztecWalletMethodMap['aztec_getProvenBlockNumber']['result']>;
|
394
|
+
}
|
395
|
+
|
396
|
+
async getNodeInfo(): Promise<NodeInfo> {
|
397
|
+
return this._provider.chain(this._providerChainId).call('aztec_getNodeInfo').execute() as Promise<
|
398
|
+
AztecWalletMethodMap['aztec_getNodeInfo']['result']
|
399
|
+
>;
|
400
|
+
}
|
401
|
+
|
402
|
+
async addAuthWitness(authWitness: AuthWitness): Promise<void> {
|
403
|
+
const result = (await this._provider
|
404
|
+
.chain(this._providerChainId)
|
405
|
+
.call('aztec_addAuthWitness', { authWitness })
|
406
|
+
.execute()) as AztecWalletMethodMap['aztec_addAuthWitness']['result'];
|
407
|
+
if (!result) throw new Error('Failed to add auth witness');
|
408
|
+
}
|
409
|
+
|
410
|
+
async getAuthWitness(messageHash: Fr): Promise<Fr[]> {
|
411
|
+
return (await this._provider
|
412
|
+
.chain(this._providerChainId)
|
413
|
+
.call('aztec_getAuthWitness', { messageHash })
|
414
|
+
.execute()) as Promise<AztecWalletMethodMap['aztec_getAuthWitness']['result']>;
|
415
|
+
}
|
416
|
+
|
417
|
+
async isContractClassPubliclyRegistered(id: Fr): Promise<boolean> {
|
418
|
+
return this._provider
|
419
|
+
.chain(this._providerChainId)
|
420
|
+
.call('aztec_isContractClassPubliclyRegistered', { id })
|
421
|
+
.execute() as Promise<AztecWalletMethodMap['aztec_isContractClassPubliclyRegistered']['result']>;
|
422
|
+
}
|
423
|
+
|
424
|
+
async isContractPubliclyDeployed(address: AztecAddress): Promise<boolean> {
|
425
|
+
return this._provider
|
426
|
+
.chain(this._providerChainId)
|
427
|
+
.call('aztec_isContractPubliclyDeployed', { address })
|
428
|
+
.execute() as Promise<AztecWalletMethodMap['aztec_isContractPubliclyDeployed']['result']>;
|
429
|
+
}
|
430
|
+
|
431
|
+
async isContractInitialized(address: AztecAddress): Promise<boolean> {
|
432
|
+
return this._provider
|
433
|
+
.chain(this._providerChainId)
|
434
|
+
.call('aztec_isContractInitialized', { address })
|
435
|
+
.execute() as Promise<AztecWalletMethodMap['aztec_isContractInitialized']['result']>;
|
436
|
+
}
|
437
|
+
|
438
|
+
async getPXEInfo(): Promise<PXEInfo> {
|
439
|
+
return this._provider.chain(this._providerChainId).call('aztec_getPXEInfo').execute() as Promise<
|
440
|
+
AztecWalletMethodMap['aztec_getPXEInfo']['result']
|
441
|
+
>;
|
442
|
+
}
|
443
|
+
|
444
|
+
getEncryptedEvents<T>(
|
445
|
+
event: EventMetadataDefinition,
|
446
|
+
from: number,
|
447
|
+
limit: number,
|
448
|
+
vpks: Point[] = [],
|
449
|
+
): Promise<T[]> {
|
450
|
+
const completeAddress = this.getCompleteAddress();
|
451
|
+
return this._provider
|
452
|
+
.chain(this._providerChainId)
|
453
|
+
.call('aztec_getEncryptedEvents', {
|
454
|
+
event,
|
455
|
+
from,
|
456
|
+
limit,
|
457
|
+
vpks: vpks.length ? vpks : [completeAddress.publicKeys.masterIncomingViewingPublicKey],
|
458
|
+
})
|
459
|
+
.execute() as Promise<T[]>;
|
460
|
+
}
|
461
|
+
|
462
|
+
getUnencryptedEvents<T>(event: EventMetadataDefinition, from: number, limit: number): Promise<T[]> {
|
463
|
+
return this._provider
|
464
|
+
.chain(this._providerChainId)
|
465
|
+
.call('aztec_getUnencryptedEvents', { event, from, limit })
|
466
|
+
.execute() as Promise<T[]>;
|
467
|
+
}
|
468
|
+
|
469
|
+
async getL1ToL2MembershipWitness(
|
470
|
+
contractAddress: AztecAddress,
|
471
|
+
messageHash: Fr,
|
472
|
+
secret: Fr,
|
473
|
+
): Promise<[bigint, SiblingPath<typeof L1_TO_L2_MSG_TREE_HEIGHT>]> {
|
474
|
+
return this._provider
|
475
|
+
.chain(this._providerChainId)
|
476
|
+
.call('aztec_getL1ToL2MembershipWitness', { contractAddress, messageHash, secret })
|
477
|
+
.execute() as Promise<AztecWalletMethodMap['aztec_getL1ToL2MembershipWitness']['result']>;
|
478
|
+
}
|
479
|
+
}
|
480
|
+
|
481
|
+
export function createAztecRPCWallet(transport: JSONRPCTransport, chainId: AztecChainId): AztecRemoteWallet {
|
482
|
+
const provider = new AztecProvider(transport);
|
483
|
+
return new AztecRemoteWallet(provider, chainId);
|
484
|
+
}
|