@wireio/stake 0.0.6 → 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 -4590
  3. package/lib/stake.browser.js.map +1 -1
  4. package/lib/stake.d.ts +17899 -5514
  5. package/lib/stake.js +70103 -4900
  6. package/lib/stake.js.map +1 -1
  7. package/lib/stake.m.js +69370 -4590
  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 -71
  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 -41
  504. package/src/utils.ts +0 -9
@@ -0,0 +1,165 @@
1
+ import { BigNumber, ethers } from "ethers";
2
+ import { EthereumContractService } from "../contract";
3
+ import { formatContractErrors, sendOPPFinalize } from "../utils";
4
+
5
+ export class PretokenClient {
6
+ private readonly contractService: EthereumContractService;
7
+
8
+ get contract() { return this.contractService.contract; }
9
+
10
+ constructor(contract: EthereumContractService) {
11
+ this.contractService = contract;
12
+ }
13
+
14
+
15
+
16
+ /**
17
+ * Purchase pretokens by transferring liqETH into the pool (ERC-20) and calling Depositor.purchasePretokensWithLiqETH(amountLiq, buyer).
18
+ * Returns txHash, receipt and parsed PurchasedWithLiqETH event (if present).
19
+ */
20
+ async purchasePretokensWithLiqETH(amountLiq: bigint, buyer: string): Promise<any> {
21
+
22
+ const bal = await this.contract.LiqEthToken.balanceOf(buyer);
23
+ const paused = await this.contract.Depositor.paused();
24
+ if(paused) {
25
+ throw new Error("Error - Depositor is in a paused state");
26
+ }
27
+
28
+ // if current liq balance is less than the requested buy amount, throw an error
29
+ if (bal.lt(amountLiq)) {
30
+ throw new Error(`Balance insufficient for pre-token purchase`);
31
+ }
32
+
33
+ //check that the contract has allowance for the token
34
+ const depositorAddr = this.contract.Depositor.address;
35
+ const allowance = await this.contract.LiqEthToken.allowance(buyer, depositorAddr);
36
+
37
+ // if allowance is less than the requested stake amount, request permission to spend LiqEth
38
+ if (allowance.lt(amountLiq)) {
39
+ const liqWrite = this.contractService.getWrite('LiqEthToken');
40
+
41
+ console.warn(`allowance insufficient (${allowance.toString()} < ${amountLiq.toString()}); sending approve(${depositorAddr}, ${amountLiq.toString()})`);
42
+
43
+ const approveTx = await liqWrite.approve(depositorAddr, amountLiq);
44
+ await approveTx.wait(1);
45
+
46
+ // re-read allowance to ensure approval succeeded
47
+ const newAllowance = await this.contract.LiqEthToken.allowance(buyer, depositorAddr);
48
+ if (newAllowance.lt(amountLiq)) {
49
+ throw new Error('Approval failed or allowance still insufficient after approve');
50
+ }
51
+ }
52
+
53
+ // attempt a simulation of the purchase call
54
+ try {
55
+ const amountLiqBN = BigNumber.from(amountLiq)
56
+ await this.contract.Depositor.callStatic.purchasePretokensWithLiqETH(amountLiqBN, buyer);
57
+ } catch (err: any) {
58
+ console.log('err', err);
59
+
60
+ let errorObj = formatContractErrors(err);
61
+
62
+ // ! TEMP for testing
63
+ if(errorObj.name == "OPP_PreviousEpochUnsent") {
64
+ console.error("OPP Previous Epoch is unsent - trigger OPP finalizeEpoch()")
65
+ await sendOPPFinalize(this.contract.OPP);
66
+ throw new Error(errorObj.name+` - triggering OPP finalizeEpoch() please try again`);
67
+ }
68
+
69
+ throw new Error(errorObj.name ?? errorObj.raw)
70
+ }
71
+
72
+ // attempt the real purchase call
73
+ let tx, receipt;
74
+ try {
75
+ tx = await this.contract.Depositor.purchasePretokensWithLiqETH(amountLiq, buyer);
76
+ receipt = await tx.wait(1);
77
+ } catch (err: any) {
78
+ let errorObj = formatContractErrors(err);
79
+ throw new Error(errorObj.name ?? errorObj.raw)
80
+ }
81
+
82
+
83
+ // Attempt to parse PurchasedWithLiqETH event
84
+ let purchased: any | undefined;
85
+ const ev = receipt.events?.find((e) => e.event === 'PurchasedWithLiqETH' || (e.event && e.event.toString().startsWith('PurchasedWithLiqETH')));
86
+
87
+ if (ev && ev.args) {
88
+ // Event shape: PurchasedWithLiqETH(buyer, amountLiq, ethEqWei, shares, tokenId)
89
+ const args: any = ev.args;
90
+ // try named fields first, fallback to positional
91
+ const evtBuyer = args.buyer ?? args[0];
92
+ const evtAmountLiq = (args.amountLiq ?? args[1]) ? BigNumber.from(args.amountLiq ?? args[1]) : undefined;
93
+ const evtEthEqWei = (args.ethEqWei ?? args[2]) ? BigNumber.from(args.ethEqWei ?? args[2]) : undefined;
94
+ const evtShares = (args.shares ?? args[3]) ? BigNumber.from(args.shares ?? args[3]) : undefined;
95
+ const evtTokenId = (args.tokenId ?? args[4]) ? BigNumber.from(args.tokenId ?? args[4]) : undefined;
96
+
97
+ purchased = {
98
+ buyer: evtBuyer,
99
+ amountLiq: evtAmountLiq,
100
+ ethEqWei: evtEthEqWei,
101
+ shares: evtShares,
102
+ tokenId: evtTokenId,
103
+ };
104
+ }
105
+
106
+ return {
107
+ txHash: tx.hash,
108
+ receipt,
109
+ purchased,
110
+ };
111
+ }
112
+
113
+
114
+
115
+
116
+ /**
117
+ * Purchase pretokens by sending ETH to the Depositor.purchasePretokensWithETH(buyer) payable function.
118
+ * Returns txHash, receipt and parsed PurchasedWithETH event (if present).
119
+ async purchasePretokensWithETH(amountWei: BigNumber, buyer: string): Promise<any> {
120
+ // attempt a simulation of the purchase call
121
+ try {
122
+ await this.contract.Depositor.callStatic.purchasePretokensWithETH(buyer, { value: amountWei });
123
+ } catch (err: any) {
124
+ let errorObj = formatContractErrors(err);
125
+ throw new Error(errorObj.name ?? errorObj.raw)
126
+ }
127
+
128
+ // attempt the real purchase call
129
+ let tx, receipt;
130
+ try {
131
+ tx = await this.contract.Depositor.purchasePretokensWithETH(buyer, { value: amountWei });
132
+ receipt = await tx.wait(1);
133
+ } catch (err: any) {
134
+ let errorObj = formatContractErrors(err);
135
+ throw new Error(errorObj.name ?? errorObj.raw)
136
+ }
137
+
138
+
139
+ // Attempt to parse PurchasedWithETH event
140
+ let purchased: any | undefined;
141
+ const ev = receipt.events?.find((e) => e.event === 'PurchasedWithETH' || e.event === 'PurchasedWithETH(address,uint256,uint256,uint256)');
142
+
143
+ if (ev && ev.args) {
144
+ // event signature: PurchasedWithETH(address indexed user, uint256 ethIn, uint256 shares, uint256 tokenId)
145
+ const { user, ethIn, shares, tokenId } = ev.args as any;
146
+
147
+ purchased = {
148
+ buyer: user,
149
+ amount: BigNumber.from(ethIn),
150
+ shares: BigNumber.from(shares),
151
+ tokenId: BigNumber.from(tokenId),
152
+ };
153
+ }
154
+
155
+ return {
156
+ txHash: tx.hash,
157
+ receipt,
158
+ purchased,
159
+ };
160
+ }
161
+ */
162
+
163
+
164
+
165
+ }
@@ -0,0 +1,199 @@
1
+ import { BigNumber } from "ethers";
2
+ import { preLaunchReceipt } from "../types";
3
+ import { WithdrawReceipt, ReceiptNFTKind } from "../../../types";
4
+ import { EthereumContractService } from "../contract";
5
+
6
+ export class ReceiptClient {
7
+
8
+ private readonly contractService: EthereumContractService;
9
+
10
+ get contract() { return this.contractService.contract; }
11
+
12
+ constructor(contract: EthereumContractService) {
13
+ this.contractService = contract;
14
+ }
15
+
16
+ // NOTE: Stake/pretoken receipts intentionally ignored for withdraw view.
17
+ async allReceipts(address: string): Promise<preLaunchReceipt[]> {
18
+ return this.fetchPreLaunchReceipts(address);
19
+ }
20
+
21
+ async stakeReceipts(address: string): Promise<preLaunchReceipt[]> {
22
+ try {
23
+ const receipts = await this.fetchPreLaunchReceipts(address, ReceiptNFTKind.STAKE);
24
+ return receipts;
25
+ } catch (err) {
26
+ return [];
27
+ }
28
+ }
29
+
30
+ async pretokenReceipts(address: string): Promise<preLaunchReceipt[]> {
31
+ return this.fetchPreLaunchReceipts(address, ReceiptNFTKind.PRETOKEN_PURCHASE);
32
+ }
33
+
34
+ /**
35
+ * Fetch ReceiptNFT data (stake/pretoken) for an address, optionally filtered by kind.
36
+ */
37
+ async fetchPreLaunchReceipts(address: string, type?: ReceiptNFTKind): Promise<preLaunchReceipt[]> {
38
+ const receiptContract = this.contract.ReceiptNFT;
39
+
40
+ const tokenIds = await this.getOwnedReceiptNFTsFor(address);
41
+ const results: preLaunchReceipt[] = [];
42
+
43
+ for (const idBN of tokenIds) {
44
+ try {
45
+ const receiptData = await receiptContract.getReceipt(idBN);
46
+
47
+ if (type !== undefined && receiptData.kind !== type) continue;
48
+
49
+ results.push({
50
+ tokenId: idBN.toBigInt(),
51
+ receipt: {
52
+ account: receiptData.account,
53
+ currency: receiptData.currency,
54
+ kind: receiptData.kind,
55
+ indexAtMint: receiptData.indexAtMint.toBigInt(),
56
+ principal: {
57
+ amount: receiptData.principal.toBigInt(),
58
+ decimals: 18,
59
+ symbol: "LiqETH"
60
+ },
61
+ shares: {
62
+ amount: receiptData.shares.toBigInt(),
63
+ decimals: 18,
64
+ symbol: "LiqETH"
65
+ },
66
+ timestamp: new Date(Number(receiptData.timestamp.toString()) * 1000).toLocaleString(),
67
+ }
68
+ });
69
+ } catch (err) {
70
+ console.warn(`Failed to load receipt for tokenId=${idBN.toString()}`, err);
71
+ continue;
72
+ }
73
+ }
74
+
75
+ return results;
76
+ }
77
+
78
+
79
+ /**
80
+ *
81
+ * @param address (string) to fetch receipts for
82
+ * @returns preLaunchReceipt[]
83
+ */
84
+ async fetchWithdrawReceipts(address: string): Promise<WithdrawReceipt[]> {
85
+ // first figure out which tokenIds this address owns, from events
86
+ const tokenIds = await this.getOwnedWithdrawReceiptsFor(address);
87
+ const results: WithdrawReceipt[] = [];
88
+
89
+ // next fetch on-chain token data just for those ids
90
+ for (const idBN of tokenIds) {
91
+ try {
92
+ const receiptData = await this.contract.WithdrawalQueue.info(idBN);
93
+
94
+ // status: ready if readyAt <= now; otherwise queued
95
+ const readyAtMs = Number(receiptData.readyAt) * 1000;
96
+ const status = readyAtMs <= Date.now() ? 'ready' : 'queued';
97
+
98
+ results.push({
99
+ tokenId: idBN.toBigInt(),
100
+ receipt: {
101
+ amount: {
102
+ amount: receiptData.ethAmount.toBigInt(),
103
+ decimals: 18,
104
+ symbol: "ETH",
105
+ },
106
+ readyAt: readyAtMs,
107
+ chain: 'ETH',
108
+ status,
109
+ }
110
+ });
111
+ } catch (err) {
112
+ // in case of any mismatch or race, just skip this id
113
+ console.warn(`Failed to load receipt for tokenId=${idBN.toString()}`, err);
114
+ continue;
115
+ }
116
+ }
117
+
118
+ return results;
119
+ }
120
+
121
+
122
+
123
+ private async getOwnedWithdrawReceiptsFor(
124
+ owner: string,
125
+ fromBlock = 0,
126
+ toBlock: number | string = "latest"
127
+ ): Promise<BigNumber[]> {
128
+ const contract = this.contract.WithdrawalQueue;
129
+
130
+ // Logs where address received tokens
131
+ const toLogs = await contract.queryFilter(
132
+ contract.filters.Transfer(null, owner),
133
+ fromBlock,
134
+ toBlock
135
+ );
136
+
137
+ // Logs where address sent tokens (including burns from owner → 0)
138
+ const fromLogs = await contract.queryFilter(
139
+ contract.filters.Transfer(owner, null),
140
+ fromBlock,
141
+ toBlock
142
+ );
143
+
144
+ const owned = new Set<string>();
145
+
146
+ // Add all received tokenIds
147
+ for (const e of toLogs) {
148
+ const tokenId = e.args?.tokenId;
149
+ if (!tokenId) continue;
150
+ owned.add(tokenId.toString());
151
+ }
152
+
153
+ // Remove all sent tokenIds
154
+ for (const e of fromLogs) {
155
+ const tokenId = e.args?.tokenId;
156
+ if (!tokenId) continue;
157
+ owned.delete(tokenId.toString());
158
+ }
159
+
160
+ // Convert to BigNumbers
161
+ return Array.from(owned).map((id) => BigNumber.from(id));
162
+ }
163
+
164
+ private async getOwnedReceiptNFTsFor(
165
+ owner: string,
166
+ fromBlock = 0,
167
+ toBlock: number | string = "latest"
168
+ ): Promise<BigNumber[]> {
169
+ const receiptContract = this.contract.ReceiptNFT;
170
+
171
+ const toLogs = await receiptContract.queryFilter(
172
+ receiptContract.filters.Transfer(null, owner),
173
+ fromBlock,
174
+ toBlock
175
+ );
176
+
177
+ const fromLogs = await receiptContract.queryFilter(
178
+ receiptContract.filters.Transfer(owner, null),
179
+ fromBlock,
180
+ toBlock
181
+ );
182
+
183
+ const owned = new Set<string>();
184
+
185
+ for (const e of toLogs) {
186
+ const tokenId = e.args?.tokenId;
187
+ if (!tokenId) continue;
188
+ owned.add(tokenId.toString());
189
+ }
190
+
191
+ for (const e of fromLogs) {
192
+ const tokenId = e.args?.tokenId;
193
+ if (!tokenId) continue;
194
+ owned.delete(tokenId.toString());
195
+ }
196
+
197
+ return Array.from(owned).map((id) => BigNumber.from(id));
198
+ }
199
+ }
@@ -0,0 +1,203 @@
1
+ import { BigNumber, ethers } from "ethers";
2
+ import {
3
+ StakedEvent,
4
+ WithdrawnStakeEvent,
5
+ WithdrawnStakeResult,
6
+ DepositAndStakeResult,
7
+ DepositAndPurchaseResult,
8
+ UnstakeAndWithdrawResult,
9
+ } from "../types";
10
+ import { EthereumContractService } from "../contract";
11
+ import { formatContractErrors } from "../utils";
12
+
13
+ export class StakeClient {
14
+
15
+ private readonly contractService: EthereumContractService;
16
+
17
+ get contract() { return this.contractService.contract; }
18
+
19
+ constructor(contract: EthereumContractService) {
20
+ this.contractService = contract;
21
+ }
22
+
23
+
24
+
25
+ /**
26
+ * Simulate a stake via callStatic
27
+ */
28
+ async simulateStake(amountWei: BigNumber): Promise<void> {
29
+ try {
30
+ await this.contract.Depositor.callStatic.stakeLiqETH(amountWei);
31
+ } catch (err: any) {
32
+ let errorObj = formatContractErrors(err);
33
+ throw new Error(errorObj.name ?? errorObj.raw)
34
+ }
35
+ }
36
+
37
+
38
+
39
+ /**
40
+ *
41
+ * @param amountWei an amount of liqETH (in WEI) to stake to the Outpost
42
+ * @returns txHash (hash of the transaction), receipt, Staked event
43
+ */
44
+ async performStake(amountWei: BigNumber, signerAddress: string): Promise<any> {
45
+ const depositor = this.contract.Depositor.address;
46
+ const liqRead = this.contract.LiqEthToken;
47
+ const bal = await liqRead.balanceOf(signerAddress);
48
+ const allowance = await liqRead.allowance(signerAddress, depositor);
49
+
50
+ const paused = await this.contract.Depositor.paused();
51
+ if(paused) {
52
+ throw new Error("Error - Depositor is in a paused state");
53
+ }
54
+
55
+ if (bal.lt(amountWei)) throw new Error("Insufficient LiqETH balance");
56
+
57
+ // if allowance is less than the requested stake amount, request permission to spend LiqEth
58
+ if (allowance.lt(amountWei)) {
59
+ const liqWrite = this.contractService.getWrite('LiqEthToken');
60
+
61
+ console.warn(`allowance insufficient (${allowance.toString()} < ${amountWei.toString()}); sending approve(${depositor}, ${amountWei.toString()})`);
62
+ const approveTx = await liqWrite.approve(depositor, amountWei);
63
+ await approveTx.wait(1);
64
+
65
+ // re-read allowance to ensure approval succeeded
66
+ const newAllowance = await liqRead.allowance(signerAddress, depositor);
67
+ if (newAllowance.lt(amountWei)) {
68
+ throw new Error('Approval failed or allowance still insufficient after approve');
69
+ }
70
+ }
71
+
72
+
73
+ await this.simulateStake(amountWei);
74
+
75
+
76
+ // send the tx to stake liqeth
77
+ const tx = await this.contract.Depositor.stakeLiqETH(amountWei);
78
+
79
+ // Wait for 1 confirmation
80
+ const receipt = await tx.wait(1);
81
+
82
+ // Parse Staked event if present
83
+ let staked: StakedEvent | undefined;
84
+ const ev = receipt.events?.find((e) => e.event === 'Staked');
85
+
86
+ if (ev && ev.args) {
87
+ const { user, amountLiq, shares, tokenId } = ev.args;
88
+ staked = {
89
+ user,
90
+ amountLiq: BigNumber.from(amountLiq),
91
+ shares: BigNumber.from(shares),
92
+ tokenId: BigNumber.from(tokenId)
93
+ };
94
+ }
95
+
96
+ return {
97
+ txHash: tx.hash,
98
+ receipt,
99
+ staked,
100
+ };
101
+ }
102
+
103
+
104
+
105
+ /**
106
+ * Burn the STAKE ReceiptNFT and send principal liqETH to `recipient` (Depositor.withdrawStake).
107
+ * @param tokenId ReceiptNFT token id for the stake position
108
+ * @param recipient Address that receives the liqETH from the pool
109
+ * @returns txHash, receipt, and parsed WithdrawnStake event if present
110
+ */
111
+ async performWithdrawStake(tokenId: BigNumber, recipient: string): Promise<WithdrawnStakeResult> {
112
+ // Send the payable tx
113
+ const tx = await this.contract.Depositor.withdrawStake(tokenId, recipient);
114
+
115
+ // Wait for 1 confirmation
116
+ const receipt = await tx.wait(1);
117
+
118
+ // Parse WithdrawnStake event if present
119
+ let withdrawnstake: WithdrawnStakeEvent | undefined;
120
+ const ev = receipt.events?.find((e) => e.event === 'WithdrawnStake');
121
+
122
+ if (ev && ev.args) {
123
+ const { user, tokenOut, tokenId } = ev.args;
124
+ withdrawnstake = {
125
+ user: user,
126
+ tokenOut: BigNumber.from(tokenOut),
127
+ tokenId: BigNumber.from(tokenId)
128
+ };
129
+ }
130
+
131
+ return {
132
+ txHash: tx.hash,
133
+ receipt,
134
+ withdrawnstake,
135
+ };
136
+ }
137
+
138
+ /**
139
+ * Deposit ETH to liqETH, then stake liqETH in a single transaction.
140
+ * @param amountWei Amount of ETH in wei to deposit and stake
141
+ * @returns txHash (hash of the transaction), receipt, Staked event
142
+ */
143
+ async performDepositAndStake(amountWei: BigNumber): Promise<DepositAndStakeResult> {
144
+ try {
145
+ await this.contract.Depositor.callStatic.depositAndStake({ value: amountWei });
146
+ } catch (err: any) {
147
+ let errorObj = formatContractErrors(err);
148
+ throw new Error(errorObj.name ?? errorObj.raw);
149
+ }
150
+
151
+ const tx = await this.contract.Depositor.depositAndStake({ value: amountWei });
152
+ const receipt = await tx.wait(1);
153
+ let staked: StakedEvent | undefined;
154
+ const ev = receipt.events?.find((e: any) => e.event === 'Staked');
155
+ if (ev && ev.args) {
156
+ const { user, amountLiq, shares, tokenId } = ev.args;
157
+ staked = {
158
+ user,
159
+ amountLiq: BigNumber.from(amountLiq),
160
+ shares: BigNumber.from(shares),
161
+ tokenId: BigNumber.from(tokenId),
162
+ };
163
+ }
164
+
165
+ return { txHash: tx.hash, receipt, staked };
166
+ }
167
+
168
+ /**
169
+ * Deposit ETH to liqETH, then purchase pretokens in a single transaction.
170
+ * @param amountWei Amount of ETH in wei to deposit and use for pretoken purchase
171
+ * @returns txHash (hash of the transaction), receipt
172
+ */
173
+ async performDepositAndPurchase(amountWei: BigNumber): Promise<DepositAndPurchaseResult> {
174
+ try {
175
+ await this.contract.Depositor.callStatic.depositAndPurchase({ value: amountWei });
176
+ } catch (err: any) {
177
+ let errorObj = formatContractErrors(err);
178
+ throw new Error(errorObj.name ?? errorObj.raw);
179
+ }
180
+
181
+ const tx = await this.contract.Depositor.depositAndPurchase({ value: amountWei });
182
+ const receipt = await tx.wait(1);
183
+ return { txHash: tx.hash, receipt };
184
+ }
185
+
186
+ /**
187
+ * Unstake liqETH, then request a withdrawal in a single transaction.
188
+ * @param tokenId The ReceiptNFT token ID for the stake position
189
+ * @returns txHash (hash of the transaction), receipt
190
+ */
191
+ async performUnstakeAndRequestWithdraw(tokenId: BigNumber): Promise<UnstakeAndWithdrawResult> {
192
+ try {
193
+ await this.contract.Depositor.callStatic.unstakeAndRequestWithdraw(tokenId);
194
+ } catch (err: any) {
195
+ let errorObj = formatContractErrors(err);
196
+ throw new Error(errorObj.name ?? errorObj.raw);
197
+ }
198
+
199
+ const tx = await this.contract.Depositor.unstakeAndRequestWithdraw(tokenId);
200
+ const receipt = await tx.wait(1);
201
+ return { txHash: tx.hash, receipt };
202
+ }
203
+ }
@@ -0,0 +1,61 @@
1
+ import { BigNumber, ethers } from "ethers";
2
+ import { ClaimedEvent, DepositEvent, DepositResult, SharesBurnedEvent, ValidatorDepositedEvent } from "../types";
3
+ import { EthereumContractService } from "../contract";
4
+ import { formatContractErrors } from "../utils";
5
+
6
+ export class ValidatorClient {
7
+
8
+ private readonly contractService: EthereumContractService;
9
+
10
+ get contract() { return this.contractService.contract; }
11
+
12
+ constructor(contract: EthereumContractService) {
13
+ this.contractService = contract;
14
+ }
15
+
16
+
17
+ /**
18
+ *
19
+ * @param amountWei an amount of liqETH (in WEI) to stake to the Outpost
20
+ * @returns txHash (hash of the transaction), receipt, Staked event
21
+ */
22
+ async validatorDepositAndLockBond(): Promise<any> {
23
+ const amountWei: BigNumber = ethers.utils.parseEther("32");
24
+
25
+ // simulate call first
26
+ try {
27
+ await this.contract.DepositManager.callStatic.validatorDepositAndLockBond({ value: amountWei });
28
+ } catch (err: any) {
29
+ let errorObj = formatContractErrors(err);
30
+ throw new Error(errorObj.name ?? errorObj.raw)
31
+ }
32
+
33
+
34
+ // send the tx to stake liqeth
35
+ const tx = await this.contract.DepositManager.validatorDepositAndLockBond({ value: amountWei });
36
+
37
+ // Wait for 1 confirmation
38
+ const receipt = await tx.wait(1);
39
+
40
+ // Parse ValidatorDeposited event if present
41
+ let staked: ValidatorDepositedEvent | undefined;
42
+ const ev = receipt.events?.find((e) => e.event === 'Staked');
43
+
44
+ if (ev && ev.args) {
45
+ const { sender, amount, shares } = ev.args;
46
+ staked = {
47
+ sender,
48
+ amount: BigNumber.from(amount),
49
+ shares: BigNumber.from(shares),
50
+ };
51
+ }
52
+
53
+ return {
54
+ txHash: tx.hash,
55
+ receipt,
56
+ staked,
57
+ };
58
+ }
59
+
60
+
61
+ }