Size: a a a

2021 October 25

IK

Ilya Kmet in Ethereum Russia
Согласен максимально
источник

IK

Ilya Kmet in Ethereum Russia
источник

ⓂO

Ⓜ️ister OsⓂ️inolog... in Ethereum Russia
Привет. Кто сможет подскзать? у нас есть два контракта
в первом у меня есть публичная булевская переменная (flag)
во втором контракте у меня есть функция в которой я делаю проверку на этот flag
как сделать функция бесплатной (view) при вызове flag из другого контракта ?
function getFlag () public view {
(bool success, bytes memory data) = otherContract.call(abi.encodeWithSelector(bytes4(keccak256(bytes('flag()')))));
       require(success && (data.length == 0 || abi.decode(data, (bool))), 'flag error');
}
источник

VT

Vasiliy Tikhonenko in Ethereum Russia
Никак
источник

VT

Vasiliy Tikhonenko in Ethereum Russia
Бесплатная функция вызванная из другого контракта будет жрать газ (если вызвана не из другой бесплатной функции)
источник

EG

Egor Gavrilov in Ethereum Russia
Почему никак?
Бесплатно из одного контракта прочитать стейт другого

Можно через low level call, но тогда ты увидишь предупреждение компилятора что возможно ты делаешь вызов на платную функцию

Лучше через интерфейс

interface IOrig{
 function flag() external view returns (bool);
}




IOrig(origAddress).flag();
источник

AZ

Alexey Zhdanov in Ethereum Russia
Вариант с интерфейсами выше норм
однако если нужно всё-таки low level, то есть staticcall вместо call

https://docs.soliditylang.org/en/latest/units-and-global-variables.html?highlight=staticcall#members-of-address-types
источник

ⓂO

Ⓜ️ister OsⓂ️inolog... in Ethereum Russia
От души
источник

ⓂO

Ⓜ️ister OsⓂ️inolog... in Ethereum Russia
Пробую
источник

AZ

Alexey Zhdanov in Ethereum Russia
Ну и бесплатным это всё добро будет только в случае, если дергать через eth_call в rpc (.call в web3 либах), а не из другого контракта при ончейн транзакции
источник

I(

Ian (k0rean_rand0m) in Ethereum Russia
Об этом и сказал)
источник

IK

Ilya Kmet in Ethereum Russia
Значит я не внимательно прочитал(
источник

g

gnoblin in Ethereum Russia
Прикольно
источник

p

plumbus.eth in Ethereum Russia
Здравствуйте!

Обьясните человеку — это часть кода в контракте в котором проверяют  сходиться ли адресс владельца с результатом дешифровки

signatureWallet(msg.sender ,_tokensId, _timestamp, _signature);

Кто нибудь может подсказать куда копать и как они на своей стороне сгенерировали правильные параметры для 8,000 адрессов что бы вышел адресс owner()
источник

p

plumbus.eth in Ethereum Russia
Это просто получается прикольный метод благодаря которому можно выдавать каждому уникальные ключи по сути
источник

p

plumbus.eth in Ethereum Russia
И вот я пытаюсь вкурить — и ломаю голову как они это сделали потому что в кодинге бум-бум — а в криптографии не бум-бум =)
источник

MD

Microwave Dev in Ethereum Russia
источник

MD

Microwave Dev in Ethereum Russia
это пермит подписи
источник

EG

Egor Gavrilov in Ethereum Russia
Скорее всего модель следующая:
Ты на фронтенде подписываешь некоторое сообщение (как видишь, хэш от кошелька, айди и времени) и отправляешь эту подпись куда-то

Далее с помощью твоей подписи можно выдавать тебе что хочешь – это твоя бесплатная авторизация
источник

MD

Microwave Dev in Ethereum Russia
ты можешь с бэкенда или ipfs хранилища пользователям выдавать их индивидуальные подписи
источник