代币中的decimal精度代表了什么

精度的意义在于允许发送小数的代币。举例,一个CAT代币合约的精度为6。那么 你拥有1个CAT就意味着合约中的balance = 1 * 10^6 , 转账 0.1CAT出去的话,就需要输入 0.1*10^6 = 10^5。 也就时在涉及代币时,查询到的余额、转账的代币数量 都和 代币合约的精度挂钩

ERC20 合约默认的精度为18,其余精度需要自己override重写

示例合约:

合约实现简单的mint 功能,但是精度=18,也就是在mint时,数量应该为:amount * 10^18

复制代码
// SPDX-License-Identifier: GPL-3.0
pragma solidity ^0.8.19;

import "@openzeppelin/contracts/token/ERC20/ERC20.sol";

contract QWER is ERC20 {
    address public owner;

    constructor(string memory name, string memory symbol) payable ERC20(name,symbol) {
        owner = msg.sender;
    }

    function mint(
        address receiver,
        uint256 amount
    ) public {
        _mint(receiver, amount * (10 **18));
    }
}

mint 1 个代币到特定账户:https://sepolia.etherscan.io/tx/0xa7c847f5295e40cd47443a9de6d7b3e0fe62125fff11fd3a8ae0dba898dc0b51

合约中显示的余额:

钱包中显示的余额,钱包会自动进行精度的除法:

有偿写各种逻辑合约,solidity move 语言都可以

相关推荐
量化炼金 (CodeAlchemy)15 小时前
【交易策略】低通滤波器策略:在小时图上捕捉中期动量
大数据·人工智能·机器学习·区块链
MQLYES18 小时前
24-ETH-反思
区块链
好家伙VCC18 小时前
# 发散创新:基于Solidity的DeFi协议设计与实现——从原理到实战代码解析在区块链世界中,**DeFi(去中心化金
java·python·去中心化·区块链
暴躁小师兄数据学院18 小时前
【WEB3.0零基础转行笔记】Go编程篇-第6讲:函数与包
笔记·golang·web3·区块链·智能合约
devmoon2 天前
区块链开发必看!Polkadot 跨链通信机制原理与实战详解
区块链
MQLYES2 天前
21-ETH-权益证明
区块链
TechubNews2 天前
从「全链互操作性协议」到「去中心化多核世界计算机」,LayerZero 想做什么?
大数据·网络·人工智能·区块链
暴躁小师兄数据学院2 天前
【WEB3.0零基础转行笔记】Solidity编程篇-第2讲:StorageFactory
开发语言·笔记·后端·golang·web3·区块链
KsYehh2 天前
黄仁勋聊嗨了、马斯克给地球定下30个月的 Deadline、比特币超发?Openclaw 横空出世...
人工智能·区块链
MicroTech20252 天前
微算法科技(NASDAQ: MLGO)基于量子技术的区块链架构:量子原生验证模型与分布式账本革新
科技·架构·区块链