跳至主要内容
本页面使用机器翻译自英语,可能包含错误或不清楚的语言。如需最准确的信息,请参阅英文原文。由于更新频繁,部分内容可能与英文原文有出入。请加入我们在 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

让这个页面变得更好