@wireio/stake 2.5.2 → 2.6.1

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 (210) hide show
  1. package/lib/stake.browser.js +28125 -753
  2. package/lib/stake.browser.js.map +1 -1
  3. package/lib/stake.d.ts +53 -11
  4. package/lib/stake.js +28149 -753
  5. package/lib/stake.js.map +1 -1
  6. package/lib/stake.m.js +28125 -753
  7. package/lib/stake.m.js.map +1 -1
  8. package/package.json +2 -2
  9. package/src/assets/ethereum/hoodi/common/Base58.sol/Base58.dbg.json +4 -0
  10. package/src/assets/ethereum/hoodi/common/Base58.sol/Base58.json +164 -0
  11. package/src/assets/ethereum/hoodi/common/OpenZepArtifacts.sol/__Dummy_OZ_UUPS__.dbg.json +4 -0
  12. package/src/assets/ethereum/hoodi/common/OpenZepArtifacts.sol/__Dummy_OZ_UUPS__.json +76 -0
  13. package/src/assets/ethereum/hoodi/common/RestrictedCallers.sol/RestrictedCallers.dbg.json +4 -0
  14. package/src/assets/ethereum/hoodi/common/RestrictedCallers.sol/RestrictedCallers.json +10 -0
  15. package/src/assets/ethereum/hoodi/common/iodata.sol/iodata.dbg.json +4 -0
  16. package/src/assets/ethereum/hoodi/common/iodata.sol/iodata.json +618 -0
  17. package/src/assets/ethereum/hoodi/common/iodata_util.sol/iodata_util.dbg.json +4 -0
  18. package/src/assets/ethereum/hoodi/common/iodata_util.sol/iodata_util.json +40 -0
  19. package/src/assets/ethereum/hoodi/common/sysio_data.sol/sysio_data.dbg.json +4 -0
  20. package/src/assets/ethereum/hoodi/common/sysio_data.sol/sysio_data.json +10 -0
  21. package/src/assets/ethereum/hoodi/common/sysio_errors.sol/sysio_errors.dbg.json +4 -0
  22. package/src/assets/ethereum/hoodi/common/sysio_errors.sol/sysio_errors.json +10 -0
  23. package/src/assets/ethereum/hoodi/common/sysio_merkle.sol/sysio_merkle.dbg.json +4 -0
  24. package/src/assets/ethereum/hoodi/common/sysio_merkle.sol/sysio_merkle.json +233 -0
  25. package/src/assets/ethereum/hoodi/common/sysio_name.sol/sysio_name.dbg.json +4 -0
  26. package/src/assets/ethereum/hoodi/common/sysio_name.sol/sysio_name.json +49 -0
  27. package/src/assets/ethereum/hoodi/common/sysio_pubkey.sol/sysio_pubkey.dbg.json +4 -0
  28. package/src/assets/ethereum/hoodi/common/sysio_pubkey.sol/sysio_pubkey.json +64 -0
  29. package/src/assets/ethereum/hoodi/common/sysio_read.sol/sysio_read.dbg.json +4 -0
  30. package/src/assets/ethereum/hoodi/common/sysio_read.sol/sysio_read.json +1458 -0
  31. package/src/assets/ethereum/hoodi/common/sysio_tester.sol/SysioTester.dbg.json +4 -0
  32. package/src/assets/ethereum/hoodi/common/sysio_tester.sol/SysioTester.json +1532 -0
  33. package/src/assets/ethereum/hoodi/common/sysio_verify.sol/sysio_verify.dbg.json +4 -0
  34. package/src/assets/ethereum/hoodi/common/sysio_verify.sol/sysio_verify.json +1525 -0
  35. package/src/assets/ethereum/hoodi/common/sysio_write.sol/sysio_write.dbg.json +4 -0
  36. package/src/assets/ethereum/hoodi/common/sysio_write.sol/sysio_write.json +1076 -0
  37. package/src/assets/ethereum/hoodi/liqEth/BeaconState.sol/BeaconState.dbg.json +4 -0
  38. package/src/assets/ethereum/hoodi/liqEth/BeaconState.sol/BeaconState.json +807 -0
  39. package/src/assets/ethereum/hoodi/liqEth/DepositManager.sol/DepositManagerV2.dbg.json +4 -0
  40. package/src/assets/ethereum/hoodi/liqEth/DepositManager.sol/DepositManagerV2.json +1004 -0
  41. package/src/assets/ethereum/hoodi/liqEth/DepositManager.sol/IStakingModuleBondLocker.dbg.json +4 -0
  42. package/src/assets/ethereum/hoodi/liqEth/DepositManager.sol/IStakingModuleBondLocker.json +29 -0
  43. package/src/assets/ethereum/hoodi/liqEth/KeyBondManager.sol/KeyBondManager.dbg.json +4 -0
  44. package/src/assets/ethereum/hoodi/liqEth/KeyBondManager.sol/KeyBondManager.json +897 -0
  45. package/src/assets/ethereum/hoodi/liqEth/LiqEthAuthority.sol/LiqEthAuthority.dbg.json +4 -0
  46. package/src/assets/ethereum/hoodi/liqEth/LiqEthAuthority.sol/LiqEthAuthority.json +1289 -0
  47. package/src/assets/ethereum/hoodi/liqEth/LiqEthCommon.sol/IDepositContract.dbg.json +4 -0
  48. package/src/assets/ethereum/hoodi/liqEth/LiqEthCommon.sol/IDepositContract.json +39 -0
  49. package/src/assets/ethereum/hoodi/liqEth/LiqEthCommon.sol/IDepositManager.dbg.json +4 -0
  50. package/src/assets/ethereum/hoodi/liqEth/LiqEthCommon.sol/IDepositManager.json +64 -0
  51. package/src/assets/ethereum/hoodi/liqEth/LiqEthCommon.sol/IKeyBondManager.dbg.json +4 -0
  52. package/src/assets/ethereum/hoodi/liqEth/LiqEthCommon.sol/IKeyBondManager.json +189 -0
  53. package/src/assets/ethereum/hoodi/liqEth/LiqEthCommon.sol/ILiqEthUpgradeable.dbg.json +4 -0
  54. package/src/assets/ethereum/hoodi/liqEth/LiqEthCommon.sol/ILiqEthUpgradeable.json +29 -0
  55. package/src/assets/ethereum/hoodi/liqEth/LiqEthCommon.sol/IRewardsERC20.dbg.json +4 -0
  56. package/src/assets/ethereum/hoodi/liqEth/LiqEthCommon.sol/IRewardsERC20.json +319 -0
  57. package/src/assets/ethereum/hoodi/liqEth/LiqEthCommon.sol/IRewardsERC20Pausable.dbg.json +4 -0
  58. package/src/assets/ethereum/hoodi/liqEth/LiqEthCommon.sol/IRewardsERC20Pausable.json +333 -0
  59. package/src/assets/ethereum/hoodi/liqEth/LiqEthCommon.sol/IStakingModule.dbg.json +4 -0
  60. package/src/assets/ethereum/hoodi/liqEth/LiqEthCommon.sol/IStakingModule.json +279 -0
  61. package/src/assets/ethereum/hoodi/liqEth/LiqEthCommon.sol/IValidatorBalanceVerifier.dbg.json +4 -0
  62. package/src/assets/ethereum/hoodi/liqEth/LiqEthCommon.sol/IValidatorBalanceVerifier.json +129 -0
  63. package/src/assets/ethereum/hoodi/liqEth/LiqEthCommon.sol/IWithdrawalRecord.dbg.json +4 -0
  64. package/src/assets/ethereum/hoodi/liqEth/LiqEthCommon.sol/IWithdrawalRecord.json +66 -0
  65. package/src/assets/ethereum/hoodi/liqEth/LiqEthCommon.sol/LiqEthCommon.dbg.json +4 -0
  66. package/src/assets/ethereum/hoodi/liqEth/LiqEthCommon.sol/LiqEthCommon.json +10 -0
  67. package/src/assets/ethereum/hoodi/liqEth/LiqEthDeepFreeze.sol/LiqEthDeepFreeze.dbg.json +4 -0
  68. package/src/assets/ethereum/hoodi/liqEth/LiqEthDeepFreeze.sol/LiqEthDeepFreeze.json +236 -0
  69. package/src/assets/ethereum/hoodi/liqEth/LiqEthManaged.sol/LiqEthManaged.dbg.json +4 -0
  70. package/src/assets/ethereum/hoodi/liqEth/LiqEthManaged.sol/LiqEthManaged.json +229 -0
  71. package/src/assets/ethereum/hoodi/liqEth/RewardsERC20.sol/RewardsERC20UpgradeableV2.dbg.json +4 -0
  72. package/src/assets/ethereum/hoodi/liqEth/RewardsERC20.sol/RewardsERC20UpgradeableV2.json +957 -0
  73. package/src/assets/ethereum/hoodi/liqEth/RewardsERC20Pausable.sol/RewardsERC20PausableUpgradeableV2.dbg.json +4 -0
  74. package/src/assets/ethereum/hoodi/liqEth/RewardsERC20Pausable.sol/RewardsERC20PausableUpgradeableV2.json +1020 -0
  75. package/src/assets/ethereum/hoodi/liqEth/StakingLib.sol/StakingLib.dbg.json +4 -0
  76. package/src/assets/ethereum/hoodi/liqEth/StakingLib.sol/StakingLib.json +89 -0
  77. package/src/assets/ethereum/hoodi/liqEth/Yield.sol/YieldOracle.dbg.json +4 -0
  78. package/src/assets/ethereum/hoodi/liqEth/Yield.sol/YieldOracle.json +1376 -0
  79. package/src/assets/ethereum/hoodi/liqEth/liqEth.sol/LiqEthTokenV2.dbg.json +4 -0
  80. package/src/assets/ethereum/hoodi/liqEth/liqEth.sol/LiqEthTokenV2.json +1323 -0
  81. package/src/assets/ethereum/hoodi/liqEth/stakingModule.sol/StakingModuleV2.dbg.json +4 -0
  82. package/src/assets/ethereum/hoodi/liqEth/stakingModule.sol/StakingModuleV2.json +1896 -0
  83. package/src/assets/ethereum/hoodi/liqEth/v1/DepositManager.sol/DepositManager.dbg.json +4 -0
  84. package/src/assets/ethereum/hoodi/liqEth/v1/DepositManager.sol/DepositManager.json +978 -0
  85. package/src/assets/ethereum/hoodi/liqEth/v1/LiqEthCommon.sol/IAccounting.dbg.json +4 -0
  86. package/src/assets/ethereum/hoodi/liqEth/v1/LiqEthCommon.sol/IAccounting.json +176 -0
  87. package/src/assets/ethereum/hoodi/liqEth/v1/LiqEthCommon.sol/IDepositContract.dbg.json +4 -0
  88. package/src/assets/ethereum/hoodi/liqEth/v1/LiqEthCommon.sol/IDepositContract.json +39 -0
  89. package/src/assets/ethereum/hoodi/liqEth/v1/LiqEthCommon.sol/IDepositManager.dbg.json +4 -0
  90. package/src/assets/ethereum/hoodi/liqEth/v1/LiqEthCommon.sol/IDepositManager.json +64 -0
  91. package/src/assets/ethereum/hoodi/liqEth/v1/LiqEthCommon.sol/ILiqEthUpgradeable.dbg.json +4 -0
  92. package/src/assets/ethereum/hoodi/liqEth/v1/LiqEthCommon.sol/ILiqEthUpgradeable.json +29 -0
  93. package/src/assets/ethereum/hoodi/liqEth/v1/LiqEthCommon.sol/IRewardsERC20.dbg.json +4 -0
  94. package/src/assets/ethereum/hoodi/liqEth/v1/LiqEthCommon.sol/IRewardsERC20.json +249 -0
  95. package/src/assets/ethereum/hoodi/liqEth/v1/LiqEthCommon.sol/IRewardsERC20Pausable.dbg.json +4 -0
  96. package/src/assets/ethereum/hoodi/liqEth/v1/LiqEthCommon.sol/IRewardsERC20Pausable.json +263 -0
  97. package/src/assets/ethereum/hoodi/liqEth/v1/LiqEthCommon.sol/IStakingModule.dbg.json +4 -0
  98. package/src/assets/ethereum/hoodi/liqEth/v1/LiqEthCommon.sol/IStakingModule.json +344 -0
  99. package/src/assets/ethereum/hoodi/liqEth/v1/LiqEthCommon.sol/IValidatorBalanceVerifier.dbg.json +4 -0
  100. package/src/assets/ethereum/hoodi/liqEth/v1/LiqEthCommon.sol/IValidatorBalanceVerifier.json +129 -0
  101. package/src/assets/ethereum/hoodi/liqEth/v1/LiqEthCommon.sol/IWithdrawalRecord.dbg.json +4 -0
  102. package/src/assets/ethereum/hoodi/liqEth/v1/LiqEthCommon.sol/IWithdrawalRecord.json +66 -0
  103. package/src/assets/ethereum/hoodi/liqEth/v1/LiqEthCommon.sol/LiqEthCommon.dbg.json +4 -0
  104. package/src/assets/ethereum/hoodi/liqEth/v1/LiqEthCommon.sol/LiqEthCommon.json +10 -0
  105. package/src/assets/ethereum/hoodi/liqEth/v1/RewardsERC20.sol/RewardsERC20Upgradeable.dbg.json +4 -0
  106. package/src/assets/ethereum/hoodi/liqEth/v1/RewardsERC20.sol/RewardsERC20Upgradeable.json +874 -0
  107. package/src/assets/ethereum/hoodi/liqEth/v1/RewardsERC20Pausable.sol/RewardsERC20PausableUpgradeable.dbg.json +4 -0
  108. package/src/assets/ethereum/hoodi/liqEth/v1/RewardsERC20Pausable.sol/RewardsERC20PausableUpgradeable.json +937 -0
  109. package/src/assets/ethereum/hoodi/liqEth/v1/accounting.sol/Accounting.dbg.json +4 -0
  110. package/src/assets/ethereum/hoodi/liqEth/v1/accounting.sol/Accounting.json +542 -0
  111. package/src/assets/ethereum/hoodi/liqEth/v1/liqEth.sol/LiqEthToken.dbg.json +4 -0
  112. package/src/assets/ethereum/hoodi/liqEth/v1/liqEth.sol/LiqEthToken.json +1233 -0
  113. package/src/assets/ethereum/hoodi/liqEth/v1/stakingModule.sol/StakingModule.dbg.json +4 -0
  114. package/src/assets/ethereum/hoodi/liqEth/v1/stakingModule.sol/StakingModule.json +1772 -0
  115. package/src/assets/ethereum/hoodi/liqEth/withdrawalQueue.sol/WithdrawalQueue.dbg.json +4 -0
  116. package/src/assets/ethereum/hoodi/liqEth/withdrawalQueue.sol/WithdrawalQueue.json +973 -0
  117. package/src/assets/ethereum/hoodi/liqEth/withdrawalVault.sol/Uint64BE.dbg.json +4 -0
  118. package/src/assets/ethereum/hoodi/liqEth/withdrawalVault.sol/Uint64BE.json +10 -0
  119. package/src/assets/ethereum/hoodi/liqEth/withdrawalVault.sol/WithdrawalVault.dbg.json +4 -0
  120. package/src/assets/ethereum/hoodi/liqEth/withdrawalVault.sol/WithdrawalVault.json +441 -0
  121. package/src/assets/ethereum/hoodi/outpost/BAR.sol/BARV2.dbg.json +4 -0
  122. package/src/assets/ethereum/hoodi/outpost/BAR.sol/BARV2.json +1915 -0
  123. package/src/assets/ethereum/hoodi/outpost/Depositor.sol/DepositorV2.dbg.json +4 -0
  124. package/src/assets/ethereum/hoodi/outpost/Depositor.sol/DepositorV2.json +1845 -0
  125. package/src/assets/ethereum/hoodi/outpost/EthUsdPriceConsumer.sol/AggregatorV3Interface.dbg.json +4 -0
  126. package/src/assets/ethereum/hoodi/outpost/EthUsdPriceConsumer.sol/AggregatorV3Interface.json +122 -0
  127. package/src/assets/ethereum/hoodi/outpost/EthUsdPriceConsumer.sol/EthUsdPriceConsumer.dbg.json +4 -0
  128. package/src/assets/ethereum/hoodi/outpost/EthUsdPriceConsumer.sol/EthUsdPriceConsumer.json +551 -0
  129. package/src/assets/ethereum/hoodi/outpost/OPP.sol/OPP.dbg.json +4 -0
  130. package/src/assets/ethereum/hoodi/outpost/OPP.sol/OPP.json +948 -0
  131. package/src/assets/ethereum/hoodi/outpost/OPPCommon.sol/IOPP.dbg.json +4 -0
  132. package/src/assets/ethereum/hoodi/outpost/OPPCommon.sol/IOPP.json +88 -0
  133. package/src/assets/ethereum/hoodi/outpost/OPPCommon.sol/IOPPEndpoint.dbg.json +4 -0
  134. package/src/assets/ethereum/hoodi/outpost/OPPCommon.sol/IOPPEndpoint.json +29 -0
  135. package/src/assets/ethereum/hoodi/outpost/OPPCommon.sol/IOPPInbound.dbg.json +4 -0
  136. package/src/assets/ethereum/hoodi/outpost/OPPCommon.sol/IOPPInbound.json +194 -0
  137. package/src/assets/ethereum/hoodi/outpost/OPPCommon.sol/IOPPReceiver.dbg.json +4 -0
  138. package/src/assets/ethereum/hoodi/outpost/OPPCommon.sol/IOPPReceiver.json +29 -0
  139. package/src/assets/ethereum/hoodi/outpost/OPPCommon.sol/IOPPSender.dbg.json +4 -0
  140. package/src/assets/ethereum/hoodi/outpost/OPPCommon.sol/IOPPSender.json +36 -0
  141. package/src/assets/ethereum/hoodi/outpost/OPPCommon.sol/OPPCommon.dbg.json +4 -0
  142. package/src/assets/ethereum/hoodi/outpost/OPPCommon.sol/OPPCommon.json +199 -0
  143. package/src/assets/ethereum/hoodi/outpost/OPPEndpoint.sol/OPPEndpoint.dbg.json +4 -0
  144. package/src/assets/ethereum/hoodi/outpost/OPPEndpoint.sol/OPPEndpoint.json +273 -0
  145. package/src/assets/ethereum/hoodi/outpost/OPPEndpointManaged.sol/OPPEndpointManaged.dbg.json +4 -0
  146. package/src/assets/ethereum/hoodi/outpost/OPPEndpointManaged.sol/OPPEndpointManaged.json +394 -0
  147. package/src/assets/ethereum/hoodi/outpost/OPPEndpointOwnable.sol/OPPEndpointOwnable.dbg.json +4 -0
  148. package/src/assets/ethereum/hoodi/outpost/OPPEndpointOwnable.sol/OPPEndpointOwnable.json +378 -0
  149. package/src/assets/ethereum/hoodi/outpost/OPPErrors.sol/OPPErrors.dbg.json +4 -0
  150. package/src/assets/ethereum/hoodi/outpost/OPPErrors.sol/OPPErrors.json +224 -0
  151. package/src/assets/ethereum/hoodi/outpost/OPPInbound.sol/OPPInbound.dbg.json +4 -0
  152. package/src/assets/ethereum/hoodi/outpost/OPPInbound.sol/OPPInbound.json +1010 -0
  153. package/src/assets/ethereum/hoodi/outpost/OPPReceiver.sol/OPPReceiver.dbg.json +4 -0
  154. package/src/assets/ethereum/hoodi/outpost/OPPReceiver.sol/OPPReceiver.json +291 -0
  155. package/src/assets/ethereum/hoodi/outpost/OPPSender.sol/OPPSender.dbg.json +4 -0
  156. package/src/assets/ethereum/hoodi/outpost/OPPSender.sol/OPPSender.json +298 -0
  157. package/src/assets/ethereum/hoodi/outpost/OutpostErrors.sol/OutpostErrors.dbg.json +4 -0
  158. package/src/assets/ethereum/hoodi/outpost/OutpostErrors.sol/OutpostErrors.json +488 -0
  159. package/src/assets/ethereum/hoodi/outpost/OutpostManaged.sol/OutpostManaged.dbg.json +4 -0
  160. package/src/assets/ethereum/hoodi/outpost/OutpostManaged.sol/OutpostManaged.json +229 -0
  161. package/src/assets/ethereum/hoodi/outpost/OutpostManager.sol/OutpostManagerV2.dbg.json +4 -0
  162. package/src/assets/ethereum/hoodi/outpost/OutpostManager.sol/OutpostManagerV2.json +737 -0
  163. package/src/assets/ethereum/hoodi/outpost/OutpostManagerAuthority.sol/OutpostManagerAuthority.dbg.json +4 -0
  164. package/src/assets/ethereum/hoodi/outpost/OutpostManagerAuthority.sol/OutpostManagerAuthority.json +1432 -0
  165. package/src/assets/ethereum/hoodi/outpost/OutpostManagerCommon.sol/IOutpostManager.dbg.json +4 -0
  166. package/src/assets/ethereum/hoodi/outpost/OutpostManagerCommon.sol/IOutpostManager.json +130 -0
  167. package/src/assets/ethereum/hoodi/outpost/OutpostManagerCommon.sol/IOutpostUpgradeable.dbg.json +4 -0
  168. package/src/assets/ethereum/hoodi/outpost/OutpostManagerCommon.sol/IOutpostUpgradeable.json +29 -0
  169. package/src/assets/ethereum/hoodi/outpost/OutpostManagerCommon.sol/OutpostManagerCommon.dbg.json +4 -0
  170. package/src/assets/ethereum/hoodi/outpost/OutpostManagerCommon.sol/OutpostManagerCommon.json +141 -0
  171. package/src/assets/ethereum/hoodi/outpost/OutpostOwnable.sol/OutpostOwnable.dbg.json +4 -0
  172. package/src/assets/ethereum/hoodi/outpost/OutpostOwnable.sol/OutpostOwnable.json +213 -0
  173. package/src/assets/ethereum/hoodi/outpost/Pool.sol/PoolV2.dbg.json +4 -0
  174. package/src/assets/ethereum/hoodi/outpost/Pool.sol/PoolV2.json +943 -0
  175. package/src/assets/ethereum/hoodi/outpost/Pretoken.sol/PretokenV2.dbg.json +4 -0
  176. package/src/assets/ethereum/hoodi/outpost/Pretoken.sol/PretokenV2.json +1703 -0
  177. package/src/assets/ethereum/hoodi/outpost/ReceiptNFT.sol/ReceiptNFT.dbg.json +4 -0
  178. package/src/assets/ethereum/hoodi/outpost/ReceiptNFT.sol/ReceiptNFT.json +2015 -0
  179. package/src/assets/ethereum/hoodi/outpost/interfaces/IPretoken.sol/IPretoken.dbg.json +4 -0
  180. package/src/assets/ethereum/hoodi/outpost/interfaces/IPretoken.sol/IPretoken.json +29 -0
  181. package/src/assets/ethereum/hoodi/outpost/interfaces/IWarrant.sol/IWarrant.dbg.json +4 -0
  182. package/src/assets/ethereum/hoodi/outpost/interfaces/IWarrant.sol/IWarrant.json +29 -0
  183. package/src/assets/ethereum/hoodi/outpost/token/ERC721EthEquivalentVotesUpgradeable.sol/ERC721EthEquivalentVotesUpgradeable.dbg.json +4 -0
  184. package/src/assets/ethereum/hoodi/outpost/token/ERC721EthEquivalentVotesUpgradeable.sol/ERC721EthEquivalentVotesUpgradeable.json +858 -0
  185. package/src/assets/ethereum/hoodi/outpost/token/IERC721EthEquivalent.sol/IERC721EthEquivalent.dbg.json +4 -0
  186. package/src/assets/ethereum/hoodi/outpost/token/IERC721EthEquivalent.sol/IERC721EthEquivalent.json +30 -0
  187. package/src/assets/ethereum/hoodi/outpost/v1/BAR.sol/BAR.dbg.json +4 -0
  188. package/src/assets/ethereum/hoodi/outpost/v1/BAR.sol/BAR.json +1871 -0
  189. package/src/assets/ethereum/hoodi/outpost/v1/Depositor.sol/Depositor.dbg.json +4 -0
  190. package/src/assets/ethereum/hoodi/outpost/v1/Depositor.sol/Depositor.json +1653 -0
  191. package/src/assets/ethereum/hoodi/outpost/v1/OutpostManager.sol/OutpostManager.dbg.json +4 -0
  192. package/src/assets/ethereum/hoodi/outpost/v1/OutpostManager.sol/OutpostManager.json +730 -0
  193. package/src/assets/ethereum/hoodi/outpost/v1/Pool.sol/Pool.dbg.json +4 -0
  194. package/src/assets/ethereum/hoodi/outpost/v1/Pool.sol/Pool.json +936 -0
  195. package/src/assets/ethereum/hoodi/outpost/v1/Pretoken.sol/Pretoken.dbg.json +4 -0
  196. package/src/assets/ethereum/hoodi/outpost/v1/Pretoken.sol/Pretoken.json +1665 -0
  197. package/src/assets/ethereum/hoodi/token/ERC1155Token.sol/ERC1155Token.dbg.json +4 -0
  198. package/src/assets/ethereum/hoodi/token/ERC1155Token.sol/ERC1155Token.json +472 -0
  199. package/src/assets/ethereum/hoodi/token/ERC20Token.sol/ERC20Token.dbg.json +4 -0
  200. package/src/assets/ethereum/hoodi/token/ERC20Token.sol/ERC20Token.json +330 -0
  201. package/src/assets/ethereum/hoodi/token/ERC721Token.sol/ERC721Token.dbg.json +4 -0
  202. package/src/assets/ethereum/hoodi/token/ERC721Token.sol/ERC721Token.json +449 -0
  203. package/src/networks/ethereum/clients/stake.client.ts +81 -7
  204. package/src/networks/ethereum/contract.ts +212 -104
  205. package/src/networks/ethereum/ethereum.ts +47 -6
  206. package/src/networks/ethereum/types.ts +10 -0
  207. package/src/networks/solana/constants.ts +3 -3
  208. package/src/networks/solana/solana.ts +92 -7
  209. package/src/networks/solana/types.ts +2 -2
  210. package/src/types.ts +10 -1
@@ -4,40 +4,62 @@
4
4
  * Provides a unified service for interacting with Ethereum smart contracts using ethers.js.
5
5
  */
6
6
 
7
- // LiqETH Artifacts (for now, used by both mainnet and hoodi)
8
- import AccountingArtifact from '../../assets/ethereum/mainnet/liqEth/accounting.sol/Accounting.json';
9
- import DepositManagerArtifact from '../../assets/ethereum/mainnet/liqEth/DepositManager.sol/DepositManager.json';
10
- import LiqEthArtifact from '../../assets/ethereum/mainnet/liqEth/liqEth.sol/LiqEthToken.json';
11
- import StakingModuleArtifact from '../../assets/ethereum/mainnet/liqEth/stakingModule.sol/StakingModule.json';
12
- import WithdrawalQueueArtifact from '../../assets/ethereum/mainnet/liqEth/withdrawalQueue.sol/WithdrawalQueue.json';
13
- import WithdrawalVaultArtifact from '../../assets/ethereum/mainnet/liqEth/withdrawalVault.sol/WithdrawalVault.json';
14
- import BeaconStateArtifact from '../../assets/ethereum/mainnet/liqEth/BeaconState.sol/BeaconState.json';
15
- import YieldOracleArtifact from '../../assets/ethereum/mainnet/liqEth/Yield.sol/YieldOracle.json';
16
-
17
- // Outpost Artifacts (for now, used by both mainnet and hoodi)
18
- import DepositorArtifact from '../../assets/ethereum/mainnet/outpost/Depositor.sol/Depositor.json';
19
- import ReceiptNFTArtifact from '../../assets/ethereum/mainnet/outpost/ReceiptNFT.sol/ReceiptNFT.json';
20
- import OutpostManagerArtifact from '../../assets/ethereum/mainnet/outpost/OutpostManager.sol/OutpostManager.json';
21
- import BARArtifact from '../../assets/ethereum/mainnet/outpost/BAR.sol/BAR.json';
22
- import OPPArtifact from '../../assets/ethereum/mainnet/outpost/OPP.sol/OPP.json';
23
- import OPPCommonArtifact from '../../assets/ethereum/mainnet/outpost/OPPCommon.sol/OPPCommon.json';
24
- import OPPInboundArtifact from '../../assets/ethereum/mainnet/outpost/OPPInbound.sol/OPPInbound.json';
25
- import PretokenArtifact from '../../assets/ethereum/mainnet/outpost/Pretoken.sol/Pretoken.json';
26
- import AggregatorArtifact from '../../assets/ethereum/mainnet/outpost/Aggregator.sol/Aggregator.json';
27
- import EthUsdPriceConsumerArtifact from '../../assets/ethereum/mainnet/outpost/EthUsdPriceConsumer.sol/EthUsdPriceConsumer.json';
28
- import PoolArtifact from '../../assets/ethereum/mainnet/outpost/Pool.sol/Pool.json';
29
- import OutpostManagerAuthorityArtifact from '../../assets/ethereum/mainnet/outpost/OutpostManagerAuthority.sol/OutpostManagerAuthority.json';
30
-
31
- // Common Artifacts (for now, used by both mainnet and hoodi)
32
- import IodataArtifact from '../../assets/ethereum/mainnet/common/iodata.sol/iodata.json';
33
- import Base58Artifact from '../../assets/ethereum/mainnet/common/Base58.sol/Base58.json';
34
- import sysio_merkleArtifact from '../../assets/ethereum/mainnet/common/sysio_merkle.sol/sysio_merkle.json';
35
- import sysio_writeArtifact from '../../assets/ethereum/mainnet/common/sysio_write.sol/sysio_write.json';
36
-
37
- // ERC Token Artifacts (for now, used by both mainnet and hoodi)
38
- import ERC20Artifact from '../../assets/ethereum/mainnet/token/ERC20Token.sol/ERC20Token.json';
39
- import ERC721Artifact from '../../assets/ethereum/mainnet/token/ERC721Token.sol/ERC721Token.json';
40
- import ERC1155Artifact from '../../assets/ethereum/mainnet/token/ERC1155Token.sol/ERC1155Token.json';
7
+ // Mainnet artifacts
8
+ import MainnetAccountingArtifact from '../../assets/ethereum/mainnet/liqEth/accounting.sol/Accounting.json';
9
+ import MainnetDepositManagerArtifact from '../../assets/ethereum/mainnet/liqEth/DepositManager.sol/DepositManager.json';
10
+ import MainnetLiqEthArtifact from '../../assets/ethereum/mainnet/liqEth/liqEth.sol/LiqEthToken.json';
11
+ import MainnetStakingModuleArtifact from '../../assets/ethereum/mainnet/liqEth/stakingModule.sol/StakingModule.json';
12
+ import MainnetWithdrawalQueueArtifact from '../../assets/ethereum/mainnet/liqEth/withdrawalQueue.sol/WithdrawalQueue.json';
13
+ import MainnetWithdrawalVaultArtifact from '../../assets/ethereum/mainnet/liqEth/withdrawalVault.sol/WithdrawalVault.json';
14
+ import MainnetBeaconStateArtifact from '../../assets/ethereum/mainnet/liqEth/BeaconState.sol/BeaconState.json';
15
+ import MainnetYieldOracleArtifact from '../../assets/ethereum/mainnet/liqEth/Yield.sol/YieldOracle.json';
16
+ import MainnetDepositorArtifact from '../../assets/ethereum/mainnet/outpost/Depositor.sol/Depositor.json';
17
+ import MainnetReceiptNFTArtifact from '../../assets/ethereum/mainnet/outpost/ReceiptNFT.sol/ReceiptNFT.json';
18
+ import MainnetOutpostManagerArtifact from '../../assets/ethereum/mainnet/outpost/OutpostManager.sol/OutpostManager.json';
19
+ import MainnetBARArtifact from '../../assets/ethereum/mainnet/outpost/BAR.sol/BAR.json';
20
+ import MainnetOPPArtifact from '../../assets/ethereum/mainnet/outpost/OPP.sol/OPP.json';
21
+ import MainnetOPPCommonArtifact from '../../assets/ethereum/mainnet/outpost/OPPCommon.sol/OPPCommon.json';
22
+ import MainnetOPPInboundArtifact from '../../assets/ethereum/mainnet/outpost/OPPInbound.sol/OPPInbound.json';
23
+ import MainnetPretokenArtifact from '../../assets/ethereum/mainnet/outpost/Pretoken.sol/Pretoken.json';
24
+ import MainnetAggregatorArtifact from '../../assets/ethereum/mainnet/outpost/Aggregator.sol/Aggregator.json';
25
+ import MainnetEthUsdPriceConsumerArtifact from '../../assets/ethereum/mainnet/outpost/EthUsdPriceConsumer.sol/EthUsdPriceConsumer.json';
26
+ import MainnetPoolArtifact from '../../assets/ethereum/mainnet/outpost/Pool.sol/Pool.json';
27
+ import MainnetOutpostManagerAuthorityArtifact from '../../assets/ethereum/mainnet/outpost/OutpostManagerAuthority.sol/OutpostManagerAuthority.json';
28
+ import MainnetIodataArtifact from '../../assets/ethereum/mainnet/common/iodata.sol/iodata.json';
29
+ import MainnetBase58Artifact from '../../assets/ethereum/mainnet/common/Base58.sol/Base58.json';
30
+ import MainnetSysioMerkleArtifact from '../../assets/ethereum/mainnet/common/sysio_merkle.sol/sysio_merkle.json';
31
+ import MainnetSysioWriteArtifact from '../../assets/ethereum/mainnet/common/sysio_write.sol/sysio_write.json';
32
+ import MainnetERC20Artifact from '../../assets/ethereum/mainnet/token/ERC20Token.sol/ERC20Token.json';
33
+ import MainnetERC721Artifact from '../../assets/ethereum/mainnet/token/ERC721Token.sol/ERC721Token.json';
34
+ import MainnetERC1155Artifact from '../../assets/ethereum/mainnet/token/ERC1155Token.sol/ERC1155Token.json';
35
+
36
+ // Hoodi artifacts
37
+ import HoodiAccountingArtifact from '../../assets/ethereum/hoodi/liqEth/v1/accounting.sol/Accounting.json';
38
+ import HoodiDepositManagerArtifact from '../../assets/ethereum/hoodi/liqEth/v1/DepositManager.sol/DepositManager.json';
39
+ import HoodiLiqEthArtifact from '../../assets/ethereum/hoodi/liqEth/v1/liqEth.sol/LiqEthToken.json';
40
+ import HoodiStakingModuleArtifact from '../../assets/ethereum/hoodi/liqEth/v1/stakingModule.sol/StakingModule.json';
41
+ import HoodiWithdrawalQueueArtifact from '../../assets/ethereum/hoodi/liqEth/withdrawalQueue.sol/WithdrawalQueue.json';
42
+ import HoodiWithdrawalVaultArtifact from '../../assets/ethereum/hoodi/liqEth/withdrawalVault.sol/WithdrawalVault.json';
43
+ import HoodiBeaconStateArtifact from '../../assets/ethereum/hoodi/liqEth/BeaconState.sol/BeaconState.json';
44
+ import HoodiYieldOracleArtifact from '../../assets/ethereum/hoodi/liqEth/Yield.sol/YieldOracle.json';
45
+ import HoodiDepositorArtifact from '../../assets/ethereum/hoodi/outpost/Depositor.sol/DepositorV2.json';
46
+ import HoodiReceiptNFTArtifact from '../../assets/ethereum/hoodi/outpost/ReceiptNFT.sol/ReceiptNFT.json';
47
+ import HoodiOutpostManagerArtifact from '../../assets/ethereum/hoodi/outpost/OutpostManager.sol/OutpostManagerV2.json';
48
+ import HoodiBARArtifact from '../../assets/ethereum/hoodi/outpost/BAR.sol/BARV2.json';
49
+ import HoodiOPPArtifact from '../../assets/ethereum/hoodi/outpost/OPP.sol/OPP.json';
50
+ import HoodiOPPCommonArtifact from '../../assets/ethereum/hoodi/outpost/OPPCommon.sol/OPPCommon.json';
51
+ import HoodiOPPInboundArtifact from '../../assets/ethereum/hoodi/outpost/OPPInbound.sol/OPPInbound.json';
52
+ import HoodiPretokenArtifact from '../../assets/ethereum/hoodi/outpost/Pretoken.sol/PretokenV2.json';
53
+ import HoodiEthUsdPriceConsumerArtifact from '../../assets/ethereum/hoodi/outpost/EthUsdPriceConsumer.sol/EthUsdPriceConsumer.json';
54
+ import HoodiPoolArtifact from '../../assets/ethereum/hoodi/outpost/Pool.sol/PoolV2.json';
55
+ import HoodiOutpostManagerAuthorityArtifact from '../../assets/ethereum/hoodi/outpost/OutpostManagerAuthority.sol/OutpostManagerAuthority.json';
56
+ import HoodiIodataArtifact from '../../assets/ethereum/hoodi/common/iodata.sol/iodata.json';
57
+ import HoodiBase58Artifact from '../../assets/ethereum/hoodi/common/Base58.sol/Base58.json';
58
+ import HoodiSysioMerkleArtifact from '../../assets/ethereum/hoodi/common/sysio_merkle.sol/sysio_merkle.json';
59
+ import HoodiSysioWriteArtifact from '../../assets/ethereum/hoodi/common/sysio_write.sol/sysio_write.json';
60
+ import HoodiERC20Artifact from '../../assets/ethereum/hoodi/token/ERC20Token.sol/ERC20Token.json';
61
+ import HoodiERC721Artifact from '../../assets/ethereum/hoodi/token/ERC721Token.sol/ERC721Token.json';
62
+ import HoodiERC1155Artifact from '../../assets/ethereum/hoodi/token/ERC1155Token.sol/ERC1155Token.json';
41
63
 
