Geth 控制台使用及 Web3.js 使用实战

本文详细介绍了Geth控制台的使用,包括启动、退出、日志控制等,并探讨了如何通过Web3.js连接Geth节点,提供实践操作指导。
摘要由CSDN通过智能技术生成

Geth 控制台使用及 Web3.js 使用实战

在开发以太坊去中心化应用,免不了和以太坊进行交互,那就离不开Web3。
Geth 控制台(REPL)实现了所有的 web3 APIAdmin API
使用好 Geth 就是必修课。结合 Geth命令用法阅读效果更佳。


  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
首先,你需要安装web3 python库。可以使用以下命令进行安装: ``` pip install web3 ``` 接下来,你需要连接到以太坊网络。这可以通过以下方式完成: ```python from web3 import Web3 # 连接到以太坊网络 w3 = Web3(Web3.HTTPProvider("https://mainnet.infura.io/v3/<your-infura-project-id>")) ``` 在连接到以太坊网络之后,你可以使用以下代码查询报价: ```python # 导入需要的模块 from web3 import Web3 from web3.middleware import geth_poa_middleware # 连接到以太坊网络 w3 = Web3(Web3.HTTPProvider("https://mainnet.infura.io/v3/<your-infura-project-id>")) # 添加POA中间件以支持以太坊网络 w3.middleware_onion.inject(geth_poa_middleware, layer=0) # 定义合约地址和ABI uniswap_address = "0x7a250d5630b4cf539739df2c5dacb4c659f2488d" uniswap_abi = [{"constant": True, "inputs": [{"internalType": "address", "name": "", "type": "address"}, {"internalType": "address", "name": "", "type": "address"}], "name": "getAmountsOut", "outputs": [{"internalType": "uint256[]", "name": "", "type": "uint256[]"}], "payable": False, "stateMutability": "view", "type": "function"}] # 创建合约实例 uniswap = w3.eth.contract(address=uniswap_address, abi=uniswap_abi) # 定义输入参数 token_in = w3.toChecksumAddress("0x6b175474e89094c44da98b954eedeac495271d0f") # DAI地址 token_out = w3.toChecksumAddress("0xc02aaa39b223fe8d0a0e5c4f27ead9083c756cc2") # WETH地址 amount_in = w3.toWei(100, "ether") # 输入数量 # 调用getAmountsOut函数查询报价 quote = uniswap.functions.getAmountsOut(amount_in, [token_in, token_out]).call() # 显示报价 print("100 DAI 可以换取的 WETH 数量为:", w3.fromWei(quote[1], "ether")) ``` 这个代码片段使用了Uniswap合约来查询报价。你需要提供正确的合约地址和ABI,并使用正确的输入参数来获取所需的报价。
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值