@wireio/stake 0.0.5 → 0.0.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 (504) hide show
  1. package/README.md +204 -15
  2. package/lib/stake.browser.js +69370 -4589
  3. package/lib/stake.browser.js.map +1 -1
  4. package/lib/stake.d.ts +17899 -5512
  5. package/lib/stake.js +70103 -4899
  6. package/lib/stake.js.map +1 -1
  7. package/lib/stake.m.js +69370 -4589
  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/IDepositContract.json +39 -0
  48. package/src/assets/ethereum/hoodi/liqEth/LiqEthCommon.sol/IDepositManager.dbg.json +4 -0
  49. package/src/assets/ethereum/hoodi/liqEth/LiqEthCommon.sol/IDepositManager.json +64 -0
  50. package/src/assets/ethereum/hoodi/liqEth/LiqEthCommon.sol/ILiqEthUpgradeable.dbg.json +4 -0
  51. package/src/assets/ethereum/hoodi/liqEth/LiqEthCommon.sol/ILiqEthUpgradeable.json +29 -0
  52. package/src/assets/ethereum/hoodi/liqEth/LiqEthCommon.sol/IRewardsERC20.dbg.json +4 -0
  53. package/src/assets/ethereum/hoodi/liqEth/LiqEthCommon.sol/IRewardsERC20.json +319 -0
  54. package/src/assets/ethereum/hoodi/liqEth/LiqEthCommon.sol/IRewardsERC20Pausable.dbg.json +4 -0
  55. package/src/assets/ethereum/hoodi/liqEth/LiqEthCommon.sol/IRewardsERC20Pausable.json +333 -0
  56. package/src/assets/ethereum/hoodi/liqEth/LiqEthCommon.sol/IStakingModule.dbg.json +4 -0
  57. package/src/assets/ethereum/hoodi/liqEth/LiqEthCommon.sol/IStakingModule.json +344 -0
  58. package/src/assets/ethereum/hoodi/liqEth/LiqEthCommon.sol/IValidatorBalanceVerifier.dbg.json +4 -0
  59. package/src/assets/ethereum/hoodi/liqEth/LiqEthCommon.sol/IValidatorBalanceVerifier.json +129 -0
  60. package/src/assets/ethereum/hoodi/liqEth/LiqEthCommon.sol/IWithdrawalRecord.dbg.json +4 -0
  61. package/src/assets/ethereum/hoodi/liqEth/LiqEthCommon.sol/IWithdrawalRecord.json +66 -0
  62. package/src/assets/ethereum/hoodi/liqEth/LiqEthCommon.sol/LiqEthCommon.dbg.json +4 -0
  63. package/src/assets/ethereum/hoodi/liqEth/LiqEthCommon.sol/LiqEthCommon.json +10 -0
  64. package/src/assets/ethereum/hoodi/liqEth/LiqEthDeepFreeze.sol/LiqEthDeepFreeze.dbg.json +4 -0
  65. package/src/assets/ethereum/hoodi/liqEth/LiqEthDeepFreeze.sol/LiqEthDeepFreeze.json +236 -0
  66. package/src/assets/ethereum/hoodi/liqEth/LiqEthManaged.sol/LiqEthManaged.dbg.json +4 -0
  67. package/src/assets/ethereum/hoodi/liqEth/LiqEthManaged.sol/LiqEthManaged.json +229 -0
  68. package/src/assets/ethereum/hoodi/liqEth/RewardsERC20.sol/RewardsERC20UpgradeableV2.dbg.json +4 -0
  69. package/src/assets/ethereum/hoodi/liqEth/RewardsERC20.sol/RewardsERC20UpgradeableV2.json +957 -0
  70. package/src/assets/ethereum/hoodi/liqEth/RewardsERC20Pausable.sol/RewardsERC20PausableUpgradeableV2.dbg.json +4 -0
  71. package/src/assets/ethereum/hoodi/liqEth/RewardsERC20Pausable.sol/RewardsERC20PausableUpgradeableV2.json +1020 -0
  72. package/src/assets/ethereum/hoodi/liqEth/Yield.sol/YieldOracle.dbg.json +4 -0
  73. package/src/assets/ethereum/hoodi/liqEth/Yield.sol/YieldOracle.json +1376 -0
  74. package/src/assets/ethereum/hoodi/liqEth/accounting.sol/AccountingV2.dbg.json +4 -0
  75. package/src/assets/ethereum/hoodi/liqEth/accounting.sol/AccountingV2.json +629 -0
  76. package/src/assets/ethereum/hoodi/liqEth/liqEth.sol/LiqEthTokenV2.dbg.json +4 -0
  77. package/src/assets/ethereum/hoodi/liqEth/liqEth.sol/LiqEthTokenV2.json +1323 -0
  78. package/src/assets/ethereum/hoodi/liqEth/stakingModule.sol/StakingModuleV2.dbg.json +4 -0
  79. package/src/assets/ethereum/hoodi/liqEth/stakingModule.sol/StakingModuleV2.json +1779 -0
  80. package/src/assets/ethereum/hoodi/liqEth/v1/DepositManager.sol/DepositManager.dbg.json +4 -0
  81. package/src/assets/ethereum/hoodi/liqEth/v1/DepositManager.sol/DepositManager.json +978 -0
  82. package/src/assets/ethereum/hoodi/liqEth/v1/LiqEthCommon.sol/IAccounting.dbg.json +4 -0
  83. package/src/assets/ethereum/hoodi/liqEth/v1/LiqEthCommon.sol/IAccounting.json +176 -0
  84. package/src/assets/ethereum/hoodi/liqEth/v1/LiqEthCommon.sol/IDepositContract.dbg.json +4 -0
  85. package/src/assets/ethereum/hoodi/liqEth/v1/LiqEthCommon.sol/IDepositContract.json +39 -0
  86. package/src/assets/ethereum/hoodi/liqEth/v1/LiqEthCommon.sol/IDepositManager.dbg.json +4 -0
  87. package/src/assets/ethereum/hoodi/liqEth/v1/LiqEthCommon.sol/IDepositManager.json +64 -0
  88. package/src/assets/ethereum/hoodi/liqEth/v1/LiqEthCommon.sol/ILiqEthUpgradeable.dbg.json +4 -0
  89. package/src/assets/ethereum/hoodi/liqEth/v1/LiqEthCommon.sol/ILiqEthUpgradeable.json +29 -0
  90. package/src/assets/ethereum/hoodi/liqEth/v1/LiqEthCommon.sol/IRewardsERC20.dbg.json +4 -0
  91. package/src/assets/ethereum/hoodi/liqEth/v1/LiqEthCommon.sol/IRewardsERC20.json +249 -0
  92. package/src/assets/ethereum/hoodi/liqEth/v1/LiqEthCommon.sol/IRewardsERC20Pausable.dbg.json +4 -0
  93. package/src/assets/ethereum/hoodi/liqEth/v1/LiqEthCommon.sol/IRewardsERC20Pausable.json +263 -0
  94. package/src/assets/ethereum/hoodi/liqEth/v1/LiqEthCommon.sol/IStakingModule.dbg.json +4 -0
  95. package/src/assets/ethereum/hoodi/liqEth/v1/LiqEthCommon.sol/IStakingModule.json +344 -0
  96. package/src/assets/ethereum/hoodi/liqEth/v1/LiqEthCommon.sol/IValidatorBalanceVerifier.dbg.json +4 -0
  97. package/src/assets/ethereum/hoodi/liqEth/v1/LiqEthCommon.sol/IValidatorBalanceVerifier.json +129 -0
  98. package/src/assets/ethereum/hoodi/liqEth/v1/LiqEthCommon.sol/IWithdrawalRecord.dbg.json +4 -0
  99. package/src/assets/ethereum/hoodi/liqEth/v1/LiqEthCommon.sol/IWithdrawalRecord.json +66 -0
  100. package/src/assets/ethereum/hoodi/liqEth/v1/LiqEthCommon.sol/LiqEthCommon.dbg.json +4 -0
  101. package/src/assets/ethereum/hoodi/liqEth/v1/LiqEthCommon.sol/LiqEthCommon.json +10 -0
  102. package/src/assets/ethereum/hoodi/liqEth/v1/RewardsERC20.sol/RewardsERC20Upgradeable.dbg.json +4 -0
  103. package/src/assets/ethereum/hoodi/liqEth/v1/RewardsERC20.sol/RewardsERC20Upgradeable.json +874 -0
  104. package/src/assets/ethereum/hoodi/liqEth/v1/RewardsERC20Pausable.sol/RewardsERC20PausableUpgradeable.dbg.json +4 -0
  105. package/src/assets/ethereum/hoodi/liqEth/v1/RewardsERC20Pausable.sol/RewardsERC20PausableUpgradeable.json +937 -0
  106. package/src/assets/ethereum/hoodi/liqEth/v1/accounting.sol/Accounting.dbg.json +4 -0
  107. package/src/assets/ethereum/hoodi/liqEth/v1/accounting.sol/Accounting.json +548 -0
  108. package/src/assets/ethereum/hoodi/liqEth/v1/liqEth.sol/LiqEthToken.dbg.json +4 -0
  109. package/src/assets/ethereum/hoodi/liqEth/v1/liqEth.sol/LiqEthToken.json +1233 -0
  110. package/src/assets/ethereum/hoodi/liqEth/v1/stakingModule.sol/StakingModule.dbg.json +4 -0
  111. package/src/assets/ethereum/hoodi/liqEth/v1/stakingModule.sol/StakingModule.json +1772 -0
  112. package/src/assets/ethereum/hoodi/liqEth/withdrawalQueue.sol/WithdrawalQueue.dbg.json +4 -0
  113. package/src/assets/ethereum/hoodi/liqEth/withdrawalQueue.sol/WithdrawalQueue.json +973 -0
  114. package/src/assets/ethereum/hoodi/liqEth/withdrawalVault.sol/Uint64BE.dbg.json +4 -0
  115. package/src/assets/ethereum/hoodi/liqEth/withdrawalVault.sol/Uint64BE.json +10 -0
  116. package/src/assets/ethereum/hoodi/liqEth/withdrawalVault.sol/WithdrawalVault.dbg.json +4 -0
  117. package/src/assets/ethereum/hoodi/liqEth/withdrawalVault.sol/WithdrawalVault.json +441 -0
  118. package/src/assets/ethereum/hoodi/outpost/BAR.sol/BAR.dbg.json +4 -0
  119. package/src/assets/ethereum/hoodi/outpost/BAR.sol/BAR.json +1111 -0
  120. package/src/assets/ethereum/hoodi/outpost/Depositor.sol/Depositor.dbg.json +4 -0
  121. package/src/assets/ethereum/hoodi/outpost/Depositor.sol/Depositor.json +1696 -0
  122. package/src/assets/ethereum/hoodi/outpost/EthUsdPriceConsumer.sol/AggregatorV3Interface.dbg.json +4 -0
  123. package/src/assets/ethereum/hoodi/outpost/EthUsdPriceConsumer.sol/AggregatorV3Interface.json +122 -0
  124. package/src/assets/ethereum/hoodi/outpost/EthUsdPriceConsumer.sol/EthUsdPriceConsumer.dbg.json +4 -0
  125. package/src/assets/ethereum/hoodi/outpost/EthUsdPriceConsumer.sol/EthUsdPriceConsumer.json +274 -0
  126. package/src/assets/ethereum/hoodi/outpost/InstaswapBridgeAttestations.sol/BridgeDepositCodec.dbg.json +4 -0
  127. package/src/assets/ethereum/hoodi/outpost/InstaswapBridgeAttestations.sol/BridgeDepositCodec.json +10 -0
  128. package/src/assets/ethereum/hoodi/outpost/InstaswapBridgeAttestations.sol/BridgeWithdrawCodec.dbg.json +4 -0
  129. package/src/assets/ethereum/hoodi/outpost/InstaswapBridgeAttestations.sol/BridgeWithdrawCodec.json +10 -0
  130. package/src/assets/ethereum/hoodi/outpost/InstaswapBridgeAttestations.sol/BridgeWithdrawConfirmCodec.dbg.json +4 -0
  131. package/src/assets/ethereum/hoodi/outpost/InstaswapBridgeAttestations.sol/BridgeWithdrawConfirmCodec.json +10 -0
  132. package/src/assets/ethereum/hoodi/outpost/InstaswapBridgeAttestations.sol/InstaswapBridgeAttestationTypeLib.dbg.json +4 -0
  133. package/src/assets/ethereum/hoodi/outpost/InstaswapBridgeAttestations.sol/InstaswapBridgeAttestationTypeLib.json +10 -0
  134. package/src/assets/ethereum/hoodi/outpost/LiqEthBridge.sol/LiqEthBridge.dbg.json +4 -0
  135. package/src/assets/ethereum/hoodi/outpost/LiqEthBridge.sol/LiqEthBridge.json +1044 -0
  136. package/src/assets/ethereum/hoodi/outpost/OPP.sol/OPP.dbg.json +4 -0
  137. package/src/assets/ethereum/hoodi/outpost/OPP.sol/OPP.json +1055 -0
  138. package/src/assets/ethereum/hoodi/outpost/OPPCommon.sol/IOPP.dbg.json +4 -0
  139. package/src/assets/ethereum/hoodi/outpost/OPPCommon.sol/IOPP.json +81 -0
  140. package/src/assets/ethereum/hoodi/outpost/OPPCommon.sol/IOPPEndpoint.dbg.json +4 -0
  141. package/src/assets/ethereum/hoodi/outpost/OPPCommon.sol/IOPPEndpoint.json +29 -0
  142. package/src/assets/ethereum/hoodi/outpost/OPPCommon.sol/IOPPInbound.dbg.json +4 -0
  143. package/src/assets/ethereum/hoodi/outpost/OPPCommon.sol/IOPPInbound.json +330 -0
  144. package/src/assets/ethereum/hoodi/outpost/OPPCommon.sol/IOPPReceiver.dbg.json +4 -0
  145. package/src/assets/ethereum/hoodi/outpost/OPPCommon.sol/IOPPReceiver.json +29 -0
  146. package/src/assets/ethereum/hoodi/outpost/OPPCommon.sol/IOPPSender.dbg.json +4 -0
  147. package/src/assets/ethereum/hoodi/outpost/OPPCommon.sol/IOPPSender.json +41 -0
  148. package/src/assets/ethereum/hoodi/outpost/OPPCommon.sol/OPPCommon.dbg.json +4 -0
  149. package/src/assets/ethereum/hoodi/outpost/OPPCommon.sol/OPPCommon.json +287 -0
  150. package/src/assets/ethereum/hoodi/outpost/OPPEndpoint.sol/OPPEndpoint.dbg.json +4 -0
  151. package/src/assets/ethereum/hoodi/outpost/OPPEndpoint.sol/OPPEndpoint.json +294 -0
  152. package/src/assets/ethereum/hoodi/outpost/OPPEndpointManaged.sol/OPPEndpointManaged.dbg.json +4 -0
  153. package/src/assets/ethereum/hoodi/outpost/OPPEndpointManaged.sol/OPPEndpointManaged.json +415 -0
  154. package/src/assets/ethereum/hoodi/outpost/OPPEndpointOwnable.sol/OPPEndpointOwnable.dbg.json +4 -0
  155. package/src/assets/ethereum/hoodi/outpost/OPPEndpointOwnable.sol/OPPEndpointOwnable.json +399 -0
  156. package/src/assets/ethereum/hoodi/outpost/OPPErrors.sol/OPPErrors.dbg.json +4 -0
  157. package/src/assets/ethereum/hoodi/outpost/OPPErrors.sol/OPPErrors.json +245 -0
  158. package/src/assets/ethereum/hoodi/outpost/OPPInbound.sol/OPPInbound.dbg.json +4 -0
  159. package/src/assets/ethereum/hoodi/outpost/OPPInbound.sol/OPPInbound.json +1204 -0
  160. package/src/assets/ethereum/hoodi/outpost/OPPReceiver.sol/OPPReceiver.dbg.json +4 -0
  161. package/src/assets/ethereum/hoodi/outpost/OPPReceiver.sol/OPPReceiver.json +312 -0
  162. package/src/assets/ethereum/hoodi/outpost/OPPSender.sol/OPPSender.dbg.json +4 -0
  163. package/src/assets/ethereum/hoodi/outpost/OPPSender.sol/OPPSender.json +324 -0
  164. package/src/assets/ethereum/hoodi/outpost/OperatorRegistry.sol/OperatorRegistry.dbg.json +4 -0
  165. package/src/assets/ethereum/hoodi/outpost/OperatorRegistry.sol/OperatorRegistry.json +1068 -0
  166. package/src/assets/ethereum/hoodi/outpost/OutpostErrors.sol/OutpostErrors.dbg.json +4 -0
  167. package/src/assets/ethereum/hoodi/outpost/OutpostErrors.sol/OutpostErrors.json +211 -0
  168. package/src/assets/ethereum/hoodi/outpost/OutpostManaged.sol/OutpostManaged.dbg.json +4 -0
  169. package/src/assets/ethereum/hoodi/outpost/OutpostManaged.sol/OutpostManaged.json +229 -0
  170. package/src/assets/ethereum/hoodi/outpost/OutpostManager.sol/OutpostManager.dbg.json +4 -0
  171. package/src/assets/ethereum/hoodi/outpost/OutpostManager.sol/OutpostManager.json +751 -0
  172. package/src/assets/ethereum/hoodi/outpost/OutpostManagerAuthority.sol/OutpostManagerAuthority.dbg.json +4 -0
  173. package/src/assets/ethereum/hoodi/outpost/OutpostManagerAuthority.sol/OutpostManagerAuthority.json +1432 -0
  174. package/src/assets/ethereum/hoodi/outpost/OutpostManagerCommon.sol/IOutpostManager.dbg.json +4 -0
  175. package/src/assets/ethereum/hoodi/outpost/OutpostManagerCommon.sol/IOutpostManager.json +130 -0
  176. package/src/assets/ethereum/hoodi/outpost/OutpostManagerCommon.sol/IOutpostUpgradeable.dbg.json +4 -0
  177. package/src/assets/ethereum/hoodi/outpost/OutpostManagerCommon.sol/IOutpostUpgradeable.json +29 -0
  178. package/src/assets/ethereum/hoodi/outpost/OutpostManagerCommon.sol/OutpostManagerCommon.dbg.json +4 -0
  179. package/src/assets/ethereum/hoodi/outpost/OutpostManagerCommon.sol/OutpostManagerCommon.json +141 -0
  180. package/src/assets/ethereum/hoodi/outpost/OutpostOwnable.sol/OutpostOwnable.dbg.json +4 -0
  181. package/src/assets/ethereum/hoodi/outpost/OutpostOwnable.sol/OutpostOwnable.json +213 -0
  182. package/src/assets/ethereum/hoodi/outpost/OutpostReserve.sol/OutpostReserve.dbg.json +4 -0
  183. package/src/assets/ethereum/hoodi/outpost/OutpostReserve.sol/OutpostReserve.json +888 -0
  184. package/src/assets/ethereum/hoodi/outpost/Pool.sol/Pool.dbg.json +4 -0
  185. package/src/assets/ethereum/hoodi/outpost/Pool.sol/Pool.json +659 -0
  186. package/src/assets/ethereum/hoodi/outpost/Pretoken.sol/Pretoken.dbg.json +4 -0
  187. package/src/assets/ethereum/hoodi/outpost/Pretoken.sol/Pretoken.json +1393 -0
  188. package/src/assets/ethereum/hoodi/outpost/ReceiptNFT.sol/ReceiptNFT.dbg.json +4 -0
  189. package/src/assets/ethereum/hoodi/outpost/ReceiptNFT.sol/ReceiptNFT.json +1738 -0
  190. package/src/assets/ethereum/hoodi/outpost/WireYieldHubAttestations.sol/InstaswapConfirmCodec.dbg.json +4 -0
  191. package/src/assets/ethereum/hoodi/outpost/WireYieldHubAttestations.sol/InstaswapConfirmCodec.json +10 -0
  192. package/src/assets/ethereum/hoodi/outpost/WireYieldHubAttestations.sol/InstaswapFailedCodec.dbg.json +4 -0
  193. package/src/assets/ethereum/hoodi/outpost/WireYieldHubAttestations.sol/InstaswapFailedCodec.json +10 -0
  194. package/src/assets/ethereum/hoodi/outpost/WireYieldHubAttestations.sol/InstaswapRequestCodec.dbg.json +4 -0
  195. package/src/assets/ethereum/hoodi/outpost/WireYieldHubAttestations.sol/InstaswapRequestCodec.json +10 -0
  196. package/src/assets/ethereum/hoodi/outpost/WireYieldHubAttestations.sol/InstaswapSettlementCodec.dbg.json +4 -0
  197. package/src/assets/ethereum/hoodi/outpost/WireYieldHubAttestations.sol/InstaswapSettlementCodec.json +10 -0
  198. package/src/assets/ethereum/hoodi/outpost/WireYieldHubAttestations.sol/PrincipalExitConfirmCodec.dbg.json +4 -0
  199. package/src/assets/ethereum/hoodi/outpost/WireYieldHubAttestations.sol/PrincipalExitConfirmCodec.json +10 -0
  200. package/src/assets/ethereum/hoodi/outpost/WireYieldHubAttestations.sol/PrincipalExitFailedCodec.dbg.json +4 -0
  201. package/src/assets/ethereum/hoodi/outpost/WireYieldHubAttestations.sol/PrincipalExitFailedCodec.json +10 -0
  202. package/src/assets/ethereum/hoodi/outpost/WireYieldHubAttestations.sol/PrincipalExitRequestCodec.dbg.json +4 -0
  203. package/src/assets/ethereum/hoodi/outpost/WireYieldHubAttestations.sol/PrincipalExitRequestCodec.json +10 -0
  204. package/src/assets/ethereum/hoodi/outpost/WireYieldHubAttestations.sol/PrincipalStakeDeltaCodec.dbg.json +4 -0
  205. package/src/assets/ethereum/hoodi/outpost/WireYieldHubAttestations.sol/PrincipalStakeDeltaCodec.json +10 -0
  206. package/src/assets/ethereum/hoodi/outpost/WireYieldHubAttestations.sol/WireYieldHubAssetCodec.dbg.json +4 -0
  207. package/src/assets/ethereum/hoodi/outpost/WireYieldHubAttestations.sol/WireYieldHubAssetCodec.json +10 -0
  208. package/src/assets/ethereum/hoodi/outpost/WireYieldHubAttestations.sol/WireYieldHubAttestationTypeLib.dbg.json +4 -0
  209. package/src/assets/ethereum/hoodi/outpost/WireYieldHubAttestations.sol/WireYieldHubAttestationTypeLib.json +10 -0
  210. package/src/assets/ethereum/hoodi/outpost/WireYieldHubAttestations.sol/WireYieldHubAttestations.dbg.json +4 -0
  211. package/src/assets/ethereum/hoodi/outpost/WireYieldHubAttestations.sol/WireYieldHubAttestations.json +1437 -0
  212. package/src/assets/ethereum/hoodi/outpost/WireYieldHubAttestations.sol/YieldDepositCodec.dbg.json +4 -0
  213. package/src/assets/ethereum/hoodi/outpost/WireYieldHubAttestations.sol/YieldDepositCodec.json +10 -0
  214. package/src/assets/ethereum/hoodi/outpost/interfaces/IPretoken.sol/IPretoken.dbg.json +4 -0
  215. package/src/assets/ethereum/hoodi/outpost/interfaces/IPretoken.sol/IPretoken.json +29 -0
  216. package/src/assets/ethereum/hoodi/outpost/interfaces/IWarrant.sol/IWarrant.dbg.json +4 -0
  217. package/src/assets/ethereum/hoodi/outpost/interfaces/IWarrant.sol/IWarrant.json +29 -0
  218. package/src/assets/ethereum/hoodi/outpost/token/ERC721EthEquivalentVotesUpgradeable.sol/ERC721EthEquivalentVotesUpgradeable.dbg.json +4 -0
  219. package/src/assets/ethereum/hoodi/outpost/token/ERC721EthEquivalentVotesUpgradeable.sol/ERC721EthEquivalentVotesUpgradeable.json +858 -0
  220. package/src/assets/ethereum/hoodi/outpost/token/IERC721EthEquivalent.sol/IERC721EthEquivalent.dbg.json +4 -0
  221. package/src/assets/ethereum/hoodi/outpost/token/IERC721EthEquivalent.sol/IERC721EthEquivalent.json +30 -0
  222. package/src/assets/ethereum/hoodi/token/ERC1155Token.sol/ERC1155Token.dbg.json +4 -0
  223. package/src/assets/ethereum/hoodi/token/ERC1155Token.sol/ERC1155Token.json +472 -0
  224. package/src/assets/ethereum/hoodi/token/ERC20Token.sol/ERC20Token.dbg.json +4 -0
  225. package/src/assets/ethereum/hoodi/token/ERC20Token.sol/ERC20Token.json +330 -0
  226. package/src/assets/ethereum/hoodi/token/ERC721Token.sol/ERC721Token.dbg.json +4 -0
  227. package/src/assets/ethereum/hoodi/token/ERC721Token.sol/ERC721Token.json +449 -0
  228. package/src/assets/ethereum/hoodi/token/Eman1155.sol/Eman1155.dbg.json +4 -0
  229. package/src/assets/ethereum/hoodi/token/Eman1155.sol/Eman1155.json +560 -0
  230. package/src/assets/ethereum/hoodi/token/Eman20.sol/Eman20.dbg.json +4 -0
  231. package/src/assets/ethereum/hoodi/token/Eman20.sol/Eman20.json +460 -0
  232. package/src/assets/ethereum/hoodi/token/Eman721.sol/Eman721.dbg.json +4 -0
  233. package/src/assets/ethereum/hoodi/token/Eman721.sol/Eman721.json +624 -0
  234. package/src/assets/ethereum/mainnet/common/Base58.sol/Base58.dbg.json +4 -0
  235. package/src/assets/ethereum/mainnet/common/Base58.sol/Base58.json +164 -0
  236. package/src/assets/ethereum/mainnet/common/OpenZepArtifacts.sol/__Dummy_OZ_UUPS__.dbg.json +4 -0
  237. package/src/assets/ethereum/mainnet/common/OpenZepArtifacts.sol/__Dummy_OZ_UUPS__.json +76 -0
  238. package/src/assets/ethereum/mainnet/common/RestrictedCallers.sol/RestrictedCallers.dbg.json +4 -0
  239. package/src/assets/ethereum/mainnet/common/RestrictedCallers.sol/RestrictedCallers.json +10 -0
  240. package/src/assets/ethereum/mainnet/common/iodata.sol/iodata.dbg.json +4 -0
  241. package/src/assets/ethereum/mainnet/common/iodata.sol/iodata.json +618 -0
  242. package/src/assets/ethereum/mainnet/common/iodata_util.sol/iodata_util.dbg.json +4 -0
  243. package/src/assets/ethereum/mainnet/common/iodata_util.sol/iodata_util.json +40 -0
  244. package/src/assets/ethereum/mainnet/common/sysio_data.sol/sysio_data.dbg.json +4 -0
  245. package/src/assets/ethereum/mainnet/common/sysio_data.sol/sysio_data.json +10 -0
  246. package/src/assets/ethereum/mainnet/common/sysio_errors.sol/sysio_errors.dbg.json +4 -0
  247. package/src/assets/ethereum/mainnet/common/sysio_errors.sol/sysio_errors.json +10 -0
  248. package/src/assets/ethereum/mainnet/common/sysio_merkle.sol/sysio_merkle.dbg.json +4 -0
  249. package/src/assets/ethereum/mainnet/common/sysio_merkle.sol/sysio_merkle.json +233 -0
  250. package/src/assets/ethereum/mainnet/common/sysio_name.sol/sysio_name.dbg.json +4 -0
  251. package/src/assets/ethereum/mainnet/common/sysio_name.sol/sysio_name.json +49 -0
  252. package/src/assets/ethereum/mainnet/common/sysio_pubkey.sol/sysio_pubkey.dbg.json +4 -0
  253. package/src/assets/ethereum/mainnet/common/sysio_pubkey.sol/sysio_pubkey.json +64 -0
  254. package/src/assets/ethereum/mainnet/common/sysio_read.sol/sysio_read.dbg.json +4 -0
  255. package/src/assets/ethereum/mainnet/common/sysio_read.sol/sysio_read.json +1458 -0
  256. package/src/assets/ethereum/mainnet/common/sysio_tester.sol/SysioTester.dbg.json +4 -0
  257. package/src/assets/ethereum/mainnet/common/sysio_tester.sol/SysioTester.json +1532 -0
  258. package/src/assets/ethereum/mainnet/common/sysio_verify.sol/sysio_verify.dbg.json +4 -0
  259. package/src/assets/ethereum/mainnet/common/sysio_verify.sol/sysio_verify.json +1525 -0
  260. package/src/assets/ethereum/mainnet/common/sysio_write.sol/sysio_write.dbg.json +4 -0
  261. package/src/assets/ethereum/mainnet/common/sysio_write.sol/sysio_write.json +1076 -0
  262. package/src/assets/ethereum/mainnet/liqEth/BeaconState.sol/BeaconState.dbg.json +4 -0
  263. package/src/assets/ethereum/mainnet/liqEth/BeaconState.sol/BeaconState.json +807 -0
  264. package/src/assets/ethereum/mainnet/liqEth/DepositManager.sol/DepositManagerV2.dbg.json +4 -0
  265. package/src/assets/ethereum/mainnet/liqEth/DepositManager.sol/DepositManagerV2.json +1004 -0
  266. package/src/assets/ethereum/mainnet/liqEth/DepositManager.sol/IStakingModuleBondLocker.dbg.json +4 -0
  267. package/src/assets/ethereum/mainnet/liqEth/DepositManager.sol/IStakingModuleBondLocker.json +29 -0
  268. package/src/assets/ethereum/mainnet/liqEth/KeyBondManager.sol/KeyBondManager.dbg.json +4 -0
  269. package/src/assets/ethereum/mainnet/liqEth/KeyBondManager.sol/KeyBondManager.json +897 -0
  270. package/src/assets/ethereum/mainnet/liqEth/LiqEthAuthority.sol/LiqEthAuthority.dbg.json +4 -0
  271. package/src/assets/ethereum/mainnet/liqEth/LiqEthAuthority.sol/LiqEthAuthority.json +1289 -0
  272. package/src/assets/ethereum/mainnet/liqEth/LiqEthCommon.sol/IDepositContract.dbg.json +4 -0
  273. package/src/assets/ethereum/mainnet/liqEth/LiqEthCommon.sol/IDepositContract.json +39 -0
  274. package/src/assets/ethereum/mainnet/liqEth/LiqEthCommon.sol/IDepositManager.dbg.json +4 -0
  275. package/src/assets/ethereum/mainnet/liqEth/LiqEthCommon.sol/IDepositManager.json +64 -0
  276. package/src/assets/ethereum/mainnet/liqEth/LiqEthCommon.sol/IKeyBondManager.dbg.json +4 -0
  277. package/src/assets/ethereum/mainnet/liqEth/LiqEthCommon.sol/IKeyBondManager.json +189 -0
  278. package/src/assets/ethereum/mainnet/liqEth/LiqEthCommon.sol/ILiqEthUpgradeable.dbg.json +4 -0
  279. package/src/assets/ethereum/mainnet/liqEth/LiqEthCommon.sol/ILiqEthUpgradeable.json +29 -0
  280. package/src/assets/ethereum/mainnet/liqEth/LiqEthCommon.sol/IRewardsERC20.dbg.json +4 -0
  281. package/src/assets/ethereum/mainnet/liqEth/LiqEthCommon.sol/IRewardsERC20.json +319 -0
  282. package/src/assets/ethereum/mainnet/liqEth/LiqEthCommon.sol/IRewardsERC20Pausable.dbg.json +4 -0
  283. package/src/assets/ethereum/mainnet/liqEth/LiqEthCommon.sol/IRewardsERC20Pausable.json +333 -0
  284. package/src/assets/ethereum/mainnet/liqEth/LiqEthCommon.sol/IStakingModule.dbg.json +4 -0
  285. package/src/assets/ethereum/mainnet/liqEth/LiqEthCommon.sol/IStakingModule.json +279 -0
  286. package/src/assets/ethereum/mainnet/liqEth/LiqEthCommon.sol/IValidatorBalanceVerifier.dbg.json +4 -0
  287. package/src/assets/ethereum/mainnet/liqEth/LiqEthCommon.sol/IValidatorBalanceVerifier.json +129 -0
  288. package/src/assets/ethereum/mainnet/liqEth/LiqEthCommon.sol/IWithdrawalRecord.dbg.json +4 -0
  289. package/src/assets/ethereum/mainnet/liqEth/LiqEthCommon.sol/IWithdrawalRecord.json +66 -0
  290. package/src/assets/ethereum/mainnet/liqEth/LiqEthCommon.sol/LiqEthCommon.dbg.json +4 -0
  291. package/src/assets/ethereum/mainnet/liqEth/LiqEthCommon.sol/LiqEthCommon.json +10 -0
  292. package/src/assets/ethereum/mainnet/liqEth/LiqEthDeepFreeze.sol/LiqEthDeepFreeze.dbg.json +4 -0
  293. package/src/assets/ethereum/mainnet/liqEth/LiqEthDeepFreeze.sol/LiqEthDeepFreeze.json +236 -0
  294. package/src/assets/ethereum/mainnet/liqEth/LiqEthManaged.sol/LiqEthManaged.dbg.json +4 -0
  295. package/src/assets/ethereum/mainnet/liqEth/LiqEthManaged.sol/LiqEthManaged.json +229 -0
  296. package/src/assets/ethereum/mainnet/liqEth/RewardsERC20.sol/RewardsERC20UpgradeableV2.dbg.json +4 -0
  297. package/src/assets/ethereum/mainnet/liqEth/RewardsERC20.sol/RewardsERC20UpgradeableV2.json +957 -0
  298. package/src/assets/ethereum/mainnet/liqEth/RewardsERC20Pausable.sol/RewardsERC20PausableUpgradeableV2.dbg.json +4 -0
  299. package/src/assets/ethereum/mainnet/liqEth/RewardsERC20Pausable.sol/RewardsERC20PausableUpgradeableV2.json +1020 -0
  300. package/src/assets/ethereum/mainnet/liqEth/StakingLib.sol/StakingLib.dbg.json +4 -0
  301. package/src/assets/ethereum/mainnet/liqEth/StakingLib.sol/StakingLib.json +89 -0
  302. package/src/assets/ethereum/mainnet/liqEth/Yield.sol/YieldOracle.dbg.json +4 -0
  303. package/src/assets/ethereum/mainnet/liqEth/Yield.sol/YieldOracle.json +1376 -0
  304. package/src/assets/ethereum/mainnet/liqEth/liqEth.sol/LiqEthTokenV2.dbg.json +4 -0
  305. package/src/assets/ethereum/mainnet/liqEth/liqEth.sol/LiqEthTokenV2.json +1323 -0
  306. package/src/assets/ethereum/mainnet/liqEth/stakingModule.sol/StakingModuleV2.dbg.json +4 -0
  307. package/src/assets/ethereum/mainnet/liqEth/stakingModule.sol/StakingModuleV2.json +1896 -0
  308. package/src/assets/ethereum/mainnet/liqEth/v1/DepositManager.sol/DepositManager.dbg.json +4 -0
  309. package/src/assets/ethereum/mainnet/liqEth/v1/DepositManager.sol/DepositManager.json +978 -0
  310. package/src/assets/ethereum/mainnet/liqEth/v1/LiqEthCommon.sol/IAccounting.dbg.json +4 -0
  311. package/src/assets/ethereum/mainnet/liqEth/v1/LiqEthCommon.sol/IAccounting.json +176 -0
  312. package/src/assets/ethereum/mainnet/liqEth/v1/LiqEthCommon.sol/IDepositContract.dbg.json +4 -0
  313. package/src/assets/ethereum/mainnet/liqEth/v1/LiqEthCommon.sol/IDepositContract.json +39 -0
  314. package/src/assets/ethereum/mainnet/liqEth/v1/LiqEthCommon.sol/IDepositManager.dbg.json +4 -0
  315. package/src/assets/ethereum/mainnet/liqEth/v1/LiqEthCommon.sol/IDepositManager.json +64 -0
  316. package/src/assets/ethereum/mainnet/liqEth/v1/LiqEthCommon.sol/ILiqEthUpgradeable.dbg.json +4 -0
  317. package/src/assets/ethereum/mainnet/liqEth/v1/LiqEthCommon.sol/ILiqEthUpgradeable.json +29 -0
  318. package/src/assets/ethereum/mainnet/liqEth/v1/LiqEthCommon.sol/IRewardsERC20.dbg.json +4 -0
  319. package/src/assets/ethereum/mainnet/liqEth/v1/LiqEthCommon.sol/IRewardsERC20.json +249 -0
  320. package/src/assets/ethereum/mainnet/liqEth/v1/LiqEthCommon.sol/IRewardsERC20Pausable.dbg.json +4 -0
  321. package/src/assets/ethereum/mainnet/liqEth/v1/LiqEthCommon.sol/IRewardsERC20Pausable.json +263 -0
  322. package/src/assets/ethereum/mainnet/liqEth/v1/LiqEthCommon.sol/IStakingModule.dbg.json +4 -0
  323. package/src/assets/ethereum/mainnet/liqEth/v1/LiqEthCommon.sol/IStakingModule.json +344 -0
  324. package/src/assets/ethereum/mainnet/liqEth/v1/LiqEthCommon.sol/IValidatorBalanceVerifier.dbg.json +4 -0
  325. package/src/assets/ethereum/mainnet/liqEth/v1/LiqEthCommon.sol/IValidatorBalanceVerifier.json +129 -0
  326. package/src/assets/ethereum/mainnet/liqEth/v1/LiqEthCommon.sol/IWithdrawalRecord.dbg.json +4 -0
  327. package/src/assets/ethereum/mainnet/liqEth/v1/LiqEthCommon.sol/IWithdrawalRecord.json +66 -0
  328. package/src/assets/ethereum/mainnet/liqEth/v1/LiqEthCommon.sol/LiqEthCommon.dbg.json +4 -0
  329. package/src/assets/ethereum/mainnet/liqEth/v1/LiqEthCommon.sol/LiqEthCommon.json +10 -0
  330. package/src/assets/ethereum/mainnet/liqEth/v1/RewardsERC20.sol/RewardsERC20Upgradeable.dbg.json +4 -0
  331. package/src/assets/ethereum/mainnet/liqEth/v1/RewardsERC20.sol/RewardsERC20Upgradeable.json +874 -0
  332. package/src/assets/ethereum/mainnet/liqEth/v1/RewardsERC20Pausable.sol/RewardsERC20PausableUpgradeable.dbg.json +4 -0
  333. package/src/assets/ethereum/mainnet/liqEth/v1/RewardsERC20Pausable.sol/RewardsERC20PausableUpgradeable.json +937 -0
  334. package/src/assets/ethereum/mainnet/liqEth/v1/accounting.sol/Accounting.dbg.json +4 -0
  335. package/src/assets/ethereum/mainnet/liqEth/v1/accounting.sol/Accounting.json +542 -0
  336. package/src/assets/ethereum/mainnet/liqEth/v1/liqEth.sol/LiqEthToken.dbg.json +4 -0
  337. package/src/assets/ethereum/mainnet/liqEth/v1/liqEth.sol/LiqEthToken.json +1233 -0
  338. package/src/assets/ethereum/mainnet/liqEth/v1/stakingModule.sol/StakingModule.dbg.json +4 -0
  339. package/src/assets/ethereum/mainnet/liqEth/v1/stakingModule.sol/StakingModule.json +1772 -0
  340. package/src/assets/ethereum/mainnet/liqEth/withdrawalQueue.sol/WithdrawalQueue.dbg.json +4 -0
  341. package/src/assets/ethereum/mainnet/liqEth/withdrawalQueue.sol/WithdrawalQueue.json +973 -0
  342. package/src/assets/ethereum/mainnet/liqEth/withdrawalVault.sol/Uint64BE.dbg.json +4 -0
  343. package/src/assets/ethereum/mainnet/liqEth/withdrawalVault.sol/Uint64BE.json +10 -0
  344. package/src/assets/ethereum/mainnet/liqEth/withdrawalVault.sol/WithdrawalVault.dbg.json +4 -0
  345. package/src/assets/ethereum/mainnet/liqEth/withdrawalVault.sol/WithdrawalVault.json +441 -0
  346. package/src/assets/ethereum/mainnet/outpost/BAR.sol/BARV2.dbg.json +4 -0
  347. package/src/assets/ethereum/mainnet/outpost/BAR.sol/BARV2.json +1915 -0
  348. package/src/assets/ethereum/mainnet/outpost/Depositor.sol/DepositorV2.dbg.json +4 -0
  349. package/src/assets/ethereum/mainnet/outpost/Depositor.sol/DepositorV2.json +1845 -0
  350. package/src/assets/ethereum/mainnet/outpost/EthUsdPriceConsumer.sol/AggregatorV3Interface.dbg.json +4 -0
  351. package/src/assets/ethereum/mainnet/outpost/EthUsdPriceConsumer.sol/AggregatorV3Interface.json +122 -0
  352. package/src/assets/ethereum/mainnet/outpost/EthUsdPriceConsumer.sol/EthUsdPriceConsumer.dbg.json +4 -0
  353. package/src/assets/ethereum/mainnet/outpost/EthUsdPriceConsumer.sol/EthUsdPriceConsumer.json +551 -0
  354. package/src/assets/ethereum/mainnet/outpost/OPP.sol/OPP.dbg.json +4 -0
  355. package/src/assets/ethereum/mainnet/outpost/OPP.sol/OPP.json +948 -0
  356. package/src/assets/ethereum/mainnet/outpost/OPPCommon.sol/IOPP.dbg.json +4 -0
  357. package/src/assets/ethereum/mainnet/outpost/OPPCommon.sol/IOPP.json +88 -0
  358. package/src/assets/ethereum/mainnet/outpost/OPPCommon.sol/IOPPEndpoint.dbg.json +4 -0
  359. package/src/assets/ethereum/mainnet/outpost/OPPCommon.sol/IOPPEndpoint.json +29 -0
  360. package/src/assets/ethereum/mainnet/outpost/OPPCommon.sol/IOPPInbound.dbg.json +4 -0
  361. package/src/assets/ethereum/mainnet/outpost/OPPCommon.sol/IOPPInbound.json +194 -0
  362. package/src/assets/ethereum/mainnet/outpost/OPPCommon.sol/IOPPReceiver.dbg.json +4 -0
  363. package/src/assets/ethereum/mainnet/outpost/OPPCommon.sol/IOPPReceiver.json +29 -0
  364. package/src/assets/ethereum/mainnet/outpost/OPPCommon.sol/IOPPSender.dbg.json +4 -0
  365. package/src/assets/ethereum/mainnet/outpost/OPPCommon.sol/IOPPSender.json +36 -0
  366. package/src/assets/ethereum/mainnet/outpost/OPPCommon.sol/OPPCommon.dbg.json +4 -0
  367. package/src/assets/ethereum/mainnet/outpost/OPPCommon.sol/OPPCommon.json +199 -0
  368. package/src/assets/ethereum/mainnet/outpost/OPPEndpoint.sol/OPPEndpoint.dbg.json +4 -0
  369. package/src/assets/ethereum/mainnet/outpost/OPPEndpoint.sol/OPPEndpoint.json +273 -0
  370. package/src/assets/ethereum/mainnet/outpost/OPPEndpointManaged.sol/OPPEndpointManaged.dbg.json +4 -0
  371. package/src/assets/ethereum/mainnet/outpost/OPPEndpointManaged.sol/OPPEndpointManaged.json +394 -0
  372. package/src/assets/ethereum/mainnet/outpost/OPPEndpointOwnable.sol/OPPEndpointOwnable.dbg.json +4 -0
  373. package/src/assets/ethereum/mainnet/outpost/OPPEndpointOwnable.sol/OPPEndpointOwnable.json +378 -0
  374. package/src/assets/ethereum/mainnet/outpost/OPPErrors.sol/OPPErrors.dbg.json +4 -0
  375. package/src/assets/ethereum/mainnet/outpost/OPPErrors.sol/OPPErrors.json +224 -0
  376. package/src/assets/ethereum/mainnet/outpost/OPPInbound.sol/OPPInbound.dbg.json +4 -0
  377. package/src/assets/ethereum/mainnet/outpost/OPPInbound.sol/OPPInbound.json +1010 -0
  378. package/src/assets/ethereum/mainnet/outpost/OPPReceiver.sol/OPPReceiver.dbg.json +4 -0
  379. package/src/assets/ethereum/mainnet/outpost/OPPReceiver.sol/OPPReceiver.json +291 -0
  380. package/src/assets/ethereum/mainnet/outpost/OPPSender.sol/OPPSender.dbg.json +4 -0
  381. package/src/assets/ethereum/mainnet/outpost/OPPSender.sol/OPPSender.json +298 -0
  382. package/src/assets/ethereum/mainnet/outpost/OutpostErrors.sol/OutpostErrors.dbg.json +4 -0
  383. package/src/assets/ethereum/mainnet/outpost/OutpostErrors.sol/OutpostErrors.json +488 -0
  384. package/src/assets/ethereum/mainnet/outpost/OutpostManaged.sol/OutpostManaged.dbg.json +4 -0
  385. package/src/assets/ethereum/mainnet/outpost/OutpostManaged.sol/OutpostManaged.json +229 -0
  386. package/src/assets/ethereum/mainnet/outpost/OutpostManager.sol/OutpostManagerV2.dbg.json +4 -0
  387. package/src/assets/ethereum/mainnet/outpost/OutpostManager.sol/OutpostManagerV2.json +737 -0
  388. package/src/assets/ethereum/mainnet/outpost/OutpostManagerAuthority.sol/OutpostManagerAuthority.dbg.json +4 -0
  389. package/src/assets/ethereum/mainnet/outpost/OutpostManagerAuthority.sol/OutpostManagerAuthority.json +1432 -0
  390. package/src/assets/ethereum/mainnet/outpost/OutpostManagerCommon.sol/IOutpostManager.dbg.json +4 -0
  391. package/src/assets/ethereum/mainnet/outpost/OutpostManagerCommon.sol/IOutpostManager.json +130 -0
  392. package/src/assets/ethereum/mainnet/outpost/OutpostManagerCommon.sol/IOutpostUpgradeable.dbg.json +4 -0
  393. package/src/assets/ethereum/mainnet/outpost/OutpostManagerCommon.sol/IOutpostUpgradeable.json +29 -0
  394. package/src/assets/ethereum/mainnet/outpost/OutpostManagerCommon.sol/OutpostManagerCommon.dbg.json +4 -0
  395. package/src/assets/ethereum/mainnet/outpost/OutpostManagerCommon.sol/OutpostManagerCommon.json +141 -0
  396. package/src/assets/ethereum/mainnet/outpost/OutpostOwnable.sol/OutpostOwnable.dbg.json +4 -0
  397. package/src/assets/ethereum/mainnet/outpost/OutpostOwnable.sol/OutpostOwnable.json +213 -0
  398. package/src/assets/ethereum/mainnet/outpost/Pool.sol/PoolV2.dbg.json +4 -0
  399. package/src/assets/ethereum/mainnet/outpost/Pool.sol/PoolV2.json +943 -0
  400. package/src/assets/ethereum/mainnet/outpost/Pretoken.sol/PretokenV2.dbg.json +4 -0
  401. package/src/assets/ethereum/mainnet/outpost/Pretoken.sol/PretokenV2.json +1703 -0
  402. package/src/assets/ethereum/mainnet/outpost/ReceiptNFT.sol/ReceiptNFT.dbg.json +4 -0
  403. package/src/assets/ethereum/mainnet/outpost/ReceiptNFT.sol/ReceiptNFT.json +2015 -0
  404. package/src/assets/ethereum/mainnet/outpost/interfaces/IPretoken.sol/IPretoken.dbg.json +4 -0
  405. package/src/assets/ethereum/mainnet/outpost/interfaces/IPretoken.sol/IPretoken.json +29 -0
  406. package/src/assets/ethereum/mainnet/outpost/interfaces/IWarrant.sol/IWarrant.dbg.json +4 -0
  407. package/src/assets/ethereum/mainnet/outpost/interfaces/IWarrant.sol/IWarrant.json +29 -0
  408. package/src/assets/ethereum/mainnet/outpost/token/ERC721EthEquivalentVotesUpgradeable.sol/ERC721EthEquivalentVotesUpgradeable.dbg.json +4 -0
  409. package/src/assets/ethereum/mainnet/outpost/token/ERC721EthEquivalentVotesUpgradeable.sol/ERC721EthEquivalentVotesUpgradeable.json +858 -0
  410. package/src/assets/ethereum/mainnet/outpost/token/IERC721EthEquivalent.sol/IERC721EthEquivalent.dbg.json +4 -0
  411. package/src/assets/ethereum/mainnet/outpost/token/IERC721EthEquivalent.sol/IERC721EthEquivalent.json +30 -0
  412. package/src/assets/ethereum/mainnet/outpost/v1/BAR.sol/BAR.dbg.json +4 -0
  413. package/src/assets/ethereum/mainnet/outpost/v1/BAR.sol/BAR.json +1871 -0
  414. package/src/assets/ethereum/mainnet/outpost/v1/Depositor.sol/Depositor.dbg.json +4 -0
  415. package/src/assets/ethereum/mainnet/outpost/v1/Depositor.sol/Depositor.json +1653 -0
  416. package/src/assets/ethereum/mainnet/outpost/v1/OutpostManager.sol/OutpostManager.dbg.json +4 -0
  417. package/src/assets/ethereum/mainnet/outpost/v1/OutpostManager.sol/OutpostManager.json +730 -0
  418. package/src/assets/ethereum/mainnet/outpost/v1/Pool.sol/Pool.dbg.json +4 -0
  419. package/src/assets/ethereum/mainnet/outpost/v1/Pool.sol/Pool.json +936 -0
  420. package/src/assets/ethereum/mainnet/outpost/v1/Pretoken.sol/Pretoken.dbg.json +4 -0
  421. package/src/assets/ethereum/mainnet/outpost/v1/Pretoken.sol/Pretoken.json +1665 -0
  422. package/src/assets/ethereum/mainnet/token/ERC1155Token.sol/ERC1155Token.dbg.json +4 -0
  423. package/src/assets/ethereum/mainnet/token/ERC1155Token.sol/ERC1155Token.json +472 -0
  424. package/src/assets/ethereum/mainnet/token/ERC20Token.sol/ERC20Token.dbg.json +4 -0
  425. package/src/assets/ethereum/mainnet/token/ERC20Token.sol/ERC20Token.json +330 -0
  426. package/src/assets/ethereum/mainnet/token/ERC721Token.sol/ERC721Token.dbg.json +4 -0
  427. package/src/assets/ethereum/mainnet/token/ERC721Token.sol/ERC721Token.json +449 -0
  428. package/src/assets/solana/devnet/idl/liqsol_core.json +8546 -0
  429. package/src/assets/solana/devnet/idl/liqsol_token.json +217 -0
  430. package/src/assets/solana/devnet/idl/transfer_hook.json +490 -0
  431. package/src/assets/solana/devnet/idl/validator_leaderboard.json +735 -0
  432. package/src/assets/solana/devnet/types/liqsol_core.ts +8552 -0
  433. package/src/assets/solana/devnet/types/liqsol_token.ts +223 -0
  434. package/src/assets/solana/devnet/types/transfer_hook.ts +496 -0
  435. package/src/assets/solana/devnet/types/validator_leaderboard.ts +741 -0
  436. package/src/assets/solana/mainnet/idl/liqsol_core.json +6678 -0
  437. package/src/assets/solana/mainnet/idl/liqsol_token.json +217 -0
  438. package/src/assets/solana/mainnet/idl/transfer_hook.json +479 -0
  439. package/src/assets/solana/mainnet/idl/validator_leaderboard.json +574 -0
  440. package/src/assets/solana/mainnet/types/liqsol_core.ts +6684 -0
  441. package/src/assets/solana/mainnet/types/liqsol_token.ts +223 -0
  442. package/src/assets/solana/mainnet/types/transfer_hook.ts +485 -0
  443. package/src/assets/solana/mainnet/types/validator_leaderboard.ts +580 -0
  444. package/src/assets/solana/realdevnet/idl/liqsol_core.json +7112 -0
  445. package/src/assets/solana/realdevnet/idl/liqsol_token.json +217 -0
  446. package/src/assets/solana/realdevnet/idl/transfer_hook.json +479 -0
  447. package/src/assets/solana/realdevnet/idl/validator_leaderboard.json +735 -0
  448. package/src/assets/solana/realdevnet/types/liqsol_core.ts +7118 -0
  449. package/src/assets/solana/realdevnet/types/liqsol_token.ts +223 -0
  450. package/src/assets/solana/realdevnet/types/transfer_hook.ts +485 -0
  451. package/src/assets/solana/realdevnet/types/validator_leaderboard.ts +741 -0
  452. package/src/index.ts +7 -8
  453. package/src/networks/ethereum/clients/convert.client.ts +221 -0
  454. package/src/networks/ethereum/clients/opp.client.ts +389 -0
  455. package/src/networks/ethereum/clients/pretoken.client.ts +165 -0
  456. package/src/networks/ethereum/clients/receipt.client.ts +199 -0
  457. package/src/networks/ethereum/clients/stake.client.ts +203 -0
  458. package/src/networks/ethereum/clients/validator.client.ts +61 -0
  459. package/src/networks/ethereum/contract.ts +438 -58
  460. package/src/networks/ethereum/ethereum.ts +591 -51
  461. package/src/networks/ethereum/types.ts +138 -2
  462. package/src/networks/ethereum/utils.ts +340 -0
  463. package/src/networks/solana/clients/convert.client.ts +341 -0
  464. package/src/networks/solana/clients/distribution.client.ts +304 -176
  465. package/src/networks/solana/clients/leaderboard.client.ts +85 -163
  466. package/src/networks/solana/clients/outpost.client.ts +325 -0
  467. package/src/networks/solana/clients/token.client.ts +210 -0
  468. package/src/networks/solana/constants.ts +152 -69
  469. package/src/networks/solana/program.ts +397 -102
  470. package/src/networks/solana/solana.ts +1208 -68
  471. package/src/networks/solana/types.ts +757 -0
  472. package/src/networks/solana/utils.ts +542 -93
  473. package/src/scripts/fetch-artifacts.sh +24 -0
  474. package/src/scripts/tsconfig.json +17 -0
  475. package/src/staker.ts +85 -0
  476. package/src/types.ts +364 -0
  477. package/src/assets/ethereum/ABI/token/ERC1155Token.sol/ERC1155Token.dbg.json +0 -4
  478. package/src/assets/ethereum/ABI/token/ERC1155Token.sol/ERC1155Token.json +0 -472
  479. package/src/assets/ethereum/ABI/token/ERC20Token.sol/ERC20Token.dbg.json +0 -4
  480. package/src/assets/ethereum/ABI/token/ERC20Token.sol/ERC20Token.json +0 -330
  481. package/src/assets/ethereum/ABI/token/ERC721Token.sol/ERC721Token.dbg.json +0 -4
  482. package/src/assets/ethereum/ABI/token/ERC721Token.sol/ERC721Token.json +0 -449
  483. package/src/assets/solana/idl/deposit.json +0 -260
  484. package/src/assets/solana/idl/distribution.json +0 -736
  485. package/src/assets/solana/idl/liq_sol_token.json +0 -275
  486. package/src/assets/solana/idl/stake_controller.json +0 -1788
  487. package/src/assets/solana/idl/stake_registry.json +0 -435
  488. package/src/assets/solana/idl/treasury.json +0 -336
  489. package/src/assets/solana/idl/validator_leaderboard.json +0 -528
  490. package/src/assets/solana/idl/validator_registry.json +0 -418
  491. package/src/assets/solana/idl/yield_oracle.json +0 -32
  492. package/src/assets/solana/types/deposit.ts +0 -266
  493. package/src/assets/solana/types/distribution.ts +0 -742
  494. package/src/assets/solana/types/liq_sol_token.ts +0 -281
  495. package/src/assets/solana/types/stake_controller.ts +0 -1794
  496. package/src/assets/solana/types/stake_registry.ts +0 -441
  497. package/src/assets/solana/types/treasury.ts +0 -342
  498. package/src/assets/solana/types/validator_leaderboard.ts +0 -534
  499. package/src/assets/solana/types/validator_registry.ts +0 -424
  500. package/src/assets/solana/types/yield_oracle.ts +0 -38
  501. package/src/networks/solana/clients/deposit.client.ts +0 -178
  502. package/src/staker/staker.ts +0 -56
  503. package/src/staker/types.ts +0 -40
  504. package/src/utils.ts +0 -9
