import { Web3 } from 'web3';
const web3 = new Web3('https://sepolia.infura.io/v3/YOUR_INFURA_ID')
// Импортировать аккаунт из закрытого ключа
const account = web3.eth.accounts.wallet.add('YOUR_PRIVATE_KEY')
// Проверить текущий баланс счета
const balance = await web3.eth.getBalance(account[0].address)
const balanceEth = await web3.utils.fromWei(balance,'ether');
console.log('Баланс:',balanceEth,'ETH')
// Построение транзакций
const transaction = {
nonce: await web3.eth.getBlockTransactionCount(account[0].address), // Представляет количество транзакций, отправленных с определенного адреса. Каждый раз, когда транзакция успешно вводится в блок, nonce транзакции, отправленной с адреса, будет увеличиваться. Предотвратите многократное выполнение одной и той же транзакции из-за несчастных случаев.
from:account[0].address, // адрес отправки
to:'0x668E1d61eB2872D4bF6dd17D32DC5f1FD993A6AD', // адрес получения
value: web3.utils.toWei('0.000045', 'ether'), // Сумма перевода
gasPrice:gasPrice, // Текущая цена на газ
}
// Расчетный газ
const gas = await web3.eth.estimateGas(transaction)
console.log('Расчетный расход газа:', gas)
transaction.gas = gas // Максимальный газ. Если транзакция завершена, весь оставшийся газ будет возвращен. Если его недостаточно, транзакция будет отменена.
web3.eth.sendTransaction(transaction).then(console.log);
import { Web3 } from 'web3';
const web3 = new Web3('https://ethereum-sepolia.publicnode.com');
// зарегистрироваться
const account = web3.eth.accounts.privateKeyToAccount('0x3afbb985211d17b9cdb5b3e7fd9f1017952d19275b4f6d31ed9f15bffb2e6185')
// Создайте исходную транзакцию
const rawTransaction = {
from: account.address,
to:'0x668E1d61eB2872D4bF6dd17D32DC5f1FD993A6AD',
nonce: await web3.eth.getTransactionCount(account.address),
value:10,
gasPrice:gasPrice,
data: "0x0"
}
// Расчетный газ
const gas = await web3.eth.estimateGas(rawTransaction)
console.log('Расчетный расход газа:', gas)
rawTransaction.gas = gas
// Подпишите транзакцию, используя свой приватный ключ
const signedTransaction = await web3.eth.accounts.signTransaction(rawTransaction, account.privateKey);
// Отправить транзакцию
const txReceipt = await web3.eth.sendSignedTransaction(signedTransaction.rawTransaction);
console.log('Transaction Receipt:', txReceipt);
Отказ от ответственности: эта работа распространяется под лицензией Attribution-NonCommercial-ShareAlike 4.0 International (CC BY-NC-SA 4.0)[1]. Пожалуйста, укажите источник при ее использовании. Автор: мэнбин[2] блог: мэнбин[3] Гитхаб: mengbin92[4] cnblogs: Непреднамеренно полюбила воду[5] Сообщество разработчиков облачных технологий Tencent: Мюнстер[6]
[1]
С указанием авторства-Некоммерческая-ShareAlike 4.0 интернациональность (CC BY-NC-SA 4.0): https://creativecommons.org/licenses/by-nc-sa/4.0/deed.zh
[2]
mengbin: mengbin1992@outlook.com
[3]
mengbin: https://mengbin.top
[4]
mengbin92: https://mengbin92.github.io/
[5]
Влюбляюсь в воду нечаянно: https://www.cnblogs.com/lianshuiwuyi/
[6]
Мюнстер: https://cloud.tencent.com/developer/user/6649301