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