@dnextco/tokenboost-solidity-erc223token
Version:
Solidity contracts for TokenBoost (ERC223Token)
315 lines (268 loc) • 13.9 kB
JavaScript
const tokenWidgetRenderer = artifacts.require("ERC223TokenWidgetRenderer");
const ERC223Token = artifacts.require("ERC223Token");
const RenderableERC223Token = artifacts.require("RenderableERC223Token");
const ERC223TokenRenderer = artifacts.require("ERC223TokenRenderer");
const ERC223TokenInputsRenderer = artifacts.require("ERC223TokenInputsRenderer");
const MyBalanceWidgetRenderer = artifacts.require("MyBalanceWidgetRenderer");
const TransferWidgetRenderer = artifacts.require("TransferWidgetRenderer");
const BurnTokensWidgetRenderer = artifacts.require("BurnTokensWidgetRenderer");
const MaxMintableWidgetRenderer = artifacts.require("MaxMintableWidgetRenderer");
const MintTokensWidgetRenderer = artifacts.require("MintTokensWidgetRenderer");
const PauseWidgetRenderer = artifacts.require("PauseWidgetRenderer");
const TokenAddressWidgetRenderer = artifacts.require("TokenAddressWidgetRenderer");
const TotalSupplyWidgetRenderer = artifacts.require("TotalSupplyWidgetRenderer");
const UnpauseWidgetRenderer = artifacts.require("UnpauseWidgetRenderer");
const ERROR_MSG = 'VM Exception while processing transaction: revert';
contract("widgetRenderer Test", async (accounts) => {
it("should render correctly", async () => {
let instance = await tokenWidgetRenderer.new();
let tokenInstance = await ERC223Token.new(accounts[0], "Bitcoin", "BTC");
assert.equal(await instance.render("ko", tokenInstance.address), "[]");
});
it('should resource Test', async () => {
let instance = await tokenWidgetRenderer.new();
await instance.setResource("ko", "Info", "This is information");
assert.equal(await instance.resource("ko", "Info"), "This is information");
});
it('should adminWidget', async () => {
let tokenRenderer = await ERC223TokenRenderer.new();
let token = await ERC223Token.new(accounts[0], "Bitcoin", "BTC");
await token.update(
"Bitcoin",
"BTC",
8,
21000000,
true,
true,
true
);
let burnTokensWidgetRenderer = await BurnTokensWidgetRenderer.new();
let maxMintableWidgetRenderer = await MaxMintableWidgetRenderer.new();
let mintTokensWidgetRenderer = await MintTokensWidgetRenderer.new();
let pauseWidgetRenderer = await PauseWidgetRenderer.new();
let tokenAddressWidgetRenderer = await TokenAddressWidgetRenderer.new();
let totalSupplyWidgetRenderer = await TotalSupplyWidgetRenderer.new();
let unpauseWidgetRenderer = await UnpauseWidgetRenderer.new();
let adminWidgetRenderer = [totalSupplyWidgetRenderer.address, tokenAddressWidgetRenderer.address,
maxMintableWidgetRenderer.address, mintTokensWidgetRenderer.address, burnTokensWidgetRenderer.address,
pauseWidgetRenderer.address, unpauseWidgetRenderer.address];
tokenRenderer.setAdminWidgetRenderers(adminWidgetRenderer);
await totalSupplyWidgetRenderer.setResource("en", "total_supply", "Total Supply");
await totalSupplyWidgetRenderer.setResource("en", "short_desc", "Short desc for total supply.");
await totalSupplyWidgetRenderer.setResource("en", "long_desc", "Long desc for total supply.");
await tokenAddressWidgetRenderer.setResource("en", "token_address", "Token Address");
await tokenAddressWidgetRenderer.setResource("en", "short_desc", "Short desc for token address.");
await tokenAddressWidgetRenderer.setResource("en", "long_desc", "Long desc for token address.");
await maxMintableWidgetRenderer.setResource("en", "max_mintable", "Max Mintable");
await maxMintableWidgetRenderer.setResource("en", "short_desc", "Short desc for max mintable.");
await maxMintableWidgetRenderer.setResource("en", "long_desc", "Long desc for max mintable.");
await maxMintableWidgetRenderer.setResource("en", "amount", "Amount");
await maxMintableWidgetRenderer.setResource("en", "update", "Update");
await maxMintableWidgetRenderer.setResource("en", "update_confirm", "Do you want to update max mintable?");
await mintTokensWidgetRenderer.setResource("en", "mint_tokens", "Mint Tokens");
await mintTokensWidgetRenderer.setResource("en", "short_desc", "Short desc for mint tokens.");
await mintTokensWidgetRenderer.setResource("en", "long_desc", "Long desc for mint tokens.");
await mintTokensWidgetRenderer.setResource("en", "mintable_eth", "Mintable ETH");
await mintTokensWidgetRenderer.setResource("en", "address", "Address");
await mintTokensWidgetRenderer.setResource("en", "amount", "Amount");
await mintTokensWidgetRenderer.setResource("en", "mint", "Mint");
await mintTokensWidgetRenderer.setResource("en", "mint_confirm", "Do you want to mint?");
await burnTokensWidgetRenderer.setResource("en", "burn_tokens", "Burn Tokens");
await burnTokensWidgetRenderer.setResource("en", "short_desc", "Short desc for burn tokens.");
await burnTokensWidgetRenderer.setResource("en", "long_desc", "Long desc for burn tokens.");
await burnTokensWidgetRenderer.setResource("en", "burnable_eth", "Burnable ETH");
await burnTokensWidgetRenderer.setResource("en", "amount", "Amount");
await burnTokensWidgetRenderer.setResource("en", "burn", "Burn");
await burnTokensWidgetRenderer.setResource("en", "burn_confirm", "Do you want to burn?");
await pauseWidgetRenderer.setResource("en", "pause", "Pause Token");
await pauseWidgetRenderer.setResource("en", "short_desc", "Short desc for pause.");
await pauseWidgetRenderer.setResource("en", "long_desc", "Long desc for pause.");
await pauseWidgetRenderer.setResource("en", "pause_confirm", "Do you want to pause this token?");
await unpauseWidgetRenderer.setResource("en", "unpause", "Unpause Token");
await unpauseWidgetRenderer.setResource("en", "short_desc", "Short desc for pause.");
await unpauseWidgetRenderer.setResource("en", "long_desc", "Long desc for pause.");
await unpauseWidgetRenderer.setResource("en", "unpause_confirm", "Do you want to unpause this token?");
let json = [{
"title": "Total Supply",
"shortDesc": "Short desc for total supply.",
"longDesc": "Long desc for total supply.",
"width": 2,
"elements": [{
"id": "total_supply",
"type": "integer",
"label": "Total Supply",
"data": 0
}]
}, {
"title": "Token Address",
"shortDesc": "Short desc for token address.",
"longDesc": "Long desc for token address.",
"width": 2,
"elements": [{
"id": "token_address",
"type": "address",
"label": "Token Address",
"data": token.address
}]
}, {
"title": "Max Mintable",
"shortDesc": "Short desc for max mintable.",
"longDesc": "Long desc for max mintable.",
"width": 4,
"elements": [{
"id": "amount",
"type": "ethEdit",
"label": "Amount",
"data": 0
}, {
"id": "update",
"action": {
"functionName": "setMintable",
"arguments": ["amount"],
"confirm": "Do you want to update max mintable?"
},
"type": "button",
"label": "Update",
"data": null
}]
}, {
"title": "Pause Token",
"shortDesc": "Short desc for pause.",
"longDesc": "Long desc for pause.",
"width": 4,
"elements": [{
"id": "pause",
"action": {
"functionName": "pause",
"arguments": [],
"confirm": "Do you want to pause this token?"
},
"type": "button",
"label": "Pause Token",
"data": null
}]
}];
// assert.equal(await tokenRenderer.adminWidgets("en",token.address), JSON.stringify(json));
// console.log(await tokenRenderer.adminWidgets("en",token.address));
});
it('should userWidget', async () => {
let tokenRenderer = await ERC223TokenRenderer.new();
let token = await ERC223Token.new(accounts[0], "Bitcoin", "BTC");
await token.update(
"Bitcoin",
"BTC",
8,
21000000,
true,
true,
true
);
let myBalanceWidgetRenderer = await MyBalanceWidgetRenderer.new();
let transferWidgetRenderer = await TransferWidgetRenderer.new();
let burnTokensWidgetRenderer = await BurnTokensWidgetRenderer.new();
let userWidgetRenderer = [myBalanceWidgetRenderer.address, transferWidgetRenderer.address, burnTokensWidgetRenderer.address];
await tokenRenderer.setUserWidgetRenderers(userWidgetRenderer);
await myBalanceWidgetRenderer.setResource("en", "my_balance", "My Balance");
await myBalanceWidgetRenderer.setResource("en", "short_desc", "Short desc for my balance.");
await myBalanceWidgetRenderer.setResource("en", "long_desc", "Long desc for my balance.");
await transferWidgetRenderer.setResource("en", "transfer", "Transfer");
await transferWidgetRenderer.setResource("en", "short_desc", "Short desc for transfer.");
await transferWidgetRenderer.setResource("en", "long_desc", "Long desc for transfer.");
await transferWidgetRenderer.setResource("en", "receiver", "Receiver");
await transferWidgetRenderer.setResource("en", "amount", "Amount");
await transferWidgetRenderer.setResource("en", "transfer_confirm", "Do you want to transfer?");
await burnTokensWidgetRenderer.setResource("en", "burn_tokens", "Burn Tokens");
await burnTokensWidgetRenderer.setResource("en", "short_desc", "Short desc for burn tokens.");
await burnTokensWidgetRenderer.setResource("en", "long_desc", "Long desc for burn tokens.");
await burnTokensWidgetRenderer.setResource("en", "burnable_eth", "Burnable ETH");
await burnTokensWidgetRenderer.setResource("en", "amount", "Amount");
await burnTokensWidgetRenderer.setResource("en", "burn", "Burn");
await burnTokensWidgetRenderer.setResource("en", "burn_confirm", "Do you want to burn?");
let json = [{
"title": "My Balance",
"shortDesc": "Short desc for my balance.",
"longDesc": "Long desc for my balance.",
"width": 4,
"elements": [{
"id": "my_balance",
"type": "eth",
"label": "My Balance",
"data": 0
}]
}];
assert.equal(await tokenRenderer.userWidgets("en", token.address), JSON.stringify(json));
});
it('should render inputs()', async () => {
let token = await ERC223Token.new(accounts[0], "Bitcoin", "BTC");
await token.update(
"Bitcoin",
"BTC",
8,
21000000,
false,
false,
false
);
let tokenRenderer = await ERC223TokenRenderer.new();
let renderer = await ERC223TokenInputsRenderer.new();
await tokenRenderer.setInputsRenderer(renderer.address);
await renderer.setResource("en", "name", "Name");
await renderer.setResource("en", "symbol", "Symbol");
await renderer.setResource("en", "decimals", "Decimals");
await renderer.setResource("en", "initial_supply", "Initial Supply");
await renderer.setResource("en", "mintable", "Mintable");
await renderer.setResource("en", "burnable", "Burnable");
await renderer.setResource("en", "pausable", "Pausable");
await renderer.setResource("en", "update", "Update");
await renderer.setResource("en", "update_confirm", "Do you want to update this token?");
let json = [{
"id": "name",
"type": "textEdit",
"label": "Name",
"data": "Bitcoin"
}, {
"id": "symbol",
"type": "textEdit",
"label": "Symbol",
"data": "BTC"
}, {
"id": "decimals",
"type": "numberEdit",
"label": "Decimals",
"data": 8
}, {
"id": "initial_supply",
"type": "numberEdit",
"label": "Initial Supply",
"data": 21000000
}, {
"id": "mintable",
"type": "switch",
"label": "Mintable",
"data": false
}, {
"id": "burnable",
"type": "switch",
"label": "Burnable",
"data": false
}, {
"id": "pausable",
"type": "switch",
"label": "Pausable",
"data": false
}, {
"id": "update",
"action": {
"functionName": "update",
"arguments": ["name", "symbol", "decimals", "initial_supply", "mintable", "burnable", "pausable"],
"confirm": "Do you want to update this token?"
},
"type": "button",
"label": "Update",
"data": null
}];
// await console.log(await tokenRenderer.inputs("en", token.address));
// await console.log(JSON.stringify(json));
// assert.equal(await tokenRenderer.inputs("en",token.address), JSON.stringify(json));
});
});