UNPKG

@dnextco/tokenboost-solidity-erc223token

Version:

Solidity contracts for TokenBoost (ERC223Token)

315 lines (268 loc) 13.9 kB
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)); }); });