@gearbox-protocol/sdk 7.5.0 → 7.6.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/dist/cjs/sdk/GearboxSDK.js +16 -13
- package/dist/cjs/sdk/router/RouterV310Contract.js +12 -1
- package/dist/esm/sdk/GearboxSDK.js +16 -13
- package/dist/esm/sdk/router/RouterV310Contract.js +12 -1
- package/dist/types/sdk/GearboxSDK.d.ts +3 -2
- package/dist/types/sdk/router/RouterV310Contract.d.ts +5 -0
- package/package.json +1 -1
|
@@ -474,27 +474,30 @@ class GearboxSDK {
|
|
|
474
474
|
return this.#marketRegister;
|
|
475
475
|
}
|
|
476
476
|
/**
|
|
477
|
-
* Returns router contract that will work for given credit manager or credit facade
|
|
477
|
+
* Returns router contract that will work for given credit manager or credit facade, or simply version range
|
|
478
478
|
* @param params
|
|
479
479
|
* @returns
|
|
480
480
|
*/
|
|
481
481
|
routerFor(params) {
|
|
482
|
-
let
|
|
483
|
-
if (
|
|
484
|
-
|
|
482
|
+
let routerRange;
|
|
483
|
+
if (Array.isArray(params)) {
|
|
484
|
+
routerRange = params;
|
|
485
485
|
} else {
|
|
486
|
-
|
|
487
|
-
|
|
488
|
-
|
|
489
|
-
|
|
486
|
+
let facadeAddr;
|
|
487
|
+
if ("creditFacade" in params) {
|
|
488
|
+
facadeAddr = (0, import_utils.toAddress)(params.creditFacade);
|
|
489
|
+
} else {
|
|
490
|
+
const cm = this.marketRegister.findCreditManager(
|
|
491
|
+
(0, import_utils.toAddress)(params.creditManager)
|
|
492
|
+
);
|
|
493
|
+
facadeAddr = cm.creditFacade.address;
|
|
494
|
+
}
|
|
495
|
+
const facadeV = this.contracts.mustGet(facadeAddr).version;
|
|
496
|
+
routerRange = (0, import_constants.isV310)(facadeV) ? import_constants.VERSION_RANGE_310 : import_constants.VERSION_RANGE_300;
|
|
490
497
|
}
|
|
491
|
-
const facadeV = this.contracts.mustGet(facadeAddr).version;
|
|
492
|
-
const routerRange = (0, import_constants.isV310)(facadeV) ? import_constants.VERSION_RANGE_310 : import_constants.VERSION_RANGE_300;
|
|
493
498
|
const routerEntry = this.addressProvider.getLatest(import_constants.AP_ROUTER, routerRange);
|
|
494
499
|
if (!routerEntry) {
|
|
495
|
-
throw new Error(
|
|
496
|
-
`router not found for facade v ${facadeV} at ${facadeAddr}`
|
|
497
|
-
);
|
|
500
|
+
throw new Error(`router not found in version range ${routerRange}`);
|
|
498
501
|
}
|
|
499
502
|
const [routerAddr, routerV] = routerEntry;
|
|
500
503
|
if (!this.contracts.has(routerAddr)) {
|
|
@@ -32,6 +32,7 @@ const abi = import_routerV310.iGearboxRouterV310Abi;
|
|
|
32
32
|
const ERR_NOT_IMPLEMENTED = new Error("Not implemented in router v3.1");
|
|
33
33
|
class RouterV310Contract extends import_AbstractRouterContract.AbstractRouterContract {
|
|
34
34
|
#numSplits = new import_AddressMap.AddressMap();
|
|
35
|
+
#defaultNumSplits = 4n;
|
|
35
36
|
constructor(sdk, address, version) {
|
|
36
37
|
super(sdk, {
|
|
37
38
|
addr: address,
|
|
@@ -208,6 +209,13 @@ class RouterV310Contract extends import_AbstractRouterContract.AbstractRouterCon
|
|
|
208
209
|
setNumSplits(token, numSplits) {
|
|
209
210
|
this.#numSplits.upsert(token, numSplits);
|
|
210
211
|
}
|
|
212
|
+
/**
|
|
213
|
+
* v310-specific method to set default number of splits for a token
|
|
214
|
+
* @param numSplits
|
|
215
|
+
*/
|
|
216
|
+
setDefaultNumSplits(numSplits) {
|
|
217
|
+
this.#defaultNumSplits = numSplits;
|
|
218
|
+
}
|
|
211
219
|
#numSplitsGetter(creditManager, assets) {
|
|
212
220
|
const { priceOracle } = this.sdk.marketRegister.findByCreditManager(
|
|
213
221
|
creditManager.address
|
|
@@ -232,7 +240,10 @@ class RouterV310Contract extends import_AbstractRouterContract.AbstractRouterCon
|
|
|
232
240
|
"balances in usd"
|
|
233
241
|
);
|
|
234
242
|
const map = new import_AddressMap.AddressMap(
|
|
235
|
-
inUSD.map(({ token }, i) => [
|
|
243
|
+
inUSD.map(({ token }, i) => [
|
|
244
|
+
token,
|
|
245
|
+
i === 0 ? this.#defaultNumSplits : 1n
|
|
246
|
+
])
|
|
236
247
|
);
|
|
237
248
|
for (const [token, numSplits] of this.#numSplits.entries()) {
|
|
238
249
|
map.upsert(token, numSplits);
|
|
@@ -472,27 +472,30 @@ class GearboxSDK {
|
|
|
472
472
|
return this.#marketRegister;
|
|
473
473
|
}
|
|
474
474
|
/**
|
|
475
|
-
* Returns router contract that will work for given credit manager or credit facade
|
|
475
|
+
* Returns router contract that will work for given credit manager or credit facade, or simply version range
|
|
476
476
|
* @param params
|
|
477
477
|
* @returns
|
|
478
478
|
*/
|
|
479
479
|
routerFor(params) {
|
|
480
|
-
let
|
|
481
|
-
if (
|
|
482
|
-
|
|
480
|
+
let routerRange;
|
|
481
|
+
if (Array.isArray(params)) {
|
|
482
|
+
routerRange = params;
|
|
483
483
|
} else {
|
|
484
|
-
|
|
485
|
-
|
|
486
|
-
|
|
487
|
-
|
|
484
|
+
let facadeAddr;
|
|
485
|
+
if ("creditFacade" in params) {
|
|
486
|
+
facadeAddr = toAddress(params.creditFacade);
|
|
487
|
+
} else {
|
|
488
|
+
const cm = this.marketRegister.findCreditManager(
|
|
489
|
+
toAddress(params.creditManager)
|
|
490
|
+
);
|
|
491
|
+
facadeAddr = cm.creditFacade.address;
|
|
492
|
+
}
|
|
493
|
+
const facadeV = this.contracts.mustGet(facadeAddr).version;
|
|
494
|
+
routerRange = isV310(facadeV) ? VERSION_RANGE_310 : VERSION_RANGE_300;
|
|
488
495
|
}
|
|
489
|
-
const facadeV = this.contracts.mustGet(facadeAddr).version;
|
|
490
|
-
const routerRange = isV310(facadeV) ? VERSION_RANGE_310 : VERSION_RANGE_300;
|
|
491
496
|
const routerEntry = this.addressProvider.getLatest(AP_ROUTER, routerRange);
|
|
492
497
|
if (!routerEntry) {
|
|
493
|
-
throw new Error(
|
|
494
|
-
`router not found for facade v ${facadeV} at ${facadeAddr}`
|
|
495
|
-
);
|
|
498
|
+
throw new Error(`router not found in version range ${routerRange}`);
|
|
496
499
|
}
|
|
497
500
|
const [routerAddr, routerV] = routerEntry;
|
|
498
501
|
if (!this.contracts.has(routerAddr)) {
|
|
@@ -9,6 +9,7 @@ const abi = iGearboxRouterV310Abi;
|
|
|
9
9
|
const ERR_NOT_IMPLEMENTED = new Error("Not implemented in router v3.1");
|
|
10
10
|
class RouterV310Contract extends AbstractRouterContract {
|
|
11
11
|
#numSplits = new AddressMap();
|
|
12
|
+
#defaultNumSplits = 4n;
|
|
12
13
|
constructor(sdk, address, version) {
|
|
13
14
|
super(sdk, {
|
|
14
15
|
addr: address,
|
|
@@ -185,6 +186,13 @@ class RouterV310Contract extends AbstractRouterContract {
|
|
|
185
186
|
setNumSplits(token, numSplits) {
|
|
186
187
|
this.#numSplits.upsert(token, numSplits);
|
|
187
188
|
}
|
|
189
|
+
/**
|
|
190
|
+
* v310-specific method to set default number of splits for a token
|
|
191
|
+
* @param numSplits
|
|
192
|
+
*/
|
|
193
|
+
setDefaultNumSplits(numSplits) {
|
|
194
|
+
this.#defaultNumSplits = numSplits;
|
|
195
|
+
}
|
|
188
196
|
#numSplitsGetter(creditManager, assets) {
|
|
189
197
|
const { priceOracle } = this.sdk.marketRegister.findByCreditManager(
|
|
190
198
|
creditManager.address
|
|
@@ -209,7 +217,10 @@ class RouterV310Contract extends AbstractRouterContract {
|
|
|
209
217
|
"balances in usd"
|
|
210
218
|
);
|
|
211
219
|
const map = new AddressMap(
|
|
212
|
-
inUSD.map(({ token }, i) => [
|
|
220
|
+
inUSD.map(({ token }, i) => [
|
|
221
|
+
token,
|
|
222
|
+
i === 0 ? this.#defaultNumSplits : 1n
|
|
223
|
+
])
|
|
213
224
|
);
|
|
214
225
|
for (const [token, numSplits] of this.#numSplits.entries()) {
|
|
215
226
|
map.upsert(token, numSplits);
|
|
@@ -3,6 +3,7 @@ import type { BaseContract, BaseState, IBaseContract } from "./base/index.js";
|
|
|
3
3
|
import { TokensMeta } from "./base/index.js";
|
|
4
4
|
import type { ConnectionOptions, NetworkOptions, TransportOptions } from "./chain/index.js";
|
|
5
5
|
import { Provider } from "./chain/index.js";
|
|
6
|
+
import type { VersionRange } from "./constants/index.js";
|
|
6
7
|
import type { IAddressProviderContract } from "./core/index.js";
|
|
7
8
|
import { BotListContract, GearStakingContract } from "./core/index.js";
|
|
8
9
|
import { MarketRegister } from "./market/MarketRegister.js";
|
|
@@ -152,7 +153,7 @@ export declare class GearboxSDK<const Plugins extends PluginsMap = {}> {
|
|
|
152
153
|
get gearStakingContract(): GearStakingContract | undefined;
|
|
153
154
|
get marketRegister(): MarketRegister;
|
|
154
155
|
/**
|
|
155
|
-
* Returns router contract that will work for given credit manager or credit facade
|
|
156
|
+
* Returns router contract that will work for given credit manager or credit facade, or simply version range
|
|
156
157
|
* @param params
|
|
157
158
|
* @returns
|
|
158
159
|
*/
|
|
@@ -160,5 +161,5 @@ export declare class GearboxSDK<const Plugins extends PluginsMap = {}> {
|
|
|
160
161
|
creditManager: Address | BaseState | IBaseContract;
|
|
161
162
|
} | {
|
|
162
163
|
creditFacade: Address | BaseState | IBaseContract;
|
|
163
|
-
}): IRouterContract;
|
|
164
|
+
} | VersionRange): IRouterContract;
|
|
164
165
|
}
|
|
@@ -378,6 +378,11 @@ export declare class RouterV310Contract extends AbstractRouterContract<abi> impl
|
|
|
378
378
|
* @param numSplits
|
|
379
379
|
*/
|
|
380
380
|
setNumSplits(token: Address, numSplits: bigint): void;
|
|
381
|
+
/**
|
|
382
|
+
* v310-specific method to set default number of splits for a token
|
|
383
|
+
* @param numSplits
|
|
384
|
+
*/
|
|
385
|
+
setDefaultNumSplits(numSplits: bigint): void;
|
|
381
386
|
/**
|
|
382
387
|
* Implements {@link IRouterContract.findAllSwaps}
|
|
383
388
|
* @deprecated v3.0 legacy method
|