I’m trying to understand the way SEND_MODE works, especially the 2 (ignore errors) flag.

I have a contract which does the following:

() recv_internal(…) {

set_data(…)
send_raw_message(…, 128 + 2)
}


If the contract does not have enough balance to carry out the action enqueued by send_raw_message, I get:
1. exit code 0 for compute phase
2. exit code 37 (not enough balance) in action phase
3. changes do not get persisted to storage
4. I send my message with a bounce flag, but the amount does not get bounced back to my wallet

Is it the intended behavior that messages only bounce in the compute phase? do errors in the action phase get swallowed?

Oct 23, 2022, 10:03 AM

© 2024 Draquery.com All rights reserved.