I want to say that this is my experience and personal opinion, sorry if I sound arrogant. I'm just trying to help.
—----------------------------
Testnet is not working well. Our NFT marketplace smart contract only works on mainnet or other networks.
Due XDCpay being outdated, XDCpay also doesn't work with the following smart contract.
XDCpay is missing some functions that Metamask's last version has.
You have here the smart contract https://xdc.blocksscan.io/address/xdc00000000006c3852cbEf3e08E8dF289169EdE581 we make it free to use for everyone on the xdc blockchain. With this, you can also bridge NFTs from other networks to XDC.
Smart contract: https://github.com/PrimeNumbersNFT/seaport
—--------------------
The main network not working with "String reverts", for example when you have a revert on the smart contract. The network doesn't indicate what revert happened. (This is mandatory to fix it or most of the applications will not work if a revert happens)
`function stake(uint256 tokenId, uint256 amountToStake) public nonReentrant {
require(_exists(tokenId), "Invalid tokenId");
require(amountToStake <= _levels[_nfts[tokenId].level].dailymax, "Daily limit reached");
require(_nfts[tokenId].laststake == 0 || _nfts[tokenId].laststake + 1 days < block.timestamp, "Daily limit reached");
require(prnt.allowance(msg.sender, address(this)) >= amountToStake,"Insuficient Allowance");
require(prnt.transferFrom(msg.sender,address(this),amountToStake),"transfer Failed");
if (_nfts[tokenId].prnt==0){
stakeValues.multiplierTotal += _nfts[tokenId].nftmultiplier;
}else{
stakeValues.totalweight -= _nfts[tokenId].weight;
}
stakeValues.totalPRNT += amountToStake;
_nfts[tokenId].laststake = block.timestamp;
_nfts[tokenId].stakeinlevel+=amountToStake;
_nfts[tokenId].prnt+=amountToStake;
if ( _nfts[tokenId].stakeinlevel >= _levels[_nfts[tokenId].level].tolevelup && _nfts[tokenId].level < 20){
_nfts[tokenId].level += 1;
_nfts[tokenId].stakeinlevel = 0;
stakeValues.multiplierTotal += _levels[_nfts[tokenId].level].levelmultiplier;
if (_nfts[tokenId].level > 1){
stakeValues.multiplierTotal -= _levels[_nfts[tokenId].level-1].levelmultiplier;
}
}
weightCal(tokenId);
}
`
The requires don't work, the network only tells you that it's an error.
—-----------------------------------
XDCpay is super old, and web3modal does not support it. We needed to build a web3modal custom for adding xdcpay. XDCpay doesn't connect with snapshot.org. I suggest to fork the last version of metamask and adding the custom logos and information.
—-------------------------
https://rpc.xinfin.network is not working with NFT DApps. You need to use https://erpc.xinfin.network
—-------------------------------
xdc.observatory is not working, lots of missing info, no nfts... Lots of missing txs
—--------------------------------------
XinFin's website is outdated. https://howto.xinfin.org/xinfinpay/features/ This is super old also
https://howto.xinfin.org/get-started/token/ outdated info...
We have the message of begin innovative and super powerful, we shouldn't have these errors, outdated info, problems...
https://medium.com/xinfin no posts since months. Medium is one of the most used media platforms, in my opinion, you should publish all the updates here.
If you want a call with me or something just contact me on telegram @Arturo_Cantera or email: admin@primenumbers.xyz
Discussion (6)
This does not sound arrogant at all.
Metamask has 1300 issues open. Just that they are properly reported and resolved on github.
github.com/MetaMask/metamask-exten...
Request you to use github and xdc.dev both to report any issues.
Another example for the "require()" error.
I was developing/testing something:
Im creating a jackpot game smartcontract on the XDC network.
xdc.blocksscan.io/address/xdc4de3f... - > Smartcontract on XDC
polygonscan.com/address/0x22568f35... - > Smartcontract on Polygon
As you can see, you cant write the smartcontract with Blockscan(You cant write also with remix). Im doing the play buttons(functions) with requires.
function buttonClick() public payable {
require(msg.value == 1 ether, "1 XDC required to bet!");
if (activeGame)
require(msg.sender != getLast(), "You are already winning!");
currentTimeWin = now + 5 minutes;
addressArr.push(msg.sender);
activeGame = true;
}
We know XDC network have a problem and require().... is not working in the network.
On polygon works perfect, on xdc network is not working.
You can get the smartcontract code from the explorers, its verified!
Hey Arturo, thank you for your feedback. With regard to XDCPay we are working on web3 Modal support right now and will have a new release shortly.
github.com/MetaMask/metamask-exten...
This would be a good example of how bugs should be reported properly on Github
github.com/XinFinOrg/XDPoSChain/is...
Thanks for sharing feedback, Arturo. This is exactly what xdc.dev is for.