Web3js

如何使用 web3 從錢包 A 向錢包 B 匯款?

  • March 26, 2022
var myContract = web3.eth.contract(abi);
var address = 合約地址;
var contract_data = myContract.at(address);
var 發件人 = '0xd3aaa525c087978133abb51​​7593ea334f16abd1f';
var接收器='0xff2b56315dc5372b45dfa3773c4cfd64f70c8e9c';
//transfer是合約中將錢從錢包A轉移到B的函式
var getData = contract_data.transfer.getData(receiver,amount);
web3.eth.sendTransaction({to:receiver, from:sender, data: getData});

資料來源:如何使用 sendTransaction 呼叫我的合約函式

當我跟踪餘額時,結果發現只從錢包 A 中扣除了汽油價格,沒有別的?但是當我使用元遮罩 UI 進行交易時,餘額會成功更新。我相信,我使用這個 api 的方式存在一些缺陷,如果有人能分享他們的經驗,那就太好了。

您需要以valueWei 形式傳遞給sendTransaction方法:

web3.sendTransaction({to:receiver, from:sender, value:web3.toWei("0.5", "ether")})

sender應該解鎖帳戶才能成功。

來源


發送你需要呼叫的令牌

contract_data.transfer(receiver,amount{from:web3.eth.accounts[0]});

或其中的一些東西。你不需要使用web3.eth.sendTransaction

//set web3 variable
const web3 = new Web3(window.ethereum);

//get all the accounts
const accounts = await web3.eth.getAccounts();

//if you're using react
this.setState({web3, accounts});

//send the tx using react
this.state.web3.eth.sendTransaction({to: contractAddress, from: this.state.accounts[0], value: ETHamount});

或者如果你沒有使用 react

web3.eth.sendTransaction({to: address, from: address, value: inWei});

可以在這裡找到 wei 到 eth 的轉換。關於 web3 變數設置的資訊(它通常使用infura作為端點

$$ aka the provider $$) 可以在這裡找到。

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