Size: a a a

2021 June 16

S

Solo player in Ethereum Russia
Кто может сказать как определить строку где выпадает ошибка? Как ввести в солидити логи?
источник

MD

Microwave Dev in Ethereum Russia
есть сообщения о ревертах, по ним можно предположить. также парити и гез вроде тоже дают trace выполнения транзанкции, по нему можно попробовать что-то понять)
источник

AZ

Alexey Zhdanov in Ethereum Russia
hardhat в себе имеет console.log построенный на эвентах
источник

MD

Microwave Dev in Ethereum Russia
в trace адреса вызовов и хэши методов выполнения
источник

MD

Microwave Dev in Ethereum Russia
ну кстати тут не понятно: хочет человек в тестах или на продакшене понять, но логи в хардхате удобные, да)
источник

AB

Anton Bounty in Ethereum Russia
У кого-нибудь было, что контракт верифицировал успешно, галочка появилась, а когда переходишь во вкладку "Contract" - никакого кода нет и предлагает снова верифицировать. Но при повторной попытке верификации пишет: Error! A Match was found but unable to insert contract source code to database
BSC
источник

MD

Microwave Dev in Ethereum Russia
жесть, я в bsc не пробовал верифицировать, а на мэиннете не было такого)
источник

AB

Anton Bounty in Ethereum Russia
ладно, до утра если не вылечится - придется повторно задеплоить, чтобы потом всё не передеплоивать

UPD
похоже bscscan просто умер. думаю починят..
источник

SB

Sam Becket in Ethereum Russia
Если трюфель, то
 truffle debug <txid> 


Это откроет дебаггер, где ты сможешь точно определить на какой строчке зафейлилось и почему
источник

SM

Sergey Mironov in Ethereum Russia
Лучше эвентов пока логи не придумали
источник

S

Solo player in Ethereum Russia
Всем спасибо за информацию 👍
источник

SM

Sergey Mironov in Ethereum Russia
Это глюк bscscan. У них вообще часто глюки. Надо подождать
источник

SB

Sam Becket in Ethereum Russia
Если транза ревертнется эвент может не прожечься
источник

SM

Sergey Mironov in Ethereum Russia
Ну, в ревертах логи как бы само собой присутствуют.
источник

SB

Sam Becket in Ethereum Russia
Ну дебаггер то поудобнее будет немножко :)
источник

RK

Ruslan Kopylov in Ethereum Russia
можно ли как-то положить строку (string) в эвент, но чтобы она отображалась как единое значение на etherscan?
источник

AZ

Alexey Zhdanov in Ethereum Russia
Что подразумевается под единым значением?
источник

RK

Ruslan Kopylov in Ethereum Russia
немного другой вопрос. у меня есть код:


contract Lottery {
   

   function playout(uint256 id, uint256 requiredWinnersCount, string[] memory identifiers) public {
       for (uint i = 0; i < 5; i++) {
           emit Win(identifiers[i]);
       }
   }
   
   event Win(string identifier);
}


отправляю транзакцию: https://rinkeby.etherscan.io/tx/0x342a9ec86607c5dd01648f3ecc84b1ef58d97b08d2147b47f930c2c2d5c73e67
источник

RK

Ruslan Kopylov in Ethereum Russia
получаю revert. думаю может с аргументами что-то не так, но я проверил input data, выпилил селектор функции и декодировал. декодируется все ок
источник

RK

Ruslan Kopylov in Ethereum Russia
аааа, массивы строк не поддерживаются
источник