@wireio/stake 0.3.0 → 0.3.69

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 (557) hide show
  1. package/README.md +185 -243
  2. package/lib/stake.browser.js +58399 -13167
  3. package/lib/stake.browser.js.map +1 -1
  4. package/lib/stake.d.ts +16784 -3247
  5. package/lib/stake.js +59134 -13803
  6. package/lib/stake.js.map +1 -1
  7. package/lib/stake.m.js +58399 -13167
  8. package/lib/stake.m.js.map +1 -1
  9. package/package.json +6 -3
  10. package/src/assets/ethereum/hoodi/common/Base58.sol/Base58.dbg.json +4 -0
  11. package/src/assets/ethereum/hoodi/common/Base58.sol/Base58.json +164 -0
  12. package/src/assets/ethereum/hoodi/common/OpenZepArtifacts.sol/__Dummy_OZ_UUPS__.dbg.json +4 -0
  13. package/src/assets/ethereum/hoodi/common/OpenZepArtifacts.sol/__Dummy_OZ_UUPS__.json +76 -0
  14. package/src/assets/ethereum/hoodi/common/RestrictedCallers.sol/RestrictedCallers.dbg.json +4 -0
  15. package/src/assets/ethereum/hoodi/common/RestrictedCallers.sol/RestrictedCallers.json +10 -0
  16. package/src/assets/ethereum/hoodi/common/iodata.sol/iodata.dbg.json +4 -0
  17. package/src/assets/ethereum/hoodi/common/iodata.sol/iodata.json +618 -0
  18. package/src/assets/ethereum/hoodi/common/iodata_util.sol/iodata_util.dbg.json +4 -0
  19. package/src/assets/ethereum/hoodi/common/iodata_util.sol/iodata_util.json +40 -0
  20. package/src/assets/ethereum/hoodi/common/sysio_data.sol/sysio_data.dbg.json +4 -0
  21. package/src/assets/ethereum/hoodi/common/sysio_data.sol/sysio_data.json +10 -0
  22. package/src/assets/ethereum/hoodi/common/sysio_errors.sol/sysio_errors.dbg.json +4 -0
  23. package/src/assets/ethereum/hoodi/common/sysio_errors.sol/sysio_errors.json +10 -0
  24. package/src/assets/ethereum/hoodi/common/sysio_merkle.sol/sysio_merkle.dbg.json +4 -0
  25. package/src/assets/ethereum/hoodi/common/sysio_merkle.sol/sysio_merkle.json +233 -0
  26. package/src/assets/ethereum/hoodi/common/sysio_name.sol/sysio_name.dbg.json +4 -0
  27. package/src/assets/ethereum/hoodi/common/sysio_name.sol/sysio_name.json +49 -0
  28. package/src/assets/ethereum/hoodi/common/sysio_pubkey.sol/sysio_pubkey.dbg.json +4 -0
  29. package/src/assets/ethereum/hoodi/common/sysio_pubkey.sol/sysio_pubkey.json +64 -0
  30. package/src/assets/ethereum/hoodi/common/sysio_read.sol/sysio_read.dbg.json +4 -0
  31. package/src/assets/ethereum/hoodi/common/sysio_read.sol/sysio_read.json +1458 -0
  32. package/src/assets/ethereum/hoodi/common/sysio_tester.sol/SysioTester.dbg.json +4 -0
  33. package/src/assets/ethereum/hoodi/common/sysio_tester.sol/SysioTester.json +1532 -0
  34. package/src/assets/ethereum/hoodi/common/sysio_verify.sol/sysio_verify.dbg.json +4 -0
  35. package/src/assets/ethereum/hoodi/common/sysio_verify.sol/sysio_verify.json +1525 -0
  36. package/src/assets/ethereum/hoodi/common/sysio_write.sol/sysio_write.dbg.json +4 -0
  37. package/src/assets/ethereum/hoodi/common/sysio_write.sol/sysio_write.json +1076 -0
  38. package/src/assets/ethereum/hoodi/liqEth/BeaconState.sol/BeaconState.dbg.json +4 -0
  39. package/src/assets/ethereum/hoodi/liqEth/DepositManager.sol/DepositManagerV2.dbg.json +4 -0
  40. package/src/assets/ethereum/hoodi/liqEth/DepositManager.sol/DepositManagerV2.json +985 -0
  41. package/src/assets/ethereum/hoodi/liqEth/LiqEthAuthority.sol/LiqEthAuthority.dbg.json +4 -0
  42. package/src/assets/ethereum/hoodi/liqEth/LiqEthCommon.sol/IAccounting.dbg.json +4 -0
  43. package/src/assets/ethereum/hoodi/liqEth/LiqEthCommon.sol/IAccounting.json +182 -0
  44. package/src/assets/ethereum/hoodi/liqEth/LiqEthCommon.sol/IDepositContract.dbg.json +4 -0
  45. package/src/assets/ethereum/hoodi/liqEth/LiqEthCommon.sol/IDepositManager.dbg.json +4 -0
  46. package/src/assets/ethereum/hoodi/liqEth/LiqEthCommon.sol/ILiqEthUpgradeable.dbg.json +4 -0
  47. package/src/assets/ethereum/hoodi/liqEth/LiqEthCommon.sol/IRewardsERC20.dbg.json +4 -0
  48. package/src/assets/ethereum/hoodi/liqEth/LiqEthCommon.sol/IRewardsERC20.json +319 -0
  49. package/src/assets/ethereum/hoodi/liqEth/LiqEthCommon.sol/IRewardsERC20Pausable.dbg.json +4 -0
  50. package/src/assets/ethereum/hoodi/liqEth/LiqEthCommon.sol/IRewardsERC20Pausable.json +333 -0
  51. package/src/assets/ethereum/hoodi/liqEth/LiqEthCommon.sol/IStakingModule.dbg.json +4 -0
  52. package/src/assets/ethereum/{ABI → hoodi}/liqEth/LiqEthCommon.sol/IStakingModule.json +1 -1
  53. package/src/assets/ethereum/hoodi/liqEth/LiqEthCommon.sol/IValidatorBalanceVerifier.dbg.json +4 -0
  54. package/src/assets/ethereum/hoodi/liqEth/LiqEthCommon.sol/IWithdrawalRecord.dbg.json +4 -0
  55. package/src/assets/ethereum/hoodi/liqEth/LiqEthCommon.sol/LiqEthCommon.dbg.json +4 -0
  56. package/src/assets/ethereum/{ABI → hoodi}/liqEth/LiqEthCommon.sol/LiqEthCommon.json +2 -2
  57. package/src/assets/ethereum/hoodi/liqEth/LiqEthDeepFreeze.sol/LiqEthDeepFreeze.dbg.json +4 -0
  58. package/src/assets/ethereum/hoodi/liqEth/LiqEthDeepFreeze.sol/LiqEthDeepFreeze.json +236 -0
  59. package/src/assets/ethereum/hoodi/liqEth/LiqEthManaged.sol/LiqEthManaged.dbg.json +4 -0
  60. package/src/assets/ethereum/{ABI → hoodi}/liqEth/LiqEthManaged.sol/LiqEthManaged.json +2 -2
  61. package/src/assets/ethereum/hoodi/liqEth/RewardsERC20.sol/RewardsERC20UpgradeableV2.dbg.json +4 -0
  62. package/src/assets/ethereum/hoodi/liqEth/RewardsERC20.sol/RewardsERC20UpgradeableV2.json +957 -0
  63. package/src/assets/ethereum/hoodi/liqEth/RewardsERC20Pausable.sol/RewardsERC20PausableUpgradeableV2.dbg.json +4 -0
  64. package/src/assets/ethereum/hoodi/liqEth/RewardsERC20Pausable.sol/RewardsERC20PausableUpgradeableV2.json +1020 -0
  65. package/src/assets/ethereum/hoodi/liqEth/Yield.sol/YieldOracle.dbg.json +4 -0
  66. package/src/assets/ethereum/{ABI → hoodi}/liqEth/Yield.sol/YieldOracle.json +2 -2
  67. package/src/assets/ethereum/hoodi/liqEth/accounting.sol/AccountingV2.dbg.json +4 -0
  68. package/src/assets/ethereum/hoodi/liqEth/accounting.sol/AccountingV2.json +629 -0
  69. package/src/assets/ethereum/hoodi/liqEth/liqEth.sol/LiqEthTokenV2.dbg.json +4 -0
  70. package/src/assets/ethereum/hoodi/liqEth/liqEth.sol/LiqEthTokenV2.json +1323 -0
  71. package/src/assets/ethereum/hoodi/liqEth/stakingModule.sol/StakingModuleV2.dbg.json +4 -0
  72. package/src/assets/ethereum/hoodi/liqEth/stakingModule.sol/StakingModuleV2.json +1779 -0
  73. package/src/assets/ethereum/hoodi/liqEth/v1/DepositManager.sol/DepositManager.dbg.json +4 -0
  74. package/src/assets/ethereum/hoodi/liqEth/v1/DepositManager.sol/DepositManager.json +978 -0
  75. package/src/assets/ethereum/hoodi/liqEth/v1/LiqEthCommon.sol/IAccounting.dbg.json +4 -0
  76. package/src/assets/ethereum/{ABI/liqEth → hoodi/liqEth/v1}/LiqEthCommon.sol/IAccounting.json +1 -1
  77. package/src/assets/ethereum/hoodi/liqEth/v1/LiqEthCommon.sol/IDepositContract.dbg.json +4 -0
  78. package/src/assets/ethereum/hoodi/liqEth/v1/LiqEthCommon.sol/IDepositContract.json +39 -0
  79. package/src/assets/ethereum/hoodi/liqEth/v1/LiqEthCommon.sol/IDepositManager.dbg.json +4 -0
  80. package/src/assets/ethereum/hoodi/liqEth/v1/LiqEthCommon.sol/IDepositManager.json +64 -0
  81. package/src/assets/ethereum/hoodi/liqEth/v1/LiqEthCommon.sol/ILiqEthUpgradeable.dbg.json +4 -0
  82. package/src/assets/ethereum/hoodi/liqEth/v1/LiqEthCommon.sol/ILiqEthUpgradeable.json +29 -0
  83. package/src/assets/ethereum/hoodi/liqEth/v1/LiqEthCommon.sol/IRewardsERC20.dbg.json +4 -0
  84. package/src/assets/ethereum/{ABI/liqEth → hoodi/liqEth/v1}/LiqEthCommon.sol/IRewardsERC20.json +1 -1
  85. package/src/assets/ethereum/hoodi/liqEth/v1/LiqEthCommon.sol/IRewardsERC20Pausable.dbg.json +4 -0
  86. package/src/assets/ethereum/{ABI/liqEth → hoodi/liqEth/v1}/LiqEthCommon.sol/IRewardsERC20Pausable.json +1 -1
  87. package/src/assets/ethereum/hoodi/liqEth/v1/LiqEthCommon.sol/IStakingModule.dbg.json +4 -0
  88. package/src/assets/ethereum/hoodi/liqEth/v1/LiqEthCommon.sol/IStakingModule.json +344 -0
  89. package/src/assets/ethereum/hoodi/liqEth/v1/LiqEthCommon.sol/IValidatorBalanceVerifier.dbg.json +4 -0
  90. package/src/assets/ethereum/hoodi/liqEth/v1/LiqEthCommon.sol/IValidatorBalanceVerifier.json +129 -0
  91. package/src/assets/ethereum/hoodi/liqEth/v1/LiqEthCommon.sol/IWithdrawalRecord.dbg.json +4 -0
  92. package/src/assets/ethereum/hoodi/liqEth/v1/LiqEthCommon.sol/IWithdrawalRecord.json +66 -0
  93. package/src/assets/ethereum/hoodi/liqEth/v1/LiqEthCommon.sol/LiqEthCommon.dbg.json +4 -0
  94. package/src/assets/ethereum/hoodi/liqEth/v1/LiqEthCommon.sol/LiqEthCommon.json +10 -0
  95. package/src/assets/ethereum/hoodi/liqEth/v1/RewardsERC20.sol/RewardsERC20Upgradeable.dbg.json +4 -0
  96. package/src/assets/ethereum/{ABI/liqEth → hoodi/liqEth/v1}/RewardsERC20.sol/RewardsERC20Upgradeable.json +1 -1
  97. package/src/assets/ethereum/hoodi/liqEth/v1/RewardsERC20Pausable.sol/RewardsERC20PausableUpgradeable.dbg.json +4 -0
  98. package/src/assets/ethereum/{ABI/liqEth → hoodi/liqEth/v1}/RewardsERC20Pausable.sol/RewardsERC20PausableUpgradeable.json +1 -1
  99. package/src/assets/ethereum/hoodi/liqEth/v1/accounting.sol/Accounting.dbg.json +4 -0
  100. package/src/assets/ethereum/hoodi/liqEth/v1/accounting.sol/Accounting.json +548 -0
  101. package/src/assets/ethereum/hoodi/liqEth/v1/liqEth.sol/LiqEthToken.dbg.json +4 -0
  102. package/src/assets/ethereum/hoodi/liqEth/v1/liqEth.sol/LiqEthToken.json +1233 -0
  103. package/src/assets/ethereum/hoodi/liqEth/v1/stakingModule.sol/StakingModule.dbg.json +4 -0
  104. package/src/assets/ethereum/hoodi/liqEth/v1/stakingModule.sol/StakingModule.json +1772 -0
  105. package/src/assets/ethereum/hoodi/liqEth/withdrawalQueue.sol/WithdrawalQueue.dbg.json +4 -0
  106. package/src/assets/ethereum/{ABI → hoodi}/liqEth/withdrawalQueue.sol/WithdrawalQueue.json +2 -2
  107. package/src/assets/ethereum/hoodi/liqEth/withdrawalVault.sol/Uint64BE.dbg.json +4 -0
  108. package/src/assets/ethereum/{ABI → hoodi}/liqEth/withdrawalVault.sol/Uint64BE.json +2 -2
  109. package/src/assets/ethereum/hoodi/liqEth/withdrawalVault.sol/WithdrawalVault.dbg.json +4 -0
  110. package/src/assets/ethereum/hoodi/liqEth/withdrawalVault.sol/WithdrawalVault.json +441 -0
  111. package/src/assets/ethereum/hoodi/outpost/BAR.sol/BAR.dbg.json +4 -0
  112. package/src/assets/ethereum/hoodi/outpost/BAR.sol/BAR.json +1111 -0
  113. package/src/assets/ethereum/hoodi/outpost/Depositor.sol/Depositor.dbg.json +4 -0
  114. package/src/assets/ethereum/hoodi/outpost/Depositor.sol/Depositor.json +1696 -0
  115. package/src/assets/ethereum/hoodi/outpost/EthUsdPriceConsumer.sol/AggregatorV3Interface.dbg.json +4 -0
  116. package/src/assets/ethereum/hoodi/outpost/EthUsdPriceConsumer.sol/EthUsdPriceConsumer.dbg.json +4 -0
  117. package/src/assets/ethereum/hoodi/outpost/EthUsdPriceConsumer.sol/EthUsdPriceConsumer.json +274 -0
  118. package/src/assets/ethereum/hoodi/outpost/InstaswapBridgeAttestations.sol/BridgeDepositCodec.dbg.json +4 -0
  119. package/src/assets/ethereum/hoodi/outpost/InstaswapBridgeAttestations.sol/BridgeDepositCodec.json +10 -0
  120. package/src/assets/ethereum/hoodi/outpost/InstaswapBridgeAttestations.sol/BridgeWithdrawCodec.dbg.json +4 -0
  121. package/src/assets/ethereum/hoodi/outpost/InstaswapBridgeAttestations.sol/BridgeWithdrawCodec.json +10 -0
  122. package/src/assets/ethereum/hoodi/outpost/InstaswapBridgeAttestations.sol/BridgeWithdrawConfirmCodec.dbg.json +4 -0
  123. package/src/assets/ethereum/hoodi/outpost/InstaswapBridgeAttestations.sol/BridgeWithdrawConfirmCodec.json +10 -0
  124. package/src/assets/ethereum/hoodi/outpost/InstaswapBridgeAttestations.sol/InstaswapBridgeAttestationTypeLib.dbg.json +4 -0
  125. package/src/assets/ethereum/hoodi/outpost/InstaswapBridgeAttestations.sol/InstaswapBridgeAttestationTypeLib.json +10 -0
  126. package/src/assets/ethereum/hoodi/outpost/LiqEthBridge.sol/LiqEthBridge.dbg.json +4 -0
  127. package/src/assets/ethereum/hoodi/outpost/LiqEthBridge.sol/LiqEthBridge.json +1044 -0
  128. package/src/assets/ethereum/hoodi/outpost/OPP.sol/OPP.dbg.json +4 -0
  129. package/src/assets/ethereum/hoodi/outpost/OPP.sol/OPP.json +1055 -0
  130. package/src/assets/ethereum/hoodi/outpost/OPPCommon.sol/IOPP.dbg.json +4 -0
  131. package/src/assets/ethereum/hoodi/outpost/OPPCommon.sol/IOPP.json +81 -0
  132. package/src/assets/ethereum/hoodi/outpost/OPPCommon.sol/IOPPEndpoint.dbg.json +4 -0
  133. package/src/assets/ethereum/hoodi/outpost/OPPCommon.sol/IOPPInbound.dbg.json +4 -0
  134. package/src/assets/ethereum/hoodi/outpost/OPPCommon.sol/IOPPInbound.json +330 -0
  135. package/src/assets/ethereum/hoodi/outpost/OPPCommon.sol/IOPPReceiver.dbg.json +4 -0
  136. package/src/assets/ethereum/hoodi/outpost/OPPCommon.sol/IOPPReceiver.json +29 -0
  137. package/src/assets/ethereum/hoodi/outpost/OPPCommon.sol/IOPPSender.dbg.json +4 -0
  138. package/src/assets/ethereum/hoodi/outpost/OPPCommon.sol/IOPPSender.json +41 -0
  139. package/src/assets/ethereum/hoodi/outpost/OPPCommon.sol/OPPCommon.dbg.json +4 -0
  140. package/src/assets/ethereum/hoodi/outpost/OPPCommon.sol/OPPCommon.json +287 -0
  141. package/src/assets/ethereum/hoodi/outpost/OPPEndpoint.sol/OPPEndpoint.dbg.json +4 -0
  142. package/src/assets/ethereum/hoodi/outpost/OPPEndpoint.sol/OPPEndpoint.json +294 -0
  143. package/src/assets/ethereum/hoodi/outpost/OPPEndpointManaged.sol/OPPEndpointManaged.dbg.json +4 -0
  144. package/src/assets/ethereum/hoodi/outpost/OPPEndpointManaged.sol/OPPEndpointManaged.json +415 -0
  145. package/src/assets/ethereum/hoodi/outpost/OPPEndpointOwnable.sol/OPPEndpointOwnable.dbg.json +4 -0
  146. package/src/assets/ethereum/hoodi/outpost/OPPEndpointOwnable.sol/OPPEndpointOwnable.json +399 -0
  147. package/src/assets/ethereum/hoodi/outpost/OPPErrors.sol/OPPErrors.dbg.json +4 -0
  148. package/src/assets/ethereum/hoodi/outpost/OPPErrors.sol/OPPErrors.json +245 -0
  149. package/src/assets/ethereum/hoodi/outpost/OPPInbound.sol/OPPInbound.dbg.json +4 -0
  150. package/src/assets/ethereum/hoodi/outpost/OPPInbound.sol/OPPInbound.json +1204 -0
  151. package/src/assets/ethereum/hoodi/outpost/OPPReceiver.sol/OPPReceiver.dbg.json +4 -0
  152. package/src/assets/ethereum/hoodi/outpost/OPPReceiver.sol/OPPReceiver.json +312 -0
  153. package/src/assets/ethereum/hoodi/outpost/OPPSender.sol/OPPSender.dbg.json +4 -0
  154. package/src/assets/ethereum/hoodi/outpost/OPPSender.sol/OPPSender.json +324 -0
  155. package/src/assets/ethereum/hoodi/outpost/OperatorRegistry.sol/OperatorRegistry.dbg.json +4 -0
  156. package/src/assets/ethereum/hoodi/outpost/OperatorRegistry.sol/OperatorRegistry.json +1068 -0
  157. package/src/assets/ethereum/hoodi/outpost/OutpostErrors.sol/OutpostErrors.dbg.json +4 -0
  158. package/src/assets/ethereum/hoodi/outpost/OutpostErrors.sol/OutpostErrors.json +211 -0
  159. package/src/assets/ethereum/hoodi/outpost/OutpostManaged.sol/OutpostManaged.dbg.json +4 -0
  160. package/src/assets/ethereum/hoodi/outpost/OutpostManaged.sol/OutpostManaged.json +229 -0
  161. package/src/assets/ethereum/hoodi/outpost/OutpostManager.sol/OutpostManager.dbg.json +4 -0
  162. package/src/assets/ethereum/hoodi/outpost/OutpostManager.sol/OutpostManager.json +751 -0
  163. package/src/assets/ethereum/hoodi/outpost/OutpostManagerAuthority.sol/OutpostManagerAuthority.dbg.json +4 -0
  164. package/src/assets/ethereum/hoodi/outpost/OutpostManagerAuthority.sol/OutpostManagerAuthority.json +1432 -0
  165. package/src/assets/ethereum/hoodi/outpost/OutpostManagerCommon.sol/IOutpostManager.dbg.json +4 -0
  166. package/src/assets/ethereum/hoodi/outpost/OutpostManagerCommon.sol/IOutpostManager.json +130 -0
  167. package/src/assets/ethereum/hoodi/outpost/OutpostManagerCommon.sol/IOutpostUpgradeable.dbg.json +4 -0
  168. package/src/assets/ethereum/hoodi/outpost/OutpostManagerCommon.sol/OutpostManagerCommon.dbg.json +4 -0
  169. package/src/assets/ethereum/hoodi/outpost/OutpostManagerCommon.sol/OutpostManagerCommon.json +141 -0
  170. package/src/assets/ethereum/hoodi/outpost/OutpostOwnable.sol/OutpostOwnable.dbg.json +4 -0
  171. package/src/assets/ethereum/hoodi/outpost/OutpostOwnable.sol/OutpostOwnable.json +213 -0
  172. package/src/assets/ethereum/hoodi/outpost/OutpostReserve.sol/OutpostReserve.dbg.json +4 -0
  173. package/src/assets/ethereum/hoodi/outpost/OutpostReserve.sol/OutpostReserve.json +888 -0
  174. package/src/assets/ethereum/hoodi/outpost/Pool.sol/Pool.dbg.json +4 -0
  175. package/src/assets/ethereum/hoodi/outpost/Pool.sol/Pool.json +659 -0
  176. package/src/assets/ethereum/hoodi/outpost/Pretoken.sol/Pretoken.dbg.json +4 -0
  177. package/src/assets/ethereum/hoodi/outpost/Pretoken.sol/Pretoken.json +1393 -0
  178. package/src/assets/ethereum/hoodi/outpost/ReceiptNFT.sol/ReceiptNFT.dbg.json +4 -0
  179. package/src/assets/ethereum/hoodi/outpost/ReceiptNFT.sol/ReceiptNFT.json +1738 -0
  180. package/src/assets/ethereum/hoodi/outpost/WireYieldHubAttestations.sol/InstaswapConfirmCodec.dbg.json +4 -0
  181. package/src/assets/ethereum/hoodi/outpost/WireYieldHubAttestations.sol/InstaswapConfirmCodec.json +10 -0
  182. package/src/assets/ethereum/hoodi/outpost/WireYieldHubAttestations.sol/InstaswapFailedCodec.dbg.json +4 -0
  183. package/src/assets/ethereum/hoodi/outpost/WireYieldHubAttestations.sol/InstaswapFailedCodec.json +10 -0
  184. package/src/assets/ethereum/hoodi/outpost/WireYieldHubAttestations.sol/InstaswapRequestCodec.dbg.json +4 -0
  185. package/src/assets/ethereum/hoodi/outpost/WireYieldHubAttestations.sol/InstaswapRequestCodec.json +10 -0
  186. package/src/assets/ethereum/hoodi/outpost/WireYieldHubAttestations.sol/InstaswapSettlementCodec.dbg.json +4 -0
  187. package/src/assets/ethereum/hoodi/outpost/WireYieldHubAttestations.sol/InstaswapSettlementCodec.json +10 -0
  188. package/src/assets/ethereum/hoodi/outpost/WireYieldHubAttestations.sol/PrincipalExitConfirmCodec.dbg.json +4 -0
  189. package/src/assets/ethereum/hoodi/outpost/WireYieldHubAttestations.sol/PrincipalExitConfirmCodec.json +10 -0
  190. package/src/assets/ethereum/hoodi/outpost/WireYieldHubAttestations.sol/PrincipalExitFailedCodec.dbg.json +4 -0
  191. package/src/assets/ethereum/hoodi/outpost/WireYieldHubAttestations.sol/PrincipalExitFailedCodec.json +10 -0
  192. package/src/assets/ethereum/hoodi/outpost/WireYieldHubAttestations.sol/PrincipalExitRequestCodec.dbg.json +4 -0
  193. package/src/assets/ethereum/hoodi/outpost/WireYieldHubAttestations.sol/PrincipalExitRequestCodec.json +10 -0
  194. package/src/assets/ethereum/hoodi/outpost/WireYieldHubAttestations.sol/PrincipalStakeDeltaCodec.dbg.json +4 -0
  195. package/src/assets/ethereum/hoodi/outpost/WireYieldHubAttestations.sol/PrincipalStakeDeltaCodec.json +10 -0
  196. package/src/assets/ethereum/hoodi/outpost/WireYieldHubAttestations.sol/WireYieldHubAssetCodec.dbg.json +4 -0
  197. package/src/assets/ethereum/hoodi/outpost/WireYieldHubAttestations.sol/WireYieldHubAssetCodec.json +10 -0
  198. package/src/assets/ethereum/hoodi/outpost/WireYieldHubAttestations.sol/WireYieldHubAttestationTypeLib.dbg.json +4 -0
  199. package/src/assets/ethereum/hoodi/outpost/WireYieldHubAttestations.sol/WireYieldHubAttestationTypeLib.json +10 -0
  200. package/src/assets/ethereum/hoodi/outpost/WireYieldHubAttestations.sol/WireYieldHubAttestations.dbg.json +4 -0
  201. package/src/assets/ethereum/hoodi/outpost/WireYieldHubAttestations.sol/WireYieldHubAttestations.json +1437 -0
  202. package/src/assets/ethereum/hoodi/outpost/WireYieldHubAttestations.sol/YieldDepositCodec.dbg.json +4 -0
  203. package/src/assets/ethereum/hoodi/outpost/WireYieldHubAttestations.sol/YieldDepositCodec.json +10 -0
  204. package/src/assets/ethereum/hoodi/outpost/interfaces/IPretoken.sol/IPretoken.dbg.json +4 -0
  205. package/src/assets/ethereum/hoodi/outpost/interfaces/IWarrant.sol/IWarrant.dbg.json +4 -0
  206. package/src/assets/ethereum/hoodi/outpost/token/ERC721EthEquivalentVotesUpgradeable.sol/ERC721EthEquivalentVotesUpgradeable.dbg.json +4 -0
  207. package/src/assets/ethereum/hoodi/outpost/token/IERC721EthEquivalent.sol/IERC721EthEquivalent.dbg.json +4 -0
  208. package/src/assets/ethereum/hoodi/token/ERC1155Token.sol/ERC1155Token.dbg.json +4 -0
  209. package/src/assets/ethereum/hoodi/token/ERC1155Token.sol/ERC1155Token.json +472 -0
  210. package/src/assets/ethereum/hoodi/token/ERC20Token.sol/ERC20Token.dbg.json +4 -0
  211. package/src/assets/ethereum/hoodi/token/ERC20Token.sol/ERC20Token.json +330 -0
  212. package/src/assets/ethereum/hoodi/token/ERC721Token.sol/ERC721Token.dbg.json +4 -0
  213. package/src/assets/ethereum/hoodi/token/ERC721Token.sol/ERC721Token.json +449 -0
  214. package/src/assets/ethereum/hoodi/token/Eman1155.sol/Eman1155.dbg.json +4 -0
  215. package/src/assets/ethereum/hoodi/token/Eman1155.sol/Eman1155.json +560 -0
  216. package/src/assets/ethereum/hoodi/token/Eman20.sol/Eman20.dbg.json +4 -0
  217. package/src/assets/ethereum/hoodi/token/Eman20.sol/Eman20.json +460 -0
  218. package/src/assets/ethereum/hoodi/token/Eman721.sol/Eman721.dbg.json +4 -0
  219. package/src/assets/ethereum/hoodi/token/Eman721.sol/Eman721.json +624 -0
  220. package/src/assets/ethereum/mainnet/common/Base58.sol/Base58.dbg.json +4 -0
  221. package/src/assets/ethereum/mainnet/common/Base58.sol/Base58.json +164 -0
  222. package/src/assets/ethereum/mainnet/common/OpenZepArtifacts.sol/__Dummy_OZ_UUPS__.dbg.json +4 -0
  223. package/src/assets/ethereum/mainnet/common/OpenZepArtifacts.sol/__Dummy_OZ_UUPS__.json +76 -0
  224. package/src/assets/ethereum/mainnet/common/RestrictedCallers.sol/RestrictedCallers.dbg.json +4 -0
  225. package/src/assets/ethereum/mainnet/common/RestrictedCallers.sol/RestrictedCallers.json +10 -0
  226. package/src/assets/ethereum/mainnet/common/iodata.sol/iodata.dbg.json +4 -0
  227. package/src/assets/ethereum/mainnet/common/iodata.sol/iodata.json +618 -0
  228. package/src/assets/ethereum/mainnet/common/iodata_util.sol/iodata_util.dbg.json +4 -0
  229. package/src/assets/ethereum/mainnet/common/iodata_util.sol/iodata_util.json +40 -0
  230. package/src/assets/ethereum/mainnet/common/sysio_data.sol/sysio_data.dbg.json +4 -0
  231. package/src/assets/ethereum/mainnet/common/sysio_data.sol/sysio_data.json +10 -0
  232. package/src/assets/ethereum/mainnet/common/sysio_errors.sol/sysio_errors.dbg.json +4 -0
  233. package/src/assets/ethereum/mainnet/common/sysio_errors.sol/sysio_errors.json +10 -0
  234. package/src/assets/ethereum/mainnet/common/sysio_merkle.sol/sysio_merkle.dbg.json +4 -0
  235. package/src/assets/ethereum/mainnet/common/sysio_merkle.sol/sysio_merkle.json +233 -0
  236. package/src/assets/ethereum/mainnet/common/sysio_name.sol/sysio_name.dbg.json +4 -0
  237. package/src/assets/ethereum/mainnet/common/sysio_name.sol/sysio_name.json +49 -0
  238. package/src/assets/ethereum/mainnet/common/sysio_pubkey.sol/sysio_pubkey.dbg.json +4 -0
  239. package/src/assets/ethereum/mainnet/common/sysio_pubkey.sol/sysio_pubkey.json +64 -0
  240. package/src/assets/ethereum/mainnet/common/sysio_read.sol/sysio_read.dbg.json +4 -0
  241. package/src/assets/ethereum/mainnet/common/sysio_read.sol/sysio_read.json +1458 -0
  242. package/src/assets/ethereum/mainnet/common/sysio_tester.sol/SysioTester.dbg.json +4 -0
  243. package/src/assets/ethereum/mainnet/common/sysio_tester.sol/SysioTester.json +1532 -0
  244. package/src/assets/ethereum/mainnet/common/sysio_verify.sol/sysio_verify.dbg.json +4 -0
  245. package/src/assets/ethereum/mainnet/common/sysio_verify.sol/sysio_verify.json +1525 -0
  246. package/src/assets/ethereum/mainnet/common/sysio_write.sol/sysio_write.dbg.json +4 -0
  247. package/src/assets/ethereum/mainnet/common/sysio_write.sol/sysio_write.json +1076 -0
  248. package/src/assets/ethereum/mainnet/liqEth/BeaconState.sol/BeaconState.dbg.json +4 -0
  249. package/src/assets/ethereum/mainnet/liqEth/BeaconState.sol/BeaconState.json +807 -0
  250. package/src/assets/ethereum/mainnet/liqEth/DepositManager.sol/DepositManagerV2.dbg.json +4 -0
  251. package/src/assets/ethereum/mainnet/liqEth/DepositManager.sol/DepositManagerV2.json +1004 -0
  252. package/src/assets/ethereum/mainnet/liqEth/DepositManager.sol/IStakingModuleBondLocker.dbg.json +4 -0
  253. package/src/assets/ethereum/mainnet/liqEth/DepositManager.sol/IStakingModuleBondLocker.json +29 -0
  254. package/src/assets/ethereum/mainnet/liqEth/KeyBondManager.sol/KeyBondManager.dbg.json +4 -0
  255. package/src/assets/ethereum/mainnet/liqEth/KeyBondManager.sol/KeyBondManager.json +897 -0
  256. package/src/assets/ethereum/mainnet/liqEth/LiqEthAuthority.sol/LiqEthAuthority.dbg.json +4 -0
  257. package/src/assets/ethereum/mainnet/liqEth/LiqEthAuthority.sol/LiqEthAuthority.json +1289 -0
  258. package/src/assets/ethereum/mainnet/liqEth/LiqEthCommon.sol/IDepositContract.dbg.json +4 -0
  259. package/src/assets/ethereum/mainnet/liqEth/LiqEthCommon.sol/IDepositContract.json +39 -0
  260. package/src/assets/ethereum/mainnet/liqEth/LiqEthCommon.sol/IDepositManager.dbg.json +4 -0
  261. package/src/assets/ethereum/mainnet/liqEth/LiqEthCommon.sol/IDepositManager.json +64 -0
  262. package/src/assets/ethereum/mainnet/liqEth/LiqEthCommon.sol/IKeyBondManager.dbg.json +4 -0
  263. package/src/assets/ethereum/mainnet/liqEth/LiqEthCommon.sol/IKeyBondManager.json +189 -0
  264. package/src/assets/ethereum/mainnet/liqEth/LiqEthCommon.sol/ILiqEthUpgradeable.dbg.json +4 -0
  265. package/src/assets/ethereum/mainnet/liqEth/LiqEthCommon.sol/ILiqEthUpgradeable.json +29 -0
  266. package/src/assets/ethereum/mainnet/liqEth/LiqEthCommon.sol/IRewardsERC20.dbg.json +4 -0
  267. package/src/assets/ethereum/mainnet/liqEth/LiqEthCommon.sol/IRewardsERC20.json +319 -0
  268. package/src/assets/ethereum/mainnet/liqEth/LiqEthCommon.sol/IRewardsERC20Pausable.dbg.json +4 -0
  269. package/src/assets/ethereum/mainnet/liqEth/LiqEthCommon.sol/IRewardsERC20Pausable.json +333 -0
  270. package/src/assets/ethereum/mainnet/liqEth/LiqEthCommon.sol/IStakingModule.dbg.json +4 -0
  271. package/src/assets/ethereum/mainnet/liqEth/LiqEthCommon.sol/IStakingModule.json +279 -0
  272. package/src/assets/ethereum/mainnet/liqEth/LiqEthCommon.sol/IValidatorBalanceVerifier.dbg.json +4 -0
  273. package/src/assets/ethereum/mainnet/liqEth/LiqEthCommon.sol/IValidatorBalanceVerifier.json +129 -0
  274. package/src/assets/ethereum/mainnet/liqEth/LiqEthCommon.sol/IWithdrawalRecord.dbg.json +4 -0
  275. package/src/assets/ethereum/mainnet/liqEth/LiqEthCommon.sol/IWithdrawalRecord.json +66 -0
  276. package/src/assets/ethereum/mainnet/liqEth/LiqEthCommon.sol/LiqEthCommon.dbg.json +4 -0
  277. package/src/assets/ethereum/mainnet/liqEth/LiqEthCommon.sol/LiqEthCommon.json +10 -0
  278. package/src/assets/ethereum/mainnet/liqEth/LiqEthDeepFreeze.sol/LiqEthDeepFreeze.dbg.json +4 -0
  279. package/src/assets/ethereum/mainnet/liqEth/LiqEthDeepFreeze.sol/LiqEthDeepFreeze.json +236 -0
  280. package/src/assets/ethereum/mainnet/liqEth/LiqEthManaged.sol/LiqEthManaged.dbg.json +4 -0
  281. package/src/assets/ethereum/mainnet/liqEth/LiqEthManaged.sol/LiqEthManaged.json +229 -0
  282. package/src/assets/ethereum/mainnet/liqEth/RewardsERC20.sol/RewardsERC20UpgradeableV2.dbg.json +4 -0
  283. package/src/assets/ethereum/mainnet/liqEth/RewardsERC20.sol/RewardsERC20UpgradeableV2.json +957 -0
  284. package/src/assets/ethereum/mainnet/liqEth/RewardsERC20Pausable.sol/RewardsERC20PausableUpgradeableV2.dbg.json +4 -0
  285. package/src/assets/ethereum/mainnet/liqEth/RewardsERC20Pausable.sol/RewardsERC20PausableUpgradeableV2.json +1020 -0
  286. package/src/assets/ethereum/mainnet/liqEth/StakingLib.sol/StakingLib.dbg.json +4 -0
  287. package/src/assets/ethereum/mainnet/liqEth/StakingLib.sol/StakingLib.json +89 -0
  288. package/src/assets/ethereum/mainnet/liqEth/Yield.sol/YieldOracle.dbg.json +4 -0
  289. package/src/assets/ethereum/mainnet/liqEth/Yield.sol/YieldOracle.json +1376 -0
  290. package/src/assets/ethereum/mainnet/liqEth/liqEth.sol/LiqEthTokenV2.dbg.json +4 -0
  291. package/src/assets/ethereum/mainnet/liqEth/liqEth.sol/LiqEthTokenV2.json +1323 -0
  292. package/src/assets/ethereum/mainnet/liqEth/stakingModule.sol/StakingModuleV2.dbg.json +4 -0
  293. package/src/assets/ethereum/mainnet/liqEth/stakingModule.sol/StakingModuleV2.json +1896 -0
  294. package/src/assets/ethereum/mainnet/liqEth/v1/DepositManager.sol/DepositManager.dbg.json +4 -0
  295. package/src/assets/ethereum/mainnet/liqEth/v1/DepositManager.sol/DepositManager.json +978 -0
  296. package/src/assets/ethereum/mainnet/liqEth/v1/LiqEthCommon.sol/IAccounting.dbg.json +4 -0
  297. package/src/assets/ethereum/mainnet/liqEth/v1/LiqEthCommon.sol/IAccounting.json +176 -0
  298. package/src/assets/ethereum/mainnet/liqEth/v1/LiqEthCommon.sol/IDepositContract.dbg.json +4 -0
  299. package/src/assets/ethereum/mainnet/liqEth/v1/LiqEthCommon.sol/IDepositContract.json +39 -0
  300. package/src/assets/ethereum/mainnet/liqEth/v1/LiqEthCommon.sol/IDepositManager.dbg.json +4 -0
  301. package/src/assets/ethereum/mainnet/liqEth/v1/LiqEthCommon.sol/IDepositManager.json +64 -0
  302. package/src/assets/ethereum/mainnet/liqEth/v1/LiqEthCommon.sol/ILiqEthUpgradeable.dbg.json +4 -0
  303. package/src/assets/ethereum/mainnet/liqEth/v1/LiqEthCommon.sol/ILiqEthUpgradeable.json +29 -0
  304. package/src/assets/ethereum/mainnet/liqEth/v1/LiqEthCommon.sol/IRewardsERC20.dbg.json +4 -0
  305. package/src/assets/ethereum/mainnet/liqEth/v1/LiqEthCommon.sol/IRewardsERC20.json +249 -0
  306. package/src/assets/ethereum/mainnet/liqEth/v1/LiqEthCommon.sol/IRewardsERC20Pausable.dbg.json +4 -0
  307. package/src/assets/ethereum/mainnet/liqEth/v1/LiqEthCommon.sol/IRewardsERC20Pausable.json +263 -0
  308. package/src/assets/ethereum/mainnet/liqEth/v1/LiqEthCommon.sol/IStakingModule.dbg.json +4 -0
  309. package/src/assets/ethereum/mainnet/liqEth/v1/LiqEthCommon.sol/IStakingModule.json +344 -0
  310. package/src/assets/ethereum/mainnet/liqEth/v1/LiqEthCommon.sol/IValidatorBalanceVerifier.dbg.json +4 -0
  311. package/src/assets/ethereum/mainnet/liqEth/v1/LiqEthCommon.sol/IValidatorBalanceVerifier.json +129 -0
  312. package/src/assets/ethereum/mainnet/liqEth/v1/LiqEthCommon.sol/IWithdrawalRecord.dbg.json +4 -0
  313. package/src/assets/ethereum/mainnet/liqEth/v1/LiqEthCommon.sol/IWithdrawalRecord.json +66 -0
  314. package/src/assets/ethereum/mainnet/liqEth/v1/LiqEthCommon.sol/LiqEthCommon.dbg.json +4 -0
  315. package/src/assets/ethereum/mainnet/liqEth/v1/LiqEthCommon.sol/LiqEthCommon.json +10 -0
  316. package/src/assets/ethereum/mainnet/liqEth/v1/RewardsERC20.sol/RewardsERC20Upgradeable.dbg.json +4 -0
  317. package/src/assets/ethereum/mainnet/liqEth/v1/RewardsERC20.sol/RewardsERC20Upgradeable.json +874 -0
  318. package/src/assets/ethereum/mainnet/liqEth/v1/RewardsERC20Pausable.sol/RewardsERC20PausableUpgradeable.dbg.json +4 -0
  319. package/src/assets/ethereum/mainnet/liqEth/v1/RewardsERC20Pausable.sol/RewardsERC20PausableUpgradeable.json +937 -0
  320. package/src/assets/ethereum/mainnet/liqEth/v1/accounting.sol/Accounting.dbg.json +4 -0
  321. package/src/assets/ethereum/mainnet/liqEth/v1/accounting.sol/Accounting.json +542 -0
  322. package/src/assets/ethereum/mainnet/liqEth/v1/liqEth.sol/LiqEthToken.dbg.json +4 -0
  323. package/src/assets/ethereum/mainnet/liqEth/v1/liqEth.sol/LiqEthToken.json +1233 -0
  324. package/src/assets/ethereum/mainnet/liqEth/v1/stakingModule.sol/StakingModule.dbg.json +4 -0
  325. package/src/assets/ethereum/mainnet/liqEth/v1/stakingModule.sol/StakingModule.json +1772 -0
  326. package/src/assets/ethereum/mainnet/liqEth/withdrawalQueue.sol/WithdrawalQueue.dbg.json +4 -0
  327. package/src/assets/ethereum/mainnet/liqEth/withdrawalQueue.sol/WithdrawalQueue.json +973 -0
  328. package/src/assets/ethereum/mainnet/liqEth/withdrawalVault.sol/Uint64BE.dbg.json +4 -0
  329. package/src/assets/ethereum/mainnet/liqEth/withdrawalVault.sol/Uint64BE.json +10 -0
  330. package/src/assets/ethereum/mainnet/liqEth/withdrawalVault.sol/WithdrawalVault.dbg.json +4 -0
  331. package/src/assets/ethereum/mainnet/liqEth/withdrawalVault.sol/WithdrawalVault.json +441 -0
  332. package/src/assets/ethereum/mainnet/outpost/BAR.sol/BARV2.dbg.json +4 -0
  333. package/src/assets/ethereum/mainnet/outpost/BAR.sol/BARV2.json +1915 -0
  334. package/src/assets/ethereum/mainnet/outpost/Depositor.sol/DepositorV2.dbg.json +4 -0
  335. package/src/assets/ethereum/mainnet/outpost/Depositor.sol/DepositorV2.json +1845 -0
  336. package/src/assets/ethereum/mainnet/outpost/EthUsdPriceConsumer.sol/AggregatorV3Interface.dbg.json +4 -0
  337. package/src/assets/ethereum/mainnet/outpost/EthUsdPriceConsumer.sol/AggregatorV3Interface.json +122 -0
  338. package/src/assets/ethereum/mainnet/outpost/EthUsdPriceConsumer.sol/EthUsdPriceConsumer.dbg.json +4 -0
  339. package/src/assets/ethereum/{ABI → mainnet}/outpost/EthUsdPriceConsumer.sol/EthUsdPriceConsumer.json +31 -29
  340. package/src/assets/ethereum/mainnet/outpost/OPP.sol/OPP.dbg.json +4 -0
  341. package/src/assets/ethereum/mainnet/outpost/OPPCommon.sol/IOPP.dbg.json +4 -0
  342. package/src/assets/ethereum/mainnet/outpost/OPPCommon.sol/IOPPEndpoint.dbg.json +4 -0
  343. package/src/assets/ethereum/mainnet/outpost/OPPCommon.sol/IOPPEndpoint.json +29 -0
  344. package/src/assets/ethereum/mainnet/outpost/OPPCommon.sol/IOPPInbound.dbg.json +4 -0
  345. package/src/assets/ethereum/mainnet/outpost/OPPCommon.sol/IOPPReceiver.dbg.json +4 -0
  346. package/src/assets/ethereum/mainnet/outpost/OPPCommon.sol/IOPPSender.dbg.json +4 -0
  347. package/src/assets/ethereum/mainnet/outpost/OPPCommon.sol/OPPCommon.dbg.json +4 -0
  348. package/src/assets/ethereum/mainnet/outpost/OPPEndpoint.sol/OPPEndpoint.dbg.json +4 -0
  349. package/src/assets/ethereum/mainnet/outpost/OPPEndpointManaged.sol/OPPEndpointManaged.dbg.json +4 -0
  350. package/src/assets/ethereum/mainnet/outpost/OPPEndpointOwnable.sol/OPPEndpointOwnable.dbg.json +4 -0
  351. package/src/assets/ethereum/mainnet/outpost/OPPErrors.sol/OPPErrors.dbg.json +4 -0
  352. package/src/assets/ethereum/mainnet/outpost/OPPInbound.sol/OPPInbound.dbg.json +4 -0
  353. package/src/assets/ethereum/mainnet/outpost/OPPReceiver.sol/OPPReceiver.dbg.json +4 -0
  354. package/src/assets/ethereum/mainnet/outpost/OPPSender.sol/OPPSender.dbg.json +4 -0
  355. package/src/assets/ethereum/mainnet/outpost/OutpostErrors.sol/OutpostErrors.dbg.json +4 -0
  356. package/src/assets/ethereum/{ABI → mainnet}/outpost/OutpostErrors.sol/OutpostErrors.json +33 -18
  357. package/src/assets/ethereum/mainnet/outpost/OutpostManaged.sol/OutpostManaged.dbg.json +4 -0
  358. package/src/assets/ethereum/mainnet/outpost/OutpostManager.sol/OutpostManagerV2.dbg.json +4 -0
  359. package/src/assets/ethereum/mainnet/outpost/OutpostManager.sol/OutpostManagerV2.json +737 -0
  360. package/src/assets/ethereum/mainnet/outpost/OutpostManagerAuthority.sol/OutpostManagerAuthority.dbg.json +4 -0
  361. package/src/assets/ethereum/mainnet/outpost/OutpostManagerCommon.sol/IOutpostManager.dbg.json +4 -0
  362. package/src/assets/ethereum/mainnet/outpost/OutpostManagerCommon.sol/IOutpostUpgradeable.dbg.json +4 -0
  363. package/src/assets/ethereum/mainnet/outpost/OutpostManagerCommon.sol/IOutpostUpgradeable.json +29 -0
  364. package/src/assets/ethereum/mainnet/outpost/OutpostManagerCommon.sol/OutpostManagerCommon.dbg.json +4 -0
  365. package/src/assets/ethereum/mainnet/outpost/OutpostOwnable.sol/OutpostOwnable.dbg.json +4 -0
  366. package/src/assets/ethereum/mainnet/outpost/Pool.sol/PoolV2.dbg.json +4 -0
  367. package/src/assets/ethereum/mainnet/outpost/Pool.sol/PoolV2.json +943 -0
  368. package/src/assets/ethereum/mainnet/outpost/Pretoken.sol/PretokenV2.dbg.json +4 -0
  369. package/src/assets/ethereum/mainnet/outpost/Pretoken.sol/PretokenV2.json +1703 -0
  370. package/src/assets/ethereum/mainnet/outpost/ReceiptNFT.sol/ReceiptNFT.dbg.json +4 -0
  371. package/src/assets/ethereum/{ABI → mainnet}/outpost/ReceiptNFT.sol/ReceiptNFT.json +33 -18
  372. package/src/assets/ethereum/mainnet/outpost/interfaces/IPretoken.sol/IPretoken.dbg.json +4 -0
  373. package/src/assets/ethereum/mainnet/outpost/interfaces/IPretoken.sol/IPretoken.json +29 -0
  374. package/src/assets/ethereum/mainnet/outpost/interfaces/IWarrant.sol/IWarrant.dbg.json +4 -0
  375. package/src/assets/ethereum/mainnet/outpost/interfaces/IWarrant.sol/IWarrant.json +29 -0
  376. package/src/assets/ethereum/mainnet/outpost/token/ERC721EthEquivalentVotesUpgradeable.sol/ERC721EthEquivalentVotesUpgradeable.dbg.json +4 -0
  377. package/src/assets/ethereum/mainnet/outpost/token/ERC721EthEquivalentVotesUpgradeable.sol/ERC721EthEquivalentVotesUpgradeable.json +858 -0
  378. package/src/assets/ethereum/mainnet/outpost/token/IERC721EthEquivalent.sol/IERC721EthEquivalent.dbg.json +4 -0
  379. package/src/assets/ethereum/mainnet/outpost/token/IERC721EthEquivalent.sol/IERC721EthEquivalent.json +30 -0
  380. package/src/assets/ethereum/mainnet/outpost/v1/BAR.sol/BAR.dbg.json +4 -0
  381. package/src/assets/ethereum/{ABI/outpost → mainnet/outpost/v1}/BAR.sol/BAR.json +34 -19
  382. package/src/assets/ethereum/mainnet/outpost/v1/Depositor.sol/Depositor.dbg.json +4 -0
  383. package/src/assets/ethereum/mainnet/outpost/v1/Depositor.sol/Depositor.json +1653 -0
  384. package/src/assets/ethereum/mainnet/outpost/v1/OutpostManager.sol/OutpostManager.dbg.json +4 -0
  385. package/src/assets/ethereum/{ABI/outpost → mainnet/outpost/v1}/OutpostManager.sol/OutpostManager.json +3 -3
  386. package/src/assets/ethereum/mainnet/outpost/v1/Pool.sol/Pool.dbg.json +4 -0
  387. package/src/assets/ethereum/{ABI/outpost → mainnet/outpost/v1}/Pool.sol/Pool.json +34 -19
  388. package/src/assets/ethereum/mainnet/outpost/v1/Pretoken.sol/Pretoken.dbg.json +4 -0
  389. package/src/assets/ethereum/mainnet/outpost/v1/Pretoken.sol/Pretoken.json +1665 -0
  390. package/src/assets/ethereum/mainnet/token/ERC1155Token.sol/ERC1155Token.dbg.json +4 -0
  391. package/src/assets/ethereum/mainnet/token/ERC1155Token.sol/ERC1155Token.json +472 -0
  392. package/src/assets/ethereum/mainnet/token/ERC20Token.sol/ERC20Token.dbg.json +4 -0
  393. package/src/assets/ethereum/mainnet/token/ERC20Token.sol/ERC20Token.json +330 -0
  394. package/src/assets/ethereum/mainnet/token/ERC721Token.sol/ERC721Token.dbg.json +4 -0
  395. package/src/assets/ethereum/mainnet/token/ERC721Token.sol/ERC721Token.json +449 -0
  396. package/src/assets/solana/devnet/idl/liqsol_core.json +8566 -0
  397. package/src/assets/solana/{idl → devnet/idl}/liqsol_token.json +35 -1
  398. package/src/assets/solana/devnet/idl/transfer_hook.json +490 -0
  399. package/src/assets/solana/devnet/idl/validator_leaderboard.json +735 -0
  400. package/src/assets/solana/devnet/types/liqsol_core.ts +8572 -0
  401. package/src/assets/solana/{types → devnet/types}/liqsol_token.ts +35 -1
  402. package/src/assets/solana/devnet/types/transfer_hook.ts +496 -0
  403. package/src/assets/solana/devnet/types/validator_leaderboard.ts +741 -0
  404. package/src/assets/solana/{idl → mainnet/idl}/liqsol_core.json +3816 -1567
  405. package/src/assets/solana/mainnet/idl/liqsol_token.json +217 -0
  406. package/src/assets/solana/mainnet/idl/transfer_hook.json +479 -0
  407. package/src/assets/solana/{idl → mainnet/idl}/validator_leaderboard.json +4 -4
  408. package/src/assets/solana/{types → mainnet/types}/liqsol_core.ts +3816 -1567
  409. package/src/assets/solana/mainnet/types/liqsol_token.ts +223 -0
  410. package/src/assets/solana/mainnet/types/transfer_hook.ts +485 -0
  411. package/src/assets/solana/{types → mainnet/types}/validator_leaderboard.ts +4 -4
  412. package/src/assets/solana/realdevnet/idl/liqsol_core.json +7112 -0
  413. package/src/assets/solana/realdevnet/idl/liqsol_token.json +217 -0
  414. package/src/assets/solana/realdevnet/idl/transfer_hook.json +479 -0
  415. package/src/assets/solana/realdevnet/idl/validator_leaderboard.json +735 -0
  416. package/src/assets/solana/realdevnet/types/liqsol_core.ts +7118 -0
  417. package/src/assets/solana/realdevnet/types/liqsol_token.ts +223 -0
  418. package/src/assets/solana/realdevnet/types/transfer_hook.ts +485 -0
  419. package/src/assets/solana/realdevnet/types/validator_leaderboard.ts +741 -0
  420. package/src/index.ts +2 -2
  421. package/src/networks/ethereum/clients/{deposit.client.ts → convert.client.ts} +66 -5
  422. package/src/networks/ethereum/clients/opp.client.ts +389 -0
  423. package/src/networks/ethereum/clients/pretoken.client.ts +87 -49
  424. package/src/networks/ethereum/clients/receipt.client.ts +199 -0
  425. package/src/networks/ethereum/clients/stake.client.ts +86 -161
  426. package/src/networks/ethereum/clients/validator.client.ts +61 -0
  427. package/src/networks/ethereum/contract.ts +424 -151
  428. package/src/networks/ethereum/ethereum.ts +454 -244
  429. package/src/networks/ethereum/types.ts +65 -27
  430. package/src/networks/ethereum/utils.ts +104 -72
  431. package/src/networks/solana/clients/convert.client.ts +341 -0
  432. package/src/networks/solana/clients/distribution.client.ts +269 -263
  433. package/src/networks/solana/clients/leaderboard.client.ts +68 -26
  434. package/src/networks/solana/clients/outpost.client.ts +224 -357
  435. package/src/networks/solana/clients/token.client.ts +96 -106
  436. package/src/networks/solana/constants.ts +88 -216
  437. package/src/networks/solana/program.ts +432 -28
  438. package/src/networks/solana/solana.ts +1066 -293
  439. package/src/networks/solana/types.ts +687 -78
  440. package/src/networks/solana/utils.ts +159 -356
  441. package/src/staker.ts +25 -4
  442. package/src/types.ts +267 -31
  443. package/src/assets/ethereum/ABI/liqEth/BeaconState.sol/BeaconState.dbg.json +0 -4
  444. package/src/assets/ethereum/ABI/liqEth/DepositManager.sol/DepositManager.dbg.json +0 -4
  445. package/src/assets/ethereum/ABI/liqEth/DepositManager.sol/DepositManager.json +0 -952
  446. package/src/assets/ethereum/ABI/liqEth/LiqEthAuthority.sol/LiqEthAuthority.dbg.json +0 -4
  447. package/src/assets/ethereum/ABI/liqEth/LiqEthCommon.sol/IAccounting.dbg.json +0 -4
  448. package/src/assets/ethereum/ABI/liqEth/LiqEthCommon.sol/IDepositContract.dbg.json +0 -4
  449. package/src/assets/ethereum/ABI/liqEth/LiqEthCommon.sol/IDepositManager.dbg.json +0 -4
  450. package/src/assets/ethereum/ABI/liqEth/LiqEthCommon.sol/ILiqEthUpgradeable.dbg.json +0 -4
  451. package/src/assets/ethereum/ABI/liqEth/LiqEthCommon.sol/IRewardsERC20.dbg.json +0 -4
  452. package/src/assets/ethereum/ABI/liqEth/LiqEthCommon.sol/IRewardsERC20Pausable.dbg.json +0 -4
  453. package/src/assets/ethereum/ABI/liqEth/LiqEthCommon.sol/IStakingModule.dbg.json +0 -4
  454. package/src/assets/ethereum/ABI/liqEth/LiqEthCommon.sol/IValidatorBalanceVerifier.dbg.json +0 -4
  455. package/src/assets/ethereum/ABI/liqEth/LiqEthCommon.sol/IWithdrawalRecord.dbg.json +0 -4
  456. package/src/assets/ethereum/ABI/liqEth/LiqEthCommon.sol/LiqEthCommon.dbg.json +0 -4
  457. package/src/assets/ethereum/ABI/liqEth/LiqEthManaged.sol/LiqEthManaged.dbg.json +0 -4
  458. package/src/assets/ethereum/ABI/liqEth/RewardsERC20.sol/RewardsERC20Upgradeable.dbg.json +0 -4
  459. package/src/assets/ethereum/ABI/liqEth/RewardsERC20Pausable.sol/RewardsERC20PausableUpgradeable.dbg.json +0 -4
  460. package/src/assets/ethereum/ABI/liqEth/ValidatorBalanceVerifier.sol/BeaconRoots.dbg.json +0 -4
  461. package/src/assets/ethereum/ABI/liqEth/ValidatorBalanceVerifier.sol/BeaconRoots.json +0 -10
  462. package/src/assets/ethereum/ABI/liqEth/ValidatorBalanceVerifier.sol/SSZ.dbg.json +0 -4
  463. package/src/assets/ethereum/ABI/liqEth/ValidatorBalanceVerifier.sol/SSZ.json +0 -10
  464. package/src/assets/ethereum/ABI/liqEth/ValidatorBalanceVerifier.sol/SSZExtras.dbg.json +0 -4
  465. package/src/assets/ethereum/ABI/liqEth/ValidatorBalanceVerifier.sol/SSZExtras.json +0 -10
  466. package/src/assets/ethereum/ABI/liqEth/ValidatorBalanceVerifier.sol/SSZVec48.dbg.json +0 -4
  467. package/src/assets/ethereum/ABI/liqEth/ValidatorBalanceVerifier.sol/SSZVec48.json +0 -10
  468. package/src/assets/ethereum/ABI/liqEth/ValidatorBalanceVerifier.sol/ValidatorBalanceVerifier.dbg.json +0 -4
  469. package/src/assets/ethereum/ABI/liqEth/ValidatorBalanceVerifier.sol/ValidatorBalanceVerifier.json +0 -291
  470. package/src/assets/ethereum/ABI/liqEth/Yield.sol/YieldOracle.dbg.json +0 -4
  471. package/src/assets/ethereum/ABI/liqEth/accounting.sol/Accounting.dbg.json +0 -4
  472. package/src/assets/ethereum/ABI/liqEth/accounting.sol/Accounting.json +0 -555
  473. package/src/assets/ethereum/ABI/liqEth/liqEth.sol/LiqEthToken.dbg.json +0 -4
  474. package/src/assets/ethereum/ABI/liqEth/liqEth.sol/LiqEthToken.json +0 -1202
  475. package/src/assets/ethereum/ABI/liqEth/stakingModule.sol/StakingModule.dbg.json +0 -4
  476. package/src/assets/ethereum/ABI/liqEth/stakingModule.sol/StakingModule.json +0 -1791
  477. package/src/assets/ethereum/ABI/liqEth/withdrawalQueue.sol/WithdrawalQueue.dbg.json +0 -4
  478. package/src/assets/ethereum/ABI/liqEth/withdrawalVault.sol/Uint64BE.dbg.json +0 -4
  479. package/src/assets/ethereum/ABI/liqEth/withdrawalVault.sol/WithdrawalVault.dbg.json +0 -4
  480. package/src/assets/ethereum/ABI/liqEth/withdrawalVault.sol/WithdrawalVault.json +0 -460
  481. package/src/assets/ethereum/ABI/outpost/Aggregator.sol/Aggregator.json +0 -82
  482. package/src/assets/ethereum/ABI/outpost/BAR.sol/BAR.dbg.json +0 -4
  483. package/src/assets/ethereum/ABI/outpost/Depositor.sol/Depositor.dbg.json +0 -4
  484. package/src/assets/ethereum/ABI/outpost/Depositor.sol/Depositor.json +0 -1638
  485. package/src/assets/ethereum/ABI/outpost/EthUsdPriceConsumer.sol/AggregatorV3Interface.dbg.json +0 -4
  486. package/src/assets/ethereum/ABI/outpost/EthUsdPriceConsumer.sol/EthUsdPriceConsumer.dbg.json +0 -4
  487. package/src/assets/ethereum/ABI/outpost/OPP.sol/OPP.dbg.json +0 -4
  488. package/src/assets/ethereum/ABI/outpost/OPPCommon.sol/IOPP.dbg.json +0 -4
  489. package/src/assets/ethereum/ABI/outpost/OPPCommon.sol/IOPPEndpoint.dbg.json +0 -4
  490. package/src/assets/ethereum/ABI/outpost/OPPCommon.sol/IOPPInbound.dbg.json +0 -4
  491. package/src/assets/ethereum/ABI/outpost/OPPCommon.sol/IOPPReceiver.dbg.json +0 -4
  492. package/src/assets/ethereum/ABI/outpost/OPPCommon.sol/IOPPSender.dbg.json +0 -4
  493. package/src/assets/ethereum/ABI/outpost/OPPCommon.sol/OPPCommon.dbg.json +0 -4
  494. package/src/assets/ethereum/ABI/outpost/OPPEndpoint.sol/OPPEndpoint.dbg.json +0 -4
  495. package/src/assets/ethereum/ABI/outpost/OPPEndpointManaged.sol/OPPEndpointManaged.dbg.json +0 -4
  496. package/src/assets/ethereum/ABI/outpost/OPPEndpointOwnable.sol/OPPEndpointOwnable.dbg.json +0 -4
  497. package/src/assets/ethereum/ABI/outpost/OPPErrors.sol/OPPErrors.dbg.json +0 -4
  498. package/src/assets/ethereum/ABI/outpost/OPPInbound.sol/OPPInbound.dbg.json +0 -4
  499. package/src/assets/ethereum/ABI/outpost/OPPReceiver.sol/OPPReceiver.dbg.json +0 -4
  500. package/src/assets/ethereum/ABI/outpost/OPPSender.sol/OPPSender.dbg.json +0 -4
  501. package/src/assets/ethereum/ABI/outpost/OutpostErrors.sol/OutpostErrors.dbg.json +0 -4
  502. package/src/assets/ethereum/ABI/outpost/OutpostManaged.sol/OutpostManaged.dbg.json +0 -4
  503. package/src/assets/ethereum/ABI/outpost/OutpostManager.sol/OutpostManager.dbg.json +0 -4
  504. package/src/assets/ethereum/ABI/outpost/OutpostManagerAuthority.sol/OutpostManagerAuthority.dbg.json +0 -4
  505. package/src/assets/ethereum/ABI/outpost/OutpostManagerCommon.sol/IOutpostManager.dbg.json +0 -4
  506. package/src/assets/ethereum/ABI/outpost/OutpostManagerCommon.sol/IOutpostUpgradeable.dbg.json +0 -4
  507. package/src/assets/ethereum/ABI/outpost/OutpostManagerCommon.sol/OutpostManagerCommon.dbg.json +0 -4
  508. package/src/assets/ethereum/ABI/outpost/OutpostOwnable.sol/OutpostOwnable.dbg.json +0 -4
  509. package/src/assets/ethereum/ABI/outpost/Pool.sol/Pool.dbg.json +0 -4
  510. package/src/assets/ethereum/ABI/outpost/Pretoken.sol/Pretoken.dbg.json +0 -4
  511. package/src/assets/ethereum/ABI/outpost/Pretoken.sol/Pretoken.json +0 -1650
  512. package/src/assets/ethereum/ABI/outpost/ReceiptNFT.sol/ReceiptNFT.dbg.json +0 -4
  513. package/src/assets/ethereum/ABI/outpost/interfaces/IPretoken.sol/IPretoken.dbg.json +0 -4
  514. package/src/assets/ethereum/ABI/outpost/interfaces/IWarrant.sol/IWarrant.dbg.json +0 -4
  515. package/src/assets/ethereum/ABI/outpost/token/ERC721EthEquivalentVotesUpgradeable.sol/ERC721EthEquivalentVotesUpgradeable.dbg.json +0 -4
  516. package/src/assets/ethereum/ABI/outpost/token/IERC721EthEquivalent.sol/IERC721EthEquivalent.dbg.json +0 -4
  517. package/src/assets/ethereum/ABI/token/ERC1155Token.sol/ERC1155Token.dbg.json +0 -4
  518. package/src/assets/ethereum/ABI/token/ERC1155Token.sol/ERC1155Token.json +0 -472
  519. package/src/assets/ethereum/ABI/token/ERC20Token.sol/ERC20Token.dbg.json +0 -4
  520. package/src/assets/ethereum/ABI/token/ERC20Token.sol/ERC20Token.json +0 -330
  521. package/src/assets/ethereum/ABI/token/ERC721Token.sol/ERC721Token.dbg.json +0 -4
  522. package/src/assets/ethereum/ABI/token/ERC721Token.sol/ERC721Token.json +0 -449
  523. package/src/networks/ethereum/clients/liq.client.ts +0 -47
  524. package/src/networks/solana/clients/deposit.client.ts +0 -127
  525. package/src/staker/types.ts +0 -62
  526. /package/src/assets/ethereum/{ABI → hoodi}/liqEth/BeaconState.sol/BeaconState.json +0 -0
  527. /package/src/assets/ethereum/{ABI → hoodi}/liqEth/LiqEthAuthority.sol/LiqEthAuthority.json +0 -0
  528. /package/src/assets/ethereum/{ABI → hoodi}/liqEth/LiqEthCommon.sol/IDepositContract.json +0 -0
  529. /package/src/assets/ethereum/{ABI → hoodi}/liqEth/LiqEthCommon.sol/IDepositManager.json +0 -0
  530. /package/src/assets/ethereum/{ABI → hoodi}/liqEth/LiqEthCommon.sol/ILiqEthUpgradeable.json +0 -0
  531. /package/src/assets/ethereum/{ABI → hoodi}/liqEth/LiqEthCommon.sol/IValidatorBalanceVerifier.json +0 -0
  532. /package/src/assets/ethereum/{ABI → hoodi}/liqEth/LiqEthCommon.sol/IWithdrawalRecord.json +0 -0
  533. /package/src/assets/ethereum/{ABI → hoodi}/outpost/EthUsdPriceConsumer.sol/AggregatorV3Interface.json +0 -0
  534. /package/src/assets/ethereum/{ABI → hoodi}/outpost/OPPCommon.sol/IOPPEndpoint.json +0 -0
  535. /package/src/assets/ethereum/{ABI → hoodi}/outpost/OutpostManagerCommon.sol/IOutpostUpgradeable.json +0 -0
  536. /package/src/assets/ethereum/{ABI → hoodi}/outpost/interfaces/IPretoken.sol/IPretoken.json +0 -0
  537. /package/src/assets/ethereum/{ABI → hoodi}/outpost/interfaces/IWarrant.sol/IWarrant.json +0 -0
  538. /package/src/assets/ethereum/{ABI → hoodi}/outpost/token/ERC721EthEquivalentVotesUpgradeable.sol/ERC721EthEquivalentVotesUpgradeable.json +0 -0
  539. /package/src/assets/ethereum/{ABI → hoodi}/outpost/token/IERC721EthEquivalent.sol/IERC721EthEquivalent.json +0 -0
  540. /package/src/assets/ethereum/{ABI → mainnet}/outpost/OPP.sol/OPP.json +0 -0
  541. /package/src/assets/ethereum/{ABI → mainnet}/outpost/OPPCommon.sol/IOPP.json +0 -0
  542. /package/src/assets/ethereum/{ABI → mainnet}/outpost/OPPCommon.sol/IOPPInbound.json +0 -0
  543. /package/src/assets/ethereum/{ABI → mainnet}/outpost/OPPCommon.sol/IOPPReceiver.json +0 -0
  544. /package/src/assets/ethereum/{ABI → mainnet}/outpost/OPPCommon.sol/IOPPSender.json +0 -0
  545. /package/src/assets/ethereum/{ABI → mainnet}/outpost/OPPCommon.sol/OPPCommon.json +0 -0
  546. /package/src/assets/ethereum/{ABI → mainnet}/outpost/OPPEndpoint.sol/OPPEndpoint.json +0 -0
  547. /package/src/assets/ethereum/{ABI → mainnet}/outpost/OPPEndpointManaged.sol/OPPEndpointManaged.json +0 -0
  548. /package/src/assets/ethereum/{ABI → mainnet}/outpost/OPPEndpointOwnable.sol/OPPEndpointOwnable.json +0 -0
  549. /package/src/assets/ethereum/{ABI → mainnet}/outpost/OPPErrors.sol/OPPErrors.json +0 -0
  550. /package/src/assets/ethereum/{ABI → mainnet}/outpost/OPPInbound.sol/OPPInbound.json +0 -0
  551. /package/src/assets/ethereum/{ABI → mainnet}/outpost/OPPReceiver.sol/OPPReceiver.json +0 -0
  552. /package/src/assets/ethereum/{ABI → mainnet}/outpost/OPPSender.sol/OPPSender.json +0 -0
  553. /package/src/assets/ethereum/{ABI → mainnet}/outpost/OutpostManaged.sol/OutpostManaged.json +0 -0
  554. /package/src/assets/ethereum/{ABI → mainnet}/outpost/OutpostManagerAuthority.sol/OutpostManagerAuthority.json +0 -0
  555. /package/src/assets/ethereum/{ABI → mainnet}/outpost/OutpostManagerCommon.sol/IOutpostManager.json +0 -0
  556. /package/src/assets/ethereum/{ABI → mainnet}/outpost/OutpostManagerCommon.sol/OutpostManagerCommon.json +0 -0
  557. /package/src/assets/ethereum/{ABI → mainnet}/outpost/OutpostOwnable.sol/OutpostOwnable.json +0 -0
@@ -1,69 +1,76 @@
1
1
  import { Program, BN, AnchorProvider } from '@coral-xyz/anchor';
2
-
3
2
  import {
4
3
  Connection,
5
4
  Keypair,
6
5
  PublicKey,
7
- SystemProgram,
8
- StakeProgram,
9
6
  } from '@solana/web3.js';
10
7
  import {
11
8
  TOKEN_2022_PROGRAM_ID,
12
- ASSOCIATED_TOKEN_PROGRAM_ID,
13
9
  getAssociatedTokenAddress,
14
10
  } from '@solana/spl-token';
15
11
 
16
12
  import {
17
- LIQSOL_CORE,
18
- LIQSOL_TOKEN,
19
- PAY_RATE_SCALE_FACTOR,
20
13
  DEFAULT_AVERAGE_PAY_RATE,
21
14
  EPHEMERAL_RENT_EXEMPTION,
22
- LAMPORTS_PER_SOL,
23
- lamportsToSol,
24
15
  solToLamports,
25
- deriveDepositAuthorityPda,
26
- deriveLiqsolMintPda,
27
- deriveLiqsolMintAuthorityPda,
28
- deriveVaultPda,
29
- deriveReservePoolPda,
30
- deriveStakeControllerStatePda,
31
- derivePayoutStatePda,
32
- deriveBucketAuthorityPda,
33
- deriveDistributionStatePda,
34
- deriveUserRecordPda,
35
- derivePayRateHistoryPda,
36
- deriveStakeControllerVaultPda,
37
- deriveEphemeralStakeAddress,
38
16
  DEFAULT_PAY_RATE_LOOKBACK,
39
- deriveOutpostGlobalStatePda,
40
- deriveOutpostPoolAuthorityPda,
41
- deriveSolBucketPda,
42
- deriveTrancheStatePda,
43
- deriveWireReceiptPda,
44
- derivePoolUserRecordPda,
45
- deriveUserUserRecordPda,
46
- deriveUserWarrantRecordPda,
47
17
  CHAINLINK_FEED,
48
18
  CHAINLINK_PROGRAM,
49
19
  } from './constants';
