Ethers Js Transfer BNB Return 0 并没有结束到 Receiver Address
Etherjs Transfer BNB Return 0 and doesnt end to Receiver Address
嗨,我是智能合约的新手。我正在尝试使用 etherjs 和 nextjs 编写简单的传输代码。下面基本上是我的代码
import {ethers} from 'ethers';
const ContractAddr = '0xB8c77482e45F1F44dE1745F52C74426C631bDD52'; /* BNB Contract address */
const ContractABI =[{"constant":false,"inputs":[{"name":"_to","type":"address"},{"name":"_value","type":"uint256"}],"name":"transfer","outputs":[],"payable":false,"type":"function"}]
const provider = new ethers.providers.Web3Provider(window.ethereum);
const signer = provider.getSigner();
let numberOfTokens = ethers.utils.parseUnits('0.2', 18)
const Contract = new ethers.Contract(ContractAddr,ContractABI,signer)
const receiver = '0x8CA65A3Ce90d31a88FAa747c695183C2aefe537f';
Contract.transfer(receiver, numberOfTokens).then((transferResult) => {
console.log(transferResult)
alert("sent token")
}).catch((error) => {
console.error('error',error);
});
在我的 metamask 上,它按我想要的方式弹出:
然而,当我在 BSCscan 测试网上查看交易详情时,它显示 0 值,接收方是合约地址而不是接收方。
https://testnet.bscscan.com/tx/0x3278d9668391eee98aadf83e8ae58a0b999f2e9c3e5f47a21f504e1c04b24814
求助。被困了一个星期在 Whosebug 上上下搜索类似的问题:(
您将两种不同的方法混合在一起 - 发送 ERC-20 令牌和发送网络的本机货币。
在以太坊网络上,BNB 是一种 ERC-20 代币(link - 请注意您在代码中使用的 0xB8c7...
地址)。
但是,在 BSC 网络上,BNB 是原生货币。所以你使用本地交易来转移它——就像你在以太坊上转移 ETH 一样。
假设您的代码使用 BSC 提供商:
const provider = new ethers.providers.Web3Provider(window.ethereum);
const params = [{
from: senderAddress,
to: '0x8CA65A3Ce90d31a88FAa747c695183C2aefe537f',
value: ethers.utils.parseUnits('0.2', 18),
}];
const transactionResult = await provider.send('eth_sendTransaction', params);
嗨,我是智能合约的新手。我正在尝试使用 etherjs 和 nextjs 编写简单的传输代码。下面基本上是我的代码
import {ethers} from 'ethers';
const ContractAddr = '0xB8c77482e45F1F44dE1745F52C74426C631bDD52'; /* BNB Contract address */
const ContractABI =[{"constant":false,"inputs":[{"name":"_to","type":"address"},{"name":"_value","type":"uint256"}],"name":"transfer","outputs":[],"payable":false,"type":"function"}]
const provider = new ethers.providers.Web3Provider(window.ethereum);
const signer = provider.getSigner();
let numberOfTokens = ethers.utils.parseUnits('0.2', 18)
const Contract = new ethers.Contract(ContractAddr,ContractABI,signer)
const receiver = '0x8CA65A3Ce90d31a88FAa747c695183C2aefe537f';
Contract.transfer(receiver, numberOfTokens).then((transferResult) => {
console.log(transferResult)
alert("sent token")
}).catch((error) => {
console.error('error',error);
});
在我的 metamask 上,它按我想要的方式弹出:
然而,当我在 BSCscan 测试网上查看交易详情时,它显示 0 值,接收方是合约地址而不是接收方。
https://testnet.bscscan.com/tx/0x3278d9668391eee98aadf83e8ae58a0b999f2e9c3e5f47a21f504e1c04b24814
求助。被困了一个星期在 Whosebug 上上下搜索类似的问题:(
您将两种不同的方法混合在一起 - 发送 ERC-20 令牌和发送网络的本机货币。
在以太坊网络上,BNB 是一种 ERC-20 代币(link - 请注意您在代码中使用的 0xB8c7...
地址)。
但是,在 BSC 网络上,BNB 是原生货币。所以你使用本地交易来转移它——就像你在以太坊上转移 ETH 一样。
假设您的代码使用 BSC 提供商:
const provider = new ethers.providers.Web3Provider(window.ethereum);
const params = [{
from: senderAddress,
to: '0x8CA65A3Ce90d31a88FAa747c695183C2aefe537f',
value: ethers.utils.parseUnits('0.2', 18),
}];
const transactionResult = await provider.send('eth_sendTransaction', params);