{
  "_format": "hh-sol-artifact-1",
  "contractName": "ProtocolFeesCollector",
  "sourceName": "src.sol/amm/vault/ProtocolFeesCollector.sol",
  "abi": [
    {
      "inputs": [
        {
          "internalType": "contract IVault",
          "name": "_vault",
          "type": "address"
        }
      ],
      "stateMutability": "nonpayable",
      "type": "constructor"
    },
    {
      "anonymous": false,
      "inputs": [
        {
          "indexed": false,
          "internalType": "uint256",
          "name": "newFlashLoanFeePercentage",
          "type": "uint256"
        }
      ],
      "name": "FlashLoanFeePercentageChanged",
      "type": "event"
    },
    {
      "anonymous": false,
      "inputs": [
        {
          "indexed": false,
          "internalType": "uint256",
          "name": "newSwapFeePercentage",
          "type": "uint256"
        }
      ],
      "name": "SwapFeePercentageChanged",
      "type": "event"
    },
    {
      "inputs": [
        {
          "internalType": "bytes4",
          "name": "selector",
          "type": "bytes4"
        }
      ],
      "name": "getActionId",
      "outputs": [
        {
          "internalType": "bytes32",
          "name": "",
          "type": "bytes32"
        }
      ],
      "stateMutability": "view",
      "type": "function"
    },
    {
      "inputs": [],
      "name": "getAuthorizer",
      "outputs": [
        {
          "internalType": "contract IAuthorizer",
          "name": "",
          "type": "address"
        }
      ],
      "stateMutability": "view",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "contract IERC20[]",
          "name": "tokens",
          "type": "address[]"
        }
      ],
      "name": "getCollectedFeeAmounts",
      "outputs": [
        {
          "internalType": "uint256[]",
          "name": "feeAmounts",
          "type": "uint256[]"
        }
      ],
      "stateMutability": "view",
      "type": "function"
    },
    {
      "inputs": [],
      "name": "getFlashLoanFeePercentage",
      "outputs": [
        {
          "internalType": "uint256",
          "name": "",
          "type": "uint256"
        }
      ],
      "stateMutability": "view",
      "type": "function"
    },
    {
      "inputs": [],
      "name": "getSwapFeePercentage",
      "outputs": [
        {
          "internalType": "uint256",
          "name": "",
          "type": "uint256"
        }
      ],
      "stateMutability": "view",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "uint256",
          "name": "newFlashLoanFeePercentage",
          "type": "uint256"
        }
      ],
      "name": "setFlashLoanFeePercentage",
      "outputs": [],
      "stateMutability": "nonpayable",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "uint256",
          "name": "newSwapFeePercentage",
          "type": "uint256"
        }
      ],
      "name": "setSwapFeePercentage",
      "outputs": [],
      "stateMutability": "nonpayable",
      "type": "function"
    },
    {
      "inputs": [],
      "name": "vault",
      "outputs": [
        {
          "internalType": "contract IVault",
          "name": "",
          "type": "address"
        }
      ],
      "stateMutability": "view",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "contract IERC20[]",
          "name": "tokens",
          "type": "address[]"
        },
        {
          "internalType": "uint256[]",
          "name": "amounts",
          "type": "uint256[]"
        },
        {
          "internalType": "address",
          "name": "recipient",
          "type": "address"
        }
      ],
      "name": "withdrawCollectedFees",
      "outputs": [],
      "stateMutability": "nonpayable",
      "type": "function"
    }
  ],
  "bytecode": "0x60c060405234801561001057600080fd5b50604051610b47380380610b4783398101604081905261002f9161004d565b30608052600160005560601b6001600160601b03191660a05261007b565b60006020828403121561005e578081fd5b81516001600160a01b0381168114610074578182fd5b9392505050565b60805160a05160601c610aa16100a66000398061040352806104f45250806102975250610aa16000f3fe608060405234801561001057600080fd5b50600436106100935760003560e01c8063851c1bb311610066578063851c1bb3146100f1578063aaabadc514610104578063d877845c14610119578063e42abf3514610121578063fbfa77cf1461014157610093565b806338e9922e1461009857806355c67628146100ad5780636b6b9f69146100cb5780636daefab6146100de575b600080fd5b6100ab6100a6366004610915565b610149565b005b6100b56101a8565b6040516100c29190610a07565b60405180910390f35b6100ab6100d9366004610915565b6101ae565b6100ab6100ec366004610762565b610201565b6100b56100ff3660046108b5565b610293565b61010c6102e5565b6040516100c29190610996565b6100b56102f4565b61013461012f3660046107e3565b6102fa565b6040516100c291906109c3565b61010c610401565b610151610425565b6101686706f05b59d3b20000821115610258610456565b60018190556040517fa9ba3ffe0b6c366b81232caab38605a0699ad5398d6cce76f91ee809e322dafc9061019d908390610a07565b60405180910390a150565b60015490565b6101b6610425565b6101cc662386f26fc10000821115610259610456565b60028190556040517f5a0b7386237e7f07fa741efc64e59c9387d2cccafec760efed4d53387f20e19a9061019d908390610a07565b610209610468565b610211610425565b61021b8483610481565b60005b8481101561028357600086868381811061023457fe5b905060200201602081019061024991906108f9565b9050600085858481811061025957fe5b6020029190910135915061027990506001600160a01b038316858361048e565b505060010161021e565b5061028c6104e9565b5050505050565b60007f0000000000000000000000000000000000000000000000000000000000000000826040516020016102c8929190610945565b604051602081830303815290604052805190602001209050919050565b60006102ef6104f0565b905090565b60025490565b6060815167ffffffffffffffff8111801561031457600080fd5b5060405190808252806020026020018201604052801561033e578160200160208202803683370190505b50905060005b82518110156103fb5782818151811061035957fe5b60200260200101516001600160a01b03166370a08231306040518263ffffffff1660e01b815260040161038c9190610996565b60206040518083038186803b1580156103a457600080fd5b505afa1580156103b8573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906103dc919061092d565b8282815181106103e857fe5b6020908102919091010152600101610344565b50919050565b7f000000000000000000000000000000000000000000000000000000000000000081565b600061043c6000356001600160e01b031916610293565b905061045361044b8233610583565b610191610456565b50565b816104645761046481610615565b5050565b61047a60026000541415610190610456565b6002600055565b6104648183146067610456565b6104e48363a9059cbb60e01b84846040516024016104ad9291906109aa565b60408051601f198184030181529190526020810180516001600160e01b03166001600160e01b031990931692909217909152610668565b505050565b6001600055565b60007f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663aaabadc56040518163ffffffff1660e01b815260040160206040518083038186803b15801561054b57600080fd5b505afa15801561055f573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906102ef91906108dd565b600061058d6104f0565b6001600160a01b0316639be2a8848484306040518463ffffffff1660e01b81526004016105bc93929190610a10565b60206040518083038186803b1580156105d457600080fd5b505afa1580156105e8573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061060c919061088e565b90505b92915050565b62461bcd60e51b6000908152602060045260076024526642414c23000030600a808404818106603090810160081b95839006959095019082900491820690940160101b939093010160c81b604452606490fd5b60006060836001600160a01b031683604051610684919061095d565b6000604051808303816000865af19150503d80600081146106c1576040519150601f19603f3d011682016040523d82523d6000602084013e6106c6565b606091505b509150915060008214156106de573d6000803e3d6000fd5b610708815160001480610700575081806020019051810190610700919061088e565b6101a2610456565b50505050565b60008083601f84011261071f578182fd5b50813567ffffffffffffffff811115610736578182fd5b602083019150836020808302850101111561075057600080fd5b9250929050565b803561060f81610a56565b600080600080600060608688031215610779578081fd5b853567ffffffffffffffff80821115610790578283fd5b61079c89838a0161070e565b909750955060208801359150808211156107b4578283fd5b506107c18882890161070e565b90945092505060408601356107d581610a56565b809150509295509295909350565b600060208083850312156107f5578182fd5b823567ffffffffffffffff8082111561080c578384fd5b818501915085601f83011261081f578384fd5b81358181111561082d578485fd5b838102915061083d848301610a2f565b8181528481019084860184860187018a1015610857578788fd5b8795505b838610156108815761086d8a82610757565b83526001959095019491860191860161085b565b5098975050505050505050565b60006020828403121561089f578081fd5b815180151581146108ae578182fd5b9392505050565b6000602082840312156108c6578081fd5b81356001600160e01b0319811681146108ae578182fd5b6000602082840312156108ee578081fd5b81516108ae81610a56565b60006020828403121561090a578081fd5b81356108ae81610a56565b600060208284031215610926578081fd5b5035919050565b60006020828403121561093e578081fd5b5051919050565b9182526001600160e01b031916602082015260240190565b60008251815b8181101561097d5760208186018101518583015201610963565b8181111561098b5782828501525b509190910192915050565b6001600160a01b0391909116815260200190565b6001600160a01b03929092168252602082015260400190565b6020808252825182820181905260009190848201906040850190845b818110156109fb578351835292840192918401916001016109df565b50909695505050505050565b90815260200190565b9283526001600160a01b03918216602084015216604082015260600190565b60405181810167ffffffffffffffff81118282101715610a4e57600080fd5b604052919050565b6001600160a01b038116811461045357600080fdfea26469706673582212205cd8324bedf0f162cae9e752d3763f56b4bc85ff58eab3a6dc5d842ef61cd1a064736f6c63430007010033",
  "deployedBytecode": "0x608060405234801561001057600080fd5b50600436106100935760003560e01c8063851c1bb311610066578063851c1bb3146100f1578063aaabadc514610104578063d877845c14610119578063e42abf3514610121578063fbfa77cf1461014157610093565b806338e9922e1461009857806355c67628146100ad5780636b6b9f69146100cb5780636daefab6146100de575b600080fd5b6100ab6100a6366004610915565b610149565b005b6100b56101a8565b6040516100c29190610a07565b60405180910390f35b6100ab6100d9366004610915565b6101ae565b6100ab6100ec366004610762565b610201565b6100b56100ff3660046108b5565b610293565b61010c6102e5565b6040516100c29190610996565b6100b56102f4565b61013461012f3660046107e3565b6102fa565b6040516100c291906109c3565b61010c610401565b610151610425565b6101686706f05b59d3b20000821115610258610456565b60018190556040517fa9ba3ffe0b6c366b81232caab38605a0699ad5398d6cce76f91ee809e322dafc9061019d908390610a07565b60405180910390a150565b60015490565b6101b6610425565b6101cc662386f26fc10000821115610259610456565b60028190556040517f5a0b7386237e7f07fa741efc64e59c9387d2cccafec760efed4d53387f20e19a9061019d908390610a07565b610209610468565b610211610425565b61021b8483610481565b60005b8481101561028357600086868381811061023457fe5b905060200201602081019061024991906108f9565b9050600085858481811061025957fe5b6020029190910135915061027990506001600160a01b038316858361048e565b505060010161021e565b5061028c6104e9565b5050505050565b60007f0000000000000000000000000000000000000000000000000000000000000000826040516020016102c8929190610945565b604051602081830303815290604052805190602001209050919050565b60006102ef6104f0565b905090565b60025490565b6060815167ffffffffffffffff8111801561031457600080fd5b5060405190808252806020026020018201604052801561033e578160200160208202803683370190505b50905060005b82518110156103fb5782818151811061035957fe5b60200260200101516001600160a01b03166370a08231306040518263ffffffff1660e01b815260040161038c9190610996565b60206040518083038186803b1580156103a457600080fd5b505afa1580156103b8573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906103dc919061092d565b8282815181106103e857fe5b6020908102919091010152600101610344565b50919050565b7f000000000000000000000000000000000000000000000000000000000000000081565b600061043c6000356001600160e01b031916610293565b905061045361044b8233610583565b610191610456565b50565b816104645761046481610615565b5050565b61047a60026000541415610190610456565b6002600055565b6104648183146067610456565b6104e48363a9059cbb60e01b84846040516024016104ad9291906109aa565b60408051601f198184030181529190526020810180516001600160e01b03166001600160e01b031990931692909217909152610668565b505050565b6001600055565b60007f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663aaabadc56040518163ffffffff1660e01b815260040160206040518083038186803b15801561054b57600080fd5b505afa15801561055f573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906102ef91906108dd565b600061058d6104f0565b6001600160a01b0316639be2a8848484306040518463ffffffff1660e01b81526004016105bc93929190610a10565b60206040518083038186803b1580156105d457600080fd5b505afa1580156105e8573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061060c919061088e565b90505b92915050565b62461bcd60e51b6000908152602060045260076024526642414c23000030600a808404818106603090810160081b95839006959095019082900491820690940160101b939093010160c81b604452606490fd5b60006060836001600160a01b031683604051610684919061095d565b6000604051808303816000865af19150503d80600081146106c1576040519150601f19603f3d011682016040523d82523d6000602084013e6106c6565b606091505b509150915060008214156106de573d6000803e3d6000fd5b610708815160001480610700575081806020019051810190610700919061088e565b6101a2610456565b50505050565b60008083601f84011261071f578182fd5b50813567ffffffffffffffff811115610736578182fd5b602083019150836020808302850101111561075057600080fd5b9250929050565b803561060f81610a56565b600080600080600060608688031215610779578081fd5b853567ffffffffffffffff80821115610790578283fd5b61079c89838a0161070e565b909750955060208801359150808211156107b4578283fd5b506107c18882890161070e565b90945092505060408601356107d581610a56565b809150509295509295909350565b600060208083850312156107f5578182fd5b823567ffffffffffffffff8082111561080c578384fd5b818501915085601f83011261081f578384fd5b81358181111561082d578485fd5b838102915061083d848301610a2f565b8181528481019084860184860187018a1015610857578788fd5b8795505b838610156108815761086d8a82610757565b83526001959095019491860191860161085b565b5098975050505050505050565b60006020828403121561089f578081fd5b815180151581146108ae578182fd5b9392505050565b6000602082840312156108c6578081fd5b81356001600160e01b0319811681146108ae578182fd5b6000602082840312156108ee578081fd5b81516108ae81610a56565b60006020828403121561090a578081fd5b81356108ae81610a56565b600060208284031215610926578081fd5b5035919050565b60006020828403121561093e578081fd5b5051919050565b9182526001600160e01b031916602082015260240190565b60008251815b8181101561097d5760208186018101518583015201610963565b8181111561098b5782828501525b509190910192915050565b6001600160a01b0391909116815260200190565b6001600160a01b03929092168252602082015260400190565b6020808252825182820181905260009190848201906040850190845b818110156109fb578351835292840192918401916001016109df565b50909695505050505050565b90815260200190565b9283526001600160a01b03918216602084015216604082015260600190565b60405181810167ffffffffffffffff81118282101715610a4e57600080fd5b604052919050565b6001600160a01b038116811461045357600080fdfea26469706673582212205cd8324bedf0f162cae9e752d3763f56b4bc85ff58eab3a6dc5d842ef61cd1a064736f6c63430007010033",
  "linkReferences": {},
  "deployedLinkReferences": {}
}
