{
  "_format": "hh-sol-artifact-1",
  "contractName": "FeeManager",
  "sourceName": "contracts/managers/fee-manager/FeeManager.sol",
  "abi": [
    {
      "inputs": [
        {
          "internalType": "address",
          "name": "_manager",
          "type": "address"
        },
        {
          "internalType": "address",
          "name": "_treasury",
          "type": "address"
        }
      ],
      "stateMutability": "nonpayable",
      "type": "constructor"
    },
    {
      "anonymous": false,
      "inputs": [
        {
          "indexed": false,
          "internalType": "address",
          "name": "campaign",
          "type": "address"
        },
        {
          "indexed": false,
          "internalType": "bool",
          "name": "initialized",
          "type": "bool"
        },
        {
          "indexed": false,
          "internalType": "uint256",
          "name": "nominator",
          "type": "uint256"
        },
        {
          "indexed": false,
          "internalType": "uint256",
          "name": "denominato",
          "type": "uint256"
        },
        {
          "indexed": false,
          "internalType": "uint256",
          "name": "timestamp",
          "type": "uint256"
        }
      ],
      "name": "SetCampaignFee",
      "type": "event"
    },
    {
      "anonymous": false,
      "inputs": [
        {
          "indexed": false,
          "internalType": "bool",
          "name": "initialized",
          "type": "bool"
        },
        {
          "indexed": false,
          "internalType": "uint256",
          "name": "nominator",
          "type": "uint256"
        },
        {
          "indexed": false,
          "internalType": "uint256",
          "name": "denominator",
          "type": "uint256"
        },
        {
          "indexed": false,
          "internalType": "uint256",
          "name": "timestamp",
          "type": "uint256"
        }
      ],
      "name": "SetDefaultFee",
      "type": "event"
    },
    {
      "inputs": [],
      "name": "FLAVOR",
      "outputs": [
        {
          "internalType": "string",
          "name": "",
          "type": "string"
        }
      ],
      "stateMutability": "view",
      "type": "function"
    },
    {
      "inputs": [],
      "name": "VERSION",
      "outputs": [
        {
          "internalType": "string",
          "name": "",
          "type": "string"
        }
      ],
      "stateMutability": "view",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "address",
          "name": "campaign",
          "type": "address"
        }
      ],
      "name": "calculateFee",
      "outputs": [
        {
          "internalType": "address",
          "name": "",
          "type": "address"
        },
        {
          "internalType": "uint256",
          "name": "",
          "type": "uint256"
        }
      ],
      "stateMutability": "view",
      "type": "function"
    },
    {
      "inputs": [],
      "name": "defaultFee",
      "outputs": [
        {
          "internalType": "bool",
          "name": "initialized",
          "type": "bool"
        },
        {
          "internalType": "uint256",
          "name": "numerator",
          "type": "uint256"
        },
        {
          "internalType": "uint256",
          "name": "denominator",
          "type": "uint256"
        }
      ],
      "stateMutability": "view",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "address",
          "name": "",
          "type": "address"
        }
      ],
      "name": "fees",
      "outputs": [
        {
          "internalType": "bool",
          "name": "initialized",
          "type": "bool"
        },
        {
          "internalType": "uint256",
          "name": "numerator",
          "type": "uint256"
        },
        {
          "internalType": "uint256",
          "name": "denominator",
          "type": "uint256"
        }
      ],
      "stateMutability": "view",
      "type": "function"
    },
    {
      "inputs": [],
      "name": "flavor",
      "outputs": [
        {
          "internalType": "string",
          "name": "",
          "type": "string"
        }
      ],
      "stateMutability": "pure",
      "type": "function"
    },
    {
      "inputs": [],
      "name": "manager",
      "outputs": [
        {
          "internalType": "address",
          "name": "",
          "type": "address"
        }
      ],
      "stateMutability": "view",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "address",
          "name": "campaign",
          "type": "address"
        },
        {
          "internalType": "bool",
          "name": "initialized",
          "type": "bool"
        },
        {
          "internalType": "uint256",
          "name": "numerator",
          "type": "uint256"
        },
        {
          "internalType": "uint256",
          "name": "denominator",
          "type": "uint256"
        }
      ],
      "name": "setCampaignFee",
      "outputs": [],
      "stateMutability": "nonpayable",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "bool",
          "name": "initialized",
          "type": "bool"
        },
        {
          "internalType": "uint256",
          "name": "numerator",
          "type": "uint256"
        },
        {
          "internalType": "uint256",
          "name": "denominator",
          "type": "uint256"
        }
      ],
      "name": "setDefaultFee",
      "outputs": [],
      "stateMutability": "nonpayable",
      "type": "function"
    },
    {
      "inputs": [],
      "name": "treasury",
      "outputs": [
        {
          "internalType": "address",
          "name": "",
          "type": "address"
        }
      ],
      "stateMutability": "view",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "address",
          "name": "newManager",
          "type": "address"
        }
      ],
      "name": "updateManager",
      "outputs": [],
      "stateMutability": "nonpayable",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "address",
          "name": "newTreasury",
          "type": "address"
        }
      ],
      "name": "updateTreasury",
      "outputs": [],
      "stateMutability": "nonpayable",
      "type": "function"
    },
    {
      "inputs": [],
      "name": "version",
      "outputs": [
        {
          "internalType": "string",
          "name": "",
          "type": "string"
        }
      ],
      "stateMutability": "pure",
      "type": "function"
    }
  ],
  "bytecode": "0x608060405234801561001057600080fd5b50604051610c18380380610c1883398101604081905261002f9161007c565b600080546001600160a01b039384166001600160a01b031991821617909155600180549290931691161790556100ae565b80516001600160a01b038116811461007757600080fd5b919050565b6000806040838503121561008e578182fd5b61009783610060565b91506100a560208401610060565b90509250929050565b610b5b806100bd6000396000f3fe608060405234801561001057600080fd5b50600436106100cf5760003560e01c80635a6c72d01161008c578063df3f9eab11610066578063df3f9eab1461018a578063f59e4f651461019d578063faaebd21146101a5578063ffa1ad74146101b8576100cf565b80635a6c72d01461015857806361d027b31461016f5780637f51bb1f14610177576100cf565b8063465f5eb8146100d4578063481c6a75146100fe5780634b3c16d91461011357806354fd4d501461012857806358aba00f1461013d57806358c1c49914610150575b600080fd5b6100e76100e236600461070d565b6101c0565b6040516100f592919061093b565b60405180910390f35b610106610325565b6040516100f591906108f9565b610126610121366004610775565b610334565b005b61013061041c565b6040516100f59190610989565b61012661014b36600461070d565b61043c565b610130610488565b6101606104b0565b6040516100f593929190610954565b6101066104c2565b61012661018536600461070d565b6104d1565b610126610198366004610730565b61051d565b61013061061b565b6101606101b336600461070d565b610641565b610130610666565b6000806000836001600160a01b0316631818e2ec6040518163ffffffff1660e01b815260040160006040518083038186803b1580156101fe57600080fd5b505afa158015610212573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f1916820160405261023a91908101906107a9565b61016001516001600160a01b03851660009081526005602052604090205490915060ff16156102cf576001600160a01b038085166000908152600560209081526040918290208251606081018452815460ff1615158152600180830154938201849052600290920154938101849052905490931691906102ba9085610a8e565b6102c49190610a6e565b935093505050610320565b60025460ff161561030d576001546004546003546001600160a01b03909216916102f99084610a8e565b6103039190610a6e565b9250925050610320565b50506001546001600160a01b0316905060005b915091565b6000546001600160a01b031681565b6000546001600160a01b031633146103675760405162461bcd60e51b815260040161035e90610a22565b60405180910390fd5b808211156103875760405162461bcd60e51b815260040161035e906109f3565b600081116103a75760405162461bcd60e51b815260040161035e906109bc565b60408051606081018252841515808252602082018590529082018390526002805460ff1916909117905560038390556004829055517f8dd63699b8f85d0b878111adf61135f74d10495f669b1fbec583e54879e3368a9061040f90859085908590429061096c565b60405180910390a1505050565b604080518082019091526006815265312e302e323160d01b602082015290565b6000546001600160a01b031633146104665760405162461bcd60e51b815260040161035e90610a22565b600080546001600160a01b0319166001600160a01b0392909216919091179055565b6040518060400160405280600c81526020016b4665654d616e61676572563160a01b81525081565b60025460035460045460ff9092169183565b6001546001600160a01b031681565b6000546001600160a01b031633146104fb5760405162461bcd60e51b815260040161035e90610a22565b600180546001600160a01b0319166001600160a01b0392909216919091179055565b6000546001600160a01b031633146105475760405162461bcd60e51b815260040161035e90610a22565b808211156105675760405162461bcd60e51b815260040161035e906109f3565b600081116105875760405162461bcd60e51b815260040161035e906109bc565b60408051606081018252841515815260208082018581528284018581526001600160a01b03891660009081526005909352918490209251835460ff191690151517835551600183015551600290910155517f652a0b27e933c0d398bac58ff321d838317ce06b788181573c18e2478ecbf7dd9061060d908690869086908690429061090d565b60405180910390a150505050565b60408051808201909152600c81526b4665654d616e61676572563160a01b602082015290565b60056020526000908152604090208054600182015460029092015460ff909116919083565b60405180604001604052806006815260200165312e302e323160d01b81525081565b805161069381610aff565b919050565b805161069381610b17565b600082601f8301126106b3578081fd5b815167ffffffffffffffff8111156106cd576106cd610ae9565b6106e0601f8201601f1916602001610a44565b8181528460208386010111156106f4578283fd5b610705826020830160208701610ab9565b949350505050565b60006020828403121561071e578081fd5b813561072981610aff565b9392505050565b60008060008060808587031215610745578283fd5b843561075081610aff565b9350602085013561076081610b17565b93969395505050506040820135916060013590565b600080600060608486031215610789578283fd5b833561079481610b17565b95602085013595506040909401359392505050565b6000602082840312156107ba578081fd5b815167ffffffffffffffff808211156107d1578283fd5b81840191506101a08083870312156107e7578384fd5b6107f081610a44565b9050825182811115610800578485fd5b61080c878286016106a3565b825250602083015182811115610820578485fd5b61082c878286016106a3565b60208301525061083e60408401610688565b604082015261084f60608401610688565b6060820152608083015182811115610865578485fd5b610871878286016106a3565b60808301525061088360a08401610688565b60a082015261089460c08401610688565b60c082015260e083015160e082015261010091506108b3828401610698565b8282015261012091506108c7828401610698565b918101919091526101408281015190820152610160808301519082015261018091820151918101919091529392505050565b6001600160a01b0391909116815260200190565b6001600160a01b03959095168552921515602085015260408401919091526060830152608082015260a00190565b6001600160a01b03929092168252602082015260400190565b92151583526020830191909152604082015260600190565b931515845260208401929092526040830152606082015260800190565b60006020825282518060208401526109a8816040850160208701610ab9565b601f01601f19169190910160400192915050565b6020808252601c908201527f4665654d616e616765723a206469766973696f6e206279207a65726f00000000604082015260600190565b60208082526015908201527404665654d616e616765723a20666565203e20312e3605c1b604082015260600190565b60208082526008908201526710b6b0b730b3b2b960c11b604082015260600190565b60405181810167ffffffffffffffff81118282101715610a6657610a66610ae9565b604052919050565b600082610a8957634e487b7160e01b81526012600452602481fd5b500490565b6000816000190483118215151615610ab457634e487b7160e01b81526011600452602481fd5b500290565b60005b83811015610ad4578181015183820152602001610abc565b83811115610ae3576000848401525b50505050565b634e487b7160e01b600052604160045260246000fd5b6001600160a01b0381168114610b1457600080fd5b50565b8015158114610b1457600080fdfea2646970667358221220b19d82c4ec46b05af7d0a791d13488ac667faef97fdda11eb5436bb84e638c2f64736f6c63430008000033",
  "deployedBytecode": "0x608060405234801561001057600080fd5b50600436106100cf5760003560e01c80635a6c72d01161008c578063df3f9eab11610066578063df3f9eab1461018a578063f59e4f651461019d578063faaebd21146101a5578063ffa1ad74146101b8576100cf565b80635a6c72d01461015857806361d027b31461016f5780637f51bb1f14610177576100cf565b8063465f5eb8146100d4578063481c6a75146100fe5780634b3c16d91461011357806354fd4d501461012857806358aba00f1461013d57806358c1c49914610150575b600080fd5b6100e76100e236600461070d565b6101c0565b6040516100f592919061093b565b60405180910390f35b610106610325565b6040516100f591906108f9565b610126610121366004610775565b610334565b005b61013061041c565b6040516100f59190610989565b61012661014b36600461070d565b61043c565b610130610488565b6101606104b0565b6040516100f593929190610954565b6101066104c2565b61012661018536600461070d565b6104d1565b610126610198366004610730565b61051d565b61013061061b565b6101606101b336600461070d565b610641565b610130610666565b6000806000836001600160a01b0316631818e2ec6040518163ffffffff1660e01b815260040160006040518083038186803b1580156101fe57600080fd5b505afa158015610212573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f1916820160405261023a91908101906107a9565b61016001516001600160a01b03851660009081526005602052604090205490915060ff16156102cf576001600160a01b038085166000908152600560209081526040918290208251606081018452815460ff1615158152600180830154938201849052600290920154938101849052905490931691906102ba9085610a8e565b6102c49190610a6e565b935093505050610320565b60025460ff161561030d576001546004546003546001600160a01b03909216916102f99084610a8e565b6103039190610a6e565b9250925050610320565b50506001546001600160a01b0316905060005b915091565b6000546001600160a01b031681565b6000546001600160a01b031633146103675760405162461bcd60e51b815260040161035e90610a22565b60405180910390fd5b808211156103875760405162461bcd60e51b815260040161035e906109f3565b600081116103a75760405162461bcd60e51b815260040161035e906109bc565b60408051606081018252841515808252602082018590529082018390526002805460ff1916909117905560038390556004829055517f8dd63699b8f85d0b878111adf61135f74d10495f669b1fbec583e54879e3368a9061040f90859085908590429061096c565b60405180910390a1505050565b604080518082019091526006815265312e302e323160d01b602082015290565b6000546001600160a01b031633146104665760405162461bcd60e51b815260040161035e90610a22565b600080546001600160a01b0319166001600160a01b0392909216919091179055565b6040518060400160405280600c81526020016b4665654d616e61676572563160a01b81525081565b60025460035460045460ff9092169183565b6001546001600160a01b031681565b6000546001600160a01b031633146104fb5760405162461bcd60e51b815260040161035e90610a22565b600180546001600160a01b0319166001600160a01b0392909216919091179055565b6000546001600160a01b031633146105475760405162461bcd60e51b815260040161035e90610a22565b808211156105675760405162461bcd60e51b815260040161035e906109f3565b600081116105875760405162461bcd60e51b815260040161035e906109bc565b60408051606081018252841515815260208082018581528284018581526001600160a01b03891660009081526005909352918490209251835460ff191690151517835551600183015551600290910155517f652a0b27e933c0d398bac58ff321d838317ce06b788181573c18e2478ecbf7dd9061060d908690869086908690429061090d565b60405180910390a150505050565b60408051808201909152600c81526b4665654d616e61676572563160a01b602082015290565b60056020526000908152604090208054600182015460029092015460ff909116919083565b60405180604001604052806006815260200165312e302e323160d01b81525081565b805161069381610aff565b919050565b805161069381610b17565b600082601f8301126106b3578081fd5b815167ffffffffffffffff8111156106cd576106cd610ae9565b6106e0601f8201601f1916602001610a44565b8181528460208386010111156106f4578283fd5b610705826020830160208701610ab9565b949350505050565b60006020828403121561071e578081fd5b813561072981610aff565b9392505050565b60008060008060808587031215610745578283fd5b843561075081610aff565b9350602085013561076081610b17565b93969395505050506040820135916060013590565b600080600060608486031215610789578283fd5b833561079481610b17565b95602085013595506040909401359392505050565b6000602082840312156107ba578081fd5b815167ffffffffffffffff808211156107d1578283fd5b81840191506101a08083870312156107e7578384fd5b6107f081610a44565b9050825182811115610800578485fd5b61080c878286016106a3565b825250602083015182811115610820578485fd5b61082c878286016106a3565b60208301525061083e60408401610688565b604082015261084f60608401610688565b6060820152608083015182811115610865578485fd5b610871878286016106a3565b60808301525061088360a08401610688565b60a082015261089460c08401610688565b60c082015260e083015160e082015261010091506108b3828401610698565b8282015261012091506108c7828401610698565b918101919091526101408281015190820152610160808301519082015261018091820151918101919091529392505050565b6001600160a01b0391909116815260200190565b6001600160a01b03959095168552921515602085015260408401919091526060830152608082015260a00190565b6001600160a01b03929092168252602082015260400190565b92151583526020830191909152604082015260600190565b931515845260208401929092526040830152606082015260800190565b60006020825282518060208401526109a8816040850160208701610ab9565b601f01601f19169190910160400192915050565b6020808252601c908201527f4665654d616e616765723a206469766973696f6e206279207a65726f00000000604082015260600190565b60208082526015908201527404665654d616e616765723a20666565203e20312e3605c1b604082015260600190565b60208082526008908201526710b6b0b730b3b2b960c11b604082015260600190565b60405181810167ffffffffffffffff81118282101715610a6657610a66610ae9565b604052919050565b600082610a8957634e487b7160e01b81526012600452602481fd5b500490565b6000816000190483118215151615610ab457634e487b7160e01b81526011600452602481fd5b500290565b60005b83811015610ad4578181015183820152602001610abc565b83811115610ae3576000848401525b50505050565b634e487b7160e01b600052604160045260246000fd5b6001600160a01b0381168114610b1457600080fd5b50565b8015158114610b1457600080fdfea2646970667358221220b19d82c4ec46b05af7d0a791d13488ac667faef97fdda11eb5436bb84e638c2f64736f6c63430008000033",
  "linkReferences": {},
  "deployedLinkReferences": {}
}
