{"_id":"@artman325/nonfungibletokencontract","name":"@artman325/nonfungibletokencontract","dist-tags":{"latest":"1.0.0"},"versions":{"1.0.0":{"name":"@artman325/nonfungibletokencontract","version":"1.0.0","description":"NFT contracts that support a new ERC token standard for paying commissions to authors","main":"index.js","scripts":{"test":"echo \"Error: no test specified\" && exit 1"},"repository":{"type":"git","url":"git+https://github.com/Intercoin/NonFungibleTokenContract.git"},"author":"","license":"ISC","bugs":{"url":"https://github.com/Intercoin/NonFungibleTokenContract/issues"},"homepage":"https://github.com/Intercoin/NonFungibleTokenContract#readme","devDependencies":{"@hardhat-docgen/core":"^1.2.3","@hardhat-docgen/markdown":"^1.2.4","@nomiclabs/hardhat-ethers":"^2.0.3","@nomiclabs/hardhat-etherscan":"^2.1.8","@nomiclabs/hardhat-waffle":"^2.0.1","@nomiclabs/hardhat-web3":"^2.0.0","@types/chai":"^4.2.16","@types/mocha":"^8.2.2","bignumber.js":"^9.0.1","chai":"^4.3.4","chai-as-promised":"^7.1.1","chai-bignumber":"^3.0.0","decimal.js":"^10.2.1","dotenv":"^8.2.0","ethereum-waffle":"^3.3.0","ethers":"^5.4.7","hardhat":"^2.7.0","hardhat-deploy":"^0.9.4","hardhat-deploy-ethers":"^0.3.0-beta.11","hardhat-docgen":"^1.2.0","hardhat-gas-reporter":"^1.0.4","mocha":"^7.2.0","prettier":"^2.2.1","prettier-plugin-solidity":"^1.0.0-beta.18","solhint":"^3.3.4","solhint-plugin-prettier":"^0.0.5","solidity-coverage":"^0.7.16","solidity-docgen":"^0.5.16","solidoc":"^1.0.5","ts-node":"^10.4.0"},"dependencies":{"@artman325/community":"^1.1.3","@openzeppelin/contracts":"^4.1.0","@openzeppelin/contracts-upgradeable":"^4.1.0","@openzeppelin/test-helpers":"^0.5.15","@uniswap/lib":"^4.0.1-alpha","trustedforwarder":"^1.0.0","releasemanager":"^1.0.5"},"gitHead":"953d369793e7acfe5a631872ccfa35f6efc94dbc","_id":"@artman325/nonfungibletokencontract@1.0.0","_nodeVersion":"16.13.1","_npmVersion":"9.2.0","dist":{"integrity":"sha512-MGtMGYs6XYwH9lYburCXOb9iGd6VTdJ137J5z/+ZTbUcrA49txW2sons8FXXG4XbahT4uL81g+1qljyFhowM4Q==","shasum":"4d72a111dcbb42d9b0b8b09e67a4e7ad787032cf","tarball":"https://registry.npmjs.org/@artman325/nonfungibletokencontract/-/nonfungibletokencontract-1.0.0.tgz","fileCount":29,"unpackedSize":211906,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIFuoxD8GIwGwIinj/GscZHGzaGifcKMuUt6k2Wg5+LXaAiAxcTaKdKZCiW+8V4l0Nt2Z9EYOQl3Bzp2JalNmNqdwQg=="}],"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJjzyUZACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2Vmq6kQ/9FMvh4TWjarW33q3R93kZMyoDmsalvBGtJW2gJWRMCSApwUb9\r\nmTxbURmnBmn0IeaFeTEYCBYNU5hu/zEaZmy+7O+gDfFBOV+5eryvezg2ogoE\r\nbIzV5RyMsHJiV3Oo/PaHVzivOriimBdnz4XCGsierQB2fEGnA41kAjpN0XsY\r\nvfa0Q7JLp0nV7EDwgqzbL0uj8NAiC9fFH3nRxsZBXPNGdxDBOTuxHq0S8XHc\r\nOanhN11124+0O1MdBr0URgM8iYi4EXKFpZ1CUIs/8mvq8S+MB+tzOUjd1oZi\r\nCwWbmwBIPItEKF8vlwfD2pT30AhZAJ7vOJ3F5qK0C3T9IeEJ/4a3adO1cVtH\r\nX/nNwDYAvCDSPhAFOtO11HWhd6DW0B/FORbdTCbrzKIG1/BSDKK3PGGWZGMF\r\ngWE4BwFh0n5E9aQ9I9YgaDFjKWSwMWl9z0BVevo7Soxw9+FWHfdT9VqIYzs1\r\nMUbJrT7ommUA6piLab91/1TZEGpF0vHvgv7bsGsbV1OuJVPFJqON9eXdDg7X\r\nluoqjMCaLRir0iq6KH+hAmkuXN59ANR6GvZ3lsog37gxek/asn0YK564yHsn\r\n4aYA/OsrU6AAA4RTSLYNSemB2dcucVZUJwovADQy0HSmrd4TdUga/4jtkmvd\r\nhLKbCOYTF1NmuiVWPc8aKME21R5Q1ElRJ/E=\r\n=/FiH\r\n-----END PGP SIGNATURE-----\r\n"},"_npmUser":{"name":"artman325","email":"subbotin.artem@gmail.com"},"directories":{},"maintainers":[{"name":"artman325","email":"subbotin.artem@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/nonfungibletokencontract_1.0.0_1674519833671_0.5646367667769308"},"_hasShrinkwrap":false}},"time":{"created":"2023-01-24T00:23:53.602Z","1.0.0":"2023-01-24T00:23:53.911Z","modified":"2023-01-24T00:23:54.086Z"},"maintainers":[{"name":"artman325","email":"subbotin.artem@gmail.com"}],"description":"NFT contracts that support a new ERC token standard for paying commissions to authors","homepage":"https://github.com/Intercoin/NonFungibleTokenContract#readme","repository":{"type":"git","url":"git+https://github.com/Intercoin/NonFungibleTokenContract.git"},"bugs":{"url":"https://github.com/Intercoin/NonFungibleTokenContract/issues"},"license":"ISC","readme":"<h1> Contracts overview </h1>\n<h2> NFT </h2>\n\n<p class=\"lead\">\n\nNFT is a non fungible token contract of the new standard. It is based on the ERC721 standard, but with significant improvements. \nThe basic idea is to represent the token ID in a special way, in which the ID is the concatenation of the series ID and the token itself in that series. \n\nThe contract allows to create a series of tokens, with certain properties and conditions of sale (custom baseURI, suffix, limit, currency, price and royalties). \nThus, it is not only a token contract, but a platform for creating various NFT projects and selling tokens with different logic. \n\nThe list of basic features:\n- Creation of a series of tokens with different terms of sale (royalties, price, currency) and token properties (custom baseURI, suffix, limit)\n- Conduction of primary purchase (mint) for a specified currency and price\n- Possibility for the users to resell tokens on special conditions\n- Supporting of additional hooks connection (SafeHooks). SafeHooks mechanism doesn't put the current token owners at risk, since only the hooks that were present at the time of purchase will be applied to the individual token\n- The contract owner can call a separate function mintAndDistribute() and mint the specified IDs to the specified addresses \n- The contract supports all functions of the ERC721 standard and ERC721Enumerable, besides there are public transfer() and burn() function\n- Name and symbol can be changed by owner\n\n<h3> Current version addresses implementation: </h3>\n\nABI: [https://ipfs.io/ipfs/QmYQZRcsV6sfVWwVK5FG67g2XcTqkTzcdhk9WRQHwaYQQr](https://ipfs.io/ipfs/QmYQZRcsV6sfVWwVK5FG67g2XcTqkTzcdhk9WRQHwaYQQr)\n\nRinkeby: [0x04002eCadCe04d1D8A9F3073B83615785dAdA702](https://rinkeby.etherscan.io/address/0x04002eCadCe04d1D8A9F3073B83615785dAdA702#code)<br>\nBSC-Testnet: [0x0426e9fE25eF7351946d09136E4b965d53543d08](https://testnet.bscscan.com/address/0x0426e9fE25eF7351946d09136E4b965d53543d08#code)<br>\nMATIC: [0x65205E13623761441D3c1792a4d7A6E9076A63F4](https://polygonscan.com/address/0x65205E13623761441D3c1792a4d7A6E9076A63F4#code) (not verified)<br>\n\n\n<br>\n<details>\n<summary><b><i>Previous versions implementation</i></b></summary>\n------------------------------<br>\n\nABI: [https://ipfs.io/ipfs/QmdTf3217bra8Jm1egyKkEDBeJfhJfvJ3jhicoDfrhYEGH](https://ipfs.io/ipfs/QmdTf3217bra8Jm1egyKkEDBeJfhJfvJ3jhicoDfrhYEGH)\n\nRinkeby: [0x5633652F103793fE25465CF04291788B7d8EFAC7](https://rinkeby.etherscan.io/address/0x5633652F103793fE25465CF04291788B7d8EFAC7#code)<br>\nBSC-Testnet: [0x814E71E5d6F7F06512bF6db6b00730d75960Dbae](https://testnet.bscscan.com/address/0x814E71E5d6F7F06512bF6db6b00730d75960Dbae#code)<br>\nMATIC: [0x7156BE8D65404b6b2F4aEBd70e6a1Bd538358BE6](https://polygonscan.com/address/0x7156BE8D65404b6b2F4aEBd70e6a1Bd538358BE6#code) (not verified)<br>\n\n------------------------------<br>\n\nRinkeby: [0x0b20A09f61D8d8755BFD8dD084eB3078Bed29514](https://rinkeby.etherscan.io/address/0x0b20A09f61D8d8755BFD8dD084eB3078Bed29514#code)<br>\nBSC-Testnet: [0x699e94b92fa331dE1e702332a5fb6b565Eb0D49a](https://testnet.bscscan.com/address/0x699e94b92fa331dE1e702332a5fb6b565Eb0D49a#code)<br>\nMATIC: [0x2EA8BF5091B081aFf7C26d0aB6Bbe386cc9666B7](https://polygonscan.com/address/0x2EA8BF5091B081aFf7C26d0aB6Bbe386cc9666B7#code) (not verified)<br>\n------------------------------<br>\n\nRinkeby: [0xF0DeBed25eC8ef805280eE8d3e546EE827C6Bc87](https://rinkeby.etherscan.io/address/0xF0DeBed25eC8ef805280eE8d3e546EE827C6Bc87#code)<br>\nBSC-Testnet: [0x59021Cb2448a3af840112eC2de878d8B7d4C1b4E](https://testnet.bscscan.com/address/0x59021Cb2448a3af840112eC2de878d8B7d4C1b4E#code)<br>\nMATIC: [0x910F345AC291d22B1188338c9F4e4a91E9EA2A47](https://polygonscan.com/address/0x910F345AC291d22B1188338c9F4e4a91E9EA2A47#code) (not verified)<br>\n------------------------------<br>\n\nRinkeby: [0x78613Cc32ecA27DEC6f42BC08990CDB06D6b4Df6](https://rinkeby.etherscan.io/address/0x78613Cc32ecA27DEC6f42BC08990CDB06D6b4Df6#code)<br>\nPolygon: 0x159a0e4b698a21B7E50Ec5D06921d73dEFf89510 (not verified)<br>\n------------------------------<br>\n</details>\n\n<br>\n<h2> Factory </h2>\nFactory contract for NFTs. Allows gas-efficient deploy of copies of the NFTs contract.\n\n<h3> Current version addresses: </h3>\n\nABI: [https://ipfs.io/ipfs/QmdPMNHNdmSeCmcrao5zw8MnULw97pmtb8QpGM5DLXYWuf](https://ipfs.io/ipfs/QmdPMNHNdmSeCmcrao5zw8MnULw97pmtb8QpGM5DLXYWuf)\n\nRinkeby: [0x900fDA19857e86ae861930B1aeCcB783357D0Be3](https://rinkeby.etherscan.io/address/0x900fDA19857e86ae861930B1aeCcB783357D0Be3#code)<br>\nBSC-Testnet: [0x54e4793Dba7d969265ec020a99b35D1447184fCc](https://testnet.bscscan.com/address/0x54e4793Dba7d969265ec020a99b35D1447184fCc#code)<br>\nMATIC: [0x7Ac4F98322Da0Ad708D30E59d7856042E8D1758c](https://polygonscan.com/address/0x7Ac4F98322Da0Ad708D30E59d7856042E8D1758c#code) (not verified)<br>\n\n<br>\n<details>\n<summary><b><i>Previous versions</i></b></summary>\n\n------------------------------<br>\n\nABI: [https://ipfs.io/ipfs/QmdPMNHNdmSeCmcrao5zw8MnULw97pmtb8QpGM5DLXYWuf](https://ipfs.io/ipfs/QmdPMNHNdmSeCmcrao5zw8MnULw97pmtb8QpGM5DLXYWuf)\n\nRinkeby: [0xf38F70F637124dEaa836D5bB35ce880FEf4786A8](https://rinkeby.etherscan.io/address/0xf38F70F637124dEaa836D5bB35ce880FEf4786A8#code)<br>\nBSC-Testnet: [0x611b4a14e76973d1928B9B0F45022FDf841de50a](https://testnet.bscscan.com/address/0x611b4a14e76973d1928B9B0F45022FDf841de50a#code)<br>\nMATIC: [0x80098e58Cb1e593Cf9C046b90057e0890AB7e596](https://polygonscan.com/address/0x80098e58Cb1e593Cf9C046b90057e0890AB7e596#code) (not verified)<br>\n------------------------------<br>\n\nRinkeby: [0x6619495634eA889c73FD51aD60276F104735AbDe](https://rinkeby.etherscan.io/address/0x6619495634eA889c73FD51aD60276F104735AbDe#code)<br>\nBSC-Testnet: [0x730d471fC842a6D9822e444e9cce0EB253DCceDc](https://testnet.bscscan.com/address/0x730d471fC842a6D9822e444e9cce0EB253DCceDc#code)<br>\nMATIC: [0xd4220E0BaB13520356e0A103C68d1896476dbC7C](https://polygonscan.com/address/0xd4220E0BaB13520356e0A103C68d1896476dbC7C#code) (not verified)<br>\n------------------------------<br>\n\nRinkeby: [0x1411384E65547569657172F6d474Ecf21EE172dD](https://rinkeby.etherscan.io/address/0x1411384E65547569657172F6d474Ecf21EE172dD#code)<br>\nBSC-Testnet: [0xe05B713E968246aE8B829df8FD5a088879594d6F](https://testnet.bscscan.com/address/0xe05B713E968246aE8B829df8FD5a088879594d6F#code)<br>\nMATIC: [0x427CD51e32DE879B0b4c220396A2ea7172dD7ec2](https://polygonscan.com/address/0x427CD51e32DE879B0b4c220396A2ea7172dD7ec2#code) (not verified)<br>\n------------------------------<br>\n\nRinkeby: [0x4a273f42F320E015Db1F741E17E517F6aF1E4D9B](https://rinkeby.etherscan.io/address/0x4a273f42F320E015Db1F741E17E517F6aF1E4D9B#code)<br>\nPolygon: 0xEd99D3bf50e76c257F1b197796c5df8B27F73986 (not verified)<br>\n------------------------------<br>\n</details>\n\n<h1> Getting started </h1>\nTo deploy a new instance of NFT contract user should call produce() method of Factory contract with desired 'name' and 'symbol' of a new token. \nSince it is done, address of the new instance can be obtained by calling getInstance() method of Factory contract. \nThe caller of the Factory contract is the owner of the new contract. Owner can call all onlyOwner functions. \nFor example, owner can call mintAndDistribute() method and freely mint list of specified IDs to list of specified addresses. \nTo create the new series of tokens, function setSeriesInfo() must be called with appropriate parameters ('onSaleUntil' must be > current timestamp).\n\n<br>\n<h2> NFTSales </h2>\nNFTSales contract can be produced by contract NFTSalesFactory and allow to purchase nft by special price that can be setup by NFTSalesFactory's owner . \n\nThe list of basic features:\nToken can be claim after duration period that should be passed after purchase\nThe contract owner can add(or remove) any person into whitelist\nAny person from the whitelist can purchase tokens by calling specialPurchase \nBought tokens will be able after duration time was passed it will not be automaticallY. person have need to call distribute/claim methods\n\n<br>\n<h2> NFTSalesFactory </h2>\nNFTSalesFactory is a factory contract for NFTSales instance.\nWork schema are following: Deployer deploy NFTSalesFactory and make it as Trusted Forwarder for desired NFTContract, where would want to sell nft tokens.\nThen for his clients deployer can create NFTSales instance and specify params like currency,price,beneficiary,etc.\nNow Client - as owner of NFTSales contract can add to whitelist any persons because calling specialPurchase are able only whitelist's persons.\nin any time: \nOwner of NFTSales contract can remove person from whitelist and block method specialPurchase for him using.\nDeployer can add to black list certain NFTSales contract, and block it works.\nFrom other side NFTContract's owner can remove NFTSalesFactory from the TrustedForwarder. This will block work for all NFTSales instances produced by the factory.\n\n<hr>\n<h1>Contracts MD</h1>\n\n[NFT.md](docs/contracts/v2/NFTMain.md)<br>\n[NFTSales.md](docs/contracts/sales/NFTSales.md)<br>\n[NFTSalesFactory.md](docs/contracts/sales/NFTSalesFactory.md)<br>\n","readmeFilename":"README.md"}