You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Something that @paulbellamy noticed while testing against stellar-core is that when a invocation fails with an error, the operation and transaction result are success.
This is unintuitive. It's very easy to write tools and applications that think everything worked as expected.
@paulbellamy the error-propagation path in core has changed quite a bit since this was filed, and I'm not 100% sure if it's been fixed or not. Can you elaborate a bit here? Like, specifically, what you mean by "invocation fails". Do you mean when a contract successfully returns a value that happens to be a Rust Val::Error / XDR SCError? Or do you mean like if the host fails execution due to running out of gas or an illegal operation or something like that?
I've made some end-to-end tests that "returning Val::Error causes the transaction to fail" and it all looks like it works, so I think this was solved some time ago. Please reopen if you see anything fishy here in the future.
Something that @paulbellamy noticed while testing against stellar-core is that when a invocation fails with an error, the operation and transaction result are success.
This is unintuitive. It's very easy to write tools and applications that think everything worked as expected.
cc @graydon
The text was updated successfully, but these errors were encountered: