跳至主要內容
本頁面使用機器翻譯自英語,可能包含錯誤或不清楚的語言。如需最準確的信息,請參閱英文原文。由於更新頻繁,部分內容可能與英文原文有出入。請加入我們在 Crowdin 上的努力,幫助我們改進本頁面的翻譯。 (Crowdin translation page, Contributing guide)

讀取

您可以通過 "調用 "RPC API 調用智能合約中的函數。 在這裡可以調用的功能僅限於視圖函數,不會改變合約中的任何狀態。

web3py_ext導入extend,將 web3 擴展為 kaia web3

使用指定的 kairos 測試網 URL 創建 Web3 實例

此外,您還可以將提供商 URL 從 kairos 更改為 quicknode

創建一個帶有 ** 合約地址** 和 abi 的合約實例

設置在部署教程中部署的合約地址(計數器合約)。 您可以在部署 tx 收據中看到地址

設置合同 abi。 使用 remix 或 solc 編譯器編譯後,可以獲得 ABI

調用視圖函數。 這只是對區塊鏈節點的 RPC 調用,而不是交易

smart_contract_interaction.py

from web3py_ext import extend
from web3 import Web3
w3 = Web3(Web3.HTTPProvider(
'https://public-en-kairos.node.kaia.io'
))
def contract_interaction():
c = w3.eth.contract(
address="0x95Be48607498109030592C08aDC9577c7C2dD505",
abi = [{"inputs":[{"internalType":"uint256","name":"initNumber","type":"uint256"}],"stateMutability":"nonpayable","type":"constructor"},{"anonymous":False,"inputs":[{"indexed":False,"internalType":"uint256","name":"number","type":"uint256"}],"name":"SetNumber","type":"event"},{"inputs":[],"name":"increment","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"number","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"newNumber","type":"uint256"}],"name":"setNumber","outputs":[],"stateMutability":"nonpayable","type":"function"}]
)
# call view function
print('\nnumber : ', c.functions.number().call())
contract_interaction()

output

py smart_contract_interaction.py
編號 : 294

讓這個頁面變得更好