@babylonlabs-io/ts-sdk 0.55.2 → 0.56.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 (155) hide show
  1. package/README.md +1 -2
  2. package/dist/{PayoutManager-BJmPnyRP.js → PayoutManager-BVgmuKuK.js} +117 -105
  3. package/dist/PayoutManager-BVgmuKuK.js.map +1 -0
  4. package/dist/PayoutManager-Cu4_l-_Y.cjs +2 -0
  5. package/dist/PayoutManager-Cu4_l-_Y.cjs.map +1 -0
  6. package/dist/{PeginManager-CW03-M3T.js → PeginManager-Ba7Cr51Z.js} +520 -460
  7. package/dist/PeginManager-Ba7Cr51Z.js.map +1 -0
  8. package/dist/PeginManager-CcjGRo4O.cjs +2 -0
  9. package/dist/PeginManager-CcjGRo4O.cjs.map +1 -0
  10. package/dist/{buildAndBroadcastRefund-BiSO4zg2.js → buildAndBroadcastRefund-BtXUqBkb.js} +444 -430
  11. package/dist/buildAndBroadcastRefund-BtXUqBkb.js.map +1 -0
  12. package/dist/buildAndBroadcastRefund-Cq01wyZX.cjs +2 -0
  13. package/dist/buildAndBroadcastRefund-Cq01wyZX.cjs.map +1 -0
  14. package/dist/challengeAssert-BVQq50su.js +75 -0
  15. package/dist/challengeAssert-BVQq50su.js.map +1 -0
  16. package/dist/challengeAssert-Cu-PtJ1g.cjs +2 -0
  17. package/dist/challengeAssert-Cu-PtJ1g.cjs.map +1 -0
  18. package/dist/constants-BqU1Uz15.cjs +2 -0
  19. package/dist/{constants-CvbARMl-.cjs.map → constants-BqU1Uz15.cjs.map} +1 -1
  20. package/dist/{constants-BhclpREj.js → constants-CDQE812z.js} +8 -6
  21. package/dist/{constants-BhclpREj.js.map → constants-CDQE812z.js.map} +1 -1
  22. package/dist/index.cjs +1 -1
  23. package/dist/index.js +195 -192
  24. package/dist/{mempoolApi-DqJByvqR.cjs → mempoolApi-DkyKmmgI.cjs} +2 -2
  25. package/dist/mempoolApi-DkyKmmgI.cjs.map +1 -0
  26. package/dist/{mempoolApi-CB7bHuwi.js → mempoolApi-lpJdvPkK.js} +66 -66
  27. package/dist/mempoolApi-lpJdvPkK.js.map +1 -0
  28. package/dist/{noPayout-CNMqNNpc.cjs → noPayout-Cb8vFrkY.cjs} +2 -2
  29. package/dist/{noPayout-CNMqNNpc.cjs.map → noPayout-Cb8vFrkY.cjs.map} +1 -1
  30. package/dist/{noPayout-CfBg3HzC.js → noPayout-CihCk1HE.js} +2 -2
  31. package/dist/{noPayout-CfBg3HzC.js.map → noPayout-CihCk1HE.js.map} +1 -1
  32. package/dist/{primeVpAuth-l-5x_2UV.js → primeVpAuth-Caa5J_uv.js} +4 -4
  33. package/dist/{primeVpAuth-l-5x_2UV.js.map → primeVpAuth-Caa5J_uv.js.map} +1 -1
  34. package/dist/{primeVpAuth-CF4cH5_e.cjs → primeVpAuth-y-4A88ah.cjs} +2 -2
  35. package/dist/{primeVpAuth-CF4cH5_e.cjs.map → primeVpAuth-y-4A88ah.cjs.map} +1 -1
  36. package/dist/tbv/core/clients/index.cjs +1 -1
  37. package/dist/tbv/core/clients/index.js +2 -2
  38. package/dist/tbv/core/clients/mempool/mempoolApi.d.ts.map +1 -1
  39. package/dist/tbv/core/deposit-terms/__tests__/buildDepositTerms.test.d.ts +2 -0
  40. package/dist/tbv/core/deposit-terms/__tests__/buildDepositTerms.test.d.ts.map +1 -0
  41. package/dist/tbv/core/deposit-terms/buildDepositTerms.d.ts +8 -0
  42. package/dist/tbv/core/deposit-terms/buildDepositTerms.d.ts.map +1 -0
  43. package/dist/tbv/core/deposit-terms/depositTerms.d.ts +92 -0
  44. package/dist/tbv/core/deposit-terms/depositTerms.d.ts.map +1 -0
  45. package/dist/tbv/core/deposit-terms/index.d.ts +12 -0
  46. package/dist/tbv/core/deposit-terms/index.d.ts.map +1 -0
  47. package/dist/tbv/core/index.cjs +1 -1
  48. package/dist/tbv/core/index.d.ts +1 -0
  49. package/dist/tbv/core/index.d.ts.map +1 -1
  50. package/dist/tbv/core/index.js +194 -191
  51. package/dist/tbv/core/managers/PayoutManager.d.ts +7 -0
  52. package/dist/tbv/core/managers/PayoutManager.d.ts.map +1 -1
  53. package/dist/tbv/core/managers/PeginManager.d.ts +13 -0
  54. package/dist/tbv/core/managers/PeginManager.d.ts.map +1 -1
  55. package/dist/tbv/core/managers/index.cjs +1 -1
  56. package/dist/tbv/core/managers/index.js +2 -2
  57. package/dist/tbv/core/primitives/index.cjs +1 -1
  58. package/dist/tbv/core/primitives/index.d.ts +0 -3
  59. package/dist/tbv/core/primitives/index.d.ts.map +1 -1
  60. package/dist/tbv/core/primitives/index.js +37 -38
  61. package/dist/tbv/core/primitives/psbt/__tests__/assertPayoutFeeBand.test.d.ts +7 -0
  62. package/dist/tbv/core/primitives/psbt/__tests__/assertPayoutFeeBand.test.d.ts.map +1 -0
  63. package/dist/tbv/core/primitives/psbt/assertPayoutFeeBand.d.ts +63 -0
  64. package/dist/tbv/core/primitives/psbt/assertPayoutFeeBand.d.ts.map +1 -0
  65. package/dist/tbv/core/primitives/psbt/assertWasmPeginSizing.d.ts +4 -1
  66. package/dist/tbv/core/primitives/psbt/assertWasmPeginSizing.d.ts.map +1 -1
  67. package/dist/tbv/core/primitives/psbt/constants.d.ts +18 -4
  68. package/dist/tbv/core/primitives/psbt/constants.d.ts.map +1 -1
  69. package/dist/tbv/core/primitives/psbt/payout.d.ts +21 -2
  70. package/dist/tbv/core/primitives/psbt/payout.d.ts.map +1 -1
  71. package/dist/tbv/core/primitives/psbt/pegin.d.ts +6 -0
  72. package/dist/tbv/core/primitives/psbt/pegin.d.ts.map +1 -1
  73. package/dist/tbv/core/services/deposit/runDepositorPresignFlow.d.ts +12 -0
  74. package/dist/tbv/core/services/deposit/runDepositorPresignFlow.d.ts.map +1 -1
  75. package/dist/tbv/core/services/deposit/signDepositorGraph.d.ts +5 -0
  76. package/dist/tbv/core/services/deposit/signDepositorGraph.d.ts.map +1 -1
  77. package/dist/tbv/core/services/index.cjs +1 -1
  78. package/dist/tbv/core/services/index.js +2 -2
  79. package/dist/tbv/core/utils/__tests__/abortSignals.test.d.ts +11 -0
  80. package/dist/tbv/core/utils/__tests__/abortSignals.test.d.ts.map +1 -0
  81. package/dist/tbv/core/utils/abortSignals.d.ts +23 -0
  82. package/dist/tbv/core/utils/abortSignals.d.ts.map +1 -0
  83. package/dist/tbv/core/utils/index.cjs +1 -1
  84. package/dist/tbv/core/utils/index.d.ts +1 -0
  85. package/dist/tbv/core/utils/index.d.ts.map +1 -1
  86. package/dist/tbv/core/utils/index.js +44 -43
  87. package/dist/tbv/index.cjs +1 -1
  88. package/dist/tbv/index.js +194 -191
  89. package/dist/tbv/integrations/aave/clients/index.d.ts +1 -1
  90. package/dist/tbv/integrations/aave/clients/index.d.ts.map +1 -1
  91. package/dist/tbv/integrations/aave/clients/spoke.d.ts +0 -20
  92. package/dist/tbv/integrations/aave/clients/spoke.d.ts.map +1 -1
  93. package/dist/tbv/integrations/aave/constants.d.ts +0 -22
  94. package/dist/tbv/integrations/aave/constants.d.ts.map +1 -1
  95. package/dist/tbv/integrations/aave/index.cjs +1 -1
  96. package/dist/tbv/integrations/aave/index.cjs.map +1 -1
  97. package/dist/tbv/integrations/aave/index.d.ts +5 -6
  98. package/dist/tbv/integrations/aave/index.d.ts.map +1 -1
  99. package/dist/tbv/integrations/aave/index.js +236 -339
  100. package/dist/tbv/integrations/aave/index.js.map +1 -1
  101. package/dist/tbv/integrations/aave/types.d.ts +0 -7
  102. package/dist/tbv/integrations/aave/types.d.ts.map +1 -1
  103. package/dist/tbv/integrations/aave/utils/healthFactor.d.ts +0 -7
  104. package/dist/tbv/integrations/aave/utils/healthFactor.d.ts.map +1 -1
  105. package/dist/tbv/integrations/aave/utils/index.d.ts +3 -8
  106. package/dist/tbv/integrations/aave/utils/index.d.ts.map +1 -1
  107. package/dist/tbv/integrations/aave/utils/vaultSplit.d.ts +0 -65
  108. package/dist/tbv/integrations/aave/utils/vaultSplit.d.ts.map +1 -1
  109. package/dist/validation-CDbOaDj7.cjs +2 -0
  110. package/dist/validation-CDbOaDj7.cjs.map +1 -0
  111. package/dist/validation-Dj3dqYtl.js +30 -0
  112. package/dist/validation-Dj3dqYtl.js.map +1 -0
  113. package/dist/verifyScriptPathSchnorrSignature-BZhX-SOd.cjs +2 -0
  114. package/dist/verifyScriptPathSchnorrSignature-BZhX-SOd.cjs.map +1 -0
  115. package/dist/verifyScriptPathSchnorrSignature-CgrnAjMW.js +724 -0
  116. package/dist/verifyScriptPathSchnorrSignature-CgrnAjMW.js.map +1 -0
  117. package/package.json +2 -2
  118. package/dist/PayoutManager-BJmPnyRP.js.map +0 -1
  119. package/dist/PayoutManager-aqtsj60t.cjs +0 -2
  120. package/dist/PayoutManager-aqtsj60t.cjs.map +0 -1
  121. package/dist/PeginManager-CW03-M3T.js.map +0 -1
  122. package/dist/PeginManager-C_akOB1E.cjs +0 -2
  123. package/dist/PeginManager-C_akOB1E.cjs.map +0 -1
  124. package/dist/buildAndBroadcastRefund-BiSO4zg2.js.map +0 -1
  125. package/dist/buildAndBroadcastRefund-Bwi1I5we.cjs +0 -2
  126. package/dist/buildAndBroadcastRefund-Bwi1I5we.cjs.map +0 -1
  127. package/dist/challengeAssert-DLQfNcfU.cjs +0 -2
  128. package/dist/challengeAssert-DLQfNcfU.cjs.map +0 -1
  129. package/dist/challengeAssert-DvdbpEDY.js +0 -128
  130. package/dist/challengeAssert-DvdbpEDY.js.map +0 -1
  131. package/dist/constants-CvbARMl-.cjs +0 -2
  132. package/dist/mempoolApi-CB7bHuwi.js.map +0 -1
  133. package/dist/mempoolApi-DqJByvqR.cjs.map +0 -1
  134. package/dist/tbv/core/primitives/psbt/depositorPayout.d.ts +0 -34
  135. package/dist/tbv/core/primitives/psbt/depositorPayout.d.ts.map +0 -1
  136. package/dist/tbv/integrations/aave/utils/__tests__/borrowRatio.test.d.ts +0 -5
  137. package/dist/tbv/integrations/aave/utils/__tests__/borrowRatio.test.d.ts.map +0 -1
  138. package/dist/tbv/integrations/aave/utils/__tests__/seizureSimulation.test.d.ts +0 -5
  139. package/dist/tbv/integrations/aave/utils/__tests__/seizureSimulation.test.d.ts.map +0 -1
  140. package/dist/tbv/integrations/aave/utils/__tests__/vaultSelection.test.d.ts +0 -2
  141. package/dist/tbv/integrations/aave/utils/__tests__/vaultSelection.test.d.ts.map +0 -1
  142. package/dist/tbv/integrations/aave/utils/borrowRatio.d.ts +0 -15
  143. package/dist/tbv/integrations/aave/utils/borrowRatio.d.ts.map +0 -1
  144. package/dist/tbv/integrations/aave/utils/seizureSimulation.d.ts +0 -109
  145. package/dist/tbv/integrations/aave/utils/seizureSimulation.d.ts.map +0 -1
  146. package/dist/tbv/integrations/aave/utils/vaultSelection.d.ts +0 -33
  147. package/dist/tbv/integrations/aave/utils/vaultSelection.d.ts.map +0 -1
  148. package/dist/validation-CxqROCno.js +0 -15
  149. package/dist/validation-CxqROCno.js.map +0 -1
  150. package/dist/validation-u8W7Lp2x.cjs +0 -2
  151. package/dist/validation-u8W7Lp2x.cjs.map +0 -1
  152. package/dist/verifyScriptPathSchnorrSignature-BDznSCOR.cjs +0 -2
  153. package/dist/verifyScriptPathSchnorrSignature-BDznSCOR.cjs.map +0 -1
  154. package/dist/verifyScriptPathSchnorrSignature-DA4Z4yZ3.js +0 -658
  155. package/dist/verifyScriptPathSchnorrSignature-DA4Z4yZ3.js.map +0 -1
