const { requireBox } = require('@liquidapps/box-utils');
const { assert } = require('chai'); // Using Assert style
const { requireBox } = require('@liquidapps/box-utils');
const { getCreateKeys } = requireBox('eos-keystore/helpers/key-utils');
const getDefaultArgs = requireBox('seed-zeus-support/getDefaultArgs');
const { getTestContract } = requireBox('seed-eos/tools/eos/utils');
const artifacts =requireBox('seed-eos/tools/eos/artifacts');
const deployer = requireBox('seed-eos/tools/eos/deployer');
const { genAllocateDAPPTokens, readVRAMData } = requireBox('dapp-services/tools/eos/dapp-services');
/*** UPDATE CONTRACT CODE ***/
var contractCode = 'mycontract';
var ctrt = artifacts.require(`./${contractCode}/`);
const { awaitTable, getTable, delay } = requireBox('seed-tests/lib/index');
describe(`${contractCode} Contract`, () => {
/*** SET CONTRACT NAME(S) ***/
const code = 'airairairair';
const code2 = 'airairairai2';
/*** CREATE TEST ACCOUNT NAME ***/
const getTestAccountName = (num) => {
var fivenum = num.toString(5).split('');
for (var i = 0; i < fivenum.length; i++) {
fivenum[i] = String.fromCharCode(fivenum[i].charCodeAt(0) + 1);
fivenum = fivenum.join('');
var s = '111111111111' + fivenum;
s = prefix + s.substr(s.length - (12 - prefix.length));
/*** DEPLOY CONTRACT ***/
var deployedContract = await deployer.deploy(ctrt, code);
/*** DEPLOY ADDITIONAL CONTRACTS ***/
var deployedContract2 = await deployer.deploy(ctrt, code2);
/*** ALLOCATE DAPP TOKENS TO YOUR DEPLOYED CONTRACT ***/
await genAllocateDAPPTokens(deployedContract, 'ipfs');
/*** RETURNS EOSJS SMART CONTRACT INSTANCE ***/
testcontract = await getTestContract(code);
/*** ENDS UNIT TEST SUCCESSFULLY ***/
/*** FAILS UNIT TEST AND PROVIDES ERROR ***/
/*** DISPLAY NAME FOR TEST, REPLACE 'coldissue' WITH ANYTHING ***/
it('coldissue', done => {
/*** SETUP VARIABLES ***/
/*** DEFAULT failed = false FOR ASSERTION ERROR ***/
/*** SET failed = true IN TRY/CATCH BLOCK TO FAIL TEST ***/
/*** SETUP CHAIN OF ACTIONS ***/
await testcontract.create({
maximum_supply: `1000000000.0000 ${symbol}`
authorization: `${code}@active`,
/*** CREATE ADDITIONAL KEYS AS NEEDED ***/
var key = await getCreateKeys(code2);
var testtoken = testcontract;
await testtoken.coldissue({
quantity: `1000.0000 ${symbol}`,
authorization: `${code2}@active`,
keyProvider: [key.active.privateKey],
/*** ADD DELAY BETWEEN ACTIONS ***/
/*** EXAMPLE TRY/CATCH failed = true ***/
await testtoken.transfer({
quantity: `100.0000 ${symbol}`,
authorization: `${code2}@active`,
keyProvider: [key.active.privateKey],
/*** ADD CUSTOM FAILURE MESSAGE ***/
assert(failed, 'should have failed before withdraw');
/*** ADDITIONAL ACTIONS ... ***/
/*** USE it.skip TO CONTINUE WITH UNIT TEST IF TEST FAILS ***/
it.skip('it.skip does not assert and continues test if fails' ...