seal: Fix and improve error reporting (#6773)
* seal: Rework ext_transfer, ext_instantiate, ext_call error handling * Deny calling plain accounts (must use transfer now) * Return proper module error rather than ad-hoc strings * Return the correct error codes from call,instantiate (documentation was wrong) * Make ext_transfer fallible again to make it consistent with ext_call * seal: Improve error messages on memory access failures * seal: Convert contract trapped to module error * seal: Add additional tests for transfer, call, instantiate These tests verify that those functions return the error types which are declared in its docs. * Make it more pronounced that to_execution_result handles trap_reason * Improve ReturnCode docs * Fix whitespace issues in wat files * Improve ReturnCode doc * Improve ErrorOrigin doc and variant naming * Improve docs on ExecResult and ExecError * Encode u32 sentinel value as hex * with_nested_context no longer accepts an Option for trie * Fix successful typo * Rename InvalidContractCalled to NotCallable
Showing
- substrate/frame/contracts/fixtures/call_return_code.wat 44 additions, 0 deletionssubstrate/frame/contracts/fixtures/call_return_code.wat
- substrate/frame/contracts/fixtures/caller_contract.wat 2 additions, 2 deletionssubstrate/frame/contracts/fixtures/caller_contract.wat
- substrate/frame/contracts/fixtures/destroy_and_transfer.wat 2 additions, 6 deletionssubstrate/frame/contracts/fixtures/destroy_and_transfer.wat
- substrate/frame/contracts/fixtures/drain.wat 3 additions, 8 deletionssubstrate/frame/contracts/fixtures/drain.wat
- substrate/frame/contracts/fixtures/instantiate_return_code.wat 47 additions, 0 deletions...rate/frame/contracts/fixtures/instantiate_return_code.wat
- substrate/frame/contracts/fixtures/ok_trap_revert.wat 35 additions, 0 deletionssubstrate/frame/contracts/fixtures/ok_trap_revert.wat
- substrate/frame/contracts/fixtures/self_destructing_constructor.wat 4 additions, 35 deletions...frame/contracts/fixtures/self_destructing_constructor.wat
- substrate/frame/contracts/fixtures/set_rent.wat 7 additions, 2 deletionssubstrate/frame/contracts/fixtures/set_rent.wat
- substrate/frame/contracts/fixtures/transfer_return_code.wat 31 additions, 0 deletionssubstrate/frame/contracts/fixtures/transfer_return_code.wat
- substrate/frame/contracts/src/exec.rs 131 additions, 70 deletionssubstrate/frame/contracts/src/exec.rs
- substrate/frame/contracts/src/gas.rs 6 additions, 5 deletionssubstrate/frame/contracts/src/gas.rs
- substrate/frame/contracts/src/lib.rs 23 additions, 1 deletionsubstrate/frame/contracts/src/lib.rs
- substrate/frame/contracts/src/storage.rs 1 addition, 0 deletionssubstrate/frame/contracts/src/storage.rs
- substrate/frame/contracts/src/tests.rs 245 additions, 22 deletionssubstrate/frame/contracts/src/tests.rs
- substrate/frame/contracts/src/wasm/mod.rs 95 additions, 16 deletionssubstrate/frame/contracts/src/wasm/mod.rs
- substrate/frame/contracts/src/wasm/runtime.rs 179 additions, 98 deletionssubstrate/frame/contracts/src/wasm/runtime.rs
Please register or sign in to comment