Solidity
從未經驗證的合約中獲取狀態變數
是否可以從未經驗證的現有契約中獲取變數狀態,但我知道契約包含哪些變數、函式等?
假設我們有以下腳本(使用 Brownie,變數的名稱是
variable_to_obtain
):from brownie import Contract from scripts.helpers import get_account def get_variable_of_instance(instance_address): account = get_account() instance_contract = Contract.from_explorer(instance_address, {"from": account}) variable_to_return = instance_contract.variable_to_obtain() return variable_to_return def main(): var = get_variable_of_instance("address_of_instance") print(var)
任何的想法?非常感謝。
如何執行此操作取決於您要從中提取變數的契約。
如果合約通常提供查詢該變數的函式,您只需要知道正確的函式 id 即可查詢它。
如果不是這種情況,那麼您可以使用
eth_getStorageAt
該合約在特定插槽中查詢儲存,但為此您需要了解該合約的內部結構。