curvance 5.2.4 → 5.3.1
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 +1 -4
- package/dist/abis/Optimizer.json +484 -0
- package/dist/abis/OptimizerReader.json +4 -96
- package/dist/chains/monad.d.ts.map +1 -1
- package/dist/chains/monad.js +1 -0
- package/dist/chains/monad.js.map +1 -1
- package/dist/classes/Optimizer.d.ts +31 -0
- package/dist/classes/Optimizer.d.ts.map +1 -0
- package/dist/classes/Optimizer.js +81 -0
- package/dist/classes/Optimizer.js.map +1 -0
- package/dist/classes/OptimizerReader.d.ts +11 -12
- package/dist/classes/OptimizerReader.d.ts.map +1 -1
- package/dist/classes/OptimizerReader.js +38 -76
- package/dist/classes/OptimizerReader.js.map +1 -1
- package/dist/classes/index.d.ts +1 -0
- package/dist/classes/index.d.ts.map +1 -1
- package/dist/classes/index.js +1 -0
- package/dist/classes/index.js.map +1 -1
- package/dist/contracts/index.d.ts +12 -0
- package/dist/contracts/index.d.ts.map +1 -1
- package/dist/contracts/monad-mainnet.json +13 -1
- package/dist/helpers.d.ts +12 -0
- package/dist/helpers.d.ts.map +1 -1
- package/dist/setup.d.ts +3 -0
- package/dist/setup.d.ts.map +1 -1
- package/dist/setup.js +7 -1
- package/dist/setup.js.map +1 -1
- package/package.json +1 -1
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"Optimizer.d.ts","sourceRoot":"","sources":["../../src/classes/Optimizer.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,QAAQ,CAAC;AAClC,OAAO,EAAqC,KAAK,cAAc,EAAE,MAAM,YAAY,CAAC;AACpF,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,UAAU,CAAC;AACpD,OAAO,EAAE,OAAO,EAAE,sBAAsB,EAAE,eAAe,EAAE,MAAM,UAAU,CAAC;AAC5E,OAAO,EAAE,eAAe,EAAE,MAAM,mBAAmB,CAAC;AAEpD,OAAO,EAAE,KAAK,EAAE,MAAM,SAAS,CAAC;AAChC,OAAO,EAAE,aAAa,EAAE,MAAM,iBAAiB,CAAC;AAChD,OAAO,OAAO,MAAM,YAAY,CAAC;AAEjC,MAAM,WAAW,UAAU;IACvB,YAAY,IAAI,OAAO,CAAC,MAAM,CAAC,CAAC;IAChC,KAAK,IAAI,OAAO,CAAC,OAAO,CAAC,CAAC;IAC1B,WAAW,IAAI,OAAO,CAAC,MAAM,CAAC,CAAC;CAClC;AAED,qBAAa,SAAS;IAClB,OAAO,EAAE,OAAO,CAAC;IACjB,QAAQ,EAAE,sBAAsB,CAAC;IACjC,MAAM,EAAE,eAAe,GAAG,IAAI,CAAC;IAC/B,IAAI,EAAE,MAAM,CAAC;IACb,KAAK,EAAE,cAAc,CAAC;IACtB,MAAM,EAAE,eAAe,CAAC;IACxB,QAAQ,EAAE,QAAQ,GAAG,UAAU,CAAC;IAChC,cAAc,EAAE,aAAa,CAAC;gBAG1B,OAAO,EAAE,OAAO,EAChB,MAAM,EAAE,eAAe,GAAG,IAAI,EAC9B,MAAM,EAAE,eAAe,EACvB,IAAI,EAAE,MAAM,EACZ,KAAK,EAAE,cAAc,EACrB,cAAc,EAAE,aAAa;IAY3B,QAAQ,IAAI,OAAO,CAAC,KAAK,CAAC;IAW1B,QAAQ,IAAI,OAAO,CAAC,OAAO,CAAC;IAQ5B,WAAW;IASX,MAAM;IAIZ,MAAM,CAAC,MAAM,CAAC,KAAK,CAAC,EAAE,mBAAmB,EAAE,cAAc,CAAC,EAAE,aAAa,GAAG,SAAS,EAAE;IA2CvF,OAAO,CAAC,MAAM,CAAC,cAAc;CAGhC"}
|
|
@@ -0,0 +1,81 @@
|
|
|
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.Optimizer = void 0;
|
|
7
|
+
const ethers_1 = require("ethers");
|
|
8
|
+
const helpers_1 = require("../helpers");
|
|
9
|
+
const OptimizerReader_1 = require("./OptimizerReader");
|
|
10
|
+
const LendingOptimizer_json_1 = __importDefault(require("../abis/LendingOptimizer.json"));
|
|
11
|
+
const ERC20_1 = require("./ERC20");
|
|
12
|
+
const OracleManager_1 = require("./OracleManager");
|
|
13
|
+
const decimal_js_1 = __importDefault(require("decimal.js"));
|
|
14
|
+
class Optimizer {
|
|
15
|
+
address;
|
|
16
|
+
provider;
|
|
17
|
+
signer;
|
|
18
|
+
name;
|
|
19
|
+
chain;
|
|
20
|
+
reader;
|
|
21
|
+
contract;
|
|
22
|
+
oracle_manager;
|
|
23
|
+
constructor(address, signer, reader, name, chain, oracle_manager) {
|
|
24
|
+
this.address = address;
|
|
25
|
+
this.provider = reader.provider;
|
|
26
|
+
this.signer = signer;
|
|
27
|
+
this.name = name;
|
|
28
|
+
this.chain = chain;
|
|
29
|
+
this.reader = reader;
|
|
30
|
+
this.oracle_manager = oracle_manager;
|
|
31
|
+
this.contract = new ethers_1.Contract(address, LendingOptimizer_json_1.default, signer ?? this.provider);
|
|
32
|
+
}
|
|
33
|
+
async getAsset() {
|
|
34
|
+
const asset_address = await this.contract.asset();
|
|
35
|
+
return new ERC20_1.ERC20(this.provider, asset_address, undefined, this.oracle_manager.address, this.signer);
|
|
36
|
+
}
|
|
37
|
+
async getPrice() {
|
|
38
|
+
const asset = await this.getAsset();
|
|
39
|
+
const price = await this.oracle_manager.getPrice(asset.address, true, false);
|
|
40
|
+
const rate = await this.contract.exchangeRate();
|
|
41
|
+
return (0, decimal_js_1.default)(price.toString()).mul(rate.toString()).div(helpers_1.WAD_DECIMAL).div(helpers_1.WAD_DECIMAL);
|
|
42
|
+
}
|
|
43
|
+
async getDeposits() {
|
|
44
|
+
const price = await this.getPrice();
|
|
45
|
+
const total_supply = await this.contract.totalSupply();
|
|
46
|
+
const asset = await this.getAsset();
|
|
47
|
+
const decimals = await asset.fetchDecimals();
|
|
48
|
+
const normalized_supply = (0, decimal_js_1.default)(total_supply.toString()).div((0, decimal_js_1.default)(10).pow(decimals));
|
|
49
|
+
return normalized_supply.mul(price);
|
|
50
|
+
}
|
|
51
|
+
async getApy() {
|
|
52
|
+
return this.reader.getOptimizerAPY(this.address);
|
|
53
|
+
}
|
|
54
|
+
static getAll(setup, oracle_manager) {
|
|
55
|
+
const resolvedSetup = setup ?? Optimizer.getSetupConfig();
|
|
56
|
+
if (resolvedSetup == undefined) {
|
|
57
|
+
throw new Error("Setup config is not configured for Optimizer.getAll. " +
|
|
58
|
+
"Pass setup context explicitly or initialize setupChain() first.");
|
|
59
|
+
}
|
|
60
|
+
const contracts = (0, helpers_1.getContractAddresses)(resolvedSetup.chain);
|
|
61
|
+
const optimizers = contracts.Optimizers ?? {};
|
|
62
|
+
const optimizerEntries = Object.entries(optimizers);
|
|
63
|
+
if (optimizerEntries.length === 0) {
|
|
64
|
+
return [];
|
|
65
|
+
}
|
|
66
|
+
if (contracts.OptimizerReader == undefined) {
|
|
67
|
+
throw new Error(`Chain configuration for ${resolvedSetup.chain} is missing OptimizerReader address.`);
|
|
68
|
+
}
|
|
69
|
+
if (contracts.OracleManager == undefined) {
|
|
70
|
+
throw new Error(`Chain configuration for ${resolvedSetup.chain} is missing OracleManager address.`);
|
|
71
|
+
}
|
|
72
|
+
const reader = new OptimizerReader_1.OptimizerReader(contracts.OptimizerReader, resolvedSetup.readProvider);
|
|
73
|
+
const resolvedOracleManager = oracle_manager ?? new OracleManager_1.OracleManager(contracts.OracleManager, resolvedSetup.readProvider);
|
|
74
|
+
return optimizerEntries.map(([name, optimizerAddress]) => (new Optimizer(optimizerAddress, resolvedSetup.signer, reader, name, resolvedSetup.chain, resolvedOracleManager)));
|
|
75
|
+
}
|
|
76
|
+
static getSetupConfig() {
|
|
77
|
+
return require("../setup").setup_config;
|
|
78
|
+
}
|
|
79
|
+
}
|
|
80
|
+
exports.Optimizer = Optimizer;
|
|
81
|
+
//# sourceMappingURL=Optimizer.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"Optimizer.js","sourceRoot":"","sources":["../../src/classes/Optimizer.ts"],"names":[],"mappings":"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"}
|
|
@@ -55,14 +55,17 @@ export interface AllocationBound {
|
|
|
55
55
|
minBps: bigint;
|
|
56
56
|
maxBps: bigint;
|
|
57
57
|
}
|
|
58
|
+
type ReaderMethod<TArgs extends unknown[], TResult> = {
|
|
59
|
+
(...args: TArgs): Promise<TResult>;
|
|
60
|
+
staticCall?: (...args: TArgs) => Promise<TResult>;
|
|
61
|
+
};
|
|
58
62
|
export interface IOptimizerReader {
|
|
59
|
-
getOptimizerAPY
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
isBad
|
|
63
|
-
multiIsBadCheck
|
|
64
|
-
optimalRebalance
|
|
65
|
-
optimalRebalanceAt(optimizer: address, slippageBps: bigint, timestamp: bigint): Promise<any>;
|
|
63
|
+
getOptimizerAPY: ReaderMethod<[address], bigint>;
|
|
64
|
+
getOptimizerMarketData: ReaderMethod<[address[]], any[]>;
|
|
65
|
+
getOptimizerUserData: ReaderMethod<[address[], address], any[]>;
|
|
66
|
+
isBad: ReaderMethod<[address], address[]>;
|
|
67
|
+
multiIsBadCheck: ReaderMethod<[address[]], address[][]>;
|
|
68
|
+
optimalRebalance: ReaderMethod<[address, bigint], any>;
|
|
66
69
|
}
|
|
67
70
|
export declare class OptimizerReader {
|
|
68
71
|
provider: curvance_read_provider;
|
|
@@ -80,16 +83,12 @@ export declare class OptimizerReader {
|
|
|
80
83
|
*/
|
|
81
84
|
getOptimizerAPYBreakdown(optimizer: address, markets?: Market[]): Promise<OptimizerAPYBreakdown>;
|
|
82
85
|
getOptimizerUserData(optimizers: address[], account: address): Promise<OptimizerUserData[]>;
|
|
83
|
-
assetsAtTimestamp(account: address, cToken: address, timestamp: bigint): Promise<bigint>;
|
|
84
86
|
isBad(optimizer: address): Promise<address[]>;
|
|
85
87
|
multiIsBadCheck(optimizers: address[]): Promise<address[][]>;
|
|
86
88
|
optimalRebalance(optimizer: address, slippageBps?: bigint): Promise<{
|
|
87
89
|
actions: ReallocationAction[];
|
|
88
90
|
bounds: AllocationBound[];
|
|
89
91
|
}>;
|
|
90
|
-
optimalRebalanceAt(optimizer: address, slippageBps: bigint, timestamp: bigint): Promise<{
|
|
91
|
-
actions: ReallocationAction[];
|
|
92
|
-
bounds: AllocationBound[];
|
|
93
|
-
}>;
|
|
94
92
|
}
|
|
93
|
+
export {};
|
|
95
94
|
//# sourceMappingURL=OptimizerReader.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"OptimizerReader.d.ts","sourceRoot":"","sources":["../../src/classes/OptimizerReader.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,QAAQ,CAAC;AAClC,OAAO,OAAO,MAAM,YAAY,CAAC;AAEjC,OAAO,EAAE,OAAO,EAAE,sBAAsB,EAAE,MAAM,UAAU,CAAC;AAE3D,OAAO,KAAK,EAAE,MAAM,EAAe,MAAM,UAAU,CAAC;
|
|
1
|
+
{"version":3,"file":"OptimizerReader.d.ts","sourceRoot":"","sources":["../../src/classes/OptimizerReader.ts"],"names":[],"mappings":"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"}
|
|
@@ -8,20 +8,6 @@ const ethers_1 = require("ethers");
|
|
|
8
8
|
const decimal_js_1 = __importDefault(require("decimal.js"));
|
|
9
9
|
const OptimizerReader_json_1 = __importDefault(require("../abis/OptimizerReader.json"));
|
|
10
10
|
const helpers_1 = require("../helpers");
|
|
11
|
-
const OPTIMIZER_VIEW_ABI = [
|
|
12
|
-
"function asset() view returns (address)",
|
|
13
|
-
"function totalAssets() view returns (uint256)",
|
|
14
|
-
"function exchangeRate() view returns (uint256)",
|
|
15
|
-
"function exchangeRateHighWatermark() view returns (uint256)",
|
|
16
|
-
"function fee() view returns (uint256)",
|
|
17
|
-
"function getApprovedMarkets() view returns (address[])",
|
|
18
|
-
"function allocationCaps(address cToken) view returns (uint256)",
|
|
19
|
-
];
|
|
20
|
-
const BORROWABLE_CTOKEN_VIEW_ABI = [
|
|
21
|
-
"function balanceOf(address owner) view returns (uint256)",
|
|
22
|
-
"function convertToAssets(uint256 shares) view returns (uint256)",
|
|
23
|
-
"function assetsHeld() view returns (uint256)",
|
|
24
|
-
];
|
|
25
11
|
function resolveDefaultReadProvider() {
|
|
26
12
|
return require("../setup").setup_config?.readProvider;
|
|
27
13
|
}
|
|
@@ -38,9 +24,38 @@ function normalizeAllocationBound(bound) {
|
|
|
38
24
|
maxBps: BigInt(bound.maxBps),
|
|
39
25
|
};
|
|
40
26
|
}
|
|
41
|
-
function
|
|
42
|
-
|
|
43
|
-
|
|
27
|
+
async function staticCallOrCall(method, ...args) {
|
|
28
|
+
return method.staticCall == undefined
|
|
29
|
+
? method(...args)
|
|
30
|
+
: method.staticCall(...args);
|
|
31
|
+
}
|
|
32
|
+
function normalizeOptimizerMarketData(data) {
|
|
33
|
+
const markets = (data.markets ?? data[3] ?? []).map((market) => ({
|
|
34
|
+
address: market._address ?? market[0],
|
|
35
|
+
allocatedAssets: BigInt(market.allocatedAssets ?? market[1]),
|
|
36
|
+
liquidity: BigInt(market.liquidity ?? market[2]),
|
|
37
|
+
allocationCap: BigInt(market.allocationCap ?? market[3]),
|
|
38
|
+
allocationCapUtilizationBps: BigInt(market.allocationCapUtilizationBps ?? market[4]),
|
|
39
|
+
}));
|
|
40
|
+
return {
|
|
41
|
+
address: data._address ?? data[0],
|
|
42
|
+
asset: data.asset ?? data[1],
|
|
43
|
+
totalAssets: BigInt(data.totalAssets ?? data[2]),
|
|
44
|
+
markets,
|
|
45
|
+
totalLiquidity: BigInt(data.totalLiquidity ?? data[4]),
|
|
46
|
+
sharePrice: BigInt(data.sharePrice ?? data[5]),
|
|
47
|
+
exchangeRateHighWatermark: BigInt(data.exchangeRateHighWatermark ?? data[6]),
|
|
48
|
+
performanceFee: BigInt(data.performanceFee ?? data[7]),
|
|
49
|
+
numApprovedMarkets: BigInt(data.numApprovedMarkets ?? data[8]),
|
|
50
|
+
apy: BigInt(data.apy ?? data[9]),
|
|
51
|
+
};
|
|
52
|
+
}
|
|
53
|
+
function normalizeOptimizerUserData(data) {
|
|
54
|
+
return {
|
|
55
|
+
address: data._address ?? data[0],
|
|
56
|
+
shareBalance: BigInt(data.shareBalance ?? data[1]),
|
|
57
|
+
redeemable: BigInt(data.redeemable ?? data[2]),
|
|
58
|
+
};
|
|
44
59
|
}
|
|
45
60
|
function normalizeRebalanceResult(data) {
|
|
46
61
|
const actions = data.actions ?? data[0] ?? [];
|
|
@@ -80,53 +95,11 @@ class OptimizerReader {
|
|
|
80
95
|
this.contract = new ethers_1.Contract(address, OptimizerReader_json_1.default, resolvedProvider);
|
|
81
96
|
}
|
|
82
97
|
async getOptimizerAPY(optimizer) {
|
|
83
|
-
return BigInt(await this.contract.getOptimizerAPY
|
|
98
|
+
return BigInt(await staticCallOrCall(this.contract.getOptimizerAPY, optimizer));
|
|
84
99
|
}
|
|
85
100
|
async getOptimizerMarketData(optimizers) {
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
const [asset, totalAssets, sharePrice, exchangeRateHighWatermark, performanceFee, markets,] = await Promise.all([
|
|
89
|
-
opt.asset(),
|
|
90
|
-
opt.totalAssets(),
|
|
91
|
-
opt.exchangeRate(),
|
|
92
|
-
opt.exchangeRateHighWatermark(),
|
|
93
|
-
opt.fee(),
|
|
94
|
-
opt.getApprovedMarkets(),
|
|
95
|
-
]);
|
|
96
|
-
const totalAssetsBig = BigInt(totalAssets);
|
|
97
|
-
const marketRows = await Promise.all(markets.map(async (market) => {
|
|
98
|
-
const cToken = new ethers_1.Contract(market, BORROWABLE_CTOKEN_VIEW_ABI, this.provider);
|
|
99
|
-
const [shareBalance, allocationCap] = await Promise.all([
|
|
100
|
-
cToken.balanceOf(optimizer),
|
|
101
|
-
opt.allocationCaps(market),
|
|
102
|
-
]);
|
|
103
|
-
const [allocatedAssets, liquidity] = await Promise.all([
|
|
104
|
-
cToken.convertToAssets(shareBalance),
|
|
105
|
-
cToken.assetsHeld(),
|
|
106
|
-
]);
|
|
107
|
-
const allocatedAssetsBig = BigInt(allocatedAssets);
|
|
108
|
-
const allocationCapBig = BigInt(allocationCap);
|
|
109
|
-
return {
|
|
110
|
-
address: market,
|
|
111
|
-
allocatedAssets: allocatedAssetsBig,
|
|
112
|
-
liquidity: BigInt(liquidity),
|
|
113
|
-
allocationCap: allocationCapBig,
|
|
114
|
-
allocationCapUtilizationBps: calculateAllocationCapUtilizationBps(totalAssetsBig, allocatedAssetsBig, allocationCapBig),
|
|
115
|
-
};
|
|
116
|
-
}));
|
|
117
|
-
return {
|
|
118
|
-
address: optimizer,
|
|
119
|
-
asset: asset,
|
|
120
|
-
totalAssets: totalAssetsBig,
|
|
121
|
-
markets: marketRows,
|
|
122
|
-
totalLiquidity: marketRows.reduce((sum, market) => sum + market.liquidity, 0n),
|
|
123
|
-
sharePrice: BigInt(sharePrice),
|
|
124
|
-
exchangeRateHighWatermark: BigInt(exchangeRateHighWatermark),
|
|
125
|
-
performanceFee: BigInt(performanceFee),
|
|
126
|
-
numApprovedMarkets: BigInt(markets.length),
|
|
127
|
-
apy: await this.getOptimizerAPY(optimizer),
|
|
128
|
-
};
|
|
129
|
-
}));
|
|
101
|
+
const data = await staticCallOrCall(this.contract.getOptimizerMarketData, optimizers);
|
|
102
|
+
return data.map((optimizerData) => normalizeOptimizerMarketData(optimizerData));
|
|
130
103
|
}
|
|
131
104
|
/**
|
|
132
105
|
* Returns the optimizer APY model plus weighted Merkl LEND rewards.
|
|
@@ -178,15 +151,8 @@ class OptimizerReader {
|
|
|
178
151
|
};
|
|
179
152
|
}
|
|
180
153
|
async getOptimizerUserData(optimizers, account) {
|
|
181
|
-
const data = await this.contract.getOptimizerUserData
|
|
182
|
-
return data.map((opt) => (
|
|
183
|
-
address: opt._address,
|
|
184
|
-
shareBalance: BigInt(opt.shareBalance),
|
|
185
|
-
redeemable: BigInt(opt.redeemable)
|
|
186
|
-
}));
|
|
187
|
-
}
|
|
188
|
-
async assetsAtTimestamp(account, cToken, timestamp) {
|
|
189
|
-
return BigInt(await this.contract.assetsAtTimestamp(account, cToken, timestamp));
|
|
154
|
+
const data = await staticCallOrCall(this.contract.getOptimizerUserData, optimizers, account);
|
|
155
|
+
return data.map((opt) => normalizeOptimizerUserData(opt));
|
|
190
156
|
}
|
|
191
157
|
async isBad(optimizer) {
|
|
192
158
|
const markets = await this.contract.isBad(optimizer);
|
|
@@ -197,11 +163,7 @@ class OptimizerReader {
|
|
|
197
163
|
return markets.map((row) => row.map((market) => market));
|
|
198
164
|
}
|
|
199
165
|
async optimalRebalance(optimizer, slippageBps = 0n) {
|
|
200
|
-
const data = await this.contract.optimalRebalance
|
|
201
|
-
return normalizeRebalanceResult(data);
|
|
202
|
-
}
|
|
203
|
-
async optimalRebalanceAt(optimizer, slippageBps, timestamp) {
|
|
204
|
-
const data = await this.contract.optimalRebalanceAt(optimizer, slippageBps, timestamp);
|
|
166
|
+
const data = await staticCallOrCall(this.contract.optimalRebalance, optimizer, slippageBps);
|
|
205
167
|
return normalizeRebalanceResult(data);
|
|
206
168
|
}
|
|
207
169
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"OptimizerReader.js","sourceRoot":"","sources":["../../src/classes/OptimizerReader.ts"],"names":[],"mappings":";;;;;;AAAA,mCAAkC;AAClC,4DAAiC;AACjC,wFAA8C;AAE9C,
|
|
1
|
+
{"version":3,"file":"OptimizerReader.js","sourceRoot":"","sources":["../../src/classes/OptimizerReader.ts"],"names":[],"mappings":"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"}
|
package/dist/classes/index.d.ts
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/classes/index.ts"],"names":[],"mappings":"AAAA,cAAc,kBAAkB,CAAC;AACjC,cAAc,mBAAmB,CAAC;AAClC,cAAc,oBAAoB,CAAC;AACnC,cAAc,iBAAiB,CAAC;AAChC,cAAc,OAAO,CAAC;AACtB,cAAc,UAAU,CAAC;AACzB,cAAc,UAAU,CAAC;AACzB,cAAc,SAAS,CAAC;AACxB,cAAc,UAAU,CAAC;AACzB,cAAc,mBAAmB,CAAC;AAClC,cAAc,YAAY,CAAC;AAC3B,cAAc,oBAAoB,CAAC;AACnC,cAAc,eAAe,CAAC;AAC9B,cAAc,mBAAmB,CAAC;AAClC,cAAc,kBAAkB,CAAC;AACjC,OAAO,EAAE,OAAO,IAAI,eAAe,EAAE,MAAM,mBAAmB,CAAC"}
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/classes/index.ts"],"names":[],"mappings":"AAAA,cAAc,kBAAkB,CAAC;AACjC,cAAc,mBAAmB,CAAC;AAClC,cAAc,oBAAoB,CAAC;AACnC,cAAc,aAAa,CAAC;AAC5B,cAAc,iBAAiB,CAAC;AAChC,cAAc,OAAO,CAAC;AACtB,cAAc,UAAU,CAAC;AACzB,cAAc,UAAU,CAAC;AACzB,cAAc,SAAS,CAAC;AACxB,cAAc,UAAU,CAAC;AACzB,cAAc,mBAAmB,CAAC;AAClC,cAAc,YAAY,CAAC;AAC3B,cAAc,oBAAoB,CAAC;AACnC,cAAc,eAAe,CAAC;AAC9B,cAAc,mBAAmB,CAAC;AAClC,cAAc,kBAAkB,CAAC;AACjC,OAAO,EAAE,OAAO,IAAI,eAAe,EAAE,MAAM,mBAAmB,CAAC"}
|
package/dist/classes/index.js
CHANGED
|
@@ -21,6 +21,7 @@ exports.FormatConverter = void 0;
|
|
|
21
21
|
__exportStar(require("./ProtocolReader"), exports);
|
|
22
22
|
__exportStar(require("./OptimizerReader"), exports);
|
|
23
23
|
__exportStar(require("./LendingOptimizer"), exports);
|
|
24
|
+
__exportStar(require("./Optimizer"), exports);
|
|
24
25
|
__exportStar(require("./OracleManager"), exports);
|
|
25
26
|
__exportStar(require("./Api"), exports);
|
|
26
27
|
__exportStar(require("./Market"), exports);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/classes/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;AAAA,mDAAiC;AACjC,oDAAkC;AAClC,qDAAmC;AACnC,kDAAgC;AAChC,wCAAsB;AACtB,2CAAyB;AACzB,2CAAyB;AACzB,0CAAwB;AACxB,2CAAyB;AACzB,oDAAkC;AAClC,6CAA2B;AAC3B,qDAAmC;AACnC,gDAA8B;AAC9B,oDAAkC;AAClC,mDAAiC;AACjC,qDAA+D;AAAtD,mIAAA,OAAO,OAAmB"}
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/classes/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;AAAA,mDAAiC;AACjC,oDAAkC;AAClC,qDAAmC;AACnC,8CAA4B;AAC5B,kDAAgC;AAChC,wCAAsB;AACtB,2CAAyB;AACzB,2CAAyB;AACzB,0CAAwB;AACxB,2CAAyB;AACzB,oDAAkC;AAClC,6CAA2B;AAC3B,qDAAmC;AACnC,gDAA8B;AAC9B,oDAAkC;AAClC,mDAAiC;AACjC,qDAA+D;AAAtD,mIAAA,OAAO,OAAmB"}
|
|
@@ -268,6 +268,17 @@ export declare const chains: {
|
|
|
268
268
|
readonly AUSD: string;
|
|
269
269
|
};
|
|
270
270
|
};
|
|
271
|
+
readonly "PT AUSD 8OCT2026 | AUSD": {
|
|
272
|
+
readonly address: string;
|
|
273
|
+
readonly irms: {
|
|
274
|
+
readonly "PT-AUSD-8OCT2026": string;
|
|
275
|
+
readonly AUSD: string;
|
|
276
|
+
};
|
|
277
|
+
readonly tokens: {
|
|
278
|
+
readonly "PT-AUSD-8OCT2026": string;
|
|
279
|
+
readonly AUSD: string;
|
|
280
|
+
};
|
|
281
|
+
};
|
|
271
282
|
};
|
|
272
283
|
readonly Optimizers: {
|
|
273
284
|
readonly "cAUSD+": string;
|
|
@@ -283,6 +294,7 @@ export declare const chains: {
|
|
|
283
294
|
readonly "VaultAggregator-accNUSD-AUSD": string;
|
|
284
295
|
readonly "ProtocolManagerMassPause-EC": string;
|
|
285
296
|
readonly "ProtocolManagerMassPause-RapidResponse": string;
|
|
297
|
+
readonly "PendlePTAggregator-PT-AUSD-8OCT2026": string;
|
|
286
298
|
readonly oracleMigration: {
|
|
287
299
|
readonly adaptors: {
|
|
288
300
|
readonly ChainlinkAdaptor: string;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/contracts/index.ts"],"names":[],"mappings":"AAIA,eAAO,MAAM,MAAM
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/contracts/index.ts"],"names":[],"mappings":"AAIA,eAAO,MAAM,MAAM;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAGjB,CAAC"}
|
|
@@ -266,6 +266,17 @@
|
|
|
266
266
|
"savUSD": "0x2552232caBd544b67eEa900A951346D3272c7c2f",
|
|
267
267
|
"AUSD": "0xD1BFEA1728ffe98F515f26082fACfcc3341691D4"
|
|
268
268
|
}
|
|
269
|
+
},
|
|
270
|
+
"PT AUSD 8OCT2026 | AUSD": {
|
|
271
|
+
"address": "0xdDd5681fCBB040e3bD3c126AA6caf1677DFCEc2e",
|
|
272
|
+
"irms": {
|
|
273
|
+
"PT-AUSD-8OCT2026": "0xA1Ef78a09f5d718E2459CC98298AD41bf26Ab07b",
|
|
274
|
+
"AUSD": "0xA4dbce4883df78Ad6518738a3D383B827E1cc108"
|
|
275
|
+
},
|
|
276
|
+
"tokens": {
|
|
277
|
+
"PT-AUSD-8OCT2026": "0x6eD14BA7d1Ec30a97E21d0D8037867535BA43bF8",
|
|
278
|
+
"AUSD": "0xbDe2459A033f20442CE18483CDD48643D80C6c93"
|
|
279
|
+
}
|
|
269
280
|
}
|
|
270
281
|
},
|
|
271
282
|
"Optimizers": {
|
|
@@ -281,7 +292,8 @@
|
|
|
281
292
|
"VaultAggregator-AUSD-vUSD": "0x084BC7bE1326Ee1FD5387a4A48fD6999A79BFa8b",
|
|
282
293
|
"VaultAggregator-accNUSD-AUSD": "0xd9b905207d53d521B265330a050F7993F60fEa42",
|
|
283
294
|
"ProtocolManagerMassPause-EC": "0xBB82Aee16936fB2232F3c0d700b6fc832D7Ead73",
|
|
284
|
-
"ProtocolManagerMassPause-RapidResponse": "
|
|
295
|
+
"ProtocolManagerMassPause-RapidResponse": "0x89D2253b13c718d06B78fCcE3d973a520bD07803",
|
|
296
|
+
"PendlePTAggregator-PT-AUSD-8OCT2026": "0x3ED78CA090d4B20aC043505A880A04B0f23B6134",
|
|
285
297
|
"oracleMigration": {
|
|
286
298
|
"adaptors": {
|
|
287
299
|
"ChainlinkAdaptor": "0x42B318abFDE82a43B3685eB65a5863B9367B22e1",
|
package/dist/helpers.d.ts
CHANGED
|
@@ -385,6 +385,17 @@ export declare function getContractAddresses(chain: ChainRpcPrefix): {
|
|
|
385
385
|
readonly AUSD: string;
|
|
386
386
|
};
|
|
387
387
|
};
|
|
388
|
+
readonly "PT AUSD 8OCT2026 | AUSD": {
|
|
389
|
+
readonly address: string;
|
|
390
|
+
readonly irms: {
|
|
391
|
+
readonly "PT-AUSD-8OCT2026": string;
|
|
392
|
+
readonly AUSD: string;
|
|
393
|
+
};
|
|
394
|
+
readonly tokens: {
|
|
395
|
+
readonly "PT-AUSD-8OCT2026": string;
|
|
396
|
+
readonly AUSD: string;
|
|
397
|
+
};
|
|
398
|
+
};
|
|
388
399
|
};
|
|
389
400
|
readonly Optimizers: {
|
|
390
401
|
readonly "cAUSD+": string;
|
|
@@ -400,6 +411,7 @@ export declare function getContractAddresses(chain: ChainRpcPrefix): {
|
|
|
400
411
|
readonly "VaultAggregator-accNUSD-AUSD": string;
|
|
401
412
|
readonly "ProtocolManagerMassPause-EC": string;
|
|
402
413
|
readonly "ProtocolManagerMassPause-RapidResponse": string;
|
|
414
|
+
readonly "PendlePTAggregator-PT-AUSD-8OCT2026": string;
|
|
403
415
|
readonly oracleMigration: {
|
|
404
416
|
readonly adaptors: {
|
|
405
417
|
readonly ChainlinkAdaptor: string;
|
package/dist/helpers.d.ts.map
CHANGED
|
@@ -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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"}
|
package/dist/setup.d.ts
CHANGED
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
import { ChainRpcPrefix, getContractAddresses } from "./helpers";
|
|
2
2
|
import { Market } from "./classes/Market";
|
|
3
|
+
import { Optimizer } from "./classes/Optimizer";
|
|
3
4
|
import { address, curvance_provider, curvance_read_provider, curvance_signer } from './types';
|
|
4
5
|
import { ProtocolReader } from "./classes/ProtocolReader";
|
|
5
6
|
import type { MilestoneResponse } from "./classes/Api";
|
|
@@ -24,6 +25,7 @@ export interface SetupConfigSnapshot {
|
|
|
24
25
|
}
|
|
25
26
|
export declare let setup_config: SetupConfigSnapshot;
|
|
26
27
|
export declare let all_markets: Market[];
|
|
28
|
+
export declare let all_optimizers: Optimizer[];
|
|
27
29
|
export interface SetupChainOptions {
|
|
28
30
|
/** Optional fee policy for SDK-initiated DEX swaps (zaps + leverage).
|
|
29
31
|
* Defaults to the chain's setup-resolved Curvance fee policy. */
|
|
@@ -38,6 +40,7 @@ export interface SetupChainResult {
|
|
|
38
40
|
chainId: number;
|
|
39
41
|
setupConfigSnapshot: Readonly<SetupConfigSnapshot>;
|
|
40
42
|
markets: Market[];
|
|
43
|
+
optimizers: Optimizer[];
|
|
41
44
|
reader: ProtocolReader;
|
|
42
45
|
dexAgg: IDexAgg;
|
|
43
46
|
global_milestone: MilestoneResponse | null;
|
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,cAAc,EAAE,oBAAoB,EAAE,MAAM,WAAW,CAAC;AACjE,OAAO,EAAE,MAAM,EAAE,MAAM,kBAAkB,CAAC;AAC1C,OAAO,EAAE,OAAO,EAAE,iBAAiB,EAAE,sBAAsB,EAAE,eAAe,EAAE,MAAM,SAAS,CAAC;AAC9F,OAAO,EAAE,cAAc,EAAE,MAAM,0BAA0B,CAAC;AAK1D,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,eAAe,CAAC;AAEvD,OAAO,EAAoB,SAAS,EAA2C,MAAM,aAAa,CAAC;AACnG,OAAO,KAAK,OAAO,MAAM,kCAAkC,CAAC;AAE5D,OAAO,EAAc,YAAY,EAAE,MAAM,gBAAgB,CAAC;AAC1D,OAAO,KAAK,EAAE,gBAAgB,EAAE,gBAAgB,EAAE,kBAAkB,EAAE,MAAM,UAAU,CAAC;AAEvF,MAAM,WAAW,mBAAmB;IAChC,KAAK,EAAE,cAAc,CAAC;IACtB,OAAO,EAAE,MAAM,CAAC;IAChB,WAAW,EAAE,gBAAgB,CAAC;IAC9B,MAAM,EAAE,YAAY,CAAC,gBAAgB,CAAC,CAAC;IACvC,QAAQ,EAAE,YAAY,CAAC,kBAAkB,CAAC,CAAC;IAC3C,SAAS,EAAE,YAAY,CAAC,UAAU,CAAC,OAAO,oBAAoB,CAAC,CAAC,CAAC;IACjE,YAAY,EAAE,sBAAsB,CAAC;IACrC,MAAM,EAAE,eAAe,GAAG,IAAI,CAAC;IAC/B,OAAO,EAAE,OAAO,GAAG,IAAI,CAAC;IACxB,sDAAsD;IACtD,QAAQ,EAAE,iBAAiB,CAAC;IAC5B,OAAO,EAAE,MAAM,CAAC;IAChB,SAAS,EAAE,SAAS,CAAC;CACxB;AAED,eAAO,IAAI,YAAY,EAAE,mBAAmB,CAAC;AAE7C,eAAO,IAAI,WAAW,EAAE,MAAM,EAAO,CAAC;
|
|
1
|
+
{"version":3,"file":"setup.d.ts","sourceRoot":"","sources":["../src/setup.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,cAAc,EAAE,oBAAoB,EAAE,MAAM,WAAW,CAAC;AACjE,OAAO,EAAE,MAAM,EAAE,MAAM,kBAAkB,CAAC;AAC1C,OAAO,EAAE,SAAS,EAAE,MAAM,qBAAqB,CAAC;AAChD,OAAO,EAAE,OAAO,EAAE,iBAAiB,EAAE,sBAAsB,EAAE,eAAe,EAAE,MAAM,SAAS,CAAC;AAC9F,OAAO,EAAE,cAAc,EAAE,MAAM,0BAA0B,CAAC;AAK1D,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,eAAe,CAAC;AAEvD,OAAO,EAAoB,SAAS,EAA2C,MAAM,aAAa,CAAC;AACnG,OAAO,KAAK,OAAO,MAAM,kCAAkC,CAAC;AAE5D,OAAO,EAAc,YAAY,EAAE,MAAM,gBAAgB,CAAC;AAC1D,OAAO,KAAK,EAAE,gBAAgB,EAAE,gBAAgB,EAAE,kBAAkB,EAAE,MAAM,UAAU,CAAC;AAEvF,MAAM,WAAW,mBAAmB;IAChC,KAAK,EAAE,cAAc,CAAC;IACtB,OAAO,EAAE,MAAM,CAAC;IAChB,WAAW,EAAE,gBAAgB,CAAC;IAC9B,MAAM,EAAE,YAAY,CAAC,gBAAgB,CAAC,CAAC;IACvC,QAAQ,EAAE,YAAY,CAAC,kBAAkB,CAAC,CAAC;IAC3C,SAAS,EAAE,YAAY,CAAC,UAAU,CAAC,OAAO,oBAAoB,CAAC,CAAC,CAAC;IACjE,YAAY,EAAE,sBAAsB,CAAC;IACrC,MAAM,EAAE,eAAe,GAAG,IAAI,CAAC;IAC/B,OAAO,EAAE,OAAO,GAAG,IAAI,CAAC;IACxB,sDAAsD;IACtD,QAAQ,EAAE,iBAAiB,CAAC;IAC5B,OAAO,EAAE,MAAM,CAAC;IAChB,SAAS,EAAE,SAAS,CAAC;CACxB;AAED,eAAO,IAAI,YAAY,EAAE,mBAAmB,CAAC;AAE7C,eAAO,IAAI,WAAW,EAAE,MAAM,EAAO,CAAC;AACtC,eAAO,IAAI,cAAc,EAAE,SAAS,EAAO,CAAC;AAU5C,MAAM,WAAW,iBAAiB;IAC9B;sEACkE;IAClE,SAAS,CAAC,EAAE,SAAS,CAAC;IACtB,sFAAsF;IACtF,OAAO,CAAC,EAAE,OAAO,GAAG,IAAI,CAAC;IACzB,iDAAiD;IACjD,YAAY,CAAC,EAAE,sBAAsB,GAAG,IAAI,CAAC;CAChD;AAED,MAAM,WAAW,gBAAgB;IAC7B,KAAK,EAAE,cAAc,CAAC;IACtB,OAAO,EAAE,MAAM,CAAC;IAChB,mBAAmB,EAAE,QAAQ,CAAC,mBAAmB,CAAC,CAAC;IACnD,OAAO,EAAE,MAAM,EAAE,CAAC;IAClB,UAAU,EAAE,SAAS,EAAE,CAAC;IACxB,MAAM,EAAE,cAAc,CAAC;IACvB,MAAM,EAAE,OAAO,CAAC;IAChB,gBAAgB,EAAE,iBAAiB,GAAG,IAAI,CAAC;CAC9C;AA4LD,wBAAgB,UAAU,CACtB,KAAK,EAAE,cAAc,EACrB,QAAQ,CAAC,EAAE,iBAAiB,GAAG,IAAI,EACnC,OAAO,CAAC,EAAE,MAAM,EAChB,OAAO,CAAC,EAAE,iBAAiB,GAC5B,OAAO,CAAC,gBAAgB,CAAC,CAAC;AA0J7B,wBAAgB,oBAAoB,CAAC,OAAO,GAAE,MAAM,EAAgB,GAAG,MAAM,EAAE,CAE9E;AAED,wBAAsB,wBAAwB,CAC1C,OAAO,EAAE,OAAO,EAChB,OAAO,GAAE,MAAM,EAAgB,GAChC,OAAO,CAAC,MAAM,EAAE,CAAC,CAGnB;AAED,wBAAsB,gCAAgC,CAClD,OAAO,EAAE,OAAO,EAChB,OAAO,GAAE,MAAM,EAAgB,GAChC,OAAO,CAAC,MAAM,EAAE,CAAC,CAEnB"}
|
package/dist/setup.js
CHANGED
|
@@ -1,12 +1,13 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.all_markets = exports.setup_config = void 0;
|
|
3
|
+
exports.all_optimizers = exports.all_markets = exports.setup_config = void 0;
|
|
4
4
|
exports.setupChain = setupChain;
|
|
5
5
|
exports.getActiveUserMarkets = getActiveUserMarkets;
|
|
6
6
|
exports.refreshActiveUserMarkets = refreshActiveUserMarkets;
|
|
7
7
|
exports.refreshActiveUserMarketSummaries = refreshActiveUserMarketSummaries;
|
|
8
8
|
const helpers_1 = require("./helpers");
|
|
9
9
|
const Market_1 = require("./classes/Market");
|
|
10
|
+
const Optimizer_1 = require("./classes/Optimizer");
|
|
10
11
|
const ProtocolReader_1 = require("./classes/ProtocolReader");
|
|
11
12
|
const OracleManager_1 = require("./classes/OracleManager");
|
|
12
13
|
const retry_provider_1 = require("./retry-provider");
|
|
@@ -16,6 +17,7 @@ const validation_1 = require("./validation");
|
|
|
16
17
|
const feePolicy_1 = require("./feePolicy");
|
|
17
18
|
const immutability_1 = require("./immutability");
|
|
18
19
|
exports.all_markets = [];
|
|
20
|
+
exports.all_optimizers = [];
|
|
19
21
|
let latest_setup_invocation = 0;
|
|
20
22
|
let latest_published_setup_invocation = 0;
|
|
21
23
|
const pending_setup_invocations = new Set();
|
|
@@ -157,6 +159,7 @@ function publishLatestSuccessfulSetup() {
|
|
|
157
159
|
latest_published_setup_invocation = candidateInvocation;
|
|
158
160
|
exports.setup_config = candidate.setupConfig;
|
|
159
161
|
exports.all_markets = candidate.markets;
|
|
162
|
+
exports.all_optimizers = candidate.optimizers;
|
|
160
163
|
for (const invocation of [...successful_setup_results.keys()]) {
|
|
161
164
|
if (invocation <= latest_published_setup_invocation) {
|
|
162
165
|
successful_setup_results.delete(invocation);
|
|
@@ -224,6 +227,7 @@ async function setupChain(chain, provider = null, api_url = "https://api.curvanc
|
|
|
224
227
|
validateCheckerFeePolicy(nextSetupConfig, setupDaoAddress);
|
|
225
228
|
const { milestones, incentives } = await Api_1.Api.getRewards(nextSetupConfig);
|
|
226
229
|
const oracle_manager = new OracleManager_1.OracleManager(nextSetupConfig.contracts.OracleManager, nextSetupConfig.readProvider);
|
|
230
|
+
const optimizers = Optimizer_1.Optimizer.getAll(nextSetupConfig, oracle_manager);
|
|
227
231
|
const markets = await Market_1.Market.getAll(reader, oracle_manager, nextSetupConfig.readProvider, nextSetupConfig.signer, nextSetupConfig.account, milestones, incentives, nextSetupConfig);
|
|
228
232
|
const dexAgg = bindDexAggContext(chains_1.chain_config[chain].dexAgg, {
|
|
229
233
|
markets,
|
|
@@ -240,6 +244,7 @@ async function setupChain(chain, provider = null, api_url = "https://api.curvanc
|
|
|
240
244
|
successful_setup_results.set(setupInvocation, {
|
|
241
245
|
setupConfig: nextSetupConfig,
|
|
242
246
|
markets,
|
|
247
|
+
optimizers,
|
|
243
248
|
});
|
|
244
249
|
publishLatestSuccessfulSetup();
|
|
245
250
|
return {
|
|
@@ -247,6 +252,7 @@ async function setupChain(chain, provider = null, api_url = "https://api.curvanc
|
|
|
247
252
|
chainId: nextSetupConfig.chainId,
|
|
248
253
|
setupConfigSnapshot: nextSetupConfig,
|
|
249
254
|
markets,
|
|
255
|
+
optimizers,
|
|
250
256
|
reader,
|
|
251
257
|
dexAgg,
|
|
252
258
|
global_milestone: milestones['global'] ?? null
|