Заметка по Access List и Transaction types
В статье про пересылку 1 DAI я встретил упоминание стандартов EIP-2930 (Access List) и EIP-2718 (Transaction types).
Хочу оставить тут небольшое напоминание, если вдруг однажды в тестовых вопросах попадется пункт про одного из них.
Итак, кратко говоря, ERP-2930 позволяет сэкономить немного газа при вызовах из одного контракта в другой, определяя наперед, какие контракты и слоты памяти будут нужны.
Если вы не знакомы с понятиями "горячего", "теплого" и "холодного" доступа к слотам, то поищите эту информацию на канале выше.
С помощью этого EIP, например, вместо холодного обращения стоимостью 2600 газа за Call и 2100 газа SLOAD, транзакция потребует 2400 и 1900 газа за холодный вызов сразу и после только 100 газа за уже теплые обращения.
Что же касается EIP-2718, то вы могли встречать такую строку при формировании транзакции:
0x02 || RLP([chainId, nonce, maxPriorityFeePerGas, maxFeePerGas, gasLimit, to, value, data, accessList, signatureYParity, signatureR, signatureS])
так вот, 0х02 - это и есть один из типов транзакций.
Всего, с новым предложением, их может быть 128 - от 0х00 до 0x7f. Я нашел описание трех:
0х00 - Legacy type, где требовались параметры nonce, gasPrice, gasLimit, to, value, data, v, r, и s.
0х01 - такой же как и legacy, но добавляется accessList из EIP-2930.
0х02 - транзакции представленные во время Лондонского форка с предложением EIP-1559. Пример был выше.
0x03 - в разработке в предложении EIP-4844
P.S. Про другие типы пока не нашел, если у вас есть ссылки про них, буду рад почитать и потом написать пост.
#2930 #2718 #tx #accesslist #access
Post #778
824
- 👍 2