xek-sdk
Version:
SDK for katana blockchain
36 lines (32 loc) • 1.85 kB
JavaScript
;
const assert = require('assert');
const Contract = require("../src/contract");
const config = require("./config-contract-test");
const API = 'http://172.16.1.107:3000/api';
const CHAINID = "xek-798B1C";
const REQUIRED_OWNER = 2;
let addressContract = "";
describe('Contract Test', () => {
describe('Test Contract Deploy', () => {
it('Deploy Contract', async () => {
let myContract = new Contract(CHAINID, API, config.jsonInterface, config.byteCode);
const resultDeploy = await myContract.deploy(config.owner1, config.privateKeyOwner1, [[config.owner1, config.owner2], REQUIRED_OWNER]);
console.log("resultDeploy", resultDeploy);
assert.notDeepStrictEqual(resultDeploy, null, "Deploy contract empty");
assert.deepStrictEqual(resultDeploy.success, true, "Deploy contract success");
assert.notDeepStrictEqual(resultDeploy.success, false, "Deploy contract failed");
assert.notDeepStrictEqual(resultDeploy.success, null, "data contract must not be empty ");
addressContract = resultDeploy.data;
});
it('Method Get Owner', async () => {
let myContract = new Contract(CHAINID, API, config.jsonInterface, config.byteCode);
let method = "getOwners";
let arrayInput = [];
let data = myContract.getMethod(method, arrayInput);
const resultBroadCast = await myContract.broadcastBurrowTx(method, config.owner1, addressContract, config.privateKeyOwner1, data);
console.log("result method " + method, resultBroadCast);
assert.notDeepStrictEqual(resultBroadCast, null, "Cannot call method " + method);
assert.deepStrictEqual(resultBroadCast.length, REQUIRED_OWNER, "Call method " + method + " success");
});
});
});