50
20
 
51
- import liqsolCoreIDL from '../../assets/solana/idl/liqsol_core.json';
52
- import { LiqsolCore } from '../../assets/solana/types/liqsol_core';
53
21
  import { GlobalState, TrancheState } from './types';
54
22
  import { TrancheLadderItem, TrancheSnapshot } from '../../types';
55
23
  import { ChainID } from '@wireio/core';
56
-
24
+ import { SolanaProgramService } from './program';
57
25
 
58
26
  // -----------------------------------------------------------------------------
59
27
  // Tranche Support
60
28
  // -----------------------------------------------------------------------------
61
-
62
-
63
29
  const INDEX_SCALE = BigInt(1_000_000_000_000); // 1e12
64
- const USD_SCALE = BigInt(100_000_000); // 1e8
30
+ const USD_SCALE = BigInt(100_000_000); // 1e8
65
31
  const BPS = BigInt(10_000);
66
32
 
33
+ /**
34
+ * Apply one forward growth step: value * (BPS + growthBps) / BPS.
35
+ * Simple integer round-half-up.
36
+ */
37
+ function growSupplyOnce(value: bigint, growthBps: number): bigint {
38
+ const g = BigInt(growthBps);
39
+ return (value * (BPS + g) + BPS / BigInt(2)) / BPS;
40
+ }
41
+
42
+ /**
43
+ * Apply one backward step: value * BPS / (BPS + growthBps).
44
+ * Also integer round-half-up.
45
+ */
46
+ function shrinkSupplyOnce(value: bigint, growthBps: number): bigint {
47
+ const g = BigInt(growthBps);
48
+ return (value * BPS + (BPS + g) / BigInt(2)) / (BPS + g);
49
+ }
50
+
51
+ /**
52
+ * Price step is expressed in *cents*, while prices are 1e8 USD.
53
+ * 1 cent = 0.01 * 1e8 = 1e6, so:
54
+ * step = priceGrowthCents * 1e6
55
+ */
56
+ function priceStepUsd1e8(priceGrowthCents: number): bigint {
57
+ if (!priceGrowthCents) return BigInt(0);
58
+ const CENT_SCALE = USD_SCALE / BigInt(100); // 1e6
59
+ return BigInt(priceGrowthCents) * CENT_SCALE;
60
+ }
61
+
62
+ function growPriceOnceUsd1e8(value: bigint, priceGrowthCents: number): bigint {
63
+ const step = priceStepUsd1e8(priceGrowthCents);
64
+ return value + step;
65
+ }
66
+
67
+ function shrinkPriceOnceUsd1e8(value: bigint, priceGrowthCents: number): bigint {
68
+ const step = priceStepUsd1e8(priceGrowthCents);
69
+ if (step === BigInt(0)) return value;
70
+ if (value <= step) return BigInt(0);
71
+ return value - step;
72
+ }
73
+
67
74
  /** BN | bigint -> bigint helper (keeps code readable) */
