http://www.7klian.com

以太坊 JSON API的基本常识入门


# Get result of the request and decode it to decimal
# Create our transaction
'gasPrice': gasPriceHex,


url = "https://ropsten.infura.io/v3/YOUR_INFURA_KEY"
params = [ blockNumber, fullTrx]

# Boolean indicating if we want the full transactions (True) or just their hashes (false)

headers = {'Content-type': 'application/json'}

有一天,我碰着了这样一种环境,我需要在一个让web3.py险些不行能事情的情况中利用python与以太坊网络举办通信。由于我仍然需要与网络通信,所以我利用了以太坊提供的JSON-RPC API,所有的web3库都构建在该API之上。本来,这长短常有趣的!那么,让我们开始吧!
# 3 Because we are on Ropsten
# Faucet address

data = {"jsonrpc": "2.0", "method": "eth_getBlockByNumber","params": params, "id": 1}
根基配置
response = session.post(url, json=data, headers=headers)

data = {"jsonrpc": "2.0", "method": "eth_getTransactionCount","params": params, "id": 3}
这就是一切!您方才进修了利用JSON RPC Ethereum API与世界上最有影响力的区块链举办交互的基本常识!你可以在这里找到所有这些的代码。
'value': w3.toWei(0.5,'ether'),


gasPriceHex = response.json().get("result")
else:
让我们实验一些更有趣的对象——让我们获取最新的块,看看我们可以从哪里读取什么!
else:
print("Error occured")
你的第一个请求
print("Error occured")
params = [transactions[0]]
'to': '0x687422eEA2cB73B5d3e242bA5456b782919AFc85',

让我们先来相识一下网络当前的GAS价值。我们可以简朴地做:

接下来,我们建设并签署我们的策划,并再次利用JSON RPC API发送它:
blockNumber = "latest"
# Get the block

data = {"jsonrpc": "2.0", "method": "eth_getTransactionByHash","params": params, "id": 3}
if response.ok:
# Check if response is valid
pKey)

# Get the transactions contained in the block
transaction = response.json().get("result")
if response.ok:
fullTrx = False

# Handle Error
w3 = web3.Web3()
receipt = response.json().get("result")
response = session.post(url, json=data, headers=headers)
print("Error occured")

import requests

# Handle Error
'gas': 100000,
account = w3.eth.account.create('put any phrase here')
# Handle Error

import web3
params = [address, "latest"]

else:


response = session.post(url, json=data, headers=headers)
data = {"jsonrpc": "2.0", "method": "eth_sendRawTransaction","params": params, "id": 4}
},

'nonce': nonce,
if response.ok:
'chainId':3,
signed_txn = w3.eth.account.signTransaction({


发送生意业务
response = session.post(url, json=data, headers=headers)

获取最新的块
# Get the nonce at the latest block
# Set params and prepare data
# Handle Error

假如您在差异的以太坊(测试)网络长举办测试,请确保相应地配置链的Id。
block = response.json().get("result")
pKey = account.privateKey
留意我们是如何从头操作我们一开始得到的gas价值的。
response = session.post(url, json=data, headers=headers)
# Prepare the data we will send
else:
为了简朴起见,我们利用Infura节点毗连到以太坊 Ropsten Testnet。你可以在这里得到一个API键。
print("Error occured")
data = {"jsonrpc": "2.0", "method": "eth_gasPrice", "params": [], "id":1}


address = account.address


要害词: 以太坊

# Handle Error
if response.ok:
# Check if response is valid
gasPriceDecimal = int(gasPriceHex, 16)


首先,让我们声明几个变量,这将有助于今后发送请求:

我如何知道利用什么要领和发送什么参数?这些都可以在以太坊官方文档中找到。
else:
nonce = response.json().get("result")
首先,让我们利用web3.py库建设一个新帐户,并用一些Ropsten醚加载它。我喜欢用这个水龙头。

import json

if response.ok:
session = requests.Session()

您大概已经开始相识这些挪用的事情模式,,所以让我们实验一些更高级的对象:


params = [signed_txn.rawTransaction.hex()]
结论
transactions = block.get("transactions")
让我们仔细看看个中一笔生意业务:

要发送建设策划,我们需要nonce。这也是我们可以获取与RPC JSON API利用沟通的模式。如上:

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

相关文章阅读