摘要: 项目中包含大量合约交互,推荐使用次方法,封装通用的合约调用,避免重复造轮子。
前言 在 Web3 开发中,与智能合约的交互是核心功能。但直接使用 ethers.js 或 web3.js 进行合约调用时,我们常常会遇到这些问题: 开发痛点: 🔴 代码重复:每次调用都要重复创建 Provider、Signer、Contract 实例 🔴 错误处理混乱:各种异常分散在业务代码中,难以统一管理 🔴 性能低下:频繁创建连接对象,缺少复用机制 🔴 网络不稳定:区块链 RPC 节点经常超时,缺少重试机制 🔴 维护困难:业务逻辑和技术细节耦合,改一处动全身 本文目标: 通过生产环境实...
前言 在现代 Web 应用中,JWT(JSON Web Token)已经成为最流行的身份认证方案之一。相比传统的 Session 认证,JWT 具有无状态、可扩展、跨域支持等优势,特别适合微服务架构和前后端分离的应用。 本文将使用 github.com/golang-jwt/jwt/v5 库,从零开始构建一个完整的 JWT 认证系统,包括用户注册、登录、Token 刷新、权限验证等核心功能。 JWT 基础知识 什么是 JWT JWT 是一种开放标准(RFC 7519),它定义了一种紧凑且自包含的方式,用于在各方之间以 JSON 对象的形式安全地传输信息。 ...
摘要: 像使用真实浏览器一样替代繁琐的人工操控,制作浏览器自动化脚本之旅
前言 在区块链开发和测试过程中,我们经常需要频繁地与 MetaMask 钱包进行交互。手动操作不仅效率低下,还容易出错。本教程将教你如何使用 Python 和 Playwright 来自动化操控 MetaMask 钱包,实现连接钱包、签名交易等常见操作。 核心技术栈: Python 3.x Playwright(浏览器自动化库) Chrome 浏览器(调试模式) MetaMask 浏览器扩展 重要说明: 本教程使用 Chrome 调试模式 + Playwright CDP 连接 不是使用 ChromeDriver 或 Sele...
一、NestJS 简介 NestJS 是一个用于构建高效、可扩展的 Node.js 服务器端应用程序的框架。它使用渐进式 JavaScript,内置并完全支持 TypeScript,并结合了 OOP(面向对象编程)、FP(函数式编程)和 FRP(函数式响应编程)的元素。 核心特性 🚀 基于 TypeScript 构建 🏗️ 模块化架构设计 💉 依赖注入(DI) 🛡️ 内置守卫、拦截器、管道等 🔌 丰富的生态系统 📦 开箱即用的装饰器 二、项目架构 ` nest-demo/ ├── src/ │ ├── common/ ...
前言 在 Go Web 开发中,数据验证是一个必不可少的环节。github.com/go-playground/validator/v10 是 Go 生态中最流行的验证库之一,但其默认的错误信息对用户并不友好。本文将详细介绍如何自定义验证错误信息,让你的 API 返回更加友好、易懂的错误提示。 问题场景 使用原生 validator 时,错误信息通常是这样的: ` Key: 'User.Email' Error:Field validation for 'Email' failed on the 'required' tag Key: 'User.Age' Erro...
本教程将指导您从零开始搭建一个完整的 gRPC 通信系统,使用 TypeScript 作为客户端,Go 作为服务端。 目录 环境准备 项目结构 步骤一:创建 Proto 文件 步骤二:搭建 Go 服务端 步骤三:搭建 TypeScript 客户端 步骤四:运行测试 故障排查 环境准备 必需软件 在开始之前,请确保已安装以下软件...
本文将手把手教你使用 Uber 开源的 Fx 依赖注入框架,快速搭建一个生产级的 Go Web 应用。无论你选择 Gin 还是 Echo 框架,都能在这里找到完整的实现方案。 📖 你将学到什么 ✅ 什么是依赖注入,为什么需要它 ✅ 如何使用 Fx 框架组织项目结构 ✅ 接口绑定与依赖解耦的最佳实践 ✅ 分组注入:优雅处理多实例场景 ✅ 完整的 Gin 框架实现(含配置、日志、验证) ✅ 完整的 Echo 框架实现(平滑迁移) ✅ 实际应用场景与最佳实践 适合人群: 有 Go 基础,想提升项目架构能力的开发者 阅读时间: 约 30 ...