@wireio/stake 1.1.0 → 2.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 (189) hide show
  1. package/lib/stake.browser.js +12942 -6703
  2. package/lib/stake.browser.js.map +1 -1
  3. package/lib/stake.d.ts +7627 -646
  4. package/lib/stake.js +13315 -7071
  5. package/lib/stake.js.map +1 -1
  6. package/lib/stake.m.js +12942 -6703
  7. package/lib/stake.m.js.map +1 -1
  8. package/package.json +4 -3
  9. package/src/assets/solana/mainnet/idl/liqsol_core.json +6166 -0
  10. package/src/assets/solana/mainnet/idl/liqsol_token.json +183 -0
  11. package/src/assets/solana/mainnet/idl/transfer_hook.json +197 -0
  12. package/src/assets/solana/mainnet/idl/validator_leaderboard.json +574 -0
  13. package/src/assets/solana/mainnet/types/liqsol_core.ts +6172 -0
  14. package/src/assets/solana/mainnet/types/liqsol_token.ts +189 -0
  15. package/src/assets/solana/mainnet/types/transfer_hook.ts +203 -0
  16. package/src/assets/solana/mainnet/types/validator_leaderboard.ts +580 -0
  17. package/src/networks/ethereum/clients/convert.client.ts +30 -1
  18. package/src/networks/ethereum/clients/receipt.client.ts +81 -3
  19. package/src/networks/ethereum/clients/stake.client.ts +1 -0
  20. package/src/networks/ethereum/contract.ts +260 -222
  21. package/src/networks/ethereum/ethereum.ts +36 -28
  22. package/src/networks/ethereum/types.ts +17 -2
  23. package/src/networks/solana/clients/deposit.client.ts +294 -65
  24. package/src/networks/solana/clients/distribution.client.ts +13 -18
  25. package/src/networks/solana/clients/leaderboard.client.ts +9 -11
  26. package/src/networks/solana/clients/outpost.client.ts +11 -10
  27. package/src/networks/solana/clients/token.client.ts +11 -13
  28. package/src/networks/solana/constants.ts +44 -285
  29. package/src/networks/solana/program.ts +365 -26
  30. package/src/networks/solana/solana.ts +213 -69
  31. package/src/networks/solana/types.ts +4 -4
  32. package/src/networks/solana/utils.ts +16 -301
  33. package/src/staker.ts +10 -2
  34. package/src/types.ts +19 -6
  35. /package/src/assets/ethereum/{ABI → mainnet}/common/Base58.sol/Base58.dbg.json +0 -0
  36. /package/src/assets/ethereum/{ABI → mainnet}/common/Base58.sol/Base58.json +0 -0
  37. /package/src/assets/ethereum/{ABI → mainnet}/common/OpenZepArtifacts.sol/__Dummy_OZ_UUPS__.dbg.json +0 -0
  38. /package/src/assets/ethereum/{ABI → mainnet}/common/OpenZepArtifacts.sol/__Dummy_OZ_UUPS__.json +0 -0
  39. /package/src/assets/ethereum/{ABI → mainnet}/common/RestrictedCallers.sol/RestrictedCallers.dbg.json +0 -0
  40. /package/src/assets/ethereum/{ABI → mainnet}/common/RestrictedCallers.sol/RestrictedCallers.json +0 -0
  41. /package/src/assets/ethereum/{ABI → mainnet}/common/iodata.sol/iodata.dbg.json +0 -0
  42. /package/src/assets/ethereum/{ABI → mainnet}/common/iodata.sol/iodata.json +0 -0
  43. /package/src/assets/ethereum/{ABI → mainnet}/common/iodata_util.sol/iodata_util.dbg.json +0 -0
  44. /package/src/assets/ethereum/{ABI → mainnet}/common/iodata_util.sol/iodata_util.json +0 -0
  45. /package/src/assets/ethereum/{ABI → mainnet}/common/sysio_data.sol/sysio_data.dbg.json +0 -0
  46. /package/src/assets/ethereum/{ABI → mainnet}/common/sysio_data.sol/sysio_data.json +0 -0
  47. /package/src/assets/ethereum/{ABI → mainnet}/common/sysio_errors.sol/sysio_errors.dbg.json +0 -0
  48. /package/src/assets/ethereum/{ABI → mainnet}/common/sysio_errors.sol/sysio_errors.json +0 -0
  49. /package/src/assets/ethereum/{ABI → mainnet}/common/sysio_merkle.sol/sysio_merkle.dbg.json +0 -0
  50. /package/src/assets/ethereum/{ABI → mainnet}/common/sysio_merkle.sol/sysio_merkle.json +0 -0
  51. /package/src/assets/ethereum/{ABI → mainnet}/common/sysio_name.sol/sysio_name.dbg.json +0 -0
  52. /package/src/assets/ethereum/{ABI → mainnet}/common/sysio_name.sol/sysio_name.json +0 -0
  53. /package/src/assets/ethereum/{ABI → mainnet}/common/sysio_pubkey.sol/sysio_pubkey.dbg.json +0 -0
  54. /package/src/assets/ethereum/{ABI → mainnet}/common/sysio_pubkey.sol/sysio_pubkey.json +0 -0
  55. /package/src/assets/ethereum/{ABI → mainnet}/common/sysio_read.sol/sysio_read.dbg.json +0 -0
  56. /package/src/assets/ethereum/{ABI → mainnet}/common/sysio_read.sol/sysio_read.json +0 -0
  57. /package/src/assets/ethereum/{ABI → mainnet}/common/sysio_tester.sol/SysioTester.dbg.json +0 -0
  58. /package/src/assets/ethereum/{ABI → mainnet}/common/sysio_tester.sol/SysioTester.json +0 -0
  59. /package/src/assets/ethereum/{ABI → mainnet}/common/sysio_verify.sol/sysio_verify.dbg.json +0 -0
  60. /package/src/assets/ethereum/{ABI → mainnet}/common/sysio_verify.sol/sysio_verify.json +0 -0
  61. /package/src/assets/ethereum/{ABI → mainnet}/common/sysio_write.sol/sysio_write.dbg.json +0 -0
  62. /package/src/assets/ethereum/{ABI → mainnet}/common/sysio_write.sol/sysio_write.json +0 -0
  63. /package/src/assets/ethereum/{ABI → mainnet}/liqEth/BeaconState.sol/BeaconState.dbg.json +0 -0
  64. /package/src/assets/ethereum/{ABI → mainnet}/liqEth/BeaconState.sol/BeaconState.json +0 -0
  65. /package/src/assets/ethereum/{ABI → mainnet}/liqEth/DepositManager.sol/DepositManager.dbg.json +0 -0
  66. /package/src/assets/ethereum/{ABI → mainnet}/liqEth/DepositManager.sol/DepositManager.json +0 -0
  67. /package/src/assets/ethereum/{ABI → mainnet}/liqEth/LiqEthAuthority.sol/LiqEthAuthority.dbg.json +0 -0
  68. /package/src/assets/ethereum/{ABI → mainnet}/liqEth/LiqEthAuthority.sol/LiqEthAuthority.json +0 -0
  69. /package/src/assets/ethereum/{ABI → mainnet}/liqEth/LiqEthCommon.sol/IAccounting.dbg.json +0 -0
  70. /package/src/assets/ethereum/{ABI → mainnet}/liqEth/LiqEthCommon.sol/IAccounting.json +0 -0
  71. /package/src/assets/ethereum/{ABI → mainnet}/liqEth/LiqEthCommon.sol/IDepositContract.dbg.json +0 -0
  72. /package/src/assets/ethereum/{ABI → mainnet}/liqEth/LiqEthCommon.sol/IDepositContract.json +0 -0
  73. /package/src/assets/ethereum/{ABI → mainnet}/liqEth/LiqEthCommon.sol/IDepositManager.dbg.json +0 -0
  74. /package/src/assets/ethereum/{ABI → mainnet}/liqEth/LiqEthCommon.sol/IDepositManager.json +0 -0
  75. /package/src/assets/ethereum/{ABI → mainnet}/liqEth/LiqEthCommon.sol/ILiqEthUpgradeable.dbg.json +0 -0
  76. /package/src/assets/ethereum/{ABI → mainnet}/liqEth/LiqEthCommon.sol/ILiqEthUpgradeable.json +0 -0
  77. /package/src/assets/ethereum/{ABI → mainnet}/liqEth/LiqEthCommon.sol/IRewardsERC20.dbg.json +0 -0
  78. /package/src/assets/ethereum/{ABI → mainnet}/liqEth/LiqEthCommon.sol/IRewardsERC20.json +0 -0
  79. /package/src/assets/ethereum/{ABI → mainnet}/liqEth/LiqEthCommon.sol/IRewardsERC20Pausable.dbg.json +0 -0
  80. /package/src/assets/ethereum/{ABI → mainnet}/liqEth/LiqEthCommon.sol/IRewardsERC20Pausable.json +0 -0
  81. /package/src/assets/ethereum/{ABI → mainnet}/liqEth/LiqEthCommon.sol/IStakingModule.dbg.json +0 -0
  82. /package/src/assets/ethereum/{ABI → mainnet}/liqEth/LiqEthCommon.sol/IStakingModule.json +0 -0
  83. /package/src/assets/ethereum/{ABI → mainnet}/liqEth/LiqEthCommon.sol/IValidatorBalanceVerifier.dbg.json +0 -0
  84. /package/src/assets/ethereum/{ABI → mainnet}/liqEth/LiqEthCommon.sol/IValidatorBalanceVerifier.json +0 -0
  85. /package/src/assets/ethereum/{ABI → mainnet}/liqEth/LiqEthCommon.sol/IWithdrawalRecord.dbg.json +0 -0
  86. /package/src/assets/ethereum/{ABI → mainnet}/liqEth/LiqEthCommon.sol/IWithdrawalRecord.json +0 -0
  87. /package/src/assets/ethereum/{ABI → mainnet}/liqEth/LiqEthCommon.sol/LiqEthCommon.dbg.json +0 -0
  88. /package/src/assets/ethereum/{ABI → mainnet}/liqEth/LiqEthCommon.sol/LiqEthCommon.json +0 -0
  89. /package/src/assets/ethereum/{ABI → mainnet}/liqEth/LiqEthManaged.sol/LiqEthManaged.dbg.json +0 -0
  90. /package/src/assets/ethereum/{ABI → mainnet}/liqEth/LiqEthManaged.sol/LiqEthManaged.json +0 -0
  91. /package/src/assets/ethereum/{ABI → mainnet}/liqEth/RewardsERC20.sol/RewardsERC20Upgradeable.dbg.json +0 -0
  92. /package/src/assets/ethereum/{ABI → mainnet}/liqEth/RewardsERC20.sol/RewardsERC20Upgradeable.json +0 -0
  93. /package/src/assets/ethereum/{ABI → mainnet}/liqEth/RewardsERC20Pausable.sol/RewardsERC20PausableUpgradeable.dbg.json +0 -0
  94. /package/src/assets/ethereum/{ABI → mainnet}/liqEth/RewardsERC20Pausable.sol/RewardsERC20PausableUpgradeable.json +0 -0
  95. /package/src/assets/ethereum/{ABI → mainnet}/liqEth/Yield.sol/YieldOracle.dbg.json +0 -0
  96. /package/src/assets/ethereum/{ABI → mainnet}/liqEth/Yield.sol/YieldOracle.json +0 -0
  97. /package/src/assets/ethereum/{ABI → mainnet}/liqEth/accounting.sol/Accounting.dbg.json +0 -0
  98. /package/src/assets/ethereum/{ABI → mainnet}/liqEth/accounting.sol/Accounting.json +0 -0
  99. /package/src/assets/ethereum/{ABI → mainnet}/liqEth/liqEth.sol/LiqEthToken.dbg.json +0 -0
  100. /package/src/assets/ethereum/{ABI → mainnet}/liqEth/liqEth.sol/LiqEthToken.json +0 -0
  101. /package/src/assets/ethereum/{ABI → mainnet}/liqEth/stakingModule.sol/StakingModule.dbg.json +0 -0
  102. /package/src/assets/ethereum/{ABI → mainnet}/liqEth/stakingModule.sol/StakingModule.json +0 -0
  103. /package/src/assets/ethereum/{ABI → mainnet}/liqEth/withdrawalQueue.sol/WithdrawalQueue.dbg.json +0 -0
  104. /package/src/assets/ethereum/{ABI → mainnet}/liqEth/withdrawalQueue.sol/WithdrawalQueue.json +0 -0
  105. /package/src/assets/ethereum/{ABI → mainnet}/liqEth/withdrawalVault.sol/Uint64BE.dbg.json +0 -0
  106. /package/src/assets/ethereum/{ABI → mainnet}/liqEth/withdrawalVault.sol/Uint64BE.json +0 -0
  107. /package/src/assets/ethereum/{ABI → mainnet}/liqEth/withdrawalVault.sol/WithdrawalVault.dbg.json +0 -0
  108. /package/src/assets/ethereum/{ABI → mainnet}/liqEth/withdrawalVault.sol/WithdrawalVault.json +0 -0
  109. /package/src/assets/ethereum/{ABI → mainnet}/outpost/Aggregator.sol/Aggregator.json +0 -0
  110. /package/src/assets/ethereum/{ABI → mainnet}/outpost/BAR.sol/BAR.dbg.json +0 -0
  111. /package/src/assets/ethereum/{ABI → mainnet}/outpost/BAR.sol/BAR.json +0 -0
  112. /package/src/assets/ethereum/{ABI → mainnet}/outpost/Depositor.sol/Depositor.dbg.json +0 -0
  113. /package/src/assets/ethereum/{ABI → mainnet}/outpost/Depositor.sol/Depositor.json +0 -0
  114. /package/src/assets/ethereum/{ABI → mainnet}/outpost/EthUsdPriceConsumer.sol/AggregatorV3Interface.dbg.json +0 -0
  115. /package/src/assets/ethereum/{ABI → mainnet}/outpost/EthUsdPriceConsumer.sol/AggregatorV3Interface.json +0 -0
  116. /package/src/assets/ethereum/{ABI → mainnet}/outpost/EthUsdPriceConsumer.sol/EthUsdPriceConsumer.dbg.json +0 -0
  117. /package/src/assets/ethereum/{ABI → mainnet}/outpost/EthUsdPriceConsumer.sol/EthUsdPriceConsumer.json +0 -0
  118. /package/src/assets/ethereum/{ABI → mainnet}/outpost/OPP.sol/OPP.dbg.json +0 -0
  119. /package/src/assets/ethereum/{ABI → mainnet}/outpost/OPP.sol/OPP.json +0 -0
  120. /package/src/assets/ethereum/{ABI → mainnet}/outpost/OPPCommon.sol/IOPP.dbg.json +0 -0
  121. /package/src/assets/ethereum/{ABI → mainnet}/outpost/OPPCommon.sol/IOPP.json +0 -0
  122. /package/src/assets/ethereum/{ABI → mainnet}/outpost/OPPCommon.sol/IOPPEndpoint.dbg.json +0 -0
  123. /package/src/assets/ethereum/{ABI → mainnet}/outpost/OPPCommon.sol/IOPPEndpoint.json +0 -0
  124. /package/src/assets/ethereum/{ABI → mainnet}/outpost/OPPCommon.sol/IOPPInbound.dbg.json +0 -0
  125. /package/src/assets/ethereum/{ABI → mainnet}/outpost/OPPCommon.sol/IOPPInbound.json +0 -0
  126. /package/src/assets/ethereum/{ABI → mainnet}/outpost/OPPCommon.sol/IOPPReceiver.dbg.json +0 -0
  127. /package/src/assets/ethereum/{ABI → mainnet}/outpost/OPPCommon.sol/IOPPReceiver.json +0 -0
  128. /package/src/assets/ethereum/{ABI → mainnet}/outpost/OPPCommon.sol/IOPPSender.dbg.json +0 -0
  129. /package/src/assets/ethereum/{ABI → mainnet}/outpost/OPPCommon.sol/IOPPSender.json +0 -0
  130. /package/src/assets/ethereum/{ABI → mainnet}/outpost/OPPCommon.sol/OPPCommon.dbg.json +0 -0
  131. /package/src/assets/ethereum/{ABI → mainnet}/outpost/OPPCommon.sol/OPPCommon.json +0 -0
  132. /package/src/assets/ethereum/{ABI → mainnet}/outpost/OPPEndpoint.sol/OPPEndpoint.dbg.json +0 -0
  133. /package/src/assets/ethereum/{ABI → mainnet}/outpost/OPPEndpoint.sol/OPPEndpoint.json +0 -0
  134. /package/src/assets/ethereum/{ABI → mainnet}/outpost/OPPEndpointManaged.sol/OPPEndpointManaged.dbg.json +0 -0
  135. /package/src/assets/ethereum/{ABI → mainnet}/outpost/OPPEndpointManaged.sol/OPPEndpointManaged.json +0 -0
  136. /package/src/assets/ethereum/{ABI → mainnet}/outpost/OPPEndpointOwnable.sol/OPPEndpointOwnable.dbg.json +0 -0
  137. /package/src/assets/ethereum/{ABI → mainnet}/outpost/OPPEndpointOwnable.sol/OPPEndpointOwnable.json +0 -0
  138. /package/src/assets/ethereum/{ABI → mainnet}/outpost/OPPErrors.sol/OPPErrors.dbg.json +0 -0
  139. /package/src/assets/ethereum/{ABI → mainnet}/outpost/OPPErrors.sol/OPPErrors.json +0 -0
  140. /package/src/assets/ethereum/{ABI → mainnet}/outpost/OPPInbound.sol/OPPInbound.dbg.json +0 -0
  141. /package/src/assets/ethereum/{ABI → mainnet}/outpost/OPPInbound.sol/OPPInbound.json +0 -0
  142. /package/src/assets/ethereum/{ABI → mainnet}/outpost/OPPReceiver.sol/OPPReceiver.dbg.json +0 -0
  143. /package/src/assets/ethereum/{ABI → mainnet}/outpost/OPPReceiver.sol/OPPReceiver.json +0 -0
  144. /package/src/assets/ethereum/{ABI → mainnet}/outpost/OPPSender.sol/OPPSender.dbg.json +0 -0
  145. /package/src/assets/ethereum/{ABI → mainnet}/outpost/OPPSender.sol/OPPSender.json +0 -0
  146. /package/src/assets/ethereum/{ABI → mainnet}/outpost/OutpostErrors.sol/OutpostErrors.dbg.json +0 -0
  147. /package/src/assets/ethereum/{ABI → mainnet}/outpost/OutpostErrors.sol/OutpostErrors.json +0 -0
  148. /package/src/assets/ethereum/{ABI → mainnet}/outpost/OutpostManaged.sol/OutpostManaged.dbg.json +0 -0
  149. /package/src/assets/ethereum/{ABI → mainnet}/outpost/OutpostManaged.sol/OutpostManaged.json +0 -0
  150. /package/src/assets/ethereum/{ABI → mainnet}/outpost/OutpostManager.sol/OutpostManager.dbg.json +0 -0
  151. /package/src/assets/ethereum/{ABI → mainnet}/outpost/OutpostManager.sol/OutpostManager.json +0 -0
  152. /package/src/assets/ethereum/{ABI → mainnet}/outpost/OutpostManagerAuthority.sol/OutpostManagerAuthority.dbg.json +0 -0
  153. /package/src/assets/ethereum/{ABI → mainnet}/outpost/OutpostManagerAuthority.sol/OutpostManagerAuthority.json +0 -0
  154. /package/src/assets/ethereum/{ABI → mainnet}/outpost/OutpostManagerCommon.sol/IOutpostManager.dbg.json +0 -0
  155. /package/src/assets/ethereum/{ABI → mainnet}/outpost/OutpostManagerCommon.sol/IOutpostManager.json +0 -0
  156. /package/src/assets/ethereum/{ABI → mainnet}/outpost/OutpostManagerCommon.sol/IOutpostUpgradeable.dbg.json +0 -0
  157. /package/src/assets/ethereum/{ABI → mainnet}/outpost/OutpostManagerCommon.sol/IOutpostUpgradeable.json +0 -0
  158. /package/src/assets/ethereum/{ABI → mainnet}/outpost/OutpostManagerCommon.sol/OutpostManagerCommon.dbg.json +0 -0
  159. /package/src/assets/ethereum/{ABI → mainnet}/outpost/OutpostManagerCommon.sol/OutpostManagerCommon.json +0 -0
  160. /package/src/assets/ethereum/{ABI → mainnet}/outpost/OutpostOwnable.sol/OutpostOwnable.dbg.json +0 -0
  161. /package/src/assets/ethereum/{ABI → mainnet}/outpost/OutpostOwnable.sol/OutpostOwnable.json +0 -0
  162. /package/src/assets/ethereum/{ABI → mainnet}/outpost/Pool.sol/Pool.dbg.json +0 -0
  163. /package/src/assets/ethereum/{ABI → mainnet}/outpost/Pool.sol/Pool.json +0 -0
  164. /package/src/assets/ethereum/{ABI → mainnet}/outpost/Pretoken.sol/Pretoken.dbg.json +0 -0
  165. /package/src/assets/ethereum/{ABI → mainnet}/outpost/Pretoken.sol/Pretoken.json +0 -0
  166. /package/src/assets/ethereum/{ABI → mainnet}/outpost/ReceiptNFT.sol/ReceiptNFT.dbg.json +0 -0
  167. /package/src/assets/ethereum/{ABI → mainnet}/outpost/ReceiptNFT.sol/ReceiptNFT.json +0 -0
  168. /package/src/assets/ethereum/{ABI → mainnet}/outpost/interfaces/IPretoken.sol/IPretoken.dbg.json +0 -0
  169. /package/src/assets/ethereum/{ABI → mainnet}/outpost/interfaces/IPretoken.sol/IPretoken.json +0 -0
  170. /package/src/assets/ethereum/{ABI → mainnet}/outpost/interfaces/IWarrant.sol/IWarrant.dbg.json +0 -0
  171. /package/src/assets/ethereum/{ABI → mainnet}/outpost/interfaces/IWarrant.sol/IWarrant.json +0 -0
  172. /package/src/assets/ethereum/{ABI → mainnet}/outpost/token/ERC721EthEquivalentVotesUpgradeable.sol/ERC721EthEquivalentVotesUpgradeable.dbg.json +0 -0
  173. /package/src/assets/ethereum/{ABI → mainnet}/outpost/token/ERC721EthEquivalentVotesUpgradeable.sol/ERC721EthEquivalentVotesUpgradeable.json +0 -0
  174. /package/src/assets/ethereum/{ABI → mainnet}/outpost/token/IERC721EthEquivalent.sol/IERC721EthEquivalent.dbg.json +0 -0
  175. /package/src/assets/ethereum/{ABI → mainnet}/outpost/token/IERC721EthEquivalent.sol/IERC721EthEquivalent.json +0 -0
  176. /package/src/assets/ethereum/{ABI → mainnet}/token/ERC1155Token.sol/ERC1155Token.dbg.json +0 -0
  177. /package/src/assets/ethereum/{ABI → mainnet}/token/ERC1155Token.sol/ERC1155Token.json +0 -0
  178. /package/src/assets/ethereum/{ABI → mainnet}/token/ERC20Token.sol/ERC20Token.dbg.json +0 -0
  179. /package/src/assets/ethereum/{ABI → mainnet}/token/ERC20Token.sol/ERC20Token.json +0 -0
  180. /package/src/assets/ethereum/{ABI → mainnet}/token/ERC721Token.sol/ERC721Token.dbg.json +0 -0
  181. /package/src/assets/ethereum/{ABI → mainnet}/token/ERC721Token.sol/ERC721Token.json +0 -0
  182. /package/src/assets/solana/{idl → devnet/idl}/liqsol_core.json +0 -0
  183. /package/src/assets/solana/{idl → devnet/idl}/liqsol_token.json +0 -0
  184. /package/src/assets/solana/{idl → devnet/idl}/transfer_hook.json +0 -0
  185. /package/src/assets/solana/{idl → devnet/idl}/validator_leaderboard.json +0 -0
  186. /package/src/assets/solana/{types → devnet/types}/liqsol_core.ts +0 -0
  187. /package/src/assets/solana/{types → devnet/types}/liqsol_token.ts +0 -0
  188. /package/src/assets/solana/{types → devnet/types}/transfer_hook.ts +0 -0
  189. /package/src/assets/solana/{types → devnet/types}/validator_leaderboard.ts +0 -0
