Зачем показывать сообщение об ошибке '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 означает, что что-то пошло не так. Вы должны точно расшифровать, что здесь пошло не так, а затем сделать репост, если вы все еще не уверены. Кажется, нет подробных указаний о том, что означают эти ошибки, поэтому это сбивает с толку;{ У меня здесь свои собственные замешательства.

Другие вопросы по тегам