@@ -1,122 +1,571 @@
1
- // src/solana/utils.ts
2
- import { AnchorProvider, Program } from '@coral-xyz/anchor'
3
- import { PublicKey } from '@solana/web3.js'
4
- import { getAssociatedTokenAddressSync, TOKEN_2022_PROGRAM_ID, ASSOCIATED_TOKEN_PROGRAM_ID } from '@solana/spl-token'
1
+ import { Program, BN, AnchorProvider } from '@coral-xyz/anchor';
2
+
3
+ import {
4
+ Connection,
5
+ Keypair,
6
+ PublicKey,
7
+ } from '@solana/web3.js';
8
+ import {
9
+ TOKEN_2022_PROGRAM_ID,
10
+ getAssociatedTokenAddress,
11
+ } from '@solana/spl-token';
12
+
5
13
  import {
6
- DEPOSIT_PROGRAM_ID,
7
- DISTRIBUTION_PROGRAM_ID,
8
- STAKE_CONTROLLER_PROGRAM_ID,
9
- VALIDATOR_LEADERBOARD_PROGRAM_ID,
10
- LIQSOL_MINT_ADDRESS,
11
- DepositIDL,
12
- Deposit
13
- } from './constants'
14
-
15
- // -- Program factories ------------------------------------------------------
14
+ DEFAULT_AVERAGE_PAY_RATE,
15
+ EPHEMERAL_RENT_EXEMPTION,
16
+ solToLamports,
17
+ DEFAULT_PAY_RATE_LOOKBACK,
18
+ CHAINLINK_FEED,
19
+ CHAINLINK_PROGRAM,
20
+ } from './constants';
21
+
22
+ import { GlobalState, TrancheState } from './types';
23
+ import { TrancheLadderItem, TrancheSnapshot } from '../../types';
24
+ import { ChainID } from '@wireio/core';
25
+ import { SolanaProgramService } from './program';
26
+
27
+ // -----------------------------------------------------------------------------
28
+ // Tranche Support
29
+ // -----------------------------------------------------------------------------
30
+ const INDEX_SCALE = BigInt(1_000_000_000_000); // 1e12
31
+ const USD_SCALE = BigInt(100_000_000); // 1e8
32
+ const BPS = BigInt(10_000);
33
+
34
+ /**
35
+ * Apply one forward growth step: value * (BPS + growthBps) / BPS.
36
+ * Simple integer round-half-up.
37
+ */
38
+ function growSupplyOnce(value: bigint, growthBps: number): bigint {
39
+ const g = BigInt(growthBps);
40
+ return (value * (BPS + g) + BPS / BigInt(2)) / BPS;
41
+ }
42
+
43
+ /**
44
+ * Apply one backward step: value * BPS / (BPS + growthBps).
45
+ * Also integer round-half-up.
46
+ */
47
+ function shrinkSupplyOnce(value: bigint, growthBps: number): bigint {
48
+ const g = BigInt(growthBps);
49
+ return (value * BPS + (BPS + g) / BigInt(2)) / (BPS + g);
50
+ }
51
+
52
+ /**
53
+ * Price step is expressed in *cents*, while prices are 1e8 USD.
54
+ * 1 cent = 0.01 * 1e8 = 1e6, so:
55
+ * step = priceGrowthCents * 1e6
56
+ */
57
+ function priceStepUsd1e8(priceGrowthCents: number): bigint {
58
+ if (!priceGrowthCents) return BigInt(0);
59
+ const CENT_SCALE = USD_SCALE / BigInt(100); // 1e6
60
+ return BigInt(priceGrowthCents) * CENT_SCALE;
61
+ }
62
+
63
+ function growPriceOnceUsd1e8(value: bigint, priceGrowthCents: number): bigint {
64
+ const step = priceStepUsd1e8(priceGrowthCents);
65
+ return value + step;
66
+ }
67
+
68
+ function shrinkPriceOnceUsd1e8(value: bigint, priceGrowthCents: number): bigint {
69
+ const step = priceStepUsd1e8(priceGrowthCents);
70
+ if (step === BigInt(0)) return value;
71
+ if (value <= step) return BigInt(0);
72
+ return value - step;
73
+ }
74
+
75
+ /** BN | bigint -> bigint helper (keeps code readable) */
76
+ export function toBigint(x: any): bigint {
77
+ if (typeof x === 'bigint') return x;
78
+ if (typeof x === 'number') return BigInt(x);
79
+ // Anchor BN
80
+ return BigInt(x.toString());
81
+ }
82
+
83
+ /**
84
+ * Convert token amount -> shares using the same rule as on-chain tests:
85
+ * shares = ceil(amount * INDEX_SCALE / currentIndex)
86
+ */
87
+ export function tokensToShares(amount: bigint, currentIndex: bigint): bigint {
88
+ if (amount === BigInt(0)) return BigInt(0);
89
+ const num = amount * INDEX_SCALE;
90
+ const q = num / currentIndex;
91
+ const r = num % currentIndex;
92
+ return r === BigInt(0) ? q : q + BigInt(1);
93
+ }
94
+
16
95
  /**
17
- * Create an Anchor Program client for the Deposit program
96
+ * Build a local tranche ladder around the current tranche
97
+ * using only on-chain config + current state.
98
+ *
99
+ * Rules (from liqsol_core tests):
100
+ * - past tranches are fully sold
101
+ * - current tranche has (initial - currentSupply) sold
102
+ * - future tranches start with 0 sold
103
+ * - supply/price grow by supplyGrowthBps/priceGrowthBps per tranche
18
104
  */
