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.
Files changed (115) hide show
  1. package/README.md +65 -10
  2. package/dist/abis/OptimizerReader.json +43 -45
  3. package/dist/abis/ProtocolReader.json +279 -55
  4. package/dist/chains/arbitrum.js +3 -3
  5. package/dist/chains/arbitrum.js.map +1 -1
  6. package/dist/classes/Api.d.ts +2 -2
  7. package/dist/classes/Api.d.ts.map +1 -1
  8. package/dist/classes/Api.js +87 -14
  9. package/dist/classes/Api.js.map +1 -1
  10. package/dist/classes/BorrowableCToken.d.ts +9 -1
  11. package/dist/classes/BorrowableCToken.d.ts.map +1 -1
  12. package/dist/classes/BorrowableCToken.js +67 -12
  13. package/dist/classes/BorrowableCToken.js.map +1 -1
  14. package/dist/classes/CToken.d.ts +210 -21
  15. package/dist/classes/CToken.d.ts.map +1 -1
  16. package/dist/classes/CToken.js +692 -284
  17. package/dist/classes/CToken.js.map +1 -1
  18. package/dist/classes/Calldata.d.ts +2 -2
  19. package/dist/classes/Calldata.d.ts.map +1 -1
  20. package/dist/classes/Calldata.js +6 -2
  21. package/dist/classes/Calldata.js.map +1 -1
  22. package/dist/classes/DexAggregators/IDexAgg.d.ts +1 -1
  23. package/dist/classes/DexAggregators/Kuru.js +1 -1
  24. package/dist/classes/DexAggregators/Kuru.js.map +1 -1
  25. package/dist/classes/DexAggregators/KyberSwap.d.ts.map +1 -1
  26. package/dist/classes/DexAggregators/KyberSwap.js +112 -61
  27. package/dist/classes/DexAggregators/KyberSwap.js.map +1 -1
  28. package/dist/classes/DexAggregators/MultiDexAgg.d.ts +2 -2
  29. package/dist/classes/DexAggregators/MultiDexAgg.d.ts.map +1 -1
  30. package/dist/classes/DexAggregators/MultiDexAgg.js +30 -18
  31. package/dist/classes/DexAggregators/MultiDexAgg.js.map +1 -1
  32. package/dist/classes/DexAggregators/UnsupportedDexAgg.d.ts +19 -0
  33. package/dist/classes/DexAggregators/UnsupportedDexAgg.d.ts.map +1 -0
  34. package/dist/classes/DexAggregators/UnsupportedDexAgg.js +29 -0
  35. package/dist/classes/DexAggregators/UnsupportedDexAgg.js.map +1 -0
  36. package/dist/classes/DexAggregators/helpers.d.ts +30 -0
  37. package/dist/classes/DexAggregators/helpers.d.ts.map +1 -0
  38. package/dist/classes/DexAggregators/helpers.js +57 -0
  39. package/dist/classes/DexAggregators/helpers.js.map +1 -0
  40. package/dist/classes/DexAggregators/index.d.ts +2 -0
  41. package/dist/classes/DexAggregators/index.d.ts.map +1 -1
  42. package/dist/classes/DexAggregators/index.js +1 -0
  43. package/dist/classes/DexAggregators/index.js.map +1 -1
  44. package/dist/classes/ERC20.d.ts +3 -3
  45. package/dist/classes/ERC20.d.ts.map +1 -1
  46. package/dist/classes/ERC20.js +26 -10
  47. package/dist/classes/ERC20.js.map +1 -1
  48. package/dist/classes/FormatConverter.d.ts.map +1 -1
  49. package/dist/classes/FormatConverter.js +4 -1
  50. package/dist/classes/FormatConverter.js.map +1 -1
  51. package/dist/classes/Market.d.ts +46 -8
  52. package/dist/classes/Market.d.ts.map +1 -1
  53. package/dist/classes/Market.js +342 -111
  54. package/dist/classes/Market.js.map +1 -1
  55. package/dist/classes/NativeToken.d.ts +2 -2
  56. package/dist/classes/NativeToken.d.ts.map +1 -1
  57. package/dist/classes/NativeToken.js +21 -7
  58. package/dist/classes/NativeToken.js.map +1 -1
  59. package/dist/classes/OptimizerReader.d.ts +15 -7
  60. package/dist/classes/OptimizerReader.d.ts.map +1 -1
  61. package/dist/classes/OptimizerReader.js +108 -30
  62. package/dist/classes/OptimizerReader.js.map +1 -1
  63. package/dist/classes/OracleManager.d.ts.map +1 -1
  64. package/dist/classes/OracleManager.js +11 -4
  65. package/dist/classes/OracleManager.js.map +1 -1
  66. package/dist/classes/PositionManager.d.ts.map +1 -1
  67. package/dist/classes/PositionManager.js +1 -3
  68. package/dist/classes/PositionManager.js.map +1 -1
  69. package/dist/classes/ProtocolReader.d.ts +30 -9
  70. package/dist/classes/ProtocolReader.d.ts.map +1 -1
  71. package/dist/classes/ProtocolReader.js +158 -138
  72. package/dist/classes/ProtocolReader.js.map +1 -1
  73. package/dist/classes/Zapper.d.ts +5 -5
  74. package/dist/classes/Zapper.d.ts.map +1 -1
  75. package/dist/classes/Zapper.js +21 -18
  76. package/dist/classes/Zapper.js.map +1 -1
  77. package/dist/contracts/monad-mainnet.json +1 -1
  78. package/dist/feePolicy.d.ts +2 -0
  79. package/dist/feePolicy.d.ts.map +1 -1
  80. package/dist/feePolicy.js +19 -0
  81. package/dist/feePolicy.js.map +1 -1
  82. package/dist/format/borrow.d.ts.map +1 -1
  83. package/dist/format/borrow.js +7 -1
  84. package/dist/format/borrow.js.map +1 -1
  85. package/dist/format/health.d.ts +3 -2
  86. package/dist/format/health.d.ts.map +1 -1
  87. package/dist/format/health.js +10 -9
  88. package/dist/format/health.js.map +1 -1
  89. package/dist/format/leverage.js +5 -4
  90. package/dist/format/leverage.js.map +1 -1
  91. package/dist/helpers.d.ts +14 -11
  92. package/dist/helpers.d.ts.map +1 -1
  93. package/dist/helpers.js +171 -52
  94. package/dist/helpers.js.map +1 -1
  95. package/dist/integrations/merkl.d.ts +2 -1
  96. package/dist/integrations/merkl.d.ts.map +1 -1
  97. package/dist/integrations/merkl.js +199 -4
  98. package/dist/integrations/merkl.js.map +1 -1
  99. package/dist/integrations/snapshot.d.ts +28 -24
  100. package/dist/integrations/snapshot.d.ts.map +1 -1
  101. package/dist/integrations/snapshot.js +106 -42
  102. package/dist/integrations/snapshot.js.map +1 -1
  103. package/dist/retry-provider.d.ts +6 -0
  104. package/dist/retry-provider.d.ts.map +1 -1
  105. package/dist/retry-provider.js +103 -11
  106. package/dist/retry-provider.js.map +1 -1
  107. package/dist/setup.d.ts +8 -6
  108. package/dist/setup.d.ts.map +1 -1
  109. package/dist/setup.js +125 -45
  110. package/dist/setup.js.map +1 -1
  111. package/dist/validation.d.ts +1 -1
  112. package/dist/validation.d.ts.map +1 -1
  113. package/dist/validation.js +13 -7
  114. package/dist/validation.js.map +1 -1
  115. package/package.json +6 -3
@@ -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 calldata = await this.getNativeZapCalldata(ctoken, amount, collateralize);
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
- return this.executeCallData(calldata);
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
- this.signer.address
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: FormatConverter_1.default.bpsToBpsWad(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
- this.signer.address
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
- this.signer.address
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.convertToShares(await vault.previewDeposit(amount));
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.getUnderlyingVault().previewDeposit(amount)
135
+ ? await ctoken.getExpectedVaultShares(amount)
135
136
  : amount;
136
- const expected_shares = await ctoken.convertToShares(vaultAssets);
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
- this.signer.address
155
+ receiver
153
156
  ]);
154
157
  }
155
158
  }
@@ -1 +1 @@
1
- {"version":3,"file":"Zapper.js","sourceRoot":"","sources":["../../src/classes/Zapper.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"Zapper.js","sourceRoot":"","sources":["../../src/classes/Zapper.ts"],"names":[],"mappings":"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"}
@@ -236,7 +236,7 @@
236
236
  "WBTC-DynamicIRM": "0x95B961B9aD06dB25831FcdA3c7A79b1EB7c3AFA8"
237
237
  }
238
238
  },
239
- "ProtocolReader": "0x1FB5Cb39ED27ADcE0e0Fb1fcd17B1d35Fa5eA756",
239
+ "ProtocolReader": "0x55C7c1fe1DACB014aD3b21951728B5E580662268",
240
240
  "CombinedAggregator-ezETH": "0xd5F84C4497621768f3F08b65ad7019BdF183b1fd",
241
241
  "CombinedAggregator-earnAUSD": "0xf80CC9965d260d7cD96E41b9734F031279dCDf2f",
242
242
  "DAOTimelock": "0x2677738657F27e1A3591E00AD7E5a78807688C08",
@@ -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
@@ -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
@@ -1 +1 @@
1
- {"version":3,"file":"feePolicy.js","sourceRoot":"","sources":["../src/feePolicy.ts"],"names":[],"mappings":";;;AAwLA,sCA2DC;AAhPD,qCAAwC;AAqHxC;;;wEAGwE;AAC3D,QAAA,gBAAgB,GAAG,EAAE,CAAC;AAEnC;;;;kDAIkD;AACrC,QAAA,yBAAyB,GAClC,4CAA4C,CAAC;AA0BjD,MAAM,cAAc,GAAG,4CAA4C,CAAC;AAEpE;;;;;;;;;;;;;;;;;;;;;;;GAuBG;AACH,SAAgB,aAAa,CAAC,MAA2B;IACrD,MAAM,EAAE,GAAG,EAAE,WAAW,EAAE,KAAK,EAAE,iBAAiB,EAAE,QAAQ,EAAE,GAAG,MAAM,CAAC;IAExE,IAAI,GAAG,GAAG,EAAE,EAAE,CAAC;QACX,MAAM,IAAI,KAAK,CAAC,gDAAgD,GAAG,EAAE,CAAC,CAAC;IAC3E,CAAC;IACD,IAAI,GAAG,IAAI,MAAM,EAAE,CAAC;QAChB,MAAM,IAAI,KAAK,CAAC,kDAAkD,GAAG,EAAE,CAAC,CAAC;IAC7E,CAAC;IACD,IAAI,iBAAiB,KAAK,SAAS,EAAE,CAAC;QAClC,IAAI,iBAAiB,GAAG,EAAE,IAAI,iBAAiB,IAAI,MAAM,EAAE,CAAC;YACxD,MAAM,IAAI,KAAK,CAAC,+DAA+D,iBAAiB,EAAE,CAAC,CAAC;QACxG,CAAC;IACL,CAAC;IAED,qEAAqE;IACrE,wEAAwE;IACxE,uCAAuC;IACvC,MAAM,QAAQ,GAAG,qBAAY,CAAC,KAAK,CAAC,CAAC;IACrC,IAAI,CAAC,QAAQ,EAAE,CAAC;QACZ,MAAM,IAAI,KAAK,CAAC,iCAAiC,KAAK,GAAG,CAAC,CAAC;IAC/D,CAAC;IACD,MAAM,kBAAkB,GAAG,QAAQ,CAAC,cAAc,CAAC,WAAW,EAAE,CAAC;IAEjE,OAAO;QACH,WAAW;QACX,SAAS,CAAC,GAAqB;YAC3B,MAAM,OAAO,GAAG,GAAG,CAAC,UAAU,CAAC,WAAW,EAAE,CAAC;YAC7C,MAAM,QAAQ,GAAG,GAAG,CAAC,WAAW,CAAC,WAAW,EAAE,CAAC;YAE/C,+DAA+D;YAC/D,iEAAiE;YACjE,mEAAmE;YACnE,IAAI,OAAO,KAAK,QAAQ;gBAAE,OAAO,EAAE,CAAC;YAEpC,oEAAoE;YACpE,2DAA2D;YAC3D,iEAAiE;YACjE,sCAAsC;YACtC,IACI,CAAC,OAAO,KAAK,cAAc,IAAI,QAAQ,KAAK,kBAAkB,CAAC;gBAC/D,CAAC,OAAO,KAAK,kBAAkB,IAAI,QAAQ,KAAK,cAAc,CAAC,EACjE,CAAC;gBACC,OAAO,EAAE,CAAC;YACd,CAAC;YAED,oEAAoE;YACpE,iBAAiB;YACjB,IAAI,QAAQ,IAAI,iBAAiB,KAAK,SAAS,EAAE,CAAC;gBAC9C,MAAM,OAAO,GAAG,QAAQ,CAAC,GAAG,CAAC,UAAU,CAAC,CAAC;gBACzC,MAAM,QAAQ,GAAG,QAAQ,CAAC,GAAG,CAAC,WAAW,CAAC,CAAC;gBAC3C,IAAI,OAAO,KAAK,QAAQ,IAAI,QAAQ,KAAK,QAAQ,EAAE,CAAC;oBAChD,OAAO,iBAAiB,CAAC;gBAC7B,CAAC;YACL,CAAC;YAED,OAAO,GAAG,CAAC;QACf,CAAC;KACJ,CAAC;AACN,CAAC;AAED;;;;;;;;;;;GAWG;AACU,QAAA,aAAa,GAAc,MAAM,CAAC,MAAM,CAAC;IAClD,WAAW,EAAE,iCAAyB;IACtC,SAAS,EAAE,GAAG,EAAE,CAAC,EAAE;CACtB,CAAC,CAAC"}
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,CAET;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,CAO5C"}
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"}
@@ -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
- return isRepaying ? currentDebt.minus(amount) : currentDebt.plus(amount);
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,oDAMC;AAED,kEAWC;AA3DD,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,OAAO,UAAU,CAAC,CAAC,CAAC,WAAW,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,WAAW,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;AAC7E,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,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"}
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"}
@@ -1,7 +1,8 @@
1
1
  import { Decimal } from "decimal.js";
2
2
  export type HealthStatus = 'Danger' | 'Caution' | 'Healthy';
3
- export declare const LOW_HEALTH_THRESHOLD = 10;
4
- export declare const CAUTION_HEALTH_UPPER = 20;
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,KAAK,CAAC;AACvC,eAAO,MAAM,oBAAoB,KAAK,CAAC;AAEvC,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"}
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"}
@@ -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.LOW_HEALTH_THRESHOLD = 10;
11
- exports.CAUTION_HEALTH_UPPER = 20;
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 < 5)
16
+ if (percentageValue < exports.DANGER_HEALTH_THRESHOLD)
16
17
  return 'Danger';
17
- if (percentageValue >= 5 && percentageValue <= 20)
18
+ if (percentageValue >= exports.DANGER_HEALTH_THRESHOLD && percentageValue <= exports.CAUTION_HEALTH_UPPER)
18
19
  return 'Caution';
19
- if (percentageValue > 20)
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(((rawHealthFactor ?? 5) - 1) * 100, 0);
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 / 100);
32
+ }).format(value);
32
33
  }
33
34
  function formatHealthFactor(value) {
34
35
  if (value === null || value === undefined)
35
36
  return '∞';
36
- if (value >= 999)
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":";;;AAOA,0CAQC;AAED,4DAEC;AAED,oEAMC;AAED,gDAIC;AAED,gDAMC;AAzCD,2CAAqC;AAIxB,QAAA,oBAAoB,GAAG,EAAE,CAAC;AAC1B,QAAA,oBAAoB,GAAG,EAAE,CAAC;AAEvC,SAAgB,eAAe,CAAC,eAA0C;IACtE,IAAI,eAAe,IAAI,IAAI;QAAE,OAAO,SAAS,CAAC;IAE9C,IAAI,eAAe,GAAG,CAAC;QAAE,OAAO,QAAQ,CAAC;IACzC,IAAI,eAAe,IAAI,CAAC,IAAI,eAAe,IAAI,EAAE;QAAE,OAAO,SAAS,CAAC;IACpE,IAAI,eAAe,GAAG,EAAE;QAAE,OAAO,SAAS,CAAC;IAE3C,OAAO,SAAS,CAAC;AACrB,CAAC;AAED,SAAgB,wBAAwB,CAAC,eAA0C;IAC/E,OAAO,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,eAAe,IAAI,CAAC,CAAC,GAAG,CAAC,CAAC,GAAG,GAAG,EAAE,CAAC,CAAC,CAAC;AAC3D,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,GAAG,GAAG,CAAC,CAAC;AAC3B,CAAC;AAED,SAAgB,kBAAkB,CAAC,KAAqB;IACpD,IAAI,KAAK,KAAK,IAAI,IAAI,KAAK,KAAK,SAAS;QAAE,OAAO,GAAG,CAAC;IACtD,IAAI,KAAK,IAAI,GAAG;QAAE,OAAO,OAAO,CAAC;IACjC,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"}
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"}
@@ -27,11 +27,12 @@ function calculateLeverageRatio(totalValue, debtAmount) {
27
27
  return totalValue.div(collateralValue);
28
28
  }
29
29
  function calculateDeleverageAmount(currentLeverage, targetLeverage, totalValue) {
30
- if (targetLeverage >= currentLeverage)
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 currentDebt = totalValue.mul(1 - 1 / currentLeverage);
33
- const targetDebt = targetLeverage === 1 ? new decimal_js_1.Decimal(0) : totalValue.mul(1 - 1 / targetLeverage);
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":"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"}
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: bigint;
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 `nativeYield` is nonzero it already includes the interest component,
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
- export declare function getNativeYield(token: {
437
- nativeYield: number;
440
+ type NativeYieldTokenLike = {
441
+ nativeApy?: Decimal.Value | null;
442
+ nativeYield?: Decimal.Value | null;
438
443
  asset: {
439
444
  symbol: string;
440
445
  };
441
- }, apyOverrides?: ApyOverrides): Decimal;
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
@@ -1 +1 @@
1
- {"version":3,"file":"helpers.d.ts","sourceRoot":"","sources":["../src/helpers.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"helpers.d.ts","sourceRoot":"","sources":["../src/helpers.ts"],"names":[],"mappings":"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"}