@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,474 +1,341 @@
1
1
  import { AnchorProvider, BN, Program } from '@coral-xyz/anchor';
2
2
  import {
3
- Connection,
4
3
  PublicKey,
5
4
  SystemProgram,
6
- Transaction,
7
5
  TransactionInstruction,
8
6
  } from '@solana/web3.js';
9
7
  import {
10
8
  ASSOCIATED_TOKEN_PROGRAM_ID,
11
9
  TOKEN_2022_PROGRAM_ID,
12
- createAssociatedTokenAccountInstruction,
13
10
  } from '@solana/spl-token';
11
+
14
12
  import {
13
+ OutpostAccounts,
15
14
  buildOutpostAccounts,
16
- getLiqsolCoreProgram,
17
- getErrorMessage,
15
+ safeFetch,
18
16
  } from '../utils';
19
- import { SolanaProgramService } from '../program';
20
- import { LiqsolCore } from '../../../assets/solana/types/liqsol_core';
21
- import { WalletLike, OutpostWireStateSnapshot, SharesPreview, UserWarrantRecord, TrancheState, WireReceipt } from '../types';
17
+
18
+ import {
19
+ OutpostWireStateSnapshot,
20
+ SharesPreview,
21
+ TrancheState,
22
+ WalletLike,
23
+ } from '../types';
24
+ import { INDEX_SCALE } from '../constants';
25
+ import { LiqsolCoreClientIdl, SolanaProgramService } from '../program';
22
26
 
23
27
  /**
24
- * Minimal, user-flow focused OutpostClient.
25
- * - Read state
26
- * - Build + (optionally) send user instructions
28
+ * OutpostClient
29
+ *
30
+ * Read-only + preview helper for:
31
+ * - Outpost config + per-user pretokens
32
+ * - Tranche ladder snapshot
33
+ * - Pretoken preview math
34
+ *
35
+ * Write helpers:
36
+ * - buildStakeIx → liqsol_core::synd
37
+ * - buildUnstakeIx → liqsol_core::desynd
27
38
  *
28
- * No admin/bootstrap/reset helpers by design.
39
+ * All PDAs / ATAs are sourced via buildOutpostAccounts, which is kept
40
+ * in sync with the on-chain PDAs and capital-staking Wire utils.
29
41
  */
