@strkfarm/sdk 2.0.0-dev.9 → 2.0.0-staging.2
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 +111371 -93151
- package/dist/index.browser.mjs +27815 -32690
- package/dist/index.d.ts +1095 -2011
- package/dist/index.js +27425 -32309
- package/dist/index.mjs +27590 -32452
- package/package.json +6 -5
- package/src/data/ekubo-price-fethcer.abi.json +265 -0
- package/src/data/universal-vault.abi.json +20 -135
- package/src/dataTypes/address.ts +0 -7
- package/src/dataTypes/index.ts +3 -2
- package/src/dataTypes/mynumber.ts +141 -0
- package/src/global.ts +296 -288
- package/src/index.browser.ts +6 -5
- package/src/interfaces/common.tsx +324 -184
- package/src/modules/apollo-client-config.ts +28 -0
- package/src/modules/avnu.ts +4 -17
- package/src/modules/ekubo-pricer.ts +79 -0
- package/src/modules/ekubo-quoter.ts +11 -88
- package/src/modules/erc20.ts +21 -67
- package/src/modules/harvests.ts +26 -15
- package/src/modules/index.ts +11 -13
- package/src/modules/lst-apr.ts +0 -36
- package/src/modules/pragma.ts +23 -8
- package/src/modules/pricer-from-api.ts +150 -14
- package/src/modules/pricer.ts +2 -1
- package/src/modules/pricerBase.ts +2 -1
- package/src/node/deployer.ts +36 -1
- package/src/node/pricer-redis.ts +2 -1
- package/src/strategies/autoCompounderStrk.ts +1 -1
- package/src/strategies/base-strategy.ts +5 -22
- package/src/strategies/ekubo-cl-vault.tsx +2904 -2175
- package/src/strategies/factory.ts +165 -0
- package/src/strategies/index.ts +10 -11
- package/src/strategies/registry.ts +268 -0
- package/src/strategies/sensei.ts +416 -292
- package/src/strategies/universal-adapters/adapter-utils.ts +1 -5
- package/src/strategies/universal-adapters/baseAdapter.ts +153 -181
- package/src/strategies/universal-adapters/common-adapter.ts +77 -98
- package/src/strategies/universal-adapters/index.ts +1 -5
- package/src/strategies/universal-adapters/vesu-adapter.ts +218 -220
- package/src/strategies/universal-adapters/vesu-supply-only-adapter.ts +51 -58
- package/src/strategies/universal-lst-muliplier-strategy.tsx +1952 -992
- package/src/strategies/universal-strategy.tsx +1713 -1150
- package/src/strategies/vesu-rebalance.tsx +1189 -986
- package/src/utils/health-factor-math.ts +5 -11
- package/src/utils/index.ts +8 -9
- package/src/utils/strategy-utils.ts +57 -0
- package/src/data/extended-deposit.abi.json +0 -3613
- package/src/modules/ExtendedWrapperSDk/index.ts +0 -62
- package/src/modules/ExtendedWrapperSDk/types.ts +0 -311
- package/src/modules/ExtendedWrapperSDk/wrapper.ts +0 -395
- package/src/modules/midas.ts +0 -159
- package/src/modules/token-market-data.ts +0 -202
- package/src/strategies/svk-strategy.ts +0 -247
- package/src/strategies/universal-adapters/adapter-optimizer.ts +0 -65
- package/src/strategies/universal-adapters/avnu-adapter.ts +0 -413
- package/src/strategies/universal-adapters/extended-adapter.ts +0 -972
- package/src/strategies/universal-adapters/unused-balance-adapter.ts +0 -109
- package/src/strategies/universal-adapters/vesu-multiply-adapter.ts +0 -1306
- package/src/strategies/vesu-extended-strategy/services/operationService.ts +0 -34
- package/src/strategies/vesu-extended-strategy/utils/config.runtime.ts +0 -77
- package/src/strategies/vesu-extended-strategy/utils/constants.ts +0 -49
- package/src/strategies/vesu-extended-strategy/utils/helper.ts +0 -370
- package/src/strategies/vesu-extended-strategy/vesu-extended-strategy.tsx +0 -1379
|
@@ -0,0 +1,141 @@
|
|
|
1
|
+
import BigNumber from "bignumber.js";
|
|
2
|
+
import { ethers } from "ethers";
|
|
3
|
+
|
|
4
|
+
const customInspectSymbol = Symbol.for("nodejs.util.inspect.custom");
|
|
5
|
+
|
|
6
|
+
BigNumber.config({
|
|
7
|
+
DECIMAL_PLACES: 18
|
|
8
|
+
});
|
|
9
|
+
|
|
10
|
+
export class MyNumber {
|
|
11
|
+
bigNumber: BigNumber;
|
|
12
|
+
decimals: number;
|
|
13
|
+
|
|
14
|
+
constructor(bigNumber: string, decimals: number) {
|
|
15
|
+
this.bigNumber = new BigNumber(bigNumber);
|
|
16
|
+
this.decimals = decimals;
|
|
17
|
+
}
|
|
18
|
+
|
|
19
|
+
static fromEther(num: string, decimals: number) {
|
|
20
|
+
try {
|
|
21
|
+
return new MyNumber(
|
|
22
|
+
Number(
|
|
23
|
+
ethers.parseUnits(Number(num).toFixed(10), decimals)
|
|
24
|
+
).toFixed(6),
|
|
25
|
+
decimals
|
|
26
|
+
);
|
|
27
|
+
} catch (e) {
|
|
28
|
+
console.error("fromEther", e, num, decimals);
|
|
29
|
+
throw e;
|
|
30
|
+
}
|
|
31
|
+
}
|
|
32
|
+
|
|
33
|
+
static fromZero() {
|
|
34
|
+
return new MyNumber("0", 0);
|
|
35
|
+
}
|
|
36
|
+
|
|
37
|
+
toString() {
|
|
38
|
+
return this.bigNumber.toFixed();
|
|
39
|
+
}
|
|
40
|
+
|
|
41
|
+
toEtherStr() {
|
|
42
|
+
return ethers.formatUnits(this.bigNumber.toFixed(), this.decimals);
|
|
43
|
+
}
|
|
44
|
+
|
|
45
|
+
toFixedStr(decimals: number) {
|
|
46
|
+
return Number(this.toEtherStr()).toFixed(decimals);
|
|
47
|
+
}
|
|
48
|
+
|
|
49
|
+
toEtherToFixedDecimals(decimals: number) {
|
|
50
|
+
// rounding down
|
|
51
|
+
if (this.bigNumber.isNaN()) {
|
|
52
|
+
return "NaN";
|
|
53
|
+
}
|
|
54
|
+
return (
|
|
55
|
+
Math.floor(parseFloat(this.toEtherStr()) * 10 ** decimals) /
|
|
56
|
+
10 ** decimals
|
|
57
|
+
).toFixed(decimals);
|
|
58
|
+
}
|
|
59
|
+
|
|
60
|
+
isZero() {
|
|
61
|
+
return this.bigNumber.eq("0");
|
|
62
|
+
}
|
|
63
|
+
|
|
64
|
+
/**
|
|
65
|
+
*
|
|
66
|
+
* @param amountEther in token terms without decimal e.g. 1 for 1 STRK
|
|
67
|
+
* @param command BigNumber compare funds. e.g. gte, gt, lt
|
|
68
|
+
* @returns
|
|
69
|
+
* @dev Add more commands as needed
|
|
70
|
+
*/
|
|
71
|
+
compare(amountEther: string, command: "gte" | "gt" | "lt") {
|
|
72
|
+
const fullNum = new BigNumber(
|
|
73
|
+
ethers.parseUnits(amountEther, this.decimals).toString()
|
|
74
|
+
);
|
|
75
|
+
return this.bigNumber[command](fullNum);
|
|
76
|
+
}
|
|
77
|
+
|
|
78
|
+
operate(command: "div" | "plus" | "mul", value: string | number) {
|
|
79
|
+
const bn = new BigNumber(Number(value).toFixed(6));
|
|
80
|
+
return new MyNumber(
|
|
81
|
+
this.bigNumber[command](bn).toFixed(0),
|
|
82
|
+
this.decimals
|
|
83
|
+
);
|
|
84
|
+
}
|
|
85
|
+
|
|
86
|
+
subtract(value: MyNumber) {
|
|
87
|
+
const bn = this.bigNumber.minus(value.bigNumber);
|
|
88
|
+
return new MyNumber(bn.toString(), this.decimals);
|
|
89
|
+
}
|
|
90
|
+
|
|
91
|
+
static min(a: MyNumber, b: MyNumber) {
|
|
92
|
+
if (a.decimals !== b.decimals) {
|
|
93
|
+
const diff = Math.abs(a.decimals - b.decimals);
|
|
94
|
+
if (a.decimals > b.decimals) {
|
|
95
|
+
b = new MyNumber(
|
|
96
|
+
b.bigNumber.times(10 ** diff).toString(),
|
|
97
|
+
a.decimals
|
|
98
|
+
);
|
|
99
|
+
} else {
|
|
100
|
+
a = new MyNumber(
|
|
101
|
+
a.bigNumber.times(10 ** diff).toString(),
|
|
102
|
+
b.decimals
|
|
103
|
+
);
|
|
104
|
+
}
|
|
105
|
+
}
|
|
106
|
+
const bn = BigNumber.min(a.bigNumber, b.bigNumber);
|
|
107
|
+
return new MyNumber(
|
|
108
|
+
bn.toString(),
|
|
109
|
+
a.decimals > b.decimals ? a.decimals : b.decimals
|
|
110
|
+
);
|
|
111
|
+
}
|
|
112
|
+
|
|
113
|
+
static max(a: MyNumber, b: MyNumber) {
|
|
114
|
+
if (a.decimals !== b.decimals) {
|
|
115
|
+
const diff = Math.abs(a.decimals - b.decimals);
|
|
116
|
+
if (a.decimals > b.decimals) {
|
|
117
|
+
b = new MyNumber(
|
|
118
|
+
b.bigNumber.times(10 ** diff).toString(),
|
|
119
|
+
a.decimals
|
|
120
|
+
);
|
|
121
|
+
} else {
|
|
122
|
+
a = new MyNumber(
|
|
123
|
+
a.bigNumber.times(10 ** diff).toString(),
|
|
124
|
+
b.decimals
|
|
125
|
+
);
|
|
126
|
+
}
|
|
127
|
+
}
|
|
128
|
+
const bn = BigNumber.max(a.bigNumber, b.bigNumber);
|
|
129
|
+
return new MyNumber(
|
|
130
|
+
bn.toString(),
|
|
131
|
+
a.decimals > b.decimals ? a.decimals : b.decimals
|
|
132
|
+
);
|
|
133
|
+
}
|
|
134
|
+
|
|
135
|
+
[customInspectSymbol](depth: any, inspectOptions: any, inspect: any) {
|
|
136
|
+
return JSON.stringify({
|
|
137
|
+
raw: this.toString(),
|
|
138
|
+
decimals: this.decimals
|
|
139
|
+
});
|
|
140
|
+
}
|
|
141
|
+
}
|