@walletmesh/aztec-rpc-wallet 0.1.0 → 0.2.0
Sign up to get free protection for your applications and to get access to all the features.
- package/CHANGELOG.md +18 -0
- package/README.md +4 -4
- package/dist/.tsbuildinfo +1 -1
- package/dist/aztecRemoteWallet.d.ts +7 -6
- package/dist/aztecRemoteWallet.d.ts.map +1 -1
- package/dist/aztecRemoteWallet.js +15 -10
- package/dist/chainProvider.d.ts.map +1 -1
- package/dist/chainProvider.js +1 -1
- package/dist/errors.d.ts.map +1 -1
- package/dist/errors.js +1 -1
- package/dist/handlers/aztecAccountWallet.d.ts.map +1 -1
- package/dist/handlers/aztecAccountWallet.js +23 -23
- package/dist/handlers/transactions.d.ts.map +1 -1
- package/dist/handlers/transactions.js +11 -3
- package/dist/serializers/account.d.ts +19 -22
- package/dist/serializers/account.d.ts.map +1 -1
- package/dist/serializers/account.js +44 -45
- package/dist/serializers/contract.d.ts +11 -63
- package/dist/serializers/contract.d.ts.map +1 -1
- package/dist/serializers/contract.js +67 -153
- package/dist/serializers/index.d.ts +1 -4
- package/dist/serializers/index.d.ts.map +1 -1
- package/dist/serializers/index.js +12 -12
- package/dist/serializers/log.d.ts +38 -85
- package/dist/serializers/log.d.ts.map +1 -1
- package/dist/serializers/log.js +106 -115
- package/dist/serializers/note.d.ts +24 -27
- package/dist/serializers/note.d.ts.map +1 -1
- package/dist/serializers/note.js +67 -41
- package/dist/serializers/transaction-utils.d.ts +44 -100
- package/dist/serializers/transaction-utils.d.ts.map +1 -1
- package/dist/serializers/transaction-utils.js +89 -116
- package/dist/serializers/transaction.d.ts +15 -18
- package/dist/serializers/transaction.d.ts.map +1 -1
- package/dist/serializers/transaction.js +51 -62
- package/dist/types.d.ts +9 -9
- package/dist/types.d.ts.map +1 -1
- package/dist/types.js +1 -1
- package/package.json +9 -9
- package/src/aztecRemoteWallet.test.ts +34 -33
- package/src/aztecRemoteWallet.ts +25 -15
- package/src/chainProvider.ts +1 -7
- package/src/errors.ts +0 -1
- package/src/handlers/aztecAccountWallet.test.ts +78 -75
- package/src/handlers/aztecAccountWallet.ts +33 -36
- package/src/handlers/transactions.ts +16 -2
- package/src/serializers/account.test.ts +18 -17
- package/src/serializers/account.ts +46 -64
- package/src/serializers/contract.test.ts +14 -16
- package/src/serializers/contract.ts +77 -171
- package/src/serializers/index.test.ts +20 -8
- package/src/serializers/index.ts +16 -32
- package/src/serializers/log.test.ts +201 -28
- package/src/serializers/log.ts +162 -153
- package/src/serializers/note.test.ts +26 -28
- package/src/serializers/note.ts +71 -48
- package/src/serializers/transaction-utils.ts +147 -210
- package/src/serializers/transaction.test.ts +190 -30
- package/src/serializers/transaction.ts +62 -83
- package/src/types.ts +10 -9
- package/tsconfig.json +1 -1
- package/vitest.config.ts +1 -1
- package/dist/serializers/contract-utils.d.ts +0 -40
- package/dist/serializers/contract-utils.d.ts.map +0 -1
- package/dist/serializers/contract-utils.js +0 -102
- package/dist/serializers/core.d.ts +0 -110
- package/dist/serializers/core.d.ts.map +0 -1
- package/dist/serializers/core.js +0 -130
- package/dist/serializers/types.d.ts +0 -49
- package/dist/serializers/types.d.ts.map +0 -1
- package/dist/serializers/types.js +0 -22
- package/src/serializers/contract-utils.ts +0 -104
- package/src/serializers/core.test.ts +0 -56
- package/src/serializers/core.ts +0 -141
- package/src/serializers/types.ts +0 -58
package/dist/serializers/note.js
CHANGED
@@ -1,41 +1,67 @@
|
|
1
|
-
import {
|
2
|
-
import {
|
3
|
-
import { ExtendedNote } from '@aztec/aztec.js';
|
1
|
+
import { UniqueNote, TxHash } from '@aztec/circuit-types';
|
2
|
+
import { ExtendedNote, AztecAddress, Fr } from '@aztec/aztec.js';
|
4
3
|
/**
|
5
|
-
* Serializer for the
|
6
|
-
* Handles serialization of
|
7
|
-
* Used to retrieve notes that have been sent to an account but not yet processed.
|
4
|
+
* Serializer for the aztec_getNotes RPC method.
|
5
|
+
* Handles serialization of note queries and results between JSON-RPC format and native Aztec types.
|
8
6
|
*/
|
9
|
-
export class
|
7
|
+
export class AztecGetNotesSerializer {
|
10
8
|
constructor() {
|
11
9
|
this.params = {
|
12
10
|
/**
|
13
|
-
* Serializes
|
11
|
+
* Serializes notes filter parameters for RPC transport.
|
14
12
|
* @param method - The RPC method name
|
15
|
-
* @param value - The parameters containing filter criteria for
|
13
|
+
* @param value - The parameters containing filter criteria for notes
|
16
14
|
* @returns Serialized filter data
|
17
15
|
*/
|
18
16
|
serialize: (method, value) => {
|
19
17
|
const { filter } = value;
|
18
|
+
// Convert instances to their string representations for transport
|
19
|
+
const serializedFilter = {
|
20
|
+
txHash: filter.txHash?.toString(),
|
21
|
+
contractAddress: filter.contractAddress?.toString(),
|
22
|
+
storageSlot: filter.storageSlot?.toString(),
|
23
|
+
owner: filter.owner?.toString(),
|
24
|
+
status: filter.status,
|
25
|
+
siloedNullifier: filter.siloedNullifier?.toString(),
|
26
|
+
scopes: filter.scopes?.map((scope) => scope.toString()),
|
27
|
+
};
|
20
28
|
return {
|
21
29
|
method,
|
22
|
-
serialized:
|
30
|
+
serialized: JSON.stringify({ filter: serializedFilter }),
|
23
31
|
};
|
24
32
|
},
|
25
33
|
/**
|
26
|
-
* Deserializes
|
27
|
-
* @param
|
34
|
+
* Deserializes notes filter parameters from RPC transport.
|
35
|
+
* @param _method - The RPC method name
|
28
36
|
* @param data - The serialized filter data
|
29
37
|
* @returns Deserialized filter parameters
|
30
38
|
*/
|
31
|
-
deserialize: (
|
32
|
-
const filter = JSON.parse(
|
33
|
-
|
39
|
+
deserialize: (_method, data) => {
|
40
|
+
const { filter } = JSON.parse(data.serialized);
|
41
|
+
// Convert string representations back to instances
|
42
|
+
const notesFilter = {};
|
43
|
+
if (filter.txHash)
|
44
|
+
notesFilter.txHash = TxHash.fromString(filter.txHash);
|
45
|
+
if (filter.contractAddress)
|
46
|
+
notesFilter.contractAddress = AztecAddress.fromString(filter.contractAddress);
|
47
|
+
if (filter.storageSlot)
|
48
|
+
notesFilter.storageSlot = Fr.fromString(filter.storageSlot);
|
49
|
+
if (filter.owner)
|
50
|
+
notesFilter.owner = AztecAddress.fromString(filter.owner);
|
51
|
+
if (filter.status)
|
52
|
+
notesFilter.status = filter.status;
|
53
|
+
if (filter.siloedNullifier)
|
54
|
+
notesFilter.siloedNullifier = Fr.fromString(filter.siloedNullifier);
|
55
|
+
if (filter.scopes)
|
56
|
+
notesFilter.scopes = filter.scopes.map((scope) => AztecAddress.fromString(scope));
|
57
|
+
return {
|
58
|
+
filter: notesFilter,
|
59
|
+
};
|
34
60
|
},
|
35
61
|
};
|
36
62
|
this.result = {
|
37
63
|
/**
|
38
|
-
* Serializes the
|
64
|
+
* Serializes the notes query result.
|
39
65
|
* @param method - The RPC method name
|
40
66
|
* @param value - Array of unique notes matching the filter criteria
|
41
67
|
* @returns Serialized note array
|
@@ -43,17 +69,17 @@ export class AztecGetIncomingNotesSerializer {
|
|
43
69
|
serialize: (method, value) => {
|
44
70
|
return {
|
45
71
|
method,
|
46
|
-
serialized:
|
72
|
+
serialized: JSON.stringify(value.map((n) => n.toString())),
|
47
73
|
};
|
48
74
|
},
|
49
75
|
/**
|
50
|
-
* Deserializes the
|
51
|
-
* @param
|
76
|
+
* Deserializes the notes query result.
|
77
|
+
* @param _method - The RPC method name
|
52
78
|
* @param data - The serialized note array data
|
53
79
|
* @returns Array of deserialized unique notes
|
54
80
|
*/
|
55
|
-
deserialize: (
|
56
|
-
return JSON.parse(
|
81
|
+
deserialize: (_method, data) => {
|
82
|
+
return JSON.parse(data.serialized).map((n) => UniqueNote.fromString(n));
|
57
83
|
},
|
58
84
|
};
|
59
85
|
}
|
@@ -61,7 +87,6 @@ export class AztecGetIncomingNotesSerializer {
|
|
61
87
|
/**
|
62
88
|
* Serializer for the aztec_addNote RPC method.
|
63
89
|
* Handles serialization of note addition requests between JSON-RPC format and native Aztec types.
|
64
|
-
* Used to add new notes to an account's note tree.
|
65
90
|
*/
|
66
91
|
export class AztecAddNoteSerializer {
|
67
92
|
constructor() {
|
@@ -76,17 +101,18 @@ export class AztecAddNoteSerializer {
|
|
76
101
|
const { note } = value;
|
77
102
|
return {
|
78
103
|
method,
|
79
|
-
serialized:
|
104
|
+
serialized: JSON.stringify({ note: note.toBuffer().toString('base64') }),
|
80
105
|
};
|
81
106
|
},
|
82
107
|
/**
|
83
108
|
* Deserializes note addition parameters from RPC transport.
|
84
|
-
* @param
|
109
|
+
* @param _method - The RPC method name
|
85
110
|
* @param data - The serialized note data
|
86
111
|
* @returns Deserialized note parameters
|
87
112
|
*/
|
88
|
-
deserialize: (
|
89
|
-
const note =
|
113
|
+
deserialize: (_method, data) => {
|
114
|
+
const { note: noteBase64 } = JSON.parse(data.serialized);
|
115
|
+
const note = ExtendedNote.fromBuffer(Buffer.from(noteBase64, 'base64'));
|
90
116
|
return { note };
|
91
117
|
},
|
92
118
|
};
|
@@ -100,17 +126,17 @@ export class AztecAddNoteSerializer {
|
|
100
126
|
serialize: (method, value) => {
|
101
127
|
return {
|
102
128
|
method,
|
103
|
-
serialized:
|
129
|
+
serialized: JSON.stringify(value),
|
104
130
|
};
|
105
131
|
},
|
106
132
|
/**
|
107
133
|
* Deserializes the note addition result.
|
108
|
-
* @param
|
134
|
+
* @param _method - The RPC method name
|
109
135
|
* @param data - The serialized result data
|
110
136
|
* @returns Boolean indicating success
|
111
137
|
*/
|
112
|
-
deserialize: (
|
113
|
-
return JSON.parse(
|
138
|
+
deserialize: (_method, data) => {
|
139
|
+
return JSON.parse(data.serialized);
|
114
140
|
},
|
115
141
|
};
|
116
142
|
}
|
@@ -118,7 +144,6 @@ export class AztecAddNoteSerializer {
|
|
118
144
|
/**
|
119
145
|
* Serializer for the aztec_addNullifiedNote RPC method.
|
120
146
|
* Handles serialization of nullified note addition requests between JSON-RPC format and native Aztec types.
|
121
|
-
* Used to mark notes as spent/nullified in the note tree.
|
122
147
|
*/
|
123
148
|
export class AztecAddNullifiedNoteSerializer {
|
124
149
|
constructor() {
|
@@ -133,17 +158,18 @@ export class AztecAddNullifiedNoteSerializer {
|
|
133
158
|
const { note } = value;
|
134
159
|
return {
|
135
160
|
method,
|
136
|
-
serialized:
|
161
|
+
serialized: JSON.stringify({ note: note.toBuffer().toString('base64') }),
|
137
162
|
};
|
138
163
|
},
|
139
164
|
/**
|
140
165
|
* Deserializes nullified note addition parameters from RPC transport.
|
141
|
-
* @param
|
166
|
+
* @param _method - The RPC method name
|
142
167
|
* @param data - The serialized note data
|
143
168
|
* @returns Deserialized note parameters
|
144
169
|
*/
|
145
|
-
deserialize: (
|
146
|
-
const note =
|
170
|
+
deserialize: (_method, data) => {
|
171
|
+
const { note: noteBase64 } = JSON.parse(data.serialized);
|
172
|
+
const note = ExtendedNote.fromBuffer(Buffer.from(noteBase64, 'base64'));
|
147
173
|
return { note };
|
148
174
|
},
|
149
175
|
};
|
@@ -157,17 +183,17 @@ export class AztecAddNullifiedNoteSerializer {
|
|
157
183
|
serialize: (method, value) => {
|
158
184
|
return {
|
159
185
|
method,
|
160
|
-
serialized:
|
186
|
+
serialized: JSON.stringify(value),
|
161
187
|
};
|
162
188
|
},
|
163
189
|
/**
|
164
190
|
* Deserializes the nullified note addition result.
|
165
|
-
* @param
|
191
|
+
* @param _method - The RPC method name
|
166
192
|
* @param data - The serialized result data
|
167
193
|
* @returns Boolean indicating success
|
168
194
|
*/
|
169
|
-
deserialize: (
|
170
|
-
return JSON.parse(
|
195
|
+
deserialize: (_method, data) => {
|
196
|
+
return JSON.parse(data.serialized);
|
171
197
|
},
|
172
198
|
};
|
173
199
|
}
|
@@ -176,7 +202,7 @@ export class AztecAddNullifiedNoteSerializer {
|
|
176
202
|
* Pre-instantiated serializer instances for Aztec note-related RPC methods.
|
177
203
|
* These instances can be used directly by the RPC handler implementation.
|
178
204
|
*/
|
179
|
-
export const
|
205
|
+
export const aztecGetNotesSerializer = new AztecGetNotesSerializer();
|
180
206
|
export const aztecAddNoteSerializer = new AztecAddNoteSerializer();
|
181
207
|
export const aztecAddNullifiedNoteSerializer = new AztecAddNullifiedNoteSerializer();
|
182
|
-
//# sourceMappingURL=data:application/json;base64,
|
208
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibm90ZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9zZXJpYWxpemVycy9ub3RlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUVBLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxFQUFvQixNQUFNLHNCQUFzQixDQUFDO0FBQzVFLE9BQU8sRUFBRSxZQUFZLEVBQUUsWUFBWSxFQUFFLEVBQUUsRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBRWpFOzs7R0FHRztBQUNILE1BQU0sT0FBTyx1QkFBdUI7SUFBcEM7UUFPRSxXQUFNLEdBQUc7WUFDUDs7Ozs7ZUFLRztZQUNILFNBQVMsRUFBRSxDQUNULE1BQWMsRUFDZCxLQUF1RCxFQUNoQyxFQUFFO2dCQUN6QixNQUFNLEVBQUUsTUFBTSxFQUFFLEdBQUcsS0FBSyxDQUFDO2dCQUN6QixrRUFBa0U7Z0JBQ2xFLE1BQU0sZ0JBQWdCLEdBQUc7b0JBQ3ZCLE1BQU0sRUFBRSxNQUFNLENBQUMsTUFBTSxFQUFFLFFBQVEsRUFBRTtvQkFDakMsZUFBZSxFQUFFLE1BQU0sQ0FBQyxlQUFlLEVBQUUsUUFBUSxFQUFFO29CQUNuRCxXQUFXLEVBQUUsTUFBTSxDQUFDLFdBQVcsRUFBRSxRQUFRLEVBQUU7b0JBQzNDLEtBQUssRUFBRSxNQUFNLENBQUMsS0FBSyxFQUFFLFFBQVEsRUFBRTtvQkFDL0IsTUFBTSxFQUFFLE1BQU0sQ0FBQyxNQUFNO29CQUNyQixlQUFlLEVBQUUsTUFBTSxDQUFDLGVBQWUsRUFBRSxRQUFRLEVBQUU7b0JBQ25ELE1BQU0sRUFBRSxNQUFNLENBQUMsTUFBTSxFQUFFLEdBQUcsQ0FBQyxDQUFDLEtBQUssRUFBRSxFQUFFLENBQUMsS0FBSyxDQUFDLFFBQVEsRUFBRSxDQUFDO2lCQUN4RCxDQUFDO2dCQUVGLE9BQU87b0JBQ0wsTUFBTTtvQkFDTixVQUFVLEVBQUUsSUFBSSxDQUFDLFNBQVMsQ0FBQyxFQUFFLE1BQU0sRUFBRSxnQkFBZ0IsRUFBRSxDQUFDO2lCQUN6RCxD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
|
@@ -1,107 +1,51 @@
|
|
1
|
-
import { PrivateExecutionResult, TxProvingResult } from '@aztec/circuit-types';
|
2
|
-
import type { CountedContractClassLog, CountedPublicExecutionRequest, NoteAndSlot, PublicExecutionRequest } from '@aztec/circuit-types';
|
3
|
-
import type { ClientIvcProof, PrivateCircuitPublicInputs, PrivateKernelTailCircuitPublicInputs } from '@aztec/circuits.js';
|
4
1
|
/**
|
5
|
-
*
|
6
|
-
*
|
2
|
+
* @module transaction-utils
|
3
|
+
* Utilities for serializing and deserializing Aztec transaction execution requests.
|
4
|
+
* These utilities handle the conversion between native Aztec types and JSON-RPC compatible formats.
|
7
5
|
*/
|
8
|
-
|
9
|
-
acir: string;
|
10
|
-
vk: string;
|
11
|
-
partialWitness: [number, string][];
|
12
|
-
publicInputs: PrivateCircuitPublicInputs;
|
13
|
-
noteHashLeafIndexMap: [string, string][];
|
14
|
-
newNotes: NoteAndSlot[];
|
15
|
-
noteHashNullifierCounterMap: [number, number][];
|
16
|
-
returnValues: string[];
|
17
|
-
nestedExecutions: SerializedPrivateExecutionResultData[];
|
18
|
-
enqueuedPublicFunctionCalls: CountedPublicExecutionRequest[];
|
19
|
-
publicTeardownFunctionCall: PublicExecutionRequest;
|
20
|
-
contractClassLogs: CountedContractClassLog[];
|
21
|
-
}
|
6
|
+
import type { ExecutionRequestInit } from '@aztec/aztec.js/entrypoint';
|
22
7
|
/**
|
23
|
-
*
|
24
|
-
*
|
8
|
+
* Serializes an ExecutionRequestInit object to a string for JSON-RPC transport.
|
9
|
+
* This function converts a native Aztec transaction execution request into a format
|
10
|
+
* that can be safely transmitted over JSON-RPC, handling the conversion of complex
|
11
|
+
* types like addresses, field elements, and function selectors to strings.
|
12
|
+
*
|
13
|
+
* Note: The fee payment method is not serialized as it contains async methods.
|
14
|
+
* The deserializer will use a default NoFeePaymentMethod which should be replaced
|
15
|
+
* by the caller with an appropriate implementation.
|
16
|
+
*
|
17
|
+
* @param init - The ExecutionRequestInit object to serialize, containing:
|
18
|
+
* - calls: Array of function calls to execute
|
19
|
+
* - fee: Gas settings and payment method
|
20
|
+
* - authWitnesses: Optional authentication proofs
|
21
|
+
* - hashedArguments: Optional pre-hashed arguments
|
22
|
+
* - nonce: Optional transaction nonce
|
23
|
+
* - cancellable: Optional cancellation flag
|
24
|
+
* @returns A JSON string representation of the serialized data, with all complex
|
25
|
+
* Aztec types converted to string representations
|
26
|
+
* @throws If any of the complex types cannot be serialized
|
25
27
|
*/
|
26
|
-
export declare
|
27
|
-
/**
|
28
|
-
* Creates a SerializablePrivateExecutionResult from a PrivateExecutionResult instance.
|
29
|
-
* @param result - The PrivateExecutionResult to convert
|
30
|
-
* @returns A new SerializablePrivateExecutionResult instance
|
31
|
-
*/
|
32
|
-
static from(result: PrivateExecutionResult): SerializablePrivateExecutionResult;
|
33
|
-
/**
|
34
|
-
* Converts the execution result to a JSON-serializable format.
|
35
|
-
* Handles conversion of complex types like Buffers, Maps, and nested execution results.
|
36
|
-
* @returns The serialized execution result data
|
37
|
-
*/
|
38
|
-
toJSON(): SerializedPrivateExecutionResultData;
|
39
|
-
/**
|
40
|
-
* Creates a SerializablePrivateExecutionResult from JSON data.
|
41
|
-
* @param json - JSON string or pre-parsed data object
|
42
|
-
* @returns A new SerializablePrivateExecutionResult instance
|
43
|
-
*/
|
44
|
-
static fromJSON(json: string | SerializedPrivateExecutionResultData): SerializablePrivateExecutionResult;
|
45
|
-
/**
|
46
|
-
* Compares this execution result with another for equality.
|
47
|
-
* @param other - The execution result to compare against
|
48
|
-
* @returns True if the execution results are equivalent
|
49
|
-
*/
|
50
|
-
equals(other: PrivateExecutionResult): boolean;
|
51
|
-
toComparable(): SerializedPrivateExecutionResultData;
|
52
|
-
}
|
28
|
+
export declare function serializeExecutionRequestInit(init: ExecutionRequestInit): string;
|
53
29
|
/**
|
54
|
-
*
|
55
|
-
*
|
30
|
+
* Deserializes a string into an ExecutionRequestInit object for use in the Aztec protocol.
|
31
|
+
* This function reconstructs a native Aztec transaction execution request from its
|
32
|
+
* JSON-RPC serialized form, converting string representations back into their
|
33
|
+
* appropriate Aztec types.
|
34
|
+
*
|
35
|
+
* Note: A default NoFeePaymentMethod is used for the fee payment method.
|
36
|
+
* The caller should override this with the appropriate implementation based on
|
37
|
+
* their fee payment requirements.
|
38
|
+
*
|
39
|
+
* @param data - The serialized string data containing:
|
40
|
+
* - calls: Array of serialized function calls
|
41
|
+
* - fee: Serialized gas settings
|
42
|
+
* - authWitnesses: Optional serialized authentication proofs
|
43
|
+
* - hashedArguments: Optional serialized hashed arguments
|
44
|
+
* - nonce: Optional serialized nonce
|
45
|
+
* - cancellable: Optional cancellation flag
|
46
|
+
* @returns The deserialized ExecutionRequestInit object with all string representations
|
47
|
+
* converted back to their native Aztec types
|
48
|
+
* @throws If any of the serialized data cannot be properly deserialized into valid Aztec types
|
56
49
|
*/
|
57
|
-
|
58
|
-
privateExecutionResult: ReturnType<SerializablePrivateExecutionResult['toJSON']>;
|
59
|
-
publicInputs: PrivateKernelTailCircuitPublicInputs;
|
60
|
-
clientIvcProof: ClientIvcProof;
|
61
|
-
}
|
62
|
-
/**
|
63
|
-
* Extends TxProvingResult to add serialization capabilities.
|
64
|
-
* Provides methods to convert transaction proving results to/from JSON format for RPC transport.
|
65
|
-
*/
|
66
|
-
export declare class SerializableTxProvingResult extends TxProvingResult {
|
67
|
-
/**
|
68
|
-
* Creates a SerializableTxProvingResult from a TxProvingResult instance.
|
69
|
-
* @param result - The TxProvingResult to convert
|
70
|
-
* @returns A new SerializableTxProvingResult instance
|
71
|
-
*/
|
72
|
-
static from(result: TxProvingResult): SerializableTxProvingResult;
|
73
|
-
/**
|
74
|
-
* Converts the proving result to a JSON-serializable format.
|
75
|
-
* @returns The serialized proving result data
|
76
|
-
*/
|
77
|
-
toJSON(): SerializedTxProvingResultData;
|
78
|
-
/**
|
79
|
-
* Creates a SerializableTxProvingResult from JSON data.
|
80
|
-
* @param json - JSON string or pre-parsed data object
|
81
|
-
* @returns A new SerializableTxProvingResult instance
|
82
|
-
*/
|
83
|
-
static fromJSON(json: string | SerializedTxProvingResultData): SerializableTxProvingResult;
|
84
|
-
/**
|
85
|
-
* Compares this proving result with another for equality.
|
86
|
-
* @param other - The proving result to compare against
|
87
|
-
* @returns True if the proving results are equivalent
|
88
|
-
*/
|
89
|
-
equals(other: TxProvingResult): boolean;
|
90
|
-
toComparable(): SerializedTxProvingResultData;
|
91
|
-
}
|
92
|
-
/**
|
93
|
-
* Utility function to compare two PrivateExecutionResult instances for equality.
|
94
|
-
* @param a - First execution result
|
95
|
-
* @param b - Second execution result
|
96
|
-
* @returns True if the execution results are equivalent
|
97
|
-
*/
|
98
|
-
export declare function comparePrivateExecutionResults(a: PrivateExecutionResult, b: PrivateExecutionResult): boolean;
|
99
|
-
/**
|
100
|
-
* Utility function to compare two TxProvingResult instances for equality.
|
101
|
-
* @param a - First proving result
|
102
|
-
* @param b - Second proving result
|
103
|
-
* @returns True if the proving results are equivalent
|
104
|
-
*/
|
105
|
-
export declare function compareTxProvingResults(a: TxProvingResult, b: TxProvingResult): boolean;
|
106
|
-
export {};
|
50
|
+
export declare function deserializeExecutionRequestInit(data: string): ExecutionRequestInit;
|
107
51
|
//# sourceMappingURL=transaction-utils.d.ts.map
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"transaction-utils.d.ts","sourceRoot":"","sources":["../../src/serializers/transaction-utils.ts"],"names":[],"mappings":"AAAA
|
1
|
+
{"version":3,"file":"transaction-utils.d.ts","sourceRoot":"","sources":["../../src/serializers/transaction-utils.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAKH,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,4BAA4B,CAAC;AAiDvE;;;;;;;;;;;;;;;;;;;;GAoBG;AACH,wBAAgB,6BAA6B,CAAC,IAAI,EAAE,oBAAoB,GAAG,MAAM,CAiChF;AAED;;;;;;;;;;;;;;;;;;;;GAoBG;AACH,wBAAgB,+BAA+B,CAAC,IAAI,EAAE,MAAM,GAAG,oBAAoB,CAsClF"}
|