Skip to content
This repository has been archived by the owner on Mar 10, 2020. It is now read-only.
/ comakery-ethereum Public archive

CoMakery Ethereum helps you create and administer collaborative token based projects.

License

Notifications You must be signed in to change notification settings

CoMakery/comakery-ethereum

Repository files navigation

STATUS: This is BETA software. Use it with caution. Please send us feedback using github issues and code contributions using pull requests.

CoMakery Ethereum

CoMakery Ethereum helps you create and administer collaborative token based projects. It consists of Ethereum Smart Contracts, blockchain deployment scripts, and a Node REST API server using the Truffle Javascript framework. The smart contracts deployed can be used by talking to the CoMakery Ethereum node server, through an Ethereum Wallet, through your own software which communicates with an Ethereum node via RPC, or through the CoMakery.com site.

The DynamicToken smart contract conforms to the Ethereum Solidity ERC 20 Standard Token interface for easy integration with exchanges and other smart contracts. It's the same Token interface used by the Standard DAO.

Each Dynamic Token issued increases the total supply of tokens. This is an alternative to pre-issuing all tokens to a single account.

Road Map

CoMakery Ethereum is currently Beta software. Use it with caution and at your own risk.

This software currently implements the Dynamic Token, deployment scripts, and a simple REST server that communicates to an Ethereum node (e.g. geth or parity).

Future features planned include:

  • Integration with multiple DAO governance approaches such as Backfeed, The Standard DAO, and more classical Access Control DAOs.
  • Token exchange smart contracts suitable for integration with token based crowd sale platforms
  • Licenses suitable for open innovation

Open Source License

This software is released under an Open Source MIT licensed. It can be extended and used for commercial or non-commercial purposes.

Development

CircleCI

Prerequisites

cp truffle-overrides.js.example truffle-overrides.js  # edit as desired
# install yarn: https://yarnpkg.com
yarn install

Recommended: run testrpc server for dev and test (fast):

yarn testrpc  # run in separate window

Run tests

yarn test

Deploy

Test migrations

yarn truffle migrate -- --network development

Dev server

This starts an express server which receives simple calls and executes contract calls:

yarn dev:server  # run in separate window

Test Server Contract Deployment With Curl

Add a local api key to your .env file

API_KEY_WHITELIST='aaa'

Start the server with

bin/server

Post contract with parameters

curl -H "Content-Type: application/json" -X POST -d '{"maxSupply": 101, "apiKey": "aaa" }' http://localhost:3906/project

Returns the {"contractAddress":"0x..."}

Design Decisions

When to throw, and when to return success -> false?

  • throw if the user does not have access to a function, or other "security violation"
  • throw on integer overflow / underflow
  • return false for other failures (normal control flow)

About

CoMakery Ethereum helps you create and administer collaborative token based projects.

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published