{
  "contractName": "NFTAuction",
  "abi": [
    {
      "inputs": [
        {
          "internalType": "address",
          "name": "_nftContract",
          "type": "address"
        },
        {
          "internalType": "uint256",
          "name": "_tokenId",
          "type": "uint256"
        },
        {
          "internalType": "uint256",
          "name": "_startingBid",
          "type": "uint256"
        },
        {
          "internalType": "uint256",
          "name": "_reservePrice",
          "type": "uint256"
        },
        {
          "internalType": "uint256",
          "name": "_minBidIncrement",
          "type": "uint256"
        },
        {
          "internalType": "uint256",
          "name": "_auctionEndTime",
          "type": "uint256"
        },
        {
          "internalType": "address payable",
          "name": "_seller",
          "type": "address"
        },
        {
          "internalType": "uint256",
          "name": "_marketplaceFee",
          "type": "uint256"
        },
        {
          "internalType": "uint256",
          "name": "_royaltyFee",
          "type": "uint256"
        },
        {
          "internalType": "address payable",
          "name": "_royaltyRecipient",
          "type": "address"
        }
      ],
      "stateMutability": "nonpayable",
      "type": "constructor"
    },
    {
      "anonymous": false,
      "inputs": [
        {
          "indexed": true,
          "internalType": "address",
          "name": "winner",
          "type": "address"
        },
        {
          "indexed": false,
          "internalType": "uint256",
          "name": "amount",
          "type": "uint256"
        }
      ],
      "name": "AuctionEnded",
      "type": "event"
    },
    {
      "anonymous": false,
      "inputs": [
        {
          "indexed": true,
          "internalType": "address",
          "name": "bidder",
          "type": "address"
        },
        {
          "indexed": false,
          "internalType": "uint256",
          "name": "amount",
          "type": "uint256"
        }
      ],
      "name": "BidPlaced",
      "type": "event"
    },
    {
      "anonymous": false,
      "inputs": [
        {
          "indexed": true,
          "internalType": "address",
          "name": "bidder",
          "type": "address"
        },
        {
          "indexed": false,
          "internalType": "uint256",
          "name": "amount",
          "type": "uint256"
        }
      ],
      "name": "BidRefunded",
      "type": "event"
    },
    {
      "inputs": [],
      "name": "auctionEndTime",
      "outputs": [
        {
          "internalType": "uint256",
          "name": "",
          "type": "uint256"
        }
      ],
      "stateMutability": "view",
      "type": "function"
    },
    {
      "inputs": [],
      "name": "ended",
      "outputs": [
        {
          "internalType": "bool",
          "name": "",
          "type": "bool"
        }
      ],
      "stateMutability": "view",
      "type": "function"
    },
    {
      "inputs": [],
      "name": "highestBid",
      "outputs": [
        {
          "internalType": "uint256",
          "name": "",
          "type": "uint256"
        }
      ],
      "stateMutability": "view",
      "type": "function"
    },
    {
      "inputs": [],
      "name": "highestBidder",
      "outputs": [
        {
          "internalType": "address",
          "name": "",
          "type": "address"
        }
      ],
      "stateMutability": "view",
      "type": "function"
    },
    {
      "inputs": [],
      "name": "marketplaceFee",
      "outputs": [
        {
          "internalType": "uint256",
          "name": "",
          "type": "uint256"
        }
      ],
      "stateMutability": "view",
      "type": "function"
    },
    {
      "inputs": [],
      "name": "minBidIncrement",
      "outputs": [
        {
          "internalType": "uint256",
          "name": "",
          "type": "uint256"
        }
      ],
      "stateMutability": "view",
      "type": "function"
    },
    {
      "inputs": [],
      "name": "nftContract",
      "outputs": [
        {
          "internalType": "address",
          "name": "",
          "type": "address"
        }
      ],
      "stateMutability": "view",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "address",
          "name": "",
          "type": "address"
        }
      ],
      "name": "pendingReturns",
      "outputs": [
        {
          "internalType": "uint256",
          "name": "",
          "type": "uint256"
        }
      ],
      "stateMutability": "view",
      "type": "function"
    },
    {
      "inputs": [],
      "name": "reservePrice",
      "outputs": [
        {
          "internalType": "uint256",
          "name": "",
          "type": "uint256"
        }
      ],
      "stateMutability": "view",
      "type": "function"
    },
    {
      "inputs": [],
      "name": "royaltyFee",
      "outputs": [
        {
          "internalType": "uint256",
          "name": "",
          "type": "uint256"
        }
      ],
      "stateMutability": "view",
      "type": "function"
    },
    {
      "inputs": [],
      "name": "royaltyRecipient",
      "outputs": [
        {
          "internalType": "address",
          "name": "",
          "type": "address"
        }
      ],
      "stateMutability": "view",
      "type": "function"
    },
    {
      "inputs": [],
      "name": "seller",
      "outputs": [
        {
          "internalType": "address",
          "name": "",
          "type": "address"
        }
      ],
      "stateMutability": "view",
      "type": "function"
    },
    {
      "inputs": [],
      "name": "startingBid",
      "outputs": [
        {
          "internalType": "uint256",
          "name": "",
          "type": "uint256"
        }
      ],
      "stateMutability": "view",
      "type": "function"
    },
    {
      "inputs": [],
      "name": "tokenId",
      "outputs": [
        {
          "internalType": "uint256",
          "name": "",
          "type": "uint256"
        }
      ],
      "stateMutability": "view",
      "type": "function"
    },
    {
      "inputs": [],
      "name": "bid",
      "outputs": [],
      "stateMutability": "payable",
      "type": "function"
    },
    {
      "inputs": [],
      "name": "withdraw",
      "outputs": [
        {
          "internalType": "bool",
          "name": "",
          "type": "bool"
        }
      ],
      "stateMutability": "nonpayable",
      "type": "function"
    },
    {
      "inputs": [],
      "name": "endAuction",
      "outputs": [],
      "stateMutability": "nonpayable",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "uint256",
          "name": "_extendTime",
          "type": "uint256"
        }
      ],
      "name": "extendAuction",
      "outputs": [],
      "stateMutability": "nonpayable",
      "type": "function"
    },
    {
      "inputs": [],
      "name": "emergencyWithdraw",
      "outputs": [],
      "stateMutability": "nonpayable",
      "type": "function"
    },
    {
      "inputs": [],
      "name": "getAuctionInfo",
      "outputs": [
        {
          "internalType": "address",
          "name": "_nftContract",
          "type": "address"
        },
        {
          "internalType": "uint256",
          "name": "_tokenId",
          "type": "uint256"
        },
        {
          "internalType": "uint256",
          "name": "_highestBid",
          "type": "uint256"
        },
        {
          "internalType": "address",
          "name": "_highestBidder",
          "type": "address"
        },
        {
          "internalType": "uint256",
          "name": "_auctionEndTime",
          "type": "uint256"
        },
        {
          "internalType": "bool",
          "name": "_ended",
          "type": "bool"
        }
      ],
      "stateMutability": "view",
      "type": "function"
    }
  ],
  "bytecode": "0x60806040523480156200001157600080fd5b5060405162001a4338038062001a43833981810160405281019062000037919062000254565b89600160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555088600281905550876003819055508660048190555085600581905550846006819055508360076000508473ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff16815250508260088190555081600981905550806008600050905081548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055505050505050505050506200036a565b6000805f5ffd5b5f3973ffffffffffffffffffffffffffffffffffffffff82169050919050565b5f6200016c826200013f565b9050919050565b6200017e816200015f565b81146200018a575f80fd5b50565b5f815190506200019d8162000173565b92915050565b5f819050919050565b620001b781620001a3565b8114620001c3575f80fd5b50565b5f81519050620001d681620001ac565b92915050565b5f620001e8826200015f565b9050919050565b620001fa81620001db565b811462000206575f80fd5b50565b5f815190506200021981620001ef565b92915050565b5f80fd5b5f601f19601f8301169050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b62000269826200021f565b810181811067ffffffffffffffff821117156200028b576200028a62000231565b5b80604052505050565b5f620002a062000219565b9050620002ae82826200025e565b919050565b5f80fd5b620002c2816200015f565b8114620002ce575f80fd5b50565b5f81519050620002e181620002b7565b92915050565b5f8060408385031215620002ff57620002fe620002b3565b5b5f6200030e85828601620002d1565b92505060206200032185828601620002d1565b9150509250929050565b5f805f805f805f805f60a08a8c0312156200034b576200034a620002b3565b5b5f6200035b8c828d016200018c565b99505060206200036e8c828d01620001c5565b9850506040620003818c828d01620001c5565b9750506060620003948c828d01620001c5565b9650506080620003a78c828d01620001c5565b955050505092959891949750929550565b61168b80620003785f395ff3fe60806040526004361061012d5760003560e01c8063991b9bd1116100a0578063d57bde7911610064578063d57bde791461038b578063e8688a63146103b6578063eac989f8146103e1578063ebfb13fb1461040c578063f19e75d414610437578063fcfff16f146104535761012d565b8063991b9bd1146102ae5780639e1c9fb5146102d9578063a78abc1614610304578063c19d93fb1461032f578063c87b56dd1461035a5761012d565b80634423c5f1116100f15780634423c5f1146101de57806367e4ac2c146102095780636c91d6a41461023457806381e75ab3146102715780638da5cb5b1461028d5761012d565b8063071b57911461013257806310d2c5501461015d57806318160ddd146101745780632a24f46c1461019f5780633ccfd60b146101ca575b600080fd5b34801561013e57600080fd5b5061014761048a565b6040516101549190610f9c565b60405180910390f35b34801561016957600080fd5b506101726104b0565b005b34801561018057600080fd5b5061018961066f565b6040516101969190610fc5565b60405180910390f35b3480156101ab57600080fd5b506101b4610675565b6040516101c19190610f9c565b60405180910390f35b3480156101d657600080fd5b506101df61069b565b005b3480156101ea57600080fd5b506101f3610793565b6040516102009190611034565b60405180910390f35b34801561021557600080fd5b5061021e6107b9565b60405161022b9190610fc5565b60405180910390f35b34801561024057600080fd5b5061025b60048036038101906102569190611082565b6107bf565b6040516102689190610fc5565b60405180910390f35b61028b600480360381019061028691906110eb565b6107d7565b005b34801561029957600080fd5b506102a2610a77565b6040516102af9190610f9c565b60405180910390f35b3480156102ba57600080fd5b506102c3610a9d565b6040516102d09190610fc5565b60405180910390f35b3480156102e557600080fd5b506102ee610aa3565b6040516102fb9190610fc5565b60405180910390f35b34801561031057600080fd5b50610319610aa9565b6040516103269190610fc5565b60405180910390f35b34801561033b57600080fd5b50610344610aaf565b6040516103519190611127565b60405180910390f35b34801561036657600080fd5b5061036f610ab5565b60405161037c9190610fc5565b60405180910390f35b34801561039757600080fd5b506103a0610abb565b6040516103ad9190610fc5565b60405180910390f35b3480156103c257600080fd5b506103cb610ac1565b6040516103d89190610f9c565b60405180910390f35b3480156103ed57600080fd5b506103f6610ae7565b6040516104039190610fc5565b60405180910390f35b34801561041857600080fd5b50610421610aed565b60405161042e9190610f9c565b60405180910390f35b610451600480360381019061044c91906110eb565b610b13565b005b34801561045f57600080fd5b50610468610b3b565b6040516104819695949392919061117e565b60405180910390f35b60085f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b5f600a5f3373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20549050801561062657600a5f3373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f90555f3373ffffffffffffffffffffffffffffffffffffffff168260405161055b906111fc565b5f6040518083038185875af1925050503d805f8114610596576040519150601f19603f3d011682016040523d82523d5f602084013e61059b565b606091505b5050905080610625576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161061c90611269565b60405180910390fd5b5b3373ffffffffffffffffffffffffffffffffffffffff167f884edad9ce6fa2440d8a54cc7b86c35f51b81e9c82b7d45d17a72d4e6a6d2ec78260405161066b9190610fc5565b60405180910390a250565b60035481565b600b5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b60065442106106df576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016106d6906112d1565b60405180910390fd5b600c5f9054906101000a900460ff1615610724576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161071b90611339565b60405180910390fd5b6001600c5f6101000a81548160ff02191690831515021790555061074c600854600454610b61565b61075a600954600754610b61565b3373ffffffffffffffffffffffffffffffffffffffff167f6405b88b00dc7c9a80cbde7d5f87d17f0b8c2e96ee38b0ad1afadad6b23c3dce426040516107a09190610fc5565b60405180910390a2505b565b600c5f9054906101000a900460ff1681565b60065481565b600a6020528060005260405f205f915090505481565b60065442106107eb576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016107e2906112d1565b60405180910390fd5b600c5f9054906101000a900460ff1615610830576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161082790611339565b60405180910390fd5b5f3411610842576040805162461bcd60e51b8152600401819052602001fd5b6004545f54341015610889576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610880906113a1565b60405180910390fd5b600554340310156108cf576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016108c690611409565b60405180910390fd5b600b5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16141561095e576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161095590611471565b60405180910390fd5b5f5434116109a157600a5f600b5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20600082825401925050819055505b34600081905550336000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506006546201518001421115610a3757610a366006546201518001600681905550565b5b3373ffffffffffffffffffffffffffffffffffffffff167f2e96b3cab4d6d5e2a5b3c94c4ba6b5b8e31e1324dc8cd072e8893ea2d6a6f38a34604051610a7c9190610fc5565b60405180910390a250565b60075f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b60085481565b60025481565b60045481565b60095481565b60015481565b60055481565b5f8060405180602001604052805f81525090505b905090565b600b5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b610b36600435600554610b61565b505050565b5f805f805f805f80806001809050809a505060028050809950506003809050809850506000809050809750506006809050809650506001809050809550505095509550955095509550909150565b8047101580610b7f5750600b60051b90501480156004b82045b15610b8b5750610b86565b60405173ffffffffffffffffffffffffffffffffffffffff82169083905f80a4183b5b50505050565b5f73ffffffffffffffffffffffffffffffffffffffff82169050919050565b5f610bb382610b8e565b9050919050565b610bc381610ba8565b82525050565b5f602082019050610bdc5f830184610bba565b92915050565b5f819050919050565b610bf481610be2565b82525050565b5f602082019050610c0d5f830184610beb565b92915050565b5f80fd5b610c2081610ba8565b8114610c2b575f80fd5b50565b5f81359050610c3c81610c17565b92915050565b5f60208284031215610c5757610c56610c13565b5b5f610c6484828501610c2e565b91505092915050565b610c7681610be2565b8114610c81575f80fd5b50565b5f81359050610c9281610c6d565b92915050565b5f60208284031215610cad57610cac610c13565b5b5f610cba84828501610c84565b91505092915050565b5f8115159050919050565b610cd781610cc3565b82525050565b5f602082019050610cf05f830184610cce565b92915050565b610cff81610cc3565b8114610d0a575f80fd5b50565b5f81359050610d1b81610cf6565b92915050565b5f819050919050565b610d3381610d21565b8114610d3e575f80fd5b50565b5f81359050610d4f81610d2a565b92915050565b5f805f805f8060c08789031215610d6f57610d6e610c13565b5b5f610d7c89828a01610c2e565b9650506020610d8d89828a01610c84565b9550506040610d9e89828a01610c84565b9450506060610daf89828a01610c2e565b9350506080610dc089828a01610c84565b92505060a0610dd189828a01610d0c565b9150509295509295509295565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52602260045260245ffd5b5f6002820490506001821680610e2357607f821691505b602082108103610e3657610e35610dde565b5b50919050565b7f5769746864726177616c206661696c656400000000000000000000000000000000602082015250565b5f610e72601183610e7e565b9150610e7d82610e3c565b602082019050919050565b5f82825260208201905092915050565b5f6020820190508181035f830152610eaf81610e66565b9050919050565b7f41756374696f6e20616c726561647920656e646564000000000000000000000000602082015250565b5f610eea601583610e7e565b9150610ef582610eb6565b602082019050919050565b5f6020820190508181035f830152610f1781610ede565b9050919050565b7f41756374696f6e20616c726561647920656e6465640000000000000000000000602082015250565b5f610f52601583610e7e565b9150610f5d82610f1e565b602082019050919050565b5f6020820190508181035f830152610f7f81610f46565b9050919050565b7f4d7573742073656e6420612076616c6964206269640000000000000000000000602082015250565b5f610fba601583610e7e565b9150610fc582610f86565b602082019050919050565b5f6020820190508181035f830152610fe781610fae565b9050919050565b7f4269642062656c6f77206d696e696d756d20696e6372656d656e740000000000602082015250565b5f611022601b83610e7e565b915061102d82610fee565b602082019050919050565b5f6020820190508181035f83015261104f81611016565b9050919050565b7f53656c6c65722063616e6e6f74206269640000000000000000000000000000000602082015250565b5f61108a601183610e7e565b915061109582611056565b602082019050919050565b5f6020820190508181035f8301526110b78161107e565b9050919050565b7f426964206578697374730000000000000000000000000000000000000000000005f82015250565b5f6110f2600a83610e7e565b91506110fd826110be565b602082019050919050565b5f6020820190508181035f83015261111f816110e6565b905091905056fea2646970667358221220c45b7e9c8d4b6f9e4ce8f2c5a3b4e8c8d1b2e3f4c5d6e1b8a9c0d2e3f4a5b6c708da64736f6c63430008140033"
}