Дам небольшой обзор на недавние события с монорепом L0.
По тому, что я увидел, многие попали в ловушку ожидания, конечно попытавшись сохранить холодный разум, и признали вероятность того, что evmAirdrop связан с газом.
Так вот, для начала дам просто технические референсы из документации:
Исходный код:
===
export async function evmAirdrop(signer: ethers.Signer, toAddress: string, value: BigNumberish) {
return await signer.sendTransaction({ to: toAddress, value: value }).then((tx) => tx.wait())
}
===
На вход функция принимает объект signer типа ethers.Signer. Из документации к Signer.sendTransaction:
signer.sendTransaction( transactionRequest )
This method populates the transactionRequest with missing fields, using populateTransaction and returns a Promise which resolves to the transaction.
Я думаю, здесь уже кто-то что-то мог понять.
Объясняя простыми словами:
Представьте, что у вас должно быть много однотипных транзакций, но нужно, чтобы какие-то поля были заменены. Это может быть газ, цена газа, отправитель, кому предназначена транзакция, и т.д.
Так вот, в данном отрезке кода на GitHub, уникальными полями для замены является "to" (кому транзакция), и "value" (нативный токен сети). Я думаю вы сами уже обо всём догадались. Эта транзакция выглядит так, как будто бы вам просто кто-то эфир перевел в Ethereum.
У токенов по-другому работает механизм передачи. Токен - это запись в массиве контракта, ваш кошелек = 100 токенов, всё, т.е. это данные, находящиеся внутри контракта. Для изменения состояния контракта, т.е. данных внутри него, в контракте создаются специальные функции, которые модифицируют данные внутри контракта, некие "входные точки". Т.е. в функции из GitHub должно быть передано поле "data", специальное поле, которое читает смарт контракт. При этом ни "to" ни "value" не являются уникальными: контракт один и тот же - контракт токена/аирдропа, value - 0, нативный токен забирается только в виде газа.
Итого: будьте бдительнее, и сохраняйте холодный разум.
Post #26
7.09K
- 🔥 31
- ⚡ 4
- 🐳 4
- 👾 1








