@strkfarm/sdk 1.0.14 → 1.0.16
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/cli.js +58 -8
- package/dist/cli.mjs +53 -3
- package/dist/index.browser.global.js +1797 -7
- package/dist/index.d.ts +234 -44
- package/dist/index.js +2058 -259
- package/dist/index.mjs +2052 -257
- package/package.json +2 -2
- package/src/data/vesu-rebalance.abi.json +1473 -0
- package/src/dataTypes/bignumber.ts +4 -2
- package/src/global.ts +11 -1
- package/src/index.ts +4 -1
- package/src/interfaces/common.ts +15 -0
- package/src/modules/pricer.ts +12 -5
- package/src/strategies/index.ts +2 -1
- package/src/strategies/vesu-rebalance.ts +429 -0
- package/src/utils/index.ts +7 -4
- package/src/utils/store.ts +1 -1
package/dist/cli.js
CHANGED
|
@@ -29,7 +29,7 @@ var import_inquirer = __toESM(require("inquirer"));
|
|
|
29
29
|
|
|
30
30
|
// src/utils/store.ts
|
|
31
31
|
var import_fs = __toESM(require("fs"));
|
|
32
|
-
var
|
|
32
|
+
var import_starknet6 = require("starknet");
|
|
33
33
|
var crypto2 = __toESM(require("crypto"));
|
|
34
34
|
|
|
35
35
|
// src/utils/encrypt.ts
|
|
@@ -101,7 +101,13 @@ var FatalError = class extends Error {
|
|
|
101
101
|
this.name = "FatalError";
|
|
102
102
|
}
|
|
103
103
|
};
|
|
104
|
-
var tokens = [
|
|
104
|
+
var tokens = [{
|
|
105
|
+
name: "Starknet",
|
|
106
|
+
symbol: "STRK",
|
|
107
|
+
address: "0x4718f5a0fc34cc1af16a1cdee98ffb20c31f5cd61d6ab07201858f4287c938d",
|
|
108
|
+
decimals: 18,
|
|
109
|
+
coingeckId: "starknet"
|
|
110
|
+
}];
|
|
105
111
|
var Global = class {
|
|
106
112
|
static fatalError(message, err) {
|
|
107
113
|
logger.error(message);
|
|
@@ -114,6 +120,9 @@ var Global = class {
|
|
|
114
120
|
logger.error(`${url}: ${message}`);
|
|
115
121
|
console.error(err);
|
|
116
122
|
}
|
|
123
|
+
static getDefaultTokens() {
|
|
124
|
+
return tokens;
|
|
125
|
+
}
|
|
117
126
|
static async getTokens() {
|
|
118
127
|
if (tokens.length) return tokens;
|
|
119
128
|
const data = await import_axios.default.get("https://starknet.api.avnu.fi/v1/starknet/tokens");
|
|
@@ -155,10 +164,12 @@ var Web3Number = class _Web3Number extends import_bignumber.default {
|
|
|
155
164
|
return this.mul(10 ** this.decimals).toFixed(0);
|
|
156
165
|
}
|
|
157
166
|
multipliedBy(value) {
|
|
158
|
-
|
|
167
|
+
let _value = Number(value).toFixed(6);
|
|
168
|
+
return new _Web3Number(this.mul(_value).toString(), this.decimals);
|
|
159
169
|
}
|
|
160
170
|
dividedBy(value) {
|
|
161
|
-
|
|
171
|
+
let _value = Number(value).toFixed(6);
|
|
172
|
+
return new _Web3Number(this.div(_value).toString(), this.decimals);
|
|
162
173
|
}
|
|
163
174
|
plus(value) {
|
|
164
175
|
return new _Web3Number(this.add(value).toString(), this.decimals);
|
|
@@ -178,6 +189,31 @@ Web3Number.config({ DECIMAL_PLACES: 18 });
|
|
|
178
189
|
|
|
179
190
|
// src/dataTypes/address.ts
|
|
180
191
|
var import_starknet = require("starknet");
|
|
192
|
+
var ContractAddr = class _ContractAddr {
|
|
193
|
+
constructor(address) {
|
|
194
|
+
this.address = _ContractAddr.standardise(address);
|
|
195
|
+
}
|
|
196
|
+
static from(address) {
|
|
197
|
+
return new _ContractAddr(address);
|
|
198
|
+
}
|
|
199
|
+
eq(other) {
|
|
200
|
+
return this.address === other.address;
|
|
201
|
+
}
|
|
202
|
+
eqString(other) {
|
|
203
|
+
return this.address === _ContractAddr.standardise(other);
|
|
204
|
+
}
|
|
205
|
+
static standardise(address) {
|
|
206
|
+
let _a = address;
|
|
207
|
+
if (!address) {
|
|
208
|
+
_a = "0";
|
|
209
|
+
}
|
|
210
|
+
const a = import_starknet.num.getHexString(import_starknet.num.getDecimalString(_a.toString()));
|
|
211
|
+
return a;
|
|
212
|
+
}
|
|
213
|
+
static eqString(a, b) {
|
|
214
|
+
return _ContractAddr.standardise(a) === _ContractAddr.standardise(b);
|
|
215
|
+
}
|
|
216
|
+
};
|
|
181
217
|
|
|
182
218
|
// src/modules/pricer.ts
|
|
183
219
|
var CoinMarketCap = require("coinmarketcap-api");
|
|
@@ -353,6 +389,20 @@ var import_starknet3 = require("starknet");
|
|
|
353
389
|
// src/strategies/autoCompounderStrk.ts
|
|
354
390
|
var import_starknet4 = require("starknet");
|
|
355
391
|
|
|
392
|
+
// src/strategies/vesu-rebalance.ts
|
|
393
|
+
var import_starknet5 = require("starknet");
|
|
394
|
+
var import_axios4 = __toESM(require("axios"));
|
|
395
|
+
var _description = "Automatically diversify {{TOKEN}} holdings into different Vesu pools while reducing risk and maximizing yield. Defi spring STRK Rewards are auto-compounded as well.";
|
|
396
|
+
var _protocol = { name: "Vesu", logo: "https://static-assets-8zct.onrender.com/integrations/vesu/logo.png" };
|
|
397
|
+
var VesuRebalanceStrategies = [{
|
|
398
|
+
name: "Vesu STRK",
|
|
399
|
+
description: _description.replace("{{TOKEN}}", "STRK"),
|
|
400
|
+
address: ContractAddr.from("0xeeb729d554ae486387147b13a9c8871bc7991d454e8b5ff570d4bf94de71e1"),
|
|
401
|
+
type: "ERC4626",
|
|
402
|
+
depositTokens: [Global.getDefaultTokens().find((t) => t.symbol === "STRK")],
|
|
403
|
+
protocols: [_protocol]
|
|
404
|
+
}];
|
|
405
|
+
|
|
356
406
|
// src/notifs/telegram.ts
|
|
357
407
|
var import_node_telegram_bot_api = __toESM(require("node-telegram-bot-api"));
|
|
358
408
|
|
|
@@ -392,7 +442,7 @@ var Store = class _Store {
|
|
|
392
442
|
logger.warn(`This not stored anywhere, please you backup this password for future use`);
|
|
393
443
|
logger.warn(`\u26A0\uFE0F=========================================\u26A0\uFE0F`);
|
|
394
444
|
}
|
|
395
|
-
getAccount(accountKey, txVersion =
|
|
445
|
+
getAccount(accountKey, txVersion = import_starknet6.constants.TRANSACTION_VERSION.V2) {
|
|
396
446
|
const accounts = this.loadAccounts();
|
|
397
447
|
logger.verbose(`nAccounts loaded for network: ${Object.keys(accounts).length}`);
|
|
398
448
|
const data = accounts[accountKey];
|
|
@@ -401,7 +451,7 @@ var Store = class _Store {
|
|
|
401
451
|
}
|
|
402
452
|
logger.verbose(`Account loaded: ${accountKey} from network: ${this.config.network}`);
|
|
403
453
|
logger.verbose(`Address: ${data.address}`);
|
|
404
|
-
const acc = new
|
|
454
|
+
const acc = new import_starknet6.Account(this.config.provider, data.address, data.pk, void 0, txVersion);
|
|
405
455
|
return acc;
|
|
406
456
|
}
|
|
407
457
|
addAccount(accountKey, address, pk) {
|
|
@@ -465,11 +515,11 @@ var Store = class _Store {
|
|
|
465
515
|
|
|
466
516
|
// src/cli.ts
|
|
467
517
|
var import_chalk = __toESM(require("chalk"));
|
|
468
|
-
var
|
|
518
|
+
var import_starknet7 = require("starknet");
|
|
469
519
|
var program = new import_commander.Command();
|
|
470
520
|
var getConfig = (network) => {
|
|
471
521
|
return {
|
|
472
|
-
provider: new
|
|
522
|
+
provider: new import_starknet7.RpcProvider({
|
|
473
523
|
nodeUrl: "https://starknet-mainnet.public.blastapi.io"
|
|
474
524
|
}),
|
|
475
525
|
network,
|
package/dist/cli.mjs
CHANGED
|
@@ -84,7 +84,13 @@ var FatalError = class extends Error {
|
|
|
84
84
|
this.name = "FatalError";
|
|
85
85
|
}
|
|
86
86
|
};
|
|
87
|
-
var tokens = [
|
|
87
|
+
var tokens = [{
|
|
88
|
+
name: "Starknet",
|
|
89
|
+
symbol: "STRK",
|
|
90
|
+
address: "0x4718f5a0fc34cc1af16a1cdee98ffb20c31f5cd61d6ab07201858f4287c938d",
|
|
91
|
+
decimals: 18,
|
|
92
|
+
coingeckId: "starknet"
|
|
93
|
+
}];
|
|
88
94
|
var Global = class {
|
|
89
95
|
static fatalError(message, err) {
|
|
90
96
|
logger.error(message);
|
|
@@ -97,6 +103,9 @@ var Global = class {
|
|
|
97
103
|
logger.error(`${url}: ${message}`);
|
|
98
104
|
console.error(err);
|
|
99
105
|
}
|
|
106
|
+
static getDefaultTokens() {
|
|
107
|
+
return tokens;
|
|
108
|
+
}
|
|
100
109
|
static async getTokens() {
|
|
101
110
|
if (tokens.length) return tokens;
|
|
102
111
|
const data = await axios.get("https://starknet.api.avnu.fi/v1/starknet/tokens");
|
|
@@ -138,10 +147,12 @@ var Web3Number = class _Web3Number extends BigNumber {
|
|
|
138
147
|
return this.mul(10 ** this.decimals).toFixed(0);
|
|
139
148
|
}
|
|
140
149
|
multipliedBy(value) {
|
|
141
|
-
|
|
150
|
+
let _value = Number(value).toFixed(6);
|
|
151
|
+
return new _Web3Number(this.mul(_value).toString(), this.decimals);
|
|
142
152
|
}
|
|
143
153
|
dividedBy(value) {
|
|
144
|
-
|
|
154
|
+
let _value = Number(value).toFixed(6);
|
|
155
|
+
return new _Web3Number(this.div(_value).toString(), this.decimals);
|
|
145
156
|
}
|
|
146
157
|
plus(value) {
|
|
147
158
|
return new _Web3Number(this.add(value).toString(), this.decimals);
|
|
@@ -161,6 +172,31 @@ Web3Number.config({ DECIMAL_PLACES: 18 });
|
|
|
161
172
|
|
|
162
173
|
// src/dataTypes/address.ts
|
|
163
174
|
import { num } from "starknet";
|
|
175
|
+
var ContractAddr = class _ContractAddr {
|
|
176
|
+
constructor(address) {
|
|
177
|
+
this.address = _ContractAddr.standardise(address);
|
|
178
|
+
}
|
|
179
|
+
static from(address) {
|
|
180
|
+
return new _ContractAddr(address);
|
|
181
|
+
}
|
|
182
|
+
eq(other) {
|
|
183
|
+
return this.address === other.address;
|
|
184
|
+
}
|
|
185
|
+
eqString(other) {
|
|
186
|
+
return this.address === _ContractAddr.standardise(other);
|
|
187
|
+
}
|
|
188
|
+
static standardise(address) {
|
|
189
|
+
let _a = address;
|
|
190
|
+
if (!address) {
|
|
191
|
+
_a = "0";
|
|
192
|
+
}
|
|
193
|
+
const a = num.getHexString(num.getDecimalString(_a.toString()));
|
|
194
|
+
return a;
|
|
195
|
+
}
|
|
196
|
+
static eqString(a, b) {
|
|
197
|
+
return _ContractAddr.standardise(a) === _ContractAddr.standardise(b);
|
|
198
|
+
}
|
|
199
|
+
};
|
|
164
200
|
|
|
165
201
|
// src/modules/pricer.ts
|
|
166
202
|
var CoinMarketCap = __require("coinmarketcap-api");
|
|
@@ -336,6 +372,20 @@ import { RpcProvider as RpcProvider2 } from "starknet";
|
|
|
336
372
|
// src/strategies/autoCompounderStrk.ts
|
|
337
373
|
import { Contract as Contract2, uint256 } from "starknet";
|
|
338
374
|
|
|
375
|
+
// src/strategies/vesu-rebalance.ts
|
|
376
|
+
import { CairoCustomEnum, Contract as Contract3, num as num2, uint256 as uint2562 } from "starknet";
|
|
377
|
+
import axios4 from "axios";
|
|
378
|
+
var _description = "Automatically diversify {{TOKEN}} holdings into different Vesu pools while reducing risk and maximizing yield. Defi spring STRK Rewards are auto-compounded as well.";
|
|
379
|
+
var _protocol = { name: "Vesu", logo: "https://static-assets-8zct.onrender.com/integrations/vesu/logo.png" };
|
|
380
|
+
var VesuRebalanceStrategies = [{
|
|
381
|
+
name: "Vesu STRK",
|
|
382
|
+
description: _description.replace("{{TOKEN}}", "STRK"),
|
|
383
|
+
address: ContractAddr.from("0xeeb729d554ae486387147b13a9c8871bc7991d454e8b5ff570d4bf94de71e1"),
|
|
384
|
+
type: "ERC4626",
|
|
385
|
+
depositTokens: [Global.getDefaultTokens().find((t) => t.symbol === "STRK")],
|
|
386
|
+
protocols: [_protocol]
|
|
387
|
+
}];
|
|
388
|
+
|
|
339
389
|
// src/notifs/telegram.ts
|
|
340
390
|
import TelegramBot from "node-telegram-bot-api";
|
|
341
391
|
|