Skip to content

Instantly share code, notes, and snippets.

@RegencySoftware
Created March 2, 2025 15:21
Show Gist options
  • Save RegencySoftware/99478408f371508252112a4f43148e65 to your computer and use it in GitHub Desktop.
Save RegencySoftware/99478408f371508252112a4f43148e65 to your computer and use it in GitHub Desktop.
Created using remix-ide: Realtime Ethereum Contract Compiler and Runtime. Load this file by pasting this gists URL or ID at https://remix.ethereum.org/#version=soljson-v0.8.26+commit.8a97fa7a.js&optimize=false&runs=200&gist=
{
"id": "8bfffa0b94fd7c7a6f22eb7d383ccceb",
"_format": "hh-sol-build-info-1",
"solcVersion": "0.8.26",
"solcLongVersion": "0.8.26+commit.8a97fa7a",
"input": {
"language": "Solidity",
"sources": {
"dpos_contract_interface[1].sol": {
"content": "// (c) 2022-2023, Taraxa, Inc. All rights reserved.\n// SPDX-License-Identifier: MIT\n\npragma solidity >=0.8.0;\n\ninterface DposInterface {\n event Delegated(address indexed delegator, address indexed validator, uint256 amount);\n event Undelegated(address indexed delegator, address indexed validator, uint256 amount);\n event UndelegateConfirmed(address indexed delegator, address indexed validator, uint256 amount);\n event UndelegateCanceled(address indexed delegator, address indexed validator, uint256 amount);\n event UndelegatedV2(address indexed delegator, address indexed validator, uint64 indexed undelegation_id, uint256 amount);\n event UndelegateConfirmedV2(address indexed delegator, address indexed validator, uint64 indexed undelegation_id, uint256 amount);\n event UndelegateCanceledV2(address indexed delegator, address indexed validator, uint64 indexed undelegation_id, uint256 amount);\n event Redelegated(address indexed delegator, address indexed from, address indexed to, uint256 amount);\n event RewardsClaimed(address indexed account, address indexed validator, uint256 amount);\n event CommissionRewardsClaimed(address indexed account, address indexed validator, uint256 amount);\n event CommissionSet(address indexed validator, uint16 commission);\n event ValidatorRegistered(address indexed validator);\n event ValidatorInfoSet(address indexed validator);\n\n struct ValidatorBasicInfo {\n // Total number of delegated tokens to the validator\n uint256 total_stake;\n // Validator's reward from delegators rewards commission\n uint256 commission_reward;\n // Validator's commission - max value 10000(precision up to 0.01%)\n uint16 commission;\n // Block number of last commission change\n uint64 last_commission_change;\n // Number of ongoing undelegations from the validator\n uint16 undelegations_count;\n // Validator's owner account\n address owner;\n // Validators description/name\n string description;\n // Validators website endpoint\n string endpoint;\n }\n\n // Retun value for getValidators method\n struct ValidatorData {\n address account;\n ValidatorBasicInfo info;\n }\n\n // Delegator data\n struct DelegatorInfo {\n // Number of tokens that were staked\n uint256 stake;\n // Number of tokens that were rewarded\n uint256 rewards;\n }\n\n // Retun value for getDelegations method\n struct DelegationData {\n // Validator's(in case of getDelegations) or Delegator's (in case of getValidatorDelegations) account address\n address account;\n // Delegation info\n DelegatorInfo delegation;\n }\n\n // Retun value for getUndelegations method\n struct UndelegationData {\n // Number of tokens that were locked\n uint256 stake;\n // block number when it will be unlocked\n uint64 block;\n // Validator address\n address validator;\n // Flag if validator still exists - in case he has 0 stake and 0 rewards, validator is deleted from memory & db\n bool validator_exists;\n }\n\n // Retun value for getUndelegationsV2 method\n struct UndelegationV2Data {\n // Undelegation data\n UndelegationData undelegation_data;\n // Undelegation id\n uint64 undelegation_id;\n }\n\n // Delegates tokens to specified validator\n function delegate(address validator) external payable;\n\n // Undelegates <amount> of tokens from specified validator - creates undelegate request\n // Note: deprecated (pre cornus hardfork) - use undelegateV2 instead\n function undelegate(address validator, uint256 amount) external;\n\n // Undelegates <amount> of tokens from specified validator - creates undelegate request and returns unique undelegation_id <per delegator>\n function undelegateV2(address validator, uint256 amount) external returns (uint64 undelegation_id);\n\n // Confirms undelegate request\n // Note: deprecated (pre cornus hardfork) - use confirmUndelegateV2 instead\n function confirmUndelegate(address validator) external;\n\n // Confirms undelegate request with <undelegation_id> from <validator>\n function confirmUndelegateV2(address validator, uint64 undelegation_id) external;\n\n // Cancel undelegate request\n // Note: deprecated (pre cornus hardfork) - use confirmUndelegateV2 instead\n function cancelUndelegate(address validator) external;\n\n // Cancel undelegate request with <undelegation_id> from <validator>\n function cancelUndelegateV2(address validator, uint64 undelegation_id) external;\n\n // Redelegates <amount> of tokens from one validator to the other\n function reDelegate(address validator_from, address validator_to, uint256 amount) external;\n\n // Claims staking rewards from <validator>\n function claimRewards(address validator) external;\n\n /**\n * @notice Claims staking rewards from all validators (limited by max dag block gas limit) that caller has delegated to\n *\n */\n function claimAllRewards() external;\n\n // Claims tokens from validator's commission rewards\n function claimCommissionRewards(address validator) external;\n\n // Registers new validator - validator also must delegate to himself, he can later withdraw his delegation\n function registerValidator(\n address validator,\n bytes memory proof,\n bytes memory vrf_key,\n uint16 commission,\n string calldata description,\n string calldata endpoint\n ) external payable;\n\n /**\n * @notice Sets some of the static validator details.\n *\n * @param description New description (e.g name, short purpose description, etc...)\n * @param endpoint New endpoint, might be a validator's website\n *\n */\n function setValidatorInfo(address validator, string calldata description, string calldata endpoint) external;\n\n // Sets validator's commission [%] * 100 so 1% is 100 & 10% is 1000\n function setCommission(address validator, uint16 commission) external;\n\n // TODO: these 4 methods below can be all replaced by \"getValidator\" and \"getValidators\" calls, but it should be\n // considered in terms of performance, etc...\n\n // Returns true if acc is eligible validator, otherwise false\n function isValidatorEligible(address validator) external view returns (bool);\n\n // Returns all validators eligible votes counts\n function getTotalEligibleVotesCount() external view returns (uint64);\n\n // Returns specified validator eligible votes count\n function getValidatorEligibleVotesCount(address validator) external view returns (uint64);\n\n // Returns validator basic info (everything except list of his delegators)\n function getValidator(address validator) external view returns (ValidatorBasicInfo memory validator_info);\n\n function getValidators(uint32 batch) external view returns (ValidatorData[] memory validators, bool end);\n\n /**\n * @notice Returns list of validators owned by an address\n *\n * @param owner Owner address\n * @param batch Batch number to be fetched. If the list is too big it cannot return all validators in one call. Instead, users are fetching batches of 100 account at a time\n *\n * @return validators Batch of N validators basic info\n * @return end Flag if there are no more accounts left. To get all accounts, caller should fetch all batches until he sees end == true\n *\n */\n function getValidatorsFor(address owner, uint32 batch)\n external\n view\n returns (ValidatorData[] memory validators, bool end);\n\n /**\n * @notice Returns total delegation for specified delegator\n *\n * @param delegator Delegator account address\n *\n * @return total_delegation amount that was delegated\n *\n */\n function getTotalDelegation(address delegator) external view returns (uint256 total_delegation);\n\n /**\n * @notice Returns list of delegations for specified delegator - which validators delegator delegated to\n *\n * @param delegator delegator account address\n * @param batch Batch number to be fetched. If the list is too big it cannot return all delegations in one call. Instead, users are fetching batches of 50 delegations at a time\n *\n * @return delegations Batch of N delegations\n * @return end Flag if there are no more delegations left. To get all delegations, caller should fetch all batches until he sees end == true\n *\n */\n function getDelegations(address delegator, uint32 batch)\n external\n view\n returns (DelegationData[] memory delegations, bool end);\n\n /**\n * @notice Returns list of undelegations for specified delegator\n *\n * @param delegator delegator account address\n * @param batch Batch number to be fetched. If the list is too big it cannot return all undelegations in one call. Instead, users are fetching batches of 50 undelegations at a time\n *\n * @return undelegations Batch of N undelegations\n * @return end Flag if there are no more undelegations left. To get all undelegations, caller should fetch all batches until he sees end == true\n *\n */\n function getUndelegations(address delegator, uint32 batch)\n external\n view\n returns (UndelegationData[] memory undelegations, bool end);\n\n /**\n * @notice Returns list of V2 undelegations for specified delegator\n *\n * @param delegator delegator account address\n * @param batch Batch number to be fetched. If the list is too big it cannot return all undelegations in one call. Instead, users are fetching batches of 50 undelegations at a time\n *\n * @return undelegations_v2 Batch of N undelegations\n * @return end Flag if there are no more undelegations left. To get all undelegations, caller should fetch all batches until he sees end == true\n *\n */\n function getUndelegationsV2(address delegator, uint32 batch)\n external\n view\n returns (UndelegationV2Data[] memory undelegations_v2, bool end);\n\n /**\n * @notice Returns V2 undelegation for specified delegator, validator & and undelegation_id\n *\n * @param delegator delegator account address\n * @param validator validator account address\n * @param undelegation_id undelegation id\n *\n * @return undelegation_v2\n */\n function getUndelegationV2(address delegator, address validator, uint64 undelegation_id)\n external\n view\n returns (UndelegationV2Data memory undelegation_v2);\n}\n"
}
},
"settings": {
"optimizer": {
"enabled": false,
"runs": 200
},
"outputSelection": {
"*": {
"": [
"ast"
],
"*": [
"abi",
"metadata",
"devdoc",
"userdoc",
"storageLayout",
"evm.legacyAssembly",
"evm.bytecode",
"evm.deployedBytecode",
"evm.methodIdentifiers",
"evm.gasEstimates",
"evm.assembly"
]
}
},
"remappings": []
}
},
"output": {
"contracts": {
"dpos_contract_interface[1].sol": {
"DposInterface": {
"abi": [
{
"anonymous": false,
"inputs": [
{
"indexed": true,
"internalType": "address",
"name": "account",
"type": "address"
},
{
"indexed": true,
"internalType": "address",
"name": "validator",
"type": "address"
},
{
"indexed": false,
"internalType": "uint256",
"name": "amount",
"type": "uint256"
}
],
"name": "CommissionRewardsClaimed",
"type": "event"
},
{
"anonymous": false,
"inputs": [
{
"indexed": true,
"internalType": "address",
"name": "validator",
"type": "address"
},
{
"indexed": false,
"internalType": "uint16",
"name": "commission",
"type": "uint16"
}
],
"name": "CommissionSet",
"type": "event"
},
{
"anonymous": false,
"inputs": [
{
"indexed": true,
"internalType": "address",
"name": "delegator",
"type": "address"
},
{
"indexed": true,
"internalType": "address",
"name": "validator",
"type": "address"
},
{
"indexed": false,
"internalType": "uint256",
"name": "amount",
"type": "uint256"
}
],
"name": "Delegated",
"type": "event"
},
{
"anonymous": false,
"inputs": [
{
"indexed": true,
"internalType": "address",
"name": "delegator",
"type": "address"
},
{
"indexed": true,
"internalType": "address",
"name": "from",
"type": "address"
},
{
"indexed": true,
"internalType": "address",
"name": "to",
"type": "address"
},
{
"indexed": false,
"internalType": "uint256",
"name": "amount",
"type": "uint256"
}
],
"name": "Redelegated",
"type": "event"
},
{
"anonymous": false,
"inputs": [
{
"indexed": true,
"internalType": "address",
"name": "account",
"type": "address"
},
{
"indexed": true,
"internalType": "address",
"name": "validator",
"type": "address"
},
{
"indexed": false,
"internalType": "uint256",
"name": "amount",
"type": "uint256"
}
],
"name": "RewardsClaimed",
"type": "event"
},
{
"anonymous": false,
"inputs": [
{
"indexed": true,
"internalType": "address",
"name": "delegator",
"type": "address"
},
{
"indexed": true,
"internalType": "address",
"name": "validator",
"type": "address"
},
{
"indexed": false,
"internalType": "uint256",
"name": "amount",
"type": "uint256"
}
],
"name": "UndelegateCanceled",
"type": "event"
},
{
"anonymous": false,
"inputs": [
{
"indexed": true,
"internalType": "address",
"name": "delegator",
"type": "address"
},
{
"indexed": true,
"internalType": "address",
"name": "validator",
"type": "address"
},
{
"indexed": true,
"internalType": "uint64",
"name": "undelegation_id",
"type": "uint64"
},
{
"indexed": false,
"internalType": "uint256",
"name": "amount",
"type": "uint256"
}
],
"name": "UndelegateCanceledV2",
"type": "event"
},
{
"anonymous": false,
"inputs": [
{
"indexed": true,
"internalType": "address",
"name": "delegator",
"type": "address"
},
{
"indexed": true,
"internalType": "address",
"name": "validator",
"type": "address"
},
{
"indexed": false,
"internalType": "uint256",
"name": "amount",
"type": "uint256"
}
],
"name": "UndelegateConfirmed",
"type": "event"
},
{
"anonymous": false,
"inputs": [
{
"indexed": true,
"internalType": "address",
"name": "delegator",
"type": "address"
},
{
"indexed": true,
"internalType": "address",
"name": "validator",
"type": "address"
},
{
"indexed": true,
"internalType": "uint64",
"name": "undelegation_id",
"type": "uint64"
},
{
"indexed": false,
"internalType": "uint256",
"name": "amount",
"type": "uint256"
}
],
"name": "UndelegateConfirmedV2",
"type": "event"
},
{
"anonymous": false,
"inputs": [
{
"indexed": true,
"internalType": "address",
"name": "delegator",
"type": "address"
},
{
"indexed": true,
"internalType": "address",
"name": "validator",
"type": "address"
},
{
"indexed": false,
"internalType": "uint256",
"name": "amount",
"type": "uint256"
}
],
"name": "Undelegated",
"type": "event"
},
{
"anonymous": false,
"inputs": [
{
"indexed": true,
"internalType": "address",
"name": "delegator",
"type": "address"
},
{
"indexed": true,
"internalType": "address",
"name": "validator",
"type": "address"
},
{
"indexed": true,
"internalType": "uint64",
"name": "undelegation_id",
"type": "uint64"
},
{
"indexed": false,
"internalType": "uint256",
"name": "amount",
"type": "uint256"
}
],
"name": "UndelegatedV2",
"type": "event"
},
{
"anonymous": false,
"inputs": [
{
"indexed": true,
"internalType": "address",
"name": "validator",
"type": "address"
}
],
"name": "ValidatorInfoSet",
"type": "event"
},
{
"anonymous": false,
"inputs": [
{
"indexed": true,
"internalType": "address",
"name": "validator",
"type": "address"
}
],
"name": "ValidatorRegistered",
"type": "event"
},
{
"inputs": [
{
"internalType": "address",
"name": "validator",
"type": "address"
}
],
"name": "cancelUndelegate",
"outputs": [],
"stateMutability": "nonpayable",
"type": "function"
},
{
"inputs": [
{
"internalType": "address",
"name": "validator",
"type": "address"
},
{
"internalType": "uint64",
"name": "undelegation_id",
"type": "uint64"
}
],
"name": "cancelUndelegateV2",
"outputs": [],
"stateMutability": "nonpayable",
"type": "function"
},
{
"inputs": [],
"name": "claimAllRewards",
"outputs": [],
"stateMutability": "nonpayable",
"type": "function"
},
{
"inputs": [
{
"internalType": "address",
"name": "validator",
"type": "address"
}
],
"name": "claimCommissionRewards",
"outputs": [],
"stateMutability": "nonpayable",
"type": "function"
},
{
"inputs": [
{
"internalType": "address",
"name": "validator",
"type": "address"
}
],
"name": "claimRewards",
"outputs": [],
"stateMutability": "nonpayable",
"type": "function"
},
{
"inputs": [
{
"internalType": "address",
"name": "validator",
"type": "address"
}
],
"name": "confirmUndelegate",
"outputs": [],
"stateMutability": "nonpayable",
"type": "function"
},
{
"inputs": [
{
"internalType": "address",
"name": "validator",
"type": "address"
},
{
"internalType": "uint64",
"name": "undelegation_id",
"type": "uint64"
}
],
"name": "confirmUndelegateV2",
"outputs": [],
"stateMutability": "nonpayable",
"type": "function"
},
{
"inputs": [
{
"internalType": "address",
"name": "validator",
"type": "address"
}
],
"name": "delegate",
"outputs": [],
"stateMutability": "payable",
"type": "function"
},
{
"inputs": [
{
"internalType": "address",
"name": "delegator",
"type": "address"
},
{
"internalType": "uint32",
"name": "batch",
"type": "uint32"
}
],
"name": "getDelegations",
"outputs": [
{
"components": [
{
"internalType": "address",
"name": "account",
"type": "address"
},
{
"components": [
{
"internalType": "uint256",
"name": "stake",
"type": "uint256"
},
{
"internalType": "uint256",
"name": "rewards",
"type": "uint256"
}
],
"internalType": "struct DposInterface.DelegatorInfo",
"name": "delegation",
"type": "tuple"
}
],
"internalType": "struct DposInterface.DelegationData[]",
"name": "delegations",
"type": "tuple[]"
},
{
"internalType": "bool",
"name": "end",
"type": "bool"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [
{
"internalType": "address",
"name": "delegator",
"type": "address"
}
],
"name": "getTotalDelegation",
"outputs": [
{
"internalType": "uint256",
"name": "total_delegation",
"type": "uint256"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [],
"name": "getTotalEligibleVotesCount",
"outputs": [
{
"internalType": "uint64",
"name": "",
"type": "uint64"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [
{
"internalType": "address",
"name": "delegator",
"type": "address"
},
{
"internalType": "address",
"name": "validator",
"type": "address"
},
{
"internalType": "uint64",
"name": "undelegation_id",
"type": "uint64"
}
],
"name": "getUndelegationV2",
"outputs": [
{
"components": [
{
"components": [
{
"internalType": "uint256",
"name": "stake",
"type": "uint256"
},
{
"internalType": "uint64",
"name": "block",
"type": "uint64"
},
{
"internalType": "address",
"name": "validator",
"type": "address"
},
{
"internalType": "bool",
"name": "validator_exists",
"type": "bool"
}
],
"internalType": "struct DposInterface.UndelegationData",
"name": "undelegation_data",
"type": "tuple"
},
{
"internalType": "uint64",
"name": "undelegation_id",
"type": "uint64"
}
],
"internalType": "struct DposInterface.UndelegationV2Data",
"name": "undelegation_v2",
"type": "tuple"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [
{
"internalType": "address",
"name": "delegator",
"type": "address"
},
{
"internalType": "uint32",
"name": "batch",
"type": "uint32"
}
],
"name": "getUndelegations",
"outputs": [
{
"components": [
{
"internalType": "uint256",
"name": "stake",
"type": "uint256"
},
{
"internalType": "uint64",
"name": "block",
"type": "uint64"
},
{
"internalType": "address",
"name": "validator",
"type": "address"
},
{
"internalType": "bool",
"name": "validator_exists",
"type": "bool"
}
],
"internalType": "struct DposInterface.UndelegationData[]",
"name": "undelegations",
"type": "tuple[]"
},
{
"internalType": "bool",
"name": "end",
"type": "bool"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [
{
"internalType": "address",
"name": "delegator",
"type": "address"
},
{
"internalType": "uint32",
"name": "batch",
"type": "uint32"
}
],
"name": "getUndelegationsV2",
"outputs": [
{
"components": [
{
"components": [
{
"internalType": "uint256",
"name": "stake",
"type": "uint256"
},
{
"internalType": "uint64",
"name": "block",
"type": "uint64"
},
{
"internalType": "address",
"name": "validator",
"type": "address"
},
{
"internalType": "bool",
"name": "validator_exists",
"type": "bool"
}
],
"internalType": "struct DposInterface.UndelegationData",
"name": "undelegation_data",
"type": "tuple"
},
{
"internalType": "uint64",
"name": "undelegation_id",
"type": "uint64"
}
],
"internalType": "struct DposInterface.UndelegationV2Data[]",
"name": "undelegations_v2",
"type": "tuple[]"
},
{
"internalType": "bool",
"name": "end",
"type": "bool"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [
{
"internalType": "address",
"name": "validator",
"type": "address"
}
],
"name": "getValidator",
"outputs": [
{
"components": [
{
"internalType": "uint256",
"name": "total_stake",
"type": "uint256"
},
{
"internalType": "uint256",
"name": "commission_reward",
"type": "uint256"
},
{
"internalType": "uint16",
"name": "commission",
"type": "uint16"
},
{
"internalType": "uint64",
"name": "last_commission_change",
"type": "uint64"
},
{
"internalType": "uint16",
"name": "undelegations_count",
"type": "uint16"
},
{
"internalType": "address",
"name": "owner",
"type": "address"
},
{
"internalType": "string",
"name": "description",
"type": "string"
},
{
"internalType": "string",
"name": "endpoint",
"type": "string"
}
],
"internalType": "struct DposInterface.ValidatorBasicInfo",
"name": "validator_info",
"type": "tuple"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [
{
"internalType": "address",
"name": "validator",
"type": "address"
}
],
"name": "getValidatorEligibleVotesCount",
"outputs": [
{
"internalType": "uint64",
"name": "",
"type": "uint64"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [
{
"internalType": "uint32",
"name": "batch",
"type": "uint32"
}
],
"name": "getValidators",
"outputs": [
{
"components": [
{
"internalType": "address",
"name": "account",
"type": "address"
},
{
"components": [
{
"internalType": "uint256",
"name": "total_stake",
"type": "uint256"
},
{
"internalType": "uint256",
"name": "commission_reward",
"type": "uint256"
},
{
"internalType": "uint16",
"name": "commission",
"type": "uint16"
},
{
"internalType": "uint64",
"name": "last_commission_change",
"type": "uint64"
},
{
"internalType": "uint16",
"name": "undelegations_count",
"type": "uint16"
},
{
"internalType": "address",
"name": "owner",
"type": "address"
},
{
"internalType": "string",
"name": "description",
"type": "string"
},
{
"internalType": "string",
"name": "endpoint",
"type": "string"
}
],
"internalType": "struct DposInterface.ValidatorBasicInfo",
"name": "info",
"type": "tuple"
}
],
"internalType": "struct DposInterface.ValidatorData[]",
"name": "validators",
"type": "tuple[]"
},
{
"internalType": "bool",
"name": "end",
"type": "bool"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [
{
"internalType": "address",
"name": "owner",
"type": "address"
},
{
"internalType": "uint32",
"name": "batch",
"type": "uint32"
}
],
"name": "getValidatorsFor",
"outputs": [
{
"components": [
{
"internalType": "address",
"name": "account",
"type": "address"
},
{
"components": [
{
"internalType": "uint256",
"name": "total_stake",
"type": "uint256"
},
{
"internalType": "uint256",
"name": "commission_reward",
"type": "uint256"
},
{
"internalType": "uint16",
"name": "commission",
"type": "uint16"
},
{
"internalType": "uint64",
"name": "last_commission_change",
"type": "uint64"
},
{
"internalType": "uint16",
"name": "undelegations_count",
"type": "uint16"
},
{
"internalType": "address",
"name": "owner",
"type": "address"
},
{
"internalType": "string",
"name": "description",
"type": "string"
},
{
"internalType": "string",
"name": "endpoint",
"type": "string"
}
],
"internalType": "struct DposInterface.ValidatorBasicInfo",
"name": "info",
"type": "tuple"
}
],
"internalType": "struct DposInterface.ValidatorData[]",
"name": "validators",
"type": "tuple[]"
},
{
"internalType": "bool",
"name": "end",
"type": "bool"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [
{
"internalType": "address",
"name": "validator",
"type": "address"
}
],
"name": "isValidatorEligible",
"outputs": [
{
"internalType": "bool",
"name": "",
"type": "bool"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [
{
"internalType": "address",
"name": "validator_from",
"type": "address"
},
{
"internalType": "address",
"name": "validator_to",
"type": "address"
},
{
"internalType": "uint256",
"name": "amount",
"type": "uint256"
}
],
"name": "reDelegate",
"outputs": [],
"stateMutability": "nonpayable",
"type": "function"
},
{
"inputs": [
{
"internalType": "address",
"name": "validator",
"type": "address"
},
{
"internalType": "bytes",
"name": "proof",
"type": "bytes"
},
{
"internalType": "bytes",
"name": "vrf_key",
"type": "bytes"
},
{
"internalType": "uint16",
"name": "commission",
"type": "uint16"
},
{
"internalType": "string",
"name": "description",
"type": "string"
},
{
"internalType": "string",
"name": "endpoint",
"type": "string"
}
],
"name": "registerValidator",
"outputs": [],
"stateMutability": "payable",
"type": "function"
},
{
"inputs": [
{
"internalType": "address",
"name": "validator",
"type": "address"
},
{
"internalType": "uint16",
"name": "commission",
"type": "uint16"
}
],
"name": "setCommission",
"outputs": [],
"stateMutability": "nonpayable",
"type": "function"
},
{
"inputs": [
{
"internalType": "address",
"name": "validator",
"type": "address"
},
{
"internalType": "string",
"name": "description",
"type": "string"
},
{
"internalType": "string",
"name": "endpoint",
"type": "string"
}
],
"name": "setValidatorInfo",
"outputs": [],
"stateMutability": "nonpayable",
"type": "function"
},
{
"inputs": [
{
"internalType": "address",
"name": "validator",
"type": "address"
},
{
"internalType": "uint256",
"name": "amount",
"type": "uint256"
}
],
"name": "undelegate",
"outputs": [],
"stateMutability": "nonpayable",
"type": "function"
},
{
"inputs": [
{
"internalType": "address",
"name": "validator",
"type": "address"
},
{
"internalType": "uint256",
"name": "amount",
"type": "uint256"
}
],
"name": "undelegateV2",
"outputs": [
{
"internalType": "uint64",
"name": "undelegation_id",
"type": "uint64"
}
],
"stateMutability": "nonpayable",
"type": "function"
}
],
"devdoc": {
"kind": "dev",
"methods": {
"getDelegations(address,uint32)": {
"params": {
"batch": "Batch number to be fetched. If the list is too big it cannot return all delegations in one call. Instead, users are fetching batches of 50 delegations at a time",
"delegator": "delegator account address"
},
"returns": {
"delegations": " Batch of N delegations",
"end": " Flag if there are no more delegations left. To get all delegations, caller should fetch all batches until he sees end == true"
}
},
"getTotalDelegation(address)": {
"params": {
"delegator": "Delegator account address"
},
"returns": {
"total_delegation": "amount that was delegated"
}
},
"getUndelegationV2(address,address,uint64)": {
"params": {
"delegator": "delegator account address",
"undelegation_id": "undelegation id",
"validator": "validator account address"
},
"returns": {
"undelegation_v2": "undelegation_v2"
}
},
"getUndelegations(address,uint32)": {
"params": {
"batch": "Batch number to be fetched. If the list is too big it cannot return all undelegations in one call. Instead, users are fetching batches of 50 undelegations at a time",
"delegator": "delegator account address"
},
"returns": {
"end": " Flag if there are no more undelegations left. To get all undelegations, caller should fetch all batches until he sees end == true",
"undelegations": " Batch of N undelegations"
}
},
"getUndelegationsV2(address,uint32)": {
"params": {
"batch": "Batch number to be fetched. If the list is too big it cannot return all undelegations in one call. Instead, users are fetching batches of 50 undelegations at a time",
"delegator": "delegator account address"
},
"returns": {
"end": " Flag if there are no more undelegations left. To get all undelegations, caller should fetch all batches until he sees end == true",
"undelegations_v2": " Batch of N undelegations"
}
},
"getValidatorsFor(address,uint32)": {
"params": {
"batch": "Batch number to be fetched. If the list is too big it cannot return all validators in one call. Instead, users are fetching batches of 100 account at a time",
"owner": "Owner address"
},
"returns": {
"end": " Flag if there are no more accounts left. To get all accounts, caller should fetch all batches until he sees end == true",
"validators": " Batch of N validators basic info"
}
},
"setValidatorInfo(address,string,string)": {
"params": {
"description": "New description (e.g name, short purpose description, etc...)",
"endpoint": "New endpoint, might be a validator's website"
}
}
},
"version": 1
},
"evm": {
"assembly": "",
"bytecode": {
"functionDebugData": {},
"generatedSources": [],
"linkReferences": {},
"object": "",
"opcodes": "",
"sourceMap": ""
},
"deployedBytecode": {
"functionDebugData": {},
"generatedSources": [],
"immutableReferences": {},
"linkReferences": {},
"object": "",
"opcodes": "",
"sourceMap": ""
},
"gasEstimates": null,
"legacyAssembly": null,
"methodIdentifiers": {
"cancelUndelegate(address)": "399ff554",
"cancelUndelegateV2(address,uint64)": "b6e1e329",
"claimAllRewards()": "0b83a727",
"claimCommissionRewards(address)": "d0eebfe2",
"claimRewards(address)": "ef5cfb8c",
"confirmUndelegate(address)": "45a02561",
"confirmUndelegateV2(address,uint64)": "788d0974",
"delegate(address)": "5c19a95c",
"getDelegations(address,uint32)": "8b49d394",
"getTotalDelegation(address)": "fc5e7e09",
"getTotalEligibleVotesCount()": "de8e4b50",
"getUndelegationV2(address,address,uint64)": "c1107e27",
"getUndelegations(address,uint32)": "4edd9943",
"getUndelegationsV2(address,uint32)": "78df66e3",
"getValidator(address)": "1904bb2e",
"getValidatorEligibleVotesCount(address)": "618e3862",
"getValidators(uint32)": "19d8024f",
"getValidatorsFor(address,uint32)": "724ac6b0",
"isValidatorEligible(address)": "f3094e90",
"reDelegate(address,address,uint256)": "703812cc",
"registerValidator(address,bytes,bytes,uint16,string,string)": "d6fdc127",
"setCommission(address,uint16)": "f000322c",
"setValidatorInfo(address,string,string)": "0babea4c",
"undelegate(address,uint256)": "4d99dd16",
"undelegateV2(address,uint256)": "bd0e7fcc"
}
},
"metadata": "{\"compiler\":{\"version\":\"0.8.26+commit.8a97fa7a\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"validator\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"CommissionRewardsClaimed\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"validator\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint16\",\"name\":\"commission\",\"type\":\"uint16\"}],\"name\":\"CommissionSet\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"delegator\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"validator\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"Delegated\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"delegator\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"Redelegated\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"validator\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"RewardsClaimed\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"delegator\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"validator\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"UndelegateCanceled\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"delegator\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"validator\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"uint64\",\"name\":\"undelegation_id\",\"type\":\"uint64\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"UndelegateCanceledV2\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"delegator\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"validator\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"UndelegateConfirmed\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"delegator\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"validator\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"uint64\",\"name\":\"undelegation_id\",\"type\":\"uint64\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"UndelegateConfirmedV2\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"delegator\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"validator\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"Undelegated\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"delegator\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"validator\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"uint64\",\"name\":\"undelegation_id\",\"type\":\"uint64\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"UndelegatedV2\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"validator\",\"type\":\"address\"}],\"name\":\"ValidatorInfoSet\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"validator\",\"type\":\"address\"}],\"name\":\"ValidatorRegistered\",\"type\":\"event\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"validator\",\"type\":\"address\"}],\"name\":\"cancelUndelegate\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"validator\",\"type\":\"address\"},{\"internalType\":\"uint64\",\"name\":\"undelegation_id\",\"type\":\"uint64\"}],\"name\":\"cancelUndelegateV2\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"claimAllRewards\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"validator\",\"type\":\"address\"}],\"name\":\"claimCommissionRewards\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"validator\",\"type\":\"address\"}],\"name\":\"claimRewards\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"validator\",\"type\":\"address\"}],\"name\":\"confirmUndelegate\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"validator\",\"type\":\"address\"},{\"internalType\":\"uint64\",\"name\":\"undelegation_id\",\"type\":\"uint64\"}],\"name\":\"confirmUndelegateV2\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"validator\",\"type\":\"address\"}],\"name\":\"delegate\",\"outputs\":[],\"stateMutability\":\"payable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"delegator\",\"type\":\"address\"},{\"internalType\":\"uint32\",\"name\":\"batch\",\"type\":\"uint32\"}],\"name\":\"getDelegations\",\"outputs\":[{\"components\":[{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"},{\"components\":[{\"internalType\":\"uint256\",\"name\":\"stake\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"rewards\",\"type\":\"uint256\"}],\"internalType\":\"struct DposInterface.DelegatorInfo\",\"name\":\"delegation\",\"type\":\"tuple\"}],\"internalType\":\"struct DposInterface.DelegationData[]\",\"name\":\"delegations\",\"type\":\"tuple[]\"},{\"internalType\":\"bool\",\"name\":\"end\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"delegator\",\"type\":\"address\"}],\"name\":\"getTotalDelegation\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"total_delegation\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"getTotalEligibleVotesCount\",\"outputs\":[{\"internalType\":\"uint64\",\"name\":\"\",\"type\":\"uint64\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"delegator\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"validator\",\"type\":\"address\"},{\"internalType\":\"uint64\",\"name\":\"undelegation_id\",\"type\":\"uint64\"}],\"name\":\"getUndelegationV2\",\"outputs\":[{\"components\":[{\"components\":[{\"internalType\":\"uint256\",\"name\":\"stake\",\"type\":\"uint256\"},{\"internalType\":\"uint64\",\"name\":\"block\",\"type\":\"uint64\"},{\"internalType\":\"address\",\"name\":\"validator\",\"type\":\"address\"},{\"internalType\":\"bool\",\"name\":\"validator_exists\",\"type\":\"bool\"}],\"internalType\":\"struct DposInterface.UndelegationData\",\"name\":\"undelegation_data\",\"type\":\"tuple\"},{\"internalType\":\"uint64\",\"name\":\"undelegation_id\",\"type\":\"uint64\"}],\"internalType\":\"struct DposInterface.UndelegationV2Data\",\"name\":\"undelegation_v2\",\"type\":\"tuple\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"delegator\",\"type\":\"address\"},{\"internalType\":\"uint32\",\"name\":\"batch\",\"type\":\"uint32\"}],\"name\":\"getUndelegations\",\"outputs\":[{\"components\":[{\"internalType\":\"uint256\",\"name\":\"stake\",\"type\":\"uint256\"},{\"internalType\":\"uint64\",\"name\":\"block\",\"type\":\"uint64\"},{\"internalType\":\"address\",\"name\":\"validator\",\"type\":\"address\"},{\"internalType\":\"bool\",\"name\":\"validator_exists\",\"type\":\"bool\"}],\"internalType\":\"struct DposInterface.UndelegationData[]\",\"name\":\"undelegations\",\"type\":\"tuple[]\"},{\"internalType\":\"bool\",\"name\":\"end\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"delegator\",\"type\":\"address\"},{\"internalType\":\"uint32\",\"name\":\"batch\",\"type\":\"uint32\"}],\"name\":\"getUndelegationsV2\",\"outputs\":[{\"components\":[{\"components\":[{\"internalType\":\"uint256\",\"name\":\"stake\",\"type\":\"uint256\"},{\"internalType\":\"uint64\",\"name\":\"block\",\"type\":\"uint64\"},{\"internalType\":\"address\",\"name\":\"validator\",\"type\":\"address\"},{\"internalType\":\"bool\",\"name\":\"validator_exists\",\"type\":\"bool\"}],\"internalType\":\"struct DposInterface.UndelegationData\",\"name\":\"undelegation_data\",\"type\":\"tuple\"},{\"internalType\":\"uint64\",\"name\":\"undelegation_id\",\"type\":\"uint64\"}],\"internalType\":\"struct DposInterface.UndelegationV2Data[]\",\"name\":\"undelegations_v2\",\"type\":\"tuple[]\"},{\"internalType\":\"bool\",\"name\":\"end\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"validator\",\"type\":\"address\"}],\"name\":\"getValidator\",\"outputs\":[{\"components\":[{\"internalType\":\"uint256\",\"name\":\"total_stake\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"commission_reward\",\"type\":\"uint256\"},{\"internalType\":\"uint16\",\"name\":\"commission\",\"type\":\"uint16\"},{\"internalType\":\"uint64\",\"name\":\"last_commission_change\",\"type\":\"uint64\"},{\"internalType\":\"uint16\",\"name\":\"undelegations_count\",\"type\":\"uint16\"},{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"},{\"internalType\":\"string\",\"name\":\"description\",\"type\":\"string\"},{\"internalType\":\"string\",\"name\":\"endpoint\",\"type\":\"string\"}],\"internalType\":\"struct DposInterface.ValidatorBasicInfo\",\"name\":\"validator_info\",\"type\":\"tuple\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"validator\",\"type\":\"address\"}],\"name\":\"getValidatorEligibleVotesCount\",\"outputs\":[{\"internalType\":\"uint64\",\"name\":\"\",\"type\":\"uint64\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint32\",\"name\":\"batch\",\"type\":\"uint32\"}],\"name\":\"getValidators\",\"outputs\":[{\"components\":[{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"},{\"components\":[{\"internalType\":\"uint256\",\"name\":\"total_stake\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"commission_reward\",\"type\":\"uint256\"},{\"internalType\":\"uint16\",\"name\":\"commission\",\"type\":\"uint16\"},{\"internalType\":\"uint64\",\"name\":\"last_commission_change\",\"type\":\"uint64\"},{\"internalType\":\"uint16\",\"name\":\"undelegations_count\",\"type\":\"uint16\"},{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"},{\"internalType\":\"string\",\"name\":\"description\",\"type\":\"string\"},{\"internalType\":\"string\",\"name\":\"endpoint\",\"type\":\"string\"}],\"internalType\":\"struct DposInterface.ValidatorBasicInfo\",\"name\":\"info\",\"type\":\"tuple\"}],\"internalType\":\"struct DposInterface.ValidatorData[]\",\"name\":\"validators\",\"type\":\"tuple[]\"},{\"internalType\":\"bool\",\"name\":\"end\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"},{\"internalType\":\"uint32\",\"name\":\"batch\",\"type\":\"uint32\"}],\"name\":\"getValidatorsFor\",\"outputs\":[{\"components\":[{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"},{\"components\":[{\"internalType\":\"uint256\",\"name\":\"total_stake\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"commission_reward\",\"type\":\"uint256\"},{\"internalType\":\"uint16\",\"name\":\"commission\",\"type\":\"uint16\"},{\"internalType\":\"uint64\",\"name\":\"last_commission_change\",\"type\":\"uint64\"},{\"internalType\":\"uint16\",\"name\":\"undelegations_count\",\"type\":\"uint16\"},{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"},{\"internalType\":\"string\",\"name\":\"description\",\"type\":\"string\"},{\"internalType\":\"string\",\"name\":\"endpoint\",\"type\":\"string\"}],\"internalType\":\"struct DposInterface.ValidatorBasicInfo\",\"name\":\"info\",\"type\":\"tuple\"}],\"internalType\":\"struct DposInterface.ValidatorData[]\",\"name\":\"validators\",\"type\":\"tuple[]\"},{\"internalType\":\"bool\",\"name\":\"end\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"validator\",\"type\":\"address\"}],\"name\":\"isValidatorEligible\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"validator_from\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"validator_to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"reDelegate\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"validator\",\"type\":\"address\"},{\"internalType\":\"bytes\",\"name\":\"proof\",\"type\":\"bytes\"},{\"internalType\":\"bytes\",\"name\":\"vrf_key\",\"type\":\"bytes\"},{\"internalType\":\"uint16\",\"name\":\"commission\",\"type\":\"uint16\"},{\"internalType\":\"string\",\"name\":\"description\",\"type\":\"string\"},{\"internalType\":\"string\",\"name\":\"endpoint\",\"type\":\"string\"}],\"name\":\"registerValidator\",\"outputs\":[],\"stateMutability\":\"payable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"validator\",\"type\":\"address\"},{\"internalType\":\"uint16\",\"name\":\"commission\",\"type\":\"uint16\"}],\"name\":\"setCommission\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"validator\",\"type\":\"address\"},{\"internalType\":\"string\",\"name\":\"description\",\"type\":\"string\"},{\"internalType\":\"string\",\"name\":\"endpoint\",\"type\":\"string\"}],\"name\":\"setValidatorInfo\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"validator\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"undelegate\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"validator\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"undelegateV2\",\"outputs\":[{\"internalType\":\"uint64\",\"name\":\"undelegation_id\",\"type\":\"uint64\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"}],\"devdoc\":{\"kind\":\"dev\",\"methods\":{\"getDelegations(address,uint32)\":{\"params\":{\"batch\":\"Batch number to be fetched. If the list is too big it cannot return all delegations in one call. Instead, users are fetching batches of 50 delegations at a time\",\"delegator\":\"delegator account address\"},\"returns\":{\"delegations\":\" Batch of N delegations\",\"end\":\" Flag if there are no more delegations left. To get all delegations, caller should fetch all batches until he sees end == true\"}},\"getTotalDelegation(address)\":{\"params\":{\"delegator\":\"Delegator account address\"},\"returns\":{\"total_delegation\":\"amount that was delegated\"}},\"getUndelegationV2(address,address,uint64)\":{\"params\":{\"delegator\":\"delegator account address\",\"undelegation_id\":\"undelegation id\",\"validator\":\"validator account address\"},\"returns\":{\"undelegation_v2\":\"undelegation_v2\"}},\"getUndelegations(address,uint32)\":{\"params\":{\"batch\":\"Batch number to be fetched. If the list is too big it cannot return all undelegations in one call. Instead, users are fetching batches of 50 undelegations at a time\",\"delegator\":\"delegator account address\"},\"returns\":{\"end\":\" Flag if there are no more undelegations left. To get all undelegations, caller should fetch all batches until he sees end == true\",\"undelegations\":\" Batch of N undelegations\"}},\"getUndelegationsV2(address,uint32)\":{\"params\":{\"batch\":\"Batch number to be fetched. If the list is too big it cannot return all undelegations in one call. Instead, users are fetching batches of 50 undelegations at a time\",\"delegator\":\"delegator account address\"},\"returns\":{\"end\":\" Flag if there are no more undelegations left. To get all undelegations, caller should fetch all batches until he sees end == true\",\"undelegations_v2\":\" Batch of N undelegations\"}},\"getValidatorsFor(address,uint32)\":{\"params\":{\"batch\":\"Batch number to be fetched. If the list is too big it cannot return all validators in one call. Instead, users are fetching batches of 100 account at a time\",\"owner\":\"Owner address\"},\"returns\":{\"end\":\" Flag if there are no more accounts left. To get all accounts, caller should fetch all batches until he sees end == true\",\"validators\":\" Batch of N validators basic info\"}},\"setValidatorInfo(address,string,string)\":{\"params\":{\"description\":\"New description (e.g name, short purpose description, etc...)\",\"endpoint\":\"New endpoint, might be a validator's website\"}}},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{\"claimAllRewards()\":{\"notice\":\"Claims staking rewards from all validators (limited by max dag block gas limit) that caller has delegated to\"},\"getDelegations(address,uint32)\":{\"notice\":\"Returns list of delegations for specified delegator - which validators delegator delegated to\"},\"getTotalDelegation(address)\":{\"notice\":\"Returns total delegation for specified delegator\"},\"getUndelegationV2(address,address,uint64)\":{\"notice\":\"Returns V2 undelegation for specified delegator, validator & and undelegation_id\"},\"getUndelegations(address,uint32)\":{\"notice\":\"Returns list of undelegations for specified delegator\"},\"getUndelegationsV2(address,uint32)\":{\"notice\":\"Returns list of V2 undelegations for specified delegator\"},\"getValidatorsFor(address,uint32)\":{\"notice\":\"Returns list of validators owned by an address\"},\"setValidatorInfo(address,string,string)\":{\"notice\":\"Sets some of the static validator details.\"}},\"version\":1}},\"settings\":{\"compilationTarget\":{\"dpos_contract_interface[1].sol\":\"DposInterface\"},\"evmVersion\":\"cancun\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":false,\"runs\":200},\"remappings\":[]},\"sources\":{\"dpos_contract_interface[1].sol\":{\"keccak256\":\"0x828638d5c5d7f711e638c847ee607290216252dd4ee896c06bbad899ff0cd10a\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://210a50fb5dc296f83df9b231452af382a613194354e44e6d96aab82099ef3f69\",\"dweb:/ipfs/QmTSszKa6aLBrHyfrzm1P3Sr9txw7WsJxU3dnpxArnbWuJ\"]}},\"version\":1}",
"storageLayout": {
"storage": [],
"types": null
},
"userdoc": {
"kind": "user",
"methods": {
"claimAllRewards()": {
"notice": "Claims staking rewards from all validators (limited by max dag block gas limit) that caller has delegated to"
},
"getDelegations(address,uint32)": {
"notice": "Returns list of delegations for specified delegator - which validators delegator delegated to"
},
"getTotalDelegation(address)": {
"notice": "Returns total delegation for specified delegator"
},
"getUndelegationV2(address,address,uint64)": {
"notice": "Returns V2 undelegation for specified delegator, validator & and undelegation_id"
},
"getUndelegations(address,uint32)": {
"notice": "Returns list of undelegations for specified delegator"
},
"getUndelegationsV2(address,uint32)": {
"notice": "Returns list of V2 undelegations for specified delegator"
},
"getValidatorsFor(address,uint32)": {
"notice": "Returns list of validators owned by an address"
},
"setValidatorInfo(address,string,string)": {
"notice": "Sets some of the static validator details."
}
},
"version": 1
}
}
}
},
"sources": {
"dpos_contract_interface[1].sol": {
"ast": {
"absolutePath": "dpos_contract_interface[1].sol",
"exportedSymbols": {
"DposInterface": [
368
]
},
"id": 369,
"license": "MIT",
"nodeType": "SourceUnit",
"nodes": [
{
"id": 1,
"literals": [
"solidity",
">=",
"0.8",
".0"
],
"nodeType": "PragmaDirective",
"src": "85:24:0"
},
{
"abstract": false,
"baseContracts": [],
"canonicalName": "DposInterface",
"contractDependencies": [],
"contractKind": "interface",
"fullyImplemented": false,
"id": 368,
"linearizedBaseContracts": [
368
],
"name": "DposInterface",
"nameLocation": "121:13:0",
"nodeType": "ContractDefinition",
"nodes": [
{
"anonymous": false,
"eventSelector": "e5541a6b6103d4fa7e021ed54fad39c66f27a76bd13d374cf6240ae6bd0bb72b",
"id": 9,
"name": "Delegated",
"nameLocation": "147:9:0",
"nodeType": "EventDefinition",
"parameters": {
"id": 8,
"nodeType": "ParameterList",
"parameters": [
{
"constant": false,
"id": 3,
"indexed": true,
"mutability": "mutable",
"name": "delegator",
"nameLocation": "173:9:0",
"nodeType": "VariableDeclaration",
"scope": 9,
"src": "157:25:0",
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_address",
"typeString": "address"
},
"typeName": {
"id": 2,
"name": "address",
"nodeType": "ElementaryTypeName",
"src": "157:7:0",
"stateMutability": "nonpayable",
"typeDescriptions": {
"typeIdentifier": "t_address",
"typeString": "address"
}
},
"visibility": "internal"
},
{
"constant": false,
"id": 5,
"indexed": true,
"mutability": "mutable",
"name": "validator",
"nameLocation": "200:9:0",
"nodeType": "VariableDeclaration",
"scope": 9,
"src": "184:25:0",
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_address",
"typeString": "address"
},
"typeName": {
"id": 4,
"name": "address",
"nodeType": "ElementaryTypeName",
"src": "184:7:0",
"stateMutability": "nonpayable",
"typeDescriptions": {
"typeIdentifier": "t_address",
"typeString": "address"
}
},
"visibility": "internal"
},
{
"constant": false,
"id": 7,
"indexed": false,
"mutability": "mutable",
"name": "amount",
"nameLocation": "219:6:0",
"nodeType": "VariableDeclaration",
"scope": 9,
"src": "211:14:0",
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
},
"typeName": {
"id": 6,
"name": "uint256",
"nodeType": "ElementaryTypeName",
"src": "211:7:0",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"visibility": "internal"
}
],
"src": "156:70:0"
},
"src": "141:86:0"
},
{
"anonymous": false,
"eventSelector": "4d10bd049775c77bd7f255195afba5088028ecb3c7c277d393ccff7934f2f92c",
"id": 17,
"name": "Undelegated",
"nameLocation": "238:11:0",
"nodeType": "EventDefinition",
"parameters": {
"id": 16,
"nodeType": "ParameterList",
"parameters": [
{
"constant": false,
"id": 11,
"indexed": true,
"mutability": "mutable",
"name": "delegator",
"nameLocation": "266:9:0",
"nodeType": "VariableDeclaration",
"scope": 17,
"src": "250:25:0",
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_address",
"typeString": "address"
},
"typeName": {
"id": 10,
"name": "address",
"nodeType": "ElementaryTypeName",
"src": "250:7:0",
"stateMutability": "nonpayable",
"typeDescriptions": {
"typeIdentifier": "t_address",
"typeString": "address"
}
},
"visibility": "internal"
},
{
"constant": false,
"id": 13,
"indexed": true,
"mutability": "mutable",
"name": "validator",
"nameLocation": "293:9:0",
"nodeType": "VariableDeclaration",
"scope": 17,
"src": "277:25:0",
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_address",
"typeString": "address"
},
"typeName": {
"id": 12,
"name": "address",
"nodeType": "ElementaryTypeName",
"src": "277:7:0",
"stateMutability": "nonpayable",
"typeDescriptions": {
"typeIdentifier": "t_address",
"typeString": "address"
}
},
"visibility": "internal"
},
{
"constant": false,
"id": 15,
"indexed": false,
"mutability": "mutable",
"name": "amount",
"nameLocation": "312:6:0",
"nodeType": "VariableDeclaration",
"scope": 17,
"src": "304:14:0",
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
},
"typeName": {
"id": 14,
"name": "uint256",
"nodeType": "ElementaryTypeName",
"src": "304:7:0",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"visibility": "internal"
}
],
"src": "249:70:0"
},
"src": "232:88:0"
},
{
"anonymous": false,
"eventSelector": "f8bef3a6fe3b4c932b5b51c6472a89f171d039f4bacf18cff632208938bf0426",
"id": 25,
"name": "UndelegateConfirmed",
"nameLocation": "331:19:0",
"nodeType": "EventDefinition",
"parameters": {
"id": 24,
"nodeType": "ParameterList",
"parameters": [
{
"constant": false,
"id": 19,
"indexed": true,
"mutability": "mutable",
"name": "delegator",
"nameLocation": "367:9:0",
"nodeType": "VariableDeclaration",
"scope": 25,
"src": "351:25:0",
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_address",
"typeString": "address"
},
"typeName": {
"id": 18,
"name": "address",
"nodeType": "ElementaryTypeName",
"src": "351:7:0",
"stateMutability": "nonpayable",
"typeDescriptions": {
"typeIdentifier": "t_address",
"typeString": "address"
}
},
"visibility": "internal"
},
{
"constant": false,
"id": 21,
"indexed": true,
"mutability": "mutable",
"name": "validator",
"nameLocation": "394:9:0",
"nodeType": "VariableDeclaration",
"scope": 25,
"src": "378:25:0",
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_address",
"typeString": "address"
},
"typeName": {
"id": 20,
"name": "address",
"nodeType": "ElementaryTypeName",
"src": "378:7:0",
"stateMutability": "nonpayable",
"typeDescriptions": {
"typeIdentifier": "t_address",
"typeString": "address"
}
},
"visibility": "internal"
},
{
"constant": false,
"id": 23,
"indexed": false,
"mutability": "mutable",
"name": "amount",
"nameLocation": "413:6:0",
"nodeType": "VariableDeclaration",
"scope": 25,
"src": "405:14:0",
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
},
"typeName": {
"id": 22,
"name": "uint256",
"nodeType": "ElementaryTypeName",
"src": "405:7:0",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"visibility": "internal"
}
],
"src": "350:70:0"
},
"src": "325:96:0"
},
{
"anonymous": false,
"eventSelector": "fc25f8a919d19f2c2dfce21115718abc9ef2b1e0c9218a488f614c75be4184b7",
"id": 33,
"name": "UndelegateCanceled",
"nameLocation": "432:18:0",
"nodeType": "EventDefinition",
"parameters": {
"id": 32,
"nodeType": "ParameterList",
"parameters": [
{
"constant": false,
"id": 27,
"indexed": true,
"mutability": "mutable",
"name": "delegator",
"nameLocation": "467:9:0",
"nodeType": "VariableDeclaration",
"scope": 33,
"src": "451:25:0",
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_address",
"typeString": "address"
},
"typeName": {
"id": 26,
"name": "address",
"nodeType": "ElementaryTypeName",
"src": "451:7:0",
"stateMutability": "nonpayable",
"typeDescriptions": {
"typeIdentifier": "t_address",
"typeString": "address"
}
},
"visibility": "internal"
},
{
"constant": false,
"id": 29,
"indexed": true,
"mutability": "mutable",
"name": "validator",
"nameLocation": "494:9:0",
"nodeType": "VariableDeclaration",
"scope": 33,
"src": "478:25:0",
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_address",
"typeString": "address"
},
"typeName": {
"id": 28,
"name": "address",
"nodeType": "ElementaryTypeName",
"src": "478:7:0",
"stateMutability": "nonpayable",
"typeDescriptions": {
"typeIdentifier": "t_address",
"typeString": "address"
}
},
"visibility": "internal"
},
{
"constant": false,
"id": 31,
"indexed": false,
"mutability": "mutable",
"name": "amount",
"nameLocation": "513:6:0",
"nodeType": "VariableDeclaration",
"scope": 33,
"src": "505:14:0",
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
},
"typeName": {
"id": 30,
"name": "uint256",
"nodeType": "ElementaryTypeName",
"src": "505:7:0",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"visibility": "internal"
}
],
"src": "450:70:0"
},
"src": "426:95:0"
},
{
"anonymous": false,
"eventSelector": "cfe7d712cc67daf9a8d00e8cca5881948bc528988fc31a071effa1dbe6dc91ef",
"id": 43,
"name": "UndelegatedV2",
"nameLocation": "532:13:0",
"nodeType": "EventDefinition",
"parameters": {
"id": 42,
"nodeType": "ParameterList",
"parameters": [
{
"constant": false,
"id": 35,
"indexed": true,
"mutability": "mutable",
"name": "delegator",
"nameLocation": "562:9:0",
"nodeType": "VariableDeclaration",
"scope": 43,
"src": "546:25:0",
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_address",
"typeString": "address"
},
"typeName": {
"id": 34,
"name": "address",
"nodeType": "ElementaryTypeName",
"src": "546:7:0",
"stateMutability": "nonpayable",
"typeDescriptions": {
"typeIdentifier": "t_address",
"typeString": "address"
}
},
"visibility": "internal"
},
{
"constant": false,
"id": 37,
"indexed": true,
"mutability": "mutable",
"name": "validator",
"nameLocation": "589:9:0",
"nodeType": "VariableDeclaration",
"scope": 43,
"src": "573:25:0",
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_address",
"typeString": "address"
},
"typeName": {
"id": 36,
"name": "address",
"nodeType": "ElementaryTypeName",
"src": "573:7:0",
"stateMutability": "nonpayable",
"typeDescriptions": {
"typeIdentifier": "t_address",
"typeString": "address"
}
},
"visibility": "internal"
},
{
"constant": false,
"id": 39,
"indexed": true,
"mutability": "mutable",
"name": "undelegation_id",
"nameLocation": "615:15:0",
"nodeType": "VariableDeclaration",
"scope": 43,
"src": "600:30:0",
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_uint64",
"typeString": "uint64"
},
"typeName": {
"id": 38,
"name": "uint64",
"nodeType": "ElementaryTypeName",
"src": "600:6:0",
"typeDescriptions": {
"typeIdentifier": "t_uint64",
"typeString": "uint64"
}
},
"visibility": "internal"
},
{
"constant": false,
"id": 41,
"indexed": false,
"mutability": "mutable",
"name": "amount",
"nameLocation": "640:6:0",
"nodeType": "VariableDeclaration",
"scope": 43,
"src": "632:14:0",
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
},
"typeName": {
"id": 40,
"name": "uint256",
"nodeType": "ElementaryTypeName",
"src": "632:7:0",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"visibility": "internal"
}
],
"src": "545:102:0"
},
"src": "526:122:0"
},
{
"anonymous": false,
"eventSelector": "a637e566d82568efa4bd8c588e17232aee483873fa17fb873f6d398ba85ed57c",
"id": 53,
"name": "UndelegateConfirmedV2",
"nameLocation": "659:21:0",
"nodeType": "EventDefinition",
"parameters": {
"id": 52,
"nodeType": "ParameterList",
"parameters": [
{
"constant": false,
"id": 45,
"indexed": true,
"mutability": "mutable",
"name": "delegator",
"nameLocation": "697:9:0",
"nodeType": "VariableDeclaration",
"scope": 53,
"src": "681:25:0",
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_address",
"typeString": "address"
},
"typeName": {
"id": 44,
"name": "address",
"nodeType": "ElementaryTypeName",
"src": "681:7:0",
"stateMutability": "nonpayable",
"typeDescriptions": {
"typeIdentifier": "t_address",
"typeString": "address"
}
},
"visibility": "internal"
},
{
"constant": false,
"id": 47,
"indexed": true,
"mutability": "mutable",
"name": "validator",
"nameLocation": "724:9:0",
"nodeType": "VariableDeclaration",
"scope": 53,
"src": "708:25:0",
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_address",
"typeString": "address"
},
"typeName": {
"id": 46,
"name": "address",
"nodeType": "ElementaryTypeName",
"src": "708:7:0",
"stateMutability": "nonpayable",
"typeDescriptions": {
"typeIdentifier": "t_address",
"typeString": "address"
}
},
"visibility": "internal"
},
{
"constant": false,
"id": 49,
"indexed": true,
"mutability": "mutable",
"name": "undelegation_id",
"nameLocation": "750:15:0",
"nodeType": "VariableDeclaration",
"scope": 53,
"src": "735:30:0",
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_uint64",
"typeString": "uint64"
},
"typeName": {
"id": 48,
"name": "uint64",
"nodeType": "ElementaryTypeName",
"src": "735:6:0",
"typeDescriptions": {
"typeIdentifier": "t_uint64",
"typeString": "uint64"
}
},
"visibility": "internal"
},
{
"constant": false,
"id": 51,
"indexed": false,
"mutability": "mutable",
"name": "amount",
"nameLocation": "775:6:0",
"nodeType": "VariableDeclaration",
"scope": 53,
"src": "767:14:0",
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
},
"typeName": {
"id": 50,
"name": "uint256",
"nodeType": "ElementaryTypeName",
"src": "767:7:0",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"visibility": "internal"
}
],
"src": "680:102:0"
},
"src": "653:130:0"
},
{
"anonymous": false,
"eventSelector": "e0474558d9b6ee7a45f2d6d12effd21909b53360eb73eda6cf0f197031738fee",
"id": 63,
"name": "UndelegateCanceledV2",
"nameLocation": "794:20:0",
"nodeType": "EventDefinition",
"parameters": {
"id": 62,
"nodeType": "ParameterList",
"parameters": [
{
"constant": false,
"id": 55,
"indexed": true,
"mutability": "mutable",
"name": "delegator",
"nameLocation": "831:9:0",
"nodeType": "VariableDeclaration",
"scope": 63,
"src": "815:25:0",
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_address",
"typeString": "address"
},
"typeName": {
"id": 54,
"name": "address",
"nodeType": "ElementaryTypeName",
"src": "815:7:0",
"stateMutability": "nonpayable",
"typeDescriptions": {
"typeIdentifier": "t_address",
"typeString": "address"
}
},
"visibility": "internal"
},
{
"constant": false,
"id": 57,
"indexed": true,
"mutability": "mutable",
"name": "validator",
"nameLocation": "858:9:0",
"nodeType": "VariableDeclaration",
"scope": 63,
"src": "842:25:0",
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_address",
"typeString": "address"
},
"typeName": {
"id": 56,
"name": "address",
"nodeType": "ElementaryTypeName",
"src": "842:7:0",
"stateMutability": "nonpayable",
"typeDescriptions": {
"typeIdentifier": "t_address",
"typeString": "address"
}
},
"visibility": "internal"
},
{
"constant": false,
"id": 59,
"indexed": true,
"mutability": "mutable",
"name": "undelegation_id",
"nameLocation": "884:15:0",
"nodeType": "VariableDeclaration",
"scope": 63,
"src": "869:30:0",
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_uint64",
"typeString": "uint64"
},
"typeName": {
"id": 58,
"name": "uint64",
"nodeType": "ElementaryTypeName",
"src": "869:6:0",
"typeDescriptions": {
"typeIdentifier": "t_uint64",
"typeString": "uint64"
}
},
"visibility": "internal"
},
{
"constant": false,
"id": 61,
"indexed": false,
"mutability": "mutable",
"name": "amount",
"nameLocation": "909:6:0",
"nodeType": "VariableDeclaration",
"scope": 63,
"src": "901:14:0",
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
},
"typeName": {
"id": 60,
"name": "uint256",
"nodeType": "ElementaryTypeName",
"src": "901:7:0",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"visibility": "internal"
}
],
"src": "814:102:0"
},
"src": "788:129:0"
},
{
"anonymous": false,
"eventSelector": "12e144c27d0bad08abc77c66a640b5cf15a03a93f6582f40de6932b033a5fa5e",
"id": 73,
"name": "Redelegated",
"nameLocation": "928:11:0",
"nodeType": "EventDefinition",
"parameters": {
"id": 72,
"nodeType": "ParameterList",
"parameters": [
{
"constant": false,
"id": 65,
"indexed": true,
"mutability": "mutable",
"name": "delegator",
"nameLocation": "956:9:0",
"nodeType": "VariableDeclaration",
"scope": 73,
"src": "940:25:0",
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_address",
"typeString": "address"
},
"typeName": {
"id": 64,
"name": "address",
"nodeType": "ElementaryTypeName",
"src": "940:7:0",
"stateMutability": "nonpayable",
"typeDescriptions": {
"typeIdentifier": "t_address",
"typeString": "address"
}
},
"visibility": "internal"
},
{
"constant": false,
"id": 67,
"indexed": true,
"mutability": "mutable",
"name": "from",
"nameLocation": "983:4:0",
"nodeType": "VariableDeclaration",
"scope": 73,
"src": "967:20:0",
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_address",
"typeString": "address"
},
"typeName": {
"id": 66,
"name": "address",
"nodeType": "ElementaryTypeName",
"src": "967:7:0",
"stateMutability": "nonpayable",
"typeDescriptions": {
"typeIdentifier": "t_address",
"typeString": "address"
}
},
"visibility": "internal"
},
{
"constant": false,
"id": 69,
"indexed": true,
"mutability": "mutable",
"name": "to",
"nameLocation": "1005:2:0",
"nodeType": "VariableDeclaration",
"scope": 73,
"src": "989:18:0",
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_address",
"typeString": "address"
},
"typeName": {
"id": 68,
"name": "address",
"nodeType": "ElementaryTypeName",
"src": "989:7:0",
"stateMutability": "nonpayable",
"typeDescriptions": {
"typeIdentifier": "t_address",
"typeString": "address"
}
},
"visibility": "internal"
},
{
"constant": false,
"id": 71,
"indexed": false,
"mutability": "mutable",
"name": "amount",
"nameLocation": "1017:6:0",
"nodeType": "VariableDeclaration",
"scope": 73,
"src": "1009:14:0",
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
},
"typeName": {
"id": 70,
"name": "uint256",
"nodeType": "ElementaryTypeName",
"src": "1009:7:0",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"visibility": "internal"
}
],
"src": "939:85:0"
},
"src": "922:103:0"
},
{
"anonymous": false,
"eventSelector": "9310ccfcb8de723f578a9e4282ea9f521f05ae40dc08f3068dfad528a65ee3c7",
"id": 81,
"name": "RewardsClaimed",
"nameLocation": "1036:14:0",
"nodeType": "EventDefinition",
"parameters": {
"id": 80,
"nodeType": "ParameterList",
"parameters": [
{
"constant": false,
"id": 75,
"indexed": true,
"mutability": "mutable",
"name": "account",
"nameLocation": "1067:7:0",
"nodeType": "VariableDeclaration",
"scope": 81,
"src": "1051:23:0",
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_address",
"typeString": "address"
},
"typeName": {
"id": 74,
"name": "address",
"nodeType": "ElementaryTypeName",
"src": "1051:7:0",
"stateMutability": "nonpayable",
"typeDescriptions": {
"typeIdentifier": "t_address",
"typeString": "address"
}
},
"visibility": "internal"
},
{
"constant": false,
"id": 77,
"indexed": true,
"mutability": "mutable",
"name": "validator",
"nameLocation": "1092:9:0",
"nodeType": "VariableDeclaration",
"scope": 81,
"src": "1076:25:0",
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_address",
"typeString": "address"
},
"typeName": {
"id": 76,
"name": "address",
"nodeType": "ElementaryTypeName",
"src": "1076:7:0",
"stateMutability": "nonpayable",
"typeDescriptions": {
"typeIdentifier": "t_address",
"typeString": "address"
}
},
"visibility": "internal"
},
{
"constant": false,
"id": 79,
"indexed": false,
"mutability": "mutable",
"name": "amount",
"nameLocation": "1111:6:0",
"nodeType": "VariableDeclaration",
"scope": 81,
"src": "1103:14:0",
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
},
"typeName": {
"id": 78,
"name": "uint256",
"nodeType": "ElementaryTypeName",
"src": "1103:7:0",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"visibility": "internal"
}
],
"src": "1050:68:0"
},
"src": "1030:89:0"
},
{
"anonymous": false,
"eventSelector": "f0ec9e0f6add850a1738c5822244e26ffc3d1f14da7537aa240582b25af12ad0",
"id": 89,
"name": "CommissionRewardsClaimed",
"nameLocation": "1130:24:0",
"nodeType": "EventDefinition",
"parameters": {
"id": 88,
"nodeType": "ParameterList",
"parameters": [
{
"constant": false,
"id": 83,
"indexed": true,
"mutability": "mutable",
"name": "account",
"nameLocation": "1171:7:0",
"nodeType": "VariableDeclaration",
"scope": 89,
"src": "1155:23:0",
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_address",
"typeString": "address"
},
"typeName": {
"id": 82,
"name": "address",
"nodeType": "ElementaryTypeName",
"src": "1155:7:0",
"stateMutability": "nonpayable",
"typeDescriptions": {
"typeIdentifier": "t_address",
"typeString": "address"
}
},
"visibility": "internal"
},
{
"constant": false,
"id": 85,
"indexed": true,
"mutability": "mutable",
"name": "validator",
"nameLocation": "1196:9:0",
"nodeType": "VariableDeclaration",
"scope": 89,
"src": "1180:25:0",
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_address",
"typeString": "address"
},
"typeName": {
"id": 84,
"name": "address",
"nodeType": "ElementaryTypeName",
"src": "1180:7:0",
"stateMutability": "nonpayable",
"typeDescriptions": {
"typeIdentifier": "t_address",
"typeString": "address"
}
},
"visibility": "internal"
},
{
"constant": false,
"id": 87,
"indexed": false,
"mutability": "mutable",
"name": "amount",
"nameLocation": "1215:6:0",
"nodeType": "VariableDeclaration",
"scope": 89,
"src": "1207:14:0",
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
},
"typeName": {
"id": 86,
"name": "uint256",
"nodeType": "ElementaryTypeName",
"src": "1207:7:0",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"visibility": "internal"
}
],
"src": "1154:68:0"
},
"src": "1124:99:0"
},
{
"anonymous": false,
"eventSelector": "c909daf778d180f43dac53b55d0de934d2f1e0b70412ca274982e4e6e894eb1a",
"id": 95,
"name": "CommissionSet",
"nameLocation": "1234:13:0",
"nodeType": "EventDefinition",
"parameters": {
"id": 94,
"nodeType": "ParameterList",
"parameters": [
{
"constant": false,
"id": 91,
"indexed": true,
"mutability": "mutable",
"name": "validator",
"nameLocation": "1264:9:0",
"nodeType": "VariableDeclaration",
"scope": 95,
"src": "1248:25:0",
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_address",
"typeString": "address"
},
"typeName": {
"id": 90,
"name": "address",
"nodeType": "ElementaryTypeName",
"src": "1248:7:0",
"stateMutability": "nonpayable",
"typeDescriptions": {
"typeIdentifier": "t_address",
"typeString": "address"
}
},
"visibility": "internal"
},
{
"constant": false,
"id": 93,
"indexed": false,
"mutability": "mutable",
"name": "commission",
"nameLocation": "1282:10:0",
"nodeType": "VariableDeclaration",
"scope": 95,
"src": "1275:17:0",
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_uint16",
"typeString": "uint16"
},
"typeName": {
"id": 92,
"name": "uint16",
"nodeType": "ElementaryTypeName",
"src": "1275:6:0",
"typeDescriptions": {
"typeIdentifier": "t_uint16",
"typeString": "uint16"
}
},
"visibility": "internal"
}
],
"src": "1247:46:0"
},
"src": "1228:66:0"
},
{
"anonymous": false,
"eventSelector": "d09501348473474a20c772c79c653e1fd7e8b437e418fe235d277d2c88853251",
"id": 99,
"name": "ValidatorRegistered",
"nameLocation": "1305:19:0",
"nodeType": "EventDefinition",
"parameters": {
"id": 98,
"nodeType": "ParameterList",
"parameters": [
{
"constant": false,
"id": 97,
"indexed": true,
"mutability": "mutable",
"name": "validator",
"nameLocation": "1341:9:0",
"nodeType": "VariableDeclaration",
"scope": 99,
"src": "1325:25:0",
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_address",
"typeString": "address"
},
"typeName": {
"id": 96,
"name": "address",
"nodeType": "ElementaryTypeName",
"src": "1325:7:0",
"stateMutability": "nonpayable",
"typeDescriptions": {
"typeIdentifier": "t_address",
"typeString": "address"
}
},
"visibility": "internal"
}
],
"src": "1324:27:0"
},
"src": "1299:53:0"
},
{
"anonymous": false,
"eventSelector": "7aa20e1f59764c9066578febd688a51375adbd654aff86cef56593a17a99071d",
"id": 103,
"name": "ValidatorInfoSet",
"nameLocation": "1363:16:0",
"nodeType": "EventDefinition",
"parameters": {
"id": 102,
"nodeType": "ParameterList",
"parameters": [
{
"constant": false,
"id": 101,
"indexed": true,
"mutability": "mutable",
"name": "validator",
"nameLocation": "1396:9:0",
"nodeType": "VariableDeclaration",
"scope": 103,
"src": "1380:25:0",
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_address",
"typeString": "address"
},
"typeName": {
"id": 100,
"name": "address",
"nodeType": "ElementaryTypeName",
"src": "1380:7:0",
"stateMutability": "nonpayable",
"typeDescriptions": {
"typeIdentifier": "t_address",
"typeString": "address"
}
},
"visibility": "internal"
}
],
"src": "1379:27:0"
},
"src": "1357:50:0"
},
{
"canonicalName": "DposInterface.ValidatorBasicInfo",
"id": 120,
"members": [
{
"constant": false,
"id": 105,
"mutability": "mutable",
"name": "total_stake",
"nameLocation": "1518:11:0",
"nodeType": "VariableDeclaration",
"scope": 120,
"src": "1510:19:0",
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
},
"typeName": {
"id": 104,
"name": "uint256",
"nodeType": "ElementaryTypeName",
"src": "1510:7:0",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"visibility": "internal"
},
{
"constant": false,
"id": 107,
"mutability": "mutable",
"name": "commission_reward",
"nameLocation": "1612:17:0",
"nodeType": "VariableDeclaration",
"scope": 120,
"src": "1604:25:0",
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
},
"typeName": {
"id": 106,
"name": "uint256",
"nodeType": "ElementaryTypeName",
"src": "1604:7:0",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"visibility": "internal"
},
{
"constant": false,
"id": 109,
"mutability": "mutable",
"name": "commission",
"nameLocation": "1721:10:0",
"nodeType": "VariableDeclaration",
"scope": 120,
"src": "1714:17:0",
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_uint16",
"typeString": "uint16"
},
"typeName": {
"id": 108,
"name": "uint16",
"nodeType": "ElementaryTypeName",
"src": "1714:6:0",
"typeDescriptions": {
"typeIdentifier": "t_uint16",
"typeString": "uint16"
}
},
"visibility": "internal"
},
{
"constant": false,
"id": 111,
"mutability": "mutable",
"name": "last_commission_change",
"nameLocation": "1798:22:0",
"nodeType": "VariableDeclaration",
"scope": 120,
"src": "1791:29:0",
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_uint64",
"typeString": "uint64"
},
"typeName": {
"id": 110,
"name": "uint64",
"nodeType": "ElementaryTypeName",
"src": "1791:6:0",
"typeDescriptions": {
"typeIdentifier": "t_uint64",
"typeString": "uint64"
}
},
"visibility": "internal"
},
{
"constant": false,
"id": 113,
"mutability": "mutable",
"name": "undelegations_count",
"nameLocation": "1899:19:0",
"nodeType": "VariableDeclaration",
"scope": 120,
"src": "1892:26:0",
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_uint16",
"typeString": "uint16"
},
"typeName": {
"id": 112,
"name": "uint16",
"nodeType": "ElementaryTypeName",
"src": "1892:6:0",
"typeDescriptions": {
"typeIdentifier": "t_uint16",
"typeString": "uint16"
}
},
"visibility": "internal"
},
{
"constant": false,
"id": 115,
"mutability": "mutable",
"name": "owner",
"nameLocation": "1973:5:0",
"nodeType": "VariableDeclaration",
"scope": 120,
"src": "1965:13:0",
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_address",
"typeString": "address"
},
"typeName": {
"id": 114,
"name": "address",
"nodeType": "ElementaryTypeName",
"src": "1965:7:0",
"stateMutability": "nonpayable",
"typeDescriptions": {
"typeIdentifier": "t_address",
"typeString": "address"
}
},
"visibility": "internal"
},
{
"constant": false,
"id": 117,
"mutability": "mutable",
"name": "description",
"nameLocation": "2034:11:0",
"nodeType": "VariableDeclaration",
"scope": 120,
"src": "2027:18:0",
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_string_storage_ptr",
"typeString": "string"
},
"typeName": {
"id": 116,
"name": "string",
"nodeType": "ElementaryTypeName",
"src": "2027:6:0",
"typeDescriptions": {
"typeIdentifier": "t_string_storage_ptr",
"typeString": "string"
}
},
"visibility": "internal"
},
{
"constant": false,
"id": 119,
"mutability": "mutable",
"name": "endpoint",
"nameLocation": "2101:8:0",
"nodeType": "VariableDeclaration",
"scope": 120,
"src": "2094:15:0",
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_string_storage_ptr",
"typeString": "string"
},
"typeName": {
"id": 118,
"name": "string",
"nodeType": "ElementaryTypeName",
"src": "2094:6:0",
"typeDescriptions": {
"typeIdentifier": "t_string_storage_ptr",
"typeString": "string"
}
},
"visibility": "internal"
}
],
"name": "ValidatorBasicInfo",
"nameLocation": "1420:18:0",
"nodeType": "StructDefinition",
"scope": 368,
"src": "1413:703:0",
"visibility": "public"
},
{
"canonicalName": "DposInterface.ValidatorData",
"id": 126,
"members": [
{
"constant": false,
"id": 122,
"mutability": "mutable",
"name": "account",
"nameLocation": "2205:7:0",
"nodeType": "VariableDeclaration",
"scope": 126,
"src": "2197:15:0",
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_address",
"typeString": "address"
},
"typeName": {
"id": 121,
"name": "address",
"nodeType": "ElementaryTypeName",
"src": "2197:7:0",
"stateMutability": "nonpayable",
"typeDescriptions": {
"typeIdentifier": "t_address",
"typeString": "address"
}
},
"visibility": "internal"
},
{
"constant": false,
"id": 125,
"mutability": "mutable",
"name": "info",
"nameLocation": "2241:4:0",
"nodeType": "VariableDeclaration",
"scope": 126,
"src": "2222:23:0",
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_struct$_ValidatorBasicInfo_$120_storage_ptr",
"typeString": "struct DposInterface.ValidatorBasicInfo"
},
"typeName": {
"id": 124,
"nodeType": "UserDefinedTypeName",
"pathNode": {
"id": 123,
"name": "ValidatorBasicInfo",
"nameLocations": [
"2222:18:0"
],
"nodeType": "IdentifierPath",
"referencedDeclaration": 120,
"src": "2222:18:0"
},
"referencedDeclaration": 120,
"src": "2222:18:0",
"typeDescriptions": {
"typeIdentifier": "t_struct$_ValidatorBasicInfo_$120_storage_ptr",
"typeString": "struct DposInterface.ValidatorBasicInfo"
}
},
"visibility": "internal"
}
],
"name": "ValidatorData",
"nameLocation": "2173:13:0",
"nodeType": "StructDefinition",
"scope": 368,
"src": "2166:86:0",
"visibility": "public"
},
{
"canonicalName": "DposInterface.DelegatorInfo",
"id": 131,
"members": [
{
"constant": false,
"id": 128,
"mutability": "mutable",
"name": "stake",
"nameLocation": "2364:5:0",
"nodeType": "VariableDeclaration",
"scope": 131,
"src": "2356:13:0",
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
},
"typeName": {
"id": 127,
"name": "uint256",
"nodeType": "ElementaryTypeName",
"src": "2356:7:0",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"visibility": "internal"
},
{
"constant": false,
"id": 130,
"mutability": "mutable",
"name": "rewards",
"nameLocation": "2434:7:0",
"nodeType": "VariableDeclaration",
"scope": 131,
"src": "2426:15:0",
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
},
"typeName": {
"id": 129,
"name": "uint256",
"nodeType": "ElementaryTypeName",
"src": "2426:7:0",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"visibility": "internal"
}
],
"name": "DelegatorInfo",
"nameLocation": "2287:13:0",
"nodeType": "StructDefinition",
"scope": 368,
"src": "2280:168:0",
"visibility": "public"
},
{
"canonicalName": "DposInterface.DelegationData",
"id": 137,
"members": [
{
"constant": false,
"id": 133,
"mutability": "mutable",
"name": "account",
"nameLocation": "2657:7:0",
"nodeType": "VariableDeclaration",
"scope": 137,
"src": "2649:15:0",
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_address",
"typeString": "address"
},
"typeName": {
"id": 132,
"name": "address",
"nodeType": "ElementaryTypeName",
"src": "2649:7:0",
"stateMutability": "nonpayable",
"typeDescriptions": {
"typeIdentifier": "t_address",
"typeString": "address"
}
},
"visibility": "internal"
},
{
"constant": false,
"id": 136,
"mutability": "mutable",
"name": "delegation",
"nameLocation": "2715:10:0",
"nodeType": "VariableDeclaration",
"scope": 137,
"src": "2701:24:0",
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_struct$_DelegatorInfo_$131_storage_ptr",
"typeString": "struct DposInterface.DelegatorInfo"
},
"typeName": {
"id": 135,
"nodeType": "UserDefinedTypeName",
"pathNode": {
"id": 134,
"name": "DelegatorInfo",
"nameLocations": [
"2701:13:0"
],
"nodeType": "IdentifierPath",
"referencedDeclaration": 131,
"src": "2701:13:0"
},
"referencedDeclaration": 131,
"src": "2701:13:0",
"typeDescriptions": {
"typeIdentifier": "t_struct$_DelegatorInfo_$131_storage_ptr",
"typeString": "struct DposInterface.DelegatorInfo"
}
},
"visibility": "internal"
}
],
"name": "DelegationData",
"nameLocation": "2506:14:0",
"nodeType": "StructDefinition",
"scope": 368,
"src": "2499:233:0",
"visibility": "public"
},
{
"canonicalName": "DposInterface.UndelegationData",
"id": 146,
"members": [
{
"constant": false,
"id": 139,
"mutability": "mutable",
"name": "stake",
"nameLocation": "2872:5:0",
"nodeType": "VariableDeclaration",
"scope": 146,
"src": "2864:13:0",
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
},
"typeName": {
"id": 138,
"name": "uint256",
"nodeType": "ElementaryTypeName",
"src": "2864:7:0",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"visibility": "internal"
},
{
"constant": false,
"id": 141,
"mutability": "mutable",
"name": "block",
"nameLocation": "2943:5:0",
"nodeType": "VariableDeclaration",
"scope": 146,
"src": "2936:12:0",
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_uint64",
"typeString": "uint64"
},
"typeName": {
"id": 140,
"name": "uint64",
"nodeType": "ElementaryTypeName",
"src": "2936:6:0",
"typeDescriptions": {
"typeIdentifier": "t_uint64",
"typeString": "uint64"
}
},
"visibility": "internal"
},
{
"constant": false,
"id": 143,
"mutability": "mutable",
"name": "validator",
"nameLocation": "2995:9:0",
"nodeType": "VariableDeclaration",
"scope": 146,
"src": "2987:17:0",
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_address",
"typeString": "address"
},
"typeName": {
"id": 142,
"name": "address",
"nodeType": "ElementaryTypeName",
"src": "2987:7:0",
"stateMutability": "nonpayable",
"typeDescriptions": {
"typeIdentifier": "t_address",
"typeString": "address"
}
},
"visibility": "internal"
},
{
"constant": false,
"id": 145,
"mutability": "mutable",
"name": "validator_exists",
"nameLocation": "3139:16:0",
"nodeType": "VariableDeclaration",
"scope": 146,
"src": "3134:21:0",
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_bool",
"typeString": "bool"
},
"typeName": {
"id": 144,
"name": "bool",
"nodeType": "ElementaryTypeName",
"src": "3134:4:0",
"typeDescriptions": {
"typeIdentifier": "t_bool",
"typeString": "bool"
}
},
"visibility": "internal"
}
],
"name": "UndelegationData",
"nameLocation": "2792:16:0",
"nodeType": "StructDefinition",
"scope": 368,
"src": "2785:377:0",
"visibility": "public"
},
{
"canonicalName": "DposInterface.UndelegationV2Data",
"id": 152,
"members": [
{
"constant": false,
"id": 149,
"mutability": "mutable",
"name": "undelegation_data",
"nameLocation": "3299:17:0",
"nodeType": "VariableDeclaration",
"scope": 152,
"src": "3282:34:0",
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_struct$_UndelegationData_$146_storage_ptr",
"typeString": "struct DposInterface.UndelegationData"
},
"typeName": {
"id": 148,
"nodeType": "UserDefinedTypeName",
"pathNode": {
"id": 147,
"name": "UndelegationData",
"nameLocations": [
"3282:16:0"
],
"nodeType": "IdentifierPath",
"referencedDeclaration": 146,
"src": "3282:16:0"
},
"referencedDeclaration": 146,
"src": "3282:16:0",
"typeDescriptions": {
"typeIdentifier": "t_struct$_UndelegationData_$146_storage_ptr",
"typeString": "struct DposInterface.UndelegationData"
}
},
"visibility": "internal"
},
{
"constant": false,
"id": 151,
"mutability": "mutable",
"name": "undelegation_id",
"nameLocation": "3360:15:0",
"nodeType": "VariableDeclaration",
"scope": 152,
"src": "3353:22:0",
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_uint64",
"typeString": "uint64"
},
"typeName": {
"id": 150,
"name": "uint64",
"nodeType": "ElementaryTypeName",
"src": "3353:6:0",
"typeDescriptions": {
"typeIdentifier": "t_uint64",
"typeString": "uint64"
}
},
"visibility": "internal"
}
],
"name": "UndelegationV2Data",
"nameLocation": "3224:18:0",
"nodeType": "StructDefinition",
"scope": 368,
"src": "3217:165:0",
"visibility": "public"
},
{
"functionSelector": "5c19a95c",
"id": 157,
"implemented": false,
"kind": "function",
"modifiers": [],
"name": "delegate",
"nameLocation": "3444:8:0",
"nodeType": "FunctionDefinition",
"parameters": {
"id": 155,
"nodeType": "ParameterList",
"parameters": [
{
"constant": false,
"id": 154,
"mutability": "mutable",
"name": "validator",
"nameLocation": "3461:9:0",
"nodeType": "VariableDeclaration",
"scope": 157,
"src": "3453:17:0",
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_address",
"typeString": "address"
},
"typeName": {
"id": 153,
"name": "address",
"nodeType": "ElementaryTypeName",
"src": "3453:7:0",
"stateMutability": "nonpayable",
"typeDescriptions": {
"typeIdentifier": "t_address",
"typeString": "address"
}
},
"visibility": "internal"
}
],
"src": "3452:19:0"
},
"returnParameters": {
"id": 156,
"nodeType": "ParameterList",
"parameters": [],
"src": "3488:0:0"
},
"scope": 368,
"src": "3435:54:0",
"stateMutability": "payable",
"virtual": false,
"visibility": "external"
},
{
"functionSelector": "4d99dd16",
"id": 164,
"implemented": false,
"kind": "function",
"modifiers": [],
"name": "undelegate",
"nameLocation": "3669:10:0",
"nodeType": "FunctionDefinition",
"parameters": {
"id": 162,
"nodeType": "ParameterList",
"parameters": [
{
"constant": false,
"id": 159,
"mutability": "mutable",
"name": "validator",
"nameLocation": "3688:9:0",
"nodeType": "VariableDeclaration",
"scope": 164,
"src": "3680:17:0",
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_address",
"typeString": "address"
},
"typeName": {
"id": 158,
"name": "address",
"nodeType": "ElementaryTypeName",
"src": "3680:7:0",
"stateMutability": "nonpayable",
"typeDescriptions": {
"typeIdentifier": "t_address",
"typeString": "address"
}
},
"visibility": "internal"
},
{
"constant": false,
"id": 161,
"mutability": "mutable",
"name": "amount",
"nameLocation": "3707:6:0",
"nodeType": "VariableDeclaration",
"scope": 164,
"src": "3699:14:0",
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
},
"typeName": {
"id": 160,
"name": "uint256",
"nodeType": "ElementaryTypeName",
"src": "3699:7:0",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"visibility": "internal"
}
],
"src": "3679:35:0"
},
"returnParameters": {
"id": 163,
"nodeType": "ParameterList",
"parameters": [],
"src": "3723:0:0"
},
"scope": 368,
"src": "3660:64:0",
"stateMutability": "nonpayable",
"virtual": false,
"visibility": "external"
},
{
"functionSelector": "bd0e7fcc",
"id": 173,
"implemented": false,
"kind": "function",
"modifiers": [],
"name": "undelegateV2",
"nameLocation": "3882:12:0",
"nodeType": "FunctionDefinition",
"parameters": {
"id": 169,
"nodeType": "ParameterList",
"parameters": [
{
"constant": false,
"id": 166,
"mutability": "mutable",
"name": "validator",
"nameLocation": "3903:9:0",
"nodeType": "VariableDeclaration",
"scope": 173,
"src": "3895:17:0",
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_address",
"typeString": "address"
},
"typeName": {
"id": 165,
"name": "address",
"nodeType": "ElementaryTypeName",
"src": "3895:7:0",
"stateMutability": "nonpayable",
"typeDescriptions": {
"typeIdentifier": "t_address",
"typeString": "address"
}
},
"visibility": "internal"
},
{
"constant": false,
"id": 168,
"mutability": "mutable",
"name": "amount",
"nameLocation": "3922:6:0",
"nodeType": "VariableDeclaration",
"scope": 173,
"src": "3914:14:0",
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
},
"typeName": {
"id": 167,
"name": "uint256",
"nodeType": "ElementaryTypeName",
"src": "3914:7:0",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"visibility": "internal"
}
],
"src": "3894:35:0"
},
"returnParameters": {
"id": 172,
"nodeType": "ParameterList",
"parameters": [
{
"constant": false,
"id": 171,
"mutability": "mutable",
"name": "undelegation_id",
"nameLocation": "3955:15:0",
"nodeType": "VariableDeclaration",
"scope": 173,
"src": "3948:22:0",
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_uint64",
"typeString": "uint64"
},
"typeName": {
"id": 170,
"name": "uint64",
"nodeType": "ElementaryTypeName",
"src": "3948:6:0",
"typeDescriptions": {
"typeIdentifier": "t_uint64",
"typeString": "uint64"
}
},
"visibility": "internal"
}
],
"src": "3947:24:0"
},
"scope": 368,
"src": "3873:99:0",
"stateMutability": "nonpayable",
"virtual": false,
"visibility": "external"
},
{
"functionSelector": "45a02561",
"id": 178,
"implemented": false,
"kind": "function",
"modifiers": [],
"name": "confirmUndelegate",
"nameLocation": "4102:17:0",
"nodeType": "FunctionDefinition",
"parameters": {
"id": 176,
"nodeType": "ParameterList",
"parameters": [
{
"constant": false,
"id": 175,
"mutability": "mutable",
"name": "validator",
"nameLocation": "4128:9:0",
"nodeType": "VariableDeclaration",
"scope": 178,
"src": "4120:17:0",
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_address",
"typeString": "address"
},
"typeName": {
"id": 174,
"name": "address",
"nodeType": "ElementaryTypeName",
"src": "4120:7:0",
"stateMutability": "nonpayable",
"typeDescriptions": {
"typeIdentifier": "t_address",
"typeString": "address"
}
},
"visibility": "internal"
}
],
"src": "4119:19:0"
},
"returnParameters": {
"id": 177,
"nodeType": "ParameterList",
"parameters": [],
"src": "4147:0:0"
},
"scope": 368,
"src": "4093:55:0",
"stateMutability": "nonpayable",
"virtual": false,
"visibility": "external"
},
{
"functionSelector": "788d0974",
"id": 185,
"implemented": false,
"kind": "function",
"modifiers": [],
"name": "confirmUndelegateV2",
"nameLocation": "4238:19:0",
"nodeType": "FunctionDefinition",
"parameters": {
"id": 183,
"nodeType": "ParameterList",
"parameters": [
{
"constant": false,
"id": 180,
"mutability": "mutable",
"name": "validator",
"nameLocation": "4266:9:0",
"nodeType": "VariableDeclaration",
"scope": 185,
"src": "4258:17:0",
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_address",
"typeString": "address"
},
"typeName": {
"id": 179,
"name": "address",
"nodeType": "ElementaryTypeName",
"src": "4258:7:0",
"stateMutability": "nonpayable",
"typeDescriptions": {
"typeIdentifier": "t_address",
"typeString": "address"
}
},
"visibility": "internal"
},
{
"constant": false,
"id": 182,
"mutability": "mutable",
"name": "undelegation_id",
"nameLocation": "4284:15:0",
"nodeType": "VariableDeclaration",
"scope": 185,
"src": "4277:22:0",
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_uint64",
"typeString": "uint64"
},
"typeName": {
"id": 181,
"name": "uint64",
"nodeType": "ElementaryTypeName",
"src": "4277:6:0",
"typeDescriptions": {
"typeIdentifier": "t_uint64",
"typeString": "uint64"
}
},
"visibility": "internal"
}
],
"src": "4257:43:0"
},
"returnParameters": {
"id": 184,
"nodeType": "ParameterList",
"parameters": [],
"src": "4309:0:0"
},
"scope": 368,
"src": "4229:81:0",
"stateMutability": "nonpayable",
"virtual": false,
"visibility": "external"
},
{
"functionSelector": "399ff554",
"id": 190,
"implemented": false,
"kind": "function",
"modifiers": [],
"name": "cancelUndelegate",
"nameLocation": "4438:16:0",
"nodeType": "FunctionDefinition",
"parameters": {
"id": 188,
"nodeType": "ParameterList",
"parameters": [
{
"constant": false,
"id": 187,
"mutability": "mutable",
"name": "validator",
"nameLocation": "4463:9:0",
"nodeType": "VariableDeclaration",
"scope": 190,
"src": "4455:17:0",
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_address",
"typeString": "address"
},
"typeName": {
"id": 186,
"name": "address",
"nodeType": "ElementaryTypeName",
"src": "4455:7:0",
"stateMutability": "nonpayable",
"typeDescriptions": {
"typeIdentifier": "t_address",
"typeString": "address"
}
},
"visibility": "internal"
}
],
"src": "4454:19:0"
},
"returnParameters": {
"id": 189,
"nodeType": "ParameterList",
"parameters": [],
"src": "4482:0:0"
},
"scope": 368,
"src": "4429:54:0",
"stateMutability": "nonpayable",
"virtual": false,
"visibility": "external"
},
{
"functionSelector": "b6e1e329",
"id": 197,
"implemented": false,
"kind": "function",
"modifiers": [],
"name": "cancelUndelegateV2",
"nameLocation": "4571:18:0",
"nodeType": "FunctionDefinition",
"parameters": {
"id": 195,
"nodeType": "ParameterList",
"parameters": [
{
"constant": false,
"id": 192,
"mutability": "mutable",
"name": "validator",
"nameLocation": "4598:9:0",
"nodeType": "VariableDeclaration",
"scope": 197,
"src": "4590:17:0",
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_address",
"typeString": "address"
},
"typeName": {
"id": 191,
"name": "address",
"nodeType": "ElementaryTypeName",
"src": "4590:7:0",
"stateMutability": "nonpayable",
"typeDescriptions": {
"typeIdentifier": "t_address",
"typeString": "address"
}
},
"visibility": "internal"
},
{
"constant": false,
"id": 194,
"mutability": "mutable",
"name": "undelegation_id",
"nameLocation": "4616:15:0",
"nodeType": "VariableDeclaration",
"scope": 197,
"src": "4609:22:0",
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_uint64",
"typeString": "uint64"
},
"typeName": {
"id": 193,
"name": "uint64",
"nodeType": "ElementaryTypeName",
"src": "4609:6:0",
"typeDescriptions": {
"typeIdentifier": "t_uint64",
"typeString": "uint64"
}
},
"visibility": "internal"
}
],
"src": "4589:43:0"
},
"returnParameters": {
"id": 196,
"nodeType": "ParameterList",
"parameters": [],
"src": "4641:0:0"
},
"scope": 368,
"src": "4562:80:0",
"stateMutability": "nonpayable",
"virtual": false,
"visibility": "external"
},
{
"functionSelector": "703812cc",
"id": 206,
"implemented": false,
"kind": "function",
"modifiers": [],
"name": "reDelegate",
"nameLocation": "4727:10:0",
"nodeType": "FunctionDefinition",
"parameters": {
"id": 204,
"nodeType": "ParameterList",
"parameters": [
{
"constant": false,
"id": 199,
"mutability": "mutable",
"name": "validator_from",
"nameLocation": "4746:14:0",
"nodeType": "VariableDeclaration",
"scope": 206,
"src": "4738:22:0",
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_address",
"typeString": "address"
},
"typeName": {
"id": 198,
"name": "address",
"nodeType": "ElementaryTypeName",
"src": "4738:7:0",
"stateMutability": "nonpayable",
"typeDescriptions": {
"typeIdentifier": "t_address",
"typeString": "address"
}
},
"visibility": "internal"
},
{
"constant": false,
"id": 201,
"mutability": "mutable",
"name": "validator_to",
"nameLocation": "4770:12:0",
"nodeType": "VariableDeclaration",
"scope": 206,
"src": "4762:20:0",
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_address",
"typeString": "address"
},
"typeName": {
"id": 200,
"name": "address",
"nodeType": "ElementaryTypeName",
"src": "4762:7:0",
"stateMutability": "nonpayable",
"typeDescriptions": {
"typeIdentifier": "t_address",
"typeString": "address"
}
},
"visibility": "internal"
},
{
"constant": false,
"id": 203,
"mutability": "mutable",
"name": "amount",
"nameLocation": "4792:6:0",
"nodeType": "VariableDeclaration",
"scope": 206,
"src": "4784:14:0",
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
},
"typeName": {
"id": 202,
"name": "uint256",
"nodeType": "ElementaryTypeName",
"src": "4784:7:0",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"visibility": "internal"
}
],
"src": "4737:62:0"
},
"returnParameters": {
"id": 205,
"nodeType": "ParameterList",
"parameters": [],
"src": "4808:0:0"
},
"scope": 368,
"src": "4718:91:0",
"stateMutability": "nonpayable",
"virtual": false,
"visibility": "external"
},
{
"functionSelector": "ef5cfb8c",
"id": 211,
"implemented": false,
"kind": "function",
"modifiers": [],
"name": "claimRewards",
"nameLocation": "4871:12:0",
"nodeType": "FunctionDefinition",
"parameters": {
"id": 209,
"nodeType": "ParameterList",
"parameters": [
{
"constant": false,
"id": 208,
"mutability": "mutable",
"name": "validator",
"nameLocation": "4892:9:0",
"nodeType": "VariableDeclaration",
"scope": 211,
"src": "4884:17:0",
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_address",
"typeString": "address"
},
"typeName": {
"id": 207,
"name": "address",
"nodeType": "ElementaryTypeName",
"src": "4884:7:0",
"stateMutability": "nonpayable",
"typeDescriptions": {
"typeIdentifier": "t_address",
"typeString": "address"
}
},
"visibility": "internal"
}
],
"src": "4883:19:0"
},
"returnParameters": {
"id": 210,
"nodeType": "ParameterList",
"parameters": [],
"src": "4911:0:0"
},
"scope": 368,
"src": "4862:50:0",
"stateMutability": "nonpayable",
"virtual": false,
"visibility": "external"
},
{
"documentation": {
"id": 212,
"nodeType": "StructuredDocumentation",
"src": "4918:142:0",
"text": " @notice Claims staking rewards from all validators (limited by max dag block gas limit) that caller has delegated to"
},
"functionSelector": "0b83a727",
"id": 215,
"implemented": false,
"kind": "function",
"modifiers": [],
"name": "claimAllRewards",
"nameLocation": "5074:15:0",
"nodeType": "FunctionDefinition",
"parameters": {
"id": 213,
"nodeType": "ParameterList",
"parameters": [],
"src": "5089:2:0"
},
"returnParameters": {
"id": 214,
"nodeType": "ParameterList",
"parameters": [],
"src": "5100:0:0"
},
"scope": 368,
"src": "5065:36:0",
"stateMutability": "nonpayable",
"virtual": false,
"visibility": "external"
},
{
"functionSelector": "d0eebfe2",
"id": 220,
"implemented": false,
"kind": "function",
"modifiers": [],
"name": "claimCommissionRewards",
"nameLocation": "5173:22:0",
"nodeType": "FunctionDefinition",
"parameters": {
"id": 218,
"nodeType": "ParameterList",
"parameters": [
{
"constant": false,
"id": 217,
"mutability": "mutable",
"name": "validator",
"nameLocation": "5204:9:0",
"nodeType": "VariableDeclaration",
"scope": 220,
"src": "5196:17:0",
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_address",
"typeString": "address"
},
"typeName": {
"id": 216,
"name": "address",
"nodeType": "ElementaryTypeName",
"src": "5196:7:0",
"stateMutability": "nonpayable",
"typeDescriptions": {
"typeIdentifier": "t_address",
"typeString": "address"
}
},
"visibility": "internal"
}
],
"src": "5195:19:0"
},
"returnParameters": {
"id": 219,
"nodeType": "ParameterList",
"parameters": [],
"src": "5223:0:0"
},
"scope": 368,
"src": "5164:60:0",
"stateMutability": "nonpayable",
"virtual": false,
"visibility": "external"
},
{
"functionSelector": "d6fdc127",
"id": 235,
"implemented": false,
"kind": "function",
"modifiers": [],
"name": "registerValidator",
"nameLocation": "5350:17:0",
"nodeType": "FunctionDefinition",
"parameters": {
"id": 233,
"nodeType": "ParameterList",
"parameters": [
{
"constant": false,
"id": 222,
"mutability": "mutable",
"name": "validator",
"nameLocation": "5385:9:0",
"nodeType": "VariableDeclaration",
"scope": 235,
"src": "5377:17:0",
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_address",
"typeString": "address"
},
"typeName": {
"id": 221,
"name": "address",
"nodeType": "ElementaryTypeName",
"src": "5377:7:0",
"stateMutability": "nonpayable",
"typeDescriptions": {
"typeIdentifier": "t_address",
"typeString": "address"
}
},
"visibility": "internal"
},
{
"constant": false,
"id": 224,
"mutability": "mutable",
"name": "proof",
"nameLocation": "5417:5:0",
"nodeType": "VariableDeclaration",
"scope": 235,
"src": "5404:18:0",
"stateVariable": false,
"storageLocation": "memory",
"typeDescriptions": {
"typeIdentifier": "t_bytes_memory_ptr",
"typeString": "bytes"
},
"typeName": {
"id": 223,
"name": "bytes",
"nodeType": "ElementaryTypeName",
"src": "5404:5:0",
"typeDescriptions": {
"typeIdentifier": "t_bytes_storage_ptr",
"typeString": "bytes"
}
},
"visibility": "internal"
},
{
"constant": false,
"id": 226,
"mutability": "mutable",
"name": "vrf_key",
"nameLocation": "5445:7:0",
"nodeType": "VariableDeclaration",
"scope": 235,
"src": "5432:20:0",
"stateVariable": false,
"storageLocation": "memory",
"typeDescriptions": {
"typeIdentifier": "t_bytes_memory_ptr",
"typeString": "bytes"
},
"typeName": {
"id": 225,
"name": "bytes",
"nodeType": "ElementaryTypeName",
"src": "5432:5:0",
"typeDescriptions": {
"typeIdentifier": "t_bytes_storage_ptr",
"typeString": "bytes"
}
},
"visibility": "internal"
},
{
"constant": false,
"id": 228,
"mutability": "mutable",
"name": "commission",
"nameLocation": "5469:10:0",
"nodeType": "VariableDeclaration",
"scope": 235,
"src": "5462:17:0",
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_uint16",
"typeString": "uint16"
},
"typeName": {
"id": 227,
"name": "uint16",
"nodeType": "ElementaryTypeName",
"src": "5462:6:0",
"typeDescriptions": {
"typeIdentifier": "t_uint16",
"typeString": "uint16"
}
},
"visibility": "internal"
},
{
"constant": false,
"id": 230,
"mutability": "mutable",
"name": "description",
"nameLocation": "5505:11:0",
"nodeType": "VariableDeclaration",
"scope": 235,
"src": "5489:27:0",
"stateVariable": false,
"storageLocation": "calldata",
"typeDescriptions": {
"typeIdentifier": "t_string_calldata_ptr",
"typeString": "string"
},
"typeName": {
"id": 229,
"name": "string",
"nodeType": "ElementaryTypeName",
"src": "5489:6:0",
"typeDescriptions": {
"typeIdentifier": "t_string_storage_ptr",
"typeString": "string"
}
},
"visibility": "internal"
},
{
"constant": false,
"id": 232,
"mutability": "mutable",
"name": "endpoint",
"nameLocation": "5542:8:0",
"nodeType": "VariableDeclaration",
"scope": 235,
"src": "5526:24:0",
"stateVariable": false,
"storageLocation": "calldata",
"typeDescriptions": {
"typeIdentifier": "t_string_calldata_ptr",
"typeString": "string"
},
"typeName": {
"id": 231,
"name": "string",
"nodeType": "ElementaryTypeName",
"src": "5526:6:0",
"typeDescriptions": {
"typeIdentifier": "t_string_storage_ptr",
"typeString": "string"
}
},
"visibility": "internal"
}
],
"src": "5367:189:0"
},
"returnParameters": {
"id": 234,
"nodeType": "ParameterList",
"parameters": [],
"src": "5573:0:0"
},
"scope": 368,
"src": "5341:233:0",
"stateMutability": "payable",
"virtual": false,
"visibility": "external"
},
{
"documentation": {
"id": 236,
"nodeType": "StructuredDocumentation",
"src": "5580:246:0",
"text": " @notice Sets some of the static validator details.\n @param description New description (e.g name, short purpose description, etc...)\n @param endpoint New endpoint, might be a validator's website"
},
"functionSelector": "0babea4c",
"id": 245,
"implemented": false,
"kind": "function",
"modifiers": [],
"name": "setValidatorInfo",
"nameLocation": "5840:16:0",
"nodeType": "FunctionDefinition",
"parameters": {
"id": 243,
"nodeType": "ParameterList",
"parameters": [
{
"constant": false,
"id": 238,
"mutability": "mutable",
"name": "validator",
"nameLocation": "5865:9:0",
"nodeType": "VariableDeclaration",
"scope": 245,
"src": "5857:17:0",
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_address",
"typeString": "address"
},
"typeName": {
"id": 237,
"name": "address",
"nodeType": "ElementaryTypeName",
"src": "5857:7:0",
"stateMutability": "nonpayable",
"typeDescriptions": {
"typeIdentifier": "t_address",
"typeString": "address"
}
},
"visibility": "internal"
},
{
"constant": false,
"id": 240,
"mutability": "mutable",
"name": "description",
"nameLocation": "5892:11:0",
"nodeType": "VariableDeclaration",
"scope": 245,
"src": "5876:27:0",
"stateVariable": false,
"storageLocation": "calldata",
"typeDescriptions": {
"typeIdentifier": "t_string_calldata_ptr",
"typeString": "string"
},
"typeName": {
"id": 239,
"name": "string",
"nodeType": "ElementaryTypeName",
"src": "5876:6:0",
"typeDescriptions": {
"typeIdentifier": "t_string_storage_ptr",
"typeString": "string"
}
},
"visibility": "internal"
},
{
"constant": false,
"id": 242,
"mutability": "mutable",
"name": "endpoint",
"nameLocation": "5921:8:0",
"nodeType": "VariableDeclaration",
"scope": 245,
"src": "5905:24:0",
"stateVariable": false,
"storageLocation": "calldata",
"typeDescriptions": {
"typeIdentifier": "t_string_calldata_ptr",
"typeString": "string"
},
"typeName": {
"id": 241,
"name": "string",
"nodeType": "ElementaryTypeName",
"src": "5905:6:0",
"typeDescriptions": {
"typeIdentifier": "t_string_storage_ptr",
"typeString": "string"
}
},
"visibility": "internal"
}
],
"src": "5856:74:0"
},
"returnParameters": {
"id": 244,
"nodeType": "ParameterList",
"parameters": [],
"src": "5939:0:0"
},
"scope": 368,
"src": "5831:109:0",
"stateMutability": "nonpayable",
"virtual": false,
"visibility": "external"
},
{
"functionSelector": "f000322c",
"id": 252,
"implemented": false,
"kind": "function",
"modifiers": [],
"name": "setCommission",
"nameLocation": "6027:13:0",
"nodeType": "FunctionDefinition",
"parameters": {
"id": 250,
"nodeType": "ParameterList",
"parameters": [
{
"constant": false,
"id": 247,
"mutability": "mutable",
"name": "validator",
"nameLocation": "6049:9:0",
"nodeType": "VariableDeclaration",
"scope": 252,
"src": "6041:17:0",
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_address",
"typeString": "address"
},
"typeName": {
"id": 246,
"name": "address",
"nodeType": "ElementaryTypeName",
"src": "6041:7:0",
"stateMutability": "nonpayable",
"typeDescriptions": {
"typeIdentifier": "t_address",
"typeString": "address"
}
},
"visibility": "internal"
},
{
"constant": false,
"id": 249,
"mutability": "mutable",
"name": "commission",
"nameLocation": "6067:10:0",
"nodeType": "VariableDeclaration",
"scope": 252,
"src": "6060:17:0",
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_uint16",
"typeString": "uint16"
},
"typeName": {
"id": 248,
"name": "uint16",
"nodeType": "ElementaryTypeName",
"src": "6060:6:0",
"typeDescriptions": {
"typeIdentifier": "t_uint16",
"typeString": "uint16"
}
},
"visibility": "internal"
}
],
"src": "6040:38:0"
},
"returnParameters": {
"id": 251,
"nodeType": "ParameterList",
"parameters": [],
"src": "6087:0:0"
},
"scope": 368,
"src": "6018:70:0",
"stateMutability": "nonpayable",
"virtual": false,
"visibility": "external"
},
{
"functionSelector": "f3094e90",
"id": 259,
"implemented": false,
"kind": "function",
"modifiers": [],
"name": "isValidatorEligible",
"nameLocation": "6343:19:0",
"nodeType": "FunctionDefinition",
"parameters": {
"id": 255,
"nodeType": "ParameterList",
"parameters": [
{
"constant": false,
"id": 254,
"mutability": "mutable",
"name": "validator",
"nameLocation": "6371:9:0",
"nodeType": "VariableDeclaration",
"scope": 259,
"src": "6363:17:0",
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_address",
"typeString": "address"
},
"typeName": {
"id": 253,
"name": "address",
"nodeType": "ElementaryTypeName",
"src": "6363:7:0",
"stateMutability": "nonpayable",
"typeDescriptions": {
"typeIdentifier": "t_address",
"typeString": "address"
}
},
"visibility": "internal"
}
],
"src": "6362:19:0"
},
"returnParameters": {
"id": 258,
"nodeType": "ParameterList",
"parameters": [
{
"constant": false,
"id": 257,
"mutability": "mutable",
"name": "",
"nameLocation": "-1:-1:-1",
"nodeType": "VariableDeclaration",
"scope": 259,
"src": "6405:4:0",
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_bool",
"typeString": "bool"
},
"typeName": {
"id": 256,
"name": "bool",
"nodeType": "ElementaryTypeName",
"src": "6405:4:0",
"typeDescriptions": {
"typeIdentifier": "t_bool",
"typeString": "bool"
}
},
"visibility": "internal"
}
],
"src": "6404:6:0"
},
"scope": 368,
"src": "6334:77:0",
"stateMutability": "view",
"virtual": false,
"visibility": "external"
},
{
"functionSelector": "de8e4b50",
"id": 264,
"implemented": false,
"kind": "function",
"modifiers": [],
"name": "getTotalEligibleVotesCount",
"nameLocation": "6478:26:0",
"nodeType": "FunctionDefinition",
"parameters": {
"id": 260,
"nodeType": "ParameterList",
"parameters": [],
"src": "6504:2:0"
},
"returnParameters": {
"id": 263,
"nodeType": "ParameterList",
"parameters": [
{
"constant": false,
"id": 262,
"mutability": "mutable",
"name": "",
"nameLocation": "-1:-1:-1",
"nodeType": "VariableDeclaration",
"scope": 264,
"src": "6530:6:0",
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_uint64",
"typeString": "uint64"
},
"typeName": {
"id": 261,
"name": "uint64",
"nodeType": "ElementaryTypeName",
"src": "6530:6:0",
"typeDescriptions": {
"typeIdentifier": "t_uint64",
"typeString": "uint64"
}
},
"visibility": "internal"
}
],
"src": "6529:8:0"
},
"scope": 368,
"src": "6469:69:0",
"stateMutability": "view",
"virtual": false,
"visibility": "external"
},
{
"functionSelector": "618e3862",
"id": 271,
"implemented": false,
"kind": "function",
"modifiers": [],
"name": "getValidatorEligibleVotesCount",
"nameLocation": "6609:30:0",
"nodeType": "FunctionDefinition",
"parameters": {
"id": 267,
"nodeType": "ParameterList",
"parameters": [
{
"constant": false,
"id": 266,
"mutability": "mutable",
"name": "validator",
"nameLocation": "6648:9:0",
"nodeType": "VariableDeclaration",
"scope": 271,
"src": "6640:17:0",
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_address",
"typeString": "address"
},
"typeName": {
"id": 265,
"name": "address",
"nodeType": "ElementaryTypeName",
"src": "6640:7:0",
"stateMutability": "nonpayable",
"typeDescriptions": {
"typeIdentifier": "t_address",
"typeString": "address"
}
},
"visibility": "internal"
}
],
"src": "6639:19:0"
},
"returnParameters": {
"id": 270,
"nodeType": "ParameterList",
"parameters": [
{
"constant": false,
"id": 269,
"mutability": "mutable",
"name": "",
"nameLocation": "-1:-1:-1",
"nodeType": "VariableDeclaration",
"scope": 271,
"src": "6682:6:0",
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_uint64",
"typeString": "uint64"
},
"typeName": {
"id": 268,
"name": "uint64",
"nodeType": "ElementaryTypeName",
"src": "6682:6:0",
"typeDescriptions": {
"typeIdentifier": "t_uint64",
"typeString": "uint64"
}
},
"visibility": "internal"
}
],
"src": "6681:8:0"
},
"scope": 368,
"src": "6600:90:0",
"stateMutability": "view",
"virtual": false,
"visibility": "external"
},
{
"functionSelector": "1904bb2e",
"id": 279,
"implemented": false,
"kind": "function",
"modifiers": [],
"name": "getValidator",
"nameLocation": "6784:12:0",
"nodeType": "FunctionDefinition",
"parameters": {
"id": 274,
"nodeType": "ParameterList",
"parameters": [
{
"constant": false,
"id": 273,
"mutability": "mutable",
"name": "validator",
"nameLocation": "6805:9:0",
"nodeType": "VariableDeclaration",
"scope": 279,
"src": "6797:17:0",
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_address",
"typeString": "address"
},
"typeName": {
"id": 272,
"name": "address",
"nodeType": "ElementaryTypeName",
"src": "6797:7:0",
"stateMutability": "nonpayable",
"typeDescriptions": {
"typeIdentifier": "t_address",
"typeString": "address"
}
},
"visibility": "internal"
}
],
"src": "6796:19:0"
},
"returnParameters": {
"id": 278,
"nodeType": "ParameterList",
"parameters": [
{
"constant": false,
"id": 277,
"mutability": "mutable",
"name": "validator_info",
"nameLocation": "6865:14:0",
"nodeType": "VariableDeclaration",
"scope": 279,
"src": "6839:40:0",
"stateVariable": false,
"storageLocation": "memory",
"typeDescriptions": {
"typeIdentifier": "t_struct$_ValidatorBasicInfo_$120_memory_ptr",
"typeString": "struct DposInterface.ValidatorBasicInfo"
},
"typeName": {
"id": 276,
"nodeType": "UserDefinedTypeName",
"pathNode": {
"id": 275,
"name": "ValidatorBasicInfo",
"nameLocations": [
"6839:18:0"
],
"nodeType": "IdentifierPath",
"referencedDeclaration": 120,
"src": "6839:18:0"
},
"referencedDeclaration": 120,
"src": "6839:18:0",
"typeDescriptions": {
"typeIdentifier": "t_struct$_ValidatorBasicInfo_$120_storage_ptr",
"typeString": "struct DposInterface.ValidatorBasicInfo"
}
},
"visibility": "internal"
}
],
"src": "6838:42:0"
},
"scope": 368,
"src": "6775:106:0",
"stateMutability": "view",
"virtual": false,
"visibility": "external"
},
{
"functionSelector": "19d8024f",
"id": 290,
"implemented": false,
"kind": "function",
"modifiers": [],
"name": "getValidators",
"nameLocation": "6896:13:0",
"nodeType": "FunctionDefinition",
"parameters": {
"id": 282,
"nodeType": "ParameterList",
"parameters": [
{
"constant": false,
"id": 281,
"mutability": "mutable",
"name": "batch",
"nameLocation": "6917:5:0",
"nodeType": "VariableDeclaration",
"scope": 290,
"src": "6910:12:0",
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_uint32",
"typeString": "uint32"
},
"typeName": {
"id": 280,
"name": "uint32",
"nodeType": "ElementaryTypeName",
"src": "6910:6:0",
"typeDescriptions": {
"typeIdentifier": "t_uint32",
"typeString": "uint32"
}
},
"visibility": "internal"
}
],
"src": "6909:14:0"
},
"returnParameters": {
"id": 289,
"nodeType": "ParameterList",
"parameters": [
{
"constant": false,
"id": 286,
"mutability": "mutable",
"name": "validators",
"nameLocation": "6970:10:0",
"nodeType": "VariableDeclaration",
"scope": 290,
"src": "6947:33:0",
"stateVariable": false,
"storageLocation": "memory",
"typeDescriptions": {
"typeIdentifier": "t_array$_t_struct$_ValidatorData_$126_memory_ptr_$dyn_memory_ptr",
"typeString": "struct DposInterface.ValidatorData[]"
},
"typeName": {
"baseType": {
"id": 284,
"nodeType": "UserDefinedTypeName",
"pathNode": {
"id": 283,
"name": "ValidatorData",
"nameLocations": [
"6947:13:0"
],
"nodeType": "IdentifierPath",
"referencedDeclaration": 126,
"src": "6947:13:0"
},
"referencedDeclaration": 126,
"src": "6947:13:0",
"typeDescriptions": {
"typeIdentifier": "t_struct$_ValidatorData_$126_storage_ptr",
"typeString": "struct DposInterface.ValidatorData"
}
},
"id": 285,
"nodeType": "ArrayTypeName",
"src": "6947:15:0",
"typeDescriptions": {
"typeIdentifier": "t_array$_t_struct$_ValidatorData_$126_storage_$dyn_storage_ptr",
"typeString": "struct DposInterface.ValidatorData[]"
}
},
"visibility": "internal"
},
{
"constant": false,
"id": 288,
"mutability": "mutable",
"name": "end",
"nameLocation": "6987:3:0",
"nodeType": "VariableDeclaration",
"scope": 290,
"src": "6982:8:0",
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_bool",
"typeString": "bool"
},
"typeName": {
"id": 287,
"name": "bool",
"nodeType": "ElementaryTypeName",
"src": "6982:4:0",
"typeDescriptions": {
"typeIdentifier": "t_bool",
"typeString": "bool"
}
},
"visibility": "internal"
}
],
"src": "6946:45:0"
},
"scope": 368,
"src": "6887:105:0",
"stateMutability": "view",
"virtual": false,
"visibility": "external"
},
{
"documentation": {
"id": 291,
"nodeType": "StructuredDocumentation",
"src": "6998:526:0",
"text": " @notice Returns list of validators owned by an address\n @param owner Owner address\n @param batch Batch number to be fetched. If the list is too big it cannot return all validators in one call. Instead, users are fetching batches of 100 account at a time\n @return validators Batch of N validators basic info\n @return end Flag if there are no more accounts left. To get all accounts, caller should fetch all batches until he sees end == true"
},
"functionSelector": "724ac6b0",
"id": 304,
"implemented": false,
"kind": "function",
"modifiers": [],
"name": "getValidatorsFor",
"nameLocation": "7538:16:0",
"nodeType": "FunctionDefinition",
"parameters": {
"id": 296,
"nodeType": "ParameterList",
"parameters": [
{
"constant": false,
"id": 293,
"mutability": "mutable",
"name": "owner",
"nameLocation": "7563:5:0",
"nodeType": "VariableDeclaration",
"scope": 304,
"src": "7555:13:0",
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_address",
"typeString": "address"
},
"typeName": {
"id": 292,
"name": "address",
"nodeType": "ElementaryTypeName",
"src": "7555:7:0",
"stateMutability": "nonpayable",
"typeDescriptions": {
"typeIdentifier": "t_address",
"typeString": "address"
}
},
"visibility": "internal"
},
{
"constant": false,
"id": 295,
"mutability": "mutable",
"name": "batch",
"nameLocation": "7577:5:0",
"nodeType": "VariableDeclaration",
"scope": 304,
"src": "7570:12:0",
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_uint32",
"typeString": "uint32"
},
"typeName": {
"id": 294,
"name": "uint32",
"nodeType": "ElementaryTypeName",
"src": "7570:6:0",
"typeDescriptions": {
"typeIdentifier": "t_uint32",
"typeString": "uint32"
}
},
"visibility": "internal"
}
],
"src": "7554:29:0"
},
"returnParameters": {
"id": 303,
"nodeType": "ParameterList",
"parameters": [
{
"constant": false,
"id": 300,
"mutability": "mutable",
"name": "validators",
"nameLocation": "7654:10:0",
"nodeType": "VariableDeclaration",
"scope": 304,
"src": "7631:33:0",
"stateVariable": false,
"storageLocation": "memory",
"typeDescriptions": {
"typeIdentifier": "t_array$_t_struct$_ValidatorData_$126_memory_ptr_$dyn_memory_ptr",
"typeString": "struct DposInterface.ValidatorData[]"
},
"typeName": {
"baseType": {
"id": 298,
"nodeType": "UserDefinedTypeName",
"pathNode": {
"id": 297,
"name": "ValidatorData",
"nameLocations": [
"7631:13:0"
],
"nodeType": "IdentifierPath",
"referencedDeclaration": 126,
"src": "7631:13:0"
},
"referencedDeclaration": 126,
"src": "7631:13:0",
"typeDescriptions": {
"typeIdentifier": "t_struct$_ValidatorData_$126_storage_ptr",
"typeString": "struct DposInterface.ValidatorData"
}
},
"id": 299,
"nodeType": "ArrayTypeName",
"src": "7631:15:0",
"typeDescriptions": {
"typeIdentifier": "t_array$_t_struct$_ValidatorData_$126_storage_$dyn_storage_ptr",
"typeString": "struct DposInterface.ValidatorData[]"
}
},
"visibility": "internal"
},
{
"constant": false,
"id": 302,
"mutability": "mutable",
"name": "end",
"nameLocation": "7671:3:0",
"nodeType": "VariableDeclaration",
"scope": 304,
"src": "7666:8:0",
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_bool",
"typeString": "bool"
},
"typeName": {
"id": 301,
"name": "bool",
"nodeType": "ElementaryTypeName",
"src": "7666:4:0",
"typeDescriptions": {
"typeIdentifier": "t_bool",
"typeString": "bool"
}
},
"visibility": "internal"
}
],
"src": "7630:45:0"
},
"scope": 368,
"src": "7529:147:0",
"stateMutability": "view",
"virtual": false,
"visibility": "external"
},
{
"documentation": {
"id": 305,
"nodeType": "StructuredDocumentation",
"src": "7682:204:0",
"text": " @notice Returns total delegation for specified delegator\n @param delegator Delegator account address\n @return total_delegation amount that was delegated"
},
"functionSelector": "fc5e7e09",
"id": 312,
"implemented": false,
"kind": "function",
"modifiers": [],
"name": "getTotalDelegation",
"nameLocation": "7900:18:0",
"nodeType": "FunctionDefinition",
"parameters": {
"id": 308,
"nodeType": "ParameterList",
"parameters": [
{
"constant": false,
"id": 307,
"mutability": "mutable",
"name": "delegator",
"nameLocation": "7927:9:0",
"nodeType": "VariableDeclaration",
"scope": 312,
"src": "7919:17:0",
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_address",
"typeString": "address"
},
"typeName": {
"id": 306,
"name": "address",
"nodeType": "ElementaryTypeName",
"src": "7919:7:0",
"stateMutability": "nonpayable",
"typeDescriptions": {
"typeIdentifier": "t_address",
"typeString": "address"
}
},
"visibility": "internal"
}
],
"src": "7918:19:0"
},
"returnParameters": {
"id": 311,
"nodeType": "ParameterList",
"parameters": [
{
"constant": false,
"id": 310,
"mutability": "mutable",
"name": "total_delegation",
"nameLocation": "7969:16:0",
"nodeType": "VariableDeclaration",
"scope": 312,
"src": "7961:24:0",
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
},
"typeName": {
"id": 309,
"name": "uint256",
"nodeType": "ElementaryTypeName",
"src": "7961:7:0",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"visibility": "internal"
}
],
"src": "7960:26:0"
},
"scope": 368,
"src": "7891:96:0",
"stateMutability": "view",
"virtual": false,
"visibility": "external"
},
{
"documentation": {
"id": 313,
"nodeType": "StructuredDocumentation",
"src": "7993:589:0",
"text": " @notice Returns list of delegations for specified delegator - which validators delegator delegated to\n @param delegator delegator account address\n @param batch Batch number to be fetched. If the list is too big it cannot return all delegations in one call. Instead, users are fetching batches of 50 delegations at a time\n @return delegations Batch of N delegations\n @return end Flag if there are no more delegations left. To get all delegations, caller should fetch all batches until he sees end == true"
},
"functionSelector": "8b49d394",
"id": 326,
"implemented": false,
"kind": "function",
"modifiers": [],
"name": "getDelegations",
"nameLocation": "8596:14:0",
"nodeType": "FunctionDefinition",
"parameters": {
"id": 318,
"nodeType": "ParameterList",
"parameters": [
{
"constant": false,
"id": 315,
"mutability": "mutable",
"name": "delegator",
"nameLocation": "8619:9:0",
"nodeType": "VariableDeclaration",
"scope": 326,
"src": "8611:17:0",
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_address",
"typeString": "address"
},
"typeName": {
"id": 314,
"name": "address",
"nodeType": "ElementaryTypeName",
"src": "8611:7:0",
"stateMutability": "nonpayable",
"typeDescriptions": {
"typeIdentifier": "t_address",
"typeString": "address"
}
},
"visibility": "internal"
},
{
"constant": false,
"id": 317,
"mutability": "mutable",
"name": "batch",
"nameLocation": "8637:5:0",
"nodeType": "VariableDeclaration",
"scope": 326,
"src": "8630:12:0",
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_uint32",
"typeString": "uint32"
},
"typeName": {
"id": 316,
"name": "uint32",
"nodeType": "ElementaryTypeName",
"src": "8630:6:0",
"typeDescriptions": {
"typeIdentifier": "t_uint32",
"typeString": "uint32"
}
},
"visibility": "internal"
}
],
"src": "8610:33:0"
},
"returnParameters": {
"id": 325,
"nodeType": "ParameterList",
"parameters": [
{
"constant": false,
"id": 322,
"mutability": "mutable",
"name": "delegations",
"nameLocation": "8715:11:0",
"nodeType": "VariableDeclaration",
"scope": 326,
"src": "8691:35:0",
"stateVariable": false,
"storageLocation": "memory",
"typeDescriptions": {
"typeIdentifier": "t_array$_t_struct$_DelegationData_$137_memory_ptr_$dyn_memory_ptr",
"typeString": "struct DposInterface.DelegationData[]"
},
"typeName": {
"baseType": {
"id": 320,
"nodeType": "UserDefinedTypeName",
"pathNode": {
"id": 319,
"name": "DelegationData",
"nameLocations": [
"8691:14:0"
],
"nodeType": "IdentifierPath",
"referencedDeclaration": 137,
"src": "8691:14:0"
},
"referencedDeclaration": 137,
"src": "8691:14:0",
"typeDescriptions": {
"typeIdentifier": "t_struct$_DelegationData_$137_storage_ptr",
"typeString": "struct DposInterface.DelegationData"
}
},
"id": 321,
"nodeType": "ArrayTypeName",
"src": "8691:16:0",
"typeDescriptions": {
"typeIdentifier": "t_array$_t_struct$_DelegationData_$137_storage_$dyn_storage_ptr",
"typeString": "struct DposInterface.DelegationData[]"
}
},
"visibility": "internal"
},
{
"constant": false,
"id": 324,
"mutability": "mutable",
"name": "end",
"nameLocation": "8733:3:0",
"nodeType": "VariableDeclaration",
"scope": 326,
"src": "8728:8:0",
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_bool",
"typeString": "bool"
},
"typeName": {
"id": 323,
"name": "bool",
"nodeType": "ElementaryTypeName",
"src": "8728:4:0",
"typeDescriptions": {
"typeIdentifier": "t_bool",
"typeString": "bool"
}
},
"visibility": "internal"
}
],
"src": "8690:47:0"
},
"scope": 368,
"src": "8587:151:0",
"stateMutability": "view",
"virtual": false,
"visibility": "external"
},
{
"documentation": {
"id": 327,
"nodeType": "StructuredDocumentation",
"src": "8744:567:0",
"text": " @notice Returns list of undelegations for specified delegator\n @param delegator delegator account address\n @param batch Batch number to be fetched. If the list is too big it cannot return all undelegations in one call. Instead, users are fetching batches of 50 undelegations at a time\n @return undelegations Batch of N undelegations\n @return end Flag if there are no more undelegations left. To get all undelegations, caller should fetch all batches until he sees end == true"
},
"functionSelector": "4edd9943",
"id": 340,
"implemented": false,
"kind": "function",
"modifiers": [],
"name": "getUndelegations",
"nameLocation": "9325:16:0",
"nodeType": "FunctionDefinition",
"parameters": {
"id": 332,
"nodeType": "ParameterList",
"parameters": [
{
"constant": false,
"id": 329,
"mutability": "mutable",
"name": "delegator",
"nameLocation": "9350:9:0",
"nodeType": "VariableDeclaration",
"scope": 340,
"src": "9342:17:0",
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_address",
"typeString": "address"
},
"typeName": {
"id": 328,
"name": "address",
"nodeType": "ElementaryTypeName",
"src": "9342:7:0",
"stateMutability": "nonpayable",
"typeDescriptions": {
"typeIdentifier": "t_address",
"typeString": "address"
}
},
"visibility": "internal"
},
{
"constant": false,
"id": 331,
"mutability": "mutable",
"name": "batch",
"nameLocation": "9368:5:0",
"nodeType": "VariableDeclaration",
"scope": 340,
"src": "9361:12:0",
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_uint32",
"typeString": "uint32"
},
"typeName": {
"id": 330,
"name": "uint32",
"nodeType": "ElementaryTypeName",
"src": "9361:6:0",
"typeDescriptions": {
"typeIdentifier": "t_uint32",
"typeString": "uint32"
}
},
"visibility": "internal"
}
],
"src": "9341:33:0"
},
"returnParameters": {
"id": 339,
"nodeType": "ParameterList",
"parameters": [
{
"constant": false,
"id": 336,
"mutability": "mutable",
"name": "undelegations",
"nameLocation": "9448:13:0",
"nodeType": "VariableDeclaration",
"scope": 340,
"src": "9422:39:0",
"stateVariable": false,
"storageLocation": "memory",
"typeDescriptions": {
"typeIdentifier": "t_array$_t_struct$_UndelegationData_$146_memory_ptr_$dyn_memory_ptr",
"typeString": "struct DposInterface.UndelegationData[]"
},
"typeName": {
"baseType": {
"id": 334,
"nodeType": "UserDefinedTypeName",
"pathNode": {
"id": 333,
"name": "UndelegationData",
"nameLocations": [
"9422:16:0"
],
"nodeType": "IdentifierPath",
"referencedDeclaration": 146,
"src": "9422:16:0"
},
"referencedDeclaration": 146,
"src": "9422:16:0",
"typeDescriptions": {
"typeIdentifier": "t_struct$_UndelegationData_$146_storage_ptr",
"typeString": "struct DposInterface.UndelegationData"
}
},
"id": 335,
"nodeType": "ArrayTypeName",
"src": "9422:18:0",
"typeDescriptions": {
"typeIdentifier": "t_array$_t_struct$_UndelegationData_$146_storage_$dyn_storage_ptr",
"typeString": "struct DposInterface.UndelegationData[]"
}
},
"visibility": "internal"
},
{
"constant": false,
"id": 338,
"mutability": "mutable",
"name": "end",
"nameLocation": "9468:3:0",
"nodeType": "VariableDeclaration",
"scope": 340,
"src": "9463:8:0",
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_bool",
"typeString": "bool"
},
"typeName": {
"id": 337,
"name": "bool",
"nodeType": "ElementaryTypeName",
"src": "9463:4:0",
"typeDescriptions": {
"typeIdentifier": "t_bool",
"typeString": "bool"
}
},
"visibility": "internal"
}
],
"src": "9421:51:0"
},
"scope": 368,
"src": "9316:157:0",
"stateMutability": "view",
"virtual": false,
"visibility": "external"
},
{
"documentation": {
"id": 341,
"nodeType": "StructuredDocumentation",
"src": "9478:573:0",
"text": " @notice Returns list of V2 undelegations for specified delegator\n @param delegator delegator account address\n @param batch Batch number to be fetched. If the list is too big it cannot return all undelegations in one call. Instead, users are fetching batches of 50 undelegations at a time\n @return undelegations_v2 Batch of N undelegations\n @return end Flag if there are no more undelegations left. To get all undelegations, caller should fetch all batches until he sees end == true"
},
"functionSelector": "78df66e3",
"id": 354,
"implemented": false,
"kind": "function",
"modifiers": [],
"name": "getUndelegationsV2",
"nameLocation": "10065:18:0",
"nodeType": "FunctionDefinition",
"parameters": {
"id": 346,
"nodeType": "ParameterList",
"parameters": [
{
"constant": false,
"id": 343,
"mutability": "mutable",
"name": "delegator",
"nameLocation": "10092:9:0",
"nodeType": "VariableDeclaration",
"scope": 354,
"src": "10084:17:0",
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_address",
"typeString": "address"
},
"typeName": {
"id": 342,
"name": "address",
"nodeType": "ElementaryTypeName",
"src": "10084:7:0",
"stateMutability": "nonpayable",
"typeDescriptions": {
"typeIdentifier": "t_address",
"typeString": "address"
}
},
"visibility": "internal"
},
{
"constant": false,
"id": 345,
"mutability": "mutable",
"name": "batch",
"nameLocation": "10110:5:0",
"nodeType": "VariableDeclaration",
"scope": 354,
"src": "10103:12:0",
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_uint32",
"typeString": "uint32"
},
"typeName": {
"id": 344,
"name": "uint32",
"nodeType": "ElementaryTypeName",
"src": "10103:6:0",
"typeDescriptions": {
"typeIdentifier": "t_uint32",
"typeString": "uint32"
}
},
"visibility": "internal"
}
],
"src": "10083:33:0"
},
"returnParameters": {
"id": 353,
"nodeType": "ParameterList",
"parameters": [
{
"constant": false,
"id": 350,
"mutability": "mutable",
"name": "undelegations_v2",
"nameLocation": "10192:16:0",
"nodeType": "VariableDeclaration",
"scope": 354,
"src": "10164:44:0",
"stateVariable": false,
"storageLocation": "memory",
"typeDescriptions": {
"typeIdentifier": "t_array$_t_struct$_UndelegationV2Data_$152_memory_ptr_$dyn_memory_ptr",
"typeString": "struct DposInterface.UndelegationV2Data[]"
},
"typeName": {
"baseType": {
"id": 348,
"nodeType": "UserDefinedTypeName",
"pathNode": {
"id": 347,
"name": "UndelegationV2Data",
"nameLocations": [
"10164:18:0"
],
"nodeType": "IdentifierPath",
"referencedDeclaration": 152,
"src": "10164:18:0"
},
"referencedDeclaration": 152,
"src": "10164:18:0",
"typeDescriptions": {
"typeIdentifier": "t_struct$_UndelegationV2Data_$152_storage_ptr",
"typeString": "struct DposInterface.UndelegationV2Data"
}
},
"id": 349,
"nodeType": "ArrayTypeName",
"src": "10164:20:0",
"typeDescriptions": {
"typeIdentifier": "t_array$_t_struct$_UndelegationV2Data_$152_storage_$dyn_storage_ptr",
"typeString": "struct DposInterface.UndelegationV2Data[]"
}
},
"visibility": "internal"
},
{
"constant": false,
"id": 352,
"mutability": "mutable",
"name": "end",
"nameLocation": "10215:3:0",
"nodeType": "VariableDeclaration",
"scope": 354,
"src": "10210:8:0",
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_bool",
"typeString": "bool"
},
"typeName": {
"id": 351,
"name": "bool",
"nodeType": "ElementaryTypeName",
"src": "10210:4:0",
"typeDescriptions": {
"typeIdentifier": "t_bool",
"typeString": "bool"
}
},
"visibility": "internal"
}
],
"src": "10163:56:0"
},
"scope": 368,
"src": "10056:164:0",
"stateMutability": "view",
"virtual": false,
"visibility": "external"
},
{
"documentation": {
"id": 355,
"nodeType": "StructuredDocumentation",
"src": "10227:313:0",
"text": " @notice Returns V2 undelegation for specified delegator, validator & and undelegation_id\n @param delegator delegator account address\n @param validator validator account address\n @param undelegation_id undelegation id\n @return undelegation_v2"
},
"functionSelector": "c1107e27",
"id": 367,
"implemented": false,
"kind": "function",
"modifiers": [],
"name": "getUndelegationV2",
"nameLocation": "10554:17:0",
"nodeType": "FunctionDefinition",
"parameters": {
"id": 362,
"nodeType": "ParameterList",
"parameters": [
{
"constant": false,
"id": 357,
"mutability": "mutable",
"name": "delegator",
"nameLocation": "10580:9:0",
"nodeType": "VariableDeclaration",
"scope": 367,
"src": "10572:17:0",
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_address",
"typeString": "address"
},
"typeName": {
"id": 356,
"name": "address",
"nodeType": "ElementaryTypeName",
"src": "10572:7:0",
"stateMutability": "nonpayable",
"typeDescriptions": {
"typeIdentifier": "t_address",
"typeString": "address"
}
},
"visibility": "internal"
},
{
"constant": false,
"id": 359,
"mutability": "mutable",
"name": "validator",
"nameLocation": "10599:9:0",
"nodeType": "VariableDeclaration",
"scope": 367,
"src": "10591:17:0",
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_address",
"typeString": "address"
},
"typeName": {
"id": 358,
"name": "address",
"nodeType": "ElementaryTypeName",
"src": "10591:7:0",
"stateMutability": "nonpayable",
"typeDescriptions": {
"typeIdentifier": "t_address",
"typeString": "address"
}
},
"visibility": "internal"
},
{
"constant": false,
"id": 361,
"mutability": "mutable",
"name": "undelegation_id",
"nameLocation": "10617:15:0",
"nodeType": "VariableDeclaration",
"scope": 367,
"src": "10610:22:0",
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_uint64",
"typeString": "uint64"
},
"typeName": {
"id": 360,
"name": "uint64",
"nodeType": "ElementaryTypeName",
"src": "10610:6:0",
"typeDescriptions": {
"typeIdentifier": "t_uint64",
"typeString": "uint64"
}
},
"visibility": "internal"
}
],
"src": "10571:62:0"
},
"returnParameters": {
"id": 366,
"nodeType": "ParameterList",
"parameters": [
{
"constant": false,
"id": 365,
"mutability": "mutable",
"name": "undelegation_v2",
"nameLocation": "10707:15:0",
"nodeType": "VariableDeclaration",
"scope": 367,
"src": "10681:41:0",
"stateVariable": false,
"storageLocation": "memory",
"typeDescriptions": {
"typeIdentifier": "t_struct$_UndelegationV2Data_$152_memory_ptr",
"typeString": "struct DposInterface.UndelegationV2Data"
},
"typeName": {
"id": 364,
"nodeType": "UserDefinedTypeName",
"pathNode": {
"id": 363,
"name": "UndelegationV2Data",
"nameLocations": [
"10681:18:0"
],
"nodeType": "IdentifierPath",
"referencedDeclaration": 152,
"src": "10681:18:0"
},
"referencedDeclaration": 152,
"src": "10681:18:0",
"typeDescriptions": {
"typeIdentifier": "t_struct$_UndelegationV2Data_$152_storage_ptr",
"typeString": "struct DposInterface.UndelegationV2Data"
}
},
"visibility": "internal"
}
],
"src": "10680:43:0"
},
"scope": 368,
"src": "10545:179:0",
"stateMutability": "view",
"virtual": false,
"visibility": "external"
}
],
"scope": 369,
"src": "111:10615:0",
"usedErrors": [],
"usedEvents": [
9,
17,
25,
33,
43,
53,
63,
73,
81,
89,
95,
99,
103
]
}
],
"src": "85:10642:0"
},
"id": 0
}
}
}
}
{
"deploy": {
"VM:-": {
"linkReferences": {},
"autoDeployLib": true
},
"main:1": {
"linkReferences": {},
"autoDeployLib": true
},
"ropsten:3": {
"linkReferences": {},
"autoDeployLib": true
},
"rinkeby:4": {
"linkReferences": {},
"autoDeployLib": true
},
"kovan:42": {
"linkReferences": {},
"autoDeployLib": true
},
"goerli:5": {
"linkReferences": {},
"autoDeployLib": true
},
"Custom": {
"linkReferences": {},
"autoDeployLib": true
}
},
"data": {
"bytecode": {
"functionDebugData": {},
"generatedSources": [],
"linkReferences": {},
"object": "",
"opcodes": "",
"sourceMap": ""
},
"deployedBytecode": {
"functionDebugData": {},
"generatedSources": [],
"immutableReferences": {},
"linkReferences": {},
"object": "",
"opcodes": "",
"sourceMap": ""
},
"gasEstimates": null,
"methodIdentifiers": {
"cancelUndelegate(address)": "399ff554",
"cancelUndelegateV2(address,uint64)": "b6e1e329",
"claimAllRewards()": "0b83a727",
"claimCommissionRewards(address)": "d0eebfe2",
"claimRewards(address)": "ef5cfb8c",
"confirmUndelegate(address)": "45a02561",
"confirmUndelegateV2(address,uint64)": "788d0974",
"delegate(address)": "5c19a95c",
"getDelegations(address,uint32)": "8b49d394",
"getTotalDelegation(address)": "fc5e7e09",
"getTotalEligibleVotesCount()": "de8e4b50",
"getUndelegationV2(address,address,uint64)": "c1107e27",
"getUndelegations(address,uint32)": "4edd9943",
"getUndelegationsV2(address,uint32)": "78df66e3",
"getValidator(address)": "1904bb2e",
"getValidatorEligibleVotesCount(address)": "618e3862",
"getValidators(uint32)": "19d8024f",
"getValidatorsFor(address,uint32)": "724ac6b0",
"isValidatorEligible(address)": "f3094e90",
"reDelegate(address,address,uint256)": "703812cc",
"registerValidator(address,bytes,bytes,uint16,string,string)": "d6fdc127",
"setCommission(address,uint16)": "f000322c",
"setValidatorInfo(address,string,string)": "0babea4c",
"undelegate(address,uint256)": "4d99dd16",
"undelegateV2(address,uint256)": "bd0e7fcc"
}
},
"abi": [
{
"anonymous": false,
"inputs": [
{
"indexed": true,
"internalType": "address",
"name": "account",
"type": "address"
},
{
"indexed": true,
"internalType": "address",
"name": "validator",
"type": "address"
},
{
"indexed": false,
"internalType": "uint256",
"name": "amount",
"type": "uint256"
}
],
"name": "CommissionRewardsClaimed",
"type": "event"
},
{
"anonymous": false,
"inputs": [
{
"indexed": true,
"internalType": "address",
"name": "validator",
"type": "address"
},
{
"indexed": false,
"internalType": "uint16",
"name": "commission",
"type": "uint16"
}
],
"name": "CommissionSet",
"type": "event"
},
{
"anonymous": false,
"inputs": [
{
"indexed": true,
"internalType": "address",
"name": "delegator",
"type": "address"
},
{
"indexed": true,
"internalType": "address",
"name": "validator",
"type": "address"
},
{
"indexed": false,
"internalType": "uint256",
"name": "amount",
"type": "uint256"
}
],
"name": "Delegated",
"type": "event"
},
{
"anonymous": false,
"inputs": [
{
"indexed": true,
"internalType": "address",
"name": "delegator",
"type": "address"
},
{
"indexed": true,
"internalType": "address",
"name": "from",
"type": "address"
},
{
"indexed": true,
"internalType": "address",
"name": "to",
"type": "address"
},
{
"indexed": false,
"internalType": "uint256",
"name": "amount",
"type": "uint256"
}
],
"name": "Redelegated",
"type": "event"
},
{
"anonymous": false,
"inputs": [
{
"indexed": true,
"internalType": "address",
"name": "account",
"type": "address"
},
{
"indexed": true,
"internalType": "address",
"name": "validator",
"type": "address"
},
{
"indexed": false,
"internalType": "uint256",
"name": "amount",
"type": "uint256"
}
],
"name": "RewardsClaimed",
"type": "event"
},
{
"anonymous": false,
"inputs": [
{
"indexed": true,
"internalType": "address",
"name": "delegator",
"type": "address"
},
{
"indexed": true,
"internalType": "address",
"name": "validator",
"type": "address"
},
{
"indexed": false,
"internalType": "uint256",
"name": "amount",
"type": "uint256"
}
],
"name": "UndelegateCanceled",
"type": "event"
},
{
"anonymous": false,
"inputs": [
{
"indexed": true,
"internalType": "address",
"name": "delegator",
"type": "address"
},
{
"indexed": true,
"internalType": "address",
"name": "validator",
"type": "address"
},
{
"indexed": true,
"internalType": "uint64",
"name": "undelegation_id",
"type": "uint64"
},
{
"indexed": false,
"internalType": "uint256",
"name": "amount",
"type": "uint256"
}
],
"name": "UndelegateCanceledV2",
"type": "event"
},
{
"anonymous": false,
"inputs": [
{
"indexed": true,
"internalType": "address",
"name": "delegator",
"type": "address"
},
{
"indexed": true,
"internalType": "address",
"name": "validator",
"type": "address"
},
{
"indexed": false,
"internalType": "uint256",
"name": "amount",
"type": "uint256"
}
],
"name": "UndelegateConfirmed",
"type": "event"
},
{
"anonymous": false,
"inputs": [
{
"indexed": true,
"internalType": "address",
"name": "delegator",
"type": "address"
},
{
"indexed": true,
"internalType": "address",
"name": "validator",
"type": "address"
},
{
"indexed": true,
"internalType": "uint64",
"name": "undelegation_id",
"type": "uint64"
},
{
"indexed": false,
"internalType": "uint256",
"name": "amount",
"type": "uint256"
}
],
"name": "UndelegateConfirmedV2",
"type": "event"
},
{
"anonymous": false,
"inputs": [
{
"indexed": true,
"internalType": "address",
"name": "delegator",
"type": "address"
},
{
"indexed": true,
"internalType": "address",
"name": "validator",
"type": "address"
},
{
"indexed": false,
"internalType": "uint256",
"name": "amount",
"type": "uint256"
}
],
"name": "Undelegated",
"type": "event"
},
{
"anonymous": false,
"inputs": [
{
"indexed": true,
"internalType": "address",
"name": "delegator",
"type": "address"
},
{
"indexed": true,
"internalType": "address",
"name": "validator",
"type": "address"
},
{
"indexed": true,
"internalType": "uint64",
"name": "undelegation_id",
"type": "uint64"
},
{
"indexed": false,
"internalType": "uint256",
"name": "amount",
"type": "uint256"
}
],
"name": "UndelegatedV2",
"type": "event"
},
{
"anonymous": false,
"inputs": [
{
"indexed": true,
"internalType": "address",
"name": "validator",
"type": "address"
}
],
"name": "ValidatorInfoSet",
"type": "event"
},
{
"anonymous": false,
"inputs": [
{
"indexed": true,
"internalType": "address",
"name": "validator",
"type": "address"
}
],
"name": "ValidatorRegistered",
"type": "event"
},
{
"inputs": [
{
"internalType": "address",
"name": "validator",
"type": "address"
}
],
"name": "cancelUndelegate",
"outputs": [],
"stateMutability": "nonpayable",
"type": "function"
},
{
"inputs": [
{
"internalType": "address",
"name": "validator",
"type": "address"
},
{
"internalType": "uint64",
"name": "undelegation_id",
"type": "uint64"
}
],
"name": "cancelUndelegateV2",
"outputs": [],
"stateMutability": "nonpayable",
"type": "function"
},
{
"inputs": [],
"name": "claimAllRewards",
"outputs": [],
"stateMutability": "nonpayable",
"type": "function"
},
{
"inputs": [
{
"internalType": "address",
"name": "validator",
"type": "address"
}
],
"name": "claimCommissionRewards",
"outputs": [],
"stateMutability": "nonpayable",
"type": "function"
},
{
"inputs": [
{
"internalType": "address",
"name": "validator",
"type": "address"
}
],
"name": "claimRewards",
"outputs": [],
"stateMutability": "nonpayable",
"type": "function"
},
{
"inputs": [
{
"internalType": "address",
"name": "validator",
"type": "address"
}
],
"name": "confirmUndelegate",
"outputs": [],
"stateMutability": "nonpayable",
"type": "function"
},
{
"inputs": [
{
"internalType": "address",
"name": "validator",
"type": "address"
},
{
"internalType": "uint64",
"name": "undelegation_id",
"type": "uint64"
}
],
"name": "confirmUndelegateV2",
"outputs": [],
"stateMutability": "nonpayable",
"type": "function"
},
{
"inputs": [
{
"internalType": "address",
"name": "validator",
"type": "address"
}
],
"name": "delegate",
"outputs": [],
"stateMutability": "payable",
"type": "function"
},
{
"inputs": [
{
"internalType": "address",
"name": "delegator",
"type": "address"
},
{
"internalType": "uint32",
"name": "batch",
"type": "uint32"
}
],
"name": "getDelegations",
"outputs": [
{
"components": [
{
"internalType": "address",
"name": "account",
"type": "address"
},
{
"components": [
{
"internalType": "uint256",
"name": "stake",
"type": "uint256"
},
{
"internalType": "uint256",
"name": "rewards",
"type": "uint256"
}
],
"internalType": "struct DposInterface.DelegatorInfo",
"name": "delegation",
"type": "tuple"
}
],
"internalType": "struct DposInterface.DelegationData[]",
"name": "delegations",
"type": "tuple[]"
},
{
"internalType": "bool",
"name": "end",
"type": "bool"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [
{
"internalType": "address",
"name": "delegator",
"type": "address"
}
],
"name": "getTotalDelegation",
"outputs": [
{
"internalType": "uint256",
"name": "total_delegation",
"type": "uint256"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [],
"name": "getTotalEligibleVotesCount",
"outputs": [
{
"internalType": "uint64",
"name": "",
"type": "uint64"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [
{
"internalType": "address",
"name": "delegator",
"type": "address"
},
{
"internalType": "address",
"name": "validator",
"type": "address"
},
{
"internalType": "uint64",
"name": "undelegation_id",
"type": "uint64"
}
],
"name": "getUndelegationV2",
"outputs": [
{
"components": [
{
"components": [
{
"internalType": "uint256",
"name": "stake",
"type": "uint256"
},
{
"internalType": "uint64",
"name": "block",
"type": "uint64"
},
{
"internalType": "address",
"name": "validator",
"type": "address"
},
{
"internalType": "bool",
"name": "validator_exists",
"type": "bool"
}
],
"internalType": "struct DposInterface.UndelegationData",
"name": "undelegation_data",
"type": "tuple"
},
{
"internalType": "uint64",
"name": "undelegation_id",
"type": "uint64"
}
],
"internalType": "struct DposInterface.UndelegationV2Data",
"name": "undelegation_v2",
"type": "tuple"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [
{
"internalType": "address",
"name": "delegator",
"type": "address"
},
{
"internalType": "uint32",
"name": "batch",
"type": "uint32"
}
],
"name": "getUndelegations",
"outputs": [
{
"components": [
{
"internalType": "uint256",
"name": "stake",
"type": "uint256"
},
{
"internalType": "uint64",
"name": "block",
"type": "uint64"
},
{
"internalType": "address",
"name": "validator",
"type": "address"
},
{
"internalType": "bool",
"name": "validator_exists",
"type": "bool"
}
],
"internalType": "struct DposInterface.UndelegationData[]",
"name": "undelegations",
"type": "tuple[]"
},
{
"internalType": "bool",
"name": "end",
"type": "bool"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [
{
"internalType": "address",
"name": "delegator",
"type": "address"
},
{
"internalType": "uint32",
"name": "batch",
"type": "uint32"
}
],
"name": "getUndelegationsV2",
"outputs": [
{
"components": [
{
"components": [
{
"internalType": "uint256",
"name": "stake",
"type": "uint256"
},
{
"internalType": "uint64",
"name": "block",
"type": "uint64"
},
{
"internalType": "address",
"name": "validator",
"type": "address"
},
{
"internalType": "bool",
"name": "validator_exists",
"type": "bool"
}
],
"internalType": "struct DposInterface.UndelegationData",
"name": "undelegation_data",
"type": "tuple"
},
{
"internalType": "uint64",
"name": "undelegation_id",
"type": "uint64"
}
],
"internalType": "struct DposInterface.UndelegationV2Data[]",
"name": "undelegations_v2",
"type": "tuple[]"
},
{
"internalType": "bool",
"name": "end",
"type": "bool"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [
{
"internalType": "address",
"name": "validator",
"type": "address"
}
],
"name": "getValidator",
"outputs": [
{
"components": [
{
"internalType": "uint256",
"name": "total_stake",
"type": "uint256"
},
{
"internalType": "uint256",
"name": "commission_reward",
"type": "uint256"
},
{
"internalType": "uint16",
"name": "commission",
"type": "uint16"
},
{
"internalType": "uint64",
"name": "last_commission_change",
"type": "uint64"
},
{
"internalType": "uint16",
"name": "undelegations_count",
"type": "uint16"
},
{
"internalType": "address",
"name": "owner",
"type": "address"
},
{
"internalType": "string",
"name": "description",
"type": "string"
},
{
"internalType": "string",
"name": "endpoint",
"type": "string"
}
],
"internalType": "struct DposInterface.ValidatorBasicInfo",
"name": "validator_info",
"type": "tuple"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [
{
"internalType": "address",
"name": "validator",
"type": "address"
}
],
"name": "getValidatorEligibleVotesCount",
"outputs": [
{
"internalType": "uint64",
"name": "",
"type": "uint64"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [
{
"internalType": "uint32",
"name": "batch",
"type": "uint32"
}
],
"name": "getValidators",
"outputs": [
{
"components": [
{
"internalType": "address",
"name": "account",
"type": "address"
},
{
"components": [
{
"internalType": "uint256",
"name": "total_stake",
"type": "uint256"
},
{
"internalType": "uint256",
"name": "commission_reward",
"type": "uint256"
},
{
"internalType": "uint16",
"name": "commission",
"type": "uint16"
},
{
"internalType": "uint64",
"name": "last_commission_change",
"type": "uint64"
},
{
"internalType": "uint16",
"name": "undelegations_count",
"type": "uint16"
},
{
"internalType": "address",
"name": "owner",
"type": "address"
},
{
"internalType": "string",
"name": "description",
"type": "string"
},
{
"internalType": "string",
"name": "endpoint",
"type": "string"
}
],
"internalType": "struct DposInterface.ValidatorBasicInfo",
"name": "info",
"type": "tuple"
}
],
"internalType": "struct DposInterface.ValidatorData[]",
"name": "validators",
"type": "tuple[]"
},
{
"internalType": "bool",
"name": "end",
"type": "bool"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [
{
"internalType": "address",
"name": "owner",
"type": "address"
},
{
"internalType": "uint32",
"name": "batch",
"type": "uint32"
}
],
"name": "getValidatorsFor",
"outputs": [
{
"components": [
{
"internalType": "address",
"name": "account",
"type": "address"
},
{
"components": [
{
"internalType": "uint256",
"name": "total_stake",
"type": "uint256"
},
{
"internalType": "uint256",
"name": "commission_reward",
"type": "uint256"
},
{
"internalType": "uint16",
"name": "commission",
"type": "uint16"
},
{
"internalType": "uint64",
"name": "last_commission_change",
"type": "uint64"
},
{
"internalType": "uint16",
"name": "undelegations_count",
"type": "uint16"
},
{
"internalType": "address",
"name": "owner",
"type": "address"
},
{
"internalType": "string",
"name": "description",
"type": "string"
},
{
"internalType": "string",
"name": "endpoint",
"type": "string"
}
],
"internalType": "struct DposInterface.ValidatorBasicInfo",
"name": "info",
"type": "tuple"
}
],
"internalType": "struct DposInterface.ValidatorData[]",
"name": "validators",
"type": "tuple[]"
},
{
"internalType": "bool",
"name": "end",
"type": "bool"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [
{
"internalType": "address",
"name": "validator",
"type": "address"
}
],
"name": "isValidatorEligible",
"outputs": [
{
"internalType": "bool",
"name": "",
"type": "bool"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [
{
"internalType": "address",
"name": "validator_from",
"type": "address"
},
{
"internalType": "address",
"name": "validator_to",
"type": "address"
},
{
"internalType": "uint256",
"name": "amount",
"type": "uint256"
}
],
"name": "reDelegate",
"outputs": [],
"stateMutability": "nonpayable",
"type": "function"
},
{
"inputs": [
{
"internalType": "address",
"name": "validator",
"type": "address"
},
{
"internalType": "bytes",
"name": "proof",
"type": "bytes"
},
{
"internalType": "bytes",
"name": "vrf_key",
"type": "bytes"
},
{
"internalType": "uint16",
"name": "commission",
"type": "uint16"
},
{
"internalType": "string",
"name": "description",
"type": "string"
},
{
"internalType": "string",
"name": "endpoint",
"type": "string"
}
],
"name": "registerValidator",
"outputs": [],
"stateMutability": "payable",
"type": "function"
},
{
"inputs": [
{
"internalType": "address",
"name": "validator",
"type": "address"
},
{
"internalType": "uint16",
"name": "commission",
"type": "uint16"
}
],
"name": "setCommission",
"outputs": [],
"stateMutability": "nonpayable",
"type": "function"
},
{
"inputs": [
{
"internalType": "address",
"name": "validator",
"type": "address"
},
{
"internalType": "string",
"name": "description",
"type": "string"
},
{
"internalType": "string",
"name": "endpoint",
"type": "string"
}
],
"name": "setValidatorInfo",
"outputs": [],
"stateMutability": "nonpayable",
"type": "function"
},
{
"inputs": [
{
"internalType": "address",
"name": "validator",
"type": "address"
},
{
"internalType": "uint256",
"name": "amount",
"type": "uint256"
}
],
"name": "undelegate",
"outputs": [],
"stateMutability": "nonpayable",
"type": "function"
},
{
"inputs": [
{
"internalType": "address",
"name": "validator",
"type": "address"
},
{
"internalType": "uint256",
"name": "amount",
"type": "uint256"
}
],
"name": "undelegateV2",
"outputs": [
{
"internalType": "uint64",
"name": "undelegation_id",
"type": "uint64"
}
],
"stateMutability": "nonpayable",
"type": "function"
}
]
}
{
"compiler": {
"version": "0.8.26+commit.8a97fa7a"
},
"language": "Solidity",
"output": {
"abi": [
{
"anonymous": false,
"inputs": [
{
"indexed": true,
"internalType": "address",
"name": "account",
"type": "address"
},
{
"indexed": true,
"internalType": "address",
"name": "validator",
"type": "address"
},
{
"indexed": false,
"internalType": "uint256",
"name": "amount",
"type": "uint256"
}
],
"name": "CommissionRewardsClaimed",
"type": "event"
},
{
"anonymous": false,
"inputs": [
{
"indexed": true,
"internalType": "address",
"name": "validator",
"type": "address"
},
{
"indexed": false,
"internalType": "uint16",
"name": "commission",
"type": "uint16"
}
],
"name": "CommissionSet",
"type": "event"
},
{
"anonymous": false,
"inputs": [
{
"indexed": true,
"internalType": "address",
"name": "delegator",
"type": "address"
},
{
"indexed": true,
"internalType": "address",
"name": "validator",
"type": "address"
},
{
"indexed": false,
"internalType": "uint256",
"name": "amount",
"type": "uint256"
}
],
"name": "Delegated",
"type": "event"
},
{
"anonymous": false,
"inputs": [
{
"indexed": true,
"internalType": "address",
"name": "delegator",
"type": "address"
},
{
"indexed": true,
"internalType": "address",
"name": "from",
"type": "address"
},
{
"indexed": true,
"internalType": "address",
"name": "to",
"type": "address"
},
{
"indexed": false,
"internalType": "uint256",
"name": "amount",
"type": "uint256"
}
],
"name": "Redelegated",
"type": "event"
},
{
"anonymous": false,
"inputs": [
{
"indexed": true,
"internalType": "address",
"name": "account",
"type": "address"
},
{
"indexed": true,
"internalType": "address",
"name": "validator",
"type": "address"
},
{
"indexed": false,
"internalType": "uint256",
"name": "amount",
"type": "uint256"
}
],
"name": "RewardsClaimed",
"type": "event"
},
{
"anonymous": false,
"inputs": [
{
"indexed": true,
"internalType": "address",
"name": "delegator",
"type": "address"
},
{
"indexed": true,
"internalType": "address",
"name": "validator",
"type": "address"
},
{
"indexed": false,
"internalType": "uint256",
"name": "amount",
"type": "uint256"
}
],
"name": "UndelegateCanceled",
"type": "event"
},
{
"anonymous": false,
"inputs": [
{
"indexed": true,
"internalType": "address",
"name": "delegator",
"type": "address"
},
{
"indexed": true,
"internalType": "address",
"name": "validator",
"type": "address"
},
{
"indexed": true,
"internalType": "uint64",
"name": "undelegation_id",
"type": "uint64"
},
{
"indexed": false,
"internalType": "uint256",
"name": "amount",
"type": "uint256"
}
],
"name": "UndelegateCanceledV2",
"type": "event"
},
{
"anonymous": false,
"inputs": [
{
"indexed": true,
"internalType": "address",
"name": "delegator",
"type": "address"
},
{
"indexed": true,
"internalType": "address",
"name": "validator",
"type": "address"
},
{
"indexed": false,
"internalType": "uint256",
"name": "amount",
"type": "uint256"
}
],
"name": "UndelegateConfirmed",
"type": "event"
},
{
"anonymous": false,
"inputs": [
{
"indexed": true,
"internalType": "address",
"name": "delegator",
"type": "address"
},
{
"indexed": true,
"internalType": "address",
"name": "validator",
"type": "address"
},
{
"indexed": true,
"internalType": "uint64",
"name": "undelegation_id",
"type": "uint64"
},
{
"indexed": false,
"internalType": "uint256",
"name": "amount",
"type": "uint256"
}
],
"name": "UndelegateConfirmedV2",
"type": "event"
},
{
"anonymous": false,
"inputs": [
{
"indexed": true,
"internalType": "address",
"name": "delegator",
"type": "address"
},
{
"indexed": true,
"internalType": "address",
"name": "validator",
"type": "address"
},
{
"indexed": false,
"internalType": "uint256",
"name": "amount",
"type": "uint256"
}
],
"name": "Undelegated",
"type": "event"
},
{
"anonymous": false,
"inputs": [
{
"indexed": true,
"internalType": "address",
"name": "delegator",
"type": "address"
},
{
"indexed": true,
"internalType": "address",
"name": "validator",
"type": "address"
},
{
"indexed": true,
"internalType": "uint64",
"name": "undelegation_id",
"type": "uint64"
},
{
"indexed": false,
"internalType": "uint256",
"name": "amount",
"type": "uint256"
}
],
"name": "UndelegatedV2",
"type": "event"
},
{
"anonymous": false,
"inputs": [
{
"indexed": true,
"internalType": "address",
"name": "validator",
"type": "address"
}
],
"name": "ValidatorInfoSet",
"type": "event"
},
{
"anonymous": false,
"inputs": [
{
"indexed": true,
"internalType": "address",
"name": "validator",
"type": "address"
}
],
"name": "ValidatorRegistered",
"type": "event"
},
{
"inputs": [
{
"internalType": "address",
"name": "validator",
"type": "address"
}
],
"name": "cancelUndelegate",
"outputs": [],
"stateMutability": "nonpayable",
"type": "function"
},
{
"inputs": [
{
"internalType": "address",
"name": "validator",
"type": "address"
},
{
"internalType": "uint64",
"name": "undelegation_id",
"type": "uint64"
}
],
"name": "cancelUndelegateV2",
"outputs": [],
"stateMutability": "nonpayable",
"type": "function"
},
{
"inputs": [],
"name": "claimAllRewards",
"outputs": [],
"stateMutability": "nonpayable",
"type": "function"
},
{
"inputs": [
{
"internalType": "address",
"name": "validator",
"type": "address"
}
],
"name": "claimCommissionRewards",
"outputs": [],
"stateMutability": "nonpayable",
"type": "function"
},
{
"inputs": [
{
"internalType": "address",
"name": "validator",
"type": "address"
}
],
"name": "claimRewards",
"outputs": [],
"stateMutability": "nonpayable",
"type": "function"
},
{
"inputs": [
{
"internalType": "address",
"name": "validator",
"type": "address"
}
],
"name": "confirmUndelegate",
"outputs": [],
"stateMutability": "nonpayable",
"type": "function"
},
{
"inputs": [
{
"internalType": "address",
"name": "validator",
"type": "address"
},
{
"internalType": "uint64",
"name": "undelegation_id",
"type": "uint64"
}
],
"name": "confirmUndelegateV2",
"outputs": [],
"stateMutability": "nonpayable",
"type": "function"
},
{
"inputs": [
{
"internalType": "address",
"name": "validator",
"type": "address"
}
],
"name": "delegate",
"outputs": [],
"stateMutability": "payable",
"type": "function"
},
{
"inputs": [
{
"internalType": "address",
"name": "delegator",
"type": "address"
},
{
"internalType": "uint32",
"name": "batch",
"type": "uint32"
}
],
"name": "getDelegations",
"outputs": [
{
"components": [
{
"internalType": "address",
"name": "account",
"type": "address"
},
{
"components": [
{
"internalType": "uint256",
"name": "stake",
"type": "uint256"
},
{
"internalType": "uint256",
"name": "rewards",
"type": "uint256"
}
],
"internalType": "struct DposInterface.DelegatorInfo",
"name": "delegation",
"type": "tuple"
}
],
"internalType": "struct DposInterface.DelegationData[]",
"name": "delegations",
"type": "tuple[]"
},
{
"internalType": "bool",
"name": "end",
"type": "bool"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [
{
"internalType": "address",
"name": "delegator",
"type": "address"
}
],
"name": "getTotalDelegation",
"outputs": [
{
"internalType": "uint256",
"name": "total_delegation",
"type": "uint256"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [],
"name": "getTotalEligibleVotesCount",
"outputs": [
{
"internalType": "uint64",
"name": "",
"type": "uint64"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [
{
"internalType": "address",
"name": "delegator",
"type": "address"
},
{
"internalType": "address",
"name": "validator",
"type": "address"
},
{
"internalType": "uint64",
"name": "undelegation_id",
"type": "uint64"
}
],
"name": "getUndelegationV2",
"outputs": [
{
"components": [
{
"components": [
{
"internalType": "uint256",
"name": "stake",
"type": "uint256"
},
{
"internalType": "uint64",
"name": "block",
"type": "uint64"
},
{
"internalType": "address",
"name": "validator",
"type": "address"
},
{
"internalType": "bool",
"name": "validator_exists",
"type": "bool"
}
],
"internalType": "struct DposInterface.UndelegationData",
"name": "undelegation_data",
"type": "tuple"
},
{
"internalType": "uint64",
"name": "undelegation_id",
"type": "uint64"
}
],
"internalType": "struct DposInterface.UndelegationV2Data",
"name": "undelegation_v2",
"type": "tuple"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [
{
"internalType": "address",
"name": "delegator",
"type": "address"
},
{
"internalType": "uint32",
"name": "batch",
"type": "uint32"
}
],
"name": "getUndelegations",
"outputs": [
{
"components": [
{
"internalType": "uint256",
"name": "stake",
"type": "uint256"
},
{
"internalType": "uint64",
"name": "block",
"type": "uint64"
},
{
"internalType": "address",
"name": "validator",
"type": "address"
},
{
"internalType": "bool",
"name": "validator_exists",
"type": "bool"
}
],
"internalType": "struct DposInterface.UndelegationData[]",
"name": "undelegations",
"type": "tuple[]"
},
{
"internalType": "bool",
"name": "end",
"type": "bool"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [
{
"internalType": "address",
"name": "delegator",
"type": "address"
},
{
"internalType": "uint32",
"name": "batch",
"type": "uint32"
}
],
"name": "getUndelegationsV2",
"outputs": [
{
"components": [
{
"components": [
{
"internalType": "uint256",
"name": "stake",
"type": "uint256"
},
{
"internalType": "uint64",
"name": "block",
"type": "uint64"
},
{
"internalType": "address",
"name": "validator",
"type": "address"
},
{
"internalType": "bool",
"name": "validator_exists",
"type": "bool"
}
],
"internalType": "struct DposInterface.UndelegationData",
"name": "undelegation_data",
"type": "tuple"
},
{
"internalType": "uint64",
"name": "undelegation_id",
"type": "uint64"
}
],
"internalType": "struct DposInterface.UndelegationV2Data[]",
"name": "undelegations_v2",
"type": "tuple[]"
},
{
"internalType": "bool",
"name": "end",
"type": "bool"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [
{
"internalType": "address",
"name": "validator",
"type": "address"
}
],
"name": "getValidator",
"outputs": [
{
"components": [
{
"internalType": "uint256",
"name": "total_stake",
"type": "uint256"
},
{
"internalType": "uint256",
"name": "commission_reward",
"type": "uint256"
},
{
"internalType": "uint16",
"name": "commission",
"type": "uint16"
},
{
"internalType": "uint64",
"name": "last_commission_change",
"type": "uint64"
},
{
"internalType": "uint16",
"name": "undelegations_count",
"type": "uint16"
},
{
"internalType": "address",
"name": "owner",
"type": "address"
},
{
"internalType": "string",
"name": "description",
"type": "string"
},
{
"internalType": "string",
"name": "endpoint",
"type": "string"
}
],
"internalType": "struct DposInterface.ValidatorBasicInfo",
"name": "validator_info",
"type": "tuple"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [
{
"internalType": "address",
"name": "validator",
"type": "address"
}
],
"name": "getValidatorEligibleVotesCount",
"outputs": [
{
"internalType": "uint64",
"name": "",
"type": "uint64"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [
{
"internalType": "uint32",
"name": "batch",
"type": "uint32"
}
],
"name": "getValidators",
"outputs": [
{
"components": [
{
"internalType": "address",
"name": "account",
"type": "address"
},
{
"components": [
{
"internalType": "uint256",
"name": "total_stake",
"type": "uint256"
},
{
"internalType": "uint256",
"name": "commission_reward",
"type": "uint256"
},
{
"internalType": "uint16",
"name": "commission",
"type": "uint16"
},
{
"internalType": "uint64",
"name": "last_commission_change",
"type": "uint64"
},
{
"internalType": "uint16",
"name": "undelegations_count",
"type": "uint16"
},
{
"internalType": "address",
"name": "owner",
"type": "address"
},
{
"internalType": "string",
"name": "description",
"type": "string"
},
{
"internalType": "string",
"name": "endpoint",
"type": "string"
}
],
"internalType": "struct DposInterface.ValidatorBasicInfo",
"name": "info",
"type": "tuple"
}
],
"internalType": "struct DposInterface.ValidatorData[]",
"name": "validators",
"type": "tuple[]"
},
{
"internalType": "bool",
"name": "end",
"type": "bool"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [
{
"internalType": "address",
"name": "owner",
"type": "address"
},
{
"internalType": "uint32",
"name": "batch",
"type": "uint32"
}
],
"name": "getValidatorsFor",
"outputs": [
{
"components": [
{
"internalType": "address",
"name": "account",
"type": "address"
},
{
"components": [
{
"internalType": "uint256",
"name": "total_stake",
"type": "uint256"
},
{
"internalType": "uint256",
"name": "commission_reward",
"type": "uint256"
},
{
"internalType": "uint16",
"name": "commission",
"type": "uint16"
},
{
"internalType": "uint64",
"name": "last_commission_change",
"type": "uint64"
},
{
"internalType": "uint16",
"name": "undelegations_count",
"type": "uint16"
},
{
"internalType": "address",
"name": "owner",
"type": "address"
},
{
"internalType": "string",
"name": "description",
"type": "string"
},
{
"internalType": "string",
"name": "endpoint",
"type": "string"
}
],
"internalType": "struct DposInterface.ValidatorBasicInfo",
"name": "info",
"type": "tuple"
}
],
"internalType": "struct DposInterface.ValidatorData[]",
"name": "validators",
"type": "tuple[]"
},
{
"internalType": "bool",
"name": "end",
"type": "bool"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [
{
"internalType": "address",
"name": "validator",
"type": "address"
}
],
"name": "isValidatorEligible",
"outputs": [
{
"internalType": "bool",
"name": "",
"type": "bool"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [
{
"internalType": "address",
"name": "validator_from",
"type": "address"
},
{
"internalType": "address",
"name": "validator_to",
"type": "address"
},
{
"internalType": "uint256",
"name": "amount",
"type": "uint256"
}
],
"name": "reDelegate",
"outputs": [],
"stateMutability": "nonpayable",
"type": "function"
},
{
"inputs": [
{
"internalType": "address",
"name": "validator",
"type": "address"
},
{
"internalType": "bytes",
"name": "proof",
"type": "bytes"
},
{
"internalType": "bytes",
"name": "vrf_key",
"type": "bytes"
},
{
"internalType": "uint16",
"name": "commission",
"type": "uint16"
},
{
"internalType": "string",
"name": "description",
"type": "string"
},
{
"internalType": "string",
"name": "endpoint",
"type": "string"
}
],
"name": "registerValidator",
"outputs": [],
"stateMutability": "payable",
"type": "function"
},
{
"inputs": [
{
"internalType": "address",
"name": "validator",
"type": "address"
},
{
"internalType": "uint16",
"name": "commission",
"type": "uint16"
}
],
"name": "setCommission",
"outputs": [],
"stateMutability": "nonpayable",
"type": "function"
},
{
"inputs": [
{
"internalType": "address",
"name": "validator",
"type": "address"
},
{
"internalType": "string",
"name": "description",
"type": "string"
},
{
"internalType": "string",
"name": "endpoint",
"type": "string"
}
],
"name": "setValidatorInfo",
"outputs": [],
"stateMutability": "nonpayable",
"type": "function"
},
{
"inputs": [
{
"internalType": "address",
"name": "validator",
"type": "address"
},
{
"internalType": "uint256",
"name": "amount",
"type": "uint256"
}
],
"name": "undelegate",
"outputs": [],
"stateMutability": "nonpayable",
"type": "function"
},
{
"inputs": [
{
"internalType": "address",
"name": "validator",
"type": "address"
},
{
"internalType": "uint256",
"name": "amount",
"type": "uint256"
}
],
"name": "undelegateV2",
"outputs": [
{
"internalType": "uint64",
"name": "undelegation_id",
"type": "uint64"
}
],
"stateMutability": "nonpayable",
"type": "function"
}
],
"devdoc": {
"kind": "dev",
"methods": {
"getDelegations(address,uint32)": {
"params": {
"batch": "Batch number to be fetched. If the list is too big it cannot return all delegations in one call. Instead, users are fetching batches of 50 delegations at a time",
"delegator": "delegator account address"
},
"returns": {
"delegations": " Batch of N delegations",
"end": " Flag if there are no more delegations left. To get all delegations, caller should fetch all batches until he sees end == true"
}
},
"getTotalDelegation(address)": {
"params": {
"delegator": "Delegator account address"
},
"returns": {
"total_delegation": "amount that was delegated"
}
},
"getUndelegationV2(address,address,uint64)": {
"params": {
"delegator": "delegator account address",
"undelegation_id": "undelegation id",
"validator": "validator account address"
},
"returns": {
"undelegation_v2": "undelegation_v2"
}
},
"getUndelegations(address,uint32)": {
"params": {
"batch": "Batch number to be fetched. If the list is too big it cannot return all undelegations in one call. Instead, users are fetching batches of 50 undelegations at a time",
"delegator": "delegator account address"
},
"returns": {
"end": " Flag if there are no more undelegations left. To get all undelegations, caller should fetch all batches until he sees end == true",
"undelegations": " Batch of N undelegations"
}
},
"getUndelegationsV2(address,uint32)": {
"params": {
"batch": "Batch number to be fetched. If the list is too big it cannot return all undelegations in one call. Instead, users are fetching batches of 50 undelegations at a time",
"delegator": "delegator account address"
},
"returns": {
"end": " Flag if there are no more undelegations left. To get all undelegations, caller should fetch all batches until he sees end == true",
"undelegations_v2": " Batch of N undelegations"
}
},
"getValidatorsFor(address,uint32)": {
"params": {
"batch": "Batch number to be fetched. If the list is too big it cannot return all validators in one call. Instead, users are fetching batches of 100 account at a time",
"owner": "Owner address"
},
"returns": {
"end": " Flag if there are no more accounts left. To get all accounts, caller should fetch all batches until he sees end == true",
"validators": " Batch of N validators basic info"
}
},
"setValidatorInfo(address,string,string)": {
"params": {
"description": "New description (e.g name, short purpose description, etc...)",
"endpoint": "New endpoint, might be a validator's website"
}
}
},
"version": 1
},
"userdoc": {
"kind": "user",
"methods": {
"claimAllRewards()": {
"notice": "Claims staking rewards from all validators (limited by max dag block gas limit) that caller has delegated to"
},
"getDelegations(address,uint32)": {
"notice": "Returns list of delegations for specified delegator - which validators delegator delegated to"
},
"getTotalDelegation(address)": {
"notice": "Returns total delegation for specified delegator"
},
"getUndelegationV2(address,address,uint64)": {
"notice": "Returns V2 undelegation for specified delegator, validator & and undelegation_id"
},
"getUndelegations(address,uint32)": {
"notice": "Returns list of undelegations for specified delegator"
},
"getUndelegationsV2(address,uint32)": {
"notice": "Returns list of V2 undelegations for specified delegator"
},
"getValidatorsFor(address,uint32)": {
"notice": "Returns list of validators owned by an address"
},
"setValidatorInfo(address,string,string)": {
"notice": "Sets some of the static validator details."
}
},
"version": 1
}
},
"settings": {
"compilationTarget": {
"dpos_contract_interface[1].sol": "DposInterface"
},
"evmVersion": "cancun",
"libraries": {},
"metadata": {
"bytecodeHash": "ipfs"
},
"optimizer": {
"enabled": false,
"runs": 200
},
"remappings": []
},
"sources": {
"dpos_contract_interface[1].sol": {
"keccak256": "0x828638d5c5d7f711e638c847ee607290216252dd4ee896c06bbad899ff0cd10a",
"license": "MIT",
"urls": [
"bzz-raw://210a50fb5dc296f83df9b231452af382a613194354e44e6d96aab82099ef3f69",
"dweb:/ipfs/QmTSszKa6aLBrHyfrzm1P3Sr9txw7WsJxU3dnpxArnbWuJ"
]
}
},
"version": 1
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment