Transactions
如果我需要交易或電話,如何從 web3py 中理解
我有一個帶有函式的契約,其中只有當某個條件為真時,它才會改變區塊鏈的狀態,否則它會發出一個事件並返回:
address[] public global_state; function test() public payable returns (bool) { if (condition on global_state) { emit Event(); return false; } // change the state global_state.push(address("0x0")) return true }
如果我理解正確,如果條件為真,我不需要事務,一個簡單的呼叫就可以完成這項工作。
但是當我從 web3py 呼叫函式時,我不知道條件的狀態。我想知道之前是否有辦法理解它並使用 web3py 進行正確的呼叫,因為對於交易我需要等待,但對於呼叫,我不需要。
發出事件也是修改操作,因為事件記錄在塊中。但是,如果您不需要其他人可以看到事件,您可以執行以下操作:
- 通過本地呼叫函式
call
- 檢查返回值
- 如果返回值為
true
,則通過在事務中呼叫函式send