@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,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
  PublicKey,
4
4
  SystemProgram,
@@ -9,8 +9,6 @@ import {
9
9
  TOKEN_2022_PROGRAM_ID,
10
10
  } from '@solana/spl-token';
11
11
 
12
- import { LiqsolCore } from '../../../assets/solana/devnet/types/liqsol_core';
13
-
14
12
  import {
15
13
  OutpostAccounts,
16
14
  buildOutpostAccounts,
@@ -18,13 +16,52 @@ import {
18
16
  } from '../utils';
19
17
 
20
18
  import {
19
+ DistributionState,
20
+ GlobalState,
21
+ OutpostAccount,
21
22
  OutpostWireStateSnapshot,
22
23
  SharesPreview,
23
24
  TrancheState,
25
+ UserPretokenRecord,
24
26
  WalletLike,
25
27
  } from '../types';
26
28
  import { INDEX_SCALE } from '../constants';
27
- import { LiqsolCoreClientIdl, SolanaProgramService } from '../program';
29
+ import { SolanaProgramService } from '../program';
30
+
31
+ export function buildSolanaSyndicateAccounts(params: {
32
+ user: PublicKey;
33
+ accounts: OutpostAccounts;
34
+ liqsolCoreProgram: PublicKey;
35
+ transferHookProgram: PublicKey;
36
+ }) {
37
+ const { user, accounts, liqsolCoreProgram, transferHookProgram } = params;
38
+
39
+ return {
40
+ user,
41
+ liqsolMint: accounts.liqsolMint,
42
+ distributionState: accounts.distributionState,
43
+ globalState: accounts.globalState,
44
+ userAta: accounts.userAta,
45
+ senderUserRecord: accounts.userUserRecord,
46
+ bridgeAuthority: accounts.bridgeAuthority,
47
+ bridgeVaultAta: accounts.bridgeVaultAta,
48
+ bridgeUserRecord: accounts.bridgeUserRecord,
49
+ bridgeState: accounts.bridgeState,
50
+ outpostAccount: accounts.outpostAccount,
51
+ extraAccountMetaList: accounts.extraAccountMetaList,
52
+ liqsolCoreProgram,
53
+ transferHookProgram,
54
+ bucketAuthority: accounts.bucketAuthority,
55
+ bucketTokenAccount: accounts.bucketTokenAccount,
56
+ bucketUserRecord: accounts.bucketUserRecord,
57
+ tokenProgram: TOKEN_2022_PROGRAM_ID,
58
+ associatedTokenProgram: ASSOCIATED_TOKEN_PROGRAM_ID,
59
+ systemProgram: SystemProgram.programId,
60
+ globalConfig: accounts.globalConfig,
61
+ oppEpochState: accounts.oppEpochState,
62
+ pendingAttestations: accounts.pendingAttestations,
63
+ };
64
+ }
28
65
 
29
66
  /**
30
67
  * OutpostClient
@@ -42,7 +79,7 @@ import { LiqsolCoreClientIdl, SolanaProgramService } from '../program';
42
79
  * in sync with the on-chain PDAs and capital-staking Wire utils.
43
80
  */
44
81
  export class OutpostClient {
45
- private readonly program: Program<LiqsolCoreClientIdl>;
82
+ private readonly program: any;
46
83
 
47
84
  constructor(
48
85
  private readonly provider: AnchorProvider,
@@ -75,8 +112,26 @@ export class OutpostClient {
75
112
  * Internal helper: get raw token balance (BN) for a given ATA.
76
113
  */
77
114
  private async getTokenBalance(ata: PublicKey): Promise<BN> {
78
- const bal = await this.connection.getTokenAccountBalance(ata);
79
- return new BN(bal.value.amount);
115
+ try {
116
+ const bal = await this.connection.getTokenAccountBalance(ata);
117
+ return new BN(bal.value.amount);
118
+ } catch (error) {
119
+ if (this.isMissingTokenAccountError(error)) {
120
+ return new BN(0);
121
+ }
122
+ throw error;
123
+ }
124
+ }
125
+
126
+ private isMissingTokenAccountError(error: unknown): boolean {
127
+ const message = String(
128
+ (error as { message?: string } | null)?.message ?? '',
129
+ ).toLowerCase();
130
+
131
+ return (
132
+ message.includes('failed to get token account balance') &&
133
+ message.includes('could not find account')
134
+ );
80
135
  }
81
136
 
82
137
  /**
@@ -87,8 +142,9 @@ export class OutpostClient {
87
142
  * coder decode the padded buffer.
88
143
  */
89
144
  private async fetchOutpostAccount(address: PublicKey) {
145
+ const program = this.program;
90
146
  try {
91
- return await this.program.account.outpostAccount.fetchNullable(address);
147
+ return await program.account.outpostAccount.fetchNullable(address);
92
148
  } catch (e) {
93
149
  if (!(e instanceof RangeError)) throw e;
94
150
 
@@ -102,7 +158,7 @@ export class OutpostClient {
102
158
  info.data.copy(padded);
103
159
  // trailing bytes are already 0x00 → Option::None for each field
104
160
 
105
- return this.program.coder.accounts.decode(
161
+ return program.coder.accounts.decode(
106
162
  'outpostAccount',
107
163
  padded,
108
164
  );
@@ -113,6 +169,7 @@ export class OutpostClient {
113
169
  * Fetch the core "Wire state" for Outpost / pretokens for a given user.
114
170
  */
115
171
  async fetchWireState(user?: PublicKey): Promise<OutpostWireStateSnapshot> {
172
+ const program = this.program;
116
173
  const userPk = user ?? this.wallet.publicKey;
117
174
  if (!userPk) throw new Error('OutpostClient.fetchWireState: wallet not connected');
118
175
 
@@ -126,21 +183,21 @@ export class OutpostClient {
126
183
  liqsolPoolBalance,
127
184
  userLiqsolBalance,
128
185
  ] = await Promise.all([
129
- safeFetch(this.program.account.globalState.fetch(pdas.globalState), 'globalState'),
186
+ safeFetch(program.account.globalState.fetch(pdas.globalState), 'globalState'),
130
187
  safeFetch(this.fetchOutpostAccount(pdas.outpostAccount), 'outpostAccount'),
131
- safeFetch(this.program.account.distributionState.fetchNullable(pdas.distributionState), 'distributionState'),
132
- safeFetch(this.program.account.userPretokenRecord.fetchNullable(pdas.userPretokenRecord), 'userPretokenRecord'),
133
- safeFetch(this.program.account.trancheState.fetchNullable(pdas.trancheState), 'trancheState'),
188
+ safeFetch(program.account.distributionState.fetchNullable(pdas.distributionState), 'distributionState'),
189
+ safeFetch(program.account.userPretokenRecord.fetchNullable(pdas.userPretokenRecord), 'userPretokenRecord'),
190
+ safeFetch(program.account.trancheState.fetchNullable(pdas.trancheState), 'trancheState'),
134
191
  safeFetch(this.getTokenBalance(pdas.liqsolPoolAta), 'liqsolPoolAta'),
135
192
  safeFetch(this.getTokenBalance(pdas.userAta), 'userAta'),
136
193
  ]);
137
194
 
138
195
  return {
139
- globalState,
140
- outpostAccount,
141
- distributionState,
142
- trancheState,
143
- userPretokenRecord,
196
+ globalState: globalState as GlobalState | null,
197
+ outpostAccount: outpostAccount as OutpostAccount | null,
198
+ distributionState: distributionState as DistributionState | null,
199
+ trancheState: trancheState as TrancheState | null,
200
+ userPretokenRecord: userPretokenRecord as UserPretokenRecord | null,
144
201
  liqsolPoolBalance,
145
202
  userLiqsolBalance,
146
203
  };
@@ -149,58 +206,61 @@ export class OutpostClient {
149
206
 
150
207
 
151
208
  // -------------------------------------------------------------------------
152
- // Outpost stake / unstake builders (synd / desynd)
209
+ // Outpost stake / unstake builders (syndicate_liqsol_to_wire / desynd)
153
210
  // -------------------------------------------------------------------------
154
211
 
155
212
  /**
156
- * Build the `synd` (stake) instruction:
157
- * user liqSOL ATA → liqSOL pool ATA
213
+ * Build the `syndicate_liqsol_to_wire` (stake) instruction:
214
+ * user liqSOL ATA → liqSOL pool ATA, bridged to the Wire chain.
215
+ *
216
+ * @param amountLamports Amount of liqSOL to stake (in lamports / base units).
217
+ * @param user Solana signer. Defaults to the connected wallet.
218
+ * @param wireAccount Wire chain recipient account name. Required.
158
219
  */
159
220
  async buildStakeIx(
160
221
  amountLamports: bigint,
161
222
  user: PublicKey = this.wallet.publicKey,
223
+ wireAccount?: string,
162
224
  ): Promise<TransactionInstruction> {
225
+ const program = this.program;
163
226
  if (!user) {
164
227
  throw new Error('OutpostClient.buildStakeIx: wallet not connected');
165
228
  }
229
+ if (!wireAccount?.trim()) {
230
+ throw new Error('OutpostClient.buildStakeIx: wireAccount is required');
231
+ }
166
232
 
167
233
  const a = await this.buildAccounts(user);
168
234
 
169
- return this.program.methods
170
- .synd(new BN(amountLamports.toString()))
171
- .accounts({
172
- user,
173
- liqsolMint: a.liqsolMint,
174
- globalState: a.globalState,
175
- distributionState: a.distributionState,
176
- userAta: a.userAta,
177
- poolAuthority: a.poolAuthority,
178
- bucketAuthority: a.bucketAuthority,
179
- bucketTokenAccount: a.bucketTokenAccount,
180
- bucketUserRecord: a.bucketUserRecord,
181
- senderUserRecord: a.userUserRecord,
182
- receiverUserRecord: a.liqsolPoolUserRecord,
183
- extraAccountMetaList: a.extraAccountMetaList,
184
- liqsolCoreProgram: this.pgs.PROGRAM_IDS.LIQSOL_CORE,
185
- transferHookProgram: this.pgs.PROGRAM_IDS.TRANSFER_HOOK,
186
- liqsolPoolAta: a.liqsolPoolAta,
187
- outpostAccount: a.outpostAccount,
188
- tokenProgram: TOKEN_2022_PROGRAM_ID,
189
- associatedTokenProgram: ASSOCIATED_TOKEN_PROGRAM_ID,
190
- systemProgram: SystemProgram.programId,
191
- pretokenPurchaseHistory: a.pretokenPurchaseHistory,
192
- })
235
+ return program.methods
236
+ .syndicateLiqsolToWire(wireAccount.trim(), new BN(amountLamports.toString()))
237
+ .accounts(
238
+ buildSolanaSyndicateAccounts({
239
+ user,
240
+ accounts: a,
241
+ liqsolCoreProgram: this.pgs.PROGRAM_IDS.LIQSOL_CORE,
242
+ transferHookProgram: this.pgs.PROGRAM_IDS.TRANSFER_HOOK,
243
+ }),
244
+ )
193
245
  .instruction();
194
246
  }
195
247
 
196
248
  /**
197
- * Build the `desynd` (unstake) instruction:
249
+ * Build the `desynd` (unstake / desync) instruction:
198
250
  * liqSOL pool ATA → user liqSOL ATA
251
+ *
252
+ * When Wire is in PostLaunch mode this instruction emits a `DesyncRequest`
253
+ * OPP attestation and does NOT immediately return tokens. The Wire chain
254
+ * relay picks up the attestation, and an admin subsequently executes
255
+ * `complete_withdraw` to deliver the tokens to the user.
256
+ *
257
+ * In PreLaunch mode the tokens are returned directly.
199
258
  */
200
259
  async buildUnstakeIx(
201
260
  amountLamports: bigint,
202
261
  user?: PublicKey,
203
262
  ): Promise<TransactionInstruction> {
263
+ const program = this.program;
204
264
  const userPk = user ?? this.wallet.publicKey;
205
265
  if (!userPk) {
206
266
  throw new Error('OutpostClient.buildUnstakeIx: wallet not connected');
@@ -208,7 +268,7 @@ export class OutpostClient {
208
268
 
209
269
  const a = await this.buildAccounts(userPk);
210
270
 
211
- return this.program.methods
271
+ return program.methods
212
272
  .desynd(new BN(amountLamports.toString()))
213
273
  .accounts({
214
274
  user: userPk,
@@ -230,6 +290,9 @@ export class OutpostClient {
230
290
  tokenProgram: TOKEN_2022_PROGRAM_ID,
231
291
  systemProgram: SystemProgram.programId,
232
292
  associatedTokenProgram: ASSOCIATED_TOKEN_PROGRAM_ID,
293
+ globalConfig: a.globalConfig,
294
+ oppEpochState: a.oppEpochState,
295
+ pendingAttestations: a.pendingAttestations,
233
296
  pretokenPurchaseHistory: a.pretokenPurchaseHistory,
234
297
  })
235
298
  .instruction();
@@ -1,4 +1,4 @@
1
- import { AnchorProvider, BN, Program } from '@coral-xyz/anchor';
1
+ import { AnchorProvider, BN } from '@coral-xyz/anchor';
2
2
  import type { TransactionInstruction, Connection } from '@solana/web3.js';
3
3
  import { PublicKey, SystemProgram } from '@solana/web3.js';
4
4
  import {
@@ -11,8 +11,7 @@ import {
11
11
  type OutpostAccounts,
12
12
  } from '../utils';
13
13
 
14
- import { LiqsolCoreClientIdl, SolanaProgramService } from '../program';
15
- import type { LiqsolCore } from '../../../assets/solana/devnet/types/liqsol_core';
14
+ import { SolanaProgramService } from '../program';
16
15
 
17
16
  import {
18
17
  GlobalState,
@@ -29,7 +28,7 @@ import {
29
28
  } from '../constants';
30
29
 
31
30
  export class TokenClient {
32
- private readonly program: Program<LiqsolCoreClientIdl>;
31
+ private readonly program: any;
33
32
 
34
33
  get wallet(): WalletLike {
35
34
  return this.provider.wallet;
@@ -55,13 +54,15 @@ export class TokenClient {
55
54
  }
56
55
 
57
56
  async fetchGlobalState(): Promise<GlobalState> {
57
+ const program = this.program;
58
58
  const { globalState } = await this.getAccounts(this.wallet.publicKey);
59
- return this.program.account.globalState.fetch(globalState);
59
+ return program.account.globalState.fetch(globalState);
60
60
  }
61
61
 
62
62
  async fetchTrancheState(): Promise<TrancheState> {
63
+ const program = this.program;
63
64
  const { trancheState } = await this.getAccounts(this.wallet.publicKey);
64
- return this.program.account.trancheState.fetch(trancheState);
65
+ return program.account.trancheState.fetch(trancheState);
65
66
  }
66
67
 
67
68
  /**
@@ -69,8 +70,9 @@ export class TokenClient {
69
70
  * Returns null if the user has never interacted with Outpost.
70
71
  */
71
72
  async fetchOutpostAccount(user: PublicKey): Promise<OutpostAccount | null> {
73
+ const program = this.program;
72
74
  const { outpostAccount } = await this.getAccounts(user);
73
- return this.program.account.outpostAccount.fetchNullable(outpostAccount);
75
+ return program.account.outpostAccount.fetchNullable(outpostAccount);
74
76
  }
75
77
 
76
78
  /**
@@ -80,8 +82,9 @@ export class TokenClient {
80
82
  async fetchUserPretokenRecord(
81
83
  user: PublicKey,
82
84
  ): Promise<UserPretokenRecord | null> {
85
+ const program = this.program;
83
86
  const { userPretokenRecord } = await this.getAccounts(user);
84
- return this.program.account.userPretokenRecord.fetchNullable(
87
+ return program.account.userPretokenRecord.fetchNullable(
85
88
  userPretokenRecord,
86
89
  );
87
90
  }
@@ -100,6 +103,7 @@ export class TokenClient {
100
103
  amountLamports: bigint,
101
104
  user = this.wallet.publicKey,
102
105
  ): Promise<TransactionInstruction> {
106
+ const program = this.program;
103
107
  console.log('build purchase for', user.toBase58());
104
108
 
105
109
  const a = await this.getAccounts(user);
@@ -108,7 +112,7 @@ export class TokenClient {
108
112
  const liqsolCoreProgram = this.pgs.PROGRAM_IDS.LIQSOL_CORE;
109
113
  const transferHookProgram = this.pgs.PROGRAM_IDS.TRANSFER_HOOK;
110
114
 
111
- return this.program.methods
115
+ return program.methods
112
116
  .purchase(new BN(amountLamports.toString()))
113
117
  .accounts({
114
118
  user: a.user,
@@ -149,6 +153,10 @@ export class TokenClient {
149
153
  systemProgram: SystemProgram.programId,
150
154
 
151
155
  pretokenPurchaseHistory: a.pretokenPurchaseHistory,
156
+
157
+ globalConfig: a.globalConfig,
158
+ oppEpochState: a.oppEpochState,
159
+ pendingAttestations: a.pendingAttestations
152
160
  })
153
161
  .instruction();
154
162
  }
@@ -179,8 +187,9 @@ export class TokenClient {
179
187
  * Uses the ring-buffer semantics from capital-staking.
180
188
  */
181
189
  async getSolPriceUsd(): Promise<bigint> {
190
+ const program = this.program;
182
191
  const priceHistoryPda = this.pgs.derivePriceHistoryPda();
183
- const history = (await this.program.account.priceHistory.fetch(
192
+ const history = (await program.account.priceHistory.fetch(
184
193
  priceHistoryPda,
185
194
  )) as PriceHistory;
186
195
 
@@ -208,4 +217,4 @@ export class TokenClient {
208
217
 
209
218
  return BigInt(latest.toString());
210
219
  }
211
- }
220
+ }
@@ -1,6 +1,6 @@
1
1
  // src/networks/solana/constants.ts
2
+ import { ChainID, SolChainID } from '@wireio/core';
2
3
  import { PublicKey, StakeProgram } from '@solana/web3.js';
3
- import { SolChainID } from '@wireio/core';
4
4
 
5
5
  import mainnetLiqsolCoreIDL from '../../assets/solana/mainnet/idl/liqsol_core.json';
6
6
  import mainnetLiqSolTokenIDL from '../../assets/solana/mainnet/idl/liqsol_token.json';
@@ -11,7 +11,11 @@ import devnetLiqsolCoreIDL from '../../assets/solana/devnet/idl/liqsol_core.json
11
11
  import devnetLiqSolTokenIDL from '../../assets/solana/devnet/idl/liqsol_token.json';
12
12
  import devnetValidatorLeaderboardIDL from '../../assets/solana/devnet/idl/validator_leaderboard.json';
13
13
  import devnetTransferHookIDL from '../../assets/solana/devnet/idl/transfer_hook.json';
14
- import { SupportedSolChainID } from '../../types';
14
+ import wiredevLiqsolCoreIDL from '../../assets/solana/wiredev/idl/liqsol_core.json';
15
+ import wiredevLiqSolTokenIDL from '../../assets/solana/wiredev/idl/liqsol_token.json';
16
+ import wiredevValidatorLeaderboardIDL from '../../assets/solana/wiredev/idl/validator_leaderboard.json';
17
+ import wiredevTransferHookIDL from '../../assets/solana/wiredev/idl/transfer_hook.json';
18
+ import { SOL_WIRE_DEVNET_CHAIN_ID, type SupportedSolProgramChainID } from '../../chains';
15
19
 
16
20
  /**
17
21
  * Per-chain program IDs (NOT global anymore).
@@ -37,16 +41,25 @@ const DEVNET_PROGRAM_IDS: SolanaProgramIds = {
37
41
  LIQSOL_TOKEN: new PublicKey(devnetLiqSolTokenIDL.address),
38
42
  VALIDATOR_LEADERBOARD: new PublicKey(devnetValidatorLeaderboardIDL.address),
39
43
  TRANSFER_HOOK: new PublicKey(devnetTransferHookIDL.address),
40
- ALT: new PublicKey("AZQmTbacBuAsJpncg2N2AwcZsLG1Sxeohbau9vjezmTz")
44
+ ALT: new PublicKey("9WhQt82Ym5LDDaGEB6eV86MUV6BtUxZQbw1R4uuhVPSt")
41
45
  };
42
46
 
43
- export const PROGRAM_IDS_BY_CHAIN: Record<SupportedSolChainID, SolanaProgramIds> = {
47
+ const WIREDEV_PROGRAM_IDS: SolanaProgramIds = {
48
+ LIQSOL_CORE: new PublicKey(wiredevLiqsolCoreIDL.address),
49
+ LIQSOL_TOKEN: new PublicKey(wiredevLiqSolTokenIDL.address),
50
+ VALIDATOR_LEADERBOARD: new PublicKey(wiredevValidatorLeaderboardIDL.address),
51
+ TRANSFER_HOOK: new PublicKey(wiredevTransferHookIDL.address),
52
+ ALT: new PublicKey("9WhQt82Ym5LDDaGEB6eV86MUV6BtUxZQbw1R4uuhVPSt")
53
+ };
54
+
55
+ export const PROGRAM_IDS_BY_CHAIN: Record<SupportedSolProgramChainID, SolanaProgramIds> = {
44
56
  [SolChainID.Mainnet]: MAINNET_PROGRAM_IDS,
45
57
  [SolChainID.Devnet]: DEVNET_PROGRAM_IDS,
58
+ [SOL_WIRE_DEVNET_CHAIN_ID]: WIREDEV_PROGRAM_IDS,
46
59
  };
47
60
 
48
- export const getProgramIds = (chainId: SolChainID): SolanaProgramIds => {
49
- const ids = PROGRAM_IDS_BY_CHAIN[chainId];
61
+ export const getProgramIds = (chainId: ChainID | string): SolanaProgramIds => {
62
+ const ids = PROGRAM_IDS_BY_CHAIN[chainId as SupportedSolProgramChainID];
50
63
  if (!ids) throw new Error(`Unsupported Solana chainId=${chainId}`);
51
64
  return ids;
52
65
  };
@@ -112,6 +125,13 @@ export const PDA_SEEDS = {
112
125
 
113
126
  // New
114
127
  PRETOKEN_PURCHASE_HISTORY: 'pretoken_purchase_history',
128
+
129
+ // OPP (outpost protocol pipeline)
130
+ OPP_EPOCH_STATE: 'opp_epoch_state',
131
+ PENDING_ATTESTATIONS: 'pending_attestations',
132
+ EPOCH_HEADER: 'epoch_header',
133
+ EPOCH_MESSAGE: 'epoch_message',
134
+ OPP_BRIDGE_STATE: 'opp_bridge_state',
115
135
  } as const;
116
136
 
117
137
  /**
@@ -153,4 +173,4 @@ export const lamportsToSol = (lamports: number | bigint): number =>
153
173
  Number(lamports) / LAMPORTS_PER_SOL;
154
174
 
155
175
  export const solToLamports = (sol: number): bigint =>
156
- BigInt(Math.round(sol * LAMPORTS_PER_SOL));
176
+ BigInt(Math.round(sol * LAMPORTS_PER_SOL));
@@ -1,13 +1,14 @@
1
1
  // src/networks/solana/programs.ts
2
2
  import { AnchorProvider, Program } from '@coral-xyz/anchor';
3
3
  import { ChainID, SolChainID } from '@wireio/core';
4
- import { PublicKey, StakeProgram } from '@solana/web3.js';
4
+ import { Connection, PublicKey, StakeProgram } from '@solana/web3.js';
5
5
 
6
6
  import {
7
7
  PDA_SEEDS,
8
8
  getProgramIds,
9
9
  SolanaProgramIds,
10
10
  } from './constants';
11
+ import { SOL_WIRE_DEVNET_CHAIN_ID } from '../../chains';
11
12
 
12
13
  // Mainnet IDLs
13
14
  import liqsolCoreMainnetJson from '../../assets/solana/mainnet/idl/liqsol_core.json';
@@ -18,6 +19,9 @@ import validatorLeaderboardMainnetJson from '../../assets/solana/mainnet/idl/val
18
19
  import liqsolCoreDevnetJson from '../../assets/solana/devnet/idl/liqsol_core.json';
19
20
  import liqsolTokenDevnetJson from '../../assets/solana/devnet/idl/liqsol_token.json';
20
21
  import validatorLeaderboardDevnetJson from '../../assets/solana/devnet/idl/validator_leaderboard.json';
22
+ import liqsolCoreWiredevJson from '../../assets/solana/wiredev/idl/liqsol_core.json';
23
+ import liqsolTokenWiredevJson from '../../assets/solana/wiredev/idl/liqsol_token.json';
24
+ import validatorLeaderboardWiredevJson from '../../assets/solana/wiredev/idl/validator_leaderboard.json';
21
25
 
22
26
  // Mainnet types
23
27
  import type { LiqsolCore as LiqSolCoreMainnet } from '../../assets/solana/mainnet/types/liqsol_core';
@@ -28,17 +32,19 @@ import type { ValidatorLeaderboard as ValidatorLeaderboardMainnet } from '../../
28
32
  import type { LiqsolCore as LiqSolCoreDevnet } from '../../assets/solana/devnet/types/liqsol_core';
29
33
  import type { LiqsolToken as LiqsolTokenDevnet } from '../../assets/solana/devnet/types/liqsol_token';
30
34
  import type { ValidatorLeaderboard as ValidatorLeaderboardDevnet } from '../../assets/solana/devnet/types/validator_leaderboard';
35
+ import type { LiqsolCore as LiqSolCoreWiredev } from '../../assets/solana/wiredev/types/liqsol_core';
36
+ import type { LiqsolToken as LiqsolTokenWiredev } from '../../assets/solana/wiredev/types/liqsol_token';
37
+ import type { ValidatorLeaderboard as ValidatorLeaderboardWiredev } from '../../assets/solana/wiredev/types/validator_leaderboard';
31
38
 
32
- // “Client” IDLs = mainnet OR devnet, plus `address` field we add at runtime
39
+ // Anchor's generated Program<T> type becomes excessively deep once the same
40
+ // client can select among mainnet, public devnet, and Wire devnet IDLs. Keep the
41
+ // runtime IDL selection strict and expose a shallow client IDL type at this
42
+ // boundary.
43
+ type ClientIdl = any;
33
44
 
34
- export type LiqsolCoreClientIdl =
35
- (LiqSolCoreMainnet | LiqSolCoreDevnet) & { address: string };
36
-
37
- export type LiqsolTokenClientIdl =
38
- (LiqsolTokenMainnet | LiqsolTokenDevnet) & { address: string };
39
-
40
- export type ValidatorLeaderboardClientIdl =
41
- (ValidatorLeaderboardMainnet | ValidatorLeaderboardDevnet) & { address: string };
45
+ export type LiqsolCoreClientIdl = ClientIdl;
46
+ export type LiqsolTokenClientIdl = ClientIdl;
47
+ export type ValidatorLeaderboardClientIdl = ClientIdl;
42
48
 
43
49
  export type SolanaProgramIdlMap = {
44
50
  liqsolCore: LiqsolCoreClientIdl;
@@ -82,17 +88,33 @@ const PROGRAMS_BY_CHAIN = {
82
88
  address: validatorLeaderboardDevnetJson.address,
83
89
  } as Entry<ValidatorLeaderboardDevnet>,
84
90
  },
91
+ [SOL_WIRE_DEVNET_CHAIN_ID]: {
92
+ liqsolCore: {
93
+ idl: liqsolCoreWiredevJson,
94
+ address: liqsolCoreWiredevJson.address,
95
+ } as Entry<LiqSolCoreWiredev>,
96
+ liqsolToken: {
97
+ idl: liqsolTokenWiredevJson,
98
+ address: liqsolTokenWiredevJson.address,
99
+ } as Entry<LiqsolTokenWiredev>,
100
+ validatorLeaderboard: {
101
+ idl: validatorLeaderboardWiredevJson,
102
+ address: validatorLeaderboardWiredevJson.address,
103
+ } as Entry<ValidatorLeaderboardWiredev>,
104
+ },
85
105
  } as const;
86
106
 
107
+ type SolanaProgramEntries = (typeof PROGRAMS_BY_CHAIN)[keyof typeof PROGRAMS_BY_CHAIN];
108
+
87
109
  export class SolanaProgramService {
88
110
  private readonly ids: SolanaProgramIds;
89
- private readonly programs: (typeof PROGRAMS_BY_CHAIN)[SolChainID.Mainnet];
111
+ private readonly programs: SolanaProgramEntries;
90
112
 
91
113
  constructor(
92
114
  private provider: AnchorProvider,
93
115
  private chainId: ChainID,
94
116
  ) {
95
- const solChain = chainId as SolChainID;
117
+ const solChain = chainId as keyof typeof PROGRAMS_BY_CHAIN;
96
118
  this.ids = getProgramIds(solChain);
97
119
  const programs = PROGRAMS_BY_CHAIN[solChain];
98
120
  if (!programs) {
@@ -106,14 +128,14 @@ export class SolanaProgramService {
106
128
  return this.ids;
107
129
  }
108
130
 
109
- // Generic getProgram, typed by name union IDL
110
- getProgram<K extends SolanaProgramName>(
111
- name: K,
112
- ): Program<SolanaProgramIdlMap[K]> {
131
+ // Anchor's fluent builder types are intentionally erased here. The SDK
132
+ // performs dynamic IDL selection by chain, and callers keep their runtime
133
+ // account/method wiring unchanged.
134
+ getProgram(name: SolanaProgramName): any {
113
135
  const { idl, address } = this.programs[name];
114
- const idlWithAddr = { ...(idl as any), address } as SolanaProgramIdlMap[K];
136
+ const idlWithAddr = { ...(idl as any), address };
115
137
 
116
- return new Program(idlWithAddr, this.provider) as Program<SolanaProgramIdlMap[K]>;
138
+ return new Program(idlWithAddr, this.provider) as any;
117
139
  }
118
140
 
119
141
  listProgramNames(): SolanaProgramName[] {
@@ -383,6 +405,69 @@ export class SolanaProgramService {
383
405
  )[0];
384
406
  }
385
407
 
408
+ // --- OPP (outpost protocol pipeline) ---
409
+
410
+ deriveOppEpochStatePda(): PublicKey {
411
+ return PublicKey.findProgramAddressSync(
412
+ [Buffer.from(PDA_SEEDS.OPP_EPOCH_STATE)],
413
+ this.ids.LIQSOL_CORE,
414
+ )[0];
415
+ }
416
+
417
+ derivePendingAttestationsPda(epochNumber: number): PublicKey {
418
+ const epochBuf = Buffer.alloc(4);
419
+ epochBuf.writeUInt32LE(epochNumber, 0);
420
+ return PublicKey.findProgramAddressSync(
421
+ [Buffer.from(PDA_SEEDS.PENDING_ATTESTATIONS), epochBuf],
422
+ this.ids.LIQSOL_CORE,
423
+ )[0];
424
+ }
425
+
426
+ deriveEpochHeaderPda(epochNumber: number): PublicKey {
427
+ const epochBuf = Buffer.alloc(4);
428
+ epochBuf.writeUInt32LE(epochNumber, 0);
429
+ return PublicKey.findProgramAddressSync(
430
+ [Buffer.from(PDA_SEEDS.EPOCH_HEADER), epochBuf],
431
+ this.ids.LIQSOL_CORE,
432
+ )[0];
433
+ }
434
+
435
+ deriveEpochMessagePda(epochNumber: number, messageIndex: number): PublicKey {
436
+ const epochBuf = Buffer.alloc(4);
437
+ epochBuf.writeUInt32LE(epochNumber, 0);
438
+ const indexBuf = Buffer.alloc(4);
439
+ indexBuf.writeUInt32LE(messageIndex, 0);
440
+ return PublicKey.findProgramAddressSync(
441
+ [Buffer.from(PDA_SEEDS.EPOCH_MESSAGE), epochBuf, indexBuf],
442
+ this.ids.LIQSOL_CORE,
443
+ )[0];
444
+ }
445
+
446
+ /**
447
+ * Fetch the current OPP epoch number from the on-chain OppEpochState account.
448
+ *
449
+ * Layout (after 8-byte Anchor discriminator):
450
+ * [u32 nextEpochNumber] — little-endian
451
+ *
452
+ * This is used to derive the `pending_attestations` PDA for synd / desynd.
453
+ */
454
+ async fetchOppEpochNumber(connection: Connection): Promise<number> {
455
+ const pda = this.deriveOppEpochStatePda();
456
+ const info = await connection.getAccountInfo(pda);
457
+ if (!info?.data) {
458
+ throw new Error(`OPP epoch state account not found: ${pda.toBase58()}`);
459
+ }
460
+ // Skip 8-byte Anchor discriminator; nextEpochNumber is the first u32 field.
461
+ return Buffer.from(info.data).readUInt32LE(8);
462
+ }
463
+
464
+ deriveOppBridgeStatePda(): PublicKey {
465
+ return PublicKey.findProgramAddressSync(
466
+ [Buffer.from(PDA_SEEDS.OPP_BRIDGE_STATE)],
467
+ this.ids.LIQSOL_CORE,
468
+ )[0];
469
+ }
470
+
386
471
  // --- Transfer-hook extra metas ---
387
472
 
388
473
  deriveExtraAccountMetaListPda(liqsolMint: PublicKey): PublicKey {
@@ -405,4 +490,4 @@ export class SolanaProgramService {
405
490
  const seedStr = `ephemeral_${seed}`;
406
491
  return PublicKey.createWithSeed(user, seedStr, StakeProgram.programId);
407
492
  }
408
- }
493
+ }