19
- export function getDepositProgram(provider: AnchorProvider): Program<Deposit> {
20
- // Ensure the IDL has the correct program address
21
- const idlWithAddress = {
22
- ...JSON.parse(JSON.stringify(DepositIDL)),
23
- address: DEPOSIT_PROGRAM_ID.toString(),
105
+ export function buildSolanaTrancheLadder(options: {
106
+ currentTranche: number;
107
+ initialTrancheSupply: bigint;
108
+ currentTrancheSupply: bigint;
109
+ currentPriceUsd: bigint; // 1e8 scale
110
+ supplyGrowthBps: number;
111
+ priceGrowthCents: number; // e.g. 2 -> $0.02 per tranche
112
+ windowBefore?: number;
113
+ windowAfter?: number;
114
+ }): TrancheLadderItem[] {
115
+ const {
116
+ currentTranche,
117
+ initialTrancheSupply,
118
+ currentTrancheSupply,
119
+ currentPriceUsd,
120
+ supplyGrowthBps,
121
+ priceGrowthCents,
122
+ windowBefore = 5,
123
+ windowAfter = 5,
124
+ } = options;
125
+
126
+ const startId = Math.max(0, currentTranche - windowBefore);
127
+ const endId = currentTranche + windowAfter;
128
+
129
+ const capacity = new Map<number, bigint>();
130
+ const price = new Map<number, bigint>();
131
+
132
+ // Seed current tranche
133
+ capacity.set(currentTranche, initialTrancheSupply);
134
+ price.set(currentTranche, currentPriceUsd);
135
+
136
+ // Forward (future tranches): grow supply by BPS, price by +cents (linear)
137
+ for (let id = currentTranche + 1; id <= endId; id++) {
138
+ const prevCap = capacity.get(id - 1)!;
139
+ const prevPrice = price.get(id - 1)!;
140
+
141
+ capacity.set(id, growSupplyOnce(prevCap, supplyGrowthBps));
142
+ price.set(id, growPriceOnceUsd1e8(prevPrice, priceGrowthCents));
143
+ }
144
+
145
+ // Backward (past tranches): shrink supply by inverse BPS, price by -cents
146
+ for (let id = currentTranche - 1; id >= startId; id--) {
147
+ const nextCap = capacity.get(id + 1)!;
148
+ const nextPrice = price.get(id + 1)!;
149
+
150
+ capacity.set(id, shrinkSupplyOnce(nextCap, supplyGrowthBps));
151
+ price.set(id, shrinkPriceOnceUsd1e8(nextPrice, priceGrowthCents));
152
+ }
153
+
154
+ const ladder: TrancheLadderItem[] = [];
155
+ for (let id = startId; id <= endId; id++) {
156
+ const cap = capacity.get(id)!;
157
+
158
+ let sold: bigint;
159
+ if (id < currentTranche) {
160
+ // Past tranches fully sold
161
+ sold = cap;
162
+ } else if (id === currentTranche) {
163
+ // Current tranche: cap - remaining
164
+ sold = cap - currentTrancheSupply;
165
+ } else {
166
+ // Future tranches not yet opened
167
+ sold = BigInt(0);
168
+ }
169
+
170
+ ladder.push({
171
+ id,
172
+ capacity: cap,
173
+ sold,
174
+ remaining: cap - sold,
175
+ priceUsd: price.get(id)!, // still 1e8 scale
176
+ });
24
177
  }
25
- return new Program(idlWithAddress as any, provider) as Program<Deposit>
178
+
179
+ return ladder;
26
180
  }
27
181
 
28
- // (Other program factories can go here if needed)
182
+ /**
183
+ * Turn raw liqsol_core accounts into a chain-agnostic TrancheSnapshot for SOL.
184
+ * All math stays here; TokenClient just wires accounts + connection.
185
+ */
186
+ export function buildSolanaTrancheSnapshot(options: {
187
+ chainID: ChainID;
188
+ globalState: GlobalState;
189
+ trancheState: TrancheState;
190
+ solPriceUsd?: bigint;
191
+ nativePriceTimestamp?: number;
192
+ ladderWindowBefore?: number;
193
+ ladderWindowAfter?: number;
194
+ }): TrancheSnapshot {
195
+ const {
196
+ chainID,
197
+ globalState,
198
+ trancheState,
199
+ solPriceUsd,
200
+ nativePriceTimestamp,
201
+ ladderWindowBefore,
202
+ ladderWindowAfter,
203
+ } = options;
204
+
205
+ const currentIndex = toBigint(globalState.currentIndex);
206
+ const totalShares = toBigint(globalState.totalShares);
207
+ const currentTranche = trancheState.currentTrancheNumber.toNumber();
208
+ const currentTrancheSupply = toBigint(trancheState.currentTrancheSupply);
209
+ const initialTrancheSupply = toBigint(trancheState.initialTrancheSupply);
210
+ const totalPretokensSold = toBigint(trancheState.totalPretokensSold);
211
+ const currentPriceUsd = toBigint(trancheState.currentTranchePriceUsd);
212
+ const supplyGrowthBps = trancheState.supplyGrowthBps;
213
+ const priceGrowthCents = trancheState.priceGrowthCents;
29
214
 
30
- // -- PDA derivation helpers ------------------------------------------------
31
- export function deriveDepositAuthorityPDA(
32
- programId: PublicKey = DEPOSIT_PROGRAM_ID
33
- ): [PublicKey, number] {
34
- return PublicKey.findProgramAddressSync(
35
- [Buffer.from('program_authority')],
36
- programId
37
- )
215
+ const ladder = buildSolanaTrancheLadder({
216
+ currentTranche,
217
+ initialTrancheSupply,
218
+ currentTrancheSupply,
219
+ currentPriceUsd,
220
+ supplyGrowthBps,
221
+ priceGrowthCents,
222
+ windowBefore: ladderWindowBefore,
223
+ windowAfter: ladderWindowAfter,
224
+ });
225
+
226
+ return {
227
+ chainID,
228
+ currentIndex,
229
+ totalShares,
230
+ currentTranche,
231
+ currentPriceUsd,
232
+ supplyGrowthBps,
233
+ priceGrowthCents,
234
+ totalPretokensSold,
235
+ currentTrancheSupply,
236
+ initialTrancheSupply,
237
+ nativePriceUsd: solPriceUsd,
238
+ nativePriceTimestamp,
239
+ ladder,
240
+ };
38
241
  }
39
242
 
40
- export function deriveLiqsolMintAuthorityPDA(
41
- programId: PublicKey = LIQSOL_MINT_ADDRESS
42
- ): [PublicKey, number] {
43
- return PublicKey.findProgramAddressSync(
44
- [Buffer.from('mint_authority')],
45
- programId
46
- )
243
+ /**
244
+ * ---------------------------------------------------------------------------
245
+ * Outpost-specific helpers
246
+ * ---------------------------------------------------------------------------
247
+ *
248
+ * This is the SDK equivalent of `deriveWirePdas` in capital-staking tests.
249
+ * It aggregates all PDAs / ATAs needed for Outpost pretokens + synd/desynd.
250
+ */
251
+ export interface OutpostAccounts {
252
+ user: PublicKey;
253
+
254
+ // Outpost / pretoken wiring
255
+ globalState: PublicKey;
256
+ poolAuthority: PublicKey;
257
+ liqsolMint: PublicKey;
258
+ liqsolPoolAta: PublicKey;
259
+ userAta: PublicKey;
260
+ outpostAccount: PublicKey;
261
+ userPretokenRecord: PublicKey;
262
+
263
+ // Distribution / yield context (user_record keyed by token accounts)
264
+ distributionState: PublicKey;
265
+ bucketAuthority: PublicKey;
266
+ bucketTokenAccount: PublicKey;
267
+ bucketUserRecord: PublicKey;
268
+ liqsolPoolUserRecord: PublicKey;
269
+ userUserRecord: PublicKey;
270
+
271
+ // Tranche / pricing
272
+ trancheState: PublicKey;
273
+
274
+ // Chainlink
275
+ chainLinkFeed: PublicKey;
276
+ chainLinkProgram: PublicKey;
277
+
278
+ // Transfer hook extra accounts
279
+ extraAccountMetaList: PublicKey;
280
+
281
+ // New
282
+ pretokenPurchaseHistory: PublicKey;
47
283
  }
48
284
 
49
- export function deriveStakeControllerVaultPDA(): [PublicKey, number] {
50
- return PublicKey.findProgramAddressSync(
51
- [Buffer.from('vault')],
52
- STAKE_CONTROLLER_PROGRAM_ID
53
- )
285
+ export async function buildOutpostAccounts(
286
+ connection: Connection,
287
+ user: PublicKey,
288
+ pgs: SolanaProgramService,
289
+ ): Promise<OutpostAccounts> {
290
+ const globalState = pgs.deriveOutpostGlobalStatePda();
291
+ const poolAuthority = pgs.deriveOutpostPoolAuthorityPda();
292
+ const liqsolMint = pgs.deriveLiqsolMintPda();
293
+ const distributionState = pgs.deriveDistributionStatePda();
294
+ const bucketAuthority = pgs.deriveBucketAuthorityPda();
295
+ const trancheState = pgs.deriveTrancheStatePda();
296
+
297
+ // Outpost / pretoken PDAs
298
+ const outpostAccount = pgs.deriveOutpostAccountPda(user);
299
+ const userPretokenRecord = pgs.deriveUserPretokenRecordPda(user);
300
+
301
+ // ATAs
302
+ const liqsolPoolAta = await getAssociatedTokenAddress(
303
+ liqsolMint,
304
+ poolAuthority,
305
+ true,
306
+ TOKEN_2022_PROGRAM_ID,
307
+ );
308
+
309
+ const bucketTokenAccount = await getAssociatedTokenAddress(
310
+ liqsolMint,
311
+ bucketAuthority,
312
+ true,
313
+ TOKEN_2022_PROGRAM_ID,
314
+ );
315
+
316
+ const userAta = await getAssociatedTokenAddress(
317
+ liqsolMint,
318
+ user,
319
+ true, // allow off curve in case squadsx vault
320
+ TOKEN_2022_PROGRAM_ID,
321
+ );
322
+
323
+ // user_record PDAs keyed by TOKEN ACCOUNTS (matches capital-staking)
324
+ const bucketUserRecord = pgs.deriveUserRecordPda(bucketTokenAccount);
325
+ const liqsolPoolUserRecord = pgs.deriveUserRecordPda(liqsolPoolAta);
326
+ const userUserRecord = pgs.deriveUserRecordPda(userAta);
327
+
328
+ const extraAccountMetaList = pgs.deriveExtraAccountMetaListPda(liqsolMint);
329
+
330
+ const pretokenPurchaseHistory = pgs.derivePretokenPurchaseHistoryPda(poolAuthority);
331
+
332
+ // Chainlink program feeds
333
+ let chainLinkFeed = CHAINLINK_FEED;
334
+ let chainLinkProgram = CHAINLINK_PROGRAM;
335
+
336
+ try {
337
+ const program = pgs.getProgram('liqsolCore');
338
+ const ts: TrancheState =
339
+ await program.account.trancheState.fetch(trancheState);
340
+
341
+ // If on-chain config overrides are present, prefer those.
342
+ if (ts.chainlinkFeed && ts.chainlinkProgram) {
343
+ chainLinkFeed = ts.chainlinkFeed as PublicKey;
344
+ chainLinkProgram = ts.chainlinkProgram as PublicKey;
345
+ }
346
+ } catch {
347
+ // If trancheState isn't initialized yet, we fall back to the constants.
348
+ // In that case, purchase instructions will still fail, which is the
349
+ // correct behavior until admin initializes TrancheState on-chain.
350
+ }
351
+
352
+ void connection; // reserved for future extra validation
353
+
354
+ return {
355
+ user,
356
+ globalState,
357
+ poolAuthority,
358
+ liqsolMint,
359
+ liqsolPoolAta,
360
+ userAta,
361
+ outpostAccount,
362
+ userPretokenRecord,
363
+ distributionState,
364
+ bucketAuthority,
365
+ bucketTokenAccount,
366
+ bucketUserRecord,
367
+ liqsolPoolUserRecord,
368
+ userUserRecord,
369
+ trancheState,
370
+ chainLinkFeed,
371
+ chainLinkProgram,
372
+ extraAccountMetaList,
373
+ pretokenPurchaseHistory
374
+ };
54
375
  }
376
+ // -----------------------------------------------------------------------------
377
+ // Epoch / scheduling helpers
378
+ // -----------------------------------------------------------------------------
379
+
380
+ export type EpochSnapshot = {
381
+ epoch: number;
382
+ slot: number;
383
+ firstSlot: number;
384
+ slotsInEpoch: number;
385
+ slotMs: number;
386
+ };
387
+
388
+ export async function getEpochSnapshot(
389
+ connection: Connection,
390
+ ): Promise<EpochSnapshot> {
391
+ const info = await connection.getEpochInfo();
392
+
393
+ // Fallback slot time
394
+ let slotTimeMs = Number(process.env.SLOT_TIME_MS_FALLBACK ?? 400);
55
395
 
56
- export function deriveStakeControllerReservePoolPDA(): [PublicKey, number] {
57
- return PublicKey.findProgramAddressSync(
58
- [Buffer.from('reserve_pool')],
59
- STAKE_CONTROLLER_PROGRAM_ID
60
- )
396
+ try {
397
+ const samples = await connection.getRecentPerformanceSamples(16);
398
+ if (samples.length) {
399
+ const avgMs =
400
+ samples.reduce(
401
+ (acc, s) => acc + (s.samplePeriodSecs * 1000) / s.numSlots,
402
+ 0,
403
+ ) / samples.length;
404
+ if (isFinite(avgMs) && avgMs > 0) {
405
+ slotTimeMs = avgMs;
406
+ }
407
+ }
408
+ } catch {
409
+ // ignore; keep fallback
410
+ }
411
+
412
+ return {
413
+ epoch: info.epoch,
414
+ slot: info.slotIndex,
415
+ firstSlot: info.absoluteSlot - info.slotIndex,
416
+ slotsInEpoch: info.slotsInEpoch,
417
+ slotMs: slotTimeMs,
418
+ };
61
419
  }
62
420
 
63
- export function deriveStakeControllerStatePDA(): [PublicKey, number] {
64
- return PublicKey.findProgramAddressSync(
65
- [Buffer.from('stake_controller')],
66
- STAKE_CONTROLLER_PROGRAM_ID
67
- )
421
+ export function msToEpochEnd(snapshot: EpochSnapshot): number {
422
+ const remainingSlots = snapshot.slotsInEpoch - snapshot.slot;
423
+ return remainingSlots * snapshot.slotMs;
68
424
  }
69
425
 
70
- export function deriveDistributionStatePDA(): [PublicKey, number] {
71
- return PublicKey.findProgramAddressSync(
72
- [Buffer.from('distribution_state')],
73
- DISTRIBUTION_PROGRAM_ID
74
- )
426
+ /**
427
+ * Generic "execute around epoch boundaries" helper:
428
+ *
429
+ * - If current progress is within [early, late], run immediately.
430
+ * - If too early, sleep until `early` percentage into the epoch.
431
+ * - If too late, sleep until `early` percentage into the *next* epoch.
432
+ *
433
+ * This is generic; you can wrap any instruction builder in here (including
434
+ * deposit flows) without baking in program-specific logic.
435
+ */
436
+ export async function scheduledInstruction<T>(
437
+ connection: Connection,
438
+ config: ScheduleConfig,
439
+ instruction: () => Promise<T>,
440
+ ): Promise<T> {
441
+ const early = config.early ?? 0.10;
442
+ const late = config.late ?? 0.90;
443
+
444
+ const snapshot = await getEpochSnapshot(connection);
445
+ const progress = snapshot.slot / snapshot.slotsInEpoch;
446
+
447
+ // Case 1: Already in safe zone
448
+ if (progress >= early && progress <= late) {
449
+ return instruction();
450
+ }
451
+
452
+ // Case 2: Early in epoch → wait until `early`
453
+ if (progress < early) {
454
+ const targetSlot = snapshot.slotsInEpoch * early;
455
+ const slotsRemaining = targetSlot - snapshot.slot;
456
+ const msToWait = slotsRemaining * snapshot.slotMs;
457
+
458
+ console.log(
459
+ `Epoch early (${(progress * 100).toFixed(
460
+ 2,
461
+ )}%). Sleeping ${(msToWait / 1000).toFixed(1)}s until ${early * 100
462
+ }%...`,
463
+ );
464
+
465
+ await sleep(Math.max(1000, msToWait));
466
+ return instruction();
467
+ }
468
+
469
+ // Case 3: Late in epoch → wait for next epoch + early window
470
+ const msToNextEpoch = msToEpochEnd(snapshot);
471
+ const earlyWaitTime = snapshot.slotsInEpoch * early * snapshot.slotMs;
472
+ const totalWaitTime = msToNextEpoch + earlyWaitTime + 1000;
473
+
474
+ console.log(
475
+ `Epoch late (${(progress * 100).toFixed(
476
+ 2,
477
+ )}%). Sleeping ${(totalWaitTime / 1000).toFixed(
478
+ 1,
479
+ )}s until next epoch + ${early * 100}%...`,
480
+ );
481
+
482
+ await sleep(totalWaitTime);
483
+ return instruction();
75
484
  }
76
485
 
77
- export function deriveUserRecordPDA(
78
- user: PublicKey
79
- ): [PublicKey, number] {
80
- return PublicKey.findProgramAddressSync(
81
- [Buffer.from('user_record'), user.toBuffer()],
82
- DISTRIBUTION_PROGRAM_ID
83
- )
486
+
487
+ // -----------------------------------------------------------------------------
488
+ // Generic helpers (used in tests + can be useful in apps)
489
+ // -----------------------------------------------------------------------------
490
+
491
+ export function getErrorMessage(error: any): string {
492
+ return (
493
+ error?.error?.errorCode?.code ||
494
+ error?.error?.errorMessage ||
495
+ error?.message ||
496
+ ''
497
+ );
84
498
  }
85
499
 
86
- export function deriveLeaderboardHeadPDA(): [PublicKey, number] {
87
- return PublicKey.findProgramAddressSync(
88
- [Buffer.from('leaderboard_head')],
89
- VALIDATOR_LEADERBOARD_PROGRAM_ID
90
- )
500
+ export function generateRandomDepositAmount(
501
+ minSol = 2,
502
+ maxSol = 100,
503
+ ): BN {
504
+ const randomSol = Math.random() * (maxSol - minSol) + minSol;
505
+ return new BN(solToLamports(randomSol));
91
506
  }
92
507
 
93
- export function deriveValidatorRecordPDA(
94
- voteAccount: PublicKey
95
- ): [PublicKey, number] {
96
- return PublicKey.findProgramAddressSync(
97
- [Buffer.from('validator_record'), voteAccount.toBuffer()],
98
- VALIDATOR_LEADERBOARD_PROGRAM_ID
99
- )
508
+ export function generateTestKeypair(): Keypair {
509
+ return Keypair.generate();
100
510
  }
101
511
 
102
- export function deriveTop10CachePDA(): [PublicKey, number] {
103
- return PublicKey.findProgramAddressSync(
104
- [Buffer.from('top_10_cache')],
105
- VALIDATOR_LEADERBOARD_PROGRAM_ID
106
- )
512
+ export async function airdropSol(
513
+ connection: Connection,
514
+ publicKey: PublicKey,
515
+ amountSol: number,
516
+ ): Promise<void> {
517
+ const lamports = solToLamports(amountSol);
518
+ const sig = await connection.requestAirdrop(publicKey, Number(lamports));
519
+ await connection.confirmTransaction(sig, 'confirmed');
107
520
  }
108
521
 
109
- // -- SPL Token helper -------------------------------------------------------
110
- export function getUserLiqsolATA(
111
- user: PublicKey
112
- ): PublicKey {
113
- return getAssociatedTokenAddressSync(
114
- LIQSOL_MINT_ADDRESS,
115
- user,
116
- false,
117
- TOKEN_2022_PROGRAM_ID,
118
- ASSOCIATED_TOKEN_PROGRAM_ID
119
- )
522
+ export async function waitForConfirmation(
523
+ connection: Connection,
524
+ signature: string,
525
+ ): Promise<void> {
526
+ await connection.confirmTransaction(signature, 'confirmed');
527
+ }
528
+
529
+ export function sleep(ms: number): Promise<void> {
530
+ return new Promise((resolve) => setTimeout(resolve, ms));
531
+ }
532
+
533
+ /**
534
+ * Simple helper used in tests: wait until safe zone, no-op.
535
+ */
536
+ export async function waitUntilSafeToExecuteFunction(
537
+ connection: Connection,
538
+ config: ScheduleConfig = {},
539
+ ): Promise<void> {
540
+ await scheduledInstruction(connection, config, async () => {
541
+ // no-op
542
+ return;
543
+ });
544
+ }
545
+
546
+ export interface ScheduleConfig {
547
+ early?: number; // fraction of epoch, default 0.10
548
+ late?: number; // fraction of epoch, default 0.90
120
549
  }
121
550
 
122
- // seedToPID(seed: string): PublicKey
551
+ export function ceilDiv(n: BN, d: BN): BN {
552
+ if (d.isZero()) {
553
+ throw new Error('Division by zero in ceilDiv');
554
+ }
555
+ return n.add(d.subn(1)).div(d);
556
+ }
557
+
558
+ export function normalizeToBigInt(x: any): bigint {
559
+ if (typeof x === 'bigint') return x;
560
+ if (x != null && typeof x === 'object' && 'toString' in x) return BigInt(x.toString());
561
+ if (typeof x === 'number') return BigInt(x);
562
+ throw new Error(`normalizeToBigInt: unsupported type ${typeof x}`);
563
+ }
564
+
565
+ export const safeFetch = async <T>(promise: Promise<T>, label?: string): Promise<T | null> => {
566
+ try { return await promise; }
567
+ catch (err) {
568
+ console.error(`Safe Fetch Failed${label ? ` (${label})` : ''}:`,err);
569
+ return null;
570
+ }
571
+ };
@@ -0,0 +1,24 @@
1
+ #!/bin/bash
2
+ set -e
3
+
4
+ # Define variables
5
+ IDL_ZIP_URL="https://bucket.gitgo.app/solana/idl.zip"
6
+ TYPES_ZIP_URL="https://bucket.gitgo.app/solana/types.zip"
7
+ DEST_DIR="$(dirname "$0")/../assets/solana"
8
+ TMP_DIR="$(mktemp -d)"
9
+
10
+ # Download the zip files
11
+ curl -L "$IDL_ZIP_URL" -o "$TMP_DIR/idl.zip"
12
+ curl -L "$TYPES_ZIP_URL" -o "$TMP_DIR/types.zip"
13
+
14
+ # Create destination directory if it doesn't exist
15
+ mkdir -p "$DEST_DIR"
16
+
17
+ # Unzip into the destination directory
18
+ unzip -o "$TMP_DIR/idl.zip" -d "$DEST_DIR"
19
+ unzip -o "$TMP_DIR/types.zip" -d "$DEST_DIR"
20
+
21
+ # Clean up
22
+ rm -rf "$TMP_DIR"
23
+
24
+ echo "IDL and types files fetched and extracted to $DEST_DIR"