尧图网站设计 尧图网站设计YAOTU DESIGN
ARTICLE DETAIL

资讯详情

深耕网站设计与一线实操的经验洞察。

EthVM API详解:开发者如何利用接口构建自定义应用

EthVM API详解:开发者如何利用接口构建自定义应用 EthVM API详解开发者如何利用接口构建自定义应用【免费下载链接】EthVM:zap:EthVM: Open Source Processing Engine and Block Explorer for Ethereum :zap:项目地址: https://gitcode.com/gh_mirrors/et/EthVMEthVM是 MyEtherWallet 团队开源的以太坊区块浏览器与链上数据处理引擎。它的核心是一套GraphQL API支持查询区块、交易、代币转账、NFT 元数据还可通过 WebSocket 订阅实时新块帮助开发者零成本构建自定义区块链应用 一分钟认识 EthVM区块浏览器背后的数据引擎EthVM 不只是你看到的网页。它由两部分组成客户端区块浏览器基于 TypeScript VueJS Vuetify代码位于v2/src/目录API/处理器引擎JavaScript 编写的服务端负责索引链上数据并对外提供 GraphQL 接口当前已上线以太坊主网和Sepolia 测试网两套环境多链扩展正是其设计初衷。EthVM API 架构HTTP 查询 WebSocket 订阅双通道理解 EthVM 接口关键在于 v2/src/apollo/index.ts 中的 Apollo Client 配置它清晰地展示了接口分层通道技术用途HTTP 通道HttpLink一次性查询区块、地址、交易、代币等数据WS 通道WebSocketLink订阅newBlockFeed实时接收新块推送容错层RetryLinkonError自动重试失败请求生产环境错误上报 Sentry缓存层InMemoryCache以区块号为键合并订阅数据避免重复拉取两个端点地址通过环境变量注入定义在v2/src/configs.tsVUE_APP_HTTP_LINK→ GraphQL HTTP 端点VUE_APP_WS_CLIENT→ WebSocket 端点如wss://开头的订阅地址这意味着你部署自定义应用时只需替换这两个环境变量即可切换主网 / Sepolia 数据源。可查询的数据能力清单你的应用能拿到什么完整类型定义在自动生成的v2/src/apollo/types.ts中超过 8000 行常用能力一览区块与出块getBlocksArrayByNumber按区块号批量拉取返回块号、出块者、交易数、出块奖励见v2/src/modules/block/apollo/RecentBlocks/recentBlocks.graphqlnewBlockFeed订阅实时推送块号、出块者、baseFeePerGas等字段地址与转账地址 ETH 余额、代币余额、待处理交易、Stake 提现ERC20/ERC721/ERC1155 三类转账均支持limit nextKey游标分页可无限翻页见v2/src/modules/tokens/apollo/token-details-transfer/tokenTransfers.graphql️NFT 与名字服务v2/src/apollo/nfts/nftClient.ts拉取 NFT 元数据属性、图片、稀有度v2/src/apollo/ens/ensClient.ts解析 ENS 域名到地址v2/src/apollo/opensea/OpenSeaClient.ts接入 OpenSea 的 NFT 市场行情⚠️类型系统亮点API 定义了EthVMPrefixedEthereumAddress、EthVMTransactionHash、EthVMCurrencyFloat等自定义标量配合codegen.yml生成的强类型代码前端调用不会写错字段名。三个实战场景用接口构建你的应用场景一多地址组合监控面板像上图的投资组合页一样调用地址余额 代币持有接口汇总多个地址的资产价值。项目中的实现可参考v2/src/core/composables/Portfolio/useSetPortfolioBalance.ts聚合逻辑拿来即可借鉴。场景二代币转账流水追踪通过getERC20TokenTransfers等查询按合约地址拉取完整转账流水金额、收发方、时间戳实现去中心化钱包的交易明细页场景三NFT 属性与行情展示NFT 详情弹窗中的 Class、Hair Colour、Pattern 等属性字段全部来自 NFT 元数据接口的结构化返回无需自己解析 IPFS实时能力同样开箱即用v2/src/core/composables/NewBlock/newBlockFeed.graphql中的订阅只需几行新块出块瞬间推送到你的页面无需轮询。本地快速启动5步跑通开发环境按README.md的 Getting Started 部分操作准备Node 18.0.0与pnpm 6.35.1克隆仓库git clone https://gitcode.com/gh_mirrors/et/EthVM进入前端目录v2创建.env文件并写入网络MAINNET/SEPOLIA与两个 API 端点变量pnpm install安装依赖pnpm serve启动应用运行在https://localhost:8080构建自定义应用的 4 条最佳实践✅优先订阅、减少轮询新块监控用 WebSocket 订阅比定时查询省流量且更及时 ✅用游标分页代替偏移量转账类接口统一使用nextKey游标数据量大时更稳定 ✅善用内存缓存键InMemoryCache以区块号合并数据自定义应用照搬可显著减少请求 ✅面向测试网开发先在 Sepolia 环境验证查询逻辑再切换主网端点上线总结EthVM 用一套 GraphQL WebSocket 接口把区块、交易、代币、NFT、ENS 五类链上数据封装得干净利落强类型定义降低出错成本游标分页与实时订阅覆盖大数据量场景双通道容错保障稳定性。如果你正在寻找构建以太坊自定义应用的起点这套开源 API 值得放进你的技术清单 【免费下载链接】EthVM:zap:EthVM: Open Source Processing Engine and Block Explorer for Ethereum :zap:项目地址: https://gitcode.com/gh_mirrors/et/EthVM创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考
返回列表