xek-sdk
Version:
SDK for katana blockchain
61 lines (48 loc) • 2.55 kB
JavaScript
;
const assert = require('assert');
const config = require('./config-test');
function sleep(ms){
return new Promise(resolve=>{
setTimeout(resolve,ms)
})
}
describe("7. Test revoke confirmation function",function(){
it("True case", async function(){
let required = 3;
// new contract
let resultDeploy = await config.myContract.deploy(config.owner1, config.passphraseOwner1, [[config.owner1,config.owner2,"9C9FAE22545172DADC668DA7F60E9CB617EE969B"], required]);
console.log('resultDeploy:', resultDeploy);
assert.equal(resultDeploy.success, true);
assert.notEqual(resultDeploy.data, null);
let contractAddr = resultDeploy.data;
console.log('contractAddr:', contractAddr);
await sleep(800);
// owner1 confirm to transfer token for receiver
let dataSubmitTx1 = config.myContract.getMethod("submitTransaction",[config.receiver, config.amount, []]);
let res = await config.myContract.broadcastBurrowTx("submitTransaction", config.owner1, contractAddr, config.passphraseOwner1, dataSubmitTx1);
console.log('res:', res);
assert.equal(res.success, true);
assert.notEqual(res.data, null);
await sleep(800);
// owner2 confirm tx
let dataConfirmTx = config.myContract.getMethod("confirmTransaction",[0]);
res = await config.myContract.broadcastBurrowTx("confirmTransaction", config.owner2, contractAddr, config.passphraseOwner2, dataConfirmTx);
assert.equal(res.success, true);
assert.notEqual(res.data, null);
await sleep(800);
// get confirm count should be equal 2
let getConfirmCount1 = config.myContract.getMethod("getConfirmationCount",[0]);
let confirmCount1 = await config.myContract.broadcastBurrowTx("required",config.owner1,contractAddr,config.passphraseOwner1,getConfirmCount1);
assert.deepEqual(confirmCount1,2);
// owner revoke confirmation
let dataRevokeConfirmation= config.myContract.getMethod("revokeConfirmation",[0]);
res = await config.myContract.broadcastBurrowTx("revokeConfirmation", config.owner2, contractAddr, config.passphraseOwner2, dataRevokeConfirmation);
assert.equal(res.success, true);
assert.notEqual(res.data, null);
await sleep(800);
// get confirm count should be equal 1
let getConfirmCount2 = config.myContract.getMethod("getConfirmationCount",[0]);
let confirmCount2 = await config.myContract.broadcastBurrowTx("required",config.owner1,contractAddr,config.passphraseOwner1,getConfirmCount2);
assert.deepEqual(confirmCount2,1);
});
});