@gearbox-protocol/sdk 15.1.0-next.11 → 15.1.0-next.12

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 (54) hide show
  1. package/dist/cjs/dev/mode-parity/compareOpportunities.js +105 -0
  2. package/dist/cjs/dev/{comparePositions.js → mode-parity/comparePositions.js} +23 -46
  3. package/dist/cjs/dev/mode-parity/compareRules.js +93 -0
  4. package/dist/cjs/dev/{fieldDiff.js → mode-parity/fieldDiff.js} +49 -2
  5. package/dist/cjs/dev/mode-parity/scriptUtils.js +131 -0
  6. package/dist/cjs/model/compare.schema.js +33 -0
  7. package/dist/cjs/model/curators.schema.js +2 -1
  8. package/dist/cjs/model/index.js +5 -0
  9. package/dist/cjs/model/opportunities.schema.js +13 -12
  10. package/dist/cjs/model/positions.schema.js +15 -14
  11. package/dist/cjs/model/primitives.schema.js +2 -1
  12. package/dist/esm/common-utils/index.js +3 -3
  13. package/dist/esm/common-utils/utils/index.js +1 -1
  14. package/dist/esm/dev/AccountOpener.js +1 -1
  15. package/dist/esm/dev/{compareOpportunities.js → mode-parity/compareOpportunities.js} +14 -46
  16. package/dist/esm/dev/{comparePositions.js → mode-parity/comparePositions.js} +16 -39
  17. package/dist/esm/dev/mode-parity/compareRules.js +91 -0
  18. package/dist/esm/dev/{fieldDiff.js → mode-parity/fieldDiff.js} +49 -3
  19. package/dist/esm/dev/mode-parity/scriptUtils.js +121 -0
  20. package/dist/esm/dev/withdrawalUtils.js +1 -1
  21. package/dist/esm/model/compare.schema.js +29 -0
  22. package/dist/esm/model/curators.schema.js +2 -1
  23. package/dist/esm/model/index.js +2 -1
  24. package/dist/esm/model/opportunities.schema.js +13 -12
  25. package/dist/esm/model/positions.schema.js +15 -14
  26. package/dist/esm/model/primitives.schema.js +2 -1
  27. package/dist/esm/plugins/adapters/contracts/ERC4626AdapterContract.js +1 -1
  28. package/dist/esm/plugins/apy/ApyPlugin.js +2 -2
  29. package/dist/esm/preview/simulate/simulatePoolOperation.js +1 -1
  30. package/dist/esm/preview/trace/extractTransfers.js +1 -1
  31. package/dist/esm/sdk/accounts/CreditAccountsServiceV310.js +2 -2
  32. package/dist/esm/sdk/accounts/liquidations/LiquidationsService.js +1 -1
  33. package/dist/esm/sdk/accounts/withdrawal-compressor/RedemptionLoggerV310Contract.js +1 -1
  34. package/dist/esm/sdk/accounts/withdrawal-compressor/WithdrawalCompressorV310Contract.js +1 -1
  35. package/dist/esm/sdk/accounts/withdrawal-compressor/WithdrawalCompressorV311Contract.js +1 -1
  36. package/dist/esm/sdk/accounts/withdrawal-compressor/WithdrawalCompressorV313Contract.js +1 -1
  37. package/dist/esm/sdk/base/TokensMeta.js +3 -3
  38. package/dist/esm/sdk/chain/detectNetwork.js +1 -1
  39. package/dist/esm/sdk/core/createAddressProvider.js +1 -1
  40. package/dist/esm/sdk/market/credit/CreditFacadeV310BaseContract.js +1 -1
  41. package/dist/esm/sdk/market/pool/PoolV310Contract.js +1 -1
  42. package/dist/esm/sdk/market/zapper/IETHZapperContract.js +1 -1
  43. package/dist/esm/sdk/market/zapper/ZapperContract.js +1 -1
  44. package/dist/esm/sdk/pools/PoolService.js +1 -1
  45. package/dist/esm/sdk/utils/viem/simulateWithPriceUpdates.js +1 -1
  46. package/dist/types/dev/{compareOpportunities.d.ts → mode-parity/compareOpportunities.d.ts} +5 -5
  47. package/dist/types/dev/{comparePositions.d.ts → mode-parity/comparePositions.d.ts} +5 -5
  48. package/dist/types/dev/mode-parity/compareRules.d.ts +33 -0
  49. package/dist/types/dev/{fieldDiff.d.ts → mode-parity/fieldDiff.d.ts} +47 -5
  50. package/dist/types/dev/mode-parity/scriptUtils.d.ts +47 -0
  51. package/dist/types/model/compare.schema.d.ts +47 -0
  52. package/dist/types/model/index.d.ts +2 -1
  53. package/package.json +1 -1
  54. package/dist/cjs/dev/compareOpportunities.js +0 -137
@@ -1,4 +1,5 @@
1
1
  import { ZodAddress } from "../sdk/utils/zod.js";
2
+ import { offchainOnly, tolerance } from "./compare.schema.js";
2
3
  import { amountSchema, assetTypeSchema, bpsSchema, chainIdSchema, leverageSchema, timestampSchema, tokenSchema } from "./primitives.schema.js";
3
4
  import { curatorSchema } from "./curators.schema.js";
4
5
  import { isFilterSet } from "./filters.js";
@@ -45,9 +46,9 @@ const rewardsSchema = z.discriminatedUnion("kind", [tokenRewardsSchema, pointRew
45
46
  * {@link ApyBreakdown}
46
47
  **/
47
48
  const apyBreakdownSchema = z.object({
48
- totalApy: bpsSchema.optional(),
49
- organicApy: bpsSchema,
50
- rewards: z.array(rewardsSchema).optional()
49
+ totalApy: offchainOnly(bpsSchema).optional(),
50
+ organicApy: tolerance(bpsSchema, "bps"),
51
+ rewards: offchainOnly(z.array(rewardsSchema)).optional()
51
52
  });
52
53
  /**
53
54
  * {@link OpportunityBase}
@@ -70,9 +71,9 @@ const poolOpportunitySchema = z.object({
70
71
  ...opportunityBaseSchema.shape,
71
72
  kind: z.literal("pool"),
72
73
  pool: ZodAddress(),
73
- totalSupply: amountSchema,
74
- availableLiquidity: amountSchema,
75
- utilization: bpsSchema,
74
+ totalSupply: tolerance(amountSchema, "amount"),
75
+ availableLiquidity: tolerance(amountSchema, "amount"),
76
+ utilization: tolerance(bpsSchema, "bps"),
76
77
  supplyApy: apyBreakdownSchema
77
78
  });
78
79
  /**
@@ -87,12 +88,12 @@ const strategyOpportunitySchema = z.object({
87
88
  liquidationPremium: bpsSchema,
88
89
  liquidationFee: bpsSchema,
89
90
  expirationDate: timestampSchema.nullable(),
90
- collateralApy: apyBreakdownSchema.optional(),
91
- maxLeverageApy: apyBreakdownSchema.optional(),
92
- borrowApy: bpsSchema.optional(),
93
- additionalBorrowApy: bpsSchema.optional(),
94
- totalValue: amountSchema.optional(),
95
- utilization: bpsSchema.optional(),
91
+ collateralApy: offchainOnly(apyBreakdownSchema).optional(),
92
+ maxLeverageApy: offchainOnly(apyBreakdownSchema).optional(),
93
+ borrowApy: tolerance(bpsSchema, "bps").optional(),
94
+ additionalBorrowApy: tolerance(bpsSchema, "bps").optional(),
95
+ totalValue: offchainOnly(amountSchema).optional(),
96
+ utilization: offchainOnly(bpsSchema).optional(),
96
97
  maxBorrowAmount: amountSchema,
97
98
  maxLeverage: leverageSchema
98
99
  });
@@ -1,4 +1,5 @@
1
1
  import { ZodAddress, ZodBigInt, ZodHex } from "../sdk/utils/zod.js";
2
+ import { offchainOnly, onchainOnly, tolerance } from "./compare.schema.js";
2
3
  import { assetTypeSchema, bpsSchema, chainIdSchema, leverageSchema, timestampSchema, tokenAmountSchema, tokenSchema } from "./primitives.schema.js";
3
4
  import { isFilterSet } from "./filters.js";
4
5
  import { booleanParamSchema, encodeFlag, filterable } from "./filters.schema.js";
@@ -55,8 +56,8 @@ const pnlBreakdownSchema = z.object({
55
56
  * {@link PositionCollateral}
56
57
  **/
57
58
  const positionCollateralSchema = z.object({
58
- collateral: tokenAmountSchema,
59
- quota: tokenAmountSchema,
59
+ collateral: tolerance(tokenAmountSchema, "amount"),
60
+ quota: tolerance(tokenAmountSchema, "amount"),
60
61
  withdrawals: z.array(delayedReceivedAssetSchema)
61
62
  });
62
63
  /**
@@ -67,9 +68,9 @@ const poolPositionSchema = z.object({
67
68
  name: z.string(),
68
69
  chainId: chainIdSchema,
69
70
  pool: ZodAddress(),
70
- netValue: tokenAmountSchema,
71
+ netValue: tolerance(tokenAmountSchema, "amount"),
71
72
  apy: apyBreakdownSchema,
72
- pnl: pnlBreakdownSchema.optional()
73
+ pnl: offchainOnly(pnlBreakdownSchema).optional()
73
74
  });
74
75
  /**
75
76
  * {@link BorrowRateBreakdown}
@@ -90,16 +91,16 @@ const strategyPositionSchema = z.object({
90
91
  creditManager: ZodAddress(),
91
92
  creditAccount: ZodAddress(),
92
93
  targetCollateral: tokenSchema.nullable(),
93
- leverage: leverageSchema,
94
- borrowApy: bpsSchema,
95
- netApy: apyBreakdownSchema.optional(),
96
- totalDebt: tokenAmountSchema,
97
- totalValue: tokenAmountSchema,
98
- healthFactor: bpsSchema,
99
- borrowRate: borrowRateBreakdownSchema.optional(),
100
- timeToLiquidation: ZodBigInt().nullable().optional(),
101
- liquidationPrice: ZodBigInt().nullable().optional(),
102
- pnl: pnlBreakdownSchema.optional(),
94
+ leverage: tolerance(leverageSchema, "float"),
95
+ borrowApy: tolerance(bpsSchema, "bps"),
96
+ netApy: offchainOnly(apyBreakdownSchema).optional(),
97
+ totalDebt: tolerance(tokenAmountSchema, "amount"),
98
+ totalValue: tolerance(tokenAmountSchema, "amount"),
99
+ healthFactor: tolerance(bpsSchema, "bps"),
100
+ borrowRate: onchainOnly(borrowRateBreakdownSchema).optional(),
101
+ timeToLiquidation: onchainOnly(ZodBigInt().nullable()).optional(),
102
+ liquidationPrice: onchainOnly(ZodBigInt().nullable()).optional(),
103
+ pnl: offchainOnly(pnlBreakdownSchema).optional(),
103
104
  collaterals: z.array(positionCollateralSchema)
104
105
  });
105
106
  /**
@@ -1,4 +1,5 @@
1
1
  import { ZodAddress, ZodBigInt, ZodHex } from "../sdk/utils/zod.js";
2
+ import { tolerance } from "./compare.schema.js";
2
3
  import { z } from "zod/v4";
3
4
  //#region src/model/primitives.schema.ts
4
5
  /**
@@ -39,7 +40,7 @@ const leverageSchema = z.number().nonnegative();
39
40
  **/
40
41
  const amountSchema = z.object({
41
42
  value: ZodBigInt(),
42
- valueUsd: z.number().nullable()
43
+ valueUsd: tolerance(z.number().nullable(), "usd")
43
44
  });
44
45
  /**
45
46
  * {@link Token}
@@ -1,5 +1,5 @@
1
- import { MissingSerializedParamsError } from "../../../sdk/base/errors.js";
2
1
  import { ierc4626AdapterAbi } from "../../../abi/ierc4626Adapter.js";
2
+ import { MissingSerializedParamsError } from "../../../sdk/base/errors.js";
3
3
  import "../../../sdk/index.js";
4
4
  import { fnSigToName, swapFromTransfers } from "../transferHelpers.js";
5
5
  import { AbstractAdapterContract } from "./AbstractAdapter.js";
@@ -1,5 +1,3 @@
1
- import { AxiosCache } from "../../common-utils/axios-cache/AxiosCache.js";
2
- import "../../common-utils/axios-cache/index.js";
3
1
  import { AddressMap } from "../../sdk/utils/AddressMap.js";
4
2
  import { AP_MARKET_COMPRESSOR } from "../../sdk/constants/address-provider.js";
5
3
  import { PERCENTAGE_DECIMALS } from "../../sdk/constants/math.js";
@@ -10,6 +8,8 @@ import { hexEq } from "../../sdk/utils/hex.js";
10
8
  import { marketCompressorAbi } from "../../abi/compressors/marketCompressor.js";
11
9
  import { BasePlugin } from "../../sdk/plugins/BasePlugin.js";
12
10
  import "../../sdk/index.js";
11
+ import { AxiosCache } from "../../common-utils/axios-cache/AxiosCache.js";
12
+ import "../../common-utils/axios-cache/index.js";
13
13
  import { getStrategyCreditManagersListCore } from "../../common-utils/utils/strategies/credit-managers/get-strategy-credit-managers-list-core.js";
14
14
  import { getAvailableAndDisabledStrategies } from "../../common-utils/utils/strategies/lists/get-available-and-disabled-strategies.js";
15
15
  import { getReleasedStrategiesListCore } from "../../common-utils/utils/strategies/lists/get-released-strategies-list-core.js";
@@ -1,5 +1,5 @@
1
- import { iPoolV310Abi } from "../../abi/310/generated.js";
2
1
  import { iZapperAbi } from "../../abi/iZapper.js";
2
+ import { iPoolV310Abi } from "../../abi/310/generated.js";
3
3
  import { asPreviewSimulationError } from "./errors.js";
4
4
  //#region src/preview/simulate/simulatePoolOperation.ts
5
5
  function previewRead(operation) {
@@ -1,6 +1,6 @@
1
+ import { ierc20Abi } from "../../abi/iERC20.js";
1
2
  import { iCreditFacadeV310Abi } from "../../abi/310/generated.js";
2
3
  import { AddressMap } from "../../sdk/utils/AddressMap.js";
3
- import { ierc20Abi } from "../../abi/iERC20.js";
4
4
  import "../../sdk/index.js";
5
5
  import { UnexpectedFacadeEventOrderError } from "./errors.js";
6
6
  import { getAddress, isAddressEqual, parseEventLogs } from "viem";
@@ -1,3 +1,5 @@
1
+ import { iBaseRewardPoolAbi } from "../../abi/iBaseRewardPool.js";
2
+ import { ierc4626AdapterAbi } from "../../abi/ierc4626Adapter.js";
1
3
  import { AP_REWARDS_COMPRESSOR } from "../constants/address-provider.js";
2
4
  import { ADDRESS_0X0 } from "../constants/addresses.js";
3
5
  import { MAX_UINT256 } from "../constants/math.js";
@@ -8,8 +10,6 @@ import "../base/index.js";
8
10
  import { AccountBotsService } from "./bots/AccountBotsService.js";
9
11
  import "./bots/index.js";
10
12
  import { rewardsCompressorAbi } from "../../abi/compressors/rewardsCompressor.js";
11
- import { iBaseRewardPoolAbi } from "../../abi/iBaseRewardPool.js";
12
- import { ierc4626AdapterAbi } from "../../abi/ierc4626Adapter.js";
13
13
  import { expectedBalanceDeltas } from "../market/credit/expectedBalanceDeltas.js";
14
14
  import "../market/index.js";
15
15
  import { CreditAccountCompressor } from "./credit-account-compressor/CreditAccountCompressor.js";
@@ -1,3 +1,4 @@
1
+ import { iLiquidationCompressorV313Abi } from "../../../abi/ILiquidationCompressorV313.js";
1
2
  import { AddressSet } from "../../utils/AddressSet.js";
2
3
  import { bytes32ToString } from "../../utils/bytes32ToString.js";
3
4
  import { ADDRESS_0X0 } from "../../constants/addresses.js";
@@ -19,7 +20,6 @@ import { SecuritizeLiquidatorContract } from "../../market/rwa/securitize/Securi
19
20
  import "../../market/rwa/securitize/index.js";
20
21
  import "../../market/index.js";
21
22
  import { LIQUIDATION_APPROVAL_BUFFER, LIQUIDATION_COMPRESSOR_V313_ADDRESS } from "./constants.js";
22
- import { iLiquidationCompressorV313Abi } from "../../../abi/ILiquidationCompressorV313.js";
23
23
  //#region src/sdk/accounts/liquidations/LiquidationsService.ts
24
24
  /**
25
25
  * Service for discovering liquidatable credit accounts and previewing manual
@@ -1,7 +1,7 @@
1
+ import { iRedemptionLoggerV310Abi } from "../../../abi/iRedemptionLoggerV310.js";
1
2
  import { BaseContract } from "../../base/BaseContract.js";
2
3
  import "../../base/index.js";
3
4
  import { decodeDelayedIntent } from "./intent-codec.js";
4
- import { iRedemptionLoggerV310Abi } from "../../../abi/iRedemptionLoggerV310.js";
5
5
  import { InvalidDelayedIntentError } from "./errors.js";
6
6
  //#region src/sdk/accounts/withdrawal-compressor/RedemptionLoggerV310Contract.ts
7
7
  const abi = iRedemptionLoggerV310Abi;
@@ -1,5 +1,5 @@
1
- import { AbstractWithdrawalCompressorContract } from "./AbstractWithdrawalCompressorContract.js";
2
1
  import { iWithdrawalCompressorV310Abi } from "../../../abi/IWithdrawalCompressorV310.js";
2
+ import { AbstractWithdrawalCompressorContract } from "./AbstractWithdrawalCompressorContract.js";
3
3
  //#region src/sdk/accounts/withdrawal-compressor/WithdrawalCompressorV310Contract.ts
4
4
  const abi = iWithdrawalCompressorV310Abi;
5
5
  /**
@@ -1,5 +1,5 @@
1
- import { AbstractWithdrawalCompressorContract } from "./AbstractWithdrawalCompressorContract.js";
2
1
  import { iWithdrawalCompressorV311Abi } from "../../../abi/IWithdrawalCompressorV311.js";
2
+ import { AbstractWithdrawalCompressorContract } from "./AbstractWithdrawalCompressorContract.js";
3
3
  //#region src/sdk/accounts/withdrawal-compressor/WithdrawalCompressorV311Contract.ts
4
4
  const abi = iWithdrawalCompressorV311Abi;
5
5
  /**
@@ -1,6 +1,6 @@
1
+ import { iWithdrawalCompressorV313Abi } from "../../../abi/IWithdrawalCompressorV313.js";
1
2
  import { encodeDelayedIntent } from "./intent-codec.js";
2
3
  import { AbstractWithdrawalCompressorContract, iCreditAccountAbi, toClaimableWithdrawal, toPendingWithdrawal, toRequestableWithdrawal } from "./AbstractWithdrawalCompressorContract.js";
3
- import { iWithdrawalCompressorV313Abi } from "../../../abi/IWithdrawalCompressorV313.js";
4
4
  import { toWithdrawalStatus } from "./types.js";
5
5
  //#region src/sdk/accounts/withdrawal-compressor/WithdrawalCompressorV313Contract.ts
6
6
  const abi = iWithdrawalCompressorV313Abi;
@@ -1,12 +1,12 @@
1
+ import { iExpirableAbi } from "../../abi/iExpirable.js";
2
+ import { iStateSerializerAbi } from "../../abi/iStateSerializer.js";
3
+ import { iVersionAbi } from "../../abi/iVersion.js";
1
4
  import { AddressMap } from "../utils/AddressMap.js";
2
5
  import { AddressSet } from "../utils/AddressSet.js";
3
6
  import { bytes32ToString } from "../utils/bytes32ToString.js";
4
7
  import { getAssetType } from "../chain/chains.js";
5
8
  import { formatBN } from "../utils/formatter.js";
6
9
  import "../utils/index.js";
7
- import { iExpirableAbi } from "../../abi/iExpirable.js";
8
- import { iStateSerializerAbi } from "../../abi/iStateSerializer.js";
9
- import { iVersionAbi } from "../../abi/iVersion.js";
10
10
  import { executeMulticallBatches } from "../utils/viem/executeMulticallBatches.js";
11
11
  //#region src/sdk/base/TokensMeta.ts
12
12
  /**
@@ -1,5 +1,5 @@
1
- import { chains } from "./chains.js";
2
1
  import { ierc20Abi } from "../../abi/iERC20.js";
2
+ import { chains } from "./chains.js";
3
3
  //#region src/sdk/chain/detectNetwork.ts
4
4
  /**
5
5
  * Detects the network type from the given client.
@@ -1,8 +1,8 @@
1
+ import { iVersionAbi } from "../../abi/iVersion.js";
1
2
  import { AP_MARKET_COMPRESSOR, AP_PRICE_FEED_COMPRESSOR } from "../constants/address-provider.js";
2
3
  import { isV310 } from "../constants/versions.js";
3
4
  import "../constants/index.js";
4
5
  import { hexEq } from "../utils/hex.js";
5
- import { iVersionAbi } from "../../abi/iVersion.js";
6
6
  import { AddressProviderV310Contract } from "./AddressProviderV310Contract.js";
7
7
  //#region src/sdk/core/createAddressProvider.ts
8
8
  const OVERRIDE_ADDRESSES = { Mainnet: {
@@ -1,7 +1,7 @@
1
+ import { iPausableAbi } from "../../../abi/iPausable.js";
1
2
  import { iCreditFacadeMulticallV310Abi, iCreditFacadeV310Abi } from "../../../abi/310/generated.js";
2
3
  import { BaseContract } from "../../base/BaseContract.js";
3
4
  import "../../base/index.js";
4
- import { iPausableAbi } from "../../../abi/iPausable.js";
5
5
  //#region src/sdk/market/credit/CreditFacadeV310BaseContract.ts
6
6
  const abi = [
7
7
  ...iCreditFacadeV310Abi,
@@ -1,3 +1,4 @@
1
+ import { iPausableAbi } from "../../../abi/iPausable.js";
1
2
  import { iPoolV310Abi } from "../../../abi/310/generated.js";
2
3
  import { AddressMap } from "../../utils/AddressMap.js";
3
4
  import { RAY } from "../../constants/math.js";
@@ -6,7 +7,6 @@ import { formatBN, formatBNvalue, percentFmt } from "../../utils/formatter.js";
6
7
  import "../../utils/index.js";
7
8
  import { BaseContract } from "../../base/BaseContract.js";
8
9
  import "../../base/index.js";
9
- import { iPausableAbi } from "../../../abi/iPausable.js";
10
10
  import { calcUtilization } from "../math.js";
11
11
  //#region src/sdk/market/pool/PoolV310Contract.ts
12
12
  const abi = [...iPoolV310Abi, ...iPausableAbi];
@@ -1,5 +1,5 @@
1
- import { ZapperContract } from "./ZapperContract.js";
2
1
  import { iethZapperAbi } from "../../../abi/iETHZapper.js";
2
+ import { ZapperContract } from "./ZapperContract.js";
3
3
  //#region src/sdk/market/zapper/IETHZapperContract.ts
4
4
  const abi = iethZapperAbi;
5
5
  var IETHZapperContract = class extends ZapperContract {
@@ -1,6 +1,6 @@
1
+ import { iZapperAbi } from "../../../abi/iZapper.js";
1
2
  import { BaseContract } from "../../base/BaseContract.js";
2
3
  import "../../base/index.js";
3
- import { iZapperAbi } from "../../../abi/iZapper.js";
4
4
  import { UnsupportedZapperFunctionError } from "./errors.js";
5
5
  //#region src/sdk/market/zapper/ZapperContract.ts
6
6
  /**
@@ -1,5 +1,5 @@
1
- import { AddressSet } from "../utils/AddressSet.js";
2
1
  import { ierc20Abi } from "../../abi/iERC20.js";
2
+ import { AddressSet } from "../utils/AddressSet.js";
3
3
  import "../constants/addresses.js";
4
4
  import { PERCENTAGE_FACTOR, RAY } from "../constants/math.js";
5
5
  import "../constants/index.js";
@@ -1,6 +1,6 @@
1
1
  import { errorAbis } from "../../../abi/errors.js";
2
- import { generateCastTraceCall } from "./cast.js";
3
2
  import { iUpdatablePriceFeedAbi } from "../../../abi/iUpdatablePriceFeed.js";
3
+ import { generateCastTraceCall } from "./cast.js";
4
4
  import { simulateMulticall } from "./simulateMulticall.js";
5
5
  import { BaseError, CallExecutionError, ContractFunctionRevertedError, decodeFunctionData, decodeFunctionResult, encodeFunctionData, parseAbi } from "viem";
6
6
  import { getAction, parseAccount } from "viem/utils";
@@ -1,10 +1,10 @@
1
- import { ChainId } from "../model/primitives.js";
2
- import { Opportunity, OpportunityId, OpportunityKind } from "../model/opportunities.js";
3
- import { ChainMetadata, DataResponse } from "../model/response.js";
4
- import "../model/index.js";
1
+ import { ChainId } from "../../model/primitives.js";
2
+ import { Opportunity, OpportunityId, OpportunityKind } from "../../model/opportunities.js";
3
+ import { ChainMetadata, DataResponse } from "../../model/response.js";
4
+ import "../../model/index.js";
5
5
  import { ChainCompareCounts, CompareCounts, DiffKind, DiffPathCount, ExpectedDiffReason, FieldDiff } from "./fieldDiff.js";
6
6
  import { Address } from "viem";
7
- //#region src/dev/compareOpportunities.d.ts
7
+ //#region src/dev/mode-parity/compareOpportunities.d.ts
8
8
  /**
9
9
  * Enough of an opportunity to identify it in a report without carrying the
10
10
  * whole row.
@@ -1,10 +1,10 @@
1
- import { ChainId } from "../model/primitives.js";
2
- import { Position, PositionId, PositionKind } from "../model/positions.js";
3
- import { ChainMetadata, DataResponse } from "../model/response.js";
4
- import "../model/index.js";
1
+ import { ChainId } from "../../model/primitives.js";
2
+ import { Position, PositionId, PositionKind } from "../../model/positions.js";
3
+ import { ChainMetadata, DataResponse } from "../../model/response.js";
4
+ import "../../model/index.js";
5
5
  import { ChainCompareCounts, CompareCounts, DiffPathCount, FieldDiff } from "./fieldDiff.js";
6
6
  import { Address } from "viem";
7
- //#region src/dev/comparePositions.d.ts
7
+ //#region src/dev/mode-parity/comparePositions.d.ts
8
8
  /**
9
9
  * Enough of a position to identify it in a report without carrying the whole
10
10
  * row.
@@ -0,0 +1,33 @@
1
+ import { CompareTag } from "../../model/compare.schema.js";
2
+ import { FieldDiff } from "./fieldDiff.js";
3
+ import { z } from "zod/v4";
4
+ //#region src/dev/mode-parity/compareRules.d.ts
5
+ /**
6
+ * Collapsed-path → tag map compiled from a zod schema, e.g.
7
+ * `apy.totalApy` → `"offchainOnly"`, `totalDebt.value` → `{ tolerance: amount }`.
8
+ **/
9
+ type CompareRuleMap = Map<string, CompareTag>;
10
+ /**
11
+ * Walks a schema and records every field that carries compare metadata.
12
+ *
13
+ * `"amount"` on an object (an Amount / TokenAmount) is stored
14
+ * at `<path>.value`; every other tag is stored at the field's own path.
15
+ **/
16
+ declare function compileCompareRules(schema: z.ZodType): CompareRuleMap;
17
+ /**
18
+ * Rules compiled for each row kind, e.g. `"pool"` vs `"strategy"`.
19
+ **/
20
+ type CompareRulesByKind = Record<string, CompareRuleMap>;
21
+ /**
22
+ * Tags one field diff using the rules compiled for its row kind.
23
+ **/
24
+ type TagDiff = (diff: FieldDiff, kind: string) => FieldDiff;
25
+ /**
26
+ * Tags diffs using the rules compiled for each row kind.
27
+ *
28
+ * Mode tags match the path or anything nested under it. Tolerance tags match
29
+ * the path exactly and dispatch on {@link CompareTolerance}.
30
+ **/
31
+ declare function makeTagDiff(rulesByKind: CompareRulesByKind): TagDiff;
32
+ //#endregion
33
+ export { CompareRuleMap, CompareRulesByKind, TagDiff, compileCompareRules, makeTagDiff };
@@ -1,6 +1,6 @@
1
- import { ChainId } from "../model/primitives.js";
2
- import "../model/index.js";
3
- //#region src/dev/fieldDiff.d.ts
1
+ import { ChainId } from "../../model/primitives.js";
2
+ import "../../model/index.js";
3
+ //#region src/dev/mode-parity/fieldDiff.d.ts
4
4
  /**
5
5
  * What kind of disagreement a {@link FieldDiff} describes, so that a reader can
6
6
  * bucket the report without re-deriving it from the values.
@@ -45,6 +45,33 @@ interface FieldDiff {
45
45
  expected?: true;
46
46
  reason?: ExpectedDiffReason;
47
47
  }
48
+ /**
49
+ * The largest numeric disagreement seen for one collapsed field path, on
50
+ * either the unexpected or the expected side.
51
+ **/
52
+ interface WorstDiff {
53
+ /**
54
+ * Entity id (position/opportunity id) with the biggest relative difference.
55
+ **/
56
+ id: string;
57
+ /**
58
+ * Uncollapsed path, so the exact array element is named.
59
+ **/
60
+ path: string;
61
+ /**
62
+ * Relative difference in bps.
63
+ **/
64
+ bps: number;
65
+ onchain: unknown;
66
+ offchain: unknown;
67
+ }
68
+ /**
69
+ * One field disagreement together with the matched row it belongs to.
70
+ **/
71
+ interface EntityFieldDiff {
72
+ id: string;
73
+ diff: FieldDiff;
74
+ }
48
75
  /**
49
76
  * How often one field disagreed across all matched rows, with array keys
50
77
  * collapsed, e.g. `collateralTokens[].symbol`.
@@ -55,6 +82,15 @@ interface DiffPathCount {
55
82
  count: number;
56
83
  expected: number;
57
84
  unexpected: number;
85
+ /**
86
+ * Largest unexpected numeric disagreement, when any unexpected diff of this
87
+ * path yields a relative bps value.
88
+ **/
89
+ worstUnexpected?: WorstDiff;
90
+ /**
91
+ * Largest expected numeric disagreement, see {@link worstUnexpected}.
92
+ **/
93
+ worstExpected?: WorstDiff;
58
94
  }
59
95
  /**
60
96
  * Counts of one chain, one wallet, or of the whole report when those ids are
@@ -127,7 +163,7 @@ declare function withExpected(diff: FieldDiff, reason: ExpectedDiffReason): Fiel
127
163
  * field of a hundred collateral tokens counts as one path. Sorted so the
128
164
  * unexpected disagreements come first.
129
165
  **/
130
- declare function countPaths(diffs: Iterable<FieldDiff>): DiffPathCount[];
166
+ declare function countPaths(diffs: Iterable<EntityFieldDiff>): DiffPathCount[];
131
167
  /**
132
168
  * Collapse `collateralTokens[0xa0b8...].symbol` to `collateralTokens[].symbol`.
133
169
  **/
@@ -161,7 +197,13 @@ declare function withinRelative(onchain: number | undefined, offchain: number |
161
197
  **/
162
198
  declare function withinRelativeBigint(onchain: bigint, offchain: bigint, epsilon: number): boolean;
163
199
  declare function asFiniteNumber(value: unknown): number | undefined;
200
+ /**
201
+ * Relative difference of two numbers or bigints, in bps:
202
+ * `|a − b| / max(|a|, |b|) * 10_000`. `undefined` when the values are not
203
+ * a comparable pair of finite numbers or of bigints.
204
+ **/
205
+ declare function relativeDiffBps(onchain: unknown, offchain: unknown): number | undefined;
164
206
  declare function union(left: string[], right: string[]): string[];
165
207
  declare function isRecord(value: unknown): value is Record<string, unknown>;
166
208
  //#endregion
167
- export { AMOUNT_RELATIVE_EPSILON, ArrayElementKey, BPS_ABSOLUTE_EPSILON, ChainCompareCounts, CompareCounts, DiffKind, DiffOptions, DiffPathCount, ExpectedDiffReason, FieldDiff, USD_RELATIVE_EPSILON, asFiniteNumber, collapseArrayKeys, countPaths, diffObjects, diffValue, isAmountWithinTolerance, isBpsWithinTolerance, isRecord, isUsdWithinTolerance, toCompareCounts, union, withExpected, withinRelative, withinRelativeBigint };
209
+ export { AMOUNT_RELATIVE_EPSILON, ArrayElementKey, BPS_ABSOLUTE_EPSILON, ChainCompareCounts, CompareCounts, DiffKind, DiffOptions, DiffPathCount, EntityFieldDiff, ExpectedDiffReason, FieldDiff, USD_RELATIVE_EPSILON, WorstDiff, asFiniteNumber, collapseArrayKeys, countPaths, diffObjects, diffValue, isAmountWithinTolerance, isBpsWithinTolerance, isRecord, isUsdWithinTolerance, relativeDiffBps, toCompareCounts, union, withExpected, withinRelative, withinRelativeBigint };
@@ -0,0 +1,47 @@
1
+ import { ChainMetadata } from "../../model/response.js";
2
+ import "../../model/index.js";
3
+ import { ChainCompareCounts, CompareCounts, DiffPathCount } from "./fieldDiff.js";
4
+ import { Logger } from "pino";
5
+ //#region src/dev/mode-parity/scriptUtils.d.ts
6
+ /**
7
+ * Chains the compare scripts attach to.
8
+ **/
9
+ type ComparedNetwork = "Mainnet" | "Monad" | "Plasma" | "Somnia" | "Etherlink";
10
+ declare const NETWORKS: ComparedNetwork[];
11
+ declare const BACKEND_URL: string;
12
+ declare const TIMEOUT = 480000;
13
+ /**
14
+ * Totals both compare reports print.
15
+ **/
16
+ interface PrintableCompareSummary extends CompareCounts {
17
+ byChain: ChainCompareCounts[];
18
+ diffsByPath: DiffPathCount[];
19
+ }
20
+ /**
21
+ * Per-source chain metadata both compare reports carry.
22
+ **/
23
+ interface PrintableCompareReport {
24
+ backendUrl: string;
25
+ summary: PrintableCompareSummary;
26
+ onchainChains: ChainMetadata[];
27
+ offchainChains: ChainMetadata[];
28
+ }
29
+ declare function requireEnv(name: string): string;
30
+ declare function rpcUrls(): Record<ComparedNetwork, string>;
31
+ declare function createLogger(): Logger;
32
+ declare function errorMessage(error: unknown): string;
33
+ /**
34
+ * Runs `fn` over `items` with at most `concurrency` in flight.
35
+ **/
36
+ declare function mapPool<T>(items: readonly T[], concurrency: number, fn: (item: T) => Promise<void>): Promise<void>;
37
+ /**
38
+ * Formats a relative difference in bps as a percent, e.g. 12.5 → `"0.125%"`.
39
+ **/
40
+ declare function formatBpsAsPercent(bps: number): string;
41
+ /**
42
+ * Prints the shared membership table, the fields that differed most often,
43
+ * and any chain that failed to answer.
44
+ **/
45
+ declare function printCompareSummary(noun: string, report: PrintableCompareReport, extraLines?: string[]): void;
46
+ //#endregion
47
+ export { BACKEND_URL, ComparedNetwork, NETWORKS, PrintableCompareReport, PrintableCompareSummary, TIMEOUT, createLogger, errorMessage, formatBpsAsPercent, mapPool, printCompareSummary, requireEnv, rpcUrls };
@@ -0,0 +1,47 @@
1
+ import { z } from "zod/v4";
2
+ //#region src/model/compare.schema.d.ts
3
+ /**
4
+ * How close two numeric values may be before a disagreement counts as real.
5
+ *
6
+ * The compare scripts pick a formula from this union; the schemas only name
7
+ * which formula a field uses.
8
+ *
9
+ * - `"amount"` — accrual lag on an {@link Amount.value} / {@link TokenAmount.value}.
10
+ * - `"bps"` — truncation vs rounding on a basis-point rate, ±1.
11
+ * - `"float"` — relative float drift within 0.1% (leverage).
12
+ * - `"usd"` — price-derived {@link Amount.valueUsd} / {@link TokenAmount.valueUsd}.
13
+ **/
14
+ type CompareTolerance = "amount" | "bps" | "float" | "usd";
15
+ /**
16
+ * A numeric field whose two sources may drift within {@link tolerance}.
17
+ **/
18
+ interface ToleranceCompareTag {
19
+ tolerance: CompareTolerance;
20
+ }
21
+ /**
22
+ * Compare metadata a schema field may carry.
23
+ *
24
+ * - `"offchainOnly"` / `"onchainOnly"` — the other source typically leaves
25
+ * the field empty, so a disagreement is expected.
26
+ * - {@link ToleranceCompareTag} — a numeric disagreement within the named
27
+ * formula is expected snapshot noise.
28
+ **/
29
+ type CompareTag = "offchainOnly" | "onchainOnly" | ToleranceCompareTag;
30
+ /**
31
+ * Marks a field that only the backend fills.
32
+ **/
33
+ declare function offchainOnly<S extends z.ZodType>(schema: S): S;
34
+ /**
35
+ * Marks a field that only the chain fills.
36
+ **/
37
+ declare function onchainOnly<S extends z.ZodType>(schema: S): S;
38
+ /**
39
+ * Marks a numeric field whose two sources may drift within {@link kind}.
40
+ **/
41
+ declare function tolerance<S extends z.ZodType>(schema: S, kind: CompareTolerance): S;
42
+ /**
43
+ * The compare tag registered on a schema, if any.
44
+ **/
45
+ declare function compareTagOf(schema: z.ZodType): CompareTag | undefined;
46
+ //#endregion
47
+ export { CompareTag, CompareTolerance, ToleranceCompareTag, compareTagOf, offchainOnly, onchainOnly, tolerance };
@@ -2,6 +2,7 @@ import { Amount, AssetType, Bps, ChainId, Leverage, Timestamp, Token, TokenAmoun
2
2
  import { Curator, CuratorName } from "./curators.js";
3
3
  import { CHART_METRIC_UNITS, CHART_RANGES, CHART_UNAVAILABLE_CODES, ChartBundle, ChartDenomination, ChartMetric, ChartQuery, ChartRange, ChartSeries, ChartSeriesOk, ChartSeriesUnavailable, ChartUnavailableCode, ChartUnit, ChartValue, ChartWindow, GridSampling, OpportunityChartMetric, POOL_OPPORTUNITY_CHART_METRICS, POOL_POSITION_CHART_METRICS, PoolOpportunityChartMetric, PoolPositionChartMetric, PositionChartMetric, STRATEGY_OPPORTUNITY_CHART_METRICS, STRATEGY_POSITION_CHART_METRICS, StrategyOpportunityChartMetric, StrategyPositionChartMetric } from "./charts.js";
4
4
  import { chartBundleSchemaFor, chartDenominationSchema, chartMetricSchema, chartQueryCodec, chartQueryParamsSchema, chartQuerySchema, chartRangeSchema, chartSeriesSchema, chartValueSchema, chartWindowSchema, poolOpportunityChartMetricSchema, poolPositionChartMetricSchema, strategyOpportunityChartMetricSchema, strategyPositionChartMetricSchema } from "./charts.schema.js";
5
+ import { CompareTag, CompareTolerance, ToleranceCompareTag, compareTagOf, offchainOnly, onchainOnly, tolerance } from "./compare.schema.js";
5
6
  import { curatorNameSchema, curatorSchema } from "./curators.schema.js";
6
7
  import { ChainScopedFilter, FILTER_ALL, FilterAll, Filterable, isFilterSet } from "./filters.js";
7
8
  import { booleanParamSchema, encodeFlag, filterAllSchema, filterable } from "./filters.schema.js";
@@ -16,4 +17,4 @@ import { borrowRateBreakdownSchema, pnlBreakdownSchema, pointsProgramPnLSchema,
16
17
  import { amountSchema, assetTypeSchema, bpsSchema, chainIdSchema, leverageSchema, timestampSchema, tokenAmountSchema, tokenSchema, txCallSchema } from "./primitives.schema.js";
17
18
  import { ChainFailed, ChainMetadata, ChainScoped, ChainSucceeded, DataResponse, DataSource, ResponseMetadata } from "./response.js";
18
19
  import { chainFailedSchema, chainMetadataSchema, chainSucceededSchema, dataSourceSchema, responseMetadataSchema, responseSchema } from "./response.schema.js";
19
- export { Amount, ApyBreakdown, AssetType, BorrowRateBreakdown, Bps, CHART_METRIC_UNITS, CHART_RANGES, CHART_UNAVAILABLE_CODES, ChainFailed, ChainId, ChainMetadata, ChainScoped, ChainScopedFilter, ChainSucceeded, ChartBundle, ChartDenomination, ChartMetric, ChartQuery, ChartRange, ChartSeries, ChartSeriesOk, ChartSeriesUnavailable, ChartUnavailableCode, ChartUnit, ChartValue, ChartWindow, Curator, CuratorName, DataResponse, DataSource, DelayedReceivedAsset, FILTER_ALL, FilterAll, Filterable, GridSampling, InstantReceivedAsset, Leverage, LiquidatableAccount, LiquidatableAccountFilter, LiquidationApproval, LiquidationDetails, LiquidationPosition, Notice, NoticeKind, NoticeSubject, Opportunity, OpportunityBase, OpportunityChartMetric, OpportunityDetail, OpportunityFilter, OpportunityId, OpportunityKey, OpportunityKind, POOL_OPPORTUNITY_CHART_METRICS, POOL_POSITION_CHART_METRICS, PnlBreakdown, PointRewards, PointsProgram, PointsProgramPnL, PointsRewardsPnL, PoolOpportunity, PoolOpportunityChartMetric, PoolOpportunityDetail, PoolOpportunityKey, PoolOpportunityRef, PoolPosition, PoolPositionChartMetric, PoolPositionKey, PoolPositionRef, Position, PositionChartMetric, PositionCollateral, PositionFilter, PositionId, PositionKey, PositionKind, PositionMetrics, PositionTransaction, PositionTransactionKind, PositionsTotals, PriceFeedData, PriceFeedSummary, QuotaAsset, RateCurve, RateCurvePoint, ReceivedAsset, ResponseMetadata, Rewards, RewardsPnL, STRATEGY_OPPORTUNITY_CHART_METRICS, STRATEGY_POSITION_CHART_METRICS, StrategyOpportunity, StrategyOpportunityChartMetric, StrategyOpportunityDetail, StrategyOpportunityKey, StrategyOpportunityRef, StrategyPosition, StrategyPositionChartMetric, StrategyPositionKey, StrategyPositionRef, Timestamp, Token, TokenAmount, TokenRewards, TokenRewardsPnL, TxCall, amountSchema, apyBreakdownSchema, assetTypeSchema, booleanParamSchema, borrowRateBreakdownSchema, bpsSchema, chainFailedSchema, chainIdSchema, chainMetadataSchema, chainSucceededSchema, chartBundleSchemaFor, chartDenominationSchema, chartMetricSchema, chartQueryCodec, chartQueryParamsSchema, chartQuerySchema, chartRangeSchema, chartSeriesSchema, chartValueSchema, chartWindowSchema, curatorNameSchema, curatorSchema, dataSourceSchema, delayedReceivedAssetSchema, encodeFlag, filterAllSchema, filterable, instantReceivedAssetSchema, isFilterSet, leverageSchema, liquidatableAccountFilterSchema, liquidatableAccountSchema, liquidationApprovalSchema, liquidationDetailsSchema, liquidationPositionId, liquidationPositionSchema, matchesLiquidatableAccountFilter, matchesOpportunityFilter, matchesPositionFilter, noticeKindSchema, noticeSchema, opportunityBaseSchema, opportunityDetailSchema, opportunityFilterQueryParamsSchema, opportunityFilterQuerySchema, opportunityFilterSchema, opportunityId, opportunityKeySchema, opportunityKindSchema, opportunitySchema, pnlBreakdownSchema, pointRewardsSchema, pointsProgramPnLSchema, pointsProgramSchema, pointsRewardsPnLSchema, poolOpportunityChartMetricSchema, poolOpportunityDetailSchema, poolOpportunityId, poolOpportunityKeySchema, poolOpportunitySchema, poolPositionChartMetricSchema, poolPositionId, poolPositionKeySchema, poolPositionSchema, positionCollateralSchema, positionFilterQueryParamsSchema, positionFilterQuerySchema, positionFilterSchema, positionId, positionKeySchema, positionKindSchema, positionSchema, positionTransactionKindSchema, positionTransactionSchema, positionsTotalsSchema, priceFeedDataSchema, priceFeedSummarySchema, quotaAssetSchema, rateCurvePointSchema, rateCurveSchema, receivedAssetSchema, responseMetadataSchema, responseSchema, rewardsPnLSchema, rewardsSchema, strategyOpportunityChartMetricSchema, strategyOpportunityDetailSchema, strategyOpportunityId, strategyOpportunityKeySchema, strategyOpportunitySchema, strategyPositionChartMetricSchema, strategyPositionId, strategyPositionKeySchema, strategyPositionSchema, timestampSchema, tokenAmountSchema, tokenRewardsPnLSchema, tokenRewardsSchema, tokenSchema, txCallSchema };
20
+ export { Amount, ApyBreakdown, AssetType, BorrowRateBreakdown, Bps, CHART_METRIC_UNITS, CHART_RANGES, CHART_UNAVAILABLE_CODES, ChainFailed, ChainId, ChainMetadata, ChainScoped, ChainScopedFilter, ChainSucceeded, ChartBundle, ChartDenomination, ChartMetric, ChartQuery, ChartRange, ChartSeries, ChartSeriesOk, ChartSeriesUnavailable, ChartUnavailableCode, ChartUnit, ChartValue, ChartWindow, CompareTag, CompareTolerance, Curator, CuratorName, DataResponse, DataSource, DelayedReceivedAsset, FILTER_ALL, FilterAll, Filterable, GridSampling, InstantReceivedAsset, Leverage, LiquidatableAccount, LiquidatableAccountFilter, LiquidationApproval, LiquidationDetails, LiquidationPosition, Notice, NoticeKind, NoticeSubject, Opportunity, OpportunityBase, OpportunityChartMetric, OpportunityDetail, OpportunityFilter, OpportunityId, OpportunityKey, OpportunityKind, POOL_OPPORTUNITY_CHART_METRICS, POOL_POSITION_CHART_METRICS, PnlBreakdown, PointRewards, PointsProgram, PointsProgramPnL, PointsRewardsPnL, PoolOpportunity, PoolOpportunityChartMetric, PoolOpportunityDetail, PoolOpportunityKey, PoolOpportunityRef, PoolPosition, PoolPositionChartMetric, PoolPositionKey, PoolPositionRef, Position, PositionChartMetric, PositionCollateral, PositionFilter, PositionId, PositionKey, PositionKind, PositionMetrics, PositionTransaction, PositionTransactionKind, PositionsTotals, PriceFeedData, PriceFeedSummary, QuotaAsset, RateCurve, RateCurvePoint, ReceivedAsset, ResponseMetadata, Rewards, RewardsPnL, STRATEGY_OPPORTUNITY_CHART_METRICS, STRATEGY_POSITION_CHART_METRICS, StrategyOpportunity, StrategyOpportunityChartMetric, StrategyOpportunityDetail, StrategyOpportunityKey, StrategyOpportunityRef, StrategyPosition, StrategyPositionChartMetric, StrategyPositionKey, StrategyPositionRef, Timestamp, Token, TokenAmount, TokenRewards, TokenRewardsPnL, ToleranceCompareTag, TxCall, amountSchema, apyBreakdownSchema, assetTypeSchema, booleanParamSchema, borrowRateBreakdownSchema, bpsSchema, chainFailedSchema, chainIdSchema, chainMetadataSchema, chainSucceededSchema, chartBundleSchemaFor, chartDenominationSchema, chartMetricSchema, chartQueryCodec, chartQueryParamsSchema, chartQuerySchema, chartRangeSchema, chartSeriesSchema, chartValueSchema, chartWindowSchema, compareTagOf, curatorNameSchema, curatorSchema, dataSourceSchema, delayedReceivedAssetSchema, encodeFlag, filterAllSchema, filterable, instantReceivedAssetSchema, isFilterSet, leverageSchema, liquidatableAccountFilterSchema, liquidatableAccountSchema, liquidationApprovalSchema, liquidationDetailsSchema, liquidationPositionId, liquidationPositionSchema, matchesLiquidatableAccountFilter, matchesOpportunityFilter, matchesPositionFilter, noticeKindSchema, noticeSchema, offchainOnly, onchainOnly, opportunityBaseSchema, opportunityDetailSchema, opportunityFilterQueryParamsSchema, opportunityFilterQuerySchema, opportunityFilterSchema, opportunityId, opportunityKeySchema, opportunityKindSchema, opportunitySchema, pnlBreakdownSchema, pointRewardsSchema, pointsProgramPnLSchema, pointsProgramSchema, pointsRewardsPnLSchema, poolOpportunityChartMetricSchema, poolOpportunityDetailSchema, poolOpportunityId, poolOpportunityKeySchema, poolOpportunitySchema, poolPositionChartMetricSchema, poolPositionId, poolPositionKeySchema, poolPositionSchema, positionCollateralSchema, positionFilterQueryParamsSchema, positionFilterQuerySchema, positionFilterSchema, positionId, positionKeySchema, positionKindSchema, positionSchema, positionTransactionKindSchema, positionTransactionSchema, positionsTotalsSchema, priceFeedDataSchema, priceFeedSummarySchema, quotaAssetSchema, rateCurvePointSchema, rateCurveSchema, receivedAssetSchema, responseMetadataSchema, responseSchema, rewardsPnLSchema, rewardsSchema, strategyOpportunityChartMetricSchema, strategyOpportunityDetailSchema, strategyOpportunityId, strategyOpportunityKeySchema, strategyOpportunitySchema, strategyPositionChartMetricSchema, strategyPositionId, strategyPositionKeySchema, strategyPositionSchema, timestampSchema, tokenAmountSchema, tokenRewardsPnLSchema, tokenRewardsSchema, tokenSchema, tolerance, txCallSchema };
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@gearbox-protocol/sdk",
3
- "version": "15.1.0-next.11",
3
+ "version": "15.1.0-next.12",
4
4
  "description": "Gearbox SDK",
5
5
  "license": "MIT",
6
6
  "repository": {