As a blockchain developer, I want an extensive syscall interface.
[x] Create an object that maps system calls to their implementation, be it native or wasm. Allow the object to extend/replace the implementation of any specific system call. #44
[x] Ensure there is a native implementation for all existing system calls such that after bootstrap all syscalls exist. (Move all current host functions in to the newly created syscall table.) #45
Note: An implementation that would satisfy this story could look like this:
map< syscall_slot, std::optional< vm_code_ptr > >
Example contract:
#include <koinos/koinos.hpp>
using namespace koinos;
class [[koinos::contract]] hello : public contract {
public:
using contract::contract;
void hi( name user ) {
print( "Hello, ", user);
}
}
Example call: client push action hello hi '["bob"]' -p alice@active
As a blockchain developer, I want an extensive syscall interface.
Note: An implementation that would satisfy this story could look like this:
Example contract:
Example call:
client push action hello hi '["bob"]' -p alice@active
Order of operations: