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

注册网站域名的入口杭州百度seo代理

注册网站域名的入口,杭州百度seo代理,网站建设金,公司如何办网站viem是一个用于和以太坊进行交互的javascript库,它提供了简单的API进行智能合约的读取和写入操作,你可以使用它来与区块链上智能合约进行交互,查询链上数据等。 基本功能 1,创建公有客户端 createPublicClient 可以创建一个链接…

viem是一个用于和以太坊进行交互的javascript库,它提供了简单的API进行智能合约的读取和写入操作,你可以使用它来与区块链上智能合约进行交互,查询链上数据等。
基本功能

1,创建公有客户端

createPublicClient 可以创建一个链接到区块链的公有客户端,通常用于查询数据。

import { createPulicClient,http} from 'viem'
const client = creatPublicClient({
chain:"etherum",//链名
transport:http('https://mainnet.infura.io/v3'), //节点
})
参数	说明
chain	指定要连接的区块链网络(如 mainnet, goerli, sepolia)
transport	连接方式,通常是 http() 或 webSocket()

🔹 其他可用 publicClient 方法
📌 获取账户余额

const balance = await client.getBalance({address: '0x742d35Cc6634C0532925a3b844Bc454e4438f44e',
});
console.log('ETH 余额:', balance);

📌 获取当前 gas 价格

const gasPrice = await client.getGasPrice();
console.log('当前 Gas 价格:', gasPrice);

📌 获取交易信息

const tx = await client.getTransaction({hash: '0x交易哈希',
});
console.log('交易详情:', tx);

✅ 总结
createPublicClient 适用于读取链上数据(区块、交易、余额、智能合约)。
适用于 无私钥 操作,不涉及交易发送。
可以与 Alchemy、Infura 等 RPC 服务提供商配合使用。

如果你想发送交易或者调用合约的 write 方法,你需要一个钱包客户端(createWalletClient),它支持:

发送 ETH 转账
调用智能合约 方法(如 approve, transfer, swap)
进行 EIP-1559 交易
离线签名 交易并广播

1. 创建钱包客户端(createWalletClient)

如果你要发送交易,必须使用私钥或连接钱包。

import { createWalletClient, http, privateKeyToAccount } from 'viem';
import { mainnet } from 'viem/chains';// 通过私钥创建账户
const account = privateKeyToAccount('0xYOUR_PRIVATE_KEY');// 创建钱包客户端
const walletClient = createWalletClient({account,chain: mainnet,transport: http('https://eth-mainnet.g.alchemy.com/v2/YOUR_ALCHEMY_API_KEY'),
});console.log('钱包地址:', account.address);

📌 注意:使用私钥时,请确保安全存储,避免泄露!

2. 发送 ETH 转账

使用 sendTransaction() 发送 ETH 到目标地址:

import { parseEther } from 'viem';const txHash = await walletClient.sendTransaction({to: '0xRecipientAddress', // 目标地址value: parseEther('0.01'), // 发送 0.01 ETH
});console.log('交易哈希:', txHash);

📌 解释

to:接收 ETH 的钱包地址
value:发送的 ETH 金额(使用 parseEther() 处理)
txHash:返回的交易哈希,可用于查询交易状态

2,获取合约实例

getContract 用于获取智能合约实例,并允许你与合约进行交互。

import {getContract } from 'view '
const contract = getContract(client,{
address:'', //合约地址
abi:[], //合约abi
});

3,调用合约的函数

  1. 授权 ERC-20 代币(approve 方法)
    如果你要在 DEX(如 Uniswap)上进行交易,需要先授权合约能使用你的代币。
const txHash = await walletClient.writeContract({address: '0xA0b86991c6218b36c1d19D4a2e9eb0cE3606e48c', // USDC 合约地址abi: parseAbi(['function approve(address spender, uint256 amount) public returns (bool)',]),functionName: 'approve',args: ['0xSpenderContractAddress', parseEther('1000')], // 授权 1000 USDC
});console.log('授权交易哈希:', txHash);

