{
  "abi": [
    {
      "constant": true,
      "inputs": [],
      "name": "CHANGE_VOTE_TIME_ROLE",
      "outputs": [
        {
          "name": "",
          "type": "bytes32"
        }
      ],
      "payable": false,
      "stateMutability": "view",
      "type": "function"
    },
    {
      "constant": true,
      "inputs": [
        {
          "name": "_interfaceId",
          "type": "bytes4"
        }
      ],
      "name": "supportsInterface",
      "outputs": [
        {
          "name": "",
          "type": "bool"
        }
      ],
      "payable": false,
      "stateMutability": "pure",
      "type": "function"
    },
    {
      "constant": true,
      "inputs": [],
      "name": "hasInitialized",
      "outputs": [
        {
          "name": "",
          "type": "bool"
        }
      ],
      "payable": false,
      "stateMutability": "view",
      "type": "function"
    },
    {
      "constant": false,
      "inputs": [
        {
          "name": "_executionScript",
          "type": "bytes"
        },
        {
          "name": "_context",
          "type": "bytes"
        }
      ],
      "name": "newVote",
      "outputs": [
        {
          "name": "",
          "type": "uint256"
        }
      ],
      "payable": false,
      "stateMutability": "nonpayable",
      "type": "function"
    },
    {
      "constant": true,
      "inputs": [
        {
          "name": "_voteId",
          "type": "uint256"
        }
      ],
      "name": "isVoteOpenForVoting",
      "outputs": [
        {
          "name": "",
          "type": "bool"
        }
      ],
      "payable": false,
      "stateMutability": "view",
      "type": "function"
    },
    {
      "constant": true,
      "inputs": [],
      "name": "MAX_VOTES_DELEGATION_SET_LENGTH",
      "outputs": [
        {
          "name": "",
          "type": "uint256"
        }
      ],
      "payable": false,
      "stateMutability": "view",
      "type": "function"
    },
    {
      "constant": false,
      "inputs": [
        {
          "name": "_agreement",
          "type": "address"
        }
      ],
      "name": "setAgreement",
      "outputs": [],
      "payable": false,
      "stateMutability": "nonpayable",
      "type": "function"
    },
    {
      "constant": true,
      "inputs": [
        {
          "name": "_script",
          "type": "bytes"
        }
      ],
      "name": "getEVMScriptExecutor",
      "outputs": [
        {
          "name": "",
          "type": "address"
        }
      ],
      "payable": false,
      "stateMutability": "view",
      "type": "function"
    },
    {
      "constant": true,
      "inputs": [],
      "name": "getRecoveryVault",
      "outputs": [
        {
          "name": "",
          "type": "address"
        }
      ],
      "payable": false,
      "stateMutability": "view",
      "type": "function"
    },
    {
      "constant": true,
      "inputs": [
        {
          "name": "_settingId",
          "type": "uint256"
        }
      ],
      "name": "getSetting",
      "outputs": [
        {
          "name": "voteTime",
          "type": "uint64"
        },
        {
          "name": "supportRequiredPct",
          "type": "uint64"
        },
        {
          "name": "minAcceptQuorumPct",
          "type": "uint64"
        },
        {
          "name": "delegatedVotingPeriod",
          "type": "uint64"
        },
        {
          "name": "quietEndingPeriod",
          "type": "uint64"
        },
        {
          "name": "quietEndingExtension",
          "type": "uint64"
        },
        {
          "name": "executionDelay",
          "type": "uint64"
        }
      ],
      "payable": false,
      "stateMutability": "view",
      "type": "function"
    },
    {
      "constant": true,
      "inputs": [],
      "name": "settingsLength",
      "outputs": [
        {
          "name": "",
          "type": "uint256"
        }
      ],
      "payable": false,
      "stateMutability": "view",
      "type": "function"
    },
    {
      "constant": false,
      "inputs": [
        {
          "name": "_quietEndingPeriod",
          "type": "uint64"
        },
        {
          "name": "_quietEndingExtension",
          "type": "uint64"
        }
      ],
      "name": "changeQuietEndingConfiguration",
      "outputs": [],
      "payable": false,
      "stateMutability": "nonpayable",
      "type": "function"
    },
    {
      "constant": true,
      "inputs": [],
      "name": "CHANGE_EXECUTION_DELAY_ROLE",
      "outputs": [
        {
          "name": "",
          "type": "bytes32"
        }
      ],
      "payable": false,
      "stateMutability": "view",
      "type": "function"
    },
    {
      "constant": true,
      "inputs": [],
      "name": "forwarderType",
      "outputs": [
        {
          "name": "",
          "type": "uint8"
        }
      ],
      "payable": false,
      "stateMutability": "pure",
      "type": "function"
    },
    {
      "constant": false,
      "inputs": [
        {
          "name": "_representative",
          "type": "address"
        }
      ],
      "name": "setRepresentative",
      "outputs": [],
      "payable": false,
      "stateMutability": "nonpayable",
      "type": "function"
    },
    {
      "constant": true,
      "inputs": [
        {
          "name": "_voteId",
          "type": "uint256"
        }
      ],
      "name": "getVote",
      "outputs": [
        {
          "name": "yea",
          "type": "uint256"
        },
        {
          "name": "nay",
          "type": "uint256"
        },
        {
          "name": "totalPower",
          "type": "uint256"
        },
        {
          "name": "startDate",
          "type": "uint64"
        },
        {
          "name": "snapshotBlock",
          "type": "uint64"
        },
        {
          "name": "status",
          "type": "uint8"
        },
        {
          "name": "settingId",
          "type": "uint256"
        },
        {
          "name": "actionId",
          "type": "uint256"
        },
        {
          "name": "pausedAt",
          "type": "uint64"
        },
        {
          "name": "pauseDuration",
          "type": "uint64"
        },
        {
          "name": "quietEndingExtensionDuration",
          "type": "uint64"
        },
        {
          "name": "quietEndingSnapshotSupport",
          "type": "uint8"
        },
        {
          "name": "executionScriptHash",
          "type": "bytes32"
        }
      ],
      "payable": false,
      "stateMutability": "view",
      "type": "function"
    },
    {
      "constant": false,
      "inputs": [
        {
          "name": "_evmScript",
          "type": "bytes"
        },
        {
          "name": "_context",
          "type": "bytes"
        }
      ],
      "name": "forward",
      "outputs": [],
      "payable": false,
      "stateMutability": "nonpayable",
      "type": "function"
    },
    {
      "constant": false,
      "inputs": [
        {
          "name": "_minAcceptQuorumPct",
          "type": "uint64"
        }
      ],
      "name": "changeMinAcceptQuorumPct",
      "outputs": [],
      "payable": false,
      "stateMutability": "nonpayable",
      "type": "function"
    },
    {
      "constant": true,
      "inputs": [],
      "name": "CHANGE_SUPPORT_ROLE",
      "outputs": [
        {
          "name": "",
          "type": "bytes32"
        }
      ],
      "payable": false,
      "stateMutability": "view",
      "type": "function"
    },
    {
      "constant": true,
      "inputs": [
        {
          "name": "_voteId",
          "type": "uint256"
        }
      ],
      "name": "canChallenge",
      "outputs": [
        {
          "name": "",
          "type": "bool"
        }
      ],
      "payable": false,
      "stateMutability": "view",
      "type": "function"
    },
    {
      "constant": false,
      "inputs": [
        {
          "name": "_executionDelay",
          "type": "uint64"
        }
      ],
      "name": "changeExecutionDelay",
      "outputs": [],
      "payable": false,
      "stateMutability": "nonpayable",
      "type": "function"
    },
    {
      "constant": false,
      "inputs": [
        {
          "name": "_voteId",
          "type": "uint256"
        },
        {
          "name": "_supports",
          "type": "bool"
        },
        {
          "name": "_voters",
          "type": "address[]"
        }
      ],
      "name": "voteOnBehalfOf",
      "outputs": [],
      "payable": false,
      "stateMutability": "nonpayable",
      "type": "function"
    },
    {
      "constant": true,
      "inputs": [
        {
          "name": "_voteId",
          "type": "uint256"
        }
      ],
      "name": "canClose",
      "outputs": [
        {
          "name": "",
          "type": "bool"
        }
      ],
      "payable": false,
      "stateMutability": "view",
      "type": "function"
    },
    {
      "constant": true,
      "inputs": [],
      "name": "CHANGE_DELEGATED_VOTING_PERIOD_ROLE",
      "outputs": [
        {
          "name": "",
          "type": "bytes32"
        }
      ],
      "payable": false,
      "stateMutability": "view",
      "type": "function"
    },
    {
      "constant": false,
      "inputs": [
        {
          "name": "_disputableActionId",
          "type": "uint256"
        }
      ],
      "name": "onDisputableActionAllowed",
      "outputs": [],
      "payable": false,
      "stateMutability": "nonpayable",
      "type": "function"
    },
    {
      "constant": false,
      "inputs": [
        {
          "name": "_supportRequiredPct",
          "type": "uint64"
        }
      ],
      "name": "changeSupportRequiredPct",
      "outputs": [],
      "payable": false,
      "stateMutability": "nonpayable",
      "type": "function"
    },
    {
      "constant": true,
      "inputs": [
        {
          "name": "token",
          "type": "address"
        }
      ],
      "name": "allowRecoverability",
      "outputs": [
        {
          "name": "",
          "type": "bool"
        }
      ],
      "payable": false,
      "stateMutability": "view",
      "type": "function"
    },
    {
      "constant": false,
      "inputs": [
        {
          "name": "_disputableActionId",
          "type": "uint256"
        },
        {
          "name": "_challengeId",
          "type": "uint256"
        },
        {
          "name": "_challenger",
          "type": "address"
        }
      ],
      "name": "onDisputableActionChallenged",
      "outputs": [],
      "payable": false,
      "stateMutability": "nonpayable",
      "type": "function"
    },
    {
      "constant": true,
      "inputs": [],
      "name": "appId",
      "outputs": [
        {
          "name": "",
          "type": "bytes32"
        }
      ],
      "payable": false,
      "stateMutability": "view",
      "type": "function"
    },
    {
      "constant": true,
      "inputs": [
        {
          "name": "_voteId",
          "type": "uint256"
        },
        {
          "name": "_voters",
          "type": "address[]"
        },
        {
          "name": "_representative",
          "type": "address"
        }
      ],
      "name": "canVoteOnBehalfOf",
      "outputs": [
        {
          "name": "",
          "type": "bool"
        }
      ],
      "payable": false,
      "stateMutability": "view",
      "type": "function"
    },
    {
      "constant": true,
      "inputs": [],
      "name": "CHANGE_QUIET_ENDING_ROLE",
      "outputs": [
        {
          "name": "",
          "type": "bytes32"
        }
      ],
      "payable": false,
      "stateMutability": "view",
      "type": "function"
    },
    {
      "constant": true,
      "inputs": [],
      "name": "getInitializationBlock",
      "outputs": [
        {
          "name": "",
          "type": "uint256"
        }
      ],
      "payable": false,
      "stateMutability": "view",
      "type": "function"
    },
    {
      "constant": true,
      "inputs": [],
      "name": "CHALLENGE_ROLE",
      "outputs": [
        {
          "name": "",
          "type": "bytes32"
        }
      ],
      "payable": false,
      "stateMutability": "view",
      "type": "function"
    },
    {
      "constant": true,
      "inputs": [
        {
          "name": "_voter",
          "type": "address"
        },
        {
          "name": "_representative",
          "type": "address"
        }
      ],
      "name": "isRepresentativeOf",
      "outputs": [
        {
          "name": "",
          "type": "bool"
        }
      ],
      "payable": false,
      "stateMutability": "view",
      "type": "function"
    },
    {
      "constant": false,
      "inputs": [
        {
          "name": "_voteId",
          "type": "uint256"
        },
        {
          "name": "_executionScript",
          "type": "bytes"
        }
      ],
      "name": "executeVote",
      "outputs": [],
      "payable": false,
      "stateMutability": "nonpayable",
      "type": "function"
    },
    {
      "constant": true,
      "inputs": [],
      "name": "CHANGE_QUORUM_ROLE",
      "outputs": [
        {
          "name": "",
          "type": "bytes32"
        }
      ],
      "payable": false,
      "stateMutability": "view",
      "type": "function"
    },
    {
      "constant": true,
      "inputs": [
        {
          "name": "_voteId",
          "type": "uint256"
        },
        {
          "name": "_voter",
          "type": "address"
        }
      ],
      "name": "getCastVote",
      "outputs": [
        {
          "name": "state",
          "type": "uint8"
        },
        {
          "name": "caster",
          "type": "address"
        }
      ],
      "payable": false,
      "stateMutability": "view",
      "type": "function"
    },
    {
      "constant": false,
      "inputs": [
        {
          "name": "_token",
          "type": "address"
        }
      ],
      "name": "transferToVault",
      "outputs": [],
      "payable": false,
      "stateMutability": "nonpayable",
      "type": "function"
    },
    {
      "constant": true,
      "inputs": [
        {
          "name": "_sender",
          "type": "address"
        },
        {
          "name": "_role",
          "type": "bytes32"
        },
        {
          "name": "_params",
          "type": "uint256[]"
        }
      ],
      "name": "canPerform",
      "outputs": [
        {
          "name": "",
          "type": "bool"
        }
      ],
      "payable": false,
      "stateMutability": "view",
      "type": "function"
    },
    {
      "constant": true,
      "inputs": [],
      "name": "getEVMScriptRegistry",
      "outputs": [
        {
          "name": "",
          "type": "address"
        }
      ],
      "payable": false,
      "stateMutability": "view",
      "type": "function"
    },
    {
      "constant": true,
      "inputs": [
        {
          "name": "_voteId",
          "type": "uint256"
        }
      ],
      "name": "canRepresentativesVote",
      "outputs": [
        {
          "name": "",
          "type": "bool"
        }
      ],
      "payable": false,
      "stateMutability": "view",
      "type": "function"
    },
    {
      "constant": false,
      "inputs": [
        {
          "name": "_token",
          "type": "address"
        },
        {
          "name": "_voteTime",
          "type": "uint64"
        },
        {
          "name": "_supportRequiredPct",
          "type": "uint64"
        },
        {
          "name": "_minAcceptQuorumPct",
          "type": "uint64"
        },
        {
          "name": "_delegatedVotingPeriod",
          "type": "uint64"
        },
        {
          "name": "_quietEndingPeriod",
          "type": "uint64"
        },
        {
          "name": "_quietEndingExtension",
          "type": "uint64"
        },
        {
          "name": "_executionDelay",
          "type": "uint64"
        }
      ],
      "name": "initialize",
      "outputs": [],
      "payable": false,
      "stateMutability": "nonpayable",
      "type": "function"
    },
    {
      "constant": false,
      "inputs": [
        {
          "name": "_disputableActionId",
          "type": "uint256"
        }
      ],
      "name": "onDisputableActionVoided",
      "outputs": [],
      "payable": false,
      "stateMutability": "nonpayable",
      "type": "function"
    },
    {
      "constant": false,
      "inputs": [
        {
          "name": "_delegatedVotingPeriod",
          "type": "uint64"
        }
      ],
      "name": "changeDelegatedVotingPeriod",
      "outputs": [],
      "payable": false,
      "stateMutability": "nonpayable",
      "type": "function"
    },
    {
      "constant": true,
      "inputs": [],
      "name": "getAgreement",
      "outputs": [
        {
          "name": "",
          "type": "address"
        }
      ],
      "payable": false,
      "stateMutability": "view",
      "type": "function"
    },
    {
      "constant": true,
      "inputs": [],
      "name": "CREATE_VOTES_ROLE",
      "outputs": [
        {
          "name": "",
          "type": "bytes32"
        }
      ],
      "payable": false,
      "stateMutability": "view",
      "type": "function"
    },
    {
      "constant": true,
      "inputs": [
        {
          "name": "_sender",
          "type": "address"
        },
        {
          "name": "_evmScript",
          "type": "bytes"
        }
      ],
      "name": "canForward",
      "outputs": [
        {
          "name": "",
          "type": "bool"
        }
      ],
      "payable": false,
      "stateMutability": "view",
      "type": "function"
    },
    {
      "constant": false,
      "inputs": [
        {
          "name": "_voteTime",
          "type": "uint64"
        }
      ],
      "name": "changeVoteTime",
      "outputs": [],
      "payable": false,
      "stateMutability": "nonpayable",
      "type": "function"
    },
    {
      "constant": false,
      "inputs": [
        {
          "name": "_voteId",
          "type": "uint256"
        },
        {
          "name": "_supports",
          "type": "bool"
        }
      ],
      "name": "vote",
      "outputs": [],
      "payable": false,
      "stateMutability": "nonpayable",
      "type": "function"
    },
    {
      "constant": true,
      "inputs": [
        {
          "name": "_voteId",
          "type": "uint256"
        }
      ],
      "name": "canExecute",
      "outputs": [
        {
          "name": "",
          "type": "bool"
        }
      ],
      "payable": false,
      "stateMutability": "view",
      "type": "function"
    },
    {
      "constant": true,
      "inputs": [
        {
          "name": "_voteId",
          "type": "uint256"
        },
        {
          "name": "_voter",
          "type": "address"
        }
      ],
      "name": "canVote",
      "outputs": [
        {
          "name": "",
          "type": "bool"
        }
      ],
      "payable": false,
      "stateMutability": "view",
      "type": "function"
    },
    {
      "constant": true,
      "inputs": [],
      "name": "SET_AGREEMENT_ROLE",
      "outputs": [
        {
          "name": "",
          "type": "bytes32"
        }
      ],
      "payable": false,
      "stateMutability": "view",
      "type": "function"
    },
    {
      "constant": true,
      "inputs": [],
      "name": "kernel",
      "outputs": [
        {
          "name": "",
          "type": "address"
        }
      ],
      "payable": false,
      "stateMutability": "view",
      "type": "function"
    },
    {
      "constant": true,
      "inputs": [],
      "name": "isPetrified",
      "outputs": [
        {
          "name": "",
          "type": "bool"
        }
      ],
      "payable": false,
      "stateMutability": "view",
      "type": "function"
    },
    {
      "constant": true,
      "inputs": [],
      "name": "votesLength",
      "outputs": [
        {
          "name": "",
          "type": "uint256"
        }
      ],
      "payable": false,
      "stateMutability": "view",
      "type": "function"
    },
    {
      "constant": false,
      "inputs": [
        {
          "name": "_disputableActionId",
          "type": "uint256"
        }
      ],
      "name": "onDisputableActionRejected",
      "outputs": [],
      "payable": false,
      "stateMutability": "nonpayable",
      "type": "function"
    },
    {
      "constant": true,
      "inputs": [],
      "name": "token",
      "outputs": [
        {
          "name": "",
          "type": "address"
        }
      ],
      "payable": false,
      "stateMutability": "view",
      "type": "function"
    },
    {
      "constant": true,
      "inputs": [],
      "name": "PCT_BASE",
      "outputs": [
        {
          "name": "",
          "type": "uint256"
        }
      ],
      "payable": false,
      "stateMutability": "view",
      "type": "function"
    },
    {
      "constant": true,
      "inputs": [],
      "name": "isForwarder",
      "outputs": [
        {
          "name": "",
          "type": "bool"
        }
      ],
      "payable": false,
      "stateMutability": "pure",
      "type": "function"
    },
    {
      "anonymous": false,
      "inputs": [
        {
          "indexed": false,
          "name": "settingId",
          "type": "uint256"
        }
      ],
      "name": "NewSetting",
      "type": "event"
    },
    {
      "anonymous": false,
      "inputs": [
        {
          "indexed": false,
          "name": "voteTime",
          "type": "uint64"
        }
      ],
      "name": "ChangeVoteTime",
      "type": "event"
    },
    {
      "anonymous": false,
      "inputs": [
        {
          "indexed": false,
          "name": "supportRequiredPct",
          "type": "uint64"
        }
      ],
      "name": "ChangeSupportRequired",
      "type": "event"
    },
    {
      "anonymous": false,
      "inputs": [
        {
          "indexed": false,
          "name": "minAcceptQuorumPct",
          "type": "uint64"
        }
      ],
      "name": "ChangeMinQuorum",
      "type": "event"
    },
    {
      "anonymous": false,
      "inputs": [
        {
          "indexed": false,
          "name": "delegatedVotingPeriod",
          "type": "uint64"
        }
      ],
      "name": "ChangeDelegatedVotingPeriod",
      "type": "event"
    },
    {
      "anonymous": false,
      "inputs": [
        {
          "indexed": false,
          "name": "quietEndingPeriod",
          "type": "uint64"
        },
        {
          "indexed": false,
          "name": "quietEndingExtension",
          "type": "uint64"
        }
      ],
      "name": "ChangeQuietEndingConfiguration",
      "type": "event"
    },
    {
      "anonymous": false,
      "inputs": [
        {
          "indexed": false,
          "name": "executionDelay",
          "type": "uint64"
        }
      ],
      "name": "ChangeExecutionDelay",
      "type": "event"
    },
    {
      "anonymous": false,
      "inputs": [
        {
          "indexed": true,
          "name": "voteId",
          "type": "uint256"
        },
        {
          "indexed": true,
          "name": "creator",
          "type": "address"
        },
        {
          "indexed": false,
          "name": "context",
          "type": "bytes"
        },
        {
          "indexed": false,
          "name": "executionScript",
          "type": "bytes"
        }
      ],
      "name": "StartVote",
      "type": "event"
    },
    {
      "anonymous": false,
      "inputs": [
        {
          "indexed": true,
          "name": "voteId",
          "type": "uint256"
        },
        {
          "indexed": true,
          "name": "challengeId",
          "type": "uint256"
        }
      ],
      "name": "PauseVote",
      "type": "event"
    },
    {
      "anonymous": false,
      "inputs": [
        {
          "indexed": true,
          "name": "voteId",
          "type": "uint256"
        }
      ],
      "name": "ResumeVote",
      "type": "event"
    },
    {
      "anonymous": false,
      "inputs": [
        {
          "indexed": true,
          "name": "voteId",
          "type": "uint256"
        }
      ],
      "name": "CancelVote",
      "type": "event"
    },
    {
      "anonymous": false,
      "inputs": [
        {
          "indexed": true,
          "name": "voteId",
          "type": "uint256"
        }
      ],
      "name": "ExecuteVote",
      "type": "event"
    },
    {
      "anonymous": false,
      "inputs": [
        {
          "indexed": true,
          "name": "voteId",
          "type": "uint256"
        },
        {
          "indexed": false,
          "name": "passing",
          "type": "bool"
        }
      ],
      "name": "QuietEndingExtendVote",
      "type": "event"
    },
    {
      "anonymous": false,
      "inputs": [
        {
          "indexed": true,
          "name": "voteId",
          "type": "uint256"
        },
        {
          "indexed": true,
          "name": "voter",
          "type": "address"
        },
        {
          "indexed": false,
          "name": "supports",
          "type": "bool"
        },
        {
          "indexed": false,
          "name": "caster",
          "type": "address"
        }
      ],
      "name": "CastVote",
      "type": "event"
    },
    {
      "anonymous": false,
      "inputs": [
        {
          "indexed": true,
          "name": "voter",
          "type": "address"
        },
        {
          "indexed": true,
          "name": "representative",
          "type": "address"
        }
      ],
      "name": "ChangeRepresentative",
      "type": "event"
    },
    {
      "anonymous": false,
      "inputs": [
        {
          "indexed": true,
          "name": "voteId",
          "type": "uint256"
        },
        {
          "indexed": true,
          "name": "voter",
          "type": "address"
        },
        {
          "indexed": true,
          "name": "representative",
          "type": "address"
        }
      ],
      "name": "ProxyVoteFailure",
      "type": "event"
    },
    {
      "anonymous": false,
      "inputs": [
        {
          "indexed": true,
          "name": "executor",
          "type": "address"
        },
        {
          "indexed": false,
          "name": "script",
          "type": "bytes"
        },
        {
          "indexed": false,
          "name": "input",
          "type": "bytes"
        },
        {
          "indexed": false,
          "name": "returnData",
          "type": "bytes"
        }
      ],
      "name": "ScriptResult",
      "type": "event"
    },
    {
      "anonymous": false,
      "inputs": [
        {
          "indexed": true,
          "name": "vault",
          "type": "address"
        },
        {
          "indexed": true,
          "name": "token",
          "type": "address"
        },
        {
          "indexed": false,
          "name": "amount",
          "type": "uint256"
        }
      ],
      "name": "RecoverToVault",
      "type": "event"
    },
    {
      "anonymous": false,
      "inputs": [
        {
          "indexed": true,
          "name": "agreement",
          "type": "address"
        }
      ],
      "name": "AgreementSet",
      "type": "event"
    }
  ]
}
