@gearbox-protocol/sdk 10.0.0 → 10.2.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.
Files changed (38) hide show
  1. package/dist/cjs/abi/router/midasWorker.js +541 -0
  2. package/dist/cjs/plugins/adapters/AdaptersPlugin.js +5 -2
  3. package/dist/cjs/plugins/adapters/abi/actionAbi.js +6 -0
  4. package/dist/cjs/plugins/adapters/abi/conctructorAbi.js +6 -0
  5. package/dist/cjs/plugins/adapters/abi/conctructorAbiPatterns.js +7 -0
  6. package/dist/cjs/plugins/adapters/contracts/MidasIssuanceVaultAdapterContract.js +51 -0
  7. package/dist/cjs/plugins/adapters/contracts/MidasRedemptionVaultAdapterContract.js +51 -0
  8. package/dist/cjs/plugins/adapters/contracts/index.js +6 -0
  9. package/dist/cjs/plugins/adapters/types.js +2 -0
  10. package/dist/cjs/sdk/router/AbstractRouterContract.js +6 -3
  11. package/dist/cjs/sdk/router/RouterV310Contract.js +7 -3
  12. package/dist/cjs/sdk/utils/filterDust.js +21 -2
  13. package/dist/cjs/sdk/utils/index.js +2 -0
  14. package/dist/cjs/sdk/utils/isDust.js +40 -0
  15. package/dist/esm/abi/router/midasWorker.js +517 -0
  16. package/dist/esm/plugins/adapters/AdaptersPlugin.js +7 -1
  17. package/dist/esm/plugins/adapters/abi/actionAbi.js +6 -0
  18. package/dist/esm/plugins/adapters/abi/conctructorAbi.js +7 -0
  19. package/dist/esm/plugins/adapters/abi/conctructorAbiPatterns.js +6 -0
  20. package/dist/esm/plugins/adapters/contracts/MidasIssuanceVaultAdapterContract.js +27 -0
  21. package/dist/esm/plugins/adapters/contracts/MidasRedemptionVaultAdapterContract.js +27 -0
  22. package/dist/esm/plugins/adapters/contracts/index.js +3 -0
  23. package/dist/esm/plugins/adapters/types.js +2 -0
  24. package/dist/esm/sdk/router/AbstractRouterContract.js +7 -4
  25. package/dist/esm/sdk/router/RouterV310Contract.js +7 -3
  26. package/dist/esm/sdk/utils/filterDust.js +19 -1
  27. package/dist/esm/sdk/utils/index.js +1 -0
  28. package/dist/esm/sdk/utils/isDust.js +16 -0
  29. package/dist/types/abi/router/midasWorker.d.ts +726 -0
  30. package/dist/types/plugins/adapters/abi/conctructorAbiPatterns.d.ts +10 -0
  31. package/dist/types/plugins/adapters/contracts/MidasIssuanceVaultAdapterContract.d.ts +13 -0
  32. package/dist/types/plugins/adapters/contracts/MidasRedemptionVaultAdapterContract.d.ts +13 -0
  33. package/dist/types/plugins/adapters/contracts/index.d.ts +3 -0
  34. package/dist/types/plugins/adapters/types.d.ts +3 -1
  35. package/dist/types/sdk/utils/filterDust.d.ts +10 -0
  36. package/dist/types/sdk/utils/index.d.ts +1 -0
  37. package/dist/types/sdk/utils/isDust.d.ts +18 -0
  38. package/package.json +7 -7
@@ -1,5 +1,5 @@
1
1
  import { BaseContract } from "../base/index.js";
2
- import { AddressMap } from "../utils/index.js";
2
+ import { AddressMap, isDust } from "../utils/index.js";
3
3
  import { Hooks } from "../utils/internal/index.js";
4
4
  import { limitLeftover } from "./helpers.js";
5
5
  class AbstractRouterContract extends BaseContract {
@@ -33,9 +33,12 @@ class AbstractRouterContract extends BaseContract {
33
33
  const token = t;
34
34
  const isEnabled = (mask & ca.enabledTokensMask) !== 0n;
35
35
  expectedBalances.upsert(token, { token, balance });
36
- const decimals = this.sdk.tokensMeta.decimals(token);
37
- const minBalance = 10n ** BigInt(Math.max(8, decimals) - 8);
38
- if (keepAssetsSet.has(token.toLowerCase()) || balance < minBalance || !isEnabled) {
36
+ if (keepAssetsSet.has(token.toLowerCase()) || !isEnabled || isDust({
37
+ sdk: this.sdk,
38
+ token,
39
+ balance,
40
+ creditManager: ca.creditManager
41
+ })) {
39
42
  leftoverBalances.upsert(token, {
40
43
  token,
41
44
  balance: limitLeftover(balance, token) ?? balance
@@ -3,6 +3,7 @@ import { gearboxRouterAbi } from "../../abi/router/gearboxRouter.js";
3
3
  import { BigIntMath } from "../sdk-legacy/index.js";
4
4
  import { AddressMap } from "../utils/AddressMap.js";
5
5
  import { formatBN } from "../utils/formatter.js";
6
+ import { isDust } from "../utils/index.js";
6
7
  import { AbstractRouterContract } from "./AbstractRouterContract.js";
7
8
  import { assetsMap, balancesMap, limitLeftover } from "./helpers.js";
8
9
  const abi = gearboxRouterAbi;
@@ -224,9 +225,12 @@ class RouterV310Contract extends AbstractRouterContract {
224
225
  creditManager.address
225
226
  );
226
227
  const inUSD = assets.filter(({ token, balance }) => {
227
- const decimals = this.sdk.tokensMeta.decimals(token);
228
- const minBalance = 10n ** BigInt(Math.max(8, decimals) - 8);
229
- return balance >= minBalance;
228
+ return !isDust({
229
+ sdk: this.sdk,
230
+ token,
231
+ balance,
232
+ creditManager: creditManager.address
233
+ });
230
234
  }).map(({ token, balance }) => {
231
235
  return {
232
236
  token,
@@ -1,3 +1,4 @@
1
+ import { isDust } from "./isDust.js";
1
2
  function filterDust(account) {
2
3
  const result = {};
3
4
  for (const { token, balance } of account.tokens) {
@@ -7,6 +8,23 @@ function filterDust(account) {
7
8
  }
8
9
  return result;
9
10
  }
11
+ function filterDustUSD(opts) {
12
+ const { sdk, account, minBalanceUSD } = opts;
13
+ const result = {};
14
+ for (const { token, balance } of account.tokens) {
15
+ if (!isDust({
16
+ sdk,
17
+ token,
18
+ balance,
19
+ creditManager: account.creditManager,
20
+ minBalanceUSD
21
+ })) {
22
+ result[token] = balance;
23
+ }
24
+ }
25
+ return result;
26
+ }
10
27
  export {
11
- filterDust
28
+ filterDust,
29
+ filterDustUSD
12
30
  };
@@ -7,6 +7,7 @@ export * from "./etherscan.js";
7
7
  export * from "./filterDust.js";
8
8
  export * from "./formatter.js";
9
9
  export * from "./hex.js";
10
+ export * from "./isDust.js";
10
11
  export * from "./json.js";
11
12
  export * from "./mappers.js";
12
13
  export * from "./retry.js";
@@ -0,0 +1,16 @@
1
+ import { MAX_UINT256 } from "../constants/index.js";
2
+ function isDust(opts) {
3
+ const { sdk, token, balance, creditManager } = opts;
4
+ const minBalanceUSD = (opts.minBalanceUSD ?? 10n) * 10n ** 8n;
5
+ const { priceOracle } = sdk.marketRegister.findByCreditManager(creditManager);
6
+ let balanceUSD = MAX_UINT256;
7
+ try {
8
+ balanceUSD = priceOracle.convertToUSD(token, balance);
9
+ } catch {
10
+ balanceUSD = priceOracle.convertToUSD(token, balance, true);
11
+ }
12
+ return balanceUSD < minBalanceUSD;
13
+ }
14
+ export {
15
+ isDust
16
+ };