Ecosyste.ms: Awesome

An open API service indexing awesome lists of open source software.

https://github.com/CityOfZion/neo-storm

Smart contract framework for the NEO smart economy written in the Go programming language.
https://github.com/CityOfZion/neo-storm

blockchain neo smart-contracts virtual-machine vm

Last synced: 3 months ago
JSON representation

Smart contract framework for the NEO smart economy written in the Go programming language.

Lists

README

        



neo-storm


Smart contract framework for the NEO smart economy written in the Go programming language.








# Overview
- Golang to NVM bytecode compiler
- NEO Virtual machine
- Smart contract debugger
- Private network for quickly deploying and testing smart contracts
- Tooling for deploying smart contracts in production environments
- Package manager for smart contract modules that are written in Go

# Installation
The following section will help you with installing neo-storm and it's dependencies.

[**A very in-depth tutorial about how to get started with neo-storm can be found here**](https://medium.com/@likkee.chong/neo-token-contract-nep-5-in-go-f6b0102c59ee)

## Project dependencies
### Golang
neo-storm requires a working and proper ***Golang*** installation. To install Golang you can check out these [installation instructions](https://golang.org/doc/install).

### Godep
For package management neo-storm uses ***dep***. To install dep you can check out these [installations instructions](https://github.com/golang/dep).

# Installing the neo-storm framework
### Unix
`neo-storm` uses [dep](https://github.com/golang/dep) as its dependency manager. After installing `dep` you can run:
```
make install
```

After the installation is completed, you can find the binary in `bin/neo-storm` or globally use `neo-storm`.

# Getting started
Lot's of **examples contracts** can be found in the [examples folder](https://github.com/CityOfZion/neo-storm/tree/master/examples).

### Create a new smart contract
To create a new smart contract you can run the `init` command:
```
neo-storm init --name mycontract
```

This will generate a folder called `mycontract` with a `main.go` file in the root directory.

The folder structure will look like this:
```
- mycontract
- main.go
```

And will produce the following `main.go` file in the root of the directory:
```
package mycontract

import "github.com/CityOfZion/neo-storm/interop/runtime"

func Main(op string, args []interface{}) {
runtime.Notify("Hello world!")
}
```

### Compiling smart contracts
To compile a smart contract you can run the `compile` command:
```
neo-storm compile -i path/to/file.go
```
This will output an `.avm` file in the same directory you executed this command in.

You can change location directory of the output file by adding the `-o, --out` flag.
```
neo-storm compile -i path/to/file.go -o path/to/file.avm
```

# Tutorials
- [Step-by-step guide on issuing your NEP-5 token on NEO’s Private net using Go](https://medium.com/@likkee.chong/neo-token-contract-nep-5-in-go-f6b0102c59ee)

# Contributing
Feel free to contribute to this project after reading the
[contributing guidelines](https://github.com/CityOfZion/neo-storm/blob/master/CONTRIBUTING.md).

# Contact
- [@anthdm](https://github.com/anthdm) on Github
- [@anthdm](https://twitter.com/anthdm) on Twitter
- [@jeroenptrs](https://github.com/jeroenptrs) on Github
- [@_jptrs](https://twitter.com/_jptrs) on Twitter
- Reach out to us on the [NEO Discord](https://discordapp.com/invite/R8v48YA) channel
- Send us an email: [email protected]

# Licence
- Open-source MIT