@jack-kernel/sdk 1.0.0 → 1.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/dist/cjs/index.js +43 -2
- package/dist/cjs/index.js.map +1 -1
- package/dist/cjs/yellow/channel-state-manager.js +167 -0
- package/dist/cjs/yellow/channel-state-manager.js.map +1 -0
- package/dist/cjs/yellow/clear-node-connection.js +390 -0
- package/dist/cjs/yellow/clear-node-connection.js.map +1 -0
- package/dist/cjs/yellow/event-mapper.js +254 -0
- package/dist/cjs/yellow/event-mapper.js.map +1 -0
- package/dist/cjs/yellow/serialization.js +130 -0
- package/dist/cjs/yellow/serialization.js.map +1 -0
- package/dist/cjs/yellow/session-key-manager.js +308 -0
- package/dist/cjs/yellow/session-key-manager.js.map +1 -0
- package/dist/cjs/yellow/types.js +12 -0
- package/dist/cjs/yellow/types.js.map +1 -0
- package/dist/cjs/yellow/yellow-provider.js +1545 -0
- package/dist/cjs/yellow/yellow-provider.js.map +1 -0
- package/dist/esm/index.js +34 -1
- package/dist/esm/index.js.map +1 -1
- package/dist/esm/yellow/channel-state-manager.js +163 -0
- package/dist/esm/yellow/channel-state-manager.js.map +1 -0
- package/dist/esm/yellow/clear-node-connection.js +385 -0
- package/dist/esm/yellow/clear-node-connection.js.map +1 -0
- package/dist/esm/yellow/event-mapper.js +248 -0
- package/dist/esm/yellow/event-mapper.js.map +1 -0
- package/dist/esm/yellow/serialization.js +125 -0
- package/dist/esm/yellow/serialization.js.map +1 -0
- package/dist/esm/yellow/session-key-manager.js +302 -0
- package/dist/esm/yellow/session-key-manager.js.map +1 -0
- package/dist/esm/yellow/types.js +11 -0
- package/dist/esm/yellow/types.js.map +1 -0
- package/dist/esm/yellow/yellow-provider.js +1538 -0
- package/dist/esm/yellow/yellow-provider.js.map +1 -0
- package/dist/types/index.d.ts +47 -2
- package/dist/types/index.d.ts.map +1 -1
- package/dist/types/yellow/channel-state-manager.d.ts +106 -0
- package/dist/types/yellow/channel-state-manager.d.ts.map +1 -0
- package/dist/types/yellow/clear-node-connection.d.ts +202 -0
- package/dist/types/yellow/clear-node-connection.d.ts.map +1 -0
- package/dist/types/yellow/event-mapper.d.ts +74 -0
- package/dist/types/yellow/event-mapper.d.ts.map +1 -0
- package/dist/types/yellow/serialization.d.ts +52 -0
- package/dist/types/yellow/serialization.d.ts.map +1 -0
- package/dist/types/yellow/session-key-manager.d.ts +179 -0
- package/dist/types/yellow/session-key-manager.d.ts.map +1 -0
- package/dist/types/yellow/types.d.ts +177 -0
- package/dist/types/yellow/types.d.ts.map +1 -0
- package/dist/types/yellow/yellow-provider.d.ts +303 -0
- package/dist/types/yellow/yellow-provider.d.ts.map +1 -0
- package/package.json +1 -1
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"clear-node-connection.js","sourceRoot":"","sources":["../../../src/yellow/clear-node-connection.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,254 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
/**
|
|
3
|
+
* Yellow Network Event-to-Status Mapper
|
|
4
|
+
*
|
|
5
|
+
* Maps Yellow Network events, channel statuses, and state intents to JACK
|
|
6
|
+
* ExecutionStatus values. These are pure functions with no side effects,
|
|
7
|
+
* extracted from the dashboard's route.ts mapping tables into SDK-level
|
|
8
|
+
* reusable functions.
|
|
9
|
+
*
|
|
10
|
+
* Requirements: 9.1, 9.2, 9.3, 9.4, 9.5, 9.6
|
|
11
|
+
*/
|
|
12
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
13
|
+
exports.mapYellowEvent = mapYellowEvent;
|
|
14
|
+
exports.mapChannelStatus = mapChannelStatus;
|
|
15
|
+
exports.mapStateIntent = mapStateIntent;
|
|
16
|
+
exports.inferMapping = inferMapping;
|
|
17
|
+
const types_js_1 = require("../types.js");
|
|
18
|
+
// ============================================================================
|
|
19
|
+
// Terminal statuses — only SETTLED, ABORTED, and EXPIRED are terminal
|
|
20
|
+
// ============================================================================
|
|
21
|
+
const TERMINAL_STATUSES = new Set([
|
|
22
|
+
types_js_1.ExecutionStatus.SETTLED,
|
|
23
|
+
types_js_1.ExecutionStatus.ABORTED,
|
|
24
|
+
types_js_1.ExecutionStatus.EXPIRED,
|
|
25
|
+
]);
|
|
26
|
+
// ============================================================================
|
|
27
|
+
// Yellow Event Mapping Table
|
|
28
|
+
// ============================================================================
|
|
29
|
+
const EVENT_STATUS_MAP = {
|
|
30
|
+
quote_accepted: {
|
|
31
|
+
executionStatus: types_js_1.ExecutionStatus.QUOTED,
|
|
32
|
+
stepLabel: 'Solver Quote Accepted (Yellow Network)',
|
|
33
|
+
stepStatus: 'COMPLETED',
|
|
34
|
+
isTerminal: false,
|
|
35
|
+
},
|
|
36
|
+
solver_quoted: {
|
|
37
|
+
executionStatus: types_js_1.ExecutionStatus.QUOTED,
|
|
38
|
+
stepLabel: 'Solver Quote Received (Yellow Network)',
|
|
39
|
+
stepStatus: 'COMPLETED',
|
|
40
|
+
isTerminal: false,
|
|
41
|
+
},
|
|
42
|
+
execution_started: {
|
|
43
|
+
executionStatus: types_js_1.ExecutionStatus.EXECUTING,
|
|
44
|
+
stepLabel: 'Execution Started (Yellow Network)',
|
|
45
|
+
stepStatus: 'IN_PROGRESS',
|
|
46
|
+
isTerminal: false,
|
|
47
|
+
},
|
|
48
|
+
routing_started: {
|
|
49
|
+
executionStatus: types_js_1.ExecutionStatus.EXECUTING,
|
|
50
|
+
stepLabel: 'Cross-Chain Routing Started (Yellow Network)',
|
|
51
|
+
stepStatus: 'IN_PROGRESS',
|
|
52
|
+
isTerminal: false,
|
|
53
|
+
},
|
|
54
|
+
settlement_submitted: {
|
|
55
|
+
executionStatus: types_js_1.ExecutionStatus.SETTLING,
|
|
56
|
+
stepLabel: 'Settlement Submitted (Yellow Network)',
|
|
57
|
+
stepStatus: 'IN_PROGRESS',
|
|
58
|
+
isTerminal: false,
|
|
59
|
+
},
|
|
60
|
+
settled: {
|
|
61
|
+
executionStatus: types_js_1.ExecutionStatus.SETTLED,
|
|
62
|
+
stepLabel: 'Settlement Finalized (Yellow Network)',
|
|
63
|
+
stepStatus: 'COMPLETED',
|
|
64
|
+
isTerminal: true,
|
|
65
|
+
},
|
|
66
|
+
settlement_finalized: {
|
|
67
|
+
executionStatus: types_js_1.ExecutionStatus.SETTLED,
|
|
68
|
+
stepLabel: 'Settlement Finalized (Yellow Network)',
|
|
69
|
+
stepStatus: 'COMPLETED',
|
|
70
|
+
isTerminal: true,
|
|
71
|
+
},
|
|
72
|
+
failed: {
|
|
73
|
+
executionStatus: types_js_1.ExecutionStatus.ABORTED,
|
|
74
|
+
stepLabel: 'Execution Failed (Yellow Network)',
|
|
75
|
+
stepStatus: 'FAILED',
|
|
76
|
+
isTerminal: true,
|
|
77
|
+
},
|
|
78
|
+
execution_failed: {
|
|
79
|
+
executionStatus: types_js_1.ExecutionStatus.ABORTED,
|
|
80
|
+
stepLabel: 'Execution Failed (Yellow Network)',
|
|
81
|
+
stepStatus: 'FAILED',
|
|
82
|
+
isTerminal: true,
|
|
83
|
+
},
|
|
84
|
+
settlement_failed: {
|
|
85
|
+
executionStatus: types_js_1.ExecutionStatus.ABORTED,
|
|
86
|
+
stepLabel: 'Settlement Failed (Yellow Network)',
|
|
87
|
+
stepStatus: 'FAILED',
|
|
88
|
+
isTerminal: true,
|
|
89
|
+
},
|
|
90
|
+
expired: {
|
|
91
|
+
executionStatus: types_js_1.ExecutionStatus.EXPIRED,
|
|
92
|
+
stepLabel: 'Intent Expired (Yellow Network)',
|
|
93
|
+
stepStatus: 'FAILED',
|
|
94
|
+
isTerminal: true,
|
|
95
|
+
},
|
|
96
|
+
canceled: {
|
|
97
|
+
executionStatus: types_js_1.ExecutionStatus.ABORTED,
|
|
98
|
+
stepLabel: 'Intent Canceled (Yellow Network)',
|
|
99
|
+
stepStatus: 'FAILED',
|
|
100
|
+
isTerminal: true,
|
|
101
|
+
},
|
|
102
|
+
};
|
|
103
|
+
// ============================================================================
|
|
104
|
+
// Channel Status Mapping Table
|
|
105
|
+
// ============================================================================
|
|
106
|
+
const CHANNEL_STATUS_MAP = {
|
|
107
|
+
void: {
|
|
108
|
+
executionStatus: types_js_1.ExecutionStatus.CREATED,
|
|
109
|
+
stepLabel: 'Channel Status: VOID (ERC-7824)',
|
|
110
|
+
stepStatus: 'COMPLETED',
|
|
111
|
+
isTerminal: false,
|
|
112
|
+
},
|
|
113
|
+
initial: {
|
|
114
|
+
executionStatus: types_js_1.ExecutionStatus.QUOTED,
|
|
115
|
+
stepLabel: 'Channel Status: INITIAL (ERC-7824)',
|
|
116
|
+
stepStatus: 'IN_PROGRESS',
|
|
117
|
+
isTerminal: false,
|
|
118
|
+
},
|
|
119
|
+
active: {
|
|
120
|
+
executionStatus: types_js_1.ExecutionStatus.EXECUTING,
|
|
121
|
+
stepLabel: 'Channel Status: ACTIVE (ERC-7824)',
|
|
122
|
+
stepStatus: 'IN_PROGRESS',
|
|
123
|
+
isTerminal: false,
|
|
124
|
+
},
|
|
125
|
+
dispute: {
|
|
126
|
+
executionStatus: types_js_1.ExecutionStatus.EXECUTING,
|
|
127
|
+
stepLabel: 'Channel Status: DISPUTE (ERC-7824)',
|
|
128
|
+
stepStatus: 'IN_PROGRESS',
|
|
129
|
+
isTerminal: false,
|
|
130
|
+
},
|
|
131
|
+
final: {
|
|
132
|
+
executionStatus: types_js_1.ExecutionStatus.SETTLED,
|
|
133
|
+
stepLabel: 'Channel Status: FINAL (ERC-7824)',
|
|
134
|
+
stepStatus: 'COMPLETED',
|
|
135
|
+
isTerminal: true,
|
|
136
|
+
},
|
|
137
|
+
};
|
|
138
|
+
// ============================================================================
|
|
139
|
+
// State Intent Mapping Table
|
|
140
|
+
// ============================================================================
|
|
141
|
+
const STATE_INTENT_MAP = {
|
|
142
|
+
initialize: {
|
|
143
|
+
executionStatus: types_js_1.ExecutionStatus.QUOTED,
|
|
144
|
+
stepLabel: 'State Intent: INITIALIZE (ERC-7824)',
|
|
145
|
+
stepStatus: 'IN_PROGRESS',
|
|
146
|
+
isTerminal: false,
|
|
147
|
+
},
|
|
148
|
+
operate: {
|
|
149
|
+
executionStatus: types_js_1.ExecutionStatus.EXECUTING,
|
|
150
|
+
stepLabel: 'State Intent: OPERATE (ERC-7824)',
|
|
151
|
+
stepStatus: 'IN_PROGRESS',
|
|
152
|
+
isTerminal: false,
|
|
153
|
+
},
|
|
154
|
+
resize: {
|
|
155
|
+
executionStatus: types_js_1.ExecutionStatus.EXECUTING,
|
|
156
|
+
stepLabel: 'State Intent: RESIZE (ERC-7824)',
|
|
157
|
+
stepStatus: 'COMPLETED',
|
|
158
|
+
isTerminal: false,
|
|
159
|
+
},
|
|
160
|
+
finalize: {
|
|
161
|
+
executionStatus: types_js_1.ExecutionStatus.SETTLED,
|
|
162
|
+
stepLabel: 'State Intent: FINALIZE (ERC-7824)',
|
|
163
|
+
stepStatus: 'COMPLETED',
|
|
164
|
+
isTerminal: true,
|
|
165
|
+
},
|
|
166
|
+
};
|
|
167
|
+
// ============================================================================
|
|
168
|
+
// Normalization Helper
|
|
169
|
+
// ============================================================================
|
|
170
|
+
/**
|
|
171
|
+
* Normalizes an event/status/intent string to lowercase with underscores.
|
|
172
|
+
* Trims whitespace and replaces spaces and hyphens with underscores.
|
|
173
|
+
*/
|
|
174
|
+
function normalizeKey(value) {
|
|
175
|
+
return value.trim().toLowerCase().replace(/[\s-]+/g, '_');
|
|
176
|
+
}
|
|
177
|
+
// ============================================================================
|
|
178
|
+
// Public Mapping Functions
|
|
179
|
+
// ============================================================================
|
|
180
|
+
/**
|
|
181
|
+
* Map a Yellow Network event name to a JACK MappedEvent.
|
|
182
|
+
*
|
|
183
|
+
* Accepts event names in any casing; normalizes to lowercase with underscores.
|
|
184
|
+
* Returns undefined for unknown events.
|
|
185
|
+
*
|
|
186
|
+
* @param event - The Yellow Network event name (e.g., "quote_accepted", "settled")
|
|
187
|
+
* @returns The corresponding MappedEvent, or undefined if the event is unknown
|
|
188
|
+
*
|
|
189
|
+
* Requirements: 9.1, 9.2, 9.3, 9.4, 9.5
|
|
190
|
+
*/
|
|
191
|
+
function mapYellowEvent(event) {
|
|
192
|
+
const key = normalizeKey(event);
|
|
193
|
+
return Object.hasOwn(EVENT_STATUS_MAP, key) ? EVENT_STATUS_MAP[key] : undefined;
|
|
194
|
+
}
|
|
195
|
+
/**
|
|
196
|
+
* Map a channel status to a JACK MappedEvent.
|
|
197
|
+
*
|
|
198
|
+
* Accepts channel statuses in any casing (e.g., "ACTIVE", "active", "Active").
|
|
199
|
+
* Returns undefined for unknown statuses.
|
|
200
|
+
*
|
|
201
|
+
* @param status - The ERC-7824 channel status (e.g., "VOID", "ACTIVE", "FINAL")
|
|
202
|
+
* @returns The corresponding MappedEvent, or undefined if the status is unknown
|
|
203
|
+
*
|
|
204
|
+
* Requirement: 9.6
|
|
205
|
+
*/
|
|
206
|
+
function mapChannelStatus(status) {
|
|
207
|
+
const key = normalizeKey(status);
|
|
208
|
+
return Object.hasOwn(CHANNEL_STATUS_MAP, key) ? CHANNEL_STATUS_MAP[key] : undefined;
|
|
209
|
+
}
|
|
210
|
+
/**
|
|
211
|
+
* Map a state intent to a JACK MappedEvent.
|
|
212
|
+
*
|
|
213
|
+
* Accepts state intents in any casing (e.g., "FINALIZE", "finalize", "Finalize").
|
|
214
|
+
* Returns undefined for unknown intents.
|
|
215
|
+
*
|
|
216
|
+
* @param intent - The ERC-7824 state intent (e.g., "INITIALIZE", "OPERATE", "FINALIZE")
|
|
217
|
+
* @returns The corresponding MappedEvent, or undefined if the intent is unknown
|
|
218
|
+
*
|
|
219
|
+
* Requirement: 9.6
|
|
220
|
+
*/
|
|
221
|
+
function mapStateIntent(intent) {
|
|
222
|
+
const key = normalizeKey(intent);
|
|
223
|
+
return Object.hasOwn(STATE_INTENT_MAP, key) ? STATE_INTENT_MAP[key] : undefined;
|
|
224
|
+
}
|
|
225
|
+
/**
|
|
226
|
+
* Infer the best mapping from a notification payload.
|
|
227
|
+
*
|
|
228
|
+
* Checks fields in priority order: event → channelStatus → stateIntent.
|
|
229
|
+
* Returns the first successful mapping, or undefined if no field matches.
|
|
230
|
+
*
|
|
231
|
+
* @param notification - An object with optional event, channelStatus, and stateIntent fields
|
|
232
|
+
* @returns The best matching MappedEvent, or undefined if no mapping is found
|
|
233
|
+
*
|
|
234
|
+
* Requirements: 9.1, 9.2, 9.3, 9.4, 9.5, 9.6
|
|
235
|
+
*/
|
|
236
|
+
function inferMapping(notification) {
|
|
237
|
+
if (notification.event) {
|
|
238
|
+
const mapped = mapYellowEvent(notification.event);
|
|
239
|
+
if (mapped)
|
|
240
|
+
return mapped;
|
|
241
|
+
}
|
|
242
|
+
if (notification.channelStatus) {
|
|
243
|
+
const mapped = mapChannelStatus(notification.channelStatus);
|
|
244
|
+
if (mapped)
|
|
245
|
+
return mapped;
|
|
246
|
+
}
|
|
247
|
+
if (notification.stateIntent) {
|
|
248
|
+
const mapped = mapStateIntent(notification.stateIntent);
|
|
249
|
+
if (mapped)
|
|
250
|
+
return mapped;
|
|
251
|
+
}
|
|
252
|
+
return undefined;
|
|
253
|
+
}
|
|
254
|
+
//# sourceMappingURL=event-mapper.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"event-mapper.js","sourceRoot":"","sources":["../../../src/yellow/event-mapper.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,130 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
/**
|
|
3
|
+
* Yellow Network Integration - BigInt Serialization Utilities
|
|
4
|
+
*
|
|
5
|
+
* Provides helpers to ensure all BigInt values from NitroliteClient responses
|
|
6
|
+
* are converted to string representations in public-facing types, making
|
|
7
|
+
* ChannelState and YellowQuote objects fully JSON-serializable via JSON.stringify.
|
|
8
|
+
*
|
|
9
|
+
* Requirements: 11.1, 11.2, 11.5
|
|
10
|
+
*/
|
|
11
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
12
|
+
exports.serializeBigIntToString = serializeBigIntToString;
|
|
13
|
+
exports.toSerializableChannelState = toSerializableChannelState;
|
|
14
|
+
exports.toSerializableYellowQuote = toSerializableYellowQuote;
|
|
15
|
+
// ============================================================================
|
|
16
|
+
// Core BigInt-to-string conversion
|
|
17
|
+
// ============================================================================
|
|
18
|
+
/**
|
|
19
|
+
* Recursively converts any BigInt values in an object (or nested objects/arrays)
|
|
20
|
+
* to their string representation. All other value types are left unchanged.
|
|
21
|
+
*
|
|
22
|
+
* This is the foundational utility used by the type-specific helpers below.
|
|
23
|
+
* It handles the case where NitroliteClient responses may contain raw BigInt
|
|
24
|
+
* values that would cause JSON.stringify to throw.
|
|
25
|
+
*
|
|
26
|
+
* @param value - Any value that may contain BigInt values at any nesting level
|
|
27
|
+
* @returns A new value with all BigInt instances replaced by their string form
|
|
28
|
+
*
|
|
29
|
+
* Requirement 11.5: Convert BigInt values to string representation for JSON compatibility
|
|
30
|
+
*/
|
|
31
|
+
function serializeBigIntToString(value) {
|
|
32
|
+
if (typeof value === 'bigint') {
|
|
33
|
+
return value.toString();
|
|
34
|
+
}
|
|
35
|
+
if (value === null || value === undefined) {
|
|
36
|
+
return value;
|
|
37
|
+
}
|
|
38
|
+
if (Array.isArray(value)) {
|
|
39
|
+
return value.map((item) => serializeBigIntToString(item));
|
|
40
|
+
}
|
|
41
|
+
if (typeof value === 'object') {
|
|
42
|
+
const result = {};
|
|
43
|
+
for (const [key, val] of Object.entries(value)) {
|
|
44
|
+
result[key] = serializeBigIntToString(val);
|
|
45
|
+
}
|
|
46
|
+
return result;
|
|
47
|
+
}
|
|
48
|
+
// Primitive types (string, number, boolean) pass through unchanged
|
|
49
|
+
return value;
|
|
50
|
+
}
|
|
51
|
+
// ============================================================================
|
|
52
|
+
// Type-specific serialization helpers
|
|
53
|
+
// ============================================================================
|
|
54
|
+
/**
|
|
55
|
+
* Ensures a ChannelState object is fully JSON-serializable.
|
|
56
|
+
*
|
|
57
|
+
* Converts any BigInt values that may be present in the ChannelState
|
|
58
|
+
* (particularly in allocation amounts, challengePeriod, challengeExpiration,
|
|
59
|
+
* stateVersion, chainId, createdAt, updatedAt) to their appropriate
|
|
60
|
+
* JSON-compatible types (string for amounts, number for numeric fields).
|
|
61
|
+
*
|
|
62
|
+
* @param state - A ChannelState that may contain BigInt values from NitroliteClient
|
|
63
|
+
* @returns A new ChannelState with all values JSON-serializable
|
|
64
|
+
*
|
|
65
|
+
* Requirements: 11.1, 11.5
|
|
66
|
+
*/
|
|
67
|
+
function toSerializableChannelState(state) {
|
|
68
|
+
return {
|
|
69
|
+
channelId: String(state.channelId),
|
|
70
|
+
status: state.status,
|
|
71
|
+
chainId: Number(state.chainId),
|
|
72
|
+
token: String(state.token),
|
|
73
|
+
allocations: state.allocations.map(toSerializableAllocation),
|
|
74
|
+
stateVersion: Number(state.stateVersion),
|
|
75
|
+
stateIntent: String(state.stateIntent),
|
|
76
|
+
stateHash: state.stateHash !== undefined ? String(state.stateHash) : undefined,
|
|
77
|
+
adjudicator: String(state.adjudicator),
|
|
78
|
+
challengePeriod: Number(state.challengePeriod),
|
|
79
|
+
challengeExpiration: state.challengeExpiration !== undefined ? Number(state.challengeExpiration) : undefined,
|
|
80
|
+
createdAt: Number(state.createdAt),
|
|
81
|
+
updatedAt: Number(state.updatedAt),
|
|
82
|
+
};
|
|
83
|
+
}
|
|
84
|
+
/**
|
|
85
|
+
* Ensures a ChannelAllocation object is fully JSON-serializable.
|
|
86
|
+
*
|
|
87
|
+
* The `amount` field is the most likely to contain a BigInt from NitroliteClient
|
|
88
|
+
* responses. This helper converts it to a string representation.
|
|
89
|
+
*
|
|
90
|
+
* @param allocation - A ChannelAllocation that may contain BigInt amount
|
|
91
|
+
* @returns A new ChannelAllocation with amount as string
|
|
92
|
+
*
|
|
93
|
+
* Requirement 11.5
|
|
94
|
+
*/
|
|
95
|
+
function toSerializableAllocation(allocation) {
|
|
96
|
+
return {
|
|
97
|
+
destination: String(allocation.destination),
|
|
98
|
+
token: String(allocation.token),
|
|
99
|
+
amount: typeof allocation.amount === 'bigint'
|
|
100
|
+
? allocation.amount.toString()
|
|
101
|
+
: String(allocation.amount),
|
|
102
|
+
};
|
|
103
|
+
}
|
|
104
|
+
/**
|
|
105
|
+
* Ensures a YellowQuote object is fully JSON-serializable.
|
|
106
|
+
*
|
|
107
|
+
* Converts any BigInt values that may be present in the YellowQuote
|
|
108
|
+
* (particularly amountIn and amountOut from solver responses) to their
|
|
109
|
+
* string representation.
|
|
110
|
+
*
|
|
111
|
+
* @param quote - A YellowQuote that may contain BigInt values from ClearNode
|
|
112
|
+
* @returns A new YellowQuote with all values JSON-serializable
|
|
113
|
+
*
|
|
114
|
+
* Requirement 11.2
|
|
115
|
+
*/
|
|
116
|
+
function toSerializableYellowQuote(quote) {
|
|
117
|
+
return {
|
|
118
|
+
solverId: String(quote.solverId),
|
|
119
|
+
channelId: String(quote.channelId),
|
|
120
|
+
amountIn: typeof quote.amountIn === 'bigint'
|
|
121
|
+
? quote.amountIn.toString()
|
|
122
|
+
: String(quote.amountIn),
|
|
123
|
+
amountOut: typeof quote.amountOut === 'bigint'
|
|
124
|
+
? quote.amountOut.toString()
|
|
125
|
+
: String(quote.amountOut),
|
|
126
|
+
estimatedTime: Number(quote.estimatedTime),
|
|
127
|
+
timestamp: Number(quote.timestamp),
|
|
128
|
+
};
|
|
129
|
+
}
|
|
130
|
+
//# sourceMappingURL=serialization.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"serialization.js","sourceRoot":"","sources":["../../../src/yellow/serialization.ts"],"names":[],"mappings":"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"}
|