{
  "_format": "hh-sol-artifact-1",
  "contractName": "WhiteListManager",
  "sourceName": "contracts/pool/franchised/WhiteListManager.sol",
  "abi": [
    {
      "inputs": [],
      "stateMutability": "nonpayable",
      "type": "constructor"
    },
    {
      "anonymous": false,
      "inputs": [
        {
          "indexed": false,
          "internalType": "address",
          "name": "operator",
          "type": "address"
        },
        {
          "indexed": true,
          "internalType": "uint256",
          "name": "index",
          "type": "uint256"
        },
        {
          "indexed": true,
          "internalType": "address",
          "name": "account",
          "type": "address"
        }
      ],
      "name": "JoinWithMerkle",
      "type": "event"
    },
    {
      "anonymous": false,
      "inputs": [
        {
          "indexed": false,
          "internalType": "address",
          "name": "operator",
          "type": "address"
        },
        {
          "indexed": false,
          "internalType": "bytes32",
          "name": "merkleRoot",
          "type": "bytes32"
        }
      ],
      "name": "SetMerkleRoot",
      "type": "event"
    },
    {
      "anonymous": false,
      "inputs": [
        {
          "indexed": true,
          "internalType": "address",
          "name": "operator",
          "type": "address"
        },
        {
          "indexed": true,
          "internalType": "address",
          "name": "account",
          "type": "address"
        },
        {
          "indexed": false,
          "internalType": "bool",
          "name": "approved",
          "type": "bool"
        }
      ],
      "name": "WhiteListAccount",
      "type": "event"
    },
    {
      "inputs": [],
      "name": "DOMAIN_SEPARATOR",
      "outputs": [
        {
          "internalType": "bytes32",
          "name": "domainSeperator",
          "type": "bytes32"
        }
      ],
      "stateMutability": "view",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "address",
          "name": "operator",
          "type": "address"
        },
        {
          "internalType": "uint256",
          "name": "index",
          "type": "uint256"
        }
      ],
      "name": "isWhitelisted",
      "outputs": [
        {
          "internalType": "bool",
          "name": "success",
          "type": "bool"
        }
      ],
      "stateMutability": "view",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "address",
          "name": "operator",
          "type": "address"
        },
        {
          "internalType": "uint256",
          "name": "index",
          "type": "uint256"
        },
        {
          "internalType": "address",
          "name": "account",
          "type": "address"
        },
        {
          "internalType": "bytes32[]",
          "name": "merkleProof",
          "type": "bytes32[]"
        }
      ],
      "name": "joinWhitelist",
      "outputs": [],
      "stateMutability": "nonpayable",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "address",
          "name": "",
          "type": "address"
        }
      ],
      "name": "merkleRoot",
      "outputs": [
        {
          "internalType": "bytes32",
          "name": "",
          "type": "bytes32"
        }
      ],
      "stateMutability": "view",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "bytes32",
          "name": "_merkleRoot",
          "type": "bytes32"
        }
      ],
      "name": "setMerkleRoot",
      "outputs": [],
      "stateMutability": "nonpayable",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "address",
          "name": "operator",
          "type": "address"
        },
        {
          "internalType": "address",
          "name": "account",
          "type": "address"
        },
        {
          "internalType": "bool",
          "name": "approved",
          "type": "bool"
        },
        {
          "internalType": "uint256",
          "name": "deadline",
          "type": "uint256"
        },
        {
          "internalType": "uint8",
          "name": "v",
          "type": "uint8"
        },
        {
          "internalType": "bytes32",
          "name": "r",
          "type": "bytes32"
        },
        {
          "internalType": "bytes32",
          "name": "s",
          "type": "bytes32"
        }
      ],
      "name": "setWhitelisting",
      "outputs": [],
      "stateMutability": "nonpayable",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "address",
          "name": "user",
          "type": "address"
        },
        {
          "internalType": "bool",
          "name": "approved",
          "type": "bool"
        }
      ],
      "name": "whitelistAccount",
      "outputs": [],
      "stateMutability": "nonpayable",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "address",
          "name": "",
          "type": "address"
        },
        {
          "internalType": "address",
          "name": "",
          "type": "address"
        }
      ],
      "name": "whitelistedAccounts",
      "outputs": [
        {
          "internalType": "bool",
          "name": "",
          "type": "bool"
        }
      ],
      "stateMutability": "view",
      "type": "function"
    }
  ],
  "bytecode": "0x60c060405234801561001057600080fd5b504660a0818152604080517f8cad95687ba82c2ce50e74f7b754645e5117c3a5bec8151c0726d5857980a8666020808301919091527f052868d2c8964dbaa3021ee983d1fb29a39ffbaeec64d9b774d6d61d1690ec93828401526060820194909452306080808301919091528251808303909101815292019052805191012060805260805160a051610d816100b760003960006101680152600061020e0152610d816000f3fe608060405234801561001057600080fd5b50600436106100885760003560e01c80639198f3311161005b5780639198f3311461010b57806399c8df181461011e578063dd6b40ad14610131578063e21115861461014457600080fd5b80631472c2711461008d5780633644e515146100cd5780637cb64759146100e3578063830639ac146100f8575b600080fd5b6100b861009b366004610a47565b600060208181529281526040808220909352908152205460ff1681565b60405190151581526020015b60405180910390f35b6100d5610164565b6040519081526020016100c4565b6100f66100f1366004610be6565b610230565b005b6100b8610106366004610b1e565b61027e565b6100f6610119366004610b48565b6102e3565b6100f661012c366004610af4565b6105c9565b6100f661013f366004610a7a565b6105d8565b6100d5610152366004610a25565b60016020526000908152604090205481565b60007f0000000000000000000000000000000000000000000000000000000000000000461461020b5750604080517f8cad95687ba82c2ce50e74f7b754645e5117c3a5bec8151c0726d5857980a8666020808301919091527f052868d2c8964dbaa3021ee983d1fb29a39ffbaeec64d9b774d6d61d1690ec9382840152466060830152306080808401919091528351808403909101815260a0909201909252805191012090565b507f000000000000000000000000000000000000000000000000000000000000000090565b33600081815260016020908152604091829020849055815192835282018390527f8c20d275fe64865598ebdb3edb3a618f781cd951ac8ec5b911ddd5c72a4fb8b0910160405180910390a150565b60008061028d61010084610c5d565b9050600061029d61010085610caa565b73ffffffffffffffffffffffffffffffffffffffff90951660009081526002602090815260408083209483529390529190912054600190941b9384169093149392505050565b6102ed858561027e565b15610359576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600760248201527f434c41494d45440000000000000000000000000000000000000000000000000060448201526064015b60405180910390fd5b6000848460405160200161039c92919091825260601b7fffffffffffffffffffffffffffffffffffffffff00000000000000000000000016602082015260340190565b604080517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0818403018152919052805160209091012090508060005b838110156104755760008585838181106103f4576103f4610d1c565b905060200201359050808311610435576040805160208101859052908101829052606001604051602081830303815290604052805190602001209250610462565b60408051602081018390529081018490526060016040516020818303038152906040528051906020012092505b508061046d81610c71565b9150506103d8565b5073ffffffffffffffffffffffffffffffffffffffff87166000908152600160205260409020548114610504576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600a60248201527f4e4f545f524f4f544544000000000000000000000000000000000000000000006044820152606401610350565b600061051261010088610c5d565b9050600061052261010089610caa565b73ffffffffffffffffffffffffffffffffffffffff8a16600090815260026020908152604080832086845290915290208054600180841b90911790915590915061056f908a908990610956565b60405173ffffffffffffffffffffffffffffffffffffffff8a8116825288169089907f0963824b14ca6b2218527290f3f08a723dde78f5562c2d48a96ef6ad6dbf02c99060200160405180910390a3505050505050505050565b6105d4338383610956565b5050565b73ffffffffffffffffffffffffffffffffffffffff8616610655576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600f60248201527f4143434f554e545f4e4f545f53455400000000000000000000000000000000006044820152606401610350565b73ffffffffffffffffffffffffffffffffffffffff87166106d2576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600d60248201527f4f50455241544f525f4e554c4c000000000000000000000000000000000000006044820152606401610350565b4284101580156106ee57506106ea4262093a80610c45565b8411155b610754576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600760248201527f45585049524544000000000000000000000000000000000000000000000000006044820152606401610350565b60006040518060400160405280600281526020017f1901000000000000000000000000000000000000000000000000000000000000815250610794610164565b604080517f97647bc8c3f1f59b2ea2a7458372f63e80d4750a294a157e5e73d9ba7c78e776602082015273ffffffffffffffffffffffffffffffffffffffff8b169181019190915288151560608201526080810188905260a0016040516020818303038152906040528051906020012060405160200161081693929190610bff565b604080517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe08184030181528282528051602091820120600080855291840180845281905260ff88169284019290925260608301869052608083018590529092509060019060a0016020604051602081039080840390855afa15801561089f573d6000803e3d6000fd5b5050506020604051035190508873ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1614610940576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601160248201527f494e56414c49445f5349474e41545552450000000000000000000000000000006044820152606401610350565b61094b898989610956565b505050505050505050565b73ffffffffffffffffffffffffffffffffffffffff8381166000818152602081815260408083209487168084529482529182902080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff001686151590811790915591519182527fdc2e9f582b8db843b0bc9bf6cbd2d845877fda6bc2be5abb50e9d9bbefce1f01910160405180910390a3505050565b803573ffffffffffffffffffffffffffffffffffffffff81168114610a1057600080fd5b919050565b80358015158114610a1057600080fd5b600060208284031215610a3757600080fd5b610a40826109ec565b9392505050565b60008060408385031215610a5a57600080fd5b610a63836109ec565b9150610a71602084016109ec565b90509250929050565b600080600080600080600060e0888a031215610a9557600080fd5b610a9e886109ec565b9650610aac602089016109ec565b9550610aba60408901610a15565b945060608801359350608088013560ff81168114610ad757600080fd5b9699959850939692959460a0840135945060c09093013592915050565b60008060408385031215610b0757600080fd5b610b10836109ec565b9150610a7160208401610a15565b60008060408385031215610b3157600080fd5b610b3a836109ec565b946020939093013593505050565b600080600080600060808688031215610b6057600080fd5b610b69866109ec565b945060208601359350610b7e604087016109ec565b9250606086013567ffffffffffffffff80821115610b9b57600080fd5b818801915088601f830112610baf57600080fd5b813581811115610bbe57600080fd5b8960208260051b8501011115610bd357600080fd5b9699959850939650602001949392505050565b600060208284031215610bf857600080fd5b5035919050565b6000845160005b81811015610c205760208188018101518583015201610c06565b81811115610c2f576000828501525b5091909101928352506020820152604001919050565b60008219821115610c5857610c58610cbe565b500190565b600082610c6c57610c6c610ced565b500490565b60007fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff821415610ca357610ca3610cbe565b5060010190565b600082610cb957610cb9610ced565b500690565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fdfea2646970667358221220ee52a5e64781f7a3d5e920c3ac741e09cb0ae736d4d3609b57da00f9ded67bad64736f6c63430008070033",
  "deployedBytecode": "0x608060405234801561001057600080fd5b50600436106100885760003560e01c80639198f3311161005b5780639198f3311461010b57806399c8df181461011e578063dd6b40ad14610131578063e21115861461014457600080fd5b80631472c2711461008d5780633644e515146100cd5780637cb64759146100e3578063830639ac146100f8575b600080fd5b6100b861009b366004610a47565b600060208181529281526040808220909352908152205460ff1681565b60405190151581526020015b60405180910390f35b6100d5610164565b6040519081526020016100c4565b6100f66100f1366004610be6565b610230565b005b6100b8610106366004610b1e565b61027e565b6100f6610119366004610b48565b6102e3565b6100f661012c366004610af4565b6105c9565b6100f661013f366004610a7a565b6105d8565b6100d5610152366004610a25565b60016020526000908152604090205481565b60007f0000000000000000000000000000000000000000000000000000000000000000461461020b5750604080517f8cad95687ba82c2ce50e74f7b754645e5117c3a5bec8151c0726d5857980a8666020808301919091527f052868d2c8964dbaa3021ee983d1fb29a39ffbaeec64d9b774d6d61d1690ec9382840152466060830152306080808401919091528351808403909101815260a0909201909252805191012090565b507f000000000000000000000000000000000000000000000000000000000000000090565b33600081815260016020908152604091829020849055815192835282018390527f8c20d275fe64865598ebdb3edb3a618f781cd951ac8ec5b911ddd5c72a4fb8b0910160405180910390a150565b60008061028d61010084610c5d565b9050600061029d61010085610caa565b73ffffffffffffffffffffffffffffffffffffffff90951660009081526002602090815260408083209483529390529190912054600190941b9384169093149392505050565b6102ed858561027e565b15610359576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600760248201527f434c41494d45440000000000000000000000000000000000000000000000000060448201526064015b60405180910390fd5b6000848460405160200161039c92919091825260601b7fffffffffffffffffffffffffffffffffffffffff00000000000000000000000016602082015260340190565b604080517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0818403018152919052805160209091012090508060005b838110156104755760008585838181106103f4576103f4610d1c565b905060200201359050808311610435576040805160208101859052908101829052606001604051602081830303815290604052805190602001209250610462565b60408051602081018390529081018490526060016040516020818303038152906040528051906020012092505b508061046d81610c71565b9150506103d8565b5073ffffffffffffffffffffffffffffffffffffffff87166000908152600160205260409020548114610504576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600a60248201527f4e4f545f524f4f544544000000000000000000000000000000000000000000006044820152606401610350565b600061051261010088610c5d565b9050600061052261010089610caa565b73ffffffffffffffffffffffffffffffffffffffff8a16600090815260026020908152604080832086845290915290208054600180841b90911790915590915061056f908a908990610956565b60405173ffffffffffffffffffffffffffffffffffffffff8a8116825288169089907f0963824b14ca6b2218527290f3f08a723dde78f5562c2d48a96ef6ad6dbf02c99060200160405180910390a3505050505050505050565b6105d4338383610956565b5050565b73ffffffffffffffffffffffffffffffffffffffff8616610655576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600f60248201527f4143434f554e545f4e4f545f53455400000000000000000000000000000000006044820152606401610350565b73ffffffffffffffffffffffffffffffffffffffff87166106d2576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600d60248201527f4f50455241544f525f4e554c4c000000000000000000000000000000000000006044820152606401610350565b4284101580156106ee57506106ea4262093a80610c45565b8411155b610754576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600760248201527f45585049524544000000000000000000000000000000000000000000000000006044820152606401610350565b60006040518060400160405280600281526020017f1901000000000000000000000000000000000000000000000000000000000000815250610794610164565b604080517f97647bc8c3f1f59b2ea2a7458372f63e80d4750a294a157e5e73d9ba7c78e776602082015273ffffffffffffffffffffffffffffffffffffffff8b169181019190915288151560608201526080810188905260a0016040516020818303038152906040528051906020012060405160200161081693929190610bff565b604080517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe08184030181528282528051602091820120600080855291840180845281905260ff88169284019290925260608301869052608083018590529092509060019060a0016020604051602081039080840390855afa15801561089f573d6000803e3d6000fd5b5050506020604051035190508873ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1614610940576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601160248201527f494e56414c49445f5349474e41545552450000000000000000000000000000006044820152606401610350565b61094b898989610956565b505050505050505050565b73ffffffffffffffffffffffffffffffffffffffff8381166000818152602081815260408083209487168084529482529182902080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff001686151590811790915591519182527fdc2e9f582b8db843b0bc9bf6cbd2d845877fda6bc2be5abb50e9d9bbefce1f01910160405180910390a3505050565b803573ffffffffffffffffffffffffffffffffffffffff81168114610a1057600080fd5b919050565b80358015158114610a1057600080fd5b600060208284031215610a3757600080fd5b610a40826109ec565b9392505050565b60008060408385031215610a5a57600080fd5b610a63836109ec565b9150610a71602084016109ec565b90509250929050565b600080600080600080600060e0888a031215610a9557600080fd5b610a9e886109ec565b9650610aac602089016109ec565b9550610aba60408901610a15565b945060608801359350608088013560ff81168114610ad757600080fd5b9699959850939692959460a0840135945060c09093013592915050565b60008060408385031215610b0757600080fd5b610b10836109ec565b9150610a7160208401610a15565b60008060408385031215610b3157600080fd5b610b3a836109ec565b946020939093013593505050565b600080600080600060808688031215610b6057600080fd5b610b69866109ec565b945060208601359350610b7e604087016109ec565b9250606086013567ffffffffffffffff80821115610b9b57600080fd5b818801915088601f830112610baf57600080fd5b813581811115610bbe57600080fd5b8960208260051b8501011115610bd357600080fd5b9699959850939650602001949392505050565b600060208284031215610bf857600080fd5b5035919050565b6000845160005b81811015610c205760208188018101518583015201610c06565b81811115610c2f576000828501525b5091909101928352506020820152604001919050565b60008219821115610c5857610c58610cbe565b500190565b600082610c6c57610c6c610ced565b500490565b60007fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff821415610ca357610ca3610cbe565b5060010190565b600082610cb957610cb9610ced565b500690565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fdfea2646970667358221220ee52a5e64781f7a3d5e920c3ac741e09cb0ae736d4d3609b57da00f9ded67bad64736f6c63430008070033",
  "linkReferences": {},
  "deployedLinkReferences": {}
}
