Skip to content

Commit

Permalink
Added additional info on supporters and prerequisites for use.
Browse files Browse the repository at this point in the history
  • Loading branch information
thekevinbrown committed Apr 24, 2019
1 parent 1d66b3d commit 8900599
Showing 1 changed file with 49 additions and 14 deletions.
63 changes: 49 additions & 14 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -5,6 +5,7 @@
Inspired by the popular Truffle framework and developed in Typescript, Lamington makes smart contract development simple for any level of EOSIO developer.

[![Build Status](https://travis-ci.org/CoinageCrypto/lamington.svg?branch=master)](https://travis-ci.org/CoinageCrypto/lamington)
[![Supported by Coinage](https://coina.ge/assets/supported-by-coinage-badge.svg)](https://coina.ge)

## Features

Expand All @@ -20,37 +21,63 @@ The Lamington library includes CLI tools and JavaScript utilities to streamline

## Installation

Lamington includes command line tools and JavaScript utilities for EOSIO contract development. If you haven't installed Lamington as a global dependency already, we recommend doing so with;
### Prerequisites

Lamington requires Docker and NodeJS to be installed before it can be used.

- Docker: We recommend [installing Docker with the standard installer for your platform](https://www.docker.com/get-started).
- NodeJS: We recommend [installing NodeJS with NVM](https://github.com/creationix/nvm).

### Installing Lamington

Lamington includes command line tools and JavaScript utilities for EOSIO contract development. We recommend installing the framework as a development dependency within your project. This lets you run commands like `lamington test` in your project.

```
$ npm install --save-dev lamington
```

From there you just need to add node scripts to your `package.json` file that trigger `lamington` actions, for example:

```
npm install -g lamington
{
...
"scripts": {
"build": "lamington build",
"start": "lamington start eos",
"stop": "lamington stop eos",
"test": "lamington test"
},
...
}
```

This provides CLI commands to build and test contracts, along with helpful commands like boilerplate generation and initialization.
### Global Installation

We recommend also installing the framework as a development dependency within your project, in order to take advantage of Lamington's utilities and helper methods.
If you'd like the convenience of using the `lamington` command without adding it as a project dependency, you can install it on your system globally, just be mindful that this can create trouble if you use `lamington` with multiple projects simultaneously and don't have them all ready for the same version.

To install globally, run:

```
npm install --save-dev lamington
$ npm install -g lamington
```

## Usage

Lamington is super simple! Whether you're migrating from Solidity, or a seasoned EOSIO developer deploying a complex Decentralized Application.
Lamington is super simple! Whether you're migrating from Solidity, or a seasoned EOSIO developer deploying a complex decentralized application (dApp) you'll find yourself right at home in no time.

### Building

Compiling your smart contracts with Lamington is as simple as;

```
lamington build
$ lamington build
```

Lamington automatically searches for all files with the `.cpp` file extension before batch compiling within a docker container. Compiling within a docker container with locked configuration ensures contracts compile consistently and clean every time.

#### Ignoring Files & Folders

Fortunately we realized that not every `.cpp` file is a build ready contract. So we added an additional ignore file, rightly named `.lamingtonignore`, to configure directories, files and patterns you don't want added to your build process. The `.lamingtonignore` follows the same syntax as a standard `.gitignore`, requiring a line separated list of ignore definitions. We've added the command line method `lamington ignore` to generate a `.lamingtonignore` file with default settings.
Not every `.cpp` file is a build ready contract. So we added an additional ignore file, rightly named `.lamingtonignore`, to configure directories, files and patterns you don't want added to your build process. The `.lamingtonignore` follows the same syntax as a standard `.gitignore`, requiring a line separated list of ignore definitions. We've added the command line method `lamington ignore` to generate a `.lamingtonignore` file with default settings.

#### Specifying Build Contracts

Expand All @@ -60,23 +87,25 @@ If you'd like to run builds on specific contracts, an additional contract `ident
lamington build [identifier]
```

_Replacing the `[identifier]` with your contract name, filename or fullpath._
_Replace the `[identifier]` with the relative path to the contract with or without the .cpp extension._

### Testing

```
lamington test
```

This command uses Mocha to run all your tests.

## Configuration

Lamington ships with a default configuration to make getting started simple and setup free. However, as your project grows, so will the need for additional Lamington configuration. For example, deployment to a testnet or the live network will require environment setup. Additionally, you'll need customize your configuration if you'd like to control Lamington's fine grain settings. Fortunately we've made it easy to get started with a simple boilerplate generation method;
Lamington ships with a default configuration to make getting started simple and setup free. However, as your project grows, so will your need for additional Lamington configuration. For example, deployment to a testnet or the live network will require environment setup. Additionally, you'll need customize your configuration if you'd like to control Lamington's fine grained settings. Fortunately we've made it easy to get started with a simple boilerplate generation method;

```
lamington init
```

This creates a `.lamingtonrc` file in your current directory. The `.lamingtonrc` file allows you to configure additional settings using JSON syntax.
This creates a `.lamingtonrc` file in your current directory which defaults to the latest available versions of EOS and EOS.CDT. The `.lamingtonrc` file allows you to configure additional settings using JSON syntax.

### Using a Configuration File

Expand All @@ -103,8 +132,14 @@ You can find more information about the Lamington tool-set and join our growing

## Contributors

_Contribution guide_
[Kevin Brown](https://github.com/thekevinbrown), Creator & Developer
[Mitch Pierias](https://github.com/MitchPierias), Developer
- [Kevin Brown](https://github.com/thekevinbrown), Creator & Developer
- [Mitch Pierias](https://github.com/MitchPierias), Developer

## Supporters

<p align="center">
<a href="https://coina.ge"><img src="https://coina.ge/assets/coinage-logo-light.png" alt="Supported by Coinage" width="100"/></a>
</p>
<p align="center">
This project is proudly supported by <a href="https://coina.ge">Coinage</a>.<br/>
</p>

0 comments on commit 8900599

Please sign in to comment.