ontology-ts-sdk
Version:
Comprehensive TypeScript library for the Ontology blockchain.
593 lines (523 loc) • 27.5 kB
text/typescript
import * as b64 from 'base64-url';
import { RestClient } from '../src';
import { WebsocketClient } from '../src/network/websocket/websocketClient';
import Group from '../src/smartcontract/nativevm/ontid/group';
import * as NewOntidTxBuilder from '../src/smartcontract/nativevm/ontidContractTxBuilder';
import { signTransaction } from '../src/transaction/transactionBuilder';
import { hexstr2str } from '../src/utils';
import { Address } from './../src/crypto/address';
import { PrivateKey } from './../src/crypto/PrivateKey';
import { Identity } from './../src/identity';
import { ScryptParams } from './../src/scrypt';
import { Signer } from './../src/smartcontract/nativevm/ontid/signer';
import { DDOAttribute } from './../src/transaction/ddo';
import { addSign } from './../src/transaction/transactionBuilder';
// tslint:disable:no-console
// tslint:disable:max-line-length
describe('test new ONT ID contract', () => {
const gasPrice = '0';
const gasLimit = '20000';
const socketClient = new WebsocketClient('ws://192.168.1.175:20335');
const restClient = new RestClient('http://192.168.1.175:20334');
const privateKey1 = new PrivateKey('7c47df9664e7db85c1308c080f398400cb24283f5d922e76b478b5429e821b95');
const pk1 = privateKey1.getPublicKey();
const address1 = Address.fromPubKey(pk1);
const did1 = 'did:ont:' + address1.toBase58();
console.log('did1: ' + did1); // did:ont:ALaRqCkXSWaHMDc5sLEEMVMWqCNDFi5eRZ
const pri2 = new PrivateKey('cd19cfe79112f1339749adcb3491595753ea54687e78925cb5e01a6451244406');
const pk2 = pri2.getPublicKey();
const address2 = Address.fromPubKey(pk2);
const did2 = 'did:ont:AU9TioM24rXk5E3tUGrv8jwgBA1aZVVKDW';
console.log('address2: ' + address2.toBase58());
const pri3 = new PrivateKey('7c47df9664e7db85c1308c080f398400cb24283f5d922e76b478b5429e821b97');
const pk3 = pri3.getPublicKey();
const address3 = Address.fromPubKey(pk3);
const did3 = 'did:ont:AdLUBSSHUuFaak9j169hiamXUmPuCTnaRz';
console.log('address3: ' + address3.toBase58());
const pri4 = new PrivateKey('7c47df9664e7db85c1308c080f398400cb24283f5d922e76b478b5429e821b98');
const pk4 = pri4.getPublicKey();
const did4 = Address.generateOntid(pk4); // did:ont:AJym8dF7wZLjtoiY8C3mmYt8f2tZDxq5iz
const address4 = Address.fromPubKey(pk4);
console.log('address4: ' + address4.toBase58());
const pri5 = new PrivateKey('7c47df9664e7db85c1308c080f398400cb24283f5d922e76b478b5429e821b99');
const pub5 = pri5.getPublicKey();
const address5 = Address.fromPubKey(pub5);
const did5 = 'did:ont:' + address5.toBase58();
console.log('address5: ' + address5.toBase58()); // AH9B261xeBXdKH4jPyafcHcLkS2EKETbUj
// const pri6 = PrivateKey.random();
const pri6 = new PrivateKey('b1974f2ce546b0835291deea0bfdc6c288a324d13a863bb5e37bf79df40245bc');
// console.log('pri6: ' + pri6.key);
const pk6 = pri6.getPublicKey();
const address6 = Address.fromPubKey(pk6);
const did6 = 'did:ont:' + address6.toBase58();
console.log('did6: ' + did6);
test('buildRegIDWithPublicKeyTx', async () => {
const tx = NewOntidTxBuilder.buildRegIDWithPublicKeyTx(did1, pk1, gasPrice, gasLimit, address1);
signTransaction(tx, privateKey1);
const res = await socketClient.sendRawTransaction(tx.serialize(), false, true);
console.log(res);
expect(res.Error).toEqual(0);
}, 100000);
test('getKeystore', async () => {
const pri = PrivateKey.random();
console.log('pri: ' + pri.key);
const pk = pri.getPublicKey();
const addr = Address.fromPubKey(pk);
const ontid = 'did:ont:' + addr.toBase58();
const scrypt = {
n: 4096,
p: 8,
r: 8,
dkLen: 64
};
const identity = Identity.create(pri, '123456', 'frotest');
const obj = identity.toJsonObj();
const keystore = {
type : 'I',
label : identity.label,
algorithm : 'ECDSA',
scrypt,
key : obj.controls[0].key,
salt: obj.controls[0].salt,
address: obj.controls[0].address,
parameters : {
curve : 'secp256r1'
}
};
console.log(keystore);
const idTx = NewOntidTxBuilder.buildRegIDWithPublicKeyTx(ontid, pk, '500', gasLimit, address1);
signTransaction(idTx, pri);
addSign(idTx, privateKey1);
const socket = new WebsocketClient();
const idRes = await socket.sendRawTransaction(idTx.serialize(), false, true);
console.log(idRes);
});
test('buildRegIdWithControllerTx', async () => {
const controllers = new Group([did1], 1);
const signers = [new Signer(did1, 1)];
const tx = NewOntidTxBuilder.buildRegIdWithMultiControllerTx(did2, controllers, signers, gasPrice, gasLimit, address2);
signTransaction(tx, pri2);
addSign(tx, privateKey1);
const res = await socketClient.sendRawTransaction(tx.serialize(), false, true);
console.log(res);
expect(res.Error).toEqual(0);
}, 100000);
test('buildGetControllerTx', async () => {
const tx = NewOntidTxBuilder.buildGetControllerTx(did3);
const res = await socketClient.sendRawTransaction(tx.serialize(), true);
console.log(res);
const controller = hexstr2str(res.Result.Result);
console.log('controller: ', controller);
if (controller.indexOf('members') > -1) { // multi controllers
const obj = JSON.parse(controller);
obj.members = obj.members.map((item: string) => (b64.decode(item, 'utf-8')));
console.log(JSON.stringify(obj));
}
expect(res.Error).toEqual(0);
}, 100000);
test('buildRegIdWithMultiControllerTx', async () => {
const controllers = new Group([did1], 1);
const signers = [new Signer(did1, 1)];
const tx = NewOntidTxBuilder.buildRegIdWithMultiControllerTx(did3, controllers, signers, gasPrice, gasLimit, address2);
signTransaction(tx, pri2); // payer's signature
addSign(tx, privateKey1); // controllers' signatures
const res = await socketClient.sendRawTransaction(tx.serialize(), false, true);
console.log(JSON.stringify(res));
expect(res.Error).toEqual(0);
}, 100000);
test('buildMakeRevokeIdTx', async () => {
const tx = NewOntidTxBuilder.buildMakeRevokeIdTx(did1, 1, gasPrice, gasLimit, address1);
signTransaction(tx, privateKey1);
const res = await socketClient.sendRawTransaction(tx.serialize(), false, true);
console.log(res);
expect(res.Error).toEqual(0);
// TODO call get document
}, 100000);
test('buildRevokeIdByMultiController', async () => {
const signers = [new Signer(did1, 1)];
const tx = NewOntidTxBuilder.buildRevokeIdByMultiController(did1, signers, gasPrice, gasLimit, address1);
signTransaction(tx, privateKey1);
const res = await socketClient.sendRawTransaction(tx.serialize(), false, true);
console.log(res);
expect(res.Error).toEqual(0);
}, 100000);
test('buildRemoveControllerTx', async () => {
const tx = NewOntidTxBuilder.buildRemoveControllerTx(did1, 1, gasPrice, gasLimit, address1);
signTransaction(tx, privateKey1);
const res = await socketClient.sendRawTransaction(tx.serialize(), false, true);
console.log(res);
expect(res.Error).toEqual(0);
// TODO call getController
}, 100000);
test('buildRegIdWithAttributesTx', async () => {
const attr = new DDOAttribute();
attr.key = 'hello';
attr.type = 'string',
attr.value = 'world';
const tx = NewOntidTxBuilder.buildRegIdWithAttributesTx(did4, [attr], pk4, gasPrice, gasLimit, address4);
signTransaction(tx, pri4);
const res = await socketClient.sendRawTransaction(tx.serialize(), false, true);
console.log(res);
expect(res.Error).toEqual(0);
}, 100000);
test('buildAddAttributeTx', async () => {
const attr = new DDOAttribute();
attr.key = 'hello2';
attr.type = 'string',
attr.value = 'world2';
const tx = NewOntidTxBuilder.buildAddAttributeTx(did4, [attr], pk4, gasPrice, gasLimit, address4);
signTransaction(tx, pri4);
const res = await socketClient.sendRawTransaction(tx.serialize(), false, true);
console.log(res);
expect(res.Error).toEqual(0);
}, 100000);
test('buildRemoveAttributeTx', async () => {
const key = 'hello2';
const tx = NewOntidTxBuilder.buildRemoveAttributeTx(did4, key, pk4, gasPrice, gasLimit, address4);
signTransaction(tx, pri4);
const res = await socketClient.sendRawTransaction(tx.serialize(), false, true);
console.log(res);
expect(res.Error).toEqual(0);
}, 100000);
test('buildGetAttributesTx', async () => {
const tx = NewOntidTxBuilder.buildGetAttributesTx(did4);
const res = await socketClient.sendRawTransaction(tx.serialize(), true);
console.log(res);
expect(res.Error).toEqual(0);
}, 100000);
test('buildAddAttributesByControllerTx', async () => {
const attr = new DDOAttribute();
attr.key = 'hello3';
attr.type = 'string',
attr.value = 'world3';
const signers = [new Signer(did1, 1)];
const tx = NewOntidTxBuilder.buildAddAttributesByMultiControllerTx(did2, [attr], signers, gasPrice, gasLimit, address2);
signTransaction(tx, privateKey1);
addSign(tx, pri2);
const res = await socketClient.sendRawTransaction(tx.serialize(), false, true);
console.log(res);
expect(res.Error).toEqual(0);
}, 100000);
test('buildRemoveAttributesByControllerTx', async () => {
const key = 'hello3';
const signers = [new Signer(did1, 1)];
const tx = NewOntidTxBuilder.buildRemoveAttributesByMultiControllerTx(did2, key, signers, gasPrice, gasLimit, address2);
signTransaction(tx, pri2);
addSign(tx, privateKey1);
const res = await socketClient.sendRawTransaction(tx.serialize(), false, true);
console.log(res);
expect(res.Error).toEqual(0);
}, 100000);
test('buildAddAttributesByIndexTx', async () => {
const attr = new DDOAttribute();
attr.key = 'hello5';
attr.type = 'string',
attr.value = 'world5';
const tx = NewOntidTxBuilder.buildAddAttributesByIndexTx(did1, [attr], 1, gasPrice, gasLimit, address1);
signTransaction(tx, privateKey1);
const res = await socketClient.sendRawTransaction(tx.serialize(), false, true);
console.log(res);
expect(res.Error).toEqual(0);
}, 100000);
test('buildRemoveAttributesByIndexTx', async () => {
const key = 'hello5';
const tx = NewOntidTxBuilder.buildRemoveAttributesByIndexTx(did1, key, 1, gasPrice, gasLimit, address1);
signTransaction(tx, privateKey1);
const res = await socketClient.sendRawTransaction(tx.serialize(), false, true);
console.log(res);
expect(res.Error).toEqual(0);
}, 100000);
test('buildAddPubKeyTx', async () => {
const tx = NewOntidTxBuilder.buildAddPubKeyTx(did1, pk2, pk1, did2, gasPrice, gasLimit, address1);
signTransaction(tx, privateKey1);
addSign(tx, pri2);
const res = await socketClient.sendRawTransaction(tx.serialize(), false, true);
console.log(res);
expect(res.Error).toEqual(0);
}, 100000);
test('buildRemovePubKeyTx', async () => {
const tx = NewOntidTxBuilder.buildRemovePubKeyTx(did1, pk2, pk1, gasPrice, gasLimit, address1);
signTransaction(tx, privateKey1);
const res = await socketClient.sendRawTransaction(tx.serialize(), false, true);
console.log(res);
expect(res.Error).toEqual(0);
}, 100000);
test('buildAddKeyByMultiControllerTx', async () => {
const priTemp = PrivateKey.random();
const pkTemp = priTemp.getPublicKey();
const addrTemp = Address.fromPubKey(pkTemp);
const controllerTemp = 'did:ont:' + addrTemp.toBase58();
const signers = [new Signer(did1, 1)];
const tx = NewOntidTxBuilder.buildAddKeyByMultiControllerTx(did3, pkTemp, signers, controllerTemp, gasPrice, gasLimit, address1);
signTransaction(tx, privateKey1);
const res = await socketClient.sendRawTransaction(tx.serialize(), false, true);
console.log(res);
expect(res.Error).toEqual(0);
}, 100000);
test('buildRemoveKeyByMultiControllerTx', async () => {
const signers = [new Signer(did1, 1)];
const tx = NewOntidTxBuilder.buildRemoveKeyByMultiControllerTx(did3, 1, signers, gasPrice, gasLimit, address1);
signTransaction(tx, privateKey1);
const res = await socketClient.sendRawTransaction(tx.serialize(), false, true);
console.log(res);
expect(res.Error).toEqual(0);
}, 100000);
test('buildSetRecoveryTx', async () => {
const socketClientNotAutoClose = new WebsocketClient('ws://192.168.1.175:20335', false, false);
const pri = PrivateKey.random();
console.log('pri: ' + pri.key);
const pk = pri.getPublicKey();
const addr = Address.fromPubKey(pk);
const ontid = 'did:ont:' + addr.toBase58();
console.log('ontid: ' + ontid);
const idTx = NewOntidTxBuilder.buildRegIDWithPublicKeyTx(ontid, pk, gasPrice, gasLimit, addr);
signTransaction(idTx, pri);
const idRes = await socketClientNotAutoClose.sendRawTransaction(idTx.serialize(), false, true);
console.log(idRes);
const recovery = new Group([did1], 1);
const tx = NewOntidTxBuilder.buildSetRecoveryTx(ontid, recovery, 1, gasPrice, gasLimit, addr);
signTransaction(tx, pri);
const res = await socketClientNotAutoClose.sendRawTransaction(tx.serialize(), false, true);
console.log(res);
expect(res.Error).toEqual(0);
const pkTemp = PrivateKey.random().getPublicKey();
const signers = [new Signer(did1, 1)];
const tx2 = NewOntidTxBuilder.buildAddKeyByRecoveryTx(ontid, pkTemp, signers, gasPrice, gasLimit, addr);
signTransaction(tx2, pri);
addSign(tx2, privateKey1);
const res2 = await socketClientNotAutoClose.sendRawTransaction(tx2.serialize(), false, true);
console.log(res2);
expect(res2.Error).toEqual(0);
const tx3 = NewOntidTxBuilder.buildRemoveKeyByRecoveryTx(ontid, 2, signers, gasPrice, gasLimit, addr);
signTransaction(tx3, pri);
addSign(tx3, privateKey1);
const res3 = await socketClientNotAutoClose.sendRawTransaction(tx3.serialize(), false, true);
console.log(res3);
expect(res3.Error).toEqual(0);
socketClientNotAutoClose.close();
}, 100000);
test('buildAddKeyByIndex', async () => {
const socketClientNotAutoClose = new WebsocketClient('ws://192.168.1.175:20335', false, false);
const pri = PrivateKey.random();
console.log('pri: ' + pri.key);
const pk = pri.getPublicKey();
const addr = Address.fromPubKey(pk);
const ontid = 'did:ont:' + addr.toBase58();
console.log('ontid: ' + ontid);
const idTx = NewOntidTxBuilder.buildRegIDWithPublicKeyTx(ontid, pk, gasPrice, gasLimit, addr);
signTransaction(idTx, pri);
const idRes = await socketClientNotAutoClose.sendRawTransaction(idTx.serialize(), false, true);
console.log(idRes);
const tx1 = NewOntidTxBuilder.buildAddKeyByIndexTx(did1, pk, 1, gasPrice, gasLimit, address1);
signTransaction(tx1, privateKey1);
const res1 = await socketClientNotAutoClose.sendRawTransaction(tx1.serialize(), false, true);
console.log(res1);
expect(res1.Error).toEqual(0);
const tx2 = NewOntidTxBuilder.buildRemoveKeyByIndexTx(did1, pk, 1, gasPrice, gasLimit, address1);
signTransaction(tx2, privateKey1);
const res2 = await socketClientNotAutoClose.sendRawTransaction(tx2.serialize(), false, true);
console.log(res2);
expect(res2.Error).toEqual(0);
socketClientNotAutoClose.close();
}, 100000);
test('buildUpdateRecoveryTx', async () => {
const socketClientNotAutoClose = new WebsocketClient('ws://192.168.1.175:20335', false, false);
const priTemp = PrivateKey.random();
const pkTemp = priTemp.getPublicKey();
const addressTemp = Address.fromPubKey(pkTemp);
const didTemp = 'did:ont:' + addressTemp.toBase58();
const tx0 = NewOntidTxBuilder.buildRegIDWithPublicKeyTx(didTemp, pkTemp, gasPrice, gasLimit, addressTemp);
signTransaction(tx0, priTemp);
const res0 = await socketClientNotAutoClose.sendRawTransaction(tx0.serialize(), false, true);
console.log(res0);
const recovery = new Group([didTemp], 1);
const signers = [new Signer(did1, 1)];
const tx = NewOntidTxBuilder.buildUpdateRecoveryTx(did6, recovery, signers, gasPrice, gasLimit, address6);
signTransaction(tx, pri6);
addSign(tx, privateKey1);
const res = await socketClientNotAutoClose.sendRawTransaction(tx.serialize(), false, true);
console.log(res);
expect(res.Error).toEqual(0);
socketClientNotAutoClose.close();
}, 100000);
test('buildGetDocumentTx', async () => {
// const tx = NewOntidTxBuilder.buildGetDocumentTx(did1);
// const res = await socketClient.sendRawTransaction(tx.serialize(), true);
// console.log(res);
// const obj = hexstr2str(res.Result.Result);
// console.log(obj);
// expect(res.Error).toEqual(0);
const ontid = 'did:ont:AN3iwgee5JKzZV99gknpdmQf5XUJJbQ7xQ';
const doc = await NewOntidTxBuilder.getDocumentJson(ontid, 'http://polaris1.ont.io:20334');
console.log(doc);
}, 100000);
test('buildGetPublicKeysTx', async () => {
const tx = NewOntidTxBuilder.buildGetPublicKeysTx(did6);
const res = await socketClient.sendRawTransaction(tx.serialize(), true);
console.log(res);
const obj = hexstr2str(res.Result.Result);
console.log(obj);
expect(res.Error).toEqual(0);
}, 100000);
test('buildGetPublicKeyStateTx', async () => {
const tx = NewOntidTxBuilder.buildGetPublicKeyStateTx(did6, 1);
const res = await socketClient.sendRawTransaction(tx.serialize(), true);
console.log(res);
const obj = hexstr2str(res.Result.Result);
console.log(obj);
expect(res.Error).toEqual(0);
}, 100000);
test('buildAddAuthKeyTx', async () => {
const socketClientNotAutoClose = new WebsocketClient('ws://192.168.1.175:20335', false, false);
const tx = NewOntidTxBuilder.buildAddNewAuthKeyTx(did1, pk2, did2, 1, gasPrice, gasLimit, address1);
signTransaction(tx, privateKey1);
const res = await socketClient.sendRawTransaction(tx.serialize(), false, true);
console.log(res);
expect(res.Error).toEqual(0);
const tx2 = NewOntidTxBuilder.buildRemoveAuthKeyTx(did1, 2, 1, gasPrice, gasLimit, address1);
signTransaction(tx, privateKey1);
const res2 = await socketClient.sendRawTransaction(tx2.serialize(), false, true);
console.log(res2);
expect(res2.Error).toEqual(0);
}, 100000);
test('buildAddNewAuthKeyByRecoveryTx', async () => {
const socketClientNotAutoClose = new WebsocketClient('ws://192.168.1.175:20335', false, false);
const pri = PrivateKey.random();
console.log('pri: ' + pri.key);
const pk = pri.getPublicKey();
const addr = Address.fromPubKey(pk);
const ontid = 'did:ont:' + addr.toBase58();
console.log('ontid: ' + ontid);
const idTx = NewOntidTxBuilder.buildRegIDWithPublicKeyTx(ontid, pk, gasPrice, gasLimit, addr);
signTransaction(idTx, pri);
const idRes = await socketClientNotAutoClose.sendRawTransaction(idTx.serialize(), false, true);
console.log(idRes);
// expect(idRes.Error).toEqual(0);
const recovery = new Group([did1], 1);
// must be with auth key access to set recovery
const tx0 = NewOntidTxBuilder.buildSetRecoveryTx(ontid, recovery, 1, gasPrice, gasLimit, addr);
signTransaction(tx0, pri);
const res0 = await socketClientNotAutoClose.sendRawTransaction(tx0.serialize(), false, true);
console.log(res0);
expect(res0.Error).toEqual(0);
const priAuth = PrivateKey.random();
const pkAuth = priAuth.getPublicKey();
const addrAuth = Address.fromPubKey(pkAuth);
const ontidAuth = 'did:ont:' + addrAuth.toBase58();
const idTx2 = NewOntidTxBuilder.buildRegIDWithPublicKeyTx(ontidAuth, pkAuth, gasPrice, gasLimit, addrAuth);
signTransaction(idTx2, priAuth);
const idRes2 = await socketClientNotAutoClose.sendRawTransaction(idTx2.serialize(), false, true);
console.log(idRes2);
const signers = [new Signer(did1, 1)];
const tx = NewOntidTxBuilder.buildAddNewAuthKeyByRecoveryTx(ontid, pkAuth, ontidAuth, signers, gasPrice, gasLimit, addr);
signTransaction(tx, privateKey1);
addSign(tx, pri);
const res = await socketClientNotAutoClose.sendRawTransaction(tx.serialize(), false, true);
console.log(res);
expect(res.Error).toEqual(0);
const txDoc = NewOntidTxBuilder.buildGetDocumentTx(ontid);
const resDoc = await socketClient.sendRawTransaction(txDoc.serialize(), true);
console.log(resDoc);
const obj = hexstr2str(resDoc.Result.Result);
console.log(obj);
const authLen = JSON.parse(obj).authentication.length;
console.log('authLen: ' + authLen);
const tx2 = NewOntidTxBuilder.buildRemoveAuthKeyByRecoveryTx(ontid, authLen, signers, gasPrice, gasLimit, addr);
signTransaction(tx2, privateKey1);
addSign(tx2, pri);
const res2 = await socketClientNotAutoClose.sendRawTransaction(tx2.serialize(), false, true);
console.log(res2);
expect(res2.Error).toEqual(0);
socketClientNotAutoClose.close();
}, 100000);
test('buildAddNewAuthKeyByControllerTx', async () => {
const socketClientNotAutoClose = new WebsocketClient('ws://192.168.1.175:20335', false, false);
const pri = PrivateKey.random();
console.log('pri: ' + pri.key);
const pk = pri.getPublicKey();
const addr = Address.fromPubKey(pk);
const ontid = 'did:ont:' + addr.toBase58();
console.log('ontid: ' + ontid);
const controllers = new Group([did6], 1);
const signers = [new Signer(did6, 1)];
const idTx = NewOntidTxBuilder.buildRegIdWithMultiControllerTx(ontid, controllers, signers, gasPrice, gasLimit, addr);
signTransaction(idTx, pri);
addSign(idTx, pri6);
const idRes = await socketClientNotAutoClose.sendRawTransaction(idTx.serialize(), false, true);
console.log(idRes);
// expect(idRes.Error).toEqual(0);
const tx = NewOntidTxBuilder.buildAddNewAuthKeyByControllerTx(ontid, pk1, did1, signers, gasPrice, gasLimit, address6);
signTransaction(tx, pri6);
addSign(tx, privateKey1);
const res = await socketClientNotAutoClose.sendRawTransaction(tx.serialize(), false, true);
console.log(res);
expect(res.Error).toEqual(0);
const txDoc = NewOntidTxBuilder.buildGetDocumentTx(ontid);
const resDoc = await socketClient.sendRawTransaction(txDoc.serialize(), true);
console.log(resDoc);
const obj = hexstr2str(resDoc.Result.Result);
console.log(obj);
const authLen = JSON.parse(obj).authentication.length;
console.log(authLen);
const tx2 = NewOntidTxBuilder.buildRemoveAuthKeyByControllerTx(ontid, authLen, signers, gasPrice, gasLimit, address6);
signTransaction(tx2, pri6);
addSign(tx2, privateKey1);
const res2 = await socketClientNotAutoClose.sendRawTransaction(tx2.serialize(), false, true);
console.log(res2);
expect(res2.Error).toEqual(0);
socketClientNotAutoClose.close();
}, 100000);
test('buildAddServiceTx', async () => {
const socketClientNotAutoClose = new WebsocketClient('ws://192.168.1.175:20335', false, false);
const tx = NewOntidTxBuilder.buildAddServiceTx(did1, 'test_service', 'test_type', 'http://test.com', 1, gasPrice, gasLimit, address1);
signTransaction(tx, privateKey1);
const res = await socketClientNotAutoClose.sendRawTransaction(tx.serialize(), false, true);
console.log(res);
// expect(res.Error).toEqual(0);
const tx2 = NewOntidTxBuilder.buildUpdateServiceTx(did1, 'test_service', 'test_type2', 'http://test2.com', 1, gasPrice, gasLimit, address1);
signTransaction(tx2, privateKey1);
const res2 = await socketClientNotAutoClose.sendRawTransaction(tx2.serialize(), false, true);
console.log(res2);
expect(res2.Error).toEqual(0);
const tx4 = NewOntidTxBuilder.buildGetServiceTx(did1, 'test_service');
const res4 = await socketClientNotAutoClose.sendRawTransaction(tx4.serialize(), true);
console.log(res4);
expect(res4.Error).toEqual(0);
const tx3 = NewOntidTxBuilder.buildRemoveServiceTx(did1, 'test_service', 1, gasPrice, gasLimit, address1);
signTransaction(tx3, privateKey1);
const res3 = await socketClientNotAutoClose.sendRawTransaction(tx3.serialize(), false, true);
console.log(res3);
expect(res3.Error).toEqual(0);
socketClientNotAutoClose.close();
}, 100000);
test('contenxtTx', async () => {
const socketClientNotAutoClose = new WebsocketClient('ws://192.168.1.175:20335', false, false);
const context = ['context_test'];
const tx = NewOntidTxBuilder.buildAddContextTx(did1, context, 1, gasPrice, gasLimit, address1);
signTransaction(tx, privateKey1);
const res = await socketClientNotAutoClose.sendRawTransaction(tx.serialize(), false, true);
console.log(res);
expect(res.Error).toEqual(0);
const tx2 = NewOntidTxBuilder.buildRemoveContextTx(did1, context, 1, gasPrice, gasLimit, address1);
signTransaction(tx2, privateKey1);
const res2 = await socketClientNotAutoClose.sendRawTransaction(tx2.serialize(), false, true);
console.log(res2);
expect(res.Error).toEqual(0);
socketClientNotAutoClose.close();
}, 100000);
test('buildVerifySignatureTx', async () => {
const tx = NewOntidTxBuilder.buildVerifySignatureTx(did1, 1);
signTransaction(tx, privateKey1);
const res = await socketClient.sendRawTransaction(tx.serialize(), true);
console.log(res);
expect(res.Error).toEqual(0);
}, 100000);
test('buildVerifyMultiControllerTx', async () => {
const signers = [new Signer(did1, 1)];
const tx = NewOntidTxBuilder.buildVerifyMultiControllerTx(did3, signers);
signTransaction(tx, privateKey1);
const res = await socketClient.sendRawTransaction(tx.serialize(), true);
console.log(res);
expect(res.Error).toEqual(0);
}, 100000);
});