Contract-Development
如何查看使用智能合約發送的數據?
查看此交易:
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 方法來讀取儲存的值。