Как установить цену Eth при транзакции с web3js

#web3 #nft #ether

Вопрос:

Я пытаюсь установить цену сделки

Согласно документации :

значение (в вэй): сумма Вэй, которую необходимо перевести от отправителя получателю.

Но когда я ставлю это значение : ( для 0.04 eth) -> я получаю 73 eth в метамаске 🙂

( Я нахожусь в сети ринкеби)

вот мой код:

 window.contract = await new web3.eth.Contract(contractABI.abi, contractAddress);//loadContract();
     const transactionParameters = {
        to: contractAddress, // Required except during contract publications.
        from: window.ethereum.selectedAddress, // must match user's active address.
        'data': window.contract.methods.mint(window.ethereum.selectedAddress,number).encodeABI(),
        value: String(40000000000000000) 
      };
    try {
        const txHash = await window.ethereum
            .request({
                method: 'eth_sendTransaction',
                params: [transactionParameters],
            });
        return {
            success: true,
            status: " Check out your transaction on Etherscan: https://ropsten.etherscan.io/tx/"   txHash
        }
    } catch (error) {
      console.log(error);
        return {
            success: false,
            status: " Something went wrong: "   error.message
        }
    }
 

Ответ №1:

Я нашел обходной путь, похоже eth_sendTransaction , он плохо обрабатывает значение. Используя его таким образом, он теперь работает.

 window.contract.methods.mint(window.ethereum.selectedAddress,  1).send({
         from: window.ethereum.selectedAddress, value: web3.utils.toWei(String(0.05*number),"ether")});