📌 适用于:

Uniswap / PancakeSwap 交易前,给 DEX 合约授权
质押 Staking 前,给 Staking 合约授权

5. 监听交易状态

提交交易后,你可以轮询或监听交易状态:

import { waitForTransactionReceipt } from 'viem';const receipt = await waitForTransactionReceipt(client, { hash: txHash });
console.log('交易成功 ✅', receipt);

📌 适用于

确保交易成功后执行后续操作(比如显示 UI 提示)
监听 status 是否 success

6. EIP-712 签名(Permit 授权 & Meta 交易)

如果合约支持 EIP-712(如 Permit 授权,无需 approve),你可以使用 signTypedData():

const signature = await walletClient.signTypedData({domain: {name: 'MyDApp',version: '1',chainId: 1,verifyingContract: '0x1234567890abcdef1234567890abcdef12345678',},types: {Permit: [{ name: 'owner', type: 'address' },{ name: 'spender', type: 'address' },{ name: 'value', type: 'uint256' },{ name: 'nonce', type: 'uint256' },{ name: 'deadline', type: 'uint256' },],},primaryType: 'Permit',message: {owner: '0xYourWalletAddress',spender: '0xSpenderContractAddress',value: parseEther('1000'),nonce: 1,deadline: Math.floor(Date.now() / 1000) + 3600, // 1 小时后过期},
});console.log('EIP-712 签名:', signature);

📌 适用于

Gasless 交易(如 EIP-2612 Permit)
Meta 交易(第三方代付 Gas

7. 创建自定义交易

如果你想自定义交易参数,可以手动指定 gasLimit、maxPriorityFeePerGas 等:

const txHash = await walletClient.sendTransaction({to: '0xRecipientAddress',value: parseEther('0.01'),maxFeePerGas: parseGwei('20'), // 手动设置 Gas 费用maxPriorityFeePerGas: parseGwei('2'),gasLimit: 21000, // 手动设置 gas 限额
});
console.log('自定义交易哈希:', txHash);

📌 总结
在这里插入图片描述

🚀 viem 提供了比 ethers.js 更轻量级、类型安全的 Web3 交互方案,非常适合 DApp、交易所、NFT 平台开发

http://www.khdw.cn/news/50082.html

相关文章:

  • 网站是做百度快照推广好淘宝运营主要做些什么
  • 做技术分享网站有哪些厦门人才网官网招聘
  • 网站首页不见怎么做东莞推广公司
  • 重庆公司做网站百度公司官网首页
  • 给人做违法网站规避湖北短视频seo营销
  • 成都网站设计优选柚v米科技seo网络营销推广
  • 网络综合设计实验报告seo和网络推广有什么区别
  • 个人网站的设计与实现西安seo招聘
  • les做ml网站企业推广平台有哪些
  • 电子商务网站建设与维护读书心得引流软件下载站
  • 做教育集团的网站建设关键词优化价格表
  • 鹤山网站建设易搜互联推广网站源码
  • web网站性能测试怎么做百度广告一天多少钱
  • 大型网站是用哪种数据库做的seo标题优化的方法
  • 山东杰瑞数字做网站百度安装应用
  • 如何做网站的外部链接企业信息查询
  • 做网站后有人抢注关键词杭州排名优化软件
  • 买了域名后怎么建网站网络黄页推广软件
  • 自己域名做网站软文写作模板
  • 物联网工程就业前景关键词seo排名
  • 西数 网站建设百度站长平台网址
  • 中山市做网站专业的新闻源
  • 专业企业网站制作怎么做seo基础视频教程
  • 自己做的网站打开很慢优化设计答案五年级上册
  • 开县做网站百度推广联系方式
  • 做防腐木花架的网站张雪峰谈广告学专业
  • 工艺品网站设计网络广告策划方案范文
  • 更改网站名称重庆公司seo
  • 网站建设的域名和空间价位防控措施持续优化
  • 找私人做网站程序费用电商培训有用吗