@grimoirelabs/venues 0.3.5 → 0.4.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.
Files changed (48) hide show
  1. package/dist/aave-v3.d.ts.map +1 -1
  2. package/dist/aave-v3.js +79 -58
  3. package/dist/aave-v3.js.map +1 -1
  4. package/dist/across.d.ts.map +1 -1
  5. package/dist/across.js +98 -15
  6. package/dist/across.js.map +1 -1
  7. package/dist/cli/utils.d.ts +5 -1
  8. package/dist/cli/utils.d.ts.map +1 -1
  9. package/dist/cli/utils.js +59 -8
  10. package/dist/cli/utils.js.map +1 -1
  11. package/dist/compound-v3.d.ts.map +1 -1
  12. package/dist/compound-v3.js +4 -0
  13. package/dist/compound-v3.js.map +1 -1
  14. package/dist/constraints.d.ts +4 -0
  15. package/dist/constraints.d.ts.map +1 -0
  16. package/dist/constraints.js +34 -0
  17. package/dist/constraints.js.map +1 -0
  18. package/dist/hyperliquid.d.ts.map +1 -1
  19. package/dist/hyperliquid.js +119 -27
  20. package/dist/hyperliquid.js.map +1 -1
  21. package/dist/index.d.ts +1 -3
  22. package/dist/index.d.ts.map +1 -1
  23. package/dist/index.js +1 -5
  24. package/dist/index.js.map +1 -1
  25. package/dist/morpho-blue.d.ts.map +1 -1
  26. package/dist/morpho-blue.js +53 -26
  27. package/dist/morpho-blue.js.map +1 -1
  28. package/dist/token-registry.d.ts +18 -0
  29. package/dist/token-registry.d.ts.map +1 -0
  30. package/dist/token-registry.js +139 -0
  31. package/dist/token-registry.js.map +1 -0
  32. package/dist/types.d.ts +1 -1
  33. package/dist/types.d.ts.map +1 -1
  34. package/dist/uniswap-v3.d.ts.map +1 -1
  35. package/dist/uniswap-v3.js +101 -54
  36. package/dist/uniswap-v3.js.map +1 -1
  37. package/dist/uniswap-v4.d.ts.map +1 -1
  38. package/dist/uniswap-v4.js +100 -52
  39. package/dist/uniswap-v4.js.map +1 -1
  40. package/package.json +2 -2
  41. package/dist/lifi.d.ts +0 -10
  42. package/dist/lifi.d.ts.map +0 -1
  43. package/dist/lifi.js +0 -355
  44. package/dist/lifi.js.map +0 -1
  45. package/dist/yellow.d.ts +0 -10
  46. package/dist/yellow.d.ts.map +0 -1
  47. package/dist/yellow.js +0 -385
  48. package/dist/yellow.js.map +0 -1
package/dist/yellow.js DELETED
@@ -1,385 +0,0 @@
1
- import { zeroAddress } from "viem";
2
- const ALLOWED_INTENTS = new Set(["operate", "deposit", "withdraw"]);
3
- const YELLOW_OPS = new Set([
4
- "session_open",
5
- "session_update",
6
- "session_close_settle",
7
- "session_transfer",
8
- ]);
9
- export function createYellowAdapter(config = {}) {
10
- const fetchImpl = config.fetch ?? globalThis.fetch;
11
- const rpcUrl = config.rpcUrl ?? process.env.YELLOW_RPC_URL;
12
- const appId = config.appId ?? process.env.YELLOW_APP_ID;
13
- const configuredChainId = resolveChainId(config.chainId, process.env.YELLOW_CHAIN_ID);
14
- const sessions = new Map();
15
- const callRpc = async (method, params) => {
16
- if (!rpcUrl) {
17
- throw new Error("Yellow adapter requires YELLOW_RPC_URL");
18
- }
19
- if (!fetchImpl) {
20
- throw new Error("Yellow adapter requires fetch support");
21
- }
22
- const payload = {
23
- jsonrpc: "2.0",
24
- id: Date.now(),
25
- method,
26
- params,
27
- };
28
- const response = await fetchImpl(rpcUrl, {
29
- method: "POST",
30
- headers: { "content-type": "application/json" },
31
- body: JSON.stringify(payload),
32
- });
33
- const text = await response.text();
34
- if (!response.ok) {
35
- throw new Error(`Yellow RPC ${method} failed (${response.status})`);
36
- }
37
- let data;
38
- try {
39
- data = JSON.parse(text);
40
- }
41
- catch {
42
- throw new Error(`Yellow RPC ${method} returned invalid JSON`);
43
- }
44
- if (isRecord(data) && "error" in data && data.error !== null && data.error !== undefined) {
45
- throw new Error(`Yellow RPC ${method} error: ${formatRpcError(data.error)}`);
46
- }
47
- if (isRecord(data) && "result" in data) {
48
- return data.result;
49
- }
50
- return data;
51
- };
52
- return {
53
- meta: {
54
- name: "yellow",
55
- supportedChains: configuredChainId ? [configuredChainId] : [1],
56
- actions: ["custom"],
57
- description: "Yellow NitroRPC app-session adapter",
58
- executionType: "offchain",
59
- },
60
- async buildAction(action) {
61
- const req = normalizeYellowAction(action, sessions, { appId });
62
- return {
63
- tx: { to: zeroAddress, data: "0x", value: 0n },
64
- description: `Yellow ${req.op} session ${req.sessionId} v${req.version}`,
65
- action,
66
- };
67
- },
68
- async executeAction(action) {
69
- const req = normalizeYellowAction(action, sessions, { appId });
70
- if (req.op === "session_open") {
71
- const payload = {
72
- ...req.raw,
73
- session_id: req.sessionId,
74
- version: req.version,
75
- app_id: req.raw.app_id ?? appId,
76
- signers: req.signers,
77
- quorum: req.quorum,
78
- };
79
- const result = await callRpc("create_app_session", [payload]);
80
- sessions.set(req.sessionId, {
81
- version: req.version,
82
- signers: req.signers,
83
- quorum: req.quorum,
84
- });
85
- return {
86
- id: extractExecutionId(result, req.sessionId),
87
- status: "submitted",
88
- raw: result,
89
- };
90
- }
91
- if (req.op === "session_close_settle") {
92
- if (!sessions.has(req.sessionId)) {
93
- throw new Error(`Yellow session '${req.sessionId}' is not open`);
94
- }
95
- const payload = {
96
- ...req.raw,
97
- session_id: req.sessionId,
98
- app_id: req.raw.app_id ?? appId,
99
- };
100
- const result = await callRpc("close_app_session", [payload]);
101
- sessions.delete(req.sessionId);
102
- return {
103
- id: extractExecutionId(result, req.sessionId),
104
- status: "submitted",
105
- raw: result,
106
- };
107
- }
108
- const payload = {
109
- ...req.raw,
110
- session_id: req.sessionId,
111
- version: req.version,
112
- intent: req.intent,
113
- allocations: req.allocations,
114
- signatures: req.signatures,
115
- };
116
- const result = await callRpc("submit_app_state", [payload]);
117
- sessions.set(req.sessionId, {
118
- version: req.version,
119
- signers: req.signers,
120
- quorum: req.quorum,
121
- });
122
- return {
123
- id: extractExecutionId(result, req.sessionId),
124
- status: "submitted",
125
- raw: result,
126
- };
127
- },
128
- };
129
- }
130
- export const yellowAdapter = createYellowAdapter();
131
- function normalizeYellowAction(action, sessions, defaults) {
132
- const custom = asYellowCustomAction(action);
133
- const raw = extractRawArgs(custom);
134
- const arg0 = raw.arg0;
135
- const payload = isRecord(arg0) ? { ...arg0 } : raw;
136
- const op = custom.op;
137
- const sessionId = normalizeSessionId(payload);
138
- const state = sessions.get(sessionId);
139
- const signers = asStringArray(payload.signers);
140
- const requestedQuorum = toNumber(payload.quorum);
141
- const quorum = requestedQuorum ?? state?.quorum ?? signers.length;
142
- if (quorum < 0) {
143
- throw new Error("Yellow session quorum must be >= 0");
144
- }
145
- if (signers.length > 0 && quorum > signers.length) {
146
- throw new Error("Yellow session quorum exceeds signer count");
147
- }
148
- if (op === "session_open") {
149
- if (sessions.has(sessionId)) {
150
- throw new Error(`Yellow session '${sessionId}' is already open`);
151
- }
152
- const version = toNumber(payload.version ?? payload.v) ?? 1;
153
- if (version < 1) {
154
- throw new Error("Yellow session version must start at 1");
155
- }
156
- return {
157
- op,
158
- sessionId,
159
- version,
160
- signatures: asStringArray(payload.signatures),
161
- signers,
162
- quorum,
163
- raw: withAppId(payload, defaults.appId),
164
- };
165
- }
166
- if (!state) {
167
- throw new Error(`Yellow session '${sessionId}' is not open`);
168
- }
169
- if (op === "session_close_settle") {
170
- return {
171
- op,
172
- sessionId,
173
- version: state.version,
174
- signatures: asStringArray(payload.signatures),
175
- signers: state.signers,
176
- quorum: state.quorum,
177
- raw: withAppId(payload, defaults.appId),
178
- };
179
- }
180
- const expectedVersion = state.version + 1;
181
- const version = toNumber(payload.version ?? payload.v) ?? expectedVersion;
182
- if (version !== expectedVersion) {
183
- throw new Error(`Yellow session version must increment by 1 (expected ${expectedVersion}, got ${version})`);
184
- }
185
- const signatures = asStringArray(payload.signatures);
186
- const effectiveSigners = state.signers.length > 0 ? state.signers : signers;
187
- const effectiveQuorum = state.quorum > 0 ? state.quorum : quorum;
188
- enforceQuorum(signatures, effectiveSigners, effectiveQuorum);
189
- if (op === "session_transfer") {
190
- const to = asString(payload.to ?? payload.account ?? payload.recipient, "transfer target");
191
- const amount = String(payload.amount ?? payload.value ?? "");
192
- if (!amount || amount === "0") {
193
- throw new Error("Yellow session_transfer requires a non-zero amount");
194
- }
195
- const intent = normalizeIntent(payload.intent ?? "operate");
196
- const allocations = [{ account: to, amount }];
197
- return {
198
- op,
199
- sessionId,
200
- version,
201
- intent,
202
- allocations,
203
- signatures,
204
- signers: effectiveSigners,
205
- quorum: effectiveQuorum,
206
- raw: payload,
207
- };
208
- }
209
- const intent = normalizeIntent(payload.intent);
210
- const allocations = normalizeAllocations(payload.allocations);
211
- return {
212
- op,
213
- sessionId,
214
- version,
215
- intent,
216
- allocations,
217
- signatures,
218
- signers: effectiveSigners,
219
- quorum: effectiveQuorum,
220
- raw: payload,
221
- };
222
- }
223
- function asYellowCustomAction(action) {
224
- if (action.type !== "custom") {
225
- throw new Error(`Yellow adapter only supports custom actions (got ${action.type})`);
226
- }
227
- if (!YELLOW_OPS.has(action.op)) {
228
- throw new Error(`Yellow adapter does not support op '${action.op}'`);
229
- }
230
- return action;
231
- }
232
- function extractRawArgs(action) {
233
- const out = {};
234
- for (const [key, value] of Object.entries(action.args)) {
235
- out[key] = materializeCustomValue(value);
236
- }
237
- return out;
238
- }
239
- function materializeCustomValue(value) {
240
- if (Array.isArray(value)) {
241
- return value.map((entry) => materializeCustomValue(entry));
242
- }
243
- if (isRecord(value)) {
244
- if (isLiteralExpression(value)) {
245
- return value.value;
246
- }
247
- if (isExpressionNode(value)) {
248
- throw new Error("Yellow adapter received unresolved custom expression args");
249
- }
250
- const nested = {};
251
- for (const [key, entry] of Object.entries(value)) {
252
- nested[key] = materializeCustomValue(entry);
253
- }
254
- return nested;
255
- }
256
- return value;
257
- }
258
- function normalizeSessionId(payload) {
259
- const value = payload.session_id ?? payload.sessionId ?? payload.id ?? payload.arg0;
260
- return asString(value, "session_id");
261
- }
262
- function normalizeIntent(value) {
263
- const intent = asString(value, "intent");
264
- if (!ALLOWED_INTENTS.has(intent)) {
265
- throw new Error(`Yellow intent must be one of operate|deposit|withdraw (got '${intent}')`);
266
- }
267
- return intent;
268
- }
269
- function normalizeAllocations(value) {
270
- if (!Array.isArray(value) || value.length === 0) {
271
- throw new Error("Yellow allocations must be a non-empty array");
272
- }
273
- return value.map((entry, idx) => {
274
- if (!isRecord(entry)) {
275
- throw new Error(`Yellow allocation ${idx} must be an object`);
276
- }
277
- const account = asString(entry.account ?? entry.address, `allocations[${idx}].account`);
278
- const amount = String(entry.amount ?? "");
279
- if (!amount || amount === "0") {
280
- throw new Error(`Yellow allocation ${idx} must include a non-zero amount`);
281
- }
282
- return { account, amount };
283
- });
284
- }
285
- function enforceQuorum(signatures, signers, quorum) {
286
- if (quorum <= 0)
287
- return;
288
- if (signatures.length < quorum) {
289
- throw new Error(`Yellow signatures do not satisfy quorum (${signatures.length}/${quorum})`);
290
- }
291
- if (signers.length > 0) {
292
- for (const signer of signatures) {
293
- if (!signers.includes(signer)) {
294
- throw new Error(`Yellow signature '${signer}' is not part of the signer set`);
295
- }
296
- }
297
- }
298
- }
299
- function withAppId(payload, appId) {
300
- if (!appId || payload.app_id !== undefined) {
301
- return payload;
302
- }
303
- return { ...payload, app_id: appId };
304
- }
305
- function resolveChainId(primary, envValue) {
306
- if (typeof primary === "number" && Number.isFinite(primary)) {
307
- return Math.floor(primary);
308
- }
309
- if (!envValue)
310
- return undefined;
311
- const parsed = Number.parseInt(envValue, 10);
312
- if (!Number.isFinite(parsed))
313
- return undefined;
314
- return parsed;
315
- }
316
- function extractExecutionId(result, fallback) {
317
- if (isRecord(result)) {
318
- const direct = result.id ??
319
- result.tx_hash ??
320
- result.txHash ??
321
- result.session_id ??
322
- result.sessionId ??
323
- result.hash;
324
- if (typeof direct === "string" && direct.length > 0) {
325
- return direct;
326
- }
327
- }
328
- return fallback;
329
- }
330
- function formatRpcError(error) {
331
- if (isRecord(error)) {
332
- const message = error.message;
333
- if (typeof message === "string" && message.length > 0) {
334
- return message;
335
- }
336
- }
337
- return String(error);
338
- }
339
- function asString(value, field) {
340
- if (typeof value === "string" && value.length > 0) {
341
- return value;
342
- }
343
- throw new Error(`Yellow ${field} is required`);
344
- }
345
- function asStringArray(value) {
346
- if (!Array.isArray(value))
347
- return [];
348
- return value.filter((entry) => typeof entry === "string");
349
- }
350
- function toNumber(value) {
351
- if (typeof value === "number" && Number.isFinite(value)) {
352
- return Math.floor(value);
353
- }
354
- if (typeof value === "string" && value.length > 0) {
355
- const parsed = Number.parseInt(value, 10);
356
- if (Number.isFinite(parsed))
357
- return parsed;
358
- }
359
- if (typeof value === "bigint") {
360
- return Number(value);
361
- }
362
- return undefined;
363
- }
364
- function isRecord(value) {
365
- return typeof value === "object" && value !== null && !Array.isArray(value);
366
- }
367
- function isLiteralExpression(value) {
368
- return value.kind === "literal" && "value" in value;
369
- }
370
- function isExpressionNode(value) {
371
- const kind = value.kind;
372
- return (kind === "literal" ||
373
- kind === "param" ||
374
- kind === "state" ||
375
- kind === "binding" ||
376
- kind === "item" ||
377
- kind === "index" ||
378
- kind === "binary" ||
379
- kind === "unary" ||
380
- kind === "ternary" ||
381
- kind === "call" ||
382
- kind === "array_access" ||
383
- kind === "property_access");
384
- }
385
- //# sourceMappingURL=yellow.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"yellow.js","sourceRoot":"","sources":["../src/yellow.ts"],"names":[],"mappings":"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"}