@babylonlabs-io/ts-sdk 0.4.1-rc.2 → 0.7.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (49) hide show
  1. package/LICENSE +169 -0
  2. package/README.md +1 -1
  3. package/dist/{PayoutManager-B8vLG1dE.js → PayoutManager-BVmU4UsM.js} +213 -170
  4. package/dist/PayoutManager-BVmU4UsM.js.map +1 -0
  5. package/dist/PayoutManager-Ba6cNgHC.cjs +2 -0
  6. package/dist/PayoutManager-Ba6cNgHC.cjs.map +1 -0
  7. package/dist/{challengeAssert-ZXE00zkT.js → challengeAssert-D50t_Qyo.js} +96 -74
  8. package/dist/challengeAssert-D50t_Qyo.js.map +1 -0
  9. package/dist/challengeAssert-DDceAi0r.cjs +2 -0
  10. package/dist/challengeAssert-DDceAi0r.cjs.map +1 -0
  11. package/dist/index.cjs +1 -1
  12. package/dist/index.cjs.map +1 -1
  13. package/dist/index.d.ts +0 -2
  14. package/dist/index.d.ts.map +1 -1
  15. package/dist/index.js +53 -53
  16. package/dist/index.js.map +1 -1
  17. package/dist/tbv/core/contracts/abis/{BTCVaultsManager.abi.d.ts → BTCVaultRegistry.abi.d.ts} +41 -9
  18. package/dist/tbv/core/contracts/abis/BTCVaultRegistry.abi.d.ts.map +1 -0
  19. package/dist/tbv/core/contracts/index.d.ts +1 -1
  20. package/dist/tbv/core/index.cjs +1 -1
  21. package/dist/tbv/core/index.js +51 -49
  22. package/dist/tbv/core/managers/PeginManager.d.ts +21 -20
  23. package/dist/tbv/core/managers/PeginManager.d.ts.map +1 -1
  24. package/dist/tbv/core/managers/__tests__/PeginManager.test.d.ts +1 -1
  25. package/dist/tbv/core/managers/index.d.ts +4 -4
  26. package/dist/tbv/core/managers/index.d.ts.map +1 -1
  27. package/dist/tbv/core/primitives/index.cjs +1 -1
  28. package/dist/tbv/core/primitives/index.d.ts +2 -2
  29. package/dist/tbv/core/primitives/index.d.ts.map +1 -1
  30. package/dist/tbv/core/primitives/index.js +19 -17
  31. package/dist/tbv/core/primitives/psbt/pegin.d.ts +11 -8
  32. package/dist/tbv/core/primitives/psbt/pegin.d.ts.map +1 -1
  33. package/dist/tbv/core/primitives/psbt/peginInput.d.ts +11 -1
  34. package/dist/tbv/core/primitives/psbt/peginInput.d.ts.map +1 -1
  35. package/dist/tbv/core/utils/transaction/btcTxHash.d.ts +1 -1
  36. package/dist/tbv/index.cjs +1 -1
  37. package/dist/tbv/index.js +51 -49
  38. package/dist/tbv/integrations/aave/clients/abis/AaveIntegrationController.abi.json.d.ts +7 -2
  39. package/dist/tbv/integrations/aave/index.cjs +1 -1
  40. package/dist/tbv/integrations/aave/index.cjs.map +1 -1
  41. package/dist/tbv/integrations/aave/index.js +3 -3
  42. package/package.json +19 -19
  43. package/dist/PayoutManager-B8vLG1dE.js.map +0 -1
  44. package/dist/PayoutManager-Shw7TY5P.cjs +0 -2
  45. package/dist/PayoutManager-Shw7TY5P.cjs.map +0 -1
  46. package/dist/challengeAssert-ClJYoKxJ.cjs +0 -2
  47. package/dist/challengeAssert-ClJYoKxJ.cjs.map +0 -1
  48. package/dist/challengeAssert-ZXE00zkT.js.map +0 -1
  49. package/dist/tbv/core/contracts/abis/BTCVaultsManager.abi.d.ts.map +0 -1
package/dist/tbv/index.js CHANGED
@@ -1,19 +1,20 @@
1
- import { B as e, D as t, F as r, L as o, M as i, P as n, S as T, T as u, W as P, j as l, h as d, i as g, f as E, d as c, a as _, b as A, c as p, k as x, l as S, m as b, q as F, g as I, e as R, y, z as C, n as U, o as L, p as M, x as O, r as f, w as m, s as h, t as B, u as H, v as N } from "../challengeAssert-ZXE00zkT.js";
2
- import { computeMinClaimValue as v } from "@babylonlabs-io/babylon-tbv-rust-wasm";
3
- import { q as w, B as W, C as X, M as Y, h as V, P as K, c as Z, b as j, d as q, r as G, i as z, j as J, t as Q, g as $, k as aa, l as sa, f as ea, e as ta, m as ra, n as oa, o as ia, v as na, u as Ta, p as ua, s as Pa, a as la } from "../PayoutManager-B8vLG1dE.js";
1
+ import { B as e, D as t, F as r, L as i, M as o, P as n, S as T, T as u, W as P, k as l, i as d, j as g, g as E, d as _, a as c, b as A, c as p, l as x, m as S, n as b, r as I, h as R, e as y, f as C, z as F, A as U, o as L, p as O, q as f, y as m, s as M, x as h, t as H, u as N, v as B, w as D } from "../challengeAssert-D50t_Qyo.js";
2
+ import { SINGLE_DEPOSIT_HTLC_VOUT as k, computeMinClaimValue as w } from "@babylonlabs-io/babylon-tbv-rust-wasm";
3
+ import { q as W, B as X, C as Y, M as G, h as K, P as Z, c as j, b as q, d as z, r as J, i as Q, j as $, t as aa, g as sa, k as ea, l as ta, f as ra, e as ia, m as oa, n as na, o as Ta, v as ua, u as Pa, p as la, s as da, a as ga } from "../PayoutManager-BVmU4UsM.js";
4
4
  export {
5
- w as BTCVaultsManagerABI,
5
+ W as BTCVaultRegistryABI,
6
6
  e as BTC_DUST_SAT,
7
- W as BitcoinScriptType,
8
- X as CONTRACT_ERRORS,
7
+ X as BitcoinScriptType,
8
+ Y as CONTRACT_ERRORS,
9
9
  t as DUST_THRESHOLD,
10
10
  r as FEE_SAFETY_MARGIN,
11
- o as LOW_RATE_ESTIMATION_ACCURACY_BUFFER,
12
- i as MAX_NON_LEGACY_OUTPUT_SIZE,
13
- Y as MEMPOOL_API_URLS,
11
+ i as LOW_RATE_ESTIMATION_ACCURACY_BUFFER,
12
+ o as MAX_NON_LEGACY_OUTPUT_SIZE,
13
+ G as MEMPOOL_API_URLS,
14
14
  n as P2TR_INPUT_SIZE,
15
- V as PayoutManager,
16
- K as PeginManager,
15
+ K as PayoutManager,
16
+ Z as PeginManager,
17
+ k as SINGLE_DEPOSIT_HTLC_VOUT,
17
18
  T as SPLIT_TX_FEE_SAFETY_MULTIPLIER,
18
19
  u as TX_BUFFER_SIZE_OVERHEAD,
19
20
  P as WALLET_RELAY_FEE_RATE_THRESHOLD,
@@ -21,48 +22,49 @@ export {
21
22
  d as buildDepositorPayoutPsbt,
22
23
  g as buildNoPayoutPsbt,
23
24
  E as buildPayoutPsbt,
24
- c as buildPeginInputPsbt,
25
- _ as buildPeginTxFromFundedPrePegin,
25
+ _ as buildPeginInputPsbt,
26
+ c as buildPeginTxFromFundedPrePegin,
26
27
  A as buildPrePeginPsbt,
27
- Z as calculateBtcTxHash,
28
- v as computeMinClaimValue,
28
+ j as calculateBtcTxHash,
29
+ w as computeMinClaimValue,
29
30
  p as computeNumLocalChallengers,
30
31
  x as createPayoutScript,
31
- j as createSplitTransaction,
32
- q as createSplitTransactionPsbt,
32
+ q as createSplitTransaction,
33
+ z as createSplitTransactionPsbt,
33
34
  S as deriveNativeSegwitAddress,
34
35
  b as deriveTaprootAddress,
35
- F as ensureHexPrefix,
36
- G as extractErrorData,
37
- I as extractPayoutSignature,
38
- R as extractPeginInputSignature,
39
- y as fundPeginTransaction,
40
- z as getAddressTxs,
41
- J as getAddressUtxos,
42
- Q as getContractErrorMessage,
43
- $ as getDustThreshold,
44
- aa as getMempoolApiUrl,
45
- C as getNetwork,
46
- sa as getNetworkFees,
47
- ea as getPsbtInputFields,
48
- ta as getScriptType,
49
- ra as getTxHex,
50
- oa as getTxInfo,
51
- ia as getUtxoInfo,
52
- na as handleContractError,
53
- U as hexToUint8Array,
54
- L as isAddressFromPublicKey,
55
- Ta as isKnownContractError,
56
- M as isValidHex,
57
- O as parseUnfundedWasmTransaction,
58
- f as processPublicKeyToXOnly,
59
- ua as pushTx,
60
- m as rateBasedTxBufferFee,
61
- Pa as selectUtxosForPegin,
62
- la as shouldAddChangeOutput,
63
- h as stripHexPrefix,
64
- B as toXOnly,
65
- H as uint8ArrayToHex,
66
- N as validateWalletPubkey
36
+ I as ensureHexPrefix,
37
+ J as extractErrorData,
38
+ R as extractPayoutSignature,
39
+ y as extractPeginInputSignature,
40
+ C as finalizePeginInputPsbt,
41
+ F as fundPeginTransaction,
42
+ Q as getAddressTxs,
43
+ $ as getAddressUtxos,
44
+ aa as getContractErrorMessage,
45
+ sa as getDustThreshold,
46
+ ea as getMempoolApiUrl,
47
+ U as getNetwork,
48
+ ta as getNetworkFees,
49
+ ra as getPsbtInputFields,
50
+ ia as getScriptType,
51
+ oa as getTxHex,
52
+ na as getTxInfo,
53
+ Ta as getUtxoInfo,
54
+ ua as handleContractError,
55
+ L as hexToUint8Array,
56
+ O as isAddressFromPublicKey,
57
+ Pa as isKnownContractError,
58
+ f as isValidHex,
59
+ m as parseUnfundedWasmTransaction,
60
+ M as processPublicKeyToXOnly,
61
+ la as pushTx,
62
+ h as rateBasedTxBufferFee,
63
+ da as selectUtxosForPegin,
64
+ ga as shouldAddChangeOutput,
65
+ H as stripHexPrefix,
66
+ N as toXOnly,
67
+ B as uint8ArrayToHex,
68
+ D as validateWalletPubkey
67
69
  };
68
70
  //# sourceMappingURL=index.js.map
@@ -241,7 +241,7 @@ declare const _default: [
241
241
  "internalType": "enum IBTCVaultsManager.BTCVaultStatus"
242
242
  },
243
243
  {
244
- "name": "applicationController",
244
+ "name": "applicationEntryPoint",
245
245
  "type": "address",
246
246
  "internalType": "address"
247
247
  },
@@ -261,7 +261,7 @@ declare const _default: [
261
261
  "internalType": "uint16"
262
262
  },
263
263
  {
264
- "name": "vkVersion",
264
+ "name": "proverProgramVersion",
265
265
  "type": "uint16",
266
266
  "internalType": "uint16"
267
267
  },
@@ -284,6 +284,11 @@ declare const _default: [
284
284
  "name": "hashlock",
285
285
  "type": "bytes32",
286
286
  "internalType": "bytes32"
287
+ },
288
+ {
289
+ "name": "htlcVout",
290
+ "type": "uint8",
291
+ "internalType": "uint8"
287
292
  }
288
293
  ]
289
294
  }
