@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.
@@ -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
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@gearbox-protocol/sdk",
3
- "version": "7.4.0",
3
+ "version": "7.5.0",
4
4
  "description": "Gearbox SDK",
5
5
  "license": "MIT",
6
6
  "main": "./dist/cjs/sdk/index.js",