Доступ к последнему параметру функции из msg.data

У меня есть резервная (неназванная) функция в моем контракте, и я знаю, что последний параметр (или, во-первых, не имеет значения) всегда имеет значение uint. Возможно ли каким-то образом получить доступ к нему, хотя msg.data?

5 голосов | спросил md2312 5 J0000006Europe/Moscow 2016, 21:23:56

1 ответ


4

Да, все параметры могут быть доступны из msg.data (термин EVM - calldata).

Кальдата кодируется ABI: Что такое ABI и почему необходимо взаимодействовать с контрактами?

Извлечение первого параметра проще других. Для первого параметра пропустите первые 4 байта (идентификатор метода), а следующие 32 байта - это uint (слева), который вы ищете.

Если параметр был последним, извлечение его было бы более активно, особенно если некоторые из параметров массивы, strings, или bytes


Примечание: случай, когда резервная функция получает очень ограниченное количество газа , и в этом случае вы не сможете делать то, что хотите, с помощью uint (например, хранить его).

ответил eth 5 J0000006Europe/Moscow 2016, 23:44:59

Похожие вопросы

Популярные теги

security × 330linux × 316macos × 2827 × 268performance × 244command-line × 241sql-server × 235joomla-3.x × 222java × 189c++ × 186windows × 180cisco × 168bash × 158c# × 142gmail × 139arduino-uno × 139javascript × 134ssh × 133seo × 132mysql × 132