{
  "_format": "hh-sol-artifact-1",
  "contractName": "BaseVoting",
  "sourceName": "contracts/test/examples/base/BaseVoting.sol",
  "abi": [
    {
      "inputs": [
        {
          "internalType": "contract BaseERC721Policy",
          "name": "_policy",
          "type": "address"
        }
      ],
      "stateMutability": "nonpayable",
      "type": "constructor"
    },
    {
      "inputs": [],
      "name": "AlreadyVoted",
      "type": "error"
    },
    {
      "inputs": [],
      "name": "InvalidOption",
      "type": "error"
    },
    {
      "inputs": [],
      "name": "NotRegistered",
      "type": "error"
    },
    {
      "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 BaseERC721Policy",
          "name": "",
          "type": "address"
        }
      ],
      "stateMutability": "view",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "address",
          "name": "",
          "type": "address"
        }
      ],
      "name": "hasVoted",
      "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": "0x60a0604052348015600f57600080fd5b50604051610473380380610473833981016040819052602c91603c565b6001600160a01b0316608052606a565b600060208284031215604d57600080fd5b81516001600160a01b0381168114606357600080fd5b9392505050565b6080516103e861008b6000396000818160d1015261020001526103e86000f3fe608060405234801561001057600080fd5b50600436106100575760003560e01c806309eef43e1461005c578063b2dd5c0714610094578063b3f98adc146100b7578063dadbccee146100cc578063f207564e1461010b575b600080fd5b61007f61006a3660046102e9565b60016020526000908152604090205460ff1681565b60405190151581526020015b60405180910390f35b61007f6100a23660046102e9565b60006020819052908152604090205460ff1681565b6100ca6100c5366004610319565b61011e565b005b6100f37f000000000000000000000000000000000000000000000000000000000000000081565b6040516001600160a01b03909116815260200161008b565b6100ca61011936600461033c565b6101fe565b3360009081526020819052604090205460ff1661014e5760405163aba4733960e01b815260040160405180910390fd5b3360009081526001602052604090205460ff161561017f57604051637c9a1cf960e01b815260040160405180910390fd5b60028160ff16106101a357604051632a71953160e01b815260040160405180910390fd5b33600081815260016020818152604092839020805460ff1916909217909155815192835260ff8416908301527f14075e33dffdc00c1fcaf75d0f86d667170be57fb566b12b41b499e5fa53b12591015b60405180910390a150565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316631e898ef1338360405160200161024191815260200190565b6040516020818303038152906040526040518363ffffffff1660e01b815260040161026d929190610355565b600060405180830381600087803b15801561028757600080fd5b505af115801561029b573d6000803e3d6000fd5b50503360008181526020818152604091829020805460ff1916600117905590519182527f2d3734a8e47ac8316e500ac231c90a6e1848ca2285f40d07eaa52005e4b3a0e993500190506101f3565b6000602082840312156102fb57600080fd5b81356001600160a01b038116811461031257600080fd5b9392505050565b60006020828403121561032b57600080fd5b813560ff8116811461031257600080fd5b60006020828403121561034e57600080fd5b5035919050565b60018060a01b0383168152604060208201526000825180604084015260005b818110156103915760208186018101516060868401015201610374565b506000606082850101526060601f19601f830116840101915050939250505056fea2646970667358221220a06f93683365062dc6bfd909e74a05ae633f78d658c481b23673e095a51f23d964736f6c634300081c0033",
  "deployedBytecode": "0x608060405234801561001057600080fd5b50600436106100575760003560e01c806309eef43e1461005c578063b2dd5c0714610094578063b3f98adc146100b7578063dadbccee146100cc578063f207564e1461010b575b600080fd5b61007f61006a3660046102e9565b60016020526000908152604090205460ff1681565b60405190151581526020015b60405180910390f35b61007f6100a23660046102e9565b60006020819052908152604090205460ff1681565b6100ca6100c5366004610319565b61011e565b005b6100f37f000000000000000000000000000000000000000000000000000000000000000081565b6040516001600160a01b03909116815260200161008b565b6100ca61011936600461033c565b6101fe565b3360009081526020819052604090205460ff1661014e5760405163aba4733960e01b815260040160405180910390fd5b3360009081526001602052604090205460ff161561017f57604051637c9a1cf960e01b815260040160405180910390fd5b60028160ff16106101a357604051632a71953160e01b815260040160405180910390fd5b33600081815260016020818152604092839020805460ff1916909217909155815192835260ff8416908301527f14075e33dffdc00c1fcaf75d0f86d667170be57fb566b12b41b499e5fa53b12591015b60405180910390a150565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316631e898ef1338360405160200161024191815260200190565b6040516020818303038152906040526040518363ffffffff1660e01b815260040161026d929190610355565b600060405180830381600087803b15801561028757600080fd5b505af115801561029b573d6000803e3d6000fd5b50503360008181526020818152604091829020805460ff1916600117905590519182527f2d3734a8e47ac8316e500ac231c90a6e1848ca2285f40d07eaa52005e4b3a0e993500190506101f3565b6000602082840312156102fb57600080fd5b81356001600160a01b038116811461031257600080fd5b9392505050565b60006020828403121561032b57600080fd5b813560ff8116811461031257600080fd5b60006020828403121561034e57600080fd5b5035919050565b60018060a01b0383168152604060208201526000825180604084015260005b818110156103915760208186018101516060868401015201610374565b506000606082850101526060601f19601f830116840101915050939250505056fea2646970667358221220a06f93683365062dc6bfd909e74a05ae633f78d658c481b23673e095a51f23d964736f6c634300081c0033",
  "linkReferences": {},
  "deployedLinkReferences": {}
}
