[
    {
        "type": "constructor",
        "stateMutability": "nonpayable",
        "inputs": [
            {
                "type": "address",
                "name": "_coupon",
                "internalType": "address"
            },
            {
                "type": "address",
                "name": "_devAddr",
                "internalType": "address"
            },
            {
                "type": "address",
                "name": "_feeAddress",
                "internalType": "address"
            },
            {
                "type": "uint256",
                "name": "_couponPerSecond",
                "internalType": "uint256"
            },
            {
                "type": "uint256",
                "name": "_startTimestamp",
                "internalType": "uint256"
            },
            {
                "type": "address",
                "name": "_reserver",
                "internalType": "address"
            }
        ]
    },
    {
        "type": "event",
        "name": "Deposit",
        "inputs": [
            {
                "type": "address",
                "name": "user",
                "internalType": "address",
                "indexed": true
            },
            {
                "type": "uint256",
                "name": "pid",
                "internalType": "uint256",
                "indexed": true
            },
            {
                "type": "uint256",
                "name": "amount",
                "internalType": "uint256",
                "indexed": false
            }
        ],
        "anonymous": false
    },
    {
        "type": "event",
        "name": "EmergencyWithdraw",
        "inputs": [
            {
                "type": "address",
                "name": "user",
                "internalType": "address",
                "indexed": true
            },
            {
                "type": "uint256",
                "name": "pid",
                "internalType": "uint256",
                "indexed": true
            },
            {
                "type": "uint256",
                "name": "amount",
                "internalType": "uint256",
                "indexed": false
            }
        ],
        "anonymous": false
    },
    {
        "type": "event",
        "name": "OwnershipTransferred",
        "inputs": [
            {
                "type": "address",
                "name": "previousOwner",
                "internalType": "address",
                "indexed": true
            },
            {
                "type": "address",
                "name": "newOwner",
                "internalType": "address",
                "indexed": true
            }
        ],
        "anonymous": false
    },
    {
        "type": "event",
        "name": "SetDevAddress",
        "inputs": [
            {
                "type": "address",
                "name": "user",
                "internalType": "address",
                "indexed": true
            },
            {
                "type": "address",
                "name": "newAddress",
                "internalType": "address",
                "indexed": true
            }
        ],
        "anonymous": false
    },
    {
        "type": "event",
        "name": "SetFeeAddress",
        "inputs": [
            {
                "type": "address",
                "name": "user",
                "internalType": "address",
                "indexed": true
            },
            {
                "type": "address",
                "name": "newAddress",
                "internalType": "address",
                "indexed": true
            }
        ],
        "anonymous": false
    },
    {
        "type": "event",
        "name": "UpdateEmissionRate",
        "inputs": [
            {
                "type": "address",
                "name": "user",
                "internalType": "address",
                "indexed": true
            },
            {
                "type": "uint256",
                "name": "couponPerSecond",
                "internalType": "uint256",
                "indexed": false
            }
        ],
        "anonymous": false
    },
    {
        "type": "event",
        "name": "Withdraw",
        "inputs": [
            {
                "type": "address",
                "name": "user",
                "internalType": "address",
                "indexed": true
            },
            {
                "type": "uint256",
                "name": "pid",
                "internalType": "uint256",
                "indexed": true
            },
            {
                "type": "uint256",
                "name": "amount",
                "internalType": "uint256",
                "indexed": false
            }
        ],
        "anonymous": false
    },
    {
        "type": "function",
        "stateMutability": "view",
        "outputs": [
            {
                "type": "uint256",
                "name": "",
                "internalType": "uint256"
            }
        ],
        "name": "BONUS_MULTIPLIER",
        "inputs": []
    },
    {
        "type": "function",
        "stateMutability": "nonpayable",
        "outputs": [],
        "name": "add",
        "inputs": [
            {
                "type": "uint256",
                "name": "_allocPoint",
                "internalType": "uint256"
            },
            {
                "type": "address",
                "name": "_lpToken",
                "internalType": "contract IERC20"
            },
            {
                "type": "uint16",
                "name": "_depositFeeBP",
                "internalType": "uint16"
            }
        ]
    },
    {
        "type": "function",
        "stateMutability": "view",
        "outputs": [
            {
                "type": "address",
                "name": "",
                "internalType": "contract IMintableERC20"
            }
        ],
        "name": "coupon",
        "inputs": []
    },
    {
        "type": "function",
        "stateMutability": "view",
        "outputs": [
            {
                "type": "uint256",
                "name": "",
                "internalType": "uint256"
            }
        ],
        "name": "couponPerSecond",
        "inputs": []
    },
    {
        "type": "function",
        "stateMutability": "nonpayable",
        "outputs": [],
        "name": "deposit",
        "inputs": [
            {
                "type": "uint256",
                "name": "_pid",
                "internalType": "uint256"
            },
            {
                "type": "uint256",
                "name": "_amount",
                "internalType": "uint256"
            }
        ]
    },
    {
        "type": "function",
        "stateMutability": "view",
        "outputs": [
            {
                "type": "address",
                "name": "",
                "internalType": "address"
            }
        ],
        "name": "devAddr",
        "inputs": []
    },
    {
        "type": "function",
        "stateMutability": "nonpayable",
        "outputs": [],
        "name": "emergencyWithdraw",
        "inputs": [
            {
                "type": "uint256",
                "name": "_pid",
                "internalType": "uint256"
            }
        ]
    },
    {
        "type": "function",
        "stateMutability": "view",
        "outputs": [
            {
                "type": "address",
                "name": "",
                "internalType": "address"
            }
        ],
        "name": "feeAddress",
        "inputs": []
    },
    {
        "type": "function",
        "stateMutability": "view",
        "outputs": [
            {
                "type": "uint256",
                "name": "",
                "internalType": "uint256"
            }
        ],
        "name": "getMultiplier",
        "inputs": [
            {
                "type": "uint256",
                "name": "_from",
                "internalType": "uint256"
            },
            {
                "type": "uint256",
                "name": "_to",
                "internalType": "uint256"
            }
        ]
    },
    {
        "type": "function",
        "stateMutability": "nonpayable",
        "outputs": [],
        "name": "harvestAll",
        "inputs": []
    },
    {
        "type": "function",
        "stateMutability": "nonpayable",
        "outputs": [],
        "name": "massUpdatePools",
        "inputs": []
    },
    {
        "type": "function",
        "stateMutability": "view",
        "outputs": [
            {
                "type": "address",
                "name": "",
                "internalType": "address"
            }
        ],
        "name": "owner",
        "inputs": []
    },
    {
        "type": "function",
        "stateMutability": "view",
        "outputs": [
            {
                "type": "uint256",
                "name": "",
                "internalType": "uint256"
            }
        ],
        "name": "pendingCoupon",
        "inputs": [
            {
                "type": "uint256",
                "name": "_pid",
                "internalType": "uint256"
            },
            {
                "type": "address",
                "name": "_user",
                "internalType": "address"
            }
        ]
    },
    {
        "type": "function",
        "stateMutability": "view",
        "outputs": [
            {
                "type": "bool",
                "name": "",
                "internalType": "bool"
            }
        ],
        "name": "poolExistence",
        "inputs": [
            {
                "type": "address",
                "name": "",
                "internalType": "contract IERC20"
            }
        ]
    },
    {
        "type": "function",
        "stateMutability": "view",
        "outputs": [
            {
                "type": "address",
                "name": "lpToken",
                "internalType": "contract IERC20"
            },
            {
                "type": "uint256",
                "name": "allocPoint",
                "internalType": "uint256"
            },
            {
                "type": "uint256",
                "name": "lastRewardTimestamp",
                "internalType": "uint256"
            },
            {
                "type": "uint256",
                "name": "accCouponPerShare",
                "internalType": "uint256"
            },
            {
                "type": "uint16",
                "name": "depositFeeBP",
                "internalType": "uint16"
            }
        ],
        "name": "poolInfo",
        "inputs": [
            {
                "type": "uint256",
                "name": "",
                "internalType": "uint256"
            }
        ]
    },
    {
        "type": "function",
        "stateMutability": "view",
        "outputs": [
            {
                "type": "address",
                "name": "",
                "internalType": "address"
            }
        ],
        "name": "poolInfoDummyList",
        "inputs": [
            {
                "type": "uint256",
                "name": "",
                "internalType": "uint256"
            }
        ]
    },
    {
        "type": "function",
        "stateMutability": "view",
        "outputs": [
            {
                "type": "uint256",
                "name": "",
                "internalType": "uint256"
            }
        ],
        "name": "poolInfoPidList",
        "inputs": [
            {
                "type": "uint256",
                "name": "",
                "internalType": "uint256"
            }
        ]
    },
    {
        "type": "function",
        "stateMutability": "view",
        "outputs": [
            {
                "type": "uint256",
                "name": "",
                "internalType": "uint256"
            }
        ],
        "name": "poolLength",
        "inputs": []
    },
    {
        "type": "function",
        "stateMutability": "nonpayable",
        "outputs": [],
        "name": "remove",
        "inputs": [
            {
                "type": "uint256",
                "name": "_pid",
                "internalType": "uint256"
            },
            {
                "type": "bool",
                "name": "emergency",
                "internalType": "bool"
            }
        ]
    },
    {
        "type": "function",
        "stateMutability": "nonpayable",
        "outputs": [],
        "name": "renounceOwnership",
        "inputs": []
    },
    {
        "type": "function",
        "stateMutability": "view",
        "outputs": [
            {
                "type": "address",
                "name": "",
                "internalType": "address"
            }
        ],
        "name": "reserver",
        "inputs": []
    },
    {
        "type": "function",
        "stateMutability": "nonpayable",
        "outputs": [],
        "name": "set",
        "inputs": [
            {
                "type": "uint256",
                "name": "_pid",
                "internalType": "uint256"
            },
            {
                "type": "uint256",
                "name": "_allocPoint",
                "internalType": "uint256"
            },
            {
                "type": "uint16",
                "name": "_depositFeeBP",
                "internalType": "uint16"
            }
        ]
    },
    {
        "type": "function",
        "stateMutability": "nonpayable",
        "outputs": [],
        "name": "setDevAddress",
        "inputs": [
            {
                "type": "address",
                "name": "_devAddr",
                "internalType": "address"
            }
        ]
    },
    {
        "type": "function",
        "stateMutability": "nonpayable",
        "outputs": [],
        "name": "setFeeAddress",
        "inputs": [
            {
                "type": "address",
                "name": "_feeAddress",
                "internalType": "address"
            }
        ]
    },
    {
        "type": "function",
        "stateMutability": "nonpayable",
        "outputs": [],
        "name": "setStartTimestamp",
        "inputs": [
            {
                "type": "uint256",
                "name": "newTimestamp",
                "internalType": "uint256"
            }
        ]
    },
    {
        "type": "function",
        "stateMutability": "view",
        "outputs": [
            {
                "type": "uint256",
                "name": "",
                "internalType": "uint256"
            }
        ],
        "name": "startTimestamp",
        "inputs": []
    },
    {
        "type": "function",
        "stateMutability": "view",
        "outputs": [
            {
                "type": "uint256",
                "name": "",
                "internalType": "uint256"
            }
        ],
        "name": "totalAllocPoint",
        "inputs": []
    },
    {
        "type": "function",
        "stateMutability": "nonpayable",
        "outputs": [],
        "name": "transferOwnership",
        "inputs": [
            {
                "type": "address",
                "name": "newOwner",
                "internalType": "address"
            }
        ]
    },
    {
        "type": "function",
        "stateMutability": "nonpayable",
        "outputs": [],
        "name": "updateEmissionRate",
        "inputs": [
            {
                "type": "uint256",
                "name": "_couponPerSecond",
                "internalType": "uint256"
            }
        ]
    },
    {
        "type": "function",
        "stateMutability": "nonpayable",
        "outputs": [],
        "name": "updatePool",
        "inputs": [
            {
                "type": "uint256",
                "name": "_pid",
                "internalType": "uint256"
            }
        ]
    },
    {
        "type": "function",
        "stateMutability": "view",
        "outputs": [
            {
                "type": "uint256",
                "name": "amount",
                "internalType": "uint256"
            },
            {
                "type": "uint256",
                "name": "rewardDebt",
                "internalType": "uint256"
            }
        ],
        "name": "userInfo",
        "inputs": [
            {
                "type": "uint256",
                "name": "",
                "internalType": "uint256"
            },
            {
                "type": "address",
                "name": "",
                "internalType": "address"
            }
        ]
    },
    {
        "type": "function",
        "stateMutability": "nonpayable",
        "outputs": [],
        "name": "withdraw",
        "inputs": [
            {
                "type": "uint256",
                "name": "_pid",
                "internalType": "uint256"
            },
            {
                "type": "uint256",
                "name": "_amount",
                "internalType": "uint256"
            }
        ]
    }
]