@babylonlabs-io/ts-sdk 0.12.0 → 0.13.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (61) hide show
  1. package/dist/challengeAssert-BpzES0KW.cjs +2 -0
  2. package/dist/challengeAssert-BpzES0KW.cjs.map +1 -0
  3. package/dist/challengeAssert-CenzzhZU.js +724 -0
  4. package/dist/challengeAssert-CenzzhZU.js.map +1 -0
  5. package/dist/errors-CPd0qvSk.cjs +2 -0
  6. package/dist/errors-CPd0qvSk.cjs.map +1 -0
  7. package/dist/{errors-DOJdtNTD.js → errors-Ci-2cgfS.js} +331 -285
  8. package/dist/errors-Ci-2cgfS.js.map +1 -0
  9. package/dist/index.cjs +1 -1
  10. package/dist/index.js +59 -58
  11. package/dist/tbv/core/contracts/abis/BTCVaultRegistry.abi.d.ts +15 -7
  12. package/dist/tbv/core/contracts/abis/BTCVaultRegistry.abi.d.ts.map +1 -1
  13. package/dist/tbv/core/index.cjs +1 -1
  14. package/dist/tbv/core/index.d.ts +1 -1
  15. package/dist/tbv/core/index.d.ts.map +1 -1
  16. package/dist/tbv/core/index.js +59 -58
  17. package/dist/tbv/core/managers/PayoutManager.d.ts +21 -0
  18. package/dist/tbv/core/managers/PayoutManager.d.ts.map +1 -1
  19. package/dist/tbv/core/managers/PeginManager.d.ts +2 -2
  20. package/dist/tbv/core/managers/PeginManager.d.ts.map +1 -1
  21. package/dist/tbv/core/primitives/index.cjs +1 -1
  22. package/dist/tbv/core/primitives/index.d.ts +2 -0
  23. package/dist/tbv/core/primitives/index.d.ts.map +1 -1
  24. package/dist/tbv/core/primitives/index.js +21 -20
  25. package/dist/tbv/core/primitives/psbt/refund.d.ts +42 -0
  26. package/dist/tbv/core/primitives/psbt/refund.d.ts.map +1 -0
  27. package/dist/tbv/core/wots/__tests__/derivation.test.d.ts.map +1 -0
  28. package/dist/tbv/core/{lamport → wots}/derivation.d.ts +16 -16
  29. package/dist/tbv/core/wots/derivation.d.ts.map +1 -0
  30. package/dist/tbv/core/wots/deriveWotsPkHash.d.ts +9 -0
  31. package/dist/tbv/core/wots/deriveWotsPkHash.d.ts.map +1 -0
  32. package/dist/tbv/core/wots/errors.d.ts +7 -0
  33. package/dist/tbv/core/wots/errors.d.ts.map +1 -0
  34. package/dist/tbv/core/wots/index.d.ts +5 -0
  35. package/dist/tbv/core/wots/index.d.ts.map +1 -0
  36. package/dist/tbv/core/{lamport → wots}/types.d.ts +8 -8
  37. package/dist/tbv/core/wots/types.d.ts.map +1 -0
  38. package/dist/tbv/index.cjs +1 -1
  39. package/dist/tbv/index.js +59 -58
  40. package/dist/tbv/integrations/aave/clients/abis/AaveIntegrationAdapter.abi.json.d.ts +459 -485
  41. package/dist/tbv/integrations/aave/index.cjs +1 -1
  42. package/dist/tbv/integrations/aave/index.cjs.map +1 -1
  43. package/dist/tbv/integrations/aave/index.js +91 -91
  44. package/package.json +3 -3
  45. package/dist/challengeAssert-DW0sEUgn.cjs +0 -2
  46. package/dist/challengeAssert-DW0sEUgn.cjs.map +0 -1
  47. package/dist/challengeAssert-DnnliaRt.js +0 -645
  48. package/dist/challengeAssert-DnnliaRt.js.map +0 -1
  49. package/dist/errors-DOJdtNTD.js.map +0 -1
  50. package/dist/errors-DbATYfYA.cjs +0 -2
  51. package/dist/errors-DbATYfYA.cjs.map +0 -1
  52. package/dist/tbv/core/lamport/__tests__/derivation.test.d.ts.map +0 -1
  53. package/dist/tbv/core/lamport/derivation.d.ts.map +0 -1
  54. package/dist/tbv/core/lamport/deriveLamportPkHash.d.ts +0 -9
  55. package/dist/tbv/core/lamport/deriveLamportPkHash.d.ts.map +0 -1
  56. package/dist/tbv/core/lamport/errors.d.ts +0 -7
  57. package/dist/tbv/core/lamport/errors.d.ts.map +0 -1
  58. package/dist/tbv/core/lamport/index.d.ts +0 -5
  59. package/dist/tbv/core/lamport/index.d.ts.map +0 -1
  60. package/dist/tbv/core/lamport/types.d.ts.map +0 -1
  61. /package/dist/tbv/core/{lamport → wots}/__tests__/derivation.test.d.ts +0 -0
