Wemark smart contracts
Smart contracts in this repository
- WemarkToken contract is in
contracts/WemarkToken.sol
Setup
$ npm install
$ npm install -g truffle
Testing
$ ./scripts/test.sh
Test coverage
$ ./scripts/coverage.sh
Flatten contracts (for using in Remix or verifying on Etherscan)
$ ./scripts/flatten_contracts.sh
contracts/flattened
Output dir: WemarkToken structure
WemarkToken is implemented in WemarkToken.sol
, complying with ERC20 standard. The token behavior is inherited from a few major token implementations, developed by TokenMarket and OpenZeppelin.
lib/token/BurnableToken.sol
)
BurnableToken (A pretty common functionality that lets any token holder burn tokens. Burning decreases the total token supply.
lib/token/ReleasableToken.sol
)
ReleasableToken (Allows the token owner to control who can transfer tokens. We're using it to allow a smooth roll-out of Wemark Token to contributors. Once the token has been released, we have no option to lock transfers later on.
lib/token/UpgradeableToken.sol
)
UpgradeableToken (Allows us to migrate token functionality to a new contract, at any point in time. This is vital in the case that we would like to fix a critical bug or upgrade the functionality of the token.
lib/token/VestedToken.sol
)
VestedToken (Allows any token holder to grant tokens to any party under a custom vesting plan. This is used for distributing tokens to our private sale contributors, as well as for tokens allocated to the founders, team, advisors and partners.