Skip to content
The minimal runtime crate for running Rust programs on the Qtum Neutron platform
Assembly Rust Shell
Branch: master
Clone or download
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Permalink
Type Name Latest commit message Commit time
Failed to load latest commit information.
.cargo Rename target to -neutron Sep 27, 2019
bin Bump version and rename qtum references to neutron Sep 27, 2019
src
.gitignore Seems to be near complete Sep 20, 2019
Cargo.lock Forgot to update readme Sep 27, 2019
Cargo.toml Forgot to update readme Sep 27, 2019
LICENSE Add MIT license Sep 20, 2019
README.md Forgot to update readme Sep 27, 2019
assemble.sh Seems to be near complete Sep 20, 2019
build.rs Seems to be near complete Sep 20, 2019
i486-neutron.json Update OS to neutron Sep 27, 2019
i686-neutron.json Update OS to neutron Sep 27, 2019
link.x Place .rodata into .text Sep 26, 2019
lowlevel.asm Bump version and rename qtum references to neutron Sep 27, 2019

README.md

Neutron-star-rt

This is the minimal runtime and low level routines required to use the Qtum Neutron x86 platform. This includes using proper linking setup and several assembly routines for system calls and initialization.

To compile:

./assemble.sh # requires yasm to be installed
xargo build --target i486-neutron

The following functions should be defined by users of this crate:

#[no_mangle]
pub extern "C" fn __init_neutron() {}

This is used internally by the neutron-star crate and is called before the main function is called.

fn on_call() -> u32;
fn on_create() -> u32;

These two functions must be defined by the using crate and are executed when the contract is called or initially created, respectively.

Caveats

Static initializers probably do not work.

This requires a nightly build currently to use because of the custom target needed for the core crate.

You can’t perform that action at this time.