当前位置: 首页 > news >正文

企业网上年检在网站怎么做做装修哪个网站推广好

企业网上年检在网站怎么做,做装修哪个网站推广好,阿里巴巴有没有帮做网站的公司,企业网站seo案例文章目录 一、什么是 ERC-20?核心价值:互操作性简化开发生态基石 二、ERC-20 的六大核心功能基础功能授权与代理转账事件通知 三、ERC-20 代币的典型应用场景四、ERC-20 的技术优势与局限性优势:局限性: 五、ERC-20 代币的创建步骤…

文章目录

  • 一、什么是 ERC-20?
    • 核心价值:
      • 互操作性
      • 简化开发
      • 生态基石
  • 二、ERC-20 的六大核心功能
    • 基础功能
    • 授权与代理转账
    • 事件通知
  • 三、ERC-20 代币的典型应用场景
  • 四、ERC-20 的技术优势与局限性
    • 优势:
    • 局限性:
  • 五、ERC-20 代币的创建步骤
    • 编写智能合约
    • 部署合约
    • 验证与审计
    • python 示例
  • 六、ERC-20 与其他代币标准的对比
  • 七、ERC-20 的安全风险与历史事件

一、什么是 ERC-20?

ERC-20(Ethereum Request for Comments 20)是以太坊区块链上最广泛使用的代币标准,定义了智能合约发行可互换代币(Fungible Token)的通用规则。通过标准化接口,ERC-20 确保不同代币在钱包、交易所和 DeFi 协议中无缝交互。

核心价值:

互操作性

所有 ERC-20 代币兼容以太坊生态工具(如 MetaMask、Uniswap)。

简化开发

开发者无需从零设计代币逻辑,降低开发成本。

生态基石

支撑了 90% 以上的以太坊代币(如 USDT、UNI、LINK)。

二、ERC-20 的六大核心功能

ERC-20 标准要求代币合约必须实现以下接口:

基础功能

totalSupply():返回代币总供应量。
balanceOf(address):查询指定地址的余额。
transfer(address, uint256):向目标地址转账代币。

授权与代理转账

approve(address, uint256):授权第三方地址使用一定数量的代币。
transferFrom(address, address, uint256):被授权地址代理转账(如交易所提币)。

事件通知

Transfer(address, address, uint256):代币转账时触发。
Approval(address, address, uint256):授权操作时触发。

三、ERC-20 代币的典型应用场景

场景案例作用
稳定币USDT、USDC、DAI价值存储与交易媒介
治理代币UNI(Uniswap)、COMP(Compound)社区投票与协议控制
实用代币LINK(Chainlink)、BAT(Brave 浏览器)支付网络服务费用
ICO/IEO2017 年以太坊众筹潮(如 EOS、BNB 早期版本)项目融资与代币分发
DeFi 底层资产Aave 的 aToken、Curve 的 LP 代币抵押借贷与流动性凭证

四、ERC-20 的技术优势与局限性

优势:

标准化兼容:钱包和交易所无需为每种代币单独开发支持逻辑。
低成本发行:使用模板(如 OpenZeppelin 库)可在 10 分钟内创建代币。
灵活扩展:可通过继承 ERC-20 合约添加功能(如代币销毁、分红机制)。

局限性:

转账安全性问题:
若向合约地址误转 ERC-20 代币(未实现 tokensReceived 的回调),代币将永久丢失(ERC-223 已修复此问题)。
无元数据支持:
代币名称、符号等需硬编码在合约中,ERC-20 未强制要求(导致部分代币显示异常)。
批量操作低效:
批量转账需多次调用 transfer,消耗更多 Gas(ERC-1155 优化了此问题)。

五、ERC-20 代币的创建步骤

编写智能合约

使用 Solidity 继承 OpenZeppelin 的 ERC-20 模板:

<SOLIDITY>
// SPDX-License-Identifier: MIT
pragma solidity ^0.8.0;
import "@openzeppelin/contracts/token/ERC20/ERC20.sol";
contract MyToken is ERC20 {constructor(uint256 initialSupply) ERC20("MyToken", "MTK") {_mint(msg.sender, initialSupply);}
}

部署合约

通过 Remix IDE 或 Hardhat 部署到以太坊网络(主网或测试网)。

验证与审计

在 Etherscan 验证合约源码。
进行安全审计(尤其涉及代币增发、权限控制逻辑)。

python 示例

==参考:https://ethereum.org/zh/developers/docs/standards/tokens/erc-20/#web3py-example

让我们看看如此重要的一个标准是如何使我们能够简单地检查以太坊上的任何 ERC-20 代币合约。 我们只需要合约的应用程序二进制接口 (ABI) 来创造一个 ERC-20 代币界面。 下面我们将使用一个简化的应用程序二进制接口,让例子变得更为简单。
在这里插入图片描述在这里插入图片描述

from web3 import Web3w3 = Web3(Web3.HTTPProvider("https://cloudflare-eth.com"))dai_token_addr = "0x6B175474E89094C44Da98b954EedeAC495271d0F"     # DAI
weth_token_addr = "0xC02aaA39b223FE8D0A0e5C4F27eAD9083C756Cc2"    # Wrapped ether (WETH)acc_address = "0xA478c2975Ab1Ea89e8196811F51A7B7Ade33eB11"        # Uniswap V2: DAI 2# This is a simplified Contract Application Binary Interface (ABI) of an ERC-20 Token Contract.
# It will expose only the methods: balanceOf(address), decimals(), symbol() and totalSupply()
simplified_abi = [{'inputs': [{'internalType': 'address', 'name': 'account', 'type': 'address'}],'name': 'balanceOf','outputs': [{'internalType': 'uint256', 'name': '', 'type': 'uint256'}],'stateMutability': 'view', 'type': 'function', 'constant': True},{'inputs': [],'name': 'decimals','outputs': [{'internalType': 'uint8', 'name': '', 'type': 'uint8'}],'stateMutability': 'view', 'type': 'function', 'constant': True},{'inputs': [],'name': 'symbol','outputs': [{'internalType': 'string', 'name': '', 'type': 'string'}],'stateMutability': 'view', 'type': 'function', 'constant': True},{'inputs': [],'name': 'totalSupply','outputs': [{'internalType': 'uint256', 'name': '', 'type': 'uint256'}],'stateMutability': 'view', 'type': 'function', 'constant': True}
]dai_contract = w3.eth.contract(address=w3.to_checksum_address(dai_token_addr), abi=simplified_abi)
symbol = dai_contract.functions.symbol().call()
decimals = dai_contract.functions.decimals().call()
totalSupply = dai_contract.functions.totalSupply().call() / 10**decimals
addr_balance = dai_contract.functions.balanceOf(acc_address).call() / 10**decimals#  DAI
print("===== %s =====" % symbol)
print("Total Supply:", totalSupply)
print("Addr Balance:", addr_balance)weth_contract = w3.eth.contract(address=w3.to_checksum_address(weth_token_addr), abi=simplified_abi)
symbol = weth_contract.functions.symbol().call()
decimals = weth_contract.functions.decimals().call()
totalSupply = weth_contract.functions.totalSupply().call() / 10**decimals
addr_balance = weth_contract.functions.balanceOf(acc_address).call() / 10**decimals#  WETH
print("===== %s =====" % symbol)
print("Total Supply:", totalSupply)
print("Addr Balance:", addr_balance)

六、ERC-20 与其他代币标准的对比

标准特性典型用例代表代币
ERC-20同质化代币,基础转账功能通用型代币USDT、UNI
ERC-721非同质化代币(NFT),唯一标识数字艺术品、游戏道具CryptoPunks
ERC-1155批量操作 + 同质/非同质混合游戏资产包、票务系统Enjin 游戏道具
ERC-4626收益型代币标准,优化 DeFi 金库交互收益聚合协议Yearn 金库凭证

七、ERC-20 的安全风险与历史事件

批量转账漏洞

案例:2017 年 Parity 多重签名钱包漏洞导致 1.5 亿美元 ETH 被冻结。
教训:代币合约需严格限制权限(如禁用 approve 后门)。
假代币骗局

手法:骗子部署同名 ERC-20 合约(如虚假 USDT),诱导用户充值。
防御:交易前需在 Etherscan 验证合约地址和代码。
重入攻击

案例:2016 年 The DAO 事件(非 ERC-20 但影响生态)。
防护:使用 Checks-Effects-Interactions 模式编写合约逻辑。

http://www.dtcms.com/a/508455.html

相关文章:

  • STM32F103C8T6--深入GPIO
  • 国家级!悬镜安全入选两项“网络安全国家标准应用实践案例”
  • 影视网站建设策划文案万源网站建设
  • Java集合操作实战:List工人管理
  • C#高级:数据库中使用SQL作分组处理4(LAG() 偏移函数)
  • 福州手游网站建设c2c电商平台有哪几个
  • 做pvc卡片的交流网站wordpress移除头部无用
  • 怎么搭建一个自己的网站洛阳做公司网站
  • 简述营销型企业网站建设的内容wordpress小店主题
  • 崩溃信息追溯——backward-cpp
  • 怎么找网站帮我做推广wordpress加入下载标签
  • 深度学习实验二 简单神经网络模型构建
  • IP 汇总名单
  • 同城购物网站建设成本有人上相亲网站做传销燕窝
  • P7073 [CSP-J2020] 表达式
  • 昆山住房与城乡建设局网站成都市成华区建设局官方网站
  • 2025 年六款 AI 视频转文字工具实测分析:功能与场景适配对比
  • 如何做微信网站建设紫色的网站
  • dify 源码分析(六)ratelimiter
  • 阜阳网站开发招聘网站维护电话
  • 傻瓜式做网站哪个软件好网站搭建模板
  • 做国外家具贸易的网站重庆网站建设mlfart
  • 绵阳网站建设公司广州引流推广公司
  • 容桂做外贸网站海口分类信息网站
  • 宁波高端模板建站搭建网站开发网站环境
  • 青岛seo网站排名徐州免费网站建设
  • Redis Stream相比阻塞列表和发布订阅有哪些优势?适合什么场景?
  • 企业每年向工商网站做申报如何把网站提交给百度
  • seo网站模板做网站推广什么好
  • 正则表达式:用Python Re模块驯服文本数据的艺术