curvance 1.0.23 → 1.0.25
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/abis/BaseCToken.json +13 -10
- package/dist/abis/BorrowableCToken.json +13 -10
- package/dist/abis/MarketManagerIsolated.json +43 -123
- package/dist/abis/ProtocolReader.json +92 -9
- package/dist/abis/RedstoneCoreAdaptor.json +32 -5
- package/dist/abis/SimpleZapper.json +411 -0
- package/dist/chains/index.d.ts +22 -10
- package/dist/chains/index.d.ts.map +1 -1
- package/dist/chains/monad-testnet.json +83 -71
- package/dist/classes/BorrowableCToken.d.ts +51 -0
- package/dist/classes/BorrowableCToken.d.ts.map +1 -0
- package/dist/classes/BorrowableCToken.js +113 -0
- package/dist/classes/BorrowableCToken.js.map +1 -0
- package/dist/classes/CToken.d.ts +46 -74
- package/dist/classes/CToken.d.ts.map +1 -1
- package/dist/classes/CToken.js +196 -138
- package/dist/classes/CToken.js.map +1 -1
- package/dist/classes/Calldata.d.ts +12 -0
- package/dist/classes/Calldata.d.ts.map +1 -0
- package/dist/classes/Calldata.js +19 -0
- package/dist/classes/Calldata.js.map +1 -0
- package/dist/classes/ERC20.d.ts +3 -3
- package/dist/classes/ERC20.d.ts.map +1 -1
- package/dist/classes/ERC20.js +5 -2
- package/dist/classes/ERC20.js.map +1 -1
- package/dist/classes/Faucet.d.ts +2 -1
- package/dist/classes/Faucet.d.ts.map +1 -1
- package/dist/classes/Faucet.js +11 -1
- package/dist/classes/Faucet.js.map +1 -1
- package/dist/classes/Market.d.ts +107 -13
- package/dist/classes/Market.d.ts.map +1 -1
- package/dist/classes/Market.js +122 -16
- package/dist/classes/Market.js.map +1 -1
- package/dist/classes/OracleManager.d.ts +1 -1
- package/dist/classes/OracleManager.d.ts.map +1 -1
- package/dist/classes/OracleManager.js +2 -1
- package/dist/classes/OracleManager.js.map +1 -1
- package/dist/classes/ProtocolReader.d.ts +21 -20
- package/dist/classes/ProtocolReader.d.ts.map +1 -1
- package/dist/classes/ProtocolReader.js +9 -5
- package/dist/classes/ProtocolReader.js.map +1 -1
- package/dist/classes/Redstone.d.ts +3 -2
- package/dist/classes/Redstone.d.ts.map +1 -1
- package/dist/classes/Redstone.js +3 -3
- package/dist/classes/Redstone.js.map +1 -1
- package/dist/classes/Zapper.d.ts +28 -0
- package/dist/classes/Zapper.d.ts.map +1 -0
- package/dist/classes/Zapper.js +52 -0
- package/dist/classes/Zapper.js.map +1 -0
- package/dist/helpers.d.ts +34 -11
- package/dist/helpers.d.ts.map +1 -1
- package/dist/helpers.js +30 -16
- package/dist/helpers.js.map +1 -1
- package/dist/setup.d.ts +18 -3
- package/dist/setup.d.ts.map +1 -1
- package/dist/setup.js +31 -14
- package/dist/setup.js.map +1 -1
- package/dist/types.d.ts +20 -2
- package/dist/types.d.ts.map +1 -1
- package/package.json +1 -1
|
@@ -1,5 +1,7 @@
|
|
|
1
1
|
import { Contract } from "ethers";
|
|
2
|
-
import { address, curvance_provider } from "../types";
|
|
2
|
+
import { address, curvance_provider, TypeBPS } from "../types";
|
|
3
|
+
import Decimal from "decimal.js";
|
|
4
|
+
import { MarketToken } from "./Market";
|
|
3
5
|
export declare enum AdaptorTypes {
|
|
4
6
|
CHAINLINK = 1,
|
|
5
7
|
REDSTONE_CORE = 2,
|
|
@@ -27,17 +29,17 @@ export interface StaticMarketToken {
|
|
|
27
29
|
collateralCap: bigint;
|
|
28
30
|
debtCap: bigint;
|
|
29
31
|
isListed: boolean;
|
|
30
|
-
collRatio:
|
|
31
|
-
collReqSoft:
|
|
32
|
-
collReqHard:
|
|
33
|
-
liqIncBase:
|
|
34
|
-
liqIncCurve:
|
|
35
|
-
liqIncMin:
|
|
36
|
-
liqIncMax:
|
|
37
|
-
closeFactorBase:
|
|
38
|
-
closeFactorCurve:
|
|
39
|
-
closeFactorMin:
|
|
40
|
-
closeFactorMax:
|
|
32
|
+
collRatio: TypeBPS;
|
|
33
|
+
collReqSoft: TypeBPS;
|
|
34
|
+
collReqHard: TypeBPS;
|
|
35
|
+
liqIncBase: TypeBPS;
|
|
36
|
+
liqIncCurve: TypeBPS;
|
|
37
|
+
liqIncMin: TypeBPS;
|
|
38
|
+
liqIncMax: TypeBPS;
|
|
39
|
+
closeFactorBase: TypeBPS;
|
|
40
|
+
closeFactorCurve: TypeBPS;
|
|
41
|
+
closeFactorMin: TypeBPS;
|
|
42
|
+
closeFactorMax: TypeBPS;
|
|
41
43
|
}
|
|
42
44
|
export interface StaticMarketData {
|
|
43
45
|
address: address;
|
|
@@ -95,16 +97,13 @@ export interface IProtocolReader {
|
|
|
95
97
|
getStaticMarketData(): Promise<StaticMarketData[]>;
|
|
96
98
|
marketMultiCooldown(markets: address[], account: address): Promise<bigint[]>;
|
|
97
99
|
previewAssetImpact(user: address, collateral_ctoken: address, debt_ctoken: address, new_collateral: bigint, new_debt: bigint): Promise<[bigint, bigint]>;
|
|
98
|
-
|
|
99
|
-
maxDebtBorrowable: bigint;
|
|
100
|
-
isOffset: boolean;
|
|
101
|
-
};
|
|
100
|
+
hypotheticalLeverageOf(account: address, depositCToken: address, borrowCToken: address, assets: bigint): [bigint, bigint, bigint, bigint];
|
|
102
101
|
}
|
|
103
102
|
export declare class ProtocolReader {
|
|
104
103
|
provider: curvance_provider;
|
|
105
104
|
address: address;
|
|
106
105
|
contract: Contract & IProtocolReader;
|
|
107
|
-
constructor(
|
|
106
|
+
constructor(address: address, provider?: curvance_provider);
|
|
108
107
|
getAllMarketData(account: address, use_api?: boolean): Promise<{
|
|
109
108
|
staticMarket: StaticMarketData[];
|
|
110
109
|
dynamicMarket: DynamicMarketData[];
|
|
@@ -116,9 +115,11 @@ export declare class ProtocolReader {
|
|
|
116
115
|
supply: bigint;
|
|
117
116
|
borrow: bigint;
|
|
118
117
|
}>;
|
|
119
|
-
|
|
120
|
-
|
|
121
|
-
|
|
118
|
+
hypotheticalLeverageOf(account: address, depositCToken: MarketToken, borrowableCToken: MarketToken, assets: bigint): Promise<{
|
|
119
|
+
currentLeverage: Decimal;
|
|
120
|
+
adjustMaxLeverage: Decimal;
|
|
121
|
+
maxLeverage: Decimal;
|
|
122
|
+
maxDebtBorrowable: Decimal;
|
|
122
123
|
}>;
|
|
123
124
|
marketMultiCooldown(markets: address[], account: address): Promise<bigint[]>;
|
|
124
125
|
getStaticMarketData(use_api?: boolean): Promise<StaticMarketData[]>;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ProtocolReader.d.ts","sourceRoot":"","sources":["../../src/classes/ProtocolReader.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,QAAQ,CAAC;AAGlC,OAAO,EAAE,OAAO,EAAE,iBAAiB,EAAE,MAAM,UAAU,CAAC;
|
|
1
|
+
{"version":3,"file":"ProtocolReader.d.ts","sourceRoot":"","sources":["../../src/classes/ProtocolReader.ts"],"names":[],"mappings":"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"}
|
|
@@ -6,6 +6,8 @@ Object.defineProperty(exports, "__esModule", { value: true });
|
|
|
6
6
|
exports.ProtocolReader = exports.AdaptorTypes = void 0;
|
|
7
7
|
const helpers_1 = require("../helpers");
|
|
8
8
|
const ProtocolReader_json_1 = __importDefault(require("../abis/ProtocolReader.json"));
|
|
9
|
+
const decimal_js_1 = __importDefault(require("decimal.js"));
|
|
10
|
+
const setup_1 = require("../setup");
|
|
9
11
|
var AdaptorTypes;
|
|
10
12
|
(function (AdaptorTypes) {
|
|
11
13
|
AdaptorTypes[AdaptorTypes["CHAINLINK"] = 1] = "CHAINLINK";
|
|
@@ -17,7 +19,7 @@ class ProtocolReader {
|
|
|
17
19
|
provider;
|
|
18
20
|
address;
|
|
19
21
|
contract;
|
|
20
|
-
constructor(
|
|
22
|
+
constructor(address, provider = setup_1.setup_config.provider) {
|
|
21
23
|
this.provider = provider;
|
|
22
24
|
this.address = address;
|
|
23
25
|
this.contract = (0, helpers_1.contractSetup)(provider, address, ProtocolReader_json_1.default);
|
|
@@ -90,11 +92,13 @@ class ProtocolReader {
|
|
|
90
92
|
borrow: BigInt(data[1])
|
|
91
93
|
};
|
|
92
94
|
}
|
|
93
|
-
async
|
|
94
|
-
const
|
|
95
|
+
async hypotheticalLeverageOf(account, depositCToken, borrowableCToken, assets) {
|
|
96
|
+
const [currentLeverage, adjustMaxLeverage, maxLeverage, maxDebtBorrowable] = await this.contract.hypotheticalLeverageOf(account, depositCToken.address, borrowableCToken.address, assets);
|
|
95
97
|
return {
|
|
96
|
-
|
|
97
|
-
|
|
98
|
+
currentLeverage: (0, decimal_js_1.default)(currentLeverage).div(helpers_1.WAD),
|
|
99
|
+
adjustMaxLeverage: (0, decimal_js_1.default)(adjustMaxLeverage).div(helpers_1.WAD),
|
|
100
|
+
maxLeverage: (0, decimal_js_1.default)(maxLeverage).div(helpers_1.WAD),
|
|
101
|
+
maxDebtBorrowable: (0, decimal_js_1.default)(maxDebtBorrowable).div(borrowableCToken.decimals)
|
|
98
102
|
};
|
|
99
103
|
}
|
|
100
104
|
async marketMultiCooldown(markets, account) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ProtocolReader.js","sourceRoot":"","sources":["../../src/classes/ProtocolReader.ts"],"names":[],"mappings":";;;;;;AACA,
|
|
1
|
+
{"version":3,"file":"ProtocolReader.js","sourceRoot":"","sources":["../../src/classes/ProtocolReader.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
import { address, bytes } from "../types";
|
|
2
2
|
import { TransactionResponse } from "ethers";
|
|
3
|
-
import {
|
|
3
|
+
import { MulticallAction } from "./CToken";
|
|
4
|
+
import { MarketToken } from "./Market";
|
|
4
5
|
export interface IRedstoneCoreAdaptor {
|
|
5
6
|
writePrice(asset: address, inUSD: boolean, redstoneTimestamp: bigint): Promise<TransactionResponse>;
|
|
6
7
|
}
|
|
@@ -9,6 +10,6 @@ export declare class Redstone {
|
|
|
9
10
|
payload: bytes;
|
|
10
11
|
timestamp: number;
|
|
11
12
|
}>;
|
|
12
|
-
static
|
|
13
|
+
static buildMultiCallAction(ctoken: MarketToken): Promise<MulticallAction>;
|
|
13
14
|
}
|
|
14
15
|
//# sourceMappingURL=Redstone.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Redstone.d.ts","sourceRoot":"","sources":["../../src/classes/Redstone.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,OAAO,EAAE,KAAK,EAAE,MAAM,UAAU,CAAC;
|
|
1
|
+
{"version":3,"file":"Redstone.d.ts","sourceRoot":"","sources":["../../src/classes/Redstone.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,OAAO,EAAE,KAAK,EAAE,MAAM,UAAU,CAAC;AAE1C,OAAO,EAAkB,mBAAmB,EAAE,MAAM,QAAQ,CAAC;AAC7D,OAAO,EAAU,eAAe,EAAE,MAAM,UAAU,CAAC;AAGnD,OAAO,EAAE,WAAW,EAAE,MAAM,UAAU,CAAC;AAEvC,MAAM,WAAW,oBAAoB;IACjC,UAAU,CAAC,KAAK,EAAE,OAAO,EAAE,KAAK,EAAE,OAAO,EAAE,iBAAiB,EAAE,MAAM,GAAG,OAAO,CAAC,mBAAmB,CAAC,CAAC;CACvG;AAED,qBAAa,QAAQ;WACJ,UAAU,CAAC,MAAM,EAAE,MAAM,EAAE,GAAG,GAAE,OAAe;iBAyBzB,KAAK;;;WAM3B,oBAAoB,CAAC,MAAM,EAAE,WAAW;CAkBxD"}
|
package/dist/classes/Redstone.js
CHANGED
|
@@ -5,10 +5,10 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
|
5
5
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
6
|
exports.Redstone = void 0;
|
|
7
7
|
const sdk_1 = require("@redstone-finance/sdk");
|
|
8
|
-
const setup_1 = require("../setup");
|
|
9
8
|
const helpers_1 = require("../helpers");
|
|
10
9
|
const ethers_1 = require("ethers");
|
|
11
10
|
const RedstoneCoreAdaptor_json_1 = __importDefault(require("../abis/RedstoneCoreAdaptor.json"));
|
|
11
|
+
const setup_1 = require("../setup");
|
|
12
12
|
class Redstone {
|
|
13
13
|
static async getPayload(symbol, log = false) {
|
|
14
14
|
let payload_params = {
|
|
@@ -36,8 +36,8 @@ class Redstone {
|
|
|
36
36
|
timestamp
|
|
37
37
|
};
|
|
38
38
|
}
|
|
39
|
-
static async
|
|
40
|
-
const adaptor = setup_1.
|
|
39
|
+
static async buildMultiCallAction(ctoken) {
|
|
40
|
+
const adaptor = setup_1.setup_config.contracts.RedstoneCoreAdaptor;
|
|
41
41
|
const contract = (0, helpers_1.contractSetup)(ctoken.provider, adaptor, RedstoneCoreAdaptor_json_1.default);
|
|
42
42
|
const { payload, timestamp } = await Redstone.getPayload(ctoken.asset.symbol);
|
|
43
43
|
const writePrice = contract.interface.encodeFunctionData("writePrice", [
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Redstone.js","sourceRoot":"","sources":["../../src/classes/Redstone.ts"],"names":[],"mappings":";;;;;;AAAA,+CAA+G;AAE/G,
|
|
1
|
+
{"version":3,"file":"Redstone.js","sourceRoot":"","sources":["../../src/classes/Redstone.ts"],"names":[],"mappings":";;;;;;AAAA,+CAA+G;AAE/G,wCAA2C;AAC3C,mCAA6D;AAE7D,gGAAmD;AACnD,oCAAwC;AAOxC,MAAa,QAAQ;IACjB,MAAM,CAAC,KAAK,CAAC,UAAU,CAAC,MAAc,EAAE,MAAe,KAAK;QACxD,IAAI,cAAc,GAAG;YACjB,aAAa,EAAE,uBAAuB;YACtC,eAAe,EAAE,CAAC,MAAM,CAAC;YACzB,kBAAkB,EAAE,CAAC;YACrB,iBAAiB,EAAE;gBACf,4CAA4C;gBAC5C,4CAA4C;gBAC5C,4CAA4C;gBAC5C,4CAA4C;aAC/C;SACJ,CAAC;QAEF,MAAM,QAAQ,GAAG,MAAM,IAAA,yBAAmB,EAAC,cAAc,CAAC,CAAC;QAC3D,MAAM,CAAC,OAAO,EAAE,SAAS,CAAC,GAAG,MAAM,OAAO,CAAC,GAAG,CAAC;YAC3C,IAAA,iCAA2B,EAAC,QAAQ,CAAC;YACrC,IAAA,0BAAoB,EAAC,QAAQ,CAAC;SACjC,CAAC,CAAC;QAEH,IAAG,GAAG,EAAE,CAAC;YACL,MAAM,IAAI,GAAG,MAAM,IAAA,iCAA2B,EAAC,QAAQ,EAAE,MAAM,CAAC,CAAC;YACjE,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;QACtB,CAAC;QAED,OAAO;YACH,OAAO,EAAE,KAAK,OAAO,EAAW;YAChC,SAAS;SACZ,CAAC;IAEN,CAAC;IAED,MAAM,CAAC,KAAK,CAAC,oBAAoB,CAAC,MAAmB;QACjD,MAAM,OAAO,GAAG,oBAAY,CAAC,SAAS,CAAC,mBAA8B,CAAC;QACtE,MAAM,QAAQ,GAAG,IAAA,uBAAa,EAAuB,MAAM,CAAC,QAAQ,EAAE,OAAO,EAAE,kCAAG,CAAC,CAAC;QACpF,MAAM,EAAE,OAAO,EAAE,SAAS,EAAE,GAAG,MAAM,QAAQ,CAAC,UAAU,CAAC,MAAM,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC;QAE9E,MAAM,UAAU,GAAG,QAAQ,CAAC,SAAS,CAAC,kBAAkB,CAAC,YAAY,EAAE;YACnE,MAAM,CAAC,KAAK,CAAC,OAAO;YACpB,IAAI;YACJ,SAAS;SACZ,CAAC,CAAC;QACH,MAAM,iBAAiB,GAAG,IAAA,uBAAc,EAAC,CAAC,OAAO,EAAE,OAAO,CAAC,EAAE,CAAC,UAAU,EAAE,OAAO,CAAC,CAAC,CAAC;QAEpF,OAAO;YACH,MAAM,EAAE,OAAO;YACf,aAAa,EAAE,IAAI;YACnB,IAAI,EAAE,iBAAiB;SACP,CAAC;IACzB,CAAC;CACJ;AAlDD,4BAkDC"}
|
|
@@ -0,0 +1,28 @@
|
|
|
1
|
+
import { Contract, TransactionResponse } from "ethers";
|
|
2
|
+
import { address, bytes, curvance_signer } from "../types";
|
|
3
|
+
import { CToken } from "./CToken";
|
|
4
|
+
import { Calldata } from "./Calldata";
|
|
5
|
+
import { Plugins } from "./Market";
|
|
6
|
+
export interface Swap {
|
|
7
|
+
inputToken: address;
|
|
8
|
+
inputAmount: bigint;
|
|
9
|
+
outputToken: address;
|
|
10
|
+
target: address;
|
|
11
|
+
slippage: bigint;
|
|
12
|
+
call: bytes;
|
|
13
|
+
}
|
|
14
|
+
export type ZapperTypes = 'none' | 'native-vault' | 'vault' | 'simple';
|
|
15
|
+
export declare const zapperTypeToName: Map<ZapperTypes, keyof Plugins>;
|
|
16
|
+
export interface IZapper {
|
|
17
|
+
swapAndDeposit(ctoken: address, depositAsWrappedNative: boolean, swapAction: Swap, expectedShares: bigint, collateralizeFor: boolean, receiver: address): Promise<TransactionResponse>;
|
|
18
|
+
}
|
|
19
|
+
export declare class Zapper extends Calldata<IZapper> {
|
|
20
|
+
provider: curvance_signer;
|
|
21
|
+
contract: Contract & IZapper;
|
|
22
|
+
address: address;
|
|
23
|
+
type: ZapperTypes;
|
|
24
|
+
constructor(address: address, provider: curvance_signer, type: ZapperTypes);
|
|
25
|
+
nativeZap(ctoken: CToken, amount: bigint, collateralize: boolean): Promise<TransactionResponse>;
|
|
26
|
+
getNativeZapCalldata(ctoken: CToken, amount: bigint, collateralize: boolean): `0x${string}`;
|
|
27
|
+
}
|
|
28
|
+
//# sourceMappingURL=Zapper.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"Zapper.d.ts","sourceRoot":"","sources":["../../src/classes/Zapper.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAK,mBAAmB,EAAE,MAAM,QAAQ,CAAC;AAC1D,OAAO,EAAE,OAAO,EAAE,KAAK,EAAE,eAAe,EAAE,MAAM,UAAU,CAAC;AAE3D,OAAO,EAAE,MAAM,EAAE,MAAM,UAAU,CAAC;AAClC,OAAO,EAAE,QAAQ,EAAE,MAAM,YAAY,CAAC;AAEtC,OAAO,EAAE,OAAO,EAAE,MAAM,UAAU,CAAC;AAEnC,MAAM,WAAW,IAAI;IACjB,UAAU,EAAE,OAAO,CAAC;IACpB,WAAW,EAAE,MAAM,CAAC;IACpB,WAAW,EAAE,OAAO,CAAC;IACrB,MAAM,EAAE,OAAO,CAAC;IAChB,QAAQ,EAAE,MAAM,CAAC;IACjB,IAAI,EAAE,KAAK,CAAA;CACd;AAED,MAAM,MAAM,WAAW,GAAG,MAAM,GAAG,cAAc,GAAG,OAAO,GAAG,QAAQ,CAAC;AAEvE,eAAO,MAAM,gBAAgB,iCAI3B,CAAC;AAEH,MAAM,WAAW,OAAO;IACpB,cAAc,CACV,MAAM,EAAE,OAAO,EACf,sBAAsB,EAAE,OAAO,EAC/B,UAAU,EAAE,IAAI,EAChB,cAAc,EAAE,MAAM,EACtB,gBAAgB,EAAE,OAAO,EACzB,QAAQ,EAAE,OAAO,GAClB,OAAO,CAAC,mBAAmB,CAAC,CAAA;CAClC;AAED,qBAAa,MAAO,SAAQ,QAAQ,CAAC,OAAO,CAAC;IACzC,QAAQ,EAAE,eAAe,CAAC;IAC1B,QAAQ,EAAE,QAAQ,GAAG,OAAO,CAAC;IAC7B,OAAO,EAAE,OAAO,CAAC;IACjB,IAAI,EAAE,WAAW,CAAC;gBAEN,OAAO,EAAE,OAAO,EAAE,QAAQ,EAAE,eAAe,EAAE,IAAI,EAAE,WAAW;IAQpE,SAAS,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,aAAa,EAAE,OAAO;IAKtE,oBAAoB,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,aAAa,EAAE,OAAO;CAmB9E"}
|
|
@@ -0,0 +1,52 @@
|
|
|
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.Zapper = exports.zapperTypeToName = void 0;
|
|
7
|
+
const helpers_1 = require("../helpers");
|
|
8
|
+
const Calldata_1 = require("./Calldata");
|
|
9
|
+
const SimpleZapper_json_1 = __importDefault(require("../abis/SimpleZapper.json"));
|
|
10
|
+
;
|
|
11
|
+
exports.zapperTypeToName = new Map([
|
|
12
|
+
['native-vault', 'nativeVaultZapper'],
|
|
13
|
+
['vault', 'vaultZapper'],
|
|
14
|
+
['simple', 'simpleZapper']
|
|
15
|
+
]);
|
|
16
|
+
class Zapper extends Calldata_1.Calldata {
|
|
17
|
+
provider;
|
|
18
|
+
contract;
|
|
19
|
+
address;
|
|
20
|
+
type;
|
|
21
|
+
constructor(address, provider, type) {
|
|
22
|
+
super();
|
|
23
|
+
this.address = address;
|
|
24
|
+
this.provider = provider;
|
|
25
|
+
this.type = type;
|
|
26
|
+
this.contract = (0, helpers_1.contractSetup)(provider, address, SimpleZapper_json_1.default);
|
|
27
|
+
}
|
|
28
|
+
async nativeZap(ctoken, amount, collateralize) {
|
|
29
|
+
const calldata = this.getNativeZapCalldata(ctoken, amount, collateralize);
|
|
30
|
+
return this.executeCallData(calldata, { value: amount });
|
|
31
|
+
}
|
|
32
|
+
getNativeZapCalldata(ctoken, amount, collateralize) {
|
|
33
|
+
const swap = {
|
|
34
|
+
inputToken: helpers_1.NATIVE_ADDRESS,
|
|
35
|
+
inputAmount: amount,
|
|
36
|
+
outputToken: helpers_1.NATIVE_ADDRESS,
|
|
37
|
+
target: helpers_1.EMPTY_ADDRESS,
|
|
38
|
+
slippage: 0n,
|
|
39
|
+
call: helpers_1.EMPTY_BYTES
|
|
40
|
+
};
|
|
41
|
+
return this.getCallData("swapAndDeposit", [
|
|
42
|
+
ctoken.address,
|
|
43
|
+
false,
|
|
44
|
+
swap,
|
|
45
|
+
0n,
|
|
46
|
+
collateralize,
|
|
47
|
+
this.provider.address
|
|
48
|
+
]);
|
|
49
|
+
}
|
|
50
|
+
}
|
|
51
|
+
exports.Zapper = Zapper;
|
|
52
|
+
//# sourceMappingURL=Zapper.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"Zapper.js","sourceRoot":"","sources":["../../src/classes/Zapper.ts"],"names":[],"mappings":";;;;;;AAEA,wCAAuF;AAEvF,yCAAsC;AACtC,kFAA4C;AAU3C,CAAC;AAIW,QAAA,gBAAgB,GAAG,IAAI,GAAG,CAA6B;IAChE,CAAC,cAAc,EAAE,mBAAmB,CAAC;IACrC,CAAC,OAAO,EAAE,aAAa,CAAC;IACxB,CAAC,QAAQ,EAAE,cAAc,CAAC;CAC7B,CAAC,CAAC;AAaH,MAAa,MAAO,SAAQ,mBAAiB;IACzC,QAAQ,CAAkB;IAC1B,QAAQ,CAAqB;IAC7B,OAAO,CAAU;IACjB,IAAI,CAAc;IAElB,YAAY,OAAgB,EAAE,QAAyB,EAAE,IAAiB;QACtE,KAAK,EAAE,CAAC;QACR,IAAI,CAAC,OAAO,GAAG,OAAO,CAAC;QACvB,IAAI,CAAC,QAAQ,GAAG,QAAQ,CAAC;QACzB,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC;QACjB,IAAI,CAAC,QAAQ,GAAG,IAAA,uBAAa,EAAU,QAAQ,EAAE,OAAO,EAAE,2BAAG,CAAC,CAAC;IACnE,CAAC;IAED,KAAK,CAAC,SAAS,CAAC,MAAc,EAAE,MAAc,EAAE,aAAsB;QAClE,MAAM,QAAQ,GAAG,IAAI,CAAC,oBAAoB,CAAC,MAAM,EAAE,MAAM,EAAE,aAAa,CAAC,CAAC;QAC1E,OAAO,IAAI,CAAC,eAAe,CAAC,QAAQ,EAAE,EAAE,KAAK,EAAE,MAAM,EAAE,CAAC,CAAC;IAC7D,CAAC;IAED,oBAAoB,CAAC,MAAc,EAAE,MAAc,EAAE,aAAsB;QACvE,MAAM,IAAI,GAAS;YACf,UAAU,EAAE,wBAAc;YAC1B,WAAW,EAAE,MAAM;YACnB,WAAW,EAAE,wBAAc;YAC3B,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,KAAK;YACL,IAAI;YACJ,EAAE;YACF,aAAa;YACb,IAAI,CAAC,QAAQ,CAAC,OAAkB;SACnC,CAAC,CAAC;IACP,CAAC;CACJ;AAtCD,wBAsCC"}
|
package/dist/helpers.d.ts
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { Contract } from "ethers";
|
|
2
2
|
import { Decimal } from "decimal.js";
|
|
3
|
-
import { address, curvance_provider, curvance_signer } from "./types";
|
|
3
|
+
import { address, bytes, curvance_provider, curvance_signer } from "./types";
|
|
4
4
|
import { chains } from "./chains";
|
|
5
5
|
export type ChangeRate = "year" | "month" | "week" | "day";
|
|
6
6
|
export type ChainRpcPrefix = keyof typeof chains;
|
|
@@ -17,10 +17,21 @@ export declare const SECONDS_PER_MONTH = 2592000n;
|
|
|
17
17
|
export declare const SECONDS_PER_WEEK = 604800n;
|
|
18
18
|
export declare const SECONDS_PER_DAY = 86400n;
|
|
19
19
|
export declare const UINT256_MAX = 115792089237316195423570985008687907853269984665640564039457584007913129639935n;
|
|
20
|
+
export declare const UINT256_MAX_DECIMAL: Decimal;
|
|
20
21
|
export declare const EMPTY_ADDRESS: address;
|
|
22
|
+
export declare const NATIVE_ADDRESS: address;
|
|
23
|
+
export declare const EMPTY_BYTES: bytes;
|
|
21
24
|
export declare function getRateSeconds(rate: ChangeRate): bigint;
|
|
22
25
|
export declare function toDecimal(value: bigint, decimals: bigint): Decimal;
|
|
23
26
|
export declare function toBigInt(value: number, decimals: bigint): bigint;
|
|
27
|
+
export declare function getChainConfig(): {
|
|
28
|
+
provider: import("ethers").JsonRpcProvider;
|
|
29
|
+
wrapped_native: address;
|
|
30
|
+
vaults: {
|
|
31
|
+
name: string;
|
|
32
|
+
contract: address;
|
|
33
|
+
}[];
|
|
34
|
+
};
|
|
24
35
|
export declare function validateProviderAsSigner(provider: curvance_provider): curvance_signer;
|
|
25
36
|
export declare function contractSetup<I>(provider: curvance_provider, contractAddress: address, abi: any): Contract & I;
|
|
26
37
|
export declare function getContractAddresses(chain: ChainRpcPrefix): {
|
|
@@ -91,42 +102,54 @@ export declare function getContractAddresses(chain: ChainRpcPrefix): {
|
|
|
91
102
|
"Apriori (aprMON) / wMON": {
|
|
92
103
|
address: string;
|
|
93
104
|
isMarket: boolean;
|
|
105
|
+
plugins: {
|
|
106
|
+
nativeVaultPositionManager: string;
|
|
107
|
+
nativeVaultZapper: string;
|
|
108
|
+
};
|
|
94
109
|
"aprMON-DynamicIRM": string;
|
|
95
110
|
tokens: {
|
|
96
111
|
aprMON: string;
|
|
97
112
|
WMON: string;
|
|
98
113
|
};
|
|
99
|
-
"WMON-DynamicIRM": string;
|
|
100
114
|
};
|
|
101
115
|
"Fastlane (shMON) / wMON": {
|
|
102
116
|
address: string;
|
|
103
117
|
isMarket: boolean;
|
|
118
|
+
plugins: {
|
|
119
|
+
nativeVaultPositionManager: string;
|
|
120
|
+
nativeVaultZapper: string;
|
|
121
|
+
};
|
|
104
122
|
"shMON-DynamicIRM": string;
|
|
105
123
|
tokens: {
|
|
106
124
|
shMON: string;
|
|
107
125
|
WMON: string;
|
|
108
126
|
};
|
|
109
|
-
"WMON-DynamicIRM": string;
|
|
110
127
|
};
|
|
111
|
-
"
|
|
128
|
+
"Kintsu (sMON) / wMON": {
|
|
112
129
|
address: string;
|
|
113
130
|
isMarket: boolean;
|
|
114
|
-
|
|
131
|
+
plugins: {
|
|
132
|
+
nativeVaultPositionManager: string;
|
|
133
|
+
nativeVaultZapper: string;
|
|
134
|
+
};
|
|
135
|
+
"sMON-DynamicIRM": string;
|
|
115
136
|
tokens: {
|
|
116
|
-
|
|
137
|
+
sMON: string;
|
|
117
138
|
WMON: string;
|
|
118
139
|
};
|
|
119
|
-
"WMON-DynamicIRM": string;
|
|
120
140
|
};
|
|
121
|
-
"
|
|
141
|
+
"Magma (gMON) / wMON": {
|
|
122
142
|
address: string;
|
|
123
143
|
isMarket: boolean;
|
|
124
|
-
|
|
144
|
+
plugins: {
|
|
145
|
+
nativeVaultPositionManager: string;
|
|
146
|
+
nativeVaultZapper: string;
|
|
147
|
+
};
|
|
148
|
+
"gMON-DynamicIRM": string;
|
|
125
149
|
tokens: {
|
|
126
|
-
|
|
150
|
+
gMON: string;
|
|
127
151
|
WMON: string;
|
|
128
152
|
};
|
|
129
|
-
"WMON-DynamicIRM": string;
|
|
130
153
|
};
|
|
131
154
|
ProtocolReader: string;
|
|
132
155
|
};
|
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,iBAAiB,EAAE,eAAe,EAAE,MAAM,SAAS,CAAC;
|
|
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,MAAM,SAAS,CAAC;AAC7E,OAAO,EAAE,MAAM,EAAE,MAAM,UAAU,CAAC;AAGlC,MAAM,MAAM,UAAU,GAAG,MAAM,GAAG,OAAO,GAAG,MAAM,GAAG,KAAK,CAAC;AAC3D,MAAM,MAAM,cAAc,GAAG,MAAM,OAAO,MAAM,CAAC;AAEjD,eAAO,MAAM,GAAG,QAAc,CAAC;AAC/B,eAAO,MAAM,WAAW,QAAc,CAAC;AACvC,eAAO,MAAM,GAAG,QAAe,CAAC;AAChC,eAAO,MAAM,OAAO,QAAe,CAAC;AACpC,eAAO,MAAM,GAAG,QAAe,CAAC;AAChC,eAAO,MAAM,WAAW,QAAe,CAAC;AACxC,eAAO,MAAM,oBAAoB,QAAe,CAAC;AACjD,eAAO,MAAM,WAAW,SAAmB,CAAC;AAE5C,eAAO,MAAM,gBAAgB,YAAc,CAAC;AAC5C,eAAO,MAAM,iBAAiB,WAAa,CAAC;AAC5C,eAAO,MAAM,gBAAgB,UAAW,CAAC;AACzC,eAAO,MAAM,eAAe,SAAU,CAAA;AAEtC,eAAO,MAAM,WAAW,kFAAkF,CAAC;AAC3G,eAAO,MAAM,mBAAmB,SAAuB,CAAC;AACxD,eAAO,MAAM,aAAa,EAAmD,OAAO,CAAC;AACrF,eAAO,MAAM,cAAc,EAAmD,OAAO,CAAC;AACtF,eAAO,MAAM,WAAW,EAAW,KAAK,CAAC;AAEzC,wBAAgB,cAAc,CAAC,IAAI,EAAE,UAAU,GAAG,MAAM,CAavD;AAED,wBAAgB,SAAS,CAAC,KAAK,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,GAAG,OAAO,CAElE;AAED,wBAAgB,QAAQ,CAAC,KAAK,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,GAAG,MAAM,CAEhE;AAED,wBAAgB,cAAc;;;;;;;EAO7B;AAED,wBAAgB,wBAAwB,CAAC,QAAQ,EAAE,iBAAiB,GAO7C,eAAe,CACrC;AAED,wBAAgB,aAAa,CAAC,CAAC,EAAE,QAAQ,EAAE,iBAAiB,EAAE,eAAe,EAAE,OAAO,EAAE,GAAG,EAAE,GAAG,GAAG,QAAQ,GAAG,CAAC,CAM9G;AAED,wBAAgB,oBAAoB,CAAC,KAAK,EAAE,cAAc;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAQzD;AAyCD;;;;;;;;;;;;;GAaG;AACH,wBAAgB,qBAAqB,CAAC,CAAC,SAAS,MAAM,EAAE,QAAQ,EAAE,CAAC,EAAE,aAAa,SAAK,GAAG,CAAC,CA0B1F"}
|
package/dist/helpers.js
CHANGED
|
@@ -1,9 +1,10 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.EMPTY_ADDRESS = exports.UINT256_MAX = exports.SECONDS_PER_DAY = exports.SECONDS_PER_WEEK = exports.SECONDS_PER_MONTH = exports.SECONDS_PER_YEAR = exports.WAD_DECIMAL = exports.WAD_CUBED_BPS_OFFSET = exports.WAD_SQUARED = exports.RAY = exports.WAD_BPS = exports.WAD = exports.BPS_SQUARED = exports.BPS = void 0;
|
|
3
|
+
exports.EMPTY_BYTES = exports.NATIVE_ADDRESS = exports.EMPTY_ADDRESS = exports.UINT256_MAX_DECIMAL = exports.UINT256_MAX = exports.SECONDS_PER_DAY = exports.SECONDS_PER_WEEK = exports.SECONDS_PER_MONTH = exports.SECONDS_PER_YEAR = exports.WAD_DECIMAL = exports.WAD_CUBED_BPS_OFFSET = exports.WAD_SQUARED = exports.RAY = exports.WAD_BPS = exports.WAD = exports.BPS_SQUARED = exports.BPS = void 0;
|
|
4
4
|
exports.getRateSeconds = getRateSeconds;
|
|
5
5
|
exports.toDecimal = toDecimal;
|
|
6
6
|
exports.toBigInt = toBigInt;
|
|
7
|
+
exports.getChainConfig = getChainConfig;
|
|
7
8
|
exports.validateProviderAsSigner = validateProviderAsSigner;
|
|
8
9
|
exports.contractSetup = contractSetup;
|
|
9
10
|
exports.getContractAddresses = getContractAddresses;
|
|
@@ -11,6 +12,7 @@ exports.contractWithGasBuffer = contractWithGasBuffer;
|
|
|
11
12
|
const ethers_1 = require("ethers");
|
|
12
13
|
const decimal_js_1 = require("decimal.js");
|
|
13
14
|
const chains_1 = require("./chains");
|
|
15
|
+
const setup_1 = require("./setup");
|
|
14
16
|
exports.BPS = BigInt(1e4);
|
|
15
17
|
exports.BPS_SQUARED = BigInt(1e8);
|
|
16
18
|
exports.WAD = BigInt(1e18);
|
|
@@ -24,7 +26,10 @@ exports.SECONDS_PER_MONTH = 2592000n;
|
|
|
24
26
|
exports.SECONDS_PER_WEEK = 604800n;
|
|
25
27
|
exports.SECONDS_PER_DAY = 86400n;
|
|
26
28
|
exports.UINT256_MAX = 115792089237316195423570985008687907853269984665640564039457584007913129639935n;
|
|
29
|
+
exports.UINT256_MAX_DECIMAL = (0, decimal_js_1.Decimal)(exports.UINT256_MAX);
|
|
27
30
|
exports.EMPTY_ADDRESS = "0x0000000000000000000000000000000000000000";
|
|
31
|
+
exports.NATIVE_ADDRESS = "0xEeeeeEeeeEeEeeEeEeEeeEEEeeeeEeeeeeeeEEeE";
|
|
32
|
+
exports.EMPTY_BYTES = "0x";
|
|
28
33
|
function getRateSeconds(rate) {
|
|
29
34
|
switch (rate) {
|
|
30
35
|
case "year":
|
|
@@ -45,6 +50,14 @@ function toDecimal(value, decimals) {
|
|
|
45
50
|
function toBigInt(value, decimals) {
|
|
46
51
|
return (0, ethers_1.parseUnits)(value.toString(), decimals);
|
|
47
52
|
}
|
|
53
|
+
function getChainConfig() {
|
|
54
|
+
const chain = setup_1.setup_config.chain;
|
|
55
|
+
const config = setup_1.chain_config[chain];
|
|
56
|
+
if (!config) {
|
|
57
|
+
throw new Error(`No configuration found for chain ${chain}`);
|
|
58
|
+
}
|
|
59
|
+
return config;
|
|
60
|
+
}
|
|
48
61
|
function validateProviderAsSigner(provider) {
|
|
49
62
|
const isSigner = "address" in provider;
|
|
50
63
|
if (!isSigner) {
|
|
@@ -94,17 +107,11 @@ async function tryAddGasBuffer(method, args, bufferPercent) {
|
|
|
94
107
|
if (!canEstimateGas(method)) {
|
|
95
108
|
return false;
|
|
96
109
|
}
|
|
97
|
-
|
|
98
|
-
|
|
99
|
-
|
|
100
|
-
|
|
101
|
-
|
|
102
|
-
return true;
|
|
103
|
-
}
|
|
104
|
-
catch (error) {
|
|
105
|
-
// If gas estimation fails, continue without buffer
|
|
106
|
-
return false;
|
|
107
|
-
}
|
|
110
|
+
const estimatedGas = await method.estimateGas(...args);
|
|
111
|
+
const gasLimit = calculateGasWithBuffer(estimatedGas, bufferPercent);
|
|
112
|
+
// Add the gas limit as transaction overrides
|
|
113
|
+
args.push({ gasLimit });
|
|
114
|
+
return true;
|
|
108
115
|
}
|
|
109
116
|
/**
|
|
110
117
|
* Wraps a contract instance so all write actions automatically add a gas buffer.
|
|
@@ -130,10 +137,17 @@ function contractWithGasBuffer(contract, bufferPercent = 10) {
|
|
|
130
137
|
}
|
|
131
138
|
// Return a wrapped version of the method
|
|
132
139
|
return async (...args) => {
|
|
133
|
-
|
|
134
|
-
|
|
135
|
-
|
|
136
|
-
|
|
140
|
+
try {
|
|
141
|
+
// Try to add gas buffer before calling the method
|
|
142
|
+
await tryAddGasBuffer(originalMethod, args, bufferPercent);
|
|
143
|
+
// Call the original method with potentially modified args
|
|
144
|
+
return await originalMethod.apply(target, args);
|
|
145
|
+
}
|
|
146
|
+
catch (error) {
|
|
147
|
+
// Just enhance the original error message with method context
|
|
148
|
+
error.message = `Contract method '${String(methodName)}' failed: ${error.message}`;
|
|
149
|
+
throw error;
|
|
150
|
+
}
|
|
137
151
|
};
|
|
138
152
|
}
|
|
139
153
|
});
|
package/dist/helpers.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"helpers.js","sourceRoot":"","sources":["../src/helpers.ts"],"names":[],"mappings":";;;
|
|
1
|
+
{"version":3,"file":"helpers.js","sourceRoot":"","sources":["../src/helpers.ts"],"names":[],"mappings":"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"}
|
package/dist/setup.d.ts
CHANGED
|
@@ -1,11 +1,26 @@
|
|
|
1
1
|
import { JsonRpcProvider, JsonRpcSigner, Wallet } from "ethers";
|
|
2
2
|
import { ChainRpcPrefix, getContractAddresses } from "./helpers";
|
|
3
3
|
import { Market } from "./classes/Market";
|
|
4
|
+
import { address, curvance_provider } from './types';
|
|
4
5
|
import { ProtocolReader } from "./classes/ProtocolReader";
|
|
5
6
|
import { Faucet } from "./classes/Faucet";
|
|
6
|
-
export declare
|
|
7
|
-
|
|
8
|
-
|
|
7
|
+
export declare let setup_config: {
|
|
8
|
+
chain: ChainRpcPrefix;
|
|
9
|
+
contracts: ReturnType<typeof getContractAddresses>;
|
|
10
|
+
provider: curvance_provider;
|
|
11
|
+
approval_protection: boolean;
|
|
12
|
+
};
|
|
13
|
+
export declare const chain_config: {
|
|
14
|
+
'monad-testnet': {
|
|
15
|
+
provider: JsonRpcProvider;
|
|
16
|
+
wrapped_native: address;
|
|
17
|
+
vaults: {
|
|
18
|
+
name: string;
|
|
19
|
+
contract: address;
|
|
20
|
+
}[];
|
|
21
|
+
};
|
|
22
|
+
};
|
|
23
|
+
export declare function setupChain(chain: ChainRpcPrefix, provider: JsonRpcSigner | Wallet | JsonRpcProvider | null, approval_protection?: boolean): Promise<{
|
|
9
24
|
markets: Market[];
|
|
10
25
|
faucet: Faucet;
|
|
11
26
|
reader: ProtocolReader;
|
package/dist/setup.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"setup.d.ts","sourceRoot":"","sources":["../src/setup.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,eAAe,EAAE,aAAa,EAAE,MAAM,EAAE,MAAM,QAAQ,CAAC;AAChE,OAAO,EAAE,cAAc,EAAE,oBAAoB,EAAE,MAAM,WAAW,CAAC;AACjE,OAAO,EAAE,MAAM,EAAE,MAAM,kBAAkB,CAAC;
|
|
1
|
+
{"version":3,"file":"setup.d.ts","sourceRoot":"","sources":["../src/setup.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,eAAe,EAAE,aAAa,EAAE,MAAM,EAAE,MAAM,QAAQ,CAAC;AAChE,OAAO,EAAE,cAAc,EAAE,oBAAoB,EAAE,MAAM,WAAW,CAAC;AACjE,OAAO,EAAE,MAAM,EAAE,MAAM,kBAAkB,CAAC;AAC1C,OAAO,EAAE,OAAO,EAAE,iBAAiB,EAAE,MAAM,SAAS,CAAC;AACrD,OAAO,EAAE,cAAc,EAAE,MAAM,0BAA0B,CAAC;AAC1D,OAAO,EAAE,MAAM,EAAE,MAAM,kBAAkB,CAAC;AAG1C,eAAO,IAAI,YAAY,EAAE;IACrB,KAAK,EAAE,cAAc,CAAC;IACtB,SAAS,EAAE,UAAU,CAAC,OAAO,oBAAoB,CAAC,CAAC;IACnD,QAAQ,EAAE,iBAAiB,CAAC;IAC5B,mBAAmB,EAAE,OAAO,CAAC;CAChC,CAAC;AAEF,eAAO,MAAM,YAAY;;;wBAG+C,OAAO;;;sBAEU,OAAO;;;CAM/F,CAAC;AAEF,wBAAsB,UAAU,CAAC,KAAK,EAAE,cAAc,EAAE,QAAQ,EAAE,aAAa,GAAG,MAAM,GAAG,eAAe,GAAG,IAAI,EAAE,mBAAmB,GAAE,OAAe;;;;GAiCtJ"}
|
package/dist/setup.js
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.
|
|
3
|
+
exports.chain_config = exports.setup_config = void 0;
|
|
4
4
|
exports.setupChain = setupChain;
|
|
5
5
|
const ethers_1 = require("ethers");
|
|
6
6
|
const helpers_1 = require("./helpers");
|
|
@@ -8,28 +8,45 @@ const Market_1 = require("./classes/Market");
|
|
|
8
8
|
const ProtocolReader_1 = require("./classes/ProtocolReader");
|
|
9
9
|
const Faucet_1 = require("./classes/Faucet");
|
|
10
10
|
const OracleManager_1 = require("./classes/OracleManager");
|
|
11
|
-
exports.
|
|
12
|
-
|
|
11
|
+
exports.chain_config = {
|
|
12
|
+
'monad-testnet': {
|
|
13
|
+
provider: new ethers_1.JsonRpcProvider("https://rpc.ankr.com/monad_testnet"),
|
|
14
|
+
wrapped_native: "0x760AfE86e5de5fa0Ee542fc7B7B713e1c5425701",
|
|
15
|
+
vaults: [
|
|
16
|
+
{ name: "apriori", contract: "0xb2f82D0f38dc453D596Ad40A37799446Cc89274A" },
|
|
17
|
+
{ name: "fast-lane", contract: "0x3a98250F98Dd388C211206983453837C8365BDc1" },
|
|
18
|
+
{ name: "magma", contract: "0xaEef2f6B429Cb59C9B2D7bB2141ADa993E8571c3" },
|
|
19
|
+
{ name: "kintsu", contract: "0xe1d2439b75fb9746E7Bc6cB777Ae10AA7f7ef9c5" }
|
|
20
|
+
]
|
|
21
|
+
}
|
|
13
22
|
};
|
|
14
|
-
async function setupChain(chain,
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
23
|
+
async function setupChain(chain, provider, approval_protection = false) {
|
|
24
|
+
if (!(chain in exports.chain_config)) {
|
|
25
|
+
throw new Error("Chain does not have a corresponding config");
|
|
26
|
+
}
|
|
27
|
+
if (provider == null) {
|
|
28
|
+
provider = exports.chain_config[chain].provider;
|
|
18
29
|
}
|
|
19
|
-
|
|
30
|
+
exports.setup_config = {
|
|
31
|
+
chain,
|
|
32
|
+
provider,
|
|
33
|
+
approval_protection,
|
|
34
|
+
contracts: (0, helpers_1.getContractAddresses)(chain),
|
|
35
|
+
};
|
|
36
|
+
if (!("ProtocolReader" in exports.setup_config.contracts)) {
|
|
20
37
|
throw new Error(`Chain configuration for ${chain} is missing ProtocolReader address.`);
|
|
21
38
|
}
|
|
22
|
-
else if (!("Faucet" in exports.
|
|
39
|
+
else if (!("Faucet" in exports.setup_config.contracts)) {
|
|
23
40
|
throw new Error(`Chain configuration for ${chain} is missing Faucet address.`);
|
|
24
41
|
}
|
|
25
|
-
else if (!("OracleManager" in exports.
|
|
42
|
+
else if (!("OracleManager" in exports.setup_config.contracts)) {
|
|
26
43
|
throw new Error(`Chain configuration for ${chain} is missing OracleManager address.`);
|
|
27
44
|
}
|
|
28
|
-
const reader = new ProtocolReader_1.ProtocolReader(
|
|
29
|
-
const faucet = new Faucet_1.Faucet(
|
|
30
|
-
const oracle_manager = new OracleManager_1.OracleManager(
|
|
45
|
+
const reader = new ProtocolReader_1.ProtocolReader(exports.setup_config.contracts.ProtocolReader);
|
|
46
|
+
const faucet = new Faucet_1.Faucet(exports.setup_config.contracts.Faucet);
|
|
47
|
+
const oracle_manager = new OracleManager_1.OracleManager(exports.setup_config.contracts.OracleManager);
|
|
31
48
|
return {
|
|
32
|
-
markets: await Market_1.Market.getAll(
|
|
49
|
+
markets: await Market_1.Market.getAll(reader, oracle_manager),
|
|
33
50
|
faucet,
|
|
34
51
|
reader,
|
|
35
52
|
};
|