68
75
  export function toBigint(x: any): bigint {
69
76
  if (typeof x === 'bigint') return x;
@@ -84,24 +91,6 @@ export function tokensToShares(amount: bigint, currentIndex: bigint): bigint {
84
91
  return r === BigInt(0) ? q : q + BigInt(1);
85
92
  }
86
93
 
87
- /**
88
- * Apply one forward growth step: value * (BPS + growthBps) / BPS.
89
- * Simple integer round-half-up.
90
- */
91
- function growOnce(value: bigint, growthBps: number): bigint {
92
- const g = BigInt(growthBps);
93
- return (value * (BPS + g) + BPS / BigInt(2)) / BPS;
94
- }
95
-
96
- /**
97
- * Apply one backward step: value * BPS / (BPS + growthBps).
98
- * Also integer round-half-up.
99
- */
100
- function shrinkOnce(value: bigint, growthBps: number): bigint {
101
- const g = BigInt(growthBps);
102
- return (value * BPS + (BPS + g) / BigInt(2)) / (BPS + g);
103
- }
104
-
105
94
  /**
106
95
  * Build a local tranche ladder around the current tranche
107
96
  * using only on-chain config + current state.
@@ -116,10 +105,9 @@ export function buildSolanaTrancheLadder(options: {
116
105
  currentTranche: number;
117
106
  initialTrancheSupply: bigint;
118
107
  currentTrancheSupply: bigint;
119
- totalPretokensSold: bigint; // informational only
120
- currentPriceUsd: bigint;
108
+ currentPriceUsd: bigint; // 1e8 scale
121
109
  supplyGrowthBps: number;
122
- priceGrowthBps: number;
110
+ priceGrowthCents: number; // e.g. 2 -> $0.02 per tranche
123
111
  windowBefore?: number;
124
112
  windowAfter?: number;
125
113
  }): TrancheLadderItem[] {
@@ -129,7 +117,7 @@ export function buildSolanaTrancheLadder(options: {
129
117
  currentTrancheSupply,
130
118
  currentPriceUsd,
131
119
  supplyGrowthBps,
132
- priceGrowthBps,
120
+ priceGrowthCents,
133
121
  windowBefore = 5,
134
122
  windowAfter = 5,
135
123
  } = options;
@@ -140,35 +128,41 @@ export function buildSolanaTrancheLadder(options: {
140
128
  const capacity = new Map<number, bigint>();
141
129
  const price = new Map<number, bigint>();
142
130
 
143
- // Seed current
131
+ // Seed current tranche
144
132
  capacity.set(currentTranche, initialTrancheSupply);
145
133
  price.set(currentTranche, currentPriceUsd);
146
134
 
147
- // Forward (future tranches)
135
+ // Forward (future tranches): grow supply by BPS, price by +cents (linear)
148
136
  for (let id = currentTranche + 1; id <= endId; id++) {
149
137
  const prevCap = capacity.get(id - 1)!;
150
138
  const prevPrice = price.get(id - 1)!;
151
- capacity.set(id, growOnce(prevCap, supplyGrowthBps));
152
- price.set(id, growOnce(prevPrice, priceGrowthBps));
139
+
140
+ capacity.set(id, growSupplyOnce(prevCap, supplyGrowthBps));
141
+ price.set(id, growPriceOnceUsd1e8(prevPrice, priceGrowthCents));
153
142
  }
154
143
 
155
- // Backward (past tranches)
144
+ // Backward (past tranches): shrink supply by inverse BPS, price by -cents
156
145
  for (let id = currentTranche - 1; id >= startId; id--) {
157
146
  const nextCap = capacity.get(id + 1)!;
158
147
  const nextPrice = price.get(id + 1)!;
159
- capacity.set(id, shrinkOnce(nextCap, supplyGrowthBps));
160
- price.set(id, shrinkOnce(nextPrice, priceGrowthBps));
148
+
149
+ capacity.set(id, shrinkSupplyOnce(nextCap, supplyGrowthBps));
150
+ price.set(id, shrinkPriceOnceUsd1e8(nextPrice, priceGrowthCents));
161
151
  }
162
152
 
163
153
  const ladder: TrancheLadderItem[] = [];
164
154
  for (let id = startId; id <= endId; id++) {
165
155
  const cap = capacity.get(id)!;
156
+
166
157
  let sold: bigint;
167
158
  if (id < currentTranche) {
159
+ // Past tranches fully sold
168
160
  sold = cap;
169
161
  } else if (id === currentTranche) {
162
+ // Current tranche: cap - remaining
170
163
  sold = cap - currentTrancheSupply;
171
164
  } else {
165
+ // Future tranches not yet opened
172
166
  sold = BigInt(0);
173
167
  }
174
168
 
@@ -177,7 +171,7 @@ export function buildSolanaTrancheLadder(options: {
177
171
  capacity: cap,
178
172
  sold,
179
173
  remaining: cap - sold,
180
- priceUsd: price.get(id)!,
174
+ priceUsd: price.get(id)!, // still 1e8 scale
181
175
  });
182
176
  }
183
177
 
@@ -209,31 +203,21 @@ export function buildSolanaTrancheSnapshot(options: {
209
203
 
210
204
  const currentIndex = toBigint(globalState.currentIndex);
211
205
  const totalShares = toBigint(globalState.totalShares);
212
-
213
206
  const currentTranche = trancheState.currentTrancheNumber.toNumber();
214
207
  const currentTrancheSupply = toBigint(trancheState.currentTrancheSupply);
215
208
  const initialTrancheSupply = toBigint(trancheState.initialTrancheSupply);
216
209
  const totalPretokensSold = toBigint(trancheState.totalPretokensSold);
217
210
  const currentPriceUsd = toBigint(trancheState.currentTranchePriceUsd);
218
-
219
211
  const supplyGrowthBps = trancheState.supplyGrowthBps;
220
- const priceGrowthBps = trancheState.priceGrowthBps;
221
-
222
- const minPriceUsd = trancheState.minPriceUsd
223
- ? toBigint(trancheState.minPriceUsd)
224
- : undefined;
225
- const maxPriceUsd = trancheState.maxPriceUsd
226
- ? toBigint(trancheState.maxPriceUsd)
227
- : undefined;
212
+ const priceGrowthCents = trancheState.priceGrowthCents;
228
213
 
229
214
  const ladder = buildSolanaTrancheLadder({
230
215
  currentTranche,
231
216
  initialTrancheSupply,
232
217
  currentTrancheSupply,
233
- totalPretokensSold,
234
218
  currentPriceUsd,
235
219
  supplyGrowthBps,
236
- priceGrowthBps,
220
+ priceGrowthCents,
237
221
  windowBefore: ladderWindowBefore,
238
222
  windowAfter: ladderWindowAfter,
239
223
  });
@@ -245,306 +229,81 @@ export function buildSolanaTrancheSnapshot(options: {
245
229
  currentTranche,
246
230
  currentPriceUsd,
247
231
  supplyGrowthBps,
248
- priceGrowthBps,
232
+ priceGrowthCents,
233
+ totalPretokensSold,
249
234
  currentTrancheSupply,
250
235
  initialTrancheSupply,
251
- totalPretokensSold,
252
236
  nativePriceUsd: solPriceUsd,
253
237
  nativePriceTimestamp,
254
238
  ladder,
255
239
  };
256
240
  }
257
241
 
258
-
259
- // -----------------------------------------------------------------------------
260
- // Read-only liqsol_core Program helper
261
- // -----------------------------------------------------------------------------
262
-
263
- let _liqsolCoreProgram: Program<LiqsolCore> | null = null;
264
-
265
- export function getLiqsolCoreProgram(
266
- connection: Connection,
267
- ): Program<LiqsolCore> {
268
- if (_liqsolCoreProgram && _liqsolCoreProgram.provider.connection === connection) {
269
- return _liqsolCoreProgram;
270
- }
271
-
272
- // Dummy wallet – we're only doing read-only account fetches here.
273
- const tmpKeypair = Keypair.generate();
274
- const wallet: any = { publicKey: tmpKeypair.publicKey, signAllTransactions: async () => [], signTransaction: async () => tmpKeypair };
275
-
276
- const provider = new AnchorProvider(connection, wallet, {
277
- commitment: 'confirmed',
278
- });
279
-
280
- const program = new Program(
281
- liqsolCoreIDL,
282
- provider,
283
- ) as Program<LiqsolCore>;
284
-
285
- _liqsolCoreProgram = program;
286
- return program;
287
- }
288
-
289
-
290
- // -----------------------------------------------------------------------------
291
- // Balance + state getters (UI-friendly)
292
- // -----------------------------------------------------------------------------
293
-
294
- export async function getUserLiqSolBalance(
295
- connection: Connection,
296
- user: PublicKey,
297
- ): Promise<number> {
298
- const liqsolMint = deriveLiqsolMintPda();
299
- const ata = await getAssociatedTokenAddress(
300
- liqsolMint,
301
- user,
302
- false,
303
- TOKEN_2022_PROGRAM_ID,
304
- );
305
-
306
- try {
307
- const bal = await connection.getTokenAccountBalance(ata);
308
- return Number(bal.value.amount); // raw lamports, not decimals-adjusted
309
- } catch {
310
- return 0;
311
- }
312
- }
313
-
314
- export async function getBucketLiqSolBalance(
315
- connection: Connection,
316
- ): Promise<number> {
317
- const liqsolMint = deriveLiqsolMintPda();
318
- const bucketAuthority = deriveBucketAuthorityPda();
319
- const ata = await getAssociatedTokenAddress(
320
- liqsolMint,
321
- bucketAuthority,
322
- true,
323
- TOKEN_2022_PROGRAM_ID,
324
- );
325
-
326
- try {
327
- const bal = await connection.getTokenAccountBalance(ata);
328
- return Number(bal.value.amount);
329
- } catch {
330
- return 0;
331
- }
332
- }
333
-
334
- export async function getReservePoolBalance(
335
- connection: Connection,
336
- ): Promise<number> {
337
- const reservePool = deriveReservePoolPda();
338
- try {
339
- const lamports = await connection.getBalance(reservePool);
340
- return lamports;
341
- } catch {
342
- return 0;
343
- }
344
- }
345
-
346
- /**
347
- * Raw account info for the stake_controller state (Anchor decode is left
348
- * to the caller so the SDK can stay IDL-agnostic at this layer).
349
- */
350
- export async function getStakeControllerStateRaw(
351
- connection: Connection,
352
- ): Promise<Uint8Array | null> {
353
- const pda = deriveStakeControllerStatePda();
354
- const info = await connection.getAccountInfo(pda);
355
- return info?.data ?? null;
356
- }
357
-
358
- /**
359
- * Raw account info for the payout-state account.
360
- */
361
- export async function getPayoutStateRaw(
362
- connection: Connection,
363
- ): Promise<Uint8Array | null> {
364
- const pda = derivePayoutStatePda();
365
- const info = await connection.getAccountInfo(pda);
366
- return info?.data ?? null;
367
- }
368
-
369
- /**
370
- * Raw account info for a user's distribution user_record.
371
- */
372
- export async function getUserRecordRaw(
373
- connection: Connection,
374
- user: PublicKey,
375
- ): Promise<Uint8Array | null> {
376
- const pda = deriveUserRecordPda(user);
377
- const info = await connection.getAccountInfo(pda);
378
- return info?.data ?? null;
379
- }
380
-
381
- // -----------------------------------------------------------------------------
382
- // Pay-rate & fee utilities (on-chain compatible)
383
- // -----------------------------------------------------------------------------
384
-
385
- export async function getAveragePayRate(
386
- connection: Connection,
387
- lookback: number = DEFAULT_PAY_RATE_LOOKBACK,
388
- ): Promise<bigint> {
389
- const program = getLiqsolCoreProgram(connection);
390
- const payRateHistoryPda = derivePayRateHistoryPda();
391
-
392
- try {
393
- const anyProgram = program as any;
394
- const payRateHistoryAccount = await anyProgram.account.payRateHistory.fetch(
395
- payRateHistoryPda,
396
- );
397
-
398
- const entries: any[] = payRateHistoryAccount.entries ?? [];
399
- const totalEntriesAdded = Number(
400
- payRateHistoryAccount.totalEntriesAdded ?? 0,
401
- );
402
- const currentIndex: number = payRateHistoryAccount.currentIndex ?? 0;
403
- const maxEntries: number =
404
- payRateHistoryAccount.maxEntries ?? entries.length;
405
-
406
- if (!entries.length) {
407
- return DEFAULT_AVERAGE_PAY_RATE;
408
- }
409
-
410
- const entriesToFetch = Math.min(lookback, maxEntries, entries.length);
411
-
412
- let idx: number;
413
- if (totalEntriesAdded === 0) {
414
- idx = 0;
415
- } else if (currentIndex === 0) {
416
- idx = maxEntries - 1;
417
- } else {
418
- idx = currentIndex - 1;
419
- }
420
-
421
- let sum = BigInt(0);
422
- let validCount = BigInt(0);
423
-
424
- for (let i = 0; i < entriesToFetch; i++) {
425
- const entry = entries[idx];
426
- if (entry && typeof entry.scaledRate !== 'undefined') {
427
- const rate = BigInt(entry.scaledRate.toString());
428
- if (rate > BigInt(0)) {
429
- sum += rate;
430
- validCount += BigInt(1);
431
- }
432
- }
433
-
434
- if (totalEntriesAdded === 0) {
435
- idx = (idx + 1) % maxEntries;
436
- } else {
437
- idx = idx === 0 ? maxEntries - 1 : idx - 1;
438
- }
439
- }
440
-
441
- if (validCount === BigInt(0)) {
442
- return DEFAULT_AVERAGE_PAY_RATE;
443
- }
444
-
445
- return sum / validCount;
446
- } catch (err) {
447
- // Fallback to default when history missing/unavailable
448
- return DEFAULT_AVERAGE_PAY_RATE;
449
- }
450
- }
451
- /**
452
- * On-chain fee formula:
453
- * fee = (average_pay_rate * 4 * deposit_amount_lamports) / 10^12
454
- */
455
- export function calculateExpectedFee(
456
- depositAmountLamports: BN,
457
- averagePayRate: BN,
458
- ): BN {
459
- return averagePayRate
460
- .mul(new BN(4))
461
- .mul(depositAmountLamports)
462
- .div(new BN(1_000_000_000_000)); // 10^12
463
- }
464
-
465
- /**
466
- * Convenience helper to preview how a deposit splits between user + bucket
467
- * and how much goes into the reserve, assuming the simple model:
468
- *
469
- * - userLiqSol = amount - fee + EPHEMERAL_RENT_EXEMPTION
470
- * - bucketLiqSol = fee
471
- * - reserveLamports = amount + EPHEMERAL_RENT_EXEMPTION
472
- */
473
- export function previewDepositEffects(params: {
474
- depositAmountLamports: BN;
475
- averagePayRate: BN;
476
- rentExemptionLamports?: number;
477
- }): {
478
- feeLamports: BN;
479
- userLiqSolLamports: BN;
480
- bucketLiqSolLamports: BN;
481
- reserveIncreaseLamports: BN;
482
- } {
483
- const { depositAmountLamports, averagePayRate } = params;
484
- const rent = new BN(
485
- params.rentExemptionLamports ?? EPHEMERAL_RENT_EXEMPTION,
486
- );
487
-
488
- const fee = calculateExpectedFee(depositAmountLamports, averagePayRate);
489
- const userLiqSol = depositAmountLamports.sub(fee).add(rent);
490
- const bucketLiqSol = fee;
491
- const reserveIncrease = depositAmountLamports.add(rent);
492
-
493
- return {
494
- feeLamports: fee,
495
- userLiqSolLamports: userLiqSol,
496
- bucketLiqSolLamports: bucketLiqSol,
497
- reserveIncreaseLamports: reserveIncrease,
498
- };
499
- }
500
-
501
242
  /**
502
243
  * ---------------------------------------------------------------------------
503
244
  * Outpost-specific helpers
504
245
  * ---------------------------------------------------------------------------
246
+ *
247
+ * This is the SDK equivalent of `deriveWirePdas` in capital-staking tests.
248
+ * It aggregates all PDAs / ATAs needed for Outpost pretokens + synd/desynd.
505
249
  */
506
250
  export interface OutpostAccounts {
507
251
  user: PublicKey;
508
252
 
509
- // Warrant / outpost
253
+ // Outpost / pretoken wiring
510
254
  globalState: PublicKey;
511
255
  poolAuthority: PublicKey;
512
256
  liqsolMint: PublicKey;
513
257
  liqsolPoolAta: PublicKey;
514
258
  userAta: PublicKey;
515
- wireReceipt: PublicKey;
516
- poolUserRecord: PublicKey;
517
- userUserRecord: PublicKey;
259
+ outpostAccount: PublicKey;
260
+ userPretokenRecord: PublicKey;
261
+
262
+ // Distribution / yield context (user_record keyed by token accounts)
518
263
  distributionState: PublicKey;
519
- payRateHistory: PublicKey;
520
264
  bucketAuthority: PublicKey;
521
265
  bucketTokenAccount: PublicKey;
522
- solBucket: PublicKey;
266
+ bucketUserRecord: PublicKey;
267
+ liqsolPoolUserRecord: PublicKey;
268
+ userUserRecord: PublicKey;
269
+
270
+ // Tranche / pricing
523
271
  trancheState: PublicKey;
524
- userWarrantRecord: PublicKey;
525
272
 
526
273
  // Chainlink
527
274
  chainLinkFeed: PublicKey;
528
275
  chainLinkProgram: PublicKey;
276
+
277
+ // Transfer hook extra accounts
278
+ extraAccountMetaList: PublicKey;
279
+
280
+ // New
281
+ pretokenPurchaseHistory: PublicKey;
282
+
283
+ // OPP (outpost protocol pipeline)
284
+ globalConfig: PublicKey;
285
+ oppEpochState: PublicKey;
286
+ pendingAttestations: PublicKey;
287
+ bridgeState: PublicKey;
529
288
  }
530
289
 
531
290
  export async function buildOutpostAccounts(
532
291
  connection: Connection,
533
292
  user: PublicKey,
293
+ pgs: SolanaProgramService,
534
294
  ): Promise<OutpostAccounts> {
535
- const globalState = deriveOutpostGlobalStatePda();
536
- const poolAuthority = deriveOutpostPoolAuthorityPda();
537
- const liqsolMint = deriveLiqsolMintPda();
538
- const distributionState = deriveDistributionStatePda();
539
- const payRateHistory = derivePayRateHistoryPda();
540
- const bucketAuthority = deriveBucketAuthorityPda();
541
- const solBucket = deriveSolBucketPda();
542
- const trancheState = deriveTrancheStatePda();
543
- const wireReceipt = deriveWireReceiptPda(user);
544
- const poolUserRecord = derivePoolUserRecordPda(poolAuthority);
545
- const userUserRecord = deriveUserUserRecordPda(user);
546
- const userWarrantRecord = deriveUserWarrantRecordPda(user);
547
-
295
+ const globalState = pgs.deriveOutpostGlobalStatePda();
296
+ const poolAuthority = pgs.deriveOutpostPoolAuthorityPda();
297
+ const liqsolMint = pgs.deriveLiqsolMintPda();
298
+ const distributionState = pgs.deriveDistributionStatePda();
299
+ const bucketAuthority = pgs.deriveBucketAuthorityPda();
300
+ const trancheState = pgs.deriveTrancheStatePda();
301
+
302
+ // Outpost / pretoken PDAs
303
+ const outpostAccount = pgs.deriveOutpostAccountPda(user);
304
+ const userPretokenRecord = pgs.deriveUserPretokenRecordPda(user);
305
+
306
+ // ATAs
548
307
  const liqsolPoolAta = await getAssociatedTokenAddress(
549
308
  liqsolMint,
550
309
  poolAuthority,
@@ -562,25 +321,44 @@ export async function buildOutpostAccounts(
562
321
  const userAta = await getAssociatedTokenAddress(
563
322
  liqsolMint,
564
323
  user,
565
- false,
324
+ true, // allow off curve in case squadsx vault
566
325
  TOKEN_2022_PROGRAM_ID,
567
326
  );
568
327
 
328
+ // user_record PDAs keyed by TOKEN ACCOUNTS (matches capital-staking)
329
+ const bucketUserRecord = pgs.deriveUserRecordPda(bucketTokenAccount);
330
+ const liqsolPoolUserRecord = pgs.deriveUserRecordPda(liqsolPoolAta);
331
+ const userUserRecord = pgs.deriveUserRecordPda(userAta);
332
+
333
+ const extraAccountMetaList = pgs.deriveExtraAccountMetaListPda(liqsolMint);
334
+
335
+ const pretokenPurchaseHistory = pgs.derivePretokenPurchaseHistoryPda(poolAuthority);
336
+
337
+ // OPP (outpost protocol pipeline)
338
+ const globalConfig = pgs.deriveGlobalConfigPda();
339
+ const oppEpochState = pgs.deriveOppEpochStatePda();
340
+ const epochNumber = await pgs.fetchOppEpochNumber(connection);
341
+ const pendingAttestations = pgs.derivePendingAttestationsPda(epochNumber);
342
+ const bridgeState = pgs.deriveOppBridgeStatePda();
343
+
569
344
  // Chainlink program feeds
570
345
  let chainLinkFeed = CHAINLINK_FEED;
571
- let chainLinkProgram = CHAINLINK_PROGRAM
346
+ let chainLinkProgram = CHAINLINK_PROGRAM;
572
347
 
573
348
  try {
574
- const program = getLiqsolCoreProgram(connection);
575
- const ts: TrancheState = await program.account.trancheState.fetch(trancheState);
349
+ const program = pgs.getProgram('liqsolCore');
350
+ const ts: TrancheState =
351
+ await program.account.trancheState.fetch(trancheState);
352
+
353
+ // If on-chain config overrides are present, prefer those.
576
354
  if (ts.chainlinkFeed && ts.chainlinkProgram) {
577
355
  chainLinkFeed = ts.chainlinkFeed as PublicKey;
578
356
  chainLinkProgram = ts.chainlinkProgram as PublicKey;
579
357
  }
580
358
  } catch {
581
359
  // If trancheState isn't initialized yet, we fall back to the constants.
582
- // In that case, pretoken instructions will still fail, which is the correct
583
- // behavior until admin initializes TrancheState on-chain.
360
+ // In that case, purchase instructions will still fail, which is the
361
+ // correct behavior until admin initializes TrancheState on-chain.
584
362
  }
585
363
 
586
364
  void connection; // reserved for future extra validation
@@ -592,21 +370,25 @@ export async function buildOutpostAccounts(
592
370
  liqsolMint,
593
371
  liqsolPoolAta,
594
372
  userAta,
595
- wireReceipt,
596
- poolUserRecord,
597
- userUserRecord,
373
+ outpostAccount,
374
+ userPretokenRecord,
598
375
  distributionState,
599
- payRateHistory,
600
376
  bucketAuthority,
601
377
  bucketTokenAccount,
602
- solBucket,
378
+ bucketUserRecord,
379
+ liqsolPoolUserRecord,
380
+ userUserRecord,
603
381
  trancheState,
604
- userWarrantRecord,
605
382
  chainLinkFeed,
606
383
  chainLinkProgram,
384
+ extraAccountMetaList,
385
+ pretokenPurchaseHistory,
386
+ globalConfig,
387
+ oppEpochState,
388
+ pendingAttestations,
389
+ bridgeState,
607
390
  };
608
391
  }
609
-
610
392
  // -----------------------------------------------------------------------------
611
393
  // Epoch / scheduling helpers
612
394
  // -----------------------------------------------------------------------------
@@ -782,3 +564,24 @@ export interface ScheduleConfig {
782
564
  late?: number; // fraction of epoch, default 0.90
783
565
  }
784
566
 
567
+ export function ceilDiv(n: BN, d: BN): BN {
568
+ if (d.isZero()) {
569
+ throw new Error('Division by zero in ceilDiv');
570
+ }
571
+ return n.add(d.subn(1)).div(d);
572
+ }
573
+
574
+ export function normalizeToBigInt(x: any): bigint {
575
+ if (typeof x === 'bigint') return x;
576
+ if (x != null && typeof x === 'object' && 'toString' in x) return BigInt(x.toString());
577
+ if (typeof x === 'number') return BigInt(x);
578
+ throw new Error(`normalizeToBigInt: unsupported type ${typeof x}`);
579
+ }
580
+
581
+ export const safeFetch = async <T>(promise: Promise<T>, label?: string): Promise<T | null> => {
582
+ try { return await promise; }
583
+ catch (err) {
584
+ console.error(`Safe Fetch Failed${label ? ` (${label})` : ''}:`,err);
585
+ return null;
586
+ }
587
+ };