mcpField
D
defi-protocols

defi-protocols

github.com/alphaonedev开发48 次安装
代码仓库

关于 defi-protocols

defi-protocols 是面向 DeFi 开发、合约审计与协议集成的知识技能,涵盖智能合约、代币和去中心化借贷。内容包括 Web3.js、Ethers.js、链上数据查询及交易模拟等实践。

主要功能

  1. 01读取和写入智能合约状态
  2. 02管理 ERC-20 与 ERC-721 代币
  3. 03查询借贷利率与借款额度
  4. 04通过区块浏览器 API 分析链上数据
  5. 05使用 Hardhat 模拟交易

适用场景

  1. 01开发 DeFi 应用和协议集成
  2. 02审计智能合约交互与漏洞
  3. 03处理代币转账及授权
  4. 04测试合约部署和交易流程

安装

复制下面的命令,在终端中运行。

$npx skills add https://github.com/alphaonedev/openclaw-graph --skill defi-protocols

安装后在 Claude Code 中输入/defi-protocols确认已加载。

详细介绍

defi-protocols

用途

此技能为 AI 提供 DeFi 协议方面的专业知识,使其能够在 Ethereum 和 Binance Smart Chain 等区块链上,精准地与智能合约、代币和去中心化借贷进行交互。

适用场景

在涉及 DeFi 应用开发、智能合约审计、代币管理或借贷协议集成的任务中使用此技能。在实时编码场景中处理区块链交易、收益耕作或协议漏洞时,也可使用此技能。

主要能力

  • 使用 Web3.js 或 Ethers.js 库与智能合约交互,读取或写入状态。
  • 管理 ERC-20/ERC-721 代币,包括转账和授权。
  • 通过 Aave 或 Compound 等协议处理去中心化借贷,查询利率或借款额度。
  • 分析来自 Etherscan API 端点等区块浏览器的链上数据(例如,/api?module=account&action=balance)。
  • 使用 Hardhat 等工具模拟交易,以测试智能合约。

使用模式

要使用此技能,请在代码中初始化 Web3 提供程序,并设置 API 密钥环境变量。例如,在 Node.js 脚本中,导入 Web3 并连接到网络:

const Web3 = require('web3');
const web3 = new Web3(process.env.RPC_URL || 'http://localhost:8545');

对于 DeFi 专属任务,请将合约交互封装在 try-catch 块中,并使用 ABI 文件进行解码。查询 Aave 时,通过指定合约地址和函数签名来获取池数据。

常用命令/API

  • CLI:使用 Hardhat 部署合约:npx hardhat run scripts/deploy.js --network sepolia --api-key $ETHEREUM_API_KEY。
  • API:使用 eth_call 等端点通过 Ethereum JSON-RPC 调用合约:curl -X POST --data '{"jsonrpc":"2.0","method":"eth_call","params":[{...}],"id":1}' $RPC_URL。
  • Aave API:使用 GraphQL 查询,通过 GET https://api.thegraph.com/subgraphs/name/aave/protocol-v2 查询借贷池。
  • 配置格式:将 ABI 存储在 JSON 文件中,例如 { "abi": [{ "name": "balanceOf", "inputs": [...] }] },并通过 fs.readFileSync('abi.json') 加载。
  • 代币交互:使用 Ethers.js 转账:contract.methods.transfer(address, amount).send({ from: walletAddress })。

集成说明

使用能够处理 signer 对象的 Web3 提供程序,将此技能与 MetaMask 等钱包集成。对于身份验证,请为 Infura 或 Alchemy 等服务设置 $ETHEREUM_API_KEY 等环境变量。与其他技能结合使用时,请确保区块链网络兼容(例如,DeFi 和通用区块链任务都使用 Web3.js)。对于 Chainlink 等预言机,请导入其合约,并在执行 DeFi 逻辑前调用 getPrice 等函数。

错误处理

处理交易回滚等常见错误时,可在 Ethers.js 中检查 TransactionError:try { await contract.methods.borrow().send(); } catch (error) { if (error.reason.includes('insufficient collateral')) console.log('Add more collateral'); }。对于 API 故障,请验证状态码(例如,表示请求速率受限的 429),并使用指数退避策略重试。使用事件监听器处理区块链错误,例如,contract.events.ErrorOccurred().on('data', handleError)。务必验证输入,以防止借贷协议中的重入等漏洞。

具体使用示例

  1. **查询 Aave 借贷池:**若要检查某种代币的可用流动性,请使用以下 Ethers.js 代码片段:const pool = await ethers.getContractAt('ILendingPool', '0x...'); const liquidity = await pool.getReserveData(tokenAddress); console.log(liquidity.availableLiquidity.toString());。如需 API 访问,请设置 $AAVE_SUBGRAPH_KEY。
  2. **部署简单代币合约:**在 Hardhat 项目中,运行 npx hardhat compile,然后运行 npx hardhat deploy --network mumbai,并在 hardhat.config.js 中配置,例如 module.exports = { networks: { mumbai: { url: process.env.RPC_URL, accounts: [process.env.PRIVATE_KEY] } } };。这会部署一个供 DeFi 使用的 ERC-20 代币。

图谱关系

  • 相关项目:ethereum(共享区块链集群)、smart-contracts(在合约交互方面有重叠)、tokens(聚焦 ERC 标准)。
  • 连接方式:通过区块链集群接入更广泛的生态系统。
  • 依赖项:如需获取借贷相关的详细信息,需要依赖 aave 等协议。

评论

支持 Markdown