curvance 4.1.2 → 5.1.0
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/README.md +65 -10
- package/dist/abis/OptimizerReader.json +43 -45
- package/dist/abis/ProtocolReader.json +279 -55
- package/dist/chains/arbitrum.js +3 -3
- package/dist/chains/arbitrum.js.map +1 -1
- package/dist/classes/Api.d.ts +2 -2
- package/dist/classes/Api.d.ts.map +1 -1
- package/dist/classes/Api.js +87 -14
- package/dist/classes/Api.js.map +1 -1
- package/dist/classes/BorrowableCToken.d.ts +9 -1
- package/dist/classes/BorrowableCToken.d.ts.map +1 -1
- package/dist/classes/BorrowableCToken.js +67 -12
- package/dist/classes/BorrowableCToken.js.map +1 -1
- package/dist/classes/CToken.d.ts +210 -21
- package/dist/classes/CToken.d.ts.map +1 -1
- package/dist/classes/CToken.js +692 -284
- package/dist/classes/CToken.js.map +1 -1
- package/dist/classes/Calldata.d.ts +2 -2
- package/dist/classes/Calldata.d.ts.map +1 -1
- package/dist/classes/Calldata.js +6 -2
- package/dist/classes/Calldata.js.map +1 -1
- package/dist/classes/DexAggregators/IDexAgg.d.ts +1 -1
- package/dist/classes/DexAggregators/Kuru.js +1 -1
- package/dist/classes/DexAggregators/Kuru.js.map +1 -1
- package/dist/classes/DexAggregators/KyberSwap.d.ts.map +1 -1
- package/dist/classes/DexAggregators/KyberSwap.js +112 -61
- package/dist/classes/DexAggregators/KyberSwap.js.map +1 -1
- package/dist/classes/DexAggregators/MultiDexAgg.d.ts +2 -2
- package/dist/classes/DexAggregators/MultiDexAgg.d.ts.map +1 -1
- package/dist/classes/DexAggregators/MultiDexAgg.js +30 -18
- package/dist/classes/DexAggregators/MultiDexAgg.js.map +1 -1
- package/dist/classes/DexAggregators/UnsupportedDexAgg.d.ts +19 -0
- package/dist/classes/DexAggregators/UnsupportedDexAgg.d.ts.map +1 -0
- package/dist/classes/DexAggregators/UnsupportedDexAgg.js +29 -0
- package/dist/classes/DexAggregators/UnsupportedDexAgg.js.map +1 -0
- package/dist/classes/DexAggregators/helpers.d.ts +30 -0
- package/dist/classes/DexAggregators/helpers.d.ts.map +1 -0
- package/dist/classes/DexAggregators/helpers.js +57 -0
- package/dist/classes/DexAggregators/helpers.js.map +1 -0
- package/dist/classes/DexAggregators/index.d.ts +2 -0
- package/dist/classes/DexAggregators/index.d.ts.map +1 -1
- package/dist/classes/DexAggregators/index.js +1 -0
- package/dist/classes/DexAggregators/index.js.map +1 -1
- package/dist/classes/ERC20.d.ts +3 -3
- package/dist/classes/ERC20.d.ts.map +1 -1
- package/dist/classes/ERC20.js +26 -10
- package/dist/classes/ERC20.js.map +1 -1
- package/dist/classes/FormatConverter.d.ts.map +1 -1
- package/dist/classes/FormatConverter.js +4 -1
- package/dist/classes/FormatConverter.js.map +1 -1
- package/dist/classes/Market.d.ts +46 -8
- package/dist/classes/Market.d.ts.map +1 -1
- package/dist/classes/Market.js +342 -111
- package/dist/classes/Market.js.map +1 -1
- package/dist/classes/NativeToken.d.ts +2 -2
- package/dist/classes/NativeToken.d.ts.map +1 -1
- package/dist/classes/NativeToken.js +21 -7
- package/dist/classes/NativeToken.js.map +1 -1
- package/dist/classes/OptimizerReader.d.ts +15 -7
- package/dist/classes/OptimizerReader.d.ts.map +1 -1
- package/dist/classes/OptimizerReader.js +108 -30
- package/dist/classes/OptimizerReader.js.map +1 -1
- package/dist/classes/OracleManager.d.ts.map +1 -1
- package/dist/classes/OracleManager.js +11 -4
- package/dist/classes/OracleManager.js.map +1 -1
- package/dist/classes/PositionManager.d.ts.map +1 -1
- package/dist/classes/PositionManager.js +1 -3
- package/dist/classes/PositionManager.js.map +1 -1
- package/dist/classes/ProtocolReader.d.ts +30 -9
- package/dist/classes/ProtocolReader.d.ts.map +1 -1
- package/dist/classes/ProtocolReader.js +158 -138
- package/dist/classes/ProtocolReader.js.map +1 -1
- package/dist/classes/Zapper.d.ts +5 -5
- package/dist/classes/Zapper.d.ts.map +1 -1
- package/dist/classes/Zapper.js +21 -18
- package/dist/classes/Zapper.js.map +1 -1
- package/dist/contracts/monad-mainnet.json +1 -1
- package/dist/feePolicy.d.ts +2 -0
- package/dist/feePolicy.d.ts.map +1 -1
- package/dist/feePolicy.js +19 -0
- package/dist/feePolicy.js.map +1 -1
- package/dist/format/borrow.d.ts.map +1 -1
- package/dist/format/borrow.js +7 -1
- package/dist/format/borrow.js.map +1 -1
- package/dist/format/health.d.ts +3 -2
- package/dist/format/health.d.ts.map +1 -1
- package/dist/format/health.js +10 -9
- package/dist/format/health.js.map +1 -1
- package/dist/format/leverage.js +5 -4
- package/dist/format/leverage.js.map +1 -1
- package/dist/helpers.d.ts +14 -11
- package/dist/helpers.d.ts.map +1 -1
- package/dist/helpers.js +171 -52
- package/dist/helpers.js.map +1 -1
- package/dist/integrations/merkl.d.ts +2 -1
- package/dist/integrations/merkl.d.ts.map +1 -1
- package/dist/integrations/merkl.js +199 -4
- package/dist/integrations/merkl.js.map +1 -1
- package/dist/integrations/snapshot.d.ts +28 -24
- package/dist/integrations/snapshot.d.ts.map +1 -1
- package/dist/integrations/snapshot.js +106 -42
- package/dist/integrations/snapshot.js.map +1 -1
- package/dist/retry-provider.d.ts +6 -0
- package/dist/retry-provider.d.ts.map +1 -1
- package/dist/retry-provider.js +103 -11
- package/dist/retry-provider.js.map +1 -1
- package/dist/setup.d.ts +8 -6
- package/dist/setup.d.ts.map +1 -1
- package/dist/setup.js +125 -45
- package/dist/setup.js.map +1 -1
- package/dist/validation.d.ts +1 -1
- package/dist/validation.d.ts.map +1 -1
- package/dist/validation.js +13 -7
- package/dist/validation.js.map +1 -1
- package/package.json +6 -3
package/dist/classes/Zapper.js
CHANGED
|
@@ -7,7 +7,6 @@ exports.Zapper = exports.zapperTypeToName = void 0;
|
|
|
7
7
|
const helpers_1 = require("../helpers");
|
|
8
8
|
const Calldata_1 = require("./Calldata");
|
|
9
9
|
const SimpleZapper_json_1 = __importDefault(require("../abis/SimpleZapper.json"));
|
|
10
|
-
const FormatConverter_1 = __importDefault(require("./FormatConverter"));
|
|
11
10
|
;
|
|
12
11
|
exports.zapperTypeToName = new Map([
|
|
13
12
|
['native-vault', 'nativeVaultZapper'],
|
|
@@ -29,20 +28,22 @@ class Zapper extends Calldata_1.Calldata {
|
|
|
29
28
|
this.setup = setup;
|
|
30
29
|
this.contract = (0, helpers_1.contractSetup)(signer, address, SimpleZapper_json_1.default);
|
|
31
30
|
}
|
|
32
|
-
async nativeZap(ctoken, amount, collateralize) {
|
|
33
|
-
const
|
|
31
|
+
async nativeZap(ctoken, amount, collateralize, receiver = this.signer.address) {
|
|
32
|
+
const wrapped = this.type === 'native-simple' || ctoken.isWrappedNative;
|
|
33
|
+
const calldata = await this.getNativeZapCalldata(ctoken, amount, collateralize, wrapped, receiver);
|
|
34
34
|
return this.executeCallData(calldata, { value: amount });
|
|
35
35
|
}
|
|
36
|
-
async simpleZap(ctoken, inputToken, outputToken, amount, collateralize, slippage) {
|
|
37
|
-
const calldata = await this.getSimpleZapCalldata(ctoken, inputToken, outputToken, amount, collateralize, slippage);
|
|
38
|
-
|
|
36
|
+
async simpleZap(ctoken, inputToken, outputToken, amount, collateralize, slippage, receiver = this.signer.address) {
|
|
37
|
+
const calldata = await this.getSimpleZapCalldata(ctoken, inputToken, outputToken, amount, collateralize, slippage, receiver);
|
|
38
|
+
const isNative = inputToken.toLowerCase() === helpers_1.NATIVE_ADDRESS.toLowerCase();
|
|
39
|
+
return this.executeCallData(calldata, isNative ? { value: amount } : {});
|
|
39
40
|
}
|
|
40
|
-
async getSimpleZapCalldata(ctoken, inputToken, outputToken, amount, collateralize, slippage) {
|
|
41
|
+
async getSimpleZapCalldata(ctoken, inputToken, outputToken, amount, collateralize, slippage, receiver = this.signer.address) {
|
|
41
42
|
const isNative = inputToken.toLowerCase() === helpers_1.NATIVE_ADDRESS.toLowerCase();
|
|
42
43
|
const config = (0, helpers_1.getChainConfig)(this.setup.chain);
|
|
43
44
|
// For native MON: if the deposit token IS wrapped native, just wrap (no swap needed)
|
|
44
45
|
if (isNative && outputToken.toLowerCase() === config.wrapped_native.toLowerCase()) {
|
|
45
|
-
return this.getNativeZapCalldata(ctoken, amount, collateralize, true);
|
|
46
|
+
return this.getNativeZapCalldata(ctoken, amount, collateralize, true, receiver);
|
|
46
47
|
}
|
|
47
48
|
// For native MON into non-WMON tokens: wrap first, then swap WMON → target
|
|
48
49
|
// The contract handles wrapping when depositAsWrappedNative=true
|
|
@@ -67,7 +68,7 @@ class Zapper extends Calldata_1.Calldata {
|
|
|
67
68
|
swap,
|
|
68
69
|
expected_shares,
|
|
69
70
|
collateralize,
|
|
70
|
-
|
|
71
|
+
receiver
|
|
71
72
|
]);
|
|
72
73
|
}
|
|
73
74
|
// Resolve fee from policy. The policy already exempts no-ops via
|
|
@@ -88,7 +89,7 @@ class Zapper extends Calldata_1.Calldata {
|
|
|
88
89
|
inputAmount: amount,
|
|
89
90
|
outputToken: outputToken,
|
|
90
91
|
target: quote.to,
|
|
91
|
-
slippage:
|
|
92
|
+
slippage: (0, helpers_1.toContractSwapSlippage)(slippage, feeBps),
|
|
92
93
|
call: quote.calldata
|
|
93
94
|
};
|
|
94
95
|
const expected_shares = await ctoken.convertToShares(BigInt(quote.min_out));
|
|
@@ -98,10 +99,10 @@ class Zapper extends Calldata_1.Calldata {
|
|
|
98
99
|
swap,
|
|
99
100
|
expected_shares,
|
|
100
101
|
collateralize,
|
|
101
|
-
|
|
102
|
+
receiver
|
|
102
103
|
]);
|
|
103
104
|
}
|
|
104
|
-
async getVaultZapCalldata(ctoken, amount, collateralize, wrapped = false) {
|
|
105
|
+
async getVaultZapCalldata(ctoken, amount, collateralize, wrapped = false, receiver = this.signer.address) {
|
|
105
106
|
const { underlying_address, expected_shares } = await this.getZapVaultData(ctoken, amount);
|
|
106
107
|
const swap = {
|
|
107
108
|
inputToken: underlying_address,
|
|
@@ -117,23 +118,25 @@ class Zapper extends Calldata_1.Calldata {
|
|
|
117
118
|
swap,
|
|
118
119
|
expected_shares,
|
|
119
120
|
collateralize,
|
|
120
|
-
|
|
121
|
+
receiver
|
|
121
122
|
]);
|
|
122
123
|
}
|
|
123
124
|
async getZapVaultData(ctoken, amount) {
|
|
124
125
|
const vault = await ctoken.getUnderlyingVault();
|
|
125
126
|
const vault_underlying = await vault.fetchAsset(false);
|
|
126
|
-
const expected_shares = await ctoken.
|
|
127
|
+
const expected_shares = await ctoken.getExpectedVaultShares(amount);
|
|
127
128
|
return {
|
|
128
129
|
underlying_address: vault_underlying,
|
|
129
130
|
expected_shares: expected_shares
|
|
130
131
|
};
|
|
131
132
|
}
|
|
132
|
-
async getNativeZapCalldata(ctoken, amount, collateralize, wrapped = false) {
|
|
133
|
+
async getNativeZapCalldata(ctoken, amount, collateralize, wrapped = false, receiver = this.signer.address) {
|
|
133
134
|
const vaultAssets = (ctoken.isVault || ctoken.isNativeVault)
|
|
134
|
-
? await ctoken.
|
|
135
|
+
? await ctoken.getExpectedVaultShares(amount)
|
|
135
136
|
: amount;
|
|
136
|
-
const expected_shares =
|
|
137
|
+
const expected_shares = (ctoken.isVault || ctoken.isNativeVault)
|
|
138
|
+
? vaultAssets
|
|
139
|
+
: await ctoken.convertToShares(vaultAssets);
|
|
137
140
|
const config = (0, helpers_1.getChainConfig)(this.setup.chain);
|
|
138
141
|
const swap = {
|
|
139
142
|
inputToken: helpers_1.NATIVE_ADDRESS,
|
|
@@ -149,7 +152,7 @@ class Zapper extends Calldata_1.Calldata {
|
|
|
149
152
|
swap,
|
|
150
153
|
expected_shares,
|
|
151
154
|
collateralize,
|
|
152
|
-
|
|
155
|
+
receiver
|
|
153
156
|
]);
|
|
154
157
|
}
|
|
155
158
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Zapper.js","sourceRoot":"","sources":["../../src/classes/Zapper.ts"],"names":[],"mappings":";;;;;;AAEA,
|
|
1
|
+
{"version":3,"file":"Zapper.js","sourceRoot":"","sources":["../../src/classes/Zapper.ts"],"names":[],"mappings":";;;;;;AAEA,wCAA+H;AAE/H,yCAAsC;AACtC,kFAA4C;AAW3C,CAAC;AAGW,QAAA,gBAAgB,GAAG,IAAI,GAAG,CAA6B;IAChE,CAAC,cAAc,EAAE,mBAAmB,CAAC;IACrC,CAAC,OAAO,EAAE,aAAa,CAAC;IACxB,CAAC,QAAQ,EAAE,cAAc,CAAC;IAC1B,CAAC,eAAe,EAAE,cAAc,CAAC;CACpC,CAAC,CAAC;AAaH,MAAa,MAAO,SAAQ,mBAAiB;IACzC,MAAM,CAAkB;IACxB,QAAQ,CAAqB;IAC7B,OAAO,CAAU;IACjB,IAAI,CAAc;IAClB,KAAK,CAAsB;IAE3B,YAAY,OAAgB,EAAE,MAAuB,EAAE,IAAiB,EAAE,KAA0B;QAChG,KAAK,EAAE,CAAC;QACR,IAAI,CAAC,OAAO,GAAG,OAAO,CAAC;QACvB,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC;QACrB,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC;QACjB,IAAI,CAAC,KAAK,GAAG,KAAK,CAAC;QACnB,IAAI,CAAC,QAAQ,GAAG,IAAA,uBAAa,EAAU,MAAM,EAAE,OAAO,EAAE,2BAAG,CAAC,CAAC;IACjE,CAAC;IAED,KAAK,CAAC,SAAS,CAAC,MAAc,EAAE,MAAc,EAAE,aAAsB,EAAE,WAAoB,IAAI,CAAC,MAAM,CAAC,OAAkB;QACtH,MAAM,OAAO,GAAG,IAAI,CAAC,IAAI,KAAK,eAAe,IAAI,MAAM,CAAC,eAAe,CAAC;QACxE,MAAM,QAAQ,GAAG,MAAM,IAAI,CAAC,oBAAoB,CAAC,MAAM,EAAE,MAAM,EAAE,aAAa,EAAE,OAAO,EAAE,QAAQ,CAAC,CAAC;QACnG,OAAO,IAAI,CAAC,eAAe,CAAC,QAAQ,EAAE,EAAE,KAAK,EAAE,MAAM,EAAE,CAAC,CAAC;IAC7D,CAAC;IAED,KAAK,CAAC,SAAS,CAAC,MAAc,EAAE,UAAmB,EAAE,WAAoB,EAAG,MAAc,EAAE,aAAsB,EAAE,QAAgB,EAAE,WAAoB,IAAI,CAAC,MAAM,CAAC,OAAkB;QACpL,MAAM,QAAQ,GAAG,MAAM,IAAI,CAAC,oBAAoB,CAAC,MAAM,EAAE,UAAU,EAAE,WAAW,EAAE,MAAM,EAAE,aAAa,EAAE,QAAQ,EAAE,QAAQ,CAAC,CAAC;QAC7H,MAAM,QAAQ,GAAG,UAAU,CAAC,WAAW,EAAE,KAAK,wBAAc,CAAC,WAAW,EAAE,CAAC;QAC3E,OAAO,IAAI,CAAC,eAAe,CAAC,QAAQ,EAAE,QAAQ,CAAC,CAAC,CAAC,EAAE,KAAK,EAAE,MAAM,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC;IAC7E,CAAC;IAED,KAAK,CAAC,oBAAoB,CAAC,MAAc,EAAE,UAAmB,EAAE,WAAoB,EAAE,MAAc,EAAE,aAAsB,EAAE,QAAgB,EAAE,WAAoB,IAAI,CAAC,MAAM,CAAC,OAAkB;QAC9L,MAAM,QAAQ,GAAG,UAAU,CAAC,WAAW,EAAE,KAAK,wBAAc,CAAC,WAAW,EAAE,CAAC;QAC3E,MAAM,MAAM,GAAG,IAAA,wBAAc,EAAC,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;QAEhD,qFAAqF;QACrF,IAAI,QAAQ,IAAI,WAAW,CAAC,WAAW,EAAE,KAAK,MAAM,CAAC,cAAc,CAAC,WAAW,EAAE,EAAE,CAAC;YAChF,OAAO,IAAI,CAAC,oBAAoB,CAAC,MAAM,EAAE,MAAM,EAAE,aAAa,EAAE,IAAI,EAAE,QAAQ,CAAC,CAAC;QACpF,CAAC;QAED,2EAA2E;QAC3E,iEAAiE;QACjE,MAAM,cAAc,GAAG,QAAQ,CAAC,CAAC,CAAC,MAAM,CAAC,cAAyB,CAAC,CAAC,CAAC,UAAU,CAAC;QAEhF,sEAAsE;QACtE,iEAAiE;QACjE,sEAAsE;QACtE,+DAA+D;QAC/D,IAAI,cAAc,CAAC,WAAW,EAAE,KAAK,WAAW,CAAC,WAAW,EAAE,EAAE,CAAC;YAC7D,MAAM,IAAI,GAAS;gBACf,UAAU,EAAE,QAAQ,CAAC,CAAC,CAAC,wBAAc,CAAC,CAAC,CAAC,UAAU;gBAClD,WAAW,EAAE,MAAM;gBACnB,WAAW,EAAE,WAAW;gBACxB,MAAM,EAAE,uBAAa;gBACrB,QAAQ,EAAE,EAAE;gBACZ,IAAI,EAAE,qBAAW;aACpB,CAAC;YACF,MAAM,eAAe,GAAG,MAAM,MAAM,CAAC,eAAe,CAAC,MAAM,CAAC,CAAC;YAC7D,OAAO,IAAI,CAAC,WAAW,CAAC,gBAAgB,EAAE;gBACtC,MAAM,CAAC,OAAO;gBACd,QAAQ;gBACR,IAAI;gBACJ,eAAe;gBACf,aAAa;gBACb,QAAQ;aACX,CAAC,CAAC;QACP,CAAC;QAED,iEAAiE;QACjE,sEAAsE;QACtE,sBAAsB;QACtB,MAAM,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC,SAAS,CAAC,SAAS,CAAC;YAC1C,SAAS,EAAE,KAAK;YAChB,UAAU,EAAE,QAAQ,CAAC,CAAC,CAAC,wBAAyB,CAAC,CAAC,CAAC,UAAU;YAC7D,WAAW,EAAE,WAAW;YACxB,WAAW,EAAE,MAAM;YACnB,eAAe,EAAE,IAAI;YACrB,cAAc,EAAE,IAAI;SACvB,CAAC,CAAC;QACH,MAAM,WAAW,GAAG,MAAM,GAAG,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,SAAS,CAAC,WAAW,CAAC,CAAC,CAAC,SAAS,CAAC;QAE/E,MAAM,KAAK,GAAG,MAAM,MAAM,CAAC,MAAM,CAAC,KAAK,CAAC,IAAI,CAAC,OAAO,EAAE,cAAc,EAAE,WAAW,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,EAAE,WAAW,CAAC,CAAC;QAE1H,MAAM,IAAI,GAAS;YACf,UAAU,EAAE,QAAQ,CAAC,CAAC,CAAC,wBAAc,CAAC,CAAC,CAAC,UAAU;YAClD,WAAW,EAAE,MAAM;YACnB,WAAW,EAAE,WAAW;YACxB,MAAM,EAAE,KAAK,CAAC,EAAE;YAChB,QAAQ,EAAE,IAAA,gCAAsB,EAAC,QAAQ,EAAE,MAAM,CAAC;YAClD,IAAI,EAAE,KAAK,CAAC,QAAQ;SACvB,CAAC;QAEF,MAAM,eAAe,GAAG,MAAM,MAAM,CAAC,eAAe,CAAC,MAAM,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC;QAE5E,OAAO,IAAI,CAAC,WAAW,CAAC,gBAAgB,EAAE;YACtC,MAAM,CAAC,OAAO;YACd,QAAQ;YACR,IAAI;YACJ,eAAe;YACf,aAAa;YACb,QAAQ;SACX,CAAC,CAAC;IACP,CAAC;IAED,KAAK,CAAC,mBAAmB,CAAC,MAAc,EAAE,MAAc,EAAE,aAAsB,EAAE,UAAmB,KAAK,EAAE,WAAoB,IAAI,CAAC,MAAM,CAAC,OAAkB;QAC1J,MAAM,EAAE,kBAAkB,EAAE,eAAe,EAAE,GAAG,MAAM,IAAI,CAAC,eAAe,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;QAE3F,MAAM,IAAI,GAAS;YACf,UAAU,EAAE,kBAAkB;YAC9B,WAAW,EAAE,MAAM;YACnB,WAAW,EAAE,kBAAkB;YAC/B,MAAM,EAAE,uBAAa;YACrB,QAAQ,EAAE,EAAE;YACZ,IAAI,EAAE,qBAAW;SACpB,CAAC;QAEF,OAAO,IAAI,CAAC,WAAW,CAAC,gBAAgB,EAAE;YACtC,MAAM,CAAC,OAAO;YACd,OAAO;YACP,IAAI;YACJ,eAAe;YACf,aAAa;YACb,QAAQ;SACX,CAAC,CAAC;IACP,CAAC;IAED,KAAK,CAAC,eAAe,CAAC,MAAc,EAAE,MAAc;QAChD,MAAM,KAAK,GAAG,MAAM,MAAM,CAAC,kBAAkB,EAAE,CAAC;QAChD,MAAM,gBAAgB,GAAG,MAAM,KAAK,CAAC,UAAU,CAAC,KAAK,CAAC,CAAC;QACvD,MAAM,eAAe,GAAG,MAAM,MAAM,CAAC,sBAAsB,CAAC,MAAM,CAAC,CAAC;QAEpE,OAAO;YACH,kBAAkB,EAAE,gBAAgB;YACpC,eAAe,EAAE,eAAe;SACnC,CAAA;IACL,CAAC;IAED,KAAK,CAAC,oBAAoB,CAAC,MAAc,EAAE,MAAc,EAAE,aAAsB,EAAE,UAAmB,KAAK,EAAE,WAAoB,IAAI,CAAC,MAAM,CAAC,OAAkB;QAC3J,MAAM,WAAW,GAAG,CAAC,MAAM,CAAC,OAAO,IAAI,MAAM,CAAC,aAAa,CAAC;YACxD,CAAC,CAAC,MAAM,MAAM,CAAC,sBAAsB,CAAC,MAAM,CAAC;YAC7C,CAAC,CAAC,MAAM,CAAC;QACb,MAAM,eAAe,GAAG,CAAC,MAAM,CAAC,OAAO,IAAI,MAAM,CAAC,aAAa,CAAC;YAC5D,CAAC,CAAC,WAAW;YACb,CAAC,CAAC,MAAM,MAAM,CAAC,eAAe,CAAC,WAAW,CAAC,CAAC;QAChD,MAAM,MAAM,GAAG,IAAA,wBAAc,EAAC,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;QAEhD,MAAM,IAAI,GAAS;YACf,UAAU,EAAE,wBAAc;YAC1B,WAAW,EAAE,MAAM;YACnB,WAAW,EAAE,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,cAAc,CAAC,CAAC,CAAC,wBAAc;YAC7D,MAAM,EAAE,uBAAa;YACrB,QAAQ,EAAE,EAAE;YACZ,IAAI,EAAE,qBAAW;SACpB,CAAC;QAEF,OAAO,IAAI,CAAC,WAAW,CAAC,gBAAgB,EAAE;YACtC,MAAM,CAAC,OAAO;YACd,OAAO;YACP,IAAI;YACJ,eAAe;YACf,aAAa;YACb,QAAQ;SACX,CAAC,CAAC;IACP,CAAC;CACJ;AAjKD,wBAiKC"}
|
|
@@ -236,7 +236,7 @@
|
|
|
236
236
|
"WBTC-DynamicIRM": "0x95B961B9aD06dB25831FcdA3c7A79b1EB7c3AFA8"
|
|
237
237
|
}
|
|
238
238
|
},
|
|
239
|
-
"ProtocolReader": "
|
|
239
|
+
"ProtocolReader": "0x55C7c1fe1DACB014aD3b21951728B5E580662268",
|
|
240
240
|
"CombinedAggregator-ezETH": "0xd5F84C4497621768f3F08b65ad7019BdF183b1fd",
|
|
241
241
|
"CombinedAggregator-earnAUSD": "0xf80CC9965d260d7cD96E41b9734F031279dCDf2f",
|
|
242
242
|
"DAOTimelock": "0x2677738657F27e1A3591E00AD7E5a78807688C08",
|
package/dist/feePolicy.d.ts
CHANGED
|
@@ -179,4 +179,6 @@ export declare function flatFeePolicy(config: FlatFeePolicyConfig): FeePolicy;
|
|
|
179
179
|
* of mutating this singleton.
|
|
180
180
|
*/
|
|
181
181
|
export declare const NO_FEE_POLICY: FeePolicy;
|
|
182
|
+
export declare function getMonadMainnetFeePolicy(): FeePolicy;
|
|
183
|
+
export declare function defaultFeePolicyForChain(chain: ChainRpcPrefix): FeePolicy;
|
|
182
184
|
//# sourceMappingURL=feePolicy.d.ts.map
|
package/dist/feePolicy.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"feePolicy.d.ts","sourceRoot":"","sources":["../src/feePolicy.ts"],"names":[],"mappings":"AAAA,OAAO,OAAO,MAAM,YAAY,CAAC;AACjC,OAAO,EAAE,OAAO,EAAE,MAAM,SAAS,CAAC;AAClC,OAAO,EAAE,cAAc,EAAE,MAAM,WAAW,CAAC;AAG3C;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAoFG;AAEH,MAAM,MAAM,YAAY,GAClB,aAAa,GACb,eAAe,GACf,sBAAsB,GACtB,KAAK,CAAC;AAEZ,MAAM,WAAW,gBAAgB;IAC7B,iDAAiD;IACjD,SAAS,EAAE,YAAY,CAAC;IACxB,wEAAwE;IACxE,UAAU,EAAE,OAAO,CAAC;IACpB,0CAA0C;IAC1C,WAAW,EAAE,OAAO,CAAC;IACrB,mFAAmF;IACnF,WAAW,EAAE,MAAM,CAAC;IACpB,+DAA+D;IAC/D,eAAe,EAAE,OAAO,GAAG,IAAI,CAAC;IAChC,qCAAqC;IACrC,cAAc,EAAE,OAAO,GAAG,IAAI,CAAC;CAClC;AAED,MAAM,WAAW,SAAS;IACtB,uEAAuE;IACvE,SAAS,CAAC,GAAG,EAAE,gBAAgB,GAAG,MAAM,CAAC;IACzC;0DACsD;IACtD,WAAW,EAAE,OAAO,CAAC;CACxB;AAED;;;wEAGwE;AACxE,eAAO,MAAM,gBAAgB,KAAK,CAAC;AAEnC;;;;kDAIkD;AAClD,eAAO,MAAM,yBAAyB,EAAE,OACQ,CAAC;AAEjD;;sDAEsD;AACtD,MAAM,MAAM,UAAU,GAAG,QAAQ,GAAG,UAAU,GAAG,QAAQ,CAAC;AAE1D,MAAM,WAAW,mBAAmB;IAChC,+DAA+D;IAC/D,GAAG,EAAE,MAAM,CAAC;IACZ,qCAAqC;IACrC,WAAW,EAAE,OAAO,CAAC;IACrB;gEAC4D;IAC5D,KAAK,EAAE,cAAc,CAAC;IACtB;;wCAEoC;IACpC,iBAAiB,CAAC,EAAE,MAAM,CAAC;IAC3B;;;6EAGyE;IACzE,QAAQ,CAAC,EAAE,CAAC,KAAK,EAAE,OAAO,KAAK,UAAU,GAAG,IAAI,CAAC;CACpD;AAID;;;;;;;;;;;;;;;;;;;;;;;GAuBG;AACH,wBAAgB,aAAa,CAAC,MAAM,EAAE,mBAAmB,GAAG,SAAS,CA2DpE;AAED;;;;;;;;;;;GAWG;AACH,eAAO,MAAM,aAAa,EAAE,SAG1B,CAAC"}
|
|
1
|
+
{"version":3,"file":"feePolicy.d.ts","sourceRoot":"","sources":["../src/feePolicy.ts"],"names":[],"mappings":"AAAA,OAAO,OAAO,MAAM,YAAY,CAAC;AACjC,OAAO,EAAE,OAAO,EAAE,MAAM,SAAS,CAAC;AAClC,OAAO,EAAE,cAAc,EAAE,MAAM,WAAW,CAAC;AAG3C;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAoFG;AAEH,MAAM,MAAM,YAAY,GAClB,aAAa,GACb,eAAe,GACf,sBAAsB,GACtB,KAAK,CAAC;AAEZ,MAAM,WAAW,gBAAgB;IAC7B,iDAAiD;IACjD,SAAS,EAAE,YAAY,CAAC;IACxB,wEAAwE;IACxE,UAAU,EAAE,OAAO,CAAC;IACpB,0CAA0C;IAC1C,WAAW,EAAE,OAAO,CAAC;IACrB,mFAAmF;IACnF,WAAW,EAAE,MAAM,CAAC;IACpB,+DAA+D;IAC/D,eAAe,EAAE,OAAO,GAAG,IAAI,CAAC;IAChC,qCAAqC;IACrC,cAAc,EAAE,OAAO,GAAG,IAAI,CAAC;CAClC;AAED,MAAM,WAAW,SAAS;IACtB,uEAAuE;IACvE,SAAS,CAAC,GAAG,EAAE,gBAAgB,GAAG,MAAM,CAAC;IACzC;0DACsD;IACtD,WAAW,EAAE,OAAO,CAAC;CACxB;AAED;;;wEAGwE;AACxE,eAAO,MAAM,gBAAgB,KAAK,CAAC;AAEnC;;;;kDAIkD;AAClD,eAAO,MAAM,yBAAyB,EAAE,OACQ,CAAC;AAEjD;;sDAEsD;AACtD,MAAM,MAAM,UAAU,GAAG,QAAQ,GAAG,UAAU,GAAG,QAAQ,CAAC;AAE1D,MAAM,WAAW,mBAAmB;IAChC,+DAA+D;IAC/D,GAAG,EAAE,MAAM,CAAC;IACZ,qCAAqC;IACrC,WAAW,EAAE,OAAO,CAAC;IACrB;gEAC4D;IAC5D,KAAK,EAAE,cAAc,CAAC;IACtB;;wCAEoC;IACpC,iBAAiB,CAAC,EAAE,MAAM,CAAC;IAC3B;;;6EAGyE;IACzE,QAAQ,CAAC,EAAE,CAAC,KAAK,EAAE,OAAO,KAAK,UAAU,GAAG,IAAI,CAAC;CACpD;AAID;;;;;;;;;;;;;;;;;;;;;;;GAuBG;AACH,wBAAgB,aAAa,CAAC,MAAM,EAAE,mBAAmB,GAAG,SAAS,CA2DpE;AAED;;;;;;;;;;;GAWG;AACH,eAAO,MAAM,aAAa,EAAE,SAG1B,CAAC;AAIH,wBAAgB,wBAAwB,IAAI,SAAS,CAUpD;AAED,wBAAgB,wBAAwB,CAAC,KAAK,EAAE,cAAc,GAAG,SAAS,CAOzE"}
|
package/dist/feePolicy.js
CHANGED
|
@@ -2,6 +2,8 @@
|
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
3
|
exports.NO_FEE_POLICY = exports.CURVANCE_DAO_FEE_RECEIVER = exports.CURVANCE_FEE_BPS = void 0;
|
|
4
4
|
exports.flatFeePolicy = flatFeePolicy;
|
|
5
|
+
exports.getMonadMainnetFeePolicy = getMonadMainnetFeePolicy;
|
|
6
|
+
exports.defaultFeePolicyForChain = defaultFeePolicyForChain;
|
|
5
7
|
const chains_1 = require("./chains");
|
|
6
8
|
/** Fee BPS charged on all DEX swaps via KyberSwap's `feeAmount` parameter.
|
|
7
9
|
* Must match the on-chain KyberSwapChecker.FEE_BPS constant — if they
|
|
@@ -107,4 +109,21 @@ exports.NO_FEE_POLICY = Object.freeze({
|
|
|
107
109
|
feeReceiver: exports.CURVANCE_DAO_FEE_RECEIVER,
|
|
108
110
|
getFeeBps: () => 0n,
|
|
109
111
|
});
|
|
112
|
+
let monadMainnetFeePolicy = null;
|
|
113
|
+
function getMonadMainnetFeePolicy() {
|
|
114
|
+
monadMainnetFeePolicy ??= Object.freeze(flatFeePolicy({
|
|
115
|
+
bps: exports.CURVANCE_FEE_BPS,
|
|
116
|
+
feeReceiver: exports.CURVANCE_DAO_FEE_RECEIVER,
|
|
117
|
+
chain: 'monad-mainnet',
|
|
118
|
+
}));
|
|
119
|
+
return monadMainnetFeePolicy;
|
|
120
|
+
}
|
|
121
|
+
function defaultFeePolicyForChain(chain) {
|
|
122
|
+
switch (chain) {
|
|
123
|
+
case 'monad-mainnet':
|
|
124
|
+
return getMonadMainnetFeePolicy();
|
|
125
|
+
default:
|
|
126
|
+
return exports.NO_FEE_POLICY;
|
|
127
|
+
}
|
|
128
|
+
}
|
|
110
129
|
//# sourceMappingURL=feePolicy.js.map
|
package/dist/feePolicy.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"feePolicy.js","sourceRoot":"","sources":["../src/feePolicy.ts"],"names":[],"mappings":";;;AAwLA,sCA2DC;
|
|
1
|
+
{"version":3,"file":"feePolicy.js","sourceRoot":"","sources":["../src/feePolicy.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"borrow.d.ts","sourceRoot":"","sources":["../../src/format/borrow.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,YAAY,CAAC;AAErC,eAAO,MAAM,YAAY,KAAK,CAAC;AAE/B,wBAAgB,kBAAkB,CAC9B,mBAAmB,EAAE,OAAO,EAC5B,aAAa,EAAE,OAAO,EACtB,kBAAkB,EAAE,OAAO,GAC5B,OAAO,CAMT;AAED,wBAAgB,iBAAiB,CAAC,WAAW,EAAE,OAAO,EAAE,QAAQ,EAAE,OAAO,GAAG,OAAO,CAElF;AAED,MAAM,WAAW,eAAe;IAC5B,OAAO,EAAE,OAAO,CAAC;IACjB,KAAK,CAAC,EAAE,UAAU,CAAC;CACtB;AAED,wBAAgB,sBAAsB,CAClC,cAAc,EAAE,OAAO,EACvB,cAAc,EAAE,OAAO,EACvB,UAAU,GAAE,MAAqB,GAClC,eAAe,CASjB;AAED,wBAAgB,oBAAoB,CAChC,WAAW,EAAE,OAAO,EACpB,MAAM,EAAE,OAAO,EACf,UAAU,EAAE,OAAO,GACpB,OAAO,
|
|
1
|
+
{"version":3,"file":"borrow.d.ts","sourceRoot":"","sources":["../../src/format/borrow.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,YAAY,CAAC;AAErC,eAAO,MAAM,YAAY,KAAK,CAAC;AAE/B,wBAAgB,kBAAkB,CAC9B,mBAAmB,EAAE,OAAO,EAC5B,aAAa,EAAE,OAAO,EACtB,kBAAkB,EAAE,OAAO,GAC5B,OAAO,CAMT;AAED,wBAAgB,iBAAiB,CAAC,WAAW,EAAE,OAAO,EAAE,QAAQ,EAAE,OAAO,GAAG,OAAO,CAElF;AAED,MAAM,WAAW,eAAe;IAC5B,OAAO,EAAE,OAAO,CAAC;IACjB,KAAK,CAAC,EAAE,UAAU,CAAC;CACtB;AAED,wBAAgB,sBAAsB,CAClC,cAAc,EAAE,OAAO,EACvB,cAAc,EAAE,OAAO,EACvB,UAAU,GAAE,MAAqB,GAClC,eAAe,CASjB;AAED,wBAAgB,oBAAoB,CAChC,WAAW,EAAE,OAAO,EACpB,MAAM,EAAE,OAAO,EACf,UAAU,EAAE,OAAO,GACpB,OAAO,CAGT;AAED,wBAAgB,2BAA2B,CACvC,MAAM,EAAE,MAAM,EACd,KAAK,EAAE,OAAO,EACd,YAAY,EAAE,QAAQ,GAAG,OAAO,GACjC;IAAE,SAAS,EAAE,MAAM,CAAC;IAAC,WAAW,EAAE,MAAM,CAAA;CAAE,CAa5C"}
|
package/dist/format/borrow.js
CHANGED
|
@@ -26,11 +26,17 @@ function validateRepayRemainder(currentDebtUsd, repayAmountUsd, minLoanUsd = exp
|
|
|
26
26
|
return { isValid: true };
|
|
27
27
|
}
|
|
28
28
|
function calculateDebtPreview(currentDebt, amount, isRepaying) {
|
|
29
|
-
|
|
29
|
+
const nextDebt = isRepaying ? currentDebt.minus(amount) : currentDebt.plus(amount);
|
|
30
|
+
return nextDebt.isNegative() ? new decimal_js_1.Decimal(0) : nextDebt;
|
|
30
31
|
}
|
|
31
32
|
function convertAmountByCurrencyView(amount, price, currencyView) {
|
|
32
33
|
if (!amount)
|
|
33
34
|
return { usdAmount: '0', tokenAmount: '0' };
|
|
35
|
+
if (!price.isFinite() || price.lte(0)) {
|
|
36
|
+
return currencyView === 'dollar'
|
|
37
|
+
? { usdAmount: amount, tokenAmount: '0' }
|
|
38
|
+
: { usdAmount: '0', tokenAmount: amount };
|
|
39
|
+
}
|
|
34
40
|
const usdAmount = currencyView === 'dollar' ? amount : new decimal_js_1.Decimal(amount).mul(price).toString();
|
|
35
41
|
const tokenAmount = currencyView === 'token' ? amount : new decimal_js_1.Decimal(amount).div(price).toString();
|
|
36
42
|
return { usdAmount, tokenAmount };
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"borrow.js","sourceRoot":"","sources":["../../src/format/borrow.ts"],"names":[],"mappings":";;;AAIA,gDAUC;AAED,8CAEC;AAOD,wDAaC;AAED,
|
|
1
|
+
{"version":3,"file":"borrow.js","sourceRoot":"","sources":["../../src/format/borrow.ts"],"names":[],"mappings":";;;AAIA,gDAUC;AAED,8CAEC;AAOD,wDAaC;AAED,oDAOC;AAED,kEAiBC;AAlED,2CAAqC;AAExB,QAAA,YAAY,GAAG,EAAE,CAAC;AAE/B,SAAgB,kBAAkB,CAC9B,mBAA4B,EAC5B,aAAsB,EACtB,kBAA2B;IAE3B,MAAM,MAAM,GAAG,oBAAO,CAAC,GAAG,CAAC,mBAAmB,EAAE,CAAC,CAAC,CAAC;IACnD,MAAM,IAAI,GAAG,oBAAO,CAAC,GAAG,CAAC,aAAa,EAAE,CAAC,CAAC,CAAC;IAC3C,MAAM,SAAS,GAAG,oBAAO,CAAC,GAAG,CAAC,kBAAkB,EAAE,CAAC,CAAC,CAAC;IAErD,OAAO,oBAAO,CAAC,GAAG,CAAC,MAAM,EAAE,IAAI,EAAE,SAAS,CAAC,CAAC;AAChD,CAAC;AAED,SAAgB,iBAAiB,CAAC,WAAoB,EAAE,QAAiB;IACrE,OAAO,oBAAO,CAAC,GAAG,CAAC,WAAW,EAAE,QAAQ,CAAC,CAAC;AAC9C,CAAC;AAOD,SAAgB,sBAAsB,CAClC,cAAuB,EACvB,cAAuB,EACvB,aAAqB,oBAAY;IAEjC,MAAM,aAAa,GAAG,cAAc,CAAC,KAAK,CAAC,cAAc,CAAC,CAAC;IAE3D,mEAAmE;IACnE,IAAI,aAAa,CAAC,WAAW,CAAC,KAAK,CAAC,IAAI,aAAa,CAAC,QAAQ,CAAC,UAAU,CAAC,EAAE,CAAC;QACzE,OAAO,EAAE,OAAO,EAAE,KAAK,EAAE,KAAK,EAAE,UAAU,EAAE,CAAC;IACjD,CAAC;IAED,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC;AAC7B,CAAC;AAED,SAAgB,oBAAoB,CAChC,WAAoB,EACpB,MAAe,EACf,UAAmB;IAEnB,MAAM,QAAQ,GAAG,UAAU,CAAC,CAAC,CAAC,WAAW,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,WAAW,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;IACnF,OAAO,QAAQ,CAAC,UAAU,EAAE,CAAC,CAAC,CAAC,IAAI,oBAAO,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC;AAC7D,CAAC;AAED,SAAgB,2BAA2B,CACvC,MAAc,EACd,KAAc,EACd,YAAgC;IAEhC,IAAI,CAAC,MAAM;QAAE,OAAO,EAAE,SAAS,EAAE,GAAG,EAAE,WAAW,EAAE,GAAG,EAAE,CAAC;IAEzD,IAAI,CAAC,KAAK,CAAC,QAAQ,EAAE,IAAI,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC;QACpC,OAAO,YAAY,KAAK,QAAQ;YAC5B,CAAC,CAAC,EAAE,SAAS,EAAE,MAAM,EAAE,WAAW,EAAE,GAAG,EAAE;YACzC,CAAC,CAAC,EAAE,SAAS,EAAE,GAAG,EAAE,WAAW,EAAE,MAAM,EAAE,CAAC;IAClD,CAAC;IAED,MAAM,SAAS,GAAG,YAAY,KAAK,QAAQ,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,IAAI,oBAAO,CAAC,MAAM,CAAC,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC,QAAQ,EAAE,CAAC;IACjG,MAAM,WAAW,GAAG,YAAY,KAAK,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,IAAI,oBAAO,CAAC,MAAM,CAAC,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC,QAAQ,EAAE,CAAC;IAElG,OAAO,EAAE,SAAS,EAAE,WAAW,EAAE,CAAC;AACtC,CAAC"}
|
package/dist/format/health.d.ts
CHANGED
|
@@ -1,7 +1,8 @@
|
|
|
1
1
|
import { Decimal } from "decimal.js";
|
|
2
2
|
export type HealthStatus = 'Danger' | 'Caution' | 'Healthy';
|
|
3
|
-
export declare const
|
|
4
|
-
export declare const
|
|
3
|
+
export declare const DANGER_HEALTH_THRESHOLD = 0.05;
|
|
4
|
+
export declare const LOW_HEALTH_THRESHOLD = 0.1;
|
|
5
|
+
export declare const CAUTION_HEALTH_UPPER = 0.2;
|
|
5
6
|
export declare function getHealthStatus(percentageValue: number | null | undefined): HealthStatus;
|
|
6
7
|
export declare function healthFactorToPercentage(rawHealthFactor: number | null | undefined): number;
|
|
7
8
|
export declare function formatHealthFactorPercentage(value: number): string;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"health.d.ts","sourceRoot":"","sources":["../../src/format/health.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,YAAY,CAAC;AAErC,MAAM,MAAM,YAAY,GAAG,QAAQ,GAAG,SAAS,GAAG,SAAS,CAAC;AAE5D,eAAO,MAAM,oBAAoB,
|
|
1
|
+
{"version":3,"file":"health.d.ts","sourceRoot":"","sources":["../../src/format/health.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,YAAY,CAAC;AAErC,MAAM,MAAM,YAAY,GAAG,QAAQ,GAAG,SAAS,GAAG,SAAS,CAAC;AAE5D,eAAO,MAAM,uBAAuB,OAAO,CAAC;AAC5C,eAAO,MAAM,oBAAoB,MAAO,CAAC;AACzC,eAAO,MAAM,oBAAoB,MAAO,CAAC;AAEzC,wBAAgB,eAAe,CAAC,eAAe,EAAE,MAAM,GAAG,IAAI,GAAG,SAAS,GAAG,YAAY,CAQxF;AAED,wBAAgB,wBAAwB,CAAC,eAAe,EAAE,MAAM,GAAG,IAAI,GAAG,SAAS,GAAG,MAAM,CAE3F;AAED,wBAAgB,4BAA4B,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM,CAMlE;AAED,wBAAgB,kBAAkB,CAAC,KAAK,CAAC,EAAE,MAAM,GAAG,IAAI,GAAG,MAAM,CAIhE;AAED,wBAAgB,kBAAkB,CAAC,KAAK,EAAE,OAAO,CAAC,KAAK,GAAG,OAAO,GAAG,QAAQ,GAAG,KAAK,CAMnF"}
|
package/dist/format/health.js
CHANGED
|
@@ -1,39 +1,40 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.CAUTION_HEALTH_UPPER = exports.LOW_HEALTH_THRESHOLD = void 0;
|
|
3
|
+
exports.CAUTION_HEALTH_UPPER = exports.LOW_HEALTH_THRESHOLD = exports.DANGER_HEALTH_THRESHOLD = void 0;
|
|
4
4
|
exports.getHealthStatus = getHealthStatus;
|
|
5
5
|
exports.healthFactorToPercentage = healthFactorToPercentage;
|
|
6
6
|
exports.formatHealthFactorPercentage = formatHealthFactorPercentage;
|
|
7
7
|
exports.formatHealthFactor = formatHealthFactor;
|
|
8
8
|
exports.getLiquidityStatus = getLiquidityStatus;
|
|
9
9
|
const decimal_js_1 = require("decimal.js");
|
|
10
|
-
exports.
|
|
11
|
-
exports.
|
|
10
|
+
exports.DANGER_HEALTH_THRESHOLD = 0.05;
|
|
11
|
+
exports.LOW_HEALTH_THRESHOLD = 0.10;
|
|
12
|
+
exports.CAUTION_HEALTH_UPPER = 0.20;
|
|
12
13
|
function getHealthStatus(percentageValue) {
|
|
13
14
|
if (percentageValue == null)
|
|
14
15
|
return 'Healthy';
|
|
15
|
-
if (percentageValue <
|
|
16
|
+
if (percentageValue < exports.DANGER_HEALTH_THRESHOLD)
|
|
16
17
|
return 'Danger';
|
|
17
|
-
if (percentageValue >=
|
|
18
|
+
if (percentageValue >= exports.DANGER_HEALTH_THRESHOLD && percentageValue <= exports.CAUTION_HEALTH_UPPER)
|
|
18
19
|
return 'Caution';
|
|
19
|
-
if (percentageValue >
|
|
20
|
+
if (percentageValue > exports.CAUTION_HEALTH_UPPER)
|
|
20
21
|
return 'Healthy';
|
|
21
22
|
return 'Healthy';
|
|
22
23
|
}
|
|
23
24
|
function healthFactorToPercentage(rawHealthFactor) {
|
|
24
|
-
return Math.max((
|
|
25
|
+
return Math.max((rawHealthFactor ?? 5) - 1, 0);
|
|
25
26
|
}
|
|
26
27
|
function formatHealthFactorPercentage(value) {
|
|
27
28
|
return new Intl.NumberFormat('en-US', {
|
|
28
29
|
style: 'percent',
|
|
29
30
|
minimumFractionDigits: 0,
|
|
30
31
|
maximumFractionDigits: 0,
|
|
31
|
-
}).format(value
|
|
32
|
+
}).format(value);
|
|
32
33
|
}
|
|
33
34
|
function formatHealthFactor(value) {
|
|
34
35
|
if (value === null || value === undefined)
|
|
35
36
|
return '∞';
|
|
36
|
-
if (value >=
|
|
37
|
+
if (value >= 9.99)
|
|
37
38
|
return '>999%';
|
|
38
39
|
return formatHealthFactorPercentage(Math.max(value, 0));
|
|
39
40
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"health.js","sourceRoot":"","sources":["../../src/format/health.ts"],"names":[],"mappings":";;;
|
|
1
|
+
{"version":3,"file":"health.js","sourceRoot":"","sources":["../../src/format/health.ts"],"names":[],"mappings":";;;AAQA,0CAQC;AAED,4DAEC;AAED,oEAMC;AAED,gDAIC;AAED,gDAMC;AA1CD,2CAAqC;AAIxB,QAAA,uBAAuB,GAAG,IAAI,CAAC;AAC/B,QAAA,oBAAoB,GAAG,IAAI,CAAC;AAC5B,QAAA,oBAAoB,GAAG,IAAI,CAAC;AAEzC,SAAgB,eAAe,CAAC,eAA0C;IACtE,IAAI,eAAe,IAAI,IAAI;QAAE,OAAO,SAAS,CAAC;IAE9C,IAAI,eAAe,GAAG,+BAAuB;QAAE,OAAO,QAAQ,CAAC;IAC/D,IAAI,eAAe,IAAI,+BAAuB,IAAI,eAAe,IAAI,4BAAoB;QAAE,OAAO,SAAS,CAAC;IAC5G,IAAI,eAAe,GAAG,4BAAoB;QAAE,OAAO,SAAS,CAAC;IAE7D,OAAO,SAAS,CAAC;AACrB,CAAC;AAED,SAAgB,wBAAwB,CAAC,eAA0C;IAC/E,OAAO,IAAI,CAAC,GAAG,CAAC,CAAC,eAAe,IAAI,CAAC,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC;AACnD,CAAC;AAED,SAAgB,4BAA4B,CAAC,KAAa;IACtD,OAAO,IAAI,IAAI,CAAC,YAAY,CAAC,OAAO,EAAE;QAClC,KAAK,EAAE,SAAS;QAChB,qBAAqB,EAAE,CAAC;QACxB,qBAAqB,EAAE,CAAC;KAC3B,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;AACrB,CAAC;AAED,SAAgB,kBAAkB,CAAC,KAAqB;IACpD,IAAI,KAAK,KAAK,IAAI,IAAI,KAAK,KAAK,SAAS;QAAE,OAAO,GAAG,CAAC;IACtD,IAAI,KAAK,IAAI,IAAI;QAAE,OAAO,OAAO,CAAC;IAClC,OAAO,4BAA4B,CAAC,IAAI,CAAC,GAAG,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC,CAAC;AAC5D,CAAC;AAED,SAAgB,kBAAkB,CAAC,KAAoB;IACnD,MAAM,CAAC,GAAG,IAAI,oBAAO,CAAC,KAAK,CAAC,CAAC,QAAQ,EAAE,CAAC;IACxC,IAAI,CAAC,GAAG,IAAI;QAAE,OAAO,OAAO,CAAC;IAC7B,IAAI,CAAC,IAAI,IAAI,IAAI,CAAC,IAAI,GAAG;QAAE,OAAO,QAAQ,CAAC;IAC3C,IAAI,CAAC,GAAG,IAAI;QAAE,OAAO,KAAK,CAAC;IAC3B,OAAO,QAAQ,CAAC;AACpB,CAAC"}
|
package/dist/format/leverage.js
CHANGED
|
@@ -27,11 +27,12 @@ function calculateLeverageRatio(totalValue, debtAmount) {
|
|
|
27
27
|
return totalValue.div(collateralValue);
|
|
28
28
|
}
|
|
29
29
|
function calculateDeleverageAmount(currentLeverage, targetLeverage, totalValue) {
|
|
30
|
-
|
|
30
|
+
const current = new decimal_js_1.Decimal(currentLeverage);
|
|
31
|
+
const target = new decimal_js_1.Decimal(targetLeverage);
|
|
32
|
+
if (target.gte(current) || current.lte(0))
|
|
31
33
|
return new decimal_js_1.Decimal(0);
|
|
32
|
-
const
|
|
33
|
-
|
|
34
|
-
return currentDebt.minus(targetDebt);
|
|
34
|
+
const equity = totalValue.div(current);
|
|
35
|
+
return decimal_js_1.Decimal.max(equity.mul(current.sub(target)), 0);
|
|
35
36
|
}
|
|
36
37
|
function calculatePositionSize(tokenAmount, leverage) {
|
|
37
38
|
return tokenAmount.mul(leverage);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"leverage.js","sourceRoot":"","sources":["../../src/format/leverage.ts"],"names":[],"mappings":";;;AAOA,sDAGC;AAED,wDAKC;AAED,8DAWC;AAED,sDAEC;AA4BD,0EAeC;AAED,kEAMC;AAED,sDAkFC;AAzKD,2CAAqC;AAExB,QAAA,eAAe,GAAG,EAAE,CAAC;AACrB,QAAA,cAAc,GAAG,IAAI,CAAC;AACtB,QAAA,uBAAuB,GAAG,EAAE,CAAC;AAC7B,QAAA,aAAa,GAAG,IAAI,CAAC;AAElC,SAAgB,qBAAqB,CAAC,UAAmB,EAAE,QAAgB;IACvE,IAAI,QAAQ,IAAI,CAAC;QAAE,OAAO,IAAI,oBAAO,CAAC,CAAC,CAAC,CAAC;IACzC,OAAO,UAAU,CAAC,GAAG,CAAC,QAAQ,GAAG,CAAC,CAAC,CAAC;AACxC,CAAC;AAED,SAAgB,sBAAsB,CAAC,UAAmB,EAAE,UAAmB;IAC3E,IAAI,UAAU,CAAC,MAAM,EAAE;QAAE,OAAO,IAAI,oBAAO,CAAC,CAAC,CAAC,CAAC;IAC/C,MAAM,eAAe,GAAG,UAAU,CAAC,KAAK,CAAC,UAAU,CAAC,CAAC;IACrD,IAAI,eAAe,CAAC,GAAG,CAAC,CAAC,CAAC;QAAE,OAAO,IAAI,oBAAO,CAAC,CAAC,CAAC,CAAC;IAClD,OAAO,UAAU,CAAC,GAAG,CAAC,eAAe,CAAC,CAAC;AAC3C,CAAC;AAED,SAAgB,yBAAyB,CACrC,eAAuB,EACvB,cAAsB,EACtB,UAAmB;IAEnB,
|
|
1
|
+
{"version":3,"file":"leverage.js","sourceRoot":"","sources":["../../src/format/leverage.ts"],"names":[],"mappings":"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"}
|
package/dist/helpers.d.ts
CHANGED
|
@@ -1,10 +1,10 @@
|
|
|
1
1
|
import { Contract } from "ethers";
|
|
2
2
|
import { Decimal } from "decimal.js";
|
|
3
|
-
import { address, bytes, curvance_provider, curvance_signer, Percentage } from "./types";
|
|
3
|
+
import { address, bytes, curvance_provider, curvance_read_provider, curvance_signer, Percentage } from "./types";
|
|
4
4
|
import { chains } from "./contracts";
|
|
5
5
|
export type ChangeRate = "year" | "month" | "week" | "day";
|
|
6
6
|
export type ChainRpcPrefix = keyof typeof chains;
|
|
7
|
-
export declare const BPS
|
|
7
|
+
export declare const BPS = 10000n;
|
|
8
8
|
export declare const BPS_SQUARED: bigint;
|
|
9
9
|
export declare const WAD: bigint;
|
|
10
10
|
export declare const WAD_BPS: bigint;
|
|
@@ -115,6 +115,7 @@ export declare function getChainConfig(chain?: ChainRpcPrefix): import("./chains
|
|
|
115
115
|
export declare function validateProviderAsSigner(provider: curvance_provider): curvance_signer;
|
|
116
116
|
export declare function requireSigner(signer: curvance_signer | null | undefined): curvance_signer;
|
|
117
117
|
export declare function requireAccount(account: address | null | undefined, signer?: curvance_signer | null | undefined): address;
|
|
118
|
+
export declare function resolveReadProvider(provider: curvance_provider, context: string): curvance_read_provider;
|
|
118
119
|
export declare function contractSetup<I>(provider: curvance_provider, contractAddress: address, abi: any): Contract & I;
|
|
119
120
|
export declare function getContractAddresses(chain: ChainRpcPrefix): {
|
|
120
121
|
CentralRegistry: string;
|
|
@@ -428,17 +429,22 @@ export type MerklOpportunityLike = {
|
|
|
428
429
|
export type ApyOverrides = Record<string, {
|
|
429
430
|
value: number;
|
|
430
431
|
}>;
|
|
432
|
+
export type MerklMatchMode = "deposit" | "borrow";
|
|
433
|
+
export declare function aggregateMerklAprByToken(opportunities: unknown[] | undefined, mode: MerklMatchMode): Map<string, Decimal>;
|
|
434
|
+
export declare function getMerklTokenIncentiveApy(tokenAddress: string, opportunities: MerklOpportunityLike[] | undefined, mode: MerklMatchMode): Decimal;
|
|
431
435
|
/**
|
|
432
436
|
* Returns the native yield for a token — the rate provided by the asset issuer.
|
|
433
|
-
* When `
|
|
437
|
+
* When `nativeApy` is nonzero it already includes the interest component,
|
|
434
438
|
* so we return it directly. Otherwise we fall back to any static APY override.
|
|
435
439
|
*/
|
|
436
|
-
|
|
437
|
-
|
|
440
|
+
type NativeYieldTokenLike = {
|
|
441
|
+
nativeApy?: Decimal.Value | null;
|
|
442
|
+
nativeYield?: Decimal.Value | null;
|
|
438
443
|
asset: {
|
|
439
444
|
symbol: string;
|
|
440
445
|
};
|
|
441
|
-
}
|
|
446
|
+
};
|
|
447
|
+
export declare function getNativeYield(token: NativeYieldTokenLike, apyOverrides?: ApyOverrides): Decimal;
|
|
442
448
|
/**
|
|
443
449
|
* Returns the interest yield — the lending APY earned on Curvance.
|
|
444
450
|
*/
|
|
@@ -459,12 +465,8 @@ export declare function getMerklBorrowIncentives(tokenAddress: string, opportuni
|
|
|
459
465
|
* Returns the total deposit APY for a token (native + interest + merkl).
|
|
460
466
|
* When `nativeYield` is nonzero it already includes interest, so we use it directly.
|
|
461
467
|
*/
|
|
462
|
-
export declare function getDepositApy(token: {
|
|
463
|
-
nativeYield: number;
|
|
468
|
+
export declare function getDepositApy(token: NativeYieldTokenLike & {
|
|
464
469
|
getApy(): Decimal;
|
|
465
|
-
asset: {
|
|
466
|
-
symbol: string;
|
|
467
|
-
};
|
|
468
470
|
address: string;
|
|
469
471
|
}, opportunities: MerklOpportunityLike[] | undefined, apyOverrides?: ApyOverrides): Decimal;
|
|
470
472
|
/**
|
|
@@ -476,4 +478,5 @@ export declare function getBorrowCost(token: {
|
|
|
476
478
|
address: string;
|
|
477
479
|
}, opportunities: MerklOpportunityLike[] | undefined): Decimal;
|
|
478
480
|
export declare function contractWithGasBuffer<T extends object>(contract: T, bufferPercent?: number): T;
|
|
481
|
+
export {};
|
|
479
482
|
//# sourceMappingURL=helpers.d.ts.map
|
package/dist/helpers.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"helpers.d.ts","sourceRoot":"","sources":["../src/helpers.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAc,MAAM,QAAQ,CAAC;AAC9C,OAAO,EAAE,OAAO,EAAE,MAAM,YAAY,CAAC;AACrC,OAAO,EAAE,OAAO,EAAE,KAAK,EAAE,iBAAiB,EAAE,eAAe,EAAE,UAAU,EAAE,MAAM,SAAS,CAAC;
|
|
1
|
+
{"version":3,"file":"helpers.d.ts","sourceRoot":"","sources":["../src/helpers.ts"],"names":[],"mappings":"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"}
|