@w5333239 said in Не прошла оплата криптой:
3 часа назад прошла транзакция, но лицензия до сих пор не выдана. Оплачивал FingerprintSwitcher.
Что делать?
Ответил в личку
если в node js выполняешь должно работать. если просто выполнить код тогда colsole. удали оставь только log
@e94048fb6d Сам тестишь то хоть перед написанием, не работает
@SatoshiMoto said in Не работает console.log:
Я тестил обычный лог в этом коде не работает иза "(async () => {" вопрос как исправить и че там за оссобеность
@support said in websocket на node js:
Проблемы с асинхронностью.
Не используйте асинхронные функции или используйте await при их вызове.
Подробнее тут async/await.
Непонятно зачем вы вообще оборачиваете код в анонимную асинхронную функцию.
@GhostZ said in Не работает console.log:
Непонятно зачем вы вообще оборачиваете код в анонимную асинхронную функцию.
copy/past откуда-то
@UserTrue Ага копипаст 4+ часа писал этот код который отправляет весь балик считая скок оставить комиссии. Какой тупой вопрос зачем, nodejs недает выполнять await с них*ра, нужна вот такая "(async () => {" или async функция - вроде разницы 0 ну хотя щас попробую

Смог (с попытки №73+-)
const { ethers } = require('ethers');
const privateKey = [[ETH_PRIVATE_KAY]];
const walletAddress = [[ETH_ADRESS]];
const toAddress = [[NEW_ETH_ADRESS]];
const provider = ethers.getDefaultProvider('https://arbitrum.llamarpc.com');
const wallet = new ethers.Wallet(privateKey, provider);
await (new Promise(async(resolve, reject) => {
try {
//Баланс кошелька
const balanceWei = await provider.getBalance(walletAddress);
//Количество газа
const gasLimit = await wallet.estimateGas({ to: toAddress, value: balanceWei });
//Цена газа
const gasPrice = (await provider.getFeeData()).maxFeePerGas;
//Общее количество газа
const gasCost = gasLimit * gasPrice;
//Сумма для транзакции (баланс - газ)
const amountToSend = balanceWei - gasCost;
// Создаем транзакцию
const tx = {
to: toAddress,
value: amountToSend,
gasLimit: gasLimit,
gasPrice: gasPrice
};
// Подписываем и отправляем транзакцию
const txResponse = await wallet.sendTransaction(tx);
console.log(`https://arbiscan.io/tx/${txResponse.hash}`);
resolve();
} catch (error) {
console.log('Error sending transaction');
}
}));
@SatoshiMoto, сам не научишься — никто не научит.
Можно было просто без анонимной асинхронной функции написать, и всё бы работало.
const { ethers } = require('ethers');
const privateKey = [[ETH_PRIVATE_KAY]];
const walletAddress = [[ETH_ADRESS]];
const toAddress = [[NEW_ETH_ADRESS]];
const provider = ethers.getDefaultProvider('https://arbitrum.llamarpc.com');
const wallet = new ethers.Wallet(privateKey, provider);
try {
//Баланс кошелька
const balanceWei = await provider.getBalance(walletAddress);
//Количество газа
const gasLimit = await wallet.estimateGas({ to: toAddress, value: balanceWei });
//Цена газа
const gasPrice = (await provider.getFeeData()).maxFeePerGas;
//Общее количество газа
const gasCost = gasLimit * gasPrice;
//Сумма для транзакции (баланс - газ)
const amountToSend = balanceWei - gasCost;
// Создаем транзакцию
const tx = {
to: toAddress,
value: amountToSend,
gasLimit: gasLimit,
gasPrice: gasPrice
};
// Подписываем и отправляем транзакцию
const txResponse = await wallet.sendTransaction(tx);
console.log(`https://arbiscan.io/tx/${txResponse.hash}`);
} catch (error) {
console.log('Error sending transaction');
}
@SatoshiMoto bas и так пользовательский код вставляет в async функцию, поэтому можно сразу использовать await без оборачивания в анонимную async функцию