http://www.7klian.com

5分钟内进修以太坊 JSON API的基本常识

    ‘nonce’: nonce,
首先,让我们声明几个变量,这将有助于今后发送请求:
让我们仔细看看个中一笔生意业务:
  pKey)
    # Handle Error
url = “https://ropsten.infura.io/v3/YOUR_INFURA_KEY”
接下来,我们建设并签署我们的策划,并再次利用JSON RPC API发送它:
    ‘gas’: 100000,
signed_txn = w3.eth.account.signTransaction({
    gasPriceHex = response.json().get(“result”)
fullTrx = False
response = session.post(url, json=data, headers=headers)
response = session.post(url, json=data, headers=headers)
w3 = web3.Web3()
    },
    ‘to’: ‘0x687422eEA2cB73B5d3e242bA5456b782919AFc85’,
    print(“Error occured”)
# Create our transaction
params = [address, “latest”]
response = session.post(url, json=data, headers=headers)
    transaction = response.json().get(“result”)
    block = response.json().get(“result”)
if response.ok:
response = session.post(url, json=data, headers=headers)
address = account.address
    # Handle Error
    # Get the transactions contained in the block

有一天,我碰着了这样一种环境,我需要在一个让web3.py险些不行能事情的情况中利用python与网络举办通信。由于我仍然需要与网络通信,所以我利用了以太坊提供的JSON-RPC API,所有的web3库都构建在该API之上。本来,这长短常有趣的!那么,让我们开始吧!
session = requests.Session()
首先,让我们利用web3.py库建设一个新帐户,并用一些Ropsten醚加载它。我喜欢用这个水龙头。
发送生意业务
import web3
# Check if response is valid
pKey = account.privateKey
要发送建设策划,我们需要nonce。这也是我们可以获取与RPC JSON API利用沟通的模式。如上:
headers = {‘Content-type’: ‘application/json’}
# Prepare the data we will send
account = w3.eth.account.create(‘put any phrase here’)
获取最新的块
# Get the nonce at the latest block
data = {“jsonrpc”: “2.0”, “method”: “eth_getTransactionByHash”,”params”: params, “id”: 3}
    # Handle Error
if response.ok:
data = {“jsonrpc”: “2.0”, “method”: “eth_getTransactionCount”,”params”: params, “id”: 3}
    transactions = block.get(“transactions”)
params = [signed_txn.rawTransaction.hex()]
# Check if response is valid
    # Handle Error
    # Get the block
    # Get result of the request and decode it to decimal
import requests
    receipt = response.json().get(“result”)
根基配置
    ‘gasPrice’: gasPriceHex, 
data = {“jsonrpc”: “2.0”, “method”: “eth_sendRawTransaction”,”params”: params, “id”: 4}
if response.ok:
else:
你的第一个请求
    # 3 Because we are on Ropsten
blockNumber = “latest”
让我们先来相识一下网络当前的GAS价值。我们可以简朴地做:
    print(“Error occured”)
data = {“jsonrpc”: “2.0”, “method”: “eth_gasPrice”, “params”: [], “id”:1}
您大概已经开始相识这些挪用的事情模式,所以让我们实验一些更高级的对象:
params = [ blockNumber, fullTrx]
我如何知道利用什么要领和发送什么参数?这些都可以在以太坊官方文档中找到。
response = session.post(url, json=data, headers=headers)
import json
else:
else:
    nonce = response.json().get(“result”)
# Set params and prepare data
为了简朴起见,我们利用Infura节点毗连到以太坊 Ropsten Testnet。你可以在这里得到一个API键。
if response.ok:
if response.ok:
data = {“jsonrpc”: “2.0”, “method”: “eth_getBlockByNumber”,”params”: params, “id”: 1}
else:
    ‘chainId’:3,
# Boolean indicating if we want the full transactions (True) or just their hashes (false)
结论
    # Handle Error
    ‘value’: w3.toWei(0.5,’ether’),
params = [transactions[0]]
这就是一切!您方才进修了利用JSON RPC Ethereum API与世界上最有影响力的举办交互的基本常识!你可以在这里找到所有这些的代码。

    # Faucet address
    gasPriceDecimal = int(gasPriceHex, 16)
让我们实验一些更有趣的对象——让我们获取最新的块,看看我们可以从哪里读取什么!
假如您在差异的以太坊(测试)网络长举办测试,,请确保相应地配置链的Id。
留意我们是如何从头操作我们一开始得到的gas价值的。
    print(“Error occured”)
    print(“Error occured”)
else:

郑重声明:本文版权归原作者所有,转载文章仅为传播更多信息之目的,如作者信息标记有误,请第一时间联系我们修改或删除,多谢。

相关文章阅读