@gearbox-protocol/sdk 13.0.0-next.9 → 13.1.0-next.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/abi/310/iLinearInterestRateModelV310.js +92 -0
- package/dist/cjs/abi/310/iSecuritizeDegenNFT.js +263 -0
- package/dist/cjs/abi/310/iSecuritizeKYCFactory.js +278 -0
- package/dist/cjs/abi/errors.js +0 -145
- package/dist/cjs/abi/iPriceFeed.js +84 -0
- package/dist/cjs/{sdk/sdk-gov-legacy/oracles → common-utils}/index.js +4 -4
- package/dist/cjs/common-utils/package.json +1 -0
- package/dist/cjs/common-utils/utils/assetsMath.js +216 -0
- package/dist/cjs/common-utils/utils/bigintMath.js +65 -0
- package/dist/cjs/common-utils/utils/creditAccount/calcHealthFactor.js +76 -0
- package/dist/cjs/common-utils/utils/creditAccount/calcOverallAPY.js +81 -0
- package/dist/cjs/{sdk/accountMigration/MigrateCreditAccountsServiceV310.js → common-utils/utils/creditAccount/calcQuotaBorrowRate.js} +19 -7
- package/dist/cjs/{sdk/sdk-legacy/gearboxRewards/merklAPI.js → common-utils/utils/creditAccount/calcRelativeBaseBorrowRate.js} +11 -7
- package/dist/cjs/common-utils/utils/creditAccount/debt.js +64 -0
- package/dist/cjs/{sdk/accountMigration/MigrateCreditAccountsServiceV300.js → common-utils/utils/creditAccount/getTimeToLiquidation.js} +15 -7
- package/dist/cjs/common-utils/utils/creditAccount/index.js +40 -0
- package/dist/cjs/common-utils/utils/creditAccount/liquidationPrice.js +47 -0
- package/dist/cjs/common-utils/utils/creditAccount/quotaUtils.js +149 -0
- package/dist/cjs/common-utils/utils/creditAccount/sort.js +95 -0
- package/dist/cjs/common-utils/utils/endpoints.js +65 -0
- package/dist/cjs/{sdk/sdk-legacy → common-utils}/utils/index.js +10 -6
- package/dist/cjs/common-utils/utils/priceMath.js +66 -0
- package/dist/cjs/dev/AccountOpener.js +47 -7
- package/dist/cjs/dev/ltUtils.js +4 -91
- package/dist/cjs/dev/migrateFaucet.js +25 -53
- package/dist/cjs/dev/providers.js +12 -0
- package/dist/cjs/history/assembleOperations.js +103 -0
- package/dist/cjs/history/classifyMulticallOperations.js +157 -0
- package/dist/cjs/history/errors.js +91 -0
- package/dist/cjs/history/extractProtocolCalls.js +53 -0
- package/dist/cjs/history/extractTransfers.js +168 -0
- package/dist/cjs/history/findFacadeCalls.js +84 -0
- package/dist/cjs/history/index.js +39 -0
- package/dist/cjs/history/inner-operations.js +16 -0
- package/dist/cjs/{sdk/gauges/utils.js → history/internal-types.js} +2 -2
- package/dist/cjs/history/mapOperations.js +79 -0
- package/dist/cjs/history/package.json +1 -0
- package/dist/cjs/history/parseCreditAccountTransaction.js +86 -0
- package/dist/cjs/history/populateContractsRegister.js +68 -0
- package/dist/cjs/history/toLegacyOperation.js +182 -0
- package/dist/cjs/{plugins/adapters/contracts/YearnV2AdapterContract.js → history/trace-utils.js} +36 -21
- package/dist/cjs/permissionless/bindings/cross-chain-multisig.js +3 -3
- package/dist/cjs/permissionless/bindings/instance-manager.js +3 -3
- package/dist/cjs/permissionless/utils/price-update/get-prices.js +2 -6
- package/dist/cjs/plugins/adapters/AdaptersPlugin.js +13 -106
- package/dist/cjs/plugins/adapters/abi/index.js +2 -0
- package/dist/cjs/plugins/adapters/abi/targetContractAbi.js +5168 -0
- package/dist/cjs/plugins/adapters/contracts/AbstractAdapter.js +123 -3
- package/dist/cjs/plugins/adapters/contracts/AccountMigratorAdapterContract.js +8 -1
- package/dist/cjs/plugins/adapters/contracts/BalancerV3RouterAdapterContract.js +65 -30
- package/dist/cjs/plugins/adapters/contracts/BalancerV3WrapperAdapterContract.js +27 -11
- package/dist/cjs/plugins/adapters/contracts/CamelotV3AdapterContract.js +40 -21
- package/dist/cjs/plugins/adapters/contracts/ConvexV1BaseRewardPoolAdapterContract.js +100 -25
- package/dist/cjs/plugins/adapters/contracts/ConvexV1BoosterAdapterContract.js +74 -25
- package/dist/cjs/plugins/adapters/contracts/Curve2AssetsAdapterContract.js +79 -31
- package/dist/cjs/plugins/adapters/contracts/Curve3AssetsAdapterContract.js +79 -31
- package/dist/cjs/plugins/adapters/contracts/Curve4AssetsAdapterContract.js +84 -31
- package/dist/cjs/plugins/adapters/contracts/CurveV1AdapterDeposit.js +80 -33
- package/dist/cjs/plugins/adapters/contracts/CurveV1AdapterStETHContract.js +62 -26
- package/dist/cjs/plugins/adapters/contracts/CurveV1StableNGAdapterContract.js +92 -34
- package/dist/cjs/plugins/adapters/contracts/DaiUsdsAdapterContract.js +46 -14
- package/dist/cjs/plugins/adapters/contracts/ERC4626AdapterContract.js +62 -27
- package/dist/cjs/plugins/adapters/contracts/ERC4626ReferralAdapterContract.js +46 -14
- package/dist/cjs/plugins/adapters/contracts/FluidDexAdapterContract.js +34 -14
- package/dist/cjs/plugins/adapters/contracts/InfinifiGatewayAdapterContract.js +56 -23
- package/dist/cjs/plugins/adapters/contracts/InfinifiUnwindingGatewayAdapterContract.js +31 -14
- package/dist/cjs/plugins/adapters/contracts/KelpLRTDepositPoolAdapterContract.js +28 -12
- package/dist/cjs/plugins/adapters/contracts/KelpLRTWithdrawalManagerAdapterContract.js +35 -16
- package/dist/cjs/plugins/adapters/contracts/LidoV1AdapterContract.js +47 -17
- package/dist/cjs/plugins/adapters/contracts/MellowClaimerAdapterContract.js +29 -11
- package/dist/cjs/plugins/adapters/contracts/MellowDVVAdapterContract.js +45 -14
- package/dist/cjs/plugins/adapters/contracts/MellowDepositQueueAdapterContract.js +42 -17
- package/dist/cjs/plugins/adapters/contracts/MellowERC4626VaultAdapterContract.js +79 -42
- package/dist/cjs/plugins/adapters/contracts/MellowRedeemQueueAdapterContract.js +34 -14
- package/dist/cjs/plugins/adapters/contracts/MellowWrapperAdapterContract.js +27 -11
- package/dist/cjs/plugins/adapters/contracts/MidasIssuanceVaultAdapterContract.js +44 -17
- package/dist/cjs/plugins/adapters/contracts/MidasRedemptionVaultAdapterContract.js +49 -21
- package/dist/cjs/plugins/adapters/contracts/PendleRouterAdapterContract.js +92 -55
- package/dist/cjs/plugins/adapters/contracts/StakingRewardsAdapterContract.js +71 -37
- package/dist/cjs/plugins/adapters/contracts/TraderJoeRouterAdapterContract.js +55 -25
- package/dist/cjs/plugins/adapters/contracts/UniswapV2AdapterContract.js +44 -21
- package/dist/cjs/plugins/adapters/contracts/UniswapV3AdapterContract.js +42 -23
- package/dist/cjs/plugins/adapters/contracts/UniswapV4AdapterContract.js +53 -27
- package/dist/cjs/plugins/adapters/contracts/UpshiftVaultAdapterContract.js +42 -17
- package/dist/cjs/plugins/adapters/contracts/VelodromeV2AdapterContract.js +46 -25
- package/dist/cjs/plugins/adapters/contracts/WstETHV1AdapterContract.js +37 -11
- package/dist/cjs/plugins/adapters/contracts/index.js +7 -15
- package/dist/cjs/plugins/adapters/createAdapter.js +125 -0
- package/dist/cjs/plugins/adapters/index.js +6 -0
- package/dist/cjs/plugins/adapters/legacyAdapterOperations.js +16 -0
- package/dist/cjs/plugins/adapters/transferHelpers.js +127 -0
- package/dist/cjs/plugins/bots/PartialLiquidationBotV310Contract.js +4 -4
- package/dist/cjs/plugins/bots/abi/index.js +0 -2
- package/dist/cjs/plugins/degen-distributors/DegenDistributorsPlugin.js +2 -1
- package/dist/cjs/plugins/pools-history/Pools7DAgoPlugin.js +1 -1
- package/dist/cjs/sdk/GearboxSDK.js +6 -14
- package/dist/cjs/sdk/accounts/AbstractCreditAccountsService.js +479 -188
- package/dist/cjs/sdk/accounts/CreditAccountsServiceV310.js +27 -17
- package/dist/cjs/sdk/accounts/createCreditAccountService.js +0 -4
- package/dist/cjs/sdk/accounts/index.js +0 -2
- package/dist/cjs/sdk/base/BaseContract.js +60 -6
- package/dist/cjs/sdk/base/ChainContractsRegister.js +34 -11
- package/dist/cjs/sdk/base/Construct.js +29 -15
- package/dist/cjs/sdk/base/PlaceholderContract.js +2 -2
- package/dist/cjs/sdk/base/SDKConstruct.js +1 -1
- package/dist/cjs/sdk/base/TokensMeta.js +154 -11
- package/dist/cjs/sdk/{sdk-legacy/utils/math.js → base/errors.js} +12 -10
- package/dist/cjs/sdk/base/index.js +2 -0
- package/dist/cjs/sdk/chain/chains.js +11 -28
- package/dist/cjs/sdk/constants/addresses.js +2 -88
- package/dist/cjs/sdk/constants/networks.js +0 -32
- package/dist/cjs/sdk/constants/versions.js +0 -8
- package/dist/cjs/sdk/core/{address-provider/AbstractAddressProviderContract.js → AbstractAddressProviderContract.js} +3 -3
- package/dist/cjs/sdk/core/{address-provider/AddressProviderV310Contract.js → AddressProviderV310Contract.js} +1 -1
- package/dist/cjs/sdk/core/{address-provider/createAddressProvider.js → createAddressProvider.js} +4 -7
- package/dist/cjs/sdk/core/index.js +6 -6
- package/dist/cjs/sdk/{sdk-gov-legacy/tokens/aave.js → core/types.js} +2 -2
- package/dist/cjs/sdk/index.js +0 -10
- package/dist/cjs/sdk/market/MarketConfiguratorContract.js +3 -2
- package/dist/cjs/sdk/market/MarketRegister.js +0 -1
- package/dist/cjs/sdk/market/MarketSuite.js +4 -1
- package/dist/cjs/sdk/market/adapters/PlaceholderAdapterContracts.js +25 -4
- package/dist/cjs/sdk/market/adapters/{factory.js → createAdapter.js} +3 -3
- package/dist/cjs/sdk/market/adapters/index.js +2 -2
- package/dist/cjs/sdk/market/credit/CreditFacadeV310BaseContract.js +108 -0
- package/dist/cjs/sdk/market/credit/CreditFacadeV310Contract.js +3 -40
- package/dist/cjs/sdk/market/credit/CreditManagerV310Contract.js +1 -4
- package/dist/cjs/sdk/market/credit/createCreditConfigurator.js +1 -4
- package/dist/cjs/sdk/market/credit/createCreditFacade.js +1 -4
- package/dist/cjs/sdk/market/credit/createCreditManager.js +1 -4
- package/dist/cjs/sdk/market/credit/index.js +2 -6
- package/dist/cjs/sdk/market/oracle/PriceOracleBaseContract.js +9 -57
- package/dist/cjs/sdk/market/oracle/createPriceOracle.js +7 -38
- package/dist/cjs/sdk/market/oracle/index.js +0 -2
- package/dist/cjs/sdk/market/pool/GaugeContract.js +3 -3
- package/dist/cjs/sdk/market/pool/LinearInterestRateModelContract.js +2 -2
- package/dist/cjs/sdk/market/pool/PoolSuite.js +3 -0
- package/dist/cjs/sdk/market/pool/PoolV310Contract.js +18 -3
- package/dist/cjs/sdk/market/pool/SecuritizeKYCFactory.js +97 -0
- package/dist/cjs/sdk/market/pool/createPool.js +0 -4
- package/dist/cjs/sdk/market/pool/createPoolQuotaKeeper.js +0 -4
- package/dist/cjs/sdk/market/pool/index.js +4 -4
- package/dist/cjs/sdk/market/pricefeeds/AbstractLPPriceFeed.js +14 -53
- package/dist/cjs/sdk/market/pricefeeds/PriceFeedsRegister.js +5 -3
- package/dist/cjs/sdk/market/pricefeeds/PythPriceFeed.js +20 -0
- package/dist/cjs/sdk/market/pricefeeds/RedstonePriceFeed.js +19 -46
- package/dist/cjs/sdk/market/pricefeeds/updates/PriceUpdatesCache.js +0 -17
- package/dist/cjs/sdk/market/pricefeeds/updates/PythUpdater.js +7 -7
- package/dist/cjs/sdk/market/pricefeeds/updates/RedstoneUpdater.js +6 -6
- package/dist/cjs/sdk/market/pricefeeds/updates/fetchPythPayloads.js +7 -7
- package/dist/cjs/sdk/market/pricefeeds/updates/fetchRedstonePayloads.js +10 -10
- package/dist/cjs/sdk/plugins/index.js +1 -3
- package/dist/cjs/sdk/pools/PoolService.js +149 -18
- package/dist/cjs/sdk/router/AbstractRouterContract.js +0 -4
- package/dist/cjs/sdk/router/RouterV310Contract.js +3 -32
- package/dist/cjs/sdk/router/createRouter.js +0 -4
- package/dist/cjs/sdk/router/helpers.js +0 -5
- package/dist/cjs/sdk/router/index.js +0 -2
- package/dist/cjs/sdk/utils/AddressMap.js +1 -1
- package/dist/cjs/sdk/utils/abi-decode.js +43 -2
- package/dist/cjs/sdk/utils/formatter.js +55 -2
- package/dist/cjs/sdk/utils/viem/sendRawTx.js +16 -0
- package/dist/esm/abi/310/iLinearInterestRateModelV310.js +68 -0
- package/dist/esm/abi/310/iSecuritizeDegenNFT.js +239 -0
- package/dist/esm/abi/310/iSecuritizeKYCFactory.js +254 -0
- package/dist/esm/abi/errors.js +0 -143
- package/dist/esm/abi/iPriceFeed.js +60 -0
- package/dist/esm/common-utils/index.js +1 -0
- package/dist/esm/common-utils/package.json +1 -0
- package/dist/esm/{sdk/sdk-legacy/core/assets.js → common-utils/utils/assetsMath.js} +80 -14
- package/dist/esm/common-utils/utils/bigintMath.js +41 -0
- package/dist/esm/common-utils/utils/creditAccount/calcHealthFactor.js +55 -0
- package/dist/esm/common-utils/utils/creditAccount/calcOverallAPY.js +60 -0
- package/dist/esm/common-utils/utils/creditAccount/calcQuotaBorrowRate.js +18 -0
- package/dist/esm/common-utils/utils/creditAccount/calcRelativeBaseBorrowRate.js +10 -0
- package/dist/esm/common-utils/utils/creditAccount/debt.js +43 -0
- package/dist/esm/common-utils/utils/creditAccount/getTimeToLiquidation.js +18 -0
- package/dist/esm/common-utils/utils/creditAccount/index.js +10 -0
- package/dist/esm/common-utils/utils/creditAccount/liquidationPrice.js +23 -0
- package/dist/esm/common-utils/utils/creditAccount/quotaUtils.js +125 -0
- package/dist/esm/common-utils/utils/creditAccount/sort.js +67 -0
- package/dist/esm/common-utils/utils/endpoints.js +41 -0
- package/dist/esm/common-utils/utils/index.js +5 -0
- package/dist/esm/common-utils/utils/priceMath.js +42 -0
- package/dist/esm/dev/AccountOpener.js +48 -7
- package/dist/esm/dev/ltUtils.js +7 -100
- package/dist/esm/dev/migrateFaucet.js +24 -51
- package/dist/esm/dev/providers.js +12 -0
- package/dist/esm/history/assembleOperations.js +79 -0
- package/dist/esm/history/classifyMulticallOperations.js +137 -0
- package/dist/esm/history/errors.js +62 -0
- package/dist/esm/history/extractProtocolCalls.js +32 -0
- package/dist/esm/history/extractTransfers.js +148 -0
- package/dist/esm/history/findFacadeCalls.js +63 -0
- package/dist/esm/history/index.js +9 -0
- package/dist/esm/history/mapOperations.js +55 -0
- package/dist/esm/history/package.json +1 -0
- package/dist/esm/history/parseCreditAccountTransaction.js +62 -0
- package/dist/esm/history/populateContractsRegister.js +52 -0
- package/dist/esm/history/toLegacyOperation.js +157 -0
- package/dist/esm/history/trace-utils.js +36 -0
- package/dist/esm/permissionless/bindings/cross-chain-multisig.js +3 -3
- package/dist/esm/permissionless/bindings/instance-manager.js +3 -3
- package/dist/esm/permissionless/utils/price-update/get-prices.js +2 -6
- package/dist/esm/plugins/adapters/AdaptersPlugin.js +14 -148
- package/dist/esm/plugins/adapters/abi/index.js +1 -0
- package/dist/esm/plugins/adapters/abi/targetContractAbi.js +5113 -0
- package/dist/esm/plugins/adapters/contracts/AbstractAdapter.js +133 -4
- package/dist/esm/plugins/adapters/contracts/AccountMigratorAdapterContract.js +8 -1
- package/dist/esm/plugins/adapters/contracts/BalancerV3RouterAdapterContract.js +64 -30
- package/dist/esm/plugins/adapters/contracts/BalancerV3WrapperAdapterContract.js +27 -11
- package/dist/esm/plugins/adapters/contracts/CamelotV3AdapterContract.js +40 -21
- package/dist/esm/plugins/adapters/contracts/ConvexV1BaseRewardPoolAdapterContract.js +109 -26
- package/dist/esm/plugins/adapters/contracts/ConvexV1BoosterAdapterContract.js +76 -25
- package/dist/esm/plugins/adapters/contracts/Curve2AssetsAdapterContract.js +81 -31
- package/dist/esm/plugins/adapters/contracts/Curve3AssetsAdapterContract.js +81 -31
- package/dist/esm/plugins/adapters/contracts/Curve4AssetsAdapterContract.js +86 -31
- package/dist/esm/plugins/adapters/contracts/CurveV1AdapterDeposit.js +82 -33
- package/dist/esm/plugins/adapters/contracts/CurveV1AdapterStETHContract.js +64 -26
- package/dist/esm/plugins/adapters/contracts/CurveV1StableNGAdapterContract.js +97 -34
- package/dist/esm/plugins/adapters/contracts/DaiUsdsAdapterContract.js +48 -14
- package/dist/esm/plugins/adapters/contracts/ERC4626AdapterContract.js +64 -27
- package/dist/esm/plugins/adapters/contracts/ERC4626ReferralAdapterContract.js +48 -14
- package/dist/esm/plugins/adapters/contracts/FluidDexAdapterContract.js +36 -14
- package/dist/esm/plugins/adapters/contracts/InfinifiGatewayAdapterContract.js +58 -23
- package/dist/esm/plugins/adapters/contracts/InfinifiUnwindingGatewayAdapterContract.js +37 -15
- package/dist/esm/plugins/adapters/contracts/KelpLRTDepositPoolAdapterContract.js +33 -12
- package/dist/esm/plugins/adapters/contracts/KelpLRTWithdrawalManagerAdapterContract.js +40 -16
- package/dist/esm/plugins/adapters/contracts/LidoV1AdapterContract.js +49 -17
- package/dist/esm/plugins/adapters/contracts/MellowClaimerAdapterContract.js +31 -11
- package/dist/esm/plugins/adapters/contracts/MellowDVVAdapterContract.js +47 -14
- package/dist/esm/plugins/adapters/contracts/MellowDepositQueueAdapterContract.js +44 -17
- package/dist/esm/plugins/adapters/contracts/MellowERC4626VaultAdapterContract.js +82 -43
- package/dist/esm/plugins/adapters/contracts/MellowRedeemQueueAdapterContract.js +36 -14
- package/dist/esm/plugins/adapters/contracts/MellowWrapperAdapterContract.js +29 -11
- package/dist/esm/plugins/adapters/contracts/MidasIssuanceVaultAdapterContract.js +46 -17
- package/dist/esm/plugins/adapters/contracts/MidasRedemptionVaultAdapterContract.js +55 -22
- package/dist/esm/plugins/adapters/contracts/PendleRouterAdapterContract.js +91 -54
- package/dist/esm/plugins/adapters/contracts/StakingRewardsAdapterContract.js +73 -37
- package/dist/esm/plugins/adapters/contracts/TraderJoeRouterAdapterContract.js +54 -25
- package/dist/esm/plugins/adapters/contracts/UniswapV2AdapterContract.js +45 -22
- package/dist/esm/plugins/adapters/contracts/UniswapV3AdapterContract.js +43 -24
- package/dist/esm/plugins/adapters/contracts/UniswapV4AdapterContract.js +57 -28
- package/dist/esm/plugins/adapters/contracts/UpshiftVaultAdapterContract.js +48 -18
- package/dist/esm/plugins/adapters/contracts/VelodromeV2AdapterContract.js +46 -25
- package/dist/esm/plugins/adapters/contracts/WstETHV1AdapterContract.js +39 -11
- package/dist/esm/plugins/adapters/contracts/index.js +3 -7
- package/dist/esm/plugins/adapters/createAdapter.js +140 -0
- package/dist/esm/plugins/adapters/index.js +3 -0
- package/dist/esm/plugins/adapters/transferHelpers.js +95 -0
- package/dist/esm/plugins/bots/PartialLiquidationBotV310Contract.js +5 -8
- package/dist/esm/plugins/bots/abi/index.js +0 -1
- package/dist/esm/plugins/degen-distributors/DegenDistributorsPlugin.js +2 -1
- package/dist/esm/plugins/pools-history/Pools7DAgoPlugin.js +1 -2
- package/dist/esm/sdk/GearboxSDK.js +7 -23
- package/dist/esm/sdk/accounts/AbstractCreditAccountsService.js +483 -193
- package/dist/esm/sdk/accounts/CreditAccountsServiceV310.js +27 -17
- package/dist/esm/sdk/accounts/createCreditAccountService.js +1 -5
- package/dist/esm/sdk/accounts/index.js +0 -1
- package/dist/esm/sdk/base/BaseContract.js +62 -6
- package/dist/esm/sdk/base/ChainContractsRegister.js +34 -11
- package/dist/esm/sdk/base/Construct.js +29 -15
- package/dist/esm/sdk/base/PlaceholderContract.js +2 -2
- package/dist/esm/sdk/base/SDKConstruct.js +1 -1
- package/dist/esm/sdk/base/TokensMeta.js +158 -10
- package/dist/esm/sdk/base/errors.js +11 -0
- package/dist/esm/sdk/base/index.js +1 -0
- package/dist/esm/sdk/chain/chains.js +12 -28
- package/dist/esm/sdk/constants/addresses.js +1 -83
- package/dist/esm/sdk/constants/networks.js +0 -31
- package/dist/esm/sdk/constants/versions.js +0 -6
- package/dist/esm/sdk/core/{address-provider/AbstractAddressProviderContract.js → AbstractAddressProviderContract.js} +3 -3
- package/dist/esm/sdk/core/{address-provider/AddressProviderV310Contract.js → AddressProviderV310Contract.js} +1 -1
- package/dist/esm/sdk/core/{address-provider/createAddressProvider.js → createAddressProvider.js} +4 -8
- package/dist/esm/sdk/core/index.js +3 -3
- package/dist/esm/sdk/index.js +0 -5
- package/dist/esm/sdk/market/MarketConfiguratorContract.js +3 -2
- package/dist/esm/sdk/market/MarketRegister.js +0 -1
- package/dist/esm/sdk/market/MarketSuite.js +5 -2
- package/dist/esm/sdk/market/adapters/PlaceholderAdapterContracts.js +29 -5
- package/dist/esm/sdk/market/adapters/index.js +1 -1
- package/dist/esm/sdk/market/credit/CreditFacadeV310BaseContract.js +86 -0
- package/dist/esm/sdk/market/credit/CreditFacadeV310Contract.js +3 -43
- package/dist/esm/sdk/market/credit/CreditManagerV310Contract.js +1 -4
- package/dist/esm/sdk/market/credit/createCreditConfigurator.js +2 -5
- package/dist/esm/sdk/market/credit/createCreditFacade.js +2 -5
- package/dist/esm/sdk/market/credit/createCreditManager.js +2 -5
- package/dist/esm/sdk/market/credit/index.js +1 -3
- package/dist/esm/sdk/market/oracle/PriceOracleBaseContract.js +10 -59
- package/dist/esm/sdk/market/oracle/createPriceOracle.js +7 -38
- package/dist/esm/sdk/market/oracle/index.js +0 -1
- package/dist/esm/sdk/market/pool/GaugeContract.js +3 -3
- package/dist/esm/sdk/market/pool/LinearInterestRateModelContract.js +2 -2
- package/dist/esm/sdk/market/pool/PoolSuite.js +3 -0
- package/dist/esm/sdk/market/pool/PoolV310Contract.js +18 -3
- package/dist/esm/sdk/market/pool/SecuritizeKYCFactory.js +73 -0
- package/dist/esm/sdk/market/pool/createPool.js +1 -5
- package/dist/esm/sdk/market/pool/createPoolQuotaKeeper.js +1 -5
- package/dist/esm/sdk/market/pool/index.js +2 -2
- package/dist/esm/sdk/market/pricefeeds/AbstractLPPriceFeed.js +14 -53
- package/dist/esm/sdk/market/pricefeeds/PriceFeedsRegister.js +5 -3
- package/dist/esm/sdk/market/pricefeeds/PythPriceFeed.js +21 -1
- package/dist/esm/sdk/market/pricefeeds/RedstonePriceFeed.js +20 -47
- package/dist/esm/sdk/market/pricefeeds/updates/PriceUpdatesCache.js +0 -17
- package/dist/esm/sdk/market/pricefeeds/updates/PythUpdater.js +7 -7
- package/dist/esm/sdk/market/pricefeeds/updates/RedstoneUpdater.js +6 -6
- package/dist/esm/sdk/market/pricefeeds/updates/fetchPythPayloads.js +7 -7
- package/dist/esm/sdk/market/pricefeeds/updates/fetchRedstonePayloads.js +10 -10
- package/dist/esm/sdk/plugins/index.js +0 -1
- package/dist/esm/sdk/pools/PoolService.js +149 -18
- package/dist/esm/sdk/router/AbstractRouterContract.js +0 -4
- package/dist/esm/sdk/router/RouterV310Contract.js +3 -32
- package/dist/esm/sdk/router/createRouter.js +1 -5
- package/dist/esm/sdk/router/helpers.js +0 -4
- package/dist/esm/sdk/router/index.js +0 -1
- package/dist/esm/sdk/utils/AddressMap.js +1 -1
- package/dist/esm/sdk/utils/abi-decode.js +43 -2
- package/dist/esm/sdk/utils/formatter.js +37 -1
- package/dist/esm/sdk/utils/viem/sendRawTx.js +19 -1
- package/dist/types/abi/310/iLinearInterestRateModelV310.d.ts +111 -0
- package/dist/types/{sdk/market/pool/PoolQuotaKeeperV300Contract.d.ts → abi/310/iSecuritizeDegenNFT.d.ts} +115 -239
- package/dist/types/{sdk/core/BotListV3Contract.d.ts → abi/310/iSecuritizeKYCFactory.d.ts} +146 -147
- package/dist/types/abi/errors.d.ts +186 -996
- package/dist/types/abi/iPriceFeed.d.ts +87 -0
- package/dist/types/common-utils/index.d.ts +1 -0
- package/dist/types/common-utils/utils/assetsMath.d.ts +114 -0
- package/dist/types/common-utils/utils/bigintMath.d.ts +43 -0
- package/dist/types/common-utils/utils/creditAccount/calcHealthFactor.d.ts +25 -0
- package/dist/types/common-utils/utils/creditAccount/calcOverallAPY.d.ts +37 -0
- package/dist/types/common-utils/utils/creditAccount/calcQuotaBorrowRate.d.ts +18 -0
- package/dist/types/common-utils/utils/creditAccount/calcRelativeBaseBorrowRate.d.ts +15 -0
- package/dist/types/common-utils/utils/creditAccount/debt.d.ts +35 -0
- package/dist/types/common-utils/utils/creditAccount/getTimeToLiquidation.d.ts +16 -0
- package/dist/types/common-utils/utils/creditAccount/index.d.ts +10 -0
- package/dist/types/common-utils/utils/creditAccount/liquidationPrice.d.ts +25 -0
- package/dist/types/common-utils/utils/creditAccount/quotaUtils.d.ts +81 -0
- package/dist/types/common-utils/utils/creditAccount/sort.d.ts +55 -0
- package/dist/types/common-utils/utils/creditAccount/types.d.ts +18 -0
- package/dist/types/common-utils/utils/endpoints.d.ts +27 -0
- package/dist/types/common-utils/utils/index.d.ts +5 -0
- package/dist/types/common-utils/utils/priceMath.d.ts +47 -0
- package/dist/types/dev/migrateFaucet.d.ts +4 -5
- package/dist/types/dev/providers.d.ts +5 -5
- package/dist/types/history/assembleOperations.d.ts +22 -0
- package/dist/types/history/classifyMulticallOperations.d.ts +35 -0
- package/dist/types/history/errors.d.ts +30 -0
- package/dist/types/history/extractProtocolCalls.d.ts +8 -0
- package/dist/types/history/extractTransfers.d.ts +22 -0
- package/dist/types/history/findFacadeCalls.d.ts +9 -0
- package/dist/types/history/index.d.ts +6 -0
- package/dist/types/history/inner-operations.d.ts +57 -0
- package/dist/types/history/internal-types.d.ts +47 -0
- package/dist/types/history/mapOperations.d.ts +27 -0
- package/dist/types/history/parseCreditAccountTransaction.d.ts +27 -0
- package/dist/types/history/populateContractsRegister.d.ts +19 -0
- package/dist/types/history/toLegacyOperation.d.ts +18 -0
- package/dist/types/history/trace-utils.d.ts +12 -0
- package/dist/types/history/types.d.ts +71 -0
- package/dist/types/permissionless/bindings/cross-chain-multisig.d.ts +3 -3
- package/dist/types/permissionless/bindings/instance-manager.d.ts +3 -3
- package/dist/types/plugins/adapters/abi/index.d.ts +1 -0
- package/dist/types/plugins/adapters/abi/targetContractAbi.d.ts +8262 -0
- package/dist/types/plugins/adapters/contracts/AbstractAdapter.d.ts +50 -8
- package/dist/types/plugins/adapters/contracts/AccountMigratorAdapterContract.d.ts +238 -4
- package/dist/types/plugins/adapters/contracts/BalancerV3RouterAdapterContract.d.ts +135 -8
- package/dist/types/plugins/adapters/contracts/BalancerV3WrapperAdapterContract.d.ts +45 -4
- package/dist/types/plugins/adapters/contracts/CamelotV3AdapterContract.d.ts +225 -7
- package/dist/types/plugins/adapters/contracts/ConvexV1BaseRewardPoolAdapterContract.d.ts +418 -8
- package/dist/types/plugins/adapters/contracts/ConvexV1BoosterAdapterContract.d.ts +227 -10
- package/dist/types/plugins/adapters/contracts/Curve2AssetsAdapterContract.d.ts +1257 -10
- package/dist/types/plugins/adapters/contracts/Curve3AssetsAdapterContract.d.ts +1257 -10
- package/dist/types/plugins/adapters/contracts/Curve4AssetsAdapterContract.d.ts +1257 -10
- package/dist/types/plugins/adapters/contracts/CurveV1AdapterDeposit.d.ts +575 -11
- package/dist/types/plugins/adapters/contracts/CurveV1AdapterStETHContract.d.ts +1244 -10
- package/dist/types/plugins/adapters/contracts/CurveV1StableNGAdapterContract.d.ts +1227 -11
- package/dist/types/plugins/adapters/contracts/DaiUsdsAdapterContract.d.ts +69 -6
- package/dist/types/plugins/adapters/contracts/ERC4626AdapterContract.d.ts +492 -6
- package/dist/types/plugins/adapters/contracts/ERC4626ReferralAdapterContract.d.ts +67 -6
- package/dist/types/plugins/adapters/contracts/FluidDexAdapterContract.d.ts +132 -6
- package/dist/types/plugins/adapters/contracts/InfinifiGatewayAdapterContract.d.ts +144 -8
- package/dist/types/plugins/adapters/contracts/InfinifiUnwindingGatewayAdapterContract.d.ts +163 -5
- package/dist/types/plugins/adapters/contracts/KelpLRTDepositPoolAdapterContract.d.ts +248 -6
- package/dist/types/plugins/adapters/contracts/KelpLRTWithdrawalManagerAdapterContract.d.ts +367 -6
- package/dist/types/plugins/adapters/contracts/LidoV1AdapterContract.d.ts +104 -7
- package/dist/types/plugins/adapters/contracts/MellowClaimerAdapterContract.d.ts +46 -5
- package/dist/types/plugins/adapters/contracts/MellowDVVAdapterContract.d.ts +488 -6
- package/dist/types/plugins/adapters/contracts/MellowDepositQueueAdapterContract.d.ts +20 -7
- package/dist/types/plugins/adapters/contracts/MellowERC4626VaultAdapterContract.d.ts +493 -7
- package/dist/types/plugins/adapters/contracts/MellowRedeemQueueAdapterContract.d.ts +18 -6
- package/dist/types/plugins/adapters/contracts/MellowWrapperAdapterContract.d.ts +56 -5
- package/dist/types/plugins/adapters/contracts/MidasIssuanceVaultAdapterContract.d.ts +52 -7
- package/dist/types/plugins/adapters/contracts/MidasRedemptionVaultAdapterContract.d.ts +199 -7
- package/dist/types/plugins/adapters/contracts/PendleRouterAdapterContract.d.ts +1040 -17
- package/dist/types/plugins/adapters/contracts/StakingRewardsAdapterContract.d.ts +82 -8
- package/dist/types/plugins/adapters/contracts/TraderJoeRouterAdapterContract.d.ts +148 -10
- package/dist/types/plugins/adapters/contracts/UniswapV2AdapterContract.d.ts +758 -5
- package/dist/types/plugins/adapters/contracts/UniswapV3AdapterContract.d.ts +183 -4
- package/dist/types/plugins/adapters/contracts/UniswapV4AdapterContract.d.ts +110 -5
- package/dist/types/plugins/adapters/contracts/UpshiftVaultAdapterContract.d.ts +84 -7
- package/dist/types/plugins/adapters/contracts/VelodromeV2AdapterContract.d.ts +122 -4
- package/dist/types/plugins/adapters/contracts/WstETHV1AdapterContract.d.ts +275 -5
- package/dist/types/plugins/adapters/contracts/index.d.ts +3 -7
- package/dist/types/plugins/adapters/createAdapter.d.ts +5 -0
- package/dist/types/plugins/adapters/index.d.ts +3 -0
- package/dist/types/plugins/adapters/legacyAdapterOperations.d.ts +200 -0
- package/dist/types/plugins/adapters/transferHelpers.d.ts +60 -0
- package/dist/types/plugins/adapters/types.d.ts +64 -2
- package/dist/types/plugins/bots/abi/index.d.ts +0 -1
- package/dist/types/sdk/GearboxSDK.d.ts +0 -3
- package/dist/types/sdk/accounts/AbstractCreditAccountsService.d.ts +123 -37
- package/dist/types/sdk/accounts/CreditAccountsServiceV310.d.ts +2 -2
- package/dist/types/sdk/accounts/createCreditAccountService.d.ts +1 -1
- package/dist/types/sdk/accounts/index.d.ts +0 -1
- package/dist/types/sdk/accounts/types.d.ts +115 -43
- package/dist/types/sdk/base/BaseContract.d.ts +17 -4
- package/dist/types/sdk/base/ChainContractsRegister.d.ts +11 -3
- package/dist/types/sdk/base/Construct.d.ts +13 -13
- package/dist/types/sdk/base/PlaceholderContract.d.ts +2 -2
- package/dist/types/sdk/base/TokensMeta.d.ts +27 -4
- package/dist/types/sdk/base/errors.d.ts +3 -0
- package/dist/types/sdk/base/index.d.ts +1 -0
- package/dist/types/sdk/base/token-types.d.ts +10 -2
- package/dist/types/sdk/base/types.d.ts +36 -0
- package/dist/types/sdk/chain/chains.d.ts +1 -1
- package/dist/types/sdk/constants/addresses.d.ts +0 -19
- package/dist/types/sdk/constants/networks.d.ts +0 -5
- package/dist/types/sdk/constants/versions.d.ts +0 -2
- package/dist/types/sdk/core/{address-provider/AbstractAddressProviderContract.d.ts → AbstractAddressProviderContract.d.ts} +4 -4
- package/dist/types/sdk/core/{address-provider/AddressProviderV310Contract.d.ts → AddressProviderV310Contract.d.ts} +1 -1
- package/dist/types/sdk/core/{address-provider/createAddressProvider.d.ts → createAddressProvider.d.ts} +1 -1
- package/dist/types/sdk/core/index.d.ts +3 -3
- package/dist/types/sdk/core/{address-provider/types.d.ts → types.d.ts} +3 -3
- package/dist/types/sdk/index.d.ts +0 -5
- package/dist/types/sdk/market/MarketConfiguratorContract.d.ts +1 -1
- package/dist/types/sdk/market/MarketRegister.d.ts +0 -1
- package/dist/types/sdk/market/MarketSuite.d.ts +2 -0
- package/dist/types/sdk/market/adapters/PlaceholderAdapterContracts.d.ts +10 -5
- package/dist/types/sdk/market/adapters/index.d.ts +1 -1
- package/dist/types/sdk/market/credit/CreditConfiguratorV310Contract.d.ts +6 -2
- package/dist/types/sdk/market/credit/{CreditFacadeV300Contract.d.ts → CreditFacadeV310BaseContract.d.ts} +335 -267
- package/dist/types/sdk/market/credit/CreditFacadeV310Contract.d.ts +6 -848
- package/dist/types/sdk/market/credit/index.d.ts +1 -3
- package/dist/types/sdk/market/credit/types.d.ts +2 -3
- package/dist/types/sdk/market/loss-policy/createLossPolicy.d.ts +0 -12
- package/dist/types/sdk/market/oracle/PriceOracleBaseContract.d.ts +2 -21
- package/dist/types/sdk/market/oracle/PriceOracleV310Contract.d.ts +2 -2
- package/dist/types/sdk/market/oracle/createPriceOracle.d.ts +1 -15
- package/dist/types/sdk/market/oracle/index.d.ts +0 -1
- package/dist/types/sdk/market/oracle/types.d.ts +6 -18
- package/dist/types/sdk/market/pool/GaugeContract.d.ts +116 -76
- package/dist/types/sdk/market/pool/LinearInterestRateModelContract.d.ts +20 -0
- package/dist/types/sdk/market/pool/PoolSuite.d.ts +2 -0
- package/dist/types/sdk/market/pool/PoolV310Contract.d.ts +6 -2
- package/dist/types/sdk/market/pool/SecuritizeKYCFactory.d.ts +345 -0
- package/dist/types/sdk/market/pool/index.d.ts +2 -2
- package/dist/types/sdk/market/pool/types.d.ts +2 -4
- package/dist/types/sdk/market/pricefeeds/AbstractLPPriceFeed.d.ts +0 -3
- package/dist/types/sdk/market/pricefeeds/PythPriceFeed.d.ts +21 -1
- package/dist/types/sdk/market/pricefeeds/types.d.ts +0 -9
- package/dist/types/sdk/market/pricefeeds/updates/PriceUpdatesCache.d.ts +1 -8
- package/dist/types/sdk/market/pricefeeds/updates/PythUpdater.d.ts +1 -1
- package/dist/types/sdk/market/pricefeeds/updates/RedstoneUpdater.d.ts +1 -1
- package/dist/types/sdk/market/pricefeeds/updates/fetchPythPayloads.d.ts +2 -2
- package/dist/types/sdk/market/pricefeeds/updates/fetchRedstonePayloads.d.ts +2 -2
- package/dist/types/sdk/options.d.ts +2 -2
- package/dist/types/sdk/plugins/index.d.ts +0 -1
- package/dist/types/sdk/pools/PoolService.d.ts +4 -1
- package/dist/types/sdk/pools/types.d.ts +22 -3
- package/dist/types/sdk/router/AbstractRouterContract.d.ts +2 -7
- package/dist/types/sdk/router/RouterV310Contract.d.ts +1 -16
- package/dist/types/sdk/router/helpers.d.ts +2 -2
- package/dist/types/sdk/router/index.d.ts +0 -1
- package/dist/types/sdk/router/types.d.ts +2 -55
- package/dist/types/sdk/types/state-human.d.ts +1 -4
- package/dist/types/sdk/utils/AddressMap.d.ts +1 -1
- package/dist/types/sdk/utils/abi-decode.d.ts +14 -1
- package/dist/types/sdk/utils/formatter.d.ts +9 -0
- package/dist/types/sdk/utils/viem/sendRawTx.d.ts +5 -1
- package/package.json +26 -12
- package/dist/cjs/abi/iDegenDistributorV300.js +0 -100
- package/dist/cjs/abi/routerV300.js +0 -406
- package/dist/cjs/abi/v300.js +0 -4189
- package/dist/cjs/plugins/adapters/contracts/BalancerV2VaultAdapterContract.js +0 -51
- package/dist/cjs/plugins/adapters/contracts/EqualizerRouterAdapterContract.js +0 -58
- package/dist/cjs/plugins/adapters/contracts/InfraredVaultAdapterContract.js +0 -49
- package/dist/cjs/plugins/adapters/contracts/KodiakIslandGatewayAdapterContract.js +0 -56
- package/dist/cjs/plugins/adapters/contracts/MellowVaultAdapterContract.js +0 -46
- package/dist/cjs/plugins/adapters/contracts/types.js +0 -77
- package/dist/cjs/plugins/bots/abi/iPartialLiquidationBotV300.js +0 -164
- package/dist/cjs/sdk/accountMigration/AbstractMigrateCreditAccountsService.js +0 -192
- package/dist/cjs/sdk/accountMigration/createMigrateCreditAccountsService.js +0 -41
- package/dist/cjs/sdk/accountMigration/index.js +0 -26
- package/dist/cjs/sdk/accounts/CreditAccountsServiceV300.js +0 -454
- package/dist/cjs/sdk/core/BotListV3Contract.js +0 -101
- package/dist/cjs/sdk/core/GearStakingV3Contract.js +0 -83
- package/dist/cjs/sdk/core/address-provider/AddressProviderV300Contract.js +0 -116
- package/dist/cjs/sdk/core/address-provider/index.js +0 -28
- package/dist/cjs/sdk/gauges/GaugeStakingService.js +0 -118
- package/dist/cjs/sdk/gauges/index.js +0 -24
- package/dist/cjs/sdk/market/credit/CreditConfiguratorV300Contract.js +0 -139
- package/dist/cjs/sdk/market/credit/CreditFacadeV300Contract.js +0 -160
- package/dist/cjs/sdk/market/credit/CreditManagerV300Contract.js +0 -114
- package/dist/cjs/sdk/market/oracle/PriceOracleV300Contract.js +0 -129
- package/dist/cjs/sdk/market/pool/PoolQuotaKeeperV300Contract.js +0 -85
- package/dist/cjs/sdk/market/pool/PoolV300Contract.js +0 -135
- package/dist/cjs/sdk/plugins/V300StalenessPeriodPlugin.js +0 -131
- package/dist/cjs/sdk/poolMigration/index.js +0 -84
- package/dist/cjs/sdk/router/PathOptionFactory.js +0 -105
- package/dist/cjs/sdk/router/RouterV300Contract.js +0 -390
- package/dist/cjs/sdk/sdk-gov-legacy/contracts/adapters.js +0 -67
- package/dist/cjs/sdk/sdk-gov-legacy/contracts/contracts.js +0 -2576
- package/dist/cjs/sdk/sdk-gov-legacy/contracts/index.js +0 -24
- package/dist/cjs/sdk/sdk-gov-legacy/contracts/protocols.js +0 -58
- package/dist/cjs/sdk/sdk-gov-legacy/index.js +0 -26
- package/dist/cjs/sdk/sdk-gov-legacy/oracles/PriceFeedType.js +0 -52
- package/dist/cjs/sdk/sdk-gov-legacy/tokens/aura.js +0 -239
- package/dist/cjs/sdk/sdk-gov-legacy/tokens/balancer.js +0 -339
- package/dist/cjs/sdk/sdk-gov-legacy/tokens/compound.js +0 -16
- package/dist/cjs/sdk/sdk-gov-legacy/tokens/convex.js +0 -450
- package/dist/cjs/sdk/sdk-gov-legacy/tokens/curveLP.js +0 -394
- package/dist/cjs/sdk/sdk-gov-legacy/tokens/erc4626.js +0 -16
- package/dist/cjs/sdk/sdk-gov-legacy/tokens/gear.js +0 -16
- package/dist/cjs/sdk/sdk-gov-legacy/tokens/index.js +0 -52
- package/dist/cjs/sdk/sdk-gov-legacy/tokens/normal.js +0 -562
- package/dist/cjs/sdk/sdk-gov-legacy/tokens/stakingRewards.js +0 -45
- package/dist/cjs/sdk/sdk-gov-legacy/tokens/token.js +0 -1002
- package/dist/cjs/sdk/sdk-gov-legacy/tokens/tokenData.js +0 -80
- package/dist/cjs/sdk/sdk-gov-legacy/tokens/tokenType.js +0 -50
- package/dist/cjs/sdk/sdk-gov-legacy/tokens/wrapped.js +0 -16
- package/dist/cjs/sdk/sdk-gov-legacy/tokens/yearn.js +0 -95
- package/dist/cjs/sdk/sdk-gov-legacy/tokens/zircuit.js +0 -16
- package/dist/cjs/sdk/sdk-legacy/core/assets.js +0 -150
- package/dist/cjs/sdk/sdk-legacy/core/creditAccount.js +0 -510
- package/dist/cjs/sdk/sdk-legacy/core/creditAccount.spec.js +0 -1802
- package/dist/cjs/sdk/sdk-legacy/core/creditManager.js +0 -263
- package/dist/cjs/sdk/sdk-legacy/core/creditSession.js +0 -256
- package/dist/cjs/sdk/sdk-legacy/core/endpoint.js +0 -137
- package/dist/cjs/sdk/sdk-legacy/core/eventOrTx.js +0 -87
- package/dist/cjs/sdk/sdk-legacy/core/pool.js +0 -334
- package/dist/cjs/sdk/sdk-legacy/core/transactions.js +0 -783
- package/dist/cjs/sdk/sdk-legacy/gearboxRewards/api.js +0 -366
- package/dist/cjs/sdk/sdk-legacy/gearboxRewards/apy.js +0 -176
- package/dist/cjs/sdk/sdk-legacy/gearboxRewards/extraAPY.js +0 -137
- package/dist/cjs/sdk/sdk-legacy/gearboxRewards/index.js +0 -26
- package/dist/cjs/sdk/sdk-legacy/index.js +0 -52
- package/dist/cjs/sdk/sdk-legacy/payload/creditAccount.js +0 -16
- package/dist/cjs/sdk/sdk-legacy/payload/creditManager.js +0 -16
- package/dist/cjs/sdk/sdk-legacy/payload/creditSession.js +0 -16
- package/dist/cjs/sdk/sdk-legacy/payload/graphPayload.js +0 -16
- package/dist/cjs/sdk/sdk-legacy/payload/pool.js +0 -16
- package/dist/cjs/sdk/sdk-legacy/tokens/tokenData.js +0 -92
- package/dist/cjs/sdk/sdk-legacy/utils/formatter.js +0 -79
- package/dist/cjs/sdk/sdk-legacy/utils/price.js +0 -35
- package/dist/esm/abi/iDegenDistributorV300.js +0 -76
- package/dist/esm/abi/routerV300.js +0 -381
- package/dist/esm/abi/v300.js +0 -4154
- package/dist/esm/plugins/adapters/contracts/BalancerV2VaultAdapterContract.js +0 -27
- package/dist/esm/plugins/adapters/contracts/EqualizerRouterAdapterContract.js +0 -34
- package/dist/esm/plugins/adapters/contracts/InfraredVaultAdapterContract.js +0 -25
- package/dist/esm/plugins/adapters/contracts/KodiakIslandGatewayAdapterContract.js +0 -32
- package/dist/esm/plugins/adapters/contracts/MellowVaultAdapterContract.js +0 -22
- package/dist/esm/plugins/adapters/contracts/YearnV2AdapterContract.js +0 -22
- package/dist/esm/plugins/adapters/contracts/types.js +0 -48
- package/dist/esm/plugins/bots/abi/iPartialLiquidationBotV300.js +0 -140
- package/dist/esm/sdk/accountMigration/AbstractMigrateCreditAccountsService.js +0 -171
- package/dist/esm/sdk/accountMigration/MigrateCreditAccountsServiceV300.js +0 -6
- package/dist/esm/sdk/accountMigration/MigrateCreditAccountsServiceV310.js +0 -6
- package/dist/esm/sdk/accountMigration/createMigrateCreditAccountsService.js +0 -17
- package/dist/esm/sdk/accountMigration/index.js +0 -3
- package/dist/esm/sdk/accounts/CreditAccountsServiceV300.js +0 -442
- package/dist/esm/sdk/core/BotListV3Contract.js +0 -77
- package/dist/esm/sdk/core/GearStakingV3Contract.js +0 -59
- package/dist/esm/sdk/core/address-provider/AddressProviderV300Contract.js +0 -82
- package/dist/esm/sdk/core/address-provider/index.js +0 -4
- package/dist/esm/sdk/gauges/GaugeStakingService.js +0 -94
- package/dist/esm/sdk/gauges/index.js +0 -2
- package/dist/esm/sdk/market/credit/CreditConfiguratorV300Contract.js +0 -115
- package/dist/esm/sdk/market/credit/CreditFacadeV300Contract.js +0 -143
- package/dist/esm/sdk/market/credit/CreditManagerV300Contract.js +0 -90
- package/dist/esm/sdk/market/oracle/PriceOracleV300Contract.js +0 -111
- package/dist/esm/sdk/market/pool/PoolQuotaKeeperV300Contract.js +0 -61
- package/dist/esm/sdk/market/pool/PoolV300Contract.js +0 -116
- package/dist/esm/sdk/plugins/V300StalenessPeriodPlugin.js +0 -107
- package/dist/esm/sdk/poolMigration/index.js +0 -60
- package/dist/esm/sdk/router/PathOptionFactory.js +0 -92
- package/dist/esm/sdk/router/RouterV300Contract.js +0 -374
- package/dist/esm/sdk/sdk-gov-legacy/contracts/adapters.js +0 -43
- package/dist/esm/sdk/sdk-gov-legacy/contracts/contracts.js +0 -2538
- package/dist/esm/sdk/sdk-gov-legacy/contracts/index.js +0 -2
- package/dist/esm/sdk/sdk-gov-legacy/contracts/protocols.js +0 -34
- package/dist/esm/sdk/sdk-gov-legacy/index.js +0 -3
- package/dist/esm/sdk/sdk-gov-legacy/oracles/PriceFeedType.js +0 -28
- package/dist/esm/sdk/sdk-gov-legacy/oracles/index.js +0 -1
- package/dist/esm/sdk/sdk-gov-legacy/tokens/aura.js +0 -213
- package/dist/esm/sdk/sdk-gov-legacy/tokens/balancer.js +0 -314
- package/dist/esm/sdk/sdk-gov-legacy/tokens/convex.js +0 -424
- package/dist/esm/sdk/sdk-gov-legacy/tokens/curveLP.js +0 -369
- package/dist/esm/sdk/sdk-gov-legacy/tokens/gear.js +0 -0
- package/dist/esm/sdk/sdk-gov-legacy/tokens/index.js +0 -16
- package/dist/esm/sdk/sdk-gov-legacy/tokens/normal.js +0 -538
- package/dist/esm/sdk/sdk-gov-legacy/tokens/stakingRewards.js +0 -20
- package/dist/esm/sdk/sdk-gov-legacy/tokens/token.js +0 -975
- package/dist/esm/sdk/sdk-gov-legacy/tokens/tokenData.js +0 -55
- package/dist/esm/sdk/sdk-gov-legacy/tokens/tokenType.js +0 -26
- package/dist/esm/sdk/sdk-gov-legacy/tokens/wrapped.js +0 -0
- package/dist/esm/sdk/sdk-gov-legacy/tokens/yearn.js +0 -71
- package/dist/esm/sdk/sdk-gov-legacy/tokens/zircuit.js +0 -0
- package/dist/esm/sdk/sdk-legacy/core/creditAccount.js +0 -495
- package/dist/esm/sdk/sdk-legacy/core/creditAccount.spec.js +0 -1805
- package/dist/esm/sdk/sdk-legacy/core/creditManager.js +0 -242
- package/dist/esm/sdk/sdk-legacy/core/creditSession.js +0 -228
- package/dist/esm/sdk/sdk-legacy/core/endpoint.js +0 -107
- package/dist/esm/sdk/sdk-legacy/core/eventOrTx.js +0 -63
- package/dist/esm/sdk/sdk-legacy/core/pool.js +0 -311
- package/dist/esm/sdk/sdk-legacy/core/transactions.js +0 -732
- package/dist/esm/sdk/sdk-legacy/gearboxRewards/api.js +0 -332
- package/dist/esm/sdk/sdk-legacy/gearboxRewards/apy.js +0 -158
- package/dist/esm/sdk/sdk-legacy/gearboxRewards/extraAPY.js +0 -102
- package/dist/esm/sdk/sdk-legacy/gearboxRewards/index.js +0 -3
- package/dist/esm/sdk/sdk-legacy/gearboxRewards/merklAPI.js +0 -6
- package/dist/esm/sdk/sdk-legacy/index.js +0 -16
- package/dist/esm/sdk/sdk-legacy/payload/creditAccount.js +0 -0
- package/dist/esm/sdk/sdk-legacy/payload/creditManager.js +0 -0
- package/dist/esm/sdk/sdk-legacy/payload/creditSession.js +0 -0
- package/dist/esm/sdk/sdk-legacy/payload/graphPayload.js +0 -0
- package/dist/esm/sdk/sdk-legacy/payload/pool.js +0 -0
- package/dist/esm/sdk/sdk-legacy/tokens/tokenData.js +0 -68
- package/dist/esm/sdk/sdk-legacy/utils/formatter.js +0 -39
- package/dist/esm/sdk/sdk-legacy/utils/index.js +0 -3
- package/dist/esm/sdk/sdk-legacy/utils/math.js +0 -9
- package/dist/esm/sdk/sdk-legacy/utils/price.js +0 -11
- package/dist/types/abi/iDegenDistributorV300.d.ts +0 -87
- package/dist/types/abi/routerV300.d.ts +0 -585
- package/dist/types/abi/v300.d.ts +0 -5484
- package/dist/types/plugins/adapters/contracts/BalancerV2VaultAdapterContract.d.ts +0 -482
- package/dist/types/plugins/adapters/contracts/EqualizerRouterAdapterContract.d.ts +0 -225
- package/dist/types/plugins/adapters/contracts/InfraredVaultAdapterContract.d.ts +0 -198
- package/dist/types/plugins/adapters/contracts/KodiakIslandGatewayAdapterContract.d.ts +0 -396
- package/dist/types/plugins/adapters/contracts/MellowVaultAdapterContract.d.ts +0 -203
- package/dist/types/plugins/adapters/contracts/YearnV2AdapterContract.d.ts +0 -185
- package/dist/types/plugins/adapters/contracts/types.d.ts +0 -34
- package/dist/types/plugins/bots/abi/iPartialLiquidationBotV300.d.ts +0 -210
- package/dist/types/sdk/accountMigration/AbstractMigrateCreditAccountsService.d.ts +0 -32
- package/dist/types/sdk/accountMigration/MigrateCreditAccountsServiceV300.d.ts +0 -4
- package/dist/types/sdk/accountMigration/MigrateCreditAccountsServiceV310.d.ts +0 -4
- package/dist/types/sdk/accountMigration/createMigrateCreditAccountsService.d.ts +0 -8
- package/dist/types/sdk/accountMigration/index.d.ts +0 -3
- package/dist/types/sdk/accountMigration/types.d.ts +0 -62
- package/dist/types/sdk/accounts/CreditAccountsServiceV300.d.ts +0 -32
- package/dist/types/sdk/core/GearStakingV3Contract.d.ts +0 -520
- package/dist/types/sdk/core/address-provider/AddressProviderV300Contract.d.ts +0 -97
- package/dist/types/sdk/core/address-provider/index.d.ts +0 -4
- package/dist/types/sdk/gauges/GaugeStakingService.d.ts +0 -14
- package/dist/types/sdk/gauges/index.d.ts +0 -2
- package/dist/types/sdk/gauges/utils.d.ts +0 -22
- package/dist/types/sdk/market/credit/CreditConfiguratorV300Contract.d.ts +0 -648
- package/dist/types/sdk/market/credit/CreditManagerV300Contract.d.ts +0 -1043
- package/dist/types/sdk/market/oracle/PriceOracleV300Contract.d.ts +0 -369
- package/dist/types/sdk/market/pool/PoolV300Contract.d.ts +0 -1107
- package/dist/types/sdk/plugins/V300StalenessPeriodPlugin.d.ts +0 -29
- package/dist/types/sdk/poolMigration/index.d.ts +0 -11
- package/dist/types/sdk/router/PathOptionFactory.d.ts +0 -9
- package/dist/types/sdk/router/RouterV300Contract.d.ts +0 -39
- package/dist/types/sdk/sdk-gov-legacy/contracts/adapters.d.ts +0 -39
- package/dist/types/sdk/sdk-gov-legacy/contracts/contracts.d.ts +0 -194
- package/dist/types/sdk/sdk-gov-legacy/contracts/index.d.ts +0 -2
- package/dist/types/sdk/sdk-gov-legacy/contracts/protocols.d.ts +0 -30
- package/dist/types/sdk/sdk-gov-legacy/index.d.ts +0 -3
- package/dist/types/sdk/sdk-gov-legacy/oracles/PriceFeedType.d.ts +0 -24
- package/dist/types/sdk/sdk-gov-legacy/oracles/index.d.ts +0 -1
- package/dist/types/sdk/sdk-gov-legacy/tokens/aave.d.ts +0 -2
- package/dist/types/sdk/sdk-gov-legacy/tokens/aura.d.ts +0 -26
- package/dist/types/sdk/sdk-gov-legacy/tokens/balancer.d.ts +0 -15
- package/dist/types/sdk/sdk-gov-legacy/tokens/compound.d.ts +0 -1
- package/dist/types/sdk/sdk-gov-legacy/tokens/convex.d.ts +0 -31
- package/dist/types/sdk/sdk-gov-legacy/tokens/curveLP.d.ts +0 -25
- package/dist/types/sdk/sdk-gov-legacy/tokens/erc4626.d.ts +0 -1
- package/dist/types/sdk/sdk-gov-legacy/tokens/gear.d.ts +0 -5
- package/dist/types/sdk/sdk-gov-legacy/tokens/index.d.ts +0 -16
- package/dist/types/sdk/sdk-gov-legacy/tokens/normal.d.ts +0 -9
- package/dist/types/sdk/sdk-gov-legacy/tokens/stakingRewards.d.ts +0 -13
- package/dist/types/sdk/sdk-gov-legacy/tokens/token.d.ts +0 -34
- package/dist/types/sdk/sdk-gov-legacy/tokens/tokenData.d.ts +0 -5
- package/dist/types/sdk/sdk-gov-legacy/tokens/tokenType.d.ts +0 -24
- package/dist/types/sdk/sdk-gov-legacy/tokens/wrapped.d.ts +0 -7
- package/dist/types/sdk/sdk-gov-legacy/tokens/yearn.d.ts +0 -26
- package/dist/types/sdk/sdk-gov-legacy/tokens/zircuit.d.ts +0 -1
- package/dist/types/sdk/sdk-legacy/core/assets.d.ts +0 -39
- package/dist/types/sdk/sdk-legacy/core/creditAccount.d.ts +0 -152
- package/dist/types/sdk/sdk-legacy/core/creditAccount.spec.d.ts +0 -1
- package/dist/types/sdk/sdk-legacy/core/creditManager.d.ts +0 -92
- package/dist/types/sdk/sdk-legacy/core/creditSession.d.ts +0 -110
- package/dist/types/sdk/sdk-legacy/core/endpoint.d.ts +0 -24
- package/dist/types/sdk/sdk-legacy/core/eventOrTx.d.ts +0 -35
- package/dist/types/sdk/sdk-legacy/core/pool.d.ts +0 -144
- package/dist/types/sdk/sdk-legacy/core/transactions.d.ts +0 -348
- package/dist/types/sdk/sdk-legacy/gearboxRewards/api.d.ts +0 -87
- package/dist/types/sdk/sdk-legacy/gearboxRewards/apy.d.ts +0 -46
- package/dist/types/sdk/sdk-legacy/gearboxRewards/extraAPY.d.ts +0 -41
- package/dist/types/sdk/sdk-legacy/gearboxRewards/index.d.ts +0 -3
- package/dist/types/sdk/sdk-legacy/gearboxRewards/merklAPI.d.ts +0 -42
- package/dist/types/sdk/sdk-legacy/index.d.ts +0 -16
- package/dist/types/sdk/sdk-legacy/payload/creditAccount.d.ts +0 -47
- package/dist/types/sdk/sdk-legacy/payload/creditManager.d.ts +0 -109
- package/dist/types/sdk/sdk-legacy/payload/creditSession.d.ts +0 -111
- package/dist/types/sdk/sdk-legacy/payload/graphPayload.d.ts +0 -10
- package/dist/types/sdk/sdk-legacy/payload/pool.d.ts +0 -181
- package/dist/types/sdk/sdk-legacy/tokens/tokenData.d.ts +0 -21
- package/dist/types/sdk/sdk-legacy/utils/formatter.d.ts +0 -8
- package/dist/types/sdk/sdk-legacy/utils/index.d.ts +0 -3
- package/dist/types/sdk/sdk-legacy/utils/math.d.ts +0 -6
- package/dist/types/sdk/sdk-legacy/utils/price.d.ts +0 -9
- /package/dist/cjs/{sdk/accountMigration → common-utils/utils/creditAccount}/types.js +0 -0
- /package/dist/cjs/{sdk/core/address-provider → history}/types.js +0 -0
- /package/dist/esm/{sdk/accountMigration → common-utils/utils/creditAccount}/types.js +0 -0
- /package/dist/esm/{sdk/core/address-provider/types.js → history/inner-operations.js} +0 -0
- /package/dist/esm/{sdk/gauges/utils.js → history/internal-types.js} +0 -0
- /package/dist/esm/{sdk/sdk-gov-legacy/tokens/aave.js → history/types.js} +0 -0
- /package/dist/esm/{sdk/sdk-gov-legacy/tokens/compound.js → plugins/adapters/legacyAdapterOperations.js} +0 -0
- /package/dist/esm/sdk/{sdk-gov-legacy/tokens/erc4626.js → core/types.js} +0 -0
- /package/dist/esm/sdk/market/adapters/{factory.js → createAdapter.js} +0 -0
- /package/dist/types/sdk/market/adapters/{factory.d.ts → createAdapter.d.ts} +0 -0
|
@@ -1,14 +1,13 @@
|
|
|
1
1
|
import { encodeFunctionData, getAddress, getContract } from "viem";
|
|
2
|
-
import {
|
|
2
|
+
import {
|
|
3
|
+
iBotListV310Abi,
|
|
4
|
+
iCreditFacadeMulticallV310Abi
|
|
5
|
+
} from "../../abi/310/generated.js";
|
|
3
6
|
import { creditAccountCompressorAbi } from "../../abi/compressors/creditAccountCompressor.js";
|
|
4
7
|
import { peripheryCompressorAbi } from "../../abi/compressors/peripheryCompressor.js";
|
|
5
8
|
import { rewardsCompressorAbi } from "../../abi/compressors/rewardsCompressor.js";
|
|
6
9
|
import { iWithdrawalCompressorV310Abi } from "../../abi/IWithdrawalCompressorV310.js";
|
|
7
10
|
import { iBaseRewardPoolAbi } from "../../abi/iBaseRewardPool.js";
|
|
8
|
-
import {
|
|
9
|
-
iBotListV300Abi,
|
|
10
|
-
iCreditFacadeV300MulticallAbi
|
|
11
|
-
} from "../../abi/v300.js";
|
|
12
11
|
import { SDKConstruct } from "../base/index.js";
|
|
13
12
|
import { chains } from "../chain/chains.js";
|
|
14
13
|
import {
|
|
@@ -16,7 +15,6 @@ import {
|
|
|
16
15
|
AP_CREDIT_ACCOUNT_COMPRESSOR,
|
|
17
16
|
AP_PERIPHERY_COMPRESSOR,
|
|
18
17
|
AP_REWARDS_COMPRESSOR,
|
|
19
|
-
isV300,
|
|
20
18
|
MAX_UINT256,
|
|
21
19
|
MIN_INT96,
|
|
22
20
|
PERCENTAGE_FACTOR,
|
|
@@ -24,13 +22,13 @@ import {
|
|
|
24
22
|
VERSION_RANGE_310
|
|
25
23
|
} from "../constants/index.js";
|
|
26
24
|
import { assetsMap } from "../router/index.js";
|
|
27
|
-
import { BigIntMath } from "../sdk-legacy/index.js";
|
|
28
25
|
import { AddressMap } from "../utils/index.js";
|
|
29
26
|
import { simulateWithPriceUpdates } from "../utils/viem/index.js";
|
|
30
27
|
const COMPRESSORS = {
|
|
31
28
|
[chains.Mainnet.id]: "0x36F3d0Bb73CBC2E94fE24dF0f26a689409cF9023",
|
|
32
29
|
[chains.Monad.id]: "0x36F3d0Bb73CBC2E94fE24dF0f26a689409cF9023"
|
|
33
30
|
};
|
|
31
|
+
const INVESTORS = new AddressMap([], "investors");
|
|
34
32
|
function getWithdrawalCompressorAddress(chainId) {
|
|
35
33
|
return COMPRESSORS[chainId];
|
|
36
34
|
}
|
|
@@ -92,6 +90,23 @@ class AbstractCreditAccountService extends SDKConstruct {
|
|
|
92
90
|
});
|
|
93
91
|
return cad;
|
|
94
92
|
}
|
|
93
|
+
/**
|
|
94
|
+
* Returns credit account data for a single account with the investor address resolved.
|
|
95
|
+
* Loads CA via getCreditAccountData; for KYC underlyings fetches the investor from the KYC factory's getInvestor(creditAccount), otherwise uses the account owner.
|
|
96
|
+
* @param account - Credit account address
|
|
97
|
+
* @param blockNumber - Optional block number for the read
|
|
98
|
+
* @returns CreditAccountDataWithInvestor (CA data + investor address), or undefined if the account is not found
|
|
99
|
+
*/
|
|
100
|
+
async getCreditAccountDataWithInvestor(account, blockNumber) {
|
|
101
|
+
const ca = await this.getCreditAccountData(account, blockNumber);
|
|
102
|
+
if (!ca) return ca;
|
|
103
|
+
const marketSuite = this.sdk.marketRegister.findByCreditManager(
|
|
104
|
+
ca.creditManager
|
|
105
|
+
);
|
|
106
|
+
const factory = await marketSuite.getKYCFactory();
|
|
107
|
+
const investor = factory ? await factory.getInvestor(ca.creditAccount, true) : void 0;
|
|
108
|
+
return { ...ca, investor: investor ?? ca.owner };
|
|
109
|
+
}
|
|
95
110
|
/**
|
|
96
111
|
* Methods to get all credit accounts with some optional filtering
|
|
97
112
|
* Performs all necessary price feed updates under the hood
|
|
@@ -100,7 +115,7 @@ class AbstractCreditAccountService extends SDKConstruct {
|
|
|
100
115
|
* @param blockNumber
|
|
101
116
|
* @returns returned credit accounts are sorted by health factor in ascending order
|
|
102
117
|
*/
|
|
103
|
-
async getCreditAccounts(options, blockNumber) {
|
|
118
|
+
async getCreditAccounts(options, blockNumber, priceUpdate) {
|
|
104
119
|
const {
|
|
105
120
|
creditManager,
|
|
106
121
|
includeZeroDebt = false,
|
|
@@ -122,7 +137,7 @@ class AbstractCreditAccountService extends SDKConstruct {
|
|
|
122
137
|
maxHealthFactor,
|
|
123
138
|
reverting: false
|
|
124
139
|
};
|
|
125
|
-
const { txs: priceUpdateTxs } = await this.sdk.priceFeeds.generatePriceFeedsUpdateTxs(
|
|
140
|
+
const { txs: priceUpdateTxs } = priceUpdate ?? await this.sdk.priceFeeds.generatePriceFeedsUpdateTxs(
|
|
126
141
|
ignoreReservePrices ? { main: true } : void 0
|
|
127
142
|
);
|
|
128
143
|
const allCAs = [];
|
|
@@ -151,6 +166,75 @@ class AbstractCreditAccountService extends SDKConstruct {
|
|
|
151
166
|
);
|
|
152
167
|
return allCAs.sort((a, b) => Number(a.healthFactor - b.healthFactor));
|
|
153
168
|
}
|
|
169
|
+
/**
|
|
170
|
+
* Returns all credit accounts matching the filter, with investor set on each item.
|
|
171
|
+
* Delegates to getCreditAccounts; when options.owner is set, also loads KYC credit accounts for that owner and merges them into the list. Result is sorted by health factor ascending.
|
|
172
|
+
* @param options - Filter options (owner, creditManager, health factor, etc.)
|
|
173
|
+
* @param blockNumber - Optional block number for the read
|
|
174
|
+
* @returns Array of credit accounts (with investor field), sorted by health factor ascending
|
|
175
|
+
*/
|
|
176
|
+
async getCreditAccountsWithInvestor(options, blockNumber) {
|
|
177
|
+
const { owner, ignoreReservePrices = false } = options ?? {};
|
|
178
|
+
const priceUpdate = await this.sdk.priceFeeds.generatePriceFeedsUpdateTxs(
|
|
179
|
+
ignoreReservePrices ? { main: true } : void 0
|
|
180
|
+
);
|
|
181
|
+
const { txs: priceUpdateTxs } = priceUpdate;
|
|
182
|
+
const [common, kyc] = await Promise.all([
|
|
183
|
+
this.getCreditAccounts(options, blockNumber),
|
|
184
|
+
owner ? this.getKYCCreditAccountsOfOwner(owner, priceUpdateTxs, blockNumber) : void 0
|
|
185
|
+
]);
|
|
186
|
+
const allCAs = common.map(
|
|
187
|
+
(ca) => ({
|
|
188
|
+
...ca,
|
|
189
|
+
investor: owner || ca.owner
|
|
190
|
+
})
|
|
191
|
+
);
|
|
192
|
+
allCAs.push(...kyc || []);
|
|
193
|
+
return allCAs.sort((a, b) => Number(a.healthFactor - b.healthFactor));
|
|
194
|
+
}
|
|
195
|
+
async getKYCCreditAccountsOfOwner(owner, priceUpdateTxs, blockNumber) {
|
|
196
|
+
const suites = this.marketConfigurators.map((mc) => {
|
|
197
|
+
const suite = this.sdk.marketRegister.markets.find(
|
|
198
|
+
(m) => m.configurator.address === mc
|
|
199
|
+
);
|
|
200
|
+
return suite;
|
|
201
|
+
});
|
|
202
|
+
const kycCAAddresses = await this.getKYCCaOfInvestor(owner, suites);
|
|
203
|
+
const kycCAs = await this.loadSpecifiedAccounts(
|
|
204
|
+
kycCAAddresses,
|
|
205
|
+
priceUpdateTxs,
|
|
206
|
+
blockNumber
|
|
207
|
+
);
|
|
208
|
+
return kycCAs.map((ca) => ({
|
|
209
|
+
...ca,
|
|
210
|
+
investor: owner
|
|
211
|
+
}));
|
|
212
|
+
}
|
|
213
|
+
/**
|
|
214
|
+
* Loads credit account data for the given addresses using simulateWithPriceUpdates.
|
|
215
|
+
* Applies the provided price update txs before reading, so returned data is consistent with up-to-date prices.
|
|
216
|
+
* @param accounts - Credit account addresses to load
|
|
217
|
+
* @param priceUpdateTxs - Price feed update txs to simulate before the read (e.g. from generatePriceFeedsUpdateTxs)
|
|
218
|
+
* @param blockNumber - Optional block number for the read
|
|
219
|
+
* @returns Array of CreditAccountData in the same order as accounts (throws if any getCreditAccountData call reverts)
|
|
220
|
+
*/
|
|
221
|
+
async loadSpecifiedAccounts(accounts, priceUpdateTxs, blockNumber) {
|
|
222
|
+
if (accounts.length === 0) return [];
|
|
223
|
+
const list = await simulateWithPriceUpdates(this.client, {
|
|
224
|
+
priceUpdates: priceUpdateTxs,
|
|
225
|
+
contracts: accounts.map(
|
|
226
|
+
(account) => ({
|
|
227
|
+
abi: creditAccountCompressorAbi,
|
|
228
|
+
address: this.#compressor,
|
|
229
|
+
functionName: "getCreditAccountData",
|
|
230
|
+
args: [account]
|
|
231
|
+
})
|
|
232
|
+
),
|
|
233
|
+
blockNumber,
|
|
234
|
+
gas: this.sdk.gasLimit
|
|
235
|
+
});
|
|
236
|
+
return list;
|
|
237
|
+
}
|
|
154
238
|
/**
|
|
155
239
|
* Method to get all claimable rewards for credit account (ex. stkUSDS SKY rewards)
|
|
156
240
|
Assosiates rewards by adapter + stakedPhantomToken
|
|
@@ -220,10 +304,10 @@ class AbstractCreditAccountService extends SDKConstruct {
|
|
|
220
304
|
ca.creditManager
|
|
221
305
|
);
|
|
222
306
|
return {
|
|
223
|
-
abi:
|
|
307
|
+
abi: iBotListV310Abi,
|
|
224
308
|
address: cm.creditFacade.botList,
|
|
225
309
|
functionName: "getBotStatus",
|
|
226
|
-
args:
|
|
310
|
+
args: [legacyMigrationBot, ca.creditAccount]
|
|
227
311
|
};
|
|
228
312
|
}) : [],
|
|
229
313
|
...accountsToCheck.flatMap((ca) => {
|
|
@@ -232,10 +316,10 @@ class AbstractCreditAccountService extends SDKConstruct {
|
|
|
232
316
|
);
|
|
233
317
|
return additionalBots.map((bot) => {
|
|
234
318
|
return {
|
|
235
|
-
abi:
|
|
319
|
+
abi: iBotListV310Abi,
|
|
236
320
|
address: cm.creditFacade.botList,
|
|
237
321
|
functionName: "getBotStatus",
|
|
238
|
-
args:
|
|
322
|
+
args: [bot, ca.creditAccount]
|
|
239
323
|
};
|
|
240
324
|
});
|
|
241
325
|
})
|
|
@@ -313,7 +397,6 @@ class AbstractCreditAccountService extends SDKConstruct {
|
|
|
313
397
|
account,
|
|
314
398
|
to,
|
|
315
399
|
slippage = 50n,
|
|
316
|
-
force = false,
|
|
317
400
|
keepAssets,
|
|
318
401
|
ignoreReservePrices,
|
|
319
402
|
applyLossPolicy,
|
|
@@ -324,7 +407,6 @@ class AbstractCreditAccountService extends SDKConstruct {
|
|
|
324
407
|
creditAccount: account,
|
|
325
408
|
creditManager: cm.creditManager,
|
|
326
409
|
slippage,
|
|
327
|
-
force,
|
|
328
410
|
keepAssets,
|
|
329
411
|
debtOnly
|
|
330
412
|
});
|
|
@@ -383,6 +465,13 @@ class AbstractCreditAccountService extends SDKConstruct {
|
|
|
383
465
|
closePath
|
|
384
466
|
}) {
|
|
385
467
|
const cm = this.sdk.marketRegister.findCreditManager(ca.creditManager);
|
|
468
|
+
await this.sdk.tokensMeta.loadTokenData(cm.underlying);
|
|
469
|
+
const underlying = this.sdk.tokensMeta.mustGet(cm.underlying);
|
|
470
|
+
if (this.sdk.tokensMeta.isKYCUnderlying(underlying)) {
|
|
471
|
+
throw new Error(
|
|
472
|
+
"closeCreditAccount is not supported for KYC underlying credit accounts"
|
|
473
|
+
);
|
|
474
|
+
}
|
|
386
475
|
const routerCloseResult = closePath || await this.sdk.routerFor(ca).findBestClosePath({
|
|
387
476
|
creditAccount: ca,
|
|
388
477
|
creditManager: cm.creditManager,
|
|
@@ -397,12 +486,16 @@ class AbstractCreditAccountService extends SDKConstruct {
|
|
|
397
486
|
...routerCloseResult.calls,
|
|
398
487
|
...this.prepareDisableQuotas(ca),
|
|
399
488
|
...this.prepareDecreaseDebt(ca),
|
|
400
|
-
...this.prepareDisableTokens(ca),
|
|
401
489
|
...assetsToWithdraw.map(
|
|
402
490
|
(t) => this.prepareWithdrawToken(ca.creditFacade, t, MAX_UINT256, to)
|
|
403
491
|
)
|
|
404
492
|
];
|
|
405
|
-
const tx =
|
|
493
|
+
const tx = await this.closeCreditAccountTx(
|
|
494
|
+
cm,
|
|
495
|
+
ca.creditAccount,
|
|
496
|
+
calls,
|
|
497
|
+
operation
|
|
498
|
+
);
|
|
406
499
|
return { tx, calls, routerCloseResult, creditFacade: cm.creditFacade };
|
|
407
500
|
}
|
|
408
501
|
/**
|
|
@@ -432,7 +525,7 @@ class AbstractCreditAccountService extends SDKConstruct {
|
|
|
432
525
|
averageQuota
|
|
433
526
|
})
|
|
434
527
|
];
|
|
435
|
-
const tx =
|
|
528
|
+
const tx = await this.multicallTx(cm, creditAccount.creditAccount, calls);
|
|
436
529
|
return { tx, calls, creditFacade: cm.creditFacade };
|
|
437
530
|
}
|
|
438
531
|
/**
|
|
@@ -474,7 +567,7 @@ class AbstractCreditAccountService extends SDKConstruct {
|
|
|
474
567
|
averageQuota
|
|
475
568
|
})
|
|
476
569
|
];
|
|
477
|
-
const tx =
|
|
570
|
+
const tx = await this.multicallTx(cm, creditAccount.creditAccount, calls);
|
|
478
571
|
tx.value = ethAmount.toString(10);
|
|
479
572
|
return { tx, calls, creditFacade: cm.creditFacade };
|
|
480
573
|
}
|
|
@@ -491,13 +584,13 @@ class AbstractCreditAccountService extends SDKConstruct {
|
|
|
491
584
|
async changeDebt({
|
|
492
585
|
creditAccount,
|
|
493
586
|
amount,
|
|
494
|
-
|
|
587
|
+
collateral
|
|
495
588
|
}) {
|
|
496
589
|
if (amount === 0n) {
|
|
497
590
|
throw new Error("debt increase or decrease must be non-zero");
|
|
498
591
|
}
|
|
499
592
|
const isDecrease = amount < 0n;
|
|
500
|
-
const change =
|
|
593
|
+
const change = amount > 0n ? amount : -amount;
|
|
501
594
|
const cm = this.sdk.marketRegister.findCreditManager(
|
|
502
595
|
creditAccount.creditManager
|
|
503
596
|
);
|
|
@@ -505,27 +598,32 @@ class AbstractCreditAccountService extends SDKConstruct {
|
|
|
505
598
|
creditManager: creditAccount.creditManager,
|
|
506
599
|
creditAccount
|
|
507
600
|
});
|
|
508
|
-
const addCollateralCalls =
|
|
601
|
+
const addCollateralCalls = collateral && isDecrease ? this.prepareAddCollateral(
|
|
509
602
|
creditAccount.creditFacade,
|
|
510
603
|
[
|
|
511
604
|
{
|
|
512
|
-
token:
|
|
513
|
-
balance:
|
|
605
|
+
token: collateral[0].token,
|
|
606
|
+
balance: collateral[0].balance
|
|
514
607
|
}
|
|
515
608
|
],
|
|
516
609
|
{}
|
|
517
610
|
) : [];
|
|
518
|
-
const
|
|
519
|
-
|
|
611
|
+
const unwrapCalls = collateral && isDecrease ? await this.getKYCUnwrapCalls(
|
|
612
|
+
collateral[0].balance,
|
|
613
|
+
creditAccount.creditManager
|
|
614
|
+
) || [] : [];
|
|
615
|
+
if (addCollateralCalls.length > 0 && unwrapCalls.length === 0 && collateral && collateral?.[0].token !== creditAccount.underlying) {
|
|
616
|
+
throw new Error(
|
|
617
|
+
"Can't use collateral other than underlying for non KYC market"
|
|
618
|
+
);
|
|
619
|
+
}
|
|
520
620
|
const calls = [
|
|
521
621
|
...priceUpdatesCalls,
|
|
522
622
|
...addCollateralCalls,
|
|
523
|
-
...
|
|
524
|
-
creditAccount.underlying
|
|
525
|
-
]) : [],
|
|
623
|
+
...unwrapCalls,
|
|
526
624
|
this.#prepareChangeDebt(creditAccount.creditFacade, change, isDecrease)
|
|
527
625
|
];
|
|
528
|
-
const tx =
|
|
626
|
+
const tx = await this.multicallTx(cm, creditAccount.creditAccount, calls);
|
|
529
627
|
return { tx, calls, creditFacade: cm.creditFacade };
|
|
530
628
|
}
|
|
531
629
|
/**
|
|
@@ -560,7 +658,7 @@ class AbstractCreditAccountService extends SDKConstruct {
|
|
|
560
658
|
averageQuota
|
|
561
659
|
})
|
|
562
660
|
];
|
|
563
|
-
const tx =
|
|
661
|
+
const tx = await this.multicallTx(cm, creditAccount.creditAccount, calls);
|
|
564
662
|
return { tx, calls, creditFacade: cm.creditFacade };
|
|
565
663
|
}
|
|
566
664
|
/**
|
|
@@ -643,12 +741,12 @@ class AbstractCreditAccountService extends SDKConstruct {
|
|
|
643
741
|
const storeExpectedBalances = {
|
|
644
742
|
target: cm.creditFacade.address,
|
|
645
743
|
callData: encodeFunctionData({
|
|
646
|
-
abi:
|
|
744
|
+
abi: iCreditFacadeMulticallV310Abi,
|
|
647
745
|
functionName: "storeExpectedBalances",
|
|
648
746
|
args: [
|
|
649
747
|
balances.map(([token, amount]) => ({
|
|
650
748
|
token,
|
|
651
|
-
amount:
|
|
749
|
+
amount: amount > 10n ? amount - 10n : 0n
|
|
652
750
|
}))
|
|
653
751
|
]
|
|
654
752
|
})
|
|
@@ -656,7 +754,7 @@ class AbstractCreditAccountService extends SDKConstruct {
|
|
|
656
754
|
const compareBalances = {
|
|
657
755
|
target: cm.creditFacade.address,
|
|
658
756
|
callData: encodeFunctionData({
|
|
659
|
-
abi:
|
|
757
|
+
abi: iCreditFacadeMulticallV310Abi,
|
|
660
758
|
functionName: "compareBalances",
|
|
661
759
|
args: []
|
|
662
760
|
})
|
|
@@ -676,7 +774,7 @@ class AbstractCreditAccountService extends SDKConstruct {
|
|
|
676
774
|
averageQuota
|
|
677
775
|
})
|
|
678
776
|
];
|
|
679
|
-
const tx =
|
|
777
|
+
const tx = await this.multicallTx(cm, creditAccount.creditAccount, calls);
|
|
680
778
|
return { tx, calls, creditFacade: cm.creditFacade };
|
|
681
779
|
}
|
|
682
780
|
/**
|
|
@@ -707,12 +805,12 @@ class AbstractCreditAccountService extends SDKConstruct {
|
|
|
707
805
|
const storeExpectedBalances = {
|
|
708
806
|
target: cm.creditFacade.address,
|
|
709
807
|
callData: encodeFunctionData({
|
|
710
|
-
abi:
|
|
808
|
+
abi: iCreditFacadeMulticallV310Abi,
|
|
711
809
|
functionName: "storeExpectedBalances",
|
|
712
810
|
args: [
|
|
713
811
|
balances.map(([token, amount]) => ({
|
|
714
812
|
token,
|
|
715
|
-
amount:
|
|
813
|
+
amount: amount > 10n ? amount - 10n : 0n
|
|
716
814
|
}))
|
|
717
815
|
]
|
|
718
816
|
})
|
|
@@ -720,7 +818,7 @@ class AbstractCreditAccountService extends SDKConstruct {
|
|
|
720
818
|
const compareBalances = {
|
|
721
819
|
target: cm.creditFacade.address,
|
|
722
820
|
callData: encodeFunctionData({
|
|
723
|
-
abi:
|
|
821
|
+
abi: iCreditFacadeMulticallV310Abi,
|
|
724
822
|
functionName: "compareBalances",
|
|
725
823
|
args: []
|
|
726
824
|
})
|
|
@@ -741,75 +839,63 @@ class AbstractCreditAccountService extends SDKConstruct {
|
|
|
741
839
|
compareBalances,
|
|
742
840
|
...quotaCalls
|
|
743
841
|
];
|
|
744
|
-
const tx =
|
|
842
|
+
const tx = await this.multicallTx(cm, creditAccount.creditAccount, calls);
|
|
745
843
|
return { tx, calls, creditFacade: cm.creditFacade };
|
|
746
844
|
}
|
|
747
845
|
/**
|
|
748
|
-
*
|
|
749
|
-
*
|
|
750
|
-
* @param
|
|
751
|
-
* @
|
|
752
|
-
|
|
753
|
-
|
|
754
|
-
|
|
755
|
-
|
|
756
|
-
|
|
757
|
-
|
|
758
|
-
|
|
759
|
-
|
|
760
|
-
|
|
761
|
-
|
|
762
|
-
|
|
763
|
-
}
|
|
764
|
-
|
|
765
|
-
...priceUpdatesCalls,
|
|
766
|
-
...disabledTokens.map(
|
|
767
|
-
(token) => this.prepareDisableToken(ca.creditFacade, token)
|
|
768
|
-
),
|
|
769
|
-
...this.#prepareEnableTokens(ca.creditFacade, enabledTokens)
|
|
770
|
-
];
|
|
771
|
-
const tx = cm.creditFacade.multicall(ca.creditAccount, calls);
|
|
772
|
-
return { tx, calls, creditFacade: cm.creditFacade };
|
|
846
|
+
* Returns address to which approval should be given on collateral token
|
|
847
|
+
* It's credit manager for classical markets and special wallet for KYC markets
|
|
848
|
+
* @param options - {@link GetApprovalAddressProps}
|
|
849
|
+
* @returns
|
|
850
|
+
**/
|
|
851
|
+
async getApprovalAddress(options) {
|
|
852
|
+
const { creditManager } = options;
|
|
853
|
+
const suite = this.sdk.marketRegister.findCreditManager(creditManager);
|
|
854
|
+
const marketSuite = this.sdk.marketRegister.findByPool(suite.pool);
|
|
855
|
+
const factory = await marketSuite.getKYCFactory();
|
|
856
|
+
if (factory) {
|
|
857
|
+
if ("creditAccount" in options) {
|
|
858
|
+
return factory.getWallet(options.creditAccount);
|
|
859
|
+
}
|
|
860
|
+
return factory.precomputeWalletAddress(creditManager, options.borrower);
|
|
861
|
+
}
|
|
862
|
+
return suite.creditManager.address;
|
|
773
863
|
}
|
|
774
864
|
/**
|
|
775
865
|
* Executes swap specified by given calls, update quotas of affected tokens
|
|
776
|
-
|
|
777
|
-
|
|
778
|
-
|
|
779
|
-
|
|
780
|
-
|
|
781
|
-
|
|
782
|
-
|
|
783
|
-
* @param {bigint} ethAmount - native token amount to attach to tx
|
|
784
|
-
* @param {Address} creditManager - address of credit manager to open credit account on
|
|
785
|
-
* @param {Array<Asset>} collateral - array of collateral which can be just directly added or swapped using the path {@link Asset}
|
|
786
|
-
* @param {Record<Address, PermitResult>} permits - permits of collateral tokens (in any permittable token is present) {@link PermitResult}
|
|
787
|
-
* @param {bigint} debt - debt to open credit account with
|
|
788
|
-
* @param {boolean} withdrawDebt - flag to withdraw debt to wallet after opening credit account;
|
|
789
|
-
used for borrowing functionality
|
|
790
|
-
* @param {bigint} referralCode - referral code to open credit account with
|
|
791
|
-
* @param {Address} to - wallet address to transfer credit account to\
|
|
792
|
-
* @param {Array<MultiCall>} calls - array of MultiCall from router methods findOpenStrategyPath {@link MultiCall}.
|
|
793
|
-
Used for trading and strategy functionality
|
|
794
|
-
* @param {Array<Asset>} averageQuota - average quota for tokens after open {@link Asset}
|
|
795
|
-
* @param {Array<Asset>} minQuota - minimum quota for tokens after open {@link Asset}
|
|
866
|
+
* - Open credit account is executed in the following order: price update -> increase debt -> add collateral ->
|
|
867
|
+
* -> update quotas -> (optionally: execute swap path for trading/strategy) ->
|
|
868
|
+
* -> (optionally: withdraw debt for lending)
|
|
869
|
+
*- Basic open credit account: price update -> increase debt -> add collateral -> update quotas
|
|
870
|
+
*- Lending: price update -> increase debt -> add collateral -> update quotas -> withdraw debt
|
|
871
|
+
*- Strategy/trading: price update -> increase debt -> add collateral -> update quotas -> execute swap path
|
|
872
|
+
*- In strategy is possible situation when collateral is added, but not swapped; the only swapped value in this case will be debt
|
|
796
873
|
* @returns All necessary data to execute the transaction (call, credit facade)
|
|
797
|
-
|
|
798
|
-
async openCA({
|
|
799
|
-
|
|
800
|
-
|
|
801
|
-
|
|
802
|
-
|
|
803
|
-
|
|
804
|
-
|
|
805
|
-
|
|
806
|
-
|
|
807
|
-
|
|
808
|
-
|
|
809
|
-
|
|
810
|
-
|
|
874
|
+
**/
|
|
875
|
+
async openCA(props) {
|
|
876
|
+
const {
|
|
877
|
+
ethAmount,
|
|
878
|
+
creditManager,
|
|
879
|
+
reopenCreditAccount,
|
|
880
|
+
collateral,
|
|
881
|
+
permits,
|
|
882
|
+
debt,
|
|
883
|
+
withdrawToken,
|
|
884
|
+
referralCode,
|
|
885
|
+
to,
|
|
886
|
+
calls: openPathCalls,
|
|
887
|
+
callsAfter,
|
|
888
|
+
minQuota,
|
|
889
|
+
averageQuota
|
|
890
|
+
} = props;
|
|
811
891
|
const cmSuite = this.sdk.marketRegister.findCreditManager(creditManager);
|
|
812
892
|
const cm = cmSuite.creditManager;
|
|
893
|
+
let tokenToWithdraw;
|
|
894
|
+
if (withdrawToken === true) {
|
|
895
|
+
tokenToWithdraw = cm.underlying;
|
|
896
|
+
} else if (typeof withdrawToken === "string") {
|
|
897
|
+
tokenToWithdraw = withdrawToken;
|
|
898
|
+
}
|
|
813
899
|
const priceUpdatesCalls = await this.getPriceUpdatesForFacade({
|
|
814
900
|
creditManager: cm.address,
|
|
815
901
|
desiredQuotas: averageQuota
|
|
@@ -819,13 +905,27 @@ class AbstractCreditAccountService extends SDKConstruct {
|
|
|
819
905
|
this.#prepareIncreaseDebt(cm.creditFacade, debt),
|
|
820
906
|
...this.prepareAddCollateral(cm.creditFacade, collateral, permits),
|
|
821
907
|
...openPathCalls,
|
|
822
|
-
|
|
908
|
+
// путь из underlying в withdrawal token
|
|
909
|
+
...tokenToWithdraw ? [
|
|
910
|
+
this.prepareWithdrawToken(
|
|
911
|
+
cm.creditFacade,
|
|
912
|
+
tokenToWithdraw,
|
|
913
|
+
MAX_UINT256,
|
|
914
|
+
to
|
|
915
|
+
)
|
|
916
|
+
] : [],
|
|
823
917
|
...this.prepareUpdateQuotas(cm.creditFacade, {
|
|
824
918
|
minQuota,
|
|
825
919
|
averageQuota
|
|
826
|
-
})
|
|
920
|
+
}),
|
|
921
|
+
...callsAfter ?? []
|
|
827
922
|
];
|
|
828
|
-
|
|
923
|
+
let tx;
|
|
924
|
+
if (reopenCreditAccount) {
|
|
925
|
+
tx = await this.multicallTx(cmSuite, reopenCreditAccount, calls);
|
|
926
|
+
} else {
|
|
927
|
+
tx = await this.openCreditAccountTx(cmSuite, to, calls, referralCode);
|
|
928
|
+
}
|
|
829
929
|
tx.value = ethAmount.toString(10);
|
|
830
930
|
return { calls, tx, creditFacade: cmSuite.creditFacade };
|
|
831
931
|
}
|
|
@@ -909,6 +1009,130 @@ class AbstractCreditAccountService extends SDKConstruct {
|
|
|
909
1009
|
);
|
|
910
1010
|
return resp;
|
|
911
1011
|
}
|
|
1012
|
+
/**
|
|
1013
|
+
* Returns multicall entries to redeem (unwrap) KYC ERC-4626 vault shares into underlying for the given credit manager.
|
|
1014
|
+
* Used when withdrawing debt from a KYC market: redeems adapter vault shares so the underlying can be withdrawn.
|
|
1015
|
+
* Only applies when the credit manager's underlying is KYC-gated and has an ERC-4626 adapter configured.
|
|
1016
|
+
* @param amount - Number of vault shares (adapter tokens) to redeem
|
|
1017
|
+
* @param creditManager - Credit manager address
|
|
1018
|
+
* @returns Array of MultiCall to pass to credit facade multicall, or undefined if underlying is not KYC or no adapter is configured
|
|
1019
|
+
*/
|
|
1020
|
+
async getKYCUnwrapCalls(amount, creditManager) {
|
|
1021
|
+
const suite = this.sdk.marketRegister.findCreditManager(creditManager);
|
|
1022
|
+
const meta = this.sdk.tokensMeta.mustGet(suite.underlying);
|
|
1023
|
+
if (!this.sdk.tokensMeta.isKYCUnderlying(meta)) {
|
|
1024
|
+
return void 0;
|
|
1025
|
+
}
|
|
1026
|
+
const adapter = suite.creditManager.adapters.get(meta.addr);
|
|
1027
|
+
const adapterAddress = adapter?.address;
|
|
1028
|
+
if (!adapterAddress) {
|
|
1029
|
+
return void 0;
|
|
1030
|
+
}
|
|
1031
|
+
const mc = [
|
|
1032
|
+
{
|
|
1033
|
+
target: adapterAddress,
|
|
1034
|
+
callData: encodeFunctionData({
|
|
1035
|
+
abi: ierc4626AdapterAbi,
|
|
1036
|
+
functionName: "redeem",
|
|
1037
|
+
args: [amount, ADDRESS_0X0, ADDRESS_0X0]
|
|
1038
|
+
})
|
|
1039
|
+
}
|
|
1040
|
+
];
|
|
1041
|
+
return mc;
|
|
1042
|
+
}
|
|
1043
|
+
/**
|
|
1044
|
+
* Returns multicall entries to deposit (wrap) underlying into KYC ERC-4626 vault shares for the given credit manager.
|
|
1045
|
+
* Used when adding debt on a KYC market: deposits underlying into the adapter vault so shares are minted on the account.
|
|
1046
|
+
* Only applies when the credit manager's underlying is KYC-gated and has an ERC-4626 adapter configured.
|
|
1047
|
+
* @param amount - Amount of underlying assets to deposit into the vault (in underlying decimals)
|
|
1048
|
+
* @param creditManager - Credit manager address
|
|
1049
|
+
* @returns Array of MultiCall to pass to credit facade multicall, or undefined if underlying is not KYC or no adapter is configured
|
|
1050
|
+
*/
|
|
1051
|
+
async getKYCWrapCalls(amount, creditManager) {
|
|
1052
|
+
const suite = this.sdk.marketRegister.findCreditManager(creditManager);
|
|
1053
|
+
const meta = this.sdk.tokensMeta.mustGet(suite.underlying);
|
|
1054
|
+
if (!this.sdk.tokensMeta.isKYCUnderlying(meta)) {
|
|
1055
|
+
return void 0;
|
|
1056
|
+
}
|
|
1057
|
+
const adapter = suite.creditManager.adapters.get(meta.addr);
|
|
1058
|
+
const adapterAddress = adapter?.address;
|
|
1059
|
+
if (!adapterAddress) {
|
|
1060
|
+
return void 0;
|
|
1061
|
+
}
|
|
1062
|
+
const mc = [
|
|
1063
|
+
{
|
|
1064
|
+
target: adapterAddress,
|
|
1065
|
+
callData: encodeFunctionData({
|
|
1066
|
+
abi: ierc4626AdapterAbi,
|
|
1067
|
+
functionName: "deposit",
|
|
1068
|
+
args: [amount, ADDRESS_0X0]
|
|
1069
|
+
})
|
|
1070
|
+
}
|
|
1071
|
+
];
|
|
1072
|
+
return mc;
|
|
1073
|
+
}
|
|
1074
|
+
/**
|
|
1075
|
+
* Returns multicall entries to call redeemDiff on the KYC ERC-4626 adapter for the given credit manager.
|
|
1076
|
+
* Redeems the leftover vault shares (e.g. after repaying debt) so the account does not hold excess KYC vault tokens.
|
|
1077
|
+
* Only applies when the credit manager's underlying is KYC-gated and has an ERC-4626 adapter configured.
|
|
1078
|
+
* @param amount - Leftover vault share amount to redeem (in adapter/vault decimals)
|
|
1079
|
+
* @param creditManager - Credit manager address
|
|
1080
|
+
* @returns Array of MultiCall to pass to credit facade multicall, or undefined if underlying is not KYC or no adapter is configured
|
|
1081
|
+
*/
|
|
1082
|
+
async getRedeemDiffCalls(amount, creditManager) {
|
|
1083
|
+
const suite = this.sdk.marketRegister.findCreditManager(creditManager);
|
|
1084
|
+
const meta = this.sdk.tokensMeta.mustGet(suite.underlying);
|
|
1085
|
+
if (!this.sdk.tokensMeta.isKYCUnderlying(meta)) {
|
|
1086
|
+
return void 0;
|
|
1087
|
+
}
|
|
1088
|
+
const adapter = suite.creditManager.adapters.get(meta.addr);
|
|
1089
|
+
const adapterAddress = adapter?.address;
|
|
1090
|
+
if (!adapterAddress) {
|
|
1091
|
+
return void 0;
|
|
1092
|
+
}
|
|
1093
|
+
const mc = [
|
|
1094
|
+
{
|
|
1095
|
+
target: adapterAddress,
|
|
1096
|
+
callData: encodeFunctionData({
|
|
1097
|
+
abi: ierc4626AdapterAbi,
|
|
1098
|
+
functionName: "redeemDiff",
|
|
1099
|
+
args: [amount]
|
|
1100
|
+
})
|
|
1101
|
+
}
|
|
1102
|
+
];
|
|
1103
|
+
return mc;
|
|
1104
|
+
}
|
|
1105
|
+
/**
|
|
1106
|
+
* Returns multicall entries to call depositDiff on the KYC ERC-4626 adapter for the given credit manager.
|
|
1107
|
+
* Deposits the leftover underlying (e.g. after decreasing debt) into the vault so the account does not hold excess underlying.
|
|
1108
|
+
* Only applies when the credit manager's underlying is KYC-gated and has an ERC-4626 adapter configured.
|
|
1109
|
+
* @param amount - Leftover underlying amount to deposit into the vault (in underlying decimals)
|
|
1110
|
+
* @param creditManager - Credit manager address
|
|
1111
|
+
* @returns Array of MultiCall to pass to credit facade multicall, or undefined if underlying is not KYC or no adapter is configured
|
|
1112
|
+
*/
|
|
1113
|
+
async getDepositDiffCalls(amount, creditManager) {
|
|
1114
|
+
const suite = this.sdk.marketRegister.findCreditManager(creditManager);
|
|
1115
|
+
const meta = this.sdk.tokensMeta.mustGet(suite.underlying);
|
|
1116
|
+
if (!this.sdk.tokensMeta.isKYCUnderlying(meta)) {
|
|
1117
|
+
return void 0;
|
|
1118
|
+
}
|
|
1119
|
+
const adapter = suite.creditManager.adapters.get(meta.addr);
|
|
1120
|
+
const adapterAddress = adapter?.address;
|
|
1121
|
+
if (!adapterAddress) {
|
|
1122
|
+
return void 0;
|
|
1123
|
+
}
|
|
1124
|
+
const mc = [
|
|
1125
|
+
{
|
|
1126
|
+
target: adapterAddress,
|
|
1127
|
+
callData: encodeFunctionData({
|
|
1128
|
+
abi: ierc4626AdapterAbi,
|
|
1129
|
+
functionName: "depositDiff",
|
|
1130
|
+
args: [amount]
|
|
1131
|
+
})
|
|
1132
|
+
}
|
|
1133
|
+
];
|
|
1134
|
+
return mc;
|
|
1135
|
+
}
|
|
912
1136
|
/**
|
|
913
1137
|
* Returns raw txs that are needed to update all price feeds so that all credit accounts (possibly from different markets) compute
|
|
914
1138
|
*
|
|
@@ -1024,7 +1248,7 @@ class AbstractCreditAccountService extends SDKConstruct {
|
|
|
1024
1248
|
calls.push({
|
|
1025
1249
|
target: ca.creditFacade,
|
|
1026
1250
|
callData: encodeFunctionData({
|
|
1027
|
-
abi:
|
|
1251
|
+
abi: iCreditFacadeMulticallV310Abi,
|
|
1028
1252
|
functionName: "updateQuota",
|
|
1029
1253
|
args: [token, MIN_INT96, 0n]
|
|
1030
1254
|
})
|
|
@@ -1041,7 +1265,7 @@ class AbstractCreditAccountService extends SDKConstruct {
|
|
|
1041
1265
|
return {
|
|
1042
1266
|
target: creditFacade,
|
|
1043
1267
|
callData: encodeFunctionData({
|
|
1044
|
-
abi:
|
|
1268
|
+
abi: iCreditFacadeMulticallV310Abi,
|
|
1045
1269
|
functionName: "updateQuota",
|
|
1046
1270
|
args: [q.token, q.balance, min]
|
|
1047
1271
|
})
|
|
@@ -1055,7 +1279,7 @@ class AbstractCreditAccountService extends SDKConstruct {
|
|
|
1055
1279
|
{
|
|
1056
1280
|
target: ca.creditFacade,
|
|
1057
1281
|
callData: encodeFunctionData({
|
|
1058
|
-
abi:
|
|
1282
|
+
abi: iCreditFacadeMulticallV310Abi,
|
|
1059
1283
|
functionName: "decreaseDebt",
|
|
1060
1284
|
args: [MAX_UINT256]
|
|
1061
1285
|
})
|
|
@@ -1064,41 +1288,11 @@ class AbstractCreditAccountService extends SDKConstruct {
|
|
|
1064
1288
|
}
|
|
1065
1289
|
return [];
|
|
1066
1290
|
}
|
|
1067
|
-
prepareDisableTokens(ca) {
|
|
1068
|
-
const calls = [];
|
|
1069
|
-
for (const t of ca.tokens) {
|
|
1070
|
-
const isEnabled = (t.mask & ca.enabledTokensMask) !== 0n;
|
|
1071
|
-
if (t.token !== ca.underlying && isEnabled && t.quota === 0n) {
|
|
1072
|
-
calls.push(this.prepareDisableToken(ca.creditFacade, t.token));
|
|
1073
|
-
}
|
|
1074
|
-
}
|
|
1075
|
-
return calls;
|
|
1076
|
-
}
|
|
1077
|
-
prepareDisableToken(creditFacade, token) {
|
|
1078
|
-
return {
|
|
1079
|
-
target: creditFacade,
|
|
1080
|
-
callData: encodeFunctionData({
|
|
1081
|
-
abi: iCreditFacadeV300MulticallAbi,
|
|
1082
|
-
functionName: "disableToken",
|
|
1083
|
-
args: [token]
|
|
1084
|
-
})
|
|
1085
|
-
};
|
|
1086
|
-
}
|
|
1087
|
-
#prepareEnableTokens(creditFacade, tokens) {
|
|
1088
|
-
return tokens.map((t) => ({
|
|
1089
|
-
target: creditFacade,
|
|
1090
|
-
callData: encodeFunctionData({
|
|
1091
|
-
abi: iCreditFacadeV300MulticallAbi,
|
|
1092
|
-
functionName: "enableToken",
|
|
1093
|
-
args: [t]
|
|
1094
|
-
})
|
|
1095
|
-
}));
|
|
1096
|
-
}
|
|
1097
1291
|
prepareWithdrawToken(creditFacade, token, amount, to) {
|
|
1098
1292
|
return {
|
|
1099
1293
|
target: creditFacade,
|
|
1100
1294
|
callData: encodeFunctionData({
|
|
1101
|
-
abi:
|
|
1295
|
+
abi: iCreditFacadeMulticallV310Abi,
|
|
1102
1296
|
functionName: "withdrawCollateral",
|
|
1103
1297
|
args: [token, amount, to]
|
|
1104
1298
|
})
|
|
@@ -1108,7 +1302,7 @@ class AbstractCreditAccountService extends SDKConstruct {
|
|
|
1108
1302
|
return {
|
|
1109
1303
|
target: creditFacade,
|
|
1110
1304
|
callData: encodeFunctionData({
|
|
1111
|
-
abi:
|
|
1305
|
+
abi: iCreditFacadeMulticallV310Abi,
|
|
1112
1306
|
functionName: "increaseDebt",
|
|
1113
1307
|
args: [debt]
|
|
1114
1308
|
})
|
|
@@ -1118,7 +1312,7 @@ class AbstractCreditAccountService extends SDKConstruct {
|
|
|
1118
1312
|
return {
|
|
1119
1313
|
target: creditFacade,
|
|
1120
1314
|
callData: encodeFunctionData({
|
|
1121
|
-
abi:
|
|
1315
|
+
abi: iCreditFacadeMulticallV310Abi,
|
|
1122
1316
|
functionName: isDecrease ? "decreaseDebt" : "increaseDebt",
|
|
1123
1317
|
args: [change]
|
|
1124
1318
|
})
|
|
@@ -1131,7 +1325,7 @@ class AbstractCreditAccountService extends SDKConstruct {
|
|
|
1131
1325
|
return {
|
|
1132
1326
|
target: creditFacade,
|
|
1133
1327
|
callData: encodeFunctionData({
|
|
1134
|
-
abi:
|
|
1328
|
+
abi: iCreditFacadeMulticallV310Abi,
|
|
1135
1329
|
functionName: "addCollateralWithPermit",
|
|
1136
1330
|
args: [token, balance, p.deadline, p.v, p.r, p.s]
|
|
1137
1331
|
})
|
|
@@ -1140,7 +1334,7 @@ class AbstractCreditAccountService extends SDKConstruct {
|
|
|
1140
1334
|
return {
|
|
1141
1335
|
target: creditFacade,
|
|
1142
1336
|
callData: encodeFunctionData({
|
|
1143
|
-
abi:
|
|
1337
|
+
abi: iCreditFacadeMulticallV310Abi,
|
|
1144
1338
|
functionName: "addCollateral",
|
|
1145
1339
|
args: [token, balance]
|
|
1146
1340
|
})
|
|
@@ -1166,78 +1360,174 @@ class AbstractCreditAccountService extends SDKConstruct {
|
|
|
1166
1360
|
VERSION_RANGE_310
|
|
1167
1361
|
)[0];
|
|
1168
1362
|
}
|
|
1363
|
+
/**
|
|
1364
|
+
* Wrapper that selects between credit facade and KYC factory
|
|
1365
|
+
* @param suite
|
|
1366
|
+
* @param to
|
|
1367
|
+
* @param calls
|
|
1368
|
+
* @param referralCode
|
|
1369
|
+
* @returns
|
|
1370
|
+
*/
|
|
1371
|
+
async openCreditAccountTx(suite, to, calls, referralCode) {
|
|
1372
|
+
const marketSuite = this.sdk.marketRegister.findByPool(suite.pool);
|
|
1373
|
+
const factory = await marketSuite.getKYCFactory();
|
|
1374
|
+
if (factory) {
|
|
1375
|
+
const tokensToRegister = await factory.getDSTokens();
|
|
1376
|
+
return factory.openCreditAccount(
|
|
1377
|
+
suite.creditManager.address,
|
|
1378
|
+
calls,
|
|
1379
|
+
tokensToRegister
|
|
1380
|
+
);
|
|
1381
|
+
}
|
|
1382
|
+
return suite.creditFacade.openCreditAccount(to, calls, referralCode ?? 0n);
|
|
1383
|
+
}
|
|
1384
|
+
/**
|
|
1385
|
+
* Wrapper that selects between credit facade and KYC factory
|
|
1386
|
+
* @param suite
|
|
1387
|
+
* @param creditAccount
|
|
1388
|
+
* @param calls
|
|
1389
|
+
* @returns
|
|
1390
|
+
*/
|
|
1391
|
+
async multicallTx(suite, creditAccount, calls) {
|
|
1392
|
+
const marketSuite = this.sdk.marketRegister.findByCreditManager(
|
|
1393
|
+
suite.creditManager.address
|
|
1394
|
+
);
|
|
1395
|
+
const factory = await marketSuite.getKYCFactory();
|
|
1396
|
+
if (factory) {
|
|
1397
|
+
const tokensToRegister = [];
|
|
1398
|
+
return factory.multicall(creditAccount, calls, tokensToRegister);
|
|
1399
|
+
}
|
|
1400
|
+
return suite.creditFacade.multicall(creditAccount, calls);
|
|
1401
|
+
}
|
|
1402
|
+
/**
|
|
1403
|
+
* Wrapper that selects between credit facade and KYC factory
|
|
1404
|
+
* @param suite
|
|
1405
|
+
* @param creditAccount
|
|
1406
|
+
* @param calls
|
|
1407
|
+
* @param operation
|
|
1408
|
+
* @returns
|
|
1409
|
+
*/
|
|
1410
|
+
async closeCreditAccountTx(suite, creditAccount, calls, operation) {
|
|
1411
|
+
const marketSuite = this.sdk.marketRegister.findByCreditManager(
|
|
1412
|
+
suite.creditManager.address
|
|
1413
|
+
);
|
|
1414
|
+
const factory = await marketSuite.getKYCFactory();
|
|
1415
|
+
if (operation === "close") {
|
|
1416
|
+
if (factory) {
|
|
1417
|
+
throw new Error(
|
|
1418
|
+
"CloseOptions=close is not supported for KYC underlying credit accounts"
|
|
1419
|
+
);
|
|
1420
|
+
}
|
|
1421
|
+
return suite.creditFacade.closeCreditAccount(creditAccount, calls);
|
|
1422
|
+
}
|
|
1423
|
+
if (factory) {
|
|
1424
|
+
const tokensToRegister = [];
|
|
1425
|
+
return factory.multicall(creditAccount, calls, tokensToRegister);
|
|
1426
|
+
}
|
|
1427
|
+
return suite.creditFacade.multicall(creditAccount, calls);
|
|
1428
|
+
}
|
|
1429
|
+
/**
|
|
1430
|
+
* Returns all KYC credit account addresses for an investor across the given market suites.
|
|
1431
|
+
* Resolves KYC factory per suite, then multicalls each factory's getCreditAccounts(investor).
|
|
1432
|
+
* @param investor - Owner address to query
|
|
1433
|
+
* @param suites - Market suites (KYC factories are resolved for each; undefined entries are skipped)
|
|
1434
|
+
* @returns Flat array of credit account addresses from all KYC markets
|
|
1435
|
+
*/
|
|
1436
|
+
async getKYCCaOfInvestor(investor, suites) {
|
|
1437
|
+
if (suites.length === 0 || investor === ADDRESS_0X0) return [];
|
|
1438
|
+
const factories = await Promise.all(
|
|
1439
|
+
suites.map((suite) => suite ? suite.getKYCFactory() : void 0)
|
|
1440
|
+
);
|
|
1441
|
+
const safeFactories = factories.reduce(
|
|
1442
|
+
(acc, v) => {
|
|
1443
|
+
if (v) {
|
|
1444
|
+
acc.push(v);
|
|
1445
|
+
}
|
|
1446
|
+
return acc;
|
|
1447
|
+
},
|
|
1448
|
+
[]
|
|
1449
|
+
);
|
|
1450
|
+
const allResp = await this.client.multicall({
|
|
1451
|
+
contracts: [
|
|
1452
|
+
...safeFactories.map((factory) => {
|
|
1453
|
+
return {
|
|
1454
|
+
abi: factory.abi,
|
|
1455
|
+
address: factory.address,
|
|
1456
|
+
functionName: "getCreditAccounts",
|
|
1457
|
+
args: [investor]
|
|
1458
|
+
};
|
|
1459
|
+
})
|
|
1460
|
+
],
|
|
1461
|
+
allowFailure: true,
|
|
1462
|
+
batchSize: 0
|
|
1463
|
+
});
|
|
1464
|
+
const caLists = safeFactories.reduce((acc, _, index) => {
|
|
1465
|
+
const response = allResp[index];
|
|
1466
|
+
acc.push(...response.result || []);
|
|
1467
|
+
return acc;
|
|
1468
|
+
}, []);
|
|
1469
|
+
return caLists;
|
|
1470
|
+
}
|
|
1169
1471
|
}
|
|
1170
|
-
const
|
|
1472
|
+
const ierc4626AdapterAbi = [
|
|
1171
1473
|
{
|
|
1172
|
-
|
|
1173
|
-
|
|
1174
|
-
|
|
1175
|
-
outputs: [
|
|
1176
|
-
{
|
|
1177
|
-
name: "subvaultIndices",
|
|
1178
|
-
type: "uint256[]",
|
|
1179
|
-
internalType: "uint256[]"
|
|
1180
|
-
},
|
|
1181
|
-
{
|
|
1182
|
-
name: "withdrawalIndices",
|
|
1183
|
-
type: "uint256[][]",
|
|
1184
|
-
internalType: "uint256[][]"
|
|
1185
|
-
}
|
|
1474
|
+
inputs: [
|
|
1475
|
+
{ name: "assets", type: "uint256", internalType: "uint256" },
|
|
1476
|
+
{ name: "receiver", type: "address", internalType: "address" }
|
|
1186
1477
|
],
|
|
1187
|
-
|
|
1478
|
+
name: "deposit",
|
|
1479
|
+
outputs: [{ name: "useSafePrices", type: "bool", internalType: "bool" }],
|
|
1480
|
+
stateMutability: "nonpayable",
|
|
1481
|
+
type: "function"
|
|
1188
1482
|
},
|
|
1189
1483
|
{
|
|
1190
|
-
type: "function",
|
|
1191
|
-
name: "getUserSubvaultIndices",
|
|
1192
1484
|
inputs: [
|
|
1193
|
-
{ name: "
|
|
1194
|
-
{ name: "
|
|
1485
|
+
{ name: "shares", type: "uint256", internalType: "uint256" },
|
|
1486
|
+
{ name: "receiver", type: "address", internalType: "address" },
|
|
1487
|
+
{ name: "owner", type: "address", internalType: "address" }
|
|
1195
1488
|
],
|
|
1196
|
-
|
|
1489
|
+
name: "redeem",
|
|
1490
|
+
outputs: [{ name: "useSafePrices", type: "bool", internalType: "bool" }],
|
|
1491
|
+
stateMutability: "nonpayable",
|
|
1492
|
+
type: "function"
|
|
1493
|
+
},
|
|
1494
|
+
{
|
|
1495
|
+
inputs: [
|
|
1197
1496
|
{
|
|
1198
|
-
name: "
|
|
1199
|
-
type: "uint256
|
|
1200
|
-
internalType: "uint256
|
|
1201
|
-
}
|
|
1497
|
+
name: "leftoverAmount",
|
|
1498
|
+
type: "uint256",
|
|
1499
|
+
internalType: "uint256"
|
|
1500
|
+
}
|
|
1501
|
+
],
|
|
1502
|
+
name: "redeemDiff",
|
|
1503
|
+
outputs: [
|
|
1202
1504
|
{
|
|
1203
|
-
name: "
|
|
1204
|
-
type: "
|
|
1205
|
-
internalType: "
|
|
1505
|
+
name: "useSafePrices",
|
|
1506
|
+
type: "bool",
|
|
1507
|
+
internalType: "bool"
|
|
1206
1508
|
}
|
|
1207
1509
|
],
|
|
1208
|
-
stateMutability: "
|
|
1510
|
+
stateMutability: "nonpayable",
|
|
1511
|
+
type: "function"
|
|
1209
1512
|
},
|
|
1210
1513
|
{
|
|
1211
|
-
type: "function",
|
|
1212
|
-
name: "multiAccept",
|
|
1213
1514
|
inputs: [
|
|
1214
|
-
{ name: "multiVault", type: "address", internalType: "address" },
|
|
1215
1515
|
{
|
|
1216
|
-
name: "
|
|
1217
|
-
type: "uint256
|
|
1218
|
-
internalType: "uint256
|
|
1219
|
-
}
|
|
1220
|
-
{ name: "indices", type: "uint256[][]", internalType: "uint256[][]" }
|
|
1516
|
+
name: "leftoverAmount",
|
|
1517
|
+
type: "uint256",
|
|
1518
|
+
internalType: "uint256"
|
|
1519
|
+
}
|
|
1221
1520
|
],
|
|
1222
|
-
|
|
1223
|
-
|
|
1224
|
-
},
|
|
1225
|
-
{
|
|
1226
|
-
type: "function",
|
|
1227
|
-
name: "multiAcceptAndClaim",
|
|
1228
|
-
inputs: [
|
|
1229
|
-
{ name: "multiVault", type: "address", internalType: "address" },
|
|
1521
|
+
name: "depositDiff",
|
|
1522
|
+
outputs: [
|
|
1230
1523
|
{
|
|
1231
|
-
name: "
|
|
1232
|
-
type: "
|
|
1233
|
-
internalType: "
|
|
1234
|
-
}
|
|
1235
|
-
{ name: "indices", type: "uint256[][]", internalType: "uint256[][]" },
|
|
1236
|
-
{ name: "", type: "address", internalType: "address" },
|
|
1237
|
-
{ name: "maxAssets", type: "uint256", internalType: "uint256" }
|
|
1524
|
+
name: "useSafePrices",
|
|
1525
|
+
type: "bool",
|
|
1526
|
+
internalType: "bool"
|
|
1527
|
+
}
|
|
1238
1528
|
],
|
|
1239
|
-
|
|
1240
|
-
|
|
1529
|
+
stateMutability: "nonpayable",
|
|
1530
|
+
type: "function"
|
|
1241
1531
|
}
|
|
1242
1532
|
];
|
|
1243
1533
|
export {
|