import AbiFunction from '../src/smartcontract/abi/abiFunction'; import AbiInfo from '../src/smartcontract/abi/abiInfo'; import { Parameter, ParameterType } from '../src/smartcontract/abi/parameter'; import json from '../src/smartcontract/data/idContract.abi'; import { Transaction } from '../src/transaction/transaction'; import { VmType } from './../src/transaction/vmcode'; import { Address } from '../src/crypto'; import { makeInvokeTransaction } from '../src/transaction/transactionBuilder'; import { str2hexstr } from '../src/utils'; describe('test AbiInfo', () => { // tslint:disable-next-line:one-variable-per-declaration let a: AbiInfo, f: AbiFunction, tx: Transaction, serialized: string; a = AbiInfo.parseJson(JSON.stringify(json)); f = a.getFunction('regIDWithPublicKey'); test('test read json', () => { expect(f.parameters.length).toEqual(2); const mixbeeidhex = str2hexstr('did:ont:TQLASLtT6pWbThcSCYU1biVqhMnzhTgLFq'); const p1 = new Parameter('mixbeeid', ParameterType.ByteArray, mixbeeidhex); // tslint:disable-next-line:max-line-length const p2 = new Parameter('publicKey', ParameterType.ByteArray, '039fbb47841f7338c0c654addd6225995642b5b6d492413563f7f8755ba83c0ecd'); f.setParamsValue(p1, p2); // tslint:disable-next-line:no-console console.log(f); }); test('test make invokecode tx', () => { tx = makeInvokeTransaction( f.name, f.parameters, new Address(a.getHash()), '0'); // tslint:disable-next-line:no-console console.log(tx); serialized = tx.serialize(); // tslint:disable-next-line:no-console console.log('serialize: ' + serialized); expect(serialized).toBeDefined(); }); });