Solidity

從未經驗證的合約中獲取狀態變數

  • January 20, 2022

是否可以從未經驗證的現有契約中獲取變數狀態,但我知道契約包含哪些變數、函式等?

假設我們有以下腳本(使用 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該合約在特定插槽中查詢儲存,但為此您需要了解該合約的內部結構。

引用自:https://ethereum.stackexchange.com/questions/119461