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 小时前
硬核拆解 Uniswap V4:从单例架构、EIP-1153 到 Hooks 落地源码复刻
web3·智能合约·solidity
明月_清风16 小时前
💰 DeFi 入门完全指南:从 Uniswap 到 Aave,一文读懂去中心化金融
后端·web3
明月_清风16 小时前
🎨 NFT 全景解析:从 JPEG 到数字所有权革命
后端·web3
Web3李李1 天前
Web3 创业最大误区:DApp 能跑≠能上线!无数项目死在这个
金融·web3·区块链·智能合约·软件开发·dapp开发·defi开发
木西2 天前
从理论到实践:Solidity 高性能集中流动性(CLMM)代码复刻与架构优化实战
web3·智能合约·solidity
明月_清风2 天前
🛡️ Web3 安全入门:新手防骗完全指南
后端·web3
明月_清风2 天前
🔐 Solidity 完全指南:关键语法解析与智能合约中的核心作用
后端·web3
明月_清风4 天前
🛠️ Web3 DApp 开发全栈工具指南:从智能合约到前端交互,一文掌握
web3
明月_清风4 天前
🚀 Web3 新手全面入门指南:24 个核心概念一次讲透
web3
Web3_Daisy7 天前
什么是 Robinhood Chain?
大数据·人工智能·web3·区块链