Contract-Invocation
你可以在合約呼叫中輸入一個變數嗎?
在 ETH 中,你可以通過輸入可變參數來呼叫合約嗎?由於該參數的值在呼叫時是未知的,並且必須在執行時進行評估?
類似“someFunction(current_time_at_run_time);”的東西 - 這是允許的嗎?
謝謝。
您不能讓 EVM 在您在交易中提供的參數中插入內容。創建事務的程式碼(通常是 JavaScript)當然可以執行牠喜歡的任何計算來創建參數,但在您的情況下,創建事務的時間與執行(探勘)的時間不匹配。
您可以做的是將呼叫包裝在另一個契約中,並讓外部契約執行您想要的插值。
contract Inner { function someFunction(uint timestamp) { // do something with that timestamp } } contract Outer { function callInnerWithCurrentTime(address inner) { Inner(inner).someFunction(now); } }