{
  "_format": "hh-sol-artifact-1",
  "contractName": "AdvancedVoting",
  "sourceName": "contracts/test/examples/advanced/AdvancedVoting.sol",
  "abi": [
    {
      "inputs": [
        {
          "internalType": "contract AdvancedPolicy",
          "name": "_policy",
          "type": "address"
        }
      ],
      "stateMutability": "nonpayable",
      "type": "constructor"
    },
    {
      "inputs": [],
      "name": "AlreadyEligible",
      "type": "error"
    },
    {
      "inputs": [],
      "name": "InvalidOption",
      "type": "error"
    },
    {
      "inputs": [],
      "name": "NotEligible",
      "type": "error"
    },
    {
      "inputs": [],
      "name": "NotRegistered",
      "type": "error"
    },
    {
      "inputs": [],
      "name": "NotVoted",
      "type": "error"
    },
    {
      "anonymous": false,
      "inputs": [
        {
          "indexed": false,
          "internalType": "address",
          "name": "voter",
          "type": "address"
        }
      ],
      "name": "Eligible",
      "type": "event"
    },
    {
      "anonymous": false,
      "inputs": [
        {
          "indexed": false,
          "internalType": "address",
          "name": "voter",
          "type": "address"
        }
      ],
      "name": "Registered",
      "type": "event"
    },
    {
      "anonymous": false,
      "inputs": [
        {
          "indexed": false,
          "internalType": "address",
          "name": "voter",
          "type": "address"
        },
        {
          "indexed": false,
          "internalType": "uint8",
          "name": "option",
          "type": "uint8"
        }
      ],
      "name": "Voted",
      "type": "event"
    },
    {
      "inputs": [],
      "name": "POLICY",
      "outputs": [
        {
          "internalType": "contract AdvancedPolicy",
          "name": "",
          "type": "address"
        }
      ],
      "stateMutability": "view",
      "type": "function"
    },
    {
      "inputs": [],
      "name": "eligible",
      "outputs": [],
      "stateMutability": "nonpayable",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "address",
          "name": "",
          "type": "address"
        }
      ],
      "name": "hasVoted",
      "outputs": [
        {
          "internalType": "bool",
          "name": "",
          "type": "bool"
        }
      ],
      "stateMutability": "view",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "address",
          "name": "",
          "type": "address"
        }
      ],
      "name": "isEligible",
      "outputs": [
        {
          "internalType": "bool",
          "name": "",
          "type": "bool"
        }
      ],
      "stateMutability": "view",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "uint256",
          "name": "tokenId",
          "type": "uint256"
        }
      ],
      "name": "register",
      "outputs": [],
      "stateMutability": "nonpayable",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "address",
          "name": "",
          "type": "address"
        }
      ],
      "name": "registered",
      "outputs": [
        {
          "internalType": "bool",
          "name": "",
          "type": "bool"
        }
      ],
      "stateMutability": "view",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "uint8",
          "name": "option",
          "type": "uint8"
        }
      ],
      "name": "vote",
      "outputs": [],
      "stateMutability": "nonpayable",
      "type": "function"
    }
  ],
  "bytecode": "0x60a060405234801561001057600080fd5b506040516106e43803806106e483398101604081905261002f91610040565b6001600160a01b0316608052610070565b60006020828403121561005257600080fd5b81516001600160a01b038116811461006957600080fd5b9392505050565b6080516106446100a060003960008181610122015281816101da01528181610377015261043401526106446000f3fe608060405234801561001057600080fd5b506004361061007d5760003560e01c8063b3f98adc1161005b578063b3f98adc14610100578063d832d92f14610115578063dadbccee1461011d578063f207564e1461015c57600080fd5b806309eef43e1461008257806366e305fd146100ba578063b2dd5c07146100dd575b600080fd5b6100a5610090366004610520565b60016020526000908152604090205460ff1681565b60405190151581526020015b60405180910390f35b6100a56100c8366004610520565b60026020526000908152604090205460ff1681565b6100a56100eb366004610520565b60006020819052908152604090205460ff1681565b61011361010e366004610550565b61016f565b005b6101136102c1565b6101447f000000000000000000000000000000000000000000000000000000000000000081565b6040516001600160a01b0390911681526020016100b1565b61011361016a366004610573565b610432565b3360009081526020819052604090205460ff1661019f5760405163aba4733960e01b815260040160405180910390fd5b60028160ff16106101c357604051632a71953160e01b815260040160405180910390fd5b6040805160ff831660208201526001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016916314423fde9133910160405160208183030381529060405260016040518463ffffffff1660e01b81526004016102339392919061058c565b600060405180830381600087803b15801561024d57600080fd5b505af1158015610261573d6000803e3d6000fd5b505033600081815260016020818152604092839020805460ff1916909217909155815192835260ff8616908301527f14075e33dffdc00c1fcaf75d0f86d667170be57fb566b12b41b499e5fa53b12593500190505b60405180910390a150565b3360009081526020819052604090205460ff166102f15760405163aba4733960e01b815260040160405180910390fd5b3360009081526001602052604090205460ff166103215760405163f8d49bcd60e01b815260040160405180910390fd5b3360009081526002602052604090205460ff161561035257604051638eb49d8d60e01b815260040160405180910390fd5b60408051600081526020810191829052630a211fef60e11b9091526001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016906314423fde906103af90339060026024820161058c565b600060405180830381600087803b1580156103c957600080fd5b505af11580156103dd573d6000803e3d6000fd5b505033600081815260026020908152604091829020805460ff1916600117905590519182527f36cd5b9d4fdc2d0cf34eda84f3ffd903552e17139454f5f502a305eb3bed15ad935001905060405180910390a1565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03166314423fde338360405160200161047591815260200190565b60405160208183030381529060405260006040518463ffffffff1660e01b81526004016104a49392919061058c565b600060405180830381600087803b1580156104be57600080fd5b505af11580156104d2573d6000803e3d6000fd5b50503360008181526020818152604091829020805460ff1916600117905590519182527f2d3734a8e47ac8316e500ac231c90a6e1848ca2285f40d07eaa52005e4b3a0e993500190506102b6565b60006020828403121561053257600080fd5b81356001600160a01b038116811461054957600080fd5b9392505050565b60006020828403121561056257600080fd5b813560ff8116811461054957600080fd5b60006020828403121561058557600080fd5b5035919050565b60018060a01b0384168152606060208201526000835180606084015260005b818110156105c857602081870181015160808684010152016105ab565b506000608082850101526080601f19601f8301168401019150506003831061060057634e487b7160e01b600052602160045260246000fd5b82604083015294935050505056fea26469706673582212207402c76205c9b7a903fbb3918031b77d4655d802ec1e1877bbbe8ddf56cdc91264736f6c634300081c0033",
  "deployedBytecode": "0x608060405234801561001057600080fd5b506004361061007d5760003560e01c8063b3f98adc1161005b578063b3f98adc14610100578063d832d92f14610115578063dadbccee1461011d578063f207564e1461015c57600080fd5b806309eef43e1461008257806366e305fd146100ba578063b2dd5c07146100dd575b600080fd5b6100a5610090366004610520565b60016020526000908152604090205460ff1681565b60405190151581526020015b60405180910390f35b6100a56100c8366004610520565b60026020526000908152604090205460ff1681565b6100a56100eb366004610520565b60006020819052908152604090205460ff1681565b61011361010e366004610550565b61016f565b005b6101136102c1565b6101447f000000000000000000000000000000000000000000000000000000000000000081565b6040516001600160a01b0390911681526020016100b1565b61011361016a366004610573565b610432565b3360009081526020819052604090205460ff1661019f5760405163aba4733960e01b815260040160405180910390fd5b60028160ff16106101c357604051632a71953160e01b815260040160405180910390fd5b6040805160ff831660208201526001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016916314423fde9133910160405160208183030381529060405260016040518463ffffffff1660e01b81526004016102339392919061058c565b600060405180830381600087803b15801561024d57600080fd5b505af1158015610261573d6000803e3d6000fd5b505033600081815260016020818152604092839020805460ff1916909217909155815192835260ff8616908301527f14075e33dffdc00c1fcaf75d0f86d667170be57fb566b12b41b499e5fa53b12593500190505b60405180910390a150565b3360009081526020819052604090205460ff166102f15760405163aba4733960e01b815260040160405180910390fd5b3360009081526001602052604090205460ff166103215760405163f8d49bcd60e01b815260040160405180910390fd5b3360009081526002602052604090205460ff161561035257604051638eb49d8d60e01b815260040160405180910390fd5b60408051600081526020810191829052630a211fef60e11b9091526001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016906314423fde906103af90339060026024820161058c565b600060405180830381600087803b1580156103c957600080fd5b505af11580156103dd573d6000803e3d6000fd5b505033600081815260026020908152604091829020805460ff1916600117905590519182527f36cd5b9d4fdc2d0cf34eda84f3ffd903552e17139454f5f502a305eb3bed15ad935001905060405180910390a1565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03166314423fde338360405160200161047591815260200190565b60405160208183030381529060405260006040518463ffffffff1660e01b81526004016104a49392919061058c565b600060405180830381600087803b1580156104be57600080fd5b505af11580156104d2573d6000803e3d6000fd5b50503360008181526020818152604091829020805460ff1916600117905590519182527f2d3734a8e47ac8316e500ac231c90a6e1848ca2285f40d07eaa52005e4b3a0e993500190506102b6565b60006020828403121561053257600080fd5b81356001600160a01b038116811461054957600080fd5b9392505050565b60006020828403121561056257600080fd5b813560ff8116811461054957600080fd5b60006020828403121561058557600080fd5b5035919050565b60018060a01b0384168152606060208201526000835180606084015260005b818110156105c857602081870181015160808684010152016105ab565b506000608082850101526080601f19601f8301168401019150506003831061060057634e487b7160e01b600052602160045260246000fd5b82604083015294935050505056fea26469706673582212207402c76205c9b7a903fbb3918031b77d4655d802ec1e1877bbbe8ddf56cdc91264736f6c634300081c0033",
  "linkReferences": {},
  "deployedLinkReferences": {}
}
