gitlab.com/yannislg/go-pulse@v0.0.0-20210722055913-a3e24e95638d/consensus/parlia/abi.go (about)

     1  package parlia
     2  
     3  const validatorSetABI = `
     4  [
     5  	{
     6  		"anonymous": false,
     7  		"inputs": [
     8  			{
     9  				"indexed": true,
    10  				"internalType": "address",
    11  				"name": "validator",
    12  				"type": "address"
    13  			},
    14  			{
    15  				"indexed": false,
    16  				"internalType": "uint256",
    17  				"name": "amount",
    18  				"type": "uint256"
    19  			}
    20  		],
    21  		"name": "SystemDeposit",
    22  		"type": "event"
    23  	},
    24  	{
    25  		"anonymous": false,
    26  		"inputs": [
    27  			{
    28  				"indexed": true,
    29  				"internalType": "address",
    30  				"name": "validator",
    31  				"type": "address"
    32  			},
    33  			{
    34  				"indexed": false,
    35  				"internalType": "uint256",
    36  				"name": "amount",
    37  				"type": "uint256"
    38  			}
    39  		],
    40  		"name": "ValidatorDeposit",
    41  		"type": "event"
    42  	},
    43  	{
    44  		"anonymous": false,
    45  		"inputs": [
    46  			{
    47  				"indexed": true,
    48  				"internalType": "address",
    49  				"name": "validator",
    50  				"type": "address"
    51  			},
    52  			{
    53  				"indexed": false,
    54  				"internalType": "uint256",
    55  				"name": "amount",
    56  				"type": "uint256"
    57  			}
    58  		],
    59  		"name": "ValidatorFelony",
    60  		"type": "event"
    61  	},
    62  	{
    63  		"anonymous": false,
    64  		"inputs": [
    65  			{
    66  				"indexed": true,
    67  				"internalType": "address",
    68  				"name": "validator",
    69  				"type": "address"
    70  			}
    71  		],
    72  		"name": "ValidatorJailed",
    73  		"type": "event"
    74  	},
    75  	{
    76  		"anonymous": false,
    77  		"inputs": [
    78  			{
    79  				"indexed": true,
    80  				"internalType": "address",
    81  				"name": "validator",
    82  				"type": "address"
    83  			},
    84  			{
    85  				"indexed": false,
    86  				"internalType": "uint256",
    87  				"name": "amount",
    88  				"type": "uint256"
    89  			}
    90  		],
    91  		"name": "ValidatorMisdemeanor",
    92  		"type": "event"
    93  	},
    94  	{
    95  		"anonymous": false,
    96  		"inputs": [
    97  			{
    98  				"indexed": false,
    99  				"internalType": "string",
   100  				"name": "message",
   101  				"type": "string"
   102  			}
   103  		],
   104  		"name": "ValidatorSetInvalid",
   105  		"type": "event"
   106  	},
   107  	{
   108  		"anonymous": false,
   109  		"inputs": [],
   110  		"name": "ValidatorSetUpdated",
   111  		"type": "event"
   112  	},
   113  	{
   114  		"inputs": [],
   115  		"name": "CODE_OK",
   116  		"outputs": [
   117  			{
   118  				"internalType": "uint32",
   119  				"name": "",
   120  				"type": "uint32"
   121  			}
   122  		],
   123  		"stateMutability": "view",
   124  		"type": "function"
   125  	},
   126  	{
   127  		"inputs": [],
   128  		"name": "ERROR_FAIL_CHECK_VALIDATORS",
   129  		"outputs": [
   130  			{
   131  				"internalType": "uint32",
   132  				"name": "",
   133  				"type": "uint32"
   134  			}
   135  		],
   136  		"stateMutability": "view",
   137  		"type": "function"
   138  	},
   139  	{
   140  		"inputs": [],
   141  		"name": "MAX_NUM_OF_VALIDATORS",
   142  		"outputs": [
   143  			{
   144  				"internalType": "uint256",
   145  				"name": "",
   146  				"type": "uint256"
   147  			}
   148  		],
   149  		"stateMutability": "view",
   150  		"type": "function"
   151  	},
   152  	{
   153  		"inputs": [],
   154  		"name": "SLASHING_CONTRACT_ADDR",
   155  		"outputs": [
   156  			{
   157  				"internalType": "address",
   158  				"name": "",
   159  				"type": "address"
   160  			}
   161  		],
   162  		"stateMutability": "view",
   163  		"type": "function"
   164  	},
   165  	{
   166  		"inputs": [],
   167  		"name": "STAKING_CONTRACT_ADDR",
   168  		"outputs": [
   169  			{
   170  				"internalType": "address",
   171  				"name": "",
   172  				"type": "address"
   173  			}
   174  		],
   175  		"stateMutability": "view",
   176  		"type": "function"
   177  	},
   178  	{
   179  		"inputs": [],
   180  		"name": "VALIDATOR_CONTRACT_ADDR",
   181  		"outputs": [
   182  			{
   183  				"internalType": "address",
   184  				"name": "",
   185  				"type": "address"
   186  			}
   187  		],
   188  		"stateMutability": "view",
   189  		"type": "function"
   190  	},
   191  	{
   192  		"inputs": [],
   193  		"name": "alreadyInit",
   194  		"outputs": [
   195  			{
   196  				"internalType": "bool",
   197  				"name": "",
   198  				"type": "bool"
   199  			}
   200  		],
   201  		"stateMutability": "view",
   202  		"type": "function"
   203  	},
   204  	{
   205  		"inputs": [
   206  			{
   207  				"internalType": "uint256",
   208  				"name": "",
   209  				"type": "uint256"
   210  			}
   211  		],
   212  		"name": "currentValidatorSet",
   213  		"outputs": [
   214  			{
   215  				"internalType": "address",
   216  				"name": "addr",
   217  				"type": "address"
   218  			},
   219  			{
   220  				"internalType": "bool",
   221  				"name": "jailed",
   222  				"type": "bool"
   223  			},
   224  			{
   225  				"internalType": "uint256",
   226  				"name": "incoming",
   227  				"type": "uint256"
   228  			}
   229  		],
   230  		"stateMutability": "view",
   231  		"type": "function"
   232  	},
   233  	{
   234  		"inputs": [
   235  			{
   236  				"internalType": "address",
   237  				"name": "",
   238  				"type": "address"
   239  			}
   240  		],
   241  		"name": "currentValidatorSetMap",
   242  		"outputs": [
   243  			{
   244  				"internalType": "uint256",
   245  				"name": "",
   246  				"type": "uint256"
   247  			}
   248  		],
   249  		"stateMutability": "view",
   250  		"type": "function"
   251  	},
   252  	{
   253  		"inputs": [],
   254  		"name": "numOfJailed",
   255  		"outputs": [
   256  			{
   257  				"internalType": "uint256",
   258  				"name": "",
   259  				"type": "uint256"
   260  			}
   261  		],
   262  		"stateMutability": "view",
   263  		"type": "function"
   264  	},
   265  	{
   266  		"inputs": [],
   267  		"name": "init",
   268  		"outputs": [],
   269  		"stateMutability": "nonpayable",
   270  		"type": "function"
   271  	},
   272  	{
   273  		"inputs": [
   274  			{
   275  				"internalType": "address",
   276  				"name": "valAddr",
   277  				"type": "address"
   278  			}
   279  		],
   280  		"name": "deposit",
   281  		"outputs": [],
   282  		"stateMutability": "payable",
   283  		"type": "function"
   284  	},
   285  	{
   286  		"inputs": [
   287  			{
   288  				"internalType": "address",
   289  				"name": "valAddr",
   290  				"type": "address"
   291  			}
   292  		],
   293  		"name": "jailValidator",
   294  		"outputs": [
   295  			{
   296  				"internalType": "uint32",
   297  				"name": "",
   298  				"type": "uint32"
   299  			}
   300  		],
   301  		"stateMutability": "nonpayable",
   302  		"type": "function"
   303  	},
   304  	{
   305  		"inputs": [
   306  			{
   307  				"internalType": "address[]",
   308  				"name": "validators",
   309  				"type": "address[]"
   310  			}
   311  		],
   312  		"name": "updateValidatorSet",
   313  		"outputs": [
   314  			{
   315  				"internalType": "uint32",
   316  				"name": "",
   317  				"type": "uint32"
   318  			}
   319  		],
   320  		"stateMutability": "nonpayable",
   321  		"type": "function"
   322  	},
   323  	{
   324  		"inputs": [],
   325  		"name": "getValidators",
   326  		"outputs": [
   327  			{
   328  				"internalType": "address[]",
   329  				"name": "",
   330  				"type": "address[]"
   331  			}
   332  		],
   333  		"stateMutability": "view",
   334  		"type": "function"
   335  	},
   336  	{
   337  		"inputs": [
   338  			{
   339  				"internalType": "address",
   340  				"name": "valAddr",
   341  				"type": "address"
   342  			}
   343  		],
   344  		"name": "getIncoming",
   345  		"outputs": [
   346  			{
   347  				"internalType": "uint256",
   348  				"name": "",
   349  				"type": "uint256"
   350  			}
   351  		],
   352  		"stateMutability": "view",
   353  		"type": "function"
   354  	},
   355  	{
   356  		"inputs": [
   357  			{
   358  				"internalType": "address",
   359  				"name": "valAddr",
   360  				"type": "address"
   361  			}
   362  		],
   363  		"name": "misdemeanor",
   364  		"outputs": [],
   365  		"stateMutability": "nonpayable",
   366  		"type": "function"
   367  	},
   368  	{
   369  		"inputs": [
   370  			{
   371  				"internalType": "address",
   372  				"name": "valAddr",
   373  				"type": "address"
   374  			}
   375  		],
   376  		"name": "felony",
   377  		"outputs": [],
   378  		"stateMutability": "nonpayable",
   379  		"type": "function"
   380  	}
   381  ]
   382  `
   383  
   384  const slashingABI = `
   385  [
   386  	{
   387  		"anonymous": false,
   388  		"inputs": [],
   389  		"name": "IndicatorCleaned",
   390  		"type": "event"
   391  	},
   392  	{
   393  		"anonymous": false,
   394  		"inputs": [
   395  			{
   396  				"indexed": true,
   397  				"internalType": "address",
   398  				"name": "validator",
   399  				"type": "address"
   400  			}
   401  		],
   402  		"name": "ValidatorSlashed",
   403  		"type": "event"
   404  	},
   405  	{
   406  		"inputs": [],
   407  		"name": "CODE_OK",
   408  		"outputs": [
   409  			{
   410  				"internalType": "uint32",
   411  				"name": "",
   412  				"type": "uint32"
   413  			}
   414  		],
   415  		"stateMutability": "view",
   416  		"type": "function"
   417  	},
   418  	{
   419  		"inputs": [],
   420  		"name": "DECREASE_RATE",
   421  		"outputs": [
   422  			{
   423  				"internalType": "uint256",
   424  				"name": "",
   425  				"type": "uint256"
   426  			}
   427  		],
   428  		"stateMutability": "view",
   429  		"type": "function"
   430  	},
   431  	{
   432  		"inputs": [],
   433  		"name": "FELONY_THRESHOLD",
   434  		"outputs": [
   435  			{
   436  				"internalType": "uint256",
   437  				"name": "",
   438  				"type": "uint256"
   439  			}
   440  		],
   441  		"stateMutability": "view",
   442  		"type": "function"
   443  	},
   444  	{
   445  		"inputs": [],
   446  		"name": "MISDEMEANOR_THRESHOLD",
   447  		"outputs": [
   448  			{
   449  				"internalType": "uint256",
   450  				"name": "",
   451  				"type": "uint256"
   452  			}
   453  		],
   454  		"stateMutability": "view",
   455  		"type": "function"
   456  	},
   457  	{
   458  		"inputs": [],
   459  		"name": "SLASHING_CONTRACT_ADDR",
   460  		"outputs": [
   461  			{
   462  				"internalType": "address",
   463  				"name": "",
   464  				"type": "address"
   465  			}
   466  		],
   467  		"stateMutability": "view",
   468  		"type": "function"
   469  	},
   470  	{
   471  		"inputs": [],
   472  		"name": "STAKING_CONTRACT_ADDR",
   473  		"outputs": [
   474  			{
   475  				"internalType": "address",
   476  				"name": "",
   477  				"type": "address"
   478  			}
   479  		],
   480  		"stateMutability": "view",
   481  		"type": "function"
   482  	},
   483  	{
   484  		"inputs": [],
   485  		"name": "VALIDATOR_CONTRACT_ADDR",
   486  		"outputs": [
   487  			{
   488  				"internalType": "address",
   489  				"name": "",
   490  				"type": "address"
   491  			}
   492  		],
   493  		"stateMutability": "view",
   494  		"type": "function"
   495  	},
   496  	{
   497  		"inputs": [],
   498  		"name": "alreadyInit",
   499  		"outputs": [
   500  			{
   501  				"internalType": "bool",
   502  				"name": "",
   503  				"type": "bool"
   504  			}
   505  		],
   506  		"stateMutability": "view",
   507  		"type": "function"
   508  	},
   509  	{
   510  		"inputs": [
   511  			{
   512  				"internalType": "address",
   513  				"name": "",
   514  				"type": "address"
   515  			}
   516  		],
   517  		"name": "indicators",
   518  		"outputs": [
   519  			{
   520  				"internalType": "uint256",
   521  				"name": "height",
   522  				"type": "uint256"
   523  			},
   524  			{
   525  				"internalType": "uint256",
   526  				"name": "count",
   527  				"type": "uint256"
   528  			},
   529  			{
   530  				"internalType": "bool",
   531  				"name": "exist",
   532  				"type": "bool"
   533  			}
   534  		],
   535  		"stateMutability": "view",
   536  		"type": "function"
   537  	},
   538  	{
   539  		"inputs": [],
   540  		"name": "previousHeight",
   541  		"outputs": [
   542  			{
   543  				"internalType": "uint256",
   544  				"name": "",
   545  				"type": "uint256"
   546  			}
   547  		],
   548  		"stateMutability": "view",
   549  		"type": "function"
   550  	},
   551  	{
   552  		"inputs": [
   553  			{
   554  				"internalType": "uint256",
   555  				"name": "",
   556  				"type": "uint256"
   557  			}
   558  		],
   559  		"name": "validators",
   560  		"outputs": [
   561  			{
   562  				"internalType": "address",
   563  				"name": "",
   564  				"type": "address"
   565  			}
   566  		],
   567  		"stateMutability": "view",
   568  		"type": "function"
   569  	},
   570  	{
   571  		"inputs": [
   572  			{
   573  				"internalType": "address",
   574  				"name": "valAddr",
   575  				"type": "address"
   576  			}
   577  		],
   578  		"name": "slash",
   579  		"outputs": [],
   580  		"stateMutability": "nonpayable",
   581  		"type": "function"
   582  	},
   583  	{
   584  		"inputs": [],
   585  		"name": "clean",
   586  		"outputs": [],
   587  		"stateMutability": "nonpayable",
   588  		"type": "function"
   589  	},
   590  	{
   591  		"inputs": [
   592  			{
   593  				"internalType": "address",
   594  				"name": "valAddr",
   595  				"type": "address"
   596  			}
   597  		],
   598  		"name": "getSlashIndicator",
   599  		"outputs": [
   600  			{
   601  				"internalType": "uint256",
   602  				"name": "",
   603  				"type": "uint256"
   604  			},
   605  			{
   606  				"internalType": "uint256",
   607  				"name": "",
   608  				"type": "uint256"
   609  			}
   610  		],
   611  		"stateMutability": "view",
   612  		"type": "function"
   613  	}
   614  ]
   615  `
   616  
   617  const stakingABI = `
   618  [
   619  	{
   620  		"anonymous": false,
   621  		"inputs": [
   622  			{
   623  				"indexed": true,
   624  				"internalType": "address",
   625  				"name": "validator",
   626  				"type": "address"
   627  			},
   628  			{
   629  				"indexed": true,
   630  				"internalType": "address payable",
   631  				"name": "payTo",
   632  				"type": "address"
   633  			},
   634  			{
   635  				"indexed": false,
   636  				"internalType": "uint256",
   637  				"name": "amount",
   638  				"type": "uint256"
   639  			}
   640  		],
   641  		"name": "PaymentFailed",
   642  		"type": "event"
   643  	},
   644  	{
   645  		"anonymous": false,
   646  		"inputs": [
   647  			{
   648  				"indexed": true,
   649  				"internalType": "address",
   650  				"name": "validator",
   651  				"type": "address"
   652  			},
   653  			{
   654  				"indexed": true,
   655  				"internalType": "address payable",
   656  				"name": "payTo",
   657  				"type": "address"
   658  			},
   659  			{
   660  				"indexed": false,
   661  				"internalType": "uint256",
   662  				"name": "amount",
   663  				"type": "uint256"
   664  			}
   665  		],
   666  		"name": "StakerPayment",
   667  		"type": "event"
   668  	},
   669  	{
   670  		"anonymous": false,
   671  		"inputs": [
   672  			{
   673  				"indexed": true,
   674  				"internalType": "address",
   675  				"name": "validator",
   676  				"type": "address"
   677  			},
   678  			{
   679  				"indexed": false,
   680  				"internalType": "uint256",
   681  				"name": "amount",
   682  				"type": "uint256"
   683  			}
   684  		],
   685  		"name": "ValidatorDeposit",
   686  		"type": "event"
   687  	},
   688  	{
   689  		"anonymous": false,
   690  		"inputs": [
   691  			{
   692  				"indexed": true,
   693  				"internalType": "address",
   694  				"name": "validator",
   695  				"type": "address"
   696  			},
   697  			{
   698  				"indexed": true,
   699  				"internalType": "address payable",
   700  				"name": "payTo",
   701  				"type": "address"
   702  			},
   703  			{
   704  				"indexed": false,
   705  				"internalType": "uint256",
   706  				"name": "amount",
   707  				"type": "uint256"
   708  			}
   709  		],
   710  		"name": "ValidatorPayment",
   711  		"type": "event"
   712  	},
   713  	{
   714  		"anonymous": false,
   715  		"inputs": [
   716  			{
   717  				"indexed": true,
   718  				"internalType": "address",
   719  				"name": "validator",
   720  				"type": "address"
   721  			},
   722  			{
   723  				"indexed": false,
   724  				"internalType": "uint8",
   725  				"name": "percentRevShare",
   726  				"type": "uint8"
   727  			}
   728  		],
   729  		"name": "ValidatorRegistered",
   730  		"type": "event"
   731  	},
   732  	{
   733  		"anonymous": false,
   734  		"inputs": [
   735  			{
   736  				"indexed": true,
   737  				"internalType": "address",
   738  				"name": "validator",
   739  				"type": "address"
   740  			},
   741  			{
   742  				"indexed": false,
   743  				"internalType": "uint256",
   744  				"name": "amount",
   745  				"type": "uint256"
   746  			}
   747  		],
   748  		"name": "ValidatorRewarded",
   749  		"type": "event"
   750  	},
   751  	{
   752  		"anonymous": false,
   753  		"inputs": [
   754  			{
   755  				"indexed": true,
   756  				"internalType": "address",
   757  				"name": "validator",
   758  				"type": "address"
   759  			}
   760  		],
   761  		"name": "ValidatorSelected",
   762  		"type": "event"
   763  	},
   764  	{
   765  		"anonymous": false,
   766  		"inputs": [
   767  			{
   768  				"indexed": true,
   769  				"internalType": "address",
   770  				"name": "validator",
   771  				"type": "address"
   772  			},
   773  			{
   774  				"indexed": true,
   775  				"internalType": "address",
   776  				"name": "staker",
   777  				"type": "address"
   778  			},
   779  			{
   780  				"indexed": false,
   781  				"internalType": "uint256",
   782  				"name": "amount",
   783  				"type": "uint256"
   784  			}
   785  		],
   786  		"name": "ValidatorStakeAdded",
   787  		"type": "event"
   788  	},
   789  	{
   790  		"anonymous": false,
   791  		"inputs": [
   792  			{
   793  				"indexed": true,
   794  				"internalType": "address",
   795  				"name": "validator",
   796  				"type": "address"
   797  			},
   798  			{
   799  				"indexed": true,
   800  				"internalType": "address",
   801  				"name": "staker",
   802  				"type": "address"
   803  			},
   804  			{
   805  				"indexed": false,
   806  				"internalType": "uint256",
   807  				"name": "amount",
   808  				"type": "uint256"
   809  			}
   810  		],
   811  		"name": "ValidatorStakeRemoved",
   812  		"type": "event"
   813  	},
   814  	{
   815  		"anonymous": false,
   816  		"inputs": [
   817  			{
   818  				"indexed": true,
   819  				"internalType": "address",
   820  				"name": "validator",
   821  				"type": "address"
   822  			}
   823  		],
   824  		"name": "ValidatorUnRegistered",
   825  		"type": "event"
   826  	},
   827  	{
   828  		"inputs": [],
   829  		"name": "CODE_OK",
   830  		"outputs": [
   831  			{
   832  				"internalType": "uint32",
   833  				"name": "",
   834  				"type": "uint32"
   835  			}
   836  		],
   837  		"stateMutability": "view",
   838  		"type": "function"
   839  	},
   840  	{
   841  		"inputs": [],
   842  		"name": "INIT_VALIDATORS_REVSHARE",
   843  		"outputs": [
   844  			{
   845  				"internalType": "uint8",
   846  				"name": "",
   847  				"type": "uint8"
   848  			}
   849  		],
   850  		"stateMutability": "view",
   851  		"type": "function"
   852  	},
   853  	{
   854  		"inputs": [],
   855  		"name": "MIN_STAKE_LENGTH",
   856  		"outputs": [
   857  			{
   858  				"internalType": "uint256",
   859  				"name": "",
   860  				"type": "uint256"
   861  			}
   862  		],
   863  		"stateMutability": "view",
   864  		"type": "function"
   865  	},
   866  	{
   867  		"inputs": [],
   868  		"name": "NUM_VALIDATORS",
   869  		"outputs": [
   870  			{
   871  				"internalType": "uint16",
   872  				"name": "",
   873  				"type": "uint16"
   874  			}
   875  		],
   876  		"stateMutability": "view",
   877  		"type": "function"
   878  	},
   879  	{
   880  		"inputs": [],
   881  		"name": "REQUIRED_DEPOSIT",
   882  		"outputs": [
   883  			{
   884  				"internalType": "uint256",
   885  				"name": "",
   886  				"type": "uint256"
   887  			}
   888  		],
   889  		"stateMutability": "view",
   890  		"type": "function"
   891  	},
   892  	{
   893  		"inputs": [],
   894  		"name": "SLASHING_CONTRACT_ADDR",
   895  		"outputs": [
   896  			{
   897  				"internalType": "address",
   898  				"name": "",
   899  				"type": "address"
   900  			}
   901  		],
   902  		"stateMutability": "view",
   903  		"type": "function"
   904  	},
   905  	{
   906  		"inputs": [],
   907  		"name": "STAKING_CONTRACT_ADDR",
   908  		"outputs": [
   909  			{
   910  				"internalType": "address",
   911  				"name": "",
   912  				"type": "address"
   913  			}
   914  		],
   915  		"stateMutability": "view",
   916  		"type": "function"
   917  	},
   918  	{
   919  		"inputs": [],
   920  		"name": "VALIDATOR_CONTRACT_ADDR",
   921  		"outputs": [
   922  			{
   923  				"internalType": "address",
   924  				"name": "",
   925  				"type": "address"
   926  			}
   927  		],
   928  		"stateMutability": "view",
   929  		"type": "function"
   930  	},
   931  	{
   932  		"inputs": [],
   933  		"name": "alreadyInit",
   934  		"outputs": [
   935  			{
   936  				"internalType": "bool",
   937  				"name": "",
   938  				"type": "bool"
   939  			}
   940  		],
   941  		"stateMutability": "view",
   942  		"type": "function"
   943  	},
   944  	{
   945  		"inputs": [
   946  			{
   947  				"internalType": "address",
   948  				"name": "",
   949  				"type": "address"
   950  			}
   951  		],
   952  		"name": "validatorDeposits",
   953  		"outputs": [
   954  			{
   955  				"internalType": "uint256",
   956  				"name": "",
   957  				"type": "uint256"
   958  			}
   959  		],
   960  		"stateMutability": "view",
   961  		"type": "function"
   962  	},
   963  	{
   964  		"inputs": [
   965  			{
   966  				"internalType": "address",
   967  				"name": "",
   968  				"type": "address"
   969  			}
   970  		],
   971  		"name": "validatorMap",
   972  		"outputs": [
   973  			{
   974  				"internalType": "uint256",
   975  				"name": "",
   976  				"type": "uint256"
   977  			}
   978  		],
   979  		"stateMutability": "view",
   980  		"type": "function"
   981  	},
   982  	{
   983  		"inputs": [
   984  			{
   985  				"internalType": "address",
   986  				"name": "",
   987  				"type": "address"
   988  			},
   989  			{
   990  				"internalType": "uint256",
   991  				"name": "",
   992  				"type": "uint256"
   993  			}
   994  		],
   995  		"name": "validatorStakers",
   996  		"outputs": [
   997  			{
   998  				"internalType": "address payable",
   999  				"name": "",
  1000  				"type": "address"
  1001  			}
  1002  		],
  1003  		"stateMutability": "view",
  1004  		"type": "function"
  1005  	},
  1006  	{
  1007  		"inputs": [],
  1008  		"name": "init",
  1009  		"outputs": [],
  1010  		"stateMutability": "nonpayable",
  1011  		"type": "function"
  1012  	},
  1013  	{
  1014  		"inputs": [],
  1015  		"name": "listRegisteredValidators",
  1016  		"outputs": [
  1017  			{
  1018  				"components": [
  1019  					{
  1020  						"internalType": "bool",
  1021  						"name": "active",
  1022  						"type": "bool"
  1023  					},
  1024  					{
  1025  						"internalType": "address",
  1026  						"name": "addr",
  1027  						"type": "address"
  1028  					},
  1029  					{
  1030  						"internalType": "address payable",
  1031  						"name": "feeAddr",
  1032  						"type": "address"
  1033  					},
  1034  					{
  1035  						"internalType": "uint8",
  1036  						"name": "percentRevShare",
  1037  						"type": "uint8"
  1038  					},
  1039  					{
  1040  						"internalType": "bool",
  1041  						"name": "inRotation",
  1042  						"type": "bool"
  1043  					},
  1044  					{
  1045  						"internalType": "uint256",
  1046  						"name": "pendingStake",
  1047  						"type": "uint256"
  1048  					},
  1049  					{
  1050  						"internalType": "uint256",
  1051  						"name": "totalStake",
  1052  						"type": "uint256"
  1053  					}
  1054  				],
  1055  				"internalType": "struct Staking.Validator[]",
  1056  				"name": "",
  1057  				"type": "tuple[]"
  1058  			}
  1059  		],
  1060  		"stateMutability": "view",
  1061  		"type": "function"
  1062  	},
  1063  	{
  1064  		"inputs": [],
  1065  		"name": "validatorDeposit",
  1066  		"outputs": [],
  1067  		"stateMutability": "payable",
  1068  		"type": "function"
  1069  	},
  1070  	{
  1071  		"inputs": [
  1072  			{
  1073  				"internalType": "address payable",
  1074  				"name": "feeAddr",
  1075  				"type": "address"
  1076  			},
  1077  			{
  1078  				"internalType": "uint8",
  1079  				"name": "percentRevShare",
  1080  				"type": "uint8"
  1081  			}
  1082  		],
  1083  		"name": "registerValidator",
  1084  		"outputs": [],
  1085  		"stateMutability": "nonpayable",
  1086  		"type": "function"
  1087  	},
  1088  	{
  1089  		"inputs": [],
  1090  		"name": "unRegisterValidator",
  1091  		"outputs": [],
  1092  		"stateMutability": "nonpayable",
  1093  		"type": "function"
  1094  	},
  1095  	{
  1096  		"inputs": [
  1097  			{
  1098  				"internalType": "address",
  1099  				"name": "valAddr",
  1100  				"type": "address"
  1101  			}
  1102  		],
  1103  		"name": "getValidator",
  1104  		"outputs": [
  1105  			{
  1106  				"components": [
  1107  					{
  1108  						"internalType": "bool",
  1109  						"name": "active",
  1110  						"type": "bool"
  1111  					},
  1112  					{
  1113  						"internalType": "address",
  1114  						"name": "addr",
  1115  						"type": "address"
  1116  					},
  1117  					{
  1118  						"internalType": "address payable",
  1119  						"name": "feeAddr",
  1120  						"type": "address"
  1121  					},
  1122  					{
  1123  						"internalType": "uint8",
  1124  						"name": "percentRevShare",
  1125  						"type": "uint8"
  1126  					},
  1127  					{
  1128  						"internalType": "bool",
  1129  						"name": "inRotation",
  1130  						"type": "bool"
  1131  					},
  1132  					{
  1133  						"internalType": "uint256",
  1134  						"name": "pendingStake",
  1135  						"type": "uint256"
  1136  					},
  1137  					{
  1138  						"internalType": "uint256",
  1139  						"name": "totalStake",
  1140  						"type": "uint256"
  1141  					}
  1142  				],
  1143  				"internalType": "struct Staking.Validator",
  1144  				"name": "",
  1145  				"type": "tuple"
  1146  			}
  1147  		],
  1148  		"stateMutability": "view",
  1149  		"type": "function"
  1150  	},
  1151  	{
  1152  		"inputs": [],
  1153  		"name": "listStakes",
  1154  		"outputs": [
  1155  			{
  1156  				"components": [
  1157  					{
  1158  						"internalType": "address",
  1159  						"name": "addr",
  1160  						"type": "address"
  1161  					},
  1162  					{
  1163  						"internalType": "uint256",
  1164  						"name": "amt",
  1165  						"type": "uint256"
  1166  					},
  1167  					{
  1168  						"internalType": "uint256",
  1169  						"name": "pendingAmt",
  1170  						"type": "uint256"
  1171  					},
  1172  					{
  1173  						"internalType": "uint256",
  1174  						"name": "startBlock",
  1175  						"type": "uint256"
  1176  					}
  1177  				],
  1178  				"internalType": "struct Staking.ValidatorStake[]",
  1179  				"name": "",
  1180  				"type": "tuple[]"
  1181  			}
  1182  		],
  1183  		"stateMutability": "view",
  1184  		"type": "function"
  1185  	},
  1186  	{
  1187  		"inputs": [
  1188  			{
  1189  				"internalType": "address",
  1190  				"name": "valAddr",
  1191  				"type": "address"
  1192  			}
  1193  		],
  1194  		"name": "addStake",
  1195  		"outputs": [],
  1196  		"stateMutability": "payable",
  1197  		"type": "function"
  1198  	},
  1199  	{
  1200  		"inputs": [
  1201  			{
  1202  				"internalType": "address",
  1203  				"name": "valAddr",
  1204  				"type": "address"
  1205  			},
  1206  			{
  1207  				"internalType": "uint256",
  1208  				"name": "amt",
  1209  				"type": "uint256"
  1210  			}
  1211  		],
  1212  		"name": "removeStake",
  1213  		"outputs": [],
  1214  		"stateMutability": "nonpayable",
  1215  		"type": "function"
  1216  	},
  1217  	{
  1218  		"inputs": [],
  1219  		"name": "rotateValidators",
  1220  		"outputs": [
  1221  			{
  1222  				"internalType": "uint32",
  1223  				"name": "",
  1224  				"type": "uint32"
  1225  			}
  1226  		],
  1227  		"stateMutability": "nonpayable",
  1228  		"type": "function"
  1229  	},
  1230  	{
  1231  		"inputs": [
  1232  			{
  1233  				"internalType": "address",
  1234  				"name": "valAddr",
  1235  				"type": "address"
  1236  			}
  1237  		],
  1238  		"name": "rewardValidator",
  1239  		"outputs": [],
  1240  		"stateMutability": "payable",
  1241  		"type": "function"
  1242  	}
  1243  ]
  1244  `