@@ -1,2 +1,2 @@
1
- "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const B=require("viem"),E={WITHDRAW_COLLATERALS:"withdrawCollaterals",BORROW:"borrowFromCorePosition",REPAY:"repayToCorePosition",REORDER_VAULTS:"reorderVaults"},te=8,ne=6,ae=100,k=1e4,q=26,H=53,G=18,W=1.5,ie=1.05,re=200n,C=JSON.parse('[{"type":"constructor","inputs":[{"name":"vaultBTC_","type":"address","internalType":"address"},{"name":"coreSpoke_","type":"address","internalType":"address"},{"name":"btcVaultRegistry_","type":"address","internalType":"address"},{"name":"applicationRegistry_","type":"address","internalType":"address"},{"name":"proxyManager_","type":"address","internalType":"address"},{"name":"coreVaultBtcReserveId_","type":"uint256","internalType":"uint256"},{"name":"coreWbtcReserveId_","type":"uint256","internalType":"uint256"},{"name":"protocolParams_","type":"address","internalType":"address"},{"name":"llpRegistry_","type":"address","internalType":"address"}],"stateMutability":"nonpayable"},{"type":"function","name":"APP_REGISTRY","inputs":[],"outputs":[{"name":"","type":"address","internalType":"contract IApplicationRegistry"}],"stateMutability":"view"},{"type":"function","name":"BTC_VAULT_CORE_SPOKE","inputs":[],"outputs":[{"name":"","type":"address","internalType":"contract ITBVAaveSpoke"}],"stateMutability":"view"},{"type":"function","name":"VAULT_BTC_RESERVE_ID","inputs":[],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"WBTC_RESERVE_ID","inputs":[],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"BTC_VAULT_REGISTRY","inputs":[],"outputs":[{"name":"","type":"address","internalType":"contract IBTCVaultRegistry"}],"stateMutability":"view"},{"type":"function","name":"DEFAULT_ADMIN_ROLE","inputs":[],"outputs":[{"name":"","type":"bytes32","internalType":"bytes32"}],"stateMutability":"view"},{"type":"function","name":"TIMELOCK_UPGRADER","inputs":[],"outputs":[{"name":"","type":"bytes32","internalType":"bytes32"}],"stateMutability":"view"},{"type":"function","name":"UPGRADE_INTERFACE_VERSION","inputs":[],"outputs":[{"name":"","type":"string","internalType":"string"}],"stateMutability":"view"},{"type":"function","name":"VAULT_BTC","inputs":[],"outputs":[{"name":"","type":"address","internalType":"contract IVaultBTC"}],"stateMutability":"view"},{"type":"function","name":"activateVault","inputs":[{"name":"vaultId","type":"bytes32","internalType":"bytes32"},{"name":"vault","type":"tuple","internalType":"struct IBTCVaultRegistry.BTCVault","components":[{"name":"depositor","type":"address","internalType":"address"},{"name":"depositorBtcPubKey","type":"bytes32","internalType":"bytes32"},{"name":"depositorSignedPeginTx","type":"bytes","internalType":"bytes"},{"name":"amount","type":"uint256","internalType":"uint256"},{"name":"vaultProvider","type":"address","internalType":"address"},{"name":"status","type":"uint8","internalType":"enum IBTCVaultRegistry.BTCVaultStatus"},{"name":"applicationEntryPoint","type":"address","internalType":"address"},{"name":"universalChallengersVersion","type":"uint16","internalType":"uint16"},{"name":"appVaultKeepersVersion","type":"uint16","internalType":"uint16"},{"name":"offchainParamsVersion","type":"uint16","internalType":"uint16"},{"name":"createdAt","type":"uint256","internalType":"uint256"},{"name":"verifiedAt","type":"uint256","internalType":"uint256"},{"name":"depositorWotsPkHash","type":"bytes32","internalType":"bytes32"},{"name":"hashlock","type":"bytes32","internalType":"bytes32"},{"name":"htlcVout","type":"uint8","internalType":"uint8"},{"name":"depositorPopSignature","type":"bytes","internalType":"bytes"},{"name":"prePeginTxHash","type":"bytes32","internalType":"bytes32"}]},{"name":"activationMetadata","type":"bytes","internalType":"bytes"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"applicationRecipient","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"borrowFromCorePosition","inputs":[{"name":"debtReserveId","type":"uint256","internalType":"uint256"},{"name":"amount","type":"uint256","internalType":"uint256"},{"name":"receiver","type":"address","internalType":"address"}],"outputs":[{"name":"borrowedShares","type":"uint256","internalType":"uint256"},{"name":"borrowedAmount","type":"uint256","internalType":"uint256"}],"stateMutability":"nonpayable"},{"type":"function","name":"freeze","inputs":[],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"fullPause","inputs":[],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"getFairnessPaymentTokenConfig","inputs":[],"outputs":[{"name":"reserveId","type":"uint256","internalType":"uint256"},{"name":"token","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"getInterestFeeIndex","inputs":[{"name":"reserveId","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"interestFeeIndex","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"getPosition","inputs":[{"name":"user","type":"address","internalType":"address"}],"outputs":[{"name":"position","type":"tuple","internalType":"struct IAaveIntegrationAdapter.MarketPosition","components":[{"name":"vaultIds","type":"bytes32[]","internalType":"bytes32[]"},{"name":"totalCollateralBTC","type":"uint256","internalType":"uint256"},{"name":"proxyContract","type":"address","internalType":"address"}]}],"stateMutability":"view"},{"type":"function","name":"getPositionSizeParams","inputs":[],"outputs":[{"name":"maxPositionBTC","type":"uint256","internalType":"uint256"},{"name":"maxVaultsPerPosition","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"getRoleAdmin","inputs":[{"name":"role","type":"bytes32","internalType":"bytes32"}],"outputs":[{"name":"","type":"bytes32","internalType":"bytes32"}],"stateMutability":"view"},{"type":"function","name":"getVaultUsageStatus","inputs":[{"name":"vaultId","type":"bytes32","internalType":"bytes32"}],"outputs":[{"name":"status","type":"uint8","internalType":"enum AaveVaultHandler.VaultUsageStatus"}],"stateMutability":"view"},{"type":"function","name":"grantRole","inputs":[{"name":"role","type":"bytes32","internalType":"bytes32"},{"name":"account","type":"address","internalType":"address"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"hasRole","inputs":[{"name":"role","type":"bytes32","internalType":"bytes32"},{"name":"account","type":"address","internalType":"address"}],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"view"},{"type":"function","name":"initialize","inputs":[{"name":"initialTBVAdmin","type":"address","internalType":"address"},{"name":"_applicationRecipient","type":"address","internalType":"address"},{"name":"_liquidationRedemptionFeeBps","type":"uint256","internalType":"uint256"},{"name":"_initialInterestFeeBps","type":"uint256","internalType":"uint256"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"interestFeeBps","inputs":[],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"isValidPositionResolver","inputs":[{"name":"resolver","type":"address","internalType":"address"}],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"view"},{"type":"function","name":"liquidate","inputs":[{"name":"borrower","type":"address","internalType":"address"},{"name":"directBtcRedeemKey","type":"bytes32","internalType":"bytes32"},{"name":"amounts","type":"uint256[]","internalType":"uint256[]"},{"name":"priorityOrder","type":"uint256[]","internalType":"uint256[]"}],"outputs":[{"name":"vaultIds","type":"bytes32[]","internalType":"bytes32[]"}],"stateMutability":"nonpayable"},{"type":"function","name":"liquidateWithLLP","inputs":[{"name":"borrower","type":"address","internalType":"address"},{"name":"llp","type":"address","internalType":"address"},{"name":"amounts","type":"uint256[]","internalType":"uint256[]"},{"name":"priorityOrder","type":"uint256[]","internalType":"uint256[]"},{"name":"requestedTokens","type":"tuple[]","internalType":"struct TokenAmountLib.TokenAmount[]","components":[{"name":"token","type":"address","internalType":"address"},{"name":"amount","type":"uint256","internalType":"uint256"}]}],"outputs":[{"name":"vaultIds","type":"bytes32[]","internalType":"bytes32[]"}],"stateMutability":"nonpayable"},{"type":"function","name":"liquidationRedemptionFeeBps","inputs":[],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"pauseState","inputs":[],"outputs":[{"name":"","type":"uint8","internalType":"enum ITBVPausable.PauseState"}],"stateMutability":"view"},{"type":"function","name":"proxiableUUID","inputs":[],"outputs":[{"name":"","type":"bytes32","internalType":"bytes32"}],"stateMutability":"view"},{"type":"function","name":"redeemVaultFromLLP","inputs":[{"name":"vaultId","type":"bytes32","internalType":"bytes32"},{"name":"btcRedeemKey","type":"bytes32","internalType":"bytes32"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"registerResolver","inputs":[{"name":"resolver","type":"address","internalType":"address"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"removeResolver","inputs":[{"name":"resolver","type":"address","internalType":"address"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"renounceRole","inputs":[{"name":"role","type":"bytes32","internalType":"bytes32"},{"name":"account","type":"address","internalType":"address"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"reorderVaults","inputs":[{"name":"permuted","type":"bytes32[]","internalType":"bytes32[]"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"repayToCorePosition","inputs":[{"name":"borrower","type":"address","internalType":"address"},{"name":"debtReserveId","type":"uint256","internalType":"uint256"},{"name":"amount","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"repaidFee","type":"uint256","internalType":"uint256"},{"name":"repaidShares","type":"uint256","internalType":"uint256"},{"name":"repaidAmount","type":"uint256","internalType":"uint256"}],"stateMutability":"nonpayable"},{"type":"function","name":"revokeRole","inputs":[{"name":"role","type":"bytes32","internalType":"bytes32"},{"name":"account","type":"address","internalType":"address"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"setApplicationRecipient","inputs":[{"name":"_applicationRecipient","type":"address","internalType":"address"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"setInterestFeeBps","inputs":[{"name":"feeBps","type":"uint256","internalType":"uint256"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"setLiquidationRedemptionFeeBps","inputs":[{"name":"feeBps","type":"uint256","internalType":"uint256"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"setPositionSizeParams","inputs":[{"name":"params","type":"tuple","internalType":"struct IAaveIntegrationAdapter.PositionSizeParams","components":[{"name":"maxPositionBTC","type":"uint256","internalType":"uint256"},{"name":"maxVaultsPerPosition","type":"uint256","internalType":"uint256"}]}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"supportsInterface","inputs":[{"name":"interfaceId","type":"bytes4","internalType":"bytes4"}],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"view"},{"type":"function","name":"unfreeze","inputs":[],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"unpause","inputs":[],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"upgradeToAndCall","inputs":[{"name":"newImplementation","type":"address","internalType":"address"},{"name":"data","type":"bytes","internalType":"bytes"}],"outputs":[],"stateMutability":"payable"},{"type":"function","name":"vaultOwner","inputs":[{"name":"","type":"bytes32","internalType":"bytes32"}],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"withdrawCollaterals","inputs":[{"name":"vaultsToWithdraw","type":"bytes32[]","internalType":"bytes32[]"}],"outputs":[{"name":"amountWithdrawn","type":"uint256","internalType":"uint256"}],"stateMutability":"nonpayable"},{"type":"event","name":"AdapterApplicationRecipientUpdated","inputs":[{"name":"applicationFeeRecipient","type":"address","indexed":false,"internalType":"address"}],"anonymous":false},{"type":"event","name":"AdapterLiquidationRedemptionFeeUpdated","inputs":[{"name":"liquidationRedemptionFeeBps","type":"uint256","indexed":false,"internalType":"uint256"}],"anonymous":false},{"type":"event","name":"AdapterPositionResolverAdded","inputs":[{"name":"positionResolver","type":"address","indexed":true,"internalType":"address"}],"anonymous":false},{"type":"event","name":"AdapterPositionResolverRemoved","inputs":[{"name":"positionResolver","type":"address","indexed":true,"internalType":"address"}],"anonymous":false},{"type":"event","name":"BTCVaultCoreSpokeLiquidated","inputs":[{"name":"depositor","type":"address","indexed":true,"internalType":"address"},{"name":"liquidator","type":"address","indexed":true,"internalType":"address"},{"name":"amountCollateralSeized","type":"uint256","indexed":false,"internalType":"uint256"},{"name":"valueCollateralSeized","type":"uint256","indexed":false,"internalType":"uint256"},{"name":"valueDebtRepaid","type":"uint256","indexed":false,"internalType":"uint256"}],"anonymous":false},{"type":"event","name":"BorrowedFromPosition","inputs":[{"name":"borrower","type":"address","indexed":true,"internalType":"address"},{"name":"debtReserveId","type":"uint256","indexed":true,"internalType":"uint256"},{"name":"receiver","type":"address","indexed":true,"internalType":"address"},{"name":"borrowAmount","type":"uint256","indexed":false,"internalType":"uint256"}],"anonymous":false},{"type":"event","name":"CollateralAdded","inputs":[{"name":"positionAccount","type":"address","indexed":true,"internalType":"address"},{"name":"vaultId","type":"bytes32","indexed":true,"internalType":"bytes32"}],"anonymous":false},{"type":"event","name":"CollateralWithdrawn","inputs":[{"name":"positionAccount","type":"address","indexed":true,"internalType":"address"},{"name":"vaultId","type":"bytes32","indexed":true,"internalType":"bytes32"}],"anonymous":false},{"type":"event","name":"FairnessPaymentFailed","inputs":[{"name":"positionAccount","type":"address","indexed":true,"internalType":"address"},{"name":"liquidator","type":"address","indexed":true,"internalType":"address"},{"name":"protocolRecipient","type":"address","indexed":false,"internalType":"address"},{"name":"amount","type":"uint256","indexed":false,"internalType":"uint256"}],"anonymous":false},{"type":"event","name":"FairnessPaymentPaid","inputs":[{"name":"positionAccount","type":"address","indexed":true,"internalType":"address"},{"name":"liquidator","type":"address","indexed":true,"internalType":"address"},{"name":"amount","type":"uint256","indexed":false,"internalType":"uint256"}],"anonymous":false},{"type":"event","name":"Initialized","inputs":[{"name":"version","type":"uint8","indexed":false,"internalType":"uint8"}],"anonymous":false},{"type":"event","name":"InterestFeeUpdated","inputs":[{"name":"newInterestFeeBps","type":"uint256","indexed":false,"internalType":"uint256"}],"anonymous":false},{"type":"event","name":"LiquidationSettledViaLLP","inputs":[{"name":"llp","type":"address","indexed":true,"internalType":"address"},{"name":"liquidator","type":"address","indexed":true,"internalType":"address"},{"name":"borrower","type":"address","indexed":true,"internalType":"address"},{"name":"vaultIds","type":"bytes32[]","indexed":false,"internalType":"bytes32[]"},{"name":"payouts","type":"tuple[]","indexed":false,"internalType":"struct TokenAmountLib.TokenAmount[]","components":[{"name":"token","type":"address","internalType":"address"},{"name":"amount","type":"uint256","internalType":"uint256"}]}],"anonymous":false},{"type":"event","name":"PausedWith","inputs":[{"name":"state","type":"uint8","indexed":true,"internalType":"enum ITBVPausable.PauseState"},{"name":"pauser","type":"address","indexed":true,"internalType":"address"}],"anonymous":false},{"type":"event","name":"PositionSizeParamsUpdated","inputs":[{"name":"newParams","type":"tuple","indexed":false,"internalType":"struct IAaveIntegrationAdapter.PositionSizeParams","components":[{"name":"maxPositionBTC","type":"uint256","internalType":"uint256"},{"name":"maxVaultsPerPosition","type":"uint256","internalType":"uint256"}]}],"anonymous":false},{"type":"event","name":"RepaidFromPosition","inputs":[{"name":"borrower","type":"address","indexed":true,"internalType":"address"},{"name":"debtReserveId","type":"uint256","indexed":true,"internalType":"uint256"},{"name":"repayAmount","type":"uint256","indexed":false,"internalType":"uint256"}],"anonymous":false},{"type":"event","name":"RoleAdminChanged","inputs":[{"name":"role","type":"bytes32","indexed":true,"internalType":"bytes32"},{"name":"previousAdminRole","type":"bytes32","indexed":true,"internalType":"bytes32"},{"name":"newAdminRole","type":"bytes32","indexed":true,"internalType":"bytes32"}],"anonymous":false},{"type":"event","name":"RoleGranted","inputs":[{"name":"role","type":"bytes32","indexed":true,"internalType":"bytes32"},{"name":"account","type":"address","indexed":true,"internalType":"address"},{"name":"sender","type":"address","indexed":true,"internalType":"address"}],"anonymous":false},{"type":"event","name":"RoleRevoked","inputs":[{"name":"role","type":"bytes32","indexed":true,"internalType":"bytes32"},{"name":"account","type":"address","indexed":true,"internalType":"address"},{"name":"sender","type":"address","indexed":true,"internalType":"address"}],"anonymous":false},{"type":"event","name":"Unfrozen","inputs":[{"name":"pauser","type":"address","indexed":true,"internalType":"address"}],"anonymous":false},{"type":"event","name":"Unpaused","inputs":[{"name":"pauser","type":"address","indexed":true,"internalType":"address"}],"anonymous":false},{"type":"event","name":"Upgraded","inputs":[{"name":"implementation","type":"address","indexed":true,"internalType":"address"}],"anonymous":false},{"type":"event","name":"UserProxyCreated","inputs":[{"name":"user","type":"address","indexed":true,"internalType":"address"},{"name":"proxy","type":"address","indexed":true,"internalType":"address"}],"anonymous":false},{"type":"event","name":"VaultLiquidated","inputs":[{"name":"vaultId","type":"bytes32","indexed":true,"internalType":"bytes32"},{"name":"liquidator","type":"address","indexed":false,"internalType":"address"}],"anonymous":false},{"type":"event","name":"VaultMarkedCollateralized","inputs":[{"name":"vaultId","type":"bytes32","indexed":true,"internalType":"bytes32"}],"anonymous":false},{"type":"event","name":"VaultMarkedLLPOwned","inputs":[{"name":"vaultId","type":"bytes32","indexed":true,"internalType":"bytes32"}],"anonymous":false},{"type":"event","name":"VaultMarkedRedeemed","inputs":[{"name":"vaultId","type":"bytes32","indexed":true,"internalType":"bytes32"}],"anonymous":false},{"type":"event","name":"VaultOwnershipChanged","inputs":[{"name":"vaultId","type":"bytes32","indexed":true,"internalType":"bytes32"},{"name":"newOwner","type":"address","indexed":true,"internalType":"address"}],"anonymous":false},{"type":"event","name":"VaultsReordered","inputs":[{"name":"borrower","type":"address","indexed":true,"internalType":"address"},{"name":"newVaults","type":"bytes32[]","indexed":false,"internalType":"bytes32[]"}],"anonymous":false},{"type":"error","name":"AddressEmptyCode","inputs":[{"name":"target","type":"address","internalType":"address"}]},{"type":"error","name":"ERC1967InvalidImplementation","inputs":[{"name":"implementation","type":"address","internalType":"address"}]},{"type":"error","name":"ERC1967NonPayable","inputs":[]},{"type":"error","name":"EmptyArray","inputs":[]},{"type":"error","name":"FailedCall","inputs":[]},{"type":"error","name":"FairnessDebtRepaymentTargetNotMet","inputs":[{"name":"target","type":"uint256","internalType":"uint256"},{"name":"actual","type":"uint256","internalType":"uint256"}]},{"type":"error","name":"IncompleteWithdrawal","inputs":[{"name":"expected","type":"uint256","internalType":"uint256"},{"name":"actual","type":"uint256","internalType":"uint256"}]},{"type":"error","name":"InvalidActivationMetadataVersion","inputs":[]},{"type":"error","name":"InvalidAmount","inputs":[]},{"type":"error","name":"InvalidAmountsLength","inputs":[{"name":"amountsLength","type":"uint256","internalType":"uint256"},{"name":"reserveCount","type":"uint256","internalType":"uint256"}]},{"type":"error","name":"InvalidInterestFeeBps","inputs":[]},{"type":"error","name":"InvalidOraclePrice","inputs":[]},{"type":"error","name":"InvalidPositionResolver","inputs":[]},{"type":"error","name":"InvalidPriorityOrderLength","inputs":[{"name":"priorityOrderLength","type":"uint256","internalType":"uint256"},{"name":"amountsLength","type":"uint256","internalType":"uint256"}]},{"type":"error","name":"InvalidProxyContract","inputs":[]},{"type":"error","name":"InvalidReserveId","inputs":[{"name":"reserveId","type":"uint256","internalType":"uint256"}]},{"type":"error","name":"InvalidVaultStatus","inputs":[]},{"type":"error","name":"InvalidVaultsPermutation","inputs":[]},{"type":"error","name":"InvalidVaultsToRemove","inputs":[]},{"type":"error","name":"LLPDisabled","inputs":[{"name":"llp","type":"address","internalType":"address"}]},{"type":"error","name":"MaxPositionBelowVaultMin","inputs":[{"name":"maxPositionBTC","type":"uint256","internalType":"uint256"},{"name":"minimumPegInAmount","type":"uint256","internalType":"uint256"}]},{"type":"error","name":"NoDebtToLiquidate","inputs":[]},{"type":"error","name":"OnlyApplicationEntryPoint","inputs":[]},{"type":"error","name":"PositionAboveMaximum","inputs":[{"name":"actual","type":"uint256","internalType":"uint256"},{"name":"maximum","type":"uint256","internalType":"uint256"}]},{"type":"error","name":"PositionMaxBelowVaultMax","inputs":[{"name":"maxPositionBTC","type":"uint256","internalType":"uint256"},{"name":"vaultMaximum","type":"uint256","internalType":"uint256"}]},{"type":"error","name":"PositionNotLiquidatable","inputs":[]},{"type":"error","name":"PrefixLengthExceedsArray","inputs":[]},{"type":"error","name":"SafeERC20FailedOperation","inputs":[{"name":"token","type":"address","internalType":"address"}]},{"type":"error","name":"TBV_AlreadyFrozen","inputs":[]},{"type":"error","name":"TBV_AlreadyPaused","inputs":[]},{"type":"error","name":"TBV_Frozen","inputs":[]},{"type":"error","name":"TBV_NotFrozen","inputs":[]},{"type":"error","name":"TBV_NotPaused","inputs":[]},{"type":"error","name":"TBV_Paused","inputs":[]},{"type":"error","name":"TBV_Unauthorized","inputs":[]},{"type":"error","name":"UUPSUnauthorizedCallContext","inputs":[]},{"type":"error","name":"UUPSUnsupportedProxiableUUID","inputs":[{"name":"slot","type":"bytes32","internalType":"bytes32"}]},{"type":"error","name":"Unauthorized","inputs":[]},{"type":"error","name":"VaultCountExceedsMaximum","inputs":[{"name":"actual","type":"uint256","internalType":"uint256"},{"name":"maximum","type":"uint256","internalType":"uint256"}]},{"type":"error","name":"ZeroAddress","inputs":[]},{"type":"error","name":"ZeroAmount","inputs":[]},{"type":"error","name":"ZeroBorrowAmount","inputs":[]},{"type":"error","name":"ZeroBtcKey","inputs":[]}]');async function se(e,t,n){const i=await e.readContract({address:t,abi:C,functionName:"getPosition",args:[n]});return i.proxyContract===B.zeroAddress?null:{proxyContract:i.proxyContract,vaultIds:i.vaultIds,totalCollateralBTC:i.totalCollateralBTC}}async function ue(e,t){const n=await e.readContract({address:t,abi:C,functionName:"getPositionSizeParams"}),[a,i]=n;return{maxPositionBTC:a,maxVaultsPerPosition:i}}function K(e){return e.drawnShares>0n||e.premiumShares>0n}const v=JSON.parse('[{"type":"function","name":"DOMAIN_SEPARATOR","inputs":[],"outputs":[{"name":"","type":"bytes32","internalType":"bytes32"}],"stateMutability":"view"},{"type":"function","name":"ORACLE","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"SET_USER_POSITION_MANAGER_TYPEHASH","inputs":[],"outputs":[{"name":"","type":"bytes32","internalType":"bytes32"}],"stateMutability":"view"},{"type":"function","name":"addDynamicReserveConfig","inputs":[{"name":"reserveId","type":"uint256","internalType":"uint256"},{"name":"dynamicConfig","type":"tuple","internalType":"struct ITBVAaveSpoke.DynamicReserveConfig","components":[{"name":"collateralFactor","type":"uint16","internalType":"uint16"},{"name":"maxLiquidationBonus","type":"uint32","internalType":"uint32"},{"name":"liquidationFee","type":"uint16","internalType":"uint16"}]}],"outputs":[{"name":"dynamicConfigKey","type":"uint32","internalType":"uint32"}],"stateMutability":"nonpayable"},{"type":"function","name":"addReserve","inputs":[{"name":"hub","type":"address","internalType":"address"},{"name":"assetId","type":"uint256","internalType":"uint256"},{"name":"priceSource","type":"address","internalType":"address"},{"name":"config","type":"tuple","internalType":"struct ITBVAaveSpoke.ReserveConfig","components":[{"name":"collateralRisk","type":"uint24","internalType":"uint24"},{"name":"paused","type":"bool","internalType":"bool"},{"name":"frozen","type":"bool","internalType":"bool"},{"name":"borrowable","type":"bool","internalType":"bool"},{"name":"receiveSharesEnabled","type":"bool","internalType":"bool"}]},{"name":"dynamicConfig","type":"tuple","internalType":"struct ITBVAaveSpoke.DynamicReserveConfig","components":[{"name":"collateralFactor","type":"uint16","internalType":"uint16"},{"name":"maxLiquidationBonus","type":"uint32","internalType":"uint32"},{"name":"liquidationFee","type":"uint16","internalType":"uint16"}]}],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"nonpayable"},{"type":"function","name":"borrow","inputs":[{"name":"reserveId","type":"uint256","internalType":"uint256"},{"name":"amount","type":"uint256","internalType":"uint256"},{"name":"onBehalfOf","type":"address","internalType":"address"}],"outputs":[{"name":"","type":"uint256","internalType":"uint256"},{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"nonpayable"},{"type":"function","name":"getDynamicReserveConfig","inputs":[{"name":"reserveId","type":"uint256","internalType":"uint256"},{"name":"dynamicConfigKey","type":"uint32","internalType":"uint32"}],"outputs":[{"name":"","type":"tuple","internalType":"struct ITBVAaveSpoke.DynamicReserveConfig","components":[{"name":"collateralFactor","type":"uint16","internalType":"uint16"},{"name":"maxLiquidationBonus","type":"uint32","internalType":"uint32"},{"name":"liquidationFee","type":"uint16","internalType":"uint16"}]}],"stateMutability":"view"},{"type":"function","name":"getLiquidationBonus","inputs":[{"name":"reserveId","type":"uint256","internalType":"uint256"},{"name":"user","type":"address","internalType":"address"},{"name":"healthFactor","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"getLiquidationConfig","inputs":[],"outputs":[{"name":"","type":"tuple","internalType":"struct ITBVAaveSpoke.LiquidationConfig","components":[{"name":"targetHealthFactor","type":"uint128","internalType":"uint128"},{"name":"healthFactorForMaxBonus","type":"uint64","internalType":"uint64"},{"name":"liquidationBonusFactor","type":"uint16","internalType":"uint16"}]}],"stateMutability":"view"},{"type":"function","name":"getLiquidationLogic","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"pure"},{"type":"function","name":"getReserve","inputs":[{"name":"reserveId","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"","type":"tuple","internalType":"struct ITBVAaveSpoke.Reserve","components":[{"name":"underlying","type":"address","internalType":"address"},{"name":"hub","type":"address","internalType":"address"},{"name":"assetId","type":"uint16","internalType":"uint16"},{"name":"decimals","type":"uint8","internalType":"uint8"},{"name":"collateralRisk","type":"uint24","internalType":"uint24"},{"name":"flags","type":"uint8","internalType":"ReserveFlags"},{"name":"dynamicConfigKey","type":"uint32","internalType":"uint32"}]}],"stateMutability":"view"},{"type":"function","name":"getReserveConfig","inputs":[{"name":"reserveId","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"","type":"tuple","internalType":"struct ITBVAaveSpoke.ReserveConfig","components":[{"name":"collateralRisk","type":"uint24","internalType":"uint24"},{"name":"paused","type":"bool","internalType":"bool"},{"name":"frozen","type":"bool","internalType":"bool"},{"name":"borrowable","type":"bool","internalType":"bool"},{"name":"receiveSharesEnabled","type":"bool","internalType":"bool"}]}],"stateMutability":"view"},{"type":"function","name":"getReserveCount","inputs":[],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"getReserveDebt","inputs":[{"name":"reserveId","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"","type":"uint256","internalType":"uint256"},{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"getReserveSuppliedAssets","inputs":[{"name":"reserveId","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"getReserveSuppliedShares","inputs":[{"name":"reserveId","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"getReserveTotalDebt","inputs":[{"name":"reserveId","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"getUserAccountData","inputs":[{"name":"user","type":"address","internalType":"address"}],"outputs":[{"name":"","type":"tuple","internalType":"struct ITBVAaveSpoke.UserAccountData","components":[{"name":"riskPremium","type":"uint256","internalType":"uint256"},{"name":"avgCollateralFactor","type":"uint256","internalType":"uint256"},{"name":"healthFactor","type":"uint256","internalType":"uint256"},{"name":"totalCollateralValue","type":"uint256","internalType":"uint256"},{"name":"totalDebtValueRay","type":"uint256","internalType":"uint256"},{"name":"activeCollateralCount","type":"uint256","internalType":"uint256"},{"name":"borrowCount","type":"uint256","internalType":"uint256"}]}],"stateMutability":"view"},{"type":"function","name":"getUserDebt","inputs":[{"name":"reserveId","type":"uint256","internalType":"uint256"},{"name":"user","type":"address","internalType":"address"}],"outputs":[{"name":"","type":"uint256","internalType":"uint256"},{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"getUserPosition","inputs":[{"name":"reserveId","type":"uint256","internalType":"uint256"},{"name":"user","type":"address","internalType":"address"}],"outputs":[{"name":"","type":"tuple","internalType":"struct ITBVAaveSpoke.UserPosition","components":[{"name":"drawnShares","type":"uint120","internalType":"uint120"},{"name":"premiumShares","type":"uint120","internalType":"uint120"},{"name":"premiumOffsetRay","type":"int200","internalType":"int200"},{"name":"suppliedShares","type":"uint120","internalType":"uint120"},{"name":"dynamicConfigKey","type":"uint32","internalType":"uint32"}]}],"stateMutability":"view"},{"type":"function","name":"getUserPremiumDebtRay","inputs":[{"name":"reserveId","type":"uint256","internalType":"uint256"},{"name":"user","type":"address","internalType":"address"}],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"getUserReserveStatus","inputs":[{"name":"reserveId","type":"uint256","internalType":"uint256"},{"name":"user","type":"address","internalType":"address"}],"outputs":[{"name":"","type":"bool","internalType":"bool"},{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"view"},{"type":"function","name":"getUserSuppliedAssets","inputs":[{"name":"reserveId","type":"uint256","internalType":"uint256"},{"name":"user","type":"address","internalType":"address"}],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"getUserSuppliedShares","inputs":[{"name":"reserveId","type":"uint256","internalType":"uint256"},{"name":"user","type":"address","internalType":"address"}],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"getUserTotalDebt","inputs":[{"name":"reserveId","type":"uint256","internalType":"uint256"},{"name":"user","type":"address","internalType":"address"}],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"isPositionManager","inputs":[{"name":"user","type":"address","internalType":"address"},{"name":"positionManager","type":"address","internalType":"address"}],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"view"},{"type":"function","name":"isPositionManagerActive","inputs":[{"name":"positionManager","type":"address","internalType":"address"}],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"view"},{"type":"function","name":"liquidationCall","inputs":[{"name":"collateralReserveId","type":"uint256","internalType":"uint256"},{"name":"debtReserveId","type":"uint256","internalType":"uint256"},{"name":"user","type":"address","internalType":"address"},{"name":"debtToCover","type":"uint256","internalType":"uint256"},{"name":"receiveShares","type":"bool","internalType":"bool"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"permitReserve","inputs":[{"name":"reserveId","type":"uint256","internalType":"uint256"},{"name":"onBehalfOf","type":"address","internalType":"address"},{"name":"value","type":"uint256","internalType":"uint256"},{"name":"deadline","type":"uint256","internalType":"uint256"},{"name":"permitV","type":"uint8","internalType":"uint8"},{"name":"permitR","type":"bytes32","internalType":"bytes32"},{"name":"permitS","type":"bytes32","internalType":"bytes32"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"renouncePositionManagerRole","inputs":[{"name":"user","type":"address","internalType":"address"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"repay","inputs":[{"name":"reserveId","type":"uint256","internalType":"uint256"},{"name":"amount","type":"uint256","internalType":"uint256"},{"name":"onBehalfOf","type":"address","internalType":"address"}],"outputs":[{"name":"","type":"uint256","internalType":"uint256"},{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"nonpayable"},{"type":"function","name":"setUserPositionManager","inputs":[{"name":"positionManager","type":"address","internalType":"address"},{"name":"approve","type":"bool","internalType":"bool"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"setUserPositionManagerWithSig","inputs":[{"name":"positionManager","type":"address","internalType":"address"},{"name":"user","type":"address","internalType":"address"},{"name":"approve","type":"bool","internalType":"bool"},{"name":"nonce","type":"uint256","internalType":"uint256"},{"name":"deadline","type":"uint256","internalType":"uint256"},{"name":"signature","type":"bytes","internalType":"bytes"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"setUsingAsCollateral","inputs":[{"name":"reserveId","type":"uint256","internalType":"uint256"},{"name":"usingAsCollateral","type":"bool","internalType":"bool"},{"name":"onBehalfOf","type":"address","internalType":"address"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"supply","inputs":[{"name":"reserveId","type":"uint256","internalType":"uint256"},{"name":"amount","type":"uint256","internalType":"uint256"},{"name":"onBehalfOf","type":"address","internalType":"address"}],"outputs":[{"name":"","type":"uint256","internalType":"uint256"},{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"nonpayable"},{"type":"function","name":"updateDynamicReserveConfig","inputs":[{"name":"reserveId","type":"uint256","internalType":"uint256"},{"name":"dynamicConfigKey","type":"uint32","internalType":"uint32"},{"name":"dynamicConfig","type":"tuple","internalType":"struct ITBVAaveSpoke.DynamicReserveConfig","components":[{"name":"collateralFactor","type":"uint16","internalType":"uint16"},{"name":"maxLiquidationBonus","type":"uint32","internalType":"uint32"},{"name":"liquidationFee","type":"uint16","internalType":"uint16"}]}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"updateLiquidationConfig","inputs":[{"name":"config","type":"tuple","internalType":"struct ITBVAaveSpoke.LiquidationConfig","components":[{"name":"targetHealthFactor","type":"uint128","internalType":"uint128"},{"name":"healthFactorForMaxBonus","type":"uint64","internalType":"uint64"},{"name":"liquidationBonusFactor","type":"uint16","internalType":"uint16"}]}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"updatePositionManager","inputs":[{"name":"positionManager","type":"address","internalType":"address"},{"name":"active","type":"bool","internalType":"bool"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"updateReserveConfig","inputs":[{"name":"reserveId","type":"uint256","internalType":"uint256"},{"name":"params","type":"tuple","internalType":"struct ITBVAaveSpoke.ReserveConfig","components":[{"name":"collateralRisk","type":"uint24","internalType":"uint24"},{"name":"paused","type":"bool","internalType":"bool"},{"name":"frozen","type":"bool","internalType":"bool"},{"name":"borrowable","type":"bool","internalType":"bool"},{"name":"receiveSharesEnabled","type":"bool","internalType":"bool"}]}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"updateReservePriceSource","inputs":[{"name":"reserveId","type":"uint256","internalType":"uint256"},{"name":"priceSource","type":"address","internalType":"address"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"updateUserDynamicConfig","inputs":[{"name":"onBehalfOf","type":"address","internalType":"address"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"updateUserRiskPremium","inputs":[{"name":"onBehalfOf","type":"address","internalType":"address"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"withdraw","inputs":[{"name":"reserveId","type":"uint256","internalType":"uint256"},{"name":"amount","type":"uint256","internalType":"uint256"},{"name":"onBehalfOf","type":"address","internalType":"address"}],"outputs":[{"name":"","type":"uint256","internalType":"uint256"},{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"nonpayable"},{"type":"error","name":"AssetNotListed","inputs":[]},{"type":"error","name":"ReserveExists","inputs":[]},{"type":"error","name":"InvalidAssetId","inputs":[]},{"type":"error","name":"ReserveNotListed","inputs":[]},{"type":"error","name":"ReserveNotBorrowable","inputs":[]},{"type":"error","name":"ReservePaused","inputs":[]},{"type":"error","name":"ReserveFrozen","inputs":[]},{"type":"error","name":"HealthFactorBelowThreshold","inputs":[]},{"type":"error","name":"CollateralCannotBeLiquidated","inputs":[]},{"type":"error","name":"ReserveNotSupplied","inputs":[]},{"type":"error","name":"ReserveNotBorrowed","inputs":[]},{"type":"error","name":"Unauthorized","inputs":[]},{"type":"error","name":"ConfigKeyUninitialized","inputs":[]},{"type":"error","name":"InactivePositionManager","inputs":[]},{"type":"error","name":"InvalidSignature","inputs":[]},{"type":"error","name":"InvalidAddress","inputs":[]},{"type":"error","name":"InvalidOracleDecimals","inputs":[]},{"type":"error","name":"InvalidCollateralRisk","inputs":[]},{"type":"error","name":"InvalidLiquidationConfig","inputs":[]},{"type":"error","name":"InvalidLiquidationFee","inputs":[]},{"type":"error","name":"InvalidCollateralFactorAndMaxLiquidationBonus","inputs":[]},{"type":"error","name":"InvalidCollateralFactor","inputs":[]},{"type":"error","name":"SelfLiquidation","inputs":[]},{"type":"error","name":"HealthFactorNotBelowThreshold","inputs":[]},{"type":"error","name":"MustNotLeaveDust","inputs":[]},{"type":"error","name":"InvalidDebtToCover","inputs":[]},{"type":"error","name":"CannotReceiveShares","inputs":[]},{"type":"error","name":"MaximumDynamicConfigKeyReached","inputs":[]}]');function L(e){return{drawnShares:e.drawnShares,premiumShares:e.premiumShares,premiumOffsetRay:e.premiumOffsetRay,suppliedShares:e.suppliedShares,dynamicConfigKey:e.dynamicConfigKey}}function Y(e){return{riskPremium:e.riskPremium,avgCollateralFactor:e.avgCollateralFactor,healthFactor:e.healthFactor,totalCollateralValue:e.totalCollateralValue,totalDebtValueRay:e.totalDebtValueRay,activeCollateralCount:e.activeCollateralCount,borrowCount:e.borrowCount}}async function pe(e,t,n){const a=await e.readContract({address:t,abi:v,functionName:"getUserAccountData",args:[n]});return Y(a)}async function oe(e,t,n,a){const[i,r]=await e.multicall({contracts:[{address:t,abi:v,functionName:"getUserPosition",args:[n,a]},{address:t,abi:v,functionName:"getUserAccountData",args:[a]}],allowFailure:!1});return{position:L(i),accountData:Y(r)}}async function O(e,t,n,a){const i=await e.readContract({address:t,abi:v,functionName:"getUserPosition",args:[n,a]});return L(i)}async function ye(e,t,n,a){const i=await O(e,t,n,a);return K(i)}async function le(e,t,n,a){return(await O(e,t,n,a)).suppliedShares>0n}async function de(e,t,n,a){return await e.readContract({address:t,abi:v,functionName:"getUserTotalDebt",args:[n,a]})}async function me(e,t,n,a){return n.length===0?[]:(await e.multicall({contracts:n.map(r=>({address:t,abi:v,functionName:"getUserPosition",args:[r,a]})),allowFailure:!0})).map(r=>r.status==="success"?L(r.result):null)}async function ce(e,t,n,a){return n.length===0?[]:await e.multicall({contracts:n.map(r=>({address:t,abi:v,functionName:"getUserTotalDebt",args:[r,a]})),allowFailure:!1})}async function Te(e,t,n){return await e.readContract({address:t,abi:v,functionName:"getReserve",args:[n]})}async function be(e,t){return(await e.readContract({address:t,abi:v,functionName:"getLiquidationConfig"})).targetHealthFactor}async function fe(e,t,n,a){return await e.readContract({address:t,abi:v,functionName:"getDynamicReserveConfig",args:[n,a]})}const ve=[{type:"function",name:"getReserveTotalDebt",inputs:[{name:"reserveId",type:"uint256",internalType:"uint256"}],outputs:[{name:"totalDebt",type:"uint256",internalType:"uint256"}],stateMutability:"view"}];async function ge(e,t,n){const a=await e.readContract({address:t,abi:ve,functionName:"getReserveTotalDebt",args:[n]});if(typeof a!="bigint")throw new Error(`getReserveTotalDebt returned a non-bigint result for reserve ${n}`);return a}const X=[{inputs:[],name:"decimals",outputs:[{name:"",type:"uint8"}],stateMutability:"view",type:"function"},{inputs:[{name:"reserveIds",type:"uint256[]"}],name:"getReservesPrices",outputs:[{name:"",type:"uint256[]"}],stateMutability:"view",type:"function"},{inputs:[{name:"reserveId",type:"uint256"}],name:"getReserveSource",outputs:[{name:"",type:"address"}],stateMutability:"view",type:"function"},{type:"error",name:"InvalidSource",inputs:[{name:"reserveId",type:"uint256"}]},{type:"error",name:"InvalidPrice",inputs:[{name:"reserveId",type:"uint256"}]}];async function Re(e,t){return await e.readContract({address:t,abi:v,functionName:"ORACLE"})}async function Ae(e,t,n){return await e.readContract({address:t,abi:X,functionName:"getReservesPrices",args:[n]})}async function Ie(e,t,n){if(n.length===0)return[];let a;try{a=await e.multicall({contracts:n.map(i=>({address:t,abi:X,functionName:"getReservesPrices",args:[[i]]})),allowFailure:!0})}catch(i){const r=i instanceof Error?i:new Error(String(i));return n.map(s=>({reserveId:s,priceRaw:null,error:r}))}return a.map((i,r)=>{const s=n[r];if(i.status!=="success"){const o=i.error instanceof Error?i.error:new Error(String(i.error??"getReservesPrices reverted"));return{reserveId:s,priceRaw:null,error:o}}const[p]=i.result;return{reserveId:s,priceRaw:p,error:null}})}const Se=[{type:"function",name:"getAssetDrawnRate",inputs:[{name:"assetId",type:"uint256",internalType:"uint256"}],outputs:[{name:"",type:"uint256",internalType:"uint256"}],stateMutability:"view"}];async function Ce(e,t){if(t.length===0)return[];let n;try{n=await e.multicall({contracts:t.map(({hub:a,assetId:i})=>({address:a,abi:Se,functionName:"getAssetDrawnRate",args:[BigInt(i)]})),allowFailure:!0})}catch(a){const i=a instanceof Error?a:new Error(String(a));return t.map(({hub:r,assetId:s})=>({hub:r,assetId:s,rateRay:null,error:i}))}return n.map((a,i)=>{const{hub:r,assetId:s}=t[i];if(a.status!=="success"){const p=a.error instanceof Error?a.error:new Error(String(a.error??"getAssetDrawnRate reverted"));return{hub:r,assetId:s,rateRay:null,error:p}}return{hub:r,assetId:s,rateRay:a.result,error:null}})}function Me(e,t){const n=B.encodeFunctionData({abi:C,functionName:E.REORDER_VAULTS,args:[t]});return{to:e,data:n}}function we(e,t){const n=B.encodeFunctionData({abi:C,functionName:E.WITHDRAW_COLLATERALS,args:[t]});return{to:e,data:n}}function Pe(e,t,n,a){const i=B.encodeFunctionData({abi:C,functionName:E.BORROW,args:[t,n,a]});return{to:e,data:i}}function he(e,t,n,a){const i=B.encodeFunctionData({abi:C,functionName:E.REPAY,args:[t,n,a]});return{to:e,data:i}}function Be(e){return Number(e)/10**q}function Ee(e){return Number(e)/10**H}function Fe(e){return Number(e)/10**G}function xe(e,t){return t<=0?"0%":`${(e/t*100).toFixed(1)}%`}function Z(e,t){return t?e===null?"safe":e<1?"danger":e<W?"warning":"safe":"no_debt"}function _e(e){return e===null?!0:e>=1}function Ve(e){const t=isFinite(e),n=isFinite(e)?e:null;return Z(n,t)}function De(e,t,n){return t<=0?1/0:e*(n/k)/t}function Le(e,t){if(t<=0)return{vaultIds:[],actualAmount:0};const n=[...e].sort((r,s)=>s.amount-r.amount),a=[];let i=0;for(const r of n){if(i>=t)break;a.push(r.id),i+=r.amount}return{vaultIds:a,actualAmount:i}}function Oe(e){return e.reduce((t,n)=>t+n.amount,0)}const Ue=.01,$=20,J=.01;function Ne(e,t,n){if(e.length===0)return[];const i=e.reduce((p,o)=>p+o.btc,0)*t*(1-n);let r=0,s=0;for(;s<e.length&&r<i;)r+=e[s].btc,s++;return e.slice(0,s)}function ze(e,t,n,a,i,r,s,p,o){const y=p*r,c=n/(t*r),d=t*i,l=Math.max(0,e-d),f=s-y,g=f===0?n:n*((s-o)/f);let R;if(a)R=0;else{const A=l*c/p,I=Math.min(A,n-g);R=Math.max(0,n-g-I)}return{debtAfter:R,btcAfter:Math.max(0,t-e)}}function h(e,t,n,a,i,r,s,p){let o=[...e],y=t;const c=e.reduce((g,R)=>g+R.btc,0);let d=-1,l=0,f=0;for(;o.length>0&&y>J&&f<$;){const g=o.reduce((u,m)=>u+m.btc,0),R=g*n*(1-a);let A=0,I=0;for(;I<o.length&&A<R;)A+=o[I].btc,I++;const w=I>=o.length,{debtAfter:M}=ze(A,g,y,w,n,i,r,s,p);o=o.slice(I),y=M;const P=g-A;l+=P,d<0&&(d=P),f++}return{sumBtcAfterEvents:l,btcAfterG1:d<0?c:d}}const j=17;function ke(e,t,n,a,i,r,s,p){const o=e.length;if(o===0)return{order:[],sumBtcAfterEvents:0,btcAfterG1:0};if(o===1){const u=h(e,t,n,a,i,r,s,p);return{order:[...e],...u}}if(o>j){const u=[...e].sort((T,b)=>b.btc-T.btc),m=h(u,t,n,a,i,r,s,p);return{order:u,...m}}const y=1<<o,c=e.reduce((u,m)=>u+m.btc,0),d=n*(1-a),l=new Float64Array(y);for(let u=1;u<y;u++){const m=u&-u,T=31-Math.clz32(m);l[u]=l[u^m]+e[T].btc}const f=new Float64Array(y),g=new Float64Array(y),R=new Int32Array(y);f.fill(-1/0),R.fill(-1),f[0]=0;const A=1e-9;for(let u=1;u<y;u++){const m=c-l[u];let T=-1/0,b=-1/0,F=-1;for(let S=u;S>0;S=S-1&u){const x=u^S,U=f[x];if(U===-1/0)continue;const ee=c-l[x];if(l[S]<ee*d)continue;const D=U+m,N=x===0?c-l[S]:g[x];(D>T+A||Math.abs(D-T)<=A&&N>b+A)&&(T=D,b=N,F=S)}f[u]=T,g[u]=b,R[u]=F}const I=y-1,w=[];for(let u=I;u>0;){const m=R[u];if(m===-1)break;const T=[];for(let b=0;b<o;b++)m&1<<b&&T.push(e[b]);T.sort((b,F)=>F.btc-b.btc),w.push(T),u^=m}w.reverse();const M=w.flat();if(M.length!==o){console.error(`computeOptimalOrder: DP reconstruction produced ${M.length}/${o} vaults; falling back to largest-first. This indicates a DP-invariant regression.`);const u=[...e].sort((T,b)=>b.btc-T.btc),m=h(u,t,n,a,i,r,s,p);return{order:u,...m}}const P=h(M,t,n,a,i,r,s,p);return{order:M,sumBtcAfterEvents:P.sumBtcAfterEvents,btcAfterG1:P.btcAfterG1}}const qe=BigInt(Number.MAX_SAFE_INTEGER),z=2000n;function _(e,t){if(e>qe)throw new RangeError(`${t} (${e}) exceeds Number.MAX_SAFE_INTEGER; precision would be lost`)}function Q(e,t,n,a){if(a<=0)return{seizedFraction:1,seizedFractionRaw:1/0};const i=t*e;if(n<=i)return{seizedFraction:1,seizedFractionRaw:1/0};const r=e*(n-a)/(n-i)*(t/a);return{seizedFraction:Math.max(0,Math.min(1,r)),seizedFractionRaw:r}}function V(e,t,n,a){return Q(e,t,n,a).seizedFraction}function He(e){const{totalBtc:t,CF:n,LB:a,THF:i,expectedHF:r,safetyMargin:s}=e;if(t<=0n)return{sacrificialVault:0n,protectedVault:0n,seizedFraction:0,targetSeizureBtc:0n};_(t,"totalBtc");const p=V(n,a,i,r),o=Number(t),y=BigInt(Math.ceil(o*p)),c=BigInt(Math.ceil(o*p*s)),d=c>t?t:c,l=t-d;return d>0n&&d<z||l>0n&&l<z?{sacrificialVault:0n,protectedVault:0n,seizedFraction:p,targetSeizureBtc:0n}:{sacrificialVault:d,protectedVault:l,seizedFraction:p,targetSeizureBtc:y}}function Ge(e){const{minPegin:t,seizedFraction:n,safetyMargin:a}=e;_(t,"minPegin");const i=n*a;if(i>=1||i<=0)return 0n;const r=1-i,s=Math.ceil(Number(t)/r),p=Math.ceil(Number(t)/i);return BigInt(Math.max(s,p))}function We(e){const{vaultAmounts:t,CF:n,LB:a,THF:i,expectedHF:r,safetyMargin:s}=e;if(t.length===0)return{needsRebalance:!1,deficit:0n,currentCoverage:0n,targetCoverage:0n};const p=t.reduce((l,f)=>l+f,0n);_(p,"totalBtc");const o=V(n,a,i,r),y=BigInt(Math.ceil(Number(p)*o*s)),c=t[0],d=y>c?y-c:0n;return{needsRebalance:d>0n,deficit:d,currentCoverage:c,targetCoverage:y}}function Ke(e){const{totalCollateralSats:t,CF:n,LB:a,THF:i,expectedHF:r}=e;if(t<=0n)return 0n;_(t,"totalCollateralSats");const s=V(n,a,i,r);return BigInt(Math.ceil(Number(t)*s))}function Ye(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 a=0n,i=t.length;for(let y=0;y<t.length;y++)if(a+=t[y].amountSats,a>=n){i=y+1;break}const r=t.slice(0,i),s=t.slice(i),p=a,o=p>n?p-n:0n;return{seizedVaults:r,protectedVaults:s,overSeizureSats:o,cutoffIndex:i,totalSeizedSats:p}}exports.AAVE_BASE_CURRENCY_DECIMALS=q;exports.AAVE_BASE_CURRENCY_RAY_DECIMALS=H;exports.AAVE_FUNCTION_NAMES=E;exports.AaveIntegrationAdapterABI=C;exports.AaveSpokeABI=v;exports.BPS_SCALE=k;exports.BPS_TO_PERCENT_DIVISOR=ae;exports.BTC_DECIMALS=te;exports.FULL_REPAY_BUFFER_DIVISOR=re;exports.HEALTH_FACTOR_WARNING_THRESHOLD=W;exports.MAX_DP_N=j;exports.MAX_GROUPS=$;exports.MIN_DEBT_THRESHOLD=J;exports.MIN_HEALTH_FACTOR_FOR_BORROW=ie;exports.SEIZURE_TOL=Ue;exports.USDC_DECIMALS=ne;exports.WAD_DECIMALS=G;exports.aaveRayValueToUsd=Ee;exports.aaveValueToUsd=Be;exports.buildBorrowTx=Pe;exports.buildReorderVaultsTx=Me;exports.buildRepayTx=he;exports.buildWithdrawCollateralsTx=we;exports.calculateBorrowRatio=xe;exports.calculateHealthFactor=De;exports.calculateTotalVaultAmount=Oe;exports.checkRebalanceNeeded=We;exports.computeMinDepositForSplit=Ge;exports.computeOptimalOrder=ke;exports.computeOptimalSplit=He;exports.computeSeizedFraction=V;exports.computeSeizedFractionDetailed=Q;exports.computeTargetSeizureSats=Ke;exports.getAssetDrawnRatesSafe=Ce;exports.getDynamicReserveConfig=fe;exports.getGroup1FromOrder=Ne;exports.getHealthFactorStatus=Z;exports.getHealthFactorStatusFromValue=Ve;exports.getOracleAddress=Re;exports.getPosition=se;exports.getPositionReserveTotalDebt=ge;exports.getPositionSizeParams=ue;exports.getReserve=Te;exports.getReservesPrices=Ae;exports.getReservesPricesSafe=Ie;exports.getTargetHealthFactor=be;exports.getUserAccountData=pe;exports.getUserPosition=O;exports.getUserPositionAndAccountData=oe;exports.getUserPositions=me;exports.getUserTotalDebt=de;exports.getUserTotalDebts=ce;exports.hasCollateral=le;exports.hasDebt=ye;exports.hasDebtFromPosition=K;exports.isHealthFactorHealthy=_e;exports.selectVaultsForAmount=Le;exports.simulateCascade=h;exports.simulatePrefixSeizure=Ye;exports.wadToNumber=Fe;
1
+ "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const B=require("viem"),x={WITHDRAW_COLLATERALS:"withdrawCollaterals",BORROW:"borrowFromCorePosition",REPAY:"repayToCorePosition",REORDER_VAULTS:"reorderVaults"},O=1e4,N=26,k=53,j=18,q=1.5,Q=1.05,ee=200n,w=JSON.parse('[{"type":"constructor","inputs":[{"name":"vaultBTC_","type":"address","internalType":"address"},{"name":"coreSpoke_","type":"address","internalType":"address"},{"name":"btcVaultRegistry_","type":"address","internalType":"address"},{"name":"applicationRegistry_","type":"address","internalType":"address"},{"name":"proxyManager_","type":"address","internalType":"address"},{"name":"coreVaultBtcReserveId_","type":"uint256","internalType":"uint256"},{"name":"coreWbtcReserveId_","type":"uint256","internalType":"uint256"},{"name":"protocolParams_","type":"address","internalType":"address"},{"name":"llpRegistry_","type":"address","internalType":"address"}],"stateMutability":"nonpayable"},{"type":"function","name":"APP_REGISTRY","inputs":[],"outputs":[{"name":"","type":"address","internalType":"contract IApplicationRegistry"}],"stateMutability":"view"},{"type":"function","name":"BTC_VAULT_CORE_SPOKE","inputs":[],"outputs":[{"name":"","type":"address","internalType":"contract ITBVAaveSpoke"}],"stateMutability":"view"},{"type":"function","name":"VAULT_BTC_RESERVE_ID","inputs":[],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"WBTC_RESERVE_ID","inputs":[],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"BTC_VAULT_REGISTRY","inputs":[],"outputs":[{"name":"","type":"address","internalType":"contract IBTCVaultRegistry"}],"stateMutability":"view"},{"type":"function","name":"DEFAULT_ADMIN_ROLE","inputs":[],"outputs":[{"name":"","type":"bytes32","internalType":"bytes32"}],"stateMutability":"view"},{"type":"function","name":"TIMELOCK_UPGRADER","inputs":[],"outputs":[{"name":"","type":"bytes32","internalType":"bytes32"}],"stateMutability":"view"},{"type":"function","name":"UPGRADE_INTERFACE_VERSION","inputs":[],"outputs":[{"name":"","type":"string","internalType":"string"}],"stateMutability":"view"},{"type":"function","name":"VAULT_BTC","inputs":[],"outputs":[{"name":"","type":"address","internalType":"contract IVaultBTC"}],"stateMutability":"view"},{"type":"function","name":"activateVault","inputs":[{"name":"vaultId","type":"bytes32","internalType":"bytes32"},{"name":"vault","type":"tuple","internalType":"struct IBTCVaultRegistry.BTCVault","components":[{"name":"depositor","type":"address","internalType":"address"},{"name":"depositorBtcPubKey","type":"bytes32","internalType":"bytes32"},{"name":"depositorSignedPeginTx","type":"bytes","internalType":"bytes"},{"name":"amount","type":"uint256","internalType":"uint256"},{"name":"vaultProvider","type":"address","internalType":"address"},{"name":"status","type":"uint8","internalType":"enum IBTCVaultRegistry.BTCVaultStatus"},{"name":"applicationEntryPoint","type":"address","internalType":"address"},{"name":"universalChallengersVersion","type":"uint16","internalType":"uint16"},{"name":"appVaultKeepersVersion","type":"uint16","internalType":"uint16"},{"name":"offchainParamsVersion","type":"uint16","internalType":"uint16"},{"name":"createdAt","type":"uint256","internalType":"uint256"},{"name":"verifiedAt","type":"uint256","internalType":"uint256"},{"name":"depositorWotsPkHash","type":"bytes32","internalType":"bytes32"},{"name":"hashlock","type":"bytes32","internalType":"bytes32"},{"name":"htlcVout","type":"uint8","internalType":"uint8"},{"name":"depositorPopSignature","type":"bytes","internalType":"bytes"},{"name":"prePeginTxHash","type":"bytes32","internalType":"bytes32"}]},{"name":"activationMetadata","type":"bytes","internalType":"bytes"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"applicationRecipient","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"borrowFromCorePosition","inputs":[{"name":"debtReserveId","type":"uint256","internalType":"uint256"},{"name":"amount","type":"uint256","internalType":"uint256"},{"name":"receiver","type":"address","internalType":"address"}],"outputs":[{"name":"borrowedShares","type":"uint256","internalType":"uint256"},{"name":"borrowedAmount","type":"uint256","internalType":"uint256"}],"stateMutability":"nonpayable"},{"type":"function","name":"freeze","inputs":[],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"fullPause","inputs":[],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"getFairnessPaymentTokenConfig","inputs":[],"outputs":[{"name":"reserveId","type":"uint256","internalType":"uint256"},{"name":"token","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"getInterestFeeIndex","inputs":[{"name":"reserveId","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"interestFeeIndex","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"getPosition","inputs":[{"name":"user","type":"address","internalType":"address"}],"outputs":[{"name":"position","type":"tuple","internalType":"struct IAaveIntegrationAdapter.MarketPosition","components":[{"name":"vaultIds","type":"bytes32[]","internalType":"bytes32[]"},{"name":"totalCollateralBTC","type":"uint256","internalType":"uint256"},{"name":"proxyContract","type":"address","internalType":"address"}]}],"stateMutability":"view"},{"type":"function","name":"getPositionSizeParams","inputs":[],"outputs":[{"name":"maxPositionBTC","type":"uint256","internalType":"uint256"},{"name":"maxVaultsPerPosition","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"getRoleAdmin","inputs":[{"name":"role","type":"bytes32","internalType":"bytes32"}],"outputs":[{"name":"","type":"bytes32","internalType":"bytes32"}],"stateMutability":"view"},{"type":"function","name":"getVaultUsageStatus","inputs":[{"name":"vaultId","type":"bytes32","internalType":"bytes32"}],"outputs":[{"name":"status","type":"uint8","internalType":"enum AaveVaultHandler.VaultUsageStatus"}],"stateMutability":"view"},{"type":"function","name":"grantRole","inputs":[{"name":"role","type":"bytes32","internalType":"bytes32"},{"name":"account","type":"address","internalType":"address"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"hasRole","inputs":[{"name":"role","type":"bytes32","internalType":"bytes32"},{"name":"account","type":"address","internalType":"address"}],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"view"},{"type":"function","name":"initialize","inputs":[{"name":"initialTBVAdmin","type":"address","internalType":"address"},{"name":"_applicationRecipient","type":"address","internalType":"address"},{"name":"_liquidationRedemptionFeeBps","type":"uint256","internalType":"uint256"},{"name":"_initialInterestFeeBps","type":"uint256","internalType":"uint256"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"interestFeeBps","inputs":[],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"isValidPositionResolver","inputs":[{"name":"resolver","type":"address","internalType":"address"}],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"view"},{"type":"function","name":"liquidate","inputs":[{"name":"borrower","type":"address","internalType":"address"},{"name":"directBtcRedeemKey","type":"bytes32","internalType":"bytes32"},{"name":"amounts","type":"uint256[]","internalType":"uint256[]"},{"name":"priorityOrder","type":"uint256[]","internalType":"uint256[]"}],"outputs":[{"name":"vaultIds","type":"bytes32[]","internalType":"bytes32[]"}],"stateMutability":"nonpayable"},{"type":"function","name":"liquidateWithLLP","inputs":[{"name":"borrower","type":"address","internalType":"address"},{"name":"llp","type":"address","internalType":"address"},{"name":"amounts","type":"uint256[]","internalType":"uint256[]"},{"name":"priorityOrder","type":"uint256[]","internalType":"uint256[]"},{"name":"requestedTokens","type":"tuple[]","internalType":"struct TokenAmountLib.TokenAmount[]","components":[{"name":"token","type":"address","internalType":"address"},{"name":"amount","type":"uint256","internalType":"uint256"}]}],"outputs":[{"name":"vaultIds","type":"bytes32[]","internalType":"bytes32[]"}],"stateMutability":"nonpayable"},{"type":"function","name":"liquidationRedemptionFeeBps","inputs":[],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"pauseState","inputs":[],"outputs":[{"name":"","type":"uint8","internalType":"enum ITBVPausable.PauseState"}],"stateMutability":"view"},{"type":"function","name":"proxiableUUID","inputs":[],"outputs":[{"name":"","type":"bytes32","internalType":"bytes32"}],"stateMutability":"view"},{"type":"function","name":"redeemVaultFromLLP","inputs":[{"name":"vaultId","type":"bytes32","internalType":"bytes32"},{"name":"btcRedeemKey","type":"bytes32","internalType":"bytes32"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"registerResolver","inputs":[{"name":"resolver","type":"address","internalType":"address"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"removeResolver","inputs":[{"name":"resolver","type":"address","internalType":"address"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"renounceRole","inputs":[{"name":"role","type":"bytes32","internalType":"bytes32"},{"name":"account","type":"address","internalType":"address"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"reorderVaults","inputs":[{"name":"permuted","type":"bytes32[]","internalType":"bytes32[]"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"repayToCorePosition","inputs":[{"name":"borrower","type":"address","internalType":"address"},{"name":"debtReserveId","type":"uint256","internalType":"uint256"},{"name":"amount","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"repaidFee","type":"uint256","internalType":"uint256"},{"name":"repaidShares","type":"uint256","internalType":"uint256"},{"name":"repaidAmount","type":"uint256","internalType":"uint256"}],"stateMutability":"nonpayable"},{"type":"function","name":"revokeRole","inputs":[{"name":"role","type":"bytes32","internalType":"bytes32"},{"name":"account","type":"address","internalType":"address"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"setApplicationRecipient","inputs":[{"name":"_applicationRecipient","type":"address","internalType":"address"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"setInterestFeeBps","inputs":[{"name":"feeBps","type":"uint256","internalType":"uint256"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"setLiquidationRedemptionFeeBps","inputs":[{"name":"feeBps","type":"uint256","internalType":"uint256"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"setPositionSizeParams","inputs":[{"name":"params","type":"tuple","internalType":"struct IAaveIntegrationAdapter.PositionSizeParams","components":[{"name":"maxPositionBTC","type":"uint256","internalType":"uint256"},{"name":"maxVaultsPerPosition","type":"uint256","internalType":"uint256"}]}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"supportsInterface","inputs":[{"name":"interfaceId","type":"bytes4","internalType":"bytes4"}],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"view"},{"type":"function","name":"unfreeze","inputs":[],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"unpause","inputs":[],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"upgradeToAndCall","inputs":[{"name":"newImplementation","type":"address","internalType":"address"},{"name":"data","type":"bytes","internalType":"bytes"}],"outputs":[],"stateMutability":"payable"},{"type":"function","name":"vaultOwner","inputs":[{"name":"","type":"bytes32","internalType":"bytes32"}],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"withdrawCollaterals","inputs":[{"name":"vaultsToWithdraw","type":"bytes32[]","internalType":"bytes32[]"}],"outputs":[{"name":"amountWithdrawn","type":"uint256","internalType":"uint256"}],"stateMutability":"nonpayable"},{"type":"event","name":"AdapterApplicationRecipientUpdated","inputs":[{"name":"applicationFeeRecipient","type":"address","indexed":false,"internalType":"address"}],"anonymous":false},{"type":"event","name":"AdapterLiquidationRedemptionFeeUpdated","inputs":[{"name":"liquidationRedemptionFeeBps","type":"uint256","indexed":false,"internalType":"uint256"}],"anonymous":false},{"type":"event","name":"AdapterPositionResolverAdded","inputs":[{"name":"positionResolver","type":"address","indexed":true,"internalType":"address"}],"anonymous":false},{"type":"event","name":"AdapterPositionResolverRemoved","inputs":[{"name":"positionResolver","type":"address","indexed":true,"internalType":"address"}],"anonymous":false},{"type":"event","name":"BTCVaultCoreSpokeLiquidated","inputs":[{"name":"depositor","type":"address","indexed":true,"internalType":"address"},{"name":"liquidator","type":"address","indexed":true,"internalType":"address"},{"name":"amountCollateralSeized","type":"uint256","indexed":false,"internalType":"uint256"},{"name":"valueCollateralSeized","type":"uint256","indexed":false,"internalType":"uint256"},{"name":"valueDebtRepaid","type":"uint256","indexed":false,"internalType":"uint256"}],"anonymous":false},{"type":"event","name":"BorrowedFromPosition","inputs":[{"name":"borrower","type":"address","indexed":true,"internalType":"address"},{"name":"debtReserveId","type":"uint256","indexed":true,"internalType":"uint256"},{"name":"receiver","type":"address","indexed":true,"internalType":"address"},{"name":"borrowAmount","type":"uint256","indexed":false,"internalType":"uint256"}],"anonymous":false},{"type":"event","name":"CollateralAdded","inputs":[{"name":"positionAccount","type":"address","indexed":true,"internalType":"address"},{"name":"vaultId","type":"bytes32","indexed":true,"internalType":"bytes32"}],"anonymous":false},{"type":"event","name":"CollateralWithdrawn","inputs":[{"name":"positionAccount","type":"address","indexed":true,"internalType":"address"},{"name":"vaultId","type":"bytes32","indexed":true,"internalType":"bytes32"}],"anonymous":false},{"type":"event","name":"FairnessPaymentFailed","inputs":[{"name":"positionAccount","type":"address","indexed":true,"internalType":"address"},{"name":"liquidator","type":"address","indexed":true,"internalType":"address"},{"name":"protocolRecipient","type":"address","indexed":false,"internalType":"address"},{"name":"amount","type":"uint256","indexed":false,"internalType":"uint256"}],"anonymous":false},{"type":"event","name":"FairnessPaymentPaid","inputs":[{"name":"positionAccount","type":"address","indexed":true,"internalType":"address"},{"name":"liquidator","type":"address","indexed":true,"internalType":"address"},{"name":"amount","type":"uint256","indexed":false,"internalType":"uint256"}],"anonymous":false},{"type":"event","name":"Initialized","inputs":[{"name":"version","type":"uint8","indexed":false,"internalType":"uint8"}],"anonymous":false},{"type":"event","name":"InterestFeeUpdated","inputs":[{"name":"newInterestFeeBps","type":"uint256","indexed":false,"internalType":"uint256"}],"anonymous":false},{"type":"event","name":"LiquidationSettledViaLLP","inputs":[{"name":"llp","type":"address","indexed":true,"internalType":"address"},{"name":"liquidator","type":"address","indexed":true,"internalType":"address"},{"name":"borrower","type":"address","indexed":true,"internalType":"address"},{"name":"vaultIds","type":"bytes32[]","indexed":false,"internalType":"bytes32[]"},{"name":"payouts","type":"tuple[]","indexed":false,"internalType":"struct TokenAmountLib.TokenAmount[]","components":[{"name":"token","type":"address","internalType":"address"},{"name":"amount","type":"uint256","internalType":"uint256"}]}],"anonymous":false},{"type":"event","name":"PausedWith","inputs":[{"name":"state","type":"uint8","indexed":true,"internalType":"enum ITBVPausable.PauseState"},{"name":"pauser","type":"address","indexed":true,"internalType":"address"}],"anonymous":false},{"type":"event","name":"PositionSizeParamsUpdated","inputs":[{"name":"newParams","type":"tuple","indexed":false,"internalType":"struct IAaveIntegrationAdapter.PositionSizeParams","components":[{"name":"maxPositionBTC","type":"uint256","internalType":"uint256"},{"name":"maxVaultsPerPosition","type":"uint256","internalType":"uint256"}]}],"anonymous":false},{"type":"event","name":"RepaidFromPosition","inputs":[{"name":"borrower","type":"address","indexed":true,"internalType":"address"},{"name":"debtReserveId","type":"uint256","indexed":true,"internalType":"uint256"},{"name":"repayAmount","type":"uint256","indexed":false,"internalType":"uint256"}],"anonymous":false},{"type":"event","name":"RoleAdminChanged","inputs":[{"name":"role","type":"bytes32","indexed":true,"internalType":"bytes32"},{"name":"previousAdminRole","type":"bytes32","indexed":true,"internalType":"bytes32"},{"name":"newAdminRole","type":"bytes32","indexed":true,"internalType":"bytes32"}],"anonymous":false},{"type":"event","name":"RoleGranted","inputs":[{"name":"role","type":"bytes32","indexed":true,"internalType":"bytes32"},{"name":"account","type":"address","indexed":true,"internalType":"address"},{"name":"sender","type":"address","indexed":true,"internalType":"address"}],"anonymous":false},{"type":"event","name":"RoleRevoked","inputs":[{"name":"role","type":"bytes32","indexed":true,"internalType":"bytes32"},{"name":"account","type":"address","indexed":true,"internalType":"address"},{"name":"sender","type":"address","indexed":true,"internalType":"address"}],"anonymous":false},{"type":"event","name":"Unfrozen","inputs":[{"name":"pauser","type":"address","indexed":true,"internalType":"address"}],"anonymous":false},{"type":"event","name":"Unpaused","inputs":[{"name":"pauser","type":"address","indexed":true,"internalType":"address"}],"anonymous":false},{"type":"event","name":"Upgraded","inputs":[{"name":"implementation","type":"address","indexed":true,"internalType":"address"}],"anonymous":false},{"type":"event","name":"UserProxyCreated","inputs":[{"name":"user","type":"address","indexed":true,"internalType":"address"},{"name":"proxy","type":"address","indexed":true,"internalType":"address"}],"anonymous":false},{"type":"event","name":"VaultLiquidated","inputs":[{"name":"vaultId","type":"bytes32","indexed":true,"internalType":"bytes32"},{"name":"liquidator","type":"address","indexed":false,"internalType":"address"}],"anonymous":false},{"type":"event","name":"VaultMarkedCollateralized","inputs":[{"name":"vaultId","type":"bytes32","indexed":true,"internalType":"bytes32"}],"anonymous":false},{"type":"event","name":"VaultMarkedLLPOwned","inputs":[{"name":"vaultId","type":"bytes32","indexed":true,"internalType":"bytes32"}],"anonymous":false},{"type":"event","name":"VaultMarkedRedeemed","inputs":[{"name":"vaultId","type":"bytes32","indexed":true,"internalType":"bytes32"}],"anonymous":false},{"type":"event","name":"VaultOwnershipChanged","inputs":[{"name":"vaultId","type":"bytes32","indexed":true,"internalType":"bytes32"},{"name":"newOwner","type":"address","indexed":true,"internalType":"address"}],"anonymous":false},{"type":"event","name":"VaultsReordered","inputs":[{"name":"borrower","type":"address","indexed":true,"internalType":"address"},{"name":"newVaults","type":"bytes32[]","indexed":false,"internalType":"bytes32[]"}],"anonymous":false},{"type":"error","name":"AddressEmptyCode","inputs":[{"name":"target","type":"address","internalType":"address"}]},{"type":"error","name":"ERC1967InvalidImplementation","inputs":[{"name":"implementation","type":"address","internalType":"address"}]},{"type":"error","name":"ERC1967NonPayable","inputs":[]},{"type":"error","name":"EmptyArray","inputs":[]},{"type":"error","name":"FailedCall","inputs":[]},{"type":"error","name":"FairnessDebtRepaymentTargetNotMet","inputs":[{"name":"target","type":"uint256","internalType":"uint256"},{"name":"actual","type":"uint256","internalType":"uint256"}]},{"type":"error","name":"IncompleteWithdrawal","inputs":[{"name":"expected","type":"uint256","internalType":"uint256"},{"name":"actual","type":"uint256","internalType":"uint256"}]},{"type":"error","name":"InvalidActivationMetadataVersion","inputs":[]},{"type":"error","name":"InvalidAmount","inputs":[]},{"type":"error","name":"InvalidAmountsLength","inputs":[{"name":"amountsLength","type":"uint256","internalType":"uint256"},{"name":"reserveCount","type":"uint256","internalType":"uint256"}]},{"type":"error","name":"InvalidInterestFeeBps","inputs":[]},{"type":"error","name":"InvalidOraclePrice","inputs":[]},{"type":"error","name":"InvalidPositionResolver","inputs":[]},{"type":"error","name":"InvalidPriorityOrderLength","inputs":[{"name":"priorityOrderLength","type":"uint256","internalType":"uint256"},{"name":"amountsLength","type":"uint256","internalType":"uint256"}]},{"type":"error","name":"InvalidProxyContract","inputs":[]},{"type":"error","name":"InvalidReserveId","inputs":[{"name":"reserveId","type":"uint256","internalType":"uint256"}]},{"type":"error","name":"InvalidVaultStatus","inputs":[]},{"type":"error","name":"InvalidVaultsPermutation","inputs":[]},{"type":"error","name":"InvalidVaultsToRemove","inputs":[]},{"type":"error","name":"LLPDisabled","inputs":[{"name":"llp","type":"address","internalType":"address"}]},{"type":"error","name":"MaxPositionBelowVaultMin","inputs":[{"name":"maxPositionBTC","type":"uint256","internalType":"uint256"},{"name":"minimumPegInAmount","type":"uint256","internalType":"uint256"}]},{"type":"error","name":"NoDebtToLiquidate","inputs":[]},{"type":"error","name":"OnlyApplicationEntryPoint","inputs":[]},{"type":"error","name":"PositionAboveMaximum","inputs":[{"name":"actual","type":"uint256","internalType":"uint256"},{"name":"maximum","type":"uint256","internalType":"uint256"}]},{"type":"error","name":"PositionMaxBelowVaultMax","inputs":[{"name":"maxPositionBTC","type":"uint256","internalType":"uint256"},{"name":"vaultMaximum","type":"uint256","internalType":"uint256"}]},{"type":"error","name":"PositionNotLiquidatable","inputs":[]},{"type":"error","name":"PrefixLengthExceedsArray","inputs":[]},{"type":"error","name":"SafeERC20FailedOperation","inputs":[{"name":"token","type":"address","internalType":"address"}]},{"type":"error","name":"TBV_AlreadyFrozen","inputs":[]},{"type":"error","name":"TBV_AlreadyPaused","inputs":[]},{"type":"error","name":"TBV_Frozen","inputs":[]},{"type":"error","name":"TBV_NotFrozen","inputs":[]},{"type":"error","name":"TBV_NotPaused","inputs":[]},{"type":"error","name":"TBV_Paused","inputs":[]},{"type":"error","name":"TBV_Unauthorized","inputs":[]},{"type":"error","name":"UUPSUnauthorizedCallContext","inputs":[]},{"type":"error","name":"UUPSUnsupportedProxiableUUID","inputs":[{"name":"slot","type":"bytes32","internalType":"bytes32"}]},{"type":"error","name":"Unauthorized","inputs":[]},{"type":"error","name":"VaultCountExceedsMaximum","inputs":[{"name":"actual","type":"uint256","internalType":"uint256"},{"name":"maximum","type":"uint256","internalType":"uint256"}]},{"type":"error","name":"ZeroAddress","inputs":[]},{"type":"error","name":"ZeroAmount","inputs":[]},{"type":"error","name":"ZeroBorrowAmount","inputs":[]},{"type":"error","name":"ZeroBtcKey","inputs":[]}]');async function te(e,t,n){const i=await e.readContract({address:t,abi:w,functionName:"getPosition",args:[n]});return i.proxyContract===B.zeroAddress?null:{proxyContract:i.proxyContract,vaultIds:i.vaultIds,totalCollateralBTC:i.totalCollateralBTC}}async function ne(e,t){const n=await e.readContract({address:t,abi:w,functionName:"getPositionSizeParams"}),[a,i]=n;return{maxPositionBTC:a,maxVaultsPerPosition:i}}const v=JSON.parse('[{"type":"function","name":"DOMAIN_SEPARATOR","inputs":[],"outputs":[{"name":"","type":"bytes32","internalType":"bytes32"}],"stateMutability":"view"},{"type":"function","name":"ORACLE","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"SET_USER_POSITION_MANAGER_TYPEHASH","inputs":[],"outputs":[{"name":"","type":"bytes32","internalType":"bytes32"}],"stateMutability":"view"},{"type":"function","name":"addDynamicReserveConfig","inputs":[{"name":"reserveId","type":"uint256","internalType":"uint256"},{"name":"dynamicConfig","type":"tuple","internalType":"struct ITBVAaveSpoke.DynamicReserveConfig","components":[{"name":"collateralFactor","type":"uint16","internalType":"uint16"},{"name":"maxLiquidationBonus","type":"uint32","internalType":"uint32"},{"name":"liquidationFee","type":"uint16","internalType":"uint16"}]}],"outputs":[{"name":"dynamicConfigKey","type":"uint32","internalType":"uint32"}],"stateMutability":"nonpayable"},{"type":"function","name":"addReserve","inputs":[{"name":"hub","type":"address","internalType":"address"},{"name":"assetId","type":"uint256","internalType":"uint256"},{"name":"priceSource","type":"address","internalType":"address"},{"name":"config","type":"tuple","internalType":"struct ITBVAaveSpoke.ReserveConfig","components":[{"name":"collateralRisk","type":"uint24","internalType":"uint24"},{"name":"paused","type":"bool","internalType":"bool"},{"name":"frozen","type":"bool","internalType":"bool"},{"name":"borrowable","type":"bool","internalType":"bool"},{"name":"receiveSharesEnabled","type":"bool","internalType":"bool"}]},{"name":"dynamicConfig","type":"tuple","internalType":"struct ITBVAaveSpoke.DynamicReserveConfig","components":[{"name":"collateralFactor","type":"uint16","internalType":"uint16"},{"name":"maxLiquidationBonus","type":"uint32","internalType":"uint32"},{"name":"liquidationFee","type":"uint16","internalType":"uint16"}]}],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"nonpayable"},{"type":"function","name":"borrow","inputs":[{"name":"reserveId","type":"uint256","internalType":"uint256"},{"name":"amount","type":"uint256","internalType":"uint256"},{"name":"onBehalfOf","type":"address","internalType":"address"}],"outputs":[{"name":"","type":"uint256","internalType":"uint256"},{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"nonpayable"},{"type":"function","name":"getDynamicReserveConfig","inputs":[{"name":"reserveId","type":"uint256","internalType":"uint256"},{"name":"dynamicConfigKey","type":"uint32","internalType":"uint32"}],"outputs":[{"name":"","type":"tuple","internalType":"struct ITBVAaveSpoke.DynamicReserveConfig","components":[{"name":"collateralFactor","type":"uint16","internalType":"uint16"},{"name":"maxLiquidationBonus","type":"uint32","internalType":"uint32"},{"name":"liquidationFee","type":"uint16","internalType":"uint16"}]}],"stateMutability":"view"},{"type":"function","name":"getLiquidationBonus","inputs":[{"name":"reserveId","type":"uint256","internalType":"uint256"},{"name":"user","type":"address","internalType":"address"},{"name":"healthFactor","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"getLiquidationConfig","inputs":[],"outputs":[{"name":"","type":"tuple","internalType":"struct ITBVAaveSpoke.LiquidationConfig","components":[{"name":"targetHealthFactor","type":"uint128","internalType":"uint128"},{"name":"healthFactorForMaxBonus","type":"uint64","internalType":"uint64"},{"name":"liquidationBonusFactor","type":"uint16","internalType":"uint16"}]}],"stateMutability":"view"},{"type":"function","name":"getLiquidationLogic","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"pure"},{"type":"function","name":"getReserve","inputs":[{"name":"reserveId","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"","type":"tuple","internalType":"struct ITBVAaveSpoke.Reserve","components":[{"name":"underlying","type":"address","internalType":"address"},{"name":"hub","type":"address","internalType":"address"},{"name":"assetId","type":"uint16","internalType":"uint16"},{"name":"decimals","type":"uint8","internalType":"uint8"},{"name":"collateralRisk","type":"uint24","internalType":"uint24"},{"name":"flags","type":"uint8","internalType":"ReserveFlags"},{"name":"dynamicConfigKey","type":"uint32","internalType":"uint32"}]}],"stateMutability":"view"},{"type":"function","name":"getReserveConfig","inputs":[{"name":"reserveId","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"","type":"tuple","internalType":"struct ITBVAaveSpoke.ReserveConfig","components":[{"name":"collateralRisk","type":"uint24","internalType":"uint24"},{"name":"paused","type":"bool","internalType":"bool"},{"name":"frozen","type":"bool","internalType":"bool"},{"name":"borrowable","type":"bool","internalType":"bool"},{"name":"receiveSharesEnabled","type":"bool","internalType":"bool"}]}],"stateMutability":"view"},{"type":"function","name":"getReserveCount","inputs":[],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"getReserveDebt","inputs":[{"name":"reserveId","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"","type":"uint256","internalType":"uint256"},{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"getReserveSuppliedAssets","inputs":[{"name":"reserveId","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"getReserveSuppliedShares","inputs":[{"name":"reserveId","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"getReserveTotalDebt","inputs":[{"name":"reserveId","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"getUserAccountData","inputs":[{"name":"user","type":"address","internalType":"address"}],"outputs":[{"name":"","type":"tuple","internalType":"struct ITBVAaveSpoke.UserAccountData","components":[{"name":"riskPremium","type":"uint256","internalType":"uint256"},{"name":"avgCollateralFactor","type":"uint256","internalType":"uint256"},{"name":"healthFactor","type":"uint256","internalType":"uint256"},{"name":"totalCollateralValue","type":"uint256","internalType":"uint256"},{"name":"totalDebtValueRay","type":"uint256","internalType":"uint256"},{"name":"activeCollateralCount","type":"uint256","internalType":"uint256"},{"name":"borrowCount","type":"uint256","internalType":"uint256"}]}],"stateMutability":"view"},{"type":"function","name":"getUserDebt","inputs":[{"name":"reserveId","type":"uint256","internalType":"uint256"},{"name":"user","type":"address","internalType":"address"}],"outputs":[{"name":"","type":"uint256","internalType":"uint256"},{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"getUserPosition","inputs":[{"name":"reserveId","type":"uint256","internalType":"uint256"},{"name":"user","type":"address","internalType":"address"}],"outputs":[{"name":"","type":"tuple","internalType":"struct ITBVAaveSpoke.UserPosition","components":[{"name":"drawnShares","type":"uint120","internalType":"uint120"},{"name":"premiumShares","type":"uint120","internalType":"uint120"},{"name":"premiumOffsetRay","type":"int200","internalType":"int200"},{"name":"suppliedShares","type":"uint120","internalType":"uint120"},{"name":"dynamicConfigKey","type":"uint32","internalType":"uint32"}]}],"stateMutability":"view"},{"type":"function","name":"getUserPremiumDebtRay","inputs":[{"name":"reserveId","type":"uint256","internalType":"uint256"},{"name":"user","type":"address","internalType":"address"}],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"getUserReserveStatus","inputs":[{"name":"reserveId","type":"uint256","internalType":"uint256"},{"name":"user","type":"address","internalType":"address"}],"outputs":[{"name":"","type":"bool","internalType":"bool"},{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"view"},{"type":"function","name":"getUserSuppliedAssets","inputs":[{"name":"reserveId","type":"uint256","internalType":"uint256"},{"name":"user","type":"address","internalType":"address"}],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"getUserSuppliedShares","inputs":[{"name":"reserveId","type":"uint256","internalType":"uint256"},{"name":"user","type":"address","internalType":"address"}],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"getUserTotalDebt","inputs":[{"name":"reserveId","type":"uint256","internalType":"uint256"},{"name":"user","type":"address","internalType":"address"}],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"isPositionManager","inputs":[{"name":"user","type":"address","internalType":"address"},{"name":"positionManager","type":"address","internalType":"address"}],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"view"},{"type":"function","name":"isPositionManagerActive","inputs":[{"name":"positionManager","type":"address","internalType":"address"}],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"view"},{"type":"function","name":"liquidationCall","inputs":[{"name":"collateralReserveId","type":"uint256","internalType":"uint256"},{"name":"debtReserveId","type":"uint256","internalType":"uint256"},{"name":"user","type":"address","internalType":"address"},{"name":"debtToCover","type":"uint256","internalType":"uint256"},{"name":"receiveShares","type":"bool","internalType":"bool"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"permitReserve","inputs":[{"name":"reserveId","type":"uint256","internalType":"uint256"},{"name":"onBehalfOf","type":"address","internalType":"address"},{"name":"value","type":"uint256","internalType":"uint256"},{"name":"deadline","type":"uint256","internalType":"uint256"},{"name":"permitV","type":"uint8","internalType":"uint8"},{"name":"permitR","type":"bytes32","internalType":"bytes32"},{"name":"permitS","type":"bytes32","internalType":"bytes32"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"renouncePositionManagerRole","inputs":[{"name":"user","type":"address","internalType":"address"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"repay","inputs":[{"name":"reserveId","type":"uint256","internalType":"uint256"},{"name":"amount","type":"uint256","internalType":"uint256"},{"name":"onBehalfOf","type":"address","internalType":"address"}],"outputs":[{"name":"","type":"uint256","internalType":"uint256"},{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"nonpayable"},{"type":"function","name":"setUserPositionManager","inputs":[{"name":"positionManager","type":"address","internalType":"address"},{"name":"approve","type":"bool","internalType":"bool"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"setUserPositionManagerWithSig","inputs":[{"name":"positionManager","type":"address","internalType":"address"},{"name":"user","type":"address","internalType":"address"},{"name":"approve","type":"bool","internalType":"bool"},{"name":"nonce","type":"uint256","internalType":"uint256"},{"name":"deadline","type":"uint256","internalType":"uint256"},{"name":"signature","type":"bytes","internalType":"bytes"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"setUsingAsCollateral","inputs":[{"name":"reserveId","type":"uint256","internalType":"uint256"},{"name":"usingAsCollateral","type":"bool","internalType":"bool"},{"name":"onBehalfOf","type":"address","internalType":"address"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"supply","inputs":[{"name":"reserveId","type":"uint256","internalType":"uint256"},{"name":"amount","type":"uint256","internalType":"uint256"},{"name":"onBehalfOf","type":"address","internalType":"address"}],"outputs":[{"name":"","type":"uint256","internalType":"uint256"},{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"nonpayable"},{"type":"function","name":"updateDynamicReserveConfig","inputs":[{"name":"reserveId","type":"uint256","internalType":"uint256"},{"name":"dynamicConfigKey","type":"uint32","internalType":"uint32"},{"name":"dynamicConfig","type":"tuple","internalType":"struct ITBVAaveSpoke.DynamicReserveConfig","components":[{"name":"collateralFactor","type":"uint16","internalType":"uint16"},{"name":"maxLiquidationBonus","type":"uint32","internalType":"uint32"},{"name":"liquidationFee","type":"uint16","internalType":"uint16"}]}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"updateLiquidationConfig","inputs":[{"name":"config","type":"tuple","internalType":"struct ITBVAaveSpoke.LiquidationConfig","components":[{"name":"targetHealthFactor","type":"uint128","internalType":"uint128"},{"name":"healthFactorForMaxBonus","type":"uint64","internalType":"uint64"},{"name":"liquidationBonusFactor","type":"uint16","internalType":"uint16"}]}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"updatePositionManager","inputs":[{"name":"positionManager","type":"address","internalType":"address"},{"name":"active","type":"bool","internalType":"bool"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"updateReserveConfig","inputs":[{"name":"reserveId","type":"uint256","internalType":"uint256"},{"name":"params","type":"tuple","internalType":"struct ITBVAaveSpoke.ReserveConfig","components":[{"name":"collateralRisk","type":"uint24","internalType":"uint24"},{"name":"paused","type":"bool","internalType":"bool"},{"name":"frozen","type":"bool","internalType":"bool"},{"name":"borrowable","type":"bool","internalType":"bool"},{"name":"receiveSharesEnabled","type":"bool","internalType":"bool"}]}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"updateReservePriceSource","inputs":[{"name":"reserveId","type":"uint256","internalType":"uint256"},{"name":"priceSource","type":"address","internalType":"address"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"updateUserDynamicConfig","inputs":[{"name":"onBehalfOf","type":"address","internalType":"address"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"updateUserRiskPremium","inputs":[{"name":"onBehalfOf","type":"address","internalType":"address"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"withdraw","inputs":[{"name":"reserveId","type":"uint256","internalType":"uint256"},{"name":"amount","type":"uint256","internalType":"uint256"},{"name":"onBehalfOf","type":"address","internalType":"address"}],"outputs":[{"name":"","type":"uint256","internalType":"uint256"},{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"nonpayable"},{"type":"error","name":"AssetNotListed","inputs":[]},{"type":"error","name":"ReserveExists","inputs":[]},{"type":"error","name":"InvalidAssetId","inputs":[]},{"type":"error","name":"ReserveNotListed","inputs":[]},{"type":"error","name":"ReserveNotBorrowable","inputs":[]},{"type":"error","name":"ReservePaused","inputs":[]},{"type":"error","name":"ReserveFrozen","inputs":[]},{"type":"error","name":"HealthFactorBelowThreshold","inputs":[]},{"type":"error","name":"CollateralCannotBeLiquidated","inputs":[]},{"type":"error","name":"ReserveNotSupplied","inputs":[]},{"type":"error","name":"ReserveNotBorrowed","inputs":[]},{"type":"error","name":"Unauthorized","inputs":[]},{"type":"error","name":"ConfigKeyUninitialized","inputs":[]},{"type":"error","name":"InactivePositionManager","inputs":[]},{"type":"error","name":"InvalidSignature","inputs":[]},{"type":"error","name":"InvalidAddress","inputs":[]},{"type":"error","name":"InvalidOracleDecimals","inputs":[]},{"type":"error","name":"InvalidCollateralRisk","inputs":[]},{"type":"error","name":"InvalidLiquidationConfig","inputs":[]},{"type":"error","name":"InvalidLiquidationFee","inputs":[]},{"type":"error","name":"InvalidCollateralFactorAndMaxLiquidationBonus","inputs":[]},{"type":"error","name":"InvalidCollateralFactor","inputs":[]},{"type":"error","name":"SelfLiquidation","inputs":[]},{"type":"error","name":"HealthFactorNotBelowThreshold","inputs":[]},{"type":"error","name":"MustNotLeaveDust","inputs":[]},{"type":"error","name":"InvalidDebtToCover","inputs":[]},{"type":"error","name":"CannotReceiveShares","inputs":[]},{"type":"error","name":"MaximumDynamicConfigKeyReached","inputs":[]}]');function V(e){return{drawnShares:e.drawnShares,premiumShares:e.premiumShares,premiumOffsetRay:e.premiumOffsetRay,suppliedShares:e.suppliedShares,dynamicConfigKey:e.dynamicConfigKey}}function z(e){return{riskPremium:e.riskPremium,avgCollateralFactor:e.avgCollateralFactor,healthFactor:e.healthFactor,totalCollateralValue:e.totalCollateralValue,totalDebtValueRay:e.totalDebtValueRay,activeCollateralCount:e.activeCollateralCount,borrowCount:e.borrowCount}}async function ae(e,t,n){const a=await e.readContract({address:t,abi:v,functionName:"getUserAccountData",args:[n]});return z(a)}async function ie(e,t,n,a){const[i,r]=await e.multicall({contracts:[{address:t,abi:v,functionName:"getUserPosition",args:[n,a]},{address:t,abi:v,functionName:"getUserAccountData",args:[a]}],allowFailure:!1});return{position:V(i),accountData:z(r)}}async function re(e,t,n,a){const i=await e.readContract({address:t,abi:v,functionName:"getUserPosition",args:[n,a]});return V(i)}async function se(e,t,n,a){return await e.readContract({address:t,abi:v,functionName:"getUserTotalDebt",args:[n,a]})}async function ue(e,t,n,a){return n.length===0?[]:(await e.multicall({contracts:n.map(r=>({address:t,abi:v,functionName:"getUserPosition",args:[r,a]})),allowFailure:!0})).map(r=>r.status==="success"?V(r.result):null)}async function pe(e,t,n,a){return n.length===0?[]:await e.multicall({contracts:n.map(r=>({address:t,abi:v,functionName:"getUserTotalDebt",args:[r,a]})),allowFailure:!1})}async function oe(e,t,n){return await e.readContract({address:t,abi:v,functionName:"getReserve",args:[n]})}async function ye(e,t){return(await e.readContract({address:t,abi:v,functionName:"getLiquidationConfig"})).targetHealthFactor}async function le(e,t,n,a){return await e.readContract({address:t,abi:v,functionName:"getDynamicReserveConfig",args:[n,a]})}const de=[{type:"function",name:"getReserveTotalDebt",inputs:[{name:"reserveId",type:"uint256",internalType:"uint256"}],outputs:[{name:"totalDebt",type:"uint256",internalType:"uint256"}],stateMutability:"view"}];async function me(e,t,n){const a=await e.readContract({address:t,abi:de,functionName:"getReserveTotalDebt",args:[n]});if(typeof a!="bigint")throw new Error(`getReserveTotalDebt returned a non-bigint result for reserve ${n}`);return a}const H=[{inputs:[],name:"decimals",outputs:[{name:"",type:"uint8"}],stateMutability:"view",type:"function"},{inputs:[{name:"reserveIds",type:"uint256[]"}],name:"getReservesPrices",outputs:[{name:"",type:"uint256[]"}],stateMutability:"view",type:"function"},{inputs:[{name:"reserveId",type:"uint256"}],name:"getReserveSource",outputs:[{name:"",type:"address"}],stateMutability:"view",type:"function"},{type:"error",name:"InvalidSource",inputs:[{name:"reserveId",type:"uint256"}]},{type:"error",name:"InvalidPrice",inputs:[{name:"reserveId",type:"uint256"}]}];async function ce(e,t){return await e.readContract({address:t,abi:v,functionName:"ORACLE"})}async function Te(e,t,n){return await e.readContract({address:t,abi:H,functionName:"getReservesPrices",args:[n]})}async function be(e,t,n){if(n.length===0)return[];let a;try{a=await e.multicall({contracts:n.map(i=>({address:t,abi:H,functionName:"getReservesPrices",args:[[i]]})),allowFailure:!0})}catch(i){const r=i instanceof Error?i:new Error(String(i));return n.map(u=>({reserveId:u,priceRaw:null,error:r}))}return a.map((i,r)=>{const u=n[r];if(i.status!=="success"){const p=i.error instanceof Error?i.error:new Error(String(i.error??"getReservesPrices reverted"));return{reserveId:u,priceRaw:null,error:p}}const[o]=i.result;return{reserveId:u,priceRaw:o,error:null}})}const fe=[{type:"function",name:"getAssetDrawnRate",inputs:[{name:"assetId",type:"uint256",internalType:"uint256"}],outputs:[{name:"",type:"uint256",internalType:"uint256"}],stateMutability:"view"}];async function ve(e,t){if(t.length===0)return[];let n;try{n=await e.multicall({contracts:t.map(({hub:a,assetId:i})=>({address:a,abi:fe,functionName:"getAssetDrawnRate",args:[BigInt(i)]})),allowFailure:!0})}catch(a){const i=a instanceof Error?a:new Error(String(a));return t.map(({hub:r,assetId:u})=>({hub:r,assetId:u,rateRay:null,error:i}))}return n.map((a,i)=>{const{hub:r,assetId:u}=t[i];if(a.status!=="success"){const o=a.error instanceof Error?a.error:new Error(String(a.error??"getAssetDrawnRate reverted"));return{hub:r,assetId:u,rateRay:null,error:o}}return{hub:r,assetId:u,rateRay:a.result,error:null}})}function ge(e,t){const n=B.encodeFunctionData({abi:w,functionName:x.REORDER_VAULTS,args:[t]});return{to:e,data:n}}function Re(e,t){const n=B.encodeFunctionData({abi:w,functionName:x.WITHDRAW_COLLATERALS,args:[t]});return{to:e,data:n}}function Ae(e,t,n,a){const i=B.encodeFunctionData({abi:w,functionName:x.BORROW,args:[t,n,a]});return{to:e,data:i}}function Ie(e,t,n,a){const i=B.encodeFunctionData({abi:w,functionName:x.REPAY,args:[t,n,a]});return{to:e,data:i}}function Me(e){return Number(e)/10**N}function we(e){return Number(e)/10**k}function Ce(e){return Number(e)/10**j}function Se(e){return e.drawnShares>0n||e.premiumShares>0n}function G(e,t){return t?e===null?"safe":e<1?"danger":e<q?"warning":"safe":"no_debt"}function Pe(e){const t=isFinite(e),n=isFinite(e)?e:null;return G(n,t)}function he(e,t,n){return t<=0?1/0:e*(n/O)/t}const Be=.01,W=20,K=.01;function xe(e,t,n){if(e.length===0)return[];const i=e.reduce((o,p)=>o+p.btc,0)*t*(1-n);let r=0,u=0;for(;u<e.length&&r<i;)r+=e[u].btc,u++;return e.slice(0,u)}function Ee(e,t,n,a,i,r,u,o,p){const l=o*r,g=n/(t*r),T=t*i,d=Math.max(0,e-T),R=u-l,b=R===0?n:n*((u-p)/R);let f;if(a)f=0;else{const A=d*g/o,I=Math.min(A,n-b);f=Math.max(0,n-b-I)}return{debtAfter:f,btcAfter:Math.max(0,t-e)}}function h(e,t,n,a,i,r,u,o){let p=[...e],l=t;const g=e.reduce((b,f)=>b+f.btc,0);let T=-1,d=0,R=0;for(;p.length>0&&l>K&&R<W;){const b=p.reduce((s,y)=>s+y.btc,0),f=b*n*(1-a);let A=0,I=0;for(;I<p.length&&A<f;)A+=p[I].btc,I++;const S=I>=p.length,{debtAfter:C}=Ee(A,b,l,S,n,i,r,u,o);p=p.slice(I),l=C;const P=b-A;d+=P,T<0&&(T=P),R++}return{sumBtcAfterEvents:d,btcAfterG1:T<0?g:T}}const Y=17;function Fe(e,t,n,a,i,r,u,o){const p=e.length;if(p===0)return{order:[],sumBtcAfterEvents:0,btcAfterG1:0};if(p===1){const s=h(e,t,n,a,i,r,u,o);return{order:[...e],...s}}if(p>Y){const s=[...e].sort((m,c)=>c.btc-m.btc),y=h(s,t,n,a,i,r,u,o);return{order:s,...y}}const l=1<<p,g=e.reduce((s,y)=>s+y.btc,0),T=n*(1-a),d=new Float64Array(l);for(let s=1;s<l;s++){const y=s&-s,m=31-Math.clz32(y);d[s]=d[s^y]+e[m].btc}const R=new Float64Array(l),b=new Float64Array(l),f=new Int32Array(l);R.fill(-1/0),f.fill(-1),R[0]=0;const A=1e-9;for(let s=1;s<l;s++){const y=g-d[s];let m=-1/0,c=-1/0,E=-1;for(let M=s;M>0;M=M-1&s){const F=s^M,D=R[F];if(D===-1/0)continue;const J=g-d[F];if(d[M]<J*T)continue;const _=D+y,U=F===0?g-d[M]:b[F];(_>m+A||Math.abs(_-m)<=A&&U>c+A)&&(m=_,c=U,E=M)}R[s]=m,b[s]=c,f[s]=E}const I=l-1,S=[];for(let s=I;s>0;){const y=f[s];if(y===-1)break;const m=[];for(let c=0;c<p;c++)y&1<<c&&m.push(e[c]);m.sort((c,E)=>E.btc-c.btc),S.push(m),s^=y}S.reverse();const C=S.flat();if(C.length!==p){console.error(`computeOptimalOrder: DP reconstruction produced ${C.length}/${p} vaults; falling back to largest-first. This indicates a DP-invariant regression.`);const s=[...e].sort((m,c)=>c.btc-m.btc),y=h(s,t,n,a,i,r,u,o);return{order:s,...y}}const P=h(C,t,n,a,i,r,u,o);return{order:C,sumBtcAfterEvents:P.sumBtcAfterEvents,btcAfterG1:P.btcAfterG1}}const _e=BigInt(Number.MAX_SAFE_INTEGER),L=2000n;function X(e,t){if(e>_e)throw new RangeError(`${t} (${e}) exceeds Number.MAX_SAFE_INTEGER; precision would be lost`)}function Z(e,t,n,a){if(a<=0)return{seizedFraction:1,seizedFractionRaw:1/0};const i=t*e;if(n<=i)return{seizedFraction:1,seizedFractionRaw:1/0};const r=e*(n-a)/(n-i)*(t/a);return{seizedFraction:Math.max(0,Math.min(1,r)),seizedFractionRaw:r}}function $(e,t,n,a){return Z(e,t,n,a).seizedFraction}function Ve(e){const{totalBtc:t,CF:n,LB:a,THF:i,expectedHF:r,safetyMargin:u}=e;if(t<=0n)return{sacrificialVault:0n,protectedVault:0n,seizedFraction:0,targetSeizureBtc:0n};X(t,"totalBtc");const o=$(n,a,i,r),p=Number(t),l=BigInt(Math.ceil(p*o)),g=BigInt(Math.ceil(p*o*u)),T=g>t?t:g,d=t-T;return T>0n&&T<L||d>0n&&d<L?{sacrificialVault:0n,protectedVault:0n,seizedFraction:o,targetSeizureBtc:0n}:{sacrificialVault:T,protectedVault:d,seizedFraction:o,targetSeizureBtc:l}}function De(e){const{minPegin:t,seizedFraction:n,safetyMargin:a}=e;X(t,"minPegin");const i=n*a;if(i>=1||i<=0)return 0n;const r=1-i,u=Math.ceil(Number(t)/r),o=Math.ceil(Number(t)/i);return BigInt(Math.max(u,o))}exports.AAVE_BASE_CURRENCY_DECIMALS=N;exports.AAVE_BASE_CURRENCY_RAY_DECIMALS=k;exports.AAVE_FUNCTION_NAMES=x;exports.AaveIntegrationAdapterABI=w;exports.BPS_SCALE=O;exports.FULL_REPAY_BUFFER_DIVISOR=ee;exports.HEALTH_FACTOR_WARNING_THRESHOLD=q;exports.MAX_DP_N=Y;exports.MAX_GROUPS=W;exports.MIN_DEBT_THRESHOLD=K;exports.MIN_HEALTH_FACTOR_FOR_BORROW=Q;exports.SEIZURE_TOL=Be;exports.aaveRayValueToUsd=we;exports.aaveValueToUsd=Me;exports.buildBorrowTx=Ae;exports.buildReorderVaultsTx=ge;exports.buildRepayTx=Ie;exports.buildWithdrawCollateralsTx=Re;exports.calculateHealthFactor=he;exports.computeMinDepositForSplit=De;exports.computeOptimalOrder=Fe;exports.computeOptimalSplit=Ve;exports.computeSeizedFraction=$;exports.computeSeizedFractionDetailed=Z;exports.getAssetDrawnRatesSafe=ve;exports.getDynamicReserveConfig=le;exports.getGroup1FromOrder=xe;exports.getHealthFactorStatus=G;exports.getHealthFactorStatusFromValue=Pe;exports.getOracleAddress=ce;exports.getPosition=te;exports.getPositionReserveTotalDebt=me;exports.getPositionSizeParams=ne;exports.getReserve=oe;exports.getReservesPrices=Te;exports.getReservesPricesSafe=be;exports.getTargetHealthFactor=ye;exports.getUserAccountData=ae;exports.getUserPosition=re;exports.getUserPositionAndAccountData=ie;exports.getUserPositions=ue;exports.getUserTotalDebt=se;exports.getUserTotalDebts=pe;exports.hasDebtFromPosition=Se;exports.simulateCascade=h;exports.wadToNumber=Ce;
2
2
  //# sourceMappingURL=index.cjs.map