问题标签 [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.
java - 如何使用 Web3j 检查交易是否为 NFT?
我正在使用 Web3j 库来处理区块链。我想解决在特定交易期间转移了哪些代币。我已经尝试过的:
- 调用
Function
该名称supportsInterface
以检查其是否支持 NFT 标准(ERC721、ERC1155 等)。没有成功。 - 试图解码
Transaction Logs
,找到了如何检索Token ID
,但我对这些信息无能为力。
对此有什么建议吗?
ethereum - 为什么 NFT (ERC721) 令牌中的事件将地址 (0) 作为第一个参数?
我正在学习 nft 智能合约的工作原理。我不明白为什么发出事件会收到address(0)
。
这是来自Openzeppeling ERC721的 _mint 函数
当我们发出 Transfer 事件时,为什么要使用address(0)
. address(0)
代表空地址。这是转移事件:
blockchain - 如何在 ERC721 合约中调用 ERC20 合约函数
我想要完成的是从 ERC721 合约调用 ERC20 合约中定义的函数,如下所示,特别transferFrom
是 ERC20 合约中的函数在 ERC721 中的同一函数内。
这不编译。它最终所做的是,每次发生 erc721 NFT 转移时,版税都会以 erc20 代币的形式转移给创建者。
ethereum - Erc721 智能合约部署等待 Remix
我已经在 Metamask 上提交了我的智能合约部署并且交易成功。这是 Polygon 网络上的 ERC721 智能合约。我也可以在 Polygon Scan 上看到交易,但有两个问题。
我在扫描仪上看不到智能合约或令牌名称,它只是从这个 id 显示到那个 id。名称未显示。
最重要的是,在 Remix 上,它仍然显示创建 xxxxx 待定....
自 Metamask 上的合约部署成功以来已经超过 4 个多小时。
请帮帮我,这是我的第一个智能合约。
json - ERC721 元数据 JSON 模式中的类型(如“对象”)是什么
根据标准,有一个type
如下所示的“对象”。这是做type
什么用的,我们还可以使用哪些其他类型?我可以像“艺术”一样使用吗?
solidity - 在 NFT Mint 函数中燃烧已部署的 ERC 代币 - 编译,但交易失败
我对 Solidity 很陌生,最近一直在努力学习。作为参考,在完成了基本的加密僵尸教程系列之后,我一直使用此视频 ( https://www.youtube.com/watch?v=tBMk1iZa85Y ) 中的代码作为入门。
我一直在尝试调整此视频中提供的 Solidity 合约代码(我运行得很好!),以要求在铸造 NFT 作为自己的练习之前烧掉指定数量的 ERC-20 代币。我认为我应该是一个有效的实现,它在 Remix 中编译,然后部署到 Rinkeby。部署到 Rinkeby 后,我在 Remix 中调用了 allowAccess 函数,并且成功了。但是,当我使用两个参数调用 mint 函数时,我得到:“gas 估计错误,出现以下消息(见下文)。交易执行可能会失败。你想强制发送吗?执行已恢复。”
如果我仍然发送交易,元掩码会产生“交易 xx 失败!交易遇到错误。”。
我很肯定它与“require(paymentToken.transfer(burnwallet,amounttopay),”transfer Failed“);”有关,尽管我不确定出了什么问题。下面是我的整个合约代码。我目前只是与 Rinkeby 上的 Chainlink 合约进行交互,因为它们有一个方便的代币水龙头。
如果有人至少可以指出我在添加的代码中做错了什么,请这样做!蒂亚!
python - 在 eth-brownie 中使用外部包?
我正在尝试在 VSCode 上的 Brownie 中打开 ERC721 智能合约,并遍历令牌 ID 并设置每次迭代的 URI。我使用 brownie run scripts/parcel_asset/testpyodbc.py 执行脚本。我正在尝试使用名为 pyodbc 的 ODBC 驱动程序来查询 Access 数据库并创建一个游标进行迭代。仅作为 python 脚本运行时它工作正常,但 Brownie 给出错误“ModuleNotFoundError: No module named 'pyodbc'” 有没有办法使用 Brownie 访问他的 odbc?
下面是我得到的错误
blockchain - 多边形区块链上 MetaMask 的内部 JSON-RPC 错误。`ERC721:转接呼叫者既不是所有者也不是批准的。`
我正在创建一个 NFT 市场。当我在 Mumbai-testnet 上部署我的合约时。createToken 函数可能会起作用,因为它会显示 Gas Fee 的 Metamask,但在那之后,会发生与ONWNERSHIP 相关的错误。 (错误图像和文本如下所示。)
我遵循的步骤
npm hardhat node
npm run dev
- 选择创建页面。
- 输入所有详细信息。
- 单击调用createToken函数的创建资产。
然后发生错误。
这是我的 NFT 合约
这是我的 NFTMarket 合约
我尝试更改 MetaMask 和配置文件中的 RPC,并使用不同的帐户重新部署了很多次,但仍然没有任何变化。
错误
如果需要任何其他信息,请发表评论
solidity - 保证一个合约只能收到一种 ERC721 nft
为 ERC721 NFT 的 privateSale 创建一个合约,首先我为实现 onErc721Received(...) 的 privateSale 合约地址创建一些库存我要保证的是这个 privateSaleContract 只接收来自一个给定 NFT 类型的 ERC721 代币(通过其合约地址)
我怎么能保证呢?
visual-studio-code - Brownie compile ValueError: Invalid NPM block with OpenZeppelin
*****我的 .sol 文件的顶部行 // SPDX-License-Identifier: MIT pragma solidity ^0.8.0;
导入“@openzeppelin/contracts/token/ERC721/ERC721.sol”;
合约 ParcelAsset 为 ERC721 {
******命令行VScode brownie编译contracts\ParcelAsset.sol
我得到这个错误。ValueError:'>=0.6.0 <0.8.0 import "@openzeppelin/contracts/token/ERC721/ERC721.sol"'中的无效 NPM 块:'import'
*********** 我的 brownie-config.yaml 依赖项的片段:
- smartcontractkit/chainlink-brownie-contracts@1.1.1
- OpenZeppelin/openzeppelin-contracts@3.4.0 编译器:solc:重新映射:
- '@chainlink=smartcontractkit/chainlink-brownie-contracts@1.1.1'
- '@openzeppelin=OpenZeppelin/openzeppelin-contracts@3.4.0'
我已经尝试 npm install @openzeppelin/contracts 并将solidity更新到0.8.0
有人知道我做错了什么吗?