@@ -1,2 +1,2 @@
1
- "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const c=require("viem"),T={WITHDRAW_COLLATERALS:"withdrawCollaterals",BORROW:"borrowFromCorePosition",REPAY:"repayToCorePosition",REORDER_VAULTS:"reorderVaults"},x=8,V=6,E=100,M=1e4,R=26,g=18,S=1.5,h=1.2,O=10000n,I=1100000000000000000n,P=7500n,w=1050000000000000000n,o=JSON.parse('[{"type":"constructor","inputs":[{"name":"vaultBTC_","type":"address","internalType":"address"},{"name":"coreSpoke_","type":"address","internalType":"address"},{"name":"btcVaultManager_","type":"address","internalType":"address"},{"name":"applicationRegistry_","type":"address","internalType":"address"},{"name":"coreSpokeProxyImpl_","type":"address","internalType":"address"},{"name":"coreVaultBtcReserveId_","type":"uint256","internalType":"uint256"},{"name":"protocolParams_","type":"address","internalType":"address"}],"stateMutability":"nonpayable"},{"type":"function","name":"APPLICATION_ADMIN","inputs":[],"outputs":[{"name":"","type":"bytes32","internalType":"bytes32"}],"stateMutability":"pure"},{"type":"function","name":"APPLICATION_PAUSING_GUARDIAN","inputs":[],"outputs":[{"name":"","type":"bytes32","internalType":"bytes32"}],"stateMutability":"pure"},{"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":"BTC_VAULT_CORE_SPOKE_PROXY_IMPLEMENTATION","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"BTC_VAULT_CORE_VAULT_BTC_RESERVE_ID","inputs":[],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"BTC_VAULT_MANAGER","inputs":[],"outputs":[{"name":"","type":"address","internalType":"contract IBTCVaultsManager"}],"stateMutability":"view"},{"type":"function","name":"DEFAULT_ADMIN_ROLE","inputs":[],"outputs":[{"name":"","type":"bytes32","internalType":"bytes32"}],"stateMutability":"view"},{"type":"function","name":"PROTOCOL_PARAMS","inputs":[],"outputs":[{"name":"","type":"address","internalType":"contract IProtocolParams"}],"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 IBTCVaultsManager.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 IBTCVaultsManager.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":"proverProgramVersion","type":"uint16","internalType":"uint16"},{"name":"createdAt","type":"uint256","internalType":"uint256"},{"name":"verifiedAt","type":"uint256","internalType":"uint256"},{"name":"depositorLamportPkHash","type":"bytes32","internalType":"bytes32"},{"name":"hashlock","type":"bytes32","internalType":"bytes32"},{"name":"htlcVout","type":"uint8","internalType":"uint8"}]}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"applicationFeeRecipient","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":"calculateLiquidationFees","inputs":[{"name":"borrower","type":"address","internalType":"address"}],"outputs":[{"name":"fairnessPayment","type":"tuple","internalType":"struct TokenAmountLib.TokenAmount","components":[{"name":"token","type":"address","internalType":"address"},{"name":"amount","type":"uint256","internalType":"uint256"}]},{"name":"protocolFee","type":"tuple","internalType":"struct TokenAmountLib.TokenAmount","components":[{"name":"token","type":"address","internalType":"address"},{"name":"amount","type":"uint256","internalType":"uint256"}]}],"stateMutability":"view"},{"type":"function","name":"calculateLiquidationPayment","inputs":[{"name":"borrower","type":"address","internalType":"address"}],"outputs":[{"name":"payments","type":"tuple[]","internalType":"struct TokenAmountLib.TokenAmount[]","components":[{"name":"token","type":"address","internalType":"address"},{"name":"amount","type":"uint256","internalType":"uint256"}]}],"stateMutability":"view"},{"type":"function","name":"coreSpokeLiquidationFeeBps","inputs":[],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"fairnessPaymentReserveId","inputs":[],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"fairnessPaymentToken","inputs":[],"outputs":[{"name":"","type":"address","internalType":"contract IERC20"}],"stateMutability":"view"},{"type":"function","name":"fullPause","inputs":[],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"getPosition","inputs":[{"name":"user","type":"address","internalType":"address"}],"outputs":[{"name":"position","type":"tuple","internalType":"struct AaveApplicationBase.MarketPosition","components":[{"name":"vaultIds","type":"bytes32[]","internalType":"bytes32[]"},{"name":"proxyContract","type":"address","internalType":"address"}]}],"stateMutability":"view"},{"type":"function","name":"getPositionCollateral","inputs":[{"name":"user","type":"address","internalType":"address"}],"outputs":[{"name":"totalCollateral","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"getPositionSizeParams","inputs":[],"outputs":[{"name":"minPositionBTC","type":"uint256","internalType":"uint256"},{"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":"getUserOfProxy","inputs":[{"name":"proxy","type":"address","internalType":"address"}],"outputs":[{"name":"user","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"getVaultOwner","inputs":[{"name":"vaultId","type":"bytes32","internalType":"bytes32"}],"outputs":[{"name":"owner","type":"address","internalType":"address"}],"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":"coreSpokeLiquidationFeeBps_","type":"uint256","internalType":"uint256"},{"name":"applicationFeeRecipient_","type":"address","internalType":"address"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"isVaultCollateralized","inputs":[{"name":"vaultId","type":"bytes32","internalType":"bytes32"}],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"view"},{"type":"function","name":"isVaultEscrowed","inputs":[{"name":"vaultId","type":"bytes32","internalType":"bytes32"}],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"view"},{"type":"function","name":"liquidateCorePosition","inputs":[{"name":"borrower","type":"address","internalType":"address"},{"name":"btcRedeemKey","type":"bytes32","internalType":"bytes32"}],"outputs":[{"name":"seizedAmount","type":"uint256","internalType":"uint256"}],"stateMutability":"nonpayable"},{"type":"function","name":"pauseState","inputs":[],"outputs":[{"name":"","type":"uint8","internalType":"enum ITBVPausable.PauseState"}],"stateMutability":"view"},{"type":"function","name":"positionSizeParams","inputs":[],"outputs":[{"name":"minPositionBTC","type":"uint256","internalType":"uint256"},{"name":"maxPositionBTC","type":"uint256","internalType":"uint256"},{"name":"maxVaultsPerPosition","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"proxiableUUID","inputs":[],"outputs":[{"name":"","type":"bytes32","internalType":"bytes32"}],"stateMutability":"view"},{"type":"function","name":"redeemVaultFromSwap","inputs":[{"name":"vaultId","type":"bytes32","internalType":"bytes32"},{"name":"btcRedeemKey","type":"bytes32","internalType":"bytes32"}],"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":"repayToCorePosition","inputs":[{"name":"borrower","type":"address","internalType":"address"},{"name":"debtReserveId","type":"uint256","internalType":"uint256"},{"name":"amount","type":"uint256","internalType":"uint256"}],"outputs":[{"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":"setApplicationFeeRecipient","inputs":[{"name":"applicationFeeRecipient_","type":"address","internalType":"address"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"setCoreSpokeLiquidationFeeBps","inputs":[{"name":"coreSpokeLiquidationFeeBps_","type":"uint256","internalType":"uint256"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"setFairnessPaymentToken","inputs":[{"name":"token","type":"address","internalType":"address"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"setPositionSizeParams","inputs":[{"name":"params","type":"tuple","internalType":"struct AaveApplicationBase.PositionSizeParams","components":[{"name":"minPositionBTC","type":"uint256","internalType":"uint256"},{"name":"maxPositionBTC","type":"uint256","internalType":"uint256"},{"name":"maxVaultsPerPosition","type":"uint256","internalType":"uint256"}]}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"setVaultSwap","inputs":[{"name":"vaultSwap_","type":"address","internalType":"address"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"softPause","inputs":[],"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":"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":"vaultSwap","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"withdrawAllCollateralFromCorePosition","inputs":[],"outputs":[{"name":"withdrawnAmount","type":"uint256","internalType":"uint256"}],"stateMutability":"nonpayable"},{"type":"function","name":"withdrawCollaterals","inputs":[{"name":"vaultsToWithdraw","type":"bytes32[]","internalType":"bytes32[]"}],"outputs":[{"name":"amountWithdrawn","type":"uint256","internalType":"uint256"}],"stateMutability":"nonpayable"},{"type":"event","name":"BTCVaultCoreSpokeLiquidated","inputs":[{"name":"depositor","type":"address","indexed":true,"internalType":"address"},{"name":"liquidator","type":"address","indexed":true,"internalType":"address"},{"name":"valueDebtRepaid","type":"uint256","indexed":false,"internalType":"uint256"},{"name":"valueCollateralSeized","type":"uint256","indexed":false,"internalType":"uint256"},{"name":"fairnessPayment","type":"uint256","indexed":false,"internalType":"uint256"},{"name":"protocolFee","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":"depositor","type":"address","indexed":true,"internalType":"address"},{"name":"vaultId","type":"bytes32","indexed":true,"internalType":"bytes32"}],"anonymous":false},{"type":"event","name":"CollateralWithdrawn","inputs":[{"name":"depositor","type":"address","indexed":true,"internalType":"address"},{"name":"vaultId","type":"bytes32","indexed":true,"internalType":"bytes32"}],"anonymous":false},{"type":"event","name":"AdapterApplicationRecipientUpdated","inputs":[{"name":"applicationFeeRecipient","type":"address","indexed":false,"internalType":"address"}],"anonymous":false},{"type":"event","name":"CoreSpokeLiquidationFeeBpsUpdated","inputs":[{"name":"coreSpokeLiquidationFeeBps","type":"uint256","indexed":false,"internalType":"uint256"}],"anonymous":false},{"type":"event","name":"FairnessPaymentFailed","inputs":[{"name":"depositor","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":"depositor","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":"FairnessPaymentTokenSet","inputs":[{"name":"token","type":"address","indexed":true,"internalType":"address"}],"anonymous":false},{"type":"event","name":"Initialized","inputs":[{"name":"version","type":"uint8","indexed":false,"internalType":"uint8"}],"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":"oldMinPositionBTC","type":"uint256","indexed":false,"internalType":"uint256"},{"name":"oldMaxPositionBTC","type":"uint256","indexed":false,"internalType":"uint256"},{"name":"oldMaxVaultsPerPosition","type":"uint256","indexed":false,"internalType":"uint256"},{"name":"newMinPositionBTC","type":"uint256","indexed":false,"internalType":"uint256"},{"name":"newMaxPositionBTC","type":"uint256","indexed":false,"internalType":"uint256"},{"name":"newMaxVaultsPerPosition","type":"uint256","indexed":false,"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":"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":"VaultMarkedEscrowed","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":"VaultSwapUpdated","inputs":[{"name":"vaultSwap","type":"address","indexed":true,"internalType":"address"}],"anonymous":false},{"type":"error","name":"AddressEmptyCode","inputs":[{"name":"target","type":"address","internalType":"address"}]},{"type":"error","name":"DebtMustBeRepaidFirst","inputs":[]},{"type":"error","name":"EmptyArray","inputs":[]},{"type":"error","name":"ERC1967InvalidImplementation","inputs":[{"name":"implementation","type":"address","internalType":"address"}]},{"type":"error","name":"ERC1967NonPayable","inputs":[]},{"type":"error","name":"FailedCall","inputs":[]},{"type":"error","name":"FailedDeployment","inputs":[]},{"type":"error","name":"IncompleteLiquidation","inputs":[{"name":"expected","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":"InsufficientBalance","inputs":[{"name":"balance","type":"uint256","internalType":"uint256"},{"name":"needed","type":"uint256","internalType":"uint256"}]},{"type":"error","name":"InvalidAmount","inputs":[]},{"type":"error","name":"InvalidFairnessPaymentTokenDecimals","inputs":[]},{"type":"error","name":"InvalidProxyContract","inputs":[]},{"type":"error","name":"InvalidVaultStatus","inputs":[]},{"type":"error","name":"MaxPositionBelowMin","inputs":[{"name":"maxPositionBTC","type":"uint256","internalType":"uint256"},{"name":"minPositionBTC","type":"uint256","internalType":"uint256"}]},{"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":"PositionBelowMinimum","inputs":[{"name":"actual","type":"uint256","internalType":"uint256"},{"name":"minimum","type":"uint256","internalType":"uint256"}]},{"type":"error","name":"PositionMaxBelowVaultMax","inputs":[{"name":"maxPositionBTC","type":"uint256","internalType":"uint256"},{"name":"vaultMaximum","type":"uint256","internalType":"uint256"}]},{"type":"error","name":"PositionMinBelowVaultMin","inputs":[{"name":"minPositionBTC","type":"uint256","internalType":"uint256"},{"name":"vaultMinimum","type":"uint256","internalType":"uint256"}]},{"type":"error","name":"PositionNotLiquidatable","inputs":[]},{"type":"error","name":"SafeERC20FailedOperation","inputs":[{"name":"token","type":"address","internalType":"address"}]},{"type":"error","name":"TBV_AlreadyPaused","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":"VaultNotEscrowed","inputs":[]},{"type":"error","name":"VaultSwapNotSet","inputs":[]},{"type":"error","name":"ZeroAddress","inputs":[]},{"type":"error","name":"ZeroAmount","inputs":[]},{"type":"error","name":"ZeroBorrowAmount","inputs":[]},{"type":"function","name":"reorderVaults","inputs":[{"name":"permuted","type":"bytes32[]","internalType":"bytes32[]"}],"outputs":[],"stateMutability":"nonpayable"},{"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":"InvalidVaultsPermutation","inputs":[]}]');async function L(e,t,n){const a=await e.readContract({address:t,abi:o,functionName:"getPosition",args:[n]});return a.proxyContract===c.zeroAddress?null:{proxyContract:a.proxyContract,vaultIds:a.vaultIds}}async function D(e,t,n){return await e.readContract({address:t,abi:o,functionName:"getPositionCollateral",args:[n]})}function _(e){return e.drawnShares>0n||e.premiumShares>0n||e.realizedPremiumRay>0n}const b=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":"uint24","internalType":"uint24"}],"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":"paused","type":"bool","internalType":"bool"},{"name":"frozen","type":"bool","internalType":"bool"},{"name":"borrowable","type":"bool","internalType":"bool"},{"name":"collateralRisk","type":"uint24","internalType":"uint24"}]},{"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":"uint24","internalType":"uint24"}],"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":"dynamicConfigKey","type":"uint24","internalType":"uint24"},{"name":"paused","type":"bool","internalType":"bool"},{"name":"frozen","type":"bool","internalType":"bool"},{"name":"borrowable","type":"bool","internalType":"bool"},{"name":"collateralRisk","type":"uint24","internalType":"uint24"}]}],"stateMutability":"view"},{"type":"function","name":"getReserveConfig","inputs":[{"name":"reserveId","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"","type":"tuple","internalType":"struct ITBVAaveSpoke.ReserveConfig","components":[{"name":"paused","type":"bool","internalType":"bool"},{"name":"frozen","type":"bool","internalType":"bool"},{"name":"borrowable","type":"bool","internalType":"bool"},{"name":"collateralRisk","type":"uint24","internalType":"uint24"}]}],"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":"totalDebtValue","type":"uint256","internalType":"uint256"},{"name":"activeCollateralCount","type":"uint256","internalType":"uint256"},{"name":"borrowedCount","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":"realizedPremiumRay","type":"uint200","internalType":"uint200"},{"name":"premiumOffsetRay","type":"uint200","internalType":"uint200"},{"name":"suppliedShares","type":"uint120","internalType":"uint120"},{"name":"dynamicConfigKey","type":"uint24","internalType":"uint24"}]}],"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":"uint24","internalType":"uint24"},{"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":"paused","type":"bool","internalType":"bool"},{"name":"frozen","type":"bool","internalType":"bool"},{"name":"borrowable","type":"bool","internalType":"bool"},{"name":"collateralRisk","type":"uint24","internalType":"uint24"}]}],"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"}]');function U(e){return{drawnShares:e.drawnShares,premiumShares:e.premiumShares,realizedPremiumRay:e.realizedPremiumRay,premiumOffsetRay:e.premiumOffsetRay,suppliedShares:e.suppliedShares,dynamicConfigKey:e.dynamicConfigKey}}async function N(e,t,n){const a=await e.readContract({address:t,abi:b,functionName:"getUserAccountData",args:[n]});return{riskPremium:a.riskPremium,avgCollateralFactor:a.avgCollateralFactor,healthFactor:a.healthFactor,totalCollateralValue:a.totalCollateralValue,totalDebtValue:a.totalDebtValue,activeCollateralCount:a.activeCollateralCount,borrowedCount:a.borrowedCount}}async function C(e,t,n,i){const a=await e.readContract({address:t,abi:b,functionName:"getUserPosition",args:[n,i]});return U(a)}async function k(e,t,n,i){const a=await C(e,t,n,i);return _(a)}async function H(e,t,n,i){return(await C(e,t,n,i)).suppliedShares>0n}async function z(e,t,n,i){return await e.readContract({address:t,abi:b,functionName:"getUserTotalDebt",args:[n,i]})}async function q(e,t){return I}async function W(e,t){return P}async function K(e,t){return w}function G(e,t){const n=c.encodeFunctionData({abi:o,functionName:T.REORDER_VAULTS,args:[t]});return{to:e,data:n}}function Y(e,t){const n=c.encodeFunctionData({abi:o,functionName:T.WITHDRAW_COLLATERALS,args:[t]});return{to:e,data:n}}function X(e,t,n,i){const a=c.encodeFunctionData({abi:o,functionName:T.BORROW,args:[t,n,i]});return{to:e,data:a}}function Z(e,t,n,i){const a=c.encodeFunctionData({abi:o,functionName:T.REPAY,args:[t,n,i]});return{to:e,data:a}}function $(e){return Number(e)/10**R}function J(e){return Number(e)/10**g}function Q(e,t){return t<=0?"0%":`${(e/t*100).toFixed(1)}%`}const m={GREEN:"#00E676",AMBER:"#FFC400",RED:"#FF1744",GRAY:"#5A5A5A"};function B(e,t){return t?e===null?"safe":e<1?"danger":e<S?"warning":"safe":"no_debt"}function j(e){switch(e){case"safe":return m.GREEN;case"warning":return m.AMBER;case"danger":return m.RED;case"no_debt":return m.GRAY}}function ee(e){return e===null?"-":e.toFixed(2)}function te(e){return e===null?!0:e>=1}function ne(e){const t=isFinite(e),n=isFinite(e)?e:null;return B(n,t)}function ae(e,t,n){return t<=0?1/0:e*(n/M)/t}function ie(e,t){if(t<=0)return{vaultIds:[],actualAmount:0};const n=[...e].sort((r,u)=>u.amount-r.amount),i=[];let a=0;for(const r of n){if(a>=t)break;i.push(r.id),a+=r.amount}return{vaultIds:i,actualAmount:a}}function re(e){return e.reduce((t,n)=>t+n.amount,0)}const se=BigInt(Number.MAX_SAFE_INTEGER);function f(e,t){if(e>se)throw new RangeError(`${t} (${e}) exceeds Number.MAX_SAFE_INTEGER; precision would be lost`)}function v(e,t,n,i){if(i<=0)return 1;const a=t*e;if(n<=a)return 1;const r=e*(n-i)/(n-a)*(t/i);return Math.max(0,Math.min(1,r))}function ue(e){const{totalBtc:t,CF:n,LB:i,THF:a,expectedHF:r,safetyMargin:u}=e;if(t<=0n)return{sacrificialVault:0n,protectedVault:0n,seizedFraction:0,targetSeizureBtc:0n};f(t,"totalBtc");const s=v(n,i,a,r),y=Number(t),p=BigInt(Math.ceil(y*s)),l=BigInt(Math.ceil(y*s*u)),d=l>t?t:l,A=t-d;return{sacrificialVault:d,protectedVault:A,seizedFraction:s,targetSeizureBtc:p}}function pe(e){const{minPegin:t,seizedFraction:n,safetyMargin:i}=e;f(t,"minPegin");const a=n*i;if(a>=1||a<=0)return 0n;const r=1-a,u=Math.ceil(Number(t)/r),s=Math.ceil(Number(t)/a);return BigInt(Math.max(u,s))}function oe(e){const{vaultAmounts:t,CF:n,LB:i,THF:a,expectedHF:r,safetyMargin:u}=e;if(t.length===0)return{needsRebalance:!1,deficit:0n,currentCoverage:0n,targetCoverage:0n};const s=t.reduce((A,F)=>A+F,0n);f(s,"totalBtc");const y=v(n,i,a,r),p=BigInt(Math.ceil(Number(s)*y*u)),l=t[0],d=p>l?p-l:0n;return{needsRebalance:d>0n,deficit:d,currentCoverage:l,targetCoverage:p}}function ye(e){const{totalCollateralSats:t,CF:n,LB:i,THF:a,expectedHF:r}=e;if(t<=0n)return 0n;f(t,"totalCollateralSats");const u=v(n,i,a,r);return BigInt(Math.ceil(Number(t)*u))}function le(e){const{orderedVaults:t,targetSeizureSats:n}=e;if(t.length===0)throw new Error("orderedVaults must not be empty");if(n<=0n)throw new Error("targetSeizureSats must be positive; use computeTargetSeizureSats to derive it");let i=0n,a=t.length;for(let p=0;p<t.length;p++)if(i+=t[p].amountSats,i>=n){a=p+1;break}const r=t.slice(0,a),u=t.slice(a),s=i,y=s>n?s-n:0n;return{seizedVaults:r,protectedVaults:u,overSeizureSats:y,cutoffIndex:a,totalSeizedSats:s}}exports.AAVE_BASE_CURRENCY_DECIMALS=R;exports.AAVE_FUNCTION_NAMES=T;exports.AaveIntegrationAdapterABI=o;exports.AaveSpokeABI=b;exports.BPS_SCALE=M;exports.BPS_TO_PERCENT_DIVISOR=E;exports.BTC_DECIMALS=x;exports.FULL_REPAY_BUFFER_DIVISOR=O;exports.HEALTH_FACTOR_COLORS=m;exports.HEALTH_FACTOR_WARNING_THRESHOLD=S;exports.MIN_HEALTH_FACTOR_FOR_BORROW=h;exports.MOCK_COLLATERAL_FACTOR_BPS=P;exports.MOCK_LIQUIDATION_BONUS_WAD=w;exports.MOCK_TARGET_HEALTH_FACTOR_WAD=I;exports.USDC_DECIMALS=V;exports.WAD_DECIMALS=g;exports.aaveValueToUsd=$;exports.buildBorrowTx=X;exports.buildReorderVaultsTx=G;exports.buildRepayTx=Z;exports.buildWithdrawCollateralsTx=Y;exports.calculateBorrowRatio=Q;exports.calculateHealthFactor=ae;exports.calculateTotalVaultAmount=re;exports.checkRebalanceNeeded=oe;exports.computeMinDepositForSplit=pe;exports.computeOptimalSplit=ue;exports.computeSeizedFraction=v;exports.computeTargetSeizureSats=ye;exports.formatHealthFactor=ee;exports.getCollateralFactor=W;exports.getHealthFactorColor=j;exports.getHealthFactorStatus=B;exports.getHealthFactorStatusFromValue=ne;exports.getLiquidationBonus=K;exports.getPosition=L;exports.getPositionCollateral=D;exports.getTargetHealthFactor=q;exports.getUserAccountData=N;exports.getUserPosition=C;exports.getUserTotalDebt=z;exports.hasCollateral=H;exports.hasDebt=k;exports.hasDebtFromPosition=_;exports.isHealthFactorHealthy=te;exports.selectVaultsForAmount=ie;exports.simulatePrefixSeizure=le;exports.wadToNumber=J;
1
+ "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const c=require("viem"),T={WITHDRAW_COLLATERALS:"withdrawCollaterals",BORROW:"borrowFromCorePosition",REPAY:"repayToCorePosition",REORDER_VAULTS:"reorderVaults"},x=8,h=6,V=100,g=1e4,C=26,I=18,M=1.5,E=1.2,L=10000n,S=1100000000000000000n,P=7500n,_=1050000000000000000n,o=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":"BTC_VAULT_CORE_VAULT_BTC_RESERVE_ID","inputs":[],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"BTC_VAULT_CORE_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":[]}]');async function O(e,t,n){const a=await e.readContract({address:t,abi:o,functionName:"getPosition",args:[n]});return a.proxyContract===c.zeroAddress?null:{proxyContract:a.proxyContract,vaultIds:a.vaultIds}}async function D(e,t,n){return await e.readContract({address:t,abi:o,functionName:"getPositionCollateral",args:[n]})}function B(e){return e.drawnShares>0n||e.premiumShares>0n||e.realizedPremiumRay>0n}const b=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":"uint24","internalType":"uint24"}],"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":"paused","type":"bool","internalType":"bool"},{"name":"frozen","type":"bool","internalType":"bool"},{"name":"borrowable","type":"bool","internalType":"bool"},{"name":"collateralRisk","type":"uint24","internalType":"uint24"}]},{"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":"uint24","internalType":"uint24"}],"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":"dynamicConfigKey","type":"uint24","internalType":"uint24"},{"name":"paused","type":"bool","internalType":"bool"},{"name":"frozen","type":"bool","internalType":"bool"},{"name":"borrowable","type":"bool","internalType":"bool"},{"name":"collateralRisk","type":"uint24","internalType":"uint24"}]}],"stateMutability":"view"},{"type":"function","name":"getReserveConfig","inputs":[{"name":"reserveId","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"","type":"tuple","internalType":"struct ITBVAaveSpoke.ReserveConfig","components":[{"name":"paused","type":"bool","internalType":"bool"},{"name":"frozen","type":"bool","internalType":"bool"},{"name":"borrowable","type":"bool","internalType":"bool"},{"name":"collateralRisk","type":"uint24","internalType":"uint24"}]}],"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":"totalDebtValue","type":"uint256","internalType":"uint256"},{"name":"activeCollateralCount","type":"uint256","internalType":"uint256"},{"name":"borrowedCount","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":"realizedPremiumRay","type":"uint200","internalType":"uint200"},{"name":"premiumOffsetRay","type":"uint200","internalType":"uint200"},{"name":"suppliedShares","type":"uint120","internalType":"uint120"},{"name":"dynamicConfigKey","type":"uint24","internalType":"uint24"}]}],"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":"uint24","internalType":"uint24"},{"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":"paused","type":"bool","internalType":"bool"},{"name":"frozen","type":"bool","internalType":"bool"},{"name":"borrowable","type":"bool","internalType":"bool"},{"name":"collateralRisk","type":"uint24","internalType":"uint24"}]}],"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"}]');function U(e){return{drawnShares:e.drawnShares,premiumShares:e.premiumShares,realizedPremiumRay:e.realizedPremiumRay,premiumOffsetRay:e.premiumOffsetRay,suppliedShares:e.suppliedShares,dynamicConfigKey:e.dynamicConfigKey}}async function N(e,t,n){const a=await e.readContract({address:t,abi:b,functionName:"getUserAccountData",args:[n]});return{riskPremium:a.riskPremium,avgCollateralFactor:a.avgCollateralFactor,healthFactor:a.healthFactor,totalCollateralValue:a.totalCollateralValue,totalDebtValue:a.totalDebtValue,activeCollateralCount:a.activeCollateralCount,borrowedCount:a.borrowedCount}}async function A(e,t,n,i){const a=await e.readContract({address:t,abi:b,functionName:"getUserPosition",args:[n,i]});return U(a)}async function k(e,t,n,i){const a=await A(e,t,n,i);return B(a)}async function z(e,t,n,i){return(await A(e,t,n,i)).suppliedShares>0n}async function H(e,t,n,i){return await e.readContract({address:t,abi:b,functionName:"getUserTotalDebt",args:[n,i]})}async function q(e,t){return S}async function W(e,t){return P}async function K(e,t){return _}function G(e,t){const n=c.encodeFunctionData({abi:o,functionName:T.REORDER_VAULTS,args:[t]});return{to:e,data:n}}function Y(e,t){const n=c.encodeFunctionData({abi:o,functionName:T.WITHDRAW_COLLATERALS,args:[t]});return{to:e,data:n}}function Z(e,t,n,i){const a=c.encodeFunctionData({abi:o,functionName:T.BORROW,args:[t,n,i]});return{to:e,data:a}}function X(e,t,n,i){const a=c.encodeFunctionData({abi:o,functionName:T.REPAY,args:[t,n,i]});return{to:e,data:a}}function $(e){return Number(e)/10**C}function J(e){return Number(e)/10**I}function Q(e,t){return t<=0?"0%":`${(e/t*100).toFixed(1)}%`}const m={GREEN:"#00E676",AMBER:"#FFC400",RED:"#FF1744",GRAY:"#5A5A5A"};function F(e,t){return t?e===null?"safe":e<1?"danger":e<M?"warning":"safe":"no_debt"}function j(e){switch(e){case"safe":return m.GREEN;case"warning":return m.AMBER;case"danger":return m.RED;case"no_debt":return m.GRAY}}function ee(e){return e===null?"-":e.toFixed(2)}function te(e){return e===null?!0:e>=1}function ne(e){const t=isFinite(e),n=isFinite(e)?e:null;return F(n,t)}function ae(e,t,n){return t<=0?1/0:e*(n/g)/t}function ie(e,t){if(t<=0)return{vaultIds:[],actualAmount:0};const n=[...e].sort((r,p)=>p.amount-r.amount),i=[];let a=0;for(const r of n){if(a>=t)break;i.push(r.id),a+=r.amount}return{vaultIds:i,actualAmount:a}}function re(e){return e.reduce((t,n)=>t+n.amount,0)}const se=BigInt(Number.MAX_SAFE_INTEGER);function f(e,t){if(e>se)throw new RangeError(`${t} (${e}) exceeds Number.MAX_SAFE_INTEGER; precision would be lost`)}function v(e,t,n,i){if(i<=0)return 1;const a=t*e;if(n<=a)return 1;const r=e*(n-i)/(n-a)*(t/i);return Math.max(0,Math.min(1,r))}function pe(e){const{totalBtc:t,CF:n,LB:i,THF:a,expectedHF:r,safetyMargin:p}=e;if(t<=0n)return{sacrificialVault:0n,protectedVault:0n,seizedFraction:0,targetSeizureBtc:0n};f(t,"totalBtc");const s=v(n,i,a,r),y=Number(t),u=BigInt(Math.ceil(y*s)),l=BigInt(Math.ceil(y*s*p)),d=l>t?t:l,R=t-d;return{sacrificialVault:d,protectedVault:R,seizedFraction:s,targetSeizureBtc:u}}function ue(e){const{minPegin:t,seizedFraction:n,safetyMargin:i}=e;f(t,"minPegin");const a=n*i;if(a>=1||a<=0)return 0n;const r=1-a,p=Math.ceil(Number(t)/r),s=Math.ceil(Number(t)/a);return BigInt(Math.max(p,s))}function oe(e){const{vaultAmounts:t,CF:n,LB:i,THF:a,expectedHF:r,safetyMargin:p}=e;if(t.length===0)return{needsRebalance:!1,deficit:0n,currentCoverage:0n,targetCoverage:0n};const s=t.reduce((R,w)=>R+w,0n);f(s,"totalBtc");const y=v(n,i,a,r),u=BigInt(Math.ceil(Number(s)*y*p)),l=t[0],d=u>l?u-l:0n;return{needsRebalance:d>0n,deficit:d,currentCoverage:l,targetCoverage:u}}function ye(e){const{totalCollateralSats:t,CF:n,LB:i,THF:a,expectedHF:r}=e;if(t<=0n)return 0n;f(t,"totalCollateralSats");const p=v(n,i,a,r);return BigInt(Math.ceil(Number(t)*p))}function le(e){const{orderedVaults:t,targetSeizureSats:n}=e;if(t.length===0)throw new Error("orderedVaults must not be empty");if(n<=0n)throw new Error("targetSeizureSats must be positive; use computeTargetSeizureSats to derive it");let i=0n,a=t.length;for(let u=0;u<t.length;u++)if(i+=t[u].amountSats,i>=n){a=u+1;break}const r=t.slice(0,a),p=t.slice(a),s=i,y=s>n?s-n:0n;return{seizedVaults:r,protectedVaults:p,overSeizureSats:y,cutoffIndex:a,totalSeizedSats:s}}exports.AAVE_BASE_CURRENCY_DECIMALS=C;exports.AAVE_FUNCTION_NAMES=T;exports.AaveIntegrationAdapterABI=o;exports.AaveSpokeABI=b;exports.BPS_SCALE=g;exports.BPS_TO_PERCENT_DIVISOR=V;exports.BTC_DECIMALS=x;exports.FULL_REPAY_BUFFER_DIVISOR=L;exports.HEALTH_FACTOR_COLORS=m;exports.HEALTH_FACTOR_WARNING_THRESHOLD=M;exports.MIN_HEALTH_FACTOR_FOR_BORROW=E;exports.MOCK_COLLATERAL_FACTOR_BPS=P;exports.MOCK_LIQUIDATION_BONUS_WAD=_;exports.MOCK_TARGET_HEALTH_FACTOR_WAD=S;exports.USDC_DECIMALS=h;exports.WAD_DECIMALS=I;exports.aaveValueToUsd=$;exports.buildBorrowTx=Z;exports.buildReorderVaultsTx=G;exports.buildRepayTx=X;exports.buildWithdrawCollateralsTx=Y;exports.calculateBorrowRatio=Q;exports.calculateHealthFactor=ae;exports.calculateTotalVaultAmount=re;exports.checkRebalanceNeeded=oe;exports.computeMinDepositForSplit=ue;exports.computeOptimalSplit=pe;exports.computeSeizedFraction=v;exports.computeTargetSeizureSats=ye;exports.formatHealthFactor=ee;exports.getCollateralFactor=W;exports.getHealthFactorColor=j;exports.getHealthFactorStatus=F;exports.getHealthFactorStatusFromValue=ne;exports.getLiquidationBonus=K;exports.getPosition=O;exports.getPositionCollateral=D;exports.getTargetHealthFactor=q;exports.getUserAccountData=N;exports.getUserPosition=A;exports.getUserTotalDebt=H;exports.hasCollateral=z;exports.hasDebt=k;exports.hasDebtFromPosition=B;exports.isHealthFactorHealthy=te;exports.selectVaultsForAmount=ie;exports.simulatePrefixSeizure=le;exports.wadToNumber=J;
2
2
  //# sourceMappingURL=index.cjs.map