@@ -1,2 +1,2 @@
1
- "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const T=require("viem"),c={WITHDRAW_COLLATERALS:"withdrawCollaterals",BORROW:"borrowFromCorePosition",REPAY:"repayToCorePosition"},x=8,h=6,E=100,M=1e4,R=26,g=18,I=1.5,V=1.2,O=10000n,P=1100000000000000000n,S=7500n,w=1050000000000000000n,o=JSON.parse('[{"type":"constructor","inputs":[{"name":"vaultBTC_","type":"address","internalType":"address"},{"name":"coreSpoke_","type":"address","internalType":"address"},{"name":"btcVaultManager_","type":"address","internalType":"address"},{"name":"applicationRegistry_","type":"address","internalType":"address"},{"name":"coreSpokeProxyImpl_","type":"address","internalType":"address"},{"name":"coreVaultBtcReserveId_","type":"uint256","internalType":"uint256"},{"name":"protocolParams_","type":"address","internalType":"address"}],"stateMutability":"nonpayable"},{"type":"function","name":"APPLICATION_ADMIN","inputs":[],"outputs":[{"name":"","type":"bytes32","internalType":"bytes32"}],"stateMutability":"pure"},{"type":"function","name":"APPLICATION_PAUSING_GUARDIAN","inputs":[],"outputs":[{"name":"","type":"bytes32","internalType":"bytes32"}],"stateMutability":"pure"},{"type":"function","name":"APP_REGISTRY","inputs":[],"outputs":[{"name":"","type":"address","internalType":"contract IApplicationRegistry"}],"stateMutability":"view"},{"type":"function","name":"BTC_VAULT_CORE_SPOKE","inputs":[],"outputs":[{"name":"","type":"address","internalType":"contract ITBVAaveSpoke"}],"stateMutability":"view"},{"type":"function","name":"BTC_VAULT_CORE_SPOKE_PROXY_IMPLEMENTATION","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"BTC_VAULT_CORE_VAULT_BTC_RESERVE_ID","inputs":[],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"BTC_VAULT_MANAGER","inputs":[],"outputs":[{"name":"","type":"address","internalType":"contract IBTCVaultsManager"}],"stateMutability":"view"},{"type":"function","name":"DEFAULT_ADMIN_ROLE","inputs":[],"outputs":[{"name":"","type":"bytes32","internalType":"bytes32"}],"stateMutability":"view"},{"type":"function","name":"PROTOCOL_PARAMS","inputs":[],"outputs":[{"name":"","type":"address","internalType":"contract IProtocolParams"}],"stateMutability":"view"},{"type":"function","name":"TIMELOCK_UPGRADER","inputs":[],"outputs":[{"name":"","type":"bytes32","internalType":"bytes32"}],"stateMutability":"view"},{"type":"function","name":"UPGRADE_INTERFACE_VERSION","inputs":[],"outputs":[{"name":"","type":"string","internalType":"string"}],"stateMutability":"view"},{"type":"function","name":"VAULT_BTC","inputs":[],"outputs":[{"name":"","type":"address","internalType":"contract IVaultBTC"}],"stateMutability":"view"},{"type":"function","name":"activateVault","inputs":[{"name":"vaultId","type":"bytes32","internalType":"bytes32"},{"name":"vault","type":"tuple","internalType":"struct IBTCVaultsManager.BTCVault","components":[{"name":"depositor","type":"address","internalType":"address"},{"name":"depositorBtcPubKey","type":"bytes32","internalType":"bytes32"},{"name":"depositorSignedPeginTx","type":"bytes","internalType":"bytes"},{"name":"amount","type":"uint256","internalType":"uint256"},{"name":"vaultProvider","type":"address","internalType":"address"},{"name":"status","type":"uint8","internalType":"enum IBTCVaultsManager.BTCVaultStatus"},{"name":"applicationController","type":"address","internalType":"address"},{"name":"universalChallengersVersion","type":"uint16","internalType":"uint16"},{"name":"appVaultKeepersVersion","type":"uint16","internalType":"uint16"},{"name":"offchainParamsVersion","type":"uint16","internalType":"uint16"},{"name":"vkVersion","type":"uint16","internalType":"uint16"},{"name":"createdAt","type":"uint256","internalType":"uint256"},{"name":"verifiedAt","type":"uint256","internalType":"uint256"},{"name":"depositorLamportPkHash","type":"bytes32","internalType":"bytes32"},{"name":"hashlock","type":"bytes32","internalType":"bytes32"}]}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"applicationFeeRecipient","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"borrowFromCorePosition","inputs":[{"name":"debtReserveId","type":"uint256","internalType":"uint256"},{"name":"amount","type":"uint256","internalType":"uint256"},{"name":"receiver","type":"address","internalType":"address"}],"outputs":[{"name":"borrowedShares","type":"uint256","internalType":"uint256"},{"name":"borrowedAmount","type":"uint256","internalType":"uint256"}],"stateMutability":"nonpayable"},{"type":"function","name":"calculateLiquidationFees","inputs":[{"name":"borrower","type":"address","internalType":"address"}],"outputs":[{"name":"fairnessPayment","type":"tuple","internalType":"struct TokenAmountLib.TokenAmount","components":[{"name":"token","type":"address","internalType":"address"},{"name":"amount","type":"uint256","internalType":"uint256"}]},{"name":"protocolFee","type":"tuple","internalType":"struct TokenAmountLib.TokenAmount","components":[{"name":"token","type":"address","internalType":"address"},{"name":"amount","type":"uint256","internalType":"uint256"}]}],"stateMutability":"view"},{"type":"function","name":"calculateLiquidationPayment","inputs":[{"name":"borrower","type":"address","internalType":"address"}],"outputs":[{"name":"payments","type":"tuple[]","internalType":"struct TokenAmountLib.TokenAmount[]","components":[{"name":"token","type":"address","internalType":"address"},{"name":"amount","type":"uint256","internalType":"uint256"}]}],"stateMutability":"view"},{"type":"function","name":"coreSpokeLiquidationFeeBps","inputs":[],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"fairnessPaymentReserveId","inputs":[],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"fairnessPaymentToken","inputs":[],"outputs":[{"name":"","type":"address","internalType":"contract IERC20"}],"stateMutability":"view"},{"type":"function","name":"fullPause","inputs":[],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"getPosition","inputs":[{"name":"user","type":"address","internalType":"address"}],"outputs":[{"name":"position","type":"tuple","internalType":"struct AaveApplicationBase.MarketPosition","components":[{"name":"vaultIds","type":"bytes32[]","internalType":"bytes32[]"},{"name":"proxyContract","type":"address","internalType":"address"}]}],"stateMutability":"view"},{"type":"function","name":"getPositionCollateral","inputs":[{"name":"user","type":"address","internalType":"address"}],"outputs":[{"name":"totalCollateral","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"getPositionSizeParams","inputs":[],"outputs":[{"name":"minPositionBTC","type":"uint256","internalType":"uint256"},{"name":"maxPositionBTC","type":"uint256","internalType":"uint256"},{"name":"maxVaultsPerPosition","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"getRoleAdmin","inputs":[{"name":"role","type":"bytes32","internalType":"bytes32"}],"outputs":[{"name":"","type":"bytes32","internalType":"bytes32"}],"stateMutability":"view"},{"type":"function","name":"getUserOfProxy","inputs":[{"name":"proxy","type":"address","internalType":"address"}],"outputs":[{"name":"user","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"getVaultOwner","inputs":[{"name":"vaultId","type":"bytes32","internalType":"bytes32"}],"outputs":[{"name":"owner","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"getVaultUsageStatus","inputs":[{"name":"vaultId","type":"bytes32","internalType":"bytes32"}],"outputs":[{"name":"status","type":"uint8","internalType":"enum AaveVaultHandler.VaultUsageStatus"}],"stateMutability":"view"},{"type":"function","name":"grantRole","inputs":[{"name":"role","type":"bytes32","internalType":"bytes32"},{"name":"account","type":"address","internalType":"address"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"hasRole","inputs":[{"name":"role","type":"bytes32","internalType":"bytes32"},{"name":"account","type":"address","internalType":"address"}],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"view"},{"type":"function","name":"initialize","inputs":[{"name":"initialTBVAdmin","type":"address","internalType":"address"},{"name":"coreSpokeLiquidationFeeBps_","type":"uint256","internalType":"uint256"},{"name":"applicationFeeRecipient_","type":"address","internalType":"address"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"isVaultCollateralized","inputs":[{"name":"vaultId","type":"bytes32","internalType":"bytes32"}],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"view"},{"type":"function","name":"isVaultEscrowed","inputs":[{"name":"vaultId","type":"bytes32","internalType":"bytes32"}],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"view"},{"type":"function","name":"liquidateCorePosition","inputs":[{"name":"borrower","type":"address","internalType":"address"},{"name":"btcRedeemKey","type":"bytes32","internalType":"bytes32"}],"outputs":[{"name":"seizedAmount","type":"uint256","internalType":"uint256"}],"stateMutability":"nonpayable"},{"type":"function","name":"pauseState","inputs":[],"outputs":[{"name":"","type":"uint8","internalType":"enum ITBVPausable.PauseState"}],"stateMutability":"view"},{"type":"function","name":"positionSizeParams","inputs":[],"outputs":[{"name":"minPositionBTC","type":"uint256","internalType":"uint256"},{"name":"maxPositionBTC","type":"uint256","internalType":"uint256"},{"name":"maxVaultsPerPosition","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"proxiableUUID","inputs":[],"outputs":[{"name":"","type":"bytes32","internalType":"bytes32"}],"stateMutability":"view"},{"type":"function","name":"redeemVaultFromSwap","inputs":[{"name":"vaultId","type":"bytes32","internalType":"bytes32"},{"name":"btcRedeemKey","type":"bytes32","internalType":"bytes32"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"renounceRole","inputs":[{"name":"role","type":"bytes32","internalType":"bytes32"},{"name":"account","type":"address","internalType":"address"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"repayToCorePosition","inputs":[{"name":"borrower","type":"address","internalType":"address"},{"name":"debtReserveId","type":"uint256","internalType":"uint256"},{"name":"amount","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"repaidShares","type":"uint256","internalType":"uint256"},{"name":"repaidAmount","type":"uint256","internalType":"uint256"}],"stateMutability":"nonpayable"},{"type":"function","name":"revokeRole","inputs":[{"name":"role","type":"bytes32","internalType":"bytes32"},{"name":"account","type":"address","internalType":"address"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"setApplicationFeeRecipient","inputs":[{"name":"applicationFeeRecipient_","type":"address","internalType":"address"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"setCoreSpokeLiquidationFeeBps","inputs":[{"name":"coreSpokeLiquidationFeeBps_","type":"uint256","internalType":"uint256"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"setFairnessPaymentToken","inputs":[{"name":"token","type":"address","internalType":"address"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"setPositionSizeParams","inputs":[{"name":"params","type":"tuple","internalType":"struct AaveApplicationBase.PositionSizeParams","components":[{"name":"minPositionBTC","type":"uint256","internalType":"uint256"},{"name":"maxPositionBTC","type":"uint256","internalType":"uint256"},{"name":"maxVaultsPerPosition","type":"uint256","internalType":"uint256"}]}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"setVaultSwap","inputs":[{"name":"vaultSwap_","type":"address","internalType":"address"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"softPause","inputs":[],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"supportsInterface","inputs":[{"name":"interfaceId","type":"bytes4","internalType":"bytes4"}],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"view"},{"type":"function","name":"unpause","inputs":[],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"upgradeToAndCall","inputs":[{"name":"newImplementation","type":"address","internalType":"address"},{"name":"data","type":"bytes","internalType":"bytes"}],"outputs":[],"stateMutability":"payable"},{"type":"function","name":"vaultOwner","inputs":[{"name":"","type":"bytes32","internalType":"bytes32"}],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"vaultSwap","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"withdrawAllCollateralFromCorePosition","inputs":[],"outputs":[{"name":"withdrawnAmount","type":"uint256","internalType":"uint256"}],"stateMutability":"nonpayable"},{"type":"function","name":"withdrawCollaterals","inputs":[{"name":"vaultsToWithdraw","type":"bytes32[]","internalType":"bytes32[]"}],"outputs":[{"name":"amountWithdrawn","type":"uint256","internalType":"uint256"}],"stateMutability":"nonpayable"},{"type":"event","name":"BTCVaultCoreSpokeLiquidated","inputs":[{"name":"depositor","type":"address","indexed":true,"internalType":"address"},{"name":"liquidator","type":"address","indexed":true,"internalType":"address"},{"name":"valueDebtRepaid","type":"uint256","indexed":false,"internalType":"uint256"},{"name":"valueCollateralSeized","type":"uint256","indexed":false,"internalType":"uint256"},{"name":"fairnessPayment","type":"uint256","indexed":false,"internalType":"uint256"},{"name":"protocolFee","type":"uint256","indexed":false,"internalType":"uint256"}],"anonymous":false},{"type":"event","name":"BorrowedFromPosition","inputs":[{"name":"borrower","type":"address","indexed":true,"internalType":"address"},{"name":"debtReserveId","type":"uint256","indexed":true,"internalType":"uint256"},{"name":"receiver","type":"address","indexed":true,"internalType":"address"},{"name":"borrowAmount","type":"uint256","indexed":false,"internalType":"uint256"}],"anonymous":false},{"type":"event","name":"CollateralAdded","inputs":[{"name":"depositor","type":"address","indexed":true,"internalType":"address"},{"name":"vaultId","type":"bytes32","indexed":true,"internalType":"bytes32"}],"anonymous":false},{"type":"event","name":"CollateralWithdrawn","inputs":[{"name":"depositor","type":"address","indexed":true,"internalType":"address"},{"name":"vaultId","type":"bytes32","indexed":true,"internalType":"bytes32"}],"anonymous":false},{"type":"event","name":"ControllerApplicationFeeRecipientUpdated","inputs":[{"name":"applicationFeeRecipient","type":"address","indexed":false,"internalType":"address"}],"anonymous":false},{"type":"event","name":"CoreSpokeLiquidationFeeBpsUpdated","inputs":[{"name":"coreSpokeLiquidationFeeBps","type":"uint256","indexed":false,"internalType":"uint256"}],"anonymous":false},{"type":"event","name":"FairnessPaymentFailed","inputs":[{"name":"depositor","type":"address","indexed":true,"internalType":"address"},{"name":"liquidator","type":"address","indexed":true,"internalType":"address"},{"name":"protocolRecipient","type":"address","indexed":false,"internalType":"address"},{"name":"amount","type":"uint256","indexed":false,"internalType":"uint256"}],"anonymous":false},{"type":"event","name":"FairnessPaymentPaid","inputs":[{"name":"depositor","type":"address","indexed":true,"internalType":"address"},{"name":"liquidator","type":"address","indexed":true,"internalType":"address"},{"name":"amount","type":"uint256","indexed":false,"internalType":"uint256"}],"anonymous":false},{"type":"event","name":"FairnessPaymentTokenSet","inputs":[{"name":"token","type":"address","indexed":true,"internalType":"address"}],"anonymous":false},{"type":"event","name":"Initialized","inputs":[{"name":"version","type":"uint8","indexed":false,"internalType":"uint8"}],"anonymous":false},{"type":"event","name":"PausedWith","inputs":[{"name":"state","type":"uint8","indexed":true,"internalType":"enum ITBVPausable.PauseState"},{"name":"pauser","type":"address","indexed":true,"internalType":"address"}],"anonymous":false},{"type":"event","name":"PositionSizeParamsUpdated","inputs":[{"name":"oldMinPositionBTC","type":"uint256","indexed":false,"internalType":"uint256"},{"name":"oldMaxPositionBTC","type":"uint256","indexed":false,"internalType":"uint256"},{"name":"oldMaxVaultsPerPosition","type":"uint256","indexed":false,"internalType":"uint256"},{"name":"newMinPositionBTC","type":"uint256","indexed":false,"internalType":"uint256"},{"name":"newMaxPositionBTC","type":"uint256","indexed":false,"internalType":"uint256"},{"name":"newMaxVaultsPerPosition","type":"uint256","indexed":false,"internalType":"uint256"}],"anonymous":false},{"type":"event","name":"RepaidFromPosition","inputs":[{"name":"borrower","type":"address","indexed":true,"internalType":"address"},{"name":"debtReserveId","type":"uint256","indexed":true,"internalType":"uint256"},{"name":"repayAmount","type":"uint256","indexed":false,"internalType":"uint256"}],"anonymous":false},{"type":"event","name":"RoleAdminChanged","inputs":[{"name":"role","type":"bytes32","indexed":true,"internalType":"bytes32"},{"name":"previousAdminRole","type":"bytes32","indexed":true,"internalType":"bytes32"},{"name":"newAdminRole","type":"bytes32","indexed":true,"internalType":"bytes32"}],"anonymous":false},{"type":"event","name":"RoleGranted","inputs":[{"name":"role","type":"bytes32","indexed":true,"internalType":"bytes32"},{"name":"account","type":"address","indexed":true,"internalType":"address"},{"name":"sender","type":"address","indexed":true,"internalType":"address"}],"anonymous":false},{"type":"event","name":"RoleRevoked","inputs":[{"name":"role","type":"bytes32","indexed":true,"internalType":"bytes32"},{"name":"account","type":"address","indexed":true,"internalType":"address"},{"name":"sender","type":"address","indexed":true,"internalType":"address"}],"anonymous":false},{"type":"event","name":"Unpaused","inputs":[{"name":"pauser","type":"address","indexed":true,"internalType":"address"}],"anonymous":false},{"type":"event","name":"Upgraded","inputs":[{"name":"implementation","type":"address","indexed":true,"internalType":"address"}],"anonymous":false},{"type":"event","name":"UserProxyCreated","inputs":[{"name":"user","type":"address","indexed":true,"internalType":"address"},{"name":"proxy","type":"address","indexed":true,"internalType":"address"}],"anonymous":false},{"type":"event","name":"VaultLiquidated","inputs":[{"name":"vaultId","type":"bytes32","indexed":true,"internalType":"bytes32"},{"name":"liquidator","type":"address","indexed":false,"internalType":"address"}],"anonymous":false},{"type":"event","name":"VaultMarkedCollateralized","inputs":[{"name":"vaultId","type":"bytes32","indexed":true,"internalType":"bytes32"}],"anonymous":false},{"type":"event","name":"VaultMarkedEscrowed","inputs":[{"name":"vaultId","type":"bytes32","indexed":true,"internalType":"bytes32"}],"anonymous":false},{"type":"event","name":"VaultMarkedRedeemed","inputs":[{"name":"vaultId","type":"bytes32","indexed":true,"internalType":"bytes32"}],"anonymous":false},{"type":"event","name":"VaultOwnershipChanged","inputs":[{"name":"vaultId","type":"bytes32","indexed":true,"internalType":"bytes32"},{"name":"newOwner","type":"address","indexed":true,"internalType":"address"}],"anonymous":false},{"type":"event","name":"VaultSwapUpdated","inputs":[{"name":"vaultSwap","type":"address","indexed":true,"internalType":"address"}],"anonymous":false},{"type":"error","name":"AddressEmptyCode","inputs":[{"name":"target","type":"address","internalType":"address"}]},{"type":"error","name":"DebtMustBeRepaidFirst","inputs":[]},{"type":"error","name":"EmptyArray","inputs":[]},{"type":"error","name":"ERC1967InvalidImplementation","inputs":[{"name":"implementation","type":"address","internalType":"address"}]},{"type":"error","name":"ERC1967NonPayable","inputs":[]},{"type":"error","name":"FailedCall","inputs":[]},{"type":"error","name":"FailedDeployment","inputs":[]},{"type":"error","name":"IncompleteLiquidation","inputs":[{"name":"expected","type":"uint256","internalType":"uint256"},{"name":"actual","type":"uint256","internalType":"uint256"}]},{"type":"error","name":"IncompleteWithdrawal","inputs":[{"name":"expected","type":"uint256","internalType":"uint256"},{"name":"actual","type":"uint256","internalType":"uint256"}]},{"type":"error","name":"InsufficientBalance","inputs":[{"name":"balance","type":"uint256","internalType":"uint256"},{"name":"needed","type":"uint256","internalType":"uint256"}]},{"type":"error","name":"InvalidAmount","inputs":[]},{"type":"error","name":"InvalidFairnessPaymentTokenDecimals","inputs":[]},{"type":"error","name":"InvalidProxyContract","inputs":[]},{"type":"error","name":"InvalidVaultStatus","inputs":[]},{"type":"error","name":"MaxPositionBelowMin","inputs":[{"name":"maxPositionBTC","type":"uint256","internalType":"uint256"},{"name":"minPositionBTC","type":"uint256","internalType":"uint256"}]},{"type":"error","name":"OnlyApplicationController","inputs":[]},{"type":"error","name":"PositionAboveMaximum","inputs":[{"name":"actual","type":"uint256","internalType":"uint256"},{"name":"maximum","type":"uint256","internalType":"uint256"}]},{"type":"error","name":"PositionBelowMinimum","inputs":[{"name":"actual","type":"uint256","internalType":"uint256"},{"name":"minimum","type":"uint256","internalType":"uint256"}]},{"type":"error","name":"PositionMaxBelowVaultMax","inputs":[{"name":"maxPositionBTC","type":"uint256","internalType":"uint256"},{"name":"vaultMaximum","type":"uint256","internalType":"uint256"}]},{"type":"error","name":"PositionMinBelowVaultMin","inputs":[{"name":"minPositionBTC","type":"uint256","internalType":"uint256"},{"name":"vaultMinimum","type":"uint256","internalType":"uint256"}]},{"type":"error","name":"PositionNotLiquidatable","inputs":[]},{"type":"error","name":"SafeERC20FailedOperation","inputs":[{"name":"token","type":"address","internalType":"address"}]},{"type":"error","name":"TBV_AlreadyPaused","inputs":[]},{"type":"error","name":"TBV_NotPaused","inputs":[]},{"type":"error","name":"TBV_Paused","inputs":[]},{"type":"error","name":"TBV_Unauthorized","inputs":[]},{"type":"error","name":"UUPSUnauthorizedCallContext","inputs":[]},{"type":"error","name":"UUPSUnsupportedProxiableUUID","inputs":[{"name":"slot","type":"bytes32","internalType":"bytes32"}]},{"type":"error","name":"Unauthorized","inputs":[]},{"type":"error","name":"VaultCountExceedsMaximum","inputs":[{"name":"actual","type":"uint256","internalType":"uint256"},{"name":"maximum","type":"uint256","internalType":"uint256"}]},{"type":"error","name":"VaultNotEscrowed","inputs":[]},{"type":"error","name":"VaultSwapNotSet","inputs":[]},{"type":"error","name":"ZeroAddress","inputs":[]},{"type":"error","name":"ZeroAmount","inputs":[]},{"type":"error","name":"ZeroBorrowAmount","inputs":[]}]');async function L(e,t,n){const a=await e.readContract({address:t,abi:o,functionName:"getPosition",args:[n]});return a.proxyContract===T.zeroAddress?null:{proxyContract:a.proxyContract,vaultIds:a.vaultIds}}async function D(e,t,n){return await e.readContract({address:t,abi:o,functionName:"getPositionCollateral",args:[n]})}function _(e){return e.drawnShares>0n||e.premiumShares>0n||e.realizedPremiumRay>0n}const b=JSON.parse('[{"type":"function","name":"DOMAIN_SEPARATOR","inputs":[],"outputs":[{"name":"","type":"bytes32","internalType":"bytes32"}],"stateMutability":"view"},{"type":"function","name":"ORACLE","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"SET_USER_POSITION_MANAGER_TYPEHASH","inputs":[],"outputs":[{"name":"","type":"bytes32","internalType":"bytes32"}],"stateMutability":"view"},{"type":"function","name":"addDynamicReserveConfig","inputs":[{"name":"reserveId","type":"uint256","internalType":"uint256"},{"name":"dynamicConfig","type":"tuple","internalType":"struct ITBVAaveSpoke.DynamicReserveConfig","components":[{"name":"collateralFactor","type":"uint16","internalType":"uint16"},{"name":"maxLiquidationBonus","type":"uint32","internalType":"uint32"},{"name":"liquidationFee","type":"uint16","internalType":"uint16"}]}],"outputs":[{"name":"dynamicConfigKey","type":"uint24","internalType":"uint24"}],"stateMutability":"nonpayable"},{"type":"function","name":"addReserve","inputs":[{"name":"hub","type":"address","internalType":"address"},{"name":"assetId","type":"uint256","internalType":"uint256"},{"name":"priceSource","type":"address","internalType":"address"},{"name":"config","type":"tuple","internalType":"struct ITBVAaveSpoke.ReserveConfig","components":[{"name":"paused","type":"bool","internalType":"bool"},{"name":"frozen","type":"bool","internalType":"bool"},{"name":"borrowable","type":"bool","internalType":"bool"},{"name":"collateralRisk","type":"uint24","internalType":"uint24"}]},{"name":"dynamicConfig","type":"tuple","internalType":"struct ITBVAaveSpoke.DynamicReserveConfig","components":[{"name":"collateralFactor","type":"uint16","internalType":"uint16"},{"name":"maxLiquidationBonus","type":"uint32","internalType":"uint32"},{"name":"liquidationFee","type":"uint16","internalType":"uint16"}]}],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"nonpayable"},{"type":"function","name":"borrow","inputs":[{"name":"reserveId","type":"uint256","internalType":"uint256"},{"name":"amount","type":"uint256","internalType":"uint256"},{"name":"onBehalfOf","type":"address","internalType":"address"}],"outputs":[{"name":"","type":"uint256","internalType":"uint256"},{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"nonpayable"},{"type":"function","name":"getDynamicReserveConfig","inputs":[{"name":"reserveId","type":"uint256","internalType":"uint256"},{"name":"dynamicConfigKey","type":"uint24","internalType":"uint24"}],"outputs":[{"name":"","type":"tuple","internalType":"struct ITBVAaveSpoke.DynamicReserveConfig","components":[{"name":"collateralFactor","type":"uint16","internalType":"uint16"},{"name":"maxLiquidationBonus","type":"uint32","internalType":"uint32"},{"name":"liquidationFee","type":"uint16","internalType":"uint16"}]}],"stateMutability":"view"},{"type":"function","name":"getLiquidationBonus","inputs":[{"name":"reserveId","type":"uint256","internalType":"uint256"},{"name":"user","type":"address","internalType":"address"},{"name":"healthFactor","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"getLiquidationConfig","inputs":[],"outputs":[{"name":"","type":"tuple","internalType":"struct ITBVAaveSpoke.LiquidationConfig","components":[{"name":"targetHealthFactor","type":"uint128","internalType":"uint128"},{"name":"healthFactorForMaxBonus","type":"uint64","internalType":"uint64"},{"name":"liquidationBonusFactor","type":"uint16","internalType":"uint16"}]}],"stateMutability":"view"},{"type":"function","name":"getLiquidationLogic","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"pure"},{"type":"function","name":"getReserve","inputs":[{"name":"reserveId","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"","type":"tuple","internalType":"struct ITBVAaveSpoke.Reserve","components":[{"name":"underlying","type":"address","internalType":"address"},{"name":"hub","type":"address","internalType":"address"},{"name":"assetId","type":"uint16","internalType":"uint16"},{"name":"decimals","type":"uint8","internalType":"uint8"},{"name":"dynamicConfigKey","type":"uint24","internalType":"uint24"},{"name":"paused","type":"bool","internalType":"bool"},{"name":"frozen","type":"bool","internalType":"bool"},{"name":"borrowable","type":"bool","internalType":"bool"},{"name":"collateralRisk","type":"uint24","internalType":"uint24"}]}],"stateMutability":"view"},{"type":"function","name":"getReserveConfig","inputs":[{"name":"reserveId","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"","type":"tuple","internalType":"struct ITBVAaveSpoke.ReserveConfig","components":[{"name":"paused","type":"bool","internalType":"bool"},{"name":"frozen","type":"bool","internalType":"bool"},{"name":"borrowable","type":"bool","internalType":"bool"},{"name":"collateralRisk","type":"uint24","internalType":"uint24"}]}],"stateMutability":"view"},{"type":"function","name":"getReserveCount","inputs":[],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"getReserveDebt","inputs":[{"name":"reserveId","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"","type":"uint256","internalType":"uint256"},{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"getReserveSuppliedAssets","inputs":[{"name":"reserveId","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"getReserveSuppliedShares","inputs":[{"name":"reserveId","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"getReserveTotalDebt","inputs":[{"name":"reserveId","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"getUserAccountData","inputs":[{"name":"user","type":"address","internalType":"address"}],"outputs":[{"name":"","type":"tuple","internalType":"struct ITBVAaveSpoke.UserAccountData","components":[{"name":"riskPremium","type":"uint256","internalType":"uint256"},{"name":"avgCollateralFactor","type":"uint256","internalType":"uint256"},{"name":"healthFactor","type":"uint256","internalType":"uint256"},{"name":"totalCollateralValue","type":"uint256","internalType":"uint256"},{"name":"totalDebtValue","type":"uint256","internalType":"uint256"},{"name":"activeCollateralCount","type":"uint256","internalType":"uint256"},{"name":"borrowedCount","type":"uint256","internalType":"uint256"}]}],"stateMutability":"view"},{"type":"function","name":"getUserDebt","inputs":[{"name":"reserveId","type":"uint256","internalType":"uint256"},{"name":"user","type":"address","internalType":"address"}],"outputs":[{"name":"","type":"uint256","internalType":"uint256"},{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"getUserPosition","inputs":[{"name":"reserveId","type":"uint256","internalType":"uint256"},{"name":"user","type":"address","internalType":"address"}],"outputs":[{"name":"","type":"tuple","internalType":"struct ITBVAaveSpoke.UserPosition","components":[{"name":"drawnShares","type":"uint120","internalType":"uint120"},{"name":"premiumShares","type":"uint120","internalType":"uint120"},{"name":"realizedPremiumRay","type":"uint200","internalType":"uint200"},{"name":"premiumOffsetRay","type":"uint200","internalType":"uint200"},{"name":"suppliedShares","type":"uint120","internalType":"uint120"},{"name":"dynamicConfigKey","type":"uint24","internalType":"uint24"}]}],"stateMutability":"view"},{"type":"function","name":"getUserPremiumDebtRay","inputs":[{"name":"reserveId","type":"uint256","internalType":"uint256"},{"name":"user","type":"address","internalType":"address"}],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"getUserReserveStatus","inputs":[{"name":"reserveId","type":"uint256","internalType":"uint256"},{"name":"user","type":"address","internalType":"address"}],"outputs":[{"name":"","type":"bool","internalType":"bool"},{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"view"},{"type":"function","name":"getUserSuppliedAssets","inputs":[{"name":"reserveId","type":"uint256","internalType":"uint256"},{"name":"user","type":"address","internalType":"address"}],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"getUserSuppliedShares","inputs":[{"name":"reserveId","type":"uint256","internalType":"uint256"},{"name":"user","type":"address","internalType":"address"}],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"getUserTotalDebt","inputs":[{"name":"reserveId","type":"uint256","internalType":"uint256"},{"name":"user","type":"address","internalType":"address"}],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"isPositionManager","inputs":[{"name":"user","type":"address","internalType":"address"},{"name":"positionManager","type":"address","internalType":"address"}],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"view"},{"type":"function","name":"isPositionManagerActive","inputs":[{"name":"positionManager","type":"address","internalType":"address"}],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"view"},{"type":"function","name":"liquidationCall","inputs":[{"name":"collateralReserveId","type":"uint256","internalType":"uint256"},{"name":"debtReserveId","type":"uint256","internalType":"uint256"},{"name":"user","type":"address","internalType":"address"},{"name":"debtToCover","type":"uint256","internalType":"uint256"},{"name":"receiveShares","type":"bool","internalType":"bool"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"permitReserve","inputs":[{"name":"reserveId","type":"uint256","internalType":"uint256"},{"name":"onBehalfOf","type":"address","internalType":"address"},{"name":"value","type":"uint256","internalType":"uint256"},{"name":"deadline","type":"uint256","internalType":"uint256"},{"name":"permitV","type":"uint8","internalType":"uint8"},{"name":"permitR","type":"bytes32","internalType":"bytes32"},{"name":"permitS","type":"bytes32","internalType":"bytes32"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"renouncePositionManagerRole","inputs":[{"name":"user","type":"address","internalType":"address"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"repay","inputs":[{"name":"reserveId","type":"uint256","internalType":"uint256"},{"name":"amount","type":"uint256","internalType":"uint256"},{"name":"onBehalfOf","type":"address","internalType":"address"}],"outputs":[{"name":"","type":"uint256","internalType":"uint256"},{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"nonpayable"},{"type":"function","name":"setUserPositionManager","inputs":[{"name":"positionManager","type":"address","internalType":"address"},{"name":"approve","type":"bool","internalType":"bool"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"setUserPositionManagerWithSig","inputs":[{"name":"positionManager","type":"address","internalType":"address"},{"name":"user","type":"address","internalType":"address"},{"name":"approve","type":"bool","internalType":"bool"},{"name":"nonce","type":"uint256","internalType":"uint256"},{"name":"deadline","type":"uint256","internalType":"uint256"},{"name":"signature","type":"bytes","internalType":"bytes"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"setUsingAsCollateral","inputs":[{"name":"reserveId","type":"uint256","internalType":"uint256"},{"name":"usingAsCollateral","type":"bool","internalType":"bool"},{"name":"onBehalfOf","type":"address","internalType":"address"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"supply","inputs":[{"name":"reserveId","type":"uint256","internalType":"uint256"},{"name":"amount","type":"uint256","internalType":"uint256"},{"name":"onBehalfOf","type":"address","internalType":"address"}],"outputs":[{"name":"","type":"uint256","internalType":"uint256"},{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"nonpayable"},{"type":"function","name":"updateDynamicReserveConfig","inputs":[{"name":"reserveId","type":"uint256","internalType":"uint256"},{"name":"dynamicConfigKey","type":"uint24","internalType":"uint24"},{"name":"dynamicConfig","type":"tuple","internalType":"struct ITBVAaveSpoke.DynamicReserveConfig","components":[{"name":"collateralFactor","type":"uint16","internalType":"uint16"},{"name":"maxLiquidationBonus","type":"uint32","internalType":"uint32"},{"name":"liquidationFee","type":"uint16","internalType":"uint16"}]}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"updateLiquidationConfig","inputs":[{"name":"config","type":"tuple","internalType":"struct ITBVAaveSpoke.LiquidationConfig","components":[{"name":"targetHealthFactor","type":"uint128","internalType":"uint128"},{"name":"healthFactorForMaxBonus","type":"uint64","internalType":"uint64"},{"name":"liquidationBonusFactor","type":"uint16","internalType":"uint16"}]}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"updatePositionManager","inputs":[{"name":"positionManager","type":"address","internalType":"address"},{"name":"active","type":"bool","internalType":"bool"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"updateReserveConfig","inputs":[{"name":"reserveId","type":"uint256","internalType":"uint256"},{"name":"params","type":"tuple","internalType":"struct ITBVAaveSpoke.ReserveConfig","components":[{"name":"paused","type":"bool","internalType":"bool"},{"name":"frozen","type":"bool","internalType":"bool"},{"name":"borrowable","type":"bool","internalType":"bool"},{"name":"collateralRisk","type":"uint24","internalType":"uint24"}]}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"updateReservePriceSource","inputs":[{"name":"reserveId","type":"uint256","internalType":"uint256"},{"name":"priceSource","type":"address","internalType":"address"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"updateUserDynamicConfig","inputs":[{"name":"onBehalfOf","type":"address","internalType":"address"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"updateUserRiskPremium","inputs":[{"name":"onBehalfOf","type":"address","internalType":"address"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"withdraw","inputs":[{"name":"reserveId","type":"uint256","internalType":"uint256"},{"name":"amount","type":"uint256","internalType":"uint256"},{"name":"onBehalfOf","type":"address","internalType":"address"}],"outputs":[{"name":"","type":"uint256","internalType":"uint256"},{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"nonpayable"}]');function U(e){return{drawnShares:e.drawnShares,premiumShares:e.premiumShares,realizedPremiumRay:e.realizedPremiumRay,premiumOffsetRay:e.premiumOffsetRay,suppliedShares:e.suppliedShares,dynamicConfigKey:e.dynamicConfigKey}}async function N(e,t,n){const a=await e.readContract({address:t,abi:b,functionName:"getUserAccountData",args:[n]});return{riskPremium:a.riskPremium,avgCollateralFactor:a.avgCollateralFactor,healthFactor:a.healthFactor,totalCollateralValue:a.totalCollateralValue,totalDebtValue:a.totalDebtValue,activeCollateralCount:a.activeCollateralCount,borrowedCount:a.borrowedCount}}async function v(e,t,n,i){const a=await e.readContract({address:t,abi:b,functionName:"getUserPosition",args:[n,i]});return U(a)}async function k(e,t,n,i){const a=await v(e,t,n,i);return _(a)}async function H(e,t,n,i){return(await v(e,t,n,i)).suppliedShares>0n}async function q(e,t,n,i){return await e.readContract({address:t,abi:b,functionName:"getUserTotalDebt",args:[n,i]})}async function z(e,t){return P}async function W(e,t){return S}async function K(e,t){return w}function G(e,t){const n=T.encodeFunctionData({abi:o,functionName:c.WITHDRAW_COLLATERALS,args:[t]});return{to:e,data:n}}function Y(e,t,n,i){const a=T.encodeFunctionData({abi:o,functionName:c.BORROW,args:[t,n,i]});return{to:e,data:a}}function X(e,t,n,i){const a=T.encodeFunctionData({abi:o,functionName:c.REPAY,args:[t,n,i]});return{to:e,data:a}}function Z(e){return Number(e)/10**R}function $(e){return Number(e)/10**g}function J(e,t){return t<=0?"0%":`${(e/t*100).toFixed(1)}%`}const d={GREEN:"#00E676",AMBER:"#FFC400",RED:"#FF1744",GRAY:"#5A5A5A"};function B(e,t){return t?e===null?"safe":e<1?"danger":e<I?"warning":"safe":"no_debt"}function Q(e){switch(e){case"safe":return d.GREEN;case"warning":return d.AMBER;case"danger":return d.RED;case"no_debt":return d.GRAY}}function j(e){return e===null?"-":e.toFixed(2)}function ee(e){return e===null?!0:e>=1}function te(e){const t=isFinite(e),n=isFinite(e)?e:null;return B(n,t)}function ne(e,t,n){return t<=0?1/0:e*(n/M)/t}function ae(e,t){if(t<=0)return{vaultIds:[],actualAmount:0};const n=[...e].sort((s,u)=>u.amount-s.amount),i=[];let a=0;for(const s of n){if(a>=t)break;i.push(s.id),a+=s.amount}return{vaultIds:i,actualAmount:a}}function ie(e){return e.reduce((t,n)=>t+n.amount,0)}const se=BigInt(Number.MAX_SAFE_INTEGER);function C(e,t){if(e>se)throw new RangeError(`${t} (${e}) exceeds Number.MAX_SAFE_INTEGER; precision would be lost`)}function A(e,t,n,i){if(i<=0)return 1;const a=t*e;if(n<=a)return 1;const s=e*(n-i)/(n-a)*(t/i);return Math.max(0,Math.min(1,s))}function re(e){const{totalBtc:t,CF:n,LB:i,THF:a,expectedHF:s,safetyMargin:u}=e;if(t<=0n)return{sacrificialVault:0n,protectedVault:0n,seizedFraction:0,targetSeizureBtc:0n};C(t,"totalBtc");const r=A(n,i,a,s),m=Number(t),y=BigInt(Math.ceil(m*r)),p=BigInt(Math.ceil(m*r*u)),l=p>t?t:p,f=t-l;return{sacrificialVault:l,protectedVault:f,seizedFraction:r,targetSeizureBtc:y}}function ue(e){const{minPegin:t,seizedFraction:n,safetyMargin:i}=e;C(t,"minPegin");const a=n*i;if(a>=1||a<=0)return 0n;const s=1-a,u=Math.ceil(Number(t)/s),r=Math.ceil(Number(t)/a);return BigInt(Math.max(u,r))}function pe(e){const{vaultAmounts:t,CF:n,LB:i,THF:a,expectedHF:s,safetyMargin:u}=e;if(t.length===0)return{needsRebalance:!1,deficit:0n,currentCoverage:0n,targetCoverage:0n};const r=t.reduce((f,F)=>f+F,0n);C(r,"totalBtc");const m=A(n,i,a,s),y=BigInt(Math.ceil(Number(r)*m*u)),p=t[0],l=y>p?y-p:0n;return{needsRebalance:l>0n,deficit:l,currentCoverage:p,targetCoverage:y}}exports.AAVE_BASE_CURRENCY_DECIMALS=R;exports.AAVE_FUNCTION_NAMES=c;exports.AaveIntegrationControllerABI=o;exports.AaveSpokeABI=b;exports.BPS_SCALE=M;exports.BPS_TO_PERCENT_DIVISOR=E;exports.BTC_DECIMALS=x;exports.FULL_REPAY_BUFFER_DIVISOR=O;exports.HEALTH_FACTOR_COLORS=d;exports.HEALTH_FACTOR_WARNING_THRESHOLD=I;exports.MIN_HEALTH_FACTOR_FOR_BORROW=V;exports.MOCK_COLLATERAL_FACTOR_BPS=S;exports.MOCK_LIQUIDATION_BONUS_WAD=w;exports.MOCK_TARGET_HEALTH_FACTOR_WAD=P;exports.USDC_DECIMALS=h;exports.WAD_DECIMALS=g;exports.aaveValueToUsd=Z;exports.buildBorrowTx=Y;exports.buildRepayTx=X;exports.buildWithdrawCollateralsTx=G;exports.calculateBorrowRatio=J;exports.calculateHealthFactor=ne;exports.calculateTotalVaultAmount=ie;exports.checkRebalanceNeeded=pe;exports.computeMinDepositForSplit=ue;exports.computeOptimalSplit=re;exports.computeSeizedFraction=A;exports.formatHealthFactor=j;exports.getCollateralFactor=W;exports.getHealthFactorColor=Q;exports.getHealthFactorStatus=B;exports.getHealthFactorStatusFromValue=te;exports.getLiquidationBonus=K;exports.getPosition=L;exports.getPositionCollateral=D;exports.getTargetHealthFactor=z;exports.getUserAccountData=N;exports.getUserPosition=v;exports.getUserTotalDebt=q;exports.hasCollateral=H;exports.hasDebt=k;exports.hasDebtFromPosition=_;exports.isHealthFactorHealthy=ee;exports.selectVaultsForAmount=ae;exports.wadToNumber=$;
1
+ "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const T=require("viem"),c={WITHDRAW_COLLATERALS:"withdrawCollaterals",BORROW:"borrowFromCorePosition",REPAY:"repayToCorePosition"},x=8,h=6,E=100,M=1e4,R=26,g=18,I=1.5,V=1.2,O=10000n,P=1100000000000000000n,S=7500n,w=1050000000000000000n,o=JSON.parse('[{"type":"constructor","inputs":[{"name":"vaultBTC_","type":"address","internalType":"address"},{"name":"coreSpoke_","type":"address","internalType":"address"},{"name":"btcVaultManager_","type":"address","internalType":"address"},{"name":"applicationRegistry_","type":"address","internalType":"address"},{"name":"coreSpokeProxyImpl_","type":"address","internalType":"address"},{"name":"coreVaultBtcReserveId_","type":"uint256","internalType":"uint256"},{"name":"protocolParams_","type":"address","internalType":"address"}],"stateMutability":"nonpayable"},{"type":"function","name":"APPLICATION_ADMIN","inputs":[],"outputs":[{"name":"","type":"bytes32","internalType":"bytes32"}],"stateMutability":"pure"},{"type":"function","name":"APPLICATION_PAUSING_GUARDIAN","inputs":[],"outputs":[{"name":"","type":"bytes32","internalType":"bytes32"}],"stateMutability":"pure"},{"type":"function","name":"APP_REGISTRY","inputs":[],"outputs":[{"name":"","type":"address","internalType":"contract IApplicationRegistry"}],"stateMutability":"view"},{"type":"function","name":"BTC_VAULT_CORE_SPOKE","inputs":[],"outputs":[{"name":"","type":"address","internalType":"contract ITBVAaveSpoke"}],"stateMutability":"view"},{"type":"function","name":"BTC_VAULT_CORE_SPOKE_PROXY_IMPLEMENTATION","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"BTC_VAULT_CORE_VAULT_BTC_RESERVE_ID","inputs":[],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"BTC_VAULT_MANAGER","inputs":[],"outputs":[{"name":"","type":"address","internalType":"contract IBTCVaultsManager"}],"stateMutability":"view"},{"type":"function","name":"DEFAULT_ADMIN_ROLE","inputs":[],"outputs":[{"name":"","type":"bytes32","internalType":"bytes32"}],"stateMutability":"view"},{"type":"function","name":"PROTOCOL_PARAMS","inputs":[],"outputs":[{"name":"","type":"address","internalType":"contract IProtocolParams"}],"stateMutability":"view"},{"type":"function","name":"TIMELOCK_UPGRADER","inputs":[],"outputs":[{"name":"","type":"bytes32","internalType":"bytes32"}],"stateMutability":"view"},{"type":"function","name":"UPGRADE_INTERFACE_VERSION","inputs":[],"outputs":[{"name":"","type":"string","internalType":"string"}],"stateMutability":"view"},{"type":"function","name":"VAULT_BTC","inputs":[],"outputs":[{"name":"","type":"address","internalType":"contract IVaultBTC"}],"stateMutability":"view"},{"type":"function","name":"activateVault","inputs":[{"name":"vaultId","type":"bytes32","internalType":"bytes32"},{"name":"vault","type":"tuple","internalType":"struct IBTCVaultsManager.BTCVault","components":[{"name":"depositor","type":"address","internalType":"address"},{"name":"depositorBtcPubKey","type":"bytes32","internalType":"bytes32"},{"name":"depositorSignedPeginTx","type":"bytes","internalType":"bytes"},{"name":"amount","type":"uint256","internalType":"uint256"},{"name":"vaultProvider","type":"address","internalType":"address"},{"name":"status","type":"uint8","internalType":"enum IBTCVaultsManager.BTCVaultStatus"},{"name":"applicationEntryPoint","type":"address","internalType":"address"},{"name":"universalChallengersVersion","type":"uint16","internalType":"uint16"},{"name":"appVaultKeepersVersion","type":"uint16","internalType":"uint16"},{"name":"offchainParamsVersion","type":"uint16","internalType":"uint16"},{"name":"proverProgramVersion","type":"uint16","internalType":"uint16"},{"name":"createdAt","type":"uint256","internalType":"uint256"},{"name":"verifiedAt","type":"uint256","internalType":"uint256"},{"name":"depositorLamportPkHash","type":"bytes32","internalType":"bytes32"},{"name":"hashlock","type":"bytes32","internalType":"bytes32"},{"name":"htlcVout","type":"uint8","internalType":"uint8"}]}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"applicationFeeRecipient","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"borrowFromCorePosition","inputs":[{"name":"debtReserveId","type":"uint256","internalType":"uint256"},{"name":"amount","type":"uint256","internalType":"uint256"},{"name":"receiver","type":"address","internalType":"address"}],"outputs":[{"name":"borrowedShares","type":"uint256","internalType":"uint256"},{"name":"borrowedAmount","type":"uint256","internalType":"uint256"}],"stateMutability":"nonpayable"},{"type":"function","name":"calculateLiquidationFees","inputs":[{"name":"borrower","type":"address","internalType":"address"}],"outputs":[{"name":"fairnessPayment","type":"tuple","internalType":"struct TokenAmountLib.TokenAmount","components":[{"name":"token","type":"address","internalType":"address"},{"name":"amount","type":"uint256","internalType":"uint256"}]},{"name":"protocolFee","type":"tuple","internalType":"struct TokenAmountLib.TokenAmount","components":[{"name":"token","type":"address","internalType":"address"},{"name":"amount","type":"uint256","internalType":"uint256"}]}],"stateMutability":"view"},{"type":"function","name":"calculateLiquidationPayment","inputs":[{"name":"borrower","type":"address","internalType":"address"}],"outputs":[{"name":"payments","type":"tuple[]","internalType":"struct TokenAmountLib.TokenAmount[]","components":[{"name":"token","type":"address","internalType":"address"},{"name":"amount","type":"uint256","internalType":"uint256"}]}],"stateMutability":"view"},{"type":"function","name":"coreSpokeLiquidationFeeBps","inputs":[],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"fairnessPaymentReserveId","inputs":[],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"fairnessPaymentToken","inputs":[],"outputs":[{"name":"","type":"address","internalType":"contract IERC20"}],"stateMutability":"view"},{"type":"function","name":"fullPause","inputs":[],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"getPosition","inputs":[{"name":"user","type":"address","internalType":"address"}],"outputs":[{"name":"position","type":"tuple","internalType":"struct AaveApplicationBase.MarketPosition","components":[{"name":"vaultIds","type":"bytes32[]","internalType":"bytes32[]"},{"name":"proxyContract","type":"address","internalType":"address"}]}],"stateMutability":"view"},{"type":"function","name":"getPositionCollateral","inputs":[{"name":"user","type":"address","internalType":"address"}],"outputs":[{"name":"totalCollateral","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"getPositionSizeParams","inputs":[],"outputs":[{"name":"minPositionBTC","type":"uint256","internalType":"uint256"},{"name":"maxPositionBTC","type":"uint256","internalType":"uint256"},{"name":"maxVaultsPerPosition","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"getRoleAdmin","inputs":[{"name":"role","type":"bytes32","internalType":"bytes32"}],"outputs":[{"name":"","type":"bytes32","internalType":"bytes32"}],"stateMutability":"view"},{"type":"function","name":"getUserOfProxy","inputs":[{"name":"proxy","type":"address","internalType":"address"}],"outputs":[{"name":"user","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"getVaultOwner","inputs":[{"name":"vaultId","type":"bytes32","internalType":"bytes32"}],"outputs":[{"name":"owner","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"getVaultUsageStatus","inputs":[{"name":"vaultId","type":"bytes32","internalType":"bytes32"}],"outputs":[{"name":"status","type":"uint8","internalType":"enum AaveVaultHandler.VaultUsageStatus"}],"stateMutability":"view"},{"type":"function","name":"grantRole","inputs":[{"name":"role","type":"bytes32","internalType":"bytes32"},{"name":"account","type":"address","internalType":"address"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"hasRole","inputs":[{"name":"role","type":"bytes32","internalType":"bytes32"},{"name":"account","type":"address","internalType":"address"}],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"view"},{"type":"function","name":"initialize","inputs":[{"name":"initialTBVAdmin","type":"address","internalType":"address"},{"name":"coreSpokeLiquidationFeeBps_","type":"uint256","internalType":"uint256"},{"name":"applicationFeeRecipient_","type":"address","internalType":"address"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"isVaultCollateralized","inputs":[{"name":"vaultId","type":"bytes32","internalType":"bytes32"}],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"view"},{"type":"function","name":"isVaultEscrowed","inputs":[{"name":"vaultId","type":"bytes32","internalType":"bytes32"}],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"view"},{"type":"function","name":"liquidateCorePosition","inputs":[{"name":"borrower","type":"address","internalType":"address"},{"name":"btcRedeemKey","type":"bytes32","internalType":"bytes32"}],"outputs":[{"name":"seizedAmount","type":"uint256","internalType":"uint256"}],"stateMutability":"nonpayable"},{"type":"function","name":"pauseState","inputs":[],"outputs":[{"name":"","type":"uint8","internalType":"enum ITBVPausable.PauseState"}],"stateMutability":"view"},{"type":"function","name":"positionSizeParams","inputs":[],"outputs":[{"name":"minPositionBTC","type":"uint256","internalType":"uint256"},{"name":"maxPositionBTC","type":"uint256","internalType":"uint256"},{"name":"maxVaultsPerPosition","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"proxiableUUID","inputs":[],"outputs":[{"name":"","type":"bytes32","internalType":"bytes32"}],"stateMutability":"view"},{"type":"function","name":"redeemVaultFromSwap","inputs":[{"name":"vaultId","type":"bytes32","internalType":"bytes32"},{"name":"btcRedeemKey","type":"bytes32","internalType":"bytes32"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"renounceRole","inputs":[{"name":"role","type":"bytes32","internalType":"bytes32"},{"name":"account","type":"address","internalType":"address"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"repayToCorePosition","inputs":[{"name":"borrower","type":"address","internalType":"address"},{"name":"debtReserveId","type":"uint256","internalType":"uint256"},{"name":"amount","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"repaidShares","type":"uint256","internalType":"uint256"},{"name":"repaidAmount","type":"uint256","internalType":"uint256"}],"stateMutability":"nonpayable"},{"type":"function","name":"revokeRole","inputs":[{"name":"role","type":"bytes32","internalType":"bytes32"},{"name":"account","type":"address","internalType":"address"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"setApplicationFeeRecipient","inputs":[{"name":"applicationFeeRecipient_","type":"address","internalType":"address"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"setCoreSpokeLiquidationFeeBps","inputs":[{"name":"coreSpokeLiquidationFeeBps_","type":"uint256","internalType":"uint256"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"setFairnessPaymentToken","inputs":[{"name":"token","type":"address","internalType":"address"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"setPositionSizeParams","inputs":[{"name":"params","type":"tuple","internalType":"struct AaveApplicationBase.PositionSizeParams","components":[{"name":"minPositionBTC","type":"uint256","internalType":"uint256"},{"name":"maxPositionBTC","type":"uint256","internalType":"uint256"},{"name":"maxVaultsPerPosition","type":"uint256","internalType":"uint256"}]}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"setVaultSwap","inputs":[{"name":"vaultSwap_","type":"address","internalType":"address"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"softPause","inputs":[],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"supportsInterface","inputs":[{"name":"interfaceId","type":"bytes4","internalType":"bytes4"}],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"view"},{"type":"function","name":"unpause","inputs":[],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"upgradeToAndCall","inputs":[{"name":"newImplementation","type":"address","internalType":"address"},{"name":"data","type":"bytes","internalType":"bytes"}],"outputs":[],"stateMutability":"payable"},{"type":"function","name":"vaultOwner","inputs":[{"name":"","type":"bytes32","internalType":"bytes32"}],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"vaultSwap","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"withdrawAllCollateralFromCorePosition","inputs":[],"outputs":[{"name":"withdrawnAmount","type":"uint256","internalType":"uint256"}],"stateMutability":"nonpayable"},{"type":"function","name":"withdrawCollaterals","inputs":[{"name":"vaultsToWithdraw","type":"bytes32[]","internalType":"bytes32[]"}],"outputs":[{"name":"amountWithdrawn","type":"uint256","internalType":"uint256"}],"stateMutability":"nonpayable"},{"type":"event","name":"BTCVaultCoreSpokeLiquidated","inputs":[{"name":"depositor","type":"address","indexed":true,"internalType":"address"},{"name":"liquidator","type":"address","indexed":true,"internalType":"address"},{"name":"valueDebtRepaid","type":"uint256","indexed":false,"internalType":"uint256"},{"name":"valueCollateralSeized","type":"uint256","indexed":false,"internalType":"uint256"},{"name":"fairnessPayment","type":"uint256","indexed":false,"internalType":"uint256"},{"name":"protocolFee","type":"uint256","indexed":false,"internalType":"uint256"}],"anonymous":false},{"type":"event","name":"BorrowedFromPosition","inputs":[{"name":"borrower","type":"address","indexed":true,"internalType":"address"},{"name":"debtReserveId","type":"uint256","indexed":true,"internalType":"uint256"},{"name":"receiver","type":"address","indexed":true,"internalType":"address"},{"name":"borrowAmount","type":"uint256","indexed":false,"internalType":"uint256"}],"anonymous":false},{"type":"event","name":"CollateralAdded","inputs":[{"name":"depositor","type":"address","indexed":true,"internalType":"address"},{"name":"vaultId","type":"bytes32","indexed":true,"internalType":"bytes32"}],"anonymous":false},{"type":"event","name":"CollateralWithdrawn","inputs":[{"name":"depositor","type":"address","indexed":true,"internalType":"address"},{"name":"vaultId","type":"bytes32","indexed":true,"internalType":"bytes32"}],"anonymous":false},{"type":"event","name":"ControllerApplicationFeeRecipientUpdated","inputs":[{"name":"applicationFeeRecipient","type":"address","indexed":false,"internalType":"address"}],"anonymous":false},{"type":"event","name":"CoreSpokeLiquidationFeeBpsUpdated","inputs":[{"name":"coreSpokeLiquidationFeeBps","type":"uint256","indexed":false,"internalType":"uint256"}],"anonymous":false},{"type":"event","name":"FairnessPaymentFailed","inputs":[{"name":"depositor","type":"address","indexed":true,"internalType":"address"},{"name":"liquidator","type":"address","indexed":true,"internalType":"address"},{"name":"protocolRecipient","type":"address","indexed":false,"internalType":"address"},{"name":"amount","type":"uint256","indexed":false,"internalType":"uint256"}],"anonymous":false},{"type":"event","name":"FairnessPaymentPaid","inputs":[{"name":"depositor","type":"address","indexed":true,"internalType":"address"},{"name":"liquidator","type":"address","indexed":true,"internalType":"address"},{"name":"amount","type":"uint256","indexed":false,"internalType":"uint256"}],"anonymous":false},{"type":"event","name":"FairnessPaymentTokenSet","inputs":[{"name":"token","type":"address","indexed":true,"internalType":"address"}],"anonymous":false},{"type":"event","name":"Initialized","inputs":[{"name":"version","type":"uint8","indexed":false,"internalType":"uint8"}],"anonymous":false},{"type":"event","name":"PausedWith","inputs":[{"name":"state","type":"uint8","indexed":true,"internalType":"enum ITBVPausable.PauseState"},{"name":"pauser","type":"address","indexed":true,"internalType":"address"}],"anonymous":false},{"type":"event","name":"PositionSizeParamsUpdated","inputs":[{"name":"oldMinPositionBTC","type":"uint256","indexed":false,"internalType":"uint256"},{"name":"oldMaxPositionBTC","type":"uint256","indexed":false,"internalType":"uint256"},{"name":"oldMaxVaultsPerPosition","type":"uint256","indexed":false,"internalType":"uint256"},{"name":"newMinPositionBTC","type":"uint256","indexed":false,"internalType":"uint256"},{"name":"newMaxPositionBTC","type":"uint256","indexed":false,"internalType":"uint256"},{"name":"newMaxVaultsPerPosition","type":"uint256","indexed":false,"internalType":"uint256"}],"anonymous":false},{"type":"event","name":"RepaidFromPosition","inputs":[{"name":"borrower","type":"address","indexed":true,"internalType":"address"},{"name":"debtReserveId","type":"uint256","indexed":true,"internalType":"uint256"},{"name":"repayAmount","type":"uint256","indexed":false,"internalType":"uint256"}],"anonymous":false},{"type":"event","name":"RoleAdminChanged","inputs":[{"name":"role","type":"bytes32","indexed":true,"internalType":"bytes32"},{"name":"previousAdminRole","type":"bytes32","indexed":true,"internalType":"bytes32"},{"name":"newAdminRole","type":"bytes32","indexed":true,"internalType":"bytes32"}],"anonymous":false},{"type":"event","name":"RoleGranted","inputs":[{"name":"role","type":"bytes32","indexed":true,"internalType":"bytes32"},{"name":"account","type":"address","indexed":true,"internalType":"address"},{"name":"sender","type":"address","indexed":true,"internalType":"address"}],"anonymous":false},{"type":"event","name":"RoleRevoked","inputs":[{"name":"role","type":"bytes32","indexed":true,"internalType":"bytes32"},{"name":"account","type":"address","indexed":true,"internalType":"address"},{"name":"sender","type":"address","indexed":true,"internalType":"address"}],"anonymous":false},{"type":"event","name":"Unpaused","inputs":[{"name":"pauser","type":"address","indexed":true,"internalType":"address"}],"anonymous":false},{"type":"event","name":"Upgraded","inputs":[{"name":"implementation","type":"address","indexed":true,"internalType":"address"}],"anonymous":false},{"type":"event","name":"UserProxyCreated","inputs":[{"name":"user","type":"address","indexed":true,"internalType":"address"},{"name":"proxy","type":"address","indexed":true,"internalType":"address"}],"anonymous":false},{"type":"event","name":"VaultLiquidated","inputs":[{"name":"vaultId","type":"bytes32","indexed":true,"internalType":"bytes32"},{"name":"liquidator","type":"address","indexed":false,"internalType":"address"}],"anonymous":false},{"type":"event","name":"VaultMarkedCollateralized","inputs":[{"name":"vaultId","type":"bytes32","indexed":true,"internalType":"bytes32"}],"anonymous":false},{"type":"event","name":"VaultMarkedEscrowed","inputs":[{"name":"vaultId","type":"bytes32","indexed":true,"internalType":"bytes32"}],"anonymous":false},{"type":"event","name":"VaultMarkedRedeemed","inputs":[{"name":"vaultId","type":"bytes32","indexed":true,"internalType":"bytes32"}],"anonymous":false},{"type":"event","name":"VaultOwnershipChanged","inputs":[{"name":"vaultId","type":"bytes32","indexed":true,"internalType":"bytes32"},{"name":"newOwner","type":"address","indexed":true,"internalType":"address"}],"anonymous":false},{"type":"event","name":"VaultSwapUpdated","inputs":[{"name":"vaultSwap","type":"address","indexed":true,"internalType":"address"}],"anonymous":false},{"type":"error","name":"AddressEmptyCode","inputs":[{"name":"target","type":"address","internalType":"address"}]},{"type":"error","name":"DebtMustBeRepaidFirst","inputs":[]},{"type":"error","name":"EmptyArray","inputs":[]},{"type":"error","name":"ERC1967InvalidImplementation","inputs":[{"name":"implementation","type":"address","internalType":"address"}]},{"type":"error","name":"ERC1967NonPayable","inputs":[]},{"type":"error","name":"FailedCall","inputs":[]},{"type":"error","name":"FailedDeployment","inputs":[]},{"type":"error","name":"IncompleteLiquidation","inputs":[{"name":"expected","type":"uint256","internalType":"uint256"},{"name":"actual","type":"uint256","internalType":"uint256"}]},{"type":"error","name":"IncompleteWithdrawal","inputs":[{"name":"expected","type":"uint256","internalType":"uint256"},{"name":"actual","type":"uint256","internalType":"uint256"}]},{"type":"error","name":"InsufficientBalance","inputs":[{"name":"balance","type":"uint256","internalType":"uint256"},{"name":"needed","type":"uint256","internalType":"uint256"}]},{"type":"error","name":"InvalidAmount","inputs":[]},{"type":"error","name":"InvalidFairnessPaymentTokenDecimals","inputs":[]},{"type":"error","name":"InvalidProxyContract","inputs":[]},{"type":"error","name":"InvalidVaultStatus","inputs":[]},{"type":"error","name":"MaxPositionBelowMin","inputs":[{"name":"maxPositionBTC","type":"uint256","internalType":"uint256"},{"name":"minPositionBTC","type":"uint256","internalType":"uint256"}]},{"type":"error","name":"OnlyApplicationController","inputs":[]},{"type":"error","name":"PositionAboveMaximum","inputs":[{"name":"actual","type":"uint256","internalType":"uint256"},{"name":"maximum","type":"uint256","internalType":"uint256"}]},{"type":"error","name":"PositionBelowMinimum","inputs":[{"name":"actual","type":"uint256","internalType":"uint256"},{"name":"minimum","type":"uint256","internalType":"uint256"}]},{"type":"error","name":"PositionMaxBelowVaultMax","inputs":[{"name":"maxPositionBTC","type":"uint256","internalType":"uint256"},{"name":"vaultMaximum","type":"uint256","internalType":"uint256"}]},{"type":"error","name":"PositionMinBelowVaultMin","inputs":[{"name":"minPositionBTC","type":"uint256","internalType":"uint256"},{"name":"vaultMinimum","type":"uint256","internalType":"uint256"}]},{"type":"error","name":"PositionNotLiquidatable","inputs":[]},{"type":"error","name":"SafeERC20FailedOperation","inputs":[{"name":"token","type":"address","internalType":"address"}]},{"type":"error","name":"TBV_AlreadyPaused","inputs":[]},{"type":"error","name":"TBV_NotPaused","inputs":[]},{"type":"error","name":"TBV_Paused","inputs":[]},{"type":"error","name":"TBV_Unauthorized","inputs":[]},{"type":"error","name":"UUPSUnauthorizedCallContext","inputs":[]},{"type":"error","name":"UUPSUnsupportedProxiableUUID","inputs":[{"name":"slot","type":"bytes32","internalType":"bytes32"}]},{"type":"error","name":"Unauthorized","inputs":[]},{"type":"error","name":"VaultCountExceedsMaximum","inputs":[{"name":"actual","type":"uint256","internalType":"uint256"},{"name":"maximum","type":"uint256","internalType":"uint256"}]},{"type":"error","name":"VaultNotEscrowed","inputs":[]},{"type":"error","name":"VaultSwapNotSet","inputs":[]},{"type":"error","name":"ZeroAddress","inputs":[]},{"type":"error","name":"ZeroAmount","inputs":[]},{"type":"error","name":"ZeroBorrowAmount","inputs":[]}]');async function L(e,t,n){const a=await e.readContract({address:t,abi:o,functionName:"getPosition",args:[n]});return a.proxyContract===T.zeroAddress?null:{proxyContract:a.proxyContract,vaultIds:a.vaultIds}}async function D(e,t,n){return await e.readContract({address:t,abi:o,functionName:"getPositionCollateral",args:[n]})}function _(e){return e.drawnShares>0n||e.premiumShares>0n||e.realizedPremiumRay>0n}const b=JSON.parse('[{"type":"function","name":"DOMAIN_SEPARATOR","inputs":[],"outputs":[{"name":"","type":"bytes32","internalType":"bytes32"}],"stateMutability":"view"},{"type":"function","name":"ORACLE","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"SET_USER_POSITION_MANAGER_TYPEHASH","inputs":[],"outputs":[{"name":"","type":"bytes32","internalType":"bytes32"}],"stateMutability":"view"},{"type":"function","name":"addDynamicReserveConfig","inputs":[{"name":"reserveId","type":"uint256","internalType":"uint256"},{"name":"dynamicConfig","type":"tuple","internalType":"struct ITBVAaveSpoke.DynamicReserveConfig","components":[{"name":"collateralFactor","type":"uint16","internalType":"uint16"},{"name":"maxLiquidationBonus","type":"uint32","internalType":"uint32"},{"name":"liquidationFee","type":"uint16","internalType":"uint16"}]}],"outputs":[{"name":"dynamicConfigKey","type":"uint24","internalType":"uint24"}],"stateMutability":"nonpayable"},{"type":"function","name":"addReserve","inputs":[{"name":"hub","type":"address","internalType":"address"},{"name":"assetId","type":"uint256","internalType":"uint256"},{"name":"priceSource","type":"address","internalType":"address"},{"name":"config","type":"tuple","internalType":"struct ITBVAaveSpoke.ReserveConfig","components":[{"name":"paused","type":"bool","internalType":"bool"},{"name":"frozen","type":"bool","internalType":"bool"},{"name":"borrowable","type":"bool","internalType":"bool"},{"name":"collateralRisk","type":"uint24","internalType":"uint24"}]},{"name":"dynamicConfig","type":"tuple","internalType":"struct ITBVAaveSpoke.DynamicReserveConfig","components":[{"name":"collateralFactor","type":"uint16","internalType":"uint16"},{"name":"maxLiquidationBonus","type":"uint32","internalType":"uint32"},{"name":"liquidationFee","type":"uint16","internalType":"uint16"}]}],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"nonpayable"},{"type":"function","name":"borrow","inputs":[{"name":"reserveId","type":"uint256","internalType":"uint256"},{"name":"amount","type":"uint256","internalType":"uint256"},{"name":"onBehalfOf","type":"address","internalType":"address"}],"outputs":[{"name":"","type":"uint256","internalType":"uint256"},{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"nonpayable"},{"type":"function","name":"getDynamicReserveConfig","inputs":[{"name":"reserveId","type":"uint256","internalType":"uint256"},{"name":"dynamicConfigKey","type":"uint24","internalType":"uint24"}],"outputs":[{"name":"","type":"tuple","internalType":"struct ITBVAaveSpoke.DynamicReserveConfig","components":[{"name":"collateralFactor","type":"uint16","internalType":"uint16"},{"name":"maxLiquidationBonus","type":"uint32","internalType":"uint32"},{"name":"liquidationFee","type":"uint16","internalType":"uint16"}]}],"stateMutability":"view"},{"type":"function","name":"getLiquidationBonus","inputs":[{"name":"reserveId","type":"uint256","internalType":"uint256"},{"name":"user","type":"address","internalType":"address"},{"name":"healthFactor","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"getLiquidationConfig","inputs":[],"outputs":[{"name":"","type":"tuple","internalType":"struct ITBVAaveSpoke.LiquidationConfig","components":[{"name":"targetHealthFactor","type":"uint128","internalType":"uint128"},{"name":"healthFactorForMaxBonus","type":"uint64","internalType":"uint64"},{"name":"liquidationBonusFactor","type":"uint16","internalType":"uint16"}]}],"stateMutability":"view"},{"type":"function","name":"getLiquidationLogic","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"pure"},{"type":"function","name":"getReserve","inputs":[{"name":"reserveId","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"","type":"tuple","internalType":"struct ITBVAaveSpoke.Reserve","components":[{"name":"underlying","type":"address","internalType":"address"},{"name":"hub","type":"address","internalType":"address"},{"name":"assetId","type":"uint16","internalType":"uint16"},{"name":"decimals","type":"uint8","internalType":"uint8"},{"name":"dynamicConfigKey","type":"uint24","internalType":"uint24"},{"name":"paused","type":"bool","internalType":"bool"},{"name":"frozen","type":"bool","internalType":"bool"},{"name":"borrowable","type":"bool","internalType":"bool"},{"name":"collateralRisk","type":"uint24","internalType":"uint24"}]}],"stateMutability":"view"},{"type":"function","name":"getReserveConfig","inputs":[{"name":"reserveId","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"","type":"tuple","internalType":"struct ITBVAaveSpoke.ReserveConfig","components":[{"name":"paused","type":"bool","internalType":"bool"},{"name":"frozen","type":"bool","internalType":"bool"},{"name":"borrowable","type":"bool","internalType":"bool"},{"name":"collateralRisk","type":"uint24","internalType":"uint24"}]}],"stateMutability":"view"},{"type":"function","name":"getReserveCount","inputs":[],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"getReserveDebt","inputs":[{"name":"reserveId","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"","type":"uint256","internalType":"uint256"},{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"getReserveSuppliedAssets","inputs":[{"name":"reserveId","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"getReserveSuppliedShares","inputs":[{"name":"reserveId","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"getReserveTotalDebt","inputs":[{"name":"reserveId","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"getUserAccountData","inputs":[{"name":"user","type":"address","internalType":"address"}],"outputs":[{"name":"","type":"tuple","internalType":"struct ITBVAaveSpoke.UserAccountData","components":[{"name":"riskPremium","type":"uint256","internalType":"uint256"},{"name":"avgCollateralFactor","type":"uint256","internalType":"uint256"},{"name":"healthFactor","type":"uint256","internalType":"uint256"},{"name":"totalCollateralValue","type":"uint256","internalType":"uint256"},{"name":"totalDebtValue","type":"uint256","internalType":"uint256"},{"name":"activeCollateralCount","type":"uint256","internalType":"uint256"},{"name":"borrowedCount","type":"uint256","internalType":"uint256"}]}],"stateMutability":"view"},{"type":"function","name":"getUserDebt","inputs":[{"name":"reserveId","type":"uint256","internalType":"uint256"},{"name":"user","type":"address","internalType":"address"}],"outputs":[{"name":"","type":"uint256","internalType":"uint256"},{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"getUserPosition","inputs":[{"name":"reserveId","type":"uint256","internalType":"uint256"},{"name":"user","type":"address","internalType":"address"}],"outputs":[{"name":"","type":"tuple","internalType":"struct ITBVAaveSpoke.UserPosition","components":[{"name":"drawnShares","type":"uint120","internalType":"uint120"},{"name":"premiumShares","type":"uint120","internalType":"uint120"},{"name":"realizedPremiumRay","type":"uint200","internalType":"uint200"},{"name":"premiumOffsetRay","type":"uint200","internalType":"uint200"},{"name":"suppliedShares","type":"uint120","internalType":"uint120"},{"name":"dynamicConfigKey","type":"uint24","internalType":"uint24"}]}],"stateMutability":"view"},{"type":"function","name":"getUserPremiumDebtRay","inputs":[{"name":"reserveId","type":"uint256","internalType":"uint256"},{"name":"user","type":"address","internalType":"address"}],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"getUserReserveStatus","inputs":[{"name":"reserveId","type":"uint256","internalType":"uint256"},{"name":"user","type":"address","internalType":"address"}],"outputs":[{"name":"","type":"bool","internalType":"bool"},{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"view"},{"type":"function","name":"getUserSuppliedAssets","inputs":[{"name":"reserveId","type":"uint256","internalType":"uint256"},{"name":"user","type":"address","internalType":"address"}],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"getUserSuppliedShares","inputs":[{"name":"reserveId","type":"uint256","internalType":"uint256"},{"name":"user","type":"address","internalType":"address"}],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"getUserTotalDebt","inputs":[{"name":"reserveId","type":"uint256","internalType":"uint256"},{"name":"user","type":"address","internalType":"address"}],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"isPositionManager","inputs":[{"name":"user","type":"address","internalType":"address"},{"name":"positionManager","type":"address","internalType":"address"}],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"view"},{"type":"function","name":"isPositionManagerActive","inputs":[{"name":"positionManager","type":"address","internalType":"address"}],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"view"},{"type":"function","name":"liquidationCall","inputs":[{"name":"collateralReserveId","type":"uint256","internalType":"uint256"},{"name":"debtReserveId","type":"uint256","internalType":"uint256"},{"name":"user","type":"address","internalType":"address"},{"name":"debtToCover","type":"uint256","internalType":"uint256"},{"name":"receiveShares","type":"bool","internalType":"bool"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"permitReserve","inputs":[{"name":"reserveId","type":"uint256","internalType":"uint256"},{"name":"onBehalfOf","type":"address","internalType":"address"},{"name":"value","type":"uint256","internalType":"uint256"},{"name":"deadline","type":"uint256","internalType":"uint256"},{"name":"permitV","type":"uint8","internalType":"uint8"},{"name":"permitR","type":"bytes32","internalType":"bytes32"},{"name":"permitS","type":"bytes32","internalType":"bytes32"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"renouncePositionManagerRole","inputs":[{"name":"user","type":"address","internalType":"address"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"repay","inputs":[{"name":"reserveId","type":"uint256","internalType":"uint256"},{"name":"amount","type":"uint256","internalType":"uint256"},{"name":"onBehalfOf","type":"address","internalType":"address"}],"outputs":[{"name":"","type":"uint256","internalType":"uint256"},{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"nonpayable"},{"type":"function","name":"setUserPositionManager","inputs":[{"name":"positionManager","type":"address","internalType":"address"},{"name":"approve","type":"bool","internalType":"bool"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"setUserPositionManagerWithSig","inputs":[{"name":"positionManager","type":"address","internalType":"address"},{"name":"user","type":"address","internalType":"address"},{"name":"approve","type":"bool","internalType":"bool"},{"name":"nonce","type":"uint256","internalType":"uint256"},{"name":"deadline","type":"uint256","internalType":"uint256"},{"name":"signature","type":"bytes","internalType":"bytes"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"setUsingAsCollateral","inputs":[{"name":"reserveId","type":"uint256","internalType":"uint256"},{"name":"usingAsCollateral","type":"bool","internalType":"bool"},{"name":"onBehalfOf","type":"address","internalType":"address"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"supply","inputs":[{"name":"reserveId","type":"uint256","internalType":"uint256"},{"name":"amount","type":"uint256","internalType":"uint256"},{"name":"onBehalfOf","type":"address","internalType":"address"}],"outputs":[{"name":"","type":"uint256","internalType":"uint256"},{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"nonpayable"},{"type":"function","name":"updateDynamicReserveConfig","inputs":[{"name":"reserveId","type":"uint256","internalType":"uint256"},{"name":"dynamicConfigKey","type":"uint24","internalType":"uint24"},{"name":"dynamicConfig","type":"tuple","internalType":"struct ITBVAaveSpoke.DynamicReserveConfig","components":[{"name":"collateralFactor","type":"uint16","internalType":"uint16"},{"name":"maxLiquidationBonus","type":"uint32","internalType":"uint32"},{"name":"liquidationFee","type":"uint16","internalType":"uint16"}]}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"updateLiquidationConfig","inputs":[{"name":"config","type":"tuple","internalType":"struct ITBVAaveSpoke.LiquidationConfig","components":[{"name":"targetHealthFactor","type":"uint128","internalType":"uint128"},{"name":"healthFactorForMaxBonus","type":"uint64","internalType":"uint64"},{"name":"liquidationBonusFactor","type":"uint16","internalType":"uint16"}]}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"updatePositionManager","inputs":[{"name":"positionManager","type":"address","internalType":"address"},{"name":"active","type":"bool","internalType":"bool"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"updateReserveConfig","inputs":[{"name":"reserveId","type":"uint256","internalType":"uint256"},{"name":"params","type":"tuple","internalType":"struct ITBVAaveSpoke.ReserveConfig","components":[{"name":"paused","type":"bool","internalType":"bool"},{"name":"frozen","type":"bool","internalType":"bool"},{"name":"borrowable","type":"bool","internalType":"bool"},{"name":"collateralRisk","type":"uint24","internalType":"uint24"}]}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"updateReservePriceSource","inputs":[{"name":"reserveId","type":"uint256","internalType":"uint256"},{"name":"priceSource","type":"address","internalType":"address"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"updateUserDynamicConfig","inputs":[{"name":"onBehalfOf","type":"address","internalType":"address"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"updateUserRiskPremium","inputs":[{"name":"onBehalfOf","type":"address","internalType":"address"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"withdraw","inputs":[{"name":"reserveId","type":"uint256","internalType":"uint256"},{"name":"amount","type":"uint256","internalType":"uint256"},{"name":"onBehalfOf","type":"address","internalType":"address"}],"outputs":[{"name":"","type":"uint256","internalType":"uint256"},{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"nonpayable"}]');function U(e){return{drawnShares:e.drawnShares,premiumShares:e.premiumShares,realizedPremiumRay:e.realizedPremiumRay,premiumOffsetRay:e.premiumOffsetRay,suppliedShares:e.suppliedShares,dynamicConfigKey:e.dynamicConfigKey}}async function N(e,t,n){const a=await e.readContract({address:t,abi:b,functionName:"getUserAccountData",args:[n]});return{riskPremium:a.riskPremium,avgCollateralFactor:a.avgCollateralFactor,healthFactor:a.healthFactor,totalCollateralValue:a.totalCollateralValue,totalDebtValue:a.totalDebtValue,activeCollateralCount:a.activeCollateralCount,borrowedCount:a.borrowedCount}}async function v(e,t,n,i){const a=await e.readContract({address:t,abi:b,functionName:"getUserPosition",args:[n,i]});return U(a)}async function k(e,t,n,i){const a=await v(e,t,n,i);return _(a)}async function H(e,t,n,i){return(await v(e,t,n,i)).suppliedShares>0n}async function q(e,t,n,i){return await e.readContract({address:t,abi:b,functionName:"getUserTotalDebt",args:[n,i]})}async function z(e,t){return P}async function W(e,t){return S}async function K(e,t){return w}function G(e,t){const n=T.encodeFunctionData({abi:o,functionName:c.WITHDRAW_COLLATERALS,args:[t]});return{to:e,data:n}}function Y(e,t,n,i){const a=T.encodeFunctionData({abi:o,functionName:c.BORROW,args:[t,n,i]});return{to:e,data:a}}function X(e,t,n,i){const a=T.encodeFunctionData({abi:o,functionName:c.REPAY,args:[t,n,i]});return{to:e,data:a}}function Z(e){return Number(e)/10**R}function $(e){return Number(e)/10**g}function J(e,t){return t<=0?"0%":`${(e/t*100).toFixed(1)}%`}const d={GREEN:"#00E676",AMBER:"#FFC400",RED:"#FF1744",GRAY:"#5A5A5A"};function B(e,t){return t?e===null?"safe":e<1?"danger":e<I?"warning":"safe":"no_debt"}function Q(e){switch(e){case"safe":return d.GREEN;case"warning":return d.AMBER;case"danger":return d.RED;case"no_debt":return d.GRAY}}function j(e){return e===null?"-":e.toFixed(2)}function ee(e){return e===null?!0:e>=1}function te(e){const t=isFinite(e),n=isFinite(e)?e:null;return B(n,t)}function ne(e,t,n){return t<=0?1/0:e*(n/M)/t}function ae(e,t){if(t<=0)return{vaultIds:[],actualAmount:0};const n=[...e].sort((s,u)=>u.amount-s.amount),i=[];let a=0;for(const s of n){if(a>=t)break;i.push(s.id),a+=s.amount}return{vaultIds:i,actualAmount:a}}function ie(e){return e.reduce((t,n)=>t+n.amount,0)}const se=BigInt(Number.MAX_SAFE_INTEGER);function C(e,t){if(e>se)throw new RangeError(`${t} (${e}) exceeds Number.MAX_SAFE_INTEGER; precision would be lost`)}function A(e,t,n,i){if(i<=0)return 1;const a=t*e;if(n<=a)return 1;const s=e*(n-i)/(n-a)*(t/i);return Math.max(0,Math.min(1,s))}function re(e){const{totalBtc:t,CF:n,LB:i,THF:a,expectedHF:s,safetyMargin:u}=e;if(t<=0n)return{sacrificialVault:0n,protectedVault:0n,seizedFraction:0,targetSeizureBtc:0n};C(t,"totalBtc");const r=A(n,i,a,s),m=Number(t),y=BigInt(Math.ceil(m*r)),p=BigInt(Math.ceil(m*r*u)),l=p>t?t:p,f=t-l;return{sacrificialVault:l,protectedVault:f,seizedFraction:r,targetSeizureBtc:y}}function ue(e){const{minPegin:t,seizedFraction:n,safetyMargin:i}=e;C(t,"minPegin");const a=n*i;if(a>=1||a<=0)return 0n;const s=1-a,u=Math.ceil(Number(t)/s),r=Math.ceil(Number(t)/a);return BigInt(Math.max(u,r))}function pe(e){const{vaultAmounts:t,CF:n,LB:i,THF:a,expectedHF:s,safetyMargin:u}=e;if(t.length===0)return{needsRebalance:!1,deficit:0n,currentCoverage:0n,targetCoverage:0n};const r=t.reduce((f,F)=>f+F,0n);C(r,"totalBtc");const m=A(n,i,a,s),y=BigInt(Math.ceil(Number(r)*m*u)),p=t[0],l=y>p?y-p:0n;return{needsRebalance:l>0n,deficit:l,currentCoverage:p,targetCoverage:y}}exports.AAVE_BASE_CURRENCY_DECIMALS=R;exports.AAVE_FUNCTION_NAMES=c;exports.AaveIntegrationControllerABI=o;exports.AaveSpokeABI=b;exports.BPS_SCALE=M;exports.BPS_TO_PERCENT_DIVISOR=E;exports.BTC_DECIMALS=x;exports.FULL_REPAY_BUFFER_DIVISOR=O;exports.HEALTH_FACTOR_COLORS=d;exports.HEALTH_FACTOR_WARNING_THRESHOLD=I;exports.MIN_HEALTH_FACTOR_FOR_BORROW=V;exports.MOCK_COLLATERAL_FACTOR_BPS=S;exports.MOCK_LIQUIDATION_BONUS_WAD=w;exports.MOCK_TARGET_HEALTH_FACTOR_WAD=P;exports.USDC_DECIMALS=h;exports.WAD_DECIMALS=g;exports.aaveValueToUsd=Z;exports.buildBorrowTx=Y;exports.buildRepayTx=X;exports.buildWithdrawCollateralsTx=G;exports.calculateBorrowRatio=J;exports.calculateHealthFactor=ne;exports.calculateTotalVaultAmount=ie;exports.checkRebalanceNeeded=pe;exports.computeMinDepositForSplit=ue;exports.computeOptimalSplit=re;exports.computeSeizedFraction=A;exports.formatHealthFactor=j;exports.getCollateralFactor=W;exports.getHealthFactorColor=Q;exports.getHealthFactorStatus=B;exports.getHealthFactorStatusFromValue=te;exports.getLiquidationBonus=K;exports.getPosition=L;exports.getPositionCollateral=D;exports.getTargetHealthFactor=z;exports.getUserAccountData=N;exports.getUserPosition=v;exports.getUserTotalDebt=q;exports.hasCollateral=H;exports.hasDebt=k;exports.hasDebtFromPosition=_;exports.isHealthFactorHealthy=ee;exports.selectVaultsForAmount=ae;exports.wadToNumber=$;
2
2
  //# sourceMappingURL=index.cjs.map