Mint预制的tokenurl(文件大小在42:50 Kb范围内),使用svg将完整的元数据存储在链上,Erc-721,polygon(测试和主网络)



1-我将从编写一般配置(系统、版本、智能合约的总体思想(开始。

2-然后我将显示主要问题(小代码行,我认为它需要编辑(。

3-第三部分我将展示我到现在为止所做的尝试和的结果

4-在结尾,我将为我的完整代码添加github链接。

注:PatrickAlphaC先生制作的完整原始代码



a-一般配置(系统、版本、智能合约总体思路(:

  • a1-操作系统:opensuse leap 15.3
  • a2-安全帽版本:2.8.3
  • a3-节点版本:v14.18.3
  • a4-npm版本:8.3.0
  • a5-元任务钱包向firefox添加一个
  • a6-目标区块链:多边形(主网、测试网(
  • a7-智能合约的总体思路:使用svg创建erc-721-nft,其中元数据完全存储在链上(智能合约mint-tokenurl到多边形链(


b-主要问题:

当minted文件(tokenurl(的大小小于23.8kb(小到23.8kb(时,一切都很好。其中我的目标是两倍于这个大小的mint文件(每个tokenurl等于50kb(。因此,当尝试大小为(23.8Kb<大小<50Kb(的mint tokenurl时,我收到下一个错误消息。

An unexpected error occurred:
Error: ERROR processing /home/naive/demos/secondtry/deploy/01_Deploy_SVGNFT.js:
Error: cannot estimate gas; transaction may fail or may require manual gas limit (error={"name":"ProviderError","code":-
32000,"_isProviderError":true}, method="estimateGas", transaction={"from":"metamask wallet address","to":"contract address",


c-到目前为止我尝试了什么,结果是:

  • c1-尝试在";hardhat.config";但没有任何效果(这是在搜索过程中,所以我不会重新输入表单或值(。

  • c2-在";01_部署_;将gaslimit添加到tx,这样代码行看起来像下一行。

    • c2-0编辑前的原始代码行:tx = await svgNFT.create(svg)
    • 编辑后的c2-1代码行:tx = await svgNFT.create(svg, {gasLimit: 3000000 })
    • c2-2结果:给我一些关于错误合成的错误消息(论坛,键入(
  • c3-in-";01_部署_;将gaslimit添加到tx,这样代码行看起来像下一行。

    • c3-0编辑前的原始代码行:tx = await svgNFT.create(svg)

    • 编辑后的c3-1代码行:tx = await svgNFT.create({svg}, {gasLimit: 3000000 })

    • c3-2结果:

      • 3-2-0合同部署、svg上传、合同验证、元任务钱包中的matic值降低(gas值转移成功(所有这些看起来都很好
      • 3-2-1当去公海时,没有图像出现
      • 3-2-2当转到polygonscan或etherscan并使用令牌id查看令牌uri时,它什么都不返回(没有出现元数据字符串,什么都不出现(


d-完整代码的下一个github链接(contracts、deploy、hardhat.config.js、helper-hardhat-config.js和包含(预生产的tokenurl(的img文件夹

https://github.com/naive2022/onchainfork

希望帮助我找到如何在使用多边形测试或多边形主网络时,在不面临此问题的情况下创建预生成的tokenurl(每个文件大小为50kb(

最终结果rinkeby网络不能接受(mint token url(大小超过23kb近似

最新更新