问题标签 [erc721]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
0 回答
72 浏览

metamask - 我的 nft 的元掩码发送按钮显示为灰色

我遇到了元掩码扩展 chrome 的问题

为什么我要将我的 nft 发送到另一个地址,发送按钮被禁用

在此处输入图像描述

0 投票
1 回答
35 浏览

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

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

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

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

4-最后我将添加完整代码的 github 链接。

注意:先生制作的完整原始代码。帕特里克阿尔法 C.



a- 通用配置(系统、版本、智能合约总体思路):

  • a1- 操作系统:opensuse 飞跃 15.3
  • a2-安全帽版本:2.8.3
  • a3-节点版本:v14.18.3
  • a4- npm 版本:8.3.0
  • a5- metamask钱包插件到 Firefox
  • a6-目标区块链:多边形(主网、测试网)
  • a7- 智能合约总体思路:使用 svg 创建erc-721 nft,其元数据完全存储在链上(智能合约 mint tokenurl 到多边形链)。


b-主要问题:

一切都很好,因为铸造文件(tokenurl)的大小小于 23.8kb(小于 23.8kb)。我的目标是两倍大小的 mint 文件(每个 tokenurl 等于 50kb)。因此,当尝试使用大小 (23.8 Kb < size < 50 Kb) 的 mint tokenurl 时,我会收到下一条错误消息。



c-我到现在为止的尝试和结果:

  • c1-尝试在“hardhat.config”中设置气体限制,但没有产生任何效果(它是在搜索期间,所以我不记得表单或值)。

  • c2- 在 "01_Deploy_SVGNFT" 中将 gaslimit 添加到 tx,因此代码行如下所示。

    • c2-0 编辑前的原始代码行: tx = await svgNFT.create(svg)
    • 编辑后的 ​​c2-1 代码行: tx = await svgNFT.create(svg, {gasLimit: 3000000 })
    • c2-2结果:给我一些关于错误语法的错误消息(论坛,打字)
  • c3- 在 "01_Deploy_SVGNFT" 中将 gaslimit 添加到 tx,所以代码行如下所示。

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

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

    • c3-2结果:

      • 3-2-0 合约部署、svg 上传、合约验证、metamask 钱包中的 matic 价值下降(gas 价值转移成功)一切看起来都很好。
      • 3-2-1 去opensea时没有图像出现。
      • 3-2-2 当转到 polyscan 或 etherscan 并使用令牌 id 查看令牌 uri 它什么也不返回(没有出现元数据字符串,什么也不出现)。


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

https://github.com/naive2022/onchainfork

希望能帮助我找到在使用多边形测试或多边形主网络时如何创建预先生成的 tokenurl(每个文件大小为 50kb)而不会遇到这个问题。

0 投票
1 回答
209 浏览

java - How to get a contract by a transaction uising web3j?

I need to check if a transaction is a ERC721/ERC1155 transaction and fetch information like receiving address, token address, value, etc. If I understand correctly, I have to load a contract for the transaction and check if it inherits ERC165 in order to confirm that it is a ERC721/ERC1155 transaction.

Problem: I don't understand how I can get a contract having a transaction object. I also haven't found a way to get token address.

I have an Ethereum node on Infura, I read blocks from there and iterate over transactions. I get a transaction and its receipt. My code looks like this:

Right now I am working in the direction of reading transaction logs, checking their topics and verifying if they include Transfer events. But transfer events are also emitted by ERC20 transactions, so I am a bit confused here.

0 投票
0 回答
18 浏览

solidity - 如何在网络中获取 merkleTree 证明

合同

setRoot.js

到目前为止,它按预期工作。但我不知道如何在网上proof打电话mintWihteList

网络

我试图做MerkleTree的是采用相同的方式并获得proof. 但我不认为这种方式很好。

是否有proof从 acontract或其他地方获取 a 的标准方法?

0 投票
1 回答
42 浏览

ethereum - 我在智能合约文件中的“购买”功能不断出错

这是我的 NFT 市场的可靠文件。

在上面的函数中,当我编译 .sol 文件时,buy 函数不会发出错误,但是在我部署这个合约并为“buy”函数发送交易之后,它会一直出现这个错误。 在此处输入图像描述

我只是想知道我应该在哪里修复它,如果对其他功能有更好的想法,请随时让我知道...非常感谢

0 投票
1 回答
85 浏览

node.js - 在 ERC-721 的以太坊开发中的脚本中的安全帽问题 UNPREDICTABLE_GAS_LIMIT

我有一个让我非常绝望的问题,我认为这可能与“等待确认?”有关。问题,但我不知道如何激活它。

问题是,由于对我的 ERC-721 合同功能的请求,我在部署脚本中收到以下消息:

原因:'无法估算气体;交易可能会失败或可能需要手动限制气体”,代码:“UNPREDICTABLE_GAS_LIMIT”,

我认为这可能与命令彼此快速发生有关,因为当我手动在 hardhad 控制台(npx hardhat console --network rinkeby)中执行以下步骤时,一切都可以正常工作而不会出现此错误(即使有<>.confirmations 总是0,什么我不明白)

我在运行的 deploy.js 中有以下命令:

npx 安全帽运行 --network rinkeby 脚本/deploy.js

通过调用 await bba.getLock(0) 我得到 错误:无法估计气体;交易可能会失败或可能需要手动限制气体 (error={"name":"ProviderError","code":-32000,"_isProviderError":true}, method="call", transaction= ...

我基于 openzeppelin 合约向导 https://docs.openzeppelin.com/contracts/4.x/wizard构建了一个 1:1 ERC-721 。

在这份合同中,我添加了一个简单的功能:

我将 INFURA 与以下 hardhat.config.js 一起使用:

任何人都可以指导我,解决这个问题的原因吗?

提前致谢。

0 投票
0 回答
31 浏览

solidity - 将字节转换为字符串以进行连接

我的智能合约中有这个功能:

我像这样使用它:

不幸的是,它在渲染的 SVG 中显示如下:

我如何将它更干净地包含在结果字符串中?

0 投票
1 回答
35 浏览

polygon - 无法进行交易 -ERC 721

我无法使用带有多边形的 Metamask 完成 ERC 721 的交易。当我尝试进行交易时显示此错误消息。我正在使用此合同。https://github.com/HashLips/solidity_smart_contracts/blob/main/contracts/ NFT/NFT.sol 气体估计错误并显示以下消息(见下文)。事务执行可能会失败。是否要强制发送?内部 JSON-RPC 错误。{“代码”:-32000,“消息”:“执行恢复”}

0 投票
1 回答
50 浏览

uri - 设置令牌 URI 函数

我知道 setTokenURI 函数不再使用了。如何更改要创建的 NFT 令牌的令牌 URI?现在我在智能合约中的 createCollectible 函数看起来像这样:

0 投票
0 回答
22 浏览

remix - 我的 ERC721 合约 NFT 未出现在 OpenSea 的已创建项目选项卡上

正如您在 OpenSea 个人资料页面上所知道的那样,有不同的选项卡。我的问题是关于收集和创建的选项卡。我目前正在从事 ERC-721 NFT 项目。问题是我铸造的 NFT 没有显示在 OpenSea 的已创建项目选项卡中。让我再解释一下。我创建了运行顺畅的 ERC-721 NFT 合约。我在 Rinkeby 测试网络上编译、部署和验证了它。我尝试了 Remix IDE 和安全帽。一切正常。每个功能,每个 dApp 元素都按照我想要的方式工作。问题是我看起来不像 OpenSea 的 NFT 的创建者。我检查了数百个部署为 ERC721 的 OpenSea 流行 NFT 项目。一些 NFT 的创建者的个人资料页面将他们显示为 NFT 的创建者。然而,其他一些人看起来不像是创造者。我的意思是人们的“创建”标签 s OpenSea 配置文件。我希望我能解释一下自己。这里有什么问题。总而言之,当我铸造 NFT 时,它出现在收集的选项卡上,而不是创建的选项卡上。此外,帐户 0x00000000000000000000000000000000000000000 正在 OpenSea 中寻找这些 NFT 的创建者。