@@ -0,0 +1,574 @@
1
+ {
2
+ "address": "5v7mWL1735qp2Th9B5WNf7spGynR5ZaxwyCYoQw13DP2",
3
+ "metadata": {
4
+ "name": "validator_leaderboard",
5
+ "version": "0.1.0",
6
+ "spec": "0.1.0",
7
+ "description": "Created with Anchor"
8
+ },
9
+ "instructions": [
10
+ {
11
+ "name": "initialize_leaderboard",
12
+ "discriminator": [
13
+ 47,
14
+ 23,
15
+ 34,
16
+ 39,
17
+ 46,
18
+ 108,
19
+ 91,
20
+ 176
21
+ ],
22
+ "accounts": [
23
+ {
24
+ "name": "authority",
25
+ "writable": true,
26
+ "signer": true
27
+ },
28
+ {
29
+ "name": "leaderboard_state",
30
+ "writable": true
31
+ },
32
+ {
33
+ "name": "system_program"
34
+ }
35
+ ],
36
+ "args": []
37
+ },
38
+ {
39
+ "name": "realloc_leaderboard",
40
+ "discriminator": [
41
+ 2,
42
+ 70,
43
+ 106,
44
+ 94,
45
+ 81,
46
+ 225,
47
+ 113,
48
+ 152
49
+ ],
50
+ "accounts": [
51
+ {
52
+ "name": "leaderboard_state",
53
+ "writable": true
54
+ },
55
+ {
56
+ "name": "payer",
57
+ "writable": true,
58
+ "signer": true
59
+ },
60
+ {
61
+ "name": "system_program"
62
+ }
63
+ ],
64
+ "args": []
65
+ },
66
+ {
67
+ "name": "update_commission",
68
+ "discriminator": [
69
+ 2,
70
+ 202,
71
+ 72,
72
+ 156,
73
+ 19,
74
+ 253,
75
+ 91,
76
+ 174
77
+ ],
78
+ "accounts": [
79
+ {
80
+ "name": "registrant",
81
+ "writable": true,
82
+ "signer": true
83
+ },
84
+ {
85
+ "name": "vote_account"
86
+ },
87
+ {
88
+ "name": "validator_record",
89
+ "writable": true
90
+ },
91
+ {
92
+ "name": "system_program"
93
+ }
94
+ ],
95
+ "args": []
96
+ },
97
+ {
98
+ "name": "update_mev_commission",
99
+ "discriminator": [
100
+ 107,
101
+ 65,
102
+ 238,
103
+ 108,
104
+ 183,
105
+ 47,
106
+ 236,
107
+ 203
108
+ ],
109
+ "accounts": [
110
+ {
111
+ "name": "signer",
112
+ "signer": true
113
+ },
114
+ {
115
+ "name": "validator_record",
116
+ "writable": true
117
+ },
118
+ {
119
+ "name": "tip_distribution_account"
120
+ }
121
+ ],
122
+ "args": []
123
+ },
124
+ {
125
+ "name": "update_validator",
126
+ "discriminator": [
127
+ 105,
128
+ 192,
129
+ 4,
130
+ 98,
131
+ 236,
132
+ 115,
133
+ 108,
134
+ 192
135
+ ],
136
+ "accounts": [
137
+ {
138
+ "name": "registrant",
139
+ "writable": true,
140
+ "signer": true
141
+ },
142
+ {
143
+ "name": "vote_account"
144
+ },
145
+ {
146
+ "name": "validator_record",
147
+ "writable": true
148
+ },
149
+ {
150
+ "name": "leaderboard_state",
151
+ "writable": true
152
+ },
153
+ {
154
+ "name": "system_program"
155
+ }
156
+ ],
157
+ "args": [
158
+ {
159
+ "name": "vpp",
160
+ "type": "u8"
161
+ },
162
+ {
163
+ "name": "proposed_rank",
164
+ "type": "u16"
165
+ }
166
+ ]
167
+ }
168
+ ],
169
+ "accounts": [
170
+ {
171
+ "name": "LeaderboardState",
172
+ "discriminator": [
173
+ 211,
174
+ 181,
175
+ 29,
176
+ 120,
177
+ 189,
178
+ 4,
179
+ 106,
180
+ 111
181
+ ]
182
+ },
183
+ {
184
+ "name": "ValidatorRecord",
185
+ "discriminator": [
186
+ 105,
187
+ 248,
188
+ 112,
189
+ 34,
190
+ 71,
191
+ 224,
192
+ 21,
193
+ 71
194
+ ]
195
+ }
196
+ ],
197
+ "errors": [
198
+ {
199
+ "code": 6000,
200
+ "name": "MissingPreviousValidator",
201
+ "msg": "Missing previous validator account"
202
+ },
203
+ {
204
+ "code": 6001,
205
+ "name": "MissingNextValidator",
206
+ "msg": "Missing next validator account"
207
+ },
208
+ {
209
+ "code": 6002,
210
+ "name": "InvalidVppScore",
211
+ "msg": "Invalid VPP score provided."
212
+ },
213
+ {
214
+ "code": 6003,
215
+ "name": "InvalidInsertPosition",
216
+ "msg": "Invalid insertion position."
217
+ },
218
+ {
219
+ "code": 6004,
220
+ "name": "InvalidCurrentPrev",
221
+ "msg": "Invalid current previous validator."
222
+ },
223
+ {
224
+ "code": 6005,
225
+ "name": "InvalidCurrentNext",
226
+ "msg": "Invalid current next validator."
227
+ },
228
+ {
229
+ "code": 6006,
230
+ "name": "InvalidHeadValidator",
231
+ "msg": "Head validator cannot have a previous validator"
232
+ },
233
+ {
234
+ "code": 6007,
235
+ "name": "InvalidTailValidator",
236
+ "msg": "Tail validator cannot have a next validator"
237
+ },
238
+ {
239
+ "code": 6008,
240
+ "name": "ValidatorNotInLeaderboard",
241
+ "msg": "Cannot remove validator that is not in the leaderboard"
242
+ },
243
+ {
244
+ "code": 6009,
245
+ "name": "ValidatorAlreadyExists",
246
+ "msg": "Validator already exists in the leaderboard"
247
+ },
248
+ {
249
+ "code": 6010,
250
+ "name": "Overflow",
251
+ "msg": "Arithmetic overflow"
252
+ },
253
+ {
254
+ "code": 6011,
255
+ "name": "InvalidVoteAccount",
256
+ "msg": "Invalid vote account - must be owned by vote program"
257
+ },
258
+ {
259
+ "code": 6012,
260
+ "name": "VppVerificationFailed",
261
+ "msg": "VPP verification failed"
262
+ },
263
+ {
264
+ "code": 6013,
265
+ "name": "VppUnchanged",
266
+ "msg": "VPP score unchanged - update not needed"
267
+ },
268
+ {
269
+ "code": 6014,
270
+ "name": "InvalidAccountCount",
271
+ "msg": "Invalid account count for top 10 verification"
272
+ },
273
+ {
274
+ "code": 6015,
275
+ "name": "InvalidVppOrdering",
276
+ "msg": "Validators not in correct VPP order"
277
+ },
278
+ {
279
+ "code": 6016,
280
+ "name": "BrokenLinkage",
281
+ "msg": "Broken linked list continuity"
282
+ },
283
+ {
284
+ "code": 6017,
285
+ "name": "CommissionNotUpdated",
286
+ "msg": "Commission must be updated for current epoch before updating validator"
287
+ },
288
+ {
289
+ "code": 6018,
290
+ "name": "MevCommissionNotUpdated",
291
+ "msg": "MEV commission must be updated for current epoch before updating validator"
292
+ },
293
+ {
294
+ "code": 6019,
295
+ "name": "InvalidCurrentNeighbor",
296
+ "msg": "Current neighbor account doesn't match validator's stored links"
297
+ },
298
+ {
299
+ "code": 6020,
300
+ "name": "NonAdjacentInsertionPosition",
301
+ "msg": "Insertion position accounts are not actually adjacent in leaderboard"
302
+ },
303
+ {
304
+ "code": 6021,
305
+ "name": "StaleAccountReference",
306
+ "msg": "Account reference is outdated due to concurrent update"
307
+ },
308
+ {
309
+ "code": 6022,
310
+ "name": "InvalidStakeAmount",
311
+ "msg": "Invalid stake amount - exceeds maximum allowed"
312
+ },
313
+ {
314
+ "code": 6023,
315
+ "name": "InvalidTipDistributionAccount",
316
+ "msg": "Invalid Tip Distribution Account provided"
317
+ },
318
+ {
319
+ "code": 6024,
320
+ "name": "InvalidRankPosition",
321
+ "msg": "Proposed rank position violates sorted ordering"
322
+ },
323
+ {
324
+ "code": 6025,
325
+ "name": "LeaderboardFull",
326
+ "msg": "Leaderboard is full - cannot add more validators"
327
+ },
328
+ {
329
+ "code": 6026,
330
+ "name": "ValidatorNotInRankings",
331
+ "msg": "Validator not found in rankings"
332
+ },
333
+ {
334
+ "code": 6027,
335
+ "name": "ArithmeticOverflow",
336
+ "msg": "Arithmetic overflow"
337
+ }
338
+ ],
339
+ "types": [
340
+ {
341
+ "name": "LeaderboardState",
342
+ "docs": [
343
+ "Central leaderboard state using parallel arrays for efficient ranking and CPI access",
344
+ "Stores VPP scores and sorted rankings for up to 1024 validators",
345
+ "Uses zero-copy for efficient access from other programs via CPI"
346
+ ],
347
+ "serialization": "bytemuck",
348
+ "repr": {
349
+ "kind": "c"
350
+ },
351
+ "type": {
352
+ "kind": "struct",
353
+ "fields": [
354
+ {
355
+ "name": "scores",
356
+ "docs": [
357
+ "VPP scores indexed by registry_index (0-100 range)",
358
+ "registry_index is assigned on first validator registration and never changes"
359
+ ],
360
+ "type": {
361
+ "array": [
362
+ "u8",
363
+ 1024
364
+ ]
365
+ }
366
+ },
367
+ {
368
+ "name": "sorted_indices",
369
+ "docs": [
370
+ "Validator indices sorted by VPP score descending",
371
+ "sorted_indices[0] = registry_index of highest VPP validator",
372
+ "sorted_indices[1] = registry_index of 2nd highest VPP validator, etc."
373
+ ],
374
+ "type": {
375
+ "array": [
376
+ "u16",
377
+ 1024
378
+ ]
379
+ }
380
+ },
381
+ {
382
+ "name": "vote_accounts",
383
+ "docs": [
384
+ "Vote account pubkeys indexed by registry_index",
385
+ "Allows CPI callers to get vote accounts for top N validators"
386
+ ],
387
+ "type": {
388
+ "array": [
389
+ {
390
+ "defined": {
391
+ "name": "PubkeyBytes"
392
+ }
393
+ },
394
+ 1024
395
+ ]
396
+ }
397
+ },
398
+ {
399
+ "name": "num_validators",
400
+ "docs": [
401
+ "Number of active validators currently in the leaderboard"
402
+ ],
403
+ "type": "u16"
404
+ },
405
+ {
406
+ "name": "bump",
407
+ "docs": [
408
+ "PDA bump seed"
409
+ ],
410
+ "type": "u8"
411
+ },
412
+ {
413
+ "name": "_padding",
414
+ "docs": [
415
+ "Reserved space for future upgrades"
416
+ ],
417
+ "type": {
418
+ "array": [
419
+ "u8",
420
+ 5
421
+ ]
422
+ }
423
+ }
424
+ ]
425
+ }
426
+ },
427
+ {
428
+ "name": "PubkeyBytes",
429
+ "docs": [
430
+ "Fixed-size representation of a `Pubkey` that satisfies Anchor's zero-copy rules.",
431
+ "Stores the raw 32-byte array and offers helpers to convert to/from `Pubkey`."
432
+ ],
433
+ "serialization": "bytemuck",
434
+ "repr": {
435
+ "kind": "transparent"
436
+ },
437
+ "type": {
438
+ "kind": "struct",
439
+ "fields": [
440
+ {
441
+ "name": "bytes",
442
+ "type": {
443
+ "array": [
444
+ "u8",
445
+ 32
446
+ ]
447
+ }
448
+ }
449
+ ]
450
+ }
451
+ },
452
+ {
453
+ "name": "ValidatorRecord",
454
+ "docs": [
455
+ "Per-validator record account storing commission data and metadata"
456
+ ],
457
+ "type": {
458
+ "kind": "struct",
459
+ "fields": [
460
+ {
461
+ "name": "vote_account",
462
+ "docs": [
463
+ "The validator's vote account pubkey"
464
+ ],
465
+ "type": "pubkey"
466
+ },
467
+ {
468
+ "name": "registry_index",
469
+ "docs": [
470
+ "Immutable index into LeaderboardState arrays",
471
+ "Assigned on first registration, never changes"
472
+ ],
473
+ "type": "u16"
474
+ },
475
+ {
476
+ "name": "credits_observed",
477
+ "docs": [
478
+ "Current cumulative credits from vote account"
479
+ ],
480
+ "type": "u64"
481
+ },
482
+ {
483
+ "name": "commission_history",
484
+ "docs": [
485
+ "Circular buffer of past 10 commission values (0-100)",
486
+ "Used to penalize validators who increase commission"
487
+ ],
488
+ "type": {
489
+ "array": [
490
+ "u8",
491
+ 10
492
+ ]
493
+ }
494
+ },
495
+ {
496
+ "name": "commission_index",
497
+ "docs": [
498
+ "Current index in commission_history circular buffer (0-9)"
499
+ ],
500
+ "type": "u8"
501
+ },
502
+ {
503
+ "name": "last_commission_update",
504
+ "docs": [
505
+ "Last epoch when commission was updated"
506
+ ],
507
+ "type": "u64"
508
+ },
509
+ {
510
+ "name": "epoch",
511
+ "docs": [
512
+ "Last epoch this validator was updated"
513
+ ],
514
+ "type": "u64"
515
+ },
516
+ {
517
+ "name": "slot",
518
+ "docs": [
519
+ "Last slot this validator was updated"
520
+ ],
521
+ "type": "u64"
522
+ },
523
+ {
524
+ "name": "wire_operator",
525
+ "docs": [
526
+ "Whether this validator is a Wire operator (5% bonus)"
527
+ ],
528
+ "type": "bool"
529
+ },
530
+ {
531
+ "name": "mev_commission",
532
+ "docs": [
533
+ "Current MEV commission in basis points"
534
+ ],
535
+ "type": "u16"
536
+ },
537
+ {
538
+ "name": "mev_commission_history",
539
+ "docs": [
540
+ "Circular buffer of past 10 MEV commission values"
541
+ ],
542
+ "type": {
543
+ "array": [
544
+ "u16",
545
+ 10
546
+ ]
547
+ }
548
+ },
549
+ {
550
+ "name": "mev_commission_index",
551
+ "docs": [
552
+ "Current index in mev_commission_history circular buffer (0-9)"
553
+ ],
554
+ "type": "u8"
555
+ },
556
+ {
557
+ "name": "last_mev_commission_update",
558
+ "docs": [
559
+ "Last epoch when MEV commission was updated"
560
+ ],
561
+ "type": "u64"
562
+ },
563
+ {
564
+ "name": "bump",
565
+ "docs": [
566
+ "PDA bump seed"
567
+ ],
568
+ "type": "u8"
569
+ }
570
+ ]
571
+ }
572
+ }
573
+ ]
574
+ }