42
64
  import { AddressBook, ContractName } from './types';
43
65
  import { Contract, ethers, providers, Signer } from 'ethers';
@@ -46,9 +68,102 @@ import { ErrorDescription } from '@ethersproject/abi/lib/interface';
46
68
  import { EvmChainID } from '@wireio/core';
47
69
  import { SupportedEvmChainID } from '../../types';
48
70
 
49
- export const ERC20Abi = ERC20Artifact.abi;
50
- export const ERC721Abi = ERC721Artifact.abi;
51
- export const ERC1155Abi = ERC1155Artifact.abi;
71
+ export const ERC20Abi = MainnetERC20Artifact.abi;
72
+ export const ERC721Abi = MainnetERC721Artifact.abi;
73
+ export const ERC1155Abi = MainnetERC1155Artifact.abi;
74
+
75
+ type AbiArtifact = { abi: JsonFragment[] };
76
+
77
+ type ArtifactBundle = {
78
+ Accounting: AbiArtifact;
79
+ DepositManager: AbiArtifact;
80
+ LiqEthToken: AbiArtifact;
81
+ StakingModule: AbiArtifact;
82
+ WithdrawalQueue: AbiArtifact;
83
+ WithdrawalVault: AbiArtifact;
84
+ BeaconState: AbiArtifact;
85
+ YieldOracle: AbiArtifact;
86
+ Depositor: AbiArtifact;
87
+ ReceiptNFT: AbiArtifact;
88
+ OutpostManager: AbiArtifact;
89
+ BAR: AbiArtifact;
90
+ OPP: AbiArtifact;
91
+ OPPCommon: AbiArtifact;
92
+ OPPInbound: AbiArtifact;
93
+ Pretoken: AbiArtifact;
94
+ Aggregator: AbiArtifact;
95
+ EthUsdPriceConsumer: AbiArtifact;
96
+ Pool: AbiArtifact;
97
+ OutpostManagerAuthority: AbiArtifact;
98
+ iodata: AbiArtifact;
99
+ Base58: AbiArtifact;
100
+ sysio_merkle: AbiArtifact;
101
+ sysio_write: AbiArtifact;
102
+ ERC20: AbiArtifact;
103
+ ERC721: AbiArtifact;
104
+ ERC1155: AbiArtifact;
105
+ };
106
+
107
+ const MAINNET_ARTIFACTS: ArtifactBundle = {
108
+ Accounting: MainnetAccountingArtifact as AbiArtifact,
109
+ DepositManager: MainnetDepositManagerArtifact as AbiArtifact,
110
+ LiqEthToken: MainnetLiqEthArtifact as AbiArtifact,
111
+ StakingModule: MainnetStakingModuleArtifact as AbiArtifact,
112
+ WithdrawalQueue: MainnetWithdrawalQueueArtifact as AbiArtifact,
113
+ WithdrawalVault: MainnetWithdrawalVaultArtifact as AbiArtifact,
114
+ BeaconState: MainnetBeaconStateArtifact as AbiArtifact,
115
+ YieldOracle: MainnetYieldOracleArtifact as AbiArtifact,
116
+ Depositor: MainnetDepositorArtifact as AbiArtifact,
117
+ ReceiptNFT: MainnetReceiptNFTArtifact as AbiArtifact,
118
+ OutpostManager: MainnetOutpostManagerArtifact as AbiArtifact,
119
+ BAR: MainnetBARArtifact as AbiArtifact,
120
+ OPP: MainnetOPPArtifact as AbiArtifact,
121
+ OPPCommon: MainnetOPPCommonArtifact as AbiArtifact,
122
+ OPPInbound: MainnetOPPInboundArtifact as AbiArtifact,
123
+ Pretoken: MainnetPretokenArtifact as AbiArtifact,
124
+ Aggregator: MainnetAggregatorArtifact as AbiArtifact,
125
+ EthUsdPriceConsumer: MainnetEthUsdPriceConsumerArtifact as AbiArtifact,
126
+ Pool: MainnetPoolArtifact as AbiArtifact,
127
+ OutpostManagerAuthority: MainnetOutpostManagerAuthorityArtifact as AbiArtifact,
128
+ iodata: MainnetIodataArtifact as AbiArtifact,
129
+ Base58: MainnetBase58Artifact as AbiArtifact,
130
+ sysio_merkle: MainnetSysioMerkleArtifact as AbiArtifact,
131
+ sysio_write: MainnetSysioWriteArtifact as AbiArtifact,
132
+ ERC20: MainnetERC20Artifact as AbiArtifact,
133
+ ERC721: MainnetERC721Artifact as AbiArtifact,
134
+ ERC1155: MainnetERC1155Artifact as AbiArtifact,
135
+ };
136
+
137
+ const HOODI_ARTIFACTS: ArtifactBundle = {
138
+ Accounting: HoodiAccountingArtifact as AbiArtifact,
139
+ DepositManager: HoodiDepositManagerArtifact as AbiArtifact,
140
+ LiqEthToken: HoodiLiqEthArtifact as AbiArtifact,
141
+ StakingModule: HoodiStakingModuleArtifact as AbiArtifact,
142
+ WithdrawalQueue: HoodiWithdrawalQueueArtifact as AbiArtifact,
143
+ WithdrawalVault: HoodiWithdrawalVaultArtifact as AbiArtifact,
144
+ BeaconState: HoodiBeaconStateArtifact as AbiArtifact,
145
+ YieldOracle: HoodiYieldOracleArtifact as AbiArtifact,
146
+ Depositor: HoodiDepositorArtifact as AbiArtifact,
147
+ ReceiptNFT: HoodiReceiptNFTArtifact as AbiArtifact,
148
+ OutpostManager: HoodiOutpostManagerArtifact as AbiArtifact,
149
+ BAR: HoodiBARArtifact as AbiArtifact,
150
+ OPP: HoodiOPPArtifact as AbiArtifact,
151
+ OPPCommon: HoodiOPPCommonArtifact as AbiArtifact,
152
+ OPPInbound: HoodiOPPInboundArtifact as AbiArtifact,
153
+ Pretoken: HoodiPretokenArtifact as AbiArtifact,
154
+ // No hoodi Aggregator artifact currently exists in assets; keep ABI compatibility with mainnet artifact.
155
+ Aggregator: MainnetAggregatorArtifact as AbiArtifact,
156
+ EthUsdPriceConsumer: HoodiEthUsdPriceConsumerArtifact as AbiArtifact,
157
+ Pool: HoodiPoolArtifact as AbiArtifact,
158
+ OutpostManagerAuthority: HoodiOutpostManagerAuthorityArtifact as AbiArtifact,
159
+ iodata: HoodiIodataArtifact as AbiArtifact,
160
+ Base58: HoodiBase58Artifact as AbiArtifact,
161
+ sysio_merkle: HoodiSysioMerkleArtifact as AbiArtifact,
162
+ sysio_write: HoodiSysioWriteArtifact as AbiArtifact,
163
+ ERC20: HoodiERC20Artifact as AbiArtifact,
164
+ ERC721: HoodiERC721Artifact as AbiArtifact,
165
+ ERC1155: HoodiERC1155Artifact as AbiArtifact,
166
+ };
52
167
 
53
168
  // -----------------------------------------------------------------------------
54
169
  // Address books (per-chain)
@@ -93,36 +208,36 @@ export const MAINNET_ADDRESSES: AddressBook = {
93
208
 
94
209
  /**
95
210
  * HOODI TESTNET LATEST
96
- * 1/23/26
211
+ * 3/25/26
97
212
  */
98
213
  export const HOODI_ADDRESSES: AddressBook = {
99
214
  // LiqETH contracts
100
- LiqEthAuthority: '0x3Eb66Bb91F7a022FbABc1619Cb6acce7025Bc41F',
101
- BeaconState: '0x08F879c6D0964E0A17bF688Af23168f654DF372e',
102
- WithdrawalQueue: '0x74aDeD940369baDDb0F36426F23B08499e45Fe18',
103
- LiqEthToken: '0x8C974517D038e2e3b8a1da7b1A026bC8132A4b2e',
104
- Accounting: '0x766CE996B8132b927988c5b2ECAE8108fB1a9307',
105
- DepositManager: '0xEd391dB5DB11B5eDBE08e69A51D16e84293C09a3',
106
- WithdrawalVault: '0xbaBc0D5997283ab9886696A0dEaB8A8093436b48',
107
- StakingModule: '0x4998fBb6Ca5Ee3Db6c339e2962A34791Af643fEa',
215
+ LiqEthAuthority: '0xF2f111CB61fF600A958917bEEc4ae95AB839b0fD',
216
+ BeaconState: '0xe9E05bF63A5a95F45B856400bcFC3b4Bcb332A27',
217
+ WithdrawalQueue: '0x8fB35513ede9847D478B5ecE09524ebA42bf6947',
218
+ LiqEthToken: '0xf24ef96791BAEB825ffadCcC12bd59bf46b1493A',
219
+ Accounting: '0x2f12ECd08cAA2883f227eb6D8718913840c4d536',
220
+ DepositManager: '0x3807b9a0746DD47075B1d7127d82F4413090b5d0',
221
+ WithdrawalVault: '0x5d0A20942e34434A894F7faa45E255dF38DFbbA5',
222
+ StakingModule: '0x98ebf82771524906E0dC79661D41778F88C3A153',
108
223
  // YieldOracle: '0x61Fe311C57dd9a38Fb7B0c5A8ec521452dB25378',
109
224
 
110
225
  // Outpost contracts
111
- OutpostManagerAuthority: '0x3B8705Ba1195AF632b3bd9E46F19348BC828FA3D',
112
- iodata: '0x4aCABbC74a1cA9B0058d9ADAa0E00Af0f4f73212',
113
- Base58: '0x1241F36ff30065deD52d51f0d6524EF971259A12',
114
- sysio_merkle: '0x58ca9b5515266Fd6bF94D5F1268C505b2eC9679c',
115
- ReceiptNFT: '0x03d6bD46cA9F54B8F8bbA21CfAfe717b36cB8593',
116
- EthUsdPriceConsumer: '0xdC2DD993A13b3DD6D255B52285625694bd967c9A',
117
- Pool: '0xd4742757AA61B1Fd3Fcd87980D7D460B12Cd9275',
118
- OutpostManager: '0x38ec2B56cBCeCaFFe28b535517de1a102C3D74E3',
119
- sysio_write: '0x0Ec4C1BaB772958aa3Db27459643bfbE7d92E305',
120
- Pretoken: '0x8c97a51A71640fa411DEfab8feC3401eFfd1a2E4',
121
- BAR: '0xbAFac13ffd3Aa9aEabaaeb6e4C2cF3dFf3479DC0',
122
- OPPCommon: '0x12283a6d4E6cE4A0e8AdB319Fc161c7F4f91EA8F',
123
- OPP: '0x87CE3Fe2CDca39C04aa2c14bbF1E1d9DB6358C4A',
124
- Depositor: '0x5351B30EA4b75bD9be9Fc0048e88F675f7b3Ac2b',
125
- OPPInbound: '0x0B1f7FB1c7f01A9cf490a1387E1E100F2bEA6C6d',
226
+ OutpostManagerAuthority: '0x2297f03dDF927Ab02658722fFF4b56095B9D5715',
227
+ iodata: '0x57513B553fa7b5d6f223eE454f79480168493298',
228
+ Base58: '0x92D738e4615Edf8eF60100286549555ec0117BA7',
229
+ sysio_merkle: '0x1D4f3C6B0632150B44FcF9D3A37B517d70A6eBD4',
230
+ ReceiptNFT: '0x4a896163E39579cA64BD163E769CA5b53fc9c859',
231
+ EthUsdPriceConsumer: '0x069D24345AE78Fb172F3bf1Dc9C397F3DD7FEaed',
232
+ Pool: '0x3b7ecEd59B64FC48cd02997FfDA5A50E4376c750',
233
+ OutpostManager: '0x672256b775BF70f81CeBD5c99cb4F457Fcd5Ba47',
234
+ sysio_write: '0x5a70610632Fc07067F9ECAf1d48d8880f8D7b950',
235
+ Pretoken: '0x4a80082Fe770AD9995Ea95da3Da77C8aDa14FE2C',
236
+ BAR: '0x8E3062455d6818c3273b94A4101a7509BC8BD189',
237
+ OPPCommon: '0xEc6BfA399d37e8F10d730AACA23e25b208386463',
238
+ OPP: '0xe54B0ebFC8F4ECFc0B86C37eC0A2579084F223c1',
239
+ Depositor: '0x4Cd296E02C60b40646f7b02E83514c938280441C',
240
+ OPPInbound: '0x5f16d85B454db90ca716166345d4EAc166793466',
126
241
 
127
242
  // Test-only mock aggregator
128
243
  MockAggregator: '0xFCfc3ddd4CBd9Ad3b3af3A374B8bdA1b66eE6FFF',
@@ -147,118 +262,118 @@ export type ContractConfig = {
147
262
 
148
263
  export type Contracts<T extends string = ContractName> = Record<T, ContractConfig>;
149
264
 
150
- function buildContracts(addresses: AddressBook): Contracts<ContractName> {
265
+ function buildContracts(addresses: AddressBook, artifacts: ArtifactBundle): Contracts<ContractName> {
151
266
  return {
152
267
  // LiqETH Contracts
153
268
  LiqEthAuthority: {
154
269
  address: addresses.LiqEthAuthority,
155
- abi: LiqEthArtifact.abi as JsonFragment[],
270
+ abi: artifacts.LiqEthToken.abi as JsonFragment[],
156
271
  },
157
272
  BeaconState: {
158
273
  address: addresses.BeaconState,
159
- abi: BeaconStateArtifact.abi as JsonFragment[],
274
+ abi: artifacts.BeaconState.abi as JsonFragment[],
160
275
  },
161
276
  WithdrawalQueue: {
162
277
  address: addresses.WithdrawalQueue,
163
- abi: WithdrawalQueueArtifact.abi as JsonFragment[],
278
+ abi: artifacts.WithdrawalQueue.abi as JsonFragment[],
164
279
  },
165
280
  LiqEthToken: {
166
281
  address: addresses.LiqEthToken,
167
- abi: LiqEthArtifact.abi as JsonFragment[],
282
+ abi: artifacts.LiqEthToken.abi as JsonFragment[],
168
283
  },
169
284
  Accounting: {
170
285
  address: addresses.Accounting,
171
- abi: AccountingArtifact.abi as JsonFragment[],
286
+ abi: artifacts.Accounting.abi as JsonFragment[],
172
287
  },
173
288
  DepositManager: {
174
289
  address: addresses.DepositManager,
175
- abi: DepositManagerArtifact.abi as JsonFragment[],
290
+ abi: artifacts.DepositManager.abi as JsonFragment[],
176
291
  },
177
292
  WithdrawalVault: {
178
293
  address: addresses.WithdrawalVault,
179
- abi: WithdrawalVaultArtifact.abi as JsonFragment[],
294
+ abi: artifacts.WithdrawalVault.abi as JsonFragment[],
180
295
  },
181
296
  StakingModule: {
182
297
  address: addresses.StakingModule,
183
- abi: StakingModuleArtifact.abi as JsonFragment[],
298
+ abi: artifacts.StakingModule.abi as JsonFragment[],
184
299
  },
185
300
  // YieldOracle: {
186
301
  // address: addresses.YieldOracle,
187
- // abi: YieldOracleArtifact.abi as JsonFragment[],
302
+ // abi: artifacts.YieldOracle.abi as JsonFragment[],
188
303
  // },
189
304
 
190
305
  // Outpost Contracts
191
306
  OutpostManagerAuthority: {
192
307
  address: addresses.OutpostManagerAuthority,
193
- abi: OutpostManagerAuthorityArtifact.abi as JsonFragment[],
308
+ abi: artifacts.OutpostManagerAuthority.abi as JsonFragment[],
194
309
  },
195
310
  iodata: {
196
311
  address: addresses.iodata,
197
- abi: IodataArtifact.abi as JsonFragment[],
312
+ abi: artifacts.iodata.abi as JsonFragment[],
198
313
  },
199
314
  Base58: {
200
315
  address: addresses.Base58,
201
- abi: Base58Artifact.abi as JsonFragment[],
316
+ abi: artifacts.Base58.abi as JsonFragment[],
202
317
  },
203
318
  sysio_merkle: {
204
319
  address: addresses.sysio_merkle,
205
- abi: sysio_merkleArtifact.abi as JsonFragment[],
320
+ abi: artifacts.sysio_merkle.abi as JsonFragment[],
206
321
  },
207
322
  ReceiptNFT: {
208
323
  address: addresses.ReceiptNFT,
209
- abi: ReceiptNFTArtifact.abi as JsonFragment[],
324
+ abi: artifacts.ReceiptNFT.abi as JsonFragment[],
210
325
  },
211
326
  Pool: {
212
327
  address: addresses.Pool,
213
- abi: PoolArtifact.abi as JsonFragment[],
328
+ abi: artifacts.Pool.abi as JsonFragment[],
214
329
  },
215
330
  OutpostManager: {
216
331
  address: addresses.OutpostManager,
217
- abi: OutpostManagerArtifact.abi as JsonFragment[],
332
+ abi: artifacts.OutpostManager.abi as JsonFragment[],
218
333
  },
219
334
  sysio_write: {
220
335
  address: addresses.sysio_write,
221
- abi: sysio_writeArtifact.abi as JsonFragment[],
336
+ abi: artifacts.sysio_write.abi as JsonFragment[],
222
337
  },
223
338
  EthUsdPriceConsumer: {
224
339
  address: addresses.EthUsdPriceConsumer,
225
- abi: EthUsdPriceConsumerArtifact.abi as JsonFragment[],
340
+ abi: artifacts.EthUsdPriceConsumer.abi as JsonFragment[],
226
341
  },
227
342
  BAR: {
228
343
  address: addresses.BAR,
229
- abi: BARArtifact.abi as JsonFragment[],
344
+ abi: artifacts.BAR.abi as JsonFragment[],
230
345
  },
231
346
  OPPCommon: {
232
347
  address: addresses.OPPCommon,
233
- abi: OPPCommonArtifact.abi as JsonFragment[],
348
+ abi: artifacts.OPPCommon.abi as JsonFragment[],
234
349
  },
235
350
  OPP: {
236
351
  address: addresses.OPP,
237
- abi: OPPArtifact.abi as JsonFragment[],
352
+ abi: artifacts.OPP.abi as JsonFragment[],
238
353
  },
239
354
  Pretoken: {
240
355
  address: addresses.Pretoken,
241
- abi: PretokenArtifact.abi as JsonFragment[],
356
+ abi: artifacts.Pretoken.abi as JsonFragment[],
242
357
  },
243
358
  OPPInbound: {
244
359
  address: addresses.OPPInbound,
245
- abi: OPPInboundArtifact.abi as JsonFragment[],
360
+ abi: artifacts.OPPInbound.abi as JsonFragment[],
246
361
  },
247
362
  Depositor: {
248
363
  address: addresses.Depositor,
249
- abi: DepositorArtifact.abi as JsonFragment[],
364
+ abi: artifacts.Depositor.abi as JsonFragment[],
250
365
  },
251
366
 
252
367
  MockAggregator: {
253
368
  address: addresses.MockAggregator,
254
- abi: AggregatorArtifact.abi as JsonFragment[],
369
+ abi: artifacts.Aggregator.abi as JsonFragment[],
255
370
  },
256
371
  };
257
372
  }
258
373
 
259
374
  export const CONTRACTS_BY_CHAIN: Record<SupportedEvmChainID, Contracts<ContractName>> = {
260
- [EvmChainID.Ethereum]: buildContracts(MAINNET_ADDRESSES),
261
- [EvmChainID.Hoodi]: buildContracts(HOODI_ADDRESSES),
375
+ [EvmChainID.Ethereum]: buildContracts(MAINNET_ADDRESSES, MAINNET_ARTIFACTS),
376
+ [EvmChainID.Hoodi]: buildContracts(HOODI_ADDRESSES, HOODI_ARTIFACTS),
262
377
  };
263
378
 
264
379
  // -----------------------------------------------------------------------------
@@ -274,6 +389,11 @@ export interface ContractOptions {
274
389
  signer?: Signer;
275
390
  }
276
391
 
392
+ const ARTIFACTS_BY_CHAIN: Record<SupportedEvmChainID, ArtifactBundle> = {
393
+ [EvmChainID.Ethereum]: MAINNET_ARTIFACTS,
394
+ [EvmChainID.Hoodi]: HOODI_ARTIFACTS,
395
+ };
396
+
277
397
  export class EthereumContractService {
278
398
  private provider?: providers.Provider;
279
399
  private signer?: Signer;
@@ -351,20 +471,8 @@ export class EthereumContractService {
351
471
  public get omniInterface(): ethers.utils.Interface {
352
472
  const all: any[] = [];
353
473
 
354
- const allArtifacts = [
355
- ERC20Artifact,
356
- ERC721Artifact,
357
- ERC1155Artifact,
358
-
359
- // If you want, you can gradually re-enable protocol ABIs here
360
- // AccountingArtifact,
361
- // DepositManagerArtifact,
362
- // LiqEthArtifact,
363
- // StakingModuleArtifact,
364
- // WithdrawalQueueArtifact,
365
- // WithdrawalVaultArtifact,
366
- // YieldOracleArtifact,
367
- ];
474
+ const artifacts : ArtifactBundle = ARTIFACTS_BY_CHAIN[this.chainId];
475
+ const allArtifacts = Object.values(artifacts);
368
476
 
369
477
  allArtifacts.forEach((artifact) => {
370
478
  if (artifact && artifact.abi) {
@@ -400,4 +508,4 @@ export class EthereumContractService {
400
508
  throw new Error(`Unable to parse error data: ${revertData}`);
401
509
  }
402
510
  }
403
- }
511
+ }
@@ -103,9 +103,9 @@ export class EthereumStakingClient implements IStakingClient {
103
103
  }
104
104
 
105
105
  /**
106
- * Withdraw native ETH from the liqETH protocol via the liqeth safeBurn function, which burns the LiqETH and adds the user to the withdrawal queue.
107
- * @param amount Amount in wei (or something convertible to BigNumber).
108
- * @returns transaction hash
106
+ * List withdrawal queue receipts for a wallet (pending / in-progress exits after safeBurn).
107
+ * @param address Owner to query; defaults to the connected wallet.
108
+ * @returns Withdrawal receipt NFT entries from the protocol view
109
109
  */
110
110
  async getPendingWithdraws(address?: string): Promise<WithdrawReceipt[]> {
111
111
  this.ensureUser();
@@ -114,8 +114,9 @@ export class EthereumStakingClient implements IStakingClient {
114
114
  }
115
115
 
116
116
  /**
117
- * Withdraw native ETH from the liqETH protocol via the liqeth safeBurn function, which burns the LiqETH and adds the user to the withdrawal queue.
118
- * @param tokenId The ID of the withdrawal request NFT
117
+ * Claim native ETH for a matured withdrawal using the WithdrawalQueue NFT token id
118
+ * (via DepositManager.claim after the delay has passed).
119
+ * @param tokenId Withdrawal request / queue NFT token id
119
120
  * @returns transaction hash
120
121
  */
121
122
  async claimWithdraw(tokenId: bigint): Promise<string> {
@@ -148,6 +149,46 @@ export class EthereumStakingClient implements IStakingClient {
148
149
  throw new Error("Method not yet implemented.");
149
150
  }
150
151
 
152
+ /**
153
+ * Deposit ETH to liqETH, then stake liqETH in a single transaction.
154
+ * @param amountWei Amount in wei.
155
+ * @returns transaction hash
156
+ */
157
+ async depositAndStake(amountWei: bigint): Promise<string> {
158
+ this.ensureUser();
159
+ if (!amountWei || amountWei <= BigInt(0))
160
+ throw new Error('Amount must be greater than zero.');
161
+
162
+ const result = await this.stakeClient.performDepositAndStake(BigNumber.from(amountWei));
163
+ return result.txHash;
164
+ }
165
+
166
+ /**
167
+ * Deposit ETH to liqETH, then purchase pretokens in a single transaction.
168
+ * @param amountWei Amount in wei.
169
+ * @returns transaction hash
170
+ */
171
+ async depositAndBuy(amountWei: bigint): Promise<string> {
172
+ this.ensureUser();
173
+ if (!amountWei || amountWei <= BigInt(0))
174
+ throw new Error('Amount must be greater than zero.');
175
+
176
+ const result = await this.stakeClient.performDepositAndPurchase(BigNumber.from(amountWei));
177
+ return result.txHash;
178
+ }
179
+
180
+ /**
181
+ * Unstake liqETH, then request a withdrawal in a single transaction.
182
+ * @param tokenId The ReceiptNFT token ID for the stake position
183
+ * @returns transaction hash
184
+ */
185
+ async unstakeAndWithdraw(tokenId: bigint): Promise<string> {
186
+ this.ensureUser();
187
+
188
+ const result = await this.stakeClient.performUnstakeAndRequestWithdraw(BigNumber.from(tokenId));
189
+ return result.txHash;
190
+ }
191
+
151
192
 
152
193
  /**
153
194
  * ETH Prelaunch function to unstake liqEth
@@ -560,4 +601,4 @@ export class EthereumStakingClient implements IStakingClient {
560
601
  // console.log(`MockAggregator updated ${ageSec}s ago — no update needed`);
561
602
  // }
562
603
  // }
563
- }
604
+ }
@@ -90,7 +90,17 @@ export interface WithdrawnStakeEvent {
90
90
  export interface WithdrawnStakeResult extends Result {
91
91
  /** Parsed WithdrawnStake event, if present */
92
92
  withdrawnstake?: WithdrawnStakeEvent;
93
+ }
94
+
95
+ export interface DepositAndStakeResult extends Result {
96
+ /** Parsed Staked event, if present */
97
+ staked?: StakedEvent;
98
+ }
99
+
100
+ export interface DepositAndPurchaseResult extends Result {
101
+ }
93
102
 
103
+ export interface UnstakeAndWithdrawResult extends Result {
94
104
  }
95
105
 
96
106
  export interface SharesBurnedEvent {
@@ -21,7 +21,7 @@ export type SolanaProgramIds = {
21
21
  LIQSOL_TOKEN: PublicKey;
22
22
  VALIDATOR_LEADERBOARD: PublicKey;
23
23
  TRANSFER_HOOK: PublicKey;
24
- ALT_LOOKUP_TABLE: PublicKey;
24
+ ALT: PublicKey;
25
25
  };
26
26
 
27
27
  const MAINNET_PROGRAM_IDS: SolanaProgramIds = {
@@ -29,7 +29,7 @@ const MAINNET_PROGRAM_IDS: SolanaProgramIds = {
29
29
  LIQSOL_TOKEN: new PublicKey(mainnetLiqSolTokenIDL.address),
30
30
  VALIDATOR_LEADERBOARD: new PublicKey(mainnetValidatorLeaderboardIDL.address),
31
31
  TRANSFER_HOOK: new PublicKey(mainnetTransferHookIDL.address),
32
- ALT_LOOKUP_TABLE: new PublicKey("AQXTHwkdNBEiXeQuVA5uCoxvzgYUmudRxthQY4vWKCPS")
32
+ ALT: new PublicKey("AQXTHwkdNBEiXeQuVA5uCoxvzgYUmudRxthQY4vWKCPS")
33
33
  };
34
34
 
35
35
  const DEVNET_PROGRAM_IDS: SolanaProgramIds = {
@@ -37,7 +37,7 @@ const DEVNET_PROGRAM_IDS: SolanaProgramIds = {
37
37
  LIQSOL_TOKEN: new PublicKey(devnetLiqSolTokenIDL.address),
38
38
  VALIDATOR_LEADERBOARD: new PublicKey(devnetValidatorLeaderboardIDL.address),
39
39
  TRANSFER_HOOK: new PublicKey(devnetTransferHookIDL.address),
40
- ALT_LOOKUP_TABLE: new PublicKey("3MbupRDxUqPtJzoLLmjEYV3dXJdh1jojQrpDEQUqv7xb")
40
+ ALT: new PublicKey("AZQmTbacBuAsJpncg2N2AwcZsLG1Sxeohbau9vjezmTz")
41
41
  };
42
42
 
43
43
  export const PROGRAM_IDS_BY_CHAIN: Record<SupportedSolChainID, SolanaProgramIds> = {