@babylonlabs-io/ts-sdk 1.1.0 → 2.0.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -1,5 +1,5 @@
1
- import { zeroAddress as z, encodeFunctionData as E } from "viem";
2
- const V = {
1
+ import { zeroAddress as K, encodeFunctionData as V } from "viem";
2
+ const F = {
3
3
  /** Withdraw selected vaults from position (partial withdrawal) */
4
4
  WITHDRAW_COLLATERALS: "withdrawCollaterals",
5
5
  /** Borrow from Core Spoke position */
@@ -8,42 +8,42 @@ const V = {
8
8
  REPAY: "repayToCorePosition",
9
9
  /** Reorder vault prefix ordering for liquidation priority */
10
10
  REORDER_VAULTS: "reorderVaults"
11
- }, H = 1e4, G = 26, W = 53, K = 18, Y = 1, X = 1.1, Z = 2, ye = 1.05, le = 200n, C = /* @__PURE__ */ JSON.parse('[{"type":"constructor","inputs":[{"name":"vaultBTC_","type":"address","internalType":"address"},{"name":"coreSpoke_","type":"address","internalType":"address"},{"name":"btcVaultRegistry_","type":"address","internalType":"address"},{"name":"applicationRegistry_","type":"address","internalType":"address"},{"name":"proxyManager_","type":"address","internalType":"address"},{"name":"coreVaultBtcReserveId_","type":"uint256","internalType":"uint256"},{"name":"coreWbtcReserveId_","type":"uint256","internalType":"uint256"},{"name":"protocolParams_","type":"address","internalType":"address"},{"name":"llpRegistry_","type":"address","internalType":"address"}],"stateMutability":"nonpayable"},{"type":"function","name":"APP_REGISTRY","inputs":[],"outputs":[{"name":"","type":"address","internalType":"contract IApplicationRegistry"}],"stateMutability":"view"},{"type":"function","name":"BTC_VAULT_CORE_SPOKE","inputs":[],"outputs":[{"name":"","type":"address","internalType":"contract ITBVAaveSpoke"}],"stateMutability":"view"},{"type":"function","name":"VAULT_BTC_RESERVE_ID","inputs":[],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"WBTC_RESERVE_ID","inputs":[],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"BTC_VAULT_REGISTRY","inputs":[],"outputs":[{"name":"","type":"address","internalType":"contract IBTCVaultRegistry"}],"stateMutability":"view"},{"type":"function","name":"DEFAULT_ADMIN_ROLE","inputs":[],"outputs":[{"name":"","type":"bytes32","internalType":"bytes32"}],"stateMutability":"view"},{"type":"function","name":"TIMELOCK_UPGRADER","inputs":[],"outputs":[{"name":"","type":"bytes32","internalType":"bytes32"}],"stateMutability":"view"},{"type":"function","name":"UPGRADE_INTERFACE_VERSION","inputs":[],"outputs":[{"name":"","type":"string","internalType":"string"}],"stateMutability":"view"},{"type":"function","name":"VAULT_BTC","inputs":[],"outputs":[{"name":"","type":"address","internalType":"contract IVaultBTC"}],"stateMutability":"view"},{"type":"function","name":"activateVault","inputs":[{"name":"vaultId","type":"bytes32","internalType":"bytes32"},{"name":"vault","type":"tuple","internalType":"struct IBTCVaultRegistry.BTCVault","components":[{"name":"depositor","type":"address","internalType":"address"},{"name":"depositorBtcPubKey","type":"bytes32","internalType":"bytes32"},{"name":"depositorSignedPeginTx","type":"bytes","internalType":"bytes"},{"name":"amount","type":"uint256","internalType":"uint256"},{"name":"vaultProvider","type":"address","internalType":"address"},{"name":"status","type":"uint8","internalType":"enum IBTCVaultRegistry.BTCVaultStatus"},{"name":"applicationEntryPoint","type":"address","internalType":"address"},{"name":"universalChallengersVersion","type":"uint16","internalType":"uint16"},{"name":"appVaultKeepersVersion","type":"uint16","internalType":"uint16"},{"name":"offchainParamsVersion","type":"uint16","internalType":"uint16"},{"name":"createdAt","type":"uint256","internalType":"uint256"},{"name":"verifiedAt","type":"uint256","internalType":"uint256"},{"name":"depositorWotsPkHash","type":"bytes32","internalType":"bytes32"},{"name":"hashlock","type":"bytes32","internalType":"bytes32"},{"name":"htlcVout","type":"uint8","internalType":"uint8"},{"name":"depositorPopSignature","type":"bytes","internalType":"bytes"},{"name":"prePeginTxHash","type":"bytes32","internalType":"bytes32"}]},{"name":"activationMetadata","type":"bytes","internalType":"bytes"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"applicationRecipient","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"borrowFromCorePosition","inputs":[{"name":"debtReserveId","type":"uint256","internalType":"uint256"},{"name":"amount","type":"uint256","internalType":"uint256"},{"name":"receiver","type":"address","internalType":"address"}],"outputs":[{"name":"borrowedShares","type":"uint256","internalType":"uint256"},{"name":"borrowedAmount","type":"uint256","internalType":"uint256"}],"stateMutability":"nonpayable"},{"type":"function","name":"freeze","inputs":[],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"fullPause","inputs":[],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"getFairnessPaymentTokenConfig","inputs":[],"outputs":[{"name":"reserveId","type":"uint256","internalType":"uint256"},{"name":"token","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"getInterestFeeIndex","inputs":[{"name":"reserveId","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"interestFeeIndex","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"getPosition","inputs":[{"name":"user","type":"address","internalType":"address"}],"outputs":[{"name":"position","type":"tuple","internalType":"struct IAaveIntegrationAdapter.MarketPosition","components":[{"name":"vaultIds","type":"bytes32[]","internalType":"bytes32[]"},{"name":"totalCollateralBTC","type":"uint256","internalType":"uint256"},{"name":"proxyContract","type":"address","internalType":"address"}]}],"stateMutability":"view"},{"type":"function","name":"getPositionSizeParams","inputs":[],"outputs":[{"name":"maxPositionBTC","type":"uint256","internalType":"uint256"},{"name":"maxVaultsPerPosition","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"getRoleAdmin","inputs":[{"name":"role","type":"bytes32","internalType":"bytes32"}],"outputs":[{"name":"","type":"bytes32","internalType":"bytes32"}],"stateMutability":"view"},{"type":"function","name":"getVaultUsageStatus","inputs":[{"name":"vaultId","type":"bytes32","internalType":"bytes32"}],"outputs":[{"name":"status","type":"uint8","internalType":"enum AaveVaultHandler.VaultUsageStatus"}],"stateMutability":"view"},{"type":"function","name":"grantRole","inputs":[{"name":"role","type":"bytes32","internalType":"bytes32"},{"name":"account","type":"address","internalType":"address"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"hasRole","inputs":[{"name":"role","type":"bytes32","internalType":"bytes32"},{"name":"account","type":"address","internalType":"address"}],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"view"},{"type":"function","name":"initialize","inputs":[{"name":"initialTBVAdmin","type":"address","internalType":"address"},{"name":"_applicationRecipient","type":"address","internalType":"address"},{"name":"_liquidationRedemptionFeeBps","type":"uint256","internalType":"uint256"},{"name":"_initialInterestFeeBps","type":"uint256","internalType":"uint256"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"interestFeeBps","inputs":[],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"isValidPositionResolver","inputs":[{"name":"resolver","type":"address","internalType":"address"}],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"view"},{"type":"function","name":"liquidate","inputs":[{"name":"borrower","type":"address","internalType":"address"},{"name":"directBtcRedeemKey","type":"bytes32","internalType":"bytes32"},{"name":"amounts","type":"uint256[]","internalType":"uint256[]"},{"name":"priorityOrder","type":"uint256[]","internalType":"uint256[]"}],"outputs":[{"name":"vaultIds","type":"bytes32[]","internalType":"bytes32[]"}],"stateMutability":"nonpayable"},{"type":"function","name":"liquidateWithLLP","inputs":[{"name":"borrower","type":"address","internalType":"address"},{"name":"llp","type":"address","internalType":"address"},{"name":"amounts","type":"uint256[]","internalType":"uint256[]"},{"name":"priorityOrder","type":"uint256[]","internalType":"uint256[]"},{"name":"requestedTokens","type":"tuple[]","internalType":"struct TokenAmountLib.TokenAmount[]","components":[{"name":"token","type":"address","internalType":"address"},{"name":"amount","type":"uint256","internalType":"uint256"}]}],"outputs":[{"name":"vaultIds","type":"bytes32[]","internalType":"bytes32[]"}],"stateMutability":"nonpayable"},{"type":"function","name":"liquidationRedemptionFeeBps","inputs":[],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"pauseState","inputs":[],"outputs":[{"name":"","type":"uint8","internalType":"enum ITBVPausable.PauseState"}],"stateMutability":"view"},{"type":"function","name":"proxiableUUID","inputs":[],"outputs":[{"name":"","type":"bytes32","internalType":"bytes32"}],"stateMutability":"view"},{"type":"function","name":"redeemVaultFromLLP","inputs":[{"name":"vaultId","type":"bytes32","internalType":"bytes32"},{"name":"btcRedeemKey","type":"bytes32","internalType":"bytes32"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"registerResolver","inputs":[{"name":"resolver","type":"address","internalType":"address"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"removeResolver","inputs":[{"name":"resolver","type":"address","internalType":"address"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"renounceRole","inputs":[{"name":"role","type":"bytes32","internalType":"bytes32"},{"name":"account","type":"address","internalType":"address"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"reorderVaults","inputs":[{"name":"permuted","type":"bytes32[]","internalType":"bytes32[]"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"repayToCorePosition","inputs":[{"name":"borrower","type":"address","internalType":"address"},{"name":"debtReserveId","type":"uint256","internalType":"uint256"},{"name":"amount","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"repaidFee","type":"uint256","internalType":"uint256"},{"name":"repaidShares","type":"uint256","internalType":"uint256"},{"name":"repaidAmount","type":"uint256","internalType":"uint256"}],"stateMutability":"nonpayable"},{"type":"function","name":"revokeRole","inputs":[{"name":"role","type":"bytes32","internalType":"bytes32"},{"name":"account","type":"address","internalType":"address"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"setApplicationRecipient","inputs":[{"name":"_applicationRecipient","type":"address","internalType":"address"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"setInterestFeeBps","inputs":[{"name":"feeBps","type":"uint256","internalType":"uint256"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"setLiquidationRedemptionFeeBps","inputs":[{"name":"feeBps","type":"uint256","internalType":"uint256"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"setPositionSizeParams","inputs":[{"name":"params","type":"tuple","internalType":"struct IAaveIntegrationAdapter.PositionSizeParams","components":[{"name":"maxPositionBTC","type":"uint256","internalType":"uint256"},{"name":"maxVaultsPerPosition","type":"uint256","internalType":"uint256"}]}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"supportsInterface","inputs":[{"name":"interfaceId","type":"bytes4","internalType":"bytes4"}],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"view"},{"type":"function","name":"unfreeze","inputs":[],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"unpause","inputs":[],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"upgradeToAndCall","inputs":[{"name":"newImplementation","type":"address","internalType":"address"},{"name":"data","type":"bytes","internalType":"bytes"}],"outputs":[],"stateMutability":"payable"},{"type":"function","name":"vaultOwner","inputs":[{"name":"","type":"bytes32","internalType":"bytes32"}],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"withdrawCollaterals","inputs":[{"name":"vaultsToWithdraw","type":"bytes32[]","internalType":"bytes32[]"}],"outputs":[{"name":"amountWithdrawn","type":"uint256","internalType":"uint256"}],"stateMutability":"nonpayable"},{"type":"event","name":"AdapterApplicationRecipientUpdated","inputs":[{"name":"applicationFeeRecipient","type":"address","indexed":false,"internalType":"address"}],"anonymous":false},{"type":"event","name":"AdapterLiquidationRedemptionFeeUpdated","inputs":[{"name":"liquidationRedemptionFeeBps","type":"uint256","indexed":false,"internalType":"uint256"}],"anonymous":false},{"type":"event","name":"AdapterPositionResolverAdded","inputs":[{"name":"positionResolver","type":"address","indexed":true,"internalType":"address"}],"anonymous":false},{"type":"event","name":"AdapterPositionResolverRemoved","inputs":[{"name":"positionResolver","type":"address","indexed":true,"internalType":"address"}],"anonymous":false},{"type":"event","name":"BTCVaultCoreSpokeLiquidated","inputs":[{"name":"depositor","type":"address","indexed":true,"internalType":"address"},{"name":"liquidator","type":"address","indexed":true,"internalType":"address"},{"name":"amountCollateralSeized","type":"uint256","indexed":false,"internalType":"uint256"},{"name":"valueCollateralSeized","type":"uint256","indexed":false,"internalType":"uint256"},{"name":"valueDebtRepaid","type":"uint256","indexed":false,"internalType":"uint256"}],"anonymous":false},{"type":"event","name":"BorrowedFromPosition","inputs":[{"name":"borrower","type":"address","indexed":true,"internalType":"address"},{"name":"debtReserveId","type":"uint256","indexed":true,"internalType":"uint256"},{"name":"receiver","type":"address","indexed":true,"internalType":"address"},{"name":"borrowAmount","type":"uint256","indexed":false,"internalType":"uint256"}],"anonymous":false},{"type":"event","name":"CollateralAdded","inputs":[{"name":"positionAccount","type":"address","indexed":true,"internalType":"address"},{"name":"vaultId","type":"bytes32","indexed":true,"internalType":"bytes32"}],"anonymous":false},{"type":"event","name":"CollateralWithdrawn","inputs":[{"name":"positionAccount","type":"address","indexed":true,"internalType":"address"},{"name":"vaultId","type":"bytes32","indexed":true,"internalType":"bytes32"}],"anonymous":false},{"type":"event","name":"FairnessPaymentFailed","inputs":[{"name":"positionAccount","type":"address","indexed":true,"internalType":"address"},{"name":"liquidator","type":"address","indexed":true,"internalType":"address"},{"name":"protocolRecipient","type":"address","indexed":false,"internalType":"address"},{"name":"amount","type":"uint256","indexed":false,"internalType":"uint256"}],"anonymous":false},{"type":"event","name":"FairnessPaymentPaid","inputs":[{"name":"positionAccount","type":"address","indexed":true,"internalType":"address"},{"name":"liquidator","type":"address","indexed":true,"internalType":"address"},{"name":"amount","type":"uint256","indexed":false,"internalType":"uint256"}],"anonymous":false},{"type":"event","name":"Initialized","inputs":[{"name":"version","type":"uint8","indexed":false,"internalType":"uint8"}],"anonymous":false},{"type":"event","name":"InterestFeeUpdated","inputs":[{"name":"newInterestFeeBps","type":"uint256","indexed":false,"internalType":"uint256"}],"anonymous":false},{"type":"event","name":"LiquidationSettledViaLLP","inputs":[{"name":"llp","type":"address","indexed":true,"internalType":"address"},{"name":"liquidator","type":"address","indexed":true,"internalType":"address"},{"name":"borrower","type":"address","indexed":true,"internalType":"address"},{"name":"vaultIds","type":"bytes32[]","indexed":false,"internalType":"bytes32[]"},{"name":"payouts","type":"tuple[]","indexed":false,"internalType":"struct TokenAmountLib.TokenAmount[]","components":[{"name":"token","type":"address","internalType":"address"},{"name":"amount","type":"uint256","internalType":"uint256"}]}],"anonymous":false},{"type":"event","name":"PausedWith","inputs":[{"name":"state","type":"uint8","indexed":true,"internalType":"enum ITBVPausable.PauseState"},{"name":"pauser","type":"address","indexed":true,"internalType":"address"}],"anonymous":false},{"type":"event","name":"PositionSizeParamsUpdated","inputs":[{"name":"newParams","type":"tuple","indexed":false,"internalType":"struct IAaveIntegrationAdapter.PositionSizeParams","components":[{"name":"maxPositionBTC","type":"uint256","internalType":"uint256"},{"name":"maxVaultsPerPosition","type":"uint256","internalType":"uint256"}]}],"anonymous":false},{"type":"event","name":"RepaidFromPosition","inputs":[{"name":"borrower","type":"address","indexed":true,"internalType":"address"},{"name":"debtReserveId","type":"uint256","indexed":true,"internalType":"uint256"},{"name":"repayAmount","type":"uint256","indexed":false,"internalType":"uint256"}],"anonymous":false},{"type":"event","name":"RoleAdminChanged","inputs":[{"name":"role","type":"bytes32","indexed":true,"internalType":"bytes32"},{"name":"previousAdminRole","type":"bytes32","indexed":true,"internalType":"bytes32"},{"name":"newAdminRole","type":"bytes32","indexed":true,"internalType":"bytes32"}],"anonymous":false},{"type":"event","name":"RoleGranted","inputs":[{"name":"role","type":"bytes32","indexed":true,"internalType":"bytes32"},{"name":"account","type":"address","indexed":true,"internalType":"address"},{"name":"sender","type":"address","indexed":true,"internalType":"address"}],"anonymous":false},{"type":"event","name":"RoleRevoked","inputs":[{"name":"role","type":"bytes32","indexed":true,"internalType":"bytes32"},{"name":"account","type":"address","indexed":true,"internalType":"address"},{"name":"sender","type":"address","indexed":true,"internalType":"address"}],"anonymous":false},{"type":"event","name":"Unfrozen","inputs":[{"name":"pauser","type":"address","indexed":true,"internalType":"address"}],"anonymous":false},{"type":"event","name":"Unpaused","inputs":[{"name":"pauser","type":"address","indexed":true,"internalType":"address"}],"anonymous":false},{"type":"event","name":"Upgraded","inputs":[{"name":"implementation","type":"address","indexed":true,"internalType":"address"}],"anonymous":false},{"type":"event","name":"UserProxyCreated","inputs":[{"name":"user","type":"address","indexed":true,"internalType":"address"},{"name":"proxy","type":"address","indexed":true,"internalType":"address"}],"anonymous":false},{"type":"event","name":"VaultLiquidated","inputs":[{"name":"vaultId","type":"bytes32","indexed":true,"internalType":"bytes32"},{"name":"liquidator","type":"address","indexed":false,"internalType":"address"}],"anonymous":false},{"type":"event","name":"VaultMarkedCollateralized","inputs":[{"name":"vaultId","type":"bytes32","indexed":true,"internalType":"bytes32"}],"anonymous":false},{"type":"event","name":"VaultMarkedLLPOwned","inputs":[{"name":"vaultId","type":"bytes32","indexed":true,"internalType":"bytes32"}],"anonymous":false},{"type":"event","name":"VaultMarkedRedeemed","inputs":[{"name":"vaultId","type":"bytes32","indexed":true,"internalType":"bytes32"}],"anonymous":false},{"type":"event","name":"VaultOwnershipChanged","inputs":[{"name":"vaultId","type":"bytes32","indexed":true,"internalType":"bytes32"},{"name":"newOwner","type":"address","indexed":true,"internalType":"address"}],"anonymous":false},{"type":"event","name":"VaultsReordered","inputs":[{"name":"borrower","type":"address","indexed":true,"internalType":"address"},{"name":"newVaults","type":"bytes32[]","indexed":false,"internalType":"bytes32[]"}],"anonymous":false},{"type":"error","name":"AddressEmptyCode","inputs":[{"name":"target","type":"address","internalType":"address"}]},{"type":"error","name":"ERC1967InvalidImplementation","inputs":[{"name":"implementation","type":"address","internalType":"address"}]},{"type":"error","name":"ERC1967NonPayable","inputs":[]},{"type":"error","name":"EmptyArray","inputs":[]},{"type":"error","name":"FailedCall","inputs":[]},{"type":"error","name":"FairnessDebtRepaymentTargetNotMet","inputs":[{"name":"target","type":"uint256","internalType":"uint256"},{"name":"actual","type":"uint256","internalType":"uint256"}]},{"type":"error","name":"IncompleteWithdrawal","inputs":[{"name":"expected","type":"uint256","internalType":"uint256"},{"name":"actual","type":"uint256","internalType":"uint256"}]},{"type":"error","name":"InvalidActivationMetadataVersion","inputs":[]},{"type":"error","name":"InvalidAmount","inputs":[]},{"type":"error","name":"InvalidAmountsLength","inputs":[{"name":"amountsLength","type":"uint256","internalType":"uint256"},{"name":"reserveCount","type":"uint256","internalType":"uint256"}]},{"type":"error","name":"InvalidInterestFeeBps","inputs":[]},{"type":"error","name":"InvalidOraclePrice","inputs":[]},{"type":"error","name":"InvalidPositionResolver","inputs":[]},{"type":"error","name":"InvalidPriorityOrderLength","inputs":[{"name":"priorityOrderLength","type":"uint256","internalType":"uint256"},{"name":"amountsLength","type":"uint256","internalType":"uint256"}]},{"type":"error","name":"InvalidProxyContract","inputs":[]},{"type":"error","name":"InvalidReserveId","inputs":[{"name":"reserveId","type":"uint256","internalType":"uint256"}]},{"type":"error","name":"InvalidVaultStatus","inputs":[]},{"type":"error","name":"InvalidVaultsPermutation","inputs":[]},{"type":"error","name":"InvalidVaultsToRemove","inputs":[]},{"type":"error","name":"LLPDisabled","inputs":[{"name":"llp","type":"address","internalType":"address"}]},{"type":"error","name":"MaxPositionBelowVaultMin","inputs":[{"name":"maxPositionBTC","type":"uint256","internalType":"uint256"},{"name":"minimumPegInAmount","type":"uint256","internalType":"uint256"}]},{"type":"error","name":"NoDebtToLiquidate","inputs":[]},{"type":"error","name":"OnlyApplicationEntryPoint","inputs":[]},{"type":"error","name":"PositionAboveMaximum","inputs":[{"name":"actual","type":"uint256","internalType":"uint256"},{"name":"maximum","type":"uint256","internalType":"uint256"}]},{"type":"error","name":"PositionMaxBelowVaultMax","inputs":[{"name":"maxPositionBTC","type":"uint256","internalType":"uint256"},{"name":"vaultMaximum","type":"uint256","internalType":"uint256"}]},{"type":"error","name":"PositionNotLiquidatable","inputs":[]},{"type":"error","name":"PrefixLengthExceedsArray","inputs":[]},{"type":"error","name":"SafeERC20FailedOperation","inputs":[{"name":"token","type":"address","internalType":"address"}]},{"type":"error","name":"TBV_AlreadyFrozen","inputs":[]},{"type":"error","name":"TBV_AlreadyPaused","inputs":[]},{"type":"error","name":"TBV_Frozen","inputs":[]},{"type":"error","name":"TBV_NotFrozen","inputs":[]},{"type":"error","name":"TBV_NotPaused","inputs":[]},{"type":"error","name":"TBV_Paused","inputs":[]},{"type":"error","name":"TBV_Unauthorized","inputs":[]},{"type":"error","name":"UUPSUnauthorizedCallContext","inputs":[]},{"type":"error","name":"UUPSUnsupportedProxiableUUID","inputs":[{"name":"slot","type":"bytes32","internalType":"bytes32"}]},{"type":"error","name":"Unauthorized","inputs":[]},{"type":"error","name":"VaultCountExceedsMaximum","inputs":[{"name":"actual","type":"uint256","internalType":"uint256"},{"name":"maximum","type":"uint256","internalType":"uint256"}]},{"type":"error","name":"ZeroAddress","inputs":[]},{"type":"error","name":"ZeroAmount","inputs":[]},{"type":"error","name":"ZeroBorrowAmount","inputs":[]},{"type":"error","name":"ZeroBtcKey","inputs":[]}]'), $ = "InvalidProxyContract", J = 10;
12
- function j(e) {
11
+ }, X = 1e4, Y = 26, $ = 53, Z = 18, Q = 1, J = 1.1, j = 2, be = 1.05, fe = 200n, ve = 65535, S = /* @__PURE__ */ JSON.parse('[{"type":"constructor","inputs":[{"name":"vaultBTC_","type":"address","internalType":"address"},{"name":"coreSpoke_","type":"address","internalType":"address"},{"name":"btcVaultRegistry_","type":"address","internalType":"address"},{"name":"applicationRegistry_","type":"address","internalType":"address"},{"name":"proxyManager_","type":"address","internalType":"address"},{"name":"coreVaultBtcReserveId_","type":"uint256","internalType":"uint256"},{"name":"coreWbtcReserveId_","type":"uint256","internalType":"uint256"},{"name":"protocolParams_","type":"address","internalType":"address"},{"name":"llpRegistry_","type":"address","internalType":"address"}],"stateMutability":"nonpayable"},{"type":"function","name":"APP_REGISTRY","inputs":[],"outputs":[{"name":"","type":"address","internalType":"contract IApplicationRegistry"}],"stateMutability":"view"},{"type":"function","name":"BTC_VAULT_CORE_SPOKE","inputs":[],"outputs":[{"name":"","type":"address","internalType":"contract ITBVAaveSpoke"}],"stateMutability":"view"},{"type":"function","name":"VAULT_BTC_RESERVE_ID","inputs":[],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"WBTC_RESERVE_ID","inputs":[],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"BTC_VAULT_REGISTRY","inputs":[],"outputs":[{"name":"","type":"address","internalType":"contract IBTCVaultRegistry"}],"stateMutability":"view"},{"type":"function","name":"DEFAULT_ADMIN_ROLE","inputs":[],"outputs":[{"name":"","type":"bytes32","internalType":"bytes32"}],"stateMutability":"view"},{"type":"function","name":"TIMELOCK_UPGRADER","inputs":[],"outputs":[{"name":"","type":"bytes32","internalType":"bytes32"}],"stateMutability":"view"},{"type":"function","name":"UPGRADE_INTERFACE_VERSION","inputs":[],"outputs":[{"name":"","type":"string","internalType":"string"}],"stateMutability":"view"},{"type":"function","name":"VAULT_BTC","inputs":[],"outputs":[{"name":"","type":"address","internalType":"contract IVaultBTC"}],"stateMutability":"view"},{"type":"function","name":"activateVault","inputs":[{"name":"vaultId","type":"bytes32","internalType":"bytes32"},{"name":"vault","type":"tuple","internalType":"struct IBTCVaultRegistry.BTCVault","components":[{"name":"depositor","type":"address","internalType":"address"},{"name":"depositorBtcPubKey","type":"bytes32","internalType":"bytes32"},{"name":"depositorSignedPeginTx","type":"bytes","internalType":"bytes"},{"name":"amount","type":"uint256","internalType":"uint256"},{"name":"vaultProvider","type":"address","internalType":"address"},{"name":"status","type":"uint8","internalType":"enum IBTCVaultRegistry.BTCVaultStatus"},{"name":"applicationEntryPoint","type":"address","internalType":"address"},{"name":"universalChallengersVersion","type":"uint16","internalType":"uint16"},{"name":"appVaultKeepersVersion","type":"uint16","internalType":"uint16"},{"name":"offchainParamsVersion","type":"uint16","internalType":"uint16"},{"name":"createdAt","type":"uint256","internalType":"uint256"},{"name":"verifiedAt","type":"uint256","internalType":"uint256"},{"name":"depositorWotsPkHash","type":"bytes32","internalType":"bytes32"},{"name":"hashlock","type":"bytes32","internalType":"bytes32"},{"name":"htlcVout","type":"uint8","internalType":"uint8"},{"name":"depositorPopSignature","type":"bytes","internalType":"bytes"},{"name":"prePeginTxHash","type":"bytes32","internalType":"bytes32"}]},{"name":"activationMetadata","type":"bytes","internalType":"bytes"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"applicationRecipient","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"borrowFromCorePosition","inputs":[{"name":"debtReserveId","type":"uint256","internalType":"uint256"},{"name":"amount","type":"uint256","internalType":"uint256"},{"name":"receiver","type":"address","internalType":"address"}],"outputs":[{"name":"borrowedShares","type":"uint256","internalType":"uint256"},{"name":"borrowedAmount","type":"uint256","internalType":"uint256"}],"stateMutability":"nonpayable"},{"type":"function","name":"freeze","inputs":[],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"fullPause","inputs":[],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"getFairnessPaymentTokenConfig","inputs":[],"outputs":[{"name":"reserveId","type":"uint256","internalType":"uint256"},{"name":"token","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"getInterestFeeIndex","inputs":[{"name":"reserveId","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"interestFeeIndex","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"getPosition","inputs":[{"name":"user","type":"address","internalType":"address"}],"outputs":[{"name":"position","type":"tuple","internalType":"struct IAaveIntegrationAdapter.MarketPosition","components":[{"name":"vaultIds","type":"bytes32[]","internalType":"bytes32[]"},{"name":"totalCollateralBTC","type":"uint256","internalType":"uint256"},{"name":"proxyContract","type":"address","internalType":"address"}]}],"stateMutability":"view"},{"type":"function","name":"getPositionSizeParams","inputs":[],"outputs":[{"name":"maxPositionBTC","type":"uint256","internalType":"uint256"},{"name":"maxVaultsPerPosition","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"getRoleAdmin","inputs":[{"name":"role","type":"bytes32","internalType":"bytes32"}],"outputs":[{"name":"","type":"bytes32","internalType":"bytes32"}],"stateMutability":"view"},{"type":"function","name":"getVaultUsageStatus","inputs":[{"name":"vaultId","type":"bytes32","internalType":"bytes32"}],"outputs":[{"name":"status","type":"uint8","internalType":"enum AaveVaultHandler.VaultUsageStatus"}],"stateMutability":"view"},{"type":"function","name":"grantRole","inputs":[{"name":"role","type":"bytes32","internalType":"bytes32"},{"name":"account","type":"address","internalType":"address"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"hasRole","inputs":[{"name":"role","type":"bytes32","internalType":"bytes32"},{"name":"account","type":"address","internalType":"address"}],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"view"},{"type":"function","name":"initialize","inputs":[{"name":"initialTBVAdmin","type":"address","internalType":"address"},{"name":"_applicationRecipient","type":"address","internalType":"address"},{"name":"_liquidationRedemptionFeeBps","type":"uint256","internalType":"uint256"},{"name":"_initialInterestFeeBps","type":"uint256","internalType":"uint256"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"interestFeeBps","inputs":[],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"isValidPositionResolver","inputs":[{"name":"resolver","type":"address","internalType":"address"}],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"view"},{"type":"function","name":"liquidate","inputs":[{"name":"borrower","type":"address","internalType":"address"},{"name":"directBtcRedeemKey","type":"bytes32","internalType":"bytes32"},{"name":"amounts","type":"uint256[]","internalType":"uint256[]"},{"name":"priorityOrder","type":"uint256[]","internalType":"uint256[]"}],"outputs":[{"name":"vaultIds","type":"bytes32[]","internalType":"bytes32[]"}],"stateMutability":"nonpayable"},{"type":"function","name":"liquidateWithLLP","inputs":[{"name":"borrower","type":"address","internalType":"address"},{"name":"llp","type":"address","internalType":"address"},{"name":"amounts","type":"uint256[]","internalType":"uint256[]"},{"name":"priorityOrder","type":"uint256[]","internalType":"uint256[]"},{"name":"requestedTokens","type":"tuple[]","internalType":"struct TokenAmountLib.TokenAmount[]","components":[{"name":"token","type":"address","internalType":"address"},{"name":"amount","type":"uint256","internalType":"uint256"}]}],"outputs":[{"name":"vaultIds","type":"bytes32[]","internalType":"bytes32[]"}],"stateMutability":"nonpayable"},{"type":"function","name":"liquidationRedemptionFeeBps","inputs":[],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"pauseState","inputs":[],"outputs":[{"name":"","type":"uint8","internalType":"enum ITBVPausable.PauseState"}],"stateMutability":"view"},{"type":"function","name":"proxiableUUID","inputs":[],"outputs":[{"name":"","type":"bytes32","internalType":"bytes32"}],"stateMutability":"view"},{"type":"function","name":"redeemVaultFromLLP","inputs":[{"name":"vaultId","type":"bytes32","internalType":"bytes32"},{"name":"btcRedeemKey","type":"bytes32","internalType":"bytes32"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"registerResolver","inputs":[{"name":"resolver","type":"address","internalType":"address"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"removeResolver","inputs":[{"name":"resolver","type":"address","internalType":"address"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"renounceRole","inputs":[{"name":"role","type":"bytes32","internalType":"bytes32"},{"name":"account","type":"address","internalType":"address"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"reorderVaults","inputs":[{"name":"permuted","type":"bytes32[]","internalType":"bytes32[]"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"repayToCorePosition","inputs":[{"name":"borrower","type":"address","internalType":"address"},{"name":"debtReserveId","type":"uint256","internalType":"uint256"},{"name":"amount","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"repaidFee","type":"uint256","internalType":"uint256"},{"name":"repaidShares","type":"uint256","internalType":"uint256"},{"name":"repaidAmount","type":"uint256","internalType":"uint256"}],"stateMutability":"nonpayable"},{"type":"function","name":"revokeRole","inputs":[{"name":"role","type":"bytes32","internalType":"bytes32"},{"name":"account","type":"address","internalType":"address"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"setApplicationRecipient","inputs":[{"name":"_applicationRecipient","type":"address","internalType":"address"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"setInterestFeeBps","inputs":[{"name":"feeBps","type":"uint256","internalType":"uint256"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"setLiquidationRedemptionFeeBps","inputs":[{"name":"feeBps","type":"uint256","internalType":"uint256"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"setPositionSizeParams","inputs":[{"name":"params","type":"tuple","internalType":"struct IAaveIntegrationAdapter.PositionSizeParams","components":[{"name":"maxPositionBTC","type":"uint256","internalType":"uint256"},{"name":"maxVaultsPerPosition","type":"uint256","internalType":"uint256"}]}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"supportsInterface","inputs":[{"name":"interfaceId","type":"bytes4","internalType":"bytes4"}],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"view"},{"type":"function","name":"unfreeze","inputs":[],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"unpause","inputs":[],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"upgradeToAndCall","inputs":[{"name":"newImplementation","type":"address","internalType":"address"},{"name":"data","type":"bytes","internalType":"bytes"}],"outputs":[],"stateMutability":"payable"},{"type":"function","name":"vaultOwner","inputs":[{"name":"","type":"bytes32","internalType":"bytes32"}],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"withdrawCollaterals","inputs":[{"name":"vaultsToWithdraw","type":"bytes32[]","internalType":"bytes32[]"}],"outputs":[{"name":"amountWithdrawn","type":"uint256","internalType":"uint256"}],"stateMutability":"nonpayable"},{"type":"event","name":"AdapterApplicationRecipientUpdated","inputs":[{"name":"applicationFeeRecipient","type":"address","indexed":false,"internalType":"address"}],"anonymous":false},{"type":"event","name":"AdapterLiquidationRedemptionFeeUpdated","inputs":[{"name":"liquidationRedemptionFeeBps","type":"uint256","indexed":false,"internalType":"uint256"}],"anonymous":false},{"type":"event","name":"AdapterPositionResolverAdded","inputs":[{"name":"positionResolver","type":"address","indexed":true,"internalType":"address"}],"anonymous":false},{"type":"event","name":"AdapterPositionResolverRemoved","inputs":[{"name":"positionResolver","type":"address","indexed":true,"internalType":"address"}],"anonymous":false},{"type":"event","name":"BTCVaultCoreSpokeLiquidated","inputs":[{"name":"depositor","type":"address","indexed":true,"internalType":"address"},{"name":"liquidator","type":"address","indexed":true,"internalType":"address"},{"name":"amountCollateralSeized","type":"uint256","indexed":false,"internalType":"uint256"},{"name":"valueCollateralSeized","type":"uint256","indexed":false,"internalType":"uint256"},{"name":"valueDebtRepaid","type":"uint256","indexed":false,"internalType":"uint256"}],"anonymous":false},{"type":"event","name":"BorrowedFromPosition","inputs":[{"name":"borrower","type":"address","indexed":true,"internalType":"address"},{"name":"debtReserveId","type":"uint256","indexed":true,"internalType":"uint256"},{"name":"receiver","type":"address","indexed":true,"internalType":"address"},{"name":"borrowAmount","type":"uint256","indexed":false,"internalType":"uint256"}],"anonymous":false},{"type":"event","name":"CollateralAdded","inputs":[{"name":"positionAccount","type":"address","indexed":true,"internalType":"address"},{"name":"vaultId","type":"bytes32","indexed":true,"internalType":"bytes32"}],"anonymous":false},{"type":"event","name":"CollateralWithdrawn","inputs":[{"name":"positionAccount","type":"address","indexed":true,"internalType":"address"},{"name":"vaultId","type":"bytes32","indexed":true,"internalType":"bytes32"}],"anonymous":false},{"type":"event","name":"FairnessPaymentFailed","inputs":[{"name":"positionAccount","type":"address","indexed":true,"internalType":"address"},{"name":"liquidator","type":"address","indexed":true,"internalType":"address"},{"name":"protocolRecipient","type":"address","indexed":false,"internalType":"address"},{"name":"amount","type":"uint256","indexed":false,"internalType":"uint256"}],"anonymous":false},{"type":"event","name":"FairnessPaymentPaid","inputs":[{"name":"positionAccount","type":"address","indexed":true,"internalType":"address"},{"name":"liquidator","type":"address","indexed":true,"internalType":"address"},{"name":"amount","type":"uint256","indexed":false,"internalType":"uint256"}],"anonymous":false},{"type":"event","name":"Initialized","inputs":[{"name":"version","type":"uint8","indexed":false,"internalType":"uint8"}],"anonymous":false},{"type":"event","name":"InterestFeeUpdated","inputs":[{"name":"newInterestFeeBps","type":"uint256","indexed":false,"internalType":"uint256"}],"anonymous":false},{"type":"event","name":"LiquidationSettledViaLLP","inputs":[{"name":"llp","type":"address","indexed":true,"internalType":"address"},{"name":"liquidator","type":"address","indexed":true,"internalType":"address"},{"name":"borrower","type":"address","indexed":true,"internalType":"address"},{"name":"vaultIds","type":"bytes32[]","indexed":false,"internalType":"bytes32[]"},{"name":"payouts","type":"tuple[]","indexed":false,"internalType":"struct TokenAmountLib.TokenAmount[]","components":[{"name":"token","type":"address","internalType":"address"},{"name":"amount","type":"uint256","internalType":"uint256"}]}],"anonymous":false},{"type":"event","name":"PausedWith","inputs":[{"name":"state","type":"uint8","indexed":true,"internalType":"enum ITBVPausable.PauseState"},{"name":"pauser","type":"address","indexed":true,"internalType":"address"}],"anonymous":false},{"type":"event","name":"PositionSizeParamsUpdated","inputs":[{"name":"newParams","type":"tuple","indexed":false,"internalType":"struct IAaveIntegrationAdapter.PositionSizeParams","components":[{"name":"maxPositionBTC","type":"uint256","internalType":"uint256"},{"name":"maxVaultsPerPosition","type":"uint256","internalType":"uint256"}]}],"anonymous":false},{"type":"event","name":"RepaidFromPosition","inputs":[{"name":"borrower","type":"address","indexed":true,"internalType":"address"},{"name":"debtReserveId","type":"uint256","indexed":true,"internalType":"uint256"},{"name":"repayAmount","type":"uint256","indexed":false,"internalType":"uint256"}],"anonymous":false},{"type":"event","name":"RoleAdminChanged","inputs":[{"name":"role","type":"bytes32","indexed":true,"internalType":"bytes32"},{"name":"previousAdminRole","type":"bytes32","indexed":true,"internalType":"bytes32"},{"name":"newAdminRole","type":"bytes32","indexed":true,"internalType":"bytes32"}],"anonymous":false},{"type":"event","name":"RoleGranted","inputs":[{"name":"role","type":"bytes32","indexed":true,"internalType":"bytes32"},{"name":"account","type":"address","indexed":true,"internalType":"address"},{"name":"sender","type":"address","indexed":true,"internalType":"address"}],"anonymous":false},{"type":"event","name":"RoleRevoked","inputs":[{"name":"role","type":"bytes32","indexed":true,"internalType":"bytes32"},{"name":"account","type":"address","indexed":true,"internalType":"address"},{"name":"sender","type":"address","indexed":true,"internalType":"address"}],"anonymous":false},{"type":"event","name":"Unfrozen","inputs":[{"name":"pauser","type":"address","indexed":true,"internalType":"address"}],"anonymous":false},{"type":"event","name":"Unpaused","inputs":[{"name":"pauser","type":"address","indexed":true,"internalType":"address"}],"anonymous":false},{"type":"event","name":"Upgraded","inputs":[{"name":"implementation","type":"address","indexed":true,"internalType":"address"}],"anonymous":false},{"type":"event","name":"UserProxyCreated","inputs":[{"name":"user","type":"address","indexed":true,"internalType":"address"},{"name":"proxy","type":"address","indexed":true,"internalType":"address"}],"anonymous":false},{"type":"event","name":"VaultLiquidated","inputs":[{"name":"vaultId","type":"bytes32","indexed":true,"internalType":"bytes32"},{"name":"liquidator","type":"address","indexed":false,"internalType":"address"}],"anonymous":false},{"type":"event","name":"VaultMarkedCollateralized","inputs":[{"name":"vaultId","type":"bytes32","indexed":true,"internalType":"bytes32"}],"anonymous":false},{"type":"event","name":"VaultMarkedLLPOwned","inputs":[{"name":"vaultId","type":"bytes32","indexed":true,"internalType":"bytes32"}],"anonymous":false},{"type":"event","name":"VaultMarkedRedeemed","inputs":[{"name":"vaultId","type":"bytes32","indexed":true,"internalType":"bytes32"}],"anonymous":false},{"type":"event","name":"VaultOwnershipChanged","inputs":[{"name":"vaultId","type":"bytes32","indexed":true,"internalType":"bytes32"},{"name":"newOwner","type":"address","indexed":true,"internalType":"address"}],"anonymous":false},{"type":"event","name":"VaultsReordered","inputs":[{"name":"borrower","type":"address","indexed":true,"internalType":"address"},{"name":"newVaults","type":"bytes32[]","indexed":false,"internalType":"bytes32[]"}],"anonymous":false},{"type":"error","name":"AddressEmptyCode","inputs":[{"name":"target","type":"address","internalType":"address"}]},{"type":"error","name":"ERC1967InvalidImplementation","inputs":[{"name":"implementation","type":"address","internalType":"address"}]},{"type":"error","name":"ERC1967NonPayable","inputs":[]},{"type":"error","name":"EmptyArray","inputs":[]},{"type":"error","name":"FailedCall","inputs":[]},{"type":"error","name":"FairnessDebtRepaymentTargetNotMet","inputs":[{"name":"target","type":"uint256","internalType":"uint256"},{"name":"actual","type":"uint256","internalType":"uint256"}]},{"type":"error","name":"IncompleteWithdrawal","inputs":[{"name":"expected","type":"uint256","internalType":"uint256"},{"name":"actual","type":"uint256","internalType":"uint256"}]},{"type":"error","name":"InvalidActivationMetadataVersion","inputs":[]},{"type":"error","name":"InvalidAmount","inputs":[]},{"type":"error","name":"InvalidAmountsLength","inputs":[{"name":"amountsLength","type":"uint256","internalType":"uint256"},{"name":"reserveCount","type":"uint256","internalType":"uint256"}]},{"type":"error","name":"InvalidInterestFeeBps","inputs":[]},{"type":"error","name":"InvalidOraclePrice","inputs":[]},{"type":"error","name":"InvalidPositionResolver","inputs":[]},{"type":"error","name":"InvalidPriorityOrderLength","inputs":[{"name":"priorityOrderLength","type":"uint256","internalType":"uint256"},{"name":"amountsLength","type":"uint256","internalType":"uint256"}]},{"type":"error","name":"InvalidProxyContract","inputs":[]},{"type":"error","name":"InvalidReserveId","inputs":[{"name":"reserveId","type":"uint256","internalType":"uint256"}]},{"type":"error","name":"InvalidVaultStatus","inputs":[]},{"type":"error","name":"InvalidVaultsPermutation","inputs":[]},{"type":"error","name":"InvalidVaultsToRemove","inputs":[]},{"type":"error","name":"LLPDisabled","inputs":[{"name":"llp","type":"address","internalType":"address"}]},{"type":"error","name":"MaxPositionBelowVaultMin","inputs":[{"name":"maxPositionBTC","type":"uint256","internalType":"uint256"},{"name":"minimumPegInAmount","type":"uint256","internalType":"uint256"}]},{"type":"error","name":"NoDebtToLiquidate","inputs":[]},{"type":"error","name":"OnlyApplicationEntryPoint","inputs":[]},{"type":"error","name":"PositionAboveMaximum","inputs":[{"name":"actual","type":"uint256","internalType":"uint256"},{"name":"maximum","type":"uint256","internalType":"uint256"}]},{"type":"error","name":"PositionMaxBelowVaultMax","inputs":[{"name":"maxPositionBTC","type":"uint256","internalType":"uint256"},{"name":"vaultMaximum","type":"uint256","internalType":"uint256"}]},{"type":"error","name":"PositionNotLiquidatable","inputs":[]},{"type":"error","name":"PrefixLengthExceedsArray","inputs":[]},{"type":"error","name":"SafeERC20FailedOperation","inputs":[{"name":"token","type":"address","internalType":"address"}]},{"type":"error","name":"TBV_AlreadyFrozen","inputs":[]},{"type":"error","name":"TBV_AlreadyPaused","inputs":[]},{"type":"error","name":"TBV_Frozen","inputs":[]},{"type":"error","name":"TBV_NotFrozen","inputs":[]},{"type":"error","name":"TBV_NotPaused","inputs":[]},{"type":"error","name":"TBV_Paused","inputs":[]},{"type":"error","name":"TBV_Unauthorized","inputs":[]},{"type":"error","name":"UUPSUnauthorizedCallContext","inputs":[]},{"type":"error","name":"UUPSUnsupportedProxiableUUID","inputs":[{"name":"slot","type":"bytes32","internalType":"bytes32"}]},{"type":"error","name":"Unauthorized","inputs":[]},{"type":"error","name":"VaultCountExceedsMaximum","inputs":[{"name":"actual","type":"uint256","internalType":"uint256"},{"name":"maximum","type":"uint256","internalType":"uint256"}]},{"type":"error","name":"ZeroAddress","inputs":[]},{"type":"error","name":"ZeroAmount","inputs":[]},{"type":"error","name":"ZeroBorrowAmount","inputs":[]},{"type":"error","name":"ZeroBtcKey","inputs":[]}]'), ee = "InvalidProxyContract", te = 10;
12
+ function ne(e) {
13
13
  let t = e;
14
- for (let n = 0; n < J; n++) {
14
+ for (let n = 0; n < te; n++) {
15
15
  if (typeof t != "object" || t === null) return !1;
16
16
  const { data: a, cause: i } = t;
17
- if ((a == null ? void 0 : a.errorName) === $) return !0;
17
+ if ((a == null ? void 0 : a.errorName) === ee) return !0;
18
18
  if (i === void 0 || i === t) return !1;
19
19
  t = i;
20
20
  }
21
21
  return !1;
22
22
  }
23
- async function de(e, t, n) {
23
+ async function ge(e, t, n) {
24
24
  let a;
25
25
  try {
26
26
  a = await e.readContract({
27
27
  address: t,
28
- abi: C,
28
+ abi: S,
29
29
  functionName: "getPosition",
30
30
  args: [n]
31
31
  });
32
32
  } catch (r) {
33
- if (j(r)) return null;
33
+ if (ne(r)) return null;
34
34
  throw r;
35
35
  }
36
36
  const i = a;
37
- return i.proxyContract === z ? null : {
37
+ return i.proxyContract === K ? null : {
38
38
  proxyContract: i.proxyContract,
39
39
  vaultIds: i.vaultIds,
40
40
  totalCollateralBTC: i.totalCollateralBTC
41
41
  };
42
42
  }
43
- async function me(e, t) {
43
+ async function Re(e, t) {
44
44
  const n = await e.readContract({
45
45
  address: t,
46
- abi: C,
46
+ abi: S,
47
47
  functionName: "getPositionSizeParams"
48
48
  }), [a, i] = n;
49
49
  return {
@@ -51,8 +51,8 @@ async function me(e, t) {
51
51
  maxVaultsPerPosition: i
52
52
  };
53
53
  }
54
- const b = /* @__PURE__ */ JSON.parse('[{"type":"function","name":"DOMAIN_SEPARATOR","inputs":[],"outputs":[{"name":"","type":"bytes32","internalType":"bytes32"}],"stateMutability":"view"},{"type":"function","name":"ORACLE","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"SET_USER_POSITION_MANAGER_TYPEHASH","inputs":[],"outputs":[{"name":"","type":"bytes32","internalType":"bytes32"}],"stateMutability":"view"},{"type":"function","name":"addDynamicReserveConfig","inputs":[{"name":"reserveId","type":"uint256","internalType":"uint256"},{"name":"dynamicConfig","type":"tuple","internalType":"struct ITBVAaveSpoke.DynamicReserveConfig","components":[{"name":"collateralFactor","type":"uint16","internalType":"uint16"},{"name":"maxLiquidationBonus","type":"uint32","internalType":"uint32"},{"name":"liquidationFee","type":"uint16","internalType":"uint16"}]}],"outputs":[{"name":"dynamicConfigKey","type":"uint32","internalType":"uint32"}],"stateMutability":"nonpayable"},{"type":"function","name":"addReserve","inputs":[{"name":"hub","type":"address","internalType":"address"},{"name":"assetId","type":"uint256","internalType":"uint256"},{"name":"priceSource","type":"address","internalType":"address"},{"name":"config","type":"tuple","internalType":"struct ITBVAaveSpoke.ReserveConfig","components":[{"name":"collateralRisk","type":"uint24","internalType":"uint24"},{"name":"paused","type":"bool","internalType":"bool"},{"name":"frozen","type":"bool","internalType":"bool"},{"name":"borrowable","type":"bool","internalType":"bool"},{"name":"receiveSharesEnabled","type":"bool","internalType":"bool"}]},{"name":"dynamicConfig","type":"tuple","internalType":"struct ITBVAaveSpoke.DynamicReserveConfig","components":[{"name":"collateralFactor","type":"uint16","internalType":"uint16"},{"name":"maxLiquidationBonus","type":"uint32","internalType":"uint32"},{"name":"liquidationFee","type":"uint16","internalType":"uint16"}]}],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"nonpayable"},{"type":"function","name":"borrow","inputs":[{"name":"reserveId","type":"uint256","internalType":"uint256"},{"name":"amount","type":"uint256","internalType":"uint256"},{"name":"onBehalfOf","type":"address","internalType":"address"}],"outputs":[{"name":"","type":"uint256","internalType":"uint256"},{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"nonpayable"},{"type":"function","name":"getDynamicReserveConfig","inputs":[{"name":"reserveId","type":"uint256","internalType":"uint256"},{"name":"dynamicConfigKey","type":"uint32","internalType":"uint32"}],"outputs":[{"name":"","type":"tuple","internalType":"struct ITBVAaveSpoke.DynamicReserveConfig","components":[{"name":"collateralFactor","type":"uint16","internalType":"uint16"},{"name":"maxLiquidationBonus","type":"uint32","internalType":"uint32"},{"name":"liquidationFee","type":"uint16","internalType":"uint16"}]}],"stateMutability":"view"},{"type":"function","name":"getLiquidationBonus","inputs":[{"name":"reserveId","type":"uint256","internalType":"uint256"},{"name":"user","type":"address","internalType":"address"},{"name":"healthFactor","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"getLiquidationConfig","inputs":[],"outputs":[{"name":"","type":"tuple","internalType":"struct ITBVAaveSpoke.LiquidationConfig","components":[{"name":"targetHealthFactor","type":"uint128","internalType":"uint128"},{"name":"healthFactorForMaxBonus","type":"uint64","internalType":"uint64"},{"name":"liquidationBonusFactor","type":"uint16","internalType":"uint16"}]}],"stateMutability":"view"},{"type":"function","name":"getLiquidationLogic","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"pure"},{"type":"function","name":"getReserve","inputs":[{"name":"reserveId","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"","type":"tuple","internalType":"struct ITBVAaveSpoke.Reserve","components":[{"name":"underlying","type":"address","internalType":"address"},{"name":"hub","type":"address","internalType":"address"},{"name":"assetId","type":"uint16","internalType":"uint16"},{"name":"decimals","type":"uint8","internalType":"uint8"},{"name":"collateralRisk","type":"uint24","internalType":"uint24"},{"name":"flags","type":"uint8","internalType":"ReserveFlags"},{"name":"dynamicConfigKey","type":"uint32","internalType":"uint32"}]}],"stateMutability":"view"},{"type":"function","name":"getReserveConfig","inputs":[{"name":"reserveId","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"","type":"tuple","internalType":"struct ITBVAaveSpoke.ReserveConfig","components":[{"name":"collateralRisk","type":"uint24","internalType":"uint24"},{"name":"paused","type":"bool","internalType":"bool"},{"name":"frozen","type":"bool","internalType":"bool"},{"name":"borrowable","type":"bool","internalType":"bool"},{"name":"receiveSharesEnabled","type":"bool","internalType":"bool"}]}],"stateMutability":"view"},{"type":"function","name":"getReserveCount","inputs":[],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"getReserveDebt","inputs":[{"name":"reserveId","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"","type":"uint256","internalType":"uint256"},{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"getReserveSuppliedAssets","inputs":[{"name":"reserveId","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"getReserveSuppliedShares","inputs":[{"name":"reserveId","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"getReserveTotalDebt","inputs":[{"name":"reserveId","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"getUserAccountData","inputs":[{"name":"user","type":"address","internalType":"address"}],"outputs":[{"name":"","type":"tuple","internalType":"struct ITBVAaveSpoke.UserAccountData","components":[{"name":"riskPremium","type":"uint256","internalType":"uint256"},{"name":"avgCollateralFactor","type":"uint256","internalType":"uint256"},{"name":"healthFactor","type":"uint256","internalType":"uint256"},{"name":"totalCollateralValue","type":"uint256","internalType":"uint256"},{"name":"totalDebtValueRay","type":"uint256","internalType":"uint256"},{"name":"activeCollateralCount","type":"uint256","internalType":"uint256"},{"name":"borrowCount","type":"uint256","internalType":"uint256"}]}],"stateMutability":"view"},{"type":"function","name":"getUserDebt","inputs":[{"name":"reserveId","type":"uint256","internalType":"uint256"},{"name":"user","type":"address","internalType":"address"}],"outputs":[{"name":"","type":"uint256","internalType":"uint256"},{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"getUserPosition","inputs":[{"name":"reserveId","type":"uint256","internalType":"uint256"},{"name":"user","type":"address","internalType":"address"}],"outputs":[{"name":"","type":"tuple","internalType":"struct ITBVAaveSpoke.UserPosition","components":[{"name":"drawnShares","type":"uint120","internalType":"uint120"},{"name":"premiumShares","type":"uint120","internalType":"uint120"},{"name":"premiumOffsetRay","type":"int200","internalType":"int200"},{"name":"suppliedShares","type":"uint120","internalType":"uint120"},{"name":"dynamicConfigKey","type":"uint32","internalType":"uint32"}]}],"stateMutability":"view"},{"type":"function","name":"getUserPremiumDebtRay","inputs":[{"name":"reserveId","type":"uint256","internalType":"uint256"},{"name":"user","type":"address","internalType":"address"}],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"getUserReserveStatus","inputs":[{"name":"reserveId","type":"uint256","internalType":"uint256"},{"name":"user","type":"address","internalType":"address"}],"outputs":[{"name":"","type":"bool","internalType":"bool"},{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"view"},{"type":"function","name":"getUserSuppliedAssets","inputs":[{"name":"reserveId","type":"uint256","internalType":"uint256"},{"name":"user","type":"address","internalType":"address"}],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"getUserSuppliedShares","inputs":[{"name":"reserveId","type":"uint256","internalType":"uint256"},{"name":"user","type":"address","internalType":"address"}],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"getUserTotalDebt","inputs":[{"name":"reserveId","type":"uint256","internalType":"uint256"},{"name":"user","type":"address","internalType":"address"}],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"isPositionManager","inputs":[{"name":"user","type":"address","internalType":"address"},{"name":"positionManager","type":"address","internalType":"address"}],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"view"},{"type":"function","name":"isPositionManagerActive","inputs":[{"name":"positionManager","type":"address","internalType":"address"}],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"view"},{"type":"function","name":"liquidationCall","inputs":[{"name":"collateralReserveId","type":"uint256","internalType":"uint256"},{"name":"debtReserveId","type":"uint256","internalType":"uint256"},{"name":"user","type":"address","internalType":"address"},{"name":"debtToCover","type":"uint256","internalType":"uint256"},{"name":"receiveShares","type":"bool","internalType":"bool"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"permitReserve","inputs":[{"name":"reserveId","type":"uint256","internalType":"uint256"},{"name":"onBehalfOf","type":"address","internalType":"address"},{"name":"value","type":"uint256","internalType":"uint256"},{"name":"deadline","type":"uint256","internalType":"uint256"},{"name":"permitV","type":"uint8","internalType":"uint8"},{"name":"permitR","type":"bytes32","internalType":"bytes32"},{"name":"permitS","type":"bytes32","internalType":"bytes32"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"renouncePositionManagerRole","inputs":[{"name":"user","type":"address","internalType":"address"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"repay","inputs":[{"name":"reserveId","type":"uint256","internalType":"uint256"},{"name":"amount","type":"uint256","internalType":"uint256"},{"name":"onBehalfOf","type":"address","internalType":"address"}],"outputs":[{"name":"","type":"uint256","internalType":"uint256"},{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"nonpayable"},{"type":"function","name":"setUserPositionManager","inputs":[{"name":"positionManager","type":"address","internalType":"address"},{"name":"approve","type":"bool","internalType":"bool"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"setUserPositionManagerWithSig","inputs":[{"name":"positionManager","type":"address","internalType":"address"},{"name":"user","type":"address","internalType":"address"},{"name":"approve","type":"bool","internalType":"bool"},{"name":"nonce","type":"uint256","internalType":"uint256"},{"name":"deadline","type":"uint256","internalType":"uint256"},{"name":"signature","type":"bytes","internalType":"bytes"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"setUsingAsCollateral","inputs":[{"name":"reserveId","type":"uint256","internalType":"uint256"},{"name":"usingAsCollateral","type":"bool","internalType":"bool"},{"name":"onBehalfOf","type":"address","internalType":"address"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"supply","inputs":[{"name":"reserveId","type":"uint256","internalType":"uint256"},{"name":"amount","type":"uint256","internalType":"uint256"},{"name":"onBehalfOf","type":"address","internalType":"address"}],"outputs":[{"name":"","type":"uint256","internalType":"uint256"},{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"nonpayable"},{"type":"function","name":"updateDynamicReserveConfig","inputs":[{"name":"reserveId","type":"uint256","internalType":"uint256"},{"name":"dynamicConfigKey","type":"uint32","internalType":"uint32"},{"name":"dynamicConfig","type":"tuple","internalType":"struct ITBVAaveSpoke.DynamicReserveConfig","components":[{"name":"collateralFactor","type":"uint16","internalType":"uint16"},{"name":"maxLiquidationBonus","type":"uint32","internalType":"uint32"},{"name":"liquidationFee","type":"uint16","internalType":"uint16"}]}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"updateLiquidationConfig","inputs":[{"name":"config","type":"tuple","internalType":"struct ITBVAaveSpoke.LiquidationConfig","components":[{"name":"targetHealthFactor","type":"uint128","internalType":"uint128"},{"name":"healthFactorForMaxBonus","type":"uint64","internalType":"uint64"},{"name":"liquidationBonusFactor","type":"uint16","internalType":"uint16"}]}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"updatePositionManager","inputs":[{"name":"positionManager","type":"address","internalType":"address"},{"name":"active","type":"bool","internalType":"bool"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"updateReserveConfig","inputs":[{"name":"reserveId","type":"uint256","internalType":"uint256"},{"name":"params","type":"tuple","internalType":"struct ITBVAaveSpoke.ReserveConfig","components":[{"name":"collateralRisk","type":"uint24","internalType":"uint24"},{"name":"paused","type":"bool","internalType":"bool"},{"name":"frozen","type":"bool","internalType":"bool"},{"name":"borrowable","type":"bool","internalType":"bool"},{"name":"receiveSharesEnabled","type":"bool","internalType":"bool"}]}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"updateReservePriceSource","inputs":[{"name":"reserveId","type":"uint256","internalType":"uint256"},{"name":"priceSource","type":"address","internalType":"address"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"updateUserDynamicConfig","inputs":[{"name":"onBehalfOf","type":"address","internalType":"address"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"updateUserRiskPremium","inputs":[{"name":"onBehalfOf","type":"address","internalType":"address"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"withdraw","inputs":[{"name":"reserveId","type":"uint256","internalType":"uint256"},{"name":"amount","type":"uint256","internalType":"uint256"},{"name":"onBehalfOf","type":"address","internalType":"address"}],"outputs":[{"name":"","type":"uint256","internalType":"uint256"},{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"nonpayable"},{"type":"error","name":"AssetNotListed","inputs":[]},{"type":"error","name":"ReserveExists","inputs":[]},{"type":"error","name":"InvalidAssetId","inputs":[]},{"type":"error","name":"ReserveNotListed","inputs":[]},{"type":"error","name":"ReserveNotBorrowable","inputs":[]},{"type":"error","name":"ReservePaused","inputs":[]},{"type":"error","name":"ReserveFrozen","inputs":[]},{"type":"error","name":"HealthFactorBelowThreshold","inputs":[]},{"type":"error","name":"CollateralCannotBeLiquidated","inputs":[]},{"type":"error","name":"ReserveNotSupplied","inputs":[]},{"type":"error","name":"ReserveNotBorrowed","inputs":[]},{"type":"error","name":"Unauthorized","inputs":[]},{"type":"error","name":"ConfigKeyUninitialized","inputs":[]},{"type":"error","name":"InactivePositionManager","inputs":[]},{"type":"error","name":"InvalidSignature","inputs":[]},{"type":"error","name":"InvalidAddress","inputs":[]},{"type":"error","name":"InvalidOracleDecimals","inputs":[]},{"type":"error","name":"InvalidCollateralRisk","inputs":[]},{"type":"error","name":"InvalidLiquidationConfig","inputs":[]},{"type":"error","name":"InvalidLiquidationFee","inputs":[]},{"type":"error","name":"InvalidCollateralFactorAndMaxLiquidationBonus","inputs":[]},{"type":"error","name":"InvalidCollateralFactor","inputs":[]},{"type":"error","name":"SelfLiquidation","inputs":[]},{"type":"error","name":"HealthFactorNotBelowThreshold","inputs":[]},{"type":"error","name":"MustNotLeaveDust","inputs":[]},{"type":"error","name":"InvalidDebtToCover","inputs":[]},{"type":"error","name":"CannotReceiveShares","inputs":[]},{"type":"error","name":"MaximumDynamicConfigKeyReached","inputs":[]}]');
55
- function F(e) {
54
+ const c = /* @__PURE__ */ JSON.parse('[{"type":"function","name":"DOMAIN_SEPARATOR","inputs":[],"outputs":[{"name":"","type":"bytes32","internalType":"bytes32"}],"stateMutability":"view"},{"type":"function","name":"MAX_USER_RESERVES_LIMIT","inputs":[],"outputs":[{"name":"","type":"uint16","internalType":"uint16"}],"stateMutability":"view"},{"type":"function","name":"ORACLE","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"SET_USER_POSITION_MANAGER_TYPEHASH","inputs":[],"outputs":[{"name":"","type":"bytes32","internalType":"bytes32"}],"stateMutability":"view"},{"type":"function","name":"addDynamicReserveConfig","inputs":[{"name":"reserveId","type":"uint256","internalType":"uint256"},{"name":"dynamicConfig","type":"tuple","internalType":"struct ITBVAaveSpoke.DynamicReserveConfig","components":[{"name":"collateralFactor","type":"uint16","internalType":"uint16"},{"name":"maxLiquidationBonus","type":"uint32","internalType":"uint32"},{"name":"liquidationFee","type":"uint16","internalType":"uint16"}]}],"outputs":[{"name":"dynamicConfigKey","type":"uint32","internalType":"uint32"}],"stateMutability":"nonpayable"},{"type":"function","name":"addReserve","inputs":[{"name":"hub","type":"address","internalType":"address"},{"name":"assetId","type":"uint256","internalType":"uint256"},{"name":"priceSource","type":"address","internalType":"address"},{"name":"config","type":"tuple","internalType":"struct ITBVAaveSpoke.ReserveConfig","components":[{"name":"collateralRisk","type":"uint24","internalType":"uint24"},{"name":"paused","type":"bool","internalType":"bool"},{"name":"frozen","type":"bool","internalType":"bool"},{"name":"borrowable","type":"bool","internalType":"bool"},{"name":"receiveSharesEnabled","type":"bool","internalType":"bool"}]},{"name":"dynamicConfig","type":"tuple","internalType":"struct ITBVAaveSpoke.DynamicReserveConfig","components":[{"name":"collateralFactor","type":"uint16","internalType":"uint16"},{"name":"maxLiquidationBonus","type":"uint32","internalType":"uint32"},{"name":"liquidationFee","type":"uint16","internalType":"uint16"}]}],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"nonpayable"},{"type":"function","name":"borrow","inputs":[{"name":"reserveId","type":"uint256","internalType":"uint256"},{"name":"amount","type":"uint256","internalType":"uint256"},{"name":"onBehalfOf","type":"address","internalType":"address"}],"outputs":[{"name":"","type":"uint256","internalType":"uint256"},{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"nonpayable"},{"type":"function","name":"getDynamicReserveConfig","inputs":[{"name":"reserveId","type":"uint256","internalType":"uint256"},{"name":"dynamicConfigKey","type":"uint32","internalType":"uint32"}],"outputs":[{"name":"","type":"tuple","internalType":"struct ITBVAaveSpoke.DynamicReserveConfig","components":[{"name":"collateralFactor","type":"uint16","internalType":"uint16"},{"name":"maxLiquidationBonus","type":"uint32","internalType":"uint32"},{"name":"liquidationFee","type":"uint16","internalType":"uint16"}]}],"stateMutability":"view"},{"type":"function","name":"getLiquidationBonus","inputs":[{"name":"reserveId","type":"uint256","internalType":"uint256"},{"name":"user","type":"address","internalType":"address"},{"name":"healthFactor","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"getLiquidationConfig","inputs":[],"outputs":[{"name":"","type":"tuple","internalType":"struct ITBVAaveSpoke.LiquidationConfig","components":[{"name":"targetHealthFactor","type":"uint128","internalType":"uint128"},{"name":"healthFactorForMaxBonus","type":"uint64","internalType":"uint64"},{"name":"liquidationBonusFactor","type":"uint16","internalType":"uint16"}]}],"stateMutability":"view"},{"type":"function","name":"getLiquidationLogic","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"pure"},{"type":"function","name":"getReserve","inputs":[{"name":"reserveId","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"","type":"tuple","internalType":"struct ITBVAaveSpoke.Reserve","components":[{"name":"underlying","type":"address","internalType":"address"},{"name":"hub","type":"address","internalType":"address"},{"name":"assetId","type":"uint16","internalType":"uint16"},{"name":"decimals","type":"uint8","internalType":"uint8"},{"name":"collateralRisk","type":"uint24","internalType":"uint24"},{"name":"flags","type":"uint8","internalType":"ReserveFlags"},{"name":"dynamicConfigKey","type":"uint32","internalType":"uint32"}]}],"stateMutability":"view"},{"type":"function","name":"getReserveConfig","inputs":[{"name":"reserveId","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"","type":"tuple","internalType":"struct ITBVAaveSpoke.ReserveConfig","components":[{"name":"collateralRisk","type":"uint24","internalType":"uint24"},{"name":"paused","type":"bool","internalType":"bool"},{"name":"frozen","type":"bool","internalType":"bool"},{"name":"borrowable","type":"bool","internalType":"bool"},{"name":"receiveSharesEnabled","type":"bool","internalType":"bool"}]}],"stateMutability":"view"},{"type":"function","name":"getReserveCount","inputs":[],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"getReserveDebt","inputs":[{"name":"reserveId","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"","type":"uint256","internalType":"uint256"},{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"getReserveSuppliedAssets","inputs":[{"name":"reserveId","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"getReserveSuppliedShares","inputs":[{"name":"reserveId","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"getReserveTotalDebt","inputs":[{"name":"reserveId","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"getUserAccountData","inputs":[{"name":"user","type":"address","internalType":"address"}],"outputs":[{"name":"","type":"tuple","internalType":"struct ITBVAaveSpoke.UserAccountData","components":[{"name":"riskPremium","type":"uint256","internalType":"uint256"},{"name":"avgCollateralFactor","type":"uint256","internalType":"uint256"},{"name":"healthFactor","type":"uint256","internalType":"uint256"},{"name":"totalCollateralValue","type":"uint256","internalType":"uint256"},{"name":"totalDebtValueRay","type":"uint256","internalType":"uint256"},{"name":"activeCollateralCount","type":"uint256","internalType":"uint256"},{"name":"borrowCount","type":"uint256","internalType":"uint256"}]}],"stateMutability":"view"},{"type":"function","name":"getUserDebt","inputs":[{"name":"reserveId","type":"uint256","internalType":"uint256"},{"name":"user","type":"address","internalType":"address"}],"outputs":[{"name":"","type":"uint256","internalType":"uint256"},{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"getUserPosition","inputs":[{"name":"reserveId","type":"uint256","internalType":"uint256"},{"name":"user","type":"address","internalType":"address"}],"outputs":[{"name":"","type":"tuple","internalType":"struct ITBVAaveSpoke.UserPosition","components":[{"name":"drawnShares","type":"uint120","internalType":"uint120"},{"name":"premiumShares","type":"uint120","internalType":"uint120"},{"name":"premiumOffsetRay","type":"int200","internalType":"int200"},{"name":"suppliedShares","type":"uint120","internalType":"uint120"},{"name":"dynamicConfigKey","type":"uint32","internalType":"uint32"}]}],"stateMutability":"view"},{"type":"function","name":"getUserPremiumDebtRay","inputs":[{"name":"reserveId","type":"uint256","internalType":"uint256"},{"name":"user","type":"address","internalType":"address"}],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"getUserReserveStatus","inputs":[{"name":"reserveId","type":"uint256","internalType":"uint256"},{"name":"user","type":"address","internalType":"address"}],"outputs":[{"name":"","type":"bool","internalType":"bool"},{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"view"},{"type":"function","name":"getUserSuppliedAssets","inputs":[{"name":"reserveId","type":"uint256","internalType":"uint256"},{"name":"user","type":"address","internalType":"address"}],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"getUserSuppliedShares","inputs":[{"name":"reserveId","type":"uint256","internalType":"uint256"},{"name":"user","type":"address","internalType":"address"}],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"getUserTotalDebt","inputs":[{"name":"reserveId","type":"uint256","internalType":"uint256"},{"name":"user","type":"address","internalType":"address"}],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"isPositionManager","inputs":[{"name":"user","type":"address","internalType":"address"},{"name":"positionManager","type":"address","internalType":"address"}],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"view"},{"type":"function","name":"isPositionManagerActive","inputs":[{"name":"positionManager","type":"address","internalType":"address"}],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"view"},{"type":"function","name":"liquidationCall","inputs":[{"name":"collateralReserveId","type":"uint256","internalType":"uint256"},{"name":"debtReserveId","type":"uint256","internalType":"uint256"},{"name":"user","type":"address","internalType":"address"},{"name":"debtToCover","type":"uint256","internalType":"uint256"},{"name":"receiveShares","type":"bool","internalType":"bool"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"permitReserve","inputs":[{"name":"reserveId","type":"uint256","internalType":"uint256"},{"name":"onBehalfOf","type":"address","internalType":"address"},{"name":"value","type":"uint256","internalType":"uint256"},{"name":"deadline","type":"uint256","internalType":"uint256"},{"name":"permitV","type":"uint8","internalType":"uint8"},{"name":"permitR","type":"bytes32","internalType":"bytes32"},{"name":"permitS","type":"bytes32","internalType":"bytes32"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"renouncePositionManagerRole","inputs":[{"name":"user","type":"address","internalType":"address"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"repay","inputs":[{"name":"reserveId","type":"uint256","internalType":"uint256"},{"name":"amount","type":"uint256","internalType":"uint256"},{"name":"onBehalfOf","type":"address","internalType":"address"}],"outputs":[{"name":"","type":"uint256","internalType":"uint256"},{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"nonpayable"},{"type":"function","name":"setUserPositionManager","inputs":[{"name":"positionManager","type":"address","internalType":"address"},{"name":"approve","type":"bool","internalType":"bool"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"setUserPositionManagerWithSig","inputs":[{"name":"positionManager","type":"address","internalType":"address"},{"name":"user","type":"address","internalType":"address"},{"name":"approve","type":"bool","internalType":"bool"},{"name":"nonce","type":"uint256","internalType":"uint256"},{"name":"deadline","type":"uint256","internalType":"uint256"},{"name":"signature","type":"bytes","internalType":"bytes"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"setUsingAsCollateral","inputs":[{"name":"reserveId","type":"uint256","internalType":"uint256"},{"name":"usingAsCollateral","type":"bool","internalType":"bool"},{"name":"onBehalfOf","type":"address","internalType":"address"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"supply","inputs":[{"name":"reserveId","type":"uint256","internalType":"uint256"},{"name":"amount","type":"uint256","internalType":"uint256"},{"name":"onBehalfOf","type":"address","internalType":"address"}],"outputs":[{"name":"","type":"uint256","internalType":"uint256"},{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"nonpayable"},{"type":"function","name":"updateDynamicReserveConfig","inputs":[{"name":"reserveId","type":"uint256","internalType":"uint256"},{"name":"dynamicConfigKey","type":"uint32","internalType":"uint32"},{"name":"dynamicConfig","type":"tuple","internalType":"struct ITBVAaveSpoke.DynamicReserveConfig","components":[{"name":"collateralFactor","type":"uint16","internalType":"uint16"},{"name":"maxLiquidationBonus","type":"uint32","internalType":"uint32"},{"name":"liquidationFee","type":"uint16","internalType":"uint16"}]}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"updateLiquidationConfig","inputs":[{"name":"config","type":"tuple","internalType":"struct ITBVAaveSpoke.LiquidationConfig","components":[{"name":"targetHealthFactor","type":"uint128","internalType":"uint128"},{"name":"healthFactorForMaxBonus","type":"uint64","internalType":"uint64"},{"name":"liquidationBonusFactor","type":"uint16","internalType":"uint16"}]}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"updatePositionManager","inputs":[{"name":"positionManager","type":"address","internalType":"address"},{"name":"active","type":"bool","internalType":"bool"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"updateReserveConfig","inputs":[{"name":"reserveId","type":"uint256","internalType":"uint256"},{"name":"params","type":"tuple","internalType":"struct ITBVAaveSpoke.ReserveConfig","components":[{"name":"collateralRisk","type":"uint24","internalType":"uint24"},{"name":"paused","type":"bool","internalType":"bool"},{"name":"frozen","type":"bool","internalType":"bool"},{"name":"borrowable","type":"bool","internalType":"bool"},{"name":"receiveSharesEnabled","type":"bool","internalType":"bool"}]}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"updateReservePriceSource","inputs":[{"name":"reserveId","type":"uint256","internalType":"uint256"},{"name":"priceSource","type":"address","internalType":"address"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"updateUserDynamicConfig","inputs":[{"name":"onBehalfOf","type":"address","internalType":"address"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"updateUserRiskPremium","inputs":[{"name":"onBehalfOf","type":"address","internalType":"address"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"withdraw","inputs":[{"name":"reserveId","type":"uint256","internalType":"uint256"},{"name":"amount","type":"uint256","internalType":"uint256"},{"name":"onBehalfOf","type":"address","internalType":"address"}],"outputs":[{"name":"","type":"uint256","internalType":"uint256"},{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"nonpayable"},{"type":"error","name":"AssetNotListed","inputs":[]},{"type":"error","name":"ReserveExists","inputs":[]},{"type":"error","name":"InvalidAssetId","inputs":[]},{"type":"error","name":"ReserveNotListed","inputs":[]},{"type":"error","name":"ReserveNotBorrowable","inputs":[]},{"type":"error","name":"ReservePaused","inputs":[]},{"type":"error","name":"ReserveFrozen","inputs":[]},{"type":"error","name":"HealthFactorBelowThreshold","inputs":[]},{"type":"error","name":"CollateralCannotBeLiquidated","inputs":[]},{"type":"error","name":"ReserveNotSupplied","inputs":[]},{"type":"error","name":"ReserveNotBorrowed","inputs":[]},{"type":"error","name":"Unauthorized","inputs":[]},{"type":"error","name":"ConfigKeyUninitialized","inputs":[]},{"type":"error","name":"InactivePositionManager","inputs":[]},{"type":"error","name":"InvalidSignature","inputs":[]},{"type":"error","name":"InvalidAddress","inputs":[]},{"type":"error","name":"InvalidOracleDecimals","inputs":[]},{"type":"error","name":"InvalidCollateralRisk","inputs":[]},{"type":"error","name":"InvalidLiquidationConfig","inputs":[]},{"type":"error","name":"InvalidLiquidationFee","inputs":[]},{"type":"error","name":"InvalidCollateralFactorAndMaxLiquidationBonus","inputs":[]},{"type":"error","name":"InvalidCollateralFactor","inputs":[]},{"type":"error","name":"SelfLiquidation","inputs":[]},{"type":"error","name":"HealthFactorNotBelowThreshold","inputs":[]},{"type":"error","name":"MustNotLeaveDust","inputs":[]},{"type":"error","name":"InvalidDebtToCover","inputs":[]},{"type":"error","name":"CannotReceiveShares","inputs":[]},{"type":"error","name":"MaximumDynamicConfigKeyReached","inputs":[]},{"type":"error","name":"MaximumUserReservesExceeded","inputs":[]}]');
55
+ function D(e) {
56
56
  return {
57
57
  drawnShares: e.drawnShares,
58
58
  premiumShares: e.premiumShares,
@@ -61,7 +61,7 @@ function F(e) {
61
61
  dynamicConfigKey: e.dynamicConfigKey
62
62
  };
63
63
  }
64
- function N(e) {
64
+ function U(e) {
65
65
  return {
66
66
  riskPremium: e.riskPremium,
67
67
  avgCollateralFactor: e.avgCollateralFactor,
@@ -72,27 +72,27 @@ function N(e) {
72
72
  borrowCount: e.borrowCount
73
73
  };
74
74
  }
75
- async function ce(e, t, n) {
75
+ async function Ae(e, t, n) {
76
76
  const a = await e.readContract({
77
77
  address: t,
78
- abi: b,
78
+ abi: c,
79
79
  functionName: "getUserAccountData",
80
80
  args: [n]
81
81
  });
82
- return N(a);
82
+ return U(a);
83
83
  }
84
- async function Te(e, t, n, a) {
84
+ async function Ie(e, t, n, a) {
85
85
  const [i, r] = await e.multicall({
86
86
  contracts: [
87
87
  {
88
88
  address: t,
89
- abi: b,
89
+ abi: c,
90
90
  functionName: "getUserPosition",
91
91
  args: [n, a]
92
92
  },
93
93
  {
94
94
  address: t,
95
- abi: b,
95
+ abi: c,
96
96
  functionName: "getUserAccountData",
97
97
  args: [a]
98
98
  }
@@ -100,88 +100,99 @@ async function Te(e, t, n, a) {
100
100
  allowFailure: !1
101
101
  });
102
102
  return {
103
- position: F(i),
104
- accountData: N(
103
+ position: D(i),
104
+ accountData: U(
105
105
  r
106
106
  )
107
107
  };
108
108
  }
109
- async function be(e, t, n, a) {
109
+ async function we(e, t, n, a) {
110
110
  const i = await e.readContract({
111
111
  address: t,
112
- abi: b,
112
+ abi: c,
113
113
  functionName: "getUserPosition",
114
114
  args: [n, a]
115
115
  });
116
- return F(i);
116
+ return D(i);
117
117
  }
118
- async function fe(e, t, n, a) {
118
+ async function Me(e, t, n, a) {
119
119
  return await e.readContract({
120
120
  address: t,
121
- abi: b,
121
+ abi: c,
122
122
  functionName: "getUserTotalDebt",
123
123
  args: [n, a]
124
124
  });
125
125
  }
126
- async function ve(e, t, n, a) {
126
+ async function Ce(e, t, n, a) {
127
127
  return n.length === 0 ? [] : (await e.multicall({
128
128
  contracts: n.map((r) => ({
129
129
  address: t,
130
- abi: b,
130
+ abi: c,
131
131
  functionName: "getUserPosition",
132
132
  args: [r, a]
133
133
  })),
134
134
  allowFailure: !0
135
135
  })).map(
136
- (r) => r.status === "success" ? F(r.result) : null
136
+ (r) => r.status === "success" ? D(r.result) : null
137
137
  );
138
138
  }
139
- async function ge(e, t, n, a) {
139
+ async function Se(e, t, n, a) {
140
140
  return n.length === 0 ? [] : await e.multicall({
141
141
  contracts: n.map((r) => ({
142
142
  address: t,
143
- abi: b,
143
+ abi: c,
144
144
  functionName: "getUserTotalDebt",
145
145
  args: [r, a]
146
146
  })),
147
147
  allowFailure: !1
148
148
  });
149
149
  }
150
- async function Re(e, t, n) {
150
+ async function Pe(e, t, n) {
151
151
  return await e.readContract({
152
152
  address: t,
153
- abi: b,
153
+ abi: c,
154
154
  functionName: "getReserve",
155
155
  args: [n]
156
156
  });
157
157
  }
158
- async function Ie(e, t, n) {
158
+ async function Be(e, t, n) {
159
159
  return n.length === 0 ? [] : await e.multicall({
160
160
  contracts: n.map((i) => ({
161
161
  address: t,
162
- abi: b,
162
+ abi: c,
163
163
  functionName: "getReserve",
164
164
  args: [i]
165
165
  })),
166
166
  allowFailure: !1
167
167
  });
168
168
  }
169
- async function Ae(e, t) {
170
- return (await e.readContract({
169
+ async function he(e, t) {
170
+ const a = await e.readContract({
171
171
  address: t,
172
- abi: b,
172
+ abi: c,
173
173
  functionName: "getLiquidationConfig"
174
- })).targetHealthFactor;
174
+ });
175
+ return {
176
+ healthFactorForMaxBonus: a.healthFactorForMaxBonus,
177
+ liquidationBonusFactor: BigInt(a.liquidationBonusFactor)
178
+ };
175
179
  }
176
- async function we(e, t, n, a) {
180
+ async function Ee(e, t, n, a) {
177
181
  return await e.readContract({
178
182
  address: t,
179
- abi: b,
183
+ abi: c,
180
184
  functionName: "getDynamicReserveConfig",
181
185
  args: [n, a]
182
186
  });
183
187
  }
184
- const Q = [
188
+ async function xe(e, t) {
189
+ return await e.readContract({
190
+ address: t,
191
+ abi: c,
192
+ functionName: "MAX_USER_RESERVES_LIMIT"
193
+ });
194
+ }
195
+ const ae = [
185
196
  {
186
197
  type: "function",
187
198
  name: "getReserveTotalDebt",
@@ -202,10 +213,10 @@ const Q = [
202
213
  stateMutability: "view"
203
214
  }
204
215
  ];
205
- async function Me(e, t, n) {
216
+ async function _e(e, t, n) {
206
217
  const a = await e.readContract({
207
218
  address: t,
208
- abi: Q,
219
+ abi: ae,
209
220
  functionName: "getReserveTotalDebt",
210
221
  args: [n]
211
222
  });
@@ -215,7 +226,7 @@ async function Me(e, t, n) {
215
226
  );
216
227
  return a;
217
228
  }
218
- const U = [
229
+ const q = [
219
230
  {
220
231
  inputs: [],
221
232
  name: "decimals",
@@ -283,29 +294,29 @@ const U = [
283
294
  ]
284
295
  }
285
296
  ];
286
- async function Ce(e, t) {
297
+ async function Ve(e, t) {
287
298
  return await e.readContract({
288
299
  address: t,
289
- abi: b,
300
+ abi: c,
290
301
  functionName: "ORACLE"
291
302
  });
292
303
  }
293
- async function Pe(e, t, n) {
304
+ async function Fe(e, t, n) {
294
305
  return await e.readContract({
295
306
  address: t,
296
- abi: U,
307
+ abi: q,
297
308
  functionName: "getReservesPrices",
298
309
  args: [n]
299
310
  });
300
311
  }
301
- async function Se(e, t, n) {
312
+ async function Le(e, t, n) {
302
313
  if (n.length === 0) return [];
303
314
  let a;
304
315
  try {
305
316
  a = await e.multicall({
306
317
  contracts: n.map((i) => ({
307
318
  address: t,
308
- abi: U,
319
+ abi: q,
309
320
  functionName: "getReservesPrices",
310
321
  args: [[i]]
311
322
  })),
@@ -329,7 +340,7 @@ async function Se(e, t, n) {
329
340
  return { reserveId: u, priceRaw: o, error: null };
330
341
  });
331
342
  }
332
- const ee = [
343
+ const ie = [
333
344
  {
334
345
  type: "function",
335
346
  name: "getAssetDrawnRate",
@@ -350,14 +361,14 @@ const ee = [
350
361
  stateMutability: "view"
351
362
  }
352
363
  ];
353
- async function he(e, t) {
364
+ async function De(e, t) {
354
365
  if (t.length === 0) return [];
355
366
  let n;
356
367
  try {
357
368
  n = await e.multicall({
358
369
  contracts: t.map(({ hub: a, assetId: i }) => ({
359
370
  address: a,
360
- abi: ee,
371
+ abi: ie,
361
372
  functionName: "getAssetDrawnRate",
362
373
  args: [BigInt(i)]
363
374
  })),
@@ -381,10 +392,10 @@ async function he(e, t) {
381
392
  return { hub: r, assetId: u, rateRay: a.result, error: null };
382
393
  });
383
394
  }
384
- function Be(e, t) {
385
- const n = E({
386
- abi: C,
387
- functionName: V.REORDER_VAULTS,
395
+ function Oe(e, t) {
396
+ const n = V({
397
+ abi: S,
398
+ functionName: F.REORDER_VAULTS,
388
399
  args: [t]
389
400
  });
390
401
  return {
@@ -392,10 +403,10 @@ function Be(e, t) {
392
403
  data: n
393
404
  };
394
405
  }
395
- function xe(e, t) {
396
- const n = E({
397
- abi: C,
398
- functionName: V.WITHDRAW_COLLATERALS,
406
+ function Ne(e, t) {
407
+ const n = V({
408
+ abi: S,
409
+ functionName: F.WITHDRAW_COLLATERALS,
399
410
  args: [t]
400
411
  });
401
412
  return {
@@ -403,10 +414,10 @@ function xe(e, t) {
403
414
  data: n
404
415
  };
405
416
  }
406
- function Ee(e, t, n, a) {
407
- const i = E({
408
- abi: C,
409
- functionName: V.BORROW,
417
+ function Ue(e, t, n, a) {
418
+ const i = V({
419
+ abi: S,
420
+ functionName: F.BORROW,
410
421
  args: [t, n, a]
411
422
  });
412
423
  return {
@@ -414,10 +425,10 @@ function Ee(e, t, n, a) {
414
425
  data: i
415
426
  };
416
427
  }
417
- function Ve(e, t, n, a) {
418
- const i = E({
419
- abi: C,
420
- functionName: V.REPAY,
428
+ function qe(e, t, n, a) {
429
+ const i = V({
430
+ abi: S,
431
+ functionName: F.REPAY,
421
432
  args: [t, n, a]
422
433
  });
423
434
  return {
@@ -425,33 +436,33 @@ function Ve(e, t, n, a) {
425
436
  data: i
426
437
  };
427
438
  }
428
- function _e(e) {
429
- return Number(e) / 10 ** G;
439
+ function ke(e) {
440
+ return Number(e) / 10 ** Y;
430
441
  }
431
- function Fe(e) {
432
- return Number(e) / 10 ** W;
442
+ function ze(e) {
443
+ return Number(e) / 10 ** $;
433
444
  }
434
- function De(e) {
435
- return Number(e) / 10 ** K;
445
+ function He(e) {
446
+ return Number(e) / 10 ** Z;
436
447
  }
437
- function Le(e) {
448
+ function Ge(e) {
438
449
  return e.drawnShares > 0n || e.premiumShares > 0n;
439
450
  }
440
- function te(e, t) {
451
+ function re(e, t) {
441
452
  if (!t) return "no_debt";
442
453
  if (e === null)
443
454
  throw new Error("A health factor is required for a position with debt.");
444
- return e < Y ? "danger" : e <= X ? "risky" : e <= Z ? "warning" : "safe";
455
+ return e < Q ? "danger" : e <= J ? "risky" : e <= j ? "warning" : "safe";
445
456
  }
446
- function Oe(e) {
457
+ function We(e) {
447
458
  const t = isFinite(e), n = isFinite(e) ? e : null;
448
- return te(n, t);
459
+ return re(n, t);
449
460
  }
450
- function Ne(e, t, n) {
451
- return t <= 0 ? 1 / 0 : e * (n / H) / t;
461
+ function Ke(e, t, n) {
462
+ return t <= 0 ? 1 / 0 : e * (n / X) / t;
452
463
  }
453
- const Ue = 0.01, ne = 20, ae = 0.01;
454
- function ke(e, t, n) {
464
+ const Xe = 0.01, se = 20, ue = 0.01;
465
+ function Ye(e, t, n) {
455
466
  if (e.length === 0) return [];
456
467
  const i = e.reduce((o, p) => o + p.btc, 0) * t * (1 - n);
457
468
  let r = 0, u = 0;
@@ -459,30 +470,30 @@ function ke(e, t, n) {
459
470
  r += e[u].btc, u++;
460
471
  return e.slice(0, u);
461
472
  }
462
- function ie(e, t, n, a, i, r, u, o, p) {
463
- const l = o * r, g = n / (t * r), T = t * i, d = Math.max(0, e - T), R = u - l, f = R === 0 ? n : n * ((u - p) / R);
464
- let v;
473
+ function pe(e, t, n, a, i, r, u, o, p) {
474
+ const y = o * r, T = n / (t * r), b = t * i, f = Math.max(0, e - b), R = u - y, v = R === 0 ? n : n * ((u - p) / R);
475
+ let g;
465
476
  if (a)
466
- v = 0;
477
+ g = 0;
467
478
  else {
468
- const I = d * g / o, A = Math.min(I, n - f);
469
- v = Math.max(0, n - f - A);
479
+ const A = f * T / o, I = Math.min(A, n - v);
480
+ g = Math.max(0, n - v - I);
470
481
  }
471
- return { debtAfter: v, btcAfter: Math.max(0, t - e) };
472
- }
473
- function x(e, t, n, a, i, r, u, o) {
474
- let p = [...e], l = t;
475
- const g = e.reduce((f, v) => f + v.btc, 0);
476
- let T = -1, d = 0, R = 0;
477
- for (; p.length > 0 && l > ae && R < ne; ) {
478
- const f = p.reduce((s, y) => s + y.btc, 0), v = f * n * (1 - a);
479
- let I = 0, A = 0;
480
- for (; A < p.length && I < v; )
481
- I += p[A].btc, A++;
482
- const P = A >= p.length, { debtAfter: M } = ie(
483
- I,
484
- f,
485
- l,
482
+ return { debtAfter: g, btcAfter: Math.max(0, t - e) };
483
+ }
484
+ function _(e, t, n, a, i, r, u, o) {
485
+ let p = [...e], y = t;
486
+ const T = e.reduce((v, g) => v + g.btc, 0);
487
+ let b = -1, f = 0, R = 0;
488
+ for (; p.length > 0 && y > ue && R < se; ) {
489
+ const v = p.reduce((s, l) => s + l.btc, 0), g = v * n * (1 - a);
490
+ let A = 0, I = 0;
491
+ for (; I < p.length && A < g; )
492
+ A += p[I].btc, I++;
493
+ const P = I >= p.length, { debtAfter: M } = pe(
494
+ A,
495
+ v,
496
+ y,
486
497
  P,
487
498
  n,
488
499
  i,
@@ -490,21 +501,21 @@ function x(e, t, n, a, i, r, u, o) {
490
501
  u,
491
502
  o
492
503
  );
493
- p = p.slice(A), l = M;
494
- const S = f - I;
495
- d += S, T < 0 && (T = S), R++;
504
+ p = p.slice(I), y = M;
505
+ const B = v - A;
506
+ f += B, b < 0 && (b = B), R++;
496
507
  }
497
508
  return {
498
- sumBtcAfterEvents: d,
499
- btcAfterG1: T < 0 ? g : T
509
+ sumBtcAfterEvents: f,
510
+ btcAfterG1: b < 0 ? T : b
500
511
  };
501
512
  }
502
- const re = 17;
503
- function qe(e, t, n, a, i, r, u, o) {
513
+ const oe = 17;
514
+ function $e(e, t, n, a, i, r, u, o) {
504
515
  const p = e.length;
505
516
  if (p === 0) return { order: [], sumBtcAfterEvents: 0, btcAfterG1: 0 };
506
517
  if (p === 1) {
507
- const s = x(
518
+ const s = _(
508
519
  e,
509
520
  t,
510
521
  n,
@@ -516,8 +527,8 @@ function qe(e, t, n, a, i, r, u, o) {
516
527
  );
517
528
  return { order: [...e], ...s };
518
529
  }
519
- if (p > re) {
520
- const s = [...e].sort((m, c) => c.btc - m.btc), y = x(
530
+ if (p > oe) {
531
+ const s = [...e].sort((d, m) => m.btc - d.btc), l = _(
521
532
  s,
522
533
  t,
523
534
  n,
@@ -527,37 +538,37 @@ function qe(e, t, n, a, i, r, u, o) {
527
538
  u,
528
539
  o
529
540
  );
530
- return { order: s, ...y };
541
+ return { order: s, ...l };
531
542
  }
532
- const l = 1 << p, g = e.reduce((s, y) => s + y.btc, 0), T = n * (1 - a), d = new Float64Array(l);
533
- for (let s = 1; s < l; s++) {
534
- const y = s & -s, m = 31 - Math.clz32(y);
535
- d[s] = d[s ^ y] + e[m].btc;
543
+ const y = 1 << p, T = e.reduce((s, l) => s + l.btc, 0), b = n * (1 - a), f = new Float64Array(y);
544
+ for (let s = 1; s < y; s++) {
545
+ const l = s & -s, d = 31 - Math.clz32(l);
546
+ f[s] = f[s ^ l] + e[d].btc;
536
547
  }
537
- const R = new Float64Array(l), f = new Float64Array(l), v = new Int32Array(l);
538
- R.fill(-1 / 0), v.fill(-1), R[0] = 0;
539
- const I = 1e-9;
540
- for (let s = 1; s < l; s++) {
541
- const y = g - d[s];
542
- let m = -1 / 0, c = -1 / 0, h = -1;
548
+ const R = new Float64Array(y), v = new Float64Array(y), g = new Int32Array(y);
549
+ R.fill(-1 / 0), g.fill(-1), R[0] = 0;
550
+ const A = 1e-9;
551
+ for (let s = 1; s < y; s++) {
552
+ const l = T - f[s];
553
+ let d = -1 / 0, m = -1 / 0, E = -1;
543
554
  for (let w = s; w > 0; w = w - 1 & s) {
544
- const B = s ^ w, D = R[B];
545
- if (D === -1 / 0) continue;
546
- const q = g - d[B];
547
- if (d[w] < q * T) continue;
548
- const _ = D + y, L = B === 0 ? g - d[w] : f[B];
549
- (_ > m + I || Math.abs(_ - m) <= I && L > c + I) && (m = _, c = L, h = w);
555
+ const x = s ^ w, O = R[x];
556
+ if (O === -1 / 0) continue;
557
+ const W = T - f[x];
558
+ if (f[w] < W * b) continue;
559
+ const L = O + l, N = x === 0 ? T - f[w] : v[x];
560
+ (L > d + A || Math.abs(L - d) <= A && N > m + A) && (d = L, m = N, E = w);
550
561
  }
551
- R[s] = m, f[s] = c, v[s] = h;
562
+ R[s] = d, v[s] = m, g[s] = E;
552
563
  }
553
- const A = l - 1, P = [];
554
- for (let s = A; s > 0; ) {
555
- const y = v[s];
556
- if (y === -1) break;
557
- const m = [];
558
- for (let c = 0; c < p; c++)
559
- y & 1 << c && m.push(e[c]);
560
- m.sort((c, h) => h.btc - c.btc), P.push(m), s ^= y;
564
+ const I = y - 1, P = [];
565
+ for (let s = I; s > 0; ) {
566
+ const l = g[s];
567
+ if (l === -1) break;
568
+ const d = [];
569
+ for (let m = 0; m < p; m++)
570
+ l & 1 << m && d.push(e[m]);
571
+ d.sort((m, E) => E.btc - m.btc), P.push(d), s ^= l;
561
572
  }
562
573
  P.reverse();
563
574
  const M = P.flat();
@@ -565,7 +576,7 @@ function qe(e, t, n, a, i, r, u, o) {
565
576
  console.error(
566
577
  `computeOptimalOrder: DP reconstruction produced ${M.length}/${p} vaults; falling back to largest-first. This indicates a DP-invariant regression.`
567
578
  );
568
- const s = [...e].sort((m, c) => c.btc - m.btc), y = x(
579
+ const s = [...e].sort((d, m) => m.btc - d.btc), l = _(
569
580
  s,
570
581
  t,
571
582
  n,
@@ -575,9 +586,9 @@ function qe(e, t, n, a, i, r, u, o) {
575
586
  u,
576
587
  o
577
588
  );
578
- return { order: s, ...y };
589
+ return { order: s, ...l };
579
590
  }
580
- const S = x(
591
+ const B = _(
581
592
  M,
582
593
  t,
583
594
  n,
@@ -589,18 +600,61 @@ function qe(e, t, n, a, i, r, u, o) {
589
600
  );
590
601
  return {
591
602
  order: M,
592
- sumBtcAfterEvents: S.sumBtcAfterEvents,
593
- btcAfterG1: S.btcAfterG1
603
+ sumBtcAfterEvents: B.sumBtcAfterEvents,
604
+ btcAfterG1: B.btcAfterG1
594
605
  };
595
606
  }
596
- const se = BigInt(Number.MAX_SAFE_INTEGER), O = 2000n;
597
- function k(e, t) {
598
- if (e > se)
607
+ const ye = BigInt(Number.MAX_SAFE_INTEGER), h = 10n ** 18n, C = 10000n, Ze = 1.08, k = 990000000000000000n, Qe = Number(k) / Number(h), z = 0.5, le = 2000n;
608
+ function H(e, t) {
609
+ if (e > ye)
599
610
  throw new RangeError(
600
611
  `${t} (${e}) exceeds Number.MAX_SAFE_INTEGER; precision would be lost`
601
612
  );
602
613
  }
603
- function ue(e, t, n, a) {
614
+ function de(e, t) {
615
+ const {
616
+ healthFactorForMaxBonus: n,
617
+ liquidationBonusFactor: a,
618
+ maxLiquidationBonus: i
619
+ } = e;
620
+ if (n < 0n || n >= h)
621
+ throw new RangeError(
622
+ `healthFactorForMaxBonus (${n}) must be in [0, 1e18)`
623
+ );
624
+ if (a < 0n || a > C)
625
+ throw new RangeError(
626
+ `liquidationBonusFactor (${a}) must be in [0, 10000] BPS`
627
+ );
628
+ if (i < C)
629
+ throw new RangeError(
630
+ `maxLiquidationBonus (${i}) must be at least 10000 BPS`
631
+ );
632
+ if (t < 0n || t > h)
633
+ throw new RangeError(
634
+ `healthFactor (${t}) must be in [0, 1e18]; the contract reverts above 1e18`
635
+ );
636
+ if (t <= n)
637
+ return i;
638
+ const r = (i - C) * a / C + C;
639
+ return r + (i - r) * (h - t) / (h - n);
640
+ }
641
+ function Je(e, t) {
642
+ const n = de(
643
+ { ...e, maxLiquidationBonus: BigInt(t) },
644
+ k
645
+ );
646
+ return Number(n) / Number(C);
647
+ }
648
+ function me(e) {
649
+ const { CF: t, LB: n, THF: a, expectedHF: i } = e;
650
+ if (!(a > i))
651
+ return "target-not-above-expected-hf";
652
+ if (!(a > n * t))
653
+ return "target-not-above-liquidation-penalty";
654
+ const r = G(t, n, a, i);
655
+ return r < z ? r > 0 ? null : "no-seizure-expected" : "sacrificial-not-smaller";
656
+ }
657
+ function ce(e, t, n, a) {
604
658
  if (a <= 0)
605
659
  return { seizedFraction: 1, seizedFractionRaw: 1 / 0 };
606
660
  const i = t * e;
@@ -612,94 +666,111 @@ function ue(e, t, n, a) {
612
666
  seizedFractionRaw: r
613
667
  };
614
668
  }
615
- function pe(e, t, n, a) {
616
- return ue(e, t, n, a).seizedFraction;
669
+ function G(e, t, n, a) {
670
+ return ce(e, t, n, a).seizedFraction;
617
671
  }
618
- function ze(e) {
619
- const { totalBtc: t, CF: n, LB: a, THF: i, expectedHF: r, safetyMargin: u } = e;
672
+ function je(e) {
673
+ const { totalBtc: t, CF: n, LB: a, THF: i, expectedHF: r } = e, u = me({ CF: n, LB: a, THF: i, expectedHF: r }), o = G(n, a, i, r);
620
674
  if (t <= 0n)
621
675
  return {
622
676
  sacrificialVault: 0n,
623
677
  protectedVault: 0n,
624
- seizedFraction: 0,
625
- targetSeizureBtc: 0n
678
+ seizedFraction: o,
679
+ targetSeizureBtc: 0n,
680
+ sizingViolation: u ?? "below-dust"
626
681
  };
627
- k(t, "totalBtc");
628
- const o = pe(n, a, i, r), p = Number(t), l = BigInt(Math.ceil(p * o)), g = BigInt(
629
- Math.ceil(p * o * u)
630
- ), T = g > t ? t : g, d = t - T;
631
- return T > 0n && T < O || d > 0n && d < O ? {
682
+ if (H(t, "totalBtc"), u !== null)
683
+ return {
684
+ sacrificialVault: 0n,
685
+ protectedVault: 0n,
686
+ seizedFraction: o,
687
+ targetSeizureBtc: 0n,
688
+ sizingViolation: u
689
+ };
690
+ const p = Number(t), y = BigInt(Math.ceil(p * o)), T = y, b = t - T;
691
+ return T >= b ? {
632
692
  sacrificialVault: 0n,
633
693
  protectedVault: 0n,
634
694
  seizedFraction: o,
635
- targetSeizureBtc: 0n
695
+ targetSeizureBtc: 0n,
696
+ sizingViolation: "sacrificial-not-smaller"
697
+ } : T < le ? {
698
+ sacrificialVault: 0n,
699
+ protectedVault: 0n,
700
+ seizedFraction: o,
701
+ targetSeizureBtc: 0n,
702
+ sizingViolation: "below-dust"
636
703
  } : {
637
704
  sacrificialVault: T,
638
- protectedVault: d,
705
+ protectedVault: b,
639
706
  seizedFraction: o,
640
- targetSeizureBtc: l
707
+ targetSeizureBtc: y,
708
+ sizingViolation: null
641
709
  };
642
710
  }
643
- function He(e) {
644
- const { minPegin: t, seizedFraction: n, safetyMargin: a } = e;
645
- k(t, "minPegin");
646
- const i = n * a;
647
- if (i >= 1 || i <= 0)
648
- return 0n;
649
- const r = 1 - i, u = Math.ceil(Number(t) / r), o = Math.ceil(Number(t) / i);
650
- return BigInt(Math.max(u, o));
711
+ function et(e) {
712
+ const { minPegin: t, seizedFraction: n } = e;
713
+ return H(t, "minPegin"), !(n < z) || n <= 0 ? 0n : BigInt(Math.ceil(Number(t) / n));
651
714
  }
652
715
  export {
653
- G as AAVE_BASE_CURRENCY_DECIMALS,
654
- W as AAVE_BASE_CURRENCY_RAY_DECIMALS,
655
- V as AAVE_FUNCTION_NAMES,
656
- Q as AaveAdapterPositionProxyABI,
657
- C as AaveIntegrationAdapterABI,
658
- b as AaveSpokeABI,
659
- H as BPS_SCALE,
660
- le as FULL_REPAY_BUFFER_DIVISOR,
661
- Y as HEALTH_FACTOR_LIQUIDATION_THRESHOLD,
662
- X as HEALTH_FACTOR_RISKY_THRESHOLD,
663
- Z as HEALTH_FACTOR_WARNING_THRESHOLD,
664
- re as MAX_DP_N,
665
- ne as MAX_GROUPS,
666
- ae as MIN_DEBT_THRESHOLD,
667
- ye as MIN_HEALTH_FACTOR_FOR_BORROW,
668
- Ue as SEIZURE_TOL,
669
- Fe as aaveRayValueToUsd,
670
- _e as aaveValueToUsd,
671
- Ee as buildBorrowTx,
672
- Be as buildReorderVaultsTx,
673
- Ve as buildRepayTx,
674
- xe as buildWithdrawCollateralsTx,
675
- Ne as calculateHealthFactor,
676
- He as computeMinDepositForSplit,
677
- qe as computeOptimalOrder,
678
- ze as computeOptimalSplit,
679
- pe as computeSeizedFraction,
680
- ue as computeSeizedFractionDetailed,
681
- he as getAssetDrawnRatesSafe,
682
- we as getDynamicReserveConfig,
683
- ke as getGroup1FromOrder,
684
- te as getHealthFactorStatus,
685
- Oe as getHealthFactorStatusFromValue,
686
- Ce as getOracleAddress,
687
- de as getPosition,
688
- Me as getPositionReserveTotalDebt,
689
- me as getPositionSizeParams,
690
- Re as getReserve,
691
- Ie as getReserves,
692
- Pe as getReservesPrices,
693
- Se as getReservesPricesSafe,
694
- Ae as getTargetHealthFactor,
695
- ce as getUserAccountData,
696
- be as getUserPosition,
697
- Te as getUserPositionAndAccountData,
698
- ve as getUserPositions,
699
- fe as getUserTotalDebt,
700
- ge as getUserTotalDebts,
701
- Le as hasDebtFromPosition,
702
- x as simulateCascade,
703
- De as wadToNumber
716
+ Y as AAVE_BASE_CURRENCY_DECIMALS,
717
+ $ as AAVE_BASE_CURRENCY_RAY_DECIMALS,
718
+ F as AAVE_FUNCTION_NAMES,
719
+ ae as AaveAdapterPositionProxyABI,
720
+ S as AaveIntegrationAdapterABI,
721
+ c as AaveSpokeABI,
722
+ X as BPS_SCALE,
723
+ Qe as EXPECTED_HEALTH_FACTOR_AT_LIQUIDATION,
724
+ k as EXPECTED_HEALTH_FACTOR_AT_LIQUIDATION_WAD,
725
+ fe as FULL_REPAY_BUFFER_DIVISOR,
726
+ Q as HEALTH_FACTOR_LIQUIDATION_THRESHOLD,
727
+ J as HEALTH_FACTOR_RISKY_THRESHOLD,
728
+ j as HEALTH_FACTOR_WARNING_THRESHOLD,
729
+ ve as MAX_ALLOWED_USER_RESERVES_LIMIT,
730
+ oe as MAX_DP_N,
731
+ se as MAX_GROUPS,
732
+ ue as MIN_DEBT_THRESHOLD,
733
+ be as MIN_HEALTH_FACTOR_FOR_BORROW,
734
+ Xe as SEIZURE_TOL,
735
+ Ze as SPLIT_TARGET_HEALTH_FACTOR,
736
+ ze as aaveRayValueToUsd,
737
+ ke as aaveValueToUsd,
738
+ Ue as buildBorrowTx,
739
+ Oe as buildReorderVaultsTx,
740
+ qe as buildRepayTx,
741
+ Ne as buildWithdrawCollateralsTx,
742
+ Ke as calculateHealthFactor,
743
+ de as computeLiquidationBonusBps,
744
+ et as computeMinDepositForSplit,
745
+ $e as computeOptimalOrder,
746
+ je as computeOptimalSplit,
747
+ G as computeSeizedFraction,
748
+ ce as computeSeizedFractionDetailed,
749
+ Je as computeSplitLiquidationBonus,
750
+ me as findSplitSizingViolation,
751
+ De as getAssetDrawnRatesSafe,
752
+ Ee as getDynamicReserveConfig,
753
+ Ye as getGroup1FromOrder,
754
+ re as getHealthFactorStatus,
755
+ We as getHealthFactorStatusFromValue,
756
+ he as getLiquidationBonusConfig,
757
+ xe as getMaxUserReservesLimit,
758
+ Ve as getOracleAddress,
759
+ ge as getPosition,
760
+ _e as getPositionReserveTotalDebt,
761
+ Re as getPositionSizeParams,
762
+ Pe as getReserve,
763
+ Be as getReserves,
764
+ Fe as getReservesPrices,
765
+ Le as getReservesPricesSafe,
766
+ Ae as getUserAccountData,
767
+ we as getUserPosition,
768
+ Ie as getUserPositionAndAccountData,
769
+ Ce as getUserPositions,
770
+ Me as getUserTotalDebt,
771
+ Se as getUserTotalDebts,
772
+ Ge as hasDebtFromPosition,
773
+ _ as simulateCascade,
774
+ He as wadToNumber
704
775
  };
705
776
  //# sourceMappingURL=index.js.map