@wireio/stake 2.7.3 → 3.0.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 (476) hide show
  1. package/README.md +34 -15
  2. package/lib/stake.browser.js +51022 -13666
  3. package/lib/stake.browser.js.map +1 -1
  4. package/lib/stake.d.ts +564 -15456
  5. package/lib/stake.js +48011 -10474
  6. package/lib/stake.js.map +1 -1
  7. package/lib/stake.m.js +51022 -13666
  8. package/lib/stake.m.js.map +1 -1
  9. package/package.json +1 -1
  10. package/src/assets/evm/hoodi/.gitkeep +1 -0
  11. package/src/assets/evm/monad-testnet/.gitkeep +0 -0
  12. package/src/assets/evm/polygon-amoy/.gitkeep +0 -0
  13. package/src/assets/evm/wiredev/common/Base58.sol/Base58.dbg.json +4 -0
  14. package/src/assets/evm/wiredev/common/Base58.sol/Base58.json +164 -0
  15. package/src/assets/evm/wiredev/common/OpenZepArtifacts.sol/__Dummy_OZ_UUPS__.dbg.json +4 -0
  16. package/src/assets/evm/wiredev/common/OpenZepArtifacts.sol/__Dummy_OZ_UUPS__.json +76 -0
  17. package/src/assets/evm/wiredev/common/RestrictedCallers.sol/RestrictedCallers.dbg.json +4 -0
  18. package/src/assets/evm/wiredev/common/RestrictedCallers.sol/RestrictedCallers.json +10 -0
  19. package/src/assets/evm/wiredev/common/iodata.sol/iodata.dbg.json +4 -0
  20. package/src/assets/evm/wiredev/common/iodata.sol/iodata.json +618 -0
  21. package/src/assets/evm/wiredev/common/iodata_util.sol/iodata_util.dbg.json +4 -0
  22. package/src/assets/evm/wiredev/common/iodata_util.sol/iodata_util.json +40 -0
  23. package/src/assets/evm/wiredev/common/sysio_data.sol/sysio_data.dbg.json +4 -0
  24. package/src/assets/evm/wiredev/common/sysio_data.sol/sysio_data.json +10 -0
  25. package/src/assets/evm/wiredev/common/sysio_errors.sol/sysio_errors.dbg.json +4 -0
  26. package/src/assets/evm/wiredev/common/sysio_errors.sol/sysio_errors.json +10 -0
  27. package/src/assets/evm/wiredev/common/sysio_merkle.sol/sysio_merkle.dbg.json +4 -0
  28. package/src/assets/evm/wiredev/common/sysio_merkle.sol/sysio_merkle.json +233 -0
  29. package/src/assets/evm/wiredev/common/sysio_name.sol/sysio_name.dbg.json +4 -0
  30. package/src/assets/evm/wiredev/common/sysio_name.sol/sysio_name.json +49 -0
  31. package/src/assets/evm/wiredev/common/sysio_pubkey.sol/sysio_pubkey.dbg.json +4 -0
  32. package/src/assets/evm/wiredev/common/sysio_pubkey.sol/sysio_pubkey.json +64 -0
  33. package/src/assets/evm/wiredev/common/sysio_read.sol/sysio_read.dbg.json +4 -0
  34. package/src/assets/evm/wiredev/common/sysio_read.sol/sysio_read.json +1458 -0
  35. package/src/assets/evm/wiredev/common/sysio_tester.sol/SysioTester.dbg.json +4 -0
  36. package/src/assets/evm/wiredev/common/sysio_tester.sol/SysioTester.json +1532 -0
  37. package/src/assets/evm/wiredev/common/sysio_verify.sol/sysio_verify.dbg.json +4 -0
  38. package/src/assets/evm/wiredev/common/sysio_verify.sol/sysio_verify.json +1525 -0
  39. package/src/assets/evm/wiredev/common/sysio_write.sol/sysio_write.dbg.json +4 -0
  40. package/src/assets/evm/wiredev/common/sysio_write.sol/sysio_write.json +1076 -0
  41. package/src/assets/evm/wiredev/liqEth/BeaconState.sol/BeaconState.dbg.json +4 -0
  42. package/src/assets/evm/wiredev/liqEth/BeaconState.sol/BeaconState.json +807 -0
  43. package/src/assets/evm/wiredev/liqEth/DepositManager.sol/DepositManagerV2.dbg.json +4 -0
  44. package/src/assets/evm/wiredev/liqEth/DepositManager.sol/DepositManagerV2.json +985 -0
  45. package/src/assets/evm/wiredev/liqEth/LiqEthAuthority.sol/LiqEthAuthority.dbg.json +4 -0
  46. package/src/assets/evm/wiredev/liqEth/LiqEthAuthority.sol/LiqEthAuthority.json +1289 -0
  47. package/src/assets/evm/wiredev/liqEth/LiqEthCommon.sol/IAccounting.dbg.json +4 -0
  48. package/src/assets/evm/wiredev/liqEth/LiqEthCommon.sol/IAccounting.json +182 -0
  49. package/src/assets/evm/wiredev/liqEth/LiqEthCommon.sol/IDepositContract.dbg.json +4 -0
  50. package/src/assets/evm/wiredev/liqEth/LiqEthCommon.sol/IDepositContract.json +39 -0
  51. package/src/assets/evm/wiredev/liqEth/LiqEthCommon.sol/IDepositManager.dbg.json +4 -0
  52. package/src/assets/evm/wiredev/liqEth/LiqEthCommon.sol/IDepositManager.json +64 -0
  53. package/src/assets/evm/wiredev/liqEth/LiqEthCommon.sol/ILiqEthUpgradeable.dbg.json +4 -0
  54. package/src/assets/evm/wiredev/liqEth/LiqEthCommon.sol/ILiqEthUpgradeable.json +29 -0
  55. package/src/assets/evm/wiredev/liqEth/LiqEthCommon.sol/IRewardsERC20.dbg.json +4 -0
  56. package/src/assets/evm/wiredev/liqEth/LiqEthCommon.sol/IRewardsERC20.json +319 -0
  57. package/src/assets/evm/wiredev/liqEth/LiqEthCommon.sol/IRewardsERC20Pausable.dbg.json +4 -0
  58. package/src/assets/evm/wiredev/liqEth/LiqEthCommon.sol/IRewardsERC20Pausable.json +333 -0
  59. package/src/assets/evm/wiredev/liqEth/LiqEthCommon.sol/IStakingModule.dbg.json +4 -0
  60. package/src/assets/evm/wiredev/liqEth/LiqEthCommon.sol/IStakingModule.json +344 -0
  61. package/src/assets/evm/wiredev/liqEth/LiqEthCommon.sol/IValidatorBalanceVerifier.dbg.json +4 -0
  62. package/src/assets/evm/wiredev/liqEth/LiqEthCommon.sol/IValidatorBalanceVerifier.json +129 -0
  63. package/src/assets/evm/wiredev/liqEth/LiqEthCommon.sol/IWithdrawalRecord.dbg.json +4 -0
  64. package/src/assets/evm/wiredev/liqEth/LiqEthCommon.sol/IWithdrawalRecord.json +66 -0
  65. package/src/assets/evm/wiredev/liqEth/LiqEthCommon.sol/LiqEthCommon.dbg.json +4 -0
  66. package/src/assets/evm/wiredev/liqEth/LiqEthCommon.sol/LiqEthCommon.json +10 -0
  67. package/src/assets/evm/wiredev/liqEth/LiqEthDeepFreeze.sol/LiqEthDeepFreeze.dbg.json +4 -0
  68. package/src/assets/evm/wiredev/liqEth/LiqEthDeepFreeze.sol/LiqEthDeepFreeze.json +236 -0
  69. package/src/assets/evm/wiredev/liqEth/LiqEthManaged.sol/LiqEthManaged.dbg.json +4 -0
  70. package/src/assets/evm/wiredev/liqEth/LiqEthManaged.sol/LiqEthManaged.json +229 -0
  71. package/src/assets/evm/wiredev/liqEth/RewardsERC20.sol/RewardsERC20UpgradeableV2.dbg.json +4 -0
  72. package/src/assets/evm/wiredev/liqEth/RewardsERC20.sol/RewardsERC20UpgradeableV2.json +957 -0
  73. package/src/assets/evm/wiredev/liqEth/RewardsERC20Pausable.sol/RewardsERC20PausableUpgradeableV2.dbg.json +4 -0
  74. package/src/assets/evm/wiredev/liqEth/RewardsERC20Pausable.sol/RewardsERC20PausableUpgradeableV2.json +1020 -0
  75. package/src/assets/evm/wiredev/liqEth/Yield.sol/YieldOracle.dbg.json +4 -0
  76. package/src/assets/evm/wiredev/liqEth/Yield.sol/YieldOracle.json +1376 -0
  77. package/src/assets/evm/wiredev/liqEth/accounting.sol/AccountingV2.dbg.json +4 -0
  78. package/src/assets/evm/wiredev/liqEth/accounting.sol/AccountingV2.json +629 -0
  79. package/src/assets/evm/wiredev/liqEth/liqEth.sol/LiqEthTokenV2.dbg.json +4 -0
  80. package/src/assets/evm/wiredev/liqEth/liqEth.sol/LiqEthTokenV2.json +1323 -0
  81. package/src/assets/evm/wiredev/liqEth/stakingModule.sol/StakingModuleV2.dbg.json +4 -0
  82. package/src/assets/evm/wiredev/liqEth/stakingModule.sol/StakingModuleV2.json +1779 -0
  83. package/src/assets/evm/wiredev/liqEth/v1/DepositManager.sol/DepositManager.dbg.json +4 -0
  84. package/src/assets/evm/wiredev/liqEth/v1/DepositManager.sol/DepositManager.json +978 -0
  85. package/src/assets/evm/wiredev/liqEth/v1/LiqEthCommon.sol/IAccounting.dbg.json +4 -0
  86. package/src/assets/evm/wiredev/liqEth/v1/LiqEthCommon.sol/IAccounting.json +176 -0
  87. package/src/assets/evm/wiredev/liqEth/v1/LiqEthCommon.sol/IDepositContract.dbg.json +4 -0
  88. package/src/assets/evm/wiredev/liqEth/v1/LiqEthCommon.sol/IDepositContract.json +39 -0
  89. package/src/assets/evm/wiredev/liqEth/v1/LiqEthCommon.sol/IDepositManager.dbg.json +4 -0
  90. package/src/assets/evm/wiredev/liqEth/v1/LiqEthCommon.sol/IDepositManager.json +64 -0
  91. package/src/assets/evm/wiredev/liqEth/v1/LiqEthCommon.sol/ILiqEthUpgradeable.dbg.json +4 -0
  92. package/src/assets/evm/wiredev/liqEth/v1/LiqEthCommon.sol/ILiqEthUpgradeable.json +29 -0
  93. package/src/assets/evm/wiredev/liqEth/v1/LiqEthCommon.sol/IRewardsERC20.dbg.json +4 -0
  94. package/src/assets/evm/wiredev/liqEth/v1/LiqEthCommon.sol/IRewardsERC20.json +249 -0
  95. package/src/assets/evm/wiredev/liqEth/v1/LiqEthCommon.sol/IRewardsERC20Pausable.dbg.json +4 -0
  96. package/src/assets/evm/wiredev/liqEth/v1/LiqEthCommon.sol/IRewardsERC20Pausable.json +263 -0
  97. package/src/assets/evm/wiredev/liqEth/v1/LiqEthCommon.sol/IStakingModule.dbg.json +4 -0
  98. package/src/assets/evm/wiredev/liqEth/v1/LiqEthCommon.sol/IStakingModule.json +344 -0
  99. package/src/assets/evm/wiredev/liqEth/v1/LiqEthCommon.sol/IValidatorBalanceVerifier.dbg.json +4 -0
  100. package/src/assets/evm/wiredev/liqEth/v1/LiqEthCommon.sol/IValidatorBalanceVerifier.json +129 -0
  101. package/src/assets/evm/wiredev/liqEth/v1/LiqEthCommon.sol/IWithdrawalRecord.dbg.json +4 -0
  102. package/src/assets/evm/wiredev/liqEth/v1/LiqEthCommon.sol/IWithdrawalRecord.json +66 -0
  103. package/src/assets/evm/wiredev/liqEth/v1/LiqEthCommon.sol/LiqEthCommon.dbg.json +4 -0
  104. package/src/assets/evm/wiredev/liqEth/v1/LiqEthCommon.sol/LiqEthCommon.json +10 -0
  105. package/src/assets/evm/wiredev/liqEth/v1/RewardsERC20.sol/RewardsERC20Upgradeable.dbg.json +4 -0
  106. package/src/assets/evm/wiredev/liqEth/v1/RewardsERC20.sol/RewardsERC20Upgradeable.json +874 -0
  107. package/src/assets/evm/wiredev/liqEth/v1/RewardsERC20Pausable.sol/RewardsERC20PausableUpgradeable.dbg.json +4 -0
  108. package/src/assets/evm/wiredev/liqEth/v1/RewardsERC20Pausable.sol/RewardsERC20PausableUpgradeable.json +937 -0
  109. package/src/assets/evm/wiredev/liqEth/v1/accounting.sol/Accounting.dbg.json +4 -0
  110. package/src/assets/evm/wiredev/liqEth/v1/accounting.sol/Accounting.json +548 -0
  111. package/src/assets/evm/wiredev/liqEth/v1/liqEth.sol/LiqEthToken.dbg.json +4 -0
  112. package/src/assets/evm/wiredev/liqEth/v1/liqEth.sol/LiqEthToken.json +1233 -0
  113. package/src/assets/evm/wiredev/liqEth/v1/stakingModule.sol/StakingModule.dbg.json +4 -0
  114. package/src/assets/evm/wiredev/liqEth/v1/stakingModule.sol/StakingModule.json +1772 -0
  115. package/src/assets/evm/wiredev/liqEth/withdrawalQueue.sol/WithdrawalQueue.dbg.json +4 -0
  116. package/src/assets/evm/wiredev/liqEth/withdrawalQueue.sol/WithdrawalQueue.json +973 -0
  117. package/src/assets/evm/wiredev/liqEth/withdrawalVault.sol/Uint64BE.dbg.json +4 -0
  118. package/src/assets/evm/wiredev/liqEth/withdrawalVault.sol/Uint64BE.json +10 -0
  119. package/src/assets/evm/wiredev/liqEth/withdrawalVault.sol/WithdrawalVault.dbg.json +4 -0
  120. package/src/assets/evm/wiredev/liqEth/withdrawalVault.sol/WithdrawalVault.json +441 -0
  121. package/src/assets/evm/wiredev/outpost/BAR.sol/BAR.dbg.json +4 -0
  122. package/src/assets/evm/wiredev/outpost/BAR.sol/BAR.json +1154 -0
  123. package/src/assets/evm/wiredev/outpost/Depositor.sol/Depositor.dbg.json +4 -0
  124. package/src/assets/evm/wiredev/outpost/Depositor.sol/Depositor.json +1633 -0
  125. package/src/assets/evm/wiredev/outpost/EthUsdPriceConsumer.sol/AggregatorV3Interface.dbg.json +4 -0
  126. package/src/assets/evm/wiredev/outpost/EthUsdPriceConsumer.sol/AggregatorV3Interface.json +122 -0
  127. package/src/assets/evm/wiredev/outpost/EthUsdPriceConsumer.sol/EthUsdPriceConsumer.dbg.json +4 -0
  128. package/src/assets/evm/wiredev/outpost/EthUsdPriceConsumer.sol/EthUsdPriceConsumer.json +274 -0
  129. package/src/assets/evm/wiredev/outpost/InstaswapBridgeAttestations.sol/BridgeDepositCodec.dbg.json +4 -0
  130. package/src/assets/evm/wiredev/outpost/InstaswapBridgeAttestations.sol/BridgeDepositCodec.json +10 -0
  131. package/src/assets/evm/wiredev/outpost/InstaswapBridgeAttestations.sol/BridgeWithdrawCodec.dbg.json +4 -0
  132. package/src/assets/evm/wiredev/outpost/InstaswapBridgeAttestations.sol/BridgeWithdrawCodec.json +10 -0
  133. package/src/assets/evm/wiredev/outpost/InstaswapBridgeAttestations.sol/BridgeWithdrawConfirmCodec.dbg.json +4 -0
  134. package/src/assets/evm/wiredev/outpost/InstaswapBridgeAttestations.sol/BridgeWithdrawConfirmCodec.json +10 -0
  135. package/src/assets/evm/wiredev/outpost/InstaswapBridgeAttestations.sol/BridgeWithdrawFailedCodec.dbg.json +4 -0
  136. package/src/assets/evm/wiredev/outpost/InstaswapBridgeAttestations.sol/BridgeWithdrawFailedCodec.json +10 -0
  137. package/src/assets/evm/wiredev/outpost/InstaswapBridgeAttestations.sol/InstaswapBridgeAttestationTypeLib.dbg.json +4 -0
  138. package/src/assets/evm/wiredev/outpost/InstaswapBridgeAttestations.sol/InstaswapBridgeAttestationTypeLib.json +10 -0
  139. package/src/assets/evm/wiredev/outpost/LiqEthBridge.sol/IDepositorBridgeHooks.dbg.json +4 -0
  140. package/src/assets/evm/wiredev/outpost/LiqEthBridge.sol/IDepositorBridgeHooks.json +29 -0
  141. package/src/assets/evm/wiredev/outpost/LiqEthBridge.sol/LiqEthBridge.dbg.json +4 -0
  142. package/src/assets/evm/wiredev/outpost/LiqEthBridge.sol/LiqEthBridge.json +1076 -0
  143. package/src/assets/evm/wiredev/outpost/OPP.sol/OPP.dbg.json +4 -0
  144. package/src/assets/evm/wiredev/outpost/OPP.sol/OPP.json +1098 -0
  145. package/src/assets/evm/wiredev/outpost/OPPCommon.sol/IOPP.dbg.json +4 -0
  146. package/src/assets/evm/wiredev/outpost/OPPCommon.sol/IOPP.json +81 -0
  147. package/src/assets/evm/wiredev/outpost/OPPCommon.sol/IOPPEndpoint.dbg.json +4 -0
  148. package/src/assets/evm/wiredev/outpost/OPPCommon.sol/IOPPEndpoint.json +29 -0
  149. package/src/assets/evm/wiredev/outpost/OPPCommon.sol/IOPPInbound.dbg.json +4 -0
  150. package/src/assets/evm/wiredev/outpost/OPPCommon.sol/IOPPInbound.json +330 -0
  151. package/src/assets/evm/wiredev/outpost/OPPCommon.sol/IOPPReceiver.dbg.json +4 -0
  152. package/src/assets/evm/wiredev/outpost/OPPCommon.sol/IOPPReceiver.json +29 -0
  153. package/src/assets/evm/wiredev/outpost/OPPCommon.sol/IOPPSender.dbg.json +4 -0
  154. package/src/assets/evm/wiredev/outpost/OPPCommon.sol/IOPPSender.json +41 -0
  155. package/src/assets/evm/wiredev/outpost/OPPCommon.sol/OPPCommon.dbg.json +4 -0
  156. package/src/assets/evm/wiredev/outpost/OPPCommon.sol/OPPCommon.json +287 -0
  157. package/src/assets/evm/wiredev/outpost/OPPEndpoint.sol/OPPEndpoint.dbg.json +4 -0
  158. package/src/assets/evm/wiredev/outpost/OPPEndpoint.sol/OPPEndpoint.json +337 -0
  159. package/src/assets/evm/wiredev/outpost/OPPEndpointManaged.sol/OPPEndpointManaged.dbg.json +4 -0
  160. package/src/assets/evm/wiredev/outpost/OPPEndpointManaged.sol/OPPEndpointManaged.json +458 -0
  161. package/src/assets/evm/wiredev/outpost/OPPEndpointOwnable.sol/OPPEndpointOwnable.dbg.json +4 -0
  162. package/src/assets/evm/wiredev/outpost/OPPEndpointOwnable.sol/OPPEndpointOwnable.json +442 -0
  163. package/src/assets/evm/wiredev/outpost/OPPErrors.sol/OPPErrors.dbg.json +4 -0
  164. package/src/assets/evm/wiredev/outpost/OPPErrors.sol/OPPErrors.json +288 -0
  165. package/src/assets/evm/wiredev/outpost/OPPInbound.sol/OPPInbound.dbg.json +4 -0
  166. package/src/assets/evm/wiredev/outpost/OPPInbound.sol/OPPInbound.json +1298 -0
  167. package/src/assets/evm/wiredev/outpost/OPPReceiver.sol/OPPReceiver.dbg.json +4 -0
  168. package/src/assets/evm/wiredev/outpost/OPPReceiver.sol/OPPReceiver.json +355 -0
  169. package/src/assets/evm/wiredev/outpost/OPPSender.sol/OPPSender.dbg.json +4 -0
  170. package/src/assets/evm/wiredev/outpost/OPPSender.sol/OPPSender.json +367 -0
  171. package/src/assets/evm/wiredev/outpost/OperatorRegistry.sol/OperatorRegistry.dbg.json +4 -0
  172. package/src/assets/evm/wiredev/outpost/OperatorRegistry.sol/OperatorRegistry.json +1111 -0
  173. package/src/assets/evm/wiredev/outpost/OutpostErrors.sol/OutpostErrors.dbg.json +4 -0
  174. package/src/assets/evm/wiredev/outpost/OutpostErrors.sol/OutpostErrors.json +211 -0
  175. package/src/assets/evm/wiredev/outpost/OutpostManaged.sol/OutpostManaged.dbg.json +4 -0
  176. package/src/assets/evm/wiredev/outpost/OutpostManaged.sol/OutpostManaged.json +229 -0
  177. package/src/assets/evm/wiredev/outpost/OutpostManager.sol/OutpostManager.dbg.json +4 -0
  178. package/src/assets/evm/wiredev/outpost/OutpostManager.sol/OutpostManager.json +794 -0
  179. package/src/assets/evm/wiredev/outpost/OutpostManagerAuthority.sol/OutpostManagerAuthority.dbg.json +4 -0
  180. package/src/assets/evm/wiredev/outpost/OutpostManagerAuthority.sol/OutpostManagerAuthority.json +1432 -0
  181. package/src/assets/evm/wiredev/outpost/OutpostManagerCommon.sol/IOutpostManager.dbg.json +4 -0
  182. package/src/assets/evm/wiredev/outpost/OutpostManagerCommon.sol/IOutpostManager.json +130 -0
  183. package/src/assets/evm/wiredev/outpost/OutpostManagerCommon.sol/IOutpostUpgradeable.dbg.json +4 -0
  184. package/src/assets/evm/wiredev/outpost/OutpostManagerCommon.sol/IOutpostUpgradeable.json +29 -0
  185. package/src/assets/evm/wiredev/outpost/OutpostManagerCommon.sol/OutpostManagerCommon.dbg.json +4 -0
  186. package/src/assets/evm/wiredev/outpost/OutpostManagerCommon.sol/OutpostManagerCommon.json +141 -0
  187. package/src/assets/evm/wiredev/outpost/OutpostOwnable.sol/OutpostOwnable.dbg.json +4 -0
  188. package/src/assets/evm/wiredev/outpost/OutpostOwnable.sol/OutpostOwnable.json +213 -0
  189. package/src/assets/evm/wiredev/outpost/OutpostReserve.sol/OutpostReserve.dbg.json +4 -0
  190. package/src/assets/evm/wiredev/outpost/OutpostReserve.sol/OutpostReserve.json +931 -0
  191. package/src/assets/evm/wiredev/outpost/Pool.sol/Pool.dbg.json +4 -0
  192. package/src/assets/evm/wiredev/outpost/Pool.sol/Pool.json +659 -0
  193. package/src/assets/evm/wiredev/outpost/Pretoken.sol/Pretoken.dbg.json +4 -0
  194. package/src/assets/evm/wiredev/outpost/Pretoken.sol/Pretoken.json +1436 -0
  195. package/src/assets/evm/wiredev/outpost/ReceiptNFT.sol/ReceiptNFT.dbg.json +4 -0
  196. package/src/assets/evm/wiredev/outpost/ReceiptNFT.sol/ReceiptNFT.json +1738 -0
  197. package/src/assets/evm/wiredev/outpost/WireYieldHubAttestations.sol/InstaswapConfirmCodec.dbg.json +4 -0
  198. package/src/assets/evm/wiredev/outpost/WireYieldHubAttestations.sol/InstaswapConfirmCodec.json +10 -0
  199. package/src/assets/evm/wiredev/outpost/WireYieldHubAttestations.sol/InstaswapFailedCodec.dbg.json +4 -0
  200. package/src/assets/evm/wiredev/outpost/WireYieldHubAttestations.sol/InstaswapFailedCodec.json +10 -0
  201. package/src/assets/evm/wiredev/outpost/WireYieldHubAttestations.sol/InstaswapRequestCodec.dbg.json +4 -0
  202. package/src/assets/evm/wiredev/outpost/WireYieldHubAttestations.sol/InstaswapRequestCodec.json +10 -0
  203. package/src/assets/evm/wiredev/outpost/WireYieldHubAttestations.sol/InstaswapSettlementCodec.dbg.json +4 -0
  204. package/src/assets/evm/wiredev/outpost/WireYieldHubAttestations.sol/InstaswapSettlementCodec.json +10 -0
  205. package/src/assets/evm/wiredev/outpost/WireYieldHubAttestations.sol/PrincipalExitConfirmCodec.dbg.json +4 -0
  206. package/src/assets/evm/wiredev/outpost/WireYieldHubAttestations.sol/PrincipalExitConfirmCodec.json +10 -0
  207. package/src/assets/evm/wiredev/outpost/WireYieldHubAttestations.sol/PrincipalExitFailedCodec.dbg.json +4 -0
  208. package/src/assets/evm/wiredev/outpost/WireYieldHubAttestations.sol/PrincipalExitFailedCodec.json +10 -0
  209. package/src/assets/evm/wiredev/outpost/WireYieldHubAttestations.sol/PrincipalExitRequestCodec.dbg.json +4 -0
  210. package/src/assets/evm/wiredev/outpost/WireYieldHubAttestations.sol/PrincipalExitRequestCodec.json +10 -0
  211. package/src/assets/evm/wiredev/outpost/WireYieldHubAttestations.sol/PrincipalStakeDeltaCodec.dbg.json +4 -0
  212. package/src/assets/evm/wiredev/outpost/WireYieldHubAttestations.sol/PrincipalStakeDeltaCodec.json +10 -0
  213. package/src/assets/evm/wiredev/outpost/WireYieldHubAttestations.sol/WireYieldHubAssetCodec.dbg.json +4 -0
  214. package/src/assets/evm/wiredev/outpost/WireYieldHubAttestations.sol/WireYieldHubAssetCodec.json +10 -0
  215. package/src/assets/evm/wiredev/outpost/WireYieldHubAttestations.sol/WireYieldHubAttestationTypeLib.dbg.json +4 -0
  216. package/src/assets/evm/wiredev/outpost/WireYieldHubAttestations.sol/WireYieldHubAttestationTypeLib.json +10 -0
  217. package/src/assets/evm/wiredev/outpost/WireYieldHubAttestations.sol/WireYieldHubAttestations.dbg.json +4 -0
  218. package/src/assets/evm/wiredev/outpost/WireYieldHubAttestations.sol/WireYieldHubAttestations.json +1437 -0
  219. package/src/assets/evm/wiredev/outpost/WireYieldHubAttestations.sol/YieldDepositCodec.dbg.json +4 -0
  220. package/src/assets/evm/wiredev/outpost/WireYieldHubAttestations.sol/YieldDepositCodec.json +10 -0
  221. package/src/assets/evm/wiredev/outpost/interfaces/IPretoken.sol/IPretoken.dbg.json +4 -0
  222. package/src/assets/evm/wiredev/outpost/interfaces/IPretoken.sol/IPretoken.json +29 -0
  223. package/src/assets/evm/wiredev/outpost/interfaces/IWarrant.sol/IWarrant.dbg.json +4 -0
  224. package/src/assets/evm/wiredev/outpost/interfaces/IWarrant.sol/IWarrant.json +29 -0
  225. package/src/assets/evm/wiredev/outpost/token/ERC721EthEquivalentVotesUpgradeable.sol/ERC721EthEquivalentVotesUpgradeable.dbg.json +4 -0
  226. package/src/assets/evm/wiredev/outpost/token/ERC721EthEquivalentVotesUpgradeable.sol/ERC721EthEquivalentVotesUpgradeable.json +858 -0
  227. package/src/assets/evm/wiredev/outpost/token/IERC721EthEquivalent.sol/IERC721EthEquivalent.dbg.json +4 -0
  228. package/src/assets/evm/wiredev/outpost/token/IERC721EthEquivalent.sol/IERC721EthEquivalent.json +30 -0
  229. package/src/assets/evm/wiredev/token/ERC1155Token.sol/ERC1155Token.dbg.json +4 -0
  230. package/src/assets/evm/wiredev/token/ERC1155Token.sol/ERC1155Token.json +472 -0
  231. package/src/assets/evm/wiredev/token/ERC20Token.sol/ERC20Token.dbg.json +4 -0
  232. package/src/assets/evm/wiredev/token/ERC20Token.sol/ERC20Token.json +330 -0
  233. package/src/assets/evm/wiredev/token/ERC721Token.sol/ERC721Token.dbg.json +4 -0
  234. package/src/assets/evm/wiredev/token/ERC721Token.sol/ERC721Token.json +449 -0
  235. package/src/assets/evm/wiredev/token/Eman1155.sol/Eman1155.dbg.json +4 -0
  236. package/src/assets/evm/wiredev/token/Eman1155.sol/Eman1155.json +560 -0
  237. package/src/assets/evm/wiredev/token/Eman20.sol/Eman20.dbg.json +4 -0
  238. package/src/assets/evm/wiredev/token/Eman20.sol/Eman20.json +460 -0
  239. package/src/assets/evm/wiredev/token/Eman721.sol/Eman721.dbg.json +4 -0
  240. package/src/assets/evm/wiredev/token/Eman721.sol/Eman721.json +624 -0
  241. package/src/assets/solana/mainnet/idl/liqsol_core.json +259 -12
  242. package/src/assets/solana/mainnet/idl/transfer_hook.json +12 -1
  243. package/src/assets/solana/mainnet/idl/validator_leaderboard.json +89 -73
  244. package/src/assets/solana/mainnet/idl/validator_leaderboard.json.bak +568 -0
  245. package/src/assets/solana/mainnet/types/liqsol_core.ts +259 -12
  246. package/src/assets/solana/mainnet/types/transfer_hook.ts +12 -1
  247. package/src/assets/solana/mainnet/types/validator_leaderboard.ts +89 -73
  248. package/src/assets/solana/wiredev/idl/liqsol_core.json +8726 -0
  249. package/src/assets/solana/wiredev/idl/liqsol_token.json +217 -0
  250. package/src/assets/solana/wiredev/idl/transfer_hook.json +490 -0
  251. package/src/assets/solana/wiredev/idl/validator_leaderboard.json +735 -0
  252. package/src/assets/solana/wiredev/types/liqsol_core.ts +8732 -0
  253. package/src/assets/solana/wiredev/types/liqsol_token.ts +223 -0
  254. package/src/assets/solana/wiredev/types/transfer_hook.ts +496 -0
  255. package/src/assets/solana/wiredev/types/validator_leaderboard.ts +741 -0
  256. package/src/chains.ts +165 -0
  257. package/src/index.ts +7 -3
  258. package/src/networks/{ethereum → evm}/clients/convert.client.ts +8 -3
  259. package/src/networks/evm/clients/instaswap.client.ts +440 -0
  260. package/src/networks/{ethereum → evm}/clients/opp.client.ts +3 -3
  261. package/src/networks/{ethereum → evm}/clients/pretoken.client.ts +11 -6
  262. package/src/networks/{ethereum → evm}/clients/receipt.client.ts +3 -3
  263. package/src/networks/{ethereum → evm}/clients/stake.client.ts +144 -20
  264. package/src/networks/{ethereum → evm}/clients/validator.client.ts +3 -3
  265. package/src/networks/{ethereum → evm}/contract.ts +207 -116
  266. package/src/networks/{ethereum/ethereum.ts → evm/evm.ts} +214 -68
  267. package/src/networks/{ethereum → evm}/utils.ts +56 -4
  268. package/src/networks/solana/clients/convert.client.ts +47 -11
  269. package/src/networks/solana/clients/distribution.client.ts +17 -13
  270. package/src/networks/solana/clients/instaswap.client.ts +486 -0
  271. package/src/networks/solana/clients/leaderboard.client.ts +4 -5
  272. package/src/networks/solana/clients/outpost.client.ts +110 -47
  273. package/src/networks/solana/clients/token.client.ts +20 -11
  274. package/src/networks/solana/constants.ts +27 -7
  275. package/src/networks/solana/program.ts +104 -19
  276. package/src/networks/solana/solana.ts +145 -15
  277. package/src/networks/solana/types.ts +1 -2
  278. package/src/networks/solana/utils.ts +36 -4
  279. package/src/staker.ts +22 -20
  280. package/src/status.ts +301 -0
  281. package/src/types.ts +6 -11
  282. /package/src/assets/{ethereum → evm}/mainnet/common/Base58.sol/Base58.dbg.json +0 -0
  283. /package/src/assets/{ethereum → evm}/mainnet/common/Base58.sol/Base58.json +0 -0
  284. /package/src/assets/{ethereum → evm}/mainnet/common/OpenZepArtifacts.sol/__Dummy_OZ_UUPS__.dbg.json +0 -0
  285. /package/src/assets/{ethereum → evm}/mainnet/common/OpenZepArtifacts.sol/__Dummy_OZ_UUPS__.json +0 -0
  286. /package/src/assets/{ethereum → evm}/mainnet/common/RestrictedCallers.sol/RestrictedCallers.dbg.json +0 -0
  287. /package/src/assets/{ethereum → evm}/mainnet/common/RestrictedCallers.sol/RestrictedCallers.json +0 -0
  288. /package/src/assets/{ethereum → evm}/mainnet/common/iodata.sol/iodata.dbg.json +0 -0
  289. /package/src/assets/{ethereum → evm}/mainnet/common/iodata.sol/iodata.json +0 -0
  290. /package/src/assets/{ethereum → evm}/mainnet/common/iodata_util.sol/iodata_util.dbg.json +0 -0
  291. /package/src/assets/{ethereum → evm}/mainnet/common/iodata_util.sol/iodata_util.json +0 -0
  292. /package/src/assets/{ethereum → evm}/mainnet/common/sysio_data.sol/sysio_data.dbg.json +0 -0
  293. /package/src/assets/{ethereum → evm}/mainnet/common/sysio_data.sol/sysio_data.json +0 -0
  294. /package/src/assets/{ethereum → evm}/mainnet/common/sysio_errors.sol/sysio_errors.dbg.json +0 -0
  295. /package/src/assets/{ethereum → evm}/mainnet/common/sysio_errors.sol/sysio_errors.json +0 -0
  296. /package/src/assets/{ethereum → evm}/mainnet/common/sysio_merkle.sol/sysio_merkle.dbg.json +0 -0
  297. /package/src/assets/{ethereum → evm}/mainnet/common/sysio_merkle.sol/sysio_merkle.json +0 -0
  298. /package/src/assets/{ethereum → evm}/mainnet/common/sysio_name.sol/sysio_name.dbg.json +0 -0
  299. /package/src/assets/{ethereum → evm}/mainnet/common/sysio_name.sol/sysio_name.json +0 -0
  300. /package/src/assets/{ethereum → evm}/mainnet/common/sysio_pubkey.sol/sysio_pubkey.dbg.json +0 -0
  301. /package/src/assets/{ethereum → evm}/mainnet/common/sysio_pubkey.sol/sysio_pubkey.json +0 -0
  302. /package/src/assets/{ethereum → evm}/mainnet/common/sysio_read.sol/sysio_read.dbg.json +0 -0
  303. /package/src/assets/{ethereum → evm}/mainnet/common/sysio_read.sol/sysio_read.json +0 -0
  304. /package/src/assets/{ethereum → evm}/mainnet/common/sysio_tester.sol/SysioTester.dbg.json +0 -0
  305. /package/src/assets/{ethereum → evm}/mainnet/common/sysio_tester.sol/SysioTester.json +0 -0
  306. /package/src/assets/{ethereum → evm}/mainnet/common/sysio_verify.sol/sysio_verify.dbg.json +0 -0
  307. /package/src/assets/{ethereum → evm}/mainnet/common/sysio_verify.sol/sysio_verify.json +0 -0
  308. /package/src/assets/{ethereum → evm}/mainnet/common/sysio_write.sol/sysio_write.dbg.json +0 -0
  309. /package/src/assets/{ethereum → evm}/mainnet/common/sysio_write.sol/sysio_write.json +0 -0
  310. /package/src/assets/{ethereum → evm}/mainnet/liqEth/BeaconState.sol/BeaconState.dbg.json +0 -0
  311. /package/src/assets/{ethereum → evm}/mainnet/liqEth/BeaconState.sol/BeaconState.json +0 -0
  312. /package/src/assets/{ethereum → evm}/mainnet/liqEth/DepositManager.sol/DepositManagerV2.dbg.json +0 -0
  313. /package/src/assets/{ethereum → evm}/mainnet/liqEth/DepositManager.sol/DepositManagerV2.json +0 -0
  314. /package/src/assets/{ethereum → evm}/mainnet/liqEth/DepositManager.sol/IStakingModuleBondLocker.dbg.json +0 -0
  315. /package/src/assets/{ethereum → evm}/mainnet/liqEth/DepositManager.sol/IStakingModuleBondLocker.json +0 -0
  316. /package/src/assets/{ethereum → evm}/mainnet/liqEth/KeyBondManager.sol/KeyBondManager.dbg.json +0 -0
  317. /package/src/assets/{ethereum → evm}/mainnet/liqEth/KeyBondManager.sol/KeyBondManager.json +0 -0
  318. /package/src/assets/{ethereum → evm}/mainnet/liqEth/LiqEthAuthority.sol/LiqEthAuthority.dbg.json +0 -0
  319. /package/src/assets/{ethereum → evm}/mainnet/liqEth/LiqEthAuthority.sol/LiqEthAuthority.json +0 -0
  320. /package/src/assets/{ethereum → evm}/mainnet/liqEth/LiqEthCommon.sol/IDepositContract.dbg.json +0 -0
  321. /package/src/assets/{ethereum → evm}/mainnet/liqEth/LiqEthCommon.sol/IDepositContract.json +0 -0
  322. /package/src/assets/{ethereum → evm}/mainnet/liqEth/LiqEthCommon.sol/IDepositManager.dbg.json +0 -0
  323. /package/src/assets/{ethereum → evm}/mainnet/liqEth/LiqEthCommon.sol/IDepositManager.json +0 -0
  324. /package/src/assets/{ethereum → evm}/mainnet/liqEth/LiqEthCommon.sol/IKeyBondManager.dbg.json +0 -0
  325. /package/src/assets/{ethereum → evm}/mainnet/liqEth/LiqEthCommon.sol/IKeyBondManager.json +0 -0
  326. /package/src/assets/{ethereum → evm}/mainnet/liqEth/LiqEthCommon.sol/ILiqEthUpgradeable.dbg.json +0 -0
  327. /package/src/assets/{ethereum → evm}/mainnet/liqEth/LiqEthCommon.sol/ILiqEthUpgradeable.json +0 -0
  328. /package/src/assets/{ethereum → evm}/mainnet/liqEth/LiqEthCommon.sol/IRewardsERC20.dbg.json +0 -0
  329. /package/src/assets/{ethereum → evm}/mainnet/liqEth/LiqEthCommon.sol/IRewardsERC20.json +0 -0
  330. /package/src/assets/{ethereum → evm}/mainnet/liqEth/LiqEthCommon.sol/IRewardsERC20Pausable.dbg.json +0 -0
  331. /package/src/assets/{ethereum → evm}/mainnet/liqEth/LiqEthCommon.sol/IRewardsERC20Pausable.json +0 -0
  332. /package/src/assets/{ethereum → evm}/mainnet/liqEth/LiqEthCommon.sol/IStakingModule.dbg.json +0 -0
  333. /package/src/assets/{ethereum → evm}/mainnet/liqEth/LiqEthCommon.sol/IStakingModule.json +0 -0
  334. /package/src/assets/{ethereum → evm}/mainnet/liqEth/LiqEthCommon.sol/IValidatorBalanceVerifier.dbg.json +0 -0
  335. /package/src/assets/{ethereum → evm}/mainnet/liqEth/LiqEthCommon.sol/IValidatorBalanceVerifier.json +0 -0
  336. /package/src/assets/{ethereum → evm}/mainnet/liqEth/LiqEthCommon.sol/IWithdrawalRecord.dbg.json +0 -0
  337. /package/src/assets/{ethereum → evm}/mainnet/liqEth/LiqEthCommon.sol/IWithdrawalRecord.json +0 -0
  338. /package/src/assets/{ethereum → evm}/mainnet/liqEth/LiqEthCommon.sol/LiqEthCommon.dbg.json +0 -0
  339. /package/src/assets/{ethereum → evm}/mainnet/liqEth/LiqEthCommon.sol/LiqEthCommon.json +0 -0
  340. /package/src/assets/{ethereum → evm}/mainnet/liqEth/LiqEthDeepFreeze.sol/LiqEthDeepFreeze.dbg.json +0 -0
  341. /package/src/assets/{ethereum → evm}/mainnet/liqEth/LiqEthDeepFreeze.sol/LiqEthDeepFreeze.json +0 -0
  342. /package/src/assets/{ethereum → evm}/mainnet/liqEth/LiqEthManaged.sol/LiqEthManaged.dbg.json +0 -0
  343. /package/src/assets/{ethereum → evm}/mainnet/liqEth/LiqEthManaged.sol/LiqEthManaged.json +0 -0
  344. /package/src/assets/{ethereum → evm}/mainnet/liqEth/RewardsERC20.sol/RewardsERC20UpgradeableV2.dbg.json +0 -0
  345. /package/src/assets/{ethereum → evm}/mainnet/liqEth/RewardsERC20.sol/RewardsERC20UpgradeableV2.json +0 -0
  346. /package/src/assets/{ethereum → evm}/mainnet/liqEth/RewardsERC20Pausable.sol/RewardsERC20PausableUpgradeableV2.dbg.json +0 -0
  347. /package/src/assets/{ethereum → evm}/mainnet/liqEth/RewardsERC20Pausable.sol/RewardsERC20PausableUpgradeableV2.json +0 -0
  348. /package/src/assets/{ethereum → evm}/mainnet/liqEth/StakingLib.sol/StakingLib.dbg.json +0 -0
  349. /package/src/assets/{ethereum → evm}/mainnet/liqEth/StakingLib.sol/StakingLib.json +0 -0
  350. /package/src/assets/{ethereum → evm}/mainnet/liqEth/Yield.sol/YieldOracle.dbg.json +0 -0
  351. /package/src/assets/{ethereum → evm}/mainnet/liqEth/Yield.sol/YieldOracle.json +0 -0
  352. /package/src/assets/{ethereum → evm}/mainnet/liqEth/liqEth.sol/LiqEthTokenV2.dbg.json +0 -0
  353. /package/src/assets/{ethereum → evm}/mainnet/liqEth/liqEth.sol/LiqEthTokenV2.json +0 -0
  354. /package/src/assets/{ethereum → evm}/mainnet/liqEth/stakingModule.sol/StakingModuleV2.dbg.json +0 -0
  355. /package/src/assets/{ethereum → evm}/mainnet/liqEth/stakingModule.sol/StakingModuleV2.json +0 -0
  356. /package/src/assets/{ethereum → evm}/mainnet/liqEth/v1/DepositManager.sol/DepositManager.dbg.json +0 -0
  357. /package/src/assets/{ethereum → evm}/mainnet/liqEth/v1/DepositManager.sol/DepositManager.json +0 -0
  358. /package/src/assets/{ethereum → evm}/mainnet/liqEth/v1/LiqEthCommon.sol/IAccounting.dbg.json +0 -0
  359. /package/src/assets/{ethereum → evm}/mainnet/liqEth/v1/LiqEthCommon.sol/IAccounting.json +0 -0
  360. /package/src/assets/{ethereum → evm}/mainnet/liqEth/v1/LiqEthCommon.sol/IDepositContract.dbg.json +0 -0
  361. /package/src/assets/{ethereum → evm}/mainnet/liqEth/v1/LiqEthCommon.sol/IDepositContract.json +0 -0
  362. /package/src/assets/{ethereum → evm}/mainnet/liqEth/v1/LiqEthCommon.sol/IDepositManager.dbg.json +0 -0
  363. /package/src/assets/{ethereum → evm}/mainnet/liqEth/v1/LiqEthCommon.sol/IDepositManager.json +0 -0
  364. /package/src/assets/{ethereum → evm}/mainnet/liqEth/v1/LiqEthCommon.sol/ILiqEthUpgradeable.dbg.json +0 -0
  365. /package/src/assets/{ethereum → evm}/mainnet/liqEth/v1/LiqEthCommon.sol/ILiqEthUpgradeable.json +0 -0
  366. /package/src/assets/{ethereum → evm}/mainnet/liqEth/v1/LiqEthCommon.sol/IRewardsERC20.dbg.json +0 -0
  367. /package/src/assets/{ethereum → evm}/mainnet/liqEth/v1/LiqEthCommon.sol/IRewardsERC20.json +0 -0
  368. /package/src/assets/{ethereum → evm}/mainnet/liqEth/v1/LiqEthCommon.sol/IRewardsERC20Pausable.dbg.json +0 -0
  369. /package/src/assets/{ethereum → evm}/mainnet/liqEth/v1/LiqEthCommon.sol/IRewardsERC20Pausable.json +0 -0
  370. /package/src/assets/{ethereum → evm}/mainnet/liqEth/v1/LiqEthCommon.sol/IStakingModule.dbg.json +0 -0
  371. /package/src/assets/{ethereum → evm}/mainnet/liqEth/v1/LiqEthCommon.sol/IStakingModule.json +0 -0
  372. /package/src/assets/{ethereum → evm}/mainnet/liqEth/v1/LiqEthCommon.sol/IValidatorBalanceVerifier.dbg.json +0 -0
  373. /package/src/assets/{ethereum → evm}/mainnet/liqEth/v1/LiqEthCommon.sol/IValidatorBalanceVerifier.json +0 -0
  374. /package/src/assets/{ethereum → evm}/mainnet/liqEth/v1/LiqEthCommon.sol/IWithdrawalRecord.dbg.json +0 -0
  375. /package/src/assets/{ethereum → evm}/mainnet/liqEth/v1/LiqEthCommon.sol/IWithdrawalRecord.json +0 -0
  376. /package/src/assets/{ethereum → evm}/mainnet/liqEth/v1/LiqEthCommon.sol/LiqEthCommon.dbg.json +0 -0
  377. /package/src/assets/{ethereum → evm}/mainnet/liqEth/v1/LiqEthCommon.sol/LiqEthCommon.json +0 -0
  378. /package/src/assets/{ethereum → evm}/mainnet/liqEth/v1/RewardsERC20.sol/RewardsERC20Upgradeable.dbg.json +0 -0
  379. /package/src/assets/{ethereum → evm}/mainnet/liqEth/v1/RewardsERC20.sol/RewardsERC20Upgradeable.json +0 -0
  380. /package/src/assets/{ethereum → evm}/mainnet/liqEth/v1/RewardsERC20Pausable.sol/RewardsERC20PausableUpgradeable.dbg.json +0 -0
  381. /package/src/assets/{ethereum → evm}/mainnet/liqEth/v1/RewardsERC20Pausable.sol/RewardsERC20PausableUpgradeable.json +0 -0
  382. /package/src/assets/{ethereum → evm}/mainnet/liqEth/v1/accounting.sol/Accounting.dbg.json +0 -0
  383. /package/src/assets/{ethereum → evm}/mainnet/liqEth/v1/accounting.sol/Accounting.json +0 -0
  384. /package/src/assets/{ethereum → evm}/mainnet/liqEth/v1/liqEth.sol/LiqEthToken.dbg.json +0 -0
  385. /package/src/assets/{ethereum → evm}/mainnet/liqEth/v1/liqEth.sol/LiqEthToken.json +0 -0
  386. /package/src/assets/{ethereum → evm}/mainnet/liqEth/v1/stakingModule.sol/StakingModule.dbg.json +0 -0
  387. /package/src/assets/{ethereum → evm}/mainnet/liqEth/v1/stakingModule.sol/StakingModule.json +0 -0
  388. /package/src/assets/{ethereum → evm}/mainnet/liqEth/withdrawalQueue.sol/WithdrawalQueue.dbg.json +0 -0
  389. /package/src/assets/{ethereum → evm}/mainnet/liqEth/withdrawalQueue.sol/WithdrawalQueue.json +0 -0
  390. /package/src/assets/{ethereum → evm}/mainnet/liqEth/withdrawalVault.sol/Uint64BE.dbg.json +0 -0
  391. /package/src/assets/{ethereum → evm}/mainnet/liqEth/withdrawalVault.sol/Uint64BE.json +0 -0
  392. /package/src/assets/{ethereum → evm}/mainnet/liqEth/withdrawalVault.sol/WithdrawalVault.dbg.json +0 -0
  393. /package/src/assets/{ethereum → evm}/mainnet/liqEth/withdrawalVault.sol/WithdrawalVault.json +0 -0
  394. /package/src/assets/{ethereum → evm}/mainnet/outpost/BAR.sol/BARV2.dbg.json +0 -0
  395. /package/src/assets/{ethereum → evm}/mainnet/outpost/BAR.sol/BARV2.json +0 -0
  396. /package/src/assets/{ethereum → evm}/mainnet/outpost/Depositor.sol/DepositorV2.dbg.json +0 -0
  397. /package/src/assets/{ethereum → evm}/mainnet/outpost/Depositor.sol/DepositorV2.json +0 -0
  398. /package/src/assets/{ethereum → evm}/mainnet/outpost/EthUsdPriceConsumer.sol/AggregatorV3Interface.dbg.json +0 -0
  399. /package/src/assets/{ethereum → evm}/mainnet/outpost/EthUsdPriceConsumer.sol/AggregatorV3Interface.json +0 -0
  400. /package/src/assets/{ethereum → evm}/mainnet/outpost/EthUsdPriceConsumer.sol/EthUsdPriceConsumer.dbg.json +0 -0
  401. /package/src/assets/{ethereum → evm}/mainnet/outpost/EthUsdPriceConsumer.sol/EthUsdPriceConsumer.json +0 -0
  402. /package/src/assets/{ethereum → evm}/mainnet/outpost/OPP.sol/OPP.dbg.json +0 -0
  403. /package/src/assets/{ethereum → evm}/mainnet/outpost/OPP.sol/OPP.json +0 -0
  404. /package/src/assets/{ethereum → evm}/mainnet/outpost/OPPCommon.sol/IOPP.dbg.json +0 -0
  405. /package/src/assets/{ethereum → evm}/mainnet/outpost/OPPCommon.sol/IOPP.json +0 -0
  406. /package/src/assets/{ethereum → evm}/mainnet/outpost/OPPCommon.sol/IOPPEndpoint.dbg.json +0 -0
  407. /package/src/assets/{ethereum → evm}/mainnet/outpost/OPPCommon.sol/IOPPEndpoint.json +0 -0
  408. /package/src/assets/{ethereum → evm}/mainnet/outpost/OPPCommon.sol/IOPPInbound.dbg.json +0 -0
  409. /package/src/assets/{ethereum → evm}/mainnet/outpost/OPPCommon.sol/IOPPInbound.json +0 -0
  410. /package/src/assets/{ethereum → evm}/mainnet/outpost/OPPCommon.sol/IOPPReceiver.dbg.json +0 -0
  411. /package/src/assets/{ethereum → evm}/mainnet/outpost/OPPCommon.sol/IOPPReceiver.json +0 -0
  412. /package/src/assets/{ethereum → evm}/mainnet/outpost/OPPCommon.sol/IOPPSender.dbg.json +0 -0
  413. /package/src/assets/{ethereum → evm}/mainnet/outpost/OPPCommon.sol/IOPPSender.json +0 -0
  414. /package/src/assets/{ethereum → evm}/mainnet/outpost/OPPCommon.sol/OPPCommon.dbg.json +0 -0
  415. /package/src/assets/{ethereum → evm}/mainnet/outpost/OPPCommon.sol/OPPCommon.json +0 -0
  416. /package/src/assets/{ethereum → evm}/mainnet/outpost/OPPEndpoint.sol/OPPEndpoint.dbg.json +0 -0
  417. /package/src/assets/{ethereum → evm}/mainnet/outpost/OPPEndpoint.sol/OPPEndpoint.json +0 -0
  418. /package/src/assets/{ethereum → evm}/mainnet/outpost/OPPEndpointManaged.sol/OPPEndpointManaged.dbg.json +0 -0
  419. /package/src/assets/{ethereum → evm}/mainnet/outpost/OPPEndpointManaged.sol/OPPEndpointManaged.json +0 -0
  420. /package/src/assets/{ethereum → evm}/mainnet/outpost/OPPEndpointOwnable.sol/OPPEndpointOwnable.dbg.json +0 -0
  421. /package/src/assets/{ethereum → evm}/mainnet/outpost/OPPEndpointOwnable.sol/OPPEndpointOwnable.json +0 -0
  422. /package/src/assets/{ethereum → evm}/mainnet/outpost/OPPErrors.sol/OPPErrors.dbg.json +0 -0
  423. /package/src/assets/{ethereum → evm}/mainnet/outpost/OPPErrors.sol/OPPErrors.json +0 -0
  424. /package/src/assets/{ethereum → evm}/mainnet/outpost/OPPInbound.sol/OPPInbound.dbg.json +0 -0
  425. /package/src/assets/{ethereum → evm}/mainnet/outpost/OPPInbound.sol/OPPInbound.json +0 -0
  426. /package/src/assets/{ethereum → evm}/mainnet/outpost/OPPReceiver.sol/OPPReceiver.dbg.json +0 -0
  427. /package/src/assets/{ethereum → evm}/mainnet/outpost/OPPReceiver.sol/OPPReceiver.json +0 -0
  428. /package/src/assets/{ethereum → evm}/mainnet/outpost/OPPSender.sol/OPPSender.dbg.json +0 -0
  429. /package/src/assets/{ethereum → evm}/mainnet/outpost/OPPSender.sol/OPPSender.json +0 -0
  430. /package/src/assets/{ethereum → evm}/mainnet/outpost/OutpostErrors.sol/OutpostErrors.dbg.json +0 -0
  431. /package/src/assets/{ethereum → evm}/mainnet/outpost/OutpostErrors.sol/OutpostErrors.json +0 -0
  432. /package/src/assets/{ethereum → evm}/mainnet/outpost/OutpostManaged.sol/OutpostManaged.dbg.json +0 -0
  433. /package/src/assets/{ethereum → evm}/mainnet/outpost/OutpostManaged.sol/OutpostManaged.json +0 -0
  434. /package/src/assets/{ethereum → evm}/mainnet/outpost/OutpostManager.sol/OutpostManagerV2.dbg.json +0 -0
  435. /package/src/assets/{ethereum → evm}/mainnet/outpost/OutpostManager.sol/OutpostManagerV2.json +0 -0
  436. /package/src/assets/{ethereum → evm}/mainnet/outpost/OutpostManagerAuthority.sol/OutpostManagerAuthority.dbg.json +0 -0
  437. /package/src/assets/{ethereum → evm}/mainnet/outpost/OutpostManagerAuthority.sol/OutpostManagerAuthority.json +0 -0
  438. /package/src/assets/{ethereum → evm}/mainnet/outpost/OutpostManagerCommon.sol/IOutpostManager.dbg.json +0 -0
  439. /package/src/assets/{ethereum → evm}/mainnet/outpost/OutpostManagerCommon.sol/IOutpostManager.json +0 -0
  440. /package/src/assets/{ethereum → evm}/mainnet/outpost/OutpostManagerCommon.sol/IOutpostUpgradeable.dbg.json +0 -0
  441. /package/src/assets/{ethereum → evm}/mainnet/outpost/OutpostManagerCommon.sol/IOutpostUpgradeable.json +0 -0
  442. /package/src/assets/{ethereum → evm}/mainnet/outpost/OutpostManagerCommon.sol/OutpostManagerCommon.dbg.json +0 -0
  443. /package/src/assets/{ethereum → evm}/mainnet/outpost/OutpostManagerCommon.sol/OutpostManagerCommon.json +0 -0
  444. /package/src/assets/{ethereum → evm}/mainnet/outpost/OutpostOwnable.sol/OutpostOwnable.dbg.json +0 -0
  445. /package/src/assets/{ethereum → evm}/mainnet/outpost/OutpostOwnable.sol/OutpostOwnable.json +0 -0
  446. /package/src/assets/{ethereum → evm}/mainnet/outpost/Pool.sol/PoolV2.dbg.json +0 -0
  447. /package/src/assets/{ethereum → evm}/mainnet/outpost/Pool.sol/PoolV2.json +0 -0
  448. /package/src/assets/{ethereum → evm}/mainnet/outpost/Pretoken.sol/PretokenV2.dbg.json +0 -0
  449. /package/src/assets/{ethereum → evm}/mainnet/outpost/Pretoken.sol/PretokenV2.json +0 -0
  450. /package/src/assets/{ethereum → evm}/mainnet/outpost/ReceiptNFT.sol/ReceiptNFT.dbg.json +0 -0
  451. /package/src/assets/{ethereum → evm}/mainnet/outpost/ReceiptNFT.sol/ReceiptNFT.json +0 -0
  452. /package/src/assets/{ethereum → evm}/mainnet/outpost/interfaces/IPretoken.sol/IPretoken.dbg.json +0 -0
  453. /package/src/assets/{ethereum → evm}/mainnet/outpost/interfaces/IPretoken.sol/IPretoken.json +0 -0
  454. /package/src/assets/{ethereum → evm}/mainnet/outpost/interfaces/IWarrant.sol/IWarrant.dbg.json +0 -0
  455. /package/src/assets/{ethereum → evm}/mainnet/outpost/interfaces/IWarrant.sol/IWarrant.json +0 -0
  456. /package/src/assets/{ethereum → evm}/mainnet/outpost/token/ERC721EthEquivalentVotesUpgradeable.sol/ERC721EthEquivalentVotesUpgradeable.dbg.json +0 -0
  457. /package/src/assets/{ethereum → evm}/mainnet/outpost/token/ERC721EthEquivalentVotesUpgradeable.sol/ERC721EthEquivalentVotesUpgradeable.json +0 -0
  458. /package/src/assets/{ethereum → evm}/mainnet/outpost/token/IERC721EthEquivalent.sol/IERC721EthEquivalent.dbg.json +0 -0
  459. /package/src/assets/{ethereum → evm}/mainnet/outpost/token/IERC721EthEquivalent.sol/IERC721EthEquivalent.json +0 -0
  460. /package/src/assets/{ethereum → evm}/mainnet/outpost/v1/BAR.sol/BAR.dbg.json +0 -0
  461. /package/src/assets/{ethereum → evm}/mainnet/outpost/v1/BAR.sol/BAR.json +0 -0
  462. /package/src/assets/{ethereum → evm}/mainnet/outpost/v1/Depositor.sol/Depositor.dbg.json +0 -0
  463. /package/src/assets/{ethereum → evm}/mainnet/outpost/v1/Depositor.sol/Depositor.json +0 -0
  464. /package/src/assets/{ethereum → evm}/mainnet/outpost/v1/OutpostManager.sol/OutpostManager.dbg.json +0 -0
  465. /package/src/assets/{ethereum → evm}/mainnet/outpost/v1/OutpostManager.sol/OutpostManager.json +0 -0
  466. /package/src/assets/{ethereum → evm}/mainnet/outpost/v1/Pool.sol/Pool.dbg.json +0 -0
  467. /package/src/assets/{ethereum → evm}/mainnet/outpost/v1/Pool.sol/Pool.json +0 -0
  468. /package/src/assets/{ethereum → evm}/mainnet/outpost/v1/Pretoken.sol/Pretoken.dbg.json +0 -0
  469. /package/src/assets/{ethereum → evm}/mainnet/outpost/v1/Pretoken.sol/Pretoken.json +0 -0
  470. /package/src/assets/{ethereum → evm}/mainnet/token/ERC1155Token.sol/ERC1155Token.dbg.json +0 -0
  471. /package/src/assets/{ethereum → evm}/mainnet/token/ERC1155Token.sol/ERC1155Token.json +0 -0
  472. /package/src/assets/{ethereum → evm}/mainnet/token/ERC20Token.sol/ERC20Token.dbg.json +0 -0
  473. /package/src/assets/{ethereum → evm}/mainnet/token/ERC20Token.sol/ERC20Token.json +0 -0
  474. /package/src/assets/{ethereum → evm}/mainnet/token/ERC721Token.sol/ERC721Token.dbg.json +0 -0
  475. /package/src/assets/{ethereum → evm}/mainnet/token/ERC721Token.sol/ERC721Token.json +0 -0
  476. /package/src/networks/{ethereum → evm}/types.ts +0 -0
@@ -1,5 +1,6 @@
1
1
  import { BigNumber, ethers } from 'ethers';
2
- import { ChainID, EvmChainID, PublicKey as WirePubKey } from '@wireio/core';
2
+ import { ChainID, PublicKey as WirePubKey } from '@wireio/core';
3
+ import { EVM_WIRE_DEVNET_CHAIN_ID, isSupportedEvmContractChain } from '../../chains';
3
4
  import {
4
5
  IStakingClient,
5
6
  OPPAssertion,
@@ -7,10 +8,11 @@ import {
7
8
  StakerConfig,
8
9
  TrancheSnapshot
9
10
  } from '../../types';
10
- import { EthereumContractService } from './contract';
11
+ import { EvmContractService } from './contract';
11
12
  import { preLaunchReceipt, WithdrawReceipt } from './types';
12
- import { buildEthereumTrancheSnapshot } from './utils';
13
+ import { buildEvmTrancheSnapshot, formatContractErrors } from './utils';
13
14
  import { ConvertClient } from './clients/convert.client';
15
+ import { EvmInstaswapClient } from './clients/instaswap.client';
14
16
  import { StakeClient } from './clients/stake.client';
15
17
  import { PretokenClient } from './clients/pretoken.client';
16
18
  import { OPPClient } from './clients/opp.client';
@@ -19,11 +21,11 @@ import { ValidatorClient } from './clients/validator.client';
19
21
 
20
22
  export const INITIAL_TRANCHE_SUPPLY = 35000;
21
23
 
22
- export class EthereumStakingClient implements IStakingClient {
24
+ export class EvmStakingClient implements IStakingClient {
23
25
  private readonly provider: ethers.providers.Web3Provider | ethers.providers.JsonRpcProvider;
24
26
  public readonly pubKey?: WirePubKey;
25
27
  private readonly signer?: ethers.Signer;
26
- private readonly contractService: EthereumContractService;
28
+ private readonly contractService: EvmContractService;
27
29
 
28
30
  private convertClient: ConvertClient;
29
31
  private pretokenClient: PretokenClient;
@@ -31,6 +33,7 @@ export class EthereumStakingClient implements IStakingClient {
31
33
  private oppClient: OPPClient;
32
34
  private receiptClient: ReceiptClient;
33
35
  private validatorClient: ValidatorClient;
36
+ public readonly instaswapClient: EvmInstaswapClient;
34
37
 
35
38
  get contract() { return this.contractService.contract; }
36
39
  get network() { return this.config.network; }
@@ -47,10 +50,15 @@ export class EthereumStakingClient implements IStakingClient {
47
50
  }
48
51
  this.pubKey = config.pubKey;
49
52
 
50
- this.contractService = new EthereumContractService({
53
+ const chainId = config.network.chainId;
54
+ if (!isSupportedEvmContractChain(chainId)) {
55
+ throw new Error(`EVM contract suite is not configured for chainId=${chainId}`);
56
+ }
57
+
58
+ this.contractService = new EvmContractService({
51
59
  provider: this.provider,
52
60
  signer: this.signer,
53
- chainId: config.network.chainId as EvmChainID,
61
+ chainId,
54
62
  });
55
63
 
56
64
  this.convertClient = new ConvertClient(this.contractService);
@@ -58,10 +66,16 @@ export class EthereumStakingClient implements IStakingClient {
58
66
  this.stakeClient = new StakeClient(this.contractService);
59
67
  this.oppClient = new OPPClient(this.contractService);
60
68
  this.receiptClient = new ReceiptClient(this.contractService);
61
- this.validatorClient = new ValidatorClient(this.contractService)
69
+ this.validatorClient = new ValidatorClient(this.contractService);
70
+ this.instaswapClient = new EvmInstaswapClient(
71
+ this.contractService,
72
+ this.signer,
73
+ config.network.chainId as number,
74
+ config.network.rpcUrls[0],
75
+ );
62
76
  }
63
77
  catch (error) {
64
- // console.error('Error initializing EthereumStakingClient:', error);
78
+ // console.error('Error initializing EvmStakingClient:', error);
65
79
  throw error;
66
80
  }
67
81
  }
@@ -133,13 +147,13 @@ export class EthereumStakingClient implements IStakingClient {
133
147
  * @param amount Amount in wei - Keep this as a bigint / string in the caller; avoid JS floats.
134
148
  * @returns transaction hash
135
149
  */
136
- async stake(amount: bigint): Promise<string> {
150
+ async stake(amount: bigint, wireAccount?: string): Promise<string> {
137
151
  this.ensureUser();
138
152
 
139
153
  const walletAddress = await this.address!;
140
154
  const amountWei = BigNumber.from(amount);
141
155
 
142
- const result = await this.stakeClient.performStake(amountWei, walletAddress);
156
+ const result = await this.stakeClient.performStakeToWire(amountWei, walletAddress, wireAccount);
143
157
  return result.txHash;
144
158
  }
145
159
 
@@ -150,17 +164,28 @@ export class EthereumStakingClient implements IStakingClient {
150
164
  }
151
165
 
152
166
  /**
153
- * Deposit ETH to liqETH, then stake liqETH in a single transaction.
167
+ * Deposit ETH to liqETH, then stake the liqETH.
154
168
  * @param amountWei Amount in wei.
155
169
  * @returns transaction hash
156
170
  */
157
- async depositAndStake(amountWei: bigint): Promise<string> {
171
+ async depositAndStake(amount: bigint, wireAccount?: string): Promise<string> {
158
172
  this.ensureUser();
159
- if (!amountWei || amountWei <= BigInt(0))
173
+ if (!amount || amount <= BigInt(0))
160
174
  throw new Error('Amount must be greater than zero.');
161
175
 
162
- const result = await this.stakeClient.performDepositAndStake(BigNumber.from(amountWei));
163
- return result.txHash;
176
+
177
+ const walletAddress = await this.address!;
178
+ let amountWei = BigNumber.from(amount);
179
+
180
+
181
+ const result = await this.convertClient.performDeposit(amountWei);
182
+ console.log('result of performDeposit()', result);
183
+
184
+ const result2 = await this.stakeClient.performStakeToWire(amountWei, walletAddress, wireAccount);
185
+ console.log('result of performStakeToWire()', result2);
186
+
187
+ // const result = await this.stakeClient.performDepositAndStakeToWire(BigNumber.from(amountWei), wireAccount);
188
+ return result2.txHash;
164
189
  }
165
190
 
166
191
  /**
@@ -210,12 +235,6 @@ export class EthereumStakingClient implements IStakingClient {
210
235
 
211
236
  const buyer = await this.address!;
212
237
 
213
- // ! Hoodi only - check if the mock aggregator price is stale, and if so, update it before submitting the buy request
214
- // const network = await this.provider.getNetwork();
215
- // const chainId = network.chainId;
216
- // const allowedTestChains = new Set([560048]);
217
- // if (allowedTestChains.has(chainId)) await this.updateMockAggregatorPrice();
218
-
219
238
  let result = await this.pretokenClient.purchasePretokensWithLiqETH(amount, buyer);
220
239
  return result && result.txHash ? result.txHash : "Error - no resulting txHash";
221
240
  }
@@ -235,6 +254,33 @@ export class EthereumStakingClient implements IStakingClient {
235
254
 
236
255
 
237
256
 
257
+ // ! Testnet only - check if the mock aggregator price is stale, and if so, update it before submitting the buy request
258
+ // async crankTestnetAggregator(): Promise<string> {
259
+ // this.ensureUser();
260
+
261
+ // const network = await this.provider.getNetwork();
262
+ // const chainId = network.chainId;
263
+ // const allowedTestChains = new Set([560048, 31337]);
264
+ // if (!allowedTestChains.has(chainId)) return "Testnet crank is only intended for test/local networks - current chain is "+chainId+". Skipping aggregator update";
265
+
266
+ // const [agg, opp] = await Promise.allSettled([
267
+ // this.updateMockAggregatorPrice(),
268
+ // this.fixOppTooManyAttestations(),
269
+ // ]);
270
+
271
+ // const fmt = (name: string, r: PromiseSettledResult<unknown>) => {
272
+ // if (r.status === 'fulfilled') {
273
+ // const suffix = r.value !== undefined ? ` (${String(r.value)})` : '';
274
+ // return `${name}: ok${suffix}`;
275
+ // }
276
+ // return `${name}: failed (${String(r.reason)})`;
277
+ // };
278
+
279
+ // console.log('crankTestnetAggregator()', { agg, opp });
280
+ // return `${fmt('updateMockAggregatorPrice', agg)}; ${fmt('fixOppTooManyAttestations', opp)}`;
281
+ // }
282
+
283
+
238
284
 
239
285
  /**
240
286
  * Resolve the user's ETH + liqETH balances.
@@ -341,7 +387,7 @@ export class EthereumStakingClient implements IStakingClient {
341
387
  return portfolio;
342
388
  }
343
389
  catch (error) {
344
- // console.log('Error fetching Ethereum portfolio:', error);
390
+ // console.log('Error fetching EVM portfolio:', error);
345
391
  throw error;
346
392
  }
347
393
  }
@@ -374,7 +420,7 @@ export class EthereumStakingClient implements IStakingClient {
374
420
  private ensureUser() {
375
421
  if (!this.signer) {
376
422
  throw new Error(
377
- 'EthereumStakingClient: write operation requires a wallet-connected Web3 provider',
423
+ 'EvmStakingClient: write operation requires a wallet-connected Web3 provider',
378
424
  );
379
425
  }
380
426
  }
@@ -421,7 +467,7 @@ export class EthereumStakingClient implements IStakingClient {
421
467
  }
422
468
 
423
469
  /**
424
- * Program-level prelaunch WIRE / tranche snapshot for Ethereum
470
+ * Program-level prelaunch WIRE / tranche snapshot for EVM
425
471
  *
426
472
  * SUPPORTS READ-ONLY ACcESS
427
473
  */
@@ -459,7 +505,7 @@ export class EthereumStakingClient implements IStakingClient {
459
505
 
460
506
  const initialTrancheSupply = BigInt(INITIAL_TRANCHE_SUPPLY) * BigInt(1e8);
461
507
 
462
- return buildEthereumTrancheSnapshot({
508
+ return buildEvmTrancheSnapshot({
463
509
  chainID,
464
510
  totalSharesBn,
465
511
  indexBn,
@@ -476,7 +522,7 @@ export class EthereumStakingClient implements IStakingClient {
476
522
  });
477
523
  }
478
524
  catch (err: any) {
479
- throw new Error(`Error fetching Ethereum tranche snapshot: ${err?.message || err}`);
525
+ throw new Error(`Error fetching EVM tranche snapshot: ${err?.message || err}`);
480
526
  }
481
527
  }
482
528
 
@@ -555,50 +601,150 @@ export class EthereumStakingClient implements IStakingClient {
555
601
  // Internal ETH Staking client helper functions
556
602
  // ---------------------------------------------------------------------
557
603
 
558
- // ! This is a temporary measure for Hoodi testnet because there is no aggregator deployed
559
- // private async updateMockAggregatorPrice() {
560
- // const aggregator = this.contract.MockAggregator;
561
-
562
- // // read latest round & compute age
563
- // const [roundId, answer, startedAt, updatedAt, answeredInRound] = await aggregator.latestRoundData();
564
- // const now = (await this.provider.getBlock("latest")).timestamp;
565
- // const ageSec = Number(now) - Number(updatedAt);
566
-
567
- // const ONE_HOUR = 1 * 3600;
568
- // // const ONE_HOUR = 10;
569
- // if (ageSec > ONE_HOUR) {
570
- // // safety check - only run in non-production contexts
571
- // const network = await this.provider.getNetwork();
572
- // const chainId = network.chainId;
573
- // const allowedTestChains = new Set([560048]);
574
- // if (!allowedTestChains.has(chainId)) {
575
- // console.warn(`MockAggregator is stale (${ageSec}s) but chainId ${chainId} is not a test/local network — skipping update.`);
576
- // return;
577
- // }
604
+ // ! This is a temporary measure for testnet because there is no aggregator deployed
605
+ /*
606
+ private async updateMockAggregatorPrice() {
607
+ const aggregator = this.contract.MockAggregator;
608
+
609
+ // read latest round & compute age
610
+ const [roundId, answer, startedAt, updatedAt, answeredInRound] = await aggregator.latestRoundData();
611
+ const now = (await this.provider.getBlock("latest")).timestamp;
612
+ const ageSec = Number(now) - Number(updatedAt);
613
+
614
+ const ONE_HOUR = 1 * 3600;
615
+ // const ONE_HOUR = 10;
616
+ if (ageSec > ONE_HOUR) {
617
+ console.log('Attempt to run updateMockAggregatorPrice - MockAggregator price is stale by', ageSec, 'seconds - updating price before proceeding with buy...');
618
+
619
+ // safety check - only run in non-production contexts
620
+ const network = await this.provider.getNetwork();
621
+ const chainId = network.chainId;
622
+ const allowedTestChains = new Set([Number(EVM_WIRE_DEVNET_CHAIN_ID)]);
623
+ if (!allowedTestChains.has(chainId)) {
624
+ console.warn(`MockAggregator is stale (${ageSec}s) but chainId ${chainId} is not a test/local network — skipping update.`);
625
+ return;
626
+ }
578
627
 
579
628
 
580
- // //fetch the current ETH / USD price
581
- // const res = await fetch('https://api.coingecko.com/api/v3/simple/price?ids=ethereum&vs_currencies=usd');
582
- // const data = await res.json();
583
- // const ethUsd = data.ethereum.usd;
629
+ //fetch the current ETH / USD price
630
+ const res = await fetch('https://api.coingecko.com/api/v3/simple/price?ids=ethereum&vs_currencies=usd');
631
+ const data = await res.json();
632
+ const ethUsd = data.ethereum.usd;
584
633
 
585
- // const currentEthPrice = ethers.utils.parseUnits(ethUsd.toString(), 8);
634
+ const currentEthPrice = ethers.utils.parseUnits(ethUsd.toString(), 8);
586
635
 
587
- // try {
588
- // //update to be intentionally stale
589
- // // const alttx = await aggregator.updateStale(currentEthPrice, now - 7200);
590
- // // const altreceipt = await alttx.wait(1);
591
- // // console.log('stale update receipt', altreceipt)
636
+ console.log('currentEthPrice', currentEthPrice.toString())
592
637
 
593
- // //update answer with current timestamp
594
- // const tx = await aggregator.updateAnswer(currentEthPrice);
595
- // const txreceipt = await tx.wait(1);
596
- // // console.log('MockAggregator answer updated - receipt:', txreceipt)
597
- // } catch (err: any) {
598
- // console.error('MockAggregator updateAnswer failed', err?.message || err);
599
- // }
600
- // } else {
601
- // console.log(`MockAggregator updated ${ageSec}s ago — no update needed`);
602
- // }
603
- // }
638
+ try {
639
+ //update to be intentionally stale
640
+ // const alttx = await aggregator.updateStale(currentEthPrice, now - 7200);
641
+ // const altreceipt = await alttx.wait(1);
642
+ // console.log('stale update receipt', altreceipt)
643
+
644
+ //update answer with current timestamp
645
+ const tx = await aggregator.updateAnswer(currentEthPrice);
646
+ const txreceipt = await tx.wait(1);
647
+ console.log('MockAggregator answer updated - receipt:', txreceipt)
648
+ return txreceipt
649
+ } catch (err: any) {
650
+ console.error('MockAggregator updateAnswer failed', err?.message || err);
651
+ }
652
+ } else {
653
+ console.log(`MockAggregator updated ${ageSec}s ago — no update needed`);
654
+ }
655
+ }
656
+
657
+
658
+ private async fixOppTooManyAttestations() {
659
+ const opp = this.contract.OPP;
660
+ const outpostManager = this.contract.OutpostManager;
661
+
662
+ const [authority, pendingCountRaw, maxRaw, sendModeTagRaw] = await Promise.all([
663
+ opp.authority(),
664
+ opp.pendingAttestationCount(),
665
+ opp.MESSAGE_EPOCH_MAX_ATTESTATIONS(),
666
+ opp.sendModeTag(),
667
+ ]);
668
+
669
+ const toBigInt = (v: any) => (typeof v === "bigint" ? v : BigInt(v.toString()));
670
+ const pendingCount = toBigInt(pendingCountRaw);
671
+ const maxAttestations = toBigInt(maxRaw);
672
+ const sendModeTag = toBigInt(sendModeTagRaw);
673
+
674
+ console.log(`OPP status: authority=${authority}, pendingAttestationCount=${pendingCount}, MESSAGE_EPOCH_MAX_ATTESTATIONS=${maxAttestations}, sendModeTag=${sendModeTag}`);
675
+
676
+ if (sendModeTag === 0n) {
677
+ console.log("OPP is not in send mode.");
678
+ // return;
679
+ }
680
+
681
+ const shouldBumpMax = maxAttestations === 1n || pendingCount > maxAttestations;
682
+ if (!shouldBumpMax) {
683
+ console.log(
684
+ `No fix needed: pendingAttestationCount=${pendingCount} <= MESSAGE_EPOCH_MAX_ATTESTATIONS=${maxAttestations}`,
685
+ );
686
+ // return;
687
+ }
688
+
689
+ console.log(
690
+ `OPP bump needed (pending=${pendingCount}, max=${maxAttestations}) — attempting to set new max and ${sendModeTag === 0n ? 'skip' : 'call'} exitSendMode(${sendModeTag})...`
691
+ );
692
+
693
+ console.log(await this.provider.getNetwork());
694
+
695
+
696
+
697
+ // safety check to only run in testnet
698
+ const network = await this.provider.getNetwork();
699
+ const chainId = toBigInt(network.chainId);
700
+ const allowedTestChains = new Set<bigint>([BigInt(Number(EVM_WIRE_DEVNET_CHAIN_ID))]);
701
+ if (!allowedTestChains.has(chainId)) {
702
+ console.warn(
703
+ `Refusing to modify OPP config on chainId ${chainId}. Add it to allowedTestChains if this is expected.`
704
+ );
705
+ return;
706
+ }
707
+
708
+ // minimal bump bump: set max to pendingCount (or a small default when max was 1) + buffer.
709
+ const base = pendingCount > 0n ? pendingCount : 1n;
710
+ // const newMax = base + 2n; // add a small buffer to prevent immediate recurrence
711
+ const newMax = 1n; // add a small buffer to prevent immediate recurrence
712
+
713
+ const encodeOppCall = (fn: string, args: any[]) =>
714
+ opp.interface.encodeFunctionData(fn, args);
715
+
716
+ try {
717
+ const data = encodeOppCall('setMessageEpochMaxAttestations', [newMax]);
718
+ await outpostManager.callStatic.execute(opp.address, data);
719
+ console.log('OutpostManager.execute(callStatic) setMessageEpochMaxAttestations passed');
720
+ } catch (e) {
721
+ console.error('OutpostManager.execute(callStatic) setMessageEpochMaxAttestations revert:', e);
722
+ }
723
+
724
+
725
+ try {
726
+ const data1 = encodeOppCall('setMessageEpochMaxAttestations', [newMax]);
727
+ const tx1 = await outpostManager.execute(opp.address, data1, {
728
+ gasLimit: 500_000,
729
+ });
730
+ const receipt1 = await tx1.wait(1);
731
+ console.log("setMessageEpochMaxAttestations confirmed:", receipt1);
732
+
733
+ if (sendModeTag !== 0n) {
734
+ const data2 = encodeOppCall('exitSendMode', [sendModeTag]);
735
+ const tx2 = await outpostManager.execute(opp.address, data2, {
736
+ gasLimit: 500_000,
737
+ });
738
+ const receipt2 = await tx2.wait(1);
739
+ console.log("exitSendMode confirmed:", receipt2);
740
+ return { setMaxReceipt: receipt1, exitReceipt: receipt2 };
741
+ }
742
+
743
+ return { setMaxReceipt: receipt1 };
744
+ } catch (err: any) {
745
+ let errorObj = formatContractErrors(err);
746
+ console.error("fixOppTooManyAttestations failed:", err?.message || err, errorObj);
747
+ }
748
+ }
749
+ */
604
750
  }
@@ -16,6 +16,9 @@ export interface CustomContractError {
16
16
  raw: string;
17
17
  }
18
18
 
19
+ const DEFAULT_WRITE_GAS_PADDING_BPS = 2_000;
20
+ const DEFAULT_WRITE_GAS_FALLBACK_LIMIT = ethers.BigNumber.from(8_000_000);
21
+
19
22
 
20
23
 
21
24
  export function formatContractErrors(err: any): CustomContractError {
@@ -110,6 +113,55 @@ export async function sendOPPFinalize(opp: ethers.Contract, gasLimit?: ethers.Bi
110
113
  }
111
114
  }
112
115
 
116
+ export async function resolveContractWriteOverrides(
117
+ contract: ethers.Contract,
118
+ method: string,
119
+ args: any[] = [],
120
+ overrides: Record<string, unknown> = {},
121
+ options?: {
122
+ fallbackGasLimit?: ethers.BigNumberish;
123
+ paddingBps?: number;
124
+ },
125
+ ): Promise<Record<string, unknown>> {
126
+ if (overrides['gasLimit'] != null) {
127
+ return overrides;
128
+ }
129
+
130
+ const paddingBps = options?.paddingBps ?? DEFAULT_WRITE_GAS_PADDING_BPS;
131
+ const fallbackGasLimit = ethers.BigNumber.from(
132
+ options?.fallbackGasLimit ?? DEFAULT_WRITE_GAS_FALLBACK_LIMIT,
133
+ );
134
+
135
+ try {
136
+ const estimateGas = contract.estimateGas?.[method];
137
+ if (typeof estimateGas !== 'function') {
138
+ return {
139
+ ...overrides,
140
+ gasLimit: fallbackGasLimit,
141
+ };
142
+ }
143
+
144
+ const estimated = await estimateGas(...args, overrides);
145
+ const gasLimit = ethers.BigNumber.from(estimated)
146
+ .mul(10_000 + paddingBps)
147
+ .div(10_000);
148
+
149
+ return {
150
+ ...overrides,
151
+ gasLimit,
152
+ };
153
+ } catch (error) {
154
+ console.warn(
155
+ `[EvmGas] estimateGas.${method} failed, using fallback gasLimit ${fallbackGasLimit.toString()}`,
156
+ error,
157
+ );
158
+ return {
159
+ ...overrides,
160
+ gasLimit: fallbackGasLimit,
161
+ };
162
+ }
163
+ }
164
+
113
165
 
114
166
  const BPS_DENOM = BigInt(10_000);
115
167
 
@@ -154,7 +206,7 @@ function usd1e18To1e8(raw: bigint): bigint {
154
206
  * - `currentPriceUsd` and `priceGrowthCents` are treated as 1e18-scaled USD.
155
207
  * - Output `priceUsd` is 1e8-scaled USD (for fromScale8()).
156
208
  */
157
- export function buildEthereumTrancheLadder(options: {
209
+ export function buildEvmTrancheLadder(options: {
158
210
  currentTranche: number;
159
211
  totalTrancheSupply: bigint; // not used in local window, but kept for API parity
160
212
  initialTrancheSupply: bigint;
@@ -242,7 +294,7 @@ export function buildEthereumTrancheLadder(options: {
242
294
  * Turn raw liqsol_core accounts into a chain-agnostic TrancheSnapshot for SOL.
243
295
  * All math stays here; TokenClient just wires accounts + connection.
244
296
  */
245
- export async function buildEthereumTrancheSnapshot(options: {
297
+ export async function buildEvmTrancheSnapshot(options: {
246
298
  chainID: ChainID;
247
299
  totalSharesBn;
248
300
  indexBn;
@@ -310,7 +362,7 @@ export async function buildEthereumTrancheSnapshot(options: {
310
362
 
311
363
  // ---- Build ladder ----
312
364
 
313
- const ladder = buildEthereumTrancheLadder({
365
+ const ladder = buildEvmTrancheLadder({
314
366
  currentTranche,
315
367
  totalTrancheSupply: totalTrancheSupplyBig,
316
368
  initialTrancheSupply: initialTrancheSupplyBig,
@@ -337,4 +389,4 @@ export async function buildEthereumTrancheSnapshot(options: {
337
389
  nativePriceTimestamp,
338
390
  ladder,
339
391
  };
340
- }
392
+ }
@@ -1,4 +1,4 @@
1
- import { AnchorProvider, BN, Program } from '@coral-xyz/anchor';
1
+ import { AnchorProvider, BN } from '@coral-xyz/anchor';
2
2
  import {
3
3
  SystemProgram,
4
4
  TransactionInstruction,
@@ -17,7 +17,7 @@ import {
17
17
  getAssociatedTokenAddressSync,
18
18
  } from '@solana/spl-token';
19
19
 
20
- import { LiqsolCoreClientIdl, SolanaProgramService } from '../program';
20
+ import { SolanaProgramService } from '../program';
21
21
  import { GlobalAccount, ReceiptData, WalletLike } from '../types';
22
22
  import { BalanceView, WithdrawReceipt } from '../../../types';
23
23
  import { normalizeToBigInt } from '../utils';
@@ -30,7 +30,7 @@ import { normalizeToBigInt } from '../utils';
30
30
  * - build claim_withdraw instruction
31
31
  */
32
32
  export class ConvertClient {
33
- private program: Program<LiqsolCoreClientIdl>;
33
+ private program: any;
34
34
 
35
35
  get connection(): Connection {
36
36
  return this.provider.connection;
@@ -54,6 +54,7 @@ export class ConvertClient {
54
54
  amount: bigint,
55
55
  user = this.wallet.publicKey,
56
56
  ): Promise<TransactionInstruction> {
57
+ const program = this.program;
57
58
  if (!user) throw new Error('ConvertClient.buildDepositTx: wallet not connected');
58
59
  if (!amount || amount <= BigInt(0))
59
60
  throw new Error('ConvertClient.buildDepositTx: amount must be greater than zero.');
@@ -82,7 +83,7 @@ export class ConvertClient {
82
83
  const seed = Math.floor(Math.random() * 2 ** 32);
83
84
  const ephemeralStake = await this.pgs.deriveEphemeralStakeAddress(user, seed);
84
85
 
85
- return await this.program.methods
86
+ return await program.methods
86
87
  .deposit(new BN(amount.toString()), seed)
87
88
  .accounts({
88
89
  user,
@@ -114,6 +115,38 @@ export class ConvertClient {
114
115
  .instruction();
115
116
  }
116
117
 
118
+ async buildRegisterUserIx(
119
+ user = this.wallet.publicKey,
120
+ ): Promise<TransactionInstruction> {
121
+ const program = this.program;
122
+ if (!user) throw new Error('ConvertClient.buildRegisterUserIx: wallet not connected');
123
+
124
+ const liqsolMint = this.pgs.deriveLiqsolMintPda();
125
+ const distributionState = this.pgs.deriveDistributionStatePda();
126
+ const bucketAuthority = this.pgs.deriveBucketAuthorityPda();
127
+ const userAta = getAssociatedTokenAddressSync(liqsolMint, user, true, TOKEN_2022_PROGRAM_ID);
128
+ const userRecord = this.pgs.deriveUserRecordPda(userAta);
129
+ const bucketTokenAccount = getAssociatedTokenAddressSync(
130
+ liqsolMint,
131
+ bucketAuthority,
132
+ true,
133
+ TOKEN_2022_PROGRAM_ID,
134
+ );
135
+
136
+ return program.methods
137
+ .registerUser()
138
+ .accounts({
139
+ payer: user,
140
+ userAta,
141
+ userRecord,
142
+ distributionState,
143
+ bucketAuthority,
144
+ bucketTokenAccount,
145
+ systemProgram: SystemProgram.programId,
146
+ })
147
+ .instruction();
148
+ }
149
+
117
150
  /**
118
151
  * Build a withdraw-request instruction (liqSOL burn -> NFT receipt).
119
152
  */
@@ -121,6 +154,7 @@ export class ConvertClient {
121
154
  amount: bigint,
122
155
  user = this.wallet.publicKey,
123
156
  ): Promise<TransactionInstruction> {
157
+ const program = this.program;
124
158
  if (!user) throw new Error('ConvertClient.buildWithdrawTx: wallet not connected');
125
159
  if (!amount || amount <= BigInt(0))
126
160
  throw new Error('ConvertClient.buildWithdrawTx: amount must be greater than zero.');
@@ -137,7 +171,7 @@ export class ConvertClient {
137
171
  const maintenanceLedger = this.pgs.deriveMaintenanceLedgerPda();
138
172
  const globalConfig = this.pgs.deriveGlobalConfigPda();
139
173
 
140
- const globalAcct: GlobalAccount = await this.program.account.global.fetch(global);
174
+ const globalAcct: GlobalAccount = await program.account.global.fetch(global);
141
175
  const rawId = globalAcct.nextReceiptId;
142
176
  const receiptId = normalizeToBigInt(rawId);
143
177
 
@@ -156,7 +190,7 @@ export class ConvertClient {
156
190
  TOKEN_2022_PROGRAM_ID,
157
191
  );
158
192
 
159
- return await this.program.methods
193
+ return await program.methods
160
194
  .requestWithdraw(new BN(amount.toString()))
161
195
  .accounts({
162
196
  user,
@@ -191,8 +225,9 @@ export class ConvertClient {
191
225
  * Enumerate withdrawal receipt NFTs owned by `owner`.
192
226
  */
193
227
  async fetchWithdrawReceipts(owner: PublicKey): Promise<WithdrawReceipt[]> {
228
+ const program = this.program;
194
229
  const globalPda = this.pgs.deriveWithdrawGlobalPda();
195
- const globalAcct: GlobalAccount = await this.program.account.global.fetch(globalPda);
230
+ const globalAcct: GlobalAccount = await program.account.global.fetch(globalPda);
196
231
  const nextId = normalizeToBigInt(globalAcct.nextReceiptId);
197
232
 
198
233
  const mintToId = new Map<string, bigint>();
@@ -208,7 +243,7 @@ export class ConvertClient {
208
243
  const receipts: WithdrawReceipt[] = [];
209
244
 
210
245
  for (const { pubkey, account } of tokenAccounts.value) {
211
- const info: any = account.data?.['parsed']?.info;
246
+ const info = account.data?.['parsed']?.info;
212
247
  if (!info) continue;
213
248
  const amount = info.tokenAmount;
214
249
  const decimals = Number(amount?.decimals ?? 0);
@@ -225,7 +260,7 @@ export class ConvertClient {
225
260
 
226
261
  let receiptData: ReceiptData;
227
262
  try {
228
- const raw = await this.program.account.liqReceiptData.fetch(receiptDataPda);
263
+ const raw = await program.account.liqReceiptData.fetch(receiptDataPda);
229
264
  receiptData = {
230
265
  receiptId: normalizeToBigInt(raw.receiptId),
231
266
  liqports: normalizeToBigInt(raw.liqports),
@@ -270,6 +305,7 @@ export class ConvertClient {
270
305
  receiptId: bigint,
271
306
  user: PublicKey,
272
307
  ): Promise<TransactionInstruction> {
308
+ const program = this.program;
273
309
  const mintAccount = this.pgs.deriveWithdrawNftMintPda(receiptId);
274
310
  const receiptData = this.pgs.deriveLiqReceiptDataPda(mintAccount);
275
311
  const ownerAta = getAssociatedTokenAddressSync(
@@ -297,7 +333,7 @@ export class ConvertClient {
297
333
  associatedTokenProgram: ASSOCIATED_TOKEN_PROGRAM_ID,
298
334
  };
299
335
 
300
- return this.program.methods.claimWithdraw().accounts(accounts).instruction();
336
+ return program.methods.claimWithdraw().accounts(accounts).instruction();
301
337
  }
302
338
 
303
339
  /**
@@ -338,4 +374,4 @@ export class ConvertClient {
338
374
  const etaMs = Math.max(0, Math.round(etaSeconds * 1000));
339
375
  return { etaMs, readyAtMs: Date.now() + etaMs };
340
376
  }
341
- }
377
+ }