/**
*Submitted for verification at testnet.bscscan.com on 2024-04-12
*/
// SPDX-License-Identifier: GPL-3.0
pragma solidity >=0.7.0 <0.9.0;
//event Approval与Transfer 将交易等日志信息写入区块链,非常重要
// V1
interface IERC20V1 {
event Approval(address indexed owner, address indexed spender, uint256 amount);
event Transfer(address indexed from, address indexed to, uint256 amount);
function name() external pure returns (string memory);
function symbol() external pure returns (string memory);
function decimals() external pure returns (uint8);
function totalSupply() external view returns (uint256);
function balanceOf(address owner) external view returns (uint256);
function approve(address spender, uint amount) external returns (bool);
function allowance(address owner, address spender) external view returns (uint256);
function transfer(address to, uint amount) external returns (bool);
function transferFrom(address from, address to, uint amount) external returns (bool);
}
contract ERC20V1 is IERC20V1 {
string public constant name = "love money";
string public constant symbol = "JMC" ;
uint8 public constant decimals = 9 ;
uint256 public totalSupply ;
address public owner ;
mapping (address => uint256) public balanceOf ;
mapping (address => mapping (address => uint256)) public allowance ;
constructor () {
owner = msg.sender;
// mint(msg.sender , 10000) ;
}
modifier IsOwner () {
require (owner == msg.sender, "only owner");
_;
}
function mint (address _to ,uint256 _amount) external IsOwner{
require(_to != address(0) ,'no zero');
balanceOf [_to] = _amount ;
totalSupply = totalSupply + _amount ;
}
function approve(address spender, uint amount) external returns (bool){
require(spender != address(0) ,'no zero');
_approve(msg.sender , spender , amount);
return true;
}
function _approve (address _owner , address spender , uint amount) private {
allowance [_owner] [spender] = amount;
emit Approval(_owner, spender, amount);
}
function transfer(address to, uint256 amount) external returns (bool){
_transfer(msg.sender , to , amount);
return true;
}
function transferFrom(address from, address to, uint256 amount) external returns (bool){
require(amount < allowance[from][msg.sender] , 'no approve amount');
require (to!= address (0),'no address');
allowance[from][msg.sender] = allowance[from][msg.sender] - amount ;
_transfer(msg.sender , to , amount);
return true;
}
function _transfer(address from, address to, uint256 amount) private {
require (balanceOf[from] > amount ,'no amount');
require (to!= address (0),'no address');
balanceOf[from] = balanceOf[from] - amount;
balanceOf[to] = balanceOf[to] + amount;
}
}
solidity部署上合约,可以mint,也继承接口了,在区块链也不显示代币名字
- 写回答
- 好问题 0 提建议
- 追加酬金
- 关注问题
- 邀请回答
-
19条回答 默认 最新
关注 引自免费微信小程序:皆我百晓生
在您提供的 Solidity 合约代码中,您已经正确地实现了 ERC20 标准接口
IERC20V1
并继承至您的ERC20V1
合约中。同时,您为代币指定了名称("love money")和符号("JMC")。从技术层面来看,该合约具备了 mint、approve、transfer 和 transferFrom 等关键功能,并且事件(Approval 和 Transfer)也已正确声明。您提到的问题是:在区块链上部署此合约后,代币名字没有显示。针对这一问题,有以下可能的原因及相应的解决方案:
1. 部署后未调用
mint
函数在您的构造函数中,虽然对
owner
进行了初始化,但并未进行初始代币铸造(即 mint 操作)。因此,如果您仅部署了合约而未后续调用mint
函数,链上将不会有任何代币供应,导致代币信息可能不被某些区块链浏览器识别。解决办法是在部署后通过mint
函数为指定地址(通常是合约部署者)铸造一定数量的代币。2. 区块链浏览器数据更新延迟
区块链浏览器通常需要一段时间来索引和更新智能合约的相关信息,包括代币名称、符号等。特别是在网络拥堵或区块确认速度较慢时,可能需要等待更长时间。请确保给予充分的时间让区块链浏览器完成数据同步。您可以尝试刷新浏览器页面,或者稍后再查看。
3. 使用的区块链浏览器不支持显示代币信息
不同的区块链浏览器可能存在差异,部分浏览器可能不会自动解析并展示 ERC20 代币的名称和符号。建议您尝试使用主流的、对代币信息支持良好的浏览器,如 BscScan、Etherscan 等。确保您在正确的浏览器中查询合约地址,并查看代币信息是否正确显示。
4. 链接错误或合约地址输入错误
请确保您在区块链浏览器中输入的合约地址准确无误,且链接指向的是您实际部署合约所在的区块链网络(如 Binance Smart Chain 测试网或主网)。
5. 代币信息显示位置不明显
一些区块链浏览器可能将代币名称和符号显示在不太显眼的位置。仔细检查浏览器中的“Contract”、“Token Info”、“Details”等相关页面,确保您已查看所有可能包含代币信息的部分。
综上所述,为了解决您的问题,您可以采取以下步骤:
- 确认 mint 操作:检查是否已为某个地址成功执行过
mint
函数,确保链上有代币供应。 - 等待数据同步:给区块链浏览器一些时间来更新和同步您的合约信息。
- 更换区块链浏览器:尝试使用 BscScan 或其他主流浏览器查看代币信息。
- 核实链接与地址:确保您访问的浏览器链接和输入的合约地址均正确无误。
- 详细查找代币信息:在浏览器的不同页面和板块中仔细查找代币名称和符号。
若以上步骤均已完成,且代币信息仍未在区块链浏览器中正确显示,请提供具体的合约地址,以便进一步排查问题。
本回答被题主选为最佳回答 , 对您是否有帮助呢?解决 无用评论 打赏 举报 编辑记录- 确认 mint 操作:检查是否已为某个地址成功执行过
悬赏问题
- ¥30 STM32 INMP441无法读取数据
- ¥100 求汇川机器人IRCB300控制器和示教器同版本升级固件文件升级包
- ¥15 用visualstudio2022创建vue项目后无法启动
- ¥15 x趋于0时tanx-sinx极限可以拆开算吗
- ¥500 把面具戴到人脸上,请大家贡献智慧
- ¥15 任意一个散点图自己下载其js脚本文件并做成独立的案例页面,不要作在线的,要离线状态。
- ¥15 各位 帮我看看如何写代码,打出来的图形要和如下图呈现的一样,急
- ¥30 c#打开word开启修订并实时显示批注
- ¥15 如何解决ldsc的这条报错/index error
- ¥15 VS2022+WDK驱动开发环境