From 365c875ced771e1f7de85b609965e003a822bc96 Mon Sep 17 00:00:00 2001 From: Facundo Spagnuolo Date: Wed, 20 Sep 2017 10:54:26 -0300 Subject: [PATCH] Create detailed ERC20 interface --- contracts/token/DetailedERC20.sol | 15 +++++++++++++ test/DetailedERC20.js | 35 ++++++++++++++++++++++++++++++ test/helpers/DetailedERC20Mock.sol | 8 +++++++ 3 files changed, 58 insertions(+) create mode 100644 contracts/token/DetailedERC20.sol create mode 100644 test/DetailedERC20.js create mode 100644 test/helpers/DetailedERC20Mock.sol diff --git a/contracts/token/DetailedERC20.sol b/contracts/token/DetailedERC20.sol new file mode 100644 index 000000000..c61cde2e9 --- /dev/null +++ b/contracts/token/DetailedERC20.sol @@ -0,0 +1,15 @@ +pragma solidity ^0.4.11; + +import './ERC20.sol'; + +contract DetailedERC20 is ERC20 { + string public name; + string public symbol; + uint8 public decimals; + + function DetailedERC20(string _name, string _symbol, uint8 _decimals) { + name = _name; + symbol = _symbol; + decimals = _decimals; + } +} diff --git a/test/DetailedERC20.js b/test/DetailedERC20.js new file mode 100644 index 000000000..ce8f43920 --- /dev/null +++ b/test/DetailedERC20.js @@ -0,0 +1,35 @@ +const BigNumber = web3.BigNumber; + +require('chai') + .use(require('chai-as-promised')) + .use(require('chai-bignumber')(BigNumber)) + .should(); + +const DetailedERC20Mock = artifacts.require('./helpers/DetailedERC20Mock.sol'); + +contract('DetailedERC20', accounts => { + let detailedERC20 = null; + + const _name = "My Detailed ERC20"; + const _symbol = "MDT"; + const _decimals = 18; + + beforeEach(async function() { + detailedERC20 = await DetailedERC20Mock.new(_name, _symbol, _decimals); + }); + + it('has a name', async function () { + const name = await detailedERC20.name(); + name.should.be.equal(_name); + }); + + it('has a symbol', async function () { + const symbol = await detailedERC20.symbol(); + symbol.should.be.equal(_symbol); + }); + + it('has an amount of decimals', async function () { + const decimals = await detailedERC20.decimals(); + decimals.should.be.bignumber.equal(_decimals) + }); +}); diff --git a/test/helpers/DetailedERC20Mock.sol b/test/helpers/DetailedERC20Mock.sol new file mode 100644 index 000000000..5396ee4ef --- /dev/null +++ b/test/helpers/DetailedERC20Mock.sol @@ -0,0 +1,8 @@ +pragma solidity ^0.4.11; + +import '../../contracts/token/StandardToken.sol'; +import '../../contracts/token/DetailedERC20.sol'; + +contract DetailedERC20Mock is StandardToken, DetailedERC20 { + function DetailedERC20Mock(string _name, string _symbol, uint8 _decimals) DetailedERC20(_name, _symbol, _decimals) {} +}