{
  "_format": "hh-sol-artifact-1",
  "contractName": "MockRouter",
  "sourceName": "contracts/mocks/MockRouter.sol",
  "abi": [
    {
      "inputs": [
        {
          "internalType": "address",
          "name": "_baseToken",
          "type": "address"
        },
        {
          "internalType": "address",
          "name": "_weth",
          "type": "address"
        }
      ],
      "stateMutability": "nonpayable",
      "type": "constructor"
    },
    {
      "inputs": [],
      "name": "WETH",
      "outputs": [
        {
          "internalType": "contract IWETH",
          "name": "",
          "type": "address"
        }
      ],
      "stateMutability": "view",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "address",
          "name": "_receiver",
          "type": "address"
        },
        {
          "internalType": "uint256",
          "name": "_amount",
          "type": "uint256"
        }
      ],
      "name": "addMargin",
      "outputs": [],
      "stateMutability": "nonpayable",
      "type": "function"
    },
    {
      "inputs": [],
      "name": "baseToken",
      "outputs": [
        {
          "internalType": "contract IERC20",
          "name": "",
          "type": "address"
        }
      ],
      "stateMutability": "view",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "address",
          "name": "quoteToken",
          "type": "address"
        },
        {
          "internalType": "uint256",
          "name": "quoteAmount",
          "type": "uint256"
        },
        {
          "internalType": "uint256",
          "name": "deadline",
          "type": "uint256"
        },
        {
          "internalType": "bool",
          "name": "autoWithdraw",
          "type": "bool"
        }
      ],
      "name": "closePositionETH",
      "outputs": [
        {
          "internalType": "uint256",
          "name": "baseAmount",
          "type": "uint256"
        },
        {
          "internalType": "uint256",
          "name": "withdrawAmount",
          "type": "uint256"
        }
      ],
      "stateMutability": "nonpayable",
      "type": "function"
    },
    {
      "inputs": [],
      "name": "margin",
      "outputs": [
        {
          "internalType": "contract IMargin",
          "name": "",
          "type": "address"
        }
      ],
      "stateMutability": "view",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "uint256",
          "name": "_amount",
          "type": "uint256"
        }
      ],
      "name": "removeMargin",
      "outputs": [],
      "stateMutability": "nonpayable",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "address",
          "name": "_marginContract",
          "type": "address"
        }
      ],
      "name": "setMarginContract",
      "outputs": [],
      "stateMutability": "nonpayable",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "address",
          "name": "quoteToken",
          "type": "address"
        },
        {
          "internalType": "uint256",
          "name": "amount",
          "type": "uint256"
        }
      ],
      "name": "withdrawETH",
      "outputs": [],
      "stateMutability": "nonpayable",
      "type": "function"
    },
    {
      "stateMutability": "payable",
      "type": "receive"
    }
  ],
  "bytecode": "0x608060405234801561001057600080fd5b506040516107f83803806107f883398101604081905261002f9161007c565b600180546001600160a01b039384166001600160a01b031991821617909155600280549290931691161790556100ae565b80516001600160a01b038116811461007757600080fd5b919050565b6000806040838503121561008e578182fd5b61009783610060565b91506100a560208401610060565b90509250929050565b61073b806100bd6000396000f3fe60806040526004361061007f5760003560e01c8063adb39c481161004e578063adb39c4814610165578063c55dae63146101a2578063cf70cb69146101c2578063f11f854f146101e2576100ae565b80631d188331146100b35780634782f779146100ed5780638f76691a1461010d578063ad5c464814610145576100ae565b366100ae576002546001600160a01b031633146100ac57634e487b7160e01b600052600160045260246000fd5b005b600080fd5b3480156100bf57600080fd5b506100d36100ce36600461063d565b610202565b604080519283526020830191909152015b60405180910390f35b3480156100f957600080fd5b506100ac610108366004610614565b6103e0565b34801561011957600080fd5b5060005461012d906001600160a01b031681565b6040516001600160a01b0390911681526020016100e4565b34801561015157600080fd5b5060025461012d906001600160a01b031681565b34801561017157600080fd5b506100ac6101803660046105f3565b600080546001600160a01b0319166001600160a01b0392909216919091179055565b3480156101ae57600080fd5b5060015461012d906001600160a01b031681565b3480156101ce57600080fd5b506100ac6101dd366004610614565b6104a9565b3480156101ee57600080fd5b506100ac6101fd3660046106a0565b61056e565b60008054604051630e85fc3f60e31b81523360048201526024810186905282916001600160a01b03169063742fe1f890604401602060405180830381600087803b15801561024f57600080fd5b505af1158015610263573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061028791906106b8565b915082156103d757600054604051631966357360e11b81523360048201526001600160a01b03909116906332cc6ae69060240160206040518083038186803b1580156102d257600080fd5b505afa1580156102e6573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061030a91906106b8565b905080156103d75760005460405163a8fe8f8160e01b81526001600160a01b039091169063a8fe8f8190610346903390819086906004016106d0565b600060405180830381600087803b15801561036057600080fd5b505af1158015610374573d6000803e3d6000fd5b5050600254604051632e1a7d4d60e01b8152600481018590526001600160a01b039091169250632e1a7d4d9150602401600060405180830381600087803b1580156103be57600080fd5b505af11580156103d2573d6000803e3d6000fd5b505050505b94509492505050565b60005460405163a8fe8f8160e01b81526001600160a01b039091169063a8fe8f8190610414903390819086906004016106d0565b600060405180830381600087803b15801561042e57600080fd5b505af1158015610442573d6000803e3d6000fd5b5050600254604051632e1a7d4d60e01b8152600481018590526001600160a01b039091169250632e1a7d4d91506024015b600060405180830381600087803b15801561048d57600080fd5b505af11580156104a1573d6000803e3d6000fd5b505050505050565b6001546000546040516323b872dd60e01b81526001600160a01b03928316926323b872dd926104e29233929091169086906004016106d0565b602060405180830381600087803b1580156104fc57600080fd5b505af1158015610510573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906105349190610684565b5060005460405163cf70cb6960e01b81526001600160a01b038481166004830152602482018490529091169063cf70cb6990604401610473565b60005460405163a8fe8f8160e01b81526001600160a01b039091169063a8fe8f81906105a2903390819086906004016106d0565b600060405180830381600087803b1580156105bc57600080fd5b505af11580156105d0573d6000803e3d6000fd5b5050505050565b80356001600160a01b03811681146105ee57600080fd5b919050565b600060208284031215610604578081fd5b61060d826105d7565b9392505050565b60008060408385031215610626578081fd5b61062f836105d7565b946020939093013593505050565b60008060008060808587031215610652578182fd5b61065b856105d7565b935060208501359250604085013591506060850135610679816106f4565b939692955090935050565b600060208284031215610695578081fd5b815161060d816106f4565b6000602082840312156106b1578081fd5b5035919050565b6000602082840312156106c9578081fd5b5051919050565b6001600160a01b039384168152919092166020820152604081019190915260600190565b801515811461070257600080fd5b5056fea264697066735822122041384371a4ac42c2cd06553a8f0b06b7565cb07a532771416e41d9ccde16d79364736f6c63430008020033",
  "deployedBytecode": "0x60806040526004361061007f5760003560e01c8063adb39c481161004e578063adb39c4814610165578063c55dae63146101a2578063cf70cb69146101c2578063f11f854f146101e2576100ae565b80631d188331146100b35780634782f779146100ed5780638f76691a1461010d578063ad5c464814610145576100ae565b366100ae576002546001600160a01b031633146100ac57634e487b7160e01b600052600160045260246000fd5b005b600080fd5b3480156100bf57600080fd5b506100d36100ce36600461063d565b610202565b604080519283526020830191909152015b60405180910390f35b3480156100f957600080fd5b506100ac610108366004610614565b6103e0565b34801561011957600080fd5b5060005461012d906001600160a01b031681565b6040516001600160a01b0390911681526020016100e4565b34801561015157600080fd5b5060025461012d906001600160a01b031681565b34801561017157600080fd5b506100ac6101803660046105f3565b600080546001600160a01b0319166001600160a01b0392909216919091179055565b3480156101ae57600080fd5b5060015461012d906001600160a01b031681565b3480156101ce57600080fd5b506100ac6101dd366004610614565b6104a9565b3480156101ee57600080fd5b506100ac6101fd3660046106a0565b61056e565b60008054604051630e85fc3f60e31b81523360048201526024810186905282916001600160a01b03169063742fe1f890604401602060405180830381600087803b15801561024f57600080fd5b505af1158015610263573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061028791906106b8565b915082156103d757600054604051631966357360e11b81523360048201526001600160a01b03909116906332cc6ae69060240160206040518083038186803b1580156102d257600080fd5b505afa1580156102e6573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061030a91906106b8565b905080156103d75760005460405163a8fe8f8160e01b81526001600160a01b039091169063a8fe8f8190610346903390819086906004016106d0565b600060405180830381600087803b15801561036057600080fd5b505af1158015610374573d6000803e3d6000fd5b5050600254604051632e1a7d4d60e01b8152600481018590526001600160a01b039091169250632e1a7d4d9150602401600060405180830381600087803b1580156103be57600080fd5b505af11580156103d2573d6000803e3d6000fd5b505050505b94509492505050565b60005460405163a8fe8f8160e01b81526001600160a01b039091169063a8fe8f8190610414903390819086906004016106d0565b600060405180830381600087803b15801561042e57600080fd5b505af1158015610442573d6000803e3d6000fd5b5050600254604051632e1a7d4d60e01b8152600481018590526001600160a01b039091169250632e1a7d4d91506024015b600060405180830381600087803b15801561048d57600080fd5b505af11580156104a1573d6000803e3d6000fd5b505050505050565b6001546000546040516323b872dd60e01b81526001600160a01b03928316926323b872dd926104e29233929091169086906004016106d0565b602060405180830381600087803b1580156104fc57600080fd5b505af1158015610510573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906105349190610684565b5060005460405163cf70cb6960e01b81526001600160a01b038481166004830152602482018490529091169063cf70cb6990604401610473565b60005460405163a8fe8f8160e01b81526001600160a01b039091169063a8fe8f81906105a2903390819086906004016106d0565b600060405180830381600087803b1580156105bc57600080fd5b505af11580156105d0573d6000803e3d6000fd5b5050505050565b80356001600160a01b03811681146105ee57600080fd5b919050565b600060208284031215610604578081fd5b61060d826105d7565b9392505050565b60008060408385031215610626578081fd5b61062f836105d7565b946020939093013593505050565b60008060008060808587031215610652578182fd5b61065b856105d7565b935060208501359250604085013591506060850135610679816106f4565b939692955090935050565b600060208284031215610695578081fd5b815161060d816106f4565b6000602082840312156106b1578081fd5b5035919050565b6000602082840312156106c9578081fd5b5051919050565b6001600160a01b039384168152919092166020820152604081019190915260600190565b801515811461070257600080fd5b5056fea264697066735822122041384371a4ac42c2cd06553a8f0b06b7565cb07a532771416e41d9ccde16d79364736f6c63430008020033",
  "linkReferences": {},
  "deployedLinkReferences": {}
}
