Contract-Invocation
在 Python 腳本中呼叫智能合約函式
我的情況與大多數情況相反。我在 Solidity 編碼方面相對有經驗,但絕對沒有使用 Python 的經驗。
我最想做的是有一個腳本,它會在預定的時間間隔內呼叫智能合約函式並為其提供所需的輸入,然後讀取並可能儲存輸出。
我需要幫助弄清楚“呼叫函式”部分。請不要只將我指向 web3.py,我查看了它,雖然它看起來非常有用,但我不知道從哪裡開始,我現在沒有時間從頂部獲取它。如果您可以針對我的要求提供一些幫助,請提供。
謝謝你。
這是一個使用Brownie的範例,應該會有所幫助:
import time from brownie import Contract, network, web3 abi = {} # contract ABI as a dict address = "0x00" # contract address as a string network.connect('mainnet') my_contract = Contract("MyContractName", address, abi=abi) height = web3.eth.blockNumber while True: result = my_contract.myCallableFn(arg1, arg2) # change to call the desired method if result == desired_result: # do whatever you need to do while web3.eth.blockNumber == height: time.sleep(1) height = web3.eth.blockNumber
您將不得不修改一些配置設置以指向您自己的節點,或者在您的環境變數中設置一個 infura API 密鑰。
如果我的範例不清楚,有關訪問契約方法的文件也可能很有用。
希望這可以幫助。