web3py 簡(jiǎn)單使用

文檔:
https://web3py.readthedocs.io/en/latest/quickstart.html
Github:
https://github.com/ethereum/web3.py

連接節(jié)點(diǎn)

from web3 import Web3
w3 = Web3(Web3.HTTPProvider('https://exchainrpc.okex.org'))
print(w3.isConnected())

查詢地址余額

from web3 import Web3
w3 = Web3(Web3.HTTPProvider('https://exchainrpc.okex.org'))
print(w3.eth.get_balance('0x9361077d2925f9be20eC8Bd53E48cb8455A0AD43'))

調(diào)用合約讀方法

可以只傳部分abi

from web3 import Web3

w3 = Web3(Web3.HTTPProvider('https://exchainrpc.okex.org'))
abi = '[{"inputs":[],"name":"decimals","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"view","type":"function"}]'
contract = w3.eth.contract(address=Web3.toChecksumAddress('0x5fac926bf1e638944bb16fb5b787b5ba4bc85b0a'), abi=abi)
print(contract.functions.decimals().call())

或者

from web3 import Web3
from web3.contract import ConciseContract

w3 = Web3(Web3.HTTPProvider('https://exchainrpc.okex.org'))
# with open('erc20_abi.json') as erc20_abi:
#     abi = json.load(erc20_abi)
abi = '[{"inputs":[],"name":"decimals","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"view","type":"function"}]'
contract = w3.eth.contract(address=Web3.toChecksumAddress('0x5fac926bf1e638944bb16fb5b787b5ba4bc85b0a'), abi=abi)
concise_contract = ConciseContract(contract)
print(concise_contract.decimals())

或者

from web3 import Web3

w3 = Web3(Web3.HTTPProvider('https://exchainrpc.okex.org'))
call = w3.eth.call(
    {"from": "0x0000000000000000000000000000000000000000",
     "to": Web3.toChecksumAddress('0x5fac926bf1e638944bb16fb5b787b5ba4bc85b0a'),
     "data": "0x313ce567"})
print(Web3.toInt(call))

更推薦前兩種使用方式。

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容