Colendi Token is a ERC-20 token which is built based on open-zeppelin ERC-20 contract. Colendi platform aims to provide a better User Experience for end-users. Whereas, on Ethereum users are asked to have Ether in addition to any utility tokens. Mass adoption of blockchains requires frictionless user onboarding. There has been lots of proposals on this purporse like
- ERC-1776 by Austin Griffith - Native Meta Transactions
- ERC-865 Pay transfers in tokens instead of gas
- ERC-827 The execution of calls inside transfer and approvals
- ERC-677 Transfer and Call
In addition to these proposals, the organizations are built like The Gas Station Network Alliance. Colendi aims to facilitate the interactions of the user with the extended version of ERC-20. Our extensions are as follows :
Table of Contents
- Colendi Token
The features of Colendi Token are as follows:
This method is based on Austin Griffith's native-meta-transaction. It allows transferring COD tokens without having ETH. The transaction fee is paid in terms of COD to relayer and the relayer routes signed transaction to contract covering fee.
This method allows providing access to anyone for some amount of tokens owned by the user. Currently, most of utility tokens follow approve and transferFrom pattern. Yet it is proven to be secure so far, the user requires ETH to cover at least 2 transactions on network. With this function, user can be less affected of fluctating Transaction fees.
This method allows transferring COD tokens without having ETH on behalf of someone. It would be useful for some decentralized applications. The transaction fee is paid in terms of COD to relayer and the relayer routes signed transaction to contract covering fee.
This method is a replacement for approve & transferFrom pattern. In this case, the user can directly execute the same functionality in just one transaction.
This methods allows executing approveAndCall method without having ETH.
- You can clone the directory onto your local machine and install dependencies
NOTE THAT YOU CAN USE NPM OR YARN AS PACKAGE MANAGER
- Considering common programming paradigms, we integrated our contract deployment within continuous integration practice. The developers can also benefit from the pattern we followed. And, you can also choose to continue without configuring AWS or similar services.
Contract Compilation, Migration and Tests
Export environment variables
export infuraKey="INFURA_KEY" export mnemonic="MNEMONIC MNEMONIC ..." export gasPrice="2000000000" export gasAmount="6000000"
You can deploy the contract to Kovan, Rinkeby, Ropsten, Mainnet or local ganache network.
// Mainnet truffle migrate --network mainnet --reset // Kovan truffle migrate --network kovan --reset // Rinkeby truffle migrate --network rinkeby --reset
You can test your contract after running a local ganache network.
> ganache-cli > truffle-test
Alternatively, you can test using
solidity-coverage with following command and get coverage report along with tests.
- Node-js (Above version 8)
- Npm (Above version 6)
public doc link: Docs
- Fork this repository
- Clone to the local machine
- Create a branch and make changes
- Commit changes with clear explanation
- Push changes to Github
- Open a Pull Request
Issues & Feedback
Feel free to submit issues and enhancement requests
Colendi Token is provided under Apache License version 2.0. See LICENSE.md for more details.