当前位置: 首页 > wzjs >正文

万网虚拟主机做网站教程公司网站设计哪家好

万网虚拟主机做网站教程,公司网站设计哪家好,做网站买那种服务器好,自己的网站怎么做关键词1. 核心设计理念 ---------web3.jsethers.js开发背景以太坊基金会官方维护独立开发者创建,社区驱动架构风格集中式对象 (web3 为核心)模块化设计(分离 Wallet/Provider/Contract)包体积较大(1MB)更轻量(压…

1. 核心设计理念

---------web3.jsethers.js
开发背景以太坊基金会官方维护独立开发者创建,社区驱动
架构风格集中式对象 (web3 为核心)模块化设计(分离 Wallet/Provider/Contract)
包体积较大(1MB+)更轻量(压缩后约 300KB)
TypeScript类型支持较弱原生完整类型定义

2. API 风格对比

创建钱包
<JAVASCRIPT>
// web3.js
const account = web3.eth.accounts.create();
const { address, privateKey } = account;
// ethers.js
const wallet = ethers.Wallet.createRandom();
const { address, privateKey } = wallet;
发送交易
<JAVASCRIPT>
// web3.js
const txHash = await web3.eth.sendTransaction({from: address,to: "0x...",value: web3.utils.toWei("1", "ether")
});
// ethers.js
const tx = await wallet.sendTransaction({to: "0x...",value: ethers.parseEther("1")
});
const receipt = await tx.wait(); // 自动等待确认

3. 关键功能差异

功能web3.jsethers.js
大整数处理使用 BN.js 或 BigNumber.js原生支持 JavaScript 的 BigInt
合约事件监听依赖 subscribe 方法使用 contract.on 事件过滤器
错误处理统一错误类型细粒度错误类型(如 TransactionReplaced)
ABI 编码自动填充默认参数严格类型校验
Provider 抽象仅支持以太坊节点通信支持多链(通过自定义 Provider)

4. 异步处理模式

web3.js 的回调风格
<JAVASCRIPT>
web3.eth.getBlockNumber((err, blockNumber) => {if (!err) console.log(blockNumber);
});
ethers.js 的 Promise 优先
<JAVASCRIPT>
const blockNumber = await provider.getBlockNumber();
console.log(blockNumber);

5. 生态系统支持

-----web3.jsethers.js
开发者工具与 Truffle 深度集成与 Hardhat 生态更紧密
流行框架更多历史项目使用新项目采用率更高
文档质量分散(不同版本差异大)统一且结构清晰

6. 安全性对比

私钥管理
<JAVASCRIPT>
// web3.js 直接暴露私钥
const account = web3.eth.accounts.privateKeyToAccount(privateKey);
// ethers.js 加密钱包
const encryptedJson = await wallet.encrypt("password");
const restoredWallet = await ethers.Wallet.fromEncryptedJson(encryptedJson, "password");
交易重放保护
web3.js:需手动处理 nonce
ethers.js:自动管理 nonce(可通过 wallet.getTransactionCount() 覆盖)

7. 开发体验差异

智能合约交互
<JAVASCRIPT>
// web3.js
const contract = new web3.eth.Contract(abi, address);
const result = await contract.methods.getValue().call();
// ethers.js
const contract = new ethers.Contract(address, abi, wallet);
const result = await contract.getValue();
单位转换
<JAVASCRIPT>
// web3.js
const weiValue = web3.utils.toWei("1.5", "ether");
// ethers.js
const weiValue = ethers.parseEther("1.5"); // 直接返回 BigInt

8. 适用场景建议

场景推荐选择理由
新项目开发ethers.js轻量、现代、TypeScript 友好
维护旧项目web3.js避免重构成本
需要多链支持ethers.js更易扩展自定义 Provider
复杂交易场景ethers.js细粒度的错误类型和事件处理
与 Truffle 集成web3.js历史项目常用组合
http://www.dtcms.com/wzjs/526282.html

相关文章:

  • 沈阳的网站制作公司网站页面分析作业
  • 手机网站开发软件有哪些微信营销软件排行榜
  • 做网站商城互联网公司经典软文推广案例
  • 南昌网站建设方案开发十大外贸电商平台
  • 网站建设的知识品牌营销理论有哪些
  • 网站开发职业要求网站域名注册
  • 自己做的网站别人查看百度推广客户端官方下载
  • 网站ipv6改造怎么做关键词搜索排名推广
  • 公司做网站的费用属什么用途谷歌浏览器下载安装
  • python做的网站漏洞网络营销出来做什么
  • 定陶区城乡和住房建设局网站网络优化工具app手机版
  • 机关局域网网站建设站长之家seo工具包
  • 企业网站制作的书百度seo排名优化如何
  • 使用vue做商城网站项目难点百度文库个人登录入口
  • 办公室装修费用分几年摊销东莞网站优化关键词排名
  • 设计网站公司可去亿企邦国内搜索引擎网站
  • 新郑网站开发成都网站seo技巧
  • 用ps怎么做网站首页网页推广怎么做
  • windows 做网站服务器吗口碑营销理论
  • 优质专业建设申报网站培训班该如何建站
  • 织梦网站地图怎么做xml关键词歌词简谱
  • 建一个购物网站要多少钱网络营销推广主要做什么
  • dwcs5怎么做动态网站网络营销的认识
  • 鞍山贴吧最新消息常州seo第一人
  • 无锡做网站seo入门培训教程
  • 龙岗区布吉街道防控措施武汉seo公司哪家好
  • 咸宁网站建设哪家专业谷歌排名
  • 佛山做外贸网站推广长春百度seo公司
  • 最早做淘宝返利的网站竞价托管推广公司
  • 手机备案网站推广接单平台