@wireio/stake 2.7.4 → 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 (470) hide show
  1. package/README.md +34 -15
  2. package/lib/stake.browser.js +50561 -13484
  3. package/lib/stake.browser.js.map +1 -1
  4. package/lib/stake.d.ts +564 -15719
  5. package/lib/stake.js +47546 -10288
  6. package/lib/stake.js.map +1 -1
  7. package/lib/stake.m.js +50561 -13484
  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/validator_leaderboard.json.bak +568 -0
  242. package/src/assets/solana/wiredev/idl/liqsol_core.json +8726 -0
  243. package/src/assets/solana/wiredev/idl/liqsol_token.json +217 -0
  244. package/src/assets/solana/wiredev/idl/transfer_hook.json +490 -0
  245. package/src/assets/solana/wiredev/idl/validator_leaderboard.json +735 -0
  246. package/src/assets/solana/wiredev/types/liqsol_core.ts +8732 -0
  247. package/src/assets/solana/wiredev/types/liqsol_token.ts +223 -0
  248. package/src/assets/solana/wiredev/types/transfer_hook.ts +496 -0
  249. package/src/assets/solana/wiredev/types/validator_leaderboard.ts +741 -0
  250. package/src/chains.ts +165 -0
  251. package/src/index.ts +7 -3
  252. package/src/networks/{ethereum → evm}/clients/convert.client.ts +8 -3
  253. package/src/networks/evm/clients/instaswap.client.ts +440 -0
  254. package/src/networks/{ethereum → evm}/clients/opp.client.ts +3 -3
  255. package/src/networks/{ethereum → evm}/clients/pretoken.client.ts +11 -6
  256. package/src/networks/{ethereum → evm}/clients/receipt.client.ts +3 -3
  257. package/src/networks/{ethereum → evm}/clients/stake.client.ts +144 -20
  258. package/src/networks/{ethereum → evm}/clients/validator.client.ts +3 -3
  259. package/src/networks/{ethereum → evm}/contract.ts +207 -116
  260. package/src/networks/{ethereum/ethereum.ts → evm/evm.ts} +214 -68
  261. package/src/networks/{ethereum → evm}/utils.ts +56 -4
  262. package/src/networks/solana/clients/convert.client.ts +47 -11
  263. package/src/networks/solana/clients/distribution.client.ts +17 -13
  264. package/src/networks/solana/clients/instaswap.client.ts +486 -0
  265. package/src/networks/solana/clients/leaderboard.client.ts +4 -5
  266. package/src/networks/solana/clients/outpost.client.ts +110 -47
  267. package/src/networks/solana/clients/token.client.ts +20 -11
  268. package/src/networks/solana/constants.ts +27 -7
  269. package/src/networks/solana/program.ts +104 -19
  270. package/src/networks/solana/solana.ts +145 -15
  271. package/src/networks/solana/types.ts +1 -2
  272. package/src/networks/solana/utils.ts +36 -4
  273. package/src/staker.ts +22 -20
  274. package/src/status.ts +301 -0
  275. package/src/types.ts +6 -11
  276. /package/src/assets/{ethereum → evm}/mainnet/common/Base58.sol/Base58.dbg.json +0 -0
  277. /package/src/assets/{ethereum → evm}/mainnet/common/Base58.sol/Base58.json +0 -0
  278. /package/src/assets/{ethereum → evm}/mainnet/common/OpenZepArtifacts.sol/__Dummy_OZ_UUPS__.dbg.json +0 -0
  279. /package/src/assets/{ethereum → evm}/mainnet/common/OpenZepArtifacts.sol/__Dummy_OZ_UUPS__.json +0 -0
  280. /package/src/assets/{ethereum → evm}/mainnet/common/RestrictedCallers.sol/RestrictedCallers.dbg.json +0 -0
  281. /package/src/assets/{ethereum → evm}/mainnet/common/RestrictedCallers.sol/RestrictedCallers.json +0 -0
  282. /package/src/assets/{ethereum → evm}/mainnet/common/iodata.sol/iodata.dbg.json +0 -0
  283. /package/src/assets/{ethereum → evm}/mainnet/common/iodata.sol/iodata.json +0 -0
  284. /package/src/assets/{ethereum → evm}/mainnet/common/iodata_util.sol/iodata_util.dbg.json +0 -0
  285. /package/src/assets/{ethereum → evm}/mainnet/common/iodata_util.sol/iodata_util.json +0 -0
  286. /package/src/assets/{ethereum → evm}/mainnet/common/sysio_data.sol/sysio_data.dbg.json +0 -0
  287. /package/src/assets/{ethereum → evm}/mainnet/common/sysio_data.sol/sysio_data.json +0 -0
  288. /package/src/assets/{ethereum → evm}/mainnet/common/sysio_errors.sol/sysio_errors.dbg.json +0 -0
  289. /package/src/assets/{ethereum → evm}/mainnet/common/sysio_errors.sol/sysio_errors.json +0 -0
  290. /package/src/assets/{ethereum → evm}/mainnet/common/sysio_merkle.sol/sysio_merkle.dbg.json +0 -0
  291. /package/src/assets/{ethereum → evm}/mainnet/common/sysio_merkle.sol/sysio_merkle.json +0 -0
  292. /package/src/assets/{ethereum → evm}/mainnet/common/sysio_name.sol/sysio_name.dbg.json +0 -0
  293. /package/src/assets/{ethereum → evm}/mainnet/common/sysio_name.sol/sysio_name.json +0 -0
  294. /package/src/assets/{ethereum → evm}/mainnet/common/sysio_pubkey.sol/sysio_pubkey.dbg.json +0 -0
  295. /package/src/assets/{ethereum → evm}/mainnet/common/sysio_pubkey.sol/sysio_pubkey.json +0 -0
  296. /package/src/assets/{ethereum → evm}/mainnet/common/sysio_read.sol/sysio_read.dbg.json +0 -0
  297. /package/src/assets/{ethereum → evm}/mainnet/common/sysio_read.sol/sysio_read.json +0 -0
  298. /package/src/assets/{ethereum → evm}/mainnet/common/sysio_tester.sol/SysioTester.dbg.json +0 -0
  299. /package/src/assets/{ethereum → evm}/mainnet/common/sysio_tester.sol/SysioTester.json +0 -0
  300. /package/src/assets/{ethereum → evm}/mainnet/common/sysio_verify.sol/sysio_verify.dbg.json +0 -0
  301. /package/src/assets/{ethereum → evm}/mainnet/common/sysio_verify.sol/sysio_verify.json +0 -0
  302. /package/src/assets/{ethereum → evm}/mainnet/common/sysio_write.sol/sysio_write.dbg.json +0 -0
  303. /package/src/assets/{ethereum → evm}/mainnet/common/sysio_write.sol/sysio_write.json +0 -0
  304. /package/src/assets/{ethereum → evm}/mainnet/liqEth/BeaconState.sol/BeaconState.dbg.json +0 -0
  305. /package/src/assets/{ethereum → evm}/mainnet/liqEth/BeaconState.sol/BeaconState.json +0 -0
  306. /package/src/assets/{ethereum → evm}/mainnet/liqEth/DepositManager.sol/DepositManagerV2.dbg.json +0 -0
  307. /package/src/assets/{ethereum → evm}/mainnet/liqEth/DepositManager.sol/DepositManagerV2.json +0 -0
  308. /package/src/assets/{ethereum → evm}/mainnet/liqEth/DepositManager.sol/IStakingModuleBondLocker.dbg.json +0 -0
  309. /package/src/assets/{ethereum → evm}/mainnet/liqEth/DepositManager.sol/IStakingModuleBondLocker.json +0 -0
  310. /package/src/assets/{ethereum → evm}/mainnet/liqEth/KeyBondManager.sol/KeyBondManager.dbg.json +0 -0
  311. /package/src/assets/{ethereum → evm}/mainnet/liqEth/KeyBondManager.sol/KeyBondManager.json +0 -0
  312. /package/src/assets/{ethereum → evm}/mainnet/liqEth/LiqEthAuthority.sol/LiqEthAuthority.dbg.json +0 -0
  313. /package/src/assets/{ethereum → evm}/mainnet/liqEth/LiqEthAuthority.sol/LiqEthAuthority.json +0 -0
  314. /package/src/assets/{ethereum → evm}/mainnet/liqEth/LiqEthCommon.sol/IDepositContract.dbg.json +0 -0
  315. /package/src/assets/{ethereum → evm}/mainnet/liqEth/LiqEthCommon.sol/IDepositContract.json +0 -0
  316. /package/src/assets/{ethereum → evm}/mainnet/liqEth/LiqEthCommon.sol/IDepositManager.dbg.json +0 -0
  317. /package/src/assets/{ethereum → evm}/mainnet/liqEth/LiqEthCommon.sol/IDepositManager.json +0 -0
  318. /package/src/assets/{ethereum → evm}/mainnet/liqEth/LiqEthCommon.sol/IKeyBondManager.dbg.json +0 -0
  319. /package/src/assets/{ethereum → evm}/mainnet/liqEth/LiqEthCommon.sol/IKeyBondManager.json +0 -0
  320. /package/src/assets/{ethereum → evm}/mainnet/liqEth/LiqEthCommon.sol/ILiqEthUpgradeable.dbg.json +0 -0
  321. /package/src/assets/{ethereum → evm}/mainnet/liqEth/LiqEthCommon.sol/ILiqEthUpgradeable.json +0 -0
  322. /package/src/assets/{ethereum → evm}/mainnet/liqEth/LiqEthCommon.sol/IRewardsERC20.dbg.json +0 -0
  323. /package/src/assets/{ethereum → evm}/mainnet/liqEth/LiqEthCommon.sol/IRewardsERC20.json +0 -0
  324. /package/src/assets/{ethereum → evm}/mainnet/liqEth/LiqEthCommon.sol/IRewardsERC20Pausable.dbg.json +0 -0
  325. /package/src/assets/{ethereum → evm}/mainnet/liqEth/LiqEthCommon.sol/IRewardsERC20Pausable.json +0 -0
  326. /package/src/assets/{ethereum → evm}/mainnet/liqEth/LiqEthCommon.sol/IStakingModule.dbg.json +0 -0
  327. /package/src/assets/{ethereum → evm}/mainnet/liqEth/LiqEthCommon.sol/IStakingModule.json +0 -0
  328. /package/src/assets/{ethereum → evm}/mainnet/liqEth/LiqEthCommon.sol/IValidatorBalanceVerifier.dbg.json +0 -0
  329. /package/src/assets/{ethereum → evm}/mainnet/liqEth/LiqEthCommon.sol/IValidatorBalanceVerifier.json +0 -0
  330. /package/src/assets/{ethereum → evm}/mainnet/liqEth/LiqEthCommon.sol/IWithdrawalRecord.dbg.json +0 -0
  331. /package/src/assets/{ethereum → evm}/mainnet/liqEth/LiqEthCommon.sol/IWithdrawalRecord.json +0 -0
  332. /package/src/assets/{ethereum → evm}/mainnet/liqEth/LiqEthCommon.sol/LiqEthCommon.dbg.json +0 -0
  333. /package/src/assets/{ethereum → evm}/mainnet/liqEth/LiqEthCommon.sol/LiqEthCommon.json +0 -0
  334. /package/src/assets/{ethereum → evm}/mainnet/liqEth/LiqEthDeepFreeze.sol/LiqEthDeepFreeze.dbg.json +0 -0
  335. /package/src/assets/{ethereum → evm}/mainnet/liqEth/LiqEthDeepFreeze.sol/LiqEthDeepFreeze.json +0 -0
  336. /package/src/assets/{ethereum → evm}/mainnet/liqEth/LiqEthManaged.sol/LiqEthManaged.dbg.json +0 -0
  337. /package/src/assets/{ethereum → evm}/mainnet/liqEth/LiqEthManaged.sol/LiqEthManaged.json +0 -0
  338. /package/src/assets/{ethereum → evm}/mainnet/liqEth/RewardsERC20.sol/RewardsERC20UpgradeableV2.dbg.json +0 -0
  339. /package/src/assets/{ethereum → evm}/mainnet/liqEth/RewardsERC20.sol/RewardsERC20UpgradeableV2.json +0 -0
  340. /package/src/assets/{ethereum → evm}/mainnet/liqEth/RewardsERC20Pausable.sol/RewardsERC20PausableUpgradeableV2.dbg.json +0 -0
  341. /package/src/assets/{ethereum → evm}/mainnet/liqEth/RewardsERC20Pausable.sol/RewardsERC20PausableUpgradeableV2.json +0 -0
  342. /package/src/assets/{ethereum → evm}/mainnet/liqEth/StakingLib.sol/StakingLib.dbg.json +0 -0
  343. /package/src/assets/{ethereum → evm}/mainnet/liqEth/StakingLib.sol/StakingLib.json +0 -0
  344. /package/src/assets/{ethereum → evm}/mainnet/liqEth/Yield.sol/YieldOracle.dbg.json +0 -0
  345. /package/src/assets/{ethereum → evm}/mainnet/liqEth/Yield.sol/YieldOracle.json +0 -0
  346. /package/src/assets/{ethereum → evm}/mainnet/liqEth/liqEth.sol/LiqEthTokenV2.dbg.json +0 -0
  347. /package/src/assets/{ethereum → evm}/mainnet/liqEth/liqEth.sol/LiqEthTokenV2.json +0 -0
  348. /package/src/assets/{ethereum → evm}/mainnet/liqEth/stakingModule.sol/StakingModuleV2.dbg.json +0 -0
  349. /package/src/assets/{ethereum → evm}/mainnet/liqEth/stakingModule.sol/StakingModuleV2.json +0 -0
  350. /package/src/assets/{ethereum → evm}/mainnet/liqEth/v1/DepositManager.sol/DepositManager.dbg.json +0 -0
  351. /package/src/assets/{ethereum → evm}/mainnet/liqEth/v1/DepositManager.sol/DepositManager.json +0 -0
  352. /package/src/assets/{ethereum → evm}/mainnet/liqEth/v1/LiqEthCommon.sol/IAccounting.dbg.json +0 -0
  353. /package/src/assets/{ethereum → evm}/mainnet/liqEth/v1/LiqEthCommon.sol/IAccounting.json +0 -0
  354. /package/src/assets/{ethereum → evm}/mainnet/liqEth/v1/LiqEthCommon.sol/IDepositContract.dbg.json +0 -0
  355. /package/src/assets/{ethereum → evm}/mainnet/liqEth/v1/LiqEthCommon.sol/IDepositContract.json +0 -0
  356. /package/src/assets/{ethereum → evm}/mainnet/liqEth/v1/LiqEthCommon.sol/IDepositManager.dbg.json +0 -0
  357. /package/src/assets/{ethereum → evm}/mainnet/liqEth/v1/LiqEthCommon.sol/IDepositManager.json +0 -0
  358. /package/src/assets/{ethereum → evm}/mainnet/liqEth/v1/LiqEthCommon.sol/ILiqEthUpgradeable.dbg.json +0 -0
  359. /package/src/assets/{ethereum → evm}/mainnet/liqEth/v1/LiqEthCommon.sol/ILiqEthUpgradeable.json +0 -0
  360. /package/src/assets/{ethereum → evm}/mainnet/liqEth/v1/LiqEthCommon.sol/IRewardsERC20.dbg.json +0 -0
  361. /package/src/assets/{ethereum → evm}/mainnet/liqEth/v1/LiqEthCommon.sol/IRewardsERC20.json +0 -0
  362. /package/src/assets/{ethereum → evm}/mainnet/liqEth/v1/LiqEthCommon.sol/IRewardsERC20Pausable.dbg.json +0 -0
  363. /package/src/assets/{ethereum → evm}/mainnet/liqEth/v1/LiqEthCommon.sol/IRewardsERC20Pausable.json +0 -0
  364. /package/src/assets/{ethereum → evm}/mainnet/liqEth/v1/LiqEthCommon.sol/IStakingModule.dbg.json +0 -0
  365. /package/src/assets/{ethereum → evm}/mainnet/liqEth/v1/LiqEthCommon.sol/IStakingModule.json +0 -0
  366. /package/src/assets/{ethereum → evm}/mainnet/liqEth/v1/LiqEthCommon.sol/IValidatorBalanceVerifier.dbg.json +0 -0
  367. /package/src/assets/{ethereum → evm}/mainnet/liqEth/v1/LiqEthCommon.sol/IValidatorBalanceVerifier.json +0 -0
  368. /package/src/assets/{ethereum → evm}/mainnet/liqEth/v1/LiqEthCommon.sol/IWithdrawalRecord.dbg.json +0 -0
  369. /package/src/assets/{ethereum → evm}/mainnet/liqEth/v1/LiqEthCommon.sol/IWithdrawalRecord.json +0 -0
  370. /package/src/assets/{ethereum → evm}/mainnet/liqEth/v1/LiqEthCommon.sol/LiqEthCommon.dbg.json +0 -0
  371. /package/src/assets/{ethereum → evm}/mainnet/liqEth/v1/LiqEthCommon.sol/LiqEthCommon.json +0 -0
  372. /package/src/assets/{ethereum → evm}/mainnet/liqEth/v1/RewardsERC20.sol/RewardsERC20Upgradeable.dbg.json +0 -0
  373. /package/src/assets/{ethereum → evm}/mainnet/liqEth/v1/RewardsERC20.sol/RewardsERC20Upgradeable.json +0 -0
  374. /package/src/assets/{ethereum → evm}/mainnet/liqEth/v1/RewardsERC20Pausable.sol/RewardsERC20PausableUpgradeable.dbg.json +0 -0
  375. /package/src/assets/{ethereum → evm}/mainnet/liqEth/v1/RewardsERC20Pausable.sol/RewardsERC20PausableUpgradeable.json +0 -0
  376. /package/src/assets/{ethereum → evm}/mainnet/liqEth/v1/accounting.sol/Accounting.dbg.json +0 -0
  377. /package/src/assets/{ethereum → evm}/mainnet/liqEth/v1/accounting.sol/Accounting.json +0 -0
  378. /package/src/assets/{ethereum → evm}/mainnet/liqEth/v1/liqEth.sol/LiqEthToken.dbg.json +0 -0
  379. /package/src/assets/{ethereum → evm}/mainnet/liqEth/v1/liqEth.sol/LiqEthToken.json +0 -0
  380. /package/src/assets/{ethereum → evm}/mainnet/liqEth/v1/stakingModule.sol/StakingModule.dbg.json +0 -0
  381. /package/src/assets/{ethereum → evm}/mainnet/liqEth/v1/stakingModule.sol/StakingModule.json +0 -0
  382. /package/src/assets/{ethereum → evm}/mainnet/liqEth/withdrawalQueue.sol/WithdrawalQueue.dbg.json +0 -0
  383. /package/src/assets/{ethereum → evm}/mainnet/liqEth/withdrawalQueue.sol/WithdrawalQueue.json +0 -0
  384. /package/src/assets/{ethereum → evm}/mainnet/liqEth/withdrawalVault.sol/Uint64BE.dbg.json +0 -0
  385. /package/src/assets/{ethereum → evm}/mainnet/liqEth/withdrawalVault.sol/Uint64BE.json +0 -0
  386. /package/src/assets/{ethereum → evm}/mainnet/liqEth/withdrawalVault.sol/WithdrawalVault.dbg.json +0 -0
  387. /package/src/assets/{ethereum → evm}/mainnet/liqEth/withdrawalVault.sol/WithdrawalVault.json +0 -0
  388. /package/src/assets/{ethereum → evm}/mainnet/outpost/BAR.sol/BARV2.dbg.json +0 -0
  389. /package/src/assets/{ethereum → evm}/mainnet/outpost/BAR.sol/BARV2.json +0 -0
  390. /package/src/assets/{ethereum → evm}/mainnet/outpost/Depositor.sol/DepositorV2.dbg.json +0 -0
  391. /package/src/assets/{ethereum → evm}/mainnet/outpost/Depositor.sol/DepositorV2.json +0 -0
  392. /package/src/assets/{ethereum → evm}/mainnet/outpost/EthUsdPriceConsumer.sol/AggregatorV3Interface.dbg.json +0 -0
  393. /package/src/assets/{ethereum → evm}/mainnet/outpost/EthUsdPriceConsumer.sol/AggregatorV3Interface.json +0 -0
  394. /package/src/assets/{ethereum → evm}/mainnet/outpost/EthUsdPriceConsumer.sol/EthUsdPriceConsumer.dbg.json +0 -0
  395. /package/src/assets/{ethereum → evm}/mainnet/outpost/EthUsdPriceConsumer.sol/EthUsdPriceConsumer.json +0 -0
  396. /package/src/assets/{ethereum → evm}/mainnet/outpost/OPP.sol/OPP.dbg.json +0 -0
  397. /package/src/assets/{ethereum → evm}/mainnet/outpost/OPP.sol/OPP.json +0 -0
  398. /package/src/assets/{ethereum → evm}/mainnet/outpost/OPPCommon.sol/IOPP.dbg.json +0 -0
  399. /package/src/assets/{ethereum → evm}/mainnet/outpost/OPPCommon.sol/IOPP.json +0 -0
  400. /package/src/assets/{ethereum → evm}/mainnet/outpost/OPPCommon.sol/IOPPEndpoint.dbg.json +0 -0
  401. /package/src/assets/{ethereum → evm}/mainnet/outpost/OPPCommon.sol/IOPPEndpoint.json +0 -0
  402. /package/src/assets/{ethereum → evm}/mainnet/outpost/OPPCommon.sol/IOPPInbound.dbg.json +0 -0
  403. /package/src/assets/{ethereum → evm}/mainnet/outpost/OPPCommon.sol/IOPPInbound.json +0 -0
  404. /package/src/assets/{ethereum → evm}/mainnet/outpost/OPPCommon.sol/IOPPReceiver.dbg.json +0 -0
  405. /package/src/assets/{ethereum → evm}/mainnet/outpost/OPPCommon.sol/IOPPReceiver.json +0 -0
  406. /package/src/assets/{ethereum → evm}/mainnet/outpost/OPPCommon.sol/IOPPSender.dbg.json +0 -0
  407. /package/src/assets/{ethereum → evm}/mainnet/outpost/OPPCommon.sol/IOPPSender.json +0 -0
  408. /package/src/assets/{ethereum → evm}/mainnet/outpost/OPPCommon.sol/OPPCommon.dbg.json +0 -0
  409. /package/src/assets/{ethereum → evm}/mainnet/outpost/OPPCommon.sol/OPPCommon.json +0 -0
  410. /package/src/assets/{ethereum → evm}/mainnet/outpost/OPPEndpoint.sol/OPPEndpoint.dbg.json +0 -0
  411. /package/src/assets/{ethereum → evm}/mainnet/outpost/OPPEndpoint.sol/OPPEndpoint.json +0 -0
  412. /package/src/assets/{ethereum → evm}/mainnet/outpost/OPPEndpointManaged.sol/OPPEndpointManaged.dbg.json +0 -0
  413. /package/src/assets/{ethereum → evm}/mainnet/outpost/OPPEndpointManaged.sol/OPPEndpointManaged.json +0 -0
  414. /package/src/assets/{ethereum → evm}/mainnet/outpost/OPPEndpointOwnable.sol/OPPEndpointOwnable.dbg.json +0 -0
  415. /package/src/assets/{ethereum → evm}/mainnet/outpost/OPPEndpointOwnable.sol/OPPEndpointOwnable.json +0 -0
  416. /package/src/assets/{ethereum → evm}/mainnet/outpost/OPPErrors.sol/OPPErrors.dbg.json +0 -0
  417. /package/src/assets/{ethereum → evm}/mainnet/outpost/OPPErrors.sol/OPPErrors.json +0 -0
  418. /package/src/assets/{ethereum → evm}/mainnet/outpost/OPPInbound.sol/OPPInbound.dbg.json +0 -0
  419. /package/src/assets/{ethereum → evm}/mainnet/outpost/OPPInbound.sol/OPPInbound.json +0 -0
  420. /package/src/assets/{ethereum → evm}/mainnet/outpost/OPPReceiver.sol/OPPReceiver.dbg.json +0 -0
  421. /package/src/assets/{ethereum → evm}/mainnet/outpost/OPPReceiver.sol/OPPReceiver.json +0 -0
  422. /package/src/assets/{ethereum → evm}/mainnet/outpost/OPPSender.sol/OPPSender.dbg.json +0 -0
  423. /package/src/assets/{ethereum → evm}/mainnet/outpost/OPPSender.sol/OPPSender.json +0 -0
  424. /package/src/assets/{ethereum → evm}/mainnet/outpost/OutpostErrors.sol/OutpostErrors.dbg.json +0 -0
  425. /package/src/assets/{ethereum → evm}/mainnet/outpost/OutpostErrors.sol/OutpostErrors.json +0 -0
  426. /package/src/assets/{ethereum → evm}/mainnet/outpost/OutpostManaged.sol/OutpostManaged.dbg.json +0 -0
  427. /package/src/assets/{ethereum → evm}/mainnet/outpost/OutpostManaged.sol/OutpostManaged.json +0 -0
  428. /package/src/assets/{ethereum → evm}/mainnet/outpost/OutpostManager.sol/OutpostManagerV2.dbg.json +0 -0
  429. /package/src/assets/{ethereum → evm}/mainnet/outpost/OutpostManager.sol/OutpostManagerV2.json +0 -0
  430. /package/src/assets/{ethereum → evm}/mainnet/outpost/OutpostManagerAuthority.sol/OutpostManagerAuthority.dbg.json +0 -0
  431. /package/src/assets/{ethereum → evm}/mainnet/outpost/OutpostManagerAuthority.sol/OutpostManagerAuthority.json +0 -0
  432. /package/src/assets/{ethereum → evm}/mainnet/outpost/OutpostManagerCommon.sol/IOutpostManager.dbg.json +0 -0
  433. /package/src/assets/{ethereum → evm}/mainnet/outpost/OutpostManagerCommon.sol/IOutpostManager.json +0 -0
  434. /package/src/assets/{ethereum → evm}/mainnet/outpost/OutpostManagerCommon.sol/IOutpostUpgradeable.dbg.json +0 -0
  435. /package/src/assets/{ethereum → evm}/mainnet/outpost/OutpostManagerCommon.sol/IOutpostUpgradeable.json +0 -0
  436. /package/src/assets/{ethereum → evm}/mainnet/outpost/OutpostManagerCommon.sol/OutpostManagerCommon.dbg.json +0 -0
  437. /package/src/assets/{ethereum → evm}/mainnet/outpost/OutpostManagerCommon.sol/OutpostManagerCommon.json +0 -0
  438. /package/src/assets/{ethereum → evm}/mainnet/outpost/OutpostOwnable.sol/OutpostOwnable.dbg.json +0 -0
  439. /package/src/assets/{ethereum → evm}/mainnet/outpost/OutpostOwnable.sol/OutpostOwnable.json +0 -0
  440. /package/src/assets/{ethereum → evm}/mainnet/outpost/Pool.sol/PoolV2.dbg.json +0 -0
  441. /package/src/assets/{ethereum → evm}/mainnet/outpost/Pool.sol/PoolV2.json +0 -0
  442. /package/src/assets/{ethereum → evm}/mainnet/outpost/Pretoken.sol/PretokenV2.dbg.json +0 -0
  443. /package/src/assets/{ethereum → evm}/mainnet/outpost/Pretoken.sol/PretokenV2.json +0 -0
  444. /package/src/assets/{ethereum → evm}/mainnet/outpost/ReceiptNFT.sol/ReceiptNFT.dbg.json +0 -0
  445. /package/src/assets/{ethereum → evm}/mainnet/outpost/ReceiptNFT.sol/ReceiptNFT.json +0 -0
  446. /package/src/assets/{ethereum → evm}/mainnet/outpost/interfaces/IPretoken.sol/IPretoken.dbg.json +0 -0
  447. /package/src/assets/{ethereum → evm}/mainnet/outpost/interfaces/IPretoken.sol/IPretoken.json +0 -0
  448. /package/src/assets/{ethereum → evm}/mainnet/outpost/interfaces/IWarrant.sol/IWarrant.dbg.json +0 -0
  449. /package/src/assets/{ethereum → evm}/mainnet/outpost/interfaces/IWarrant.sol/IWarrant.json +0 -0
  450. /package/src/assets/{ethereum → evm}/mainnet/outpost/token/ERC721EthEquivalentVotesUpgradeable.sol/ERC721EthEquivalentVotesUpgradeable.dbg.json +0 -0
  451. /package/src/assets/{ethereum → evm}/mainnet/outpost/token/ERC721EthEquivalentVotesUpgradeable.sol/ERC721EthEquivalentVotesUpgradeable.json +0 -0
  452. /package/src/assets/{ethereum → evm}/mainnet/outpost/token/IERC721EthEquivalent.sol/IERC721EthEquivalent.dbg.json +0 -0
  453. /package/src/assets/{ethereum → evm}/mainnet/outpost/token/IERC721EthEquivalent.sol/IERC721EthEquivalent.json +0 -0
  454. /package/src/assets/{ethereum → evm}/mainnet/outpost/v1/BAR.sol/BAR.dbg.json +0 -0
  455. /package/src/assets/{ethereum → evm}/mainnet/outpost/v1/BAR.sol/BAR.json +0 -0
  456. /package/src/assets/{ethereum → evm}/mainnet/outpost/v1/Depositor.sol/Depositor.dbg.json +0 -0
  457. /package/src/assets/{ethereum → evm}/mainnet/outpost/v1/Depositor.sol/Depositor.json +0 -0
  458. /package/src/assets/{ethereum → evm}/mainnet/outpost/v1/OutpostManager.sol/OutpostManager.dbg.json +0 -0
  459. /package/src/assets/{ethereum → evm}/mainnet/outpost/v1/OutpostManager.sol/OutpostManager.json +0 -0
  460. /package/src/assets/{ethereum → evm}/mainnet/outpost/v1/Pool.sol/Pool.dbg.json +0 -0
  461. /package/src/assets/{ethereum → evm}/mainnet/outpost/v1/Pool.sol/Pool.json +0 -0
  462. /package/src/assets/{ethereum → evm}/mainnet/outpost/v1/Pretoken.sol/Pretoken.dbg.json +0 -0
  463. /package/src/assets/{ethereum → evm}/mainnet/outpost/v1/Pretoken.sol/Pretoken.json +0 -0
  464. /package/src/assets/{ethereum → evm}/mainnet/token/ERC1155Token.sol/ERC1155Token.dbg.json +0 -0
  465. /package/src/assets/{ethereum → evm}/mainnet/token/ERC1155Token.sol/ERC1155Token.json +0 -0
  466. /package/src/assets/{ethereum → evm}/mainnet/token/ERC20Token.sol/ERC20Token.dbg.json +0 -0
  467. /package/src/assets/{ethereum → evm}/mainnet/token/ERC20Token.sol/ERC20Token.json +0 -0
  468. /package/src/assets/{ethereum → evm}/mainnet/token/ERC721Token.sol/ERC721Token.dbg.json +0 -0
  469. /package/src/assets/{ethereum → evm}/mainnet/token/ERC721Token.sol/ERC721Token.json +0 -0
  470. /package/src/networks/{ethereum → evm}/types.ts +0 -0
