@lifi/composer-sdk 0.0.1-alpha → 0.2.0-staging.4

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 (76) hide show
  1. package/README.md +37 -1
  2. package/dist/authoring/signatureArgs.cjs +2 -2
  3. package/dist/authoring/signatureArgs.cjs.map +1 -1
  4. package/dist/authoring/signatureArgs.js +2 -2
  5. package/dist/authoring/signatureArgs.js.map +1 -1
  6. package/dist/client.cjs +2 -2
  7. package/dist/client.cjs.map +1 -1
  8. package/dist/client.js +2 -2
  9. package/dist/client.js.map +1 -1
  10. package/dist/generated/config.generated.cjs.map +1 -1
  11. package/dist/generated/config.generated.d.cts +307 -16
  12. package/dist/generated/config.generated.d.ts +307 -16
  13. package/dist/generated/guards.generated.cjs +6 -0
  14. package/dist/generated/guards.generated.cjs.map +1 -1
  15. package/dist/generated/guards.generated.d.cts +1 -1
  16. package/dist/generated/guards.generated.d.ts +1 -1
  17. package/dist/generated/guards.generated.js +5 -0
  18. package/dist/generated/guards.generated.js.map +1 -1
  19. package/dist/generated/materialisers.generated.cjs +8 -2
  20. package/dist/generated/materialisers.generated.cjs.map +1 -1
  21. package/dist/generated/materialisers.generated.d.cts +1 -1
  22. package/dist/generated/materialisers.generated.d.ts +1 -1
  23. package/dist/generated/materialisers.generated.js +6 -1
  24. package/dist/generated/materialisers.generated.js.map +1 -1
  25. package/dist/generated/operations.generated.cjs +84 -14
  26. package/dist/generated/operations.generated.cjs.map +1 -1
  27. package/dist/generated/operations.generated.d.cts +208 -13
  28. package/dist/generated/operations.generated.d.ts +208 -13
  29. package/dist/generated/operations.generated.js +84 -14
  30. package/dist/generated/operations.generated.js.map +1 -1
  31. package/dist/guards.generated-BPLFwe7y.d.ts +19 -0
  32. package/dist/guards.generated-M3VAIevI.d.cts +19 -0
  33. package/dist/index.d.cts +3 -3
  34. package/dist/index.d.ts +3 -3
  35. package/dist/materialisers.generated-BfWJ-g7t.d.ts +29 -0
  36. package/dist/materialisers.generated-DaJRwiRe.d.cts +29 -0
  37. package/dist/run/inputs.cjs +8 -5
  38. package/dist/run/inputs.cjs.map +1 -1
  39. package/dist/run/inputs.d.cts +8 -0
  40. package/dist/run/inputs.d.ts +8 -0
  41. package/dist/run/inputs.js +8 -5
  42. package/dist/run/inputs.js.map +1 -1
  43. package/dist/sdk.cjs +1 -0
  44. package/dist/sdk.cjs.map +1 -1
  45. package/dist/sdk.js +1 -0
  46. package/dist/sdk.js.map +1 -1
  47. package/package.json +14 -6
  48. package/src/authoring/signatureArgs.ts +2 -2
  49. package/src/client.ts +1 -1
  50. package/src/examples/aaveClaimRewards.ts +80 -0
  51. package/src/examples/aaveRepay.ts +69 -0
  52. package/src/examples/aaveRepayWithATokens.ts +81 -0
  53. package/src/examples/aaveSetEMode.ts +68 -0
  54. package/src/examples/run.ts +41 -4
  55. package/src/examples/staged/aaveBorrow.ts +104 -0
  56. package/src/examples/staged/aaveDebtRebalanceExactOut.ts +301 -0
  57. package/src/examples/staged/aaveHealthFactorExplode.ts +70 -0
  58. package/src/examples/staged/aaveToMorphoDebtMigration.ts +190 -0
  59. package/src/examples/staged/aaveToMorphoDebtMigrationWithSwap.ts +221 -0
  60. package/src/examples/staged/aaveToMorphoDebtMigrationWithSwapExactOut.ts +302 -0
  61. package/src/examples/staged/flashloanRepay.ts +138 -0
  62. package/src/examples/staged/morphoBlueBorrow.ts +89 -0
  63. package/src/examples/staged/morphoBlueRepay.ts +91 -0
  64. package/src/examples/staged/registry.ts +78 -0
  65. package/src/examples/swapToRecipient.ts +0 -19
  66. package/src/examples/swapWithFee.ts +59 -0
  67. package/src/generated/config.generated.ts +364 -18
  68. package/src/generated/guards.generated.ts +12 -1
  69. package/src/generated/materialisers.generated.ts +24 -12
  70. package/src/generated/operations.generated.ts +373 -13
  71. package/src/run/inputs.ts +16 -5
  72. package/src/sdk.ts +1 -0
  73. package/dist/guards.generated-DKKDKREA.d.ts +0 -14
  74. package/dist/guards.generated-hrQ1KPNv.d.cts +0 -14
  75. package/dist/materialisers.generated-BsA1uDW8.d.ts +0 -24
  76. package/dist/materialisers.generated-nMxTAaVi.d.cts +0 -24
@@ -1,4 +1,4 @@
1
- import { Address, IntegerStringInput } from '../types.cjs';
1
+ import { IntegerStringInput, Address } from '../types.cjs';
2
2
  import '@lifi/compose-spec';
3
3
 
4
4
  interface CoreSplitConfig {
@@ -8,6 +8,16 @@ interface CoreSplitConfig {
8
8
  * a positive number
9
9
  */
10
10
  type Positive = number;
11
+ /**
12
+ * a string at most 64 character(s) long
13
+ */
14
+ type MaxLength64 = string;
15
+ /**
16
+ * an array of at most 50 item(s)
17
+ *
18
+ * @maxItems 50
19
+ */
20
+ type MaxItems50 = MaxLength64[];
11
21
  interface LifiSwapConfig {
12
22
  resourceOut: {
13
23
  kind: 'native';
@@ -32,15 +42,10 @@ interface LifiSwapConfig {
32
42
  reduceEveryMs: number;
33
43
  }[];
34
44
  };
35
- }
36
- interface LifiZapConfig {
37
- resourceOut: {
38
- kind: 'native';
39
- chainId: Positive;
40
- } | {
41
- kind: 'erc20';
42
- token: Address;
43
- chainId: Positive;
45
+ exchanges?: {
46
+ allow?: MaxItems50;
47
+ deny?: MaxItems50;
48
+ prefer?: MaxItems50;
44
49
  };
45
50
  }
46
51
  interface CoreBpsDownConfig {
@@ -98,19 +103,298 @@ interface CoreAsResourceConfig {
98
103
  chainId: Positive;
99
104
  };
100
105
  }
101
- interface CorePeekConfig {
102
- target: Address;
103
- functionSignature: string;
104
- args?: string[];
106
+ interface AaveBorrowConfig {
107
+ pool: string;
108
+ asset: string;
109
+ variableDebtToken: string;
110
+ amount: IntegerStringInput;
111
+ referralId?: number;
112
+ }
113
+ type AaveRepayConfig = {
114
+ pool: string;
115
+ mode: 'exact';
116
+ } | {
117
+ pool: string;
118
+ mode: 'max';
119
+ };
120
+ interface AaveRepayWithATokensConfig {
121
+ pool: string;
122
+ asset: string;
123
+ }
124
+ interface AaveClaimRewardsConfig {
125
+ rewardsController: string;
126
+ assets: string[];
127
+ reward: string;
128
+ amount?: IntegerStringInput;
129
+ to?: string;
130
+ }
131
+ /**
132
+ * a number between 0 and 255
133
+ */
134
+ type Between0255 = number;
135
+ interface AaveSetEModeConfig {
136
+ pool: string;
137
+ category: Between0255;
138
+ }
139
+ interface AaveGetHealthFactorConfig {
140
+ pool: string;
141
+ user?: string;
142
+ }
143
+ type MorphoBlueSupplyCollateralConfig = ({
144
+ morpho?: string;
145
+ onBehalfOf?: string;
146
+ mode: 'exact';
147
+ /**
148
+ * a string matching the pattern ^0x[0-9a-fA-F]{64}$
149
+ */
150
+ marketId: string;
151
+ } | {
152
+ morpho?: string;
153
+ onBehalfOf?: string;
154
+ mode: 'exact';
155
+ marketParams: {
156
+ loanToken: string;
157
+ collateralToken: string;
158
+ oracle: string;
159
+ irm: string;
160
+ lltv: string;
161
+ };
162
+ }) | ({
163
+ morpho?: string;
164
+ onBehalfOf?: string;
165
+ mode: 'all';
166
+ /**
167
+ * a string matching the pattern ^0x[0-9a-fA-F]{64}$
168
+ */
169
+ marketId: string;
170
+ } | {
171
+ morpho?: string;
172
+ onBehalfOf?: string;
173
+ mode: 'all';
174
+ marketParams: {
175
+ loanToken: string;
176
+ collateralToken: string;
177
+ oracle: string;
178
+ irm: string;
179
+ lltv: string;
180
+ };
181
+ });
182
+ type MorphoBlueWithdrawCollateralConfig = {
183
+ morpho?: string;
184
+ amount: IntegerStringInput;
185
+ onBehalfOf?: string;
186
+ receiver?: string;
187
+ /**
188
+ * a string matching the pattern ^0x[0-9a-fA-F]{64}$
189
+ */
190
+ marketId: string;
191
+ } | {
192
+ morpho?: string;
193
+ amount: IntegerStringInput;
194
+ onBehalfOf?: string;
195
+ receiver?: string;
196
+ marketParams: {
197
+ loanToken: string;
198
+ collateralToken: string;
199
+ oracle: string;
200
+ irm: string;
201
+ lltv: string;
202
+ };
203
+ };
204
+ type MorphoBlueBorrowConfig = {
205
+ morpho?: string;
206
+ amount: IntegerStringInput;
207
+ onBehalfOf?: string;
208
+ receiver?: string;
209
+ /**
210
+ * a string matching the pattern ^0x[0-9a-fA-F]{64}$
211
+ */
212
+ marketId: string;
213
+ } | {
214
+ morpho?: string;
215
+ amount: IntegerStringInput;
216
+ onBehalfOf?: string;
217
+ receiver?: string;
218
+ marketParams: {
219
+ loanToken: string;
220
+ collateralToken: string;
221
+ oracle: string;
222
+ irm: string;
223
+ lltv: string;
224
+ };
225
+ };
226
+ type MorphoBlueRepayConfig = ({
227
+ morpho?: string;
228
+ mode: 'exact';
229
+ /**
230
+ * a string matching the pattern ^0x[0-9a-fA-F]{64}$
231
+ */
232
+ marketId: string;
233
+ } | {
234
+ morpho?: string;
235
+ mode: 'exact';
236
+ marketParams: {
237
+ loanToken: string;
238
+ collateralToken: string;
239
+ oracle: string;
240
+ irm: string;
241
+ lltv: string;
242
+ };
243
+ }) | ({
244
+ morpho?: string;
245
+ mode: 'max';
246
+ /**
247
+ * a string matching the pattern ^0x[0-9a-fA-F]{64}$
248
+ */
249
+ marketId: string;
250
+ } | {
251
+ morpho?: string;
252
+ mode: 'max';
253
+ marketParams: {
254
+ loanToken: string;
255
+ collateralToken: string;
256
+ oracle: string;
257
+ irm: string;
258
+ lltv: string;
259
+ };
260
+ });
261
+ type MorphoBlueSupplyConfig = {
262
+ morpho?: string;
263
+ onBehalfOf?: string;
264
+ /**
265
+ * a string matching the pattern ^0x[0-9a-fA-F]{64}$
266
+ */
267
+ marketId: string;
268
+ } | {
269
+ morpho?: string;
270
+ onBehalfOf?: string;
271
+ marketParams: {
272
+ loanToken: string;
273
+ collateralToken: string;
274
+ oracle: string;
275
+ irm: string;
276
+ lltv: string;
277
+ };
278
+ };
279
+ type MorphoBlueWithdrawConfig = ({
280
+ morpho?: string;
281
+ mode: 'exact';
282
+ amount: IntegerStringInput;
283
+ onBehalfOf?: string;
284
+ receiver?: string;
285
+ /**
286
+ * a string matching the pattern ^0x[0-9a-fA-F]{64}$
287
+ */
288
+ marketId: string;
289
+ } | {
290
+ morpho?: string;
291
+ mode: 'exact';
292
+ amount: IntegerStringInput;
293
+ onBehalfOf?: string;
294
+ receiver?: string;
295
+ marketParams: {
296
+ loanToken: string;
297
+ collateralToken: string;
298
+ oracle: string;
299
+ irm: string;
300
+ lltv: string;
301
+ };
302
+ }) | ({
303
+ morpho?: string;
304
+ mode: 'max';
305
+ onBehalfOf?: string;
306
+ receiver?: string;
307
+ /**
308
+ * a string matching the pattern ^0x[0-9a-fA-F]{64}$
309
+ */
310
+ marketId: string;
311
+ } | {
312
+ morpho?: string;
313
+ mode: 'max';
314
+ onBehalfOf?: string;
315
+ receiver?: string;
316
+ marketParams: {
317
+ loanToken: string;
318
+ collateralToken: string;
319
+ oracle: string;
320
+ irm: string;
321
+ lltv: string;
322
+ };
323
+ });
324
+ type MorphoBlueGetPositionConfig = {
325
+ morpho?: string;
326
+ user?: string;
327
+ /**
328
+ * a string matching the pattern ^0x[0-9a-fA-F]{64}$
329
+ */
330
+ marketId: string;
331
+ } | {
332
+ morpho?: string;
333
+ user?: string;
334
+ marketParams: {
335
+ loanToken: string;
336
+ collateralToken: string;
337
+ oracle: string;
338
+ irm: string;
339
+ lltv: string;
340
+ };
341
+ };
342
+ interface LifiFlashloanRepayConfig {
343
+ leg: string;
344
+ fee?: string;
105
345
  }
346
+ interface LifiZapConfig {
347
+ resourceOut: {
348
+ kind: 'native';
349
+ chainId: Positive;
350
+ } | {
351
+ kind: 'erc20';
352
+ token: Address;
353
+ chainId: Positive;
354
+ };
355
+ }
356
+ /**
357
+ * a non-negative number
358
+ */
359
+ type GreaterThanOrEqualTo0 = number;
106
360
  /**
107
361
  * a number between 0 and 10000
108
362
  */
109
363
  type Between010000 = number;
364
+ interface ParaswapBuyConfig {
365
+ resourceOut: {
366
+ kind: 'native';
367
+ chainId: Positive;
368
+ } | {
369
+ kind: 'erc20';
370
+ token: Address;
371
+ chainId: Positive;
372
+ };
373
+ exactAmountOut: string;
374
+ srcDecimals: GreaterThanOrEqualTo0;
375
+ destDecimals: GreaterThanOrEqualTo0;
376
+ maxSlippageBps?: Between010000;
377
+ partner?: string;
378
+ partnerAddress?: string;
379
+ /**
380
+ * Integrator fee in basis points; non-negative integer string capped at 9000.
381
+ */
382
+ partnerFeeBps?: string;
383
+ }
384
+ interface CorePeekConfig {
385
+ target: Address;
386
+ functionSignature: string;
387
+ args?: string[];
388
+ }
110
389
  interface SlippageGuardConfig {
111
390
  port: string;
112
391
  bps: Between010000;
113
392
  }
393
+ interface CoreNumericInvariantGuardConfig {
394
+ port: string;
395
+ op: 'gte' | 'gt' | 'lte' | 'lt' | 'eq' | 'neq';
396
+ threshold: IntegerStringInput;
397
+ }
114
398
  interface BalanceOfMaterialiserConfig {
115
399
  owner: Address;
116
400
  }
@@ -118,13 +402,20 @@ type DirectDepositMaterialiserConfig = {
118
402
  amount: IntegerStringInput;
119
403
  allowNonExact?: false;
120
404
  } | {
121
- amount?: IntegerStringInput;
405
+ amount: IntegerStringInput;
406
+ allowNonExact: true;
407
+ } | {
122
408
  allowNonExact: true;
409
+ simAmount?: string;
123
410
  };
124
411
  interface CallMaterialiserConfig {
125
412
  target: Address;
126
413
  calldata: string;
127
414
  }
415
+ interface FlashloanMaterialiserConfig {
416
+ providerKind: 'aave-v3' | 'erc3156' | 'balancer-v2' | 'morpho-blue';
417
+ amount: IntegerStringInput;
418
+ }
128
419
  interface Erc20BalancePreconditionConfig {
129
420
  wallet: Address;
130
421
  token: Address;
@@ -141,4 +432,4 @@ interface Erc20AllowancePreconditionConfig {
141
432
  allowance: IntegerStringInput;
142
433
  }
143
434
 
144
- export type { BalanceOfMaterialiserConfig, Between010000, CallMaterialiserConfig, CoreApproveConfig, CoreAsResourceConfig, CoreBalanceOfConfig, CoreBpsDownConfig, CoreBpsUpConfig, CoreCallConfig, CoreInvokeConfig, CorePeekConfig, CoreRawCallConfig, CoreSplitConfig, CoreStaticCallConfig, CoreTransferConfig, DirectDepositMaterialiserConfig, Erc20AllowancePreconditionConfig, Erc20BalancePreconditionConfig, LifiSwapConfig, LifiZapConfig, NativeBalancePreconditionConfig, Positive, SlippageGuardConfig, Unknown };
435
+ export type { AaveBorrowConfig, AaveClaimRewardsConfig, AaveGetHealthFactorConfig, AaveRepayConfig, AaveRepayWithATokensConfig, AaveSetEModeConfig, BalanceOfMaterialiserConfig, Between010000, Between0255, CallMaterialiserConfig, CoreApproveConfig, CoreAsResourceConfig, CoreBalanceOfConfig, CoreBpsDownConfig, CoreBpsUpConfig, CoreCallConfig, CoreInvokeConfig, CoreNumericInvariantGuardConfig, CorePeekConfig, CoreRawCallConfig, CoreSplitConfig, CoreStaticCallConfig, CoreTransferConfig, DirectDepositMaterialiserConfig, Erc20AllowancePreconditionConfig, Erc20BalancePreconditionConfig, FlashloanMaterialiserConfig, GreaterThanOrEqualTo0, LifiFlashloanRepayConfig, LifiSwapConfig, LifiZapConfig, MaxItems50, MaxLength64, MorphoBlueBorrowConfig, MorphoBlueGetPositionConfig, MorphoBlueRepayConfig, MorphoBlueSupplyCollateralConfig, MorphoBlueSupplyConfig, MorphoBlueWithdrawCollateralConfig, MorphoBlueWithdrawConfig, NativeBalancePreconditionConfig, ParaswapBuyConfig, Positive, SlippageGuardConfig, Unknown };