@wireio/stake 2.5.2 → 2.6.0

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 +28102 -730
  2. package/lib/stake.browser.js.map +1 -1
  3. package/lib/stake.d.ts +53 -11
  4. package/lib/stake.js +28126 -730
  5. package/lib/stake.js.map +1 -1
  6. package/lib/stake.m.js +28102 -730
  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 +189 -81
  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
@@ -0,0 +1,449 @@
1
+ {
2
+ "_format": "hh-sol-artifact-1",
3
+ "contractName": "ERC721Token",
4
+ "sourceName": "contracts/token/ERC721Token.sol",
5
+ "abi": [
6
+ {
7
+ "inputs": [],
8
+ "stateMutability": "nonpayable",
9
+ "type": "constructor"
10
+ },
11
+ {
12
+ "inputs": [
13
+ {
14
+ "internalType": "address",
15
+ "name": "sender",
16
+ "type": "address"
17
+ },
18
+ {
19
+ "internalType": "uint256",
20
+ "name": "tokenId",
21
+ "type": "uint256"
22
+ },
23
+ {
24
+ "internalType": "address",
25
+ "name": "owner",
26
+ "type": "address"
27
+ }
28
+ ],
29
+ "name": "ERC721IncorrectOwner",
30
+ "type": "error"
31
+ },
32
+ {
33
+ "inputs": [
34
+ {
35
+ "internalType": "address",
36
+ "name": "operator",
37
+ "type": "address"
38
+ },
39
+ {
40
+ "internalType": "uint256",
41
+ "name": "tokenId",
42
+ "type": "uint256"
43
+ }
44
+ ],
45
+ "name": "ERC721InsufficientApproval",
46
+ "type": "error"
47
+ },
48
+ {
49
+ "inputs": [
50
+ {
51
+ "internalType": "address",
52
+ "name": "approver",
53
+ "type": "address"
54
+ }
55
+ ],
56
+ "name": "ERC721InvalidApprover",
57
+ "type": "error"
58
+ },
59
+ {
60
+ "inputs": [
61
+ {
62
+ "internalType": "address",
63
+ "name": "operator",
64
+ "type": "address"
65
+ }
66
+ ],
67
+ "name": "ERC721InvalidOperator",
68
+ "type": "error"
69
+ },
70
+ {
71
+ "inputs": [
72
+ {
73
+ "internalType": "address",
74
+ "name": "owner",
75
+ "type": "address"
76
+ }
77
+ ],
78
+ "name": "ERC721InvalidOwner",
79
+ "type": "error"
80
+ },
81
+ {
82
+ "inputs": [
83
+ {
84
+ "internalType": "address",
85
+ "name": "receiver",
86
+ "type": "address"
87
+ }
88
+ ],
89
+ "name": "ERC721InvalidReceiver",
90
+ "type": "error"
91
+ },
92
+ {
93
+ "inputs": [
94
+ {
95
+ "internalType": "address",
96
+ "name": "sender",
97
+ "type": "address"
98
+ }
99
+ ],
100
+ "name": "ERC721InvalidSender",
101
+ "type": "error"
102
+ },
103
+ {
104
+ "inputs": [
105
+ {
106
+ "internalType": "uint256",
107
+ "name": "tokenId",
108
+ "type": "uint256"
109
+ }
110
+ ],
111
+ "name": "ERC721NonexistentToken",
112
+ "type": "error"
113
+ },
114
+ {
115
+ "anonymous": false,
116
+ "inputs": [
117
+ {
118
+ "indexed": true,
119
+ "internalType": "address",
120
+ "name": "owner",
121
+ "type": "address"
122
+ },
123
+ {
124
+ "indexed": true,
125
+ "internalType": "address",
126
+ "name": "approved",
127
+ "type": "address"
128
+ },
129
+ {
130
+ "indexed": true,
131
+ "internalType": "uint256",
132
+ "name": "tokenId",
133
+ "type": "uint256"
134
+ }
135
+ ],
136
+ "name": "Approval",
137
+ "type": "event"
138
+ },
139
+ {
140
+ "anonymous": false,
141
+ "inputs": [
142
+ {
143
+ "indexed": true,
144
+ "internalType": "address",
145
+ "name": "owner",
146
+ "type": "address"
147
+ },
148
+ {
149
+ "indexed": true,
150
+ "internalType": "address",
151
+ "name": "operator",
152
+ "type": "address"
153
+ },
154
+ {
155
+ "indexed": false,
156
+ "internalType": "bool",
157
+ "name": "approved",
158
+ "type": "bool"
159
+ }
160
+ ],
161
+ "name": "ApprovalForAll",
162
+ "type": "event"
163
+ },
164
+ {
165
+ "anonymous": false,
166
+ "inputs": [
167
+ {
168
+ "indexed": true,
169
+ "internalType": "address",
170
+ "name": "from",
171
+ "type": "address"
172
+ },
173
+ {
174
+ "indexed": true,
175
+ "internalType": "address",
176
+ "name": "to",
177
+ "type": "address"
178
+ },
179
+ {
180
+ "indexed": true,
181
+ "internalType": "uint256",
182
+ "name": "tokenId",
183
+ "type": "uint256"
184
+ }
185
+ ],
186
+ "name": "Transfer",
187
+ "type": "event"
188
+ },
189
+ {
190
+ "inputs": [
191
+ {
192
+ "internalType": "address",
193
+ "name": "to",
194
+ "type": "address"
195
+ },
196
+ {
197
+ "internalType": "uint256",
198
+ "name": "tokenId",
199
+ "type": "uint256"
200
+ }
201
+ ],
202
+ "name": "approve",
203
+ "outputs": [],
204
+ "stateMutability": "nonpayable",
205
+ "type": "function"
206
+ },
207
+ {
208
+ "inputs": [
209
+ {
210
+ "internalType": "address",
211
+ "name": "owner",
212
+ "type": "address"
213
+ }
214
+ ],
215
+ "name": "balanceOf",
216
+ "outputs": [
217
+ {
218
+ "internalType": "uint256",
219
+ "name": "",
220
+ "type": "uint256"
221
+ }
222
+ ],
223
+ "stateMutability": "view",
224
+ "type": "function"
225
+ },
226
+ {
227
+ "inputs": [
228
+ {
229
+ "internalType": "uint256",
230
+ "name": "tokenId",
231
+ "type": "uint256"
232
+ }
233
+ ],
234
+ "name": "getApproved",
235
+ "outputs": [
236
+ {
237
+ "internalType": "address",
238
+ "name": "",
239
+ "type": "address"
240
+ }
241
+ ],
242
+ "stateMutability": "view",
243
+ "type": "function"
244
+ },
245
+ {
246
+ "inputs": [
247
+ {
248
+ "internalType": "address",
249
+ "name": "owner",
250
+ "type": "address"
251
+ },
252
+ {
253
+ "internalType": "address",
254
+ "name": "operator",
255
+ "type": "address"
256
+ }
257
+ ],
258
+ "name": "isApprovedForAll",
259
+ "outputs": [
260
+ {
261
+ "internalType": "bool",
262
+ "name": "",
263
+ "type": "bool"
264
+ }
265
+ ],
266
+ "stateMutability": "view",
267
+ "type": "function"
268
+ },
269
+ {
270
+ "inputs": [],
271
+ "name": "name",
272
+ "outputs": [
273
+ {
274
+ "internalType": "string",
275
+ "name": "",
276
+ "type": "string"
277
+ }
278
+ ],
279
+ "stateMutability": "view",
280
+ "type": "function"
281
+ },
282
+ {
283
+ "inputs": [
284
+ {
285
+ "internalType": "uint256",
286
+ "name": "tokenId",
287
+ "type": "uint256"
288
+ }
289
+ ],
290
+ "name": "ownerOf",
291
+ "outputs": [
292
+ {
293
+ "internalType": "address",
294
+ "name": "",
295
+ "type": "address"
296
+ }
297
+ ],
298
+ "stateMutability": "view",
299
+ "type": "function"
300
+ },
301
+ {
302
+ "inputs": [
303
+ {
304
+ "internalType": "address",
305
+ "name": "from",
306
+ "type": "address"
307
+ },
308
+ {
309
+ "internalType": "address",
310
+ "name": "to",
311
+ "type": "address"
312
+ },
313
+ {
314
+ "internalType": "uint256",
315
+ "name": "tokenId",
316
+ "type": "uint256"
317
+ }
318
+ ],
319
+ "name": "safeTransferFrom",
320
+ "outputs": [],
321
+ "stateMutability": "nonpayable",
322
+ "type": "function"
323
+ },
324
+ {
325
+ "inputs": [
326
+ {
327
+ "internalType": "address",
328
+ "name": "from",
329
+ "type": "address"
330
+ },
331
+ {
332
+ "internalType": "address",
333
+ "name": "to",
334
+ "type": "address"
335
+ },
336
+ {
337
+ "internalType": "uint256",
338
+ "name": "tokenId",
339
+ "type": "uint256"
340
+ },
341
+ {
342
+ "internalType": "bytes",
343
+ "name": "data",
344
+ "type": "bytes"
345
+ }
346
+ ],
347
+ "name": "safeTransferFrom",
348
+ "outputs": [],
349
+ "stateMutability": "nonpayable",
350
+ "type": "function"
351
+ },
352
+ {
353
+ "inputs": [
354
+ {
355
+ "internalType": "address",
356
+ "name": "operator",
357
+ "type": "address"
358
+ },
359
+ {
360
+ "internalType": "bool",
361
+ "name": "approved",
362
+ "type": "bool"
363
+ }
364
+ ],
365
+ "name": "setApprovalForAll",
366
+ "outputs": [],
367
+ "stateMutability": "nonpayable",
368
+ "type": "function"
369
+ },
370
+ {
371
+ "inputs": [
372
+ {
373
+ "internalType": "bytes4",
374
+ "name": "interfaceId",
375
+ "type": "bytes4"
376
+ }
377
+ ],
378
+ "name": "supportsInterface",
379
+ "outputs": [
380
+ {
381
+ "internalType": "bool",
382
+ "name": "",
383
+ "type": "bool"
384
+ }
385
+ ],
386
+ "stateMutability": "view",
387
+ "type": "function"
388
+ },
389
+ {
390
+ "inputs": [],
391
+ "name": "symbol",
392
+ "outputs": [
393
+ {
394
+ "internalType": "string",
395
+ "name": "",
396
+ "type": "string"
397
+ }
398
+ ],
399
+ "stateMutability": "view",
400
+ "type": "function"
401
+ },
402
+ {
403
+ "inputs": [
404
+ {
405
+ "internalType": "uint256",
406
+ "name": "tokenId",
407
+ "type": "uint256"
408
+ }
409
+ ],
410
+ "name": "tokenURI",
411
+ "outputs": [
412
+ {
413
+ "internalType": "string",
414
+ "name": "",
415
+ "type": "string"
416
+ }
417
+ ],
418
+ "stateMutability": "view",
419
+ "type": "function"
420
+ },
421
+ {
422
+ "inputs": [
423
+ {
424
+ "internalType": "address",
425
+ "name": "from",
426
+ "type": "address"
427
+ },
428
+ {
429
+ "internalType": "address",
430
+ "name": "to",
431
+ "type": "address"
432
+ },
433
+ {
434
+ "internalType": "uint256",
435
+ "name": "tokenId",
436
+ "type": "uint256"
437
+ }
438
+ ],
439
+ "name": "transferFrom",
440
+ "outputs": [],
441
+ "stateMutability": "nonpayable",
442
+ "type": "function"
443
+ }
444
+ ],
445
+ "bytecode": "0x6080346103bf576040906001600160401b03818301818111838210176103a957835260098252602090682a32b9ba2a37b5b2b760b91b82840152835191848301838110838211176103a95785526003918284526205343560ec1b8285015284518181116103a9576000948554916001978884811c9416801561039f575b8685101461038b578190601f9485811161033d575b5086908583116001146102df5789926102d4575b505060001982881b1c191690881b1786555b80519283116102c05786548781811c911680156102b6575b858210146102a25790818385949311610252575b50849183116001146101f45786926101e9575b505060001982851b1c191690851b1784555b33156101d1578280526002808252858420546001600160a01b03169485151593919291846101a6575b3386528252868520908154019055838052528382203360018060a01b03198254161790558184519333907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8380a4610191578251610b3090816103c58239f35b6339e3563760e11b8252600482015260249150fd5b6004835287862080546001600160a01b03191690558686528083528786208054600019019055610131565b8451633250574960e11b815260048101849052602490fd5b0151905038806100f6565b8787528487208894509190601f198416885b8782821061023c5750508411610224575b505050811b018455610108565b015160001983871b60f8161c19169055388080610217565b8385015186558b97909501949384019301610206565b909192508787528487208380860160051c820192878710610299575b9186958b929594930160051c01915b82811061028b5750506100e3565b8981558695508a910161027d565b9250819261026e565b634e487b7160e01b87526022600452602487fd5b90607f16906100cf565b634e487b7160e01b86526041600452602486fd5b0151905038806100a5565b898052878a208b94509190601f1984168b5b8a828210610327575050841161030f575b505050811b0186556100b7565b0151600019838a1b60f8161c19169055388080610302565b8385015186558e979095019493840193016102f1565b9091508880528689208580850160051c820192898610610382575b918c91869594930160051c01915b828110610374575050610091565b8b81558594508c9101610366565b92508192610358565b634e487b7160e01b88526022600452602488fd5b93607f169361007c565b634e487b7160e01b600052604160045260246000fd5b600080fdfe608060408181526004918236101561001657600080fd5b600092833560e01c91826301ffc9a7146106505750816306fdde0314610583578163081812fc14610547578163095ea7b31461046a57816323b872dd1461045257816342842e0e146104295781636352211e146103f857816370a08231146103a357816395d89b4114610286578163a22cb465146101e4578163b88d4fde14610156578163c87b56dd14610104575063e985e9c5146100b457600080fd5b3461010057806003193601126101005760ff816020936100d26106fb565b6100da610716565b6001600160a01b0391821683526005875283832091168252855220549151911615158152f35b5080fd5b838334610100576020366003190112610100576101246101529335610abf565b5081815161013181610761565b5280519161013e83610761565b8252519182916020835260208301906106bb565b0390f35b919050346101e05760803660031901126101e0576101726106fb565b61017a610716565b846064359467ffffffffffffffff8611610100573660238701121561010057850135946101b26101a9876107b5565b95519586610793565b858552366024878301011161010057856101dd9660246020930183880137850101526044359161096a565b80f35b8280fd5b919050346101e057806003193601126101e0576101ff6106fb565b9060243591821515809303610282576001600160a01b031692831561026d5750338452600560205280842083855260205280842060ff1981541660ff8416179055519081527f17307eab39ab6107e8899845ad3d59bd9653f200f220920489ca2b5937696c3160203392a380f35b836024925191630b61174360e31b8352820152fd5b8480fd5b8284346103a057806003193601126103a05781519181600192600154938460011c9160018616958615610396575b6020968785108114610383578899509688969785829a52918260001461035c575050600114610300575b50505061015292916102f1910385610793565b519282849384528301906106bb565b9190869350600183527fb10e2d527612073b26eecdfd717e6a320cf44b4afac2b0732d9fcbe2b7fa0cf65b82841061034457505050820101816102f16101526102de565b8054848a01860152889550879490930192810161032b565b60ff19168782015293151560051b860190930193508492506102f1915061015290506102de565b634e487b7160e01b835260228a52602483fd5b92607f16926102b4565b80fd5b8284346103a05760203660031901126103a0576001600160a01b036103c66106fb565b169283156103e35750806020938392526003845220549051908152f35b91516322718ad960e21b815291820152602490fd5b8284346103a05760203660031901126103a0575061041860209235610abf565b90516001600160a01b039091168152f35b505034610100576101dd9061043d3661072c565b9192519261044a84610761565b85845261096a565b83346103a0576101dd6104643661072c565b916107d1565b919050346101e057806003193601126101e0576104856106fb565b9160243561049281610abf565b33151580610534575b8061050b575b6104f5576001600160a01b039485169482918691167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b9258880a48452602052822080546001600160a01b031916909117905580f35b835163a9fbf51f60e01b81523381850152602490fd5b506001600160a01b03811686526005602090815284872033885290528386205460ff16156104a1565b506001600160a01b03811633141561049b565b9050346101e05760203660031901126101e05791826020933561056981610abf565b50825283528190205490516001600160a01b039091168152f35b8284346103a057806003193601126103a0578151918182549260018460011c9160018616958615610646575b6020968785108114610383578899509688969785829a52918260001461035c5750506001146105eb5750505061015292916102f1910385610793565b91908693508280527f290decd9548b62a8d60345a988386fc84ba6bc95484008f6362f93160ef3e5635b82841061062e57505050820101816102f16101526102de565b8054848a018601528895508794909301928101610615565b92607f16926105af565b8491346101e05760203660031901126101e0573563ffffffff60e01b81168091036101e057602092506380ac58cd60e01b81149081156106aa575b8115610699575b5015158152f35b6301ffc9a760e01b14905083610692565b635b5e139f60e01b8114915061068b565b919082519283825260005b8481106106e7575050826000602080949584010152601f8019910116010190565b6020818301810151848301820152016106c6565b600435906001600160a01b038216820361071157565b600080fd5b602435906001600160a01b038216820361071157565b6060906003190112610711576001600160a01b0390600435828116810361071157916024359081168103610711579060443590565b6020810190811067ffffffffffffffff82111761077d57604052565b634e487b7160e01b600052604160045260246000fd5b90601f8019910116810190811067ffffffffffffffff82111761077d57604052565b67ffffffffffffffff811161077d57601f01601f191660200190565b916001600160a01b03918216918215610951576000938285528260209460028652604095848789205416968791331515806108bb575b509060027fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef928461088c575b858c5260038152828c2080546001019055868c5252808a2080546001600160a01b03191685179055519880a41680830361086d5750505050565b6364283d7b60e01b845260048401526024830152604482015260649150fd5b868c5260048152828c2080546001600160a01b0319169055848c5260038152828c208054600019019055610833565b91939450915080610910575b156108d757859291879138610807565b5084866108f4576024915190637e27328960e01b82526004820152fd5b604491519063177e802f60e01b82523360048301526024820152fd5b503387148015610935575b806108c75750858852600481523385838a205416146108c7565b5086885260058152818820338952815260ff828920541661091b565b604051633250574960e11b815260006004820152602490fd5b9290926109788385836107d1565b833b610985575b50505050565b604051630a85bd0160e11b8082523360048301526001600160a01b03928316602483015260448201949094526080606482015294931692602092909185906109d19060848301906106bb565b039483816000978189895af1869181610a7b575b50610a46575050503d600014610a3d573d6109ff816107b5565b90610a0d6040519283610793565b81528093823d92013e5b82519283610a3857604051633250574960e11b815260048101849052602490fd5b019050fd5b60609250610a17565b919450915063ffffffff60e01b1603610a6357503880808061097f565b60249060405190633250574960e11b82526004820152fd5b9091508481813d8311610ab8575b610a938183610793565b81010312610ab457516001600160e01b031981168103610ab45790386109e5565b8680fd5b503d610a89565b6000818152600260205260409020546001600160a01b0316908115610ae2575090565b60249060405190637e27328960e01b82526004820152fdfea264697066735822122044235653b73457193b8d7b6102b48056d30e5fbb4bd4af7fe5e9f92b11d1c41c64736f6c63430008190033",
446
+ "deployedBytecode": "0x608060408181526004918236101561001657600080fd5b600092833560e01c91826301ffc9a7146106505750816306fdde0314610583578163081812fc14610547578163095ea7b31461046a57816323b872dd1461045257816342842e0e146104295781636352211e146103f857816370a08231146103a357816395d89b4114610286578163a22cb465146101e4578163b88d4fde14610156578163c87b56dd14610104575063e985e9c5146100b457600080fd5b3461010057806003193601126101005760ff816020936100d26106fb565b6100da610716565b6001600160a01b0391821683526005875283832091168252855220549151911615158152f35b5080fd5b838334610100576020366003190112610100576101246101529335610abf565b5081815161013181610761565b5280519161013e83610761565b8252519182916020835260208301906106bb565b0390f35b919050346101e05760803660031901126101e0576101726106fb565b61017a610716565b846064359467ffffffffffffffff8611610100573660238701121561010057850135946101b26101a9876107b5565b95519586610793565b858552366024878301011161010057856101dd9660246020930183880137850101526044359161096a565b80f35b8280fd5b919050346101e057806003193601126101e0576101ff6106fb565b9060243591821515809303610282576001600160a01b031692831561026d5750338452600560205280842083855260205280842060ff1981541660ff8416179055519081527f17307eab39ab6107e8899845ad3d59bd9653f200f220920489ca2b5937696c3160203392a380f35b836024925191630b61174360e31b8352820152fd5b8480fd5b8284346103a057806003193601126103a05781519181600192600154938460011c9160018616958615610396575b6020968785108114610383578899509688969785829a52918260001461035c575050600114610300575b50505061015292916102f1910385610793565b519282849384528301906106bb565b9190869350600183527fb10e2d527612073b26eecdfd717e6a320cf44b4afac2b0732d9fcbe2b7fa0cf65b82841061034457505050820101816102f16101526102de565b8054848a01860152889550879490930192810161032b565b60ff19168782015293151560051b860190930193508492506102f1915061015290506102de565b634e487b7160e01b835260228a52602483fd5b92607f16926102b4565b80fd5b8284346103a05760203660031901126103a0576001600160a01b036103c66106fb565b169283156103e35750806020938392526003845220549051908152f35b91516322718ad960e21b815291820152602490fd5b8284346103a05760203660031901126103a0575061041860209235610abf565b90516001600160a01b039091168152f35b505034610100576101dd9061043d3661072c565b9192519261044a84610761565b85845261096a565b83346103a0576101dd6104643661072c565b916107d1565b919050346101e057806003193601126101e0576104856106fb565b9160243561049281610abf565b33151580610534575b8061050b575b6104f5576001600160a01b039485169482918691167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b9258880a48452602052822080546001600160a01b031916909117905580f35b835163a9fbf51f60e01b81523381850152602490fd5b506001600160a01b03811686526005602090815284872033885290528386205460ff16156104a1565b506001600160a01b03811633141561049b565b9050346101e05760203660031901126101e05791826020933561056981610abf565b50825283528190205490516001600160a01b039091168152f35b8284346103a057806003193601126103a0578151918182549260018460011c9160018616958615610646575b6020968785108114610383578899509688969785829a52918260001461035c5750506001146105eb5750505061015292916102f1910385610793565b91908693508280527f290decd9548b62a8d60345a988386fc84ba6bc95484008f6362f93160ef3e5635b82841061062e57505050820101816102f16101526102de565b8054848a018601528895508794909301928101610615565b92607f16926105af565b8491346101e05760203660031901126101e0573563ffffffff60e01b81168091036101e057602092506380ac58cd60e01b81149081156106aa575b8115610699575b5015158152f35b6301ffc9a760e01b14905083610692565b635b5e139f60e01b8114915061068b565b919082519283825260005b8481106106e7575050826000602080949584010152601f8019910116010190565b6020818301810151848301820152016106c6565b600435906001600160a01b038216820361071157565b600080fd5b602435906001600160a01b038216820361071157565b6060906003190112610711576001600160a01b0390600435828116810361071157916024359081168103610711579060443590565b6020810190811067ffffffffffffffff82111761077d57604052565b634e487b7160e01b600052604160045260246000fd5b90601f8019910116810190811067ffffffffffffffff82111761077d57604052565b67ffffffffffffffff811161077d57601f01601f191660200190565b916001600160a01b03918216918215610951576000938285528260209460028652604095848789205416968791331515806108bb575b509060027fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef928461088c575b858c5260038152828c2080546001019055868c5252808a2080546001600160a01b03191685179055519880a41680830361086d5750505050565b6364283d7b60e01b845260048401526024830152604482015260649150fd5b868c5260048152828c2080546001600160a01b0319169055848c5260038152828c208054600019019055610833565b91939450915080610910575b156108d757859291879138610807565b5084866108f4576024915190637e27328960e01b82526004820152fd5b604491519063177e802f60e01b82523360048301526024820152fd5b503387148015610935575b806108c75750858852600481523385838a205416146108c7565b5086885260058152818820338952815260ff828920541661091b565b604051633250574960e11b815260006004820152602490fd5b9290926109788385836107d1565b833b610985575b50505050565b604051630a85bd0160e11b8082523360048301526001600160a01b03928316602483015260448201949094526080606482015294931692602092909185906109d19060848301906106bb565b039483816000978189895af1869181610a7b575b50610a46575050503d600014610a3d573d6109ff816107b5565b90610a0d6040519283610793565b81528093823d92013e5b82519283610a3857604051633250574960e11b815260048101849052602490fd5b019050fd5b60609250610a17565b919450915063ffffffff60e01b1603610a6357503880808061097f565b60249060405190633250574960e11b82526004820152fd5b9091508481813d8311610ab8575b610a938183610793565b81010312610ab457516001600160e01b031981168103610ab45790386109e5565b8680fd5b503d610a89565b6000818152600260205260409020546001600160a01b0316908115610ae2575090565b60249060405190637e27328960e01b82526004820152fdfea264697066735822122044235653b73457193b8d7b6102b48056d30e5fbb4bd4af7fe5e9f92b11d1c41c64736f6c63430008190033",
447
+ "linkReferences": {},
448
+ "deployedLinkReferences": {}
449
+ }
@@ -1,5 +1,12 @@
1
1
  import { BigNumber, ethers } from "ethers";
2
- import { StakedEvent, WithdrawnStakeEvent, WithdrawnStakeResult } from "../types";
2
+ import {
3
+ StakedEvent,
4
+ WithdrawnStakeEvent,
5
+ WithdrawnStakeResult,
6
+ DepositAndStakeResult,
7
+ DepositAndPurchaseResult,
8
+ UnstakeAndWithdrawResult,
9
+ } from "../types";
3
10
  import { EthereumContractService } from "../contract";
4
11
  import { formatContractErrors } from "../utils";
5
12
 
@@ -96,18 +103,19 @@ export class StakeClient {
96
103
 
97
104
 
98
105
  /**
99
- *
100
- * @param amountWei an amount of liqETH (in WEI) to stake to the Outpost
101
- * @returns txHash (hash of the transaction), receipt, WithdrawnStake event
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
102
110
  */
103
111
  async performWithdrawStake(tokenId: BigNumber, recipient: string): Promise<WithdrawnStakeResult> {
104
112
  // Send the payable tx
105
113
  const tx = await this.contract.Depositor.withdrawStake(tokenId, recipient);
106
114
 
107
- // Wait for 1 confirmation
115
+ // Wait for 1 confirmation
108
116
  const receipt = await tx.wait(1);
109
117
 
110
- // Parse Staked event if present
118
+ // Parse WithdrawnStake event if present
111
119
  let withdrawnstake: WithdrawnStakeEvent | undefined;
112
120
  const ev = receipt.events?.find((e) => e.event === 'WithdrawnStake');
113
121
 
@@ -126,4 +134,70 @@ export class StakeClient {
126
134
  withdrawnstake,
127
135
  };
128
136
  }
129
- }
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
+ }