Contract-Development

如何查看使用智能合約發送的數據?

  • January 8, 2020

查看此交易:

https://rinkeby.etherscan.io/tx/0xf38b9f1fdb1a6f309bb4671bbcee235c9b75685ac96f99955d59b9a112db1156

指本契約的創建:

https://rinkeby.etherscan.io/address/0xc05e3556824a30d9ac2187339c9a60b954b127c1

這是程式碼

pragma solidity >=0.6.0;

contract test001 {

   int private age;

   function setAge(int _age) public {
       age = _age;
   }

}

我發票 setAge 傳遞 25 作為參數,請參閱 tx

https://rinkeby.etherscan.io/tx/0xbeee3e737020e9ca41e08f26a49f7890e42ccc1f6475637dd01f1682848dd762

**我的目標:**我希望能夠保存 txid 來檢索我發送的數據;在這種特定情況下,我可以看到使用設置的“年齡”= 25。

最終目標是將持久性認證數據(一小部分整數和短字元串)保存到區塊鏈中,並能夠查閱呼叫合約功能發送的數據。

我認為,如果我能夠查閱使用通用區塊鏈瀏覽器連結 etherscan.io 發送的數據,我不需要將所有數據儲存到合約中

如果可以查閱我發送的數據,我該怎麼做?

可能我完全誤解了區塊鏈上數據的可見性。耐心點,我是新人

您可以在狀態更改選項卡中看到“25”(切換到“數字”)。但最簡單的可能是讓合約發出一個事件,因為很容易從 web3 讀取合約的所有事件。

如果您的目標是在區塊鏈上永久儲存認證數據並檢索它們,您可以使用 setter 和 getter 方法。

Solidity 預設為公共狀態變數創建一個 getter 方法。在私有狀態變數的情況下,您需要定義一個 getter 方法來讀取儲存的值。

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