{
  "_format": "hh-sol-artifact-1",
  "contractName": "PrizeSplitHarness",
  "sourceName": "contracts/test/PrizeSplitHarness.sol",
  "abi": [
    {
      "inputs": [
        {
          "internalType": "address",
          "name": "_owner",
          "type": "address"
        }
      ],
      "stateMutability": "nonpayable",
      "type": "constructor"
    },
    {
      "anonymous": false,
      "inputs": [
        {
          "indexed": true,
          "internalType": "address",
          "name": "pendingOwner",
          "type": "address"
        }
      ],
      "name": "OwnershipOffered",
      "type": "event"
    },
    {
      "anonymous": false,
      "inputs": [
        {
          "indexed": true,
          "internalType": "address",
          "name": "previousOwner",
          "type": "address"
        },
        {
          "indexed": true,
          "internalType": "address",
          "name": "newOwner",
          "type": "address"
        }
      ],
      "name": "OwnershipTransferred",
      "type": "event"
    },
    {
      "anonymous": false,
      "inputs": [
        {
          "indexed": true,
          "internalType": "address",
          "name": "user",
          "type": "address"
        },
        {
          "indexed": false,
          "internalType": "uint256",
          "name": "prizeAwarded",
          "type": "uint256"
        },
        {
          "indexed": true,
          "internalType": "contract IControlledToken",
          "name": "token",
          "type": "address"
        }
      ],
      "name": "PrizeSplitAwarded",
      "type": "event"
    },
    {
      "anonymous": false,
      "inputs": [
        {
          "indexed": true,
          "internalType": "uint256",
          "name": "target",
          "type": "uint256"
        }
      ],
      "name": "PrizeSplitRemoved",
      "type": "event"
    },
    {
      "anonymous": false,
      "inputs": [
        {
          "indexed": true,
          "internalType": "address",
          "name": "target",
          "type": "address"
        },
        {
          "indexed": false,
          "internalType": "uint16",
          "name": "percentage",
          "type": "uint16"
        },
        {
          "indexed": false,
          "internalType": "uint256",
          "name": "index",
          "type": "uint256"
        }
      ],
      "name": "PrizeSplitSet",
      "type": "event"
    },
    {
      "inputs": [],
      "name": "ONE_AS_FIXED_POINT_3",
      "outputs": [
        {
          "internalType": "uint16",
          "name": "",
          "type": "uint16"
        }
      ],
      "stateMutability": "view",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "address",
          "name": "target",
          "type": "address"
        },
        {
          "internalType": "uint256",
          "name": "amount",
          "type": "uint256"
        }
      ],
      "name": "awardPrizeSplitAmount",
      "outputs": [],
      "stateMutability": "nonpayable",
      "type": "function"
    },
    {
      "inputs": [],
      "name": "claimOwnership",
      "outputs": [],
      "stateMutability": "nonpayable",
      "type": "function"
    },
    {
      "inputs": [],
      "name": "getPrizePool",
      "outputs": [
        {
          "internalType": "contract IPrizePool",
          "name": "",
          "type": "address"
        }
      ],
      "stateMutability": "pure",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "uint256",
          "name": "_prizeSplitIndex",
          "type": "uint256"
        }
      ],
      "name": "getPrizeSplit",
      "outputs": [
        {
          "components": [
            {
              "internalType": "address",
              "name": "target",
              "type": "address"
            },
            {
              "internalType": "uint16",
              "name": "percentage",
              "type": "uint16"
            }
          ],
          "internalType": "struct IPrizeSplit.PrizeSplitConfig",
          "name": "",
          "type": "tuple"
        }
      ],
      "stateMutability": "view",
      "type": "function"
    },
    {
      "inputs": [],
      "name": "getPrizeSplits",
      "outputs": [
        {
          "components": [
            {
              "internalType": "address",
              "name": "target",
              "type": "address"
            },
            {
              "internalType": "uint16",
              "name": "percentage",
              "type": "uint16"
            }
          ],
          "internalType": "struct IPrizeSplit.PrizeSplitConfig[]",
          "name": "",
          "type": "tuple[]"
        }
      ],
      "stateMutability": "view",
      "type": "function"
    },
    {
      "inputs": [],
      "name": "owner",
      "outputs": [
        {
          "internalType": "address",
          "name": "",
          "type": "address"
        }
      ],
      "stateMutability": "view",
      "type": "function"
    },
    {
      "inputs": [],
      "name": "pendingOwner",
      "outputs": [
        {
          "internalType": "address",
          "name": "",
          "type": "address"
        }
      ],
      "stateMutability": "view",
      "type": "function"
    },
    {
      "inputs": [],
      "name": "renounceOwnership",
      "outputs": [],
      "stateMutability": "nonpayable",
      "type": "function"
    },
    {
      "inputs": [
        {
          "components": [
            {
              "internalType": "address",
              "name": "target",
              "type": "address"
            },
            {
              "internalType": "uint16",
              "name": "percentage",
              "type": "uint16"
            }
          ],
          "internalType": "struct IPrizeSplit.PrizeSplitConfig",
          "name": "_prizeSplit",
          "type": "tuple"
        },
        {
          "internalType": "uint8",
          "name": "_prizeSplitIndex",
          "type": "uint8"
        }
      ],
      "name": "setPrizeSplit",
      "outputs": [],
      "stateMutability": "nonpayable",
      "type": "function"
    },
    {
      "inputs": [
        {
          "components": [
            {
              "internalType": "address",
              "name": "target",
              "type": "address"
            },
            {
              "internalType": "uint16",
              "name": "percentage",
              "type": "uint16"
            }
          ],
          "internalType": "struct IPrizeSplit.PrizeSplitConfig[]",
          "name": "_newPrizeSplits",
          "type": "tuple[]"
        }
      ],
      "name": "setPrizeSplits",
      "outputs": [],
      "stateMutability": "nonpayable",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "address",
          "name": "_newOwner",
          "type": "address"
        }
      ],
      "name": "transferOwnership",
      "outputs": [],
      "stateMutability": "nonpayable",
      "type": "function"
    }
  ],
  "bytecode": "0x608060405234801561001057600080fd5b506040516110d83803806110d883398101604081905261002f91610090565b8061003981610040565b50506100c0565b600080546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b6000602082840312156100a257600080fd5b81516001600160a01b03811681146100b957600080fd5b9392505050565b611009806100cf6000396000f3fe608060405234801561001057600080fd5b50600436106100d45760003560e01c8063884bf67c11610081578063cf713d6e1161005b578063cf713d6e14610186578063e30c3978146101c1578063f2fde38b146101d257600080fd5b8063884bf67c146101455780638da5cb5b14610160578063cf1e3b591461017157600080fd5b806345a9f187116100b257806345a9f187146101145780634e71e0c814610135578063715018a61461013d57600080fd5b8063056ea84f146100d9578063063a2298146100ee5780631898f91d14610101575b600080fd5b6100ec6100e7366004610ea3565b6101e5565b005b6100ec6100fc366004610e12565b610494565b6100ec61010f366004610de8565b610909565b61011d6103e881565b60405161ffff90911681526020015b60405180910390f35b6100ec610917565b6100ec6109a5565b60005b6040516001600160a01b03909116815260200161012c565b6000546001600160a01b0316610148565b610179610a1a565b60405161012c9190610efa565b610199610194366004610ee1565b610a91565b6040805182516001600160a01b0316815260209283015161ffff16928101929092520161012c565b6001546001600160a01b0316610148565b6100ec6101e0366004610dc6565b610af4565b336101f86000546001600160a01b031690565b6001600160a01b0316146102535760405162461bcd60e51b815260206004820152601860248201527f4f776e61626c652f63616c6c65722d6e6f742d6f776e6572000000000000000060448201526064015b60405180910390fd5b60025460ff8216106102cd5760405162461bcd60e51b815260206004820152602160248201527f5072697a6553706c69742f6e6f6e6578697374656e742d7072697a6573706c6960448201527f7400000000000000000000000000000000000000000000000000000000000000606482015260840161024a565b81516001600160a01b03166103495760405162461bcd60e51b8152602060048201526024808201527f5072697a6553706c69742f696e76616c69642d7072697a6573706c69742d746160448201527f7267657400000000000000000000000000000000000000000000000000000000606482015260840161024a565b8160028260ff168154811061036057610360610fbd565b60009182526020808320845192018054949091015161ffff16600160a01b0275ffffffffffffffffffffffffffffffffffffffffffff199094166001600160a01b0390921691909117929092179091556103b8610c30565b90506103e88111156104325760405162461bcd60e51b815260206004820152602e60248201527f5072697a6553706c69742f696e76616c69642d7072697a6573706c69742d706560448201527f7263656e746167652d746f74616c000000000000000000000000000000000000606482015260840161024a565b82600001516001600160a01b03167f0865d776fd684728838c688d6a6a82888f61c57a4032c8c320c24949317b9a3484602001518460405161048792919061ffff92909216825260ff16602082015260400190565b60405180910390a2505050565b336104a76000546001600160a01b031690565b6001600160a01b0316146104fd5760405162461bcd60e51b815260206004820152601860248201527f4f776e61626c652f63616c6c65722d6e6f742d6f776e65720000000000000000604482015260640161024a565b8060ff8111156105755760405162461bcd60e51b815260206004820152602560248201527f5072697a6553706c69742f696e76616c69642d7072697a6573706c6974732d6c60448201527f656e677468000000000000000000000000000000000000000000000000000000606482015260840161024a565b60005b818110156107f957600084848381811061059457610594610fbd565b9050604002018036038101906105aa9190610e87565b80519091506001600160a01b03166106295760405162461bcd60e51b8152602060048201526024808201527f5072697a6553706c69742f696e76616c69642d7072697a6573706c69742d746160448201527f7267657400000000000000000000000000000000000000000000000000000000606482015260840161024a565b60025482106106ae576002805460018101825560009190915281517f405787fa12a823e0f2b7631cc41b3ba8828b3321ca811111fa75cd3aa3bb5ace9091018054602084015161ffff16600160a01b0275ffffffffffffffffffffffffffffffffffffffffffff199091166001600160a01b0390931692909217919091179055610794565b6000600283815481106106c3576106c3610fbd565b6000918252602091829020604080518082019091529101546001600160a01b03808216808452600160a01b90920461ffff1693830193909352845191935091161415806107205750806020015161ffff16826020015161ffff1614155b1561078b57816002848154811061073957610739610fbd565b6000918252602091829020835191018054939092015161ffff16600160a01b0275ffffffffffffffffffffffffffffffffffffffffffff199093166001600160a01b0390911617919091179055610792565b50506107e7565b505b80516020808301516040805161ffff90921682529181018590526001600160a01b03909216917f0865d776fd684728838c688d6a6a82888f61c57a4032c8c320c24949317b9a34910160405180910390a2505b806107f181610f76565b915050610578565b505b60025481101561087f5760028054600019810191908061081d5761081d610fa7565b6000828152602081208201600019908101805475ffffffffffffffffffffffffffffffffffffffffffff1916905590910190915560405182917f99fa473fdf53414bcd014cf6e7509fc58c68f7b86174767faa6ad5100cd5bae591a2506107fb565b6000610889610c30565b90506103e88111156109035760405162461bcd60e51b815260206004820152602e60248201527f5072697a6553706c69742f696e76616c69642d7072697a6573706c69742d706560448201527f7263656e746167652d746f74616c000000000000000000000000000000000000606482015260840161024a565b50505050565b6109138282610c92565b5050565b6001546001600160a01b031633146109715760405162461bcd60e51b815260206004820152601f60248201527f4f776e61626c652f63616c6c65722d6e6f742d70656e64696e674f776e657200604482015260640161024a565b600154610986906001600160a01b0316610cd7565b6001805473ffffffffffffffffffffffffffffffffffffffff19169055565b336109b86000546001600160a01b031690565b6001600160a01b031614610a0e5760405162461bcd60e51b815260206004820152601860248201527f4f776e61626c652f63616c6c65722d6e6f742d6f776e65720000000000000000604482015260640161024a565b610a186000610cd7565b565b60606002805480602002602001604051908101604052809291908181526020016000905b82821015610a8857600084815260209081902060408051808201909152908401546001600160a01b0381168252600160a01b900461ffff1681830152825260019092019101610a3e565b50505050905090565b604080518082019091526000808252602082015260028281548110610ab857610ab8610fbd565b6000918252602091829020604080518082019091529101546001600160a01b0381168252600160a01b900461ffff169181019190915292915050565b33610b076000546001600160a01b031690565b6001600160a01b031614610b5d5760405162461bcd60e51b815260206004820152601860248201527f4f776e61626c652f63616c6c65722d6e6f742d6f776e65720000000000000000604482015260640161024a565b6001600160a01b038116610bd95760405162461bcd60e51b815260206004820152602560248201527f4f776e61626c652f70656e64696e674f776e65722d6e6f742d7a65726f2d616460448201527f6472657373000000000000000000000000000000000000000000000000000000606482015260840161024a565b6001805473ffffffffffffffffffffffffffffffffffffffff19166001600160a01b0383169081179091556040517f239a2ddded15777fa246aed5f7e1a9bc69a39d4eb4a397034d1d85766cca7d4c90600090a250565b6002546000908190815b81811015610c8a5760028181548110610c5557610c55610fbd565b600091825260209091200154610c7690600160a01b900461ffff1684610f5e565b925080610c8281610f76565b915050610c3a565b509092915050565b6040518181526000906001600160a01b038416907f40b9722744d0ba62d8b847077d65a712335b6769aa37fff7ad7852ec299222a79060200160405180910390a35050565b600080546001600160a01b0383811673ffffffffffffffffffffffffffffffffffffffff19831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b80356001600160a01b0381168114610d4b57600080fd5b919050565b600060408284031215610d6257600080fd5b6040516040810181811067ffffffffffffffff82111715610d9357634e487b7160e01b600052604160045260246000fd5b604052905080610da283610d34565b8152602083013561ffff81168114610db957600080fd5b6020919091015292915050565b600060208284031215610dd857600080fd5b610de182610d34565b9392505050565b60008060408385031215610dfb57600080fd5b610e0483610d34565b946020939093013593505050565b60008060208385031215610e2557600080fd5b823567ffffffffffffffff80821115610e3d57600080fd5b818501915085601f830112610e5157600080fd5b813581811115610e6057600080fd5b8660208260061b8501011115610e7557600080fd5b60209290920196919550909350505050565b600060408284031215610e9957600080fd5b610de18383610d50565b60008060608385031215610eb657600080fd5b610ec08484610d50565b9150604083013560ff81168114610ed657600080fd5b809150509250929050565b600060208284031215610ef357600080fd5b5035919050565b602080825282518282018190526000919060409081850190868401855b82811015610f5157610f4184835180516001600160a01b0316825260209081015161ffff16910152565b9284019290850190600101610f17565b5091979650505050505050565b60008219821115610f7157610f71610f91565b500190565b6000600019821415610f8a57610f8a610f91565b5060010190565b634e487b7160e01b600052601160045260246000fd5b634e487b7160e01b600052603160045260246000fd5b634e487b7160e01b600052603260045260246000fdfea26469706673582212201dd354c7606ec8e489e5d7d452927deca055d29ee8c587ddf193cee5f529e73b64736f6c63430008060033",
  "deployedBytecode": "0x608060405234801561001057600080fd5b50600436106100d45760003560e01c8063884bf67c11610081578063cf713d6e1161005b578063cf713d6e14610186578063e30c3978146101c1578063f2fde38b146101d257600080fd5b8063884bf67c146101455780638da5cb5b14610160578063cf1e3b591461017157600080fd5b806345a9f187116100b257806345a9f187146101145780634e71e0c814610135578063715018a61461013d57600080fd5b8063056ea84f146100d9578063063a2298146100ee5780631898f91d14610101575b600080fd5b6100ec6100e7366004610ea3565b6101e5565b005b6100ec6100fc366004610e12565b610494565b6100ec61010f366004610de8565b610909565b61011d6103e881565b60405161ffff90911681526020015b60405180910390f35b6100ec610917565b6100ec6109a5565b60005b6040516001600160a01b03909116815260200161012c565b6000546001600160a01b0316610148565b610179610a1a565b60405161012c9190610efa565b610199610194366004610ee1565b610a91565b6040805182516001600160a01b0316815260209283015161ffff16928101929092520161012c565b6001546001600160a01b0316610148565b6100ec6101e0366004610dc6565b610af4565b336101f86000546001600160a01b031690565b6001600160a01b0316146102535760405162461bcd60e51b815260206004820152601860248201527f4f776e61626c652f63616c6c65722d6e6f742d6f776e6572000000000000000060448201526064015b60405180910390fd5b60025460ff8216106102cd5760405162461bcd60e51b815260206004820152602160248201527f5072697a6553706c69742f6e6f6e6578697374656e742d7072697a6573706c6960448201527f7400000000000000000000000000000000000000000000000000000000000000606482015260840161024a565b81516001600160a01b03166103495760405162461bcd60e51b8152602060048201526024808201527f5072697a6553706c69742f696e76616c69642d7072697a6573706c69742d746160448201527f7267657400000000000000000000000000000000000000000000000000000000606482015260840161024a565b8160028260ff168154811061036057610360610fbd565b60009182526020808320845192018054949091015161ffff16600160a01b0275ffffffffffffffffffffffffffffffffffffffffffff199094166001600160a01b0390921691909117929092179091556103b8610c30565b90506103e88111156104325760405162461bcd60e51b815260206004820152602e60248201527f5072697a6553706c69742f696e76616c69642d7072697a6573706c69742d706560448201527f7263656e746167652d746f74616c000000000000000000000000000000000000606482015260840161024a565b82600001516001600160a01b03167f0865d776fd684728838c688d6a6a82888f61c57a4032c8c320c24949317b9a3484602001518460405161048792919061ffff92909216825260ff16602082015260400190565b60405180910390a2505050565b336104a76000546001600160a01b031690565b6001600160a01b0316146104fd5760405162461bcd60e51b815260206004820152601860248201527f4f776e61626c652f63616c6c65722d6e6f742d6f776e65720000000000000000604482015260640161024a565b8060ff8111156105755760405162461bcd60e51b815260206004820152602560248201527f5072697a6553706c69742f696e76616c69642d7072697a6573706c6974732d6c60448201527f656e677468000000000000000000000000000000000000000000000000000000606482015260840161024a565b60005b818110156107f957600084848381811061059457610594610fbd565b9050604002018036038101906105aa9190610e87565b80519091506001600160a01b03166106295760405162461bcd60e51b8152602060048201526024808201527f5072697a6553706c69742f696e76616c69642d7072697a6573706c69742d746160448201527f7267657400000000000000000000000000000000000000000000000000000000606482015260840161024a565b60025482106106ae576002805460018101825560009190915281517f405787fa12a823e0f2b7631cc41b3ba8828b3321ca811111fa75cd3aa3bb5ace9091018054602084015161ffff16600160a01b0275ffffffffffffffffffffffffffffffffffffffffffff199091166001600160a01b0390931692909217919091179055610794565b6000600283815481106106c3576106c3610fbd565b6000918252602091829020604080518082019091529101546001600160a01b03808216808452600160a01b90920461ffff1693830193909352845191935091161415806107205750806020015161ffff16826020015161ffff1614155b1561078b57816002848154811061073957610739610fbd565b6000918252602091829020835191018054939092015161ffff16600160a01b0275ffffffffffffffffffffffffffffffffffffffffffff199093166001600160a01b0390911617919091179055610792565b50506107e7565b505b80516020808301516040805161ffff90921682529181018590526001600160a01b03909216917f0865d776fd684728838c688d6a6a82888f61c57a4032c8c320c24949317b9a34910160405180910390a2505b806107f181610f76565b915050610578565b505b60025481101561087f5760028054600019810191908061081d5761081d610fa7565b6000828152602081208201600019908101805475ffffffffffffffffffffffffffffffffffffffffffff1916905590910190915560405182917f99fa473fdf53414bcd014cf6e7509fc58c68f7b86174767faa6ad5100cd5bae591a2506107fb565b6000610889610c30565b90506103e88111156109035760405162461bcd60e51b815260206004820152602e60248201527f5072697a6553706c69742f696e76616c69642d7072697a6573706c69742d706560448201527f7263656e746167652d746f74616c000000000000000000000000000000000000606482015260840161024a565b50505050565b6109138282610c92565b5050565b6001546001600160a01b031633146109715760405162461bcd60e51b815260206004820152601f60248201527f4f776e61626c652f63616c6c65722d6e6f742d70656e64696e674f776e657200604482015260640161024a565b600154610986906001600160a01b0316610cd7565b6001805473ffffffffffffffffffffffffffffffffffffffff19169055565b336109b86000546001600160a01b031690565b6001600160a01b031614610a0e5760405162461bcd60e51b815260206004820152601860248201527f4f776e61626c652f63616c6c65722d6e6f742d6f776e65720000000000000000604482015260640161024a565b610a186000610cd7565b565b60606002805480602002602001604051908101604052809291908181526020016000905b82821015610a8857600084815260209081902060408051808201909152908401546001600160a01b0381168252600160a01b900461ffff1681830152825260019092019101610a3e565b50505050905090565b604080518082019091526000808252602082015260028281548110610ab857610ab8610fbd565b6000918252602091829020604080518082019091529101546001600160a01b0381168252600160a01b900461ffff169181019190915292915050565b33610b076000546001600160a01b031690565b6001600160a01b031614610b5d5760405162461bcd60e51b815260206004820152601860248201527f4f776e61626c652f63616c6c65722d6e6f742d6f776e65720000000000000000604482015260640161024a565b6001600160a01b038116610bd95760405162461bcd60e51b815260206004820152602560248201527f4f776e61626c652f70656e64696e674f776e65722d6e6f742d7a65726f2d616460448201527f6472657373000000000000000000000000000000000000000000000000000000606482015260840161024a565b6001805473ffffffffffffffffffffffffffffffffffffffff19166001600160a01b0383169081179091556040517f239a2ddded15777fa246aed5f7e1a9bc69a39d4eb4a397034d1d85766cca7d4c90600090a250565b6002546000908190815b81811015610c8a5760028181548110610c5557610c55610fbd565b600091825260209091200154610c7690600160a01b900461ffff1684610f5e565b925080610c8281610f76565b915050610c3a565b509092915050565b6040518181526000906001600160a01b038416907f40b9722744d0ba62d8b847077d65a712335b6769aa37fff7ad7852ec299222a79060200160405180910390a35050565b600080546001600160a01b0383811673ffffffffffffffffffffffffffffffffffffffff19831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b80356001600160a01b0381168114610d4b57600080fd5b919050565b600060408284031215610d6257600080fd5b6040516040810181811067ffffffffffffffff82111715610d9357634e487b7160e01b600052604160045260246000fd5b604052905080610da283610d34565b8152602083013561ffff81168114610db957600080fd5b6020919091015292915050565b600060208284031215610dd857600080fd5b610de182610d34565b9392505050565b60008060408385031215610dfb57600080fd5b610e0483610d34565b946020939093013593505050565b60008060208385031215610e2557600080fd5b823567ffffffffffffffff80821115610e3d57600080fd5b818501915085601f830112610e5157600080fd5b813581811115610e6057600080fd5b8660208260061b8501011115610e7557600080fd5b60209290920196919550909350505050565b600060408284031215610e9957600080fd5b610de18383610d50565b60008060608385031215610eb657600080fd5b610ec08484610d50565b9150604083013560ff81168114610ed657600080fd5b809150509250929050565b600060208284031215610ef357600080fd5b5035919050565b602080825282518282018190526000919060409081850190868401855b82811015610f5157610f4184835180516001600160a01b0316825260209081015161ffff16910152565b9284019290850190600101610f17565b5091979650505050505050565b60008219821115610f7157610f71610f91565b500190565b6000600019821415610f8a57610f8a610f91565b5060010190565b634e487b7160e01b600052601160045260246000fd5b634e487b7160e01b600052603160045260246000fd5b634e487b7160e01b600052603260045260246000fdfea26469706673582212201dd354c7606ec8e489e5d7d452927deca055d29ee8c587ddf193cee5f529e73b64736f6c63430008060033",
  "linkReferences": {},
  "deployedLinkReferences": {}
}
