和蔼地与我相处,因为我对坚固和Web.30空间不熟悉。
我的DApp的意图是能够延迟/安排您的NFT从您自己的帐户转移到其他人的帐户。
这个想法是,用户应该能够通过开放平台和他们的MetaMask钱包找到他的大部分NFT细节。
在Remix IDE中可以在下面找到我的简单的稳固代码:
// SPDX-License-Identifier: MIT
pragma solidity ^0.6.2;
import "https://github.com/OpenZeppelin/openzeppelin-contracts/blob/v3.4.0/contracts/token/ERC721/ERC721.sol";
contract CryptoGift is ERC721 {
address public owner;
uint256 private birtday = block.timestamp +30;
constructor() ERC721("Crypto Gift", "CGT") public {
owner = msg.sender;
}
function GiftAFriend (address from, address to, uint256 tokenId) public virtual {
require( block.timestamp >= birtday, "Its NOT your birthday yet!" );
safeTransferFrom(from, to, tokenId, "");
}
}我在Remix IDE中使用的设置是:
环境: Web3提供者
我能够成功地部署到Rinkeby,这意味着我还能够看到Remix中的所有接口,如下所示

在运行我的GiftAFriend函数时,我使用了来自https://testnets.opensea.io/assets/0x1a2795bbdbc6b6fc1d777b47b9c1516a642ca7f7/1的NFT契约/地址中的详细信息,对于to,我使用了一个虚构的MetaMask地址。
对于tokenId,我在开放式地址https://testnets.opensea.io/assets/0x1a2795bbdbc6b6fc1d777b47b9c1516a642ca7f7/1的末尾使用了tokenId
当我为我的GiftAFriend函数单击transact时,在Remix中会遇到以下错误消息:

请告诉我在哪里&我做错了什么?
发布于 2022-02-07 18:51:07
据我所见,你的地址没有任何活动。
我不确定这是否只是您代码的摘录,但是ERC721需要所有这些导入(或者直接将这些导入添加到您的合同中):
import "../../utils/Context.sol";
import "./IERC721.sol";
import "./IERC721Metadata.sol";
import "./IERC721Enumerable.sol";
import "./IERC721Receiver.sol";
import "../../introspection/ERC165.sol";
import "../../math/SafeMath.sol";
import "../../utils/Address.sol";
import "../../utils/EnumerableSet.sol";
import "../../utils/EnumerableMap.sol";
import "../../utils/Strings.sol";此外,在GiftAFriend上列出的openZepplin函数将同一契约上的现有索引从开始更改到另一个,因此不能对任何外部集合进行继承操作。
https://ethereum.stackexchange.com/questions/121060
复制相似问题