簡體   English   中英

在 JavaScript 中使用 ethereum.request 從智能合約中檢索數據

[英]Using ethereum.request to Retrieve Data from Smart Contract in JavaScript

使用 javascript,我目前能夠使用此代碼(取自MetaMask 文檔)將數據寫入我在 Ethereum Rovan test.network 上構建的智能合約

const transactionParameters = {
    to: '0xacb241f59e1a8c7a61f0781aed7ad067269feb26',
    from: account,
    data: '0xfcc74f71aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa',
};

const txHash = await ethereum.request({
    method: 'eth_sendTransaction',
    params: [ transactionParameters ],
});

但是,我無法讀取數據。 我怎樣才能做到這一點? 讀取數據的方法的十六進制代碼是 0x1f1bd692,所以我認為使用這些參數會起作用:

    to: '0xacb241f59e1a8c7a61f0781aed7ad067269feb26',
    from: account,
    data: '0x1f1bd692',

不幸的是,這只會返回交易 hash,而不是我想要的智能合約數據。

注意:如果可能,請不要推薦任何庫。

這是解決方案:

const data = await ethereum.request({
    method: 'eth_getStorageAt',
    params: [ '0xacb241f59e1a8c7a61f0781aed7ad067269feb26', '0x0' ],
})

params[] 中的第一個參數是合約的地址。 第二個參數是要檢索的存儲項目的索引。 它必須是以“0x”開頭的十六進制數。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM