@wireio/stake 0.1.2 → 0.1.69

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (526) hide show
  1. package/README.md +185 -243
  2. package/lib/stake.browser.js +64499 -6547
  3. package/lib/stake.browser.js.map +1 -1
  4. package/lib/stake.d.ts +18865 -349
  5. package/lib/stake.js +64886 -6551
  6. package/lib/stake.js.map +1 -1
  7. package/lib/stake.m.js +64499 -6547
  8. package/lib/stake.m.js.map +1 -1
  9. package/package.json +6 -3
  10. package/src/assets/ethereum/hoodi/common/Base58.sol/Base58.dbg.json +4 -0
  11. package/src/assets/ethereum/hoodi/common/Base58.sol/Base58.json +164 -0
  12. package/src/assets/ethereum/hoodi/common/OpenZepArtifacts.sol/__Dummy_OZ_UUPS__.dbg.json +4 -0
  13. package/src/assets/ethereum/hoodi/common/OpenZepArtifacts.sol/__Dummy_OZ_UUPS__.json +76 -0
  14. package/src/assets/ethereum/hoodi/common/RestrictedCallers.sol/RestrictedCallers.dbg.json +4 -0
  15. package/src/assets/ethereum/hoodi/common/RestrictedCallers.sol/RestrictedCallers.json +10 -0
  16. package/src/assets/ethereum/hoodi/common/iodata.sol/iodata.dbg.json +4 -0
  17. package/src/assets/ethereum/hoodi/common/iodata.sol/iodata.json +618 -0
  18. package/src/assets/ethereum/hoodi/common/iodata_util.sol/iodata_util.dbg.json +4 -0
  19. package/src/assets/ethereum/hoodi/common/iodata_util.sol/iodata_util.json +40 -0
  20. package/src/assets/ethereum/hoodi/common/sysio_data.sol/sysio_data.dbg.json +4 -0
  21. package/src/assets/ethereum/hoodi/common/sysio_data.sol/sysio_data.json +10 -0
  22. package/src/assets/ethereum/hoodi/common/sysio_errors.sol/sysio_errors.dbg.json +4 -0
  23. package/src/assets/ethereum/hoodi/common/sysio_errors.sol/sysio_errors.json +10 -0
  24. package/src/assets/ethereum/hoodi/common/sysio_merkle.sol/sysio_merkle.dbg.json +4 -0
  25. package/src/assets/ethereum/hoodi/common/sysio_merkle.sol/sysio_merkle.json +233 -0
  26. package/src/assets/ethereum/hoodi/common/sysio_name.sol/sysio_name.dbg.json +4 -0
  27. package/src/assets/ethereum/hoodi/common/sysio_name.sol/sysio_name.json +49 -0
  28. package/src/assets/ethereum/hoodi/common/sysio_pubkey.sol/sysio_pubkey.dbg.json +4 -0
  29. package/src/assets/ethereum/hoodi/common/sysio_pubkey.sol/sysio_pubkey.json +64 -0
  30. package/src/assets/ethereum/hoodi/common/sysio_read.sol/sysio_read.dbg.json +4 -0
  31. package/src/assets/ethereum/hoodi/common/sysio_read.sol/sysio_read.json +1458 -0
  32. package/src/assets/ethereum/hoodi/common/sysio_tester.sol/SysioTester.dbg.json +4 -0
  33. package/src/assets/ethereum/hoodi/common/sysio_tester.sol/SysioTester.json +1532 -0
  34. package/src/assets/ethereum/hoodi/common/sysio_verify.sol/sysio_verify.dbg.json +4 -0
  35. package/src/assets/ethereum/hoodi/common/sysio_verify.sol/sysio_verify.json +1525 -0
  36. package/src/assets/ethereum/hoodi/common/sysio_write.sol/sysio_write.dbg.json +4 -0
  37. package/src/assets/ethereum/hoodi/common/sysio_write.sol/sysio_write.json +1076 -0
  38. package/src/assets/ethereum/hoodi/liqEth/BeaconState.sol/BeaconState.dbg.json +4 -0
  39. package/src/assets/ethereum/hoodi/liqEth/BeaconState.sol/BeaconState.json +807 -0
  40. package/src/assets/ethereum/hoodi/liqEth/DepositManager.sol/DepositManagerV2.dbg.json +4 -0
  41. package/src/assets/ethereum/hoodi/liqEth/DepositManager.sol/DepositManagerV2.json +985 -0
  42. package/src/assets/ethereum/hoodi/liqEth/LiqEthAuthority.sol/LiqEthAuthority.dbg.json +4 -0
  43. package/src/assets/ethereum/hoodi/liqEth/LiqEthAuthority.sol/LiqEthAuthority.json +1289 -0
  44. package/src/assets/ethereum/hoodi/liqEth/LiqEthCommon.sol/IAccounting.dbg.json +4 -0
  45. package/src/assets/ethereum/hoodi/liqEth/LiqEthCommon.sol/IAccounting.json +182 -0
  46. package/src/assets/ethereum/hoodi/liqEth/LiqEthCommon.sol/IDepositContract.dbg.json +4 -0
  47. package/src/assets/ethereum/hoodi/liqEth/LiqEthCommon.sol/IDepositManager.dbg.json +4 -0
  48. package/src/assets/ethereum/hoodi/liqEth/LiqEthCommon.sol/ILiqEthUpgradeable.dbg.json +4 -0
  49. package/src/assets/ethereum/hoodi/liqEth/LiqEthCommon.sol/ILiqEthUpgradeable.json +29 -0
  50. package/src/assets/ethereum/hoodi/liqEth/LiqEthCommon.sol/IRewardsERC20.dbg.json +4 -0
  51. package/src/assets/ethereum/hoodi/liqEth/LiqEthCommon.sol/IRewardsERC20.json +319 -0
  52. package/src/assets/ethereum/hoodi/liqEth/LiqEthCommon.sol/IRewardsERC20Pausable.dbg.json +4 -0
  53. package/src/assets/ethereum/hoodi/liqEth/LiqEthCommon.sol/IRewardsERC20Pausable.json +333 -0
  54. package/src/assets/ethereum/hoodi/liqEth/LiqEthCommon.sol/IStakingModule.dbg.json +4 -0
  55. package/src/assets/ethereum/hoodi/liqEth/LiqEthCommon.sol/IStakingModule.json +344 -0
  56. package/src/assets/ethereum/hoodi/liqEth/LiqEthCommon.sol/IValidatorBalanceVerifier.dbg.json +4 -0
  57. package/src/assets/ethereum/{ABI → hoodi}/liqEth/LiqEthCommon.sol/IValidatorBalanceVerifier.json +59 -0
  58. package/src/assets/ethereum/hoodi/liqEth/LiqEthCommon.sol/IWithdrawalRecord.dbg.json +4 -0
  59. package/src/assets/ethereum/{ABI → hoodi}/liqEth/LiqEthCommon.sol/IWithdrawalRecord.json +14 -12
  60. package/src/assets/ethereum/hoodi/liqEth/LiqEthCommon.sol/LiqEthCommon.dbg.json +4 -0
  61. package/src/assets/ethereum/{ABI → hoodi}/liqEth/LiqEthCommon.sol/LiqEthCommon.json +2 -2
  62. package/src/assets/ethereum/hoodi/liqEth/LiqEthDeepFreeze.sol/LiqEthDeepFreeze.dbg.json +4 -0
  63. package/src/assets/ethereum/hoodi/liqEth/LiqEthDeepFreeze.sol/LiqEthDeepFreeze.json +236 -0
  64. package/src/assets/ethereum/hoodi/liqEth/LiqEthManaged.sol/LiqEthManaged.dbg.json +4 -0
  65. package/src/assets/ethereum/hoodi/liqEth/LiqEthManaged.sol/LiqEthManaged.json +229 -0
  66. package/src/assets/ethereum/hoodi/liqEth/RewardsERC20.sol/RewardsERC20UpgradeableV2.dbg.json +4 -0
  67. package/src/assets/ethereum/hoodi/liqEth/RewardsERC20.sol/RewardsERC20UpgradeableV2.json +957 -0
  68. package/src/assets/ethereum/hoodi/liqEth/RewardsERC20Pausable.sol/RewardsERC20PausableUpgradeableV2.dbg.json +4 -0
  69. package/src/assets/ethereum/hoodi/liqEth/RewardsERC20Pausable.sol/RewardsERC20PausableUpgradeableV2.json +1020 -0
  70. package/src/assets/ethereum/hoodi/liqEth/Yield.sol/YieldOracle.dbg.json +4 -0
  71. package/src/assets/ethereum/hoodi/liqEth/Yield.sol/YieldOracle.json +1376 -0
  72. package/src/assets/ethereum/hoodi/liqEth/accounting.sol/AccountingV2.dbg.json +4 -0
  73. package/src/assets/ethereum/hoodi/liqEth/accounting.sol/AccountingV2.json +629 -0
  74. package/src/assets/ethereum/hoodi/liqEth/liqEth.sol/LiqEthTokenV2.dbg.json +4 -0
  75. package/src/assets/ethereum/hoodi/liqEth/liqEth.sol/LiqEthTokenV2.json +1323 -0
  76. package/src/assets/ethereum/hoodi/liqEth/stakingModule.sol/StakingModuleV2.dbg.json +4 -0
  77. package/src/assets/ethereum/hoodi/liqEth/stakingModule.sol/StakingModuleV2.json +1779 -0
  78. package/src/assets/ethereum/hoodi/liqEth/v1/DepositManager.sol/DepositManager.dbg.json +4 -0
  79. package/src/assets/ethereum/hoodi/liqEth/v1/DepositManager.sol/DepositManager.json +978 -0
  80. package/src/assets/ethereum/hoodi/liqEth/v1/LiqEthCommon.sol/IAccounting.dbg.json +4 -0
  81. package/src/assets/ethereum/{ABI/liqEth → hoodi/liqEth/v1}/LiqEthCommon.sol/IAccounting.json +25 -21
  82. package/src/assets/ethereum/hoodi/liqEth/v1/LiqEthCommon.sol/IDepositContract.dbg.json +4 -0
  83. package/src/assets/ethereum/hoodi/liqEth/v1/LiqEthCommon.sol/IDepositContract.json +39 -0
  84. package/src/assets/ethereum/hoodi/liqEth/v1/LiqEthCommon.sol/IDepositManager.dbg.json +4 -0
  85. package/src/assets/ethereum/hoodi/liqEth/v1/LiqEthCommon.sol/IDepositManager.json +64 -0
  86. package/src/assets/ethereum/hoodi/liqEth/v1/LiqEthCommon.sol/ILiqEthUpgradeable.dbg.json +4 -0
  87. package/src/assets/ethereum/hoodi/liqEth/v1/LiqEthCommon.sol/ILiqEthUpgradeable.json +29 -0
  88. package/src/assets/ethereum/hoodi/liqEth/v1/LiqEthCommon.sol/IRewardsERC20.dbg.json +4 -0
  89. package/src/assets/ethereum/{ABI/liqEth → hoodi/liqEth/v1}/LiqEthCommon.sol/IRewardsERC20.json +37 -1
  90. package/src/assets/ethereum/hoodi/liqEth/v1/LiqEthCommon.sol/IRewardsERC20Pausable.dbg.json +4 -0
  91. package/src/assets/ethereum/hoodi/liqEth/v1/LiqEthCommon.sol/IRewardsERC20Pausable.json +263 -0
  92. package/src/assets/ethereum/hoodi/liqEth/v1/LiqEthCommon.sol/IStakingModule.dbg.json +4 -0
  93. package/src/assets/ethereum/hoodi/liqEth/v1/LiqEthCommon.sol/IStakingModule.json +344 -0
  94. package/src/assets/ethereum/hoodi/liqEth/v1/LiqEthCommon.sol/IValidatorBalanceVerifier.dbg.json +4 -0
  95. package/src/assets/ethereum/hoodi/liqEth/v1/LiqEthCommon.sol/IValidatorBalanceVerifier.json +129 -0
  96. package/src/assets/ethereum/hoodi/liqEth/v1/LiqEthCommon.sol/IWithdrawalRecord.dbg.json +4 -0
  97. package/src/assets/ethereum/hoodi/liqEth/v1/LiqEthCommon.sol/IWithdrawalRecord.json +66 -0
  98. package/src/assets/ethereum/hoodi/liqEth/v1/LiqEthCommon.sol/LiqEthCommon.dbg.json +4 -0
  99. package/src/assets/ethereum/hoodi/liqEth/v1/LiqEthCommon.sol/LiqEthCommon.json +10 -0
  100. package/src/assets/ethereum/hoodi/liqEth/v1/RewardsERC20.sol/RewardsERC20Upgradeable.dbg.json +4 -0
  101. package/src/assets/ethereum/{ABI/liqEth/RewardsERC20Pausable.sol/RewardsERC20Pausable.json → hoodi/liqEth/v1/RewardsERC20.sol/RewardsERC20Upgradeable.json} +140 -78
  102. package/src/assets/ethereum/hoodi/liqEth/v1/RewardsERC20Pausable.sol/RewardsERC20PausableUpgradeable.dbg.json +4 -0
  103. package/src/assets/ethereum/hoodi/liqEth/v1/RewardsERC20Pausable.sol/RewardsERC20PausableUpgradeable.json +937 -0
  104. package/src/assets/ethereum/hoodi/liqEth/v1/accounting.sol/Accounting.dbg.json +4 -0
  105. package/src/assets/ethereum/hoodi/liqEth/v1/accounting.sol/Accounting.json +548 -0
  106. package/src/assets/ethereum/hoodi/liqEth/v1/liqEth.sol/LiqEthToken.dbg.json +4 -0
  107. package/src/assets/ethereum/hoodi/liqEth/v1/liqEth.sol/LiqEthToken.json +1233 -0
  108. package/src/assets/ethereum/hoodi/liqEth/v1/stakingModule.sol/StakingModule.dbg.json +4 -0
  109. package/src/assets/ethereum/hoodi/liqEth/v1/stakingModule.sol/StakingModule.json +1772 -0
  110. package/src/assets/ethereum/hoodi/liqEth/withdrawalQueue.sol/WithdrawalQueue.dbg.json +4 -0
  111. package/src/assets/ethereum/hoodi/liqEth/withdrawalQueue.sol/WithdrawalQueue.json +973 -0
  112. package/src/assets/ethereum/hoodi/liqEth/withdrawalVault.sol/Uint64BE.dbg.json +4 -0
  113. package/src/assets/ethereum/{ABI → hoodi}/liqEth/withdrawalVault.sol/Uint64BE.json +2 -2
  114. package/src/assets/ethereum/hoodi/liqEth/withdrawalVault.sol/WithdrawalVault.dbg.json +4 -0
  115. package/src/assets/ethereum/hoodi/liqEth/withdrawalVault.sol/WithdrawalVault.json +441 -0
  116. package/src/assets/ethereum/hoodi/outpost/BAR.sol/BAR.dbg.json +4 -0
  117. package/src/assets/ethereum/hoodi/outpost/BAR.sol/BAR.json +1111 -0
  118. package/src/assets/ethereum/hoodi/outpost/Depositor.sol/Depositor.dbg.json +4 -0
  119. package/src/assets/ethereum/hoodi/outpost/Depositor.sol/Depositor.json +1696 -0
  120. package/src/assets/ethereum/hoodi/outpost/EthUsdPriceConsumer.sol/AggregatorV3Interface.dbg.json +4 -0
  121. package/src/assets/ethereum/hoodi/outpost/EthUsdPriceConsumer.sol/AggregatorV3Interface.json +122 -0
  122. package/src/assets/ethereum/hoodi/outpost/EthUsdPriceConsumer.sol/EthUsdPriceConsumer.dbg.json +4 -0
  123. package/src/assets/ethereum/hoodi/outpost/EthUsdPriceConsumer.sol/EthUsdPriceConsumer.json +274 -0
  124. package/src/assets/ethereum/hoodi/outpost/InstaswapBridgeAttestations.sol/BridgeDepositCodec.dbg.json +4 -0
  125. package/src/assets/ethereum/hoodi/outpost/InstaswapBridgeAttestations.sol/BridgeDepositCodec.json +10 -0
  126. package/src/assets/ethereum/hoodi/outpost/InstaswapBridgeAttestations.sol/BridgeWithdrawCodec.dbg.json +4 -0
  127. package/src/assets/ethereum/hoodi/outpost/InstaswapBridgeAttestations.sol/BridgeWithdrawCodec.json +10 -0
  128. package/src/assets/ethereum/hoodi/outpost/InstaswapBridgeAttestations.sol/BridgeWithdrawConfirmCodec.dbg.json +4 -0
  129. package/src/assets/ethereum/hoodi/outpost/InstaswapBridgeAttestations.sol/BridgeWithdrawConfirmCodec.json +10 -0
  130. package/src/assets/ethereum/hoodi/outpost/InstaswapBridgeAttestations.sol/InstaswapBridgeAttestationTypeLib.dbg.json +4 -0
  131. package/src/assets/ethereum/hoodi/outpost/InstaswapBridgeAttestations.sol/InstaswapBridgeAttestationTypeLib.json +10 -0
  132. package/src/assets/ethereum/hoodi/outpost/LiqEthBridge.sol/LiqEthBridge.dbg.json +4 -0
  133. package/src/assets/ethereum/hoodi/outpost/LiqEthBridge.sol/LiqEthBridge.json +1044 -0
  134. package/src/assets/ethereum/hoodi/outpost/OPP.sol/OPP.dbg.json +4 -0
  135. package/src/assets/ethereum/hoodi/outpost/OPP.sol/OPP.json +1055 -0
  136. package/src/assets/ethereum/hoodi/outpost/OPPCommon.sol/IOPP.dbg.json +4 -0
  137. package/src/assets/ethereum/hoodi/outpost/OPPCommon.sol/IOPP.json +81 -0
  138. package/src/assets/ethereum/hoodi/outpost/OPPCommon.sol/IOPPEndpoint.dbg.json +4 -0
  139. package/src/assets/ethereum/hoodi/outpost/OPPCommon.sol/IOPPEndpoint.json +29 -0
  140. package/src/assets/ethereum/hoodi/outpost/OPPCommon.sol/IOPPInbound.dbg.json +4 -0
  141. package/src/assets/ethereum/hoodi/outpost/OPPCommon.sol/IOPPInbound.json +330 -0
  142. package/src/assets/ethereum/hoodi/outpost/OPPCommon.sol/IOPPReceiver.dbg.json +4 -0
  143. package/src/assets/ethereum/hoodi/outpost/OPPCommon.sol/IOPPReceiver.json +29 -0
  144. package/src/assets/ethereum/hoodi/outpost/OPPCommon.sol/IOPPSender.dbg.json +4 -0
  145. package/src/assets/ethereum/hoodi/outpost/OPPCommon.sol/IOPPSender.json +41 -0
  146. package/src/assets/ethereum/hoodi/outpost/OPPCommon.sol/OPPCommon.dbg.json +4 -0
  147. package/src/assets/ethereum/hoodi/outpost/OPPCommon.sol/OPPCommon.json +287 -0
  148. package/src/assets/ethereum/hoodi/outpost/OPPEndpoint.sol/OPPEndpoint.dbg.json +4 -0
  149. package/src/assets/ethereum/hoodi/outpost/OPPEndpoint.sol/OPPEndpoint.json +294 -0
  150. package/src/assets/ethereum/hoodi/outpost/OPPEndpointManaged.sol/OPPEndpointManaged.dbg.json +4 -0
  151. package/src/assets/ethereum/hoodi/outpost/OPPEndpointManaged.sol/OPPEndpointManaged.json +415 -0
  152. package/src/assets/ethereum/hoodi/outpost/OPPEndpointOwnable.sol/OPPEndpointOwnable.dbg.json +4 -0
  153. package/src/assets/ethereum/hoodi/outpost/OPPEndpointOwnable.sol/OPPEndpointOwnable.json +399 -0
  154. package/src/assets/ethereum/hoodi/outpost/OPPErrors.sol/OPPErrors.dbg.json +4 -0
  155. package/src/assets/ethereum/hoodi/outpost/OPPErrors.sol/OPPErrors.json +245 -0
  156. package/src/assets/ethereum/hoodi/outpost/OPPInbound.sol/OPPInbound.dbg.json +4 -0
  157. package/src/assets/ethereum/hoodi/outpost/OPPInbound.sol/OPPInbound.json +1204 -0
  158. package/src/assets/ethereum/hoodi/outpost/OPPReceiver.sol/OPPReceiver.dbg.json +4 -0
  159. package/src/assets/ethereum/hoodi/outpost/OPPReceiver.sol/OPPReceiver.json +312 -0
  160. package/src/assets/ethereum/hoodi/outpost/OPPSender.sol/OPPSender.dbg.json +4 -0
  161. package/src/assets/ethereum/hoodi/outpost/OPPSender.sol/OPPSender.json +324 -0
  162. package/src/assets/ethereum/hoodi/outpost/OperatorRegistry.sol/OperatorRegistry.dbg.json +4 -0
  163. package/src/assets/ethereum/hoodi/outpost/OperatorRegistry.sol/OperatorRegistry.json +1068 -0
  164. package/src/assets/ethereum/hoodi/outpost/OutpostErrors.sol/OutpostErrors.dbg.json +4 -0
  165. package/src/assets/ethereum/hoodi/outpost/OutpostErrors.sol/OutpostErrors.json +211 -0
  166. package/src/assets/ethereum/hoodi/outpost/OutpostManaged.sol/OutpostManaged.dbg.json +4 -0
  167. package/src/assets/ethereum/hoodi/outpost/OutpostManaged.sol/OutpostManaged.json +229 -0
  168. package/src/assets/ethereum/hoodi/outpost/OutpostManager.sol/OutpostManager.dbg.json +4 -0
  169. package/src/assets/ethereum/hoodi/outpost/OutpostManager.sol/OutpostManager.json +751 -0
  170. package/src/assets/ethereum/hoodi/outpost/OutpostManagerAuthority.sol/OutpostManagerAuthority.dbg.json +4 -0
  171. package/src/assets/ethereum/hoodi/outpost/OutpostManagerAuthority.sol/OutpostManagerAuthority.json +1432 -0
  172. package/src/assets/ethereum/hoodi/outpost/OutpostManagerCommon.sol/IOutpostManager.dbg.json +4 -0
  173. package/src/assets/ethereum/hoodi/outpost/OutpostManagerCommon.sol/IOutpostManager.json +130 -0
  174. package/src/assets/ethereum/hoodi/outpost/OutpostManagerCommon.sol/IOutpostUpgradeable.dbg.json +4 -0
  175. package/src/assets/ethereum/hoodi/outpost/OutpostManagerCommon.sol/IOutpostUpgradeable.json +29 -0
  176. package/src/assets/ethereum/hoodi/outpost/OutpostManagerCommon.sol/OutpostManagerCommon.dbg.json +4 -0
  177. package/src/assets/ethereum/hoodi/outpost/OutpostManagerCommon.sol/OutpostManagerCommon.json +141 -0
  178. package/src/assets/ethereum/hoodi/outpost/OutpostOwnable.sol/OutpostOwnable.dbg.json +4 -0
  179. package/src/assets/ethereum/hoodi/outpost/OutpostOwnable.sol/OutpostOwnable.json +213 -0
  180. package/src/assets/ethereum/hoodi/outpost/OutpostReserve.sol/OutpostReserve.dbg.json +4 -0
  181. package/src/assets/ethereum/hoodi/outpost/OutpostReserve.sol/OutpostReserve.json +888 -0
  182. package/src/assets/ethereum/hoodi/outpost/Pool.sol/Pool.dbg.json +4 -0
  183. package/src/assets/ethereum/hoodi/outpost/Pool.sol/Pool.json +659 -0
  184. package/src/assets/ethereum/hoodi/outpost/Pretoken.sol/Pretoken.dbg.json +4 -0
  185. package/src/assets/ethereum/hoodi/outpost/Pretoken.sol/Pretoken.json +1393 -0
  186. package/src/assets/ethereum/hoodi/outpost/ReceiptNFT.sol/ReceiptNFT.dbg.json +4 -0
  187. package/src/assets/ethereum/hoodi/outpost/ReceiptNFT.sol/ReceiptNFT.json +1738 -0
  188. package/src/assets/ethereum/hoodi/outpost/WireYieldHubAttestations.sol/InstaswapConfirmCodec.dbg.json +4 -0
  189. package/src/assets/ethereum/hoodi/outpost/WireYieldHubAttestations.sol/InstaswapConfirmCodec.json +10 -0
  190. package/src/assets/ethereum/hoodi/outpost/WireYieldHubAttestations.sol/InstaswapFailedCodec.dbg.json +4 -0
  191. package/src/assets/ethereum/hoodi/outpost/WireYieldHubAttestations.sol/InstaswapFailedCodec.json +10 -0
  192. package/src/assets/ethereum/hoodi/outpost/WireYieldHubAttestations.sol/InstaswapRequestCodec.dbg.json +4 -0
  193. package/src/assets/ethereum/hoodi/outpost/WireYieldHubAttestations.sol/InstaswapRequestCodec.json +10 -0
  194. package/src/assets/ethereum/hoodi/outpost/WireYieldHubAttestations.sol/InstaswapSettlementCodec.dbg.json +4 -0
  195. package/src/assets/ethereum/hoodi/outpost/WireYieldHubAttestations.sol/InstaswapSettlementCodec.json +10 -0
  196. package/src/assets/ethereum/hoodi/outpost/WireYieldHubAttestations.sol/PrincipalExitConfirmCodec.dbg.json +4 -0
  197. package/src/assets/ethereum/hoodi/outpost/WireYieldHubAttestations.sol/PrincipalExitConfirmCodec.json +10 -0
  198. package/src/assets/ethereum/hoodi/outpost/WireYieldHubAttestations.sol/PrincipalExitFailedCodec.dbg.json +4 -0
  199. package/src/assets/ethereum/hoodi/outpost/WireYieldHubAttestations.sol/PrincipalExitFailedCodec.json +10 -0
  200. package/src/assets/ethereum/hoodi/outpost/WireYieldHubAttestations.sol/PrincipalExitRequestCodec.dbg.json +4 -0
  201. package/src/assets/ethereum/hoodi/outpost/WireYieldHubAttestations.sol/PrincipalExitRequestCodec.json +10 -0
  202. package/src/assets/ethereum/hoodi/outpost/WireYieldHubAttestations.sol/PrincipalStakeDeltaCodec.dbg.json +4 -0
  203. package/src/assets/ethereum/hoodi/outpost/WireYieldHubAttestations.sol/PrincipalStakeDeltaCodec.json +10 -0
  204. package/src/assets/ethereum/hoodi/outpost/WireYieldHubAttestations.sol/WireYieldHubAssetCodec.dbg.json +4 -0
  205. package/src/assets/ethereum/hoodi/outpost/WireYieldHubAttestations.sol/WireYieldHubAssetCodec.json +10 -0
  206. package/src/assets/ethereum/hoodi/outpost/WireYieldHubAttestations.sol/WireYieldHubAttestationTypeLib.dbg.json +4 -0
  207. package/src/assets/ethereum/hoodi/outpost/WireYieldHubAttestations.sol/WireYieldHubAttestationTypeLib.json +10 -0
  208. package/src/assets/ethereum/hoodi/outpost/WireYieldHubAttestations.sol/WireYieldHubAttestations.dbg.json +4 -0
  209. package/src/assets/ethereum/hoodi/outpost/WireYieldHubAttestations.sol/WireYieldHubAttestations.json +1437 -0
  210. package/src/assets/ethereum/hoodi/outpost/WireYieldHubAttestations.sol/YieldDepositCodec.dbg.json +4 -0
  211. package/src/assets/ethereum/hoodi/outpost/WireYieldHubAttestations.sol/YieldDepositCodec.json +10 -0
  212. package/src/assets/ethereum/hoodi/outpost/interfaces/IPretoken.sol/IPretoken.dbg.json +4 -0
  213. package/src/assets/ethereum/{ABI/liqEth/LiqEthCommon.sol/ILiqEthMint.json → hoodi/outpost/interfaces/IPretoken.sol/IPretoken.json} +6 -12
  214. package/src/assets/ethereum/hoodi/outpost/interfaces/IWarrant.sol/IWarrant.dbg.json +4 -0
  215. package/src/assets/ethereum/{ABI/liqEth/LiqEthCommon.sol/ILiqEthBurn.json → hoodi/outpost/interfaces/IWarrant.sol/IWarrant.json} +9 -4
  216. package/src/assets/ethereum/hoodi/outpost/token/ERC721EthEquivalentVotesUpgradeable.sol/ERC721EthEquivalentVotesUpgradeable.dbg.json +4 -0
  217. package/src/assets/ethereum/hoodi/outpost/token/ERC721EthEquivalentVotesUpgradeable.sol/ERC721EthEquivalentVotesUpgradeable.json +858 -0
  218. package/src/assets/ethereum/hoodi/outpost/token/IERC721EthEquivalent.sol/IERC721EthEquivalent.dbg.json +4 -0
  219. package/src/assets/ethereum/hoodi/outpost/token/IERC721EthEquivalent.sol/IERC721EthEquivalent.json +30 -0
  220. package/src/assets/ethereum/hoodi/token/ERC1155Token.sol/ERC1155Token.dbg.json +4 -0
  221. package/src/assets/ethereum/hoodi/token/ERC1155Token.sol/ERC1155Token.json +472 -0
  222. package/src/assets/ethereum/hoodi/token/ERC20Token.sol/ERC20Token.dbg.json +4 -0
  223. package/src/assets/ethereum/hoodi/token/ERC20Token.sol/ERC20Token.json +330 -0
  224. package/src/assets/ethereum/hoodi/token/ERC721Token.sol/ERC721Token.dbg.json +4 -0
  225. package/src/assets/ethereum/hoodi/token/ERC721Token.sol/ERC721Token.json +449 -0
  226. package/src/assets/ethereum/hoodi/token/Eman1155.sol/Eman1155.dbg.json +4 -0
  227. package/src/assets/ethereum/hoodi/token/Eman1155.sol/Eman1155.json +560 -0
  228. package/src/assets/ethereum/hoodi/token/Eman20.sol/Eman20.dbg.json +4 -0
  229. package/src/assets/ethereum/hoodi/token/Eman20.sol/Eman20.json +460 -0
  230. package/src/assets/ethereum/hoodi/token/Eman721.sol/Eman721.dbg.json +4 -0
  231. package/src/assets/ethereum/hoodi/token/Eman721.sol/Eman721.json +624 -0
  232. package/src/assets/ethereum/mainnet/common/Base58.sol/Base58.dbg.json +4 -0
  233. package/src/assets/ethereum/mainnet/common/Base58.sol/Base58.json +164 -0
  234. package/src/assets/ethereum/mainnet/common/OpenZepArtifacts.sol/__Dummy_OZ_UUPS__.dbg.json +4 -0
  235. package/src/assets/ethereum/mainnet/common/OpenZepArtifacts.sol/__Dummy_OZ_UUPS__.json +76 -0
  236. package/src/assets/ethereum/mainnet/common/RestrictedCallers.sol/RestrictedCallers.dbg.json +4 -0
  237. package/src/assets/ethereum/mainnet/common/RestrictedCallers.sol/RestrictedCallers.json +10 -0
  238. package/src/assets/ethereum/mainnet/common/iodata.sol/iodata.dbg.json +4 -0
  239. package/src/assets/ethereum/mainnet/common/iodata.sol/iodata.json +618 -0
  240. package/src/assets/ethereum/mainnet/common/iodata_util.sol/iodata_util.dbg.json +4 -0
  241. package/src/assets/ethereum/mainnet/common/iodata_util.sol/iodata_util.json +40 -0
  242. package/src/assets/ethereum/mainnet/common/sysio_data.sol/sysio_data.dbg.json +4 -0
  243. package/src/assets/ethereum/mainnet/common/sysio_data.sol/sysio_data.json +10 -0
  244. package/src/assets/ethereum/mainnet/common/sysio_errors.sol/sysio_errors.dbg.json +4 -0
  245. package/src/assets/ethereum/mainnet/common/sysio_errors.sol/sysio_errors.json +10 -0
  246. package/src/assets/ethereum/mainnet/common/sysio_merkle.sol/sysio_merkle.dbg.json +4 -0
  247. package/src/assets/ethereum/mainnet/common/sysio_merkle.sol/sysio_merkle.json +233 -0
  248. package/src/assets/ethereum/mainnet/common/sysio_name.sol/sysio_name.dbg.json +4 -0
  249. package/src/assets/ethereum/mainnet/common/sysio_name.sol/sysio_name.json +49 -0
  250. package/src/assets/ethereum/mainnet/common/sysio_pubkey.sol/sysio_pubkey.dbg.json +4 -0
  251. package/src/assets/ethereum/mainnet/common/sysio_pubkey.sol/sysio_pubkey.json +64 -0
  252. package/src/assets/ethereum/mainnet/common/sysio_read.sol/sysio_read.dbg.json +4 -0
  253. package/src/assets/ethereum/mainnet/common/sysio_read.sol/sysio_read.json +1458 -0
  254. package/src/assets/ethereum/mainnet/common/sysio_tester.sol/SysioTester.dbg.json +4 -0
  255. package/src/assets/ethereum/mainnet/common/sysio_tester.sol/SysioTester.json +1532 -0
  256. package/src/assets/ethereum/mainnet/common/sysio_verify.sol/sysio_verify.dbg.json +4 -0
  257. package/src/assets/ethereum/mainnet/common/sysio_verify.sol/sysio_verify.json +1525 -0
  258. package/src/assets/ethereum/mainnet/common/sysio_write.sol/sysio_write.dbg.json +4 -0
  259. package/src/assets/ethereum/mainnet/common/sysio_write.sol/sysio_write.json +1076 -0
  260. package/src/assets/ethereum/mainnet/liqEth/BeaconState.sol/BeaconState.dbg.json +4 -0
  261. package/src/assets/ethereum/mainnet/liqEth/BeaconState.sol/BeaconState.json +807 -0
  262. package/src/assets/ethereum/mainnet/liqEth/DepositManager.sol/DepositManagerV2.dbg.json +4 -0
  263. package/src/assets/ethereum/mainnet/liqEth/DepositManager.sol/DepositManagerV2.json +1004 -0
  264. package/src/assets/ethereum/mainnet/liqEth/DepositManager.sol/IStakingModuleBondLocker.dbg.json +4 -0
  265. package/src/assets/ethereum/mainnet/liqEth/DepositManager.sol/IStakingModuleBondLocker.json +29 -0
  266. package/src/assets/ethereum/mainnet/liqEth/KeyBondManager.sol/KeyBondManager.dbg.json +4 -0
  267. package/src/assets/ethereum/mainnet/liqEth/KeyBondManager.sol/KeyBondManager.json +897 -0
  268. package/src/assets/ethereum/mainnet/liqEth/LiqEthAuthority.sol/LiqEthAuthority.dbg.json +4 -0
  269. package/src/assets/ethereum/mainnet/liqEth/LiqEthAuthority.sol/LiqEthAuthority.json +1289 -0
  270. package/src/assets/ethereum/mainnet/liqEth/LiqEthCommon.sol/IDepositContract.dbg.json +4 -0
  271. package/src/assets/ethereum/mainnet/liqEth/LiqEthCommon.sol/IDepositContract.json +39 -0
  272. package/src/assets/ethereum/mainnet/liqEth/LiqEthCommon.sol/IDepositManager.dbg.json +4 -0
  273. package/src/assets/ethereum/mainnet/liqEth/LiqEthCommon.sol/IDepositManager.json +64 -0
  274. package/src/assets/ethereum/mainnet/liqEth/LiqEthCommon.sol/IKeyBondManager.dbg.json +4 -0
  275. package/src/assets/ethereum/mainnet/liqEth/LiqEthCommon.sol/IKeyBondManager.json +189 -0
  276. package/src/assets/ethereum/mainnet/liqEth/LiqEthCommon.sol/ILiqEthUpgradeable.dbg.json +4 -0
  277. package/src/assets/ethereum/mainnet/liqEth/LiqEthCommon.sol/ILiqEthUpgradeable.json +29 -0
  278. package/src/assets/ethereum/mainnet/liqEth/LiqEthCommon.sol/IRewardsERC20.dbg.json +4 -0
  279. package/src/assets/ethereum/mainnet/liqEth/LiqEthCommon.sol/IRewardsERC20.json +319 -0
  280. package/src/assets/ethereum/mainnet/liqEth/LiqEthCommon.sol/IRewardsERC20Pausable.dbg.json +4 -0
  281. package/src/assets/ethereum/mainnet/liqEth/LiqEthCommon.sol/IRewardsERC20Pausable.json +333 -0
  282. package/src/assets/ethereum/mainnet/liqEth/LiqEthCommon.sol/IStakingModule.dbg.json +4 -0
  283. package/src/assets/ethereum/mainnet/liqEth/LiqEthCommon.sol/IStakingModule.json +279 -0
  284. package/src/assets/ethereum/mainnet/liqEth/LiqEthCommon.sol/IValidatorBalanceVerifier.dbg.json +4 -0
  285. package/src/assets/ethereum/mainnet/liqEth/LiqEthCommon.sol/IValidatorBalanceVerifier.json +129 -0
  286. package/src/assets/ethereum/mainnet/liqEth/LiqEthCommon.sol/IWithdrawalRecord.dbg.json +4 -0
  287. package/src/assets/ethereum/mainnet/liqEth/LiqEthCommon.sol/IWithdrawalRecord.json +66 -0
  288. package/src/assets/ethereum/mainnet/liqEth/LiqEthCommon.sol/LiqEthCommon.dbg.json +4 -0
  289. package/src/assets/ethereum/mainnet/liqEth/LiqEthCommon.sol/LiqEthCommon.json +10 -0
  290. package/src/assets/ethereum/mainnet/liqEth/LiqEthDeepFreeze.sol/LiqEthDeepFreeze.dbg.json +4 -0
  291. package/src/assets/ethereum/mainnet/liqEth/LiqEthDeepFreeze.sol/LiqEthDeepFreeze.json +236 -0
  292. package/src/assets/ethereum/mainnet/liqEth/LiqEthManaged.sol/LiqEthManaged.dbg.json +4 -0
  293. package/src/assets/ethereum/mainnet/liqEth/LiqEthManaged.sol/LiqEthManaged.json +229 -0
  294. package/src/assets/ethereum/mainnet/liqEth/RewardsERC20.sol/RewardsERC20UpgradeableV2.dbg.json +4 -0
  295. package/src/assets/ethereum/mainnet/liqEth/RewardsERC20.sol/RewardsERC20UpgradeableV2.json +957 -0
  296. package/src/assets/ethereum/mainnet/liqEth/RewardsERC20Pausable.sol/RewardsERC20PausableUpgradeableV2.dbg.json +4 -0
  297. package/src/assets/ethereum/mainnet/liqEth/RewardsERC20Pausable.sol/RewardsERC20PausableUpgradeableV2.json +1020 -0
  298. package/src/assets/ethereum/mainnet/liqEth/StakingLib.sol/StakingLib.dbg.json +4 -0
  299. package/src/assets/ethereum/mainnet/liqEth/StakingLib.sol/StakingLib.json +89 -0
  300. package/src/assets/ethereum/mainnet/liqEth/Yield.sol/YieldOracle.dbg.json +4 -0
  301. package/src/assets/ethereum/mainnet/liqEth/Yield.sol/YieldOracle.json +1376 -0
  302. package/src/assets/ethereum/mainnet/liqEth/liqEth.sol/LiqEthTokenV2.dbg.json +4 -0
  303. package/src/assets/ethereum/mainnet/liqEth/liqEth.sol/LiqEthTokenV2.json +1323 -0
  304. package/src/assets/ethereum/mainnet/liqEth/stakingModule.sol/StakingModuleV2.dbg.json +4 -0
  305. package/src/assets/ethereum/mainnet/liqEth/stakingModule.sol/StakingModuleV2.json +1896 -0
  306. package/src/assets/ethereum/mainnet/liqEth/v1/DepositManager.sol/DepositManager.dbg.json +4 -0
  307. package/src/assets/ethereum/mainnet/liqEth/v1/DepositManager.sol/DepositManager.json +978 -0
  308. package/src/assets/ethereum/mainnet/liqEth/v1/LiqEthCommon.sol/IAccounting.dbg.json +4 -0
  309. package/src/assets/ethereum/mainnet/liqEth/v1/LiqEthCommon.sol/IAccounting.json +176 -0
  310. package/src/assets/ethereum/mainnet/liqEth/v1/LiqEthCommon.sol/IDepositContract.dbg.json +4 -0
  311. package/src/assets/ethereum/mainnet/liqEth/v1/LiqEthCommon.sol/IDepositContract.json +39 -0
  312. package/src/assets/ethereum/mainnet/liqEth/v1/LiqEthCommon.sol/IDepositManager.dbg.json +4 -0
  313. package/src/assets/ethereum/mainnet/liqEth/v1/LiqEthCommon.sol/IDepositManager.json +64 -0
  314. package/src/assets/ethereum/mainnet/liqEth/v1/LiqEthCommon.sol/ILiqEthUpgradeable.dbg.json +4 -0
  315. package/src/assets/ethereum/mainnet/liqEth/v1/LiqEthCommon.sol/ILiqEthUpgradeable.json +29 -0
  316. package/src/assets/ethereum/mainnet/liqEth/v1/LiqEthCommon.sol/IRewardsERC20.dbg.json +4 -0
  317. package/src/assets/ethereum/mainnet/liqEth/v1/LiqEthCommon.sol/IRewardsERC20.json +249 -0
  318. package/src/assets/ethereum/mainnet/liqEth/v1/LiqEthCommon.sol/IRewardsERC20Pausable.dbg.json +4 -0
  319. package/src/assets/ethereum/mainnet/liqEth/v1/LiqEthCommon.sol/IRewardsERC20Pausable.json +263 -0
  320. package/src/assets/ethereum/mainnet/liqEth/v1/LiqEthCommon.sol/IStakingModule.dbg.json +4 -0
  321. package/src/assets/ethereum/mainnet/liqEth/v1/LiqEthCommon.sol/IStakingModule.json +344 -0
  322. package/src/assets/ethereum/mainnet/liqEth/v1/LiqEthCommon.sol/IValidatorBalanceVerifier.dbg.json +4 -0
  323. package/src/assets/ethereum/mainnet/liqEth/v1/LiqEthCommon.sol/IValidatorBalanceVerifier.json +129 -0
  324. package/src/assets/ethereum/mainnet/liqEth/v1/LiqEthCommon.sol/IWithdrawalRecord.dbg.json +4 -0
  325. package/src/assets/ethereum/mainnet/liqEth/v1/LiqEthCommon.sol/IWithdrawalRecord.json +66 -0
  326. package/src/assets/ethereum/mainnet/liqEth/v1/LiqEthCommon.sol/LiqEthCommon.dbg.json +4 -0
  327. package/src/assets/ethereum/mainnet/liqEth/v1/LiqEthCommon.sol/LiqEthCommon.json +10 -0
  328. package/src/assets/ethereum/mainnet/liqEth/v1/RewardsERC20.sol/RewardsERC20Upgradeable.dbg.json +4 -0
  329. package/src/assets/ethereum/{ABI/liqEth/RewardsERC20.sol/RewardsERC20.json → mainnet/liqEth/v1/RewardsERC20.sol/RewardsERC20Upgradeable.json} +159 -34
  330. package/src/assets/ethereum/mainnet/liqEth/v1/RewardsERC20Pausable.sol/RewardsERC20PausableUpgradeable.dbg.json +4 -0
  331. package/src/assets/ethereum/mainnet/liqEth/v1/RewardsERC20Pausable.sol/RewardsERC20PausableUpgradeable.json +937 -0
  332. package/src/assets/ethereum/mainnet/liqEth/v1/accounting.sol/Accounting.dbg.json +4 -0
  333. package/src/assets/ethereum/mainnet/liqEth/v1/accounting.sol/Accounting.json +542 -0
  334. package/src/assets/ethereum/mainnet/liqEth/v1/liqEth.sol/LiqEthToken.dbg.json +4 -0
  335. package/src/assets/ethereum/mainnet/liqEth/v1/liqEth.sol/LiqEthToken.json +1233 -0
  336. package/src/assets/ethereum/mainnet/liqEth/v1/stakingModule.sol/StakingModule.dbg.json +4 -0
  337. package/src/assets/ethereum/mainnet/liqEth/v1/stakingModule.sol/StakingModule.json +1772 -0
  338. package/src/assets/ethereum/mainnet/liqEth/withdrawalQueue.sol/WithdrawalQueue.dbg.json +4 -0
  339. package/src/assets/ethereum/mainnet/liqEth/withdrawalQueue.sol/WithdrawalQueue.json +973 -0
  340. package/src/assets/ethereum/mainnet/liqEth/withdrawalVault.sol/Uint64BE.dbg.json +4 -0
  341. package/src/assets/ethereum/mainnet/liqEth/withdrawalVault.sol/Uint64BE.json +10 -0
  342. package/src/assets/ethereum/mainnet/liqEth/withdrawalVault.sol/WithdrawalVault.dbg.json +4 -0
  343. package/src/assets/ethereum/mainnet/liqEth/withdrawalVault.sol/WithdrawalVault.json +441 -0
  344. package/src/assets/ethereum/mainnet/outpost/BAR.sol/BARV2.dbg.json +4 -0
  345. package/src/assets/ethereum/mainnet/outpost/BAR.sol/BARV2.json +1915 -0
  346. package/src/assets/ethereum/mainnet/outpost/Depositor.sol/DepositorV2.dbg.json +4 -0
  347. package/src/assets/ethereum/mainnet/outpost/Depositor.sol/DepositorV2.json +1845 -0
  348. package/src/assets/ethereum/mainnet/outpost/EthUsdPriceConsumer.sol/AggregatorV3Interface.dbg.json +4 -0
  349. package/src/assets/ethereum/mainnet/outpost/EthUsdPriceConsumer.sol/AggregatorV3Interface.json +122 -0
  350. package/src/assets/ethereum/mainnet/outpost/EthUsdPriceConsumer.sol/EthUsdPriceConsumer.dbg.json +4 -0
  351. package/src/assets/ethereum/mainnet/outpost/EthUsdPriceConsumer.sol/EthUsdPriceConsumer.json +551 -0
  352. package/src/assets/ethereum/mainnet/outpost/OPP.sol/OPP.dbg.json +4 -0
  353. package/src/assets/ethereum/mainnet/outpost/OPP.sol/OPP.json +948 -0
  354. package/src/assets/ethereum/mainnet/outpost/OPPCommon.sol/IOPP.dbg.json +4 -0
  355. package/src/assets/ethereum/mainnet/outpost/OPPCommon.sol/IOPP.json +88 -0
  356. package/src/assets/ethereum/mainnet/outpost/OPPCommon.sol/IOPPEndpoint.dbg.json +4 -0
  357. package/src/assets/ethereum/mainnet/outpost/OPPCommon.sol/IOPPEndpoint.json +29 -0
  358. package/src/assets/ethereum/mainnet/outpost/OPPCommon.sol/IOPPInbound.dbg.json +4 -0
  359. package/src/assets/ethereum/mainnet/outpost/OPPCommon.sol/IOPPInbound.json +194 -0
  360. package/src/assets/ethereum/mainnet/outpost/OPPCommon.sol/IOPPReceiver.dbg.json +4 -0
  361. package/src/assets/ethereum/mainnet/outpost/OPPCommon.sol/IOPPReceiver.json +29 -0
  362. package/src/assets/ethereum/mainnet/outpost/OPPCommon.sol/IOPPSender.dbg.json +4 -0
  363. package/src/assets/ethereum/mainnet/outpost/OPPCommon.sol/IOPPSender.json +36 -0
  364. package/src/assets/ethereum/mainnet/outpost/OPPCommon.sol/OPPCommon.dbg.json +4 -0
  365. package/src/assets/ethereum/mainnet/outpost/OPPCommon.sol/OPPCommon.json +199 -0
  366. package/src/assets/ethereum/mainnet/outpost/OPPEndpoint.sol/OPPEndpoint.dbg.json +4 -0
  367. package/src/assets/ethereum/mainnet/outpost/OPPEndpoint.sol/OPPEndpoint.json +273 -0
  368. package/src/assets/ethereum/mainnet/outpost/OPPEndpointManaged.sol/OPPEndpointManaged.dbg.json +4 -0
  369. package/src/assets/ethereum/mainnet/outpost/OPPEndpointManaged.sol/OPPEndpointManaged.json +394 -0
  370. package/src/assets/ethereum/mainnet/outpost/OPPEndpointOwnable.sol/OPPEndpointOwnable.dbg.json +4 -0
  371. package/src/assets/ethereum/mainnet/outpost/OPPEndpointOwnable.sol/OPPEndpointOwnable.json +378 -0
  372. package/src/assets/ethereum/mainnet/outpost/OPPErrors.sol/OPPErrors.dbg.json +4 -0
  373. package/src/assets/ethereum/mainnet/outpost/OPPErrors.sol/OPPErrors.json +224 -0
  374. package/src/assets/ethereum/mainnet/outpost/OPPInbound.sol/OPPInbound.dbg.json +4 -0
  375. package/src/assets/ethereum/mainnet/outpost/OPPInbound.sol/OPPInbound.json +1010 -0
  376. package/src/assets/ethereum/mainnet/outpost/OPPReceiver.sol/OPPReceiver.dbg.json +4 -0
  377. package/src/assets/ethereum/mainnet/outpost/OPPReceiver.sol/OPPReceiver.json +291 -0
  378. package/src/assets/ethereum/mainnet/outpost/OPPSender.sol/OPPSender.dbg.json +4 -0
  379. package/src/assets/ethereum/mainnet/outpost/OPPSender.sol/OPPSender.json +298 -0
  380. package/src/assets/ethereum/mainnet/outpost/OutpostErrors.sol/OutpostErrors.dbg.json +4 -0
  381. package/src/assets/ethereum/mainnet/outpost/OutpostErrors.sol/OutpostErrors.json +488 -0
  382. package/src/assets/ethereum/mainnet/outpost/OutpostManaged.sol/OutpostManaged.dbg.json +4 -0
  383. package/src/assets/ethereum/mainnet/outpost/OutpostManaged.sol/OutpostManaged.json +229 -0
  384. package/src/assets/ethereum/mainnet/outpost/OutpostManager.sol/OutpostManagerV2.dbg.json +4 -0
  385. package/src/assets/ethereum/mainnet/outpost/OutpostManager.sol/OutpostManagerV2.json +737 -0
  386. package/src/assets/ethereum/mainnet/outpost/OutpostManagerAuthority.sol/OutpostManagerAuthority.dbg.json +4 -0
  387. package/src/assets/ethereum/mainnet/outpost/OutpostManagerAuthority.sol/OutpostManagerAuthority.json +1432 -0
  388. package/src/assets/ethereum/mainnet/outpost/OutpostManagerCommon.sol/IOutpostManager.dbg.json +4 -0
  389. package/src/assets/ethereum/mainnet/outpost/OutpostManagerCommon.sol/IOutpostManager.json +130 -0
  390. package/src/assets/ethereum/mainnet/outpost/OutpostManagerCommon.sol/IOutpostUpgradeable.dbg.json +4 -0
  391. package/src/assets/ethereum/mainnet/outpost/OutpostManagerCommon.sol/IOutpostUpgradeable.json +29 -0
  392. package/src/assets/ethereum/mainnet/outpost/OutpostManagerCommon.sol/OutpostManagerCommon.dbg.json +4 -0
  393. package/src/assets/ethereum/mainnet/outpost/OutpostManagerCommon.sol/OutpostManagerCommon.json +141 -0
  394. package/src/assets/ethereum/mainnet/outpost/OutpostOwnable.sol/OutpostOwnable.dbg.json +4 -0
  395. package/src/assets/ethereum/mainnet/outpost/OutpostOwnable.sol/OutpostOwnable.json +213 -0
  396. package/src/assets/ethereum/mainnet/outpost/Pool.sol/PoolV2.dbg.json +4 -0
  397. package/src/assets/ethereum/mainnet/outpost/Pool.sol/PoolV2.json +943 -0
  398. package/src/assets/ethereum/mainnet/outpost/Pretoken.sol/PretokenV2.dbg.json +4 -0
  399. package/src/assets/ethereum/mainnet/outpost/Pretoken.sol/PretokenV2.json +1703 -0
  400. package/src/assets/ethereum/mainnet/outpost/ReceiptNFT.sol/ReceiptNFT.dbg.json +4 -0
  401. package/src/assets/ethereum/mainnet/outpost/ReceiptNFT.sol/ReceiptNFT.json +2015 -0
  402. package/src/assets/ethereum/mainnet/outpost/interfaces/IPretoken.sol/IPretoken.dbg.json +4 -0
  403. package/src/assets/ethereum/mainnet/outpost/interfaces/IPretoken.sol/IPretoken.json +29 -0
  404. package/src/assets/ethereum/mainnet/outpost/interfaces/IWarrant.sol/IWarrant.dbg.json +4 -0
  405. package/src/assets/ethereum/mainnet/outpost/interfaces/IWarrant.sol/IWarrant.json +29 -0
  406. package/src/assets/ethereum/mainnet/outpost/token/ERC721EthEquivalentVotesUpgradeable.sol/ERC721EthEquivalentVotesUpgradeable.dbg.json +4 -0
  407. package/src/assets/ethereum/mainnet/outpost/token/ERC721EthEquivalentVotesUpgradeable.sol/ERC721EthEquivalentVotesUpgradeable.json +858 -0
  408. package/src/assets/ethereum/mainnet/outpost/token/IERC721EthEquivalent.sol/IERC721EthEquivalent.dbg.json +4 -0
  409. package/src/assets/ethereum/mainnet/outpost/token/IERC721EthEquivalent.sol/IERC721EthEquivalent.json +30 -0
  410. package/src/assets/ethereum/mainnet/outpost/v1/BAR.sol/BAR.dbg.json +4 -0
  411. package/src/assets/ethereum/mainnet/outpost/v1/BAR.sol/BAR.json +1871 -0
  412. package/src/assets/ethereum/mainnet/outpost/v1/Depositor.sol/Depositor.dbg.json +4 -0
  413. package/src/assets/ethereum/mainnet/outpost/v1/Depositor.sol/Depositor.json +1653 -0
  414. package/src/assets/ethereum/mainnet/outpost/v1/OutpostManager.sol/OutpostManager.dbg.json +4 -0
  415. package/src/assets/ethereum/mainnet/outpost/v1/OutpostManager.sol/OutpostManager.json +730 -0
  416. package/src/assets/ethereum/mainnet/outpost/v1/Pool.sol/Pool.dbg.json +4 -0
  417. package/src/assets/ethereum/mainnet/outpost/v1/Pool.sol/Pool.json +936 -0
  418. package/src/assets/ethereum/mainnet/outpost/v1/Pretoken.sol/Pretoken.dbg.json +4 -0
  419. package/src/assets/ethereum/mainnet/outpost/v1/Pretoken.sol/Pretoken.json +1665 -0
  420. package/src/assets/ethereum/mainnet/token/ERC1155Token.sol/ERC1155Token.dbg.json +4 -0
  421. package/src/assets/ethereum/mainnet/token/ERC1155Token.sol/ERC1155Token.json +472 -0
  422. package/src/assets/ethereum/mainnet/token/ERC20Token.sol/ERC20Token.dbg.json +4 -0
  423. package/src/assets/ethereum/mainnet/token/ERC20Token.sol/ERC20Token.json +330 -0
  424. package/src/assets/ethereum/mainnet/token/ERC721Token.sol/ERC721Token.dbg.json +4 -0
  425. package/src/assets/ethereum/mainnet/token/ERC721Token.sol/ERC721Token.json +449 -0
  426. package/src/assets/solana/devnet/idl/liqsol_core.json +8566 -0
  427. package/src/assets/solana/{idl → devnet/idl}/liqsol_token.json +35 -1
  428. package/src/assets/solana/devnet/idl/transfer_hook.json +490 -0
  429. package/src/assets/solana/devnet/idl/validator_leaderboard.json +735 -0
  430. package/src/assets/solana/devnet/types/liqsol_core.ts +8572 -0
  431. package/src/assets/solana/{types → devnet/types}/liqsol_token.ts +35 -1
  432. package/src/assets/solana/devnet/types/transfer_hook.ts +496 -0
  433. package/src/assets/solana/devnet/types/validator_leaderboard.ts +741 -0
  434. package/src/assets/solana/mainnet/idl/liqsol_core.json +6678 -0
  435. package/src/assets/solana/mainnet/idl/liqsol_token.json +217 -0
  436. package/src/assets/solana/mainnet/idl/transfer_hook.json +479 -0
  437. package/src/assets/solana/{idl → mainnet/idl}/validator_leaderboard.json +4 -4
  438. package/src/assets/solana/mainnet/types/liqsol_core.ts +6684 -0
  439. package/src/assets/solana/mainnet/types/liqsol_token.ts +223 -0
  440. package/src/assets/solana/mainnet/types/transfer_hook.ts +485 -0
  441. package/src/assets/solana/{types → mainnet/types}/validator_leaderboard.ts +4 -4
  442. package/src/assets/solana/realdevnet/idl/liqsol_core.json +7112 -0
  443. package/src/assets/solana/realdevnet/idl/liqsol_token.json +217 -0
  444. package/src/assets/solana/realdevnet/idl/transfer_hook.json +479 -0
  445. package/src/assets/solana/realdevnet/idl/validator_leaderboard.json +735 -0
  446. package/src/assets/solana/realdevnet/types/liqsol_core.ts +7118 -0
  447. package/src/assets/solana/realdevnet/types/liqsol_token.ts +223 -0
  448. package/src/assets/solana/realdevnet/types/transfer_hook.ts +485 -0
  449. package/src/assets/solana/realdevnet/types/validator_leaderboard.ts +741 -0
  450. package/src/index.ts +5 -3
  451. package/src/networks/ethereum/clients/convert.client.ts +221 -0
  452. package/src/networks/ethereum/clients/opp.client.ts +389 -0
  453. package/src/networks/ethereum/clients/pretoken.client.ts +165 -0
  454. package/src/networks/ethereum/clients/receipt.client.ts +199 -0
  455. package/src/networks/ethereum/clients/stake.client.ts +203 -0
  456. package/src/networks/ethereum/clients/validator.client.ts +61 -0
  457. package/src/networks/ethereum/contract.ts +424 -109
  458. package/src/networks/ethereum/ethereum.ts +548 -104
  459. package/src/networks/ethereum/types.ts +125 -17
  460. package/src/networks/ethereum/utils.ts +340 -0
  461. package/src/networks/solana/clients/convert.client.ts +341 -0
  462. package/src/networks/solana/clients/distribution.client.ts +266 -262
  463. package/src/networks/solana/clients/leaderboard.client.ts +68 -26
  464. package/src/networks/solana/clients/outpost.client.ts +342 -0
  465. package/src/networks/solana/clients/token.client.ts +214 -0
  466. package/src/networks/solana/constants.ts +100 -181
  467. package/src/networks/solana/program.ts +432 -28
  468. package/src/networks/solana/solana.ts +1137 -149
  469. package/src/networks/solana/types.ts +743 -33
  470. package/src/networks/solana/utils.ts +368 -304
  471. package/src/{staker/staker.ts → staker.ts} +26 -5
  472. package/src/types.ts +364 -0
  473. package/src/assets/ethereum/ABI/liqEth/DepositManager.sol/DepositManager.dbg.json +0 -4
  474. package/src/assets/ethereum/ABI/liqEth/DepositManager.sol/DepositManager.json +0 -1153
  475. package/src/assets/ethereum/ABI/liqEth/LiqEthCommon.sol/IAccounting.dbg.json +0 -4
  476. package/src/assets/ethereum/ABI/liqEth/LiqEthCommon.sol/IDepositContract.dbg.json +0 -4
  477. package/src/assets/ethereum/ABI/liqEth/LiqEthCommon.sol/IDepositManager.dbg.json +0 -4
  478. package/src/assets/ethereum/ABI/liqEth/LiqEthCommon.sol/ILiqEthBurn.dbg.json +0 -4
  479. package/src/assets/ethereum/ABI/liqEth/LiqEthCommon.sol/ILiqEthMint.dbg.json +0 -4
  480. package/src/assets/ethereum/ABI/liqEth/LiqEthCommon.sol/IRewardsERC20.dbg.json +0 -4
  481. package/src/assets/ethereum/ABI/liqEth/LiqEthCommon.sol/IStakingModule.dbg.json +0 -4
  482. package/src/assets/ethereum/ABI/liqEth/LiqEthCommon.sol/IStakingModule.json +0 -138
  483. package/src/assets/ethereum/ABI/liqEth/LiqEthCommon.sol/IValidatorBalanceVerifier.dbg.json +0 -4
  484. package/src/assets/ethereum/ABI/liqEth/LiqEthCommon.sol/IWithdrawalRecord.dbg.json +0 -4
  485. package/src/assets/ethereum/ABI/liqEth/LiqEthCommon.sol/LiqEthCommon.dbg.json +0 -4
  486. package/src/assets/ethereum/ABI/liqEth/RewardsERC20.sol/RewardsERC20.dbg.json +0 -4
  487. package/src/assets/ethereum/ABI/liqEth/RewardsERC20Pausable.sol/RewardsERC20Pausable.dbg.json +0 -4
  488. package/src/assets/ethereum/ABI/liqEth/ValidatorBalanceVerifier.sol/BeaconRoots.dbg.json +0 -4
  489. package/src/assets/ethereum/ABI/liqEth/ValidatorBalanceVerifier.sol/BeaconRoots.json +0 -10
  490. package/src/assets/ethereum/ABI/liqEth/ValidatorBalanceVerifier.sol/SSZ.dbg.json +0 -4
  491. package/src/assets/ethereum/ABI/liqEth/ValidatorBalanceVerifier.sol/SSZ.json +0 -10
  492. package/src/assets/ethereum/ABI/liqEth/ValidatorBalanceVerifier.sol/ValidatorBalanceVerifier.dbg.json +0 -4
  493. package/src/assets/ethereum/ABI/liqEth/ValidatorBalanceVerifier.sol/ValidatorBalanceVerifier.json +0 -225
  494. package/src/assets/ethereum/ABI/liqEth/Yield.sol/BeaconRoots.dbg.json +0 -4
  495. package/src/assets/ethereum/ABI/liqEth/Yield.sol/BeaconRoots.json +0 -10
  496. package/src/assets/ethereum/ABI/liqEth/Yield.sol/SSZ.dbg.json +0 -4
  497. package/src/assets/ethereum/ABI/liqEth/Yield.sol/SSZ.json +0 -10
  498. package/src/assets/ethereum/ABI/liqEth/Yield.sol/YieldOracle.dbg.json +0 -4
  499. package/src/assets/ethereum/ABI/liqEth/Yield.sol/YieldOracle.json +0 -813
  500. package/src/assets/ethereum/ABI/liqEth/accounting.sol/Accounting.dbg.json +0 -4
  501. package/src/assets/ethereum/ABI/liqEth/accounting.sol/Accounting.json +0 -651
  502. package/src/assets/ethereum/ABI/liqEth/liqEth.sol/LiqEthToken.dbg.json +0 -4
  503. package/src/assets/ethereum/ABI/liqEth/liqEth.sol/LiqEthToken.json +0 -1110
  504. package/src/assets/ethereum/ABI/liqEth/liqEthBurn.sol/LiqEthBurn.dbg.json +0 -4
  505. package/src/assets/ethereum/ABI/liqEth/liqEthBurn.sol/LiqEthBurn.json +0 -391
  506. package/src/assets/ethereum/ABI/liqEth/liqEthMint.sol/LiqEthMint.dbg.json +0 -4
  507. package/src/assets/ethereum/ABI/liqEth/liqEthMint.sol/LiqEthMint.json +0 -402
  508. package/src/assets/ethereum/ABI/liqEth/stakingModule.sol/StakingModule.dbg.json +0 -4
  509. package/src/assets/ethereum/ABI/liqEth/stakingModule.sol/StakingModule.json +0 -1225
  510. package/src/assets/ethereum/ABI/liqEth/withdrawalQueue.sol/WithdrawalQueue.dbg.json +0 -4
  511. package/src/assets/ethereum/ABI/liqEth/withdrawalQueue.sol/WithdrawalQueue.json +0 -927
  512. package/src/assets/ethereum/ABI/liqEth/withdrawalVault.sol/Uint64BE.dbg.json +0 -4
  513. package/src/assets/ethereum/ABI/liqEth/withdrawalVault.sol/WithdrawalVault.dbg.json +0 -4
  514. package/src/assets/ethereum/ABI/liqEth/withdrawalVault.sol/WithdrawalVault.json +0 -447
  515. package/src/assets/ethereum/ABI/token/ERC1155Token.sol/ERC1155Token.dbg.json +0 -4
  516. package/src/assets/ethereum/ABI/token/ERC1155Token.sol/ERC1155Token.json +0 -472
  517. package/src/assets/ethereum/ABI/token/ERC20Token.sol/ERC20Token.dbg.json +0 -4
  518. package/src/assets/ethereum/ABI/token/ERC20Token.sol/ERC20Token.json +0 -330
  519. package/src/assets/ethereum/ABI/token/ERC721Token.sol/ERC721Token.dbg.json +0 -4
  520. package/src/assets/ethereum/ABI/token/ERC721Token.sol/ERC721Token.json +0 -449
  521. package/src/assets/solana/idl/liqsol_core.json +0 -4239
  522. package/src/assets/solana/types/liqsol_core.ts +0 -4245
  523. package/src/networks/solana/clients/deposit.client.ts +0 -131
  524. package/src/staker/types.ts +0 -49
  525. /package/src/assets/ethereum/{ABI → hoodi}/liqEth/LiqEthCommon.sol/IDepositContract.json +0 -0
  526. /package/src/assets/ethereum/{ABI → hoodi}/liqEth/LiqEthCommon.sol/IDepositManager.json +0 -0
@@ -1,354 +1,358 @@
1
- import { AnchorProvider, Program } from '@coral-xyz/anchor';
2
- import {
3
- ParsedAccountData,
4
- PublicKey,
5
- SYSVAR_INSTRUCTIONS_PUBKEY,
6
- Transaction,
7
- SystemProgram,
8
- } from '@solana/web3.js';
9
- import {
10
- TOKEN_2022_PROGRAM_ID,
11
- getAssociatedTokenAddress,
12
- } from '@solana/spl-token';
13
-
14
- import { SolanaProgramService } from '../program';
15
- import type { LiqsolCore } from '../../../assets/solana/types/liqsol_core';
16
- import {
17
- deriveBucketAuthorityPda,
18
- deriveDistributionStatePda,
19
- deriveLiqsolMintPda,
20
- derivePayRateHistoryPda,
21
- deriveUserRecordPda,
22
- } from '../constants';
23
- import type { CorrectRegisterBuildResult, DistributionState, MismatchCandidate, ParsedAccountInfo, UserRecord } from '../types';
1
+ import { AnchorProvider, Program, BN } from '@coral-xyz/anchor';
2
+ import { PublicKey, SystemProgram, TransactionInstruction } from '@solana/web3.js';
3
+
4
+ import { LiqsolCoreClientIdl, SolanaProgramService } from '../program';
5
+ import type { DistributionState, DistributionUserRecord, GlobalConfig, PayRateEntry, PayRateHistory } from '../types';
6
+ import { getAssociatedTokenAddressSync, TOKEN_2022_PROGRAM_ID } from '@solana/spl-token';
7
+ import { ceilDiv } from '../utils';
8
+
9
+ const INDEX_SCALE_BN = new BN('1000000000000');
24
10
 
25
11
  /**
26
12
  * Distribution client – wraps the distribution portion of the liqsol_core
27
- * program. Responsible for:
28
- * - Reading DistributionState + UserRecord
29
- * - Computing mismatch candidates (tracked > actual)
30
- * - Building a "correct then register" transaction for the caller
13
+ * program in the *new* shares-only model.
14
+ *
15
+ * Responsibilities:
16
+ * - Read DistributionState (global index/share pool)
17
+ * - Read per-user UserRecord (shares)
18
+ * - Provide simple helpers for querying user share positions
31
19
  *
32
- * Aligned with the on-chain `update_user` script:
33
- * - Single `updateUser()` entrypoint that:
34
- * * Can create userRecord if missing
35
- * * Reconciles tracked vs actual using user, userAta, bucket, pay-rate
20
+ * There is no longer any notion of:
21
+ * - tracked vs actual balances
22
+ * - mismatch candidates
23
+ * - updateUser / correct-&-register flow
24
+ *
25
+ * On-chain truth:
26
+ * - User balances live in their liqSOL ATA.
27
+ * - DistributionState + UserRecord track *shares* for yield.
36
28
  */
37
29
  export class DistributionClient {
38
- private program: Program<LiqsolCore>;
30
+ private program: Program<LiqsolCoreClientIdl>;
39
31
 
40
- constructor(private provider: AnchorProvider) {
41
- const svc = new SolanaProgramService(provider);
42
- this.program = svc.getProgram('liqsolCore');
32
+ constructor(
33
+ private readonly provider: AnchorProvider,
34
+ private readonly pgs: SolanaProgramService
35
+ ) {
36
+ this.program = pgs.getProgram('liqsolCore');
43
37
  }
44
38
 
45
39
  get connection() {
46
40
  return this.provider.connection;
47
41
  }
48
42
 
43
+ private async getTokenBalance(ata: PublicKey): Promise<BN> {
44
+ try {
45
+ const bal = await this.connection.getTokenAccountBalance(ata);
46
+ return new BN(bal.value.amount);
47
+ } catch {
48
+ return new BN(0);
49
+ }
50
+ }
51
+
49
52
  /**
50
53
  * Fetch the global distribution state account.
54
+ *
55
+ * IDL account name: "distributionState"
51
56
  */
52
57
  async getDistributionState(): Promise<DistributionState | null> {
53
- const pda = deriveDistributionStatePda();
58
+ const pda = this.pgs.deriveDistributionStatePda();
54
59
  try {
55
- // IDL account name: "distributionState"
56
60
  return await this.program.account.distributionState.fetch(pda);
57
61
  } catch {
58
62
  return null;
59
63
  }
60
64
  }
61
65
 
66
+
62
67
  /**
63
- * Fetch a user's distribution userRecord (or null if missing).
68
+ * Fetch the global payRateHistory account (circular buffer of scaled pay rates).
69
+ *
70
+ * IDL account name: "payRateHistory"
64
71
  */
65
- async getUserRecord(user: PublicKey): Promise<UserRecord | null> {
66
- const pda = deriveUserRecordPda(user);
72
+ async getPayRateHistory(): Promise<PayRateHistory | null> {
73
+ const pda = this.pgs.derivePayRateHistoryPda();
67
74
  try {
68
- return await this.program.account.userRecord.fetchNullable(pda);
75
+ // Anchor types map directly onto our PayRateHistory TS type
76
+ return (await this.program.account.payRateHistory.fetch(
77
+ pda,
78
+ )) as PayRateHistory;
69
79
  } catch {
70
80
  return null;
71
81
  }
72
82
  }
73
83
 
74
84
  /**
75
- * Helper: get actual liqSOL balances for all token holders.
85
+ * Fetch the globalConfig account (contains depositFeeMultiplier, etc).
76
86
  *
77
- * Returns a map: owner (base58) -> actual balance (BigInt)
87
+ * IDL account name: "globalConfig"
78
88
  */
79
- private async getActualBalancesByOwner(): Promise<Map<string, bigint>> {
80
- const liqsolMint = deriveLiqsolMintPda();
81
- const mintStr = liqsolMint.toBase58();
82
-
83
- const accounts = await this.connection.getParsedProgramAccounts(
84
- TOKEN_2022_PROGRAM_ID,
85
- {
86
- filters: [
87
- // SPL token layout: mint at offset 0
88
- { memcmp: { offset: 0, bytes: mintStr } },
89
- ],
90
- commitment: 'confirmed',
91
- },
92
- );
93
-
94
- const byOwner = new Map<string, bigint>();
95
-
96
- for (const acct of accounts) {
97
- const data = acct.account.data as ParsedAccountData;
98
- const parsed = data.parsed;
99
- if (!parsed || parsed.type !== 'account') continue;
89
+ async getGlobalConfig(): Promise<GlobalConfig | null> {
90
+ const pda = this.pgs.deriveGlobalConfigPda();
91
+ try {
92
+ return (await this.program.account.globalConfig.fetch(
93
+ pda,
94
+ )) as GlobalConfig;
95
+ } catch {
96
+ return null;
97
+ }
98
+ }
99
+ /**
100
+ * Fetch a user's distribution userRecord (or null if missing).
101
+ *
102
+ * IDL account name: "userRecord"
103
+ */
104
+ async getUserRecord(
105
+ ownerOrAta: PublicKey,
106
+ ): Promise<DistributionUserRecord | null> {
107
+ const liqsolMint = this.pgs.deriveLiqsolMintPda();
100
108
 
101
- const info: ParsedAccountInfo = parsed.info;
102
- const ownerStr = info.owner;
103
- const amountStr = info.tokenAmount.amount;
104
- const amount = BigInt(amountStr);
109
+ // 1) Try treating ownerOrAta as a WALLET: derive its liqSOL ATA, then userRecord.
110
+ try {
111
+ const ata = getAssociatedTokenAddressSync(
112
+ liqsolMint,
113
+ ownerOrAta,
114
+ true,
115
+ TOKEN_2022_PROGRAM_ID,
116
+ );
117
+ const pdaFromWallet = this.pgs.deriveUserRecordPda(ata);
118
+ const recFromWallet =
119
+ await this.program.account.userRecord.fetchNullable(pdaFromWallet);
120
+ if (recFromWallet) {
121
+ return recFromWallet;
122
+ }
123
+ } catch {
124
+ // fall through
125
+ }
105
126
 
106
- const prev = byOwner.get(ownerStr) ?? BigInt(0);
107
- byOwner.set(ownerStr, prev + amount);
127
+ // 2) Fallback: treat ownerOrAta as already being the TOKEN ACCOUNT.
128
+ try {
129
+ const pdaFromAta = this.pgs.deriveUserRecordPda(ownerOrAta);
130
+ return await this.program.account.userRecord.fetchNullable(pdaFromAta);
131
+ } catch {
132
+ return null;
108
133
  }
134
+ }
109
135
 
110
- return byOwner;
136
+ /**
137
+ * Convenience: get the user's current distribution shares.
138
+ *
139
+ * Returns BN(0) if the user has no userRecord yet.
140
+ */
141
+ async getUserShares(user: PublicKey): Promise<BN> {
142
+ const record = await this.getUserRecord(user);
143
+ return record ? record.shares : new BN(0);
111
144
  }
112
145
 
113
146
  /**
114
- * Helper: get tracked balances from all userRecord accounts,
115
- * keyed by *actual wallet owner*, not the userRecord PDA.
147
+ * Convenience: get both the user's shares and totalShares, plus a
148
+ * floating-point ratio (userShares / totalShares).
116
149
  *
117
- * userRecord struct:
118
- * - userAta: pubkey
119
- * - trackedBalance: u64
120
- * - claimBalance: u64
121
- * - lastClaimTimestamp: i64
122
- * - bump: u8
150
+ * NOTE: ratio is a JS number and may lose precision for very large values,
151
+ * but is fine for display / percentage UIs.
123
152
  */
124
- private async getTrackedBalances(): Promise<
125
- Map<string, { owner: PublicKey; tracked: bigint }>
126
- > {
127
- const records = await this.program.account.userRecord.all();
128
- const map = new Map<string, { owner: PublicKey; tracked: bigint }>();
129
-
130
- for (const r of records) {
131
- const ur = r.account as UserRecord;
132
- const userAta = ur.userAta as PublicKey;
133
-
134
- // Resolve the *wallet* that owns this ATA
135
- const ataInfo = await this.connection.getParsedAccountInfo(userAta);
136
- const parsedData = ataInfo.value?.data as ParsedAccountData | undefined;
137
- if (!parsedData) continue;
138
-
139
- const parsed = parsedData.parsed;
140
- if (!parsed || (parsed as any).type !== 'account') continue;
141
-
142
- const info: ParsedAccountInfo = parsed.info;
143
- const ownerStr = info.owner;
144
- const owner = new PublicKey(ownerStr);
145
-
146
- const tracked = BigInt(ur.trackedBalance.toString());
147
- map.set(ownerStr, { owner, tracked });
153
+ async getUserSharePosition(user: PublicKey): Promise<{
154
+ shares: BN;
155
+ totalShares: BN;
156
+ ratio: number;
157
+ }> {
158
+ const [dist, userShares] = await Promise.all([
159
+ this.getDistributionState(),
160
+ this.getUserShares(user),
161
+ ]);
162
+
163
+ const totalShares = dist ? dist.totalShares : new BN(0);
164
+
165
+ let ratio = 0;
166
+ if (!totalShares.isZero()) {
167
+ // use toNumber() for UI-friendly ratio; if you need exact math,
168
+ // do it with BN or bigint at the call site instead.
169
+ ratio = userShares.toNumber() / totalShares.toNumber();
148
170
  }
149
171
 
150
- return map;
172
+ return { shares: userShares, totalShares, ratio };
151
173
  }
152
174
 
153
175
  /**
154
- * Discover all mismatch candidates where tracked > actual.
176
+ * Compute claimable liqSOL for a wallet:
177
+ * claimable = max(0, entitled - actual)
178
+ * entitled = floor(shares * syncedIndex / 1e12)
155
179
  *
156
- * - actual balances are derived from token accounts for the liqSOL mint
157
- * - tracked balances come from Distribution.userRecord
180
+ * `syncedIndex` mirrors on-chain `sync_index` behavior by incorporating any
181
+ * unsynced bucket delta (bucket_balance - last_bucket_balance).
158
182
  */
159
- private async deriveMismatchCandidates(): Promise<MismatchCandidate[]> {
160
- const [actualByOwner, trackedByOwner] = await Promise.all([
161
- this.getActualBalancesByOwner(),
162
- this.getTrackedBalances(),
183
+ async getClaimableLiqsol(user: PublicKey): Promise<BN> {
184
+ const liqsolMint = this.pgs.deriveLiqsolMintPda();
185
+ const bucketAuthority = this.pgs.deriveBucketAuthorityPda();
186
+
187
+ const userAta = getAssociatedTokenAddressSync(
188
+ liqsolMint,
189
+ user,
190
+ true,
191
+ TOKEN_2022_PROGRAM_ID,
192
+ );
193
+ const bucketTokenAccount = getAssociatedTokenAddressSync(
194
+ liqsolMint,
195
+ bucketAuthority,
196
+ true,
197
+ TOKEN_2022_PROGRAM_ID,
198
+ );
199
+
200
+ const [distributionState, userRecord, actualBalance, bucketBalance] = await Promise.all([
201
+ this.getDistributionState(),
202
+ this.getUserRecord(user),
203
+ this.getTokenBalance(userAta),
204
+ this.getTokenBalance(bucketTokenAccount),
163
205
  ]);
164
206
 
165
- const out: MismatchCandidate[] = [];
207
+ if (!distributionState || !userRecord) {
208
+ return new BN(0);
209
+ }
210
+
211
+ let syncedIndex = new BN(distributionState.currentIndex.toString());
212
+ const totalShares = new BN(distributionState.totalShares.toString());
213
+ const lastBucketBalance = new BN(distributionState.lastBucketBalance.toString());
166
214
 
167
- for (const [ownerStr, { owner, tracked }] of trackedByOwner.entries()) {
168
- const actual = actualByOwner.get(ownerStr) ?? BigInt(0);
169
- const delta = tracked - actual;
170
- if (delta > BigInt(0)) {
171
- out.push({ owner, actual, tracked, delta });
215
+ if (totalShares.gt(new BN(0)) && bucketBalance.gt(lastBucketBalance)) {
216
+ const delta = bucketBalance.sub(lastBucketBalance);
217
+ const indexDelta = delta.mul(INDEX_SCALE_BN).div(totalShares);
218
+ if (indexDelta.gt(new BN(0))) {
219
+ syncedIndex = syncedIndex.add(indexDelta);
172
220
  }
173
221
  }
174
222
 
175
- // Largest discrepancy first
176
- out.sort((a, b) => (b.delta > a.delta ? 1 : b.delta < a.delta ? -1 : 0));
177
- return out;
223
+ const shares = new BN(userRecord.shares.toString());
224
+ const entitled = shares.mul(syncedIndex).div(INDEX_SCALE_BN);
225
+
226
+ if (entitled.lte(actualBalance)) {
227
+ return new BN(0);
228
+ }
229
+ return entitled.sub(actualBalance);
178
230
  }
179
231
 
180
232
  /**
181
- * Canonical helper to build an `updateUser` instruction for a given user,
182
- * matching the standalone update-user.ts script.
233
+ * Build claim_rewards instruction for a wallet.
183
234
  */
184
- private async buildUpdateUserIx(targetUser: PublicKey) {
185
- const walletPk = this.provider.wallet.publicKey;
186
-
187
- const distributionStatePDA = deriveDistributionStatePda();
188
- const userRecordPDA = deriveUserRecordPda(targetUser);
189
- const liqsolMintPDA = deriveLiqsolMintPda();
190
- const payRateHistoryPDA = derivePayRateHistoryPda();
191
- const bucketAuthorityPDA = deriveBucketAuthorityPda();
192
-
193
- const userAta = await getAssociatedTokenAddress(
194
- liqsolMintPDA,
195
- targetUser,
196
- false,
235
+ async buildClaimRewardsIx(user: PublicKey): Promise<TransactionInstruction> {
236
+ const liqsolMint = this.pgs.deriveLiqsolMintPda();
237
+ const distributionState = this.pgs.deriveDistributionStatePda();
238
+ const bucketAuthority = this.pgs.deriveBucketAuthorityPda();
239
+
240
+ const userAta = getAssociatedTokenAddressSync(
241
+ liqsolMint,
242
+ user,
243
+ true,
197
244
  TOKEN_2022_PROGRAM_ID,
198
245
  );
199
-
200
- const bucketTokenAccount = await getAssociatedTokenAddress(
201
- liqsolMintPDA,
202
- bucketAuthorityPDA,
203
- true, // allowOwnerOffCurve
246
+ const bucketTokenAccount = getAssociatedTokenAddressSync(
247
+ liqsolMint,
248
+ bucketAuthority,
249
+ true,
204
250
  TOKEN_2022_PROGRAM_ID,
205
251
  );
206
252
 
207
- return (this.program.methods as any)
208
- .updateUser()
253
+ const userRecord = this.pgs.deriveUserRecordPda(userAta);
254
+ const bucketUserRecord = this.pgs.deriveUserRecordPda(bucketTokenAccount);
255
+ const extraAccountMetaList = this.pgs.deriveExtraAccountMetaListPda(liqsolMint);
256
+
257
+ return this.program.methods
258
+ .claimRewards()
209
259
  .accounts({
210
- user: targetUser,
260
+ user,
211
261
  userAta,
212
- userRecord: userRecordPDA,
213
- authority: walletPk,
214
- payer: walletPk,
215
- distributionState: distributionStatePDA,
216
- liqsolMint: liqsolMintPDA,
217
- instructionsSysvar: SYSVAR_INSTRUCTIONS_PUBKEY,
218
- tokenProgram: TOKEN_2022_PROGRAM_ID,
219
- bucketAuthority: bucketAuthorityPDA,
262
+ userRecord,
263
+ bucketUserRecord,
264
+ distributionState,
265
+ extraAccountMetaList,
266
+ liqsolCoreProgram: this.pgs.PROGRAM_IDS.LIQSOL_CORE,
267
+ transferHookProgram: this.pgs.PROGRAM_IDS.TRANSFER_HOOK,
268
+ liqsolMint,
269
+ bucketAuthority,
220
270
  bucketTokenAccount,
221
- payRateHistory: payRateHistoryPDA,
222
- systemProgram: SystemProgram.programId,
271
+ tokenProgram: TOKEN_2022_PROGRAM_ID,
272
+ systemProgram: SystemProgram.programId
223
273
  })
224
274
  .instruction();
225
275
  }
226
276
 
227
277
  /**
228
- * Build the "correct & register" transaction.
278
+ * Compute an average scaled pay rate over the most recent `windowSize`
279
+ * valid entries in the pay-rate history circular buffer.
229
280
  *
230
- * - Fetches DistributionState + all userRecords + token holders
231
- * - Computes caller's untracked amount (actual - tracked)
232
- * - If DistributionState.availableBalance already covers that, we only
233
- * send updateUser(caller).
234
- * - Otherwise we select top mismatch candidates until their freed deltas
235
- * cover the shortfall, then build updateUser(target) for each,
236
- * followed by updateUser(caller).
237
- *
238
- * NOTE:
239
- * - This no longer uses a separate updateSpecificUser; the single
240
- * updateUser entrypoint accepts any `user` as long as authority/payer
241
- * are valid, per your script.
281
+ * Returns a BN scaled by 1e12 (same as on-chain).
242
282
  */
243
- async buildCorrectRegisterTx(opts: {
244
- amount?: bigint;
245
- maxCandidates?: number;
246
- } = {}): Promise<CorrectRegisterBuildResult> {
247
- const walletPk = this.provider.wallet.publicKey;
248
- const callerStr = walletPk.toBase58();
249
-
250
- const [distState, actualByOwner, trackedByOwner] = await Promise.all([
251
- this.getDistributionState(),
252
- this.getActualBalancesByOwner(),
253
- this.getTrackedBalances(),
254
- ]);
255
-
256
- if (!distState) {
257
- return {
258
- needToRegister: false,
259
- canSucceed: false,
260
- reason: 'DistributionState not initialized',
261
- transaction: undefined,
262
- plan: { deficit: BigInt(0), willFree: BigInt(0), selected: [] },
263
- };
264
- }
265
-
266
- const availableBalance = BigInt(distState.availableBalance.toString());
267
-
268
- const trackedEntry =
269
- trackedByOwner.get(callerStr) ?? {
270
- owner: walletPk,
271
- tracked: BigInt(0),
272
- };
273
-
274
- const actual = actualByOwner.get(callerStr) ?? BigInt(0);
275
- const tracked = trackedEntry.tracked;
276
- const untracked = actual - tracked;
277
-
278
- // Nothing to register
279
- if (untracked <= BigInt(0)) {
280
- return {
281
- needToRegister: false,
282
- canSucceed: true,
283
- reason: 'No untracked liqSOL to register',
284
- transaction: undefined,
285
- plan: { deficit: BigInt(0), willFree: BigInt(0), selected: [] },
286
- };
283
+ async getAverageScaledPayRate(windowSize = 5): Promise<BN> {
284
+ const history = await this.getPayRateHistory();
285
+ if (!history) {
286
+ return new BN(0);
287
287
  }
288
288
 
289
- // Optional user-specified cap on how much to register.
290
- const targetRegister =
291
- opts.amount && opts.amount > BigInt(0) ? opts.amount : untracked;
292
-
293
- // Simple case: availableBalance already covers what we want to register
294
- if (availableBalance >= targetRegister) {
295
- const tx = new Transaction();
296
- const ix = await this.buildUpdateUserIx(walletPk); // caller only
297
- tx.add(ix);
298
-
299
- return {
300
- needToRegister: true,
301
- canSucceed: true,
302
- transaction: tx,
303
- plan: { deficit: BigInt(0), willFree: BigInt(0), selected: [] },
304
- };
289
+ const entries: PayRateEntry[] = history.entries ?? [];
290
+ if (!entries.length) {
291
+ return new BN(0);
305
292
  }
306
293
 
307
- // Need to free up more availableBalance by correcting others.
308
- const deficit = targetRegister - availableBalance;
294
+ const maxEntries: number =
295
+ typeof history.maxEntries === 'number'
296
+ ? history.maxEntries
297
+ : entries.length;
309
298
 
310
- const allCandidates = await this.deriveMismatchCandidates();
311
- const maxCandidates = opts.maxCandidates ?? 10;
299
+ const rawTotalAdded: any = history.totalEntriesAdded ?? 0;
300
+ const totalAddedBn = new BN(rawTotalAdded.toString());
312
301
 
313
- const selected: MismatchCandidate[] = [];
314
- let willFree = BigInt(0);
315
-
316
- for (const c of allCandidates) {
317
- if (c.owner.equals(walletPk)) continue; // don't self-correct here
318
- selected.push(c);
319
- willFree += c.delta;
320
- if (willFree >= deficit || selected.length >= maxCandidates) break;
302
+ // No valid entries written yet
303
+ if (totalAddedBn.isZero()) {
304
+ return new BN(0);
321
305
  }
322
306
 
323
- if (willFree < deficit) {
324
- return {
325
- needToRegister: true,
326
- canSucceed: false,
327
- reason: 'Not enough mismatched candidates to cover deficit',
328
- transaction: undefined,
329
- plan: { deficit, willFree, selected },
330
- };
307
+ const totalAdded = Math.min(
308
+ totalAddedBn.toNumber(),
309
+ maxEntries,
310
+ entries.length,
311
+ );
312
+
313
+ if (!totalAdded) {
314
+ return new BN(0);
331
315
  }
332
316
 
333
- const tx = new Transaction();
317
+ const COUNT = Math.max(1, Math.min(windowSize, totalAdded));
318
+
319
+ const currentIndexNum = Number(history.currentIndex ?? 0);
320
+
321
+ // Most recently written entry is at currentIndex - 1 (mod maxEntries)
322
+ let idx =
323
+ currentIndexNum === 0
324
+ ? maxEntries - 1
325
+ : currentIndexNum - 1;
326
+
327
+ let sum = new BN(0);
328
+ let valid = 0;
329
+ const zero = new BN(0);
330
+
331
+ for (let i = 0; i < COUNT; i++) {
332
+ const entry: any = entries[idx];
333
+ if (entry) {
334
+ // Support both camelCase and snake_case (for safety)
335
+ const rawScaled =
336
+ entry.scaledRate ??
337
+ entry.scaled_rate ??
338
+ 0;
339
+
340
+ const rate = new BN(rawScaled.toString());
341
+ if (rate.gt(zero)) {
342
+ sum = sum.add(rate);
343
+ valid += 1;
344
+ }
345
+ }
334
346
 
335
- // 1) Correct selected mismatched users.
336
- for (const c of selected) {
337
- const ix = await this.buildUpdateUserIx(c.owner);
338
- tx.add(ix);
347
+ // Walk backwards through the circular buffer
348
+ idx = idx === 0 ? maxEntries - 1 : idx - 1;
339
349
  }
340
350
 
341
- // 2) Register caller (updateUser(caller)).
342
- {
343
- const ix = await this.buildUpdateUserIx(walletPk);
344
- tx.add(ix);
351
+ if (!valid) {
352
+ return new BN(0);
345
353
  }
346
354
 
347
- return {
348
- needToRegister: true,
349
- canSucceed: true,
350
- transaction: tx,
351
- plan: { deficit, willFree, selected },
352
- };
355
+ // Same behavior as the dashboard: use a ceiling-like average
356
+ return ceilDiv(sum, new BN(valid));
353
357
  }
354
- }
358
+ }