Web3js

如何增加 web3.py 中的 EVM 時間?

  • November 1, 2018

在使用 web3.js、Truffle 和 Ganache 時,我可以這樣做:

web3.currentProvider.send({method: "evm_increaseTime", params: [numOfSeconds]});

我怎樣才能在 web3.py 中做同樣的事情?

當我做:

from web3 import HTTPProvider
for func in dir(HTTPProvider):
   if not func.startswith('_'):
       print(func)

我得到:

decode_rpc_response
encode_rpc_request
endpoint_uri
get_request_headers
get_request_kwargs
isConnected
logger
make_request
middlewares
request_func

它可能是我需要呼叫的這些函式之一嗎?

謝謝!

更新:

我發現我可以像這樣對請求進行編碼:

provider = Web3(HTTPProvider("http://127.0.0.1:8545")).providers[0]
request = encode_rpc_request("evm_increaseTime", [123])

列印時request,我得到:

b'{"jsonrpc": "2.0", "method": "evm_increaseTime", "params": [123], "id": 0}'

但是我該如何發送這個請求呢?

好的,這似乎是工作:

web3 = Web3(HTTPProvider("http://127.0.0.1:8545"))
provider = web3.providers[0]
provider.make_request("evm_increaseTime", [numOfSeconds])

引用自:https://ethereum.stackexchange.com/questions/61577