4

I'm proposing a transaction to execute an action of some smartcontract, the transaction is showing executed irrespective of failure or success of the smartcontract action(say transferFunds), this is misleading. I'm trying to do everything using eosjs and want to make the process seamless. My issue is similar to: this question

But I want to throw proper error and show the transaction as failed. How can I trace that error?

1 Answer 1

0

So this is a problem with the way that MSIGs work on EOSIO at the moment. There is a fix for this, but it is in testing phase and will be implemented at the discretion of the BPs.

The reason that this problem occurs is related to deferred transactions, which are now deprecated in EOSIO.

The problem is caused by the MSIG transaction calling a deferred transaction to execute the actual transaction that is being proposed. This is a problem because deferred transactions often fail due to their lower priority to be processed by BPs compared to non-deferred transactions.

When the upgrade is implemented, then the execution of the proposed transaction will be done inline as part of the MSIG, so a successful MSIG execution will guarantee that the proposed transaction also executed.

In the mean time, there is no way to guarantee that the transaction executes. You can use dfuse to get the transaction ID of the deferred transaction and then wait for it to enter the executed status, but this could take a significant amount of time and is likely to fail, leading to a bad UX.

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Not the answer you're looking for? Browse other questions tagged or ask your own question.