@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 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 import_starknet5 = require("starknet");
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
- return new _Web3Number(this.mul(value).toString(), this.decimals);
167
+ let _value = Number(value).toFixed(6);
168
+ return new _Web3Number(this.mul(_value).toString(), this.decimals);
159
169
  }
160
170
  dividedBy(value) {
161
- return new _Web3Number(this.div(value).toString(), this.decimals);
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 = import_starknet5.constants.TRANSACTION_VERSION.V2) {
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 import_starknet5.Account(this.config.provider, data.address, data.pk, void 0, txVersion);
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 import_starknet6 = require("starknet");
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 import_starknet6.RpcProvider({
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
- return new _Web3Number(this.mul(value).toString(), this.decimals);
150
+ let _value = Number(value).toFixed(6);
151
+ return new _Web3Number(this.mul(_value).toString(), this.decimals);
142
152
  }
143
153
  dividedBy(value) {
144
- return new _Web3Number(this.div(value).toString(), this.decimals);
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