Getting Started with Web3 and Blockchain

Published:

This is a description of a teaching experience. You can use markdown like any other post.

Heading 1

Heading 2

Heading 3

当然可以!以下是为你整理后的 Markdown 精简版,适合直接写入博客,语义清晰、结构合理,方便读者快速理解该函数的背景与用途。

export function isNativeTokenAddress(address: string) { return address === ‘0x0000000000000000000000000000000000000000’ || address === ‘11111111111111111111111111111111’; }

📌 函数用途

判断一个地址是否代表原生代币(Native Token),用于 Web3 开发中区分 ETH、BNB 等原生币和标准 ERC-20 代币。

💡 背景解释

在 EVM 系区块链中,原生币(如 ETH)没有合约地址,但为了统一处理逻辑,常用以下占位符地址:

地址 含义 0x0000000000000000000000000000000000000000 常用于表示“原生代币” ‘11111111111111111111111111111111’ 一些跨链桥或非 EVM 链的原生币占位(如 Wormhole、Solana)

✅ 使用场景示例

  1. 判断转账方式

if (isNativeTokenAddress(token)) { // 原生币转账:通过 msg.value } else { // ERC-20 代币:调用合约 transfer }

  1. UI 渲染符号

const symbol = isNativeTokenAddress(token) ? ‘ETH’ : getTokenSymbol(token)

✅ 总结 • 原生币没有 ERC-20 合约地址,但需要在代码中进行区分 • 使用特殊地址可统一转账逻辑、图标展示、符号渲染等处理 • 在多链钱包、Swap、桥接等前端应用中十分常见

如你有多链支持需求,也可以封装更通用的工具函数,比如按链 ID 判断、返回符号或图标地址等。需要可以另起一节扩展。

是否需要我再帮你附带封装一个支持多链原生币判断的 isNativeTokenAddress(chainId, address) 版本?

https://www.investopedia.com/what-are-native-tokens-6754173