/
gambit.js
50 lines (46 loc) · 1.79 KB
/
gambit.js
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
const assertFail = require("./helpers/assertFail");
const Gambit = artifacts.require("./Gambit.sol");
contract("Gambit", function(accounts) {
// CREATION
it("creation: test correct setting of vanity information", async () => {
let ctr = await Gambit.new({ from: accounts[0] });
assert.strictEqual(await ctr.name.call(), "Gambit");
assert.strictEqual((await ctr.decimals.call()).toNumber(), 8);
assert.strictEqual(await ctr.symbol.call(), "GAM");
});
// BURNING
it("burning: owner of the contract is able to burn tokens", async () => {
let ctr = await Gambit.new({ from: accounts[0] });
assert.strictEqual((await ctr.totalBurnt.call()).toNumber(), 0);
let logs = (await ctr.burn(100, { from: accounts[0] })).logs;
assert.equal(logs[0].event, "Transfer");
assert.equal(logs[0].args._from, accounts[0]);
assert.equal(
logs[0].args._to,
"0x0000000000000000000000000000000000000000"
);
assert.strictEqual(logs[0].args._value.toNumber(), 100);
assert.strictEqual(
(await ctr.balanceOf.call(accounts[0])).toNumber(),
259999999999900
);
assert.strictEqual(
(await ctr.totalSupply.call()).toNumber(),
259999999999900
);
assert.strictEqual((await ctr.totalBurnt.call()).toNumber(), 100);
});
it("burning: owner can only burn it's own tokens.", async () => {
let ctr = await Gambit.new({ from: accounts[0] });
await ctr.transfer(accounts[1], 250000000000000, {
from: accounts[0]
});
await assertFail(
async () => await ctr.burn.call(50000000000000, { from: accounts[0] })
);
});
it("burning: owner can only burn it's own tokens.", async () => {
let ctr = await Gambit.new({ from: accounts[0] });
await assertFail(async () => await ctr.burn.call(0, { from: accounts[0] }));
});
});