第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

為了賬號(hào)安全,請(qǐng)及時(shí)綁定郵箱和手機(jī)立即綁定
已解決430363個(gè)問(wèn)題,去搜搜看,總會(huì)有你想問(wèn)的

Web3js 調(diào)用和 truffle 調(diào)用的行為不同

Web3js 調(diào)用和 truffle 調(diào)用的行為不同

鴻蒙傳說(shuō) 2023-08-10 16:02:29
我有一份合同,看起來(lái)像這樣 -contract Calculator {    uint public result;    constructor() public {       result = 777;   //note the initial value    }    function add(uint a, uint b) public returns (uint, address) {       result = a + b;       return (result, msg.sender);    }}當(dāng)我在松露上調(diào)用該函數(shù)時(shí),我得到了正確的交易 -truffle(development)> await calculator.add(5,11){  tx: '0xa66e94bb28810bb2a861c97ee149718afa599d47b7b1c6e55743ea657fdeef56',  receipt: {    transactionHash: '0xa66e94bb28810bb2a861c97ee149718afa599d47b7b1c6e55743ea657fdeef56',    transactionIndex: 0,    blockHash: '0x6ae4e3ce65f1e177c419306a50662ed46f40c729a6a18ede028b07e63dd12f61',    blockNumber: 6,    from: '0x5d88950b52f89ad66906fc263e8c35ddacff04d4',    to: '0x7c8beb382c70cbf12b41fd4e5d74cfee53fdc391',    gasUsed: 26074,    cumulativeGasUsed: 26074,    contractAddress: null,    logs: [ [Object] ],    status: true,    logsBloom: '0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000040000000000000000000000000000000000000000000000000000000000000000000000000000000000000004000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800000000000000000000000000000000000000000020000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000010000000000000000200000000000000000000000000000000000000',    rawLogs: [ [Object] ]  },  logs: [    {      logIndex: 0,      transactionIndex: 0,      transactionHash: '0xa66e94bb28810bb2a861c97ee149718afa599d47b7b1c6e55743ea657fdeef56',      blockHash: '0x6ae4e3ce65f1e177c419306a50662ed46f40c729a6a18ede028b07e63dd12f61',      blockNumber: 6,      address: '0x7C8beb382C70CbF12b41fd4e5d74CfEe53FDc391',      type: 'mined',      id: 'log_28a5e84f',      event: 'Added',      args: [Result]    }  ]}
查看完整描述

1 回答

?
月關(guān)寶盒

TA貢獻(xiàn)1772條經(jīng)驗(yàn) 獲得超5個(gè)贊

Web3.js 合約對(duì)象與 Truffle 合約對(duì)象不同。結(jié)構(gòu)上有細(xì)微的差異,當(dāng)然,因?yàn)樗际菬o(wú)類型的 JavaScript,所以你不知道函數(shù)將有什么輸入或輸出。


從歷史上看,以太坊交易沒(méi)有返回值。Web3.js 行為早于這個(gè)時(shí)間,并且可能不支持直接返回交易值。getTransactionReceipt()然而,EIP 1288 記錄了如何通過(guò)對(duì)象獲取返回值receipt。


要讓 Web3.js 修改 EVM 狀態(tài),您需要執(zhí)行send()而不是call(). 這是另一個(gè)弱類型問(wèn)題,因?yàn)椴粦?yīng)混淆視圖和編寫(xiě)函數(shù)。


嘗試:


    console.log("Calculator adding: ", await calculatorContract.methods.add(11, 88).send({

        from: '0x38e3614A5Cf95f0DBb858D9E3752Ac477DA70ccD'

    }));

解決 Truffle 和 Web3.js 之間的差異。解決行為差異的最簡(jiǎn)單方法是根本不使用 Truffle 工件,而是到處使用 Web3.js 合約。


詩(shī)。我推薦 OpenZeppelin SDK(Node.js / TypeScript)而不是 Truffle。它對(duì)于 TypeScript 類型來(lái)說(shuō)更加理智,也可以在前端和后端代碼中用作 Web3.js 的替代品。或者使用 Python 和 Web3.py 甚至更好,因?yàn)槿绻阌心芰η袚Q語(yǔ)言,那么這些為你的問(wèn)題中的猜測(cè)游戲留下了更少的空間。


查看完整回答
反對(duì) 回復(fù) 2023-08-10
  • 1 回答
  • 0 關(guān)注
  • 127 瀏覽
慕課專欄
更多

添加回答

舉報(bào)

0/150
提交
取消
微信客服

購(gòu)課補(bǔ)貼
聯(lián)系客服咨詢優(yōu)惠詳情

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動(dòng)學(xué)習(xí)伙伴

公眾號(hào)

掃描二維碼
關(guān)注慕課網(wǎng)微信公眾號(hào)