@walletmesh/aztec-rpc-wallet 0.1.0
Sign up to get free protection for your applications and to get access to all the features.
- 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 @@
|
|
1
|
+
{"version":3,"file":"transaction-utils.d.ts","sourceRoot":"","sources":["../../src/serializers/transaction-utils.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,sBAAsB,EAAE,eAAe,EAAE,MAAM,sBAAsB,CAAC;AAC/E,OAAO,KAAK,EACV,uBAAuB,EACvB,6BAA6B,EAC7B,WAAW,EACX,sBAAsB,EACvB,MAAM,sBAAsB,CAAC;AAC9B,OAAO,KAAK,EACV,cAAc,EACd,0BAA0B,EAC1B,oCAAoC,EACrC,MAAM,oBAAoB,CAAC;AAG5B;;;GAGG;AACH,UAAU,oCAAoC;IAC5C,IAAI,EAAE,MAAM,CAAC;IACb,EAAE,EAAE,MAAM,CAAC;IACX,cAAc,EAAE,CAAC,MAAM,EAAE,MAAM,CAAC,EAAE,CAAC;IACnC,YAAY,EAAE,0BAA0B,CAAC;IACzC,oBAAoB,EAAE,CAAC,MAAM,EAAE,MAAM,CAAC,EAAE,CAAC;IACzC,QAAQ,EAAE,WAAW,EAAE,CAAC;IACxB,2BAA2B,EAAE,CAAC,MAAM,EAAE,MAAM,CAAC,EAAE,CAAC;IAChD,YAAY,EAAE,MAAM,EAAE,CAAC;IACvB,gBAAgB,EAAE,oCAAoC,EAAE,CAAC;IACzD,2BAA2B,EAAE,6BAA6B,EAAE,CAAC;IAC7D,0BAA0B,EAAE,sBAAsB,CAAC;IACnD,iBAAiB,EAAE,uBAAuB,EAAE,CAAC;CAC9C;AAED;;;GAGG;AACH,qBAAa,kCAAmC,SAAQ,sBAAsB;IAC5E;;;;OAIG;IACH,MAAM,CAAC,IAAI,CAAC,MAAM,EAAE,sBAAsB,GAAG,kCAAkC;IAiB/E;;;;OAIG;IACH,MAAM,IAAI,oCAAoC;IAqC9C;;;;OAIG;IACH,MAAM,CAAC,QAAQ,CAAC,IAAI,EAAE,MAAM,GAAG,oCAAoC,GAAG,kCAAkC;IAqBxG;;;;OAIG;IACH,MAAM,CAAC,KAAK,EAAE,sBAAsB,GAAG,OAAO;IAM9C,YAAY,IAAI,oCAAoC;CAGrD;AAED;;;GAGG;AACH,UAAU,6BAA6B;IACrC,sBAAsB,EAAE,UAAU,CAAC,kCAAkC,CAAC,QAAQ,CAAC,CAAC,CAAC;IACjF,YAAY,EAAE,oCAAoC,CAAC;IACnD,cAAc,EAAE,cAAc,CAAC;CAChC;AAED;;;GAGG;AACH,qBAAa,2BAA4B,SAAQ,eAAe;IAC9D;;;;OAIG;IACH,MAAM,CAAC,IAAI,CAAC,MAAM,EAAE,eAAe,GAAG,2BAA2B;IAQjE;;;OAGG;IACH,MAAM,IAAI,6BAA6B;IAQvC;;;;OAIG;IACH,MAAM,CAAC,QAAQ,CAAC,IAAI,EAAE,MAAM,GAAG,6BAA6B,GAAG,2BAA2B;IAU1F;;;;OAIG;IACH,MAAM,CAAC,KAAK,EAAE,eAAe,GAAG,OAAO;IAMvC,YAAY,IAAI,6BAA6B;CAG9C;AAED;;;;;GAKG;AACH,wBAAgB,8BAA8B,CAC5C,CAAC,EAAE,sBAAsB,EACzB,CAAC,EAAE,sBAAsB,GACxB,OAAO,CAET;AAED;;;;;GAKG;AACH,wBAAgB,uBAAuB,CAAC,CAAC,EAAE,eAAe,EAAE,CAAC,EAAE,eAAe,GAAG,OAAO,CAEvF"}
|
@@ -0,0 +1,130 @@
|
|
1
|
+
import { PrivateExecutionResult, TxProvingResult } from '@aztec/circuit-types';
|
2
|
+
import { Fr } from '@aztec/aztec.js';
|
3
|
+
/**
|
4
|
+
* Extends PrivateExecutionResult to add serialization capabilities.
|
5
|
+
* Provides methods to convert private execution results to/from JSON format for RPC transport.
|
6
|
+
*/
|
7
|
+
export class SerializablePrivateExecutionResult extends PrivateExecutionResult {
|
8
|
+
/**
|
9
|
+
* Creates a SerializablePrivateExecutionResult from a PrivateExecutionResult instance.
|
10
|
+
* @param result - The PrivateExecutionResult to convert
|
11
|
+
* @returns A new SerializablePrivateExecutionResult instance
|
12
|
+
*/
|
13
|
+
static from(result) {
|
14
|
+
return new SerializablePrivateExecutionResult(result.acir, result.vk, result.partialWitness, result.publicInputs, result.noteHashLeafIndexMap, result.newNotes, result.noteHashNullifierCounterMap, result.returnValues, result.nestedExecutions, result.enqueuedPublicFunctionCalls, result.publicTeardownFunctionCall, result.contractClassLogs);
|
15
|
+
}
|
16
|
+
/**
|
17
|
+
* Converts the execution result to a JSON-serializable format.
|
18
|
+
* Handles conversion of complex types like Buffers, Maps, and nested execution results.
|
19
|
+
* @returns The serialized execution result data
|
20
|
+
*/
|
21
|
+
toJSON() {
|
22
|
+
return {
|
23
|
+
acir: this.acir.toString('base64'),
|
24
|
+
vk: this.vk.toString('base64'),
|
25
|
+
partialWitness: Array.from(this.partialWitness.entries()),
|
26
|
+
publicInputs: this.publicInputs,
|
27
|
+
noteHashLeafIndexMap: Array.from(this.noteHashLeafIndexMap.entries()).map(([k, v]) => [
|
28
|
+
k.toString(),
|
29
|
+
v.toString(),
|
30
|
+
]),
|
31
|
+
newNotes: this.newNotes,
|
32
|
+
noteHashNullifierCounterMap: Array.from(this.noteHashNullifierCounterMap.entries()),
|
33
|
+
returnValues: this.returnValues.map((fr) => fr.toString()),
|
34
|
+
nestedExecutions: this.nestedExecutions.map((exec) => exec instanceof SerializablePrivateExecutionResult
|
35
|
+
? exec.toJSON()
|
36
|
+
: new SerializablePrivateExecutionResult(exec.acir, exec.vk, exec.partialWitness, exec.publicInputs, exec.noteHashLeafIndexMap, exec.newNotes, exec.noteHashNullifierCounterMap, exec.returnValues, exec.nestedExecutions, exec.enqueuedPublicFunctionCalls, exec.publicTeardownFunctionCall, exec.contractClassLogs).toJSON()),
|
37
|
+
enqueuedPublicFunctionCalls: this.enqueuedPublicFunctionCalls,
|
38
|
+
publicTeardownFunctionCall: this.publicTeardownFunctionCall,
|
39
|
+
contractClassLogs: this.contractClassLogs,
|
40
|
+
};
|
41
|
+
}
|
42
|
+
/**
|
43
|
+
* Creates a SerializablePrivateExecutionResult from JSON data.
|
44
|
+
* @param json - JSON string or pre-parsed data object
|
45
|
+
* @returns A new SerializablePrivateExecutionResult instance
|
46
|
+
*/
|
47
|
+
static fromJSON(json) {
|
48
|
+
const data = typeof json === 'string' ? JSON.parse(json) : json;
|
49
|
+
return new SerializablePrivateExecutionResult(Buffer.from(data.acir, 'base64'), Buffer.from(data.vk, 'base64'), new Map(data.partialWitness), data.publicInputs, new Map(data.noteHashLeafIndexMap.map(([k, v]) => [BigInt(k), BigInt(v)])), data.newNotes, new Map(data.noteHashNullifierCounterMap), data.returnValues.map((str) => Fr.fromString(str)), data.nestedExecutions.map((exec) => SerializablePrivateExecutionResult.fromJSON(exec)), data.enqueuedPublicFunctionCalls, data.publicTeardownFunctionCall, data.contractClassLogs);
|
50
|
+
}
|
51
|
+
/**
|
52
|
+
* Compares this execution result with another for equality.
|
53
|
+
* @param other - The execution result to compare against
|
54
|
+
* @returns True if the execution results are equivalent
|
55
|
+
*/
|
56
|
+
equals(other) {
|
57
|
+
const thisJson = JSON.stringify(SerializablePrivateExecutionResult.from(this).toJSON());
|
58
|
+
const otherJson = JSON.stringify(SerializablePrivateExecutionResult.from(other).toJSON());
|
59
|
+
return thisJson === otherJson;
|
60
|
+
}
|
61
|
+
toComparable() {
|
62
|
+
return JSON.parse(JSON.stringify(this.toJSON()));
|
63
|
+
}
|
64
|
+
}
|
65
|
+
/**
|
66
|
+
* Extends TxProvingResult to add serialization capabilities.
|
67
|
+
* Provides methods to convert transaction proving results to/from JSON format for RPC transport.
|
68
|
+
*/
|
69
|
+
export class SerializableTxProvingResult extends TxProvingResult {
|
70
|
+
/**
|
71
|
+
* Creates a SerializableTxProvingResult from a TxProvingResult instance.
|
72
|
+
* @param result - The TxProvingResult to convert
|
73
|
+
* @returns A new SerializableTxProvingResult instance
|
74
|
+
*/
|
75
|
+
static from(result) {
|
76
|
+
return new SerializableTxProvingResult(result.privateExecutionResult, result.publicInputs, result.clientIvcProof);
|
77
|
+
}
|
78
|
+
/**
|
79
|
+
* Converts the proving result to a JSON-serializable format.
|
80
|
+
* @returns The serialized proving result data
|
81
|
+
*/
|
82
|
+
toJSON() {
|
83
|
+
return {
|
84
|
+
privateExecutionResult: SerializablePrivateExecutionResult.from(this.privateExecutionResult).toJSON(),
|
85
|
+
publicInputs: this.publicInputs,
|
86
|
+
clientIvcProof: this.clientIvcProof,
|
87
|
+
};
|
88
|
+
}
|
89
|
+
/**
|
90
|
+
* Creates a SerializableTxProvingResult from JSON data.
|
91
|
+
* @param json - JSON string or pre-parsed data object
|
92
|
+
* @returns A new SerializableTxProvingResult instance
|
93
|
+
*/
|
94
|
+
static fromJSON(json) {
|
95
|
+
const data = typeof json === 'string' ? JSON.parse(json) : json;
|
96
|
+
return new SerializableTxProvingResult(SerializablePrivateExecutionResult.fromJSON(data.privateExecutionResult), data.publicInputs, data.clientIvcProof);
|
97
|
+
}
|
98
|
+
/**
|
99
|
+
* Compares this proving result with another for equality.
|
100
|
+
* @param other - The proving result to compare against
|
101
|
+
* @returns True if the proving results are equivalent
|
102
|
+
*/
|
103
|
+
equals(other) {
|
104
|
+
const thisJson = JSON.stringify(SerializableTxProvingResult.from(this).toJSON());
|
105
|
+
const otherJson = JSON.stringify(SerializableTxProvingResult.from(other).toJSON());
|
106
|
+
return thisJson === otherJson;
|
107
|
+
}
|
108
|
+
toComparable() {
|
109
|
+
return JSON.parse(JSON.stringify(this.toJSON()));
|
110
|
+
}
|
111
|
+
}
|
112
|
+
/**
|
113
|
+
* Utility function to compare two PrivateExecutionResult instances for equality.
|
114
|
+
* @param a - First execution result
|
115
|
+
* @param b - Second execution result
|
116
|
+
* @returns True if the execution results are equivalent
|
117
|
+
*/
|
118
|
+
export function comparePrivateExecutionResults(a, b) {
|
119
|
+
return SerializablePrivateExecutionResult.from(a).equals(b);
|
120
|
+
}
|
121
|
+
/**
|
122
|
+
* Utility function to compare two TxProvingResult instances for equality.
|
123
|
+
* @param a - First proving result
|
124
|
+
* @param b - Second proving result
|
125
|
+
* @returns True if the proving results are equivalent
|
126
|
+
*/
|
127
|
+
export function compareTxProvingResults(a, b) {
|
128
|
+
return SerializableTxProvingResult.from(a).equals(b);
|
129
|
+
}
|
130
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHJhbnNhY3Rpb24tdXRpbHMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvc2VyaWFsaXplcnMvdHJhbnNhY3Rpb24tdXRpbHMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLHNCQUFzQixFQUFFLGVBQWUsRUFBRSxNQUFNLHNCQUFzQixDQUFDO0FBWS9FLE9BQU8sRUFBRSxFQUFFLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQXFCckM7OztHQUdHO0FBQ0gsTUFBTSxPQUFPLGtDQUFtQyxTQUFRLHNCQUFzQjtJQUM1RTs7OztPQUlHO0lBQ0gsTUFBTSxDQUFDLElBQUksQ0FBQyxNQUE4QjtRQUN4QyxPQUFPLElBQUksa0NBQWtDLENBQzNDLE1BQU0sQ0FBQyxJQUFJLEVBQ1gsTUFBTSxDQUFDLEVBQUUsRUFDVCxNQUFNLENBQUMsY0FBYyxFQUNyQixNQUFNLENBQUMsWUFBWSxFQUNuQixNQUFNLENBQUMsb0JBQW9CLEVBQzNCLE1BQU0sQ0FBQyxRQUFRLEVBQ2YsTUFBTSxDQUFDLDJCQUEyQixFQUNsQyxNQUFNLENBQUMsWUFBWSxFQUNuQixNQUFNLENBQUMsZ0JBQWdCLEVBQ3ZCLE1BQU0sQ0FBQywyQkFBMkIsRUFDbEMsTUFBTSxDQUFDLDBCQUEwQixFQUNqQyxNQUFNLENBQUMsaUJBQWlCLENBQ3pCLENBQUM7SUFDSixDQUFDO0lBRUQ7Ozs7T0FJRztJQUNILE1BQU07UUFDSixPQUFPO1lBQ0wsSUFBSSxFQUFFLElBQUksQ0FBQyxJQUFJLENBQUMsUUFBUSxDQUFDLFFBQVEsQ0FBQztZQUNsQyxFQUFFLEVBQUUsSUFBSSxDQUFDLEVBQUUsQ0FBQyxRQUFRLENBQUMsUUFBUSxDQUFDO1lBQzlCLGNBQWMsRUFBRSxLQUFLLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxjQUFjLENBQUMsT0FBTyxFQUFFLENBQUM7WUFDekQsWUFBWSxFQUFFLElBQUksQ0FBQyxZQUFZO1lBQy9CLG9CQUFvQixFQUFFLEtB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
|
@@ -0,0 +1,103 @@
|
|
1
|
+
import type { AztecWalletMethodMap } from '../types.js';
|
2
|
+
import type { JSONRPCSerializedData, JSONRPCSerializer } from './types.js';
|
3
|
+
import { TxSimulationResult, type TxProvingResult } from '@aztec/circuit-types';
|
4
|
+
import { TxExecutionRequest, TxReceipt } from '@aztec/aztec.js';
|
5
|
+
/**
|
6
|
+
* Serializer for the aztec_createTxExecutionRequest RPC method.
|
7
|
+
* Handles serialization of transaction execution requests between JSON-RPC format and native Aztec types.
|
8
|
+
*/
|
9
|
+
export declare class AztecCreateTxExecutionRequestSerializer implements JSONRPCSerializer<AztecWalletMethodMap['aztec_createTxExecutionRequest']['params'], AztecWalletMethodMap['aztec_createTxExecutionRequest']['result']> {
|
10
|
+
params: {
|
11
|
+
serialize: (method: string, value: AztecWalletMethodMap["aztec_createTxExecutionRequest"]["params"]) => JSONRPCSerializedData;
|
12
|
+
deserialize: (method: string, data: JSONRPCSerializedData) => AztecWalletMethodMap["aztec_createTxExecutionRequest"]["params"];
|
13
|
+
};
|
14
|
+
result: {
|
15
|
+
serialize: (method: string, value: TxExecutionRequest) => JSONRPCSerializedData;
|
16
|
+
deserialize: (method: string, data: JSONRPCSerializedData) => TxExecutionRequest;
|
17
|
+
};
|
18
|
+
}
|
19
|
+
/**
|
20
|
+
* Serializer for the aztec_proveTx RPC method.
|
21
|
+
* Handles serialization of transaction proving requests and results between JSON-RPC format and native Aztec types.
|
22
|
+
* Includes handling of private execution results and proving outcomes.
|
23
|
+
*/
|
24
|
+
export declare class AztecProveTxSerializer implements JSONRPCSerializer<AztecWalletMethodMap['aztec_proveTx']['params'], AztecWalletMethodMap['aztec_proveTx']['result']> {
|
25
|
+
params: {
|
26
|
+
serialize: (method: string, value: AztecWalletMethodMap["aztec_proveTx"]["params"]) => JSONRPCSerializedData;
|
27
|
+
deserialize: (method: string, data: JSONRPCSerializedData) => AztecWalletMethodMap["aztec_proveTx"]["params"];
|
28
|
+
};
|
29
|
+
result: {
|
30
|
+
serialize: (method: string, value: TxProvingResult) => JSONRPCSerializedData;
|
31
|
+
deserialize: (method: string, data: JSONRPCSerializedData) => TxProvingResult;
|
32
|
+
};
|
33
|
+
}
|
34
|
+
/**
|
35
|
+
* Serializer for the aztec_sendTx RPC method.
|
36
|
+
* Handles serialization of transaction sending requests and transaction hash results between JSON-RPC format and native Aztec types.
|
37
|
+
*/
|
38
|
+
export declare class AztecSendTxSerializer implements JSONRPCSerializer<AztecWalletMethodMap['aztec_sendTx']['params'], AztecWalletMethodMap['aztec_sendTx']['result']> {
|
39
|
+
params: {
|
40
|
+
serialize: (method: string, value: AztecWalletMethodMap["aztec_sendTx"]["params"]) => JSONRPCSerializedData;
|
41
|
+
deserialize: (method: string, data: JSONRPCSerializedData) => AztecWalletMethodMap["aztec_sendTx"]["params"];
|
42
|
+
};
|
43
|
+
result: {
|
44
|
+
serialize: (method: string, value: AztecWalletMethodMap["aztec_sendTx"]["result"]) => JSONRPCSerializedData;
|
45
|
+
deserialize: (method: string, data: JSONRPCSerializedData) => AztecWalletMethodMap["aztec_sendTx"]["result"];
|
46
|
+
};
|
47
|
+
}
|
48
|
+
/**
|
49
|
+
* Serializer for the aztec_getTxEffect RPC method.
|
50
|
+
* Handles serialization of transaction effect queries and results between JSON-RPC format and native Aztec types.
|
51
|
+
* Transaction effects represent the outcome and state changes caused by a transaction.
|
52
|
+
*/
|
53
|
+
export declare class AztecGetTxEffectSerializer implements JSONRPCSerializer<AztecWalletMethodMap['aztec_getTxEffect']['params'], AztecWalletMethodMap['aztec_getTxEffect']['result']> {
|
54
|
+
params: {
|
55
|
+
serialize: (method: string, value: AztecWalletMethodMap["aztec_getTxEffect"]["params"]) => JSONRPCSerializedData;
|
56
|
+
deserialize: (method: string, data: JSONRPCSerializedData) => AztecWalletMethodMap["aztec_getTxEffect"]["params"];
|
57
|
+
};
|
58
|
+
result: {
|
59
|
+
serialize: (method: string, value: AztecWalletMethodMap["aztec_getTxEffect"]["result"]) => JSONRPCSerializedData;
|
60
|
+
deserialize: (method: string, data: JSONRPCSerializedData) => AztecWalletMethodMap["aztec_getTxEffect"]["result"];
|
61
|
+
};
|
62
|
+
}
|
63
|
+
/**
|
64
|
+
* Serializer for the aztec_getTxReceipt RPC method.
|
65
|
+
* Handles serialization of transaction receipt queries and results between JSON-RPC format and native Aztec types.
|
66
|
+
* Transaction receipts contain detailed information about executed transactions.
|
67
|
+
*/
|
68
|
+
export declare class AztecGetTxReceiptSerializer implements JSONRPCSerializer<AztecWalletMethodMap['aztec_getTxReceipt']['params'], AztecWalletMethodMap['aztec_getTxReceipt']['result']> {
|
69
|
+
params: {
|
70
|
+
serialize: (method: string, value: AztecWalletMethodMap["aztec_getTxReceipt"]["params"]) => JSONRPCSerializedData;
|
71
|
+
deserialize: (method: string, data: JSONRPCSerializedData) => AztecWalletMethodMap["aztec_getTxReceipt"]["params"];
|
72
|
+
};
|
73
|
+
result: {
|
74
|
+
serialize: (method: string, value: TxReceipt) => JSONRPCSerializedData;
|
75
|
+
deserialize: (method: string, data: JSONRPCSerializedData) => TxReceipt;
|
76
|
+
};
|
77
|
+
}
|
78
|
+
/**
|
79
|
+
* Serializer for the aztec_simulateTx RPC method.
|
80
|
+
* Handles serialization of transaction simulation requests and results between JSON-RPC format and native Aztec types.
|
81
|
+
* Supports simulation configuration including public simulation, custom sender, validation options, and profiling.
|
82
|
+
*/
|
83
|
+
export declare class AztecSimulateTxSerializer implements JSONRPCSerializer<AztecWalletMethodMap['aztec_simulateTx']['params'], AztecWalletMethodMap['aztec_simulateTx']['result']> {
|
84
|
+
params: {
|
85
|
+
serialize: (method: string, value: AztecWalletMethodMap["aztec_simulateTx"]["params"]) => JSONRPCSerializedData;
|
86
|
+
deserialize: (method: string, data: JSONRPCSerializedData) => AztecWalletMethodMap["aztec_simulateTx"]["params"];
|
87
|
+
};
|
88
|
+
result: {
|
89
|
+
serialize: (method: string, value: TxSimulationResult) => JSONRPCSerializedData;
|
90
|
+
deserialize: (method: string, data: JSONRPCSerializedData) => TxSimulationResult;
|
91
|
+
};
|
92
|
+
}
|
93
|
+
/**
|
94
|
+
* Pre-instantiated serializer instances for each Aztec transaction-related RPC method.
|
95
|
+
* These instances can be used directly by the RPC handler implementation.
|
96
|
+
*/
|
97
|
+
export declare const aztecCreateTxExecutionRequestSerializer: AztecCreateTxExecutionRequestSerializer;
|
98
|
+
export declare const aztecProveTxSerializer: AztecProveTxSerializer;
|
99
|
+
export declare const aztecSendTxSerializer: AztecSendTxSerializer;
|
100
|
+
export declare const aztecGetTxEffectSerializer: AztecGetTxEffectSerializer;
|
101
|
+
export declare const aztecGetTxReceiptSerializer: AztecGetTxReceiptSerializer;
|
102
|
+
export declare const aztecSimulateTxSerializer: AztecSimulateTxSerializer;
|
103
|
+
//# sourceMappingURL=transaction.d.ts.map
|
@@ -0,0 +1 @@
|
|
1
|
+
{"version":3,"file":"transaction.d.ts","sourceRoot":"","sources":["../../src/serializers/transaction.ts"],"names":[],"mappings":"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"}
|
@@ -0,0 +1,238 @@
|
|
1
|
+
import { encodeBase64, decodeBase64 } from './types.js';
|
2
|
+
import { txHashSerializer } from './core.js';
|
3
|
+
import { TxEffect, TxSimulationResult, inBlockSchemaFor } from '@aztec/circuit-types';
|
4
|
+
import { TxExecutionRequest, TxReceipt, Tx, AztecAddress } from '@aztec/aztec.js';
|
5
|
+
import { SerializablePrivateExecutionResult, SerializableTxProvingResult } from './transaction-utils.js';
|
6
|
+
/**
|
7
|
+
* Serializer for the aztec_createTxExecutionRequest RPC method.
|
8
|
+
* Handles serialization of transaction execution requests between JSON-RPC format and native Aztec types.
|
9
|
+
*/
|
10
|
+
export class AztecCreateTxExecutionRequestSerializer {
|
11
|
+
constructor() {
|
12
|
+
this.params = {
|
13
|
+
serialize: (method, value) => {
|
14
|
+
const { exec } = value;
|
15
|
+
return {
|
16
|
+
method,
|
17
|
+
serialized: encodeBase64(JSON.stringify(exec)),
|
18
|
+
};
|
19
|
+
},
|
20
|
+
deserialize: (method, data) => {
|
21
|
+
const exec = JSON.parse(decodeBase64(data.serialized));
|
22
|
+
return { exec };
|
23
|
+
},
|
24
|
+
};
|
25
|
+
this.result = {
|
26
|
+
serialize: (method, value) => {
|
27
|
+
return {
|
28
|
+
method,
|
29
|
+
serialized: encodeBase64(value.toString()),
|
30
|
+
};
|
31
|
+
},
|
32
|
+
deserialize: (method, data) => {
|
33
|
+
return TxExecutionRequest.fromString(decodeBase64(data.serialized));
|
34
|
+
},
|
35
|
+
};
|
36
|
+
}
|
37
|
+
}
|
38
|
+
/**
|
39
|
+
* Serializer for the aztec_proveTx RPC method.
|
40
|
+
* Handles serialization of transaction proving requests and results between JSON-RPC format and native Aztec types.
|
41
|
+
* Includes handling of private execution results and proving outcomes.
|
42
|
+
*/
|
43
|
+
export class AztecProveTxSerializer {
|
44
|
+
constructor() {
|
45
|
+
this.params = {
|
46
|
+
serialize: (method, value) => {
|
47
|
+
const { txRequest, privateExecutionResult } = value;
|
48
|
+
const serializablePrivateExecutionResult = SerializablePrivateExecutionResult.from(privateExecutionResult);
|
49
|
+
return {
|
50
|
+
method,
|
51
|
+
serialized: encodeBase64(JSON.stringify([txRequest.toString(), serializablePrivateExecutionResult])),
|
52
|
+
};
|
53
|
+
},
|
54
|
+
deserialize: (method, data) => {
|
55
|
+
const [txRequest, privateExecutionResult] = JSON.parse(decodeBase64(data.serialized));
|
56
|
+
return {
|
57
|
+
txRequest: TxExecutionRequest.fromString(txRequest),
|
58
|
+
privateExecutionResult: SerializablePrivateExecutionResult.fromJSON(privateExecutionResult),
|
59
|
+
};
|
60
|
+
},
|
61
|
+
};
|
62
|
+
this.result = {
|
63
|
+
serialize: (method, value) => {
|
64
|
+
const serializableTxProvingResult = SerializableTxProvingResult.from(value);
|
65
|
+
return {
|
66
|
+
method,
|
67
|
+
serialized: encodeBase64(JSON.stringify(serializableTxProvingResult)),
|
68
|
+
};
|
69
|
+
},
|
70
|
+
deserialize: (method, data) => {
|
71
|
+
return SerializableTxProvingResult.fromJSON(JSON.parse(decodeBase64(data.serialized)));
|
72
|
+
},
|
73
|
+
};
|
74
|
+
}
|
75
|
+
}
|
76
|
+
/**
|
77
|
+
* Serializer for the aztec_sendTx RPC method.
|
78
|
+
* Handles serialization of transaction sending requests and transaction hash results between JSON-RPC format and native Aztec types.
|
79
|
+
*/
|
80
|
+
export class AztecSendTxSerializer {
|
81
|
+
constructor() {
|
82
|
+
this.params = {
|
83
|
+
serialize: (method, value) => {
|
84
|
+
const { tx } = value;
|
85
|
+
return {
|
86
|
+
method,
|
87
|
+
serialized: encodeBase64(tx.toBuffer().toString('hex')),
|
88
|
+
};
|
89
|
+
},
|
90
|
+
deserialize: (method, data) => {
|
91
|
+
const tx = Tx.fromBuffer(Buffer.from(decodeBase64(data.serialized), 'hex'));
|
92
|
+
return { tx };
|
93
|
+
},
|
94
|
+
};
|
95
|
+
this.result = {
|
96
|
+
serialize: (method, value) => {
|
97
|
+
return {
|
98
|
+
method,
|
99
|
+
serialized: encodeBase64(txHashSerializer.serialize(value)),
|
100
|
+
};
|
101
|
+
},
|
102
|
+
deserialize: (method, data) => {
|
103
|
+
return txHashSerializer.deserialize(decodeBase64(data.serialized));
|
104
|
+
},
|
105
|
+
};
|
106
|
+
}
|
107
|
+
}
|
108
|
+
/**
|
109
|
+
* Serializer for the aztec_getTxEffect RPC method.
|
110
|
+
* Handles serialization of transaction effect queries and results between JSON-RPC format and native Aztec types.
|
111
|
+
* Transaction effects represent the outcome and state changes caused by a transaction.
|
112
|
+
*/
|
113
|
+
export class AztecGetTxEffectSerializer {
|
114
|
+
constructor() {
|
115
|
+
this.params = {
|
116
|
+
serialize: (method, value) => {
|
117
|
+
const { txHash } = value;
|
118
|
+
return {
|
119
|
+
method,
|
120
|
+
serialized: encodeBase64(txHashSerializer.serialize(txHash)),
|
121
|
+
};
|
122
|
+
},
|
123
|
+
deserialize: (method, data) => {
|
124
|
+
const txHash = txHashSerializer.deserialize(decodeBase64(data.serialized));
|
125
|
+
return { txHash };
|
126
|
+
},
|
127
|
+
};
|
128
|
+
this.result = {
|
129
|
+
serialize: (method, value) => {
|
130
|
+
return {
|
131
|
+
method,
|
132
|
+
serialized: encodeBase64(JSON.stringify(TxEffect.schema.parse(value))),
|
133
|
+
};
|
134
|
+
},
|
135
|
+
deserialize: (method, data) => {
|
136
|
+
return inBlockSchemaFor(TxEffect.schema).parse(JSON.parse(decodeBase64(data.serialized)));
|
137
|
+
},
|
138
|
+
};
|
139
|
+
}
|
140
|
+
}
|
141
|
+
/**
|
142
|
+
* Serializer for the aztec_getTxReceipt RPC method.
|
143
|
+
* Handles serialization of transaction receipt queries and results between JSON-RPC format and native Aztec types.
|
144
|
+
* Transaction receipts contain detailed information about executed transactions.
|
145
|
+
*/
|
146
|
+
export class AztecGetTxReceiptSerializer {
|
147
|
+
constructor() {
|
148
|
+
this.params = {
|
149
|
+
serialize: (method, value) => {
|
150
|
+
const { txHash } = value;
|
151
|
+
return {
|
152
|
+
method,
|
153
|
+
serialized: encodeBase64(txHashSerializer.serialize(txHash)),
|
154
|
+
};
|
155
|
+
},
|
156
|
+
deserialize: (method, data) => {
|
157
|
+
const txHash = txHashSerializer.deserialize(decodeBase64(data.serialized));
|
158
|
+
return { txHash };
|
159
|
+
},
|
160
|
+
};
|
161
|
+
this.result = {
|
162
|
+
serialize: (method, value) => {
|
163
|
+
return {
|
164
|
+
method,
|
165
|
+
serialized: encodeBase64(JSON.stringify(TxReceipt.schema.parse(value))),
|
166
|
+
};
|
167
|
+
},
|
168
|
+
deserialize: (method, data) => {
|
169
|
+
return TxReceipt.schema.parse(JSON.parse(decodeBase64(data.serialized)));
|
170
|
+
},
|
171
|
+
};
|
172
|
+
}
|
173
|
+
}
|
174
|
+
/**
|
175
|
+
* Serializer for the aztec_simulateTx RPC method.
|
176
|
+
* Handles serialization of transaction simulation requests and results between JSON-RPC format and native Aztec types.
|
177
|
+
* Supports simulation configuration including public simulation, custom sender, validation options, and profiling.
|
178
|
+
*/
|
179
|
+
export class AztecSimulateTxSerializer {
|
180
|
+
constructor() {
|
181
|
+
this.params = {
|
182
|
+
serialize: (method, value) => {
|
183
|
+
const { txRequest, simulatePublic, msgSender, skipTxValidation, enforceFeePayment, profile } = value;
|
184
|
+
return {
|
185
|
+
method,
|
186
|
+
serialized: encodeBase64(JSON.stringify([
|
187
|
+
txRequest.toString(),
|
188
|
+
simulatePublic,
|
189
|
+
msgSender,
|
190
|
+
skipTxValidation,
|
191
|
+
enforceFeePayment,
|
192
|
+
profile,
|
193
|
+
])),
|
194
|
+
};
|
195
|
+
},
|
196
|
+
deserialize: (method, data) => {
|
197
|
+
const [txRequest, simulatePublic, msgSender, skipTxValidation, enforceFeePayment, profile] = JSON.parse(decodeBase64(data.serialized));
|
198
|
+
return {
|
199
|
+
txRequest: TxExecutionRequest.fromString(txRequest),
|
200
|
+
simulatePublic,
|
201
|
+
msgSender: msgSender ? AztecAddress.fromString(msgSender) : undefined,
|
202
|
+
skipTxValidation,
|
203
|
+
enforceFeePayment,
|
204
|
+
profile,
|
205
|
+
};
|
206
|
+
},
|
207
|
+
};
|
208
|
+
this.result = {
|
209
|
+
serialize: (method, value) => {
|
210
|
+
const serializablePrivateExecutionResult = SerializablePrivateExecutionResult.from(value.privateExecutionResult);
|
211
|
+
return {
|
212
|
+
method,
|
213
|
+
serialized: encodeBase64(JSON.stringify({
|
214
|
+
privateExecutionResult: serializablePrivateExecutionResult,
|
215
|
+
publicInputs: value.publicInputs,
|
216
|
+
publicOutput: value.publicOutput,
|
217
|
+
profileResult: value.profileResult,
|
218
|
+
})),
|
219
|
+
};
|
220
|
+
},
|
221
|
+
deserialize: (method, data) => {
|
222
|
+
const { privateExecutionResult, publicInputs, publicOutput, profileResult } = JSON.parse(decodeBase64(data.serialized));
|
223
|
+
return new TxSimulationResult(SerializablePrivateExecutionResult.fromJSON(privateExecutionResult), publicInputs, publicOutput, profileResult);
|
224
|
+
},
|
225
|
+
};
|
226
|
+
}
|
227
|
+
}
|
228
|
+
/**
|
229
|
+
* Pre-instantiated serializer instances for each Aztec transaction-related RPC method.
|
230
|
+
* These instances can be used directly by the RPC handler implementation.
|
231
|
+
*/
|
232
|
+
export const aztecCreateTxExecutionRequestSerializer = new AztecCreateTxExecutionRequestSerializer();
|
233
|
+
export const aztecProveTxSerializer = new AztecProveTxSerializer();
|
234
|
+
export const aztecSendTxSerializer = new AztecSendTxSerializer();
|
235
|
+
export const aztecGetTxEffectSerializer = new AztecGetTxEffectSerializer();
|
236
|
+
export const aztecGetTxReceiptSerializer = new AztecGetTxReceiptSerializer();
|
237
|
+
export const aztecSimulateTxSerializer = new AztecSimulateTxSerializer();
|
238
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHJhbnNhY3Rpb24uanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvc2VyaWFsaXplcnMvdHJhbnNhY3Rpb24udHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBRUEsT0FBTyxFQUFFLFlBQVksRUFBRSxZQUFZLEVBQUUsTUFBTSxZQUFZLENBQUM7QUFDeEQsT0FBTyxFQUFFLGdCQUFnQixFQUFFLE1BQU0sV0FBVyxDQUFDO0FBQzdDLE9BQU8sRUFBRSxRQUFRLEVBQUUsa0JBQWtCLEVBQUUsZ0JBQWdCLEVBQXdCLE1BQU0sc0JBQXNCLENBQUM7QUFDNUcsT0FBTyxFQUFFLGtCQUFrQixFQUFFLFNBQVMsRUFBRSxFQUFFLEVBQUUsWUFBWSxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFFbEYsT0FBTyxFQUFFLGtDQUFrQyxFQUFFLDJCQUEyQixFQUFFLE1BQU0sd0JBQXdCLENBQUM7QUFFekc7OztHQUdHO0FBQ0gsTUFBTSxPQUFPLHVDQUF1QztJQUFwRDtRQU9FLFdBQU0sR0FBRztZQUNQLFNBQVMsRUFBRSxDQUNULE1BQWMsRUFDZCxLQUF1RSxFQUNoRCxFQUFFO2dCQUN6QixNQUFNLEVBQUUsSUFBSSxFQUFFLEdBQUcsS0FBSyxDQUFDO2dCQUN2QixPQUFPO29CQUNMLE1BQU07b0JBQ04sVUFBVSxFQUFFLFlBQVksQ0FBQyxJQUFJLENBQUMsU0FBUyxDQUFDLElBQUksQ0FBQyxDQUFDO2lCQUMvQyxDQUFDO1lBQ0osQ0FBQztZQUNELFdBQVcsRUFBRSxDQUNYLE1BQWMsRUFDZCxJQUEyQixFQUN1QyxFQUFFO2dCQUNwRSxNQUFNLElBQUksR0FBRyxJQUFJLENBQUMsS0FBSyxDQUFDLFlBQVksQ0FBQyxJQUFJLENBQUMsVUFBVSxDQUFDLENBQUMsQ0FBQztnQkFDdkQsT0FBTyxFQUFFLElBQUksRUFBRSxDQUFDO1lBQ2xCLENBQUM7U0FDRixDQUFDO1FBRUYsV0FBTSxHQUFHO1lBQ1AsU0FBUyxFQUFFLENBQUMsTUFBYyxFQUFFLEtB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
|
@@ -0,0 +1,49 @@
|
|
1
|
+
import type { JSONRPCSerializedData, JSONRPCSerializer } from '@walletmesh/jsonrpc';
|
2
|
+
/**
|
3
|
+
* Base interface for type-specific serializers in the Aztec RPC wallet.
|
4
|
+
* Provides a standardized way to convert Aztec-specific types to and from string representations
|
5
|
+
* for network transmission. Each Aztec type (Fr, AztecAddress, etc.) implements this interface
|
6
|
+
* to ensure consistent serialization across the RPC layer.
|
7
|
+
*
|
8
|
+
* @typeParam T - The Aztec type being serialized (e.g., Fr, AztecAddress, TxHash)
|
9
|
+
*/
|
10
|
+
export interface TypeSerializer<T> {
|
11
|
+
/**
|
12
|
+
* Converts a value to its string representation for network transmission.
|
13
|
+
* Implementations should ensure the serialized form can be correctly deserialized
|
14
|
+
* back to the original type.
|
15
|
+
*
|
16
|
+
* @param value - The Aztec type value to serialize
|
17
|
+
* @returns A string representation suitable for network transmission
|
18
|
+
*/
|
19
|
+
serialize(value: T): string;
|
20
|
+
/**
|
21
|
+
* Reconstructs a value from its string representation.
|
22
|
+
* Implementations should validate the input string and throw appropriate errors
|
23
|
+
* if the data cannot be correctly deserialized.
|
24
|
+
*
|
25
|
+
* @param data - The string data to deserialize, previously created by serialize()
|
26
|
+
* @returns The reconstructed Aztec type value
|
27
|
+
* @throws If the data is invalid or cannot be deserialized
|
28
|
+
*/
|
29
|
+
deserialize(data: string): T;
|
30
|
+
}
|
31
|
+
export type { JSONRPCSerializedData, JSONRPCSerializer };
|
32
|
+
/**
|
33
|
+
* Helper function to encode data as base64 for safe network transmission.
|
34
|
+
* Used throughout the serializers to ensure consistent encoding of binary data.
|
35
|
+
*
|
36
|
+
* @param data - The string data to encode
|
37
|
+
* @returns Base64 encoded string
|
38
|
+
*/
|
39
|
+
export declare function encodeBase64(data: string): string;
|
40
|
+
/**
|
41
|
+
* Helper function to decode base64 data back to its original form.
|
42
|
+
* Used throughout the serializers to decode data received over the network.
|
43
|
+
*
|
44
|
+
* @param data - The base64 encoded string to decode
|
45
|
+
* @returns Original decoded string
|
46
|
+
* @throws If the input is not valid base64
|
47
|
+
*/
|
48
|
+
export declare function decodeBase64(data: string): string;
|
49
|
+
//# sourceMappingURL=types.d.ts.map
|
@@ -0,0 +1 @@
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/serializers/types.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,qBAAqB,EAAE,iBAAiB,EAAE,MAAM,qBAAqB,CAAC;AAEpF;;;;;;;GAOG;AACH,MAAM,WAAW,cAAc,CAAC,CAAC;IAC/B;;;;;;;OAOG;IACH,SAAS,CAAC,KAAK,EAAE,CAAC,GAAG,MAAM,CAAC;IAE5B;;;;;;;;OAQG;IACH,WAAW,CAAC,IAAI,EAAE,MAAM,GAAG,CAAC,CAAC;CAC9B;AAGD,YAAY,EAAE,qBAAqB,EAAE,iBAAiB,EAAE,CAAC;AAEzD;;;;;;GAMG;AACH,wBAAgB,YAAY,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,CAEjD;AAED;;;;;;;GAOG;AACH,wBAAgB,YAAY,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,CAEjD"}
|
@@ -0,0 +1,22 @@
|
|
1
|
+
/**
|
2
|
+
* Helper function to encode data as base64 for safe network transmission.
|
3
|
+
* Used throughout the serializers to ensure consistent encoding of binary data.
|
4
|
+
*
|
5
|
+
* @param data - The string data to encode
|
6
|
+
* @returns Base64 encoded string
|
7
|
+
*/
|
8
|
+
export function encodeBase64(data) {
|
9
|
+
return btoa(data);
|
10
|
+
}
|
11
|
+
/**
|
12
|
+
* Helper function to decode base64 data back to its original form.
|
13
|
+
* Used throughout the serializers to decode data received over the network.
|
14
|
+
*
|
15
|
+
* @param data - The base64 encoded string to decode
|
16
|
+
* @returns Original decoded string
|
17
|
+
* @throws If the input is not valid base64
|
18
|
+
*/
|
19
|
+
export function decodeBase64(data) {
|
20
|
+
return atob(data);
|
21
|
+
}
|
22
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHlwZXMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvc2VyaWFsaXplcnMvdHlwZXMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBb0NBOzs7Ozs7R0FNRztBQUNILE1BQU0sVUFBVSxZQUFZLENBQUMsSUFBWTtJQUN2QyxPQUFPLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQztBQUNwQixDQUFDO0FBRUQ7Ozs7Ozs7R0FPRztBQUNILE1BQU0sVUFBVSxZQUFZLENBQUMsSUFBWTtJQUN2QyxPQUFPLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQztBQUNwQixDQUFDIn0=
|