@@ -1,8 +1,7 @@
1
- import { AnchorProvider, Program, BN } from '@coral-xyz/anchor';
1
+ import { AnchorProvider, BN } from '@coral-xyz/anchor';
2
2
  import { PublicKey, SystemProgram, TransactionInstruction } from '@solana/web3.js';
3
3
 
4
- import { LiqsolCoreClientIdl, SolanaProgramService } from '../program';
5
- import type { LiqsolCore } from '../../../assets/solana/devnet/types/liqsol_core';
4
+ import { SolanaProgramService } from '../program';
6
5
  import type { DistributionState, DistributionUserRecord, GlobalConfig, PayRateEntry, PayRateHistory } from '../types';
7
6
  import { getAssociatedTokenAddressSync, TOKEN_2022_PROGRAM_ID } from '@solana/spl-token';
8
7
  import { ceilDiv } from '../utils';
@@ -28,7 +27,7 @@ const INDEX_SCALE_BN = new BN('1000000000000');
28
27
  * - DistributionState + UserRecord track *shares* for yield.
29
28
  */
30
29
  export class DistributionClient {
31
- private program: Program<LiqsolCoreClientIdl>;
30
+ private program: any;
32
31
 
33
32
  constructor(
34
33
  private readonly provider: AnchorProvider,
@@ -57,8 +56,9 @@ export class DistributionClient {
57
56
  */
58
57
  async getDistributionState(): Promise<DistributionState | null> {
59
58
  const pda = this.pgs.deriveDistributionStatePda();
59
+ const program = this.program;
60
60
  try {
61
- return await this.program.account.distributionState.fetch(pda);
61
+ return await program.account.distributionState.fetch(pda);
62
62
  } catch {
63
63
  return null;
64
64
  }
@@ -72,9 +72,10 @@ export class DistributionClient {
72
72
  */
73
73
  async getPayRateHistory(): Promise<PayRateHistory | null> {
74
74
  const pda = this.pgs.derivePayRateHistoryPda();
75
+ const program = this.program;
75
76
  try {
76
77
  // Anchor types map directly onto our PayRateHistory TS type
77
- return (await this.program.account.payRateHistory.fetch(
78
+ return (await program.account.payRateHistory.fetch(
78
79
  pda,
79
80
  )) as PayRateHistory;
80
81
  } catch {
@@ -89,10 +90,11 @@ export class DistributionClient {
89
90
  */
90
91
  async getGlobalConfig(): Promise<GlobalConfig | null> {
91
92
  const pda = this.pgs.deriveGlobalConfigPda();
93
+ const program = this.program;
92
94
  try {
93
- return (await this.program.account.globalConfig.fetch(
95
+ return (await program.account.globalConfig.fetch(
94
96
  pda,
95
- ));
97
+ )) as GlobalConfig;
96
98
  } catch {
97
99
  return null;
98
100
  }
@@ -105,6 +107,7 @@ export class DistributionClient {
105
107
  async getUserRecord(
106
108
  ownerOrAta: PublicKey,
107
109
  ): Promise<DistributionUserRecord | null> {
110
+ const program = this.program;
108
111
  const liqsolMint = this.pgs.deriveLiqsolMintPda();
109
112
 
110
113
  // 1) Try treating ownerOrAta as a WALLET: derive its liqSOL ATA, then userRecord.
@@ -117,7 +120,7 @@ export class DistributionClient {
117
120
  );
118
121
  const pdaFromWallet = this.pgs.deriveUserRecordPda(ata);
119
122
  const recFromWallet =
120
- await this.program.account.userRecord.fetchNullable(pdaFromWallet);
123
+ await program.account.userRecord.fetchNullable(pdaFromWallet);
121
124
  if (recFromWallet) {
122
125
  return recFromWallet;
123
126
  }
@@ -128,7 +131,7 @@ export class DistributionClient {
128
131
  // 2) Fallback: treat ownerOrAta as already being the TOKEN ACCOUNT.
129
132
  try {
130
133
  const pdaFromAta = this.pgs.deriveUserRecordPda(ownerOrAta);
131
- return await this.program.account.userRecord.fetchNullable(pdaFromAta);
134
+ return await program.account.userRecord.fetchNullable(pdaFromAta);
132
135
  } catch {
133
136
  return null;
134
137
  }
@@ -234,6 +237,7 @@ export class DistributionClient {
234
237
  * Build claim_rewards instruction for a wallet.
235
238
  */
236
239
  async buildClaimRewardsIx(user: PublicKey): Promise<TransactionInstruction> {
240
+ const program = this.program;
237
241
  const liqsolMint = this.pgs.deriveLiqsolMintPda();
238
242
  const distributionState = this.pgs.deriveDistributionStatePda();
239
243
  const bucketAuthority = this.pgs.deriveBucketAuthorityPda();
@@ -255,7 +259,7 @@ export class DistributionClient {
255
259
  const bucketUserRecord = this.pgs.deriveUserRecordPda(bucketTokenAccount);
256
260
  const extraAccountMetaList = this.pgs.deriveExtraAccountMetaListPda(liqsolMint);
257
261
 
258
- return this.program.methods
262
+ return program.methods
259
263
  .claimRewards()
260
264
  .accounts({
261
265
  user,
@@ -297,7 +301,7 @@ export class DistributionClient {
297
301
  ? history.maxEntries
298
302
  : entries.length;
299
303
 
300
- const rawTotalAdded: any = history.totalEntriesAdded ?? 0;
304
+ const rawTotalAdded = history.totalEntriesAdded ?? 0;
301
305
  const totalAddedBn = new BN(rawTotalAdded.toString());
302
306
 
303
307
  // No valid entries written yet
@@ -330,7 +334,7 @@ export class DistributionClient {
330
334
  const zero = new BN(0);
331
335
 
332
336
  for (let i = 0; i < COUNT; i++) {
333
- const entry: any = entries[idx];
337
+ const entry : any = entries[idx];
334
338
  if (entry) {
335
339
  // Support both camelCase and snake_case (for safety)
336
340
  const rawScaled =
@@ -0,0 +1,486 @@
1
+ import { AnchorProvider, BN } from '@coral-xyz/anchor';
2
+ import {
3
+ Commitment,
4
+ ComputeBudgetProgram,
5
+ PublicKey,
6
+ SystemProgram,
7
+ TransactionSignature,
8
+ TransactionInstruction,
9
+ } from '@solana/web3.js';
10
+ import { getAssociatedTokenAddressSync, TOKEN_2022_PROGRAM_ID } from '@solana/spl-token';
11
+
12
+ import { buildOutpostAccounts, OutpostAccounts } from '../utils';
13
+ import { SolanaProgramService } from '../program';
14
+ import { ConvertClient } from './convert.client';
15
+
16
+ const commitment: Commitment = 'confirmed';
17
+ const DEFAULT_SOLANA_EPOCH_CAP = 32;
18
+
19
+ export type SolanaInstaswapSubmitParams = {
20
+ amountLamports: bigint;
21
+ destinationChain: number | string | bigint;
22
+ destinationAddress: Uint8Array;
23
+ minOutLamports: bigint;
24
+ };
25
+
26
+ export type SolanaInstaswapSubmitHooks = {
27
+ onSubmitted?: (signature: string) => void | Promise<void>;
28
+ };
29
+
30
+ export type SolanaDepositToWireParams = {
31
+ quantityLamports: bigint;
32
+ recipient: string;
33
+ };
34
+
35
+ export type SolanaInstaswapConnectedBalances = {
36
+ nativeLamports: string;
37
+ liqsolLamports: string;
38
+ liqsolDecimals: number;
39
+ };
40
+
41
+ export function buildSolanaInstaswapCrossChainAccounts(params: {
42
+ user: PublicKey;
43
+ accounts: OutpostAccounts;
44
+ liqsolCoreProgram: PublicKey;
45
+ transferHookProgram: PublicKey;
46
+ pendingAttestations: PublicKey;
47
+ }) {
48
+ const {
49
+ user,
50
+ accounts,
51
+ liqsolCoreProgram,
52
+ transferHookProgram,
53
+ pendingAttestations,
54
+ } = params;
55
+
56
+ return {
57
+ user,
58
+ globalState: accounts.globalState,
59
+ liqsolMint: accounts.liqsolMint,
60
+ distributionState: accounts.distributionState,
61
+ userAta: accounts.userAta,
62
+ senderUserRecord: accounts.userUserRecord,
63
+ bridgeAuthority: accounts.bridgeAuthority,
64
+ bridgeVaultAta: accounts.bridgeVaultAta,
65
+ bridgeUserRecord: accounts.bridgeUserRecord,
66
+ bridgeState: accounts.bridgeState,
67
+ extraAccountMetaList: accounts.extraAccountMetaList,
68
+ liqsolCoreProgram,
69
+ transferHookProgram,
70
+ bucketAuthority: accounts.bucketAuthority,
71
+ bucketTokenAccount: accounts.bucketTokenAccount,
72
+ bucketUserRecord: accounts.bucketUserRecord,
73
+ tokenProgram: TOKEN_2022_PROGRAM_ID,
74
+ systemProgram: SystemProgram.programId,
75
+ globalConfig: accounts.globalConfig,
76
+ oppEpochState: accounts.oppEpochState,
77
+ pendingAttestations,
78
+ };
79
+ }
80
+
81
+ export class SolanaInstaswapClient {
82
+ private readonly program: any;
83
+ private readonly convertClient: ConvertClient;
84
+
85
+ constructor(
86
+ private readonly provider: AnchorProvider,
87
+ private readonly pgs: SolanaProgramService,
88
+ private readonly submitInstructions?: (
89
+ ix: TransactionInstruction | TransactionInstruction[],
90
+ ) => Promise<string>,
91
+ ) {
92
+ this.program = pgs.getProgram('liqsolCore');
93
+ this.convertClient = new ConvertClient(provider, pgs);
94
+ }
95
+
96
+ async submitCrossChain(
97
+ params: SolanaInstaswapSubmitParams,
98
+ hooks?: SolanaInstaswapSubmitHooks,
99
+ ): Promise<string> {
100
+ const program = this.program;
101
+ const user = this.provider.wallet.publicKey;
102
+ if (!user) {
103
+ throw new Error('Connect a Solana wallet first.');
104
+ }
105
+
106
+ const accounts = await buildOutpostAccounts(this.provider.connection, user, this.pgs);
107
+ const amount = new BN(params.amountLamports.toString());
108
+ const destinationChain = new BN(params.destinationChain.toString());
109
+ const destinationAddress = Buffer.from(params.destinationAddress);
110
+ const minOut = new BN(params.minOutLamports.toString());
111
+
112
+ let pendingAttestations = accounts.pendingAttestations;
113
+ let signature = '';
114
+
115
+ try {
116
+ signature = await this.runRpcWithRecovery(() =>
117
+ program.methods
118
+ .instaswapCrossChain(
119
+ amount,
120
+ destinationChain,
121
+ destinationAddress,
122
+ minOut,
123
+ )
124
+ .accounts(
125
+ buildSolanaInstaswapCrossChainAccounts({
126
+ user,
127
+ accounts,
128
+ liqsolCoreProgram: this.program.programId,
129
+ transferHookProgram: this.pgs.PROGRAM_IDS.TRANSFER_HOOK,
130
+ pendingAttestations,
131
+ }),
132
+ )
133
+ .preInstructions([
134
+ ComputeBudgetProgram.setComputeUnitLimit({ units: 900_000 }),
135
+ ])
136
+ .rpc(),
137
+ );
138
+ } catch (error) {
139
+ if (!this.isEpochFinalizationRequired(error)) {
140
+ throw error;
141
+ }
142
+
143
+ await this.finalizeReadyEpoch(true);
144
+ const retryEpochNumber = await this.pgs.fetchOppEpochNumber(this.provider.connection);
145
+ pendingAttestations = this.pgs.derivePendingAttestationsPda(retryEpochNumber);
146
+
147
+ signature = await this.runRpcWithRecovery(() =>
148
+ program.methods
149
+ .instaswapCrossChain(
150
+ amount,
151
+ destinationChain,
152
+ destinationAddress,
153
+ minOut,
154
+ )
155
+ .accounts(
156
+ buildSolanaInstaswapCrossChainAccounts({
157
+ user,
158
+ accounts,
159
+ liqsolCoreProgram: this.program.programId,
160
+ transferHookProgram: this.pgs.PROGRAM_IDS.TRANSFER_HOOK,
161
+ pendingAttestations,
162
+ }),
163
+ )
164
+ .preInstructions([
165
+ ComputeBudgetProgram.setComputeUnitLimit({ units: 900_000 }),
166
+ ])
167
+ .rpc(),
168
+ );
169
+ }
170
+
171
+ await hooks?.onSubmitted?.(signature);
172
+ return signature;
173
+ }
174
+
175
+ async depositToWire(
176
+ params: SolanaDepositToWireParams,
177
+ hooks?: SolanaInstaswapSubmitHooks,
178
+ ): Promise<string> {
179
+ const program: any = this.program;
180
+ const user = this.provider.wallet.publicKey;
181
+ if (!user) {
182
+ throw new Error('Connect a Solana wallet first.');
183
+ }
184
+
185
+ const recipient = params.recipient.trim();
186
+ if (!recipient) {
187
+ throw new Error('Wire recipient is required.');
188
+ }
189
+
190
+ await this.finalizeReadyEpoch();
191
+
192
+ const accounts = await buildOutpostAccounts(this.provider.connection, user, this.pgs);
193
+ const quantity = new BN(params.quantityLamports.toString());
194
+ let pendingAttestations = accounts.pendingAttestations;
195
+
196
+ let signature: string;
197
+ try {
198
+ signature = await this.runRpcWithRecovery(() =>
199
+ program.methods
200
+ .bridgeLiqsolToWire(recipient, quantity)
201
+ .accounts({
202
+ user,
203
+ liqsolMint: accounts.liqsolMint,
204
+ distributionState: accounts.distributionState,
205
+ userAta: accounts.userAta,
206
+ senderUserRecord: accounts.userUserRecord,
207
+ bridgeAuthority: accounts.bridgeAuthority,
208
+ bridgeVaultAta: accounts.bridgeVaultAta,
209
+ bridgeUserRecord: accounts.bridgeUserRecord,
210
+ bridgeState: accounts.bridgeState,
211
+ extraAccountMetaList: accounts.extraAccountMetaList,
212
+ liqsolCoreProgram: program.programId,
213
+ transferHookProgram: this.pgs.PROGRAM_IDS.TRANSFER_HOOK,
214
+ bucketAuthority: accounts.bucketAuthority,
215
+ bucketTokenAccount: accounts.bucketTokenAccount,
216
+ tokenProgram: TOKEN_2022_PROGRAM_ID,
217
+ systemProgram: SystemProgram.programId,
218
+ globalConfig: accounts.globalConfig,
219
+ oppEpochState: accounts.oppEpochState,
220
+ pendingAttestations,
221
+ })
222
+ .preInstructions([
223
+ ComputeBudgetProgram.setComputeUnitLimit({ units: 900_000 }),
224
+ ])
225
+ .rpc(),
226
+ );
227
+ } catch (error) {
228
+ if (!this.isEpochFinalizationRequired(error)) {
229
+ throw error;
230
+ }
231
+ await this.finalizeReadyEpoch(true);
232
+ const retryEpochNumber = await this.pgs.fetchOppEpochNumber(this.provider.connection);
233
+ pendingAttestations = this.pgs.derivePendingAttestationsPda(retryEpochNumber);
234
+ signature = await this.runRpcWithRecovery(() =>
235
+ program.methods
236
+ .bridgeLiqsolToWire(recipient, quantity)
237
+ .accounts({
238
+ user,
239
+ liqsolMint: accounts.liqsolMint,
240
+ distributionState: accounts.distributionState,
241
+ userAta: accounts.userAta,
242
+ senderUserRecord: accounts.userUserRecord,
243
+ bridgeAuthority: accounts.bridgeAuthority,
244
+ bridgeVaultAta: accounts.bridgeVaultAta,
245
+ bridgeUserRecord: accounts.bridgeUserRecord,
246
+ bridgeState: accounts.bridgeState,
247
+ extraAccountMetaList: accounts.extraAccountMetaList,
248
+ liqsolCoreProgram: program.programId,
249
+ transferHookProgram: this.pgs.PROGRAM_IDS.TRANSFER_HOOK,
250
+ bucketAuthority: accounts.bucketAuthority,
251
+ bucketTokenAccount: accounts.bucketTokenAccount,
252
+ tokenProgram: TOKEN_2022_PROGRAM_ID,
253
+ systemProgram: SystemProgram.programId,
254
+ globalConfig: accounts.globalConfig,
255
+ oppEpochState: accounts.oppEpochState,
256
+ pendingAttestations,
257
+ })
258
+ .preInstructions([
259
+ ComputeBudgetProgram.setComputeUnitLimit({ units: 900_000 }),
260
+ ])
261
+ .rpc(),
262
+ );
263
+ }
264
+
265
+ await this.finalizeReadyEpoch();
266
+ await hooks?.onSubmitted?.(signature);
267
+ return signature;
268
+ }
269
+
270
+ async getConnectedBalances(owner?: PublicKey | string): Promise<SolanaInstaswapConnectedBalances> {
271
+ const resolvedOwner = this.resolveOwner(owner);
272
+ const liqsolMint = this.pgs.deriveLiqsolMintPda();
273
+ const userAta = getAssociatedTokenAddressSync(
274
+ liqsolMint,
275
+ resolvedOwner,
276
+ false,
277
+ TOKEN_2022_PROGRAM_ID,
278
+ );
279
+
280
+ const [nativeLamports, liqsolBalance] = await Promise.all([
281
+ this.provider.connection.getBalance(resolvedOwner, commitment),
282
+ this.provider.connection.getTokenAccountBalance(userAta, commitment).catch(() => null),
283
+ ]);
284
+
285
+ return {
286
+ nativeLamports: BigInt(nativeLamports ?? 0).toString(),
287
+ liqsolLamports: liqsolBalance?.value?.amount ?? '0',
288
+ liqsolDecimals: Number(liqsolBalance?.value?.decimals ?? 9),
289
+ };
290
+ }
291
+
292
+ private async finalizeReadyEpoch(force = false): Promise<boolean> {
293
+ const program = this.program;
294
+ const epochNumber = await this.pgs.fetchOppEpochNumber(this.provider.connection);
295
+ const pendingAttestations = await this.fetchPendingAttestations(epochNumber);
296
+ const attestations = pendingAttestations?.list ?? [];
297
+
298
+ if (!attestations.length) {
299
+ return false;
300
+ }
301
+
302
+ if (!force) {
303
+ const oppEpochState: any = await program.account.oppEpochState.fetch(
304
+ this.pgs.deriveOppEpochStatePda(),
305
+ );
306
+ const globalConfig: any = await program.account.globalConfig.fetch(
307
+ this.pgs.deriveGlobalConfigPda(),
308
+ );
309
+ const attestationCount = attestations.length;
310
+ const maxAttestations = this.toSafeNumber(
311
+ globalConfig.oppMaxAttestations || DEFAULT_SOLANA_EPOCH_CAP,
312
+ );
313
+ const maxIntervalSecs = this.toSafeNumber(globalConfig.oppMaxIntervalSecs || 0);
314
+ const outboundEpochStart = this.toSafeNumber(oppEpochState.outboundEpochStart || 0);
315
+ const now = Math.floor(Date.now() / 1000);
316
+ const readyByCount = attestationCount >= maxAttestations;
317
+ const readyByTime =
318
+ attestationCount > 0 &&
319
+ outboundEpochStart > 0 &&
320
+ maxIntervalSecs > 0 &&
321
+ now - outboundEpochStart >= maxIntervalSecs;
322
+
323
+ if (!readyByCount && !readyByTime) {
324
+ return false;
325
+ }
326
+ }
327
+
328
+ const signer = this.provider.wallet.publicKey;
329
+ if (!signer) {
330
+ throw new Error('Connect a Solana wallet first.');
331
+ }
332
+
333
+ const remainingAccounts = Array.from(
334
+ { length: attestations.length },
335
+ (_, index) => ({
336
+ pubkey: this.pgs.deriveEpochMessagePda(epochNumber, index),
337
+ isWritable: true,
338
+ isSigner: false,
339
+ }),
340
+ );
341
+
342
+ await this.runRpcWithRecovery(() =>
343
+ program.methods
344
+ .finalizeEpoch()
345
+ .accounts({
346
+ oppEpochState: this.pgs.deriveOppEpochStatePda(),
347
+ pendingAttestations: this.pgs.derivePendingAttestationsPda(epochNumber),
348
+ epochHeader: this.pgs.deriveEpochHeaderPda(epochNumber),
349
+ signer,
350
+ systemProgram: SystemProgram.programId,
351
+ globalConfig: this.pgs.deriveGlobalConfigPda(),
352
+ })
353
+ .preInstructions([
354
+ ComputeBudgetProgram.setComputeUnitLimit({ units: 1_400_000 }),
355
+ ])
356
+ .remainingAccounts(remainingAccounts)
357
+ .rpc(),
358
+ );
359
+
360
+ return true;
361
+ }
362
+
363
+ private async fetchPendingAttestations(epochNumber: number): Promise<any | null> {
364
+ const program = this.program;
365
+ try {
366
+ return await program.account.pendingAttestations.fetch(
367
+ this.pgs.derivePendingAttestationsPda(epochNumber),
368
+ );
369
+ } catch {
370
+ return null;
371
+ }
372
+ }
373
+
374
+ private isEpochFinalizationRequired(error: unknown): boolean {
375
+ const message = error instanceof Error ? error.message : String(error ?? '');
376
+ return message.includes('EpochFinalizationRequired')
377
+ || message.includes('Epoch finalization required')
378
+ || message.includes('Outbound epoch is already ready');
379
+ }
380
+
381
+ private async runRpcWithRecovery(
382
+ submit: () => Promise<TransactionSignature>,
383
+ ): Promise<TransactionSignature> {
384
+ try {
385
+ return await submit();
386
+ } catch (error) {
387
+ const signature = this.extractTimedOutSignature(error);
388
+ if (!signature) {
389
+ throw error;
390
+ }
391
+
392
+ const recovered = await this.waitForSignatureSuccess(signature);
393
+ if (!recovered) {
394
+ throw error;
395
+ }
396
+
397
+ return signature;
398
+ }
399
+ }
400
+
401
+ private extractTimedOutSignature(error: unknown): string | null {
402
+ const message = error instanceof Error
403
+ ? error.message
404
+ : typeof error === 'string'
405
+ ? error
406
+ : JSON.stringify(error ?? '');
407
+ if (!message.includes('Transaction was not confirmed')) {
408
+ return null;
409
+ }
410
+ const labeledMatch = message.match(
411
+ /(?:signature|txSignature)["'\s:]+([1-9A-HJ-NP-Za-km-z]{32,88})/i,
412
+ );
413
+ if (labeledMatch?.[1]) {
414
+ return labeledMatch[1];
415
+ }
416
+ const anyBase58Match = message.match(/([1-9A-HJ-NP-Za-km-z]{32,88})/);
417
+ return anyBase58Match?.[1] ?? null;
418
+ }
419
+
420
+ private async waitForSignatureSuccess(signature: string): Promise<boolean> {
421
+ for (let attempt = 0; attempt < 10; attempt += 1) {
422
+ const response = await this.provider.connection.getSignatureStatuses(
423
+ [signature],
424
+ { searchTransactionHistory: true },
425
+ );
426
+ const status = response.value[0];
427
+ if (status?.err) {
428
+ throw new Error(
429
+ `Solana transaction ${signature} failed after timeout: ${JSON.stringify(status.err)}`,
430
+ );
431
+ }
432
+ if (
433
+ status?.confirmationStatus === commitment ||
434
+ status?.confirmationStatus === 'finalized'
435
+ ) {
436
+ return true;
437
+ }
438
+ await this.sleep(1500);
439
+ }
440
+ return false;
441
+ }
442
+
443
+ private resolveOwner(owner?: PublicKey | string): PublicKey {
444
+ if (owner instanceof PublicKey) {
445
+ return owner;
446
+ }
447
+ if (typeof owner === 'string' && owner.trim()) {
448
+ return new PublicKey(owner.trim());
449
+ }
450
+ const walletOwner = this.provider.wallet.publicKey;
451
+ if (!walletOwner) {
452
+ throw new Error('Connect a Solana wallet first.');
453
+ }
454
+ return walletOwner;
455
+ }
456
+
457
+ private toSafeNumber(value: unknown): number {
458
+ if (typeof value === 'number' && Number.isFinite(value)) {
459
+ return value;
460
+ }
461
+ if (typeof value === 'bigint') {
462
+ return Number(value);
463
+ }
464
+ if (value && typeof value === 'object' && 'toNumber' in value) {
465
+ return (value as { toNumber: () => number }).toNumber();
466
+ }
467
+ if (value && typeof value === 'object' && 'toString' in value) {
468
+ const parsed = Number((value as { toString: () => string }).toString());
469
+ return Number.isFinite(parsed) ? parsed : 0;
470
+ }
471
+ return 0;
472
+ }
473
+
474
+ private async sleep(ms: number): Promise<void> {
475
+ await new Promise((resolve) => setTimeout(resolve, ms));
476
+ }
477
+
478
+ private async sendInstructions(
479
+ ix: TransactionInstruction | TransactionInstruction[],
480
+ ): Promise<string> {
481
+ if (!this.submitInstructions) {
482
+ throw new Error('Solana instruction submitter is not configured.');
483
+ }
484
+ return this.submitInstructions(ix);
485
+ }
486
+ }
@@ -1,8 +1,7 @@
1
- import { AnchorProvider, Program } from '@coral-xyz/anchor';
1
+ import { AnchorProvider } from '@coral-xyz/anchor';
2
2
  import { PublicKey } from '@solana/web3.js';
3
3
 
4
- import { SolanaProgramService, ValidatorLeaderboardClientIdl } from '../program';
5
- import type { ValidatorLeaderboard } from '../../../assets/solana/devnet/types/validator_leaderboard';
4
+ import { SolanaProgramService } from '../program';
6
5
  import { LeaderboardState, ValidatorRecord } from '../types';
7
6
 
8
7
  /**
@@ -11,7 +10,7 @@ import { LeaderboardState, ValidatorRecord } from '../types';
11
10
  * Adjust account names/fields to match your IDL (state, validatorRecord, etc).
12
11
  */
13
12
  export class LeaderboardClient {
14
- private program: Program<ValidatorLeaderboardClientIdl>;
13
+ private program: any;
15
14
 
16
15
  constructor(
17
16
  private readonly provider: AnchorProvider,
@@ -99,4 +98,4 @@ export class LeaderboardClient {
99
98
  return all.slice(0, limit).map(r => r.account);
100
99
  }
101
100
  }
102
- }
101
+ }