Отправка токенов в блокчейне Harmony
Пытаюсь со своего метамаска кинуть на другой метамаск немного своих токенов, которые находятся в блокчейне Harmony, однако всегда получаю еррор, мол денег на покрытие газа мало. (Returned error: insufficient funds for transfer) На метамаске, с которого отправляю есть 271 one (Harmony) и больше 5 миллионов только что созданных мной токенов, которые я хочу кинуть на другой аккаунт метамаск
Код:
const { Web3 } = require('web3');
const web3 = new Web3('https://api.s0.b.hmny.io');
const contractAddress = 'contract address';
const contractABI = [{
"constant": false,
"inputs": [
{
"name": "_to",
"type": "address"
},
{
"name": "_value",
"type": "uint256"
}
],
"name": "transfer",
"outputs": [
{
"name": "",
"type": "bool"
}
],
"payable": false,
"stateMutability": "nonpayable",
"type": "function"
}];
const contract = new web3.eth.Contract(contractABI, contractAddress);
async function sendTransaction() {
try {
const privateKeyHex = 'my private key metamask';
const privateKeyBuffer = Buffer.from(privateKeyHex, 'hex');
const senderAccount = web3.eth.accounts.privateKeyToAccount(privateKeyBuffer);
const senderAddress = senderAccount.address;
console.log(senderAddress)
const receiverAddress = 'recivier key metamask';
const nonce = await web3.eth.getTransactionCount(senderAddress);
const gasPrice = await web3.eth.getGasPrice();
console.log(gasPrice)
const amount = '1';
const amountWei = web3.utils.toWei(amount, 'ether');
const rawTransaction = {
'from': senderAddress,
'nonce': nonce,
'gasPrice': gasPrice,
'to': contractAddress,
'value': '0x0',
'data': contract.methods.transfer(receiverAddress, amountWei).encodeABI(),
};
const signedTransaction = await web3.eth.accounts.signTransaction(rawTransaction, privateKeyHex);
const transactionReceipt = await web3.eth.sendSignedTransaction(signedTransaction.rawTransaction);
console.log('Transaction sent, hash:', transactionReceipt.transactionHash);
console.log('Receipt:', transactionReceipt);
} catch (error) {
console.error('Error sending transaction:', error);
}
}
sendTransaction();