@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 @@
|
|
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":"AAAA,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,aAAa,CAAC;AACxD,OAAO,KAAK,EAAE,qBAAqB,EAAE,iBAAiB,EAAE,MAAM,YAAY,CAAC;AAG3E,OAAO,EAAY,kBAAkB,EAAoB,KAAK,eAAe,EAAE,MAAM,sBAAsB,CAAC;AAC5G,OAAO,EAAE,kBAAkB,EAAE,SAAS,EAAoB,MAAM,iBAAiB,CAAC;AAIlF;;;GAGG;AACH,qBAAa,uCACX,YACE,iBAAiB,CACf,oBAAoB,CAAC,gCAAgC,CAAC,CAAC,QAAQ,CAAC,EAChE,oBAAoB,CAAC,gCAAgC,CAAC,CAAC,QAAQ,CAAC,CACjE;IAEH,MAAM;4BAEM,MAAM,SACP,oBAAoB,CAAC,gCAAgC,CAAC,CAAC,QAAQ,CAAC,KACtE,qBAAqB;8BAQd,MAAM,QACR,qBAAqB,KAC1B,oBAAoB,CAAC,gCAAgC,CAAC,CAAC,QAAQ,CAAC;MAInE;IAEF,MAAM;4BACgB,MAAM,SAAS,kBAAkB,KAAG,qBAAqB;8BAMvD,MAAM,QAAQ,qBAAqB,KAAG,kBAAkB;MAG9E;CACH;AAED;;;;GAIG;AACH,qBAAa,sBACX,YACE,iBAAiB,CACf,oBAAoB,CAAC,eAAe,CAAC,CAAC,QAAQ,CAAC,EAC/C,oBAAoB,CAAC,eAAe,CAAC,CAAC,QAAQ,CAAC,CAChD;IAEH,MAAM;4BAEM,MAAM,SACP,oBAAoB,CAAC,eAAe,CAAC,CAAC,QAAQ,CAAC,KACrD,qBAAqB;8BAUd,MAAM,QACR,qBAAqB,KAC1B,oBAAoB,CAAC,eAAe,CAAC,CAAC,QAAQ,CAAC;MAOlD;IAEF,MAAM;4BACgB,MAAM,SAAS,eAAe,KAAG,qBAAqB;8BAOpD,MAAM,QAAQ,qBAAqB,KAAG,eAAe;MAG3E;CACH;AAED;;;GAGG;AACH,qBAAa,qBACX,YACE,iBAAiB,CACf,oBAAoB,CAAC,cAAc,CAAC,CAAC,QAAQ,CAAC,EAC9C,oBAAoB,CAAC,cAAc,CAAC,CAAC,QAAQ,CAAC,CAC/C;IAEH,MAAM;4BAEM,MAAM,SACP,oBAAoB,CAAC,cAAc,CAAC,CAAC,QAAQ,CAAC,KACpD,qBAAqB;8BAQd,MAAM,QACR,qBAAqB,KAC1B,oBAAoB,CAAC,cAAc,CAAC,CAAC,QAAQ,CAAC;MAIjD;IAEF,MAAM;4BAEM,MAAM,SACP,oBAAoB,CAAC,cAAc,CAAC,CAAC,QAAQ,CAAC,KACpD,qBAAqB;8BAOd,MAAM,QACR,qBAAqB,KAC1B,oBAAoB,CAAC,cAAc,CAAC,CAAC,QAAQ,CAAC;MAGjD;CACH;AAED;;;;GAIG;AACH,qBAAa,0BACX,YACE,iBAAiB,CACf,oBAAoB,CAAC,mBAAmB,CAAC,CAAC,QAAQ,CAAC,EACnD,oBAAoB,CAAC,mBAAmB,CAAC,CAAC,QAAQ,CAAC,CACpD;IAEH,MAAM;4BAEM,MAAM,SACP,oBAAoB,CAAC,mBAAmB,CAAC,CAAC,QAAQ,CAAC,KACzD,qBAAqB;8BAQd,MAAM,QACR,qBAAqB,KAC1B,oBAAoB,CAAC,mBAAmB,CAAC,CAAC,QAAQ,CAAC;MAItD;IAEF,MAAM;4BAEM,MAAM,SACP,oBAAoB,CAAC,mBAAmB,CAAC,CAAC,QAAQ,CAAC,KACzD,qBAAqB;8BAOd,MAAM,QACR,qBAAqB,KAC1B,oBAAoB,CAAC,mBAAmB,CAAC,CAAC,QAAQ,CAAC;MAGtD;CACH;AAED;;;;GAIG;AACH,qBAAa,2BACX,YACE,iBAAiB,CACf,oBAAoB,CAAC,oBAAoB,CAAC,CAAC,QAAQ,CAAC,EACpD,oBAAoB,CAAC,oBAAoB,CAAC,CAAC,QAAQ,CAAC,CACrD;IAEH,MAAM;4BAEM,MAAM,SACP,oBAAoB,CAAC,oBAAoB,CAAC,CAAC,QAAQ,CAAC,KAC1D,qBAAqB;8BAQd,MAAM,QACR,qBAAqB,KAC1B,oBAAoB,CAAC,oBAAoB,CAAC,CAAC,QAAQ,CAAC;MAIvD;IAEF,MAAM;4BACgB,MAAM,SAAS,SAAS,KAAG,qBAAqB;8BAM9C,MAAM,QAAQ,qBAAqB,KAAG,SAAS;MAGrE;CACH;AAED;;;;GAIG;AACH,qBAAa,yBACX,YACE,iBAAiB,CACf,oBAAoB,CAAC,kBAAkB,CAAC,CAAC,QAAQ,CAAC,EAClD,oBAAoB,CAAC,kBAAkB,CAAC,CAAC,QAAQ,CAAC,CACnD;IAEH,MAAM;4BAEM,MAAM,SACP,oBAAoB,CAAC,kBAAkB,CAAC,CAAC,QAAQ,CAAC,KACxD,qBAAqB;8BAiBd,MAAM,QACR,qBAAqB,KAC1B,oBAAoB,CAAC,kBAAkB,CAAC,CAAC,QAAQ,CAAC;MAarD;IAEF,MAAM;4BACgB,MAAM,SAAS,kBAAkB,KAAG,qBAAqB;8BAiBvD,MAAM,QAAQ,qBAAqB,KAAG,kBAAkB;MAW9E;CACH;AAED;;;GAGG;AACH,eAAO,MAAM,uCAAuC,yCAAgD,CAAC;AACrG,eAAO,MAAM,sBAAsB,wBAA+B,CAAC;AACnE,eAAO,MAAM,qBAAqB,uBAA8B,CAAC;AACjE,eAAO,MAAM,0BAA0B,4BAAmC,CAAC;AAC3E,eAAO,MAAM,2BAA2B,6BAAoC,CAAC;AAC7E,eAAO,MAAM,yBAAyB,2BAAkC,CAAC"}
|
@@ -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,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHJhbnNhY3Rpb24uanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvc2VyaWFsaXplcnMvdHJhbnNhY3Rpb24udHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBRUEsT0FBTyxFQUFFLFlBQVksRUFBRSxZQUFZLEVBQUUsTUFBTSxZQUFZLENBQUM7QUFDeEQsT0FBTyxFQUFFLGdCQUFnQixFQUFFLE1BQU0sV0FBVyxDQUFDO0FBQzdDLE9BQU8sRUFBRSxRQUFRLEVBQUUsa0JBQWtCLEVBQUUsZ0JBQWdCLEVBQXdCLE1BQU0sc0JBQXNCLENBQUM7QUFDNUcsT0FBTyxFQUFFLGtCQUFrQixFQUFFLFNBQVMsRUFBRSxFQUFFLEVBQUUsWUFBWSxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFFbEYsT0FBTyxFQUFFLGtDQUFrQyxFQUFFLDJCQUEyQixFQUFFLE1BQU0sd0JBQXdCLENBQUM7QUFFekc7OztHQUdHO0FBQ0gsTUFBTSxPQUFPLHVDQUF1QztJQUFwRDtRQU9FLFdBQU0sR0FBRztZQUNQLFNBQVMsRUFBRSxDQUNULE1BQWMsRUFDZCxLQUF1RSxFQUNoRCxFQUFFO2dCQUN6QixNQUFNLEVBQUUsSUFBSSxFQUFFLEdBQUcsS0FBSyxDQUFDO2dCQUN2QixPQUFPO29CQUNMLE1BQU07b0JBQ04sVUFBVSxFQUFFLFlBQVksQ0FBQyxJQUFJLENBQUMsU0FBUyxDQUFDLElBQUksQ0FBQyxDQUFDO2lCQUMvQyxDQUFDO1lBQ0osQ0FBQztZQUNELFdBQVcsRUFBRSxDQUNYLE1BQWMsRUFDZCxJQUEyQixFQUN1QyxFQUFFO2dCQUNwRSxNQUFNLElBQUksR0FBRyxJQUFJLENBQUMsS0FBSyxDQUFDLFlBQVksQ0FBQyxJQUFJLENBQUMsVUFBVSxDQUFDLENBQUMsQ0FBQztnQkFDdkQsT0FBTyxFQUFFLElBQUksRUFBRSxDQUFDO1lBQ2xCLENBQUM7U0FDRixDQUFDO1FBRUYsV0FBTSxHQUFHO1lBQ1AsU0FBUyxFQUFFLENBQUMsTUFBYyxFQUFFLEtBQXlCLEVBQXlCLEVBQUU7Z0JBQzlFLE9BQU87b0JBQ0wsTUFBTTtvQkFDTixVQUFVLEVBQUUsWUFBWSxDQUFDLEtBQUssQ0FBQyxRQUFRLEVBQUUsQ0FBQztpQkFDM0MsQ0FBQztZQUNKLENBQUM7WUFDRCxXQUFXLEVBQUUsQ0FBQyxNQUFjLEVBQUUsSUFBMkIsRUFBc0IsRUFBRTtnQkFDL0UsT0FBTyxrQkFBa0IsQ0FBQyxVQUFVLENBQUMsWUFBWSxDQUFDLElBQUksQ0FBQyxVQUFVLENBQUMsQ0FBQyxDQUFDO1lBQ3RFLENBQUM7U0FDRixDQUFDO0lBQ0osQ0FBQztDQUFBO0FBRUQ7Ozs7R0FJRztBQUNILE1BQU0sT0FBTyxzQkFBc0I7SUFBbkM7UUFPRSxXQUFNLEdBQUc7WUFDUCxTQUFTLEVBQUUsQ0FDVCxNQUFjLEVBQ2QsS0FBc0QsRUFDL0IsRUFBRTtnQkFDekIsTUFBTSxFQUFFLFNBQVMsRUFBRSxzQkFBc0IsRUFBRSxHQUFHLEtBQUssQ0FBQztnQkFDcEQsTUFBTSxrQ0FBa0MsR0FDdEMsa0NBQWtDLENBQUMsSUFBSSxDQUFDLHNCQUFzQixDQUFDLENBQUM7Z0JBQ2xFLE9BQU87b0JBQ0wsTUFBTTtvQkFDTixVQUFVLEVBQUUsWUFBWSxDQUFDLElBQUksQ0FBQyxTQUFTLENBQUMsQ0FBQyxTQUFTLENBQUMsUUFBUSxFQUFFLEVBQUUsa0NBQWtDLENBQUMsQ0FBQyxDQUFDO2lCQUNyRyxDQUFDO1lBQ0osQ0FBQztZQUNELFdBQVcsRUFBRSxDQUNYLE1BQWMsRUFDZCxJQUEyQixFQUNzQixFQUFFO2dCQUNuRCxNQUFNLENBQUMsU0FBUyxFQUFFLHNCQUFzQixDQUFDLEdBQUcsSUFBSSxDQUFDLEtBQUssQ0FBQyxZQUFZLENBQUMsSUFBSSxDQUFDLFVBQVUsQ0FBQyxDQUFDLENBQUM7Z0JBQ3RGLE9BQU87b0JBQ0wsU0FBUyxFQUFFLGtCQUFrQixDQUFDLFVBQVUsQ0FBQyxTQUFTLENBQUM7b0JBQ25ELHNCQUFzQixFQUFFLGtDQUFrQyxDQUFDLFFBQVEsQ0FBQyxzQkFBc0IsQ0FBQztpQkFDNUYsQ0FBQztZQUNKLENBQUM7U0FDRixDQUFDO1FBRUYsV0FBTSxHQUFHO1lBQ1AsU0FBUyxFQUFFLENBQUMsTUFBYyxFQUFFLEtBQXNCLEVBQXlCLEVBQUU7Z0JBQzNFLE1BQU0sMkJBQTJCLEdBQUcsMkJBQTJCLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDO2dCQUM1RSxPQUFPO29CQUNMLE1BQU07b0JBQ04sVUFBVSxFQUFFLFlBQVksQ0FBQyxJQUFJLENBQUMsU0FBUyxDQUFDLDJCQUEyQixDQUFDLENBQUM7aUJBQ3RFLENBQUM7WUFDSixDQUFDO1lBQ0QsV0FBVyxFQUFFLENBQUMsTUFBYyxFQUFFLElBQTJCLEVBQW1CLEVBQUU7Z0JBQzVFLE9BQU8sMkJBQTJCLENBQUMsUUFBUSxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsWUFBWSxDQUFDLElBQUksQ0FBQyxVQUFVLENBQUMsQ0FBQyxDQUFDLENBQUM7WUFDekYsQ0FBQztTQUNGLENBQUM7SUFDSixDQUFDO0NBQUE7QUFFRDs7O0dBR0c7QUFDSCxNQUFNLE9BQU8scUJBQXFCO0lBQWxDO1FBT0UsV0FBTSxHQUFHO1lBQ1AsU0FBUyxFQUFFLENBQ1QsTUFBYyxFQUNkLEtBQXFELEVBQzlCLEVBQUU7Z0JBQ3pCLE1BQU0sRUFBRSxFQUFFLEVBQUUsR0FBRyxLQUFLLENBQUM7Z0JBQ3JCLE9BQU87b0JBQ0wsTUFBTTtvQkFDTixVQUFVLEVBQUUsWUFBWSxDQUFDLEVBQUUsQ0FBQyxRQUFRLEVBQUUsQ0FBQyxRQUFRLENBQUMsS0FBSyxDQUFDLENBQUM7aUJBQ3hELENBQUM7WUFDSixDQUFDO1lBQ0QsV0FBVyxFQUFFLENBQ1gsTUFBYyxFQUNkLElBQTJCLEVBQ3FCLEVBQUU7Z0JBQ2xELE1BQU0sRUFBRSxHQUFHLEVBQUUsQ0FBQyxVQUFVLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxZQUFZLENBQUMsSUFBSSxDQUFDLFVBQVUsQ0FBQyxFQUFFLEtBQUssQ0FBQyxDQUFDLENBQUM7Z0JBQzVFLE9BQU8sRUFBRSxFQUFFLEVBQUUsQ0FBQztZQUNoQixDQUFDO1NBQ0YsQ0FBQztRQUVGLFdBQU0sR0FBRztZQUNQLFNBQVMsRUFBRSxDQUNULE1BQWMsRUFDZCxLQUFxRCxFQUM5QixFQUFFO2dCQUN6QixPQUFPO29CQUNMLE1BQU07b0JBQ04sVUFBVSxFQUFFLFlBQVksQ0FBQyxnQkFBZ0IsQ0FBQyxTQUFTLENBQUMsS0FBSyxDQUFDLENBQUM7aUJBQzVELENBQUM7WUFDSixDQUFDO1lBQ0QsV0FBVyxFQUFFLENBQ1gsTUFBYyxFQUNkLElBQTJCLEVBQ3FCLEVBQUU7Z0JBQ2xELE9BQU8sZ0JBQWdCLENBQUMsV0FBVyxDQUFDLFlBQVksQ0FBQyxJQUFJLENBQUMsVUFBVSxDQUFDLENBQUMsQ0FBQztZQUNyRSxDQUFDO1NBQ0YsQ0FBQztJQUNKLENBQUM7Q0FBQTtBQUVEOzs7O0dBSUc7QUFDSCxNQUFNLE9BQU8sMEJBQTBCO0lBQXZDO1FBT0UsV0FBTSxHQUFHO1lBQ1AsU0FBUyxFQUFFLENBQ1QsTUFBYyxFQUNkLEtBQTBELEVBQ25DLEVBQUU7Z0JBQ3pCLE1BQU0sRUFBRSxNQUFNLEVBQUUsR0FBRyxLQUFLLENBQUM7Z0JBQ3pCLE9BQU87b0JBQ0wsTUFBTTtvQkFDTixVQUFVLEVBQUUsWUFBWSxDQUFDLGdCQUFnQixDQUFDLFNBQVMsQ0FBQyxNQUFNLENBQUMsQ0FBQztpQkFDN0QsQ0FBQztZQUNKLENBQUM7WUFDRCxXQUFXLEVBQUUsQ0FDWCxNQUFjLEVBQ2QsSUFBMkIsRUFDMEIsRUFBRTtnQkFDdkQsTUFBTSxNQUFNLEdBQUcsZ0JBQWdCLENBQUMsV0FBVyxDQUFDLFlBQVksQ0FBQyxJQUFJLENBQUMsVUFBVSxDQUFDLENBQUMsQ0FBQztnQkFDM0UsT0FBTyxFQUFFLE1BQU0sRUFBRSxDQUFDO1lBQ3BCLENBQUM7U0FDRixDQUFDO1FBRUYsV0FBTSxHQUFHO1lBQ1AsU0FBUyxFQUFFLENBQ1QsTUFBYyxFQUNkLEtBQTBELEVBQ25DLEVBQUU7Z0JBQ3pCLE9BQU87b0JBQ0wsTUFBTTtvQkFDTixVQUFVLEVBQUUsWUFBWSxDQUFDLElBQUksQ0FBQyxTQUFTLENBQUMsUUFBUSxDQUFDLE1BQU0sQ0FBQyxLQUFLLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQztpQkFDdkUsQ0FBQztZQUNKLENBQUM7WUFDRCxXQUFXLEVBQUUsQ0FDWCxNQUFjLEVBQ2QsSUFBMkIsRUFDMEIsRUFBRTtnQkFDdkQsT0FBTyxnQkFBZ0IsQ0FBQyxRQUFRLENBQUMsTUFBTSxDQUFDLENBQUMsS0FBSyxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsWUFBWSxDQUFDLElBQUksQ0FBQyxVQUFVLENBQUMsQ0FBQyxDQUFDLENBQUM7WUFDNUYsQ0FBQztTQUNGLENBQUM7SUFDSixDQUFDO0NBQUE7QUFFRDs7OztHQUlHO0FBQ0gsTUFBTSxPQUFPLDJCQUEyQjtJQUF4QztRQU9FLFdBQU0sR0FBRztZQUNQLFNBQVMsRUFBRSxDQUNULE1BQWMsRUFDZCxLQUEyRCxFQUNwQyxFQUFFO2dCQUN6QixNQUFNLEVBQUUsTUFBTSxFQUFFLEdBQUcsS0FBSyxDQUFDO2dCQUN6QixPQUFPO29CQUNMLE1BQU07b0JBQ04sVUFBVSxFQUFFLFlBQVksQ0FBQyxnQkFBZ0IsQ0FBQyxTQUFTLENBQUMsTUFBTSxDQUFDLENBQUM7aUJBQzdELENBQUM7WUFDSixDQUFDO1lBQ0QsV0FBVyxFQUFFLENBQ1gsTUFBYyxFQUNkLElBQTJCLEVBQzJCLEVBQUU7Z0JBQ3hELE1BQU0sTUFBTSxHQUFHLGdCQUFnQixDQUFDLFdBQVcsQ0FBQyxZQUFZLENBQUMsSUFBSSxDQUFDLFVBQVUsQ0FBQyxDQUFDLENBQUM7Z0JBQzNFLE9BQU8sRUFBRSxNQUFNLEVBQUUsQ0FBQztZQUNwQixDQUFDO1NBQ0YsQ0FBQztRQUVGLFdBQU0sR0FBRztZQUNQLFNBQVMsRUFBRSxDQUFDLE1BQWMsRUFBRSxLQUFnQixFQUF5QixFQUFFO2dCQUNyRSxPQUFPO29CQUNMLE1BQU07b0JBQ04sVUFBVSxFQUFFLFlBQVksQ0FBQyxJQUFJLENBQUMsU0FBUyxDQUFDLFNBQVMsQ0FBQyxNQUFNLENBQUMsS0FBSyxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUM7aUJBQ3hFLENBQUM7WUFDSixDQUFDO1lBQ0QsV0FBVyxFQUFFLENBQUMsTUFBYyxFQUFFLElBQTJCLEVBQWEsRUFBRTtnQkFDdEUsT0FBTyxTQUFTLENBQUMsTUFBTSxDQUFDLEtBQUssQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLFlBQVksQ0FBQyxJQUFJLENBQUMsVUFBVSxDQUFDLENBQUMsQ0FBQyxDQUFDO1lBQzNFLENBQUM7U0FDRixDQUFDO0lBQ0osQ0FBQztDQUFBO0FBRUQ7Ozs7R0FJRztBQUNILE1BQU0sT0FBTyx5QkFBeUI7SUFBdEM7UUFPRSxXQUFNLEdBQUc7WUFDUCxTQUFTLEVBQUUsQ0FDVCxNQUFjLEVBQ2QsS0FBeUQsRUFDbEMsRUFBRTtnQkFDekIsTUFBTSxFQUFFLFNBQVMsRUFBRSxjQUFjLEVBQUUsU0FBUyxFQUFFLGdCQUFnQixFQUFFLGlCQUFpQixFQUFFLE9BQU8sRUFBRSxHQUFHLEtBQUssQ0FBQztnQkFDckcsT0FBTztvQkFDTCxNQUFNO29CQUNOLFVBQVUsRUFBRSxZQUFZLENBQ3RCLElBQUksQ0FBQyxTQUFTLENBQUM7d0JBQ2IsU0FBUyxDQUFDLFFBQVEsRUFBRTt3QkFDcEIsY0FBYzt3QkFDZCxTQUFTO3dCQUNULGdCQUFnQjt3QkFDaEIsaUJBQWlCO3dCQUNqQixPQUFPO3FCQUNSLENBQUMsQ0FDSDtpQkFDRixDQUFDO1lBQ0osQ0FBQztZQUNELFdBQVcsRUFBRSxDQUNYLE1BQWMsRUFDZCxJQUEyQixFQUN5QixFQUFFO2dCQUN0RCxNQUFNLENBQUMsU0FBUyxFQUFFLGNBQWMsRUFBRSxTQUFTLEVBQUUsZ0JBQWdCLEVBQUUsaUJBQWlCLEVBQUUsT0FBTyxDQUFDLEdBQUcsSUFBSSxDQUFDLEtBQUssQ0FDckcsWUFBWSxDQUFDLElBQUksQ0FBQyxVQUFVLENBQUMsQ0FDOUIsQ0FBQztnQkFDRixPQUFPO29CQUNMLFNBQVMsRUFBRSxrQkFBa0IsQ0FBQyxVQUFVLENBQUMsU0FBUyxDQUFDO29CQUNuRCxjQUFjO29CQUNkLFNBQVMsRUFBRSxTQUFTLENBQUMsQ0FBQyxDQUFDLFlBQVksQ0FBQyxVQUFVLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBQyxDQUFDLFNBQVM7b0JBQ3JFLGdCQUFnQjtvQkFDaEIsaUJBQWlCO29CQUNqQixPQUFPO2lCQUNSLENBQUM7WUFDSixDQUFDO1NBQ0YsQ0FBQztRQUVGLFdBQU0sR0FBRztZQUNQLFNBQVMsRUFBRSxDQUFDLE1BQWMsRUFBRSxLQUF5QixFQUF5QixFQUFFO2dCQUM5RSxNQUFNLGtDQUFrQyxHQUFHLGtDQUFrQyxDQUFDLElBQUksQ0FDaEYsS0FBSyxDQUFDLHNCQUFzQixDQUM3QixDQUFDO2dCQUVGLE9BQU87b0JBQ0wsTUFBTTtvQkFDTixVQUFVLEVBQUUsWUFBWSxDQUN0QixJQUFJLENBQUMsU0FBUyxDQUFDO3dCQUNiLHNCQUFzQixFQUFFLGtDQUFrQzt3QkFDMUQsWUFBWSxFQUFFLEtBQUssQ0FBQyxZQUFZO3dCQUNoQyxZQUFZLEVBQUUsS0FBSyxDQUFDLFlBQVk7d0JBQ2hDLGFBQWEsRUFBRSxLQUFLLENBQUMsYUFBYTtxQkFDbkMsQ0FBQyxDQUNIO2lCQUNGLENBQUM7WUFDSixDQUFDO1lBQ0QsV0FBVyxFQUFFLENBQUMsTUFBYyxFQUFFLElBQTJCLEVBQXNCLEVBQUU7Z0JBQy9FLE1BQU0sRUFBRSxzQkFBc0IsRUFBRSxZQUFZLEVBQUUsWUFBWSxFQUFFLGFBQWEsRUFBRSxHQUFHLElBQUksQ0FBQyxLQUFLLENBQ3RGLFlBQVksQ0FBQyxJQUFJLENBQUMsVUFBVSxDQUFDLENBQzlCLENBQUM7Z0JBQ0YsT0FBTyxJQUFJLGtCQUFrQixDQUMzQixrQ0FBa0MsQ0FBQyxRQUFRLENBQUMsc0JBQXNCLENBQUMsRUFDbkUsWUFBWSxFQUNaLFlBQVksRUFDWixhQUFhLENBQ2QsQ0FBQztZQUNKLENBQUM7U0FDRixDQUFDO0lBQ0osQ0FBQztDQUFBO0FBRUQ7OztHQUdHO0FBQ0gsTUFBTSxDQUFDLE1BQU0sdUNBQXVDLEdBQUcsSUFBSSx1Q0FBdUMsRUFBRSxDQUFDO0FBQ3JHLE1BQU0sQ0FBQyxNQUFNLHNCQUFzQixHQUFHLElBQUksc0JBQXNCLEVBQUUsQ0FBQztBQUNuRSxNQUFNLENBQUMsTUFBTSxxQkFBcUIsR0FBRyxJQUFJLHFCQUFxQixFQUFFLENBQUM7QUFDakUsTUFBTSxDQUFDLE1BQU0sMEJBQTBCLEdBQUcsSUFBSSwwQkFBMEIsRUFBRSxDQUFDO0FBQzNFLE1BQU0sQ0FBQyxNQUFNLDJCQUEyQixHQUFHLElBQUksMkJBQTJCLEVBQUUsQ0FBQztBQUM3RSxNQUFNLENBQUMsTUFBTSx5QkFBeUIsR0FBRyxJQUFJLHlCQUF5QixFQUFFLENBQUMifQ==
|
@@ -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=
|