@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,73 @@
|
|
1
|
+
import type { AuthWitness, AztecAddress, ContractArtifact, ContractClassWithId, ContractInstanceWithAddress, ExtendedNote, TxExecutionRequest, TxHash, TxReceipt, L2Block, LogFilter, Point, SiblingPath, PartialAddress, CompleteAddress, NodeInfo, Tx, Wallet } from '@aztec/aztec.js';
|
2
|
+
import type { IntentAction, IntentInnerHash } from '@aztec/aztec.js/utils';
|
3
|
+
import type { ExecutionRequestInit } from '@aztec/aztec.js/entrypoint';
|
4
|
+
import type { AbiDecoded } from '@aztec/foundation/abi';
|
5
|
+
import type { IncomingNotesFilter, EventMetadataDefinition, PrivateExecutionResult, TxProvingResult, UniqueNote, GetUnencryptedLogsResponse, PXEInfo, TxSimulationResult, InBlock, TxEffect } from '@aztec/circuit-types';
|
6
|
+
import type { GasFees, L1_TO_L2_MSG_TREE_HEIGHT } from '@aztec/circuits.js';
|
7
|
+
import { Fr } from '@aztec/aztec.js';
|
8
|
+
import type { JSONRPCTransport } from '@walletmesh/jsonrpc';
|
9
|
+
import { AztecProvider } from './provider.js';
|
10
|
+
import type { AztecChainId } from './types.js';
|
11
|
+
export declare class AztecRemoteWallet implements Wallet {
|
12
|
+
private _provider;
|
13
|
+
private _providerChainId;
|
14
|
+
private _address;
|
15
|
+
private _completeAddress;
|
16
|
+
private _chainId;
|
17
|
+
private _version;
|
18
|
+
private _scopes;
|
19
|
+
constructor(_provider: AztecProvider, _providerChainId: AztecChainId);
|
20
|
+
isL1ToL2MessageSynced(l1ToL2Message: Fr): Promise<boolean>;
|
21
|
+
getAddress(): AztecAddress;
|
22
|
+
getCompleteAddress(): CompleteAddress;
|
23
|
+
getChainId(): Fr;
|
24
|
+
getVersion(): Fr;
|
25
|
+
createTxExecutionRequest(exec: ExecutionRequestInit): Promise<TxExecutionRequest>;
|
26
|
+
createAuthWit(intent: Fr | Buffer | IntentAction | IntentInnerHash): Promise<AuthWitness>;
|
27
|
+
setScopes(scopes: AztecAddress[]): void;
|
28
|
+
getScopes(): AztecAddress[];
|
29
|
+
getScopesAsync(): Promise<AztecAddress[]>;
|
30
|
+
getContractInstance(address: AztecAddress): Promise<ContractInstanceWithAddress | undefined>;
|
31
|
+
getContractClass(id: Fr): Promise<ContractClassWithId | undefined>;
|
32
|
+
getContractArtifact(id: Fr): Promise<ContractArtifact | undefined>;
|
33
|
+
addCapsule(capsule: Fr[]): Promise<void>;
|
34
|
+
registerAccount(secretKey: Fr, partialAddress: PartialAddress): Promise<CompleteAddress>;
|
35
|
+
getRegisteredAccounts(): Promise<CompleteAddress[]>;
|
36
|
+
registerSender(address: AztecAddress): Promise<AztecAddress>;
|
37
|
+
getSenders(): Promise<AztecAddress[]>;
|
38
|
+
removeSender(address: AztecAddress): Promise<void>;
|
39
|
+
registerContract(contract: {
|
40
|
+
instance: ContractInstanceWithAddress;
|
41
|
+
artifact?: ContractArtifact;
|
42
|
+
}): Promise<void>;
|
43
|
+
registerContractClass(artifact: ContractArtifact): Promise<void>;
|
44
|
+
getContracts(): Promise<AztecAddress[]>;
|
45
|
+
proveTx(txRequest: TxExecutionRequest, privateExecutionResult: PrivateExecutionResult): Promise<TxProvingResult>;
|
46
|
+
simulateTx(txRequest: TxExecutionRequest, simulatePublic: boolean, msgSender?: AztecAddress, skipTxValidation?: boolean, enforceFeePayment?: boolean, profile?: boolean): Promise<TxSimulationResult>;
|
47
|
+
sendTx(tx: Tx): Promise<TxHash>;
|
48
|
+
getTxEffect(txHash: TxHash): Promise<InBlock<TxEffect>>;
|
49
|
+
getTxReceipt(txHash: TxHash): Promise<TxReceipt>;
|
50
|
+
getIncomingNotes(filter: IncomingNotesFilter): Promise<UniqueNote[]>;
|
51
|
+
getPublicStorageAt(contract: AztecAddress, storageSlot: Fr): Promise<Fr>;
|
52
|
+
addNote(note: ExtendedNote): Promise<void>;
|
53
|
+
addNullifiedNote(note: ExtendedNote): Promise<void>;
|
54
|
+
getBlock(number: number): Promise<L2Block | undefined>;
|
55
|
+
getCurrentBaseFees(): Promise<GasFees>;
|
56
|
+
simulateUnconstrained(functionName: string, args: unknown[], to: AztecAddress, from?: AztecAddress): Promise<AbiDecoded>;
|
57
|
+
getUnencryptedLogs(filter: LogFilter): Promise<GetUnencryptedLogsResponse>;
|
58
|
+
getContractClassLogs(filter: LogFilter): Promise<GetUnencryptedLogsResponse>;
|
59
|
+
getBlockNumber(): Promise<number>;
|
60
|
+
getProvenBlockNumber(): Promise<number>;
|
61
|
+
getNodeInfo(): Promise<NodeInfo>;
|
62
|
+
addAuthWitness(authWitness: AuthWitness): Promise<void>;
|
63
|
+
getAuthWitness(messageHash: Fr): Promise<Fr[]>;
|
64
|
+
isContractClassPubliclyRegistered(id: Fr): Promise<boolean>;
|
65
|
+
isContractPubliclyDeployed(address: AztecAddress): Promise<boolean>;
|
66
|
+
isContractInitialized(address: AztecAddress): Promise<boolean>;
|
67
|
+
getPXEInfo(): Promise<PXEInfo>;
|
68
|
+
getEncryptedEvents<T>(event: EventMetadataDefinition, from: number, limit: number, vpks?: Point[]): Promise<T[]>;
|
69
|
+
getUnencryptedEvents<T>(event: EventMetadataDefinition, from: number, limit: number): Promise<T[]>;
|
70
|
+
getL1ToL2MembershipWitness(contractAddress: AztecAddress, messageHash: Fr, secret: Fr): Promise<[bigint, SiblingPath<typeof L1_TO_L2_MSG_TREE_HEIGHT>]>;
|
71
|
+
}
|
72
|
+
export declare function createAztecRPCWallet(transport: JSONRPCTransport, chainId: AztecChainId): AztecRemoteWallet;
|
73
|
+
//# sourceMappingURL=aztecRemoteWallet.d.ts.map
|
@@ -0,0 +1 @@
|
|
1
|
+
{"version":3,"file":"aztecRemoteWallet.d.ts","sourceRoot":"","sources":["../src/aztecRemoteWallet.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,WAAW,EACX,YAAY,EACZ,gBAAgB,EAChB,mBAAmB,EACnB,2BAA2B,EAC3B,YAAY,EACZ,kBAAkB,EAClB,MAAM,EACN,SAAS,EACT,OAAO,EACP,SAAS,EACT,KAAK,EACL,WAAW,EACX,cAAc,EACd,eAAe,EACf,QAAQ,EACR,EAAE,EACF,MAAM,EACP,MAAM,iBAAiB,CAAC;AAEzB,OAAO,KAAK,EAAE,YAAY,EAAE,eAAe,EAAE,MAAM,uBAAuB,CAAC;AAC3E,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,4BAA4B,CAAC;AACvE,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,uBAAuB,CAAC;AACxD,OAAO,KAAK,EACV,mBAAmB,EACnB,uBAAuB,EACvB,sBAAsB,EACtB,eAAe,EACf,UAAU,EACV,0BAA0B,EAC1B,OAAO,EACP,kBAAkB,EAClB,OAAO,EACP,QAAQ,EACT,MAAM,sBAAsB,CAAC;AAC9B,OAAO,KAAK,EAAE,OAAO,EAAE,wBAAwB,EAAE,MAAM,oBAAoB,CAAC;AAE5E,OAAO,EAAE,EAAE,EAAE,MAAM,iBAAiB,CAAC;AAErC,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,qBAAqB,CAAC;AAC5D,OAAO,EAAE,aAAa,EAAE,MAAM,eAAe,CAAC;AAC9C,OAAO,KAAK,EAAE,YAAY,EAAwB,MAAM,YAAY,CAAC;AAErE,qBAAa,iBAAkB,YAAW,MAAM;IAQ5C,OAAO,CAAC,SAAS;IACjB,OAAO,CAAC,gBAAgB;IAR1B,OAAO,CAAC,QAAQ,CAA2B;IAC3C,OAAO,CAAC,gBAAgB,CAA8B;IACtD,OAAO,CAAC,QAAQ,CAAiB;IACjC,OAAO,CAAC,QAAQ,CAAiB;IACjC,OAAO,CAAC,OAAO,CAA6B;gBAGlC,SAAS,EAAE,aAAa,EACxB,gBAAgB,EAAE,YAAY;IAGlC,qBAAqB,CAAC,aAAa,EAAE,EAAE,GAAG,OAAO,CAAC,OAAO,CAAC;IAOhE,UAAU,IAAI,YAAY;IAc1B,kBAAkB,IAAI,eAAe;IAcrC,UAAU,IAAI,EAAE;IAehB,UAAU,IAAI,EAAE;IAeV,wBAAwB,CAAC,IAAI,EAAE,oBAAoB,GAAG,OAAO,CAAC,kBAAkB,CAAC;IAOjF,aAAa,CAAC,MAAM,EAAE,EAAE,GAAG,MAAM,GAAG,YAAY,GAAG,eAAe,GAAG,OAAO,CAAC,WAAW,CAAC;IAO/F,SAAS,CAAC,MAAM,EAAE,YAAY,EAAE,GAAG,IAAI;IAavC,SAAS,IAAI,YAAY,EAAE;IAerB,cAAc,IAAI,OAAO,CAAC,YAAY,EAAE,CAAC;IASzC,mBAAmB,CAAC,OAAO,EAAE,YAAY,GAAG,OAAO,CAAC,2BAA2B,GAAG,SAAS,CAAC;IAO5F,gBAAgB,CAAC,EAAE,EAAE,EAAE,GAAG,OAAO,CAAC,mBAAmB,GAAG,SAAS,CAAC;IAOlE,mBAAmB,CAAC,EAAE,EAAE,EAAE,GAAG,OAAO,CAAC,gBAAgB,GAAG,SAAS,CAAC;IAOlE,UAAU,CAAC,OAAO,EAAE,EAAE,EAAE,GAAG,OAAO,CAAC,IAAI,CAAC;IAQxC,eAAe,CAAC,SAAS,EAAE,EAAE,EAAE,cAAc,EAAE,cAAc,GAAG,OAAO,CAAC,eAAe,CAAC;IAOxF,qBAAqB,IAAI,OAAO,CAAC,eAAe,EAAE,CAAC;IAOnD,cAAc,CAAC,OAAO,EAAE,YAAY,GAAG,OAAO,CAAC,YAAY,CAAC;IAO5D,UAAU,IAAI,OAAO,CAAC,YAAY,EAAE,CAAC;IAMrC,YAAY,CAAC,OAAO,EAAE,YAAY,GAAG,OAAO,CAAC,IAAI,CAAC;IAQlD,gBAAgB,CAAC,QAAQ,EAAE;QAC/B,QAAQ,EAAE,2BAA2B,CAAC;QACtC,QAAQ,CAAC,EAAE,gBAAgB,CAAC;KAC7B,GAAG,OAAO,CAAC,IAAI,CAAC;IAQX,qBAAqB,CAAC,QAAQ,EAAE,gBAAgB,GAAG,OAAO,CAAC,IAAI,CAAC;IAQhE,YAAY,IAAI,OAAO,CAAC,YAAY,EAAE,CAAC;IAMvC,OAAO,CACX,SAAS,EAAE,kBAAkB,EAC7B,sBAAsB,EAAE,sBAAsB,GAC7C,OAAO,CAAC,eAAe,CAAC;IAOrB,UAAU,CACd,SAAS,EAAE,kBAAkB,EAC7B,cAAc,EAAE,OAAO,EACvB,SAAS,CAAC,EAAE,YAAY,EACxB,gBAAgB,CAAC,EAAE,OAAO,EAC1B,iBAAiB,CAAC,EAAE,OAAO,EAC3B,OAAO,CAAC,EAAE,OAAO,GAChB,OAAO,CAAC,kBAAkB,CAAC;IAexB,MAAM,CAAC,EAAE,EAAE,EAAE,GAAG,OAAO,CAAC,MAAM,CAAC;IAM/B,WAAW,CAAC,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC;IAOvD,YAAY,CAAC,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,SAAS,CAAC;IAOhD,gBAAgB,CAAC,MAAM,EAAE,mBAAmB,GAAG,OAAO,CAAC,UAAU,EAAE,CAAC;IAOpE,kBAAkB,CAAC,QAAQ,EAAE,YAAY,EAAE,WAAW,EAAE,EAAE,GAAG,OAAO,CAAC,EAAE,CAAC;IAOxE,OAAO,CAAC,IAAI,EAAE,YAAY,GAAG,OAAO,CAAC,IAAI,CAAC;IAQ1C,gBAAgB,CAAC,IAAI,EAAE,YAAY,GAAG,OAAO,CAAC,IAAI,CAAC;IAQnD,QAAQ,CAAC,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,GAAG,SAAS,CAAC;IAOtD,kBAAkB,IAAI,OAAO,CAAC,OAAO,CAAC;IAMtC,qBAAqB,CACzB,YAAY,EAAE,MAAM,EACpB,IAAI,EAAE,OAAO,EAAE,EACf,EAAE,EAAE,YAAY,EAChB,IAAI,CAAC,EAAE,YAAY,GAClB,OAAO,CAAC,UAAU,CAAC;IAOhB,kBAAkB,CAAC,MAAM,EAAE,SAAS,GAAG,OAAO,CAAC,0BAA0B,CAAC;IAO1E,oBAAoB,CAAC,MAAM,EAAE,SAAS,GAAG,OAAO,CAAC,0BAA0B,CAAC;IAO5E,cAAc,IAAI,OAAO,CAAC,MAAM,CAAC;IAMjC,oBAAoB,IAAI,OAAO,CAAC,MAAM,CAAC;IAOvC,WAAW,IAAI,OAAO,CAAC,QAAQ,CAAC;IAMhC,cAAc,CAAC,WAAW,EAAE,WAAW,GAAG,OAAO,CAAC,IAAI,CAAC;IAQvD,cAAc,CAAC,WAAW,EAAE,EAAE,GAAG,OAAO,CAAC,EAAE,EAAE,CAAC;IAO9C,iCAAiC,CAAC,EAAE,EAAE,EAAE,GAAG,OAAO,CAAC,OAAO,CAAC;IAO3D,0BAA0B,CAAC,OAAO,EAAE,YAAY,GAAG,OAAO,CAAC,OAAO,CAAC;IAOnE,qBAAqB,CAAC,OAAO,EAAE,YAAY,GAAG,OAAO,CAAC,OAAO,CAAC;IAO9D,UAAU,IAAI,OAAO,CAAC,OAAO,CAAC;IAMpC,kBAAkB,CAAC,CAAC,EAClB,KAAK,EAAE,uBAAuB,EAC9B,IAAI,EAAE,MAAM,EACZ,KAAK,EAAE,MAAM,EACb,IAAI,GAAE,KAAK,EAAO,GACjB,OAAO,CAAC,CAAC,EAAE,CAAC;IAaf,oBAAoB,CAAC,CAAC,EAAE,KAAK,EAAE,uBAAuB,EAAE,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,GAAG,OAAO,CAAC,CAAC,EAAE,CAAC;IAO5F,0BAA0B,CAC9B,eAAe,EAAE,YAAY,EAC7B,WAAW,EAAE,EAAE,EACf,MAAM,EAAE,EAAE,GACT,OAAO,CAAC,CAAC,MAAM,EAAE,WAAW,CAAC,OAAO,wBAAwB,CAAC,CAAC,CAAC;CAMnE;AAED,wBAAgB,oBAAoB,CAAC,SAAS,EAAE,gBAAgB,EAAE,OAAO,EAAE,YAAY,GAAG,iBAAiB,CAG1G"}
|
@@ -0,0 +1,354 @@
|
|
1
|
+
import { Fr } from '@aztec/aztec.js';
|
2
|
+
import { AztecProvider } from './provider.js';
|
3
|
+
export class AztecRemoteWallet {
|
4
|
+
constructor(_provider, _providerChainId) {
|
5
|
+
this._provider = _provider;
|
6
|
+
this._providerChainId = _providerChainId;
|
7
|
+
}
|
8
|
+
async isL1ToL2MessageSynced(l1ToL2Message) {
|
9
|
+
return this._provider
|
10
|
+
.chain(this._providerChainId)
|
11
|
+
.call('aztec_isL1ToL2MessageSynced', { l1ToL2Message })
|
12
|
+
.execute();
|
13
|
+
}
|
14
|
+
getAddress() {
|
15
|
+
if (!this._address) {
|
16
|
+
this._provider
|
17
|
+
.chain(this._providerChainId)
|
18
|
+
.call('aztec_getAddress')
|
19
|
+
.execute()
|
20
|
+
.then((result) => {
|
21
|
+
this._address = result;
|
22
|
+
});
|
23
|
+
throw new Error('Address not yet available');
|
24
|
+
}
|
25
|
+
return this._address;
|
26
|
+
}
|
27
|
+
getCompleteAddress() {
|
28
|
+
if (!this._completeAddress) {
|
29
|
+
this._provider
|
30
|
+
.chain(this._providerChainId)
|
31
|
+
.call('aztec_getCompleteAddress')
|
32
|
+
.execute()
|
33
|
+
.then((result) => {
|
34
|
+
this._completeAddress = result;
|
35
|
+
});
|
36
|
+
throw new Error('Complete address not yet available');
|
37
|
+
}
|
38
|
+
return this._completeAddress;
|
39
|
+
}
|
40
|
+
getChainId() {
|
41
|
+
if (!this._chainId) {
|
42
|
+
this._provider
|
43
|
+
.chain(this._providerChainId)
|
44
|
+
.call('aztec_getChainId')
|
45
|
+
.execute()
|
46
|
+
.then((result) => {
|
47
|
+
const chainId = result;
|
48
|
+
this._chainId = Fr.fromString(chainId.toString(10));
|
49
|
+
});
|
50
|
+
throw new Error('Chain ID not yet available');
|
51
|
+
}
|
52
|
+
return this._chainId;
|
53
|
+
}
|
54
|
+
getVersion() {
|
55
|
+
if (!this._version) {
|
56
|
+
this._provider
|
57
|
+
.chain(this._providerChainId)
|
58
|
+
.call('aztec_getVersion')
|
59
|
+
.execute()
|
60
|
+
.then((result) => {
|
61
|
+
const version = result;
|
62
|
+
this._version = Fr.fromString(version.toString(10));
|
63
|
+
});
|
64
|
+
throw new Error('Version not yet available');
|
65
|
+
}
|
66
|
+
return this._version;
|
67
|
+
}
|
68
|
+
async createTxExecutionRequest(exec) {
|
69
|
+
return this._provider
|
70
|
+
.chain(this._providerChainId)
|
71
|
+
.call('aztec_createTxExecutionRequest', { exec })
|
72
|
+
.execute();
|
73
|
+
}
|
74
|
+
async createAuthWit(intent) {
|
75
|
+
return this._provider
|
76
|
+
.chain(this._providerChainId)
|
77
|
+
.call('aztec_createAuthWit', { intent })
|
78
|
+
.execute();
|
79
|
+
}
|
80
|
+
setScopes(scopes) {
|
81
|
+
// TODO: would be nice to return a promise here
|
82
|
+
this._scopes = scopes;
|
83
|
+
this._provider
|
84
|
+
.chain(this._providerChainId)
|
85
|
+
.call('aztec_setScopes', { scopes })
|
86
|
+
.execute()
|
87
|
+
.then((result) => {
|
88
|
+
const success = result;
|
89
|
+
console.debug(`setScopes(${scopes}) result: ${success}`);
|
90
|
+
});
|
91
|
+
}
|
92
|
+
getScopes() {
|
93
|
+
// TODO: would be nice to return a promise here
|
94
|
+
if (!this._scopes) {
|
95
|
+
this._provider
|
96
|
+
.chain(this._providerChainId)
|
97
|
+
.call('aztec_getScopes')
|
98
|
+
.execute()
|
99
|
+
.then((result) => {
|
100
|
+
this._scopes = result;
|
101
|
+
});
|
102
|
+
throw new Error('Scopes not yet available');
|
103
|
+
}
|
104
|
+
return this._scopes;
|
105
|
+
}
|
106
|
+
async getScopesAsync() {
|
107
|
+
const scopes = (await this._provider
|
108
|
+
.chain(this._providerChainId)
|
109
|
+
.call('aztec_getScopes')
|
110
|
+
.execute());
|
111
|
+
this._scopes = scopes;
|
112
|
+
return scopes;
|
113
|
+
}
|
114
|
+
async getContractInstance(address) {
|
115
|
+
return this._provider
|
116
|
+
.chain(this._providerChainId)
|
117
|
+
.call('aztec_getContractInstance', { address })
|
118
|
+
.execute();
|
119
|
+
}
|
120
|
+
async getContractClass(id) {
|
121
|
+
return this._provider
|
122
|
+
.chain(this._providerChainId)
|
123
|
+
.call('aztec_getContractClass', { id })
|
124
|
+
.execute();
|
125
|
+
}
|
126
|
+
async getContractArtifact(id) {
|
127
|
+
return this._provider
|
128
|
+
.chain(this._providerChainId)
|
129
|
+
.call('aztec_getContractArtifact', { id })
|
130
|
+
.execute();
|
131
|
+
}
|
132
|
+
async addCapsule(capsule) {
|
133
|
+
const result = (await this._provider
|
134
|
+
.chain(this._providerChainId)
|
135
|
+
.call('aztec_addCapsule', { capsule })
|
136
|
+
.execute());
|
137
|
+
if (!result)
|
138
|
+
throw new Error('Failed to add capsule');
|
139
|
+
}
|
140
|
+
async registerAccount(secretKey, partialAddress) {
|
141
|
+
return this._provider
|
142
|
+
.chain(this._providerChainId)
|
143
|
+
.call('aztec_registerAccount', { secretKey, partialAddress })
|
144
|
+
.execute();
|
145
|
+
}
|
146
|
+
async getRegisteredAccounts() {
|
147
|
+
return this._provider
|
148
|
+
.chain(this._providerChainId)
|
149
|
+
.call('aztec_getRegisteredAccounts')
|
150
|
+
.execute();
|
151
|
+
}
|
152
|
+
async registerSender(address) {
|
153
|
+
return this._provider
|
154
|
+
.chain(this._providerChainId)
|
155
|
+
.call('aztec_registerSender', { sender: address })
|
156
|
+
.execute();
|
157
|
+
}
|
158
|
+
async getSenders() {
|
159
|
+
return this._provider.chain(this._providerChainId).call('aztec_getSenders').execute();
|
160
|
+
}
|
161
|
+
async removeSender(address) {
|
162
|
+
const result = (await this._provider
|
163
|
+
.chain(this._providerChainId)
|
164
|
+
.call('aztec_removeSender', { sender: address })
|
165
|
+
.execute());
|
166
|
+
if (!result)
|
167
|
+
throw new Error('Failed to remove sender');
|
168
|
+
}
|
169
|
+
async registerContract(contract) {
|
170
|
+
const result = (await this._provider
|
171
|
+
.chain(this._providerChainId)
|
172
|
+
.call('aztec_registerContract', { instance: contract.instance, artifact: contract.artifact })
|
173
|
+
.execute());
|
174
|
+
if (!result)
|
175
|
+
throw new Error('Failed to register contract');
|
176
|
+
}
|
177
|
+
async registerContractClass(artifact) {
|
178
|
+
const result = (await this._provider
|
179
|
+
.chain(this._providerChainId)
|
180
|
+
.call('aztec_registerContractClass', { artifact })
|
181
|
+
.execute());
|
182
|
+
if (!result)
|
183
|
+
throw new Error('Failed to register contract class');
|
184
|
+
}
|
185
|
+
async getContracts() {
|
186
|
+
return this._provider.chain(this._providerChainId).call('aztec_getContracts').execute();
|
187
|
+
}
|
188
|
+
async proveTx(txRequest, privateExecutionResult) {
|
189
|
+
return this._provider
|
190
|
+
.chain(this._providerChainId)
|
191
|
+
.call('aztec_proveTx', { txRequest, privateExecutionResult })
|
192
|
+
.execute();
|
193
|
+
}
|
194
|
+
async simulateTx(txRequest, simulatePublic, msgSender, skipTxValidation, enforceFeePayment, profile) {
|
195
|
+
const scopes = await this.getScopesAsync();
|
196
|
+
return this._provider
|
197
|
+
.chain(this._providerChainId)
|
198
|
+
.call('aztec_simulateTx', {
|
199
|
+
txRequest,
|
200
|
+
simulatePublic,
|
201
|
+
msgSender,
|
202
|
+
skipTxValidation,
|
203
|
+
enforceFeePayment,
|
204
|
+
profile,
|
205
|
+
})
|
206
|
+
.execute();
|
207
|
+
}
|
208
|
+
async sendTx(tx) {
|
209
|
+
return this._provider.chain(this._providerChainId).call('aztec_sendTx', { tx }).execute();
|
210
|
+
}
|
211
|
+
async getTxEffect(txHash) {
|
212
|
+
return this._provider
|
213
|
+
.chain(this._providerChainId)
|
214
|
+
.call('aztec_getTxEffect', { txHash })
|
215
|
+
.execute();
|
216
|
+
}
|
217
|
+
async getTxReceipt(txHash) {
|
218
|
+
return this._provider
|
219
|
+
.chain(this._providerChainId)
|
220
|
+
.call('aztec_getTxReceipt', { txHash })
|
221
|
+
.execute();
|
222
|
+
}
|
223
|
+
async getIncomingNotes(filter) {
|
224
|
+
return this._provider
|
225
|
+
.chain(this._providerChainId)
|
226
|
+
.call('aztec_getIncomingNotes', { filter })
|
227
|
+
.execute();
|
228
|
+
}
|
229
|
+
async getPublicStorageAt(contract, storageSlot) {
|
230
|
+
return this._provider
|
231
|
+
.chain(this._providerChainId)
|
232
|
+
.call('aztec_getPublicStorageAt', { contract, storageSlot })
|
233
|
+
.execute();
|
234
|
+
}
|
235
|
+
async addNote(note) {
|
236
|
+
const result = (await this._provider
|
237
|
+
.chain(this._providerChainId)
|
238
|
+
.call('aztec_addNote', { note })
|
239
|
+
.execute());
|
240
|
+
if (!result)
|
241
|
+
throw new Error('Failed to add note');
|
242
|
+
}
|
243
|
+
async addNullifiedNote(note) {
|
244
|
+
const result = (await this._provider
|
245
|
+
.chain(this._providerChainId)
|
246
|
+
.call('aztec_addNullifiedNote', { note })
|
247
|
+
.execute());
|
248
|
+
if (!result)
|
249
|
+
throw new Error('Failed to add nullified note');
|
250
|
+
}
|
251
|
+
async getBlock(number) {
|
252
|
+
return this._provider
|
253
|
+
.chain(this._providerChainId)
|
254
|
+
.call('aztec_getBlock', { number })
|
255
|
+
.execute();
|
256
|
+
}
|
257
|
+
async getCurrentBaseFees() {
|
258
|
+
return this._provider.chain(this._providerChainId).call('aztec_getCurrentBaseFees').execute();
|
259
|
+
}
|
260
|
+
async simulateUnconstrained(functionName, args, to, from) {
|
261
|
+
return this._provider
|
262
|
+
.chain(this._providerChainId)
|
263
|
+
.call('aztec_simulateUnconstrained', { functionName, args, to, from })
|
264
|
+
.execute();
|
265
|
+
}
|
266
|
+
async getUnencryptedLogs(filter) {
|
267
|
+
return this._provider
|
268
|
+
.chain(this._providerChainId)
|
269
|
+
.call('aztec_getUnencryptedLogs', { filter })
|
270
|
+
.execute();
|
271
|
+
}
|
272
|
+
async getContractClassLogs(filter) {
|
273
|
+
return this._provider
|
274
|
+
.chain(this._providerChainId)
|
275
|
+
.call('aztec_getContractClassLogs', { filter })
|
276
|
+
.execute();
|
277
|
+
}
|
278
|
+
async getBlockNumber() {
|
279
|
+
return this._provider.chain(this._providerChainId).call('aztec_getBlockNumber').execute();
|
280
|
+
}
|
281
|
+
async getProvenBlockNumber() {
|
282
|
+
return this._provider
|
283
|
+
.chain(this._providerChainId)
|
284
|
+
.call('aztec_getProvenBlockNumber')
|
285
|
+
.execute();
|
286
|
+
}
|
287
|
+
async getNodeInfo() {
|
288
|
+
return this._provider.chain(this._providerChainId).call('aztec_getNodeInfo').execute();
|
289
|
+
}
|
290
|
+
async addAuthWitness(authWitness) {
|
291
|
+
const result = (await this._provider
|
292
|
+
.chain(this._providerChainId)
|
293
|
+
.call('aztec_addAuthWitness', { authWitness })
|
294
|
+
.execute());
|
295
|
+
if (!result)
|
296
|
+
throw new Error('Failed to add auth witness');
|
297
|
+
}
|
298
|
+
async getAuthWitness(messageHash) {
|
299
|
+
return (await this._provider
|
300
|
+
.chain(this._providerChainId)
|
301
|
+
.call('aztec_getAuthWitness', { messageHash })
|
302
|
+
.execute());
|
303
|
+
}
|
304
|
+
async isContractClassPubliclyRegistered(id) {
|
305
|
+
return this._provider
|
306
|
+
.chain(this._providerChainId)
|
307
|
+
.call('aztec_isContractClassPubliclyRegistered', { id })
|
308
|
+
.execute();
|
309
|
+
}
|
310
|
+
async isContractPubliclyDeployed(address) {
|
311
|
+
return this._provider
|
312
|
+
.chain(this._providerChainId)
|
313
|
+
.call('aztec_isContractPubliclyDeployed', { address })
|
314
|
+
.execute();
|
315
|
+
}
|
316
|
+
async isContractInitialized(address) {
|
317
|
+
return this._provider
|
318
|
+
.chain(this._providerChainId)
|
319
|
+
.call('aztec_isContractInitialized', { address })
|
320
|
+
.execute();
|
321
|
+
}
|
322
|
+
async getPXEInfo() {
|
323
|
+
return this._provider.chain(this._providerChainId).call('aztec_getPXEInfo').execute();
|
324
|
+
}
|
325
|
+
getEncryptedEvents(event, from, limit, vpks = []) {
|
326
|
+
const completeAddress = this.getCompleteAddress();
|
327
|
+
return this._provider
|
328
|
+
.chain(this._providerChainId)
|
329
|
+
.call('aztec_getEncryptedEvents', {
|
330
|
+
event,
|
331
|
+
from,
|
332
|
+
limit,
|
333
|
+
vpks: vpks.length ? vpks : [completeAddress.publicKeys.masterIncomingViewingPublicKey],
|
334
|
+
})
|
335
|
+
.execute();
|
336
|
+
}
|
337
|
+
getUnencryptedEvents(event, from, limit) {
|
338
|
+
return this._provider
|
339
|
+
.chain(this._providerChainId)
|
340
|
+
.call('aztec_getUnencryptedEvents', { event, from, limit })
|
341
|
+
.execute();
|
342
|
+
}
|
343
|
+
async getL1ToL2MembershipWitness(contractAddress, messageHash, secret) {
|
344
|
+
return this._provider
|
345
|
+
.chain(this._providerChainId)
|
346
|
+
.call('aztec_getL1ToL2MembershipWitness', { contractAddress, messageHash, secret })
|
347
|
+
.execute();
|
348
|
+
}
|
349
|
+
}
|
350
|
+
export function createAztecRPCWallet(transport, chainId) {
|
351
|
+
const provider = new AztecProvider(transport);
|
352
|
+
return new AztecRemoteWallet(provider, chainId);
|
353
|
+
}
|
354
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXp0ZWNSZW1vdGVXYWxsZXQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi9zcmMvYXp0ZWNSZW1vdGVXYWxsZXQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBc0NBLE9BQU8sRUFBRSxFQUFFLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUdyQyxPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBRzlDLE1BQU0sT0FBTyxpQkFBaUI7SUFPNUIsWUFDVSxTQUF3QixFQUN4QixnQkFBOEI7UUFEOUIsY0FBUyxHQUFULFNBQVMsQ0FBZTtRQUN4QixxQkFBZ0IsR0FBaEIsZ0JBQWdCLENBQWM7SUFDckMsQ0FBQztJQUVKLEtBQUssQ0FBQyxxQkFBcUIsQ0FBQyxhQUFpQjtRQUMzQyxPQUFPLElBQUksQ0FBQyxTQUFTO2FBQ2xCLEtBQUssQ0FBQyxJQUFJLENBQUMsZ0JBQWdCLENBQUM7YUFDNUIsSUFBSSxDQUFDLDZCQUE2QixFQUFFLEVBQUUsYUFBYSxFQUFFLENBQUM7YUFDdEQsT0FBTyxFQUE0RSxDQUFDO0lBQ3pGLENBQUM7SUFFRCxVQUFVO1FBQ1IsSUFBSSxDQUFDLElBQUksQ0FBQyxRQUFRLEVBQUUsQ0FBQztZQUNuQixJQUFJLENBQUMsU0FBUztpQkFDWCxLQUFLLENBQUMsSUFBSSxDQUFDLGdCQUFnQixDQUFDO2lCQUM1QixJQUFJLENBQUMsa0JBQWtCLENBQUM7aUJBQ3hCLE9BQU8sRUFBRTtpQkFDVCxJQUFJLENBQUMsQ0FBQyxNQUFNLEVBQUUsRUFBRTtnQkFDZixJQUFJLENBQUMsUUFBUSxHQUFHLE1BQTRELENBQUM7WUFDL0UsQ0FBQyxDQUFDLENBQUM7WUFDTCxNQUFNLElBQUksS0FBSyxDQUFDLDJCQUEyQixDQUFDLENBQUM7UUFDL0MsQ0FBQztRQUNELE9BQU8sSUFBSSxDQUFDLFFBQVEsQ0FBQztJQUN2QixDQUFDO0lBRUQsa0JBQWtCO1FBQ2hCLElBQUksQ0FBQyxJQUFJLENBQUMsZ0JBQWdCLEVBQUUs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
|
@@ -0,0 +1,56 @@
|
|
1
|
+
import { JSONRPCNode } from '@walletmesh/jsonrpc';
|
2
|
+
import type { AztecWalletMethodMap, TransactionParams, TransactionFunctionCall } from './types.js';
|
3
|
+
import type { ContractInstanceWithAddress, ContractArtifact } from '@aztec/aztec.js';
|
4
|
+
/**
|
5
|
+
* Provider for directly interacting with an Aztec chain wallet.
|
6
|
+
* This is a minimal implementation that supports core Aztec operations
|
7
|
+
* without the complexity of multi-chain routing.
|
8
|
+
*/
|
9
|
+
export declare class AztecChainProvider extends JSONRPCNode<AztecWalletMethodMap> {
|
10
|
+
protected makeRequest<M extends keyof AztecWalletMethodMap>(method: M, params?: AztecWalletMethodMap[M]['params']): Promise<AztecWalletMethodMap[M]['result']>;
|
11
|
+
connect(): Promise<boolean>;
|
12
|
+
/**
|
13
|
+
* Gets the account address from the wallet.
|
14
|
+
* @returns The account address as a string
|
15
|
+
* @throws {AztecWalletError} If response is invalid
|
16
|
+
*/
|
17
|
+
getAccount(): Promise<string>;
|
18
|
+
/**
|
19
|
+
* Sends a transaction to the chain.
|
20
|
+
* @param params - Transaction parameters including function calls
|
21
|
+
* @returns Transaction hash
|
22
|
+
* @throws {AztecWalletError} If transaction fails or response invalid
|
23
|
+
*/
|
24
|
+
sendTransaction(params: TransactionParams): Promise<string>;
|
25
|
+
/**
|
26
|
+
* Simulates a transaction without submitting it.
|
27
|
+
* @param params - Transaction parameters to simulate
|
28
|
+
* @returns Simulation result
|
29
|
+
* @throws {AztecWalletError} If simulation fails
|
30
|
+
*/
|
31
|
+
simulateTransaction(params: TransactionFunctionCall): Promise<unknown>;
|
32
|
+
/**
|
33
|
+
* Registers a contract instance with the wallet.
|
34
|
+
* @param params - Contract registration parameters
|
35
|
+
* @throws {AztecWalletError} If registration fails
|
36
|
+
*/
|
37
|
+
registerContract(params: {
|
38
|
+
instance: ContractInstanceWithAddress;
|
39
|
+
artifact?: ContractArtifact;
|
40
|
+
}): Promise<void>;
|
41
|
+
/**
|
42
|
+
* Registers a contract class with the wallet.
|
43
|
+
* @param params - Contract class registration parameters
|
44
|
+
* @throws {AztecWalletError} If registration fails
|
45
|
+
*/
|
46
|
+
registerContractClass(params: {
|
47
|
+
artifact: ContractArtifact;
|
48
|
+
}): Promise<void>;
|
49
|
+
/**
|
50
|
+
* Registers a sender with the wallet.
|
51
|
+
* @param params - Sender registration parameters
|
52
|
+
* @throws {AztecWalletError} If registration fails
|
53
|
+
*/
|
54
|
+
registerSender(params: AztecWalletMethodMap['aztec_registerSender']['params']): Promise<void>;
|
55
|
+
}
|
56
|
+
//# sourceMappingURL=chainProvider.d.ts.map
|
@@ -0,0 +1 @@
|
|
1
|
+
{"version":3,"file":"chainProvider.d.ts","sourceRoot":"","sources":["../src/chainProvider.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,MAAM,qBAAqB,CAAC;AAGlD,OAAO,KAAK,EAEV,oBAAoB,EACpB,iBAAiB,EACjB,uBAAuB,EACxB,MAAM,YAAY,CAAC;AACpB,OAAO,KAAK,EAAE,2BAA2B,EAAE,gBAAgB,EAAE,MAAM,iBAAiB,CAAC;AAErF;;;;GAIG;AACH,qBAAa,kBAAmB,SAAQ,WAAW,CAAC,oBAAoB,CAAC;cACvD,WAAW,CAAC,CAAC,SAAS,MAAM,oBAAoB,EAC9D,MAAM,EAAE,CAAC,EACT,MAAM,CAAC,EAAE,oBAAoB,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,GACzC,OAAO,CAAC,oBAAoB,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC;IAWhC,OAAO,IAAI,OAAO,CAAC,OAAO,CAAC;IASxC;;;;OAIG;IACU,UAAU,IAAI,OAAO,CAAC,MAAM,CAAC;IAQ1C;;;;;OAKG;IACU,eAAe,CAAC,MAAM,EAAE,iBAAiB,GAAG,OAAO,CAAC,MAAM,CAAC;IAQxE;;;;;OAKG;IACU,mBAAmB,CAAC,MAAM,EAAE,uBAAuB,GAAG,OAAO,CAAC,OAAO,CAAC;IAQnF;;;;OAIG;IACU,gBAAgB,CAAC,MAAM,EAAE;QACpC,QAAQ,EAAE,2BAA2B,CAAC;QACtC,QAAQ,CAAC,EAAE,gBAAgB,CAAC;KAC7B,GAAG,OAAO,CAAC,IAAI,CAAC;IAOjB;;;;OAIG;IACU,qBAAqB,CAAC,MAAM,EAAE;QACzC,QAAQ,EAAE,gBAAgB,CAAC;KAC5B,GAAG,OAAO,CAAC,IAAI,CAAC;IAOjB;;;;OAIG;IACU,cAAc,CAAC,MAAM,EAAE,oBAAoB,CAAC,sBAAsB,CAAC,CAAC,QAAQ,CAAC,GAAG,OAAO,CAAC,IAAI,CAAC;CAM3G"}
|
@@ -0,0 +1,98 @@
|
|
1
|
+
import { JSONRPCNode } from '@walletmesh/jsonrpc';
|
2
|
+
import { AztecWalletError, AztecWalletErrorType } from './errors.js';
|
3
|
+
/**
|
4
|
+
* Provider for directly interacting with an Aztec chain wallet.
|
5
|
+
* This is a minimal implementation that supports core Aztec operations
|
6
|
+
* without the complexity of multi-chain routing.
|
7
|
+
*/
|
8
|
+
export class AztecChainProvider extends JSONRPCNode {
|
9
|
+
async makeRequest(method, params) {
|
10
|
+
try {
|
11
|
+
return await this.callMethod(method, params);
|
12
|
+
}
|
13
|
+
catch (error) {
|
14
|
+
throw new AztecWalletError(AztecWalletErrorType.invalidResponse, error instanceof Error ? error.message : 'Invalid response received');
|
15
|
+
}
|
16
|
+
}
|
17
|
+
async connect() {
|
18
|
+
try {
|
19
|
+
await this.makeRequest('aztec_connect');
|
20
|
+
return true;
|
21
|
+
}
|
22
|
+
catch (error) {
|
23
|
+
return false;
|
24
|
+
}
|
25
|
+
}
|
26
|
+
/**
|
27
|
+
* Gets the account address from the wallet.
|
28
|
+
* @returns The account address as a string
|
29
|
+
* @throws {AztecWalletError} If response is invalid
|
30
|
+
*/
|
31
|
+
async getAccount() {
|
32
|
+
const result = await this.makeRequest('aztec_getAccount');
|
33
|
+
if (typeof result !== 'string' || !result) {
|
34
|
+
throw new AztecWalletError(AztecWalletErrorType.invalidResponse, 'Invalid account address returned');
|
35
|
+
}
|
36
|
+
return result;
|
37
|
+
}
|
38
|
+
/**
|
39
|
+
* Sends a transaction to the chain.
|
40
|
+
* @param params - Transaction parameters including function calls
|
41
|
+
* @returns Transaction hash
|
42
|
+
* @throws {AztecWalletError} If transaction fails or response invalid
|
43
|
+
*/
|
44
|
+
async sendTransaction(params) {
|
45
|
+
const result = await this.makeRequest('aztec_sendTransaction', params);
|
46
|
+
if (typeof result !== 'string' || !result) {
|
47
|
+
throw new AztecWalletError(AztecWalletErrorType.invalidResponse, 'Invalid transaction hash returned');
|
48
|
+
}
|
49
|
+
return result;
|
50
|
+
}
|
51
|
+
/**
|
52
|
+
* Simulates a transaction without submitting it.
|
53
|
+
* @param params - Transaction parameters to simulate
|
54
|
+
* @returns Simulation result
|
55
|
+
* @throws {AztecWalletError} If simulation fails
|
56
|
+
*/
|
57
|
+
async simulateTransaction(params) {
|
58
|
+
const result = await this.makeRequest('aztec_simulateTransaction', params);
|
59
|
+
if (result === undefined || result === null) {
|
60
|
+
throw new AztecWalletError(AztecWalletErrorType.invalidResponse, 'Invalid simulation result returned');
|
61
|
+
}
|
62
|
+
return result;
|
63
|
+
}
|
64
|
+
/**
|
65
|
+
* Registers a contract instance with the wallet.
|
66
|
+
* @param params - Contract registration parameters
|
67
|
+
* @throws {AztecWalletError} If registration fails
|
68
|
+
*/
|
69
|
+
async registerContract(params) {
|
70
|
+
const result = await this.makeRequest('aztec_registerContract', params);
|
71
|
+
if (result !== true) {
|
72
|
+
throw new AztecWalletError(AztecWalletErrorType.invalidResponse, 'Contract registration failed');
|
73
|
+
}
|
74
|
+
}
|
75
|
+
/**
|
76
|
+
* Registers a contract class with the wallet.
|
77
|
+
* @param params - Contract class registration parameters
|
78
|
+
* @throws {AztecWalletError} If registration fails
|
79
|
+
*/
|
80
|
+
async registerContractClass(params) {
|
81
|
+
const result = await this.makeRequest('aztec_registerContractClass', params);
|
82
|
+
if (result !== true) {
|
83
|
+
throw new AztecWalletError(AztecWalletErrorType.invalidResponse, 'Contract class registration failed');
|
84
|
+
}
|
85
|
+
}
|
86
|
+
/**
|
87
|
+
* Registers a sender with the wallet.
|
88
|
+
* @param params - Sender registration parameters
|
89
|
+
* @throws {AztecWalletError} If registration fails
|
90
|
+
*/
|
91
|
+
async registerSender(params) {
|
92
|
+
const result = await this.makeRequest('aztec_registerSender', params);
|
93
|
+
if (!result) {
|
94
|
+
throw new AztecWalletError(AztecWalletErrorType.invalidResponse, 'Sender registration failed');
|
95
|
+
}
|
96
|
+
}
|
97
|
+
}
|
98
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2hhaW5Qcm92aWRlci5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uL3NyYy9jaGFpblByb3ZpZGVyLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxXQUFXLEVBQUUsTUFBTSxxQkFBcUIsQ0FBQztBQUVsRCxPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsb0JBQW9CLEVBQUUsTUFBTSxhQUFhLENBQUM7QUFTckU7Ozs7R0FJRztBQUNILE1BQU0sT0FBTyxrQkFBbUIsU0FBUSxXQUFpQztJQUM3RCxLQUFLLENBQUMsV0FBVyxDQUN6QixNQUFTLEVBQ1QsTUFBMEM7UUFFMUMsSUFBSSxDQUFDO1lBQ0gsT0FBTyxNQUFNLElBQUksQ0FBQyxVQUFVLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDO1FBQy9DLENBQUM7UUFBQyxPQUFPLEtBQUssRUFBRSxDQUFDO1lBQ2YsTUFBTSxJQUFJLGdCQUFnQixDQUN4QixvQkFBb0IsQ0FBQyxlQUFlLEVBQ3BDLEtBQUssWUFBWSxLQUFLLENBQUMsQ0FBQyxDQUFDLEtBQUssQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDLDJCQUEyQixDQUNyRSxDQUFDO1FBQ0osQ0FBQztJQUNILENBQUM7SUFFTSxLQUFLLENBQUMsT0FBTztRQUNsQixJQUFJLENBQUM7WUFDSCxNQUFNLElBQUksQ0FBQyxXQUFXLENBQUMsZUFBZSxDQUFDLENBQUM7WUFDeEMsT0FBTyxJQUFJLENBQUM7UUFDZCxDQUFDO1FBQUMsT0FBTyxLQUFLLEVBQUUsQ0FBQztZQUNmLE9BQU8sS0FBSyxDQUFDO1FBQ2YsQ0FBQztJQUNILENBQUM7SUFFRDs7OztPQUlHO0lBQ0ksS0FBSyxDQUFDLFVBQVU7UUFDckIsTUFBTSxNQUFNLEdBQUcsTUFBTSxJQUFJLENBQUMsV0FBVyxDQUFDLGtCQUFrQixDQUFDLENBQUM7UUFDMUQsSUFBSSxPQUFPLE1BQU0sS0FBSyxRQUFRLElBQUksQ0FBQyxNQUFNLEVBQUUsQ0FBQztZQUMxQyxNQUFNLElBQUksZ0JBQWdCLENBQUMsb0JBQW9CLENBQUMsZUFBZSxFQUFFLGtDQUFrQyxDQUFDLENBQUM7UUFDdkcsQ0FBQztRQUNELE9BQU8sTUFBTSxDQUFDO0lBQ2hCLENBQUM7SUFFRDs7Ozs7T0FLRztJQUNJLEtBQUssQ0FBQyxlQUFlLENBQUMsTUFBeUI7UUFDcEQsTUFBTSxNQUFNLEdBQUcsTUFBTSxJQUFJLENBQUMsV0FBVyxDQUFDLHVCQUF1QixFQUFFLE1BQU0sQ0FBQyxDQUFDO1FBQ3ZFLElBQUksT0FBTyxNQUFNLEtBQUssUUFBUSxJQUFJLENBQUMsTUFBTSxFQUFFLENBQUM7WUFDMUMsTUFBTSxJQUFJLGdCQUFnQixDQUFDLG9CQUFvQixDQUFDLGVBQWUsRUFBRSxtQ0FBbUMsQ0FBQyxDQUFDO1FBQ3hHLENBQUM7UUFDRCxPQUFPLE1BQU0sQ0FBQztJQUNoQixDQUFDO0lBRUQ7Ozs7O09BS0c7SUFDSSxLQUFLLENBQUMsbUJBQW1CLENBQUMsTUFBK0I7UUFDOUQsTUFBTSxNQUFNLEdBQUcsTUFBTSxJQUFJLENBQUMsV0FBVyxDQUFDLDJCQUEyQixFQUFFLE1BQU0sQ0FBQyxDQUFDO1FBQzNFLElBQUksTUFBTSxLQUFLLFNBQVMsSUFBSSxNQUFNLEtBQUssSUFBSSxFQUFFLENBQUM7WUFDNUMsTUFBTSxJQUFJLGdCQUFnQixDQUFDLG9CQUFvQixDQUFDLGVBQWUsRUFBRSxvQ0FBb0MsQ0FBQyxDQUFDO1FBQ3pHLENBQUM7UUFDRCxPQUFPLE1BQU0sQ0FBQztJQUNoQixDQUFDO0lBRUQ7Ozs7T0FJRztJQUNJLEtBQUssQ0FBQyxnQkFBZ0IsQ0FBQyxNQUc3QjtRQUNDLE1BQU0sTUFBTSxHQUFHLE1BQU0sSUFBSSxDQUFDLFdBQVcsQ0FBQyx3QkFBd0IsRUFBRSxNQUFNLENBQUMsQ0FBQztRQUN4RSxJQUFJLE1BQU0sS0FBSyxJQUFJLEVBQUUsQ0FBQztZQUNwQixNQUFNLElBQUksZ0JBQWdCLENBQUMsb0JBQW9CLENBQUMsZUFBZSxFQUFFLDhCQUE4QixDQUFDLENBQUM7UUFDbkcsQ0FBQztJQUNILENBQUM7SUFFRDs7OztPQUlHO0lBQ0ksS0FBSyxDQUFDLHFCQUFxQixDQUFDLE1BRWxDO1FBQ0MsTUFBTSxNQUFNLEdBQUcsTUFBTSxJQUFJLENBQUMsV0FBVyxDQUFDLDZCQUE2QixFQUFFLE1BQU0sQ0FBQyxDQUFDO1FBQzdFLElBQUksTUFBTSxLQUFLLElBQUksRUFBRSxDQUFDO1lBQ3BCLE1BQU0sSUFBSSxnQkFBZ0IsQ0FBQyxvQkFBb0IsQ0FBQyxlQUFlLEVBQUUsb0NBQW9DLENBQUMsQ0FBQztRQUN6RyxDQUFDO0lBQ0gsQ0FBQztJQUVEOzs7O09BSUc7SUFDSSxLQUFLLENBQUMsY0FBYyxDQUFDLE1BQThEO1FBQ3hGLE1BQU0sTUFBTSxHQUFHLE1BQU0sSUFBSSxDQUFDLFdBQVcsQ0FBQyxzQkFBc0IsRUFBRSxNQUFNLENBQUMsQ0FBQztRQUN0RSxJQUFJLENBQUMsTUFBTSxFQUFFLENBQUM7WUFDWixNQUFNLElBQUksZ0JBQWdCLENBQUMsb0JBQW9CLENBQUMsZUFBZSxFQUFFLDRCQUE0QixDQUFDLENBQUM7UUFDakcsQ0FBQztJQUNILENBQUM7Q0FDRiJ9
|