Gluwacoin controlled by a currency board.
Read Controlled Gluwacoin for details.
Gluwacoin is an interoperable stablecoin standard. The standard has built-in functions to enable exchange with other cryptocurrencies, which connects its ecosystem to other blockchains. We have implemented the system to support the ERC20 standard on the Ethereum network. The implementation includes security features, compliance features, and upgrade features that provide the desired level of security and elasticity.
The Gluwacoin Trust proposed the standard. This repository is the official implementations of the Gluwacoin standard by Gluwa.
For more information, see Gluwacoin, gluwacoin.com, or the original whitepaper.
$ npm install
$ npx oz init
You need this for local testing. We will use a preset of ERC20 to use as a base token for the ERC-20 Wrapper Gluwacoin.
$ npx oz link @openzeppelin/contracts-ethereum-package
Let’s deploy an ERC20 token contract to our development network. Make sure to have a Ganache instance running, or start one by running:
$ npx ganache-cli --deterministic
Note that the current version of Ganache does not work on Node 14
.
We are using Node 12
.
trufflesuite/ganache#732
% npx oz deploy
Nothing to compile, all contracts are up to date.
? Choose the kind of deployment regular
? Pick a network development
? Pick a contract to deploy @openzeppelin/contracts-ethereum-package/ERC20PresetMinterPauserUpgradeSafe
✓ Deployed instance of ERC20PresetMinterPauserUpgradeSafe
All implementations are up to date
? Call a function to initialize the instance after creating it? Yes
? Select which function initialize(name: string, symbol: string)
? name: string: Token
? symbol: string: T
✓ Instance created at [ADRESS OF THE CONTRACT]
To upgrade this instance run 'oz upgrade'
[ADRESS OF THE CONTRACT]
$ npx oz deploy
Nothing to compile, all contracts are up to date.
? Choose the kind of deployment upgradeable
? Pick a network development
? Pick a contract to deploy ControlledGluwacoin
All implementations are up to date
? Call a function to initialize the instance after creating it? Yes
? Select which function initialize(name: string, symbol: string, decimals: uint8, token: address)
? name: string: Gluwacoin
? symbol: string: G
? decimals: uint8: 18
? token: address: [ADRESS OF THE CONTRACT]
✓ Instance created at [ADRESS OF THE GLUWACOIN CONTRACT]
To upgrade this instance run 'oz upgrade'
[ADRESS OF THE GLUWACOIN CONTRACT]