{
    "abi": [
        {
            "inputs": [
                {
                    "internalType": "address",
                    "name": "_paymentErc20FeeProxy",
                    "type": "address"
                },
                {
                    "internalType": "address",
                    "name": "_paymentEthFeeProxy",
                    "type": "address"
                },
                {
                    "internalType": "address",
                    "name": "_owner",
                    "type": "address"
                }
            ],
            "stateMutability": "nonpayable",
            "type": "constructor"
        },
        {
            "anonymous": false,
            "inputs": [
                {
                    "indexed": true,
                    "internalType": "address",
                    "name": "previousOwner",
                    "type": "address"
                },
                {
                    "indexed": true,
                    "internalType": "address",
                    "name": "newOwner",
                    "type": "address"
                }
            ],
            "name": "OwnershipTransferred",
            "type": "event"
        },
        {
            "inputs": [
                {
                    "internalType": "address",
                    "name": "_erc20Address",
                    "type": "address"
                }
            ],
            "name": "approvePaymentProxyToSpend",
            "outputs": [],
            "stateMutability": "nonpayable",
            "type": "function"
        },
        {
            "inputs": [
                {
                    "internalType": "address[]",
                    "name": "_tokenAddresses",
                    "type": "address[]"
                },
                {
                    "internalType": "address[]",
                    "name": "_recipients",
                    "type": "address[]"
                },
                {
                    "internalType": "uint256[]",
                    "name": "_amounts",
                    "type": "uint256[]"
                },
                {
                    "internalType": "bytes[]",
                    "name": "_paymentReferences",
                    "type": "bytes[]"
                },
                {
                    "internalType": "uint256[]",
                    "name": "_feeAmounts",
                    "type": "uint256[]"
                },
                {
                    "internalType": "address",
                    "name": "_feeAddress",
                    "type": "address"
                }
            ],
            "name": "batchERC20PaymentsMultiTokensWithReference",
            "outputs": [],
            "stateMutability": "nonpayable",
            "type": "function"
        },
        {
            "inputs": [
                {
                    "internalType": "address",
                    "name": "_tokenAddress",
                    "type": "address"
                },
                {
                    "internalType": "address[]",
                    "name": "_recipients",
                    "type": "address[]"
                },
                {
                    "internalType": "uint256[]",
                    "name": "_amounts",
                    "type": "uint256[]"
                },
                {
                    "internalType": "bytes[]",
                    "name": "_paymentReferences",
                    "type": "bytes[]"
                },
                {
                    "internalType": "uint256[]",
                    "name": "_feeAmounts",
                    "type": "uint256[]"
                },
                {
                    "internalType": "address",
                    "name": "_feeAddress",
                    "type": "address"
                }
            ],
            "name": "batchERC20PaymentsWithReference",
            "outputs": [],
            "stateMutability": "nonpayable",
            "type": "function"
        },
        {
            "inputs": [
                {
                    "internalType": "address[]",
                    "name": "_recipients",
                    "type": "address[]"
                },
                {
                    "internalType": "uint256[]",
                    "name": "_amounts",
                    "type": "uint256[]"
                },
                {
                    "internalType": "bytes[]",
                    "name": "_paymentReferences",
                    "type": "bytes[]"
                },
                {
                    "internalType": "uint256[]",
                    "name": "_feeAmounts",
                    "type": "uint256[]"
                },
                {
                    "internalType": "address payable",
                    "name": "_feeAddress",
                    "type": "address"
                }
            ],
            "name": "batchEthPaymentsWithReference",
            "outputs": [],
            "stateMutability": "payable",
            "type": "function"
        },
        {
            "inputs": [],
            "name": "batchFee",
            "outputs": [
                {
                    "internalType": "uint256",
                    "name": "",
                    "type": "uint256"
                }
            ],
            "stateMutability": "view",
            "type": "function"
        },
        {
            "inputs": [],
            "name": "owner",
            "outputs": [
                {
                    "internalType": "address",
                    "name": "",
                    "type": "address"
                }
            ],
            "stateMutability": "view",
            "type": "function"
        },
        {
            "inputs": [],
            "name": "paymentErc20FeeProxy",
            "outputs": [
                {
                    "internalType": "contract IERC20FeeProxy",
                    "name": "",
                    "type": "address"
                }
            ],
            "stateMutability": "view",
            "type": "function"
        },
        {
            "inputs": [],
            "name": "paymentEthFeeProxy",
            "outputs": [
                {
                    "internalType": "contract IEthereumFeeProxy",
                    "name": "",
                    "type": "address"
                }
            ],
            "stateMutability": "view",
            "type": "function"
        },
        {
            "inputs": [],
            "name": "renounceOwnership",
            "outputs": [],
            "stateMutability": "nonpayable",
            "type": "function"
        },
        {
            "inputs": [
                {
                    "internalType": "uint256",
                    "name": "_batchFee",
                    "type": "uint256"
                }
            ],
            "name": "setBatchFee",
            "outputs": [],
            "stateMutability": "nonpayable",
            "type": "function"
        },
        {
            "inputs": [
                {
                    "internalType": "address",
                    "name": "_paymentErc20FeeProxy",
                    "type": "address"
                }
            ],
            "name": "setPaymentErc20FeeProxy",
            "outputs": [],
            "stateMutability": "nonpayable",
            "type": "function"
        },
        {
            "inputs": [
                {
                    "internalType": "address",
                    "name": "_paymentEthFeeProxy",
                    "type": "address"
                }
            ],
            "name": "setPaymentEthFeeProxy",
            "outputs": [],
            "stateMutability": "nonpayable",
            "type": "function"
        },
        {
            "inputs": [
                {
                    "internalType": "address",
                    "name": "newOwner",
                    "type": "address"
                }
            ],
            "name": "transferOwnership",
            "outputs": [],
            "stateMutability": "nonpayable",
            "type": "function"
        },
        {
            "stateMutability": "payable",
            "type": "receive"
        }
    ]
}
