WEB3——什么是ABI

怎么获得ABI?

在编译完合约后,可以在左边下面点击复制ABI

ABI(Application Binary Interface ,应用二进制接口)是用来让前端或服务端 JavaScript 代码与智能合约进行交互的桥梁 ,它描述了合约的函数、事件和结构信息。


🔍 简单理解 ABI 的作用:

你可以把 ABI 想成"说明书"或"函数清单",它告诉你:

  • 合约有哪些方法(比如 mint, ownerOf, balanceOf);

  • 每个方法需要哪些参数,返回什么;

  • 哪些是 view 函数(不花费 gas),哪些是 transaction 函数(会消耗 gas);

  • 有没有事件(event),事件结构是怎样的。


📦 示例 ABI(JSON 格式):

复制代码
[
  {
    "inputs": [
      {
        "internalType": "string",
        "name": "tokenURI",
        "type": "string"
      }
    ],
    "name": "mint",
    "outputs": [],
    "stateMutability": "nonpayable",
    "type": "function"
  },
  {
    "inputs": [
      {
        "internalType": "address",
        "name": "owner",
        "type": "address"
      }
    ],
    "name": "tokensOfOwner",
    "outputs": [
      {
        "internalType": "uint256[]",
        "name": "",
        "type": "uint256[]"
      }
    ],
    "stateMutability": "view",
    "type": "function"
  }
]

🛠 ABI 的用途

你在 NestJS 或前端项目中这样使用:

复制代码
import { ethers } from 'ethers';
import SimpleNFTABI from './SimpleNFT.abi.json';

const contract = new ethers.Contract(contractAddress, SimpleNFTABI, signerOrProvider);

你能用 contract.mint(...)contract.tokensOfOwner(...) 就是因为 ABI 里定义了这些函数。


✅ 怎么获取 ABI?

在你用 Hardhat / Foundry / Remix / Truffle 编译完合约后,可以在这些路径找到 ABI:

🔹 Hardhat:

复制代码
artifacts/contracts/SimpleNFT.sol/SimpleNFT.json

打开里面,你会看到一段很长的 JSON,其中包含:

  • abi

  • bytecode

  • metadata

你只需要复制 abi 部分即可。


📝 总结一句话:

ABI 是连接你写的智能合约和外部应用(前端 / 后端)的"函数说明书" ,编译合约后拷贝 abi 部分,就能让程序识别你合约有哪些功能,怎么调用。

如果你想,我可以帮你提取你合约对应的 ABI JSON,并打包成一个 SimpleNFT.abi.json 文件。需要的话请告诉我。

相关推荐
央链知播13 小时前
王玉真:可信资产与数链金融的核心根基——构建全链路可信信用体系
人工智能·金融·重构·web3·区块链·业界资讯
小七mod19 小时前
【BTC】比特币脚本
web3·区块链·脚本·比特币·btc
Sui_Network2 天前
Sui Stack Messaging SDK:为 Web3 打造可编程通信
大数据·人工智能·科技·web3·去中心化·区块链
Keegan小钢3 天前
AI+Web3实战营日志 #7 | 完成Core合约测试
web3·ai编程
央链知播3 天前
链改2.0总架构师何超秘书长重构“可信资产lPO与数链金融RWA”
金融·重构·web3·区块链·业界资讯
alex1004 天前
AP2协议与AI Agent经济:重塑金融生态与主权国家挑战
人工智能·金融·web3·去中心化·区块链·ai agent
alex1005 天前
【一天一个Web3概念】区块链中的双花问题:概念、案例与防范措施
web3·区块链·双花
央链知播5 天前
链改2.0+港促会,携手赋能 Web3引企赴港!
web3
清 晨5 天前
Facebook怎么高效采集数据?
web3·互联网·facebook·tiktok·instagram·指纹浏览器·clonbrowser
alex1005 天前
【一天一个Web3概念】Uniswap:去中心化金融(DeFi)的自动做市商革命
金融·web3·去中心化·区块链·defi·uniswap