30
42
  export class OutpostClient {
31
- private readonly program: Program<LiqsolCore>;
43
+ private readonly program: Program<LiqsolCoreClientIdl>;
32
44
 
33
- // keep consistent with your tests
34
- static readonly INDEX_SCALE = new BN('1000000000000');
35
-
36
- get connection(): Connection { return this.provider.connection; }
37
- get wallet(): WalletLike { return this.provider.wallet; }
38
-
39
- constructor(private provider: AnchorProvider) {
40
- const svc = new SolanaProgramService(provider);
41
- this.program = svc.getProgram('liqsolCore');
45
+ constructor(
46
+ private readonly provider: AnchorProvider,
47
+ private readonly pgs: SolanaProgramService,
48
+ ) {
49
+ this.program = pgs.getProgram('liqsolCore');
42
50
  }
43
51
 
44
- /**
45
- * Read-only Program helper (dummy wallet), useful if you want to do pure reads
46
- * without requiring a wallet. Kept here as sugar for callers.
47
- */
48
- getReadOnlyProgram(): Program<LiqsolCore> {
49
- return getLiqsolCoreProgram(this.connection);
52
+ get connection() {
53
+ return this.provider.connection;
50
54
  }
51
55
 
52
- // ---------------------------------------------------------------------------
53
- // General-purpose formatting + math (SDK sugar)
54
- // ---------------------------------------------------------------------------
55
-
56
- /**
57
- * Same rounding logic from your tests: ceil(amount * INDEX_SCALE / currentIndex)
58
- */
59
- static tokensToShares(amount: BN, currentIndex: BN): BN {
60
- const numerator = amount.mul(OutpostClient.INDEX_SCALE);
61
- const shares = numerator.div(currentIndex);
62
- const remainder = numerator.mod(currentIndex);
63
- return remainder.eqn(0) ? shares : shares.addn(1);
56
+ get wallet(): WalletLike {
57
+ return this.provider.wallet as unknown as WalletLike;
64
58
  }
65
59
 
66
60
  /**
67
- * UI helper: formats a BN assumed to be scale=1e8 into a decimal string.
68
- * (Matches your test helper; useful for tranche price, USD price, etc.)
61
+ * Build all outpost-related PDAs / ATAs for a given user.
62
+ * Defaults to the connected wallet.
69
63
  */
70
- static formatScale8(value: BN): string {
71
- const decimals = 8;
72
- const valueStr = value.toString();
73
- if (valueStr.length <= decimals) {
74
- const padding = '0'.repeat(decimals - valueStr.length);
75
- return `0.${padding}${valueStr}`;
64
+ async buildAccounts(user?: PublicKey): Promise<OutpostAccounts> {
65
+ const userPk = user ?? this.wallet.publicKey;
66
+ if (!userPk) {
67
+ throw new Error('OutpostClient.buildAccounts: wallet not connected');
76
68
  }
77
- const intPart = valueStr.slice(0, valueStr.length - decimals);
78
- const decPart = valueStr.slice(valueStr.length - decimals);
79
- return `${intPart}.${decPart}`;
69
+ return buildOutpostAccounts(this.connection, userPk, this.pgs);
80
70
  }
81
71
 
82
72
  /**
83
- * Previews expected shares for a purchase/stake flow that mints shares
84
- * relative to globalState.currentIndex.
73
+ * Internal helper: get raw token balance (BN) for a given ATA.
85
74
  */
86
- async previewExpectedShares(params: {
87
- amountLamports: BN;
88
- user?: PublicKey; // optional; defaults to wallet.publicKey
89
- }): Promise<SharesPreview> {
90
- const user = params.user ?? this.wallet.publicKey;
91
- const accounts = await buildOutpostAccounts(this.connection, user);
92
- const globalState = await this.program.account.globalState.fetch(accounts.globalState);
93
- const currentIndex = new BN(globalState.currentIndex.toString());
94
- const expectedShares = OutpostClient.tokensToShares(
95
- params.amountLamports,
96
- currentIndex,
97
- );
98
-
99
- return {
100
- amountLamports: params.amountLamports,
101
- currentIndex,
102
- indexScale: OutpostClient.INDEX_SCALE,
103
- expectedShares,
104
- };
105
- }
106
-
107
- // ---------------------------------------------------------------------------
108
- // Account helpers (user-facing, not admin bootstrap)
109
- // ---------------------------------------------------------------------------
110
-
111
- /**
112
- * Returns whether the user's liqSOL ATA exists.
113
- * Useful for UX (show "Create token account" prompt).
114
- */
115
- async doesUserAtaExist(user: PublicKey = this.wallet.publicKey): Promise<boolean> {
116
- const accounts = await buildOutpostAccounts(this.connection, user);
117
- const info = await this.connection.getAccountInfo(accounts.userAta);
118
- return !!info;
75
+ private async getTokenBalance(ata: PublicKey): Promise<BN> {
76
+ const bal = await this.connection.getTokenAccountBalance(ata);
77
+ return new BN(bal.value.amount);
119
78
  }
120
79
 
121
80
  /**
122
- * Builds an instruction to create the user's liqSOL ATA (Token-2022).
123
- * This is general-purpose sugar for any flow that needs the ATA.
81
+ * Fetch an OutpostAccount, handling legacy accounts that pre-date the
82
+ * three trailing Option<u64> fields. If the normal decode throws a
83
+ * RangeError we re-fetch the raw data, pad it to the expected size
84
+ * (zeros → Option::None for each missing field), and let Anchor's
85
+ * coder decode the padded buffer.
124
86
  */
125
- async buildCreateUserAtaIx(user: PublicKey = this.wallet.publicKey): Promise<TransactionInstruction> {
126
- const accounts = await buildOutpostAccounts(this.connection, user);
127
-
128
- return createAssociatedTokenAccountInstruction(
129
- this.wallet.publicKey, // payer
130
- accounts.userAta, // ata
131
- user, // owner
132
- accounts.liqsolMint, // mint
133
- TOKEN_2022_PROGRAM_ID,
134
- ASSOCIATED_TOKEN_PROGRAM_ID,
135
- );
87
+ private async fetchOutpostAccount(address: PublicKey) {
88
+ try {
89
+ return await this.program.account.outpostAccount.fetchNullable(address);
90
+ } catch (e) {
91
+ if (!(e instanceof RangeError)) throw e;
92
+
93
+ const info = await this.connection.getAccountInfo(address);
94
+ if (!info) return null;
95
+
96
+ // 3 × Option<u64> encoded as 1-byte tag (0x00 = None) = 3 bytes
97
+ // when present (Some) each is 9 bytes, but None is just 0x00
98
+ const EXPECTED_SIZE = info.data.length + 3;
99
+ const padded = Buffer.alloc(EXPECTED_SIZE);
100
+ info.data.copy(padded);
101
+ // trailing bytes are already 0x00 → Option::None for each field
102
+
103
+ return this.program.coder.accounts.decode(
104
+ 'outpostAccount',
105
+ padded,
106
+ );
107
+ }
136
108
  }
137
109
 
138
110
  /**
139
- * Convenience: ensures ATA exists by returning either [] or [createATAIx].
140
- * (Does NOT send; caller composes tx)
111
+ * Fetch the core "Wire state" for Outpost / pretokens for a given user.
141
112
  */
142
- async maybeBuildCreateUserAtaIx(user: PublicKey = this.wallet.publicKey): Promise<TransactionInstruction[]> {
143
- const accounts = await buildOutpostAccounts(this.connection, user);
144
- const info = await this.connection.getAccountInfo(accounts.userAta);
145
- if (info) return [];
146
- return [await this.buildCreateUserAtaIx(user)];
147
- }
148
-
149
- // ---------------------------------------------------------------------------
150
- // Reads (UI-first)
151
- // ---------------------------------------------------------------------------
152
-
153
- async getWireStateSnapshot(user: PublicKey = this.wallet.publicKey): Promise<OutpostWireStateSnapshot> {
154
- const accounts = await buildOutpostAccounts(this.connection, user);
113
+ async fetchWireState(user?: PublicKey): Promise<OutpostWireStateSnapshot> {
114
+ const userPk = user ?? this.wallet.publicKey;
115
+ if (!userPk) throw new Error('OutpostClient.fetchWireState: wallet not connected');
155
116
 
117
+ const pdas = await this.buildAccounts(userPk);
156
118
  const [
157
119
  globalState,
158
- wireReceipt,
120
+ outpostAccount,
159
121
  distributionState,
160
- userWarrantRecord,
122
+ userPretokenRecord,
161
123
  trancheState,
162
- ] = await Promise.all([
163
- this.program.account.globalState.fetch(accounts.globalState),
164
- this.program.account.wireReceipt.fetchNullable(accounts.wireReceipt),
165
- this.program.account.distributionState.fetch(accounts.distributionState),
166
- this.program.account.userWarrantRecord.fetchNullable(accounts.userWarrantRecord),
167
- this.program.account.trancheState.fetchNullable(accounts.trancheState),
168
- ]);
169
-
170
- const [
171
124
  liqsolPoolBalance,
172
- solBucketLamports,
173
125
  userLiqsolBalance,
174
126
  ] = await Promise.all([
175
- this.getTokenBalanceSafe(accounts.liqsolPoolAta),
176
- this.connection.getBalance(accounts.solBucket),
177
- this.getTokenBalanceSafe(accounts.userAta),
127
+ safeFetch(this.program.account.globalState.fetch(pdas.globalState), 'globalState'),
128
+ safeFetch(this.fetchOutpostAccount(pdas.outpostAccount), 'outpostAccount'),
129
+ safeFetch(this.program.account.distributionState.fetchNullable(pdas.distributionState), 'distributionState'),
130
+ safeFetch(this.program.account.userPretokenRecord.fetchNullable(pdas.userPretokenRecord), 'userPretokenRecord'),
131
+ safeFetch(this.program.account.trancheState.fetchNullable(pdas.trancheState), 'trancheState'),
132
+ safeFetch(this.getTokenBalance(pdas.liqsolPoolAta), 'liqsolPoolAta'),
133
+ safeFetch(this.getTokenBalance(pdas.userAta), 'userAta'),
178
134
  ]);
179
135
 
180
136
  return {
181
137
  globalState,
138
+ outpostAccount,
182
139
  distributionState,
183
- wireReceipt,
184
140
  trancheState,
185
- userWarrantRecord,
141
+ userPretokenRecord,
186
142
  liqsolPoolBalance,
187
- solBucketLamports,
188
143
  userLiqsolBalance,
189
144
  };
190
145
  }
191
146
 
192
- async getWireReceipt(user: PublicKey = this.wallet.publicKey): Promise<WireReceipt | null> {
193
- const accounts = await buildOutpostAccounts(this.connection, user);
194
- return this.program.account.wireReceipt.fetchNullable(accounts.wireReceipt);
195
- }
196
147
 
197
- async getTrancheState(): Promise<TrancheState | null> {
198
- const accounts = await buildOutpostAccounts(this.connection, this.wallet.publicKey);
199
- return this.program.account.trancheState.fetchNullable(accounts.trancheState);
200
- }
201
-
202
- async getUserWarrantRecord(user: PublicKey = this.wallet.publicKey): Promise<UserWarrantRecord | null> {
203
- const accounts = await buildOutpostAccounts(this.connection, user);
204
- return this.program.account.userWarrantRecord.fetchNullable(accounts.userWarrantRecord);
205
- }
206
148
 
207
- // ---------------------------------------------------------------------------
208
- // Instruction builders (source of truth: your test utils)
209
- // ---------------------------------------------------------------------------
149
+ // -------------------------------------------------------------------------
150
+ // Outpost stake / unstake builders (syndicate_liqsol_to_wire / desynd)
151
+ // -------------------------------------------------------------------------
210
152
 
211
153
  /**
212
- * stakeLiqsol(amount)
213
- * (Outpost staking: liqSOL -> warrant pool)
154
+ * Build the `syndicate_liqsol_to_wire` (stake) instruction:
155
+ * user liqSOL ATA liqSOL pool ATA, bridged to the Wire chain.
156
+ *
157
+ * @param amountLamports Amount of liqSOL to stake (in lamports / base units).
158
+ * @param user Solana signer. Defaults to the connected wallet.
159
+ * @param wireAccount Wire chain recipient account name. Required.
214
160
  */
215
- async buildStakeLiqsolIx(amountLamports: bigint, userPubKey = this.wallet.publicKey): Promise<TransactionInstruction> {
216
- const a = await buildOutpostAccounts(this.connection, userPubKey);
217
- const amount = new BN(amountLamports.toString());
161
+ async buildStakeIx(
162
+ amountLamports: bigint,
163
+ user: PublicKey = this.wallet.publicKey,
164
+ wireAccount?: string,
165
+ ): Promise<TransactionInstruction> {
166
+ if (!user) {
167
+ throw new Error('OutpostClient.buildStakeIx: wallet not connected');
168
+ }
169
+ if (!wireAccount?.trim()) {
170
+ throw new Error('OutpostClient.buildStakeIx: wireAccount is required');
171
+ }
172
+
173
+ const a = await this.buildAccounts(user);
218
174
 
219
175
  return this.program.methods
220
- .stakeLiqsol(amount)
176
+ .syndicateLiqsolToWire(wireAccount.trim(), new BN(amountLamports.toString()))
221
177
  .accounts({
222
- user: a.user,
178
+ user,
223
179
  liqsolMint: a.liqsolMint,
180
+ distributionState: a.distributionState,
224
181
  globalState: a.globalState,
225
182
  userAta: a.userAta,
183
+ senderUserRecord: a.userUserRecord,
226
184
  poolAuthority: a.poolAuthority,
227
185
  liqsolPoolAta: a.liqsolPoolAta,
228
- warrantDepositRecord: a.wireReceipt,
229
- liqsolPoolUserRecord: a.poolUserRecord,
230
- distributionState: a.distributionState,
231
- payRateHistory: a.payRateHistory,
186
+ poolUserRecord: a.liqsolPoolUserRecord,
187
+ bridgeState: a.bridgeState,
188
+ extraAccountMetaList: a.extraAccountMetaList,
189
+ liqsolCoreProgram: this.pgs.PROGRAM_IDS.LIQSOL_CORE,
190
+ transferHookProgram: this.pgs.PROGRAM_IDS.TRANSFER_HOOK,
232
191
  bucketAuthority: a.bucketAuthority,
233
192
  bucketTokenAccount: a.bucketTokenAccount,
234
- solBucket: a.solBucket,
193
+ bucketUserRecord: a.bucketUserRecord,
235
194
  tokenProgram: TOKEN_2022_PROGRAM_ID,
236
195
  associatedTokenProgram: ASSOCIATED_TOKEN_PROGRAM_ID,
237
196
  systemProgram: SystemProgram.programId,
197
+ globalConfig: a.globalConfig,
198
+ oppEpochState: a.oppEpochState,
199
+ pendingAttestations: a.pendingAttestations,
238
200
  })
239
201
  .instruction();
240
202
  }
241
203
 
242
204
  /**
243
- * withdrawStake(amount)
244
- * (Outpost unstake: warrant pool -> user liqSOL)
205
+ * Build the `desynd` (unstake / desync) instruction:
206
+ * liqSOL pool ATA user liqSOL ATA
207
+ *
208
+ * When Wire is in PostLaunch mode this instruction emits a `DesyncRequest`
209
+ * OPP attestation and does NOT immediately return tokens. The Wire chain
210
+ * relay picks up the attestation, and an admin subsequently executes
211
+ * `complete_withdraw` to deliver the tokens to the user.
212
+ *
213
+ * In PreLaunch mode the tokens are returned directly.
245
214
  */
246
- async buildWithdrawStakeIx(amountLamports: bigint, userPubKey = this.wallet.publicKey): Promise<TransactionInstruction> {
247
- const a = await buildOutpostAccounts(this.connection, userPubKey);
248
- const amount = new BN(amountLamports.toString());
215
+ async buildUnstakeIx(
216
+ amountLamports: bigint,
217
+ user?: PublicKey,
218
+ ): Promise<TransactionInstruction> {
219
+ const userPk = user ?? this.wallet.publicKey;
220
+ if (!userPk) {
221
+ throw new Error('OutpostClient.buildUnstakeIx: wallet not connected');
222
+ }
223
+
224
+ const a = await this.buildAccounts(userPk);
249
225
 
250
226
  return this.program.methods
251
- .withdrawStake(amount)
227
+ .desynd(new BN(amountLamports.toString()))
252
228
  .accounts({
253
- user: a.user,
229
+ user: userPk,
254
230
  liqsolMint: a.liqsolMint,
255
231
  globalState: a.globalState,
232
+ distributionState: a.distributionState,
256
233
  userAta: a.userAta,
257
234
  poolAuthority: a.poolAuthority,
258
- liqsolPoolAta: a.liqsolPoolAta,
259
- warrantDepositRecord: a.wireReceipt,
260
- liqsolPoolUserRecord: a.poolUserRecord,
261
- distributionState: a.distributionState,
262
- payRateHistory: a.payRateHistory,
263
235
  bucketAuthority: a.bucketAuthority,
264
236
  bucketTokenAccount: a.bucketTokenAccount,
265
- solBucket: a.solBucket,
266
- tokenProgram: TOKEN_2022_PROGRAM_ID,
267
- systemProgram: SystemProgram.programId,
268
- })
269
- .instruction();
270
- }
271
-
272
- /**
273
- * purchaseWithLiqsol(amount)
274
- */
275
- async buildPurchaseWithLiqsolIx(amountLamports: bigint, userPubKey = this.wallet.publicKey): Promise<TransactionInstruction> {
276
- const a = await buildOutpostAccounts(this.connection, userPubKey);
277
- const amount = new BN(amountLamports.toString());
278
-
279
- return this.program.methods
280
- .purchaseWithLiqsol(amount)
281
- .accounts({
282
- user: a.user,
283
- liqsolMint: a.liqsolMint,
284
- globalState: a.globalState,
285
- buyerAta: a.userAta,
286
- poolAuthority: a.poolAuthority,
237
+ bucketUserRecord: a.bucketUserRecord,
238
+ senderUserRecord: a.liqsolPoolUserRecord,
239
+ receiverUserRecord: a.userUserRecord,
240
+ extraAccountMetaList: a.extraAccountMetaList,
241
+ liqsolCoreProgram: this.pgs.PROGRAM_IDS.LIQSOL_CORE,
242
+ transferHookProgram: this.pgs.PROGRAM_IDS.TRANSFER_HOOK,
287
243
  liqsolPoolAta: a.liqsolPoolAta,
288
- warrantDepositRecord: a.wireReceipt,
289
- liqsolPoolUserRecord: a.poolUserRecord,
290
- distributionState: a.distributionState,
291
- payRateHistory: a.payRateHistory,
292
- bucketAuthority: a.bucketAuthority,
293
- bucketTokenAccount: a.bucketTokenAccount,
294
- solBucket: a.solBucket,
295
- trancheState: a.trancheState,
296
- userWarrantRecord: a.userWarrantRecord,
297
- chainlinkFeed: a.chainLinkFeed,
298
- chainlinkProgram: a.chainLinkProgram,
244
+ outpostAccount: a.outpostAccount,
299
245
  tokenProgram: TOKEN_2022_PROGRAM_ID,
300
- associatedTokenProgram: ASSOCIATED_TOKEN_PROGRAM_ID,
301
246
  systemProgram: SystemProgram.programId,
247
+ associatedTokenProgram: ASSOCIATED_TOKEN_PROGRAM_ID,
248
+ globalConfig: a.globalConfig,
249
+ oppEpochState: a.oppEpochState,
250
+ pendingAttestations: a.pendingAttestations,
251
+ pretokenPurchaseHistory: a.pretokenPurchaseHistory,
302
252
  })
303
253
  .instruction();
304
254
  }
305
255
 
306
- /**
307
- * purchaseWithSol(amount)
308
- */
309
- async buildPurchaseWithSolIx(amountLamports: bigint, userPubKey = this.wallet.publicKey): Promise<TransactionInstruction> {
310
- const a = await buildOutpostAccounts(this.connection, userPubKey);
311
- const amount = new BN(amountLamports.toString());
312
-
313
- return this.program.methods
314
- .purchaseWithSol(amount)
315
- .accounts({
316
- user: a.user,
317
- liqsolMint: a.liqsolMint,
318
- globalState: a.globalState,
319
- poolAuthority: a.poolAuthority,
320
- liqsolPoolAta: a.liqsolPoolAta,
321
- liqsolPoolUserRecord: a.poolUserRecord,
322
- distributionState: a.distributionState,
323
- payRateHistory: a.payRateHistory,
324
- bucketAuthority: a.bucketAuthority,
325
- bucketTokenAccount: a.bucketTokenAccount,
326
- solBucket: a.solBucket,
327
- warrantDepositRecord: a.wireReceipt,
328
- trancheState: a.trancheState,
329
- userWarrantRecord: a.userWarrantRecord,
330
- chainlinkFeed: a.chainLinkFeed,
331
- chainlinkProgram: a.chainLinkProgram,
332
- tokenProgram: TOKEN_2022_PROGRAM_ID,
333
- systemProgram: SystemProgram.programId,
334
- })
335
- .instruction();
336
- }
256
+ // -------------------------------------------------------------------------
257
+ // Pretoken preview helper (unchanged)
258
+ // -------------------------------------------------------------------------
337
259
 
338
260
  /**
339
- * purchaseWarrantsFromYield()
261
+ * Local preview for "how many pretokens would I get for this liqSOL
262
+ * amount at the current tranche price and SOL/USD price?"
263
+ *
264
+ * SCALE = 1e8
265
+ * usdValue = solAmountLamports * solPriceUsd / 1e9
266
+ * pretokens = usdValue * SCALE / pretokenPriceUsd
340
267
  *
341
- * Source of truth: your test util executePurchaseFromYield (note: it passed
342
- * liqsolPoolUserRecord: pdas.userUserRecord, not poolUserRecord).
268
+ * All values are BN integers; solPriceUsd and pretokenPriceUsd are 1e8 scaled.
343
269
  */
344
- async buildPurchaseFromYieldIx(userPubKey = this.wallet.publicKey): Promise<TransactionInstruction> {
345
- const a = await buildOutpostAccounts(this.connection, userPubKey);
270
+ previewPretokens(params: {
271
+ liqsolAmountLamports: BN;
272
+ solPriceUsd: BN; // 1e8 scale
273
+ trancheState: TrancheState;
274
+ }): SharesPreview {
275
+ const { liqsolAmountLamports, solPriceUsd, trancheState } = params;
276
+
277
+ // Current tranche price in USD (1e8 scale)
278
+ const pretokenPriceUsd = new BN(
279
+ trancheState.currentTranchePriceUsd.toString(),
280
+ );
346
281
 
347
- return this.program.methods
348
- .purchaseWarrantsFromYield()
349
- .accounts({
350
- user: a.user,
351
- globalState: a.globalState,
352
- liqsolMint: a.liqsolMint,
353
- poolAuthority: a.poolAuthority,
354
- liqsolPoolAta: a.liqsolPoolAta,
355
- solBucket: a.solBucket,
356
- liqsolPoolUserRecord: a.userUserRecord,
357
- distributionState: a.distributionState,
358
- payRateHistory: a.payRateHistory,
359
- bucketAuthority: a.bucketAuthority,
360
- bucketTokenAccount: a.bucketTokenAccount,
361
- tokenProgram: TOKEN_2022_PROGRAM_ID,
362
- systemProgram: SystemProgram.programId,
363
- trancheState: a.trancheState,
364
- userWarrantRecord: a.userWarrantRecord,
365
- chainlinkFeed: a.chainLinkFeed,
366
- chainlinkProgram: a.chainLinkProgram,
367
- })
368
- .instruction();
369
- }
282
+ const SCALE = new BN('100000000'); // 1e8
370
283
 
371
- // ---------------------------------------------------------------------------
372
- // Optional send helpers (wallet-facing sugar)
373
- // ---------------------------------------------------------------------------
284
+ // usdValue = (lamports * solPriceUsd) / 1e9
285
+ const usdValue = liqsolAmountLamports
286
+ .mul(solPriceUsd)
287
+ .div(new BN(1_000_000_000));
374
288
 
375
- /**
376
- * Builds and sends a single-instruction transaction.
377
- * (Hub can ignore this and use builder methods only.)
378
- */
379
- async sendIx(ix: TransactionInstruction, opts?: {
380
- additionalIxs?: TransactionInstruction[];
381
- }): Promise<string> {
382
- const tx = new Transaction();
383
- if (opts?.additionalIxs?.length) {
384
- tx.add(...opts.additionalIxs);
385
- }
386
- tx.add(ix);
289
+ const estimatedPretokens = usdValue.mul(SCALE).div(pretokenPriceUsd);
387
290
 
388
- try {
389
- const sig = await this.provider.sendAndConfirm(tx, [], { commitment: 'confirmed' });
390
- return sig;
391
- } catch (e: any) {
392
- const msg = getErrorMessage(e);
393
- throw new Error(`OutpostClient sendIx failed: ${msg}`);
394
- }
291
+ return {
292
+ liqsolAmountLamports,
293
+ solPriceUsd,
294
+ pretokenPriceUsd,
295
+ estimatedPretokens,
296
+ };
395
297
  }
396
298
 
397
299
  /**
398
- * Convenience: stake liqSOL and (optionally) create ATA first.
300
+ * Convert liqSOL tokens (lamports) Outpost “shares”, rounding UP
301
+ * when there is any remainder.
302
+ *
303
+ * This matches the on-chain logic and the capital-staking helper:
304
+ *
305
+ * INDEX_SCALE = 1e12
306
+ * numerator = amount * INDEX_SCALE
307
+ * shares = numerator / currentIndex
308
+ * remainder = numerator % currentIndex
309
+ * if remainder > 0 → shares + 1
399
310
  */
400
- async stakeLiqsol(params: {
401
- amount: BN;
402
- user?: PublicKey;
403
- ensureAta?: boolean; // default true
404
- }): Promise<string> {
405
- const user = params.user ?? this.wallet.publicKey;
406
- const pre: TransactionInstruction[] = [];
407
- if (params.ensureAta ?? true) {
408
- pre.push(...(await this.maybeBuildCreateUserAtaIx(user)));
409
- }
410
- const ix = await this.buildStakeLiqsolIx(params.amount, user);
411
- return this.sendIx(ix, { additionalIxs: pre });
412
- }
413
-
414
- async withdrawStake(params: {
415
- amount: BN;
416
- user?: PublicKey;
417
- ensureAta?: boolean; // default true (usually exists, but harmless)
418
- }): Promise<string> {
419
- const user = params.user ?? this.wallet.publicKey;
420
- const pre: TransactionInstruction[] = [];
421
- if (params.ensureAta ?? true) {
422
- pre.push(...(await this.maybeBuildCreateUserAtaIx(user)));
423
- }
424
- const ix = await this.buildWithdrawStakeIx(params.amount, user);
425
- return this.sendIx(ix, { additionalIxs: pre });
426
- }
427
-
428
- async purchaseWithLiqsol(params: {
429
- amount: BN;
430
- user?: PublicKey;
431
- ensureAta?: boolean; // default true
432
- }): Promise<string> {
433
- const user = params.user ?? this.wallet.publicKey;
434
- const pre: TransactionInstruction[] = [];
435
- if (params.ensureAta ?? true) {
436
- pre.push(...(await this.maybeBuildCreateUserAtaIx(user)));
437
- }
438
- const ix = await this.buildPurchaseWithLiqsolIx(params.amount, user);
439
- return this.sendIx(ix, { additionalIxs: pre });
440
- }
441
-
442
- async purchaseWithSol(params: {
443
- amount: BN;
444
- user?: PublicKey;
445
- }): Promise<string> {
446
- const user = params.user ?? this.wallet.publicKey;
447
- const ix = await this.buildPurchaseWithSolIx(params.amount, user);
448
- return this.sendIx(ix);
449
- }
450
-
451
- async purchaseFromYield(params?: {
452
- user?: PublicKey;
453
- }): Promise<string> {
454
- const user = params?.user ?? this.wallet.publicKey;
455
- const ix = await this.buildPurchaseFromYieldIx(user);
456
- return this.sendIx(ix);
311
+ static tokensToShares(amount: BN, currentIndex: BN): BN {
312
+ const numerator = amount.mul(new BN(INDEX_SCALE));
313
+ const shares = numerator.div(currentIndex);
314
+ const remainder = numerator.mod(currentIndex);
315
+ return remainder.eqn(0) ? shares : shares.addn(1);
457
316
  }
458
317
 
459
- // ---------------------------------------------------------------------------
460
- // Internals
461
- // ---------------------------------------------------------------------------
462
-
463
318
  /**
464
- * Token balance helper returning BN(0) if ATA missing.
319
+ * Format a 1e8-scaled integer (e.g. USD price, pretokens, etc.)
320
+ * into a fixed 8-decimal string.
321
+ *
322
+ * Examples:
323
+ * 0 -> "0.00000000"
324
+ * 1 -> "0.00000001"
325
+ * 100000000 -> "1.00000000"
326
+ * 123456789 -> "1.23456789"
465
327
  */
466
- private async getTokenBalanceSafe(ata: PublicKey): Promise<BN> {
467
- try {
468
- const bal = await this.connection.getTokenAccountBalance(ata);
469
- return new BN(bal.value.amount);
470
- } catch {
471
- return new BN(0);
328
+ static formatScale8(value: BN): string {
329
+ const decimals = 8;
330
+ const valueStr = value.toString();
331
+
332
+ if (valueStr.length <= decimals) {
333
+ const padding = '0'.repeat(decimals - valueStr.length);
334
+ return `0.${padding}${valueStr}`;
472
335
  }
336
+
337
+ const intPart = valueStr.slice(0, valueStr.length - decimals);
338
+ const decPart = valueStr.slice(valueStr.length - decimals);
339
+ return `${intPart}.${decPart}`;
473
340
  }
474
- }
341
+ }