{
  "contractName": "IMarketPlace",
  "abi": [
    {
      "anonymous": false,
      "inputs": [
        {
          "indexed": true,
          "internalType": "uint256",
          "name": "_tokenId",
          "type": "uint256"
        },
        {
          "indexed": true,
          "internalType": "address",
          "name": "_oldOwner",
          "type": "address"
        },
        {
          "indexed": true,
          "internalType": "address",
          "name": "_newOwner",
          "type": "address"
        },
        {
          "indexed": false,
          "internalType": "uint256",
          "name": "_index",
          "type": "uint256"
        }
      ],
      "name": "ApproveOffer",
      "type": "event"
    },
    {
      "anonymous": false,
      "inputs": [
        {
          "indexed": true,
          "internalType": "uint256",
          "name": "_tokenId",
          "type": "uint256"
        },
        {
          "indexed": false,
          "internalType": "uint256",
          "name": "_amount",
          "type": "uint256"
        },
        {
          "indexed": false,
          "internalType": "address",
          "name": "_token20",
          "type": "address"
        },
        {
          "indexed": true,
          "internalType": "address",
          "name": "_bargainer",
          "type": "address"
        },
        {
          "indexed": false,
          "internalType": "uint256",
          "name": "_timeout",
          "type": "uint256"
        }
      ],
      "name": "NewOffer",
      "type": "event"
    },
    {
      "anonymous": false,
      "inputs": [
        {
          "indexed": true,
          "internalType": "uint256",
          "name": "_tokenId",
          "type": "uint256"
        },
        {
          "indexed": true,
          "internalType": "address",
          "name": "_oldOwner",
          "type": "address"
        },
        {
          "indexed": true,
          "internalType": "address",
          "name": "_newOwner",
          "type": "address"
        }
      ],
      "name": "Transfer",
      "type": "event"
    },
    {
      "inputs": [
        {
          "internalType": "address",
          "name": "_artAddr",
          "type": "address"
        }
      ],
      "name": "setArtAddr",
      "outputs": [],
      "stateMutability": "nonpayable",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "string",
          "name": "_hashInfo",
          "type": "string"
        },
        {
          "internalType": "string",
          "name": "_hashImg",
          "type": "string"
        },
        {
          "internalType": "uint256",
          "name": "_price",
          "type": "uint256"
        }
      ],
      "name": "createNewProduct",
      "outputs": [],
      "stateMutability": "nonpayable",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "uint256",
          "name": "_tokenId",
          "type": "uint256"
        }
      ],
      "name": "setListOrNot",
      "outputs": [],
      "stateMutability": "nonpayable",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "uint256",
          "name": "_tokenId",
          "type": "uint256"
        }
      ],
      "name": "setSellOrNot",
      "outputs": [],
      "stateMutability": "nonpayable",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "uint256",
          "name": "_tokenId",
          "type": "uint256"
        },
        {
          "internalType": "uint256",
          "name": "_price",
          "type": "uint256"
        }
      ],
      "name": "setPrice",
      "outputs": [],
      "stateMutability": "nonpayable",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "address",
          "name": "_user",
          "type": "address"
        }
      ],
      "name": "getProductListCreated",
      "outputs": [
        {
          "components": [
            {
              "internalType": "uint256",
              "name": "tokenId",
              "type": "uint256"
            },
            {
              "internalType": "uint256",
              "name": "price",
              "type": "uint256"
            },
            {
              "internalType": "bool",
              "name": "listing",
              "type": "bool"
            },
            {
              "internalType": "bool",
              "name": "selling",
              "type": "bool"
            },
            {
              "internalType": "address",
              "name": "creator",
              "type": "address"
            },
            {
              "internalType": "uint256",
              "name": "rate",
              "type": "uint256"
            },
            {
              "internalType": "uint256",
              "name": "timestamp",
              "type": "uint256"
            }
          ],
          "internalType": "struct IMarketPlace.Product[]",
          "name": "",
          "type": "tuple[]"
        }
      ],
      "stateMutability": "view",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "uint256",
          "name": "_tokenId",
          "type": "uint256"
        }
      ],
      "name": "buyWithETH",
      "outputs": [],
      "stateMutability": "payable",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "uint256",
          "name": "_tokenId",
          "type": "uint256"
        },
        {
          "internalType": "string",
          "name": "traransactionId",
          "type": "string"
        }
      ],
      "name": "buyWithCurrency",
      "outputs": [],
      "stateMutability": "nonpayable",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "address",
          "name": "_owner",
          "type": "address"
        }
      ],
      "name": "getProducListOwnable",
      "outputs": [
        {
          "components": [
            {
              "internalType": "uint256",
              "name": "tokenId",
              "type": "uint256"
            },
            {
              "internalType": "uint256",
              "name": "price",
              "type": "uint256"
            },
            {
              "internalType": "bool",
              "name": "listing",
              "type": "bool"
            },
            {
              "internalType": "bool",
              "name": "selling",
              "type": "bool"
            },
            {
              "internalType": "address",
              "name": "creator",
              "type": "address"
            },
            {
              "internalType": "uint256",
              "name": "rate",
              "type": "uint256"
            },
            {
              "internalType": "uint256",
              "name": "timestamp",
              "type": "uint256"
            }
          ],
          "internalType": "struct IMarketPlace.Product[]",
          "name": "",
          "type": "tuple[]"
        }
      ],
      "stateMutability": "view",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "uint256",
          "name": "_tokenId",
          "type": "uint256"
        },
        {
          "internalType": "uint256",
          "name": "_amount",
          "type": "uint256"
        },
        {
          "internalType": "address",
          "name": "_token20",
          "type": "address"
        },
        {
          "internalType": "uint256",
          "name": "_timeout",
          "type": "uint256"
        }
      ],
      "name": "offer",
      "outputs": [],
      "stateMutability": "nonpayable",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "uint256",
          "name": "_tokenId",
          "type": "uint256"
        },
        {
          "internalType": "uint256",
          "name": "_index",
          "type": "uint256"
        },
        {
          "internalType": "uint256",
          "name": "_timeout",
          "type": "uint256"
        }
      ],
      "name": "restartOffer",
      "outputs": [],
      "stateMutability": "nonpayable",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "uint256",
          "name": "_tokenId",
          "type": "uint256"
        },
        {
          "internalType": "uint256",
          "name": "_index",
          "type": "uint256"
        }
      ],
      "name": "getOffer",
      "outputs": [
        {
          "components": [
            {
              "internalType": "uint256",
              "name": "tokenId",
              "type": "uint256"
            },
            {
              "internalType": "uint256",
              "name": "amount",
              "type": "uint256"
            },
            {
              "internalType": "address",
              "name": "token20",
              "type": "address"
            },
            {
              "internalType": "address",
              "name": "bargainer",
              "type": "address"
            },
            {
              "internalType": "bool",
              "name": "accepted",
              "type": "bool"
            },
            {
              "internalType": "uint256",
              "name": "timeout",
              "type": "uint256"
            }
          ],
          "internalType": "struct IMarketPlace.Offer",
          "name": "",
          "type": "tuple"
        }
      ],
      "stateMutability": "view",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "uint256",
          "name": "_tokenId",
          "type": "uint256"
        },
        {
          "internalType": "uint256",
          "name": "_index",
          "type": "uint256"
        }
      ],
      "name": "approveOffer",
      "outputs": [],
      "stateMutability": "nonpayable",
      "type": "function"
    }
  ],
  "metadata": "{\"compiler\":{\"version\":\"0.8.0+commit.c7dfd78e\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"uint256\",\"name\":\"_tokenId\",\"type\":\"uint256\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"_oldOwner\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"_newOwner\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"_index\",\"type\":\"uint256\"}],\"name\":\"ApproveOffer\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"uint256\",\"name\":\"_tokenId\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"_amount\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"address\",\"name\":\"_token20\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"_bargainer\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"_timeout\",\"type\":\"uint256\"}],\"name\":\"NewOffer\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"uint256\",\"name\":\"_tokenId\",\"type\":\"uint256\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"_oldOwner\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"_newOwner\",\"type\":\"address\"}],\"name\":\"Transfer\",\"type\":\"event\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"_tokenId\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"_index\",\"type\":\"uint256\"}],\"name\":\"approveOffer\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"_tokenId\",\"type\":\"uint256\"},{\"internalType\":\"string\",\"name\":\"traransactionId\",\"type\":\"string\"}],\"name\":\"buyWithCurrency\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"_tokenId\",\"type\":\"uint256\"}],\"name\":\"buyWithETH\",\"outputs\":[],\"stateMutability\":\"payable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"_hashInfo\",\"type\":\"string\"},{\"internalType\":\"string\",\"name\":\"_hashImg\",\"type\":\"string\"},{\"internalType\":\"uint256\",\"name\":\"_price\",\"type\":\"uint256\"}],\"name\":\"createNewProduct\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"_tokenId\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"_index\",\"type\":\"uint256\"}],\"name\":\"getOffer\",\"outputs\":[{\"components\":[{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"},{\"internalType\":\"address\",\"name\":\"token20\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"bargainer\",\"type\":\"address\"},{\"internalType\":\"bool\",\"name\":\"accepted\",\"type\":\"bool\"},{\"internalType\":\"uint256\",\"name\":\"timeout\",\"type\":\"uint256\"}],\"internalType\":\"struct IMarketPlace.Offer\",\"name\":\"\",\"type\":\"tuple\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_owner\",\"type\":\"address\"}],\"name\":\"getProducListOwnable\",\"outputs\":[{\"components\":[{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"price\",\"type\":\"uint256\"},{\"internalType\":\"bool\",\"name\":\"listing\",\"type\":\"bool\"},{\"internalType\":\"bool\",\"name\":\"selling\",\"type\":\"bool\"},{\"internalType\":\"address\",\"name\":\"creator\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"rate\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"timestamp\",\"type\":\"uint256\"}],\"internalType\":\"struct IMarketPlace.Product[]\",\"name\":\"\",\"type\":\"tuple[]\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_user\",\"type\":\"address\"}],\"name\":\"getProductListCreated\",\"outputs\":[{\"components\":[{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"price\",\"type\":\"uint256\"},{\"internalType\":\"bool\",\"name\":\"listing\",\"type\":\"bool\"},{\"internalType\":\"bool\",\"name\":\"selling\",\"type\":\"bool\"},{\"internalType\":\"address\",\"name\":\"creator\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"rate\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"timestamp\",\"type\":\"uint256\"}],\"internalType\":\"struct IMarketPlace.Product[]\",\"name\":\"\",\"type\":\"tuple[]\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"_tokenId\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"_amount\",\"type\":\"uint256\"},{\"internalType\":\"address\",\"name\":\"_token20\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"_timeout\",\"type\":\"uint256\"}],\"name\":\"offer\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"_tokenId\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"_index\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"_timeout\",\"type\":\"uint256\"}],\"name\":\"restartOffer\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_artAddr\",\"type\":\"address\"}],\"name\":\"setArtAddr\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"_tokenId\",\"type\":\"uint256\"}],\"name\":\"setListOrNot\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"_tokenId\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"_price\",\"type\":\"uint256\"}],\"name\":\"setPrice\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"_tokenId\",\"type\":\"uint256\"}],\"name\":\"setSellOrNot\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"}],\"devdoc\":{\"kind\":\"dev\",\"methods\":{\"buyWithETH(uint256)\":{\"details\":\"Moves `_tokenId` product from its owner to `sender` using the. `sender` pass a mount ETH, this will transfer to owner of `_tokenId`\"},\"createNewProduct(string,string,uint256)\":{\"details\":\"Create product that will list on market place.\"},\"getProducListOwnable(address)\":{\"details\":\"Return the product list of `owner`\"},\"getProductListCreated(address)\":{\"details\":\"Return the product list listing on market place\"},\"offer(uint256,uint256,address,uint256)\":{\"details\":\"Create a offer to negotiate the product `_tokenId`\"},\"restartOffer(uint256,uint256,uint256)\":{\"details\":\"Restart time for offer timeout with `_tokenId`\"},\"setArtAddr(address)\":{\"details\":\"Sets the contract address for creating NFT\"},\"setListOrNot(uint256)\":{\"details\":\"Set a product if it listed on market place or not.\"},\"setPrice(uint256,uint256)\":{\"details\":\"Set price to product with its tokenId.\"},\"setSellOrNot(uint256)\":{\"details\":\"Set a product if it sold or not.\"}},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"project:/contracts/interfaces/IMarketplace.sol\":\"IMarketPlace\"},\"evmVersion\":\"istanbul\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":false,\"runs\":200},\"remappings\":[]},\"sources\":{\"project:/contracts/interfaces/IMarketplace.sol\":{\"keccak256\":\"0x68a394d9aec61390ebf9c61bf6d5e8e55ee70a9de90eef8adb0ba5d4c5b1aa27\",\"license\":\"UNLICENSED\",\"urls\":[\"bzz-raw://ff31bcfd56c69795a637b8aec56e3cdf9642e6a00d8895919d44e7f7e486a476\",\"dweb:/ipfs/QmWN8eD9C7sLZ8yrgkjXwtfL6rEZ5SXZEXq3jHRPmUdBMJ\"]}},\"version\":1}",
  "bytecode": "0x",
  "deployedBytecode": "0x",
  "immutableReferences": {},
  "generatedSources": [],
  "deployedGeneratedSources": [],
  "sourceMap": "",
  "deployedSourceMap": "",
  "source": "//SPDX-License-Identifier: UNLICENSED\r\npragma solidity ^0.8.0;\r\n\r\ninterface IMarketPlace {\r\n    struct Product {\r\n        uint256 tokenId;\r\n        uint256 price;\r\n        bool listing;\r\n        bool selling;\r\n        address creator;\r\n        uint256 rate;\r\n        uint256 timestamp;\r\n    }\r\n\r\n    struct Offer {\r\n        uint256 tokenId;\r\n        uint256 amount;\r\n        address token20;\r\n        address bargainer;\r\n        bool accepted;\r\n        uint256 timeout;\r\n    }\r\n\r\n    event Transfer(\r\n        uint256 indexed _tokenId,\r\n        address indexed _oldOwner,\r\n        address indexed _newOwner\r\n    );\r\n    event NewOffer(\r\n        uint256 indexed _tokenId,\r\n        uint256 _amount,\r\n        address _token20,\r\n        address indexed _bargainer,\r\n        uint256 _timeout\r\n    );\r\n    event ApproveOffer(\r\n        uint256 indexed _tokenId,\r\n        address indexed _oldOwner,\r\n        address indexed _newOwner,\r\n        uint256 _index\r\n    );\r\n\r\n    /**\r\n     * @dev Sets the contract address for creating NFT\r\n     */\r\n    function setArtAddr(address _artAddr) external;\r\n\r\n    /**\r\n     * @dev Create product that will list on market place.\r\n     */\r\n    function createNewProduct(\r\n        string memory _hashInfo,\r\n        string memory _hashImg,\r\n        uint256 _price\r\n    ) external;\r\n\r\n    /**\r\n     * @dev Set a product if it listed on market place or not.\r\n     */\r\n    function setListOrNot(uint256 _tokenId) external;\r\n\r\n    /**\r\n     * @dev Set a product if it sold or not.\r\n     */\r\n    function setSellOrNot(uint256 _tokenId) external;\r\n\r\n    /**\r\n     * @dev Set price to product with its tokenId.\r\n     */\r\n    function setPrice(uint256 _tokenId, uint256 _price) external;\r\n\r\n    /**\r\n     * @dev Return the product list listing on market place\r\n     */\r\n    function getProductListCreated(address _user)\r\n        external\r\n        view\r\n        returns (Product[] memory);\r\n\r\n    /**\r\n     * @dev Moves `_tokenId` product from its owner to `sender` using the.\r\n     * `sender` pass a mount ETH, this will transfer to owner of `_tokenId`\r\n     */\r\n    function buyWithETH(uint256 _tokenId) external payable;\r\n\r\n    function buyWithCurrency(uint256 _tokenId, string memory traransactionId)\r\n        external;\r\n\r\n    /**\r\n     * @dev Return the product list of `owner`\r\n     */\r\n    function getProducListOwnable(address _owner)\r\n        external\r\n        view\r\n        returns (Product[] memory);\r\n\r\n    /**\r\n     * @dev Create a offer to negotiate the product `_tokenId`\r\n     */\r\n    function offer(\r\n        uint256 _tokenId,\r\n        uint256 _amount,\r\n        address _token20,\r\n        uint256 _timeout\r\n    ) external;\r\n\r\n    /**\r\n     * @dev Restart time for offer timeout with `_tokenId`\r\n     */\r\n    function restartOffer(\r\n        uint256 _tokenId,\r\n        uint256 _index,\r\n        uint256 _timeout\r\n    ) external;\r\n\r\n    \r\n    function getOffer(uint256 _tokenId, uint256 _index)\r\n        external\r\n        view\r\n        returns (Offer memory);\r\n\r\n    function approveOffer(uint256 _tokenId, uint256 _index) external;\r\n}\r\n",
  "sourcePath": "E:\\MNM\\UIT-SE301.M11-BidDapp\\marketplace-contracts\\contracts\\interfaces\\IMarketplace.sol",
  "ast": {
    "absolutePath": "project:/contracts/interfaces/IMarketplace.sol",
    "exportedSymbols": {
      "IMarketPlace": [
        3633
      ]
    },
    "id": 3634,
    "license": "UNLICENSED",
    "nodeType": "SourceUnit",
    "nodes": [
      {
        "id": 3466,
        "literals": [
          "solidity",
          "^",
          "0.8",
          ".0"
        ],
        "nodeType": "PragmaDirective",
        "src": "39:23:22"
      },
      {
        "abstract": false,
        "baseContracts": [],
        "contractDependencies": [],
        "contractKind": "interface",
        "fullyImplemented": false,
        "id": 3633,
        "linearizedBaseContracts": [
          3633
        ],
        "name": "IMarketPlace",
        "nodeType": "ContractDefinition",
        "nodes": [
          {
            "canonicalName": "IMarketPlace.Product",
            "id": 3481,
            "members": [
              {
                "constant": false,
                "id": 3468,
                "mutability": "mutable",
                "name": "tokenId",
                "nodeType": "VariableDeclaration",
                "scope": 3481,
                "src": "122:15:22",
                "stateVariable": false,
                "storageLocation": "default",
                "typeDescriptions": {
                  "typeIdentifier": "t_uint256",
                  "typeString": "uint256"
                },
                "typeName": {
                  "id": 3467,
                  "name": "uint256",
                  "nodeType": "ElementaryTypeName",
                  "src": "122:7:22",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  }
                },
                "visibility": "internal"
              },
              {
                "constant": false,
                "id": 3470,
                "mutability": "mutable",
                "name": "price",
                "nodeType": "VariableDeclaration",
                "scope": 3481,
                "src": "148:13:22",
                "stateVariable": false,
                "storageLocation": "default",
                "typeDescriptions": {
                  "typeIdentifier": "t_uint256",
                  "typeString": "uint256"
                },
                "typeName": {
                  "id": 3469,
                  "name": "uint256",
                  "nodeType": "ElementaryTypeName",
                  "src": "148:7:22",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  }
                },
                "visibility": "internal"
              },
              {
                "constant": false,
                "id": 3472,
                "mutability": "mutable",
                "name": "listing",
                "nodeType": "VariableDeclaration",
                "scope": 3481,
                "src": "172:12:22",
                "stateVariable": false,
                "storageLocation": "default",
                "typeDescriptions": {
                  "typeIdentifier": "t_bool",
                  "typeString": "bool"
                },
                "typeName": {
                  "id": 3471,
                  "name": "bool",
                  "nodeType": "ElementaryTypeName",
                  "src": "172:4:22",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bool",
                    "typeString": "bool"
                  }
                },
                "visibility": "internal"
              },
              {
                "constant": false,
                "id": 3474,
                "mutability": "mutable",
                "name": "selling",
                "nodeType": "VariableDeclaration",
                "scope": 3481,
                "src": "195:12:22",
                "stateVariable": false,
                "storageLocation": "default",
                "typeDescriptions": {
                  "typeIdentifier": "t_bool",
                  "typeString": "bool"
                },
                "typeName": {
                  "id": 3473,
                  "name": "bool",
                  "nodeType": "ElementaryTypeName",
                  "src": "195:4:22",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bool",
                    "typeString": "bool"
                  }
                },
                "visibility": "internal"
              },
              {
                "constant": false,
                "id": 3476,
                "mutability": "mutable",
                "name": "creator",
                "nodeType": "VariableDeclaration",
                "scope": 3481,
                "src": "218:15:22",
                "stateVariable": false,
                "storageLocation": "default",
                "typeDescriptions": {
                  "typeIdentifier": "t_address",
                  "typeString": "address"
                },
                "typeName": {
                  "id": 3475,
                  "name": "address",
                  "nodeType": "ElementaryTypeName",
                  "src": "218:7:22",
                  "stateMutability": "nonpayable",
                  "typeDescriptions": {
                    "typeIdentifier": "t_address",
                    "typeString": "address"
                  }
                },
                "visibility": "internal"
              },
              {
                "constant": false,
                "id": 3478,
                "mutability": "mutable",
                "name": "rate",
                "nodeType": "VariableDeclaration",
                "scope": 3481,
                "src": "244:12:22",
                "stateVariable": false,
                "storageLocation": "default",
                "typeDescriptions": {
                  "typeIdentifier": "t_uint256",
                  "typeString": "uint256"
                },
                "typeName": {
                  "id": 3477,
                  "name": "uint256",
                  "nodeType": "ElementaryTypeName",
                  "src": "244:7:22",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  }
                },
                "visibility": "internal"
              },
              {
                "constant": false,
                "id": 3480,
                "mutability": "mutable",
                "name": "timestamp",
                "nodeType": "VariableDeclaration",
                "scope": 3481,
                "src": "267:17:22",
                "stateVariable": false,
                "storageLocation": "default",
                "typeDescriptions": {
                  "typeIdentifier": "t_uint256",
                  "typeString": "uint256"
                },
                "typeName": {
                  "id": 3479,
                  "name": "uint256",
                  "nodeType": "ElementaryTypeName",
                  "src": "267:7:22",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  }
                },
                "visibility": "internal"
              }
            ],
            "name": "Product",
            "nodeType": "StructDefinition",
            "scope": 3633,
            "src": "96:196:22",
            "visibility": "public"
          },
          {
            "canonicalName": "IMarketPlace.Offer",
            "id": 3494,
            "members": [
              {
                "constant": false,
                "id": 3483,
                "mutability": "mutable",
                "name": "tokenId",
                "nodeType": "VariableDeclaration",
                "scope": 3494,
                "src": "324:15:22",
                "stateVariable": false,
                "storageLocation": "default",
                "typeDescriptions": {
                  "typeIdentifier": "t_uint256",
                  "typeString": "uint256"
                },
                "typeName": {
                  "id": 3482,
                  "name": "uint256",
                  "nodeType": "ElementaryTypeName",
                  "src": "324:7:22",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  }
                },
                "visibility": "internal"
              },
              {
                "constant": false,
                "id": 3485,
                "mutability": "mutable",
                "name": "amount",
                "nodeType": "VariableDeclaration",
                "scope": 3494,
                "src": "350:14:22",
                "stateVariable": false,
                "storageLocation": "default",
                "typeDescriptions": {
                  "typeIdentifier": "t_uint256",
                  "typeString": "uint256"
                },
                "typeName": {
                  "id": 3484,
                  "name": "uint256",
                  "nodeType": "ElementaryTypeName",
                  "src": "350:7:22",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  }
                },
                "visibility": "internal"
              },
              {
                "constant": false,
                "id": 3487,
                "mutability": "mutable",
                "name": "token20",
                "nodeType": "VariableDeclaration",
                "scope": 3494,
                "src": "375:15:22",
                "stateVariable": false,
                "storageLocation": "default",
                "typeDescriptions": {
                  "typeIdentifier": "t_address",
                  "typeString": "address"
                },
                "typeName": {
                  "id": 3486,
                  "name": "address",
                  "nodeType": "ElementaryTypeName",
                  "src": "375:7:22",
                  "stateMutability": "nonpayable",
                  "typeDescriptions": {
                    "typeIdentifier": "t_address",
                    "typeString": "address"
                  }
                },
                "visibility": "internal"
              },
              {
                "constant": false,
                "id": 3489,
                "mutability": "mutable",
                "name": "bargainer",
                "nodeType": "VariableDeclaration",
                "scope": 3494,
                "src": "401:17:22",
                "stateVariable": false,
                "storageLocation": "default",
                "typeDescriptions": {
                  "typeIdentifier": "t_address",
                  "typeString": "address"
                },
                "typeName": {
                  "id": 3488,
                  "name": "address",
                  "nodeType": "ElementaryTypeName",
                  "src": "401:7:22",
                  "stateMutability": "nonpayable",
                  "typeDescriptions": {
                    "typeIdentifier": "t_address",
                    "typeString": "address"
                  }
                },
                "visibility": "internal"
              },
              {
                "constant": false,
                "id": 3491,
                "mutability": "mutable",
                "name": "accepted",
                "nodeType": "VariableDeclaration",
                "scope": 3494,
                "src": "429:13:22",
                "stateVariable": false,
                "storageLocation": "default",
                "typeDescriptions": {
                  "typeIdentifier": "t_bool",
                  "typeString": "bool"
                },
                "typeName": {
                  "id": 3490,
                  "name": "bool",
                  "nodeType": "ElementaryTypeName",
                  "src": "429:4:22",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bool",
                    "typeString": "bool"
                  }
                },
                "visibility": "internal"
              },
              {
                "constant": false,
                "id": 3493,
                "mutability": "mutable",
                "name": "timeout",
                "nodeType": "VariableDeclaration",
                "scope": 3494,
                "src": "453:15:22",
                "stateVariable": false,
                "storageLocation": "default",
                "typeDescriptions": {
                  "typeIdentifier": "t_uint256",
                  "typeString": "uint256"
                },
                "typeName": {
                  "id": 3492,
                  "name": "uint256",
                  "nodeType": "ElementaryTypeName",
                  "src": "453:7:22",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  }
                },
                "visibility": "internal"
              }
            ],
            "name": "Offer",
            "nodeType": "StructDefinition",
            "scope": 3633,
            "src": "300:176:22",
            "visibility": "public"
          },
          {
            "anonymous": false,
            "id": 3502,
            "name": "Transfer",
            "nodeType": "EventDefinition",
            "parameters": {
              "id": 3501,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 3496,
                  "indexed": true,
                  "mutability": "mutable",
                  "name": "_tokenId",
                  "nodeType": "VariableDeclaration",
                  "scope": 3502,
                  "src": "509:24:22",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 3495,
                    "name": "uint256",
                    "nodeType": "ElementaryTypeName",
                    "src": "509:7:22",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 3498,
                  "indexed": true,
                  "mutability": "mutable",
                  "name": "_oldOwner",
                  "nodeType": "VariableDeclaration",
                  "scope": 3502,
                  "src": "544:25:22",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_address",
                    "typeString": "address"
                  },
                  "typeName": {
                    "id": 3497,
                    "name": "address",
                    "nodeType": "ElementaryTypeName",
                    "src": "544:7:22",
                    "stateMutability": "nonpayable",
                    "typeDescriptions": {
                      "typeIdentifier": "t_address",
                      "typeString": "address"
                    }
                  },
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 3500,
                  "indexed": true,
                  "mutability": "mutable",
                  "name": "_newOwner",
                  "nodeType": "VariableDeclaration",
                  "scope": 3502,
                  "src": "580:25:22",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_address",
                    "typeString": "address"
                  },
                  "typeName": {
                    "id": 3499,
                    "name": "address",
                    "nodeType": "ElementaryTypeName",
                    "src": "580:7:22",
                    "stateMutability": "nonpayable",
                    "typeDescriptions": {
                      "typeIdentifier": "t_address",
                      "typeString": "address"
                    }
                  },
                  "visibility": "internal"
                }
              ],
              "src": "498:114:22"
            },
            "src": "484:129:22"
          },
          {
            "anonymous": false,
            "id": 3514,
            "name": "NewOffer",
            "nodeType": "EventDefinition",
            "parameters": {
              "id": 3513,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 3504,
                  "indexed": true,
                  "mutability": "mutable",
                  "name": "_tokenId",
                  "nodeType": "VariableDeclaration",
                  "scope": 3514,
                  "src": "644:24:22",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 3503,
                    "name": "uint256",
                    "nodeType": "ElementaryTypeName",
                    "src": "644:7:22",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 3506,
                  "indexed": false,
                  "mutability": "mutable",
                  "name": "_amount",
                  "nodeType": "VariableDeclaration",
                  "scope": 3514,
                  "src": "679:15:22",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 3505,
                    "name": "uint256",
                    "nodeType": "ElementaryTypeName",
                    "src": "679:7:22",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 3508,
                  "indexed": false,
                  "mutability": "mutable",
                  "name": "_token20",
                  "nodeType": "VariableDeclaration",
                  "scope": 3514,
                  "src": "705:16:22",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_address",
                    "typeString": "address"
                  },
                  "typeName": {
                    "id": 3507,
                    "name": "address",
                    "nodeType": "ElementaryTypeName",
                    "src": "705:7:22",
                    "stateMutability": "nonpayable",
                    "typeDescriptions": {
                      "typeIdentifier": "t_address",
                      "typeString": "address"
                    }
                  },
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 3510,
                  "indexed": true,
                  "mutability": "mutable",
                  "name": "_bargainer",
                  "nodeType": "VariableDeclaration",
                  "scope": 3514,
                  "src": "732:26:22",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_address",
                    "typeString": "address"
                  },
                  "typeName": {
                    "id": 3509,
                    "name": "address",
                    "nodeType": "ElementaryTypeName",
                    "src": "732:7:22",
                    "stateMutability": "nonpayable",
                    "typeDescriptions": {
                      "typeIdentifier": "t_address",
                      "typeString": "address"
                    }
                  },
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 3512,
                  "indexed": false,
                  "mutability": "mutable",
                  "name": "_timeout",
                  "nodeType": "VariableDeclaration",
                  "scope": 3514,
                  "src": "769:16:22",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 3511,
                    "name": "uint256",
                    "nodeType": "ElementaryTypeName",
                    "src": "769:7:22",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "visibility": "internal"
                }
              ],
              "src": "633:159:22"
            },
            "src": "619:174:22"
          },
          {
            "anonymous": false,
            "id": 3524,
            "name": "ApproveOffer",
            "nodeType": "EventDefinition",
            "parameters": {
              "id": 3523,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 3516,
                  "indexed": true,
                  "mutability": "mutable",
                  "name": "_tokenId",
                  "nodeType": "VariableDeclaration",
                  "scope": 3524,
                  "src": "828:24:22",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 3515,
                    "name": "uint256",
                    "nodeType": "ElementaryTypeName",
                    "src": "828:7:22",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 3518,
                  "indexed": true,
                  "mutability": "mutable",
                  "name": "_oldOwner",
                  "nodeType": "VariableDeclaration",
                  "scope": 3524,
                  "src": "863:25:22",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_address",
                    "typeString": "address"
                  },
                  "typeName": {
                    "id": 3517,
                    "name": "address",
                    "nodeType": "ElementaryTypeName",
                    "src": "863:7:22",
                    "stateMutability": "nonpayable",
                    "typeDescriptions": {
                      "typeIdentifier": "t_address",
                      "typeString": "address"
                    }
                  },
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 3520,
                  "indexed": true,
                  "mutability": "mutable",
                  "name": "_newOwner",
                  "nodeType": "VariableDeclaration",
                  "scope": 3524,
                  "src": "899:25:22",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_address",
                    "typeString": "address"
                  },
                  "typeName": {
                    "id": 3519,
                    "name": "address",
                    "nodeType": "ElementaryTypeName",
                    "src": "899:7:22",
                    "stateMutability": "nonpayable",
                    "typeDescriptions": {
                      "typeIdentifier": "t_address",
                      "typeString": "address"
                    }
                  },
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 3522,
                  "indexed": false,
                  "mutability": "mutable",
                  "name": "_index",
                  "nodeType": "VariableDeclaration",
                  "scope": 3524,
                  "src": "935:14:22",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 3521,
                    "name": "uint256",
                    "nodeType": "ElementaryTypeName",
                    "src": "935:7:22",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "visibility": "internal"
                }
              ],
              "src": "817:139:22"
            },
            "src": "799:158:22"
          },
          {
            "documentation": {
              "id": 3525,
              "nodeType": "StructuredDocumentation",
              "src": "965:68:22",
              "text": " @dev Sets the contract address for creating NFT"
            },
            "functionSelector": "2e7a34b7",
            "id": 3530,
            "implemented": false,
            "kind": "function",
            "modifiers": [],
            "name": "setArtAddr",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 3528,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 3527,
                  "mutability": "mutable",
                  "name": "_artAddr",
                  "nodeType": "VariableDeclaration",
                  "scope": 3530,
                  "src": "1059:16:22",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_address",
                    "typeString": "address"
                  },
                  "typeName": {
                    "id": 3526,
                    "name": "address",
                    "nodeType": "ElementaryTypeName",
                    "src": "1059:7:22",
                    "stateMutability": "nonpayable",
                    "typeDescriptions": {
                      "typeIdentifier": "t_address",
                      "typeString": "address"
                    }
                  },
                  "visibility": "internal"
                }
              ],
              "src": "1058:18:22"
            },
            "returnParameters": {
              "id": 3529,
              "nodeType": "ParameterList",
              "parameters": [],
              "src": "1085:0:22"
            },
            "scope": 3633,
            "src": "1039:47:22",
            "stateMutability": "nonpayable",
            "virtual": false,
            "visibility": "external"
          },
          {
            "documentation": {
              "id": 3531,
              "nodeType": "StructuredDocumentation",
              "src": "1094:72:22",
              "text": " @dev Create product that will list on market place."
            },
            "functionSelector": "b9b8245c",
            "id": 3540,
            "implemented": false,
            "kind": "function",
            "modifiers": [],
            "name": "createNewProduct",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 3538,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 3533,
                  "mutability": "mutable",
                  "name": "_hashInfo",
                  "nodeType": "VariableDeclaration",
                  "scope": 3540,
                  "src": "1208:23:22",
                  "stateVariable": false,
                  "storageLocation": "memory",
                  "typeDescriptions": {
                    "typeIdentifier": "t_string_memory_ptr",
                    "typeString": "string"
                  },
                  "typeName": {
                    "id": 3532,
                    "name": "string",
                    "nodeType": "ElementaryTypeName",
                    "src": "1208:6:22",
                    "typeDescriptions": {
                      "typeIdentifier": "t_string_storage_ptr",
                      "typeString": "string"
                    }
                  },
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 3535,
                  "mutability": "mutable",
                  "name": "_hashImg",
                  "nodeType": "VariableDeclaration",
                  "scope": 3540,
                  "src": "1242:22:22",
                  "stateVariable": false,
                  "storageLocation": "memory",
                  "typeDescriptions": {
                    "typeIdentifier": "t_string_memory_ptr",
                    "typeString": "string"
                  },
                  "typeName": {
                    "id": 3534,
                    "name": "string",
                    "nodeType": "ElementaryTypeName",
                    "src": "1242:6:22",
                    "typeDescriptions": {
                      "typeIdentifier": "t_string_storage_ptr",
                      "typeString": "string"
                    }
                  },
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 3537,
                  "mutability": "mutable",
                  "name": "_price",
                  "nodeType": "VariableDeclaration",
                  "scope": 3540,
                  "src": "1275:14:22",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 3536,
                    "name": "uint256",
                    "nodeType": "ElementaryTypeName",
                    "src": "1275:7:22",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "visibility": "internal"
                }
              ],
              "src": "1197:99:22"
            },
            "returnParameters": {
              "id": 3539,
              "nodeType": "ParameterList",
              "parameters": [],
              "src": "1305:0:22"
            },
            "scope": 3633,
            "src": "1172:134:22",
            "stateMutability": "nonpayable",
            "virtual": false,
            "visibility": "external"
          },
          {
            "documentation": {
              "id": 3541,
              "nodeType": "StructuredDocumentation",
              "src": "1314:76:22",
              "text": " @dev Set a product if it listed on market place or not."
            },
            "functionSelector": "656ea7d2",
            "id": 3546,
            "implemented": false,
            "kind": "function",
            "modifiers": [],
            "name": "setListOrNot",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 3544,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 3543,
                  "mutability": "mutable",
                  "name": "_tokenId",
                  "nodeType": "VariableDeclaration",
                  "scope": 3546,
                  "src": "1418:16:22",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 3542,
                    "name": "uint256",
                    "nodeType": "ElementaryTypeName",
                    "src": "1418:7:22",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "visibility": "internal"
                }
              ],
              "src": "1417:18:22"
            },
            "returnParameters": {
              "id": 3545,
              "nodeType": "ParameterList",
              "parameters": [],
              "src": "1444:0:22"
            },
            "scope": 3633,
            "src": "1396:49:22",
            "stateMutability": "nonpayable",
            "virtual": false,
            "visibility": "external"
          },
          {
            "documentation": {
              "id": 3547,
              "nodeType": "StructuredDocumentation",
              "src": "1453:58:22",
              "text": " @dev Set a product if it sold or not."
            },
            "functionSelector": "8a195912",
            "id": 3552,
            "implemented": false,
            "kind": "function",
            "modifiers": [],
            "name": "setSellOrNot",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 3550,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 3549,
                  "mutability": "mutable",
                  "name": "_tokenId",
                  "nodeType": "VariableDeclaration",
                  "scope": 3552,
                  "src": "1539:16:22",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 3548,
                    "name": "uint256",
                    "nodeType": "ElementaryTypeName",
                    "src": "1539:7:22",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "visibility": "internal"
                }
              ],
              "src": "1538:18:22"
            },
            "returnParameters": {
              "id": 3551,
              "nodeType": "ParameterList",
              "parameters": [],
              "src": "1565:0:22"
            },
            "scope": 3633,
            "src": "1517:49:22",
            "stateMutability": "nonpayable",
            "virtual": false,
            "visibility": "external"
          },
          {
            "documentation": {
              "id": 3553,
              "nodeType": "StructuredDocumentation",
              "src": "1574:64:22",
              "text": " @dev Set price to product with its tokenId."
            },
            "functionSelector": "f7d97577",
            "id": 3560,
            "implemented": false,
            "kind": "function",
            "modifiers": [],
            "name": "setPrice",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 3558,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 3555,
                  "mutability": "mutable",
                  "name": "_tokenId",
                  "nodeType": "VariableDeclaration",
                  "scope": 3560,
                  "src": "1662:16:22",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 3554,
                    "name": "uint256",
                    "nodeType": "ElementaryTypeName",
                    "src": "1662:7:22",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 3557,
                  "mutability": "mutable",
                  "name": "_price",
                  "nodeType": "VariableDeclaration",
                  "scope": 3560,
                  "src": "1680:14:22",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 3556,
                    "name": "uint256",
                    "nodeType": "ElementaryTypeName",
                    "src": "1680:7:22",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "visibility": "internal"
                }
              ],
              "src": "1661:34:22"
            },
            "returnParameters": {
              "id": 3559,
              "nodeType": "ParameterList",
              "parameters": [],
              "src": "1704:0:22"
            },
            "scope": 3633,
            "src": "1644:61:22",
            "stateMutability": "nonpayable",
            "virtual": false,
            "visibility": "external"
          },
          {
            "documentation": {
              "id": 3561,
              "nodeType": "StructuredDocumentation",
              "src": "1713:73:22",
              "text": " @dev Return the product list listing on market place"
            },
            "functionSelector": "fdfe7485",
            "id": 3570,
            "implemented": false,
            "kind": "function",
            "modifiers": [],
            "name": "getProductListCreated",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 3564,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 3563,
                  "mutability": "mutable",
                  "name": "_user",
                  "nodeType": "VariableDeclaration",
                  "scope": 3570,
                  "src": "1823:13:22",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_address",
                    "typeString": "address"
                  },
                  "typeName": {
                    "id": 3562,
                    "name": "address",
                    "nodeType": "ElementaryTypeName",
                    "src": "1823:7:22",
                    "stateMutability": "nonpayable",
                    "typeDescriptions": {
                      "typeIdentifier": "t_address",
                      "typeString": "address"
                    }
                  },
                  "visibility": "internal"
                }
              ],
              "src": "1822:15:22"
            },
            "returnParameters": {
              "id": 3569,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 3568,
                  "mutability": "mutable",
                  "name": "",
                  "nodeType": "VariableDeclaration",
                  "scope": 3570,
                  "src": "1888:16:22",
                  "stateVariable": false,
                  "storageLocation": "memory",
                  "typeDescriptions": {
                    "typeIdentifier": "t_array$_t_struct$_Product_$3481_memory_ptr_$dyn_memory_ptr",
                    "typeString": "struct IMarketPlace.Product[]"
                  },
                  "typeName": {
                    "baseType": {
                      "id": 3566,
                      "nodeType": "UserDefinedTypeName",
                      "pathNode": {
                        "id": 3565,
                        "name": "Product",
                        "nodeType": "IdentifierPath",
                        "referencedDeclaration": 3481,
                        "src": "1888:7:22"
                      },
                      "referencedDeclaration": 3481,
                      "src": "1888:7:22",
                      "typeDescriptions": {
                        "typeIdentifier": "t_struct$_Product_$3481_storage_ptr",
                        "typeString": "struct IMarketPlace.Product"
                      }
                    },
                    "id": 3567,
                    "nodeType": "ArrayTypeName",
                    "src": "1888:9:22",
                    "typeDescriptions": {
                      "typeIdentifier": "t_array$_t_struct$_Product_$3481_storage_$dyn_storage_ptr",
                      "typeString": "struct IMarketPlace.Product[]"
                    }
                  },
                  "visibility": "internal"
                }
              ],
              "src": "1887:18:22"
            },
            "scope": 3633,
            "src": "1792:114:22",
            "stateMutability": "view",
            "virtual": false,
            "visibility": "external"
          },
          {
            "documentation": {
              "id": 3571,
              "nodeType": "StructuredDocumentation",
              "src": "1914:165:22",
              "text": " @dev Moves `_tokenId` product from its owner to `sender` using the.\n `sender` pass a mount ETH, this will transfer to owner of `_tokenId`"
            },
            "functionSelector": "94dc9cf3",
            "id": 3576,
            "implemented": false,
            "kind": "function",
            "modifiers": [],
            "name": "buyWithETH",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 3574,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 3573,
                  "mutability": "mutable",
                  "name": "_tokenId",
                  "nodeType": "VariableDeclaration",
                  "scope": 3576,
                  "src": "2105:16:22",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 3572,
                    "name": "uint256",
                    "nodeType": "ElementaryTypeName",
                    "src": "2105:7:22",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "visibility": "internal"
                }
              ],
              "src": "2104:18:22"
            },
            "returnParameters": {
              "id": 3575,
              "nodeType": "ParameterList",
              "parameters": [],
              "src": "2139:0:22"
            },
            "scope": 3633,
            "src": "2085:55:22",
            "stateMutability": "payable",
            "virtual": false,
            "visibility": "external"
          },
          {
            "functionSelector": "5e7524e7",
            "id": 3583,
            "implemented": false,
            "kind": "function",
            "modifiers": [],
            "name": "buyWithCurrency",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 3581,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 3578,
                  "mutability": "mutable",
                  "name": "_tokenId",
                  "nodeType": "VariableDeclaration",
                  "scope": 3583,
                  "src": "2173:16:22",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 3577,
                    "name": "uint256",
                    "nodeType": "ElementaryTypeName",
                    "src": "2173:7:22",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 3580,
                  "mutability": "mutable",
                  "name": "traransactionId",
                  "nodeType": "VariableDeclaration",
                  "scope": 3583,
                  "src": "2191:29:22",
                  "stateVariable": false,
                  "storageLocation": "memory",
                  "typeDescriptions": {
                    "typeIdentifier": "t_string_memory_ptr",
                    "typeString": "string"
                  },
                  "typeName": {
                    "id": 3579,
                    "name": "string",
                    "nodeType": "ElementaryTypeName",
                    "src": "2191:6:22",
                    "typeDescriptions": {
                      "typeIdentifier": "t_string_storage_ptr",
                      "typeString": "string"
                    }
                  },
                  "visibility": "internal"
                }
              ],
              "src": "2172:49:22"
            },
            "returnParameters": {
              "id": 3582,
              "nodeType": "ParameterList",
              "parameters": [],
              "src": "2239:0:22"
            },
            "scope": 3633,
            "src": "2148:92:22",
            "stateMutability": "nonpayable",
            "virtual": false,
            "visibility": "external"
          },
          {
            "documentation": {
              "id": 3584,
              "nodeType": "StructuredDocumentation",
              "src": "2248:60:22",
              "text": " @dev Return the product list of `owner`"
            },
            "functionSelector": "c7ea1e8b",
            "id": 3593,
            "implemented": false,
            "kind": "function",
            "modifiers": [],
            "name": "getProducListOwnable",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 3587,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 3586,
                  "mutability": "mutable",
                  "name": "_owner",
                  "nodeType": "VariableDeclaration",
                  "scope": 3593,
                  "src": "2344:14:22",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_address",
                    "typeString": "address"
                  },
                  "typeName": {
                    "id": 3585,
                    "name": "address",
                    "nodeType": "ElementaryTypeName",
                    "src": "2344:7:22",
                    "stateMutability": "nonpayable",
                    "typeDescriptions": {
                      "typeIdentifier": "t_address",
                      "typeString": "address"
                    }
                  },
                  "visibility": "internal"
                }
              ],
              "src": "2343:16:22"
            },
            "returnParameters": {
              "id": 3592,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 3591,
                  "mutability": "mutable",
                  "name": "",
                  "nodeType": "VariableDeclaration",
                  "scope": 3593,
                  "src": "2410:16:22",
                  "stateVariable": false,
                  "storageLocation": "memory",
                  "typeDescriptions": {
                    "typeIdentifier": "t_array$_t_struct$_Product_$3481_memory_ptr_$dyn_memory_ptr",
                    "typeString": "struct IMarketPlace.Product[]"
                  },
                  "typeName": {
                    "baseType": {
                      "id": 3589,
                      "nodeType": "UserDefinedTypeName",
                      "pathNode": {
                        "id": 3588,
                        "name": "Product",
                        "nodeType": "IdentifierPath",
                        "referencedDeclaration": 3481,
                        "src": "2410:7:22"
                      },
                      "referencedDeclaration": 3481,
                      "src": "2410:7:22",
                      "typeDescriptions": {
                        "typeIdentifier": "t_struct$_Product_$3481_storage_ptr",
                        "typeString": "struct IMarketPlace.Product"
                      }
                    },
                    "id": 3590,
                    "nodeType": "ArrayTypeName",
                    "src": "2410:9:22",
                    "typeDescriptions": {
                      "typeIdentifier": "t_array$_t_struct$_Product_$3481_storage_$dyn_storage_ptr",
                      "typeString": "struct IMarketPlace.Product[]"
                    }
                  },
                  "visibility": "internal"
                }
              ],
              "src": "2409:18:22"
            },
            "scope": 3633,
            "src": "2314:114:22",
            "stateMutability": "view",
            "virtual": false,
            "visibility": "external"
          },
          {
            "documentation": {
              "id": 3594,
              "nodeType": "StructuredDocumentation",
              "src": "2436:76:22",
              "text": " @dev Create a offer to negotiate the product `_tokenId`"
            },
            "functionSelector": "acb1ba67",
            "id": 3605,
            "implemented": false,
            "kind": "function",
            "modifiers": [],
            "name": "offer",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 3603,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 3596,
                  "mutability": "mutable",
                  "name": "_tokenId",
                  "nodeType": "VariableDeclaration",
                  "scope": 3605,
                  "src": "2543:16:22",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 3595,
                    "name": "uint256",
                    "nodeType": "ElementaryTypeName",
                    "src": "2543:7:22",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 3598,
                  "mutability": "mutable",
                  "name": "_amount",
                  "nodeType": "VariableDeclaration",
                  "scope": 3605,
                  "src": "2570:15:22",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 3597,
                    "name": "uint256",
                    "nodeType": "ElementaryTypeName",
                    "src": "2570:7:22",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 3600,
                  "mutability": "mutable",
                  "name": "_token20",
                  "nodeType": "VariableDeclaration",
                  "scope": 3605,
                  "src": "2596:16:22",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_address",
                    "typeString": "address"
                  },
                  "typeName": {
                    "id": 3599,
                    "name": "address",
                    "nodeType": "ElementaryTypeName",
                    "src": "2596:7:22",
                    "stateMutability": "nonpayable",
                    "typeDescriptions": {
                      "typeIdentifier": "t_address",
                      "typeString": "address"
                    }
                  },
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 3602,
                  "mutability": "mutable",
                  "name": "_timeout",
                  "nodeType": "VariableDeclaration",
                  "scope": 3605,
                  "src": "2623:16:22",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 3601,
                    "name": "uint256",
                    "nodeType": "ElementaryTypeName",
                    "src": "2623:7:22",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "visibility": "internal"
                }
              ],
              "src": "2532:114:22"
            },
            "returnParameters": {
              "id": 3604,
              "nodeType": "ParameterList",
              "parameters": [],
              "src": "2655:0:22"
            },
            "scope": 3633,
            "src": "2518:138:22",
            "stateMutability": "nonpayable",
            "virtual": false,
            "visibility": "external"
          },
          {
            "documentation": {
              "id": 3606,
              "nodeType": "StructuredDocumentation",
              "src": "2664:72:22",
              "text": " @dev Restart time for offer timeout with `_tokenId`"
            },
            "functionSelector": "688ec404",
            "id": 3615,
            "implemented": false,
            "kind": "function",
            "modifiers": [],
            "name": "restartOffer",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 3613,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 3608,
                  "mutability": "mutable",
                  "name": "_tokenId",
                  "nodeType": "VariableDeclaration",
                  "scope": 3615,
                  "src": "2774:16:22",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 3607,
                    "name": "uint256",
                    "nodeType": "ElementaryTypeName",
                    "src": "2774:7:22",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 3610,
                  "mutability": "mutable",
                  "name": "_index",
                  "nodeType": "VariableDeclaration",
                  "scope": 3615,
                  "src": "2801:14:22",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 3609,
                    "name": "uint256",
                    "nodeType": "ElementaryTypeName",
                    "src": "2801:7:22",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 3612,
                  "mutability": "mutable",
                  "name": "_timeout",
                  "nodeType": "VariableDeclaration",
                  "scope": 3615,
                  "src": "2826:16:22",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 3611,
                    "name": "uint256",
                    "nodeType": "ElementaryTypeName",
                    "src": "2826:7:22",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "visibility": "internal"
                }
              ],
              "src": "2763:86:22"
            },
            "returnParameters": {
              "id": 3614,
              "nodeType": "ParameterList",
              "parameters": [],
              "src": "2858:0:22"
            },
            "scope": 3633,
            "src": "2742:117:22",
            "stateMutability": "nonpayable",
            "virtual": false,
            "visibility": "external"
          },
          {
            "functionSelector": "3cd0cd67",
            "id": 3625,
            "implemented": false,
            "kind": "function",
            "modifiers": [],
            "name": "getOffer",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 3620,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 3617,
                  "mutability": "mutable",
                  "name": "_tokenId",
                  "nodeType": "VariableDeclaration",
                  "scope": 3625,
                  "src": "2891:16:22",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 3616,
                    "name": "uint256",
                    "nodeType": "ElementaryTypeName",
                    "src": "2891:7:22",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 3619,
                  "mutability": "mutable",
                  "name": "_index",
                  "nodeType": "VariableDeclaration",
                  "scope": 3625,
                  "src": "2909:14:22",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 3618,
                    "name": "uint256",
                    "nodeType": "ElementaryTypeName",
                    "src": "2909:7:22",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "visibility": "internal"
                }
              ],
              "src": "2890:34:22"
            },
            "returnParameters": {
              "id": 3624,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 3623,
                  "mutability": "mutable",
                  "name": "",
                  "nodeType": "VariableDeclaration",
                  "scope": 3625,
                  "src": "2975:12:22",
                  "stateVariable": false,
                  "storageLocation": "memory",
                  "typeDescriptions": {
                    "typeIdentifier": "t_struct$_Offer_$3494_memory_ptr",
                    "typeString": "struct IMarketPlace.Offer"
                  },
                  "typeName": {
                    "id": 3622,
                    "nodeType": "UserDefinedTypeName",
                    "pathNode": {
                      "id": 3621,
                      "name": "Offer",
                      "nodeType": "IdentifierPath",
                      "referencedDeclaration": 3494,
                      "src": "2975:5:22"
                    },
                    "referencedDeclaration": 3494,
                    "src": "2975:5:22",
                    "typeDescriptions": {
                      "typeIdentifier": "t_struct$_Offer_$3494_storage_ptr",
                      "typeString": "struct IMarketPlace.Offer"
                    }
                  },
                  "visibility": "internal"
                }
              ],
              "src": "2974:14:22"
            },
            "scope": 3633,
            "src": "2873:116:22",
            "stateMutability": "view",
            "virtual": false,
            "visibility": "external"
          },
          {
            "functionSelector": "f16f3730",
            "id": 3632,
            "implemented": false,
            "kind": "function",
            "modifiers": [],
            "name": "approveOffer",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 3630,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 3627,
                  "mutability": "mutable",
                  "name": "_tokenId",
                  "nodeType": "VariableDeclaration",
                  "scope": 3632,
                  "src": "3019:16:22",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 3626,
                    "name": "uint256",
                    "nodeType": "ElementaryTypeName",
                    "src": "3019:7:22",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 3629,
                  "mutability": "mutable",
                  "name": "_index",
                  "nodeType": "VariableDeclaration",
                  "scope": 3632,
                  "src": "3037:14:22",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 3628,
                    "name": "uint256",
                    "nodeType": "ElementaryTypeName",
                    "src": "3037:7:22",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "visibility": "internal"
                }
              ],
              "src": "3018:34:22"
            },
            "returnParameters": {
              "id": 3631,
              "nodeType": "ParameterList",
              "parameters": [],
              "src": "3061:0:22"
            },
            "scope": 3633,
            "src": "2997:65:22",
            "stateMutability": "nonpayable",
            "virtual": false,
            "visibility": "external"
          }
        ],
        "scope": 3634,
        "src": "66:2999:22"
      }
    ],
    "src": "39:3028:22"
  },
  "legacyAST": {
    "absolutePath": "project:/contracts/interfaces/IMarketplace.sol",
    "exportedSymbols": {
      "IMarketPlace": [
        3633
      ]
    },
    "id": 3634,
    "license": "UNLICENSED",
    "nodeType": "SourceUnit",
    "nodes": [
      {
        "id": 3466,
        "literals": [
          "solidity",
          "^",
          "0.8",
          ".0"
        ],
        "nodeType": "PragmaDirective",
        "src": "39:23:22"
      },
      {
        "abstract": false,
        "baseContracts": [],
        "contractDependencies": [],
        "contractKind": "interface",
        "fullyImplemented": false,
        "id": 3633,
        "linearizedBaseContracts": [
          3633
        ],
        "name": "IMarketPlace",
        "nodeType": "ContractDefinition",
        "nodes": [
          {
            "canonicalName": "IMarketPlace.Product",
            "id": 3481,
            "members": [
              {
                "constant": false,
                "id": 3468,
                "mutability": "mutable",
                "name": "tokenId",
                "nodeType": "VariableDeclaration",
                "scope": 3481,
                "src": "122:15:22",
                "stateVariable": false,
                "storageLocation": "default",
                "typeDescriptions": {
                  "typeIdentifier": "t_uint256",
                  "typeString": "uint256"
                },
                "typeName": {
                  "id": 3467,
                  "name": "uint256",
                  "nodeType": "ElementaryTypeName",
                  "src": "122:7:22",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  }
                },
                "visibility": "internal"
              },
              {
                "constant": false,
                "id": 3470,
                "mutability": "mutable",
                "name": "price",
                "nodeType": "VariableDeclaration",
                "scope": 3481,
                "src": "148:13:22",
                "stateVariable": false,
                "storageLocation": "default",
                "typeDescriptions": {
                  "typeIdentifier": "t_uint256",
                  "typeString": "uint256"
                },
                "typeName": {
                  "id": 3469,
                  "name": "uint256",
                  "nodeType": "ElementaryTypeName",
                  "src": "148:7:22",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  }
                },
                "visibility": "internal"
              },
              {
                "constant": false,
                "id": 3472,
                "mutability": "mutable",
                "name": "listing",
                "nodeType": "VariableDeclaration",
                "scope": 3481,
                "src": "172:12:22",
                "stateVariable": false,
                "storageLocation": "default",
                "typeDescriptions": {
                  "typeIdentifier": "t_bool",
                  "typeString": "bool"
                },
                "typeName": {
                  "id": 3471,
                  "name": "bool",
                  "nodeType": "ElementaryTypeName",
                  "src": "172:4:22",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bool",
                    "typeString": "bool"
                  }
                },
                "visibility": "internal"
              },
              {
                "constant": false,
                "id": 3474,
                "mutability": "mutable",
                "name": "selling",
                "nodeType": "VariableDeclaration",
                "scope": 3481,
                "src": "195:12:22",
                "stateVariable": false,
                "storageLocation": "default",
                "typeDescriptions": {
                  "typeIdentifier": "t_bool",
                  "typeString": "bool"
                },
                "typeName": {
                  "id": 3473,
                  "name": "bool",
                  "nodeType": "ElementaryTypeName",
                  "src": "195:4:22",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bool",
                    "typeString": "bool"
                  }
                },
                "visibility": "internal"
              },
              {
                "constant": false,
                "id": 3476,
                "mutability": "mutable",
                "name": "creator",
                "nodeType": "VariableDeclaration",
                "scope": 3481,
                "src": "218:15:22",
                "stateVariable": false,
                "storageLocation": "default",
                "typeDescriptions": {
                  "typeIdentifier": "t_address",
                  "typeString": "address"
                },
                "typeName": {
                  "id": 3475,
                  "name": "address",
                  "nodeType": "ElementaryTypeName",
                  "src": "218:7:22",
                  "stateMutability": "nonpayable",
                  "typeDescriptions": {
                    "typeIdentifier": "t_address",
                    "typeString": "address"
                  }
                },
                "visibility": "internal"
              },
              {
                "constant": false,
                "id": 3478,
                "mutability": "mutable",
                "name": "rate",
                "nodeType": "VariableDeclaration",
                "scope": 3481,
                "src": "244:12:22",
                "stateVariable": false,
                "storageLocation": "default",
                "typeDescriptions": {
                  "typeIdentifier": "t_uint256",
                  "typeString": "uint256"
                },
                "typeName": {
                  "id": 3477,
                  "name": "uint256",
                  "nodeType": "ElementaryTypeName",
                  "src": "244:7:22",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  }
                },
                "visibility": "internal"
              },
              {
                "constant": false,
                "id": 3480,
                "mutability": "mutable",
                "name": "timestamp",
                "nodeType": "VariableDeclaration",
                "scope": 3481,
                "src": "267:17:22",
                "stateVariable": false,
                "storageLocation": "default",
                "typeDescriptions": {
                  "typeIdentifier": "t_uint256",
                  "typeString": "uint256"
                },
                "typeName": {
                  "id": 3479,
                  "name": "uint256",
                  "nodeType": "ElementaryTypeName",
                  "src": "267:7:22",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  }
                },
                "visibility": "internal"
              }
            ],
            "name": "Product",
            "nodeType": "StructDefinition",
            "scope": 3633,
            "src": "96:196:22",
            "visibility": "public"
          },
          {
            "canonicalName": "IMarketPlace.Offer",
            "id": 3494,
            "members": [
              {
                "constant": false,
                "id": 3483,
                "mutability": "mutable",
                "name": "tokenId",
                "nodeType": "VariableDeclaration",
                "scope": 3494,
                "src": "324:15:22",
                "stateVariable": false,
                "storageLocation": "default",
                "typeDescriptions": {
                  "typeIdentifier": "t_uint256",
                  "typeString": "uint256"
                },
                "typeName": {
                  "id": 3482,
                  "name": "uint256",
                  "nodeType": "ElementaryTypeName",
                  "src": "324:7:22",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  }
                },
                "visibility": "internal"
              },
              {
                "constant": false,
                "id": 3485,
                "mutability": "mutable",
                "name": "amount",
                "nodeType": "VariableDeclaration",
                "scope": 3494,
                "src": "350:14:22",
                "stateVariable": false,
                "storageLocation": "default",
                "typeDescriptions": {
                  "typeIdentifier": "t_uint256",
                  "typeString": "uint256"
                },
                "typeName": {
                  "id": 3484,
                  "name": "uint256",
                  "nodeType": "ElementaryTypeName",
                  "src": "350:7:22",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  }
                },
                "visibility": "internal"
              },
              {
                "constant": false,
                "id": 3487,
                "mutability": "mutable",
                "name": "token20",
                "nodeType": "VariableDeclaration",
                "scope": 3494,
                "src": "375:15:22",
                "stateVariable": false,
                "storageLocation": "default",
                "typeDescriptions": {
                  "typeIdentifier": "t_address",
                  "typeString": "address"
                },
                "typeName": {
                  "id": 3486,
                  "name": "address",
                  "nodeType": "ElementaryTypeName",
                  "src": "375:7:22",
                  "stateMutability": "nonpayable",
                  "typeDescriptions": {
                    "typeIdentifier": "t_address",
                    "typeString": "address"
                  }
                },
                "visibility": "internal"
              },
              {
                "constant": false,
                "id": 3489,
                "mutability": "mutable",
                "name": "bargainer",
                "nodeType": "VariableDeclaration",
                "scope": 3494,
                "src": "401:17:22",
                "stateVariable": false,
                "storageLocation": "default",
                "typeDescriptions": {
                  "typeIdentifier": "t_address",
                  "typeString": "address"
                },
                "typeName": {
                  "id": 3488,
                  "name": "address",
                  "nodeType": "ElementaryTypeName",
                  "src": "401:7:22",
                  "stateMutability": "nonpayable",
                  "typeDescriptions": {
                    "typeIdentifier": "t_address",
                    "typeString": "address"
                  }
                },
                "visibility": "internal"
              },
              {
                "constant": false,
                "id": 3491,
                "mutability": "mutable",
                "name": "accepted",
                "nodeType": "VariableDeclaration",
                "scope": 3494,
                "src": "429:13:22",
                "stateVariable": false,
                "storageLocation": "default",
                "typeDescriptions": {
                  "typeIdentifier": "t_bool",
                  "typeString": "bool"
                },
                "typeName": {
                  "id": 3490,
                  "name": "bool",
                  "nodeType": "ElementaryTypeName",
                  "src": "429:4:22",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bool",
                    "typeString": "bool"
                  }
                },
                "visibility": "internal"
              },
              {
                "constant": false,
                "id": 3493,
                "mutability": "mutable",
                "name": "timeout",
                "nodeType": "VariableDeclaration",
                "scope": 3494,
                "src": "453:15:22",
                "stateVariable": false,
                "storageLocation": "default",
                "typeDescriptions": {
                  "typeIdentifier": "t_uint256",
                  "typeString": "uint256"
                },
                "typeName": {
                  "id": 3492,
                  "name": "uint256",
                  "nodeType": "ElementaryTypeName",
                  "src": "453:7:22",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  }
                },
                "visibility": "internal"
              }
            ],
            "name": "Offer",
            "nodeType": "StructDefinition",
            "scope": 3633,
            "src": "300:176:22",
            "visibility": "public"
          },
          {
            "anonymous": false,
            "id": 3502,
            "name": "Transfer",
            "nodeType": "EventDefinition",
            "parameters": {
              "id": 3501,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 3496,
                  "indexed": true,
                  "mutability": "mutable",
                  "name": "_tokenId",
                  "nodeType": "VariableDeclaration",
                  "scope": 3502,
                  "src": "509:24:22",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 3495,
                    "name": "uint256",
                    "nodeType": "ElementaryTypeName",
                    "src": "509:7:22",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 3498,
                  "indexed": true,
                  "mutability": "mutable",
                  "name": "_oldOwner",
                  "nodeType": "VariableDeclaration",
                  "scope": 3502,
                  "src": "544:25:22",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_address",
                    "typeString": "address"
                  },
                  "typeName": {
                    "id": 3497,
                    "name": "address",
                    "nodeType": "ElementaryTypeName",
                    "src": "544:7:22",
                    "stateMutability": "nonpayable",
                    "typeDescriptions": {
                      "typeIdentifier": "t_address",
                      "typeString": "address"
                    }
                  },
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 3500,
                  "indexed": true,
                  "mutability": "mutable",
                  "name": "_newOwner",
                  "nodeType": "VariableDeclaration",
                  "scope": 3502,
                  "src": "580:25:22",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_address",
                    "typeString": "address"
                  },
                  "typeName": {
                    "id": 3499,
                    "name": "address",
                    "nodeType": "ElementaryTypeName",
                    "src": "580:7:22",
                    "stateMutability": "nonpayable",
                    "typeDescriptions": {
                      "typeIdentifier": "t_address",
                      "typeString": "address"
                    }
                  },
                  "visibility": "internal"
                }
              ],
              "src": "498:114:22"
            },
            "src": "484:129:22"
          },
          {
            "anonymous": false,
            "id": 3514,
            "name": "NewOffer",
            "nodeType": "EventDefinition",
            "parameters": {
              "id": 3513,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 3504,
                  "indexed": true,
                  "mutability": "mutable",
                  "name": "_tokenId",
                  "nodeType": "VariableDeclaration",
                  "scope": 3514,
                  "src": "644:24:22",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 3503,
                    "name": "uint256",
                    "nodeType": "ElementaryTypeName",
                    "src": "644:7:22",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 3506,
                  "indexed": false,
                  "mutability": "mutable",
                  "name": "_amount",
                  "nodeType": "VariableDeclaration",
                  "scope": 3514,
                  "src": "679:15:22",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 3505,
                    "name": "uint256",
                    "nodeType": "ElementaryTypeName",
                    "src": "679:7:22",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 3508,
                  "indexed": false,
                  "mutability": "mutable",
                  "name": "_token20",
                  "nodeType": "VariableDeclaration",
                  "scope": 3514,
                  "src": "705:16:22",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_address",
                    "typeString": "address"
                  },
                  "typeName": {
                    "id": 3507,
                    "name": "address",
                    "nodeType": "ElementaryTypeName",
                    "src": "705:7:22",
                    "stateMutability": "nonpayable",
                    "typeDescriptions": {
                      "typeIdentifier": "t_address",
                      "typeString": "address"
                    }
                  },
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 3510,
                  "indexed": true,
                  "mutability": "mutable",
                  "name": "_bargainer",
                  "nodeType": "VariableDeclaration",
                  "scope": 3514,
                  "src": "732:26:22",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_address",
                    "typeString": "address"
                  },
                  "typeName": {
                    "id": 3509,
                    "name": "address",
                    "nodeType": "ElementaryTypeName",
                    "src": "732:7:22",
                    "stateMutability": "nonpayable",
                    "typeDescriptions": {
                      "typeIdentifier": "t_address",
                      "typeString": "address"
                    }
                  },
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 3512,
                  "indexed": false,
                  "mutability": "mutable",
                  "name": "_timeout",
                  "nodeType": "VariableDeclaration",
                  "scope": 3514,
                  "src": "769:16:22",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 3511,
                    "name": "uint256",
                    "nodeType": "ElementaryTypeName",
                    "src": "769:7:22",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "visibility": "internal"
                }
              ],
              "src": "633:159:22"
            },
            "src": "619:174:22"
          },
          {
            "anonymous": false,
            "id": 3524,
            "name": "ApproveOffer",
            "nodeType": "EventDefinition",
            "parameters": {
              "id": 3523,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 3516,
                  "indexed": true,
                  "mutability": "mutable",
                  "name": "_tokenId",
                  "nodeType": "VariableDeclaration",
                  "scope": 3524,
                  "src": "828:24:22",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 3515,
                    "name": "uint256",
                    "nodeType": "ElementaryTypeName",
                    "src": "828:7:22",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 3518,
                  "indexed": true,
                  "mutability": "mutable",
                  "name": "_oldOwner",
                  "nodeType": "VariableDeclaration",
                  "scope": 3524,
                  "src": "863:25:22",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_address",
                    "typeString": "address"
                  },
                  "typeName": {
                    "id": 3517,
                    "name": "address",
                    "nodeType": "ElementaryTypeName",
                    "src": "863:7:22",
                    "stateMutability": "nonpayable",
                    "typeDescriptions": {
                      "typeIdentifier": "t_address",
                      "typeString": "address"
                    }
                  },
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 3520,
                  "indexed": true,
                  "mutability": "mutable",
                  "name": "_newOwner",
                  "nodeType": "VariableDeclaration",
                  "scope": 3524,
                  "src": "899:25:22",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_address",
                    "typeString": "address"
                  },
                  "typeName": {
                    "id": 3519,
                    "name": "address",
                    "nodeType": "ElementaryTypeName",
                    "src": "899:7:22",
                    "stateMutability": "nonpayable",
                    "typeDescriptions": {
                      "typeIdentifier": "t_address",
                      "typeString": "address"
                    }
                  },
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 3522,
                  "indexed": false,
                  "mutability": "mutable",
                  "name": "_index",
                  "nodeType": "VariableDeclaration",
                  "scope": 3524,
                  "src": "935:14:22",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 3521,
                    "name": "uint256",
                    "nodeType": "ElementaryTypeName",
                    "src": "935:7:22",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "visibility": "internal"
                }
              ],
              "src": "817:139:22"
            },
            "src": "799:158:22"
          },
          {
            "documentation": {
              "id": 3525,
              "nodeType": "StructuredDocumentation",
              "src": "965:68:22",
              "text": " @dev Sets the contract address for creating NFT"
            },
            "functionSelector": "2e7a34b7",
            "id": 3530,
            "implemented": false,
            "kind": "function",
            "modifiers": [],
            "name": "setArtAddr",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 3528,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 3527,
                  "mutability": "mutable",
                  "name": "_artAddr",
                  "nodeType": "VariableDeclaration",
                  "scope": 3530,
                  "src": "1059:16:22",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_address",
                    "typeString": "address"
                  },
                  "typeName": {
                    "id": 3526,
                    "name": "address",
                    "nodeType": "ElementaryTypeName",
                    "src": "1059:7:22",
                    "stateMutability": "nonpayable",
                    "typeDescriptions": {
                      "typeIdentifier": "t_address",
                      "typeString": "address"
                    }
                  },
                  "visibility": "internal"
                }
              ],
              "src": "1058:18:22"
            },
            "returnParameters": {
              "id": 3529,
              "nodeType": "ParameterList",
              "parameters": [],
              "src": "1085:0:22"
            },
            "scope": 3633,
            "src": "1039:47:22",
            "stateMutability": "nonpayable",
            "virtual": false,
            "visibility": "external"
          },
          {
            "documentation": {
              "id": 3531,
              "nodeType": "StructuredDocumentation",
              "src": "1094:72:22",
              "text": " @dev Create product that will list on market place."
            },
            "functionSelector": "b9b8245c",
            "id": 3540,
            "implemented": false,
            "kind": "function",
            "modifiers": [],
            "name": "createNewProduct",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 3538,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 3533,
                  "mutability": "mutable",
                  "name": "_hashInfo",
                  "nodeType": "VariableDeclaration",
                  "scope": 3540,
                  "src": "1208:23:22",
                  "stateVariable": false,
                  "storageLocation": "memory",
                  "typeDescriptions": {
                    "typeIdentifier": "t_string_memory_ptr",
                    "typeString": "string"
                  },
                  "typeName": {
                    "id": 3532,
                    "name": "string",
                    "nodeType": "ElementaryTypeName",
                    "src": "1208:6:22",
                    "typeDescriptions": {
                      "typeIdentifier": "t_string_storage_ptr",
                      "typeString": "string"
                    }
                  },
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 3535,
                  "mutability": "mutable",
                  "name": "_hashImg",
                  "nodeType": "VariableDeclaration",
                  "scope": 3540,
                  "src": "1242:22:22",
                  "stateVariable": false,
                  "storageLocation": "memory",
                  "typeDescriptions": {
                    "typeIdentifier": "t_string_memory_ptr",
                    "typeString": "string"
                  },
                  "typeName": {
                    "id": 3534,
                    "name": "string",
                    "nodeType": "ElementaryTypeName",
                    "src": "1242:6:22",
                    "typeDescriptions": {
                      "typeIdentifier": "t_string_storage_ptr",
                      "typeString": "string"
                    }
                  },
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 3537,
                  "mutability": "mutable",
                  "name": "_price",
                  "nodeType": "VariableDeclaration",
                  "scope": 3540,
                  "src": "1275:14:22",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 3536,
                    "name": "uint256",
                    "nodeType": "ElementaryTypeName",
                    "src": "1275:7:22",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "visibility": "internal"
                }
              ],
              "src": "1197:99:22"
            },
            "returnParameters": {
              "id": 3539,
              "nodeType": "ParameterList",
              "parameters": [],
              "src": "1305:0:22"
            },
            "scope": 3633,
            "src": "1172:134:22",
            "stateMutability": "nonpayable",
            "virtual": false,
            "visibility": "external"
          },
          {
            "documentation": {
              "id": 3541,
              "nodeType": "StructuredDocumentation",
              "src": "1314:76:22",
              "text": " @dev Set a product if it listed on market place or not."
            },
            "functionSelector": "656ea7d2",
            "id": 3546,
            "implemented": false,
            "kind": "function",
            "modifiers": [],
            "name": "setListOrNot",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 3544,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 3543,
                  "mutability": "mutable",
                  "name": "_tokenId",
                  "nodeType": "VariableDeclaration",
                  "scope": 3546,
                  "src": "1418:16:22",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 3542,
                    "name": "uint256",
                    "nodeType": "ElementaryTypeName",
                    "src": "1418:7:22",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "visibility": "internal"
                }
              ],
              "src": "1417:18:22"
            },
            "returnParameters": {
              "id": 3545,
              "nodeType": "ParameterList",
              "parameters": [],
              "src": "1444:0:22"
            },
            "scope": 3633,
            "src": "1396:49:22",
            "stateMutability": "nonpayable",
            "virtual": false,
            "visibility": "external"
          },
          {
            "documentation": {
              "id": 3547,
              "nodeType": "StructuredDocumentation",
              "src": "1453:58:22",
              "text": " @dev Set a product if it sold or not."
            },
            "functionSelector": "8a195912",
            "id": 3552,
            "implemented": false,
            "kind": "function",
            "modifiers": [],
            "name": "setSellOrNot",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 3550,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 3549,
                  "mutability": "mutable",
                  "name": "_tokenId",
                  "nodeType": "VariableDeclaration",
                  "scope": 3552,
                  "src": "1539:16:22",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 3548,
                    "name": "uint256",
                    "nodeType": "ElementaryTypeName",
                    "src": "1539:7:22",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "visibility": "internal"
                }
              ],
              "src": "1538:18:22"
            },
            "returnParameters": {
              "id": 3551,
              "nodeType": "ParameterList",
              "parameters": [],
              "src": "1565:0:22"
            },
            "scope": 3633,
            "src": "1517:49:22",
            "stateMutability": "nonpayable",
            "virtual": false,
            "visibility": "external"
          },
          {
            "documentation": {
              "id": 3553,
              "nodeType": "StructuredDocumentation",
              "src": "1574:64:22",
              "text": " @dev Set price to product with its tokenId."
            },
            "functionSelector": "f7d97577",
            "id": 3560,
            "implemented": false,
            "kind": "function",
            "modifiers": [],
            "name": "setPrice",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 3558,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 3555,
                  "mutability": "mutable",
                  "name": "_tokenId",
                  "nodeType": "VariableDeclaration",
                  "scope": 3560,
                  "src": "1662:16:22",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 3554,
                    "name": "uint256",
                    "nodeType": "ElementaryTypeName",
                    "src": "1662:7:22",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 3557,
                  "mutability": "mutable",
                  "name": "_price",
                  "nodeType": "VariableDeclaration",
                  "scope": 3560,
                  "src": "1680:14:22",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 3556,
                    "name": "uint256",
                    "nodeType": "ElementaryTypeName",
                    "src": "1680:7:22",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "visibility": "internal"
                }
              ],
              "src": "1661:34:22"
            },
            "returnParameters": {
              "id": 3559,
              "nodeType": "ParameterList",
              "parameters": [],
              "src": "1704:0:22"
            },
            "scope": 3633,
            "src": "1644:61:22",
            "stateMutability": "nonpayable",
            "virtual": false,
            "visibility": "external"
          },
          {
            "documentation": {
              "id": 3561,
              "nodeType": "StructuredDocumentation",
              "src": "1713:73:22",
              "text": " @dev Return the product list listing on market place"
            },
            "functionSelector": "fdfe7485",
            "id": 3570,
            "implemented": false,
            "kind": "function",
            "modifiers": [],
            "name": "getProductListCreated",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 3564,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 3563,
                  "mutability": "mutable",
                  "name": "_user",
                  "nodeType": "VariableDeclaration",
                  "scope": 3570,
                  "src": "1823:13:22",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_address",
                    "typeString": "address"
                  },
                  "typeName": {
                    "id": 3562,
                    "name": "address",
                    "nodeType": "ElementaryTypeName",
                    "src": "1823:7:22",
                    "stateMutability": "nonpayable",
                    "typeDescriptions": {
                      "typeIdentifier": "t_address",
                      "typeString": "address"
                    }
                  },
                  "visibility": "internal"
                }
              ],
              "src": "1822:15:22"
            },
            "returnParameters": {
              "id": 3569,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 3568,
                  "mutability": "mutable",
                  "name": "",
                  "nodeType": "VariableDeclaration",
                  "scope": 3570,
                  "src": "1888:16:22",
                  "stateVariable": false,
                  "storageLocation": "memory",
                  "typeDescriptions": {
                    "typeIdentifier": "t_array$_t_struct$_Product_$3481_memory_ptr_$dyn_memory_ptr",
                    "typeString": "struct IMarketPlace.Product[]"
                  },
                  "typeName": {
                    "baseType": {
                      "id": 3566,
                      "nodeType": "UserDefinedTypeName",
                      "pathNode": {
                        "id": 3565,
                        "name": "Product",
                        "nodeType": "IdentifierPath",
                        "referencedDeclaration": 3481,
                        "src": "1888:7:22"
                      },
                      "referencedDeclaration": 3481,
                      "src": "1888:7:22",
                      "typeDescriptions": {
                        "typeIdentifier": "t_struct$_Product_$3481_storage_ptr",
                        "typeString": "struct IMarketPlace.Product"
                      }
                    },
                    "id": 3567,
                    "nodeType": "ArrayTypeName",
                    "src": "1888:9:22",
                    "typeDescriptions": {
                      "typeIdentifier": "t_array$_t_struct$_Product_$3481_storage_$dyn_storage_ptr",
                      "typeString": "struct IMarketPlace.Product[]"
                    }
                  },
                  "visibility": "internal"
                }
              ],
              "src": "1887:18:22"
            },
            "scope": 3633,
            "src": "1792:114:22",
            "stateMutability": "view",
            "virtual": false,
            "visibility": "external"
          },
          {
            "documentation": {
              "id": 3571,
              "nodeType": "StructuredDocumentation",
              "src": "1914:165:22",
              "text": " @dev Moves `_tokenId` product from its owner to `sender` using the.\n `sender` pass a mount ETH, this will transfer to owner of `_tokenId`"
            },
            "functionSelector": "94dc9cf3",
            "id": 3576,
            "implemented": false,
            "kind": "function",
            "modifiers": [],
            "name": "buyWithETH",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 3574,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 3573,
                  "mutability": "mutable",
                  "name": "_tokenId",
                  "nodeType": "VariableDeclaration",
                  "scope": 3576,
                  "src": "2105:16:22",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 3572,
                    "name": "uint256",
                    "nodeType": "ElementaryTypeName",
                    "src": "2105:7:22",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "visibility": "internal"
                }
              ],
              "src": "2104:18:22"
            },
            "returnParameters": {
              "id": 3575,
              "nodeType": "ParameterList",
              "parameters": [],
              "src": "2139:0:22"
            },
            "scope": 3633,
            "src": "2085:55:22",
            "stateMutability": "payable",
            "virtual": false,
            "visibility": "external"
          },
          {
            "functionSelector": "5e7524e7",
            "id": 3583,
            "implemented": false,
            "kind": "function",
            "modifiers": [],
            "name": "buyWithCurrency",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 3581,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 3578,
                  "mutability": "mutable",
                  "name": "_tokenId",
                  "nodeType": "VariableDeclaration",
                  "scope": 3583,
                  "src": "2173:16:22",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 3577,
                    "name": "uint256",
                    "nodeType": "ElementaryTypeName",
                    "src": "2173:7:22",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 3580,
                  "mutability": "mutable",
                  "name": "traransactionId",
                  "nodeType": "VariableDeclaration",
                  "scope": 3583,
                  "src": "2191:29:22",
                  "stateVariable": false,
                  "storageLocation": "memory",
                  "typeDescriptions": {
                    "typeIdentifier": "t_string_memory_ptr",
                    "typeString": "string"
                  },
                  "typeName": {
                    "id": 3579,
                    "name": "string",
                    "nodeType": "ElementaryTypeName",
                    "src": "2191:6:22",
                    "typeDescriptions": {
                      "typeIdentifier": "t_string_storage_ptr",
                      "typeString": "string"
                    }
                  },
                  "visibility": "internal"
                }
              ],
              "src": "2172:49:22"
            },
            "returnParameters": {
              "id": 3582,
              "nodeType": "ParameterList",
              "parameters": [],
              "src": "2239:0:22"
            },
            "scope": 3633,
            "src": "2148:92:22",
            "stateMutability": "nonpayable",
            "virtual": false,
            "visibility": "external"
          },
          {
            "documentation": {
              "id": 3584,
              "nodeType": "StructuredDocumentation",
              "src": "2248:60:22",
              "text": " @dev Return the product list of `owner`"
            },
            "functionSelector": "c7ea1e8b",
            "id": 3593,
            "implemented": false,
            "kind": "function",
            "modifiers": [],
            "name": "getProducListOwnable",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 3587,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 3586,
                  "mutability": "mutable",
                  "name": "_owner",
                  "nodeType": "VariableDeclaration",
                  "scope": 3593,
                  "src": "2344:14:22",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_address",
                    "typeString": "address"
                  },
                  "typeName": {
                    "id": 3585,
                    "name": "address",
                    "nodeType": "ElementaryTypeName",
                    "src": "2344:7:22",
                    "stateMutability": "nonpayable",
                    "typeDescriptions": {
                      "typeIdentifier": "t_address",
                      "typeString": "address"
                    }
                  },
                  "visibility": "internal"
                }
              ],
              "src": "2343:16:22"
            },
            "returnParameters": {
              "id": 3592,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 3591,
                  "mutability": "mutable",
                  "name": "",
                  "nodeType": "VariableDeclaration",
                  "scope": 3593,
                  "src": "2410:16:22",
                  "stateVariable": false,
                  "storageLocation": "memory",
                  "typeDescriptions": {
                    "typeIdentifier": "t_array$_t_struct$_Product_$3481_memory_ptr_$dyn_memory_ptr",
                    "typeString": "struct IMarketPlace.Product[]"
                  },
                  "typeName": {
                    "baseType": {
                      "id": 3589,
                      "nodeType": "UserDefinedTypeName",
                      "pathNode": {
                        "id": 3588,
                        "name": "Product",
                        "nodeType": "IdentifierPath",
                        "referencedDeclaration": 3481,
                        "src": "2410:7:22"
                      },
                      "referencedDeclaration": 3481,
                      "src": "2410:7:22",
                      "typeDescriptions": {
                        "typeIdentifier": "t_struct$_Product_$3481_storage_ptr",
                        "typeString": "struct IMarketPlace.Product"
                      }
                    },
                    "id": 3590,
                    "nodeType": "ArrayTypeName",
                    "src": "2410:9:22",
                    "typeDescriptions": {
                      "typeIdentifier": "t_array$_t_struct$_Product_$3481_storage_$dyn_storage_ptr",
                      "typeString": "struct IMarketPlace.Product[]"
                    }
                  },
                  "visibility": "internal"
                }
              ],
              "src": "2409:18:22"
            },
            "scope": 3633,
            "src": "2314:114:22",
            "stateMutability": "view",
            "virtual": false,
            "visibility": "external"
          },
          {
            "documentation": {
              "id": 3594,
              "nodeType": "StructuredDocumentation",
              "src": "2436:76:22",
              "text": " @dev Create a offer to negotiate the product `_tokenId`"
            },
            "functionSelector": "acb1ba67",
            "id": 3605,
            "implemented": false,
            "kind": "function",
            "modifiers": [],
            "name": "offer",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 3603,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 3596,
                  "mutability": "mutable",
                  "name": "_tokenId",
                  "nodeType": "VariableDeclaration",
                  "scope": 3605,
                  "src": "2543:16:22",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 3595,
                    "name": "uint256",
                    "nodeType": "ElementaryTypeName",
                    "src": "2543:7:22",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 3598,
                  "mutability": "mutable",
                  "name": "_amount",
                  "nodeType": "VariableDeclaration",
                  "scope": 3605,
                  "src": "2570:15:22",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 3597,
                    "name": "uint256",
                    "nodeType": "ElementaryTypeName",
                    "src": "2570:7:22",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 3600,
                  "mutability": "mutable",
                  "name": "_token20",
                  "nodeType": "VariableDeclaration",
                  "scope": 3605,
                  "src": "2596:16:22",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_address",
                    "typeString": "address"
                  },
                  "typeName": {
                    "id": 3599,
                    "name": "address",
                    "nodeType": "ElementaryTypeName",
                    "src": "2596:7:22",
                    "stateMutability": "nonpayable",
                    "typeDescriptions": {
                      "typeIdentifier": "t_address",
                      "typeString": "address"
                    }
                  },
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 3602,
                  "mutability": "mutable",
                  "name": "_timeout",
                  "nodeType": "VariableDeclaration",
                  "scope": 3605,
                  "src": "2623:16:22",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 3601,
                    "name": "uint256",
                    "nodeType": "ElementaryTypeName",
                    "src": "2623:7:22",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "visibility": "internal"
                }
              ],
              "src": "2532:114:22"
            },
            "returnParameters": {
              "id": 3604,
              "nodeType": "ParameterList",
              "parameters": [],
              "src": "2655:0:22"
            },
            "scope": 3633,
            "src": "2518:138:22",
            "stateMutability": "nonpayable",
            "virtual": false,
            "visibility": "external"
          },
          {
            "documentation": {
              "id": 3606,
              "nodeType": "StructuredDocumentation",
              "src": "2664:72:22",
              "text": " @dev Restart time for offer timeout with `_tokenId`"
            },
            "functionSelector": "688ec404",
            "id": 3615,
            "implemented": false,
            "kind": "function",
            "modifiers": [],
            "name": "restartOffer",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 3613,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 3608,
                  "mutability": "mutable",
                  "name": "_tokenId",
                  "nodeType": "VariableDeclaration",
                  "scope": 3615,
                  "src": "2774:16:22",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 3607,
                    "name": "uint256",
                    "nodeType": "ElementaryTypeName",
                    "src": "2774:7:22",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 3610,
                  "mutability": "mutable",
                  "name": "_index",
                  "nodeType": "VariableDeclaration",
                  "scope": 3615,
                  "src": "2801:14:22",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 3609,
                    "name": "uint256",
                    "nodeType": "ElementaryTypeName",
                    "src": "2801:7:22",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 3612,
                  "mutability": "mutable",
                  "name": "_timeout",
                  "nodeType": "VariableDeclaration",
                  "scope": 3615,
                  "src": "2826:16:22",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 3611,
                    "name": "uint256",
                    "nodeType": "ElementaryTypeName",
                    "src": "2826:7:22",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "visibility": "internal"
                }
              ],
              "src": "2763:86:22"
            },
            "returnParameters": {
              "id": 3614,
              "nodeType": "ParameterList",
              "parameters": [],
              "src": "2858:0:22"
            },
            "scope": 3633,
            "src": "2742:117:22",
            "stateMutability": "nonpayable",
            "virtual": false,
            "visibility": "external"
          },
          {
            "functionSelector": "3cd0cd67",
            "id": 3625,
            "implemented": false,
            "kind": "function",
            "modifiers": [],
            "name": "getOffer",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 3620,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 3617,
                  "mutability": "mutable",
                  "name": "_tokenId",
                  "nodeType": "VariableDeclaration",
                  "scope": 3625,
                  "src": "2891:16:22",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 3616,
                    "name": "uint256",
                    "nodeType": "ElementaryTypeName",
                    "src": "2891:7:22",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 3619,
                  "mutability": "mutable",
                  "name": "_index",
                  "nodeType": "VariableDeclaration",
                  "scope": 3625,
                  "src": "2909:14:22",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 3618,
                    "name": "uint256",
                    "nodeType": "ElementaryTypeName",
                    "src": "2909:7:22",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "visibility": "internal"
                }
              ],
              "src": "2890:34:22"
            },
            "returnParameters": {
              "id": 3624,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 3623,
                  "mutability": "mutable",
                  "name": "",
                  "nodeType": "VariableDeclaration",
                  "scope": 3625,
                  "src": "2975:12:22",
                  "stateVariable": false,
                  "storageLocation": "memory",
                  "typeDescriptions": {
                    "typeIdentifier": "t_struct$_Offer_$3494_memory_ptr",
                    "typeString": "struct IMarketPlace.Offer"
                  },
                  "typeName": {
                    "id": 3622,
                    "nodeType": "UserDefinedTypeName",
                    "pathNode": {
                      "id": 3621,
                      "name": "Offer",
                      "nodeType": "IdentifierPath",
                      "referencedDeclaration": 3494,
                      "src": "2975:5:22"
                    },
                    "referencedDeclaration": 3494,
                    "src": "2975:5:22",
                    "typeDescriptions": {
                      "typeIdentifier": "t_struct$_Offer_$3494_storage_ptr",
                      "typeString": "struct IMarketPlace.Offer"
                    }
                  },
                  "visibility": "internal"
                }
              ],
              "src": "2974:14:22"
            },
            "scope": 3633,
            "src": "2873:116:22",
            "stateMutability": "view",
            "virtual": false,
            "visibility": "external"
          },
          {
            "functionSelector": "f16f3730",
            "id": 3632,
            "implemented": false,
            "kind": "function",
            "modifiers": [],
            "name": "approveOffer",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 3630,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 3627,
                  "mutability": "mutable",
                  "name": "_tokenId",
                  "nodeType": "VariableDeclaration",
                  "scope": 3632,
                  "src": "3019:16:22",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 3626,
                    "name": "uint256",
                    "nodeType": "ElementaryTypeName",
                    "src": "3019:7:22",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 3629,
                  "mutability": "mutable",
                  "name": "_index",
                  "nodeType": "VariableDeclaration",
                  "scope": 3632,
                  "src": "3037:14:22",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 3628,
                    "name": "uint256",
                    "nodeType": "ElementaryTypeName",
                    "src": "3037:7:22",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "visibility": "internal"
                }
              ],
              "src": "3018:34:22"
            },
            "returnParameters": {
              "id": 3631,
              "nodeType": "ParameterList",
              "parameters": [],
              "src": "3061:0:22"
            },
            "scope": 3633,
            "src": "2997:65:22",
            "stateMutability": "nonpayable",
            "virtual": false,
            "visibility": "external"
          }
        ],
        "scope": 3634,
        "src": "66:2999:22"
      }
    ],
    "src": "39:3028:22"
  },
  "compiler": {
    "name": "solc",
    "version": "0.8.0+commit.c7dfd78e.Emscripten.clang"
  },
  "networks": {},
  "schemaVersion": "3.4.3",
  "updatedAt": "2021-12-05T02:54:05.674Z",
  "devdoc": {
    "kind": "dev",
    "methods": {
      "buyWithETH(uint256)": {
        "details": "Moves `_tokenId` product from its owner to `sender` using the. `sender` pass a mount ETH, this will transfer to owner of `_tokenId`"
      },
      "createNewProduct(string,string,uint256)": {
        "details": "Create product that will list on market place."
      },
      "getProducListOwnable(address)": {
        "details": "Return the product list of `owner`"
      },
      "getProductListCreated(address)": {
        "details": "Return the product list listing on market place"
      },
      "offer(uint256,uint256,address,uint256)": {
        "details": "Create a offer to negotiate the product `_tokenId`"
      },
      "restartOffer(uint256,uint256,uint256)": {
        "details": "Restart time for offer timeout with `_tokenId`"
      },
      "setArtAddr(address)": {
        "details": "Sets the contract address for creating NFT"
      },
      "setListOrNot(uint256)": {
        "details": "Set a product if it listed on market place or not."
      },
      "setPrice(uint256,uint256)": {
        "details": "Set price to product with its tokenId."
      },
      "setSellOrNot(uint256)": {
        "details": "Set a product if it sold or not."
      }
    },
    "version": 1
  },
  "userdoc": {
    "kind": "user",
    "methods": {},
    "version": 1
  }
}