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 文件。需要的话请告诉我。

相关推荐
木西2 天前
快速实现一个英式拍卖(English Auction)合约
web3·智能合约·solidity
fyihdg2 天前
前端调用Solidity智能合约连接MetaMask小狐狸钱包,并在Alchemy测试网发布
web3·智能合约
TechubNews3 天前
Stripe 拟于本月 12 日上线稳定币支付功能
web3·区块链
Web3VentureView4 天前
从“庞氏骗局”到“价值发现”:Web3 行业自我修正与新范式的曙光
大数据·金融·web3·去中心化·区块链
币圈菜头4 天前
GAEA × REVOX 合作 — 共建「情感 AI + Web3 应用」新生态
人工智能·web3·去中心化·区块链
聊天QQ:688238864 天前
PFC3D滑坡冲击仿真实战手札
web3
焦点链创研究所5 天前
从生态认证到价值重构:RootData 收录 BCT 背后的 Web3 数据生态协同逻辑
重构·web3
Rockbean5 天前
3分钟Solidity: 3.3 Enum枚举
web3·区块链·solidity
Rockbean5 天前
3分钟Solidity: 3.2 Array数组
web3·区块链·solidity
木西5 天前
2025年ERC标准技术地图:开发者的核心协议选型与实战指南
web3·智能合约·solidity