Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
33 changes: 30 additions & 3 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -39,7 +39,34 @@
- Then run the truffle migration command

truffle migrate --reset --network testnet

## Error Table

The table below lists all possible reasons for errors in a contract call that mints, bids, buy, sell, withdraw bid or cancel a sale.

| No | Error | Reason |
|:----------:|:-------------|:------|
| 1 | Not an owner of token | Should be an owner of token |
| 2 | Token not for sale | Token should be up for sale |
| 3 | Buyer is owner of token | Buyer of token can't be the owner of token |
| 4 | Token is not put on bid Sale | Token should be up for bid sale |
| 5 | Price entered is lower than base price of token | Price should be greater than the base price of token |
| 6 | Buyer is an owner of token | Buyer of token can't be an owner of token |
| 7 | Quantity greater than number of tokens | Number of tokens should be greater or equal to quantity |
| 8 | Quantity less than (price x quantity)) | Quantity should be greater or equal to (price x quantity)) |
| 9 | Collection Address is zero address | Collection Address should not be zero address |
| 10 | Minting more than 15 Nfts | Minting more than 15 Nfts are not allowed |
| 11 | URI array & totalNFT count mismatch | URI array length should be equal to _totalNFT |
| 12 | Royalities array length is greater than 10 | Royalities array length should be less than or equal to 10 |
| 13 | Royalty recipient is not present | Royalty recipient should be present |
| 14 | Royalty value is less or equal to 0 | Royalty value should be greater than 0 |
| 15 | Sum of Royalties > 100% | Sum of Royalties should be < 100% |
| 16 | Not a valid address | Address should be valid |
| 17 | Not a valid fee address | Fee address should be valid |
| 18 | Bid end time exceeded | Timestamp greater than bid end time |
| 19 | Bid price is less than base price | Bid price should be minimum 5% more than the base price |
| 20 | Bid withdrawn for order Id | Bid should not be withdrawn to execute order for particular order Id |
| 21 | Address is not a bidder address | Bidder Address is mismatched |
| 22 | Price for each quantity is less than base price of single quantity | Price for each quantity should be greater or equal to the base price of single quantity |



We are in the phase of auditing. Please consider it as beta version.
We are in the phase of auditing. Please consider it as beta version.
24 changes: 12 additions & 12 deletions contracts/Auction/Bid.sol
Original file line number Diff line number Diff line change
Expand Up @@ -13,13 +13,13 @@ contract NFTBid is NFTFactoryContract {
using Counters for Counters.Counter;

function Bid(uint256 _saleId) external payable {
require(_tokenMeta[_saleId].currentOwner != _msgSender());
require(_tokenMeta[_saleId].status == true);
require(_tokenMeta[_saleId].bidSale == true);
require(block.timestamp <= _tokenMeta[_saleId].bidEndTime);
require(_tokenMeta[_saleId].currentOwner != _msgSender(),"3");
require(_tokenMeta[_saleId].status == true,"2");
require(_tokenMeta[_saleId].bidSale == true,"4");
require(block.timestamp <= _tokenMeta[_saleId].bidEndTime,"18");
require(
_tokenMeta[_saleId].price + ((5 * _tokenMeta[_saleId].price) / 100) <=
msg.value
msg.value,"19"
);
// require(_timeOfAuction[_saleId] >= block.timestamp,"Auction Over");

Expand All @@ -43,7 +43,7 @@ contract NFTBid is NFTFactoryContract {
uint256 _price,
uint256 _bidTime
) external onlyOwnerOfToken(_collectionAddress, _tokenId) nonReentrant {
require(_collectionAddress != address(0));
require(_collectionAddress != address(0),"9");
_tokenIdTracker.increment();

//needs approval on frontend
Expand Down Expand Up @@ -76,9 +76,9 @@ contract NFTBid is NFTFactoryContract {
nonReentrant
{
LibBid.BidOrder memory bids = Bids[_saleId][_bidOrderID];
require(msg.sender == _tokenMeta[_saleId].currentOwner);
require(bids.withdrawn == false);
require(_tokenMeta[_saleId].status == true);
require(msg.sender == _tokenMeta[_saleId].currentOwner,"1");
require(bids.withdrawn == false,"20");
require(_tokenMeta[_saleId].status == true,"2");

LibShare.Share[] memory royalties = LibRoyalty.retrieveRoyalty(
_tokenMeta[_saleId].collectionAddress,
Expand Down Expand Up @@ -116,11 +116,11 @@ contract NFTBid is NFTFactoryContract {
external
nonReentrant
{
require(msg.sender != _tokenMeta[_saleId].currentOwner);
require(msg.sender != _tokenMeta[_saleId].currentOwner,"3");
// BidOrder[] memory bids = Bids[_tokenId];
LibBid.BidOrder memory bids = Bids[_saleId][_bidId];
require(bids.buyerAddress == msg.sender);
require(bids.withdrawn == false);
require(bids.buyerAddress == msg.sender,"21");
require(bids.withdrawn == false,"20");
(bool success, ) = payable(msg.sender).call{
value: bids.price
}("");
Expand Down
25 changes: 13 additions & 12 deletions contracts/Auction/Bid1155.sol
Original file line number Diff line number Diff line change
Expand Up @@ -11,12 +11,12 @@ contract NFTBid1155 is NFTFactoryContract1155 {
using Counters for Counters.Counter;

function Bid(uint256 _saleId, uint256 _amount) external payable {
require(_tokenMeta[_saleId].currentOwner != msg.sender);
require(_tokenMeta[_saleId].status == true);
require(_tokenMeta[_saleId].bidSale == true);
require(_tokenMeta[_saleId].currentOwner != msg.sender,"3");
require(_tokenMeta[_saleId].status == true,"2");
require(_tokenMeta[_saleId].bidSale == true,"4");
require(msg.value % _amount == 0);
require(msg.value / _amount >= _tokenMeta[_saleId].price);
require(_tokenMeta[_saleId].numberOfTokens >= _amount);
require(msg.value / _amount >= _tokenMeta[_saleId].price,"22");
require(_tokenMeta[_saleId].numberOfTokens >= _amount,"7");

LibBid1155.BidOrder memory bid = LibBid1155.BidOrder(
_saleId,
Expand All @@ -39,7 +39,7 @@ contract NFTBid1155 is NFTFactoryContract1155 {
require(_price > 0);
require(_amount > 0);
uint256 bal = ERC1155(_collectionAddress).balanceOf(msg.sender, _tokenId);
require(bal >= _amount);
require(bal >= _amount,"7");

_tokenIdTracker.increment();

Expand Down Expand Up @@ -68,10 +68,10 @@ contract NFTBid1155 is NFTFactoryContract1155 {
nonReentrant
{
LibBid1155.BidOrder memory bids = Bids[_saleId][_bidOrderID];
require(msg.sender == _tokenMeta[_saleId].currentOwner);
require(bids.withdrawn == false);
require(_tokenMeta[_saleId].status == true);
require(_tokenMeta[_saleId].numberOfTokens >= bids.numberOfTokens);
require(msg.sender == _tokenMeta[_saleId].currentOwner,"1");
require(bids.withdrawn == false,"20");
require(_tokenMeta[_saleId].status == true,"2");
require(_tokenMeta[_saleId].numberOfTokens >= bids.numberOfTokens,"7");

LibShare.Share[] memory royalties = LibRoyalty.retrieveRoyalty(
_tokenMeta[_saleId].collectionAddress,
Expand Down Expand Up @@ -108,9 +108,10 @@ contract NFTBid1155 is NFTFactoryContract1155 {
function withdrawBidMoney(uint256 _saleId, uint256 _bidId) external nonReentrant{
LibBid1155.BidOrder memory bids = Bids[_saleId][_bidId];
require(
bids.buyerAddress == msg.sender
bids.buyerAddress == msg.sender,
"21"
);
require(bids.withdrawn == false);
require(bids.withdrawn == false,"20");
(bool success, ) = payable(msg.sender).call{
value: bids.price
}("");
Expand Down
14 changes: 7 additions & 7 deletions contracts/NFTFactoryContract.sol
Original file line number Diff line number Diff line change
Expand Up @@ -23,7 +23,7 @@ contract NFTFactoryContract is
event TokenMetaReturn(LibMeta.TokenMeta data, uint256 id);

modifier onlyOwnerOfToken(address _collectionAddress, uint256 _tokenId) {
require(msg.sender == ERC721(_collectionAddress).ownerOf(_tokenId));
require(msg.sender == ERC721(_collectionAddress).ownerOf(_tokenId),"1");
_;
}

Expand All @@ -38,10 +38,10 @@ contract NFTFactoryContract is
meta.tokenId
);

require(meta.status);
require(msg.sender != address(0) && msg.sender != meta.currentOwner);
require(!meta.bidSale);
require(msg.value >= meta.price);
require(meta.status,"2");
require(msg.sender != address(0) && msg.sender != meta.currentOwner,"3");
require(!meta.bidSale,"4");
require(msg.value >= meta.price,"5");

LibMeta.transfer(_tokenMeta[_saleId], msg.sender);

Expand Down Expand Up @@ -99,8 +99,8 @@ contract NFTFactoryContract is
}

function cancelSale(uint256 _saleId) external nonReentrant {
require(msg.sender == _tokenMeta[_saleId].currentOwner);
require(_tokenMeta[_saleId].status == true);
require(msg.sender == _tokenMeta[_saleId].currentOwner,"1");
require(_tokenMeta[_saleId].status == true,"2");

_tokenMeta[_saleId].status = false;
ERC721(_tokenMeta[_saleId].collectionAddress).safeTransferFrom(
Expand Down
18 changes: 9 additions & 9 deletions contracts/NFTFactoryContract1155.sol
Original file line number Diff line number Diff line change
Expand Up @@ -39,11 +39,11 @@ contract NFTFactoryContract1155 is
meta.tokenId
);

require(meta.status == true);
require(msg.sender != address(0) && msg.sender != meta.currentOwner);
require(meta.bidSale == false);
require(meta.numberOfTokens >= _amount);
require(msg.value >= (meta.price * _amount));
require(meta.status == true,"2");
require(msg.sender != address(0) && msg.sender != meta.currentOwner,"3");
require(meta.bidSale == false,"4");
require(meta.numberOfTokens >= _amount,"7");
require(msg.value >= (meta.price * _amount),"8");

LibMeta1155.transfer(_tokenMeta[_saleId], _amount);

Expand Down Expand Up @@ -73,9 +73,9 @@ contract NFTFactoryContract1155 is
external
nonReentrant
{
require(_collectionAddress != address(0));
require(_collectionAddress != address(0), "9");
uint256 bal = ERC1155(_collectionAddress).balanceOf(msg.sender, _tokenId);
require(bal >= _amount);
require(bal >= _amount,"7");

_tokenIdTracker.increment();

Expand All @@ -101,8 +101,8 @@ contract NFTFactoryContract1155 is

function cancelSale(uint256 _saleId) external nonReentrant{

require(msg.sender == _tokenMeta[_saleId].currentOwner);
require(_tokenMeta[_saleId].status == true);
require(msg.sender == _tokenMeta[_saleId].currentOwner,"1");
require(_tokenMeta[_saleId].status == true,"2");

_tokenMeta[_saleId].status = false;
ERC1155(_tokenMeta[_saleId].collectionAddress).safeTransferFrom(
Expand Down
10 changes: 5 additions & 5 deletions contracts/PNDC_ERC1155.sol
Original file line number Diff line number Diff line change
Expand Up @@ -46,7 +46,7 @@ contract PNDC_ERC1155 is ERC1155, Ownable, ERC1155Supply {
}

function burn(address _from, uint256 _id, uint256 _amount) public {
require(balanceOf(_from, _id) >= _amount);
require(balanceOf(_from, _id) >= _amount,"7");

_burn(_from, _id, _amount);
}
Expand All @@ -55,19 +55,19 @@ contract PNDC_ERC1155 is ERC1155, Ownable, ERC1155Supply {
uint256 _tokenId,
LibShare.Share[] memory royalties
) internal {
require(royalties.length <= 10);
require(royalties.length <= 10,"12");
delete royaltiesByTokenId[_tokenId];
uint256 sumRoyalties = 0;
for (uint256 i = 0; i < royalties.length; i++) {
require(
royalties[i].account != address(0x0),
"Royalty recipient should be present"
"13"
);
require(royalties[i].value != 0, "Royalty value should be > 0");
require(royalties[i].value != 0, "14");
royaltiesByTokenId[_tokenId].push(royalties[i]);
sumRoyalties += royalties[i].value;
}
require(sumRoyalties < 10000, "Sum of Royalties > 100%");
require(sumRoyalties < 10000, "15");

emit RoyaltiesSetForTokenId(_tokenId, royalties);
}
Expand Down
14 changes: 7 additions & 7 deletions contracts/PNDC_ERC721.sol
Original file line number Diff line number Diff line change
Expand Up @@ -41,18 +41,18 @@ contract PNDC_ERC721 is ERC721, ERC721Enumerable, ERC721URIStorage, Ownable {
string[] memory _uri,
LibShare.Share[][] memory royaltiesSet
) external {
require(_totalNft <= 15, "Minting more than 15 Nfts are not allowe");
require(_totalNft <= 15, "10");
require(
_totalNft == _uri.length,
"uri array length should be equal to _totalNFT"
"11"
);
for (uint256 i = 0; i < _totalNft; i++) {
this.safeMint(msg.sender, _uri[i], royaltiesSet[i]);
}
}

function burn(uint256 _tokenId) external {
require(msg.sender == ownerOf(_tokenId));
require(msg.sender == ownerOf(_tokenId),"1");

_burn(_tokenId);
}
Expand All @@ -61,19 +61,19 @@ contract PNDC_ERC721 is ERC721, ERC721Enumerable, ERC721URIStorage, Ownable {
uint256 _tokenId,
LibShare.Share[] memory royalties
) internal {
require(royalties.length <= 10);
require(royalties.length <= 10,"12");
delete royaltiesByTokenId[_tokenId];
uint256 sumRoyalties = 0;
for (uint256 i = 0; i < royalties.length; i++) {
require(
royalties[i].account != address(0x0),
"Royalty recipient should be present"
"13"
);
require(royalties[i].value != 0, "Royalty value should be > 0");
require(royalties[i].value != 0, "14");
royaltiesByTokenId[_tokenId].push(royalties[i]);
sumRoyalties += royalties[i].value;
}
require(sumRoyalties < 10000, "Sum of Royalties > 100%");
require(sumRoyalties < 10000, "15");

emit RoyaltiesSetForTokenId(_tokenId, royalties);
}
Expand Down
10 changes: 5 additions & 5 deletions contracts/TokenERC1155.sol
Original file line number Diff line number Diff line change
Expand Up @@ -41,7 +41,7 @@ contract TokenERC1155 is Ownable, ERC1155Supply {
}

function burn(address _from, uint256 _id, uint256 _amount) public {
require(balanceOf(_from, _id) >= _amount);
require(balanceOf(_from, _id) >= _amount,"7");

_burn(_from, _id, _amount);
}
Expand Down Expand Up @@ -83,18 +83,18 @@ contract TokenERC1155 is Ownable, ERC1155Supply {
LibShare.Share[] storage royaltiesArr,
LibShare.Share[] memory royalties
) internal {
require(royalties.length <= 10);
require(royalties.length <= 10,"12");
uint256 sumRoyalties = 0;
for (uint256 i = 0; i < royalties.length; i++) {
require(
royalties[i].account != address(0x0),
"Royalty recipient should be present"
"13"
);
require(royalties[i].value != 0, "Royalty value should be > 0");
require(royalties[i].value != 0, "14");
royaltiesArr.push(royalties[i]);
sumRoyalties += royalties[i].value;
}
require(sumRoyalties < 10000, "Sum of Royalties > 100%");
require(sumRoyalties < 10000, "15");
}

// The following functions are overrides required by Solidity.
Expand Down
14 changes: 7 additions & 7 deletions contracts/TokenERC721.sol
Original file line number Diff line number Diff line change
Expand Up @@ -46,18 +46,18 @@ contract TokenERC721 is ERC721Enumerable, ERC721URIStorage, Ownable {
string[] memory _uri,
RoyaltiesSet memory royaltiesSet
) external onlyOwner{
require(_totalNft <= 15, "Minting more than 15 Nfts are not allowe");
require(_totalNft <= 15, "10");
require(
_totalNft == _uri.length,
"uri array length should be equal to _totalNFT"
"11"
);
for (uint256 i = 0; i < _totalNft; i++) {
safeMint(msg.sender, _uri[i], royaltiesSet);
}
}

function burn(uint256 _tokenId) public {
require(msg.sender == ownerOf(_tokenId));
require(msg.sender == ownerOf(_tokenId),"1");

_burn(_tokenId);
}
Expand Down Expand Up @@ -96,18 +96,18 @@ contract TokenERC721 is ERC721Enumerable, ERC721URIStorage, Ownable {
LibShare.Share[] storage royaltiesArr,
LibShare.Share[] memory royalties
) internal {
require(royalties.length <= 10);
require(royalties.length <= 10,"12");
uint256 sumRoyalties = 0;
for (uint256 i = 0; i < royalties.length; i++) {
require(
royalties[i].account != address(0x0),
"Royalty recipient should be present"
"13"
);
require(royalties[i].value != 0, "Royalty value should be > 0");
require(royalties[i].value != 0, "14");
royaltiesArr.push(royalties[i]);
sumRoyalties += royalties[i].value;
}
require(sumRoyalties < 10000, "Sum of Royalties > 100%");
require(sumRoyalties < 10000, "15");
}

// The following functions are overrides required by Solidity.
Expand Down
4 changes: 2 additions & 2 deletions contracts/TokenFactory.sol
Original file line number Diff line number Diff line change
Expand Up @@ -13,8 +13,8 @@ contract TokenFactory is UUPSUpgradeable, NFTBid {
event ERC721Deployed(address indexed _from, address _tokenAddress);

function initialize(address _address, address _feeAddress) initializer public {
require(_address != address(0));
require(_feeAddress != address(0));
require(_address != address(0),"16");
require(_feeAddress != address(0),"17");
PNDCAddress = _address;
__UUPSUpgradeable_init();
feeAddress = _feeAddress;
Expand Down
Loading