Skip to content

WebAssembly Virtual Machine Built In Elixir

License

Notifications You must be signed in to change notification settings

SEVENID/AlchemyVM

 
 

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

AlchemyVM Banner

Packagist Build Status

WebAssembly Virtual Machine written in Elixir. Currently used as the Wasm VM in the Elixium Network

Usage

Standard Usage

{:ok, ref} = AlchemyVM.start() # Start AlchemyVM
AlchemyVM.load_file(ref, "path/to/wasm/file.wasm") # Load a module
AlchemyVM.execute(ref, "some_exported_function") # Call a function
# => {:ok, total_gas_cost, :function_return_value}

Options

For Gas Limit use:

 AlchemyVM.execute(ref, "some_exported_function", [:gas_limt, 100])

For Trace use:

AlchemyVM.execute(ref, "some_exported_function", [:trace, true])

For Trace & gas limit use:

AlchemyVM.execute(ref, "some_exported_function", [gas_limit: 100, trace: true])

More detailed usage instructions can be found on HexDocs.

Installation

Add alchemy_vm to your list of dependencies in mix.exs:

def deps do
  [
    {:alchemy_vm, "~> 0.7"}
  ]
end

Documentation can be generated with ExDoc and published on HexDocs. Once published, the docs can be found at https://hexdocs.pm/wasp_vm.

About

WebAssembly Virtual Machine Built In Elixir

Resources

License

Stars

Watchers

Forks

Packages

No packages published

Languages

  • Elixir 100.0%