@strkfarm/sdk 2.0.0-staging.71 → 2.0.0-staging.72
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/index.browser.global.js +26199 -26163
- package/dist/index.browser.mjs +284 -250
- package/dist/index.d.ts +8 -1
- package/dist/index.js +346 -309
- package/dist/index.mjs +317 -281
- package/package.json +1 -1
- package/src/global.ts +36 -11
- package/src/interfaces/common.tsx +7 -0
- package/src/modules/ekubo-pricer.ts +2 -1
- package/src/modules/zkLend.ts +3 -2
- package/src/strategies/yoloVault.ts +2 -0
package/dist/index.js
CHANGED
|
@@ -84,6 +84,7 @@ __export(index_exports, {
|
|
|
84
84
|
StrategyType: () => StrategyType,
|
|
85
85
|
TelegramGroupNotif: () => TelegramGroupNotif,
|
|
86
86
|
TelegramNotif: () => TelegramNotif,
|
|
87
|
+
TokenIndexingType: () => TokenIndexingType,
|
|
87
88
|
UNIVERSAL_ADAPTERS: () => UNIVERSAL_ADAPTERS,
|
|
88
89
|
UNIVERSAL_MANAGE_IDS: () => UNIVERSAL_MANAGE_IDS,
|
|
89
90
|
UniversalLstMultiplierStrategy: () => UniversalLstMultiplierStrategy,
|
|
@@ -145,12 +146,275 @@ var import_axios3 = __toESM(require("axios"));
|
|
|
145
146
|
// src/global.ts
|
|
146
147
|
var import_axios = __toESM(require("axios"));
|
|
147
148
|
|
|
149
|
+
// src/utils/logger.node.ts
|
|
150
|
+
var import_winston = __toESM(require("winston"));
|
|
151
|
+
var colors = {
|
|
152
|
+
error: "red",
|
|
153
|
+
warn: "yellow",
|
|
154
|
+
info: "blue",
|
|
155
|
+
verbose: "white",
|
|
156
|
+
debug: "white"
|
|
157
|
+
};
|
|
158
|
+
import_winston.default.addColors(colors);
|
|
159
|
+
var logLevel = (process.env.LOG_LEVEL || process.env.SDK_LOG_LEVEL || "debug").toLowerCase();
|
|
160
|
+
var logger = import_winston.default.createLogger({
|
|
161
|
+
level: logLevel,
|
|
162
|
+
// Set the minimum logging level from environment variable
|
|
163
|
+
format: import_winston.format.combine(
|
|
164
|
+
import_winston.format.colorize({ all: true }),
|
|
165
|
+
// Apply custom colors
|
|
166
|
+
import_winston.format.timestamp({ format: "YYYY-MM-DD HH:mm:ss" }),
|
|
167
|
+
// Add timestamp to log messages
|
|
168
|
+
import_winston.format.printf(({ timestamp, level, message, ...meta }) => {
|
|
169
|
+
let msg = `${timestamp} ${level}: ${message}`;
|
|
170
|
+
if (meta && meta[/* @__PURE__ */ Symbol.for("splat")]) {
|
|
171
|
+
const splat = meta[/* @__PURE__ */ Symbol.for("splat")];
|
|
172
|
+
if (Array.isArray(splat)) {
|
|
173
|
+
for (const arg of splat) {
|
|
174
|
+
if (arg instanceof Error) {
|
|
175
|
+
msg += `
|
|
176
|
+
${arg.stack}`;
|
|
177
|
+
}
|
|
178
|
+
}
|
|
179
|
+
}
|
|
180
|
+
}
|
|
181
|
+
return msg;
|
|
182
|
+
})
|
|
183
|
+
),
|
|
184
|
+
transports: [
|
|
185
|
+
new import_winston.default.transports.Console()
|
|
186
|
+
// Output logs to the console
|
|
187
|
+
]
|
|
188
|
+
});
|
|
189
|
+
|
|
190
|
+
// src/interfaces/lending.ts
|
|
191
|
+
var MarginType = /* @__PURE__ */ ((MarginType2) => {
|
|
192
|
+
MarginType2["SHARED"] = "shared";
|
|
193
|
+
MarginType2["NONE"] = "none";
|
|
194
|
+
return MarginType2;
|
|
195
|
+
})(MarginType || {});
|
|
196
|
+
var ILending = class {
|
|
197
|
+
constructor(config, metadata) {
|
|
198
|
+
this.tokens = [];
|
|
199
|
+
this.initialised = false;
|
|
200
|
+
this.metadata = metadata;
|
|
201
|
+
this.config = config;
|
|
202
|
+
this.init();
|
|
203
|
+
}
|
|
204
|
+
/** Wait for initialisation */
|
|
205
|
+
waitForInitilisation() {
|
|
206
|
+
return new Promise((resolve, reject) => {
|
|
207
|
+
const interval = setInterval(() => {
|
|
208
|
+
logger.verbose(`Waiting for ${this.metadata.name} to initialise`);
|
|
209
|
+
if (this.initialised) {
|
|
210
|
+
logger.verbose(`${this.metadata.name} initialised`);
|
|
211
|
+
clearInterval(interval);
|
|
212
|
+
resolve();
|
|
213
|
+
}
|
|
214
|
+
}, 1e3);
|
|
215
|
+
});
|
|
216
|
+
}
|
|
217
|
+
};
|
|
218
|
+
|
|
219
|
+
// src/interfaces/common.tsx
|
|
220
|
+
var import_starknet = require("starknet");
|
|
221
|
+
var import_jsx_runtime = require("react/jsx-runtime");
|
|
222
|
+
var RiskType = /* @__PURE__ */ ((RiskType2) => {
|
|
223
|
+
RiskType2["MARKET_RISK"] = "Market Risk";
|
|
224
|
+
RiskType2["IMPERMANENT_LOSS"] = "Impermanent Loss Risk";
|
|
225
|
+
RiskType2["LIQUIDATION_RISK"] = "Liquidation Risk";
|
|
226
|
+
RiskType2["LOW_LIQUIDITY_RISK"] = "Low Liquidity Risk";
|
|
227
|
+
RiskType2["SMART_CONTRACT_RISK"] = "Smart Contract Risk";
|
|
228
|
+
RiskType2["ORACLE_RISK"] = "Oracle Risk";
|
|
229
|
+
RiskType2["TECHNICAL_RISK"] = "Technical Risk";
|
|
230
|
+
RiskType2["COUNTERPARTY_RISK"] = "Counterparty Risk";
|
|
231
|
+
RiskType2["DEPEG_RISK"] = "Depeg Risk";
|
|
232
|
+
return RiskType2;
|
|
233
|
+
})(RiskType || {});
|
|
234
|
+
var TokenIndexingType = /* @__PURE__ */ ((TokenIndexingType2) => {
|
|
235
|
+
TokenIndexingType2["PEGGED"] = "pegged";
|
|
236
|
+
TokenIndexingType2["INDEXER"] = "indexer";
|
|
237
|
+
TokenIndexingType2["LST_SCRIPT"] = "lstScript";
|
|
238
|
+
TokenIndexingType2["IGNORE"] = "ignore";
|
|
239
|
+
return TokenIndexingType2;
|
|
240
|
+
})(TokenIndexingType || {});
|
|
241
|
+
var Network = /* @__PURE__ */ ((Network2) => {
|
|
242
|
+
Network2["mainnet"] = "mainnet";
|
|
243
|
+
Network2["sepolia"] = "sepolia";
|
|
244
|
+
Network2["devnet"] = "devnet";
|
|
245
|
+
return Network2;
|
|
246
|
+
})(Network || {});
|
|
247
|
+
var StrategyTag = /* @__PURE__ */ ((StrategyTag3) => {
|
|
248
|
+
StrategyTag3["META_VAULT"] = "Meta Vaults";
|
|
249
|
+
StrategyTag3["LEVERED"] = "Maxx";
|
|
250
|
+
StrategyTag3["AUTOMATED_LP"] = "Ekubo";
|
|
251
|
+
StrategyTag3["BTC"] = "BTC";
|
|
252
|
+
return StrategyTag3;
|
|
253
|
+
})(StrategyTag || {});
|
|
254
|
+
var VaultType = /* @__PURE__ */ ((VaultType2) => {
|
|
255
|
+
VaultType2["LOOPING"] = "Looping";
|
|
256
|
+
VaultType2["META_VAULT"] = "Meta Vault";
|
|
257
|
+
VaultType2["DELTA_NEUTRAL"] = "Delta Neutral";
|
|
258
|
+
VaultType2["AUTOMATED_LP"] = "Automated LP";
|
|
259
|
+
VaultType2["TVA"] = "Troves Value Averaging";
|
|
260
|
+
return VaultType2;
|
|
261
|
+
})(VaultType || {});
|
|
262
|
+
var AuditStatus = /* @__PURE__ */ ((AuditStatus2) => {
|
|
263
|
+
AuditStatus2["AUDITED"] = "Audited";
|
|
264
|
+
AuditStatus2["NOT_AUDITED"] = "Not Audited";
|
|
265
|
+
return AuditStatus2;
|
|
266
|
+
})(AuditStatus || {});
|
|
267
|
+
var SourceCodeType = /* @__PURE__ */ ((SourceCodeType2) => {
|
|
268
|
+
SourceCodeType2["OPEN_SOURCE"] = "Open Source";
|
|
269
|
+
SourceCodeType2["CLOSED_SOURCE"] = "Closed Source";
|
|
270
|
+
return SourceCodeType2;
|
|
271
|
+
})(SourceCodeType || {});
|
|
272
|
+
var AccessControlType = /* @__PURE__ */ ((AccessControlType2) => {
|
|
273
|
+
AccessControlType2["MULTISIG_ACCOUNT"] = "Multisig Account";
|
|
274
|
+
AccessControlType2["STANDARD_ACCOUNT"] = "Standard Account";
|
|
275
|
+
AccessControlType2["ROLE_BASED_ACCESS"] = "Role Based Access";
|
|
276
|
+
return AccessControlType2;
|
|
277
|
+
})(AccessControlType || {});
|
|
278
|
+
var InstantWithdrawalVault = /* @__PURE__ */ ((InstantWithdrawalVault2) => {
|
|
279
|
+
InstantWithdrawalVault2["YES"] = "Yes";
|
|
280
|
+
InstantWithdrawalVault2["NO"] = "No";
|
|
281
|
+
return InstantWithdrawalVault2;
|
|
282
|
+
})(InstantWithdrawalVault || {});
|
|
283
|
+
var FlowChartColors = /* @__PURE__ */ ((FlowChartColors2) => {
|
|
284
|
+
FlowChartColors2["Green"] = "purple";
|
|
285
|
+
FlowChartColors2["Blue"] = "#35484f";
|
|
286
|
+
FlowChartColors2["Purple"] = "#6e53dc";
|
|
287
|
+
return FlowChartColors2;
|
|
288
|
+
})(FlowChartColors || {});
|
|
289
|
+
var StrategyLiveStatus = /* @__PURE__ */ ((StrategyLiveStatus2) => {
|
|
290
|
+
StrategyLiveStatus2["ACTIVE"] = "Active";
|
|
291
|
+
StrategyLiveStatus2["NEW"] = "New";
|
|
292
|
+
StrategyLiveStatus2["COMING_SOON"] = "Coming Soon";
|
|
293
|
+
StrategyLiveStatus2["DEPRECATED"] = "Deprecated";
|
|
294
|
+
StrategyLiveStatus2["RETIRED"] = "Retired";
|
|
295
|
+
StrategyLiveStatus2["HOT"] = "Hot & New \u{1F525}";
|
|
296
|
+
return StrategyLiveStatus2;
|
|
297
|
+
})(StrategyLiveStatus || {});
|
|
298
|
+
function getMainnetConfig(rpcUrl = "https://starknet-mainnet.public.blastapi.io", blockIdentifier = import_starknet.BlockTag.LATEST) {
|
|
299
|
+
return {
|
|
300
|
+
provider: new import_starknet.RpcProvider({
|
|
301
|
+
nodeUrl: rpcUrl,
|
|
302
|
+
blockIdentifier
|
|
303
|
+
// specVersion
|
|
304
|
+
}),
|
|
305
|
+
stage: "production",
|
|
306
|
+
network: "mainnet" /* mainnet */
|
|
307
|
+
};
|
|
308
|
+
}
|
|
309
|
+
var getStrategyTagDesciption = (tag) => {
|
|
310
|
+
switch (tag) {
|
|
311
|
+
case "Meta Vaults" /* META_VAULT */:
|
|
312
|
+
return "A meta vault is a vault that auto allocates funds to multiple vaults based on optimal yield opportunities";
|
|
313
|
+
case "Maxx" /* LEVERED */:
|
|
314
|
+
return "Looping vaults on Endur LSTs with leveraged borrowing of STRK or BTC to increase yield (2-4x higher yield than simply staking)";
|
|
315
|
+
case "Ekubo" /* AUTOMATED_LP */:
|
|
316
|
+
return "Automated LP vaults on Ekubo that rebalance position automatically, ensuring you earn fees efficiently";
|
|
317
|
+
case "BTC" /* BTC */:
|
|
318
|
+
return "BTC linked vaults";
|
|
319
|
+
}
|
|
320
|
+
};
|
|
321
|
+
var getAllStrategyTags = () => {
|
|
322
|
+
return Object.values(StrategyTag);
|
|
323
|
+
};
|
|
324
|
+
var getRiskExplaination = (riskType) => {
|
|
325
|
+
switch (riskType) {
|
|
326
|
+
case "Market Risk" /* MARKET_RISK */:
|
|
327
|
+
return "The risk of the market moving against the position.";
|
|
328
|
+
case "Impermanent Loss Risk" /* IMPERMANENT_LOSS */:
|
|
329
|
+
return "The temporary loss of value experienced by liquidity providers in AMMs when asset prices diverge compared to simply holding them.";
|
|
330
|
+
case "Liquidation Risk" /* LIQUIDATION_RISK */:
|
|
331
|
+
return "The risk of losing funds due to the position being liquidated.";
|
|
332
|
+
case "Low Liquidity Risk" /* LOW_LIQUIDITY_RISK */:
|
|
333
|
+
return "The risk of low liquidity in the pool, which can lead to high slippages or reduced in-abilities to quickly exit the position.";
|
|
334
|
+
case "Oracle Risk" /* ORACLE_RISK */:
|
|
335
|
+
return "The risk of the oracle being manipulated or incorrect.";
|
|
336
|
+
case "Smart Contract Risk" /* SMART_CONTRACT_RISK */:
|
|
337
|
+
return "The risk of the smart contract being vulnerable to attacks.";
|
|
338
|
+
case "Technical Risk" /* TECHNICAL_RISK */:
|
|
339
|
+
return "The risk of technical issues e.g. backend failure.";
|
|
340
|
+
case "Counterparty Risk" /* COUNTERPARTY_RISK */:
|
|
341
|
+
return "The risk of the counterparty defaulting e.g. bad debt on lending platforms.";
|
|
342
|
+
case "Depeg Risk" /* DEPEG_RISK */:
|
|
343
|
+
return "The risk of a token losing its peg to the underlying asset, leading to potential losses for holders.";
|
|
344
|
+
}
|
|
345
|
+
};
|
|
346
|
+
var getRiskColor = (risk) => {
|
|
347
|
+
const value = risk.value;
|
|
348
|
+
if (value <= 2) return "light_green_2";
|
|
349
|
+
if (value < 3) return "yellow";
|
|
350
|
+
return "red";
|
|
351
|
+
};
|
|
352
|
+
var getNoRiskTags = (risks) => {
|
|
353
|
+
const noRisks1 = risks.filter((risk) => risk.value === 0).map((risk) => risk.type);
|
|
354
|
+
const noRisks2 = Object.values(RiskType).filter(
|
|
355
|
+
(risk) => !risks.map((risk2) => risk2.type).includes(risk)
|
|
356
|
+
);
|
|
357
|
+
const mergedUnique = [.../* @__PURE__ */ new Set([...noRisks1, ...noRisks2])];
|
|
358
|
+
return mergedUnique;
|
|
359
|
+
};
|
|
360
|
+
function highlightTextWithLinks(put, highlights) {
|
|
361
|
+
const escapeRegExp = (text) => text.replace(/[-/\\^$*+?.()|[\]{}]/g, "\\$&");
|
|
362
|
+
const pattern = new RegExp(
|
|
363
|
+
`(${highlights.map((m) => escapeRegExp(m.highlight)).join("|")})`,
|
|
364
|
+
"gi"
|
|
365
|
+
);
|
|
366
|
+
const parts = put.split(pattern);
|
|
367
|
+
return /* @__PURE__ */ (0, import_jsx_runtime.jsx)(import_jsx_runtime.Fragment, { children: parts.map((part, i) => {
|
|
368
|
+
const match = highlights.find((m) => m.highlight.toLowerCase() === part.toLowerCase());
|
|
369
|
+
return match ? /* @__PURE__ */ (0, import_jsx_runtime.jsx)("a", { href: match.link, target: "_blank", style: { color: "white", background: "rgba(255, 255, 255, 0.04)" }, children: part }, i) : /* @__PURE__ */ (0, import_jsx_runtime.jsx)("span", { children: part }, i);
|
|
370
|
+
}) });
|
|
371
|
+
}
|
|
372
|
+
var VesuProtocol = {
|
|
373
|
+
name: "Vesu",
|
|
374
|
+
logo: "https://static-assets-8zct.onrender.com/integrations/vesu/logo.png"
|
|
375
|
+
};
|
|
376
|
+
var EndurProtocol = {
|
|
377
|
+
name: "Endur",
|
|
378
|
+
logo: "http://endur.fi/logo.png"
|
|
379
|
+
};
|
|
380
|
+
var ExtendedProtocol = {
|
|
381
|
+
name: "Extended",
|
|
382
|
+
logo: "https://static-assets-8zct.onrender.com/integrations/extended/extended.svg"
|
|
383
|
+
};
|
|
384
|
+
var Protocols = {
|
|
385
|
+
VESU: VesuProtocol,
|
|
386
|
+
ENDUR: EndurProtocol,
|
|
387
|
+
EXTENDED: ExtendedProtocol
|
|
388
|
+
};
|
|
389
|
+
var UnwrapLabsCurator = {
|
|
390
|
+
name: "Unwrap Labs",
|
|
391
|
+
logo: "https://assets.troves.fi/integrations/unwraplabs/white.png"
|
|
392
|
+
};
|
|
393
|
+
|
|
394
|
+
// src/interfaces/initializable.ts
|
|
395
|
+
var Initializable = class {
|
|
396
|
+
constructor() {
|
|
397
|
+
this.initialized = false;
|
|
398
|
+
}
|
|
399
|
+
async waitForInitilisation() {
|
|
400
|
+
return new Promise((resolve, reject) => {
|
|
401
|
+
const interval = setInterval(() => {
|
|
402
|
+
if (this.initialized) {
|
|
403
|
+
console.log("Initialised");
|
|
404
|
+
clearInterval(interval);
|
|
405
|
+
resolve();
|
|
406
|
+
}
|
|
407
|
+
}, 1e3);
|
|
408
|
+
});
|
|
409
|
+
}
|
|
410
|
+
};
|
|
411
|
+
|
|
148
412
|
// src/dataTypes/bignumber.node.ts
|
|
149
413
|
var import_util = __toESM(require("util"));
|
|
150
414
|
|
|
151
415
|
// src/dataTypes/_bignumber.ts
|
|
152
416
|
var import_bignumber = __toESM(require("bignumber.js"));
|
|
153
|
-
var
|
|
417
|
+
var import_starknet2 = require("starknet");
|
|
154
418
|
var _Web3Number = class extends import_bignumber.default {
|
|
155
419
|
constructor(value, decimals) {
|
|
156
420
|
super(value);
|
|
@@ -226,21 +490,21 @@ var _Web3Number = class extends import_bignumber.default {
|
|
|
226
490
|
};
|
|
227
491
|
}
|
|
228
492
|
toUint256() {
|
|
229
|
-
return
|
|
493
|
+
return import_starknet2.uint256.bnToUint256(this.toWei());
|
|
230
494
|
}
|
|
231
495
|
};
|
|
232
496
|
import_bignumber.default.config({ DECIMAL_PLACES: 18, ROUNDING_MODE: import_bignumber.default.ROUND_DOWN });
|
|
233
497
|
_Web3Number.config({ DECIMAL_PLACES: 18, ROUNDING_MODE: import_bignumber.default.ROUND_DOWN });
|
|
234
498
|
|
|
235
499
|
// src/dataTypes/bignumber.node.ts
|
|
236
|
-
var
|
|
500
|
+
var import_starknet3 = require("starknet");
|
|
237
501
|
var Web3Number = class _Web3Number2 extends _Web3Number {
|
|
238
502
|
static fromWei(weiNumber, decimals) {
|
|
239
503
|
const bn = new _Web3Number2(weiNumber, decimals).dividedBy(10 ** decimals);
|
|
240
504
|
return new _Web3Number2(bn.toString(), decimals);
|
|
241
505
|
}
|
|
242
506
|
static fromUint256(uint256Value) {
|
|
243
|
-
return this.fromWei(
|
|
507
|
+
return this.fromWei(import_starknet3.uint256.uint256ToBN(uint256Value).toString(), 18);
|
|
244
508
|
}
|
|
245
509
|
[import_util.default.inspect.custom](depth, opts) {
|
|
246
510
|
return this.toString();
|
|
@@ -254,7 +518,7 @@ var Web3Number = class _Web3Number2 extends _Web3Number {
|
|
|
254
518
|
};
|
|
255
519
|
|
|
256
520
|
// src/dataTypes/address.ts
|
|
257
|
-
var
|
|
521
|
+
var import_starknet4 = require("starknet");
|
|
258
522
|
var ContractAddr = class _ContractAddr {
|
|
259
523
|
constructor(address) {
|
|
260
524
|
this.address = _ContractAddr.standardise(address);
|
|
@@ -273,7 +537,7 @@ var ContractAddr = class _ContractAddr {
|
|
|
273
537
|
if (!address) {
|
|
274
538
|
_a = "0";
|
|
275
539
|
}
|
|
276
|
-
const a =
|
|
540
|
+
const a = import_starknet4.num.getHexString(import_starknet4.num.getDecimalString(_a.toString()));
|
|
277
541
|
return a;
|
|
278
542
|
}
|
|
279
543
|
static eqString(a, b) {
|
|
@@ -283,7 +547,7 @@ var ContractAddr = class _ContractAddr {
|
|
|
283
547
|
return this.address;
|
|
284
548
|
}
|
|
285
549
|
toBigInt() {
|
|
286
|
-
return
|
|
550
|
+
return import_starknet4.num.toBigInt(this.address);
|
|
287
551
|
}
|
|
288
552
|
};
|
|
289
553
|
|
|
@@ -407,47 +671,6 @@ var MyNumber = class _MyNumber {
|
|
|
407
671
|
}
|
|
408
672
|
};
|
|
409
673
|
|
|
410
|
-
// src/utils/logger.node.ts
|
|
411
|
-
var import_winston = __toESM(require("winston"));
|
|
412
|
-
var colors = {
|
|
413
|
-
error: "red",
|
|
414
|
-
warn: "yellow",
|
|
415
|
-
info: "blue",
|
|
416
|
-
verbose: "white",
|
|
417
|
-
debug: "white"
|
|
418
|
-
};
|
|
419
|
-
import_winston.default.addColors(colors);
|
|
420
|
-
var logLevel = (process.env.LOG_LEVEL || process.env.SDK_LOG_LEVEL || "debug").toLowerCase();
|
|
421
|
-
var logger = import_winston.default.createLogger({
|
|
422
|
-
level: logLevel,
|
|
423
|
-
// Set the minimum logging level from environment variable
|
|
424
|
-
format: import_winston.format.combine(
|
|
425
|
-
import_winston.format.colorize({ all: true }),
|
|
426
|
-
// Apply custom colors
|
|
427
|
-
import_winston.format.timestamp({ format: "YYYY-MM-DD HH:mm:ss" }),
|
|
428
|
-
// Add timestamp to log messages
|
|
429
|
-
import_winston.format.printf(({ timestamp, level, message, ...meta }) => {
|
|
430
|
-
let msg = `${timestamp} ${level}: ${message}`;
|
|
431
|
-
if (meta && meta[/* @__PURE__ */ Symbol.for("splat")]) {
|
|
432
|
-
const splat = meta[/* @__PURE__ */ Symbol.for("splat")];
|
|
433
|
-
if (Array.isArray(splat)) {
|
|
434
|
-
for (const arg of splat) {
|
|
435
|
-
if (arg instanceof Error) {
|
|
436
|
-
msg += `
|
|
437
|
-
${arg.stack}`;
|
|
438
|
-
}
|
|
439
|
-
}
|
|
440
|
-
}
|
|
441
|
-
}
|
|
442
|
-
return msg;
|
|
443
|
-
})
|
|
444
|
-
),
|
|
445
|
-
transports: [
|
|
446
|
-
new import_winston.default.transports.Console()
|
|
447
|
-
// Output logs to the console
|
|
448
|
-
]
|
|
449
|
-
});
|
|
450
|
-
|
|
451
674
|
// src/global.ts
|
|
452
675
|
var FatalError = class extends Error {
|
|
453
676
|
constructor(message, err) {
|
|
@@ -467,7 +690,8 @@ var defaultTokens = [{
|
|
|
467
690
|
coingeckId: "starknet",
|
|
468
691
|
displayDecimals: 2,
|
|
469
692
|
priceCheckAmount: 5e3,
|
|
470
|
-
priceMethod: "Avnu"
|
|
693
|
+
priceMethod: "Avnu",
|
|
694
|
+
indexingType: "indexer" /* INDEXER */
|
|
471
695
|
}, {
|
|
472
696
|
name: "xSTRK",
|
|
473
697
|
symbol: "xSTRK",
|
|
@@ -477,7 +701,8 @@ var defaultTokens = [{
|
|
|
477
701
|
coingeckId: void 0,
|
|
478
702
|
priceCheckAmount: 5e3,
|
|
479
703
|
displayDecimals: 2,
|
|
480
|
-
priceMethod: "Avnu"
|
|
704
|
+
priceMethod: "Avnu",
|
|
705
|
+
indexingType: "lstScript" /* LST_SCRIPT */
|
|
481
706
|
}, {
|
|
482
707
|
name: "ETH",
|
|
483
708
|
symbol: "ETH",
|
|
@@ -486,7 +711,8 @@ var defaultTokens = [{
|
|
|
486
711
|
decimals: 18,
|
|
487
712
|
coingeckId: void 0,
|
|
488
713
|
priceCheckAmount: 0.1,
|
|
489
|
-
displayDecimals: 6
|
|
714
|
+
displayDecimals: 6,
|
|
715
|
+
indexingType: "indexer" /* INDEXER */
|
|
490
716
|
}, {
|
|
491
717
|
name: "USDC.e",
|
|
492
718
|
symbol: "USDC.e",
|
|
@@ -495,7 +721,9 @@ var defaultTokens = [{
|
|
|
495
721
|
decimals: 6,
|
|
496
722
|
coingeckId: void 0,
|
|
497
723
|
displayDecimals: 2,
|
|
498
|
-
priceCheckAmount: 1e3
|
|
724
|
+
priceCheckAmount: 1e3,
|
|
725
|
+
priceProxySymbol: "USDC",
|
|
726
|
+
indexingType: "pegged" /* PEGGED */
|
|
499
727
|
}, {
|
|
500
728
|
name: "USDC",
|
|
501
729
|
symbol: "USDC",
|
|
@@ -504,7 +732,8 @@ var defaultTokens = [{
|
|
|
504
732
|
decimals: 6,
|
|
505
733
|
coingeckId: void 0,
|
|
506
734
|
displayDecimals: 2,
|
|
507
|
-
priceCheckAmount: 1e3
|
|
735
|
+
priceCheckAmount: 1e3,
|
|
736
|
+
indexingType: "indexer" /* INDEXER */
|
|
508
737
|
}, {
|
|
509
738
|
name: "USDT",
|
|
510
739
|
symbol: "USDT",
|
|
@@ -513,7 +742,8 @@ var defaultTokens = [{
|
|
|
513
742
|
decimals: 6,
|
|
514
743
|
coingeckId: void 0,
|
|
515
744
|
priceCheckAmount: 1e3,
|
|
516
|
-
displayDecimals: 2
|
|
745
|
+
displayDecimals: 2,
|
|
746
|
+
indexingType: "indexer" /* INDEXER */
|
|
517
747
|
}, {
|
|
518
748
|
name: "WBTC",
|
|
519
749
|
symbol: "WBTC",
|
|
@@ -522,8 +752,9 @@ var defaultTokens = [{
|
|
|
522
752
|
decimals: 8,
|
|
523
753
|
coingeckId: void 0,
|
|
524
754
|
displayDecimals: 6,
|
|
525
|
-
priceCheckAmount: 1e-3
|
|
755
|
+
priceCheckAmount: 1e-3,
|
|
526
756
|
// 112000 * 0.0001 = $110.2
|
|
757
|
+
indexingType: "indexer" /* INDEXER */
|
|
527
758
|
}, {
|
|
528
759
|
name: "tBTC",
|
|
529
760
|
symbol: "tBTC",
|
|
@@ -532,8 +763,10 @@ var defaultTokens = [{
|
|
|
532
763
|
decimals: 18,
|
|
533
764
|
coingeckId: void 0,
|
|
534
765
|
displayDecimals: 6,
|
|
535
|
-
priceCheckAmount: 1e-3
|
|
766
|
+
priceCheckAmount: 1e-3,
|
|
536
767
|
// 112000 * 0.0001 = $110.2
|
|
768
|
+
priceProxySymbol: "WBTC",
|
|
769
|
+
indexingType: "pegged" /* PEGGED */
|
|
537
770
|
}, {
|
|
538
771
|
name: "solvBTC",
|
|
539
772
|
symbol: "solvBTC",
|
|
@@ -543,8 +776,9 @@ var defaultTokens = [{
|
|
|
543
776
|
coingeckId: void 0,
|
|
544
777
|
priceProxySymbol: "WBTC",
|
|
545
778
|
displayDecimals: 6,
|
|
546
|
-
priceCheckAmount: 1e-4
|
|
779
|
+
priceCheckAmount: 1e-4,
|
|
547
780
|
// 112000 * 0.0001 = $11.2
|
|
781
|
+
indexingType: "pegged" /* PEGGED */
|
|
548
782
|
}, {
|
|
549
783
|
name: "LBTC",
|
|
550
784
|
symbol: "LBTC",
|
|
@@ -554,8 +788,9 @@ var defaultTokens = [{
|
|
|
554
788
|
coingeckId: void 0,
|
|
555
789
|
displayDecimals: 6,
|
|
556
790
|
priceProxySymbol: "WBTC",
|
|
557
|
-
priceCheckAmount: 1e-4
|
|
791
|
+
priceCheckAmount: 1e-4,
|
|
558
792
|
// 112000 * 0.0001 = $11.2
|
|
793
|
+
indexingType: "pegged" /* PEGGED */
|
|
559
794
|
}, {
|
|
560
795
|
name: "xWBTC",
|
|
561
796
|
symbol: "xWBTC",
|
|
@@ -566,7 +801,8 @@ var defaultTokens = [{
|
|
|
566
801
|
displayDecimals: 6,
|
|
567
802
|
priceCheckAmount: 1e-3,
|
|
568
803
|
// 112000 * 0.0001 = $110.2
|
|
569
|
-
priceMethod: "Avnu"
|
|
804
|
+
priceMethod: "Avnu",
|
|
805
|
+
indexingType: "lstScript" /* LST_SCRIPT */
|
|
570
806
|
}, {
|
|
571
807
|
name: "xsBTC",
|
|
572
808
|
symbol: "xsBTC",
|
|
@@ -577,7 +813,8 @@ var defaultTokens = [{
|
|
|
577
813
|
displayDecimals: 6,
|
|
578
814
|
priceCheckAmount: 1e-4,
|
|
579
815
|
// 112000 * 0.0001 = $11.2
|
|
580
|
-
priceMethod: "Avnu"
|
|
816
|
+
priceMethod: "Avnu",
|
|
817
|
+
indexingType: "lstScript" /* LST_SCRIPT */
|
|
581
818
|
}, {
|
|
582
819
|
name: "xtBTC",
|
|
583
820
|
symbol: "xtBTC",
|
|
@@ -588,7 +825,8 @@ var defaultTokens = [{
|
|
|
588
825
|
displayDecimals: 6,
|
|
589
826
|
priceCheckAmount: 1e-3,
|
|
590
827
|
// 112000 * 0.0001 = $110.2
|
|
591
|
-
priceMethod: "Avnu"
|
|
828
|
+
priceMethod: "Avnu",
|
|
829
|
+
indexingType: "lstScript" /* LST_SCRIPT */
|
|
592
830
|
}, {
|
|
593
831
|
name: "xLBTC",
|
|
594
832
|
symbol: "xLBTC",
|
|
@@ -599,7 +837,8 @@ var defaultTokens = [{
|
|
|
599
837
|
displayDecimals: 6,
|
|
600
838
|
priceCheckAmount: 1e-4,
|
|
601
839
|
// 112000 * 0.0001 = $11.2
|
|
602
|
-
priceMethod: "Avnu"
|
|
840
|
+
priceMethod: "Avnu",
|
|
841
|
+
indexingType: "lstScript" /* LST_SCRIPT */
|
|
603
842
|
}, {
|
|
604
843
|
name: "mRe7BTC",
|
|
605
844
|
symbol: "mRe7BTC",
|
|
@@ -610,7 +849,8 @@ var defaultTokens = [{
|
|
|
610
849
|
displayDecimals: 6,
|
|
611
850
|
priceCheckAmount: 1e-4,
|
|
612
851
|
// 112000 * 0.0001 = $11.2
|
|
613
|
-
dontPrice: true
|
|
852
|
+
dontPrice: true,
|
|
853
|
+
indexingType: "ignore" /* IGNORE */
|
|
614
854
|
}, {
|
|
615
855
|
name: "mRe7YIELD",
|
|
616
856
|
symbol: "mRe7YIELD",
|
|
@@ -620,7 +860,8 @@ var defaultTokens = [{
|
|
|
620
860
|
coingeckId: void 0,
|
|
621
861
|
displayDecimals: 2,
|
|
622
862
|
priceCheckAmount: 100,
|
|
623
|
-
dontPrice: true
|
|
863
|
+
dontPrice: true,
|
|
864
|
+
indexingType: "ignore" /* IGNORE */
|
|
624
865
|
}, {
|
|
625
866
|
name: "fyeWBTC",
|
|
626
867
|
symbol: "fyeWBTC",
|
|
@@ -631,7 +872,8 @@ var defaultTokens = [{
|
|
|
631
872
|
displayDecimals: 6,
|
|
632
873
|
priceCheckAmount: 1e-3,
|
|
633
874
|
// 112000 * 0.0001 = $110.2
|
|
634
|
-
dontPrice: true
|
|
875
|
+
dontPrice: true,
|
|
876
|
+
indexingType: "ignore" /* IGNORE */
|
|
635
877
|
}, {
|
|
636
878
|
name: "fyETH",
|
|
637
879
|
symbol: "fyETH",
|
|
@@ -641,7 +883,8 @@ var defaultTokens = [{
|
|
|
641
883
|
coingeckId: void 0,
|
|
642
884
|
displayDecimals: 4,
|
|
643
885
|
priceCheckAmount: 0.1,
|
|
644
|
-
dontPrice: true
|
|
886
|
+
dontPrice: true,
|
|
887
|
+
indexingType: "ignore" /* IGNORE */
|
|
645
888
|
}, {
|
|
646
889
|
name: "fyeUSDC",
|
|
647
890
|
symbol: "fyeUSDC",
|
|
@@ -651,7 +894,8 @@ var defaultTokens = [{
|
|
|
651
894
|
coingeckId: void 0,
|
|
652
895
|
displayDecimals: 2,
|
|
653
896
|
priceCheckAmount: 100,
|
|
654
|
-
dontPrice: true
|
|
897
|
+
dontPrice: true,
|
|
898
|
+
indexingType: "ignore" /* IGNORE */
|
|
655
899
|
}, {
|
|
656
900
|
name: "strkBTC",
|
|
657
901
|
symbol: "strkBTC",
|
|
@@ -662,7 +906,9 @@ var defaultTokens = [{
|
|
|
662
906
|
displayDecimals: 6,
|
|
663
907
|
priceCheckAmount: 1e-3,
|
|
664
908
|
// 112000 * 0.0001 = $110.2
|
|
665
|
-
priceMethod: "Avnu"
|
|
909
|
+
priceMethod: "Avnu",
|
|
910
|
+
priceProxySymbol: "WBTC",
|
|
911
|
+
indexingType: "pegged" /* PEGGED */
|
|
666
912
|
}, {
|
|
667
913
|
name: "xstrkBTC",
|
|
668
914
|
symbol: "xstrkBTC",
|
|
@@ -672,7 +918,8 @@ var defaultTokens = [{
|
|
|
672
918
|
coingeckId: void 0,
|
|
673
919
|
displayDecimals: 6,
|
|
674
920
|
priceCheckAmount: 1e-3,
|
|
675
|
-
priceMethod: "Avnu"
|
|
921
|
+
priceMethod: "Avnu",
|
|
922
|
+
indexingType: "lstScript" /* LST_SCRIPT */
|
|
676
923
|
}];
|
|
677
924
|
var tokens = defaultTokens;
|
|
678
925
|
var _Global = class _Global {
|
|
@@ -705,7 +952,8 @@ var _Global = class _Global {
|
|
|
705
952
|
decimals: token.decimals,
|
|
706
953
|
logo: token.logoUri,
|
|
707
954
|
coingeckId: token.extensions.coingeckoId,
|
|
708
|
-
displayDecimals: 2
|
|
955
|
+
displayDecimals: 2,
|
|
956
|
+
indexingType: "ignore" /* IGNORE */
|
|
709
957
|
});
|
|
710
958
|
});
|
|
711
959
|
console.log(tokens);
|
|
@@ -770,7 +1018,7 @@ var PricerBase = class {
|
|
|
770
1018
|
};
|
|
771
1019
|
|
|
772
1020
|
// src/modules/avnu.ts
|
|
773
|
-
var
|
|
1021
|
+
var import_starknet7 = require("starknet");
|
|
774
1022
|
var import_avnu_sdk = require("@avnu/avnu-sdk");
|
|
775
1023
|
|
|
776
1024
|
// src/utils/oz-merkle.ts
|
|
@@ -778,8 +1026,8 @@ var import_bytes = require("@ericnordelo/strk-merkle-tree/dist/bytes");
|
|
|
778
1026
|
var import_core = require("@ericnordelo/strk-merkle-tree/dist/core");
|
|
779
1027
|
var import_hashes = require("@ericnordelo/strk-merkle-tree/dist/hashes");
|
|
780
1028
|
var import_merkletree = require("@ericnordelo/strk-merkle-tree/dist/merkletree");
|
|
781
|
-
var
|
|
782
|
-
var
|
|
1029
|
+
var import_starknet5 = require("starknet");
|
|
1030
|
+
var import_starknet6 = require("@scure/starknet");
|
|
783
1031
|
function hash_leaf(leaf) {
|
|
784
1032
|
if (leaf.data.length < 1) {
|
|
785
1033
|
throw new Error("Invalid leaf data");
|
|
@@ -789,10 +1037,10 @@ function hash_leaf(leaf) {
|
|
|
789
1037
|
for (let i = 1; i < leaf.data.length; i++) {
|
|
790
1038
|
value = pedersen_hash(value, leaf.data[i]);
|
|
791
1039
|
}
|
|
792
|
-
return `0x${
|
|
1040
|
+
return `0x${import_starknet5.num.toHexString(value).replace(/^0x/, "").padStart(64, "0")}`;
|
|
793
1041
|
}
|
|
794
1042
|
function pedersen_hash(a, b) {
|
|
795
|
-
return BigInt((0,
|
|
1043
|
+
return BigInt((0, import_starknet6.pedersen)(a, b).toString());
|
|
796
1044
|
}
|
|
797
1045
|
var StandardMerkleTree = class _StandardMerkleTree extends import_merkletree.MerkleTreeImpl {
|
|
798
1046
|
constructor(tree, values, leafEncoding) {
|
|
@@ -916,10 +1164,10 @@ var AvnuWrapper = class _AvnuWrapper {
|
|
|
916
1164
|
const _minAmount = minAmount || (quote.buyAmount * 95n / 100n).toString();
|
|
917
1165
|
const swapInfo = {
|
|
918
1166
|
token_from_address: quote.sellTokenAddress,
|
|
919
|
-
token_from_amount:
|
|
1167
|
+
token_from_amount: import_starknet7.uint256.bnToUint256(quote.sellAmount),
|
|
920
1168
|
token_to_address: quote.buyTokenAddress,
|
|
921
|
-
token_to_amount:
|
|
922
|
-
token_to_min_amount:
|
|
1169
|
+
token_to_amount: import_starknet7.uint256.bnToUint256(_minAmount),
|
|
1170
|
+
token_to_min_amount: import_starknet7.uint256.bnToUint256(_minAmount),
|
|
923
1171
|
beneficiary: taker,
|
|
924
1172
|
integrator_fee_amount_bps: integratorFeeBps,
|
|
925
1173
|
integrator_fee_recipient: integratorFeeRecipient,
|
|
@@ -930,10 +1178,10 @@ var AvnuWrapper = class _AvnuWrapper {
|
|
|
930
1178
|
static buildZeroSwap(tokenToSell, beneficiary, tokenToBuy = tokenToSell) {
|
|
931
1179
|
return {
|
|
932
1180
|
token_from_address: tokenToSell.address,
|
|
933
|
-
token_from_amount:
|
|
1181
|
+
token_from_amount: import_starknet7.uint256.bnToUint256(0),
|
|
934
1182
|
token_to_address: tokenToBuy.address,
|
|
935
|
-
token_to_amount:
|
|
936
|
-
token_to_min_amount:
|
|
1183
|
+
token_to_amount: import_starknet7.uint256.bnToUint256(0),
|
|
1184
|
+
token_to_min_amount: import_starknet7.uint256.bnToUint256(0),
|
|
937
1185
|
beneficiary,
|
|
938
1186
|
integrator_fee_amount_bps: 0,
|
|
939
1187
|
integrator_fee_recipient: beneficiary,
|
|
@@ -1255,7 +1503,7 @@ var Pricer = class extends PricerBase {
|
|
|
1255
1503
|
};
|
|
1256
1504
|
|
|
1257
1505
|
// src/modules/pragma.ts
|
|
1258
|
-
var
|
|
1506
|
+
var import_starknet8 = require("starknet");
|
|
1259
1507
|
|
|
1260
1508
|
// src/data/pragma.abi.json
|
|
1261
1509
|
var pragma_abi_default = [
|
|
@@ -1360,7 +1608,7 @@ var Pragma = class extends PricerBase {
|
|
|
1360
1608
|
constructor(config, tokens2) {
|
|
1361
1609
|
super(config, tokens2);
|
|
1362
1610
|
this.contractAddr = "0x023fb3afbff2c0e3399f896dcf7400acf1a161941cfb386e34a123f228c62832";
|
|
1363
|
-
this.contract = new
|
|
1611
|
+
this.contract = new import_starknet8.Contract({
|
|
1364
1612
|
abi: pragma_abi_default,
|
|
1365
1613
|
address: this.contractAddr,
|
|
1366
1614
|
providerOrAccount: config.provider
|
|
@@ -1388,43 +1636,14 @@ var Pragma = class extends PricerBase {
|
|
|
1388
1636
|
var import_axios4 = __toESM(require("axios"));
|
|
1389
1637
|
|
|
1390
1638
|
// src/dataTypes/bignumber.browser.ts
|
|
1391
|
-
var
|
|
1639
|
+
var import_starknet9 = require("starknet");
|
|
1392
1640
|
var Web3Number2 = class _Web3Number2 extends _Web3Number {
|
|
1393
1641
|
static fromWei(weiNumber, decimals) {
|
|
1394
1642
|
const bn = new _Web3Number2(weiNumber, decimals).dividedBy(10 ** decimals);
|
|
1395
1643
|
return new _Web3Number2(bn.toString(), decimals);
|
|
1396
1644
|
}
|
|
1397
1645
|
static fromUint256(uint256Value) {
|
|
1398
|
-
return this.fromWei(
|
|
1399
|
-
}
|
|
1400
|
-
};
|
|
1401
|
-
|
|
1402
|
-
// src/interfaces/lending.ts
|
|
1403
|
-
var MarginType = /* @__PURE__ */ ((MarginType2) => {
|
|
1404
|
-
MarginType2["SHARED"] = "shared";
|
|
1405
|
-
MarginType2["NONE"] = "none";
|
|
1406
|
-
return MarginType2;
|
|
1407
|
-
})(MarginType || {});
|
|
1408
|
-
var ILending = class {
|
|
1409
|
-
constructor(config, metadata) {
|
|
1410
|
-
this.tokens = [];
|
|
1411
|
-
this.initialised = false;
|
|
1412
|
-
this.metadata = metadata;
|
|
1413
|
-
this.config = config;
|
|
1414
|
-
this.init();
|
|
1415
|
-
}
|
|
1416
|
-
/** Wait for initialisation */
|
|
1417
|
-
waitForInitilisation() {
|
|
1418
|
-
return new Promise((resolve, reject) => {
|
|
1419
|
-
const interval = setInterval(() => {
|
|
1420
|
-
logger.verbose(`Waiting for ${this.metadata.name} to initialise`);
|
|
1421
|
-
if (this.initialised) {
|
|
1422
|
-
logger.verbose(`${this.metadata.name} initialised`);
|
|
1423
|
-
clearInterval(interval);
|
|
1424
|
-
resolve();
|
|
1425
|
-
}
|
|
1426
|
-
}, 1e3);
|
|
1427
|
-
});
|
|
1646
|
+
return this.fromWei(import_starknet9.uint256.uint256ToBN(uint256Value).toString(), 18);
|
|
1428
1647
|
}
|
|
1429
1648
|
};
|
|
1430
1649
|
|
|
@@ -1458,7 +1677,8 @@ var _ZkLend = class _ZkLend extends ILending {
|
|
|
1458
1677
|
decimals: pool.token.decimals,
|
|
1459
1678
|
borrowFactor: Web3Number2.fromWei(pool.borrow_factor.value, pool.borrow_factor.decimals),
|
|
1460
1679
|
collareralFactor,
|
|
1461
|
-
displayDecimals: 2
|
|
1680
|
+
displayDecimals: 2,
|
|
1681
|
+
indexingType: "ignore" /* IGNORE */
|
|
1462
1682
|
};
|
|
1463
1683
|
this.tokens.push(token);
|
|
1464
1684
|
});
|
|
@@ -1586,7 +1806,7 @@ var apolloClient = new import_client.ApolloClient({
|
|
|
1586
1806
|
var import_client2 = require("@apollo/client");
|
|
1587
1807
|
|
|
1588
1808
|
// src/modules/ekubo-pricer.ts
|
|
1589
|
-
var
|
|
1809
|
+
var import_starknet10 = require("starknet");
|
|
1590
1810
|
|
|
1591
1811
|
// src/data/ekubo-price-fethcer.abi.json
|
|
1592
1812
|
var ekubo_price_fethcer_abi_default = [
|
|
@@ -1860,9 +2080,10 @@ var EkuboPricer = class extends PricerBase {
|
|
|
1860
2080
|
constructor(config, tokens2) {
|
|
1861
2081
|
super(config, tokens2);
|
|
1862
2082
|
this.EKUBO_PRICE_FETCHER_ADDRESS = "0x04946fb4ad5237d97bbb1256eba2080c4fe1de156da6a7f83e3b4823bb6d7da1";
|
|
1863
|
-
|
|
2083
|
+
// Updating to new USDC_ADDRESS
|
|
2084
|
+
this.USDC_ADDRESS = "0x033068F6539f8e6e6b131e6B2B814e6c34A5224bC66947c47DaB9dFeE93b35fb";
|
|
1864
2085
|
this.USDC_DECIMALS = 6;
|
|
1865
|
-
this.contract = new
|
|
2086
|
+
this.contract = new import_starknet10.Contract({
|
|
1866
2087
|
abi: ekubo_price_fethcer_abi_default,
|
|
1867
2088
|
address: this.EKUBO_PRICE_FETCHER_ADDRESS,
|
|
1868
2089
|
providerOrAccount: config.provider
|
|
@@ -2073,7 +2294,7 @@ var PricerFromApi = class extends PricerBase {
|
|
|
2073
2294
|
};
|
|
2074
2295
|
|
|
2075
2296
|
// src/modules/erc20.ts
|
|
2076
|
-
var
|
|
2297
|
+
var import_starknet11 = require("starknet");
|
|
2077
2298
|
|
|
2078
2299
|
// src/data/erc20.abi.json
|
|
2079
2300
|
var erc20_abi_default = [
|
|
@@ -3200,14 +3421,14 @@ var erc20_abi_default = [
|
|
|
3200
3421
|
];
|
|
3201
3422
|
|
|
3202
3423
|
// src/modules/erc20.ts
|
|
3203
|
-
var
|
|
3424
|
+
var import_starknet12 = require("starknet");
|
|
3204
3425
|
var ERC20 = class {
|
|
3205
3426
|
constructor(config) {
|
|
3206
3427
|
this.config = config;
|
|
3207
3428
|
}
|
|
3208
3429
|
contract(addr) {
|
|
3209
3430
|
const _addr = typeof addr === "string" ? addr : addr.address;
|
|
3210
|
-
return new
|
|
3431
|
+
return new import_starknet11.Contract({ abi: erc20_abi_default, address: _addr, providerOrAccount: this.config.provider });
|
|
3211
3432
|
}
|
|
3212
3433
|
async balanceOf(token, address, tokenDecimals) {
|
|
3213
3434
|
const contract = this.contract(token);
|
|
@@ -3221,7 +3442,7 @@ var ERC20 = class {
|
|
|
3221
3442
|
}
|
|
3222
3443
|
approve(token, spender, amount) {
|
|
3223
3444
|
const contract = this.contract(token);
|
|
3224
|
-
const amountUint256 =
|
|
3445
|
+
const amountUint256 = import_starknet12.uint256.bnToUint256(amount.toWei());
|
|
3225
3446
|
const approveCall = contract.populate("approve", [
|
|
3226
3447
|
spender.toString(),
|
|
3227
3448
|
amountUint256.low.toString(),
|
|
@@ -3295,192 +3516,6 @@ var EkuboQuoter = class {
|
|
|
3295
3516
|
}
|
|
3296
3517
|
};
|
|
3297
3518
|
|
|
3298
|
-
// src/interfaces/common.tsx
|
|
3299
|
-
var import_starknet12 = require("starknet");
|
|
3300
|
-
var import_jsx_runtime = require("react/jsx-runtime");
|
|
3301
|
-
var RiskType = /* @__PURE__ */ ((RiskType2) => {
|
|
3302
|
-
RiskType2["MARKET_RISK"] = "Market Risk";
|
|
3303
|
-
RiskType2["IMPERMANENT_LOSS"] = "Impermanent Loss Risk";
|
|
3304
|
-
RiskType2["LIQUIDATION_RISK"] = "Liquidation Risk";
|
|
3305
|
-
RiskType2["LOW_LIQUIDITY_RISK"] = "Low Liquidity Risk";
|
|
3306
|
-
RiskType2["SMART_CONTRACT_RISK"] = "Smart Contract Risk";
|
|
3307
|
-
RiskType2["ORACLE_RISK"] = "Oracle Risk";
|
|
3308
|
-
RiskType2["TECHNICAL_RISK"] = "Technical Risk";
|
|
3309
|
-
RiskType2["COUNTERPARTY_RISK"] = "Counterparty Risk";
|
|
3310
|
-
RiskType2["DEPEG_RISK"] = "Depeg Risk";
|
|
3311
|
-
return RiskType2;
|
|
3312
|
-
})(RiskType || {});
|
|
3313
|
-
var Network = /* @__PURE__ */ ((Network2) => {
|
|
3314
|
-
Network2["mainnet"] = "mainnet";
|
|
3315
|
-
Network2["sepolia"] = "sepolia";
|
|
3316
|
-
Network2["devnet"] = "devnet";
|
|
3317
|
-
return Network2;
|
|
3318
|
-
})(Network || {});
|
|
3319
|
-
var StrategyTag = /* @__PURE__ */ ((StrategyTag3) => {
|
|
3320
|
-
StrategyTag3["META_VAULT"] = "Meta Vaults";
|
|
3321
|
-
StrategyTag3["LEVERED"] = "Maxx";
|
|
3322
|
-
StrategyTag3["AUTOMATED_LP"] = "Ekubo";
|
|
3323
|
-
StrategyTag3["BTC"] = "BTC";
|
|
3324
|
-
return StrategyTag3;
|
|
3325
|
-
})(StrategyTag || {});
|
|
3326
|
-
var VaultType = /* @__PURE__ */ ((VaultType2) => {
|
|
3327
|
-
VaultType2["LOOPING"] = "Looping";
|
|
3328
|
-
VaultType2["META_VAULT"] = "Meta Vault";
|
|
3329
|
-
VaultType2["DELTA_NEUTRAL"] = "Delta Neutral";
|
|
3330
|
-
VaultType2["AUTOMATED_LP"] = "Automated LP";
|
|
3331
|
-
VaultType2["TVA"] = "Troves Value Averaging";
|
|
3332
|
-
return VaultType2;
|
|
3333
|
-
})(VaultType || {});
|
|
3334
|
-
var AuditStatus = /* @__PURE__ */ ((AuditStatus2) => {
|
|
3335
|
-
AuditStatus2["AUDITED"] = "Audited";
|
|
3336
|
-
AuditStatus2["NOT_AUDITED"] = "Not Audited";
|
|
3337
|
-
return AuditStatus2;
|
|
3338
|
-
})(AuditStatus || {});
|
|
3339
|
-
var SourceCodeType = /* @__PURE__ */ ((SourceCodeType2) => {
|
|
3340
|
-
SourceCodeType2["OPEN_SOURCE"] = "Open Source";
|
|
3341
|
-
SourceCodeType2["CLOSED_SOURCE"] = "Closed Source";
|
|
3342
|
-
return SourceCodeType2;
|
|
3343
|
-
})(SourceCodeType || {});
|
|
3344
|
-
var AccessControlType = /* @__PURE__ */ ((AccessControlType2) => {
|
|
3345
|
-
AccessControlType2["MULTISIG_ACCOUNT"] = "Multisig Account";
|
|
3346
|
-
AccessControlType2["STANDARD_ACCOUNT"] = "Standard Account";
|
|
3347
|
-
AccessControlType2["ROLE_BASED_ACCESS"] = "Role Based Access";
|
|
3348
|
-
return AccessControlType2;
|
|
3349
|
-
})(AccessControlType || {});
|
|
3350
|
-
var InstantWithdrawalVault = /* @__PURE__ */ ((InstantWithdrawalVault2) => {
|
|
3351
|
-
InstantWithdrawalVault2["YES"] = "Yes";
|
|
3352
|
-
InstantWithdrawalVault2["NO"] = "No";
|
|
3353
|
-
return InstantWithdrawalVault2;
|
|
3354
|
-
})(InstantWithdrawalVault || {});
|
|
3355
|
-
var FlowChartColors = /* @__PURE__ */ ((FlowChartColors2) => {
|
|
3356
|
-
FlowChartColors2["Green"] = "purple";
|
|
3357
|
-
FlowChartColors2["Blue"] = "#35484f";
|
|
3358
|
-
FlowChartColors2["Purple"] = "#6e53dc";
|
|
3359
|
-
return FlowChartColors2;
|
|
3360
|
-
})(FlowChartColors || {});
|
|
3361
|
-
var StrategyLiveStatus = /* @__PURE__ */ ((StrategyLiveStatus2) => {
|
|
3362
|
-
StrategyLiveStatus2["ACTIVE"] = "Active";
|
|
3363
|
-
StrategyLiveStatus2["NEW"] = "New";
|
|
3364
|
-
StrategyLiveStatus2["COMING_SOON"] = "Coming Soon";
|
|
3365
|
-
StrategyLiveStatus2["DEPRECATED"] = "Deprecated";
|
|
3366
|
-
StrategyLiveStatus2["RETIRED"] = "Retired";
|
|
3367
|
-
StrategyLiveStatus2["HOT"] = "Hot & New \u{1F525}";
|
|
3368
|
-
return StrategyLiveStatus2;
|
|
3369
|
-
})(StrategyLiveStatus || {});
|
|
3370
|
-
function getMainnetConfig(rpcUrl = "https://starknet-mainnet.public.blastapi.io", blockIdentifier = import_starknet12.BlockTag.LATEST) {
|
|
3371
|
-
return {
|
|
3372
|
-
provider: new import_starknet12.RpcProvider({
|
|
3373
|
-
nodeUrl: rpcUrl,
|
|
3374
|
-
blockIdentifier
|
|
3375
|
-
// specVersion
|
|
3376
|
-
}),
|
|
3377
|
-
stage: "production",
|
|
3378
|
-
network: "mainnet" /* mainnet */
|
|
3379
|
-
};
|
|
3380
|
-
}
|
|
3381
|
-
var getStrategyTagDesciption = (tag) => {
|
|
3382
|
-
switch (tag) {
|
|
3383
|
-
case "Meta Vaults" /* META_VAULT */:
|
|
3384
|
-
return "A meta vault is a vault that auto allocates funds to multiple vaults based on optimal yield opportunities";
|
|
3385
|
-
case "Maxx" /* LEVERED */:
|
|
3386
|
-
return "Looping vaults on Endur LSTs with leveraged borrowing of STRK or BTC to increase yield (2-4x higher yield than simply staking)";
|
|
3387
|
-
case "Ekubo" /* AUTOMATED_LP */:
|
|
3388
|
-
return "Automated LP vaults on Ekubo that rebalance position automatically, ensuring you earn fees efficiently";
|
|
3389
|
-
case "BTC" /* BTC */:
|
|
3390
|
-
return "BTC linked vaults";
|
|
3391
|
-
}
|
|
3392
|
-
};
|
|
3393
|
-
var getAllStrategyTags = () => {
|
|
3394
|
-
return Object.values(StrategyTag);
|
|
3395
|
-
};
|
|
3396
|
-
var getRiskExplaination = (riskType) => {
|
|
3397
|
-
switch (riskType) {
|
|
3398
|
-
case "Market Risk" /* MARKET_RISK */:
|
|
3399
|
-
return "The risk of the market moving against the position.";
|
|
3400
|
-
case "Impermanent Loss Risk" /* IMPERMANENT_LOSS */:
|
|
3401
|
-
return "The temporary loss of value experienced by liquidity providers in AMMs when asset prices diverge compared to simply holding them.";
|
|
3402
|
-
case "Liquidation Risk" /* LIQUIDATION_RISK */:
|
|
3403
|
-
return "The risk of losing funds due to the position being liquidated.";
|
|
3404
|
-
case "Low Liquidity Risk" /* LOW_LIQUIDITY_RISK */:
|
|
3405
|
-
return "The risk of low liquidity in the pool, which can lead to high slippages or reduced in-abilities to quickly exit the position.";
|
|
3406
|
-
case "Oracle Risk" /* ORACLE_RISK */:
|
|
3407
|
-
return "The risk of the oracle being manipulated or incorrect.";
|
|
3408
|
-
case "Smart Contract Risk" /* SMART_CONTRACT_RISK */:
|
|
3409
|
-
return "The risk of the smart contract being vulnerable to attacks.";
|
|
3410
|
-
case "Technical Risk" /* TECHNICAL_RISK */:
|
|
3411
|
-
return "The risk of technical issues e.g. backend failure.";
|
|
3412
|
-
case "Counterparty Risk" /* COUNTERPARTY_RISK */:
|
|
3413
|
-
return "The risk of the counterparty defaulting e.g. bad debt on lending platforms.";
|
|
3414
|
-
case "Depeg Risk" /* DEPEG_RISK */:
|
|
3415
|
-
return "The risk of a token losing its peg to the underlying asset, leading to potential losses for holders.";
|
|
3416
|
-
}
|
|
3417
|
-
};
|
|
3418
|
-
var getRiskColor = (risk) => {
|
|
3419
|
-
const value = risk.value;
|
|
3420
|
-
if (value <= 2) return "light_green_2";
|
|
3421
|
-
if (value < 3) return "yellow";
|
|
3422
|
-
return "red";
|
|
3423
|
-
};
|
|
3424
|
-
var getNoRiskTags = (risks) => {
|
|
3425
|
-
const noRisks1 = risks.filter((risk) => risk.value === 0).map((risk) => risk.type);
|
|
3426
|
-
const noRisks2 = Object.values(RiskType).filter(
|
|
3427
|
-
(risk) => !risks.map((risk2) => risk2.type).includes(risk)
|
|
3428
|
-
);
|
|
3429
|
-
const mergedUnique = [.../* @__PURE__ */ new Set([...noRisks1, ...noRisks2])];
|
|
3430
|
-
return mergedUnique;
|
|
3431
|
-
};
|
|
3432
|
-
function highlightTextWithLinks(put, highlights) {
|
|
3433
|
-
const escapeRegExp = (text) => text.replace(/[-/\\^$*+?.()|[\]{}]/g, "\\$&");
|
|
3434
|
-
const pattern = new RegExp(
|
|
3435
|
-
`(${highlights.map((m) => escapeRegExp(m.highlight)).join("|")})`,
|
|
3436
|
-
"gi"
|
|
3437
|
-
);
|
|
3438
|
-
const parts = put.split(pattern);
|
|
3439
|
-
return /* @__PURE__ */ (0, import_jsx_runtime.jsx)(import_jsx_runtime.Fragment, { children: parts.map((part, i) => {
|
|
3440
|
-
const match = highlights.find((m) => m.highlight.toLowerCase() === part.toLowerCase());
|
|
3441
|
-
return match ? /* @__PURE__ */ (0, import_jsx_runtime.jsx)("a", { href: match.link, target: "_blank", style: { color: "white", background: "rgba(255, 255, 255, 0.04)" }, children: part }, i) : /* @__PURE__ */ (0, import_jsx_runtime.jsx)("span", { children: part }, i);
|
|
3442
|
-
}) });
|
|
3443
|
-
}
|
|
3444
|
-
var VesuProtocol = {
|
|
3445
|
-
name: "Vesu",
|
|
3446
|
-
logo: "https://static-assets-8zct.onrender.com/integrations/vesu/logo.png"
|
|
3447
|
-
};
|
|
3448
|
-
var EndurProtocol = {
|
|
3449
|
-
name: "Endur",
|
|
3450
|
-
logo: "http://endur.fi/logo.png"
|
|
3451
|
-
};
|
|
3452
|
-
var ExtendedProtocol = {
|
|
3453
|
-
name: "Extended",
|
|
3454
|
-
logo: "https://static-assets-8zct.onrender.com/integrations/extended/extended.svg"
|
|
3455
|
-
};
|
|
3456
|
-
var Protocols = {
|
|
3457
|
-
VESU: VesuProtocol,
|
|
3458
|
-
ENDUR: EndurProtocol,
|
|
3459
|
-
EXTENDED: ExtendedProtocol
|
|
3460
|
-
};
|
|
3461
|
-
var UnwrapLabsCurator = {
|
|
3462
|
-
name: "Unwrap Labs",
|
|
3463
|
-
logo: "https://assets.troves.fi/integrations/unwraplabs/white.png"
|
|
3464
|
-
};
|
|
3465
|
-
|
|
3466
|
-
// src/interfaces/initializable.ts
|
|
3467
|
-
var Initializable = class {
|
|
3468
|
-
constructor() {
|
|
3469
|
-
this.initialized = false;
|
|
3470
|
-
}
|
|
3471
|
-
async waitForInitilisation() {
|
|
3472
|
-
return new Promise((resolve, reject) => {
|
|
3473
|
-
const interval = setInterval(() => {
|
|
3474
|
-
if (this.initialized) {
|
|
3475
|
-
console.log("Initialised");
|
|
3476
|
-
clearInterval(interval);
|
|
3477
|
-
resolve();
|
|
3478
|
-
}
|
|
3479
|
-
}, 1e3);
|
|
3480
|
-
});
|
|
3481
|
-
}
|
|
3482
|
-
};
|
|
3483
|
-
|
|
3484
3519
|
// src/strategies/autoCompounderStrk.ts
|
|
3485
3520
|
var import_starknet13 = require("starknet");
|
|
3486
3521
|
var AutoCompounderSTRK = class {
|
|
@@ -29653,7 +29688,8 @@ var vesuPrimeUSDC = {
|
|
|
29653
29688
|
name: "Vesu Prime USDC",
|
|
29654
29689
|
decimals: 18,
|
|
29655
29690
|
logo: usdc.logo,
|
|
29656
|
-
displayDecimals: 2
|
|
29691
|
+
displayDecimals: 2,
|
|
29692
|
+
indexingType: "ignore" /* IGNORE */
|
|
29657
29693
|
};
|
|
29658
29694
|
var strk = Global.getDefaultTokens().find((t) => t.symbol === "STRK");
|
|
29659
29695
|
function getYoloVaultErc4626Config(mainToken, secondaryToken) {
|
|
@@ -36056,6 +36092,7 @@ var deployer_default = Deployer;
|
|
|
36056
36092
|
StrategyType,
|
|
36057
36093
|
TelegramGroupNotif,
|
|
36058
36094
|
TelegramNotif,
|
|
36095
|
+
TokenIndexingType,
|
|
36059
36096
|
UNIVERSAL_ADAPTERS,
|
|
36060
36097
|
UNIVERSAL_MANAGE_IDS,
|
|
36061
36098
|
UniversalLstMultiplierStrategy,
|