代币中的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 语言都可以

相关推荐
青云交14 小时前
Java 大视界 -- 基于 Java 的大数据分布式存储在数字媒体内容存储与版权保护中的应用
java·性能优化·区块链·分布式存储·版权保护·数字媒体·ai 识别
2501_941810831 天前
Web3去中心化应用在跨链资产流转体系中的架构设计与落地实践解析
区块链
东南门吹雪1 天前
PostgreSQL与MySQL的锁与隔离级别
mysql·postgresql·区块链
5***79002 天前
Rust在区块链智能合约中的安全实践
rust·区块链·智能合约
MicroTech20252 天前
微算法科技(NASDAQ :MLGO)基于区块链的混合数据驱动认知算法:开启智能安全新范式
科技·安全·区块链
wangchenggong19882 天前
Foundry初始化、编译、测试、部署智能合约全流程介绍
区块链·智能合约
矶鹬笛手2 天前
(2.2) 新一代信息技术及应用
大数据·云计算·区块链·时序数据库
u***09643 天前
Web3去中心化身份
web3·去中心化·区块链
1***Q7843 天前
Web3去中心化存储
web3·去中心化·区块链
p***43483 天前
Web3在社交网络中的去中心化
web3·去中心化·区块链