Skip to content
This repository has been archived by the owner on Jul 26, 2021. It is now read-only.
/ houston Public archive

A development environment, testing framework and smart contract pipeline for Terra, aiming to make life as a Terra developer easier.

Notifications You must be signed in to change notification settings

terra-money/houston

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

11 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Houston 🚀




npm npm bundle size

Houston is a development environment, testing framework and smart contract pipeline for Terra, aiming to make life as a Terra developer easier.

** 🚨 Houston is now currently in Beta version. Completed version is not ready yet. use it with your own caution. **

Features

  • Built-in smart contract compilation, linking, deployment and wasm binary management.
  • Configurable build pipeline with support for custom build processes.
  • Scriptable deployment & migrations framework.
  • Network management for deploying to Terra's public & private networks.
  • Instant rebuilding of webassembly binaries during development.

Installation

Houston will gracefully setup a stable version of rust compiler and wasm target to develop smart contracts on Terra blockchain.

Grab the latest version of NPM:

npm install -g @terra-money/houston

Documentation

To get more information on Houston, check out the documentation.

Kickstart

Houston has five commands to help smart contract development:

init: for project initialization

compile: for compiling contracts

migrate: for deploying contracts to blockchain

add: for adding or downloading contract cargo projects

To get help on each command, run houston help <command>.

Initialize project

mkdir myProject
cd myProject
houston init

Once this operation is completed, you'll now have a project structure with the following items:

myProject/
  |- contracts
  | |- starter
  |- wasm
  |- schema
  |- migrations
  | |- 0_deploy_starter.ts 
  |- package.json
  |- tsconfig.json

contracts: directory for cosmwasm contracts

wasm: wasm binaries of compiled contracts

schema: generated schema of compiled contracts

test: test script directory for contract interaction

starter: a starter cosmwasm contract cargo

package.json: package manager for migration scripts

tsconfig.json: Typscript configuration file for migration scripts

Compile contracts

Set current working directory inside of the project directory

houston compile [contractName]

All contract cargos in the contracts directory will be compiled as default.

[contractName] is an optional parameter to specify which cargo to compile with the command.

Once this operation is initiated, you'll see the event in the console as below:

🛠 Compiling your contracts...
===========================

After comilation of each contract, you'll get the directories for compiled results as below:

> WASM written to /Users/.../<project folder>/wasm
> Schemas written to /Users/.../<project folder>/schemas/<contract name>_schema

Compiled WASM binaries will be placed in wasm directory as <contract name>.wasm. Generated collection of schema json files will be placed as a directory with the name <contract name>-schema in schemas directory.

You will have the new project structure with the following items:

myProject/
  |- contracts
  | |- starter
  |- wasm
  | |- starter.wasm
  |- schema
  | |- starter-schema
  |   |- config.json
  |   |- ....
  | migrations
  | |- 0_deploy_starter.ts
  | package.json
  | tsconfig.json

Running migrations

run your migraion scripts in migrations folder after installing packages with the following command:

npm install
houston migrate 

Contributions

Contributions are welcome to this project for helping Terra developers to build their dapps. To contribute to this project, you can check CONTRIBUTING.md for the detail.

Or you can join the Terra's official discord channel and discuss new ideas or addition.


License

This software is licensed under the Apache 2.0 license. See LICENSE for full disclosure.

© 2020 Terraform Labs, PTE.


 

Powering the innovation of money.

About

A development environment, testing framework and smart contract pipeline for Terra, aiming to make life as a Terra developer easier.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published