Зачем показывать сообщение об ошибке 'system.ExtrinsicFailed' при вызове функции Smart Contract?
Я научился развертывать контракт по следующим страницам: https://substrate.dev/substrate-contracts-workshop/ https://substrate.dev/docs/en/contracts/deploying-a-contract
Но они оба терпят неудачу на шаге "Вызов контракта"
Вот исходный код цепочки, который я создал (по https://substrate.dev/docs/en/tutorials/creating-your-first-substrate-chain): https://github.com/coolcode/sux-contract-chain
Сообщение об ошибке: внешнее событие system.ExtrinsicFailed
3 ответа
Контакт превращался в tombstone
сразу после создания. Этого можно избежать, подняв значение по умолчанию.endowment
при развертывании.
Похоже, что сейчас руководство обновлено, и на этапе развертывания смарт-контракта (https://substrate.dev/substrate-contracts-workshop/) оно содержит:
Чтобы создать экземпляр нашего контракта, нам просто нужно предоставить этому контрактному счету 10 000 000 эндаументов и снова установить максимально разрешенный газ в 500 000 единиц.
Однако они рассматривают возможность улучшения взаимодействия с пользователем для контрактов, которые превращаются в tombstone
Вы можете увидеть обсуждение здесь:https://github.com/paritytech/ink/issues/304
Я также столкнулся с этой проблемой. Решение состоит в том, чтобы установить большую сумму перевода.
system.ExtrinsicFailed означает, что что-то пошло не так. Вы должны точно расшифровать, что здесь пошло не так, а затем сделать репост, если вы все еще не уверены. Кажется, нет подробных указаний о том, что означают эти ошибки, поэтому это сбивает с толку;{ У меня здесь свои собственные замешательства.