[
 {
  "type": "constructor",
  "inputs": [
   {
    "name": "owner_",
    "type": "address",
    "internalType": "address"
   },
   {
    "name": "target_",
    "type": "address",
    "internalType": "address"
   },
   {
    "name": "poolManager_",
    "type": "address",
    "internalType": "address"
   }
  ],
  "stateMutability": "nonpayable"
 },
 {
  "type": "receive",
  "stateMutability": "payable"
 },
 {
  "type": "function",
  "name": "acceptOwnership",
  "inputs": [],
  "outputs": [],
  "stateMutability": "nonpayable"
 },
 {
  "type": "function",
  "name": "collect",
  "inputs": [
   {
    "name": "quote",
    "type": "address",
    "internalType": "address"
   }
  ],
  "outputs": [
   {
    "name": "collected",
    "type": "uint256",
    "internalType": "uint256"
   }
  ],
  "stateMutability": "nonpayable"
 },
 {
  "type": "function",
  "name": "contractName",
  "inputs": [],
  "outputs": [
   {
    "name": "",
    "type": "string",
    "internalType": "string"
   }
  ],
  "stateMutability": "pure"
 },
 {
  "type": "function",
  "name": "contractVersion",
  "inputs": [],
  "outputs": [
   {
    "name": "",
    "type": "string",
    "internalType": "string"
   }
  ],
  "stateMutability": "pure"
 },
 {
  "type": "function",
  "name": "nativeBlock",
  "inputs": [],
  "outputs": [
   {
    "name": "",
    "type": "address",
    "internalType": "address"
   }
  ],
  "stateMutability": "view"
 },
 {
  "type": "function",
  "name": "owner",
  "inputs": [],
  "outputs": [
   {
    "name": "",
    "type": "address",
    "internalType": "address"
   }
  ],
  "stateMutability": "view"
 },
 {
  "type": "function",
  "name": "pendingOwner",
  "inputs": [],
  "outputs": [
   {
    "name": "",
    "type": "address",
    "internalType": "address"
   }
  ],
  "stateMutability": "view"
 },
 {
  "type": "function",
  "name": "poolManager",
  "inputs": [],
  "outputs": [
   {
    "name": "",
    "type": "address",
    "internalType": "address"
   }
  ],
  "stateMutability": "view"
 },
 {
  "type": "function",
  "name": "proposeOwner",
  "inputs": [
   {
    "name": "nextOwner",
    "type": "address",
    "internalType": "address"
   }
  ],
  "outputs": [],
  "stateMutability": "nonpayable"
 },
 {
  "type": "function",
  "name": "setNativeBlock",
  "inputs": [
   {
    "name": "nativeBlock_",
    "type": "address",
    "internalType": "address"
   }
  ],
  "outputs": [],
  "stateMutability": "nonpayable"
 },
 {
  "type": "function",
  "name": "setTarget",
  "inputs": [
   {
    "name": "target_",
    "type": "address",
    "internalType": "address"
   }
  ],
  "outputs": [],
  "stateMutability": "nonpayable"
 },
 {
  "type": "function",
  "name": "setTargetAndCollect",
  "inputs": [
   {
    "name": "newTarget",
    "type": "address",
    "internalType": "address"
   },
   {
    "name": "quotes",
    "type": "address[]",
    "internalType": "address[]"
   }
  ],
  "outputs": [
   {
    "name": "collected",
    "type": "uint256[]",
    "internalType": "uint256[]"
   }
  ],
  "stateMutability": "nonpayable"
 },
 {
  "type": "function",
  "name": "sweep",
  "inputs": [
   {
    "name": "token",
    "type": "address",
    "internalType": "address"
   }
  ],
  "outputs": [],
  "stateMutability": "nonpayable"
 },
 {
  "type": "function",
  "name": "target",
  "inputs": [],
  "outputs": [
   {
    "name": "",
    "type": "address",
    "internalType": "address"
   }
  ],
  "stateMutability": "view"
 },
 {
  "type": "event",
  "name": "Collected",
  "inputs": [
   {
    "name": "quote",
    "type": "address",
    "indexed": true,
    "internalType": "address"
   },
   {
    "name": "target",
    "type": "address",
    "indexed": true,
    "internalType": "address"
   },
   {
    "name": "paid",
    "type": "uint256",
    "indexed": false,
    "internalType": "uint256"
   }
  ],
  "anonymous": false
 },
 {
  "type": "event",
  "name": "ForwardDeferred",
  "inputs": [
   {
    "name": "quote",
    "type": "address",
    "indexed": true,
    "internalType": "address"
   },
   {
    "name": "target",
    "type": "address",
    "indexed": true,
    "internalType": "address"
   },
   {
    "name": "amount",
    "type": "uint256",
    "indexed": false,
    "internalType": "uint256"
   }
  ],
  "anonymous": false
 },
 {
  "type": "event",
  "name": "NativeBlockSet",
  "inputs": [
   {
    "name": "nativeBlock",
    "type": "address",
    "indexed": true,
    "internalType": "address"
   }
  ],
  "anonymous": false
 },
 {
  "type": "event",
  "name": "OwnerProposalCleared",
  "inputs": [],
  "anonymous": false
 },
 {
  "type": "event",
  "name": "OwnerProposed",
  "inputs": [
   {
    "name": "pendingOwner",
    "type": "address",
    "indexed": true,
    "internalType": "address"
   }
  ],
  "anonymous": false
 },
 {
  "type": "event",
  "name": "OwnerSet",
  "inputs": [
   {
    "name": "owner",
    "type": "address",
    "indexed": true,
    "internalType": "address"
   }
  ],
  "anonymous": false
 },
 {
  "type": "event",
  "name": "Swept",
  "inputs": [
   {
    "name": "token",
    "type": "address",
    "indexed": true,
    "internalType": "address"
   },
   {
    "name": "target",
    "type": "address",
    "indexed": true,
    "internalType": "address"
   },
   {
    "name": "amount",
    "type": "uint256",
    "indexed": false,
    "internalType": "uint256"
   }
  ],
  "anonymous": false
 },
 {
  "type": "event",
  "name": "TargetSet",
  "inputs": [
   {
    "name": "target",
    "type": "address",
    "indexed": true,
    "internalType": "address"
   }
  ],
  "anonymous": false
 },
 {
  "type": "error",
  "name": "InvalidNativeBlock",
  "inputs": []
 },
 {
  "type": "error",
  "name": "InvalidPoolManager",
  "inputs": []
 },
 {
  "type": "error",
  "name": "InvalidTarget",
  "inputs": []
 },
 {
  "type": "error",
  "name": "NativeBlockUnchanged",
  "inputs": []
 },
 {
  "type": "error",
  "name": "NativeTransferFailed",
  "inputs": []
 },
 {
  "type": "error",
  "name": "NotBound",
  "inputs": []
 },
 {
  "type": "error",
  "name": "NotOwner",
  "inputs": []
 },
 {
  "type": "error",
  "name": "NotPendingOwner",
  "inputs": []
 },
 {
  "type": "error",
  "name": "TargetUnchanged",
  "inputs": []
 },
 {
  "type": "error",
  "name": "TokenCallFailed",
  "inputs": []
 },
 {
  "type": "error",
  "name": "ZeroAddress",
  "inputs": []
 }
]