@gearbox-protocol/sdk 7.4.0 → 7.5.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/dist/cjs/sdk/router/RouterV310Contract.js +12 -0
- package/dist/cjs/sdk/utils/viem/simulateWithPriceUpdates.js +10 -0
- package/dist/esm/sdk/router/RouterV310Contract.js +12 -0
- package/dist/esm/sdk/utils/viem/simulateWithPriceUpdates.js +10 -0
- package/dist/types/sdk/router/RouterV310Contract.d.ts +6 -0
- package/package.json +1 -1
|
@@ -31,6 +31,7 @@ var import_helpers = require("./helpers.js");
|
|
|
31
31
|
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
|
+
#numSplits = new import_AddressMap.AddressMap();
|
|
34
35
|
constructor(sdk, address, version) {
|
|
35
36
|
super(sdk, {
|
|
36
37
|
addr: address,
|
|
@@ -199,6 +200,14 @@ class RouterV310Contract extends import_AbstractRouterContract.AbstractRouterCon
|
|
|
199
200
|
calls: [...result.calls]
|
|
200
201
|
};
|
|
201
202
|
}
|
|
203
|
+
/**
|
|
204
|
+
* v310-specific method to set explicitly number of splits for a token
|
|
205
|
+
* @param token
|
|
206
|
+
* @param numSplits
|
|
207
|
+
*/
|
|
208
|
+
setNumSplits(token, numSplits) {
|
|
209
|
+
this.#numSplits.upsert(token, numSplits);
|
|
210
|
+
}
|
|
202
211
|
#numSplitsGetter(creditManager, assets) {
|
|
203
212
|
const { priceOracle } = this.sdk.marketRegister.findByCreditManager(
|
|
204
213
|
creditManager.address
|
|
@@ -225,6 +234,9 @@ class RouterV310Contract extends import_AbstractRouterContract.AbstractRouterCon
|
|
|
225
234
|
const map = new import_AddressMap.AddressMap(
|
|
226
235
|
inUSD.map(({ token }, i) => [token, i === 0 ? 4n : 1n])
|
|
227
236
|
);
|
|
237
|
+
for (const [token, numSplits] of this.#numSplits.entries()) {
|
|
238
|
+
map.upsert(token, numSplits);
|
|
239
|
+
}
|
|
228
240
|
return (token) => map.get(token) ?? 1n;
|
|
229
241
|
}
|
|
230
242
|
#debugTokenData(tData) {
|
|
@@ -157,6 +157,16 @@ function getSimulateWithPriceUpdatesError(cause, priceUpdates, calls, results, r
|
|
|
157
157
|
const call = calls[i];
|
|
158
158
|
return [extractCallError(c), `${call.address}.${call.functionName}`].filter(Boolean).join(" ");
|
|
159
159
|
});
|
|
160
|
+
if (results[0]?.status === "failure") {
|
|
161
|
+
prettyCalls.unshift(
|
|
162
|
+
`get timestamp failed: ${extractCallError(results[0])}`
|
|
163
|
+
);
|
|
164
|
+
}
|
|
165
|
+
if (results[1]?.status === "failure") {
|
|
166
|
+
prettyCalls.unshift(
|
|
167
|
+
`get block number failed: ${extractCallError(results[1])}`
|
|
168
|
+
);
|
|
169
|
+
}
|
|
160
170
|
return new SimulateWithPriceUpdatesError(cause, {
|
|
161
171
|
timestamp,
|
|
162
172
|
priceUpdates: prettyPriceUpdates,
|
|
@@ -8,6 +8,7 @@ import { assetsMap, balancesMap } from "./helpers.js";
|
|
|
8
8
|
const abi = iGearboxRouterV310Abi;
|
|
9
9
|
const ERR_NOT_IMPLEMENTED = new Error("Not implemented in router v3.1");
|
|
10
10
|
class RouterV310Contract extends AbstractRouterContract {
|
|
11
|
+
#numSplits = new AddressMap();
|
|
11
12
|
constructor(sdk, address, version) {
|
|
12
13
|
super(sdk, {
|
|
13
14
|
addr: address,
|
|
@@ -176,6 +177,14 @@ class RouterV310Contract extends AbstractRouterContract {
|
|
|
176
177
|
calls: [...result.calls]
|
|
177
178
|
};
|
|
178
179
|
}
|
|
180
|
+
/**
|
|
181
|
+
* v310-specific method to set explicitly number of splits for a token
|
|
182
|
+
* @param token
|
|
183
|
+
* @param numSplits
|
|
184
|
+
*/
|
|
185
|
+
setNumSplits(token, numSplits) {
|
|
186
|
+
this.#numSplits.upsert(token, numSplits);
|
|
187
|
+
}
|
|
179
188
|
#numSplitsGetter(creditManager, assets) {
|
|
180
189
|
const { priceOracle } = this.sdk.marketRegister.findByCreditManager(
|
|
181
190
|
creditManager.address
|
|
@@ -202,6 +211,9 @@ class RouterV310Contract extends AbstractRouterContract {
|
|
|
202
211
|
const map = new AddressMap(
|
|
203
212
|
inUSD.map(({ token }, i) => [token, i === 0 ? 4n : 1n])
|
|
204
213
|
);
|
|
214
|
+
for (const [token, numSplits] of this.#numSplits.entries()) {
|
|
215
|
+
map.upsert(token, numSplits);
|
|
216
|
+
}
|
|
205
217
|
return (token) => map.get(token) ?? 1n;
|
|
206
218
|
}
|
|
207
219
|
#debugTokenData(tData) {
|
|
@@ -137,6 +137,16 @@ function getSimulateWithPriceUpdatesError(cause, priceUpdates, calls, results, r
|
|
|
137
137
|
const call = calls[i];
|
|
138
138
|
return [extractCallError(c), `${call.address}.${call.functionName}`].filter(Boolean).join(" ");
|
|
139
139
|
});
|
|
140
|
+
if (results[0]?.status === "failure") {
|
|
141
|
+
prettyCalls.unshift(
|
|
142
|
+
`get timestamp failed: ${extractCallError(results[0])}`
|
|
143
|
+
);
|
|
144
|
+
}
|
|
145
|
+
if (results[1]?.status === "failure") {
|
|
146
|
+
prettyCalls.unshift(
|
|
147
|
+
`get block number failed: ${extractCallError(results[1])}`
|
|
148
|
+
);
|
|
149
|
+
}
|
|
140
150
|
return new SimulateWithPriceUpdatesError(cause, {
|
|
141
151
|
timestamp,
|
|
142
152
|
priceUpdates: prettyPriceUpdates,
|
|
@@ -372,6 +372,12 @@ export declare class RouterV310Contract extends AbstractRouterContract<abi> impl
|
|
|
372
372
|
* Implements {@link IRouterContract.findBestClosePath}
|
|
373
373
|
*/
|
|
374
374
|
findBestClosePath(props: FindBestClosePathProps): Promise<RouterCloseResult>;
|
|
375
|
+
/**
|
|
376
|
+
* v310-specific method to set explicitly number of splits for a token
|
|
377
|
+
* @param token
|
|
378
|
+
* @param numSplits
|
|
379
|
+
*/
|
|
380
|
+
setNumSplits(token: Address, numSplits: bigint): void;
|
|
375
381
|
/**
|
|
376
382
|
* Implements {@link IRouterContract.findAllSwaps}
|
|
377
383
|
* @deprecated v3.0 legacy method
|