Size: a a a

2021 July 05

VL

Valentin L in Ethereum Russia
этот лимит можно настривать? как хендлить такую ошибку?

код максимально простой тут и он рабочий

const gasEstimate = await instance.methods
           .mint(receiver)
           .estimateGas({ from: sender })
источник

VL

Valentin L in Ethereum Russia
на этом момент валится. все переменные корректны
источник

A

Arseniy | @freeatnet in Ethereum Russia
@gen4sp скорее нужно смотреть в код контракта

менять лимит в estimateGas смысла нет — gas limit блока (в ропстене) 8_000_000, а тут транзакция требует >80_000_000, то есть она в 10 раз больше лимита блока и просто не сможет быть замайнена.
источник

VL

Valentin L in Ethereum Russia
Контракт тоже рабочий и не менялся. Стандартный erc721 от цепелина
источник

H

Hashkeeper in Ethereum Russia
Выходит условно торнадо работает так, я генерирую хэш с набором параметров и записываю его хэш в дерево, а затем человек на другой стороне с помощью моего изначального хэша верифицирует с помощью Верифаера является ли этот хэш хешем тем хэшем в дереве, верно?
источник

H

Hashkeeper in Ethereum Russia
Снарки круто
источник

A

Arseniy | @freeatnet in Ethereum Russia
Ради развлечения, отправьте транзакцию и посмотрите revert code 🙂
источник

VL

Valentin L in Ethereum Russia
запустил транзакцию из remix - все прошло успешно
источник

VL

Valentin L in Ethereum Russia
а газ у одной и той же функции всегда одинаковый, меняется только цена, верно? я могу его захардкодить?
источник

AZ

Alexey Zhdanov in Ethereum Russia
Может меняться в зависимости от состояния, стоимость некоторых опкодов переменная (например запись нулевого слота или перезависись)
источник

AZ

Alexey Zhdanov in Ethereum Russia
Тут осторожно надо
источник

A

Arseniy | @freeatnet in Ethereum Russia
+
источник

VL

Valentin L in Ethereum Russia
сейчас попробовал с харкодным газом - прошла сама транзакция. что же делать? почему estimate может ломаться?
источник

VL

Valentin L in Ethereum Russia
источник

I

IceCream time 🍧🍧🍧... in Ethereum Russia
Точно одги и теже аргументы в estimate и при вызове?
источник

AZ

Alexey Zhdanov in Ethereum Russia
estimate ведет себя так же как и call, в том плане что тоже проходит все операции и может выкидываться ревертами
источник

AZ

Alexey Zhdanov in Ethereum Russia
Так что вопрос актуальный
источник

A

Arseniy | @freeatnet in Ethereum Russia
Дурацкий вопрос, но точно from в estimate и отправитель реальной транзакции одинаковый?
источник

VL

Valentin L in Ethereum Russia
Да, все верно


async mintSigned(receiver, sender) {
       const encoded = instance.methods.mint(receiver).encodeABI()
       const gasPrice = await web3.eth.getGasPrice()
       console.log(' > ', encoded, gasPrice)
       console.log(' >>> ', receiver, sender)
       // this works
       // const gasEstimate = 156244

       // this doesnt. error here
       const gasEstimate = await instance.methods
           .mint(receiver)
           .estimateGas({ from: sender })


       const tx = {
           to: CONTRACT_ADDR,
           from: sender,
           data: encoded,
           gasPrice,
           gas: Math.round(gasEstimate * 1.1),
       }
       console.log('tx',tx)
       return web3.eth.accounts
           .signTransaction(tx, WALLET_KEY)
           .then((signed) => {
               return new Promise((resolve, reject) => {
                   return web3.eth
                       .sendSignedTransaction(signed.rawTransaction)
                       .on('transactionHash', function (hash) {
                           console.log('[CREATED]transactionHash', hash)
                           return resolve(hash)
                       })
               })
           })
   }
источник

AZ

Alexey Zhdanov in Ethereum Russia
Сначала показалось что это наезд на вопрос Вячеслава))
источник