{
  "_format": "hh-sol-artifact-1",
  "contractName": "IProtocolStaker",
  "sourceName": "contracts/mocks/Stargate/interfaces/IProtocolStaker.sol",
  "abi": [
    {
      "anonymous": false,
      "inputs": [
        {
          "indexed": true,
          "internalType": "address",
          "name": "validator",
          "type": "address"
        },
        {
          "indexed": false,
          "internalType": "address",
          "name": "beneficiary",
          "type": "address"
        }
      ],
      "name": "BeneficiarySet",
      "type": "event"
    },
    {
      "anonymous": false,
      "inputs": [
        {
          "indexed": true,
          "internalType": "address",
          "name": "validator",
          "type": "address"
        },
        {
          "indexed": true,
          "internalType": "uint256",
          "name": "delegationID",
          "type": "uint256"
        },
        {
          "indexed": false,
          "internalType": "uint256",
          "name": "stake",
          "type": "uint256"
        },
        {
          "indexed": false,
          "internalType": "uint8",
          "name": "multiplier",
          "type": "uint8"
        }
      ],
      "name": "DelegationAdded",
      "type": "event"
    },
    {
      "anonymous": false,
      "inputs": [
        {
          "indexed": true,
          "internalType": "uint256",
          "name": "delegationID",
          "type": "uint256"
        }
      ],
      "name": "DelegationSignaledExit",
      "type": "event"
    },
    {
      "anonymous": false,
      "inputs": [
        {
          "indexed": true,
          "internalType": "uint256",
          "name": "delegationID",
          "type": "uint256"
        },
        {
          "indexed": false,
          "internalType": "uint256",
          "name": "stake",
          "type": "uint256"
        }
      ],
      "name": "DelegationWithdrawn",
      "type": "event"
    },
    {
      "anonymous": false,
      "inputs": [
        {
          "indexed": true,
          "internalType": "address",
          "name": "validator",
          "type": "address"
        },
        {
          "indexed": false,
          "internalType": "uint256",
          "name": "removed",
          "type": "uint256"
        }
      ],
      "name": "StakeDecreased",
      "type": "event"
    },
    {
      "anonymous": false,
      "inputs": [
        {
          "indexed": true,
          "internalType": "address",
          "name": "validator",
          "type": "address"
        },
        {
          "indexed": false,
          "internalType": "uint256",
          "name": "added",
          "type": "uint256"
        }
      ],
      "name": "StakeIncreased",
      "type": "event"
    },
    {
      "anonymous": false,
      "inputs": [
        {
          "indexed": true,
          "internalType": "address",
          "name": "validator",
          "type": "address"
        },
        {
          "indexed": true,
          "internalType": "address",
          "name": "endorser",
          "type": "address"
        },
        {
          "indexed": false,
          "internalType": "uint32",
          "name": "period",
          "type": "uint32"
        },
        {
          "indexed": false,
          "internalType": "uint256",
          "name": "stake",
          "type": "uint256"
        }
      ],
      "name": "ValidationQueued",
      "type": "event"
    },
    {
      "anonymous": false,
      "inputs": [
        {
          "indexed": true,
          "internalType": "address",
          "name": "validator",
          "type": "address"
        }
      ],
      "name": "ValidationSignaledExit",
      "type": "event"
    },
    {
      "anonymous": false,
      "inputs": [
        {
          "indexed": true,
          "internalType": "address",
          "name": "validator",
          "type": "address"
        },
        {
          "indexed": false,
          "internalType": "uint256",
          "name": "stake",
          "type": "uint256"
        }
      ],
      "name": "ValidationWithdrawn",
      "type": "event"
    },
    {
      "inputs": [
        {
          "internalType": "address",
          "name": "validator",
          "type": "address"
        },
        {
          "internalType": "uint8",
          "name": "multiplier",
          "type": "uint8"
        }
      ],
      "name": "addDelegation",
      "outputs": [
        {
          "internalType": "uint256",
          "name": "delegationID",
          "type": "uint256"
        }
      ],
      "stateMutability": "payable",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "address",
          "name": "validator",
          "type": "address"
        },
        {
          "internalType": "uint32",
          "name": "period",
          "type": "uint32"
        }
      ],
      "name": "addValidation",
      "outputs": [],
      "stateMutability": "payable",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "address",
          "name": "validator",
          "type": "address"
        },
        {
          "internalType": "uint256",
          "name": "amount",
          "type": "uint256"
        }
      ],
      "name": "decreaseStake",
      "outputs": [],
      "stateMutability": "nonpayable",
      "type": "function"
    },
    {
      "inputs": [],
      "name": "firstActive",
      "outputs": [
        {
          "internalType": "address",
          "name": "firstActive",
          "type": "address"
        }
      ],
      "stateMutability": "view",
      "type": "function"
    },
    {
      "inputs": [],
      "name": "firstQueued",
      "outputs": [
        {
          "internalType": "address",
          "name": "firstQueued",
          "type": "address"
        }
      ],
      "stateMutability": "view",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "uint256",
          "name": "delegationID",
          "type": "uint256"
        }
      ],
      "name": "getDelegation",
      "outputs": [
        {
          "internalType": "address",
          "name": "validator",
          "type": "address"
        },
        {
          "internalType": "uint256",
          "name": "stake",
          "type": "uint256"
        },
        {
          "internalType": "uint8",
          "name": "multiplier",
          "type": "uint8"
        },
        {
          "internalType": "bool",
          "name": "isLocked",
          "type": "bool"
        }
      ],
      "stateMutability": "view",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "uint256",
          "name": "delegationID",
          "type": "uint256"
        }
      ],
      "name": "getDelegationPeriodDetails",
      "outputs": [
        {
          "internalType": "uint32",
          "name": "startPeriod",
          "type": "uint32"
        },
        {
          "internalType": "uint32",
          "name": "endPeriod",
          "type": "uint32"
        }
      ],
      "stateMutability": "view",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "address",
          "name": "validator",
          "type": "address"
        },
        {
          "internalType": "uint32",
          "name": "stakingPeriod",
          "type": "uint32"
        }
      ],
      "name": "getDelegatorsRewards",
      "outputs": [
        {
          "internalType": "uint256",
          "name": "rewards",
          "type": "uint256"
        }
      ],
      "stateMutability": "view",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "address",
          "name": "validator",
          "type": "address"
        }
      ],
      "name": "getValidation",
      "outputs": [
        {
          "internalType": "address",
          "name": "endorser",
          "type": "address"
        },
        {
          "internalType": "uint256",
          "name": "stake",
          "type": "uint256"
        },
        {
          "internalType": "uint256",
          "name": "weight",
          "type": "uint256"
        },
        {
          "internalType": "uint256",
          "name": "queuedStake",
          "type": "uint256"
        },
        {
          "internalType": "uint8",
          "name": "status",
          "type": "uint8"
        },
        {
          "internalType": "uint32",
          "name": "offlineBlock",
          "type": "uint32"
        }
      ],
      "stateMutability": "view",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "address",
          "name": "validator",
          "type": "address"
        }
      ],
      "name": "getValidationPeriodDetails",
      "outputs": [
        {
          "internalType": "uint32",
          "name": "period",
          "type": "uint32"
        },
        {
          "internalType": "uint32",
          "name": "startBlock",
          "type": "uint32"
        },
        {
          "internalType": "uint32",
          "name": "exitBlock",
          "type": "uint32"
        },
        {
          "internalType": "uint32",
          "name": "completedPeriods",
          "type": "uint32"
        }
      ],
      "stateMutability": "view",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "address",
          "name": "validator",
          "type": "address"
        }
      ],
      "name": "getValidationTotals",
      "outputs": [
        {
          "internalType": "uint256",
          "name": "lockedVET",
          "type": "uint256"
        },
        {
          "internalType": "uint256",
          "name": "lockedWeight",
          "type": "uint256"
        },
        {
          "internalType": "uint256",
          "name": "queuedVET",
          "type": "uint256"
        },
        {
          "internalType": "uint256",
          "name": "exitingVET",
          "type": "uint256"
        },
        {
          "internalType": "uint256",
          "name": "nextPeriodWeight",
          "type": "uint256"
        }
      ],
      "stateMutability": "view",
      "type": "function"
    },
    {
      "inputs": [],
      "name": "getValidationsNum",
      "outputs": [
        {
          "internalType": "uint64",
          "name": "activeCount",
          "type": "uint64"
        },
        {
          "internalType": "uint64",
          "name": "queuedCount",
          "type": "uint64"
        }
      ],
      "stateMutability": "view",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "address",
          "name": "id",
          "type": "address"
        }
      ],
      "name": "getWithdrawable",
      "outputs": [
        {
          "internalType": "uint256",
          "name": "withdrawableVET",
          "type": "uint256"
        }
      ],
      "stateMutability": "view",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "address",
          "name": "validator",
          "type": "address"
        }
      ],
      "name": "increaseStake",
      "outputs": [],
      "stateMutability": "payable",
      "type": "function"
    },
    {
      "inputs": [],
      "name": "issuance",
      "outputs": [
        {
          "internalType": "uint256",
          "name": "issued",
          "type": "uint256"
        }
      ],
      "stateMutability": "view",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "address",
          "name": "prev",
          "type": "address"
        }
      ],
      "name": "next",
      "outputs": [
        {
          "internalType": "address",
          "name": "nextValidation",
          "type": "address"
        }
      ],
      "stateMutability": "view",
      "type": "function"
    },
    {
      "inputs": [],
      "name": "queuedStake",
      "outputs": [
        {
          "internalType": "uint256",
          "name": "queuedStake",
          "type": "uint256"
        }
      ],
      "stateMutability": "view",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "address",
          "name": "validator",
          "type": "address"
        },
        {
          "internalType": "address",
          "name": "beneficiary",
          "type": "address"
        }
      ],
      "name": "setBeneficiary",
      "outputs": [],
      "stateMutability": "nonpayable",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "uint256",
          "name": "delegationID",
          "type": "uint256"
        }
      ],
      "name": "signalDelegationExit",
      "outputs": [],
      "stateMutability": "nonpayable",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "address",
          "name": "validator",
          "type": "address"
        }
      ],
      "name": "signalExit",
      "outputs": [],
      "stateMutability": "nonpayable",
      "type": "function"
    },
    {
      "inputs": [],
      "name": "totalStake",
      "outputs": [
        {
          "internalType": "uint256",
          "name": "totalStake",
          "type": "uint256"
        },
        {
          "internalType": "uint256",
          "name": "totalWeight",
          "type": "uint256"
        }
      ],
      "stateMutability": "view",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "uint256",
          "name": "delegationID",
          "type": "uint256"
        }
      ],
      "name": "withdrawDelegation",
      "outputs": [],
      "stateMutability": "nonpayable",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "address",
          "name": "validator",
          "type": "address"
        }
      ],
      "name": "withdrawStake",
      "outputs": [],
      "stateMutability": "nonpayable",
      "type": "function"
    }
  ],
  "bytecode": "0x",
  "deployedBytecode": "0x",
  "linkReferences": {},
  "deployedLinkReferences": {}
}
