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
|
@@ -0,0 +1,57 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
3
|
+
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
4
|
+
};
|
|
5
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
|
+
exports.createSimpleZapQuote = createSimpleZapQuote;
|
|
7
|
+
exports.buildLocalSimpleZapTokens = buildLocalSimpleZapTokens;
|
|
8
|
+
const helpers_1 = require("../../helpers");
|
|
9
|
+
const ERC20_1 = require("../ERC20");
|
|
10
|
+
const FormatConverter_1 = __importDefault(require("../FormatConverter"));
|
|
11
|
+
function createSimpleZapQuote(provider, account, quoteFn, resolveFee) {
|
|
12
|
+
return async (tokenIn, tokenOut, amount, slippage) => {
|
|
13
|
+
const wallet = account ?? helpers_1.EMPTY_ADDRESS;
|
|
14
|
+
const erc20In = new ERC20_1.ERC20(provider, tokenIn, undefined, undefined, null);
|
|
15
|
+
const decimalsIn = erc20In.decimals ?? await erc20In.contract.decimals();
|
|
16
|
+
const amountBigInt = (0, helpers_1.toBigInt)(amount, decimalsIn);
|
|
17
|
+
const erc20Out = new ERC20_1.ERC20(provider, tokenOut, undefined, undefined, null);
|
|
18
|
+
const decimalsOut = erc20Out.decimals ?? await erc20Out.contract.decimals();
|
|
19
|
+
const fee = resolveFee?.(tokenIn, tokenOut, amountBigInt) ?? { feeBps: 0n };
|
|
20
|
+
const results = await quoteFn(wallet, tokenIn, tokenOut, amountBigInt, FormatConverter_1.default.percentageToBps(slippage), fee.feeBps, fee.feeReceiver);
|
|
21
|
+
return {
|
|
22
|
+
minOut_raw: results.min_out,
|
|
23
|
+
output_raw: results.out,
|
|
24
|
+
minOut: FormatConverter_1.default.bigIntToDecimal(results.min_out, decimalsOut),
|
|
25
|
+
output: FormatConverter_1.default.bigIntToDecimal(results.out, decimalsOut),
|
|
26
|
+
extra: results.raw,
|
|
27
|
+
};
|
|
28
|
+
};
|
|
29
|
+
}
|
|
30
|
+
function buildLocalSimpleZapTokens(markets, provider, query, account, quoteFn, resolveFee) {
|
|
31
|
+
const zapTokens = [];
|
|
32
|
+
const seen = new Set();
|
|
33
|
+
for (const market of markets) {
|
|
34
|
+
for (const token of market.tokens) {
|
|
35
|
+
const asset = token.getAsset(true);
|
|
36
|
+
const assetKey = asset.address.toLowerCase();
|
|
37
|
+
if (seen.has(assetKey)) {
|
|
38
|
+
continue;
|
|
39
|
+
}
|
|
40
|
+
seen.add(assetKey);
|
|
41
|
+
if (query) {
|
|
42
|
+
const lowerQuery = query.toLowerCase();
|
|
43
|
+
if (!token.name.toLowerCase().includes(lowerQuery) &&
|
|
44
|
+
!token.symbol.toLowerCase().includes(lowerQuery)) {
|
|
45
|
+
continue;
|
|
46
|
+
}
|
|
47
|
+
}
|
|
48
|
+
zapTokens.push({
|
|
49
|
+
interface: asset,
|
|
50
|
+
type: "simple",
|
|
51
|
+
quote: createSimpleZapQuote(provider, account, quoteFn, resolveFee),
|
|
52
|
+
});
|
|
53
|
+
}
|
|
54
|
+
}
|
|
55
|
+
return zapTokens;
|
|
56
|
+
}
|
|
57
|
+
//# sourceMappingURL=helpers.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"helpers.js","sourceRoot":"","sources":["../../../src/classes/DexAggregators/helpers.ts"],"names":[],"mappings":";;;;;AAmCA,oDAsCC;AAED,8DAuCC;AAlHD,2CAAwD;AAGxD,oCAAiC;AACjC,yEAAiD;AA+BjD,SAAgB,oBAAoB,CAChC,QAAgC,EAChC,OAAuB,EACvB,OAAgB,EAChB,UAA6B;IAE7B,OAAO,KAAK,EACR,OAAe,EACf,QAAgB,EAChB,MAAkB,EAClB,QAAoB,EACtB,EAAE;QACA,MAAM,MAAM,GAAG,OAAO,IAAI,uBAAa,CAAC;QACxC,MAAM,OAAO,GAAG,IAAI,aAAK,CAAC,QAAQ,EAAE,OAAkB,EAAE,SAAS,EAAE,SAAS,EAAE,IAAI,CAAC,CAAC;QACpF,MAAM,UAAU,GAAG,OAAO,CAAC,QAAQ,IAAI,MAAM,OAAO,CAAC,QAAQ,CAAC,QAAQ,EAAE,CAAC;QACzE,MAAM,YAAY,GAAG,IAAA,kBAAQ,EAAC,MAAM,EAAE,UAAU,CAAC,CAAC;QAClD,MAAM,QAAQ,GAAG,IAAI,aAAK,CAAC,QAAQ,EAAE,QAAmB,EAAE,SAAS,EAAE,SAAS,EAAE,IAAI,CAAC,CAAC;QACtF,MAAM,WAAW,GAAG,QAAQ,CAAC,QAAQ,IAAI,MAAM,QAAQ,CAAC,QAAQ,CAAC,QAAQ,EAAE,CAAC;QAC5E,MAAM,GAAG,GAAG,UAAU,EAAE,CAAC,OAAO,EAAE,QAAQ,EAAE,YAAY,CAAC,IAAI,EAAE,MAAM,EAAE,EAAE,EAAE,CAAC;QAE5E,MAAM,OAAO,GAAG,MAAM,OAAO,CACzB,MAAM,EACN,OAAO,EACP,QAAQ,EACR,YAAY,EACZ,yBAAe,CAAC,eAAe,CAAC,QAAQ,CAAC,EACzC,GAAG,CAAC,MAAM,EACV,GAAG,CAAC,WAAW,CAClB,CAAC;QAEF,OAAO;YACH,UAAU,EAAE,OAAO,CAAC,OAAO;YAC3B,UAAU,EAAE,OAAO,CAAC,GAAG;YACvB,MAAM,EAAE,yBAAe,CAAC,eAAe,CAAC,OAAO,CAAC,OAAO,EAAE,WAAW,CAAC;YACrE,MAAM,EAAE,yBAAe,CAAC,eAAe,CAAC,OAAO,CAAC,GAAG,EAAE,WAAW,CAAC;YACjE,KAAK,EAAE,OAAO,CAAC,GAAG;SACrB,CAAC;IACN,CAAC,CAAC;AACN,CAAC;AAED,SAAgB,yBAAyB,CACrC,OAAuB,EACvB,QAAgC,EAChC,KAAoB,EACpB,OAAuB,EACvB,OAAgB,EAChB,UAA6B;IAE7B,MAAM,SAAS,GAAe,EAAE,CAAC;IACjC,MAAM,IAAI,GAAG,IAAI,GAAG,EAAU,CAAC;IAE/B,KAAK,MAAM,MAAM,IAAI,OAAO,EAAE,CAAC;QAC3B,KAAK,MAAM,KAAK,IAAI,MAAM,CAAC,MAAM,EAAE,CAAC;YAChC,MAAM,KAAK,GAAG,KAAK,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC;YACnC,MAAM,QAAQ,GAAG,KAAK,CAAC,OAAO,CAAC,WAAW,EAAE,CAAC;YAC7C,IAAI,IAAI,CAAC,GAAG,CAAC,QAAQ,CAAC,EAAE,CAAC;gBACrB,SAAS;YACb,CAAC;YACD,IAAI,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC;YAEnB,IAAI,KAAK,EAAE,CAAC;gBACR,MAAM,UAAU,GAAG,KAAK,CAAC,WAAW,EAAE,CAAC;gBACvC,IACI,CAAC,KAAK,CAAC,IAAI,CAAC,WAAW,EAAE,CAAC,QAAQ,CAAC,UAAU,CAAC;oBAC9C,CAAC,KAAK,CAAC,MAAM,CAAC,WAAW,EAAE,CAAC,QAAQ,CAAC,UAAU,CAAC,EAClD,CAAC;oBACC,SAAS;gBACb,CAAC;YACL,CAAC;YAED,SAAS,CAAC,IAAI,CAAC;gBACX,SAAS,EAAE,KAAK;gBAChB,IAAI,EAAE,QAAQ;gBACd,KAAK,EAAE,oBAAoB,CAAC,QAAQ,EAAE,OAAO,EAAE,OAAO,EAAE,UAAU,CAAC;aACtE,CAAC,CAAC;QACP,CAAC;IACL,CAAC;IAED,OAAO,SAAS,CAAC;AACrB,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/classes/DexAggregators/index.ts"],"names":[],"mappings":"AAAA,cAAc,QAAQ,CAAC;AACvB,cAAc,aAAa,CAAC;AAC5B,cAAc,eAAe,CAAC"}
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/classes/DexAggregators/index.ts"],"names":[],"mappings":"AAAA,YAAY,EAAE,OAAO,IAAI,OAAO,EAAE,KAAK,EAAE,SAAS,EAAE,MAAM,WAAW,CAAC;AACtE,cAAc,QAAQ,CAAC;AACvB,cAAc,aAAa,CAAC;AAC5B,cAAc,eAAe,CAAC;AAC9B,cAAc,qBAAqB,CAAC"}
|
|
@@ -17,4 +17,5 @@ Object.defineProperty(exports, "__esModule", { value: true });
|
|
|
17
17
|
__exportStar(require("./Kuru"), exports);
|
|
18
18
|
__exportStar(require("./KyberSwap"), exports);
|
|
19
19
|
__exportStar(require("./MultiDexAgg"), exports);
|
|
20
|
+
__exportStar(require("./UnsupportedDexAgg"), exports);
|
|
20
21
|
//# sourceMappingURL=index.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/classes/DexAggregators/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/classes/DexAggregators/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AACA,yCAAuB;AACvB,8CAA4B;AAC5B,gDAA8B;AAC9B,sDAAoC"}
|
package/dist/classes/ERC20.d.ts
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import { TransactionResponse } from "ethers";
|
|
2
2
|
import { Contract } from "ethers";
|
|
3
|
-
import { StaticMarketAsset } from "./ProtocolReader";
|
|
4
|
-
import { address, curvance_read_provider, curvance_signer, TokenInput, USD } from "../types";
|
|
3
|
+
import type { StaticMarketAsset } from "./ProtocolReader";
|
|
4
|
+
import { address, curvance_provider, curvance_read_provider, curvance_signer, TokenInput, USD } from "../types";
|
|
5
5
|
import Decimal from "decimal.js";
|
|
6
6
|
export interface IERC20 {
|
|
7
7
|
balanceOf(account: address): Promise<bigint>;
|
|
@@ -20,7 +20,7 @@ export declare class ERC20 {
|
|
|
20
20
|
contract: Contract & IERC20;
|
|
21
21
|
cache: StaticMarketAsset | undefined;
|
|
22
22
|
protected oracleManagerAddress: address | undefined;
|
|
23
|
-
constructor(provider:
|
|
23
|
+
constructor(provider: curvance_provider, address: address, cache?: StaticMarketAsset | undefined, oracleManagerAddress?: address, signer?: curvance_signer | null);
|
|
24
24
|
get name(): string | undefined;
|
|
25
25
|
get symbol(): string | undefined;
|
|
26
26
|
get decimals(): bigint | undefined;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ERC20.d.ts","sourceRoot":"","sources":["../../src/classes/ERC20.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,mBAAmB,EAAE,MAAM,QAAQ,CAAC;AAE7C,OAAO,EAAE,QAAQ,EAAE,MAAM,QAAQ,CAAC;AAClC,OAAO,EAAE,iBAAiB,EAAE,MAAM,kBAAkB,CAAC;
|
|
1
|
+
{"version":3,"file":"ERC20.d.ts","sourceRoot":"","sources":["../../src/classes/ERC20.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,mBAAmB,EAAE,MAAM,QAAQ,CAAC;AAE7C,OAAO,EAAE,QAAQ,EAAE,MAAM,QAAQ,CAAC;AAClC,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,kBAAkB,CAAC;AAC1D,OAAO,EAAE,OAAO,EAAE,iBAAiB,EAAE,sBAAsB,EAAE,eAAe,EAAE,UAAU,EAAE,GAAG,EAAE,MAAM,UAAU,CAAC;AAEhH,OAAO,OAAO,MAAM,YAAY,CAAC;AAWjC,MAAM,WAAW,MAAM;IACnB,SAAS,CAAC,OAAO,EAAE,OAAO,GAAG,OAAO,CAAC,MAAM,CAAC,CAAC;IAC7C,QAAQ,CAAC,EAAE,EAAE,OAAO,EAAE,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,mBAAmB,CAAC,CAAC;IACpE,OAAO,CAAC,OAAO,EAAE,OAAO,EAAE,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,mBAAmB,CAAC,CAAC;IACxE,IAAI,IAAI,OAAO,CAAC,MAAM,CAAC,CAAC;IACxB,MAAM,IAAI,OAAO,CAAC,MAAM,CAAC,CAAC;IAC1B,QAAQ,IAAI,OAAO,CAAC,MAAM,CAAC,CAAC;IAC5B,WAAW,IAAI,OAAO,CAAC,MAAM,CAAC,CAAC;IAC/B,SAAS,CAAC,KAAK,EAAE,OAAO,EAAE,OAAO,EAAE,OAAO,GAAG,OAAO,CAAC,MAAM,CAAC,CAAC;CAChE;AAaD,qBAAa,KAAK;IACd,QAAQ,EAAE,sBAAsB,CAAC;IACjC,MAAM,EAAE,eAAe,GAAG,IAAI,CAAC;IAC/B,OAAO,EAAE,OAAO,CAAC;IACjB,QAAQ,EAAE,QAAQ,GAAG,MAAM,CAAC;IAC5B,KAAK,EAAE,iBAAiB,GAAG,SAAS,CAAa;IACjD,SAAS,CAAC,oBAAoB,EAAE,OAAO,GAAG,SAAS,CAAC;gBAGhD,QAAQ,EAAE,iBAAiB,EAC3B,OAAO,EAAE,OAAO,EAChB,KAAK,GAAE,iBAAiB,GAAG,SAAqB,EAChD,oBAAoB,CAAC,EAAE,OAAO,EAC9B,MAAM,CAAC,EAAE,eAAe,GAAG,IAAI;IAgBnC,IAAI,IAAI,uBAA+B;IACvC,IAAI,MAAM,uBAAiC;IAC3C,IAAI,QAAQ,uBAAmC;IAC/C,IAAI,WAAW,uBAAsC;IACrD,IAAI,KAAK,uBAAgC;IACzC,IAAI,OAAO,wBAAgH;IAC3H,IAAI,KAAK,wBAAgC;IAEnC,SAAS,CAAC,OAAO,EAAE,OAAO,GAAG,OAAO,CAAC,MAAM,CAAC;IAC5C,SAAS,CAAC,OAAO,EAAE,OAAO,EAAE,cAAc,EAAE,IAAI,GAAG,OAAO,CAAC,UAAU,CAAC;IACtE,SAAS,CAAC,OAAO,EAAE,OAAO,EAAE,cAAc,EAAE,KAAK,GAAG,OAAO,CAAC,MAAM,CAAC;IAQnE,QAAQ,CAAC,EAAE,EAAE,OAAO,EAAE,MAAM,EAAE,UAAU;IAOxC,WAAW,CAAC,EAAE,EAAE,OAAO,EAAE,MAAM,EAAE,MAAM;IAIvC,OAAO,CAAC,OAAO,EAAE,OAAO,EAAE,MAAM,EAAE,UAAU,GAAG,IAAI;IAOnD,SAAS;IAMT,WAAW;IAMX,aAAa;IAMb,gBAAgB;IAMhB,SAAS,CAAC,KAAK,EAAE,OAAO,EAAE,OAAO,EAAE,OAAO;IAI1C,QAAQ,CAAC,YAAY,EAAE,IAAI,EAAE,KAAK,EAAE,OAAO,EAAE,QAAQ,EAAE,OAAO,GAAG,OAAO,CAAC,GAAG,CAAC;IAC7E,QAAQ,CAAC,YAAY,EAAE,KAAK,EAAE,KAAK,EAAE,OAAO,EAAE,QAAQ,EAAE,OAAO,GAAG,OAAO,CAAC,MAAM,CAAC;IAgBvF,OAAO,CAAC,QAAQ;CAMnB"}
|
package/dist/classes/ERC20.js
CHANGED
|
@@ -5,10 +5,15 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
|
5
5
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
6
|
exports.ERC20 = void 0;
|
|
7
7
|
const helpers_1 = require("../helpers");
|
|
8
|
-
const setup_1 = require("../setup");
|
|
9
8
|
const OracleManager_1 = require("./OracleManager");
|
|
10
9
|
const decimal_js_1 = __importDefault(require("decimal.js"));
|
|
11
10
|
const FormatConverter_1 = __importDefault(require("./FormatConverter"));
|
|
11
|
+
function getSetupConfig() {
|
|
12
|
+
return require("../setup").setup_config;
|
|
13
|
+
}
|
|
14
|
+
function resolveDefaultOracleManagerAddress() {
|
|
15
|
+
return getSetupConfig()?.contracts?.OracleManager;
|
|
16
|
+
}
|
|
12
17
|
const ERC20_ABI = [
|
|
13
18
|
"function balanceOf(address owner) view returns (uint256)",
|
|
14
19
|
"function transfer(address to, uint256 amount) returns (bool)",
|
|
@@ -16,6 +21,7 @@ const ERC20_ABI = [
|
|
|
16
21
|
"function name() view returns (string)",
|
|
17
22
|
"function symbol() view returns (string)",
|
|
18
23
|
"function decimals() view returns (uint8)",
|
|
24
|
+
"function totalSupply() view returns (uint256)",
|
|
19
25
|
"function allowance(address owner, address spender) view returns (uint256)",
|
|
20
26
|
];
|
|
21
27
|
class ERC20 {
|
|
@@ -25,20 +31,24 @@ class ERC20 {
|
|
|
25
31
|
contract;
|
|
26
32
|
cache = undefined;
|
|
27
33
|
oracleManagerAddress;
|
|
28
|
-
constructor(provider, address, cache = undefined, oracleManagerAddress
|
|
29
|
-
|
|
30
|
-
|
|
34
|
+
constructor(provider, address, cache = undefined, oracleManagerAddress, signer) {
|
|
35
|
+
const legacySigner = "address" in provider ? provider : null;
|
|
36
|
+
const resolvedProvider = legacySigner == null
|
|
37
|
+
? provider
|
|
38
|
+
: (0, helpers_1.resolveReadProvider)(provider, `ERC20 ${address}`);
|
|
39
|
+
this.provider = resolvedProvider;
|
|
40
|
+
this.signer = signer ?? legacySigner ?? null;
|
|
31
41
|
this.address = address;
|
|
32
42
|
this.cache = cache;
|
|
33
|
-
this.oracleManagerAddress = oracleManagerAddress;
|
|
34
|
-
this.contract = (0, helpers_1.contractSetup)(
|
|
43
|
+
this.oracleManagerAddress = oracleManagerAddress ?? resolveDefaultOracleManagerAddress();
|
|
44
|
+
this.contract = (0, helpers_1.contractSetup)(resolvedProvider, address, ERC20_ABI);
|
|
35
45
|
}
|
|
36
46
|
get name() { return this.cache?.name; }
|
|
37
47
|
get symbol() { return this.cache?.symbol; }
|
|
38
48
|
get decimals() { return this.cache?.decimals; }
|
|
39
49
|
get totalSupply() { return this.cache?.totalSupply; }
|
|
40
50
|
get image() { return this.cache?.image; }
|
|
41
|
-
get balance() { return this.cache?.balance ? (0, helpers_1.toDecimal)(this.cache.balance, this.cache.decimals) : undefined; }
|
|
51
|
+
get balance() { return this.cache?.balance != undefined ? (0, helpers_1.toDecimal)(this.cache.balance, this.cache.decimals) : undefined; }
|
|
42
52
|
get price() { return this.cache?.price; }
|
|
43
53
|
async balanceOf(account, in_token_input = false) {
|
|
44
54
|
const amount = await this.contract.balanceOf(account);
|
|
@@ -46,17 +56,19 @@ class ERC20 {
|
|
|
46
56
|
return in_token_input ? FormatConverter_1.default.bigIntToDecimal(amount, decimals) : amount;
|
|
47
57
|
}
|
|
48
58
|
async transfer(to, amount) {
|
|
59
|
+
const signer = (0, helpers_1.requireSigner)(this.signer);
|
|
49
60
|
const decimals = this.decimals ?? await this.contract.decimals();
|
|
50
61
|
const tokens = (0, helpers_1.toBigInt)(amount, decimals);
|
|
51
|
-
return (0, helpers_1.contractSetup)(
|
|
62
|
+
return (0, helpers_1.contractSetup)(signer, this.address, ERC20_ABI).transfer(to, tokens);
|
|
52
63
|
}
|
|
53
64
|
async rawTransfer(to, amount) {
|
|
54
65
|
return (0, helpers_1.contractSetup)((0, helpers_1.requireSigner)(this.signer), this.address, ERC20_ABI).transfer(to, amount);
|
|
55
66
|
}
|
|
56
67
|
async approve(spender, amount) {
|
|
68
|
+
const signer = (0, helpers_1.requireSigner)(this.signer);
|
|
57
69
|
const decimals = this.decimals ?? await this.fetchDecimals();
|
|
58
70
|
const tokens = amount == null ? helpers_1.UINT256_MAX : (0, helpers_1.toBigInt)(amount, decimals);
|
|
59
|
-
return (0, helpers_1.contractSetup)(
|
|
71
|
+
return (0, helpers_1.contractSetup)(signer, this.address, ERC20_ABI).approve(spender, tokens);
|
|
60
72
|
}
|
|
61
73
|
async fetchName() {
|
|
62
74
|
const name = await this.contract.name();
|
|
@@ -82,7 +94,11 @@ class ERC20 {
|
|
|
82
94
|
return this.contract.allowance(owner, spender);
|
|
83
95
|
}
|
|
84
96
|
async getPrice(inTokenInput, inUSD = true, getLower = false) {
|
|
85
|
-
const oracleManagerAddress = this.oracleManagerAddress
|
|
97
|
+
const oracleManagerAddress = this.oracleManagerAddress;
|
|
98
|
+
if (oracleManagerAddress == undefined) {
|
|
99
|
+
throw new Error(`OracleManager address is not configured for ERC20 ${this.address}. ` +
|
|
100
|
+
`Pass oracleManagerAddress explicitly or initialize setupChain() before constructing this token.`);
|
|
101
|
+
}
|
|
86
102
|
const oracle_manager = new OracleManager_1.OracleManager(oracleManagerAddress, this.provider);
|
|
87
103
|
const price = await oracle_manager.getPrice(this.address, inUSD, getLower);
|
|
88
104
|
return inTokenInput ? (0, decimal_js_1.default)(price).div(helpers_1.WAD) : price;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ERC20.js","sourceRoot":"","sources":["../../src/classes/ERC20.ts"],"names":[],"mappings":";;;;;;AACA,
|
|
1
|
+
{"version":3,"file":"ERC20.js","sourceRoot":"","sources":["../../src/classes/ERC20.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"FormatConverter.d.ts","sourceRoot":"","sources":["../../src/classes/FormatConverter.ts"],"names":[],"mappings":"AAAA,OAAO,OAAO,MAAM,YAAY,CAAC;AACjC,OAAO,EAAE,UAAU,EAAE,UAAU,EAAE,GAAG,EAAE,MAAM,UAAU,CAAC;
|
|
1
|
+
{"version":3,"file":"FormatConverter.d.ts","sourceRoot":"","sources":["../../src/classes/FormatConverter.ts"],"names":[],"mappings":"AAAA,OAAO,OAAO,MAAM,YAAY,CAAC;AACjC,OAAO,EAAE,UAAU,EAAE,UAAU,EAAE,GAAG,EAAE,MAAM,UAAU,CAAC;AAEvD,MAAM,CAAC,OAAO,OAAO,eAAe;IAChC;;;;OAIG;IACH,MAAM,CAAC,WAAW,CAAC,KAAK,EAAE,MAAM,GAAG,GAAG;IAItC,MAAM,CAAC,iBAAiB,CAAC,MAAM,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,GAAG,MAAM,GAAG,GAAG;IAWvF;;;;;;;OAOG;IACH,MAAM,CAAC,cAAc,CAAC,IAAI,EAAE;QAAE,KAAK,EAAE,OAAO,CAAC;QAAC,QAAQ,EAAE,MAAM,CAAC;QAAC,MAAM,EAAE,UAAU,CAAA;KAAE,EAAE,EAAE,EAAE;QAAE,KAAK,EAAE,OAAO,CAAC;QAAC,QAAQ,EAAE,MAAM,CAAA;KAAE,EAAE,SAAS,EAAE,KAAK,GAAG,MAAM;IACzJ,MAAM,CAAC,cAAc,CAAC,IAAI,EAAE;QAAE,KAAK,EAAE,OAAO,CAAC;QAAC,QAAQ,EAAE,MAAM,CAAC;QAAC,MAAM,EAAE,UAAU,CAAA;KAAE,EAAE,EAAE,EAAE;QAAE,KAAK,EAAE,OAAO,CAAC;QAAC,QAAQ,EAAE,MAAM,CAAA;KAAE,EAAE,SAAS,EAAE,IAAI,GAAG,OAAO;IAOzJ;;;;;OAKG;IACH,MAAM,CAAC,kBAAkB,CAAC,MAAM,EAAE,OAAO,EAAE,KAAK,EAAE,OAAO,GAAG,GAAG;IAI/D;;;;;;OAMG;IACH,MAAM,CAAC,kBAAkB,CAAC,KAAK,EAAE,GAAG,EAAE,KAAK,EAAE,GAAG,GAAG,MAAM,EAAE,QAAQ,EAAE,MAAM,GAAG,MAAM,GAAG,OAAO;IAe9F;;;;;;OAMG;IACH,MAAM,CAAC,iBAAiB,CAAC,KAAK,EAAE,GAAG,EAAE,KAAK,EAAE,GAAG,GAAG,MAAM,EAAE,QAAQ,EAAE,MAAM,GAAG,MAAM,GAAG,MAAM;IAO5F;;;;;OAKG;IACH,MAAM,CAAC,eAAe,CAAC,KAAK,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,GAAG,MAAM,GAAG,OAAO;IAUzE;;;;;OAKG;IACH,MAAM,CAAC,eAAe,CAAC,KAAK,EAAE,UAAU,EAAE,QAAQ,EAAE,MAAM,GAAG,MAAM,GAAG,MAAM;IAa5E;;;;;;;;;;;;;;;;;;;;;;;;OAwBG;IACH,MAAM,CAAC,WAAW,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM;IAIzC;;;;;;;;;;OAUG;IACH,MAAM,CAAC,eAAe,CAAC,KAAK,EAAE,UAAU,GAAG,MAAM;IAIjD;;;;;;;;OAQG;IACH,MAAM,CAAC,kBAAkB,CAAC,KAAK,EAAE,UAAU,GAAG,MAAM;IAKpD;;;;;;OAMG;IACH,MAAM,CAAC,gBAAgB,CAAC,KAAK,EAAE,UAAU,GAAG,MAAM;CAGrD"}
|
|
@@ -46,6 +46,9 @@ class FormatConverter {
|
|
|
46
46
|
if (!decimal_js_1.default.isDecimal(price)) {
|
|
47
47
|
price = this.bigIntToUsd(price);
|
|
48
48
|
}
|
|
49
|
+
if (!price.isFinite() || price.lte(0)) {
|
|
50
|
+
throw new Error("Cannot convert USD to tokens with a non-positive or non-finite price.");
|
|
51
|
+
}
|
|
49
52
|
if (typeof decimals === 'bigint') {
|
|
50
53
|
decimals = Number(decimals);
|
|
51
54
|
}
|
|
@@ -132,7 +135,7 @@ class FormatConverter {
|
|
|
132
135
|
* @returns The BPS value as a bigint
|
|
133
136
|
*/
|
|
134
137
|
static percentageToBps(value) {
|
|
135
|
-
return BigInt(value.mul(10_000).toFixed(0));
|
|
138
|
+
return BigInt(value.mul(10_000).floor().toFixed(0));
|
|
136
139
|
}
|
|
137
140
|
/**
|
|
138
141
|
* Take a percentage value (Decimal) and convert it to BPS in WAD format.
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"FormatConverter.js","sourceRoot":"","sources":["../../src/classes/FormatConverter.ts"],"names":[],"mappings":";;;;;AAAA,4DAAiC;
|
|
1
|
+
{"version":3,"file":"FormatConverter.js","sourceRoot":"","sources":["../../src/classes/FormatConverter.ts"],"names":[],"mappings":"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"}
|
package/dist/classes/Market.d.ts
CHANGED
|
@@ -1,13 +1,14 @@
|
|
|
1
1
|
import { ChangeRate } from "../helpers";
|
|
2
2
|
import { Contract } from "ethers";
|
|
3
|
-
import { DynamicMarketData, ProtocolReader, StaticMarketData, UserMarket } from "./ProtocolReader";
|
|
3
|
+
import { DynamicMarketData, ProtocolReader, StaticMarketData, UserMarket, UserMarketSummary } from "./ProtocolReader";
|
|
4
4
|
import { AccountSnapshot, CToken } from "./CToken";
|
|
5
5
|
import { Decimal } from "decimal.js";
|
|
6
6
|
import { address, curvance_read_provider, curvance_signer, Percentage, TokenInput, USD } from "../types";
|
|
7
7
|
import { OracleManager } from "./OracleManager";
|
|
8
|
-
import {
|
|
8
|
+
import type { SetupConfigSnapshot } from "../setup";
|
|
9
9
|
import { BorrowableCToken } from "./BorrowableCToken";
|
|
10
10
|
import { IncentiveResponse, Incentives, MilestoneResponse, Milestones } from "./Api";
|
|
11
|
+
import type { PositionManagerTypes } from "./PositionManager";
|
|
11
12
|
export type MarketToken = CToken | BorrowableCToken;
|
|
12
13
|
export type PluginTypes = 'zapper' | 'positionManager';
|
|
13
14
|
export interface Plugins {
|
|
@@ -40,10 +41,10 @@ export interface HypotheticalLiquidityOf {
|
|
|
40
41
|
loanSizeError: boolean;
|
|
41
42
|
oracleError: boolean;
|
|
42
43
|
}
|
|
44
|
+
export type UserDataScope = "full" | "summary";
|
|
43
45
|
export interface IMarket {
|
|
44
46
|
accountAssets(account: address): Promise<bigint>;
|
|
45
47
|
MIN_HOLD_PERIOD(): Promise<bigint>;
|
|
46
|
-
hypotheticalLiquidityOf(account: address, cTokenModified: address, redemptionShares: bigint, borrowAssets: bigint): Promise<HypotheticalLiquidityOf>;
|
|
47
48
|
statusOf(account: address): Promise<StatusOf>;
|
|
48
49
|
}
|
|
49
50
|
export declare class Market {
|
|
@@ -64,8 +65,14 @@ export declare class Market {
|
|
|
64
65
|
};
|
|
65
66
|
milestone: MilestoneResponse | null;
|
|
66
67
|
incentives: Array<IncentiveResponse>;
|
|
68
|
+
private _userDataScope?;
|
|
67
69
|
constructor(provider: curvance_read_provider, signer: curvance_signer | null, account: address | null, static_data: StaticMarketData, dynamic_data: DynamicMarketData, user_data: UserMarket, deploy_data: DeployData, oracle_manager: OracleManager, reader: ProtocolReader, setup: SetupConfigSnapshot);
|
|
68
70
|
private getAccountOrThrow;
|
|
71
|
+
assertRefreshAccountCompatible(account: address, allowSignerMismatch?: boolean): void;
|
|
72
|
+
bindRefreshedAccount(account: address, allowSignerMismatch?: boolean): void;
|
|
73
|
+
private requireFullUserTokenData;
|
|
74
|
+
private requireValidCachedUserHealth;
|
|
75
|
+
private cooldownDateFromUnlockTime;
|
|
69
76
|
/** @returns {string} - The name of the market at deployment. */
|
|
70
77
|
get name(): string;
|
|
71
78
|
/** @returns {Plugins} - The address of the market's plugins by deploy name. */
|
|
@@ -76,6 +83,8 @@ export declare class Market {
|
|
|
76
83
|
get adapters(): bigint[];
|
|
77
84
|
/** @returns {Date | null} - Market cooldown, activated by Collateralization or Borrowing. Lasts as long as {this.cooldownLength} which is currently 20mins */
|
|
78
85
|
get cooldown(): Date | null;
|
|
86
|
+
/** @returns The scope of the latest whole-market user refresh. */
|
|
87
|
+
get userDataScope(): UserDataScope;
|
|
79
88
|
/** @returns {Decimal} - The user's collateral in Shares. */
|
|
80
89
|
get userCollateral(): Decimal;
|
|
81
90
|
/** @returns {USD} - The user's debt in USD. */
|
|
@@ -104,8 +113,12 @@ export declare class Market {
|
|
|
104
113
|
min: Decimal;
|
|
105
114
|
max: Decimal;
|
|
106
115
|
};
|
|
107
|
-
/** @returns Total market deposits
|
|
108
|
-
|
|
116
|
+
/** @returns Total market deposits in USD, summed across the market's tokens.
|
|
117
|
+
* Renamed from `tvl` to match the sibling getter naming
|
|
118
|
+
* (`totalDebt`, `totalCollateral`). Backed by the per-token
|
|
119
|
+
* `getDeposits` (which now values via `totalAssets`, not `totalSupply`,
|
|
120
|
+
* so the liquidity ≤ deposits invariant holds). */
|
|
121
|
+
get totalDeposits(): Decimal;
|
|
109
122
|
/** @returns Total market debt */
|
|
110
123
|
get totalDebt(): Decimal;
|
|
111
124
|
/** @returns Total market collateral */
|
|
@@ -153,11 +166,27 @@ export declare class Market {
|
|
|
153
166
|
*/
|
|
154
167
|
getSnapshots(account: address): Promise<AccountSnapshot[]>;
|
|
155
168
|
hasUserActivity(): boolean;
|
|
169
|
+
private requireRefreshTokenRows;
|
|
170
|
+
private requireRefreshMarketAddress;
|
|
171
|
+
private validateStateRows;
|
|
172
|
+
validateRefreshState(dynamicData: DynamicMarketData, userData?: UserMarket): void;
|
|
173
|
+
private static requireMarketRow;
|
|
156
174
|
applyState(dynamicData: DynamicMarketData, userData?: UserMarket): void;
|
|
175
|
+
applyUserSummary(userData: UserMarketSummary): void;
|
|
157
176
|
reloadMarketData(): Promise<void>;
|
|
158
|
-
reloadUserData(account: address
|
|
177
|
+
reloadUserData(account: address, options?: {
|
|
178
|
+
allowSignerMismatch?: boolean;
|
|
179
|
+
}): Promise<void>;
|
|
180
|
+
reloadUserSummary(account: address): Promise<void>;
|
|
159
181
|
static getActiveUserMarkets(markets: Market[]): Market[];
|
|
182
|
+
private static groupByReaderDeployment;
|
|
160
183
|
static reloadUserMarkets(markets: Market[], account: address): Promise<Market[]>;
|
|
184
|
+
static reloadUserMarketSummaries(markets: Market[], account: address): Promise<Market[]>;
|
|
185
|
+
private static buildDeployDataIndex;
|
|
186
|
+
private static buildYieldIndex;
|
|
187
|
+
private static buildMarketPayloadIndex;
|
|
188
|
+
private static requireTokenRow;
|
|
189
|
+
private static mergeTokenPayloads;
|
|
161
190
|
/**
|
|
162
191
|
* Preview the impact of the user descision for their deposit/borrow/leverage
|
|
163
192
|
* @param user - Wallet address
|
|
@@ -189,7 +218,8 @@ export declare class Market {
|
|
|
189
218
|
*/
|
|
190
219
|
previewPositionHealthLeverageDeposit(deposit_ctoken: CToken, deposit_amount: TokenInput, borrow_ctoken: BorrowableCToken, borrow_amount: TokenInput): Promise<Decimal | null>;
|
|
191
220
|
previewPositionHealthLeverageDown(deposit_ctoken: CToken, borrow_ctoken: BorrowableCToken, newLeverage: Decimal, currentLeverage: Decimal): Promise<Decimal | null>;
|
|
192
|
-
previewPositionHealthLeverageUp(deposit_ctoken: CToken, borrow_ctoken: BorrowableCToken, newLeverage: Decimal, depositAssets?: bigint): Promise<Decimal | null>;
|
|
221
|
+
previewPositionHealthLeverageUp(deposit_ctoken: CToken, borrow_ctoken: BorrowableCToken, newLeverage: Decimal, depositAssets?: bigint, positionManagerType?: PositionManagerTypes): Promise<Decimal | null>;
|
|
222
|
+
previewPositionHealthDepositAndLeverage(deposit_ctoken: CToken, borrow_ctoken: BorrowableCToken, newLeverage: Decimal, depositAssets: bigint, positionManagerType?: PositionManagerTypes): Promise<Decimal | null>;
|
|
193
223
|
/**
|
|
194
224
|
* A dynamic position health previewer for any action
|
|
195
225
|
* @param deposit_ctoken - Deposit side ctoken
|
|
@@ -239,7 +269,15 @@ export declare class Market {
|
|
|
239
269
|
* @param borrowAssets - Amount of assets being borrowed
|
|
240
270
|
* @returns An object containing the hypothetical liquidity values
|
|
241
271
|
*/
|
|
242
|
-
hypotheticalLiquidityOf(account: address, cTokenModified?: address, redemptionShares?: bigint, borrowAssets?: bigint): Promise<
|
|
272
|
+
hypotheticalLiquidityOf(account: address, cTokenModified?: address, redemptionShares?: bigint, borrowAssets?: bigint, bufferTime?: bigint): Promise<{
|
|
273
|
+
collateral: bigint;
|
|
274
|
+
maxDebt: bigint;
|
|
275
|
+
debt: bigint;
|
|
276
|
+
collateralSurplus: bigint;
|
|
277
|
+
liquidityDeficit: bigint;
|
|
278
|
+
loanSizeError: boolean;
|
|
279
|
+
oracleError: boolean;
|
|
280
|
+
}>;
|
|
243
281
|
/**
|
|
244
282
|
* Fetch the expiration date of a user's cooldown period
|
|
245
283
|
* @param account - The user's account address
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Market.d.ts","sourceRoot":"","sources":["../../src/classes/Market.ts"],"names":[],"mappings":"AAAA,OAAO,
|
|
1
|
+
{"version":3,"file":"Market.d.ts","sourceRoot":"","sources":["../../src/classes/Market.ts"],"names":[],"mappings":"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"}
|