diff --git a/tests/2_challengeExit.js b/tests/2_challengeExit.js new file mode 100644 index 0000000..72203d2 --- /dev/null +++ b/tests/2_challengeExit.js @@ -0,0 +1,144 @@ +const debug = require('debug'); +const ethers = require('ethers'); +const mintAndDeposit = require('./actions/mintAndDeposit'); +const { transfer } = require('./actions/transfer'); +const exitUnspent = require('./actions/exitUnspent'); +const minePeriod = require('./actions/minePeriod'); +const { helpers, Tx, Util, Input, Output, Outpoint } = require('leap-core'); +const { bufferToHex } = require('ethereumjs-util'); + +require('chai').should(); + +const log = debug('challengeExit'); + +module.exports = async function(env, addr, color) { + const { contracts, nodes, accounts, wallet, plasmaWallet } = env; + const node = nodes[0]; + const minter = accounts[0].addr; + const alice = accounts[2].addr; + const alicePriv = accounts[2].privKey; + const bob = accounts[6].addr; + const bobPriv = accounts[6].privKey; + const charlie = accounts[4].addr; + const charliePriv = accounts[6].privKey; + const amount = 10000000; + + await minePeriod(env); + + const unspents = await node.getUnspent(bob, color); + const latestBlockNumber = (await node.getBlock('latest')).number; + log("Latest Block number: ", latestBlockNumber); + const latestSubmittedBlock = latestBlockNumber - latestBlockNumber % 32; + log("Latest submitted block number: ", latestSubmittedBlock); + if (latestSubmittedBlock === 0) { + throw new Error("Can't exit, no periods were submitted yet"); + }; + + const getIndex = async (unspents, lastBlock) =>{ + for(let i=0; i