@bitgo-beta/sdk-coin-ada 2.3.14-beta.185 → 2.3.14-beta.1850
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/src/ada.d.ts +15 -13
- package/dist/src/ada.d.ts.map +1 -1
- package/dist/src/ada.js +124 -42
- package/dist/src/adaToken.d.ts +16 -11
- package/dist/src/adaToken.d.ts.map +1 -1
- package/dist/src/adaToken.js +109 -3
- package/dist/src/index.js +6 -2
- package/dist/src/lib/index.d.ts +3 -1
- package/dist/src/lib/index.d.ts.map +1 -1
- package/dist/src/lib/index.js +29 -9
- package/dist/src/lib/keyPair.js +29 -16
- package/dist/src/lib/messages/cip8/cip8Message.d.ts +25 -0
- package/dist/src/lib/messages/cip8/cip8Message.d.ts.map +1 -0
- package/dist/src/lib/messages/cip8/cip8Message.js +140 -0
- package/dist/src/lib/messages/cip8/cip8MessageBuilder.d.ts +19 -0
- package/dist/src/lib/messages/cip8/cip8MessageBuilder.d.ts.map +1 -0
- package/dist/src/lib/messages/cip8/cip8MessageBuilder.js +27 -0
- package/dist/src/lib/messages/cip8/index.d.ts +4 -0
- package/dist/src/lib/messages/cip8/index.d.ts.map +1 -0
- package/dist/src/lib/messages/cip8/index.js +20 -0
- package/dist/src/lib/messages/cip8/utils.d.ts +24 -0
- package/dist/src/lib/messages/cip8/utils.d.ts.map +1 -0
- package/dist/src/lib/messages/cip8/utils.js +73 -0
- package/dist/src/lib/messages/index.d.ts +3 -0
- package/dist/src/lib/messages/index.d.ts.map +1 -0
- package/dist/src/lib/messages/index.js +19 -0
- package/dist/src/lib/messages/messageBuilderFactory.d.ts +7 -0
- package/dist/src/lib/messages/messageBuilderFactory.d.ts.map +1 -0
- package/dist/src/lib/messages/messageBuilderFactory.js +20 -0
- package/dist/src/lib/stakingActivateBuilder.d.ts +1 -1
- package/dist/src/lib/stakingActivateBuilder.d.ts.map +1 -1
- package/dist/src/lib/stakingActivateBuilder.js +30 -10
- package/dist/src/lib/stakingDeactivateBuilder.js +24 -10
- package/dist/src/lib/transaction.d.ts +24 -7
- package/dist/src/lib/transaction.d.ts.map +1 -1
- package/dist/src/lib/transaction.js +81 -17
- package/dist/src/lib/transactionBuilder.d.ts +114 -3
- package/dist/src/lib/transactionBuilder.d.ts.map +1 -1
- package/dist/src/lib/transactionBuilder.js +464 -20
- package/dist/src/lib/transactionBuilderFactory.d.ts +2 -0
- package/dist/src/lib/transactionBuilderFactory.d.ts.map +1 -1
- package/dist/src/lib/transactionBuilderFactory.js +7 -1
- package/dist/src/lib/utils.d.ts +22 -0
- package/dist/src/lib/utils.d.ts.map +1 -1
- package/dist/src/lib/utils.js +152 -17
- package/dist/src/lib/voteDelegationBuilder.d.ts +24 -0
- package/dist/src/lib/voteDelegationBuilder.d.ts.map +1 -0
- package/dist/src/lib/voteDelegationBuilder.js +84 -0
- package/dist/test/resources/cip8Resources.d.ts +25 -0
- package/dist/test/resources/cip8Resources.d.ts.map +1 -0
- package/dist/test/resources/cip8Resources.js +76 -0
- package/dist/test/resources/index.d.ts +458 -0
- package/dist/test/resources/index.d.ts.map +1 -0
- package/dist/test/resources/index.js +659 -0
- package/dist/test/unit/StakingActivateBuilder.d.ts +2 -0
- package/dist/test/unit/StakingActivateBuilder.d.ts.map +1 -0
- package/dist/test/unit/StakingActivateBuilder.js +213 -0
- package/dist/test/unit/StakingDeactivateBuilder.d.ts +2 -0
- package/dist/test/unit/StakingDeactivateBuilder.d.ts.map +1 -0
- package/dist/test/unit/StakingDeactivateBuilder.js +158 -0
- package/dist/test/unit/ada.d.ts +5 -0
- package/dist/test/unit/ada.d.ts.map +1 -0
- package/dist/test/unit/ada.js +1430 -0
- package/dist/test/unit/getBuilderFactory.d.ts +3 -0
- package/dist/test/unit/getBuilderFactory.d.ts.map +1 -0
- package/dist/test/unit/getBuilderFactory.js +10 -0
- package/dist/test/unit/index.d.ts +2 -0
- package/dist/test/unit/index.d.ts.map +1 -0
- package/dist/test/unit/index.js +32 -0
- package/dist/test/unit/keyPair.d.ts +2 -0
- package/dist/test/unit/keyPair.d.ts.map +1 -0
- package/dist/test/unit/keyPair.js +88 -0
- package/dist/test/unit/messages/cip8/cip8Message.d.ts +2 -0
- package/dist/test/unit/messages/cip8/cip8Message.d.ts.map +1 -0
- package/dist/test/unit/messages/cip8/cip8Message.js +131 -0
- package/dist/test/unit/messages/cip8/cip8MessageBuilder.d.ts +2 -0
- package/dist/test/unit/messages/cip8/cip8MessageBuilder.d.ts.map +1 -0
- package/dist/test/unit/messages/cip8/cip8MessageBuilder.js +132 -0
- package/dist/test/unit/messages/cip8/utils.d.ts +2 -0
- package/dist/test/unit/messages/cip8/utils.d.ts.map +1 -0
- package/dist/test/unit/messages/cip8/utils.js +127 -0
- package/dist/test/unit/messages/messageBuilderFactory.d.ts +2 -0
- package/dist/test/unit/messages/messageBuilderFactory.d.ts.map +1 -0
- package/dist/test/unit/messages/messageBuilderFactory.js +35 -0
- package/dist/test/unit/stakingClaimRewardsBuilder.d.ts +2 -0
- package/dist/test/unit/stakingClaimRewardsBuilder.d.ts.map +1 -0
- package/dist/test/unit/stakingClaimRewardsBuilder.js +70 -0
- package/dist/test/unit/stakingPledgeBuilder.d.ts +2 -0
- package/dist/test/unit/stakingPledgeBuilder.d.ts.map +1 -0
- package/dist/test/unit/stakingPledgeBuilder.js +141 -0
- package/dist/test/unit/stakingWithdrawBuilder.d.ts +2 -0
- package/dist/test/unit/stakingWithdrawBuilder.d.ts.map +1 -0
- package/dist/test/unit/stakingWithdrawBuilder.js +167 -0
- package/dist/test/unit/tokenWithdrawal.d.ts +2 -0
- package/dist/test/unit/tokenWithdrawal.d.ts.map +1 -0
- package/dist/test/unit/tokenWithdrawal.js +959 -0
- package/dist/test/unit/transaction.d.ts +2 -0
- package/dist/test/unit/transaction.d.ts.map +1 -0
- package/dist/test/unit/transaction.js +100 -0
- package/dist/test/unit/transactionBuilder.d.ts +2 -0
- package/dist/test/unit/transactionBuilder.d.ts.map +1 -0
- package/dist/test/unit/transactionBuilder.js +545 -0
- package/dist/test/unit/utils.d.ts +2 -0
- package/dist/test/unit/utils.d.ts.map +1 -0
- package/dist/test/unit/utils.js +138 -0
- package/dist/test/unit/voteDelegationBuilder.d.ts +2 -0
- package/dist/test/unit/voteDelegationBuilder.d.ts.map +1 -0
- package/dist/test/unit/voteDelegationBuilder.js +96 -0
- package/dist/tsconfig.tsbuildinfo +1 -0
- package/package.json +18 -13
- package/.eslintignore +0 -5
- package/.mocharc.yml +0 -8
- package/CHANGELOG.md +0 -470
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"getBuilderFactory.d.ts","sourceRoot":"","sources":["../../../test/unit/getBuilderFactory.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,yBAAyB,EAAE,MAAM,WAAW,CAAC;AAGtD,eAAO,MAAM,iBAAiB,SAAU,MAAM,KAAG,yBAEhD,CAAC"}
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.getBuilderFactory = void 0;
|
|
4
|
+
const src_1 = require("../../src");
|
|
5
|
+
const statics_1 = require("@bitgo-beta/statics");
|
|
6
|
+
const getBuilderFactory = (coin) => {
|
|
7
|
+
return new src_1.TransactionBuilderFactory(statics_1.coins.get(coin));
|
|
8
|
+
};
|
|
9
|
+
exports.getBuilderFactory = getBuilderFactory;
|
|
10
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZ2V0QnVpbGRlckZhY3RvcnkuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi90ZXN0L3VuaXQvZ2V0QnVpbGRlckZhY3RvcnkudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7O0FBQUEsbUNBQXNEO0FBQ3RELGlEQUE0QztBQUVyQyxNQUFNLGlCQUFpQixHQUFHLENBQUMsSUFBWSxFQUE2QixFQUFFO0lBQzNFLE9BQU8sSUFBSSwrQkFBeUIsQ0FBQyxlQUFLLENBQUMsR0FBRyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUM7QUFDeEQsQ0FBQyxDQUFDO0FBRlcsUUFBQSxpQkFBaUIscUJBRTVCIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgVHJhbnNhY3Rpb25CdWlsZGVyRmFjdG9yeSB9IGZyb20gJy4uLy4uL3NyYyc7XG5pbXBvcnQgeyBjb2lucyB9IGZyb20gJ0BiaXRnby1iZXRhL3N0YXRpY3MnO1xuXG5leHBvcnQgY29uc3QgZ2V0QnVpbGRlckZhY3RvcnkgPSAoY29pbjogc3RyaW5nKTogVHJhbnNhY3Rpb25CdWlsZGVyRmFjdG9yeSA9PiB7XG4gIHJldHVybiBuZXcgVHJhbnNhY3Rpb25CdWlsZGVyRmFjdG9yeShjb2lucy5nZXQoY29pbikpO1xufTtcbiJdfQ==
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../test/unit/index.ts"],"names":[],"mappings":""}
|
|
@@ -0,0 +1,32 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
const sdk_api_1 = require("@bitgo-beta/sdk-api");
|
|
4
|
+
const sdk_test_1 = require("@bitgo-beta/sdk-test");
|
|
5
|
+
const src_1 = require("../../src");
|
|
6
|
+
describe('Ada', function () {
|
|
7
|
+
const coinName = 'tada';
|
|
8
|
+
let bitgo;
|
|
9
|
+
let basecoin;
|
|
10
|
+
before(function () {
|
|
11
|
+
bitgo = sdk_test_1.TestBitGo.decorate(sdk_api_1.BitGoAPI, {
|
|
12
|
+
env: 'mock',
|
|
13
|
+
});
|
|
14
|
+
bitgo.initializeTestVars();
|
|
15
|
+
bitgo.safeRegister('ada', src_1.Ada.createInstance);
|
|
16
|
+
bitgo.safeRegister('tada', src_1.Tada.createInstance);
|
|
17
|
+
basecoin = bitgo.coin(coinName);
|
|
18
|
+
});
|
|
19
|
+
it('should instantiate the coin', function () {
|
|
20
|
+
let localBasecoin = bitgo.coin('tada');
|
|
21
|
+
localBasecoin.should.be.an.instanceof(src_1.Tada);
|
|
22
|
+
localBasecoin = bitgo.coin('ada');
|
|
23
|
+
localBasecoin.should.be.an.instanceof(src_1.Ada);
|
|
24
|
+
});
|
|
25
|
+
it('should return tada', function () {
|
|
26
|
+
basecoin.getChain().should.equal('tada');
|
|
27
|
+
});
|
|
28
|
+
it('should return full name', function () {
|
|
29
|
+
basecoin.getFullName().should.equal('Testnet Ada');
|
|
30
|
+
});
|
|
31
|
+
});
|
|
32
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi90ZXN0L3VuaXQvaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7QUFBQSxpREFBK0M7QUFDL0MsbURBQStEO0FBQy9ELG1DQUFzQztBQUV0QyxRQUFRLENBQUMsS0FBSyxFQUFFO0lBQ2QsTUFBTSxRQUFRLEdBQUcsTUFBTSxDQUFDO0lBQ3hCLElBQUksS0FBbUIsQ0FBQztJQUN4QixJQUFJLFFBQVEsQ0FBQztJQUViLE1BQU0sQ0FBQztRQUNMLEtBQUssR0FBRyxvQkFBUyxDQUFDLFFBQVEsQ0FBQyxrQkFBUSxFQUFFO1lBQ25DLEdBQUcsRUFBRSxNQUFNO1NBQ1osQ0FBQyxDQUFDO1FBQ0gsS0FBSyxDQUFDLGtCQUFrQixFQUFFLENBQUM7UUFDM0IsS0FBSyxDQUFDLFlBQVksQ0FBQyxLQUFLLEVBQUUsU0FBRyxDQUFDLGNBQWMsQ0FBQyxDQUFDO1FBQzlDLEtBQUssQ0FBQyxZQUFZLENBQUMsTUFBTSxFQUFFLFVBQUksQ0FBQyxjQUFjLENBQUMsQ0FBQztRQUNoRCxRQUFRLEdBQUcsS0FBSyxDQUFDLElBQUksQ0FBQyxRQUFRLENBQUMsQ0FBQztJQUNsQyxDQUFDLENBQUMsQ0FBQztJQUVILEVBQUUsQ0FBQyw2QkFBNkIsRUFBRTtRQUNoQyxJQUFJLGFBQWEsR0FBRyxLQUFLLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxDQUFDO1FBQ3ZDLGFBQWEsQ0FBQyxNQUFNLENBQUMsRUFBRSxDQUFDLEVBQUUsQ0FBQyxVQUFVLENBQUMsVUFBSSxDQUFDLENBQUM7UUFFNUMsYUFBYSxHQUFHLEtBQUssQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUM7UUFDbEMsYUFBYSxDQUFDLE1BQU0sQ0FBQyxFQUFFLENBQUMsRUFBRSxDQUFDLFVBQVUsQ0FBQyxTQUFHLENBQUMsQ0FBQztJQUM3QyxDQUFDLENBQUMsQ0FBQztJQUVILEVBQUUsQ0FBQyxvQkFBb0IsRUFBRTtRQUN2QixRQUFRLENBQUMsUUFBUSxFQUFFLENBQUMsTUFBTSxDQUFDLEtBQUssQ0FBQyxNQUFNLENBQUMsQ0FBQztJQUMzQyxDQUFDLENBQUMsQ0FBQztJQUVILEVBQUUsQ0FBQyx5QkFBeUIsRUFBRTtRQUM1QixRQUFRLENBQUMsV0FBVyxFQUFFLENBQUMsTUFBTSxDQUFDLEtBQUssQ0FBQyxhQUFhLENBQUMsQ0FBQztJQUNyRCxDQUFDLENBQUMsQ0FBQztBQUNMLENBQUMsQ0FBQyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQml0R29BUEkgfSBmcm9tICdAYml0Z28tYmV0YS9zZGstYXBpJztcbmltcG9ydCB7IFRlc3RCaXRHbywgVGVzdEJpdEdvQVBJIH0gZnJvbSAnQGJpdGdvLWJldGEvc2RrLXRlc3QnO1xuaW1wb3J0IHsgQWRhLCBUYWRhIH0gZnJvbSAnLi4vLi4vc3JjJztcblxuZGVzY3JpYmUoJ0FkYScsIGZ1bmN0aW9uICgpIHtcbiAgY29uc3QgY29pbk5hbWUgPSAndGFkYSc7XG4gIGxldCBiaXRnbzogVGVzdEJpdEdvQVBJO1xuICBsZXQgYmFzZWNvaW47XG5cbiAgYmVmb3JlKGZ1bmN0aW9uICgpIHtcbiAgICBiaXRnbyA9IFRlc3RCaXRHby5kZWNvcmF0ZShCaXRHb0FQSSwge1xuICAgICAgZW52OiAnbW9jaycsXG4gICAgfSk7XG4gICAgYml0Z28uaW5pdGlhbGl6ZVRlc3RWYXJzKCk7XG4gICAgYml0Z28uc2FmZVJlZ2lzdGVyKCdhZGEnLCBBZGEuY3JlYXRlSW5zdGFuY2UpO1xuICAgIGJpdGdvLnNhZmVSZWdpc3RlcigndGFkYScsIFRhZGEuY3JlYXRlSW5zdGFuY2UpO1xuICAgIGJhc2Vjb2luID0gYml0Z28uY29pbihjb2luTmFtZSk7XG4gIH0pO1xuXG4gIGl0KCdzaG91bGQgaW5zdGFudGlhdGUgdGhlIGNvaW4nLCBmdW5jdGlvbiAoKSB7XG4gICAgbGV0IGxvY2FsQmFzZWNvaW4gPSBiaXRnby5jb2luKCd0YWRhJyk7XG4gICAgbG9jYWxCYXNlY29pbi5zaG91bGQuYmUuYW4uaW5zdGFuY2VvZihUYWRhKTtcblxuICAgIGxvY2FsQmFzZWNvaW4gPSBiaXRnby5jb2luKCdhZGEnKTtcbiAgICBsb2NhbEJhc2Vjb2luLnNob3VsZC5iZS5hbi5pbnN0YW5jZW9mKEFkYSk7XG4gIH0pO1xuXG4gIGl0KCdzaG91bGQgcmV0dXJuIHRhZGEnLCBmdW5jdGlvbiAoKSB7XG4gICAgYmFzZWNvaW4uZ2V0Q2hhaW4oKS5zaG91bGQuZXF1YWwoJ3RhZGEnKTtcbiAgfSk7XG5cbiAgaXQoJ3Nob3VsZCByZXR1cm4gZnVsbCBuYW1lJywgZnVuY3Rpb24gKCkge1xuICAgIGJhc2Vjb2luLmdldEZ1bGxOYW1lKCkuc2hvdWxkLmVxdWFsKCdUZXN0bmV0IEFkYScpO1xuICB9KTtcbn0pO1xuIl19
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"keyPair.d.ts","sourceRoot":"","sources":["../../../test/unit/keyPair.ts"],"names":[],"mappings":""}
|
|
@@ -0,0 +1,88 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
3
|
+
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
4
|
+
};
|
|
5
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
|
+
const should_1 = __importDefault(require("should"));
|
|
7
|
+
const src_1 = require("../../src");
|
|
8
|
+
const resources_1 = require("../resources/");
|
|
9
|
+
const cardano_serialization_lib_nodejs_1 = require("@emurgo/cardano-serialization-lib-nodejs");
|
|
10
|
+
const sdk_core_1 = require("@bitgo-beta/sdk-core");
|
|
11
|
+
describe('Ada Keypair', () => {
|
|
12
|
+
const defaultSeed = { seed: Buffer.alloc(32) };
|
|
13
|
+
describe('Keypair creation', () => {
|
|
14
|
+
it('initial state', () => {
|
|
15
|
+
const keyPair = new src_1.KeyPair();
|
|
16
|
+
should_1.default.exists(keyPair.getKeys().prv);
|
|
17
|
+
should_1.default.exists(keyPair.getKeys().prv);
|
|
18
|
+
});
|
|
19
|
+
it('initialization from private key', () => {
|
|
20
|
+
let keyPair = new src_1.KeyPair({
|
|
21
|
+
prv: resources_1.enterpriseAccounts.account1.secretKey,
|
|
22
|
+
});
|
|
23
|
+
should_1.default.equal(keyPair.getKeys().prv, (0, sdk_core_1.toHex)(cardano_serialization_lib_nodejs_1.PrivateKey.from_bech32(resources_1.enterpriseAccounts.account1.secretKey).as_bytes()));
|
|
24
|
+
should_1.default.equal(keyPair.getKeys().pub, resources_1.enterpriseAccounts.account1.hexPublic);
|
|
25
|
+
keyPair = new src_1.KeyPair({
|
|
26
|
+
prv: resources_1.enterpriseAccounts.account2.secretKey,
|
|
27
|
+
});
|
|
28
|
+
should_1.default.equal(keyPair.getKeys().prv, (0, sdk_core_1.toHex)(cardano_serialization_lib_nodejs_1.PrivateKey.from_bech32(resources_1.enterpriseAccounts.account2.secretKey).as_bytes()));
|
|
29
|
+
should_1.default.equal(keyPair.getKeys().pub, resources_1.enterpriseAccounts.account2.hexPublic);
|
|
30
|
+
});
|
|
31
|
+
it('initialization from public key', () => {
|
|
32
|
+
let keyPair = new src_1.KeyPair({ pub: resources_1.enterpriseAccounts.account1.publicKey });
|
|
33
|
+
should_1.default.equal(keyPair.getKeys().pub, (0, sdk_core_1.toHex)(cardano_serialization_lib_nodejs_1.PublicKey.from_bech32(resources_1.enterpriseAccounts.account1.publicKey).as_bytes()));
|
|
34
|
+
keyPair = new src_1.KeyPair({ pub: resources_1.enterpriseAccounts.account2.publicKey });
|
|
35
|
+
should_1.default.equal(keyPair.getAddress(sdk_core_1.AddressFormat.testnet), resources_1.enterpriseAccounts.account2.baseAddress);
|
|
36
|
+
keyPair = new src_1.KeyPair({ pub: resources_1.enterpriseAccounts.account4.publicKeyHex });
|
|
37
|
+
should_1.default.equal(keyPair.getKeys().pub, resources_1.enterpriseAccounts.account4.publicKeyHex);
|
|
38
|
+
});
|
|
39
|
+
});
|
|
40
|
+
describe('KeyPair validation', () => {
|
|
41
|
+
it('should fail to create from an invalid seed', () => {
|
|
42
|
+
const seed = { seed: Buffer.alloc(8) }; // Seed should be 512 bits (64 bytes)
|
|
43
|
+
should_1.default.throws(() => new src_1.KeyPair(seed), 'bad seed size');
|
|
44
|
+
});
|
|
45
|
+
it('should fail to create from an invalid public key', () => {
|
|
46
|
+
const source = {
|
|
47
|
+
pub: '01D63D',
|
|
48
|
+
};
|
|
49
|
+
should_1.default.throws(() => new src_1.KeyPair(source), 'address seems to be malformed');
|
|
50
|
+
});
|
|
51
|
+
it('should fail to create from an invalid private key', () => {
|
|
52
|
+
const source = {
|
|
53
|
+
prv: '82A34',
|
|
54
|
+
};
|
|
55
|
+
should_1.default.throws(() => new src_1.KeyPair(source), 'Invalid base32 characters');
|
|
56
|
+
});
|
|
57
|
+
});
|
|
58
|
+
describe('getAddress', () => {
|
|
59
|
+
it('should get an address', () => {
|
|
60
|
+
let keyPair = new src_1.KeyPair({ prv: resources_1.enterpriseAccounts.account1.secretKey });
|
|
61
|
+
let address = keyPair.getAddress(sdk_core_1.AddressFormat.testnet);
|
|
62
|
+
address.should.equal(resources_1.enterpriseAccounts.account1.baseAddress);
|
|
63
|
+
keyPair = new src_1.KeyPair({ prv: resources_1.enterpriseAccounts.account3.secretKey });
|
|
64
|
+
address = keyPair.getAddress(sdk_core_1.AddressFormat.testnet);
|
|
65
|
+
address.should.equal(resources_1.enterpriseAccounts.account3.baseAddress);
|
|
66
|
+
keyPair = new src_1.KeyPair({ pub: resources_1.enterpriseAccounts.account4.publicKeyHex });
|
|
67
|
+
address = keyPair.getAddress(sdk_core_1.AddressFormat.testnet);
|
|
68
|
+
address.should.equal(resources_1.enterpriseAccounts.account4.baseAddress);
|
|
69
|
+
});
|
|
70
|
+
});
|
|
71
|
+
describe('getKeys', () => {
|
|
72
|
+
it('should get private and public keys in the protocol default format', () => {
|
|
73
|
+
const keyPair = new src_1.KeyPair(defaultSeed);
|
|
74
|
+
const { prv, pub } = keyPair.getKeys();
|
|
75
|
+
prv.should.equal(prv);
|
|
76
|
+
pub.should.equal(pub);
|
|
77
|
+
const address = keyPair.getAddress(sdk_core_1.AddressFormat.testnet);
|
|
78
|
+
address.should.equal(resources_1.enterpriseAccounts.seedAccount.enterpriseAddress);
|
|
79
|
+
});
|
|
80
|
+
it('should get private and public keys for a random seed', () => {
|
|
81
|
+
const keyPair = new src_1.KeyPair();
|
|
82
|
+
const { prv, pub } = keyPair.getKeys();
|
|
83
|
+
should_1.default.exist(prv);
|
|
84
|
+
should_1.default.exist(pub);
|
|
85
|
+
});
|
|
86
|
+
});
|
|
87
|
+
});
|
|
88
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoia2V5UGFpci5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3Rlc3QvdW5pdC9rZXlQYWlyLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7O0FBQUEsb0RBQTRCO0FBQzVCLG1DQUFvQztBQUNwQyw2Q0FBbUQ7QUFDbkQsK0ZBQWlGO0FBQ2pGLG1EQUE0RDtBQUU1RCxRQUFRLENBQUMsYUFBYSxFQUFFLEdBQUcsRUFBRTtJQUMzQixNQUFNLFdBQVcsR0FBRyxFQUFFLElBQUksRUFBRSxNQUFNLENBQUMsS0FBSyxDQUFDLEVBQUUsQ0FBQyxFQUFFLENBQUM7SUFFL0MsUUFBUSxDQUFDLGtCQUFrQixFQUFFLEdBQUcsRUFBRTtRQUNoQyxFQUFFLENBQUMsZUFBZSxFQUFFLEdBQUcsRUFBRTtZQUN2QixNQUFNLE9BQU8sR0FBRyxJQUFJLGFBQU8sRUFBRSxDQUFDO1lBQzlCLGdCQUFNLENBQUMsTUFBTSxDQUFDLE9BQU8sQ0FBQyxPQUFPLEVBQUUsQ0FBQyxHQUFHLENBQUMsQ0FBQztZQUNyQyxnQkFBTSxDQUFDLE1BQU0sQ0FBQyxPQUFPLENBQUMsT0FBTyxFQUFFLENBQUMsR0FBRyxDQUFDLENBQUM7UUFDdkMsQ0FBQyxDQUFDLENBQUM7UUFFSCxFQUFFLENBQUMsaUNBQWlDLEVBQUUsR0FBRyxFQUFFO1lBQ3pDLElBQUksT0FBTyxHQUFHLElBQUksYUFBTyxDQUFDO2dCQUN4QixHQUFHLEVBQUUsOEJBQWtCLENBQUMsUUFBUSxDQUFDLFNBQVM7YUFDM0MsQ0FBQyxDQUFDO1lBRUgsZ0JBQU0sQ0FBQyxLQUFLLENBQ1YsT0FBTyxDQUFDLE9BQU8sRUFBRSxDQUFDLEdBQUcsRUFDckIsSUFBQSxnQkFBSyxFQUFDLDZDQUFVLENBQUMsV0FBVyxDQUFDLDhCQUFrQixDQUFDLFFBQVEsQ0FBQyxTQUFTLENBQUMsQ0FBQyxRQUFRLEVBQUUsQ0FBQyxDQUNoRixDQUFDO1lBRUYsZ0JBQU0sQ0FBQyxLQUFLLENBQUMsT0FBTyxDQUFDLE9B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QUU7WUFDM0UsTUFBTSxPQUFPLEdBQUcsSUFBSSxhQUFPLENBQUMsV0FBVyxDQUFDLENBQUM7WUFDekMsTUFBTSxFQUFFLEdBQUcsRUFBRSxHQUFHLEVBQUUsR0FBRyxPQUFPLENBQUMsT0FBTyxFQUFFLENBQUM7WUFFdkMsR0FBSSxDQUFDLE1BQU0sQ0FBQyxLQUFLLENBQUMsR0FBRyxDQUFDLENBQUM7WUFDdkIsR0FBRyxDQUFDLE1BQU0sQ0FBQyxLQUFLLENBQUMsR0FBRyxDQUFDLENBQUM7WUFDdEIsTUFBTSxPQUFPLEdBQUcsT0FBTyxDQUFDLFVBQVUsQ0FBQyx3QkFBYSxDQUFDLE9BQU8sQ0FBQyxDQUFDO1lBQzFELE9BQU8sQ0FBQyxNQUFNLENBQUMsS0FBSyxDQUFDLDhCQUFrQixDQUFDLFdBQVcsQ0FBQyxpQkFBaUIsQ0FBQyxDQUFDO1FBQ3pFLENBQUMsQ0FBQyxDQUFDO1FBRUgsRUFBRSxDQUFDLHNEQUFzRCxFQUFFLEdBQUcsRUFBRTtZQUM5RCxNQUFNLE9BQU8sR0FBRyxJQUFJLGFBQU8sRUFBRSxDQUFDO1lBQzlCLE1BQU0sRUFBRSxHQUFHLEVBQUUsR0FBRyxFQUFFLEdBQUcsT0FBTyxDQUFDLE9BQU8sRUFBRSxDQUFDO1lBQ3ZDLGdCQUFNLENBQUMsS0FBSyxDQUFDLEdBQUcsQ0FBQyxDQUFDO1lBQ2xCLGdCQUFNLENBQUMsS0FBSyxDQUFDLEdBQUcsQ0FBQyxDQUFDO1FBQ3BCLENBQUMsQ0FBQyxDQUFDO0lBQ0wsQ0FBQyxDQUFDLENBQUM7QUFDTCxDQUFDLENBQUMsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCBzaG91bGQgZnJvbSAnc2hvdWxkJztcbmltcG9ydCB7IEtleVBhaXIgfSBmcm9tICcuLi8uLi9zcmMnO1xuaW1wb3J0IHsgZW50ZXJwcmlzZUFjY291bnRzIH0gZnJvbSAnLi4vcmVzb3VyY2VzLyc7XG5pbXBvcnQgeyBQcml2YXRlS2V5LCBQdWJsaWNLZXkgfSBmcm9tICdAZW11cmdvL2NhcmRhbm8tc2VyaWFsaXphdGlvbi1saWItbm9kZWpzJztcbmltcG9ydCB7IEFkZHJlc3NGb3JtYXQsIHRvSGV4IH0gZnJvbSAnQGJpdGdvLWJldGEvc2RrLWNvcmUnO1xuXG5kZXNjcmliZSgnQWRhIEtleXBhaXInLCAoKSA9PiB7XG4gIGNvbnN0IGRlZmF1bHRTZWVkID0geyBzZWVkOiBCdWZmZXIuYWxsb2MoMzIpIH07XG5cbiAgZGVzY3JpYmUoJ0tleXBhaXIgY3JlYXRpb24nLCAoKSA9PiB7XG4gICAgaXQoJ2luaXRpYWwgc3RhdGUnLCAoKSA9PiB7XG4gICAgICBjb25zdCBrZXlQYWlyID0gbmV3IEtleVBhaXIoKTtcbiAgICAgIHNob3VsZC5leGlzdHMoa2V5UGFpci5nZXRLZXlzKCkucHJ2KTtcbiAgICAgIHNob3VsZC5leGlzdHMoa2V5UGFpci5nZXRLZXlzKCkucHJ2KTtcbiAgICB9KTtcblxuICAgIGl0KCdpbml0aWFsaXphdGlvbiBmcm9tIHByaXZhdGUga2V5JywgKCkgPT4ge1xuICAgICAgbGV0IGtleVBhaXIgPSBuZXcgS2V5UGFpcih7XG4gICAgICAgIHBydjogZW50ZXJwcmlzZUFjY291bnRzLmFjY291bnQxLnNlY3JldEtleSxcbiAgICAgIH0pO1xuXG4gICAgICBzaG91bGQuZXF1YWwoXG4gICAgICAgIGtleVBhaXIuZ2V0S2V5cygpLnBydixcbiAgICAgICAgdG9IZXgoUHJpdmF0ZUtleS5mcm9tX2JlY2gzMihlbnRlcnByaXNlQWNjb3VudHMuYWNjb3VudDEuc2VjcmV0S2V5KS5hc19ieXRlcygpKVxuICAgICAgKTtcblxuICAgICAgc2hvdWxkLmVxdWFsKGtleVBhaXIuZ2V0S2V5cygpLnB1YiwgZW50ZXJwcmlzZUFjY291bnRzLmFjY291bnQxLmhleFB1YmxpYyk7XG5cbiAgICAgIGtleVBhaXIgPSBuZXcgS2V5UGFpcih7XG4gICAgICAgIHBydjogZW50ZXJwcmlzZUFjY291bnRzLmFjY291bnQyLnNlY3JldEtleSxcbiAgICAgIH0pO1xuXG4gICAgICBzaG91bGQuZXF1YWwoXG4gICAgICAgIGtleVBhaXIuZ2V0S2V5cygpLnBydixcbiAgICAgICAgdG9IZXgoUHJpdmF0ZUtleS5mcm9tX2JlY2gzMihlbnRlcnByaXNlQWNjb3VudHMuYWNjb3VudDIuc2VjcmV0S2V5KS5hc19ieXRlcygpKVxuICAgICAgKTtcbiAgICAgIHNob3VsZC5lcXVhbChrZXlQYWlyLmdldEtleXMoKS5wdWIsIGVudGVycHJpc2VBY2NvdW50cy5hY2NvdW50Mi5oZXhQdWJsaWMpO1xuICAgIH0pO1xuXG4gICAgaXQoJ2luaXRpYWxpemF0aW9uIGZyb20gcHVibGljIGtleScsICgpID0+IHtcbiAgICAgIGxldCBrZXlQYWlyID0gbmV3IEtleVBhaXIoeyBwdWI6IGVudGVycHJpc2VBY2NvdW50cy5hY2NvdW50MS5wdWJsaWNLZXkgfSk7XG5cbiAgICAgIHNob3VsZC5lcXVhbChcbiAgICAgICAga2V5UGFpci5nZXRLZXlzKCkucHViLFxuICAgICAgICB0b0hleChQdWJsaWNLZXkuZnJvbV9iZWNoMzIoZW50ZXJwcmlzZUFjY291bnRzLmFjY291bnQxLnB1YmxpY0tleSkuYXNfYnl0ZXMoKSlcbiAgICAgICk7XG5cbiAgICAgIGtleVBhaXIgPSBuZXcgS2V5UGFpcih7IHB1YjogZW50ZXJwcmlzZUFjY291bnRzLmFjY291bnQyLnB1YmxpY0tleSB9KTtcbiAgICAgIHNob3VsZC5lcXVhbChrZXlQYWlyLmdldEFkZHJlc3MoQWRkcmVzc0Zvcm1hdC50ZXN0bmV0KSwgZW50ZXJwcmlzZUFjY291bnRzLmFjY291bnQyLmJhc2VBZGRyZXNzKTtcblxuICAgICAga2V5UGFpciA9IG5ldyBLZXlQYWlyKHsgcHViOiBlbnRlcnByaXNlQWNjb3VudHMuYWNjb3VudDQucHVibGljS2V5SGV4IH0pO1xuICAgICAgc2hvdWxkLmVxdWFsKGtleVBhaXIuZ2V0S2V5cygpLnB1YiwgZW50ZXJwcmlzZUFjY291bnRzLmFjY291bnQ0LnB1YmxpY0tleUhleCk7XG4gICAgfSk7XG4gIH0pO1xuXG4gIGRlc2NyaWJlKCdLZXlQYWlyIHZhbGlkYXRpb24nLCAoKSA9PiB7XG4gICAgaXQoJ3Nob3VsZCBmYWlsIHRvIGNyZWF0ZSBmcm9tIGFuIGludmFsaWQgc2VlZCcsICgpID0+IHtcbiAgICAgIGNvbnN0IHNlZWQgPSB7IHNlZWQ6IEJ1ZmZlci5hbGxvYyg4KSB9OyAvLyAgU2VlZCBzaG91bGQgYmUgNTEyIGJpdHMgKDY0IGJ5dGVzKVxuICAgICAgc2hvdWxkLnRocm93cygoKSA9PiBuZXcgS2V5UGFpcihzZWVkKSwgJ2JhZCBzZWVkIHNpemUnKTtcbiAgICB9KTtcblxuICAgIGl0KCdzaG91bGQgZmFpbCB0byBjcmVhdGUgZnJvbSBhbiBpbnZhbGlkIHB1YmxpYyBrZXknLCAoKSA9PiB7XG4gICAgICBjb25zdCBzb3VyY2UgPSB7XG4gICAgICAgIHB1YjogJzAxRDYzRCcsXG4gICAgICB9O1xuICAgICAgc2hvdWxkLnRocm93cygoKSA9PiBuZXcgS2V5UGFpcihzb3VyY2UpLCAnYWRkcmVzcyBzZWVtcyB0byBiZSBtYWxmb3JtZWQnKTtcbiAgICB9KTtcblxuICAgIGl0KCdzaG91bGQgZmFpbCB0byBjcmVhdGUgZnJvbSBhbiBpbnZhbGlkIHByaXZhdGUga2V5JywgKCkgPT4ge1xuICAgICAgY29uc3Qgc291cmNlID0ge1xuICAgICAgICBwcnY6ICc4MkEzNCcsXG4gICAgICB9O1xuICAgICAgc2hvdWxkLnRocm93cygoKSA9PiBuZXcgS2V5UGFpcihzb3VyY2UpLCAnSW52YWxpZCBiYXNlMzIgY2hhcmFjdGVycycpO1xuICAgIH0pO1xuICB9KTtcblxuICBkZXNjcmliZSgnZ2V0QWRkcmVzcycsICgpID0+IHtcbiAgICBpdCgnc2hvdWxkIGdldCBhbiBhZGRyZXNzJywgKCkgPT4ge1xuICAgICAgbGV0IGtleVBhaXIgPSBuZXcgS2V5UGFpcih7IHBydjogZW50ZXJwcmlzZUFjY291bnRzLmFjY291bnQxLnNlY3JldEtleSB9KTtcbiAgICAgIGxldCBhZGRyZXNzID0ga2V5UGFpci5nZXRBZGRyZXNzKEFkZHJlc3NGb3JtYXQudGVzdG5ldCk7XG4gICAgICBhZGRyZXNzLnNob3VsZC5lcXVhbChlbnRlcnByaXNlQWNjb3VudHMuYWNjb3VudDEuYmFzZUFkZHJlc3MpO1xuXG4gICAgICBrZXlQYWlyID0gbmV3IEtleVBhaXIoeyBwcnY6IGVudGVycHJpc2VBY2NvdW50cy5hY2NvdW50My5zZWNyZXRLZXkgfSk7XG4gICAgICBhZGRyZXNzID0ga2V5UGFpci5nZXRBZGRyZXNzKEFkZHJlc3NGb3JtYXQudGVzdG5ldCk7XG4gICAgICBhZGRyZXNzLnNob3VsZC5lcXVhbChlbnRlcnByaXNlQWNjb3VudHMuYWNjb3VudDMuYmFzZUFkZHJlc3MpO1xuXG4gICAgICBrZXlQYWlyID0gbmV3IEtleVBhaXIoeyBwdWI6IGVudGVycHJpc2VBY2NvdW50cy5hY2NvdW50NC5wdWJsaWNLZXlIZXggfSk7XG4gICAgICBhZGRyZXNzID0ga2V5UGFpci5nZXRBZGRyZXNzKEFkZHJlc3NGb3JtYXQudGVzdG5ldCk7XG4gICAgICBhZGRyZXNzLnNob3VsZC5lcXVhbChlbnRlcnByaXNlQWNjb3VudHMuYWNjb3VudDQuYmFzZUFkZHJlc3MpO1xuICAgIH0pO1xuICB9KTtcblxuICBkZXNjcmliZSgnZ2V0S2V5cycsICgpID0+IHtcbiAgICBpdCgnc2hvdWxkIGdldCBwcml2YXRlIGFuZCBwdWJsaWMga2V5cyBpbiB0aGUgcHJvdG9jb2wgZGVmYXVsdCBmb3JtYXQnLCAoKSA9PiB7XG4gICAgICBjb25zdCBrZXlQYWlyID0gbmV3IEtleVBhaXIoZGVmYXVsdFNlZWQpO1xuICAgICAgY29uc3QgeyBwcnYsIHB1YiB9ID0ga2V5UGFpci5nZXRLZXlzKCk7XG5cbiAgICAgIHBydiEuc2hvdWxkLmVxdWFsKHBydik7XG4gICAgICBwdWIuc2hvdWxkLmVxdWFsKHB1Yik7XG4gICAgICBjb25zdCBhZGRyZXNzID0ga2V5UGFpci5nZXRBZGRyZXNzKEFkZHJlc3NGb3JtYXQudGVzdG5ldCk7XG4gICAgICBhZGRyZXNzLnNob3VsZC5lcXVhbChlbnRlcnByaXNlQWNjb3VudHMuc2VlZEFjY291bnQuZW50ZXJwcmlzZUFkZHJlc3MpO1xuICAgIH0pO1xuXG4gICAgaXQoJ3Nob3VsZCBnZXQgcHJpdmF0ZSBhbmQgcHVibGljIGtleXMgZm9yIGEgcmFuZG9tIHNlZWQnLCAoKSA9PiB7XG4gICAgICBjb25zdCBrZXlQYWlyID0gbmV3IEtleVBhaXIoKTtcbiAgICAgIGNvbnN0IHsgcHJ2LCBwdWIgfSA9IGtleVBhaXIuZ2V0S2V5cygpO1xuICAgICAgc2hvdWxkLmV4aXN0KHBydik7XG4gICAgICBzaG91bGQuZXhpc3QocHViKTtcbiAgICB9KTtcbiAgfSk7XG59KTtcbiJdfQ==
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"cip8Message.d.ts","sourceRoot":"","sources":["../../../../../test/unit/messages/cip8/cip8Message.ts"],"names":[],"mappings":""}
|
|
@@ -0,0 +1,131 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
3
|
+
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
4
|
+
};
|
|
5
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
|
+
const should_1 = __importDefault(require("should"));
|
|
7
|
+
const sinon_1 = __importDefault(require("sinon"));
|
|
8
|
+
const buffer_1 = require("buffer");
|
|
9
|
+
const sdk_core_1 = require("@bitgo-beta/sdk-core");
|
|
10
|
+
const src_1 = require("../../../../src");
|
|
11
|
+
const cip8Resources_1 = require("../../../resources/cip8Resources");
|
|
12
|
+
describe('Cip8Message', function () {
|
|
13
|
+
let sandbox;
|
|
14
|
+
beforeEach(function () {
|
|
15
|
+
sandbox = sinon_1.default.createSandbox();
|
|
16
|
+
});
|
|
17
|
+
afterEach(function () {
|
|
18
|
+
sandbox.restore();
|
|
19
|
+
});
|
|
20
|
+
const createDefaultMessageOptions = (message = cip8Resources_1.cip8TestResources.messages.simple) => {
|
|
21
|
+
return {
|
|
22
|
+
coinConfig: {},
|
|
23
|
+
payload: message,
|
|
24
|
+
signers: [cip8Resources_1.cip8TestResources.address.bech32],
|
|
25
|
+
};
|
|
26
|
+
};
|
|
27
|
+
describe('constructor', function () {
|
|
28
|
+
it('should create a new instance with correct message type', function () {
|
|
29
|
+
const message = new src_1.Cip8Message(createDefaultMessageOptions());
|
|
30
|
+
should_1.default.exist(message);
|
|
31
|
+
message.getType().should.equal(sdk_core_1.MessageStandardType.CIP8);
|
|
32
|
+
});
|
|
33
|
+
it('should initialize with provided options', function () {
|
|
34
|
+
const options = createDefaultMessageOptions();
|
|
35
|
+
options.metadata = { test: 'value' };
|
|
36
|
+
const message = new src_1.Cip8Message(options);
|
|
37
|
+
should_1.default.exist(message);
|
|
38
|
+
should_1.default.exist(message.getPayload());
|
|
39
|
+
message.getPayload().should.equal(options.payload);
|
|
40
|
+
should_1.default.exist(message.getSigners());
|
|
41
|
+
message.getSigners().should.deepEqual(options.signers);
|
|
42
|
+
should_1.default.exist(message.getMetadata());
|
|
43
|
+
should_1.default.deepEqual(message.getMetadata(), options.metadata);
|
|
44
|
+
});
|
|
45
|
+
it('should accept signatures in constructor', function () {
|
|
46
|
+
const signatures = [
|
|
47
|
+
{
|
|
48
|
+
signature: buffer_1.Buffer.from('test-signature'),
|
|
49
|
+
publicKey: { pub: cip8Resources_1.cip8TestResources.keyPair.pub },
|
|
50
|
+
},
|
|
51
|
+
];
|
|
52
|
+
const options = {
|
|
53
|
+
...createDefaultMessageOptions(),
|
|
54
|
+
signatures,
|
|
55
|
+
};
|
|
56
|
+
const message = new src_1.Cip8Message(options);
|
|
57
|
+
should_1.default.exist(message.getSignatures());
|
|
58
|
+
message.getSignatures().should.deepEqual(signatures);
|
|
59
|
+
});
|
|
60
|
+
});
|
|
61
|
+
describe('validateAndGetCommonSetup', function () {
|
|
62
|
+
it('should throw error when payload is missing', function () {
|
|
63
|
+
const options = createDefaultMessageOptions();
|
|
64
|
+
options.payload = undefined;
|
|
65
|
+
const message = new src_1.Cip8Message(options);
|
|
66
|
+
should_1.default.throws(() => message.validateAndGetCommonSetup(), /Payload is required to build a CIP8 message/);
|
|
67
|
+
});
|
|
68
|
+
it('should throw error when signers are missing', function () {
|
|
69
|
+
const options = createDefaultMessageOptions();
|
|
70
|
+
options.signers = [];
|
|
71
|
+
const message = new src_1.Cip8Message(options);
|
|
72
|
+
should_1.default.throws(() => message.validateAndGetCommonSetup(), /A signer address is required to build a CIP8 message/);
|
|
73
|
+
});
|
|
74
|
+
it('should return address CBOR bytes for valid input', function () {
|
|
75
|
+
const message = new src_1.Cip8Message(createDefaultMessageOptions());
|
|
76
|
+
const result = message.validateAndGetCommonSetup();
|
|
77
|
+
should_1.default.exist(result);
|
|
78
|
+
should_1.default.exist(result.addressCborBytes);
|
|
79
|
+
});
|
|
80
|
+
});
|
|
81
|
+
describe('getSignablePayload', function () {
|
|
82
|
+
it('should return signable payload as buffer', async function () {
|
|
83
|
+
const message = new src_1.Cip8Message(createDefaultMessageOptions());
|
|
84
|
+
const payload = await message.getSignablePayload();
|
|
85
|
+
should_1.default.exist(payload);
|
|
86
|
+
should_1.default.ok(buffer_1.Buffer.isBuffer(payload));
|
|
87
|
+
});
|
|
88
|
+
});
|
|
89
|
+
describe('getBroadcastableSignatures', function () {
|
|
90
|
+
it('should return empty array when no signatures exist', function () {
|
|
91
|
+
const message = new src_1.Cip8Message(createDefaultMessageOptions());
|
|
92
|
+
const signatures = message.getBroadcastableSignatures();
|
|
93
|
+
should_1.default.exist(signatures);
|
|
94
|
+
signatures.should.be.an.Array();
|
|
95
|
+
signatures.should.be.empty();
|
|
96
|
+
});
|
|
97
|
+
it('should convert signature to COSE format', function () {
|
|
98
|
+
const testSignature = {
|
|
99
|
+
signature: buffer_1.Buffer.from('test-signature'),
|
|
100
|
+
publicKey: { pub: cip8Resources_1.cip8TestResources.keyPair.pub },
|
|
101
|
+
};
|
|
102
|
+
const options = {
|
|
103
|
+
...createDefaultMessageOptions(),
|
|
104
|
+
signatures: [testSignature],
|
|
105
|
+
};
|
|
106
|
+
const message = new src_1.Cip8Message(options);
|
|
107
|
+
const signatures = message.getBroadcastableSignatures();
|
|
108
|
+
should_1.default.exist(signatures);
|
|
109
|
+
signatures.should.be.an.Array();
|
|
110
|
+
signatures.should.have.length(1);
|
|
111
|
+
should_1.default.exist(signatures[0].signature);
|
|
112
|
+
should_1.default.ok(buffer_1.Buffer.isBuffer(signatures[0].signature));
|
|
113
|
+
should_1.default.exist(signatures[0].publicKey);
|
|
114
|
+
should_1.default.equal(signatures[0].publicKey.pub, cip8Resources_1.cip8TestResources.keyPair.pub);
|
|
115
|
+
});
|
|
116
|
+
it('should throw when validation fails', function () {
|
|
117
|
+
const testSignature = {
|
|
118
|
+
signature: buffer_1.Buffer.from('test-signature'),
|
|
119
|
+
publicKey: { pub: cip8Resources_1.cip8TestResources.keyPair.pub },
|
|
120
|
+
};
|
|
121
|
+
const options = {
|
|
122
|
+
...createDefaultMessageOptions(),
|
|
123
|
+
payload: undefined,
|
|
124
|
+
signatures: [testSignature],
|
|
125
|
+
};
|
|
126
|
+
const message = new src_1.Cip8Message(options);
|
|
127
|
+
should_1.default.throws(() => message.getBroadcastableSignatures(), /Payload is required to build a CIP8 message/);
|
|
128
|
+
});
|
|
129
|
+
});
|
|
130
|
+
});
|
|
131
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2lwOE1lc3NhZ2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi90ZXN0L3VuaXQvbWVzc2FnZXMvY2lwOC9jaXA4TWVzc2FnZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7OztBQUFBLG9EQUE0QjtBQUM1QixrREFBMEI7QUFDMUIsbUNBQWdDO0FBQ2hDLG1EQUFzRjtBQUN0Rix5Q0FBOEM7QUFDOUMsb0VBQXFFO0FBRXJFLFFBQVEsQ0FBQyxhQUFhLEVBQUU7SUFDdEIsSUFBSSxPQUEyQixDQUFDO0lBRWhDLFVBQVUsQ0FBQztRQUNULE9BQU8sR0FBRyxlQUFLLENBQUMsYUFBYSxFQUFFLENBQUM7SUFDbEMsQ0FBQyxDQUFDLENBQUM7SUFFSCxTQUFTLENBQUM7UUFDUixPQUFPLENBQUMsT0FBTyxFQUFFLENBQUM7SUFDcEIsQ0FBQyxDQUFDLENBQUM7SUFFSCxNQUFNLDJCQUEyQixHQUFHLENBQUMsT0FBTyxHQUFHLGlDQUFpQixDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQWtCLEVBQUU7UUFDbEcsT0FBTztZQUNMLFVBQVUsRUFBRSxFQUFTO1lBQ3JCLE9BQU8sRUFBRSxPQUFPO1lBQ2hCLE9BQU8sRUFBRSxDQUFDLGlDQUFpQixDQUFDLE9BQU8sQ0FBQyxNQUFNLENBQUM7U0FDNUMsQ0FBQztJQUNKLENBQUMsQ0FBQztJQUVGLFFBQVEsQ0FBQyxhQUFhLEVBQUU7UUFDdEIsRUFBRSxDQUFDLHdEQUF3RCxFQUFFO1lBQzNELE1BQU0sT0FBTyxHQUFHLElBQUksaUJBQVcsQ0FBQywyQkFBMkIsRUFBRSxDQUFDLENBQUM7WUFDL0QsZ0JBQU0sQ0FBQyxLQUFLLENBQUMsT0FBTyxDQUFDLENBQUM7WUFDdEIsT0FBTyxDQUFDLE9BQU8sRUFBRSxDQUFDLE1BQU0sQ0FBQyxLQUFLLENBQUMsOEJBQW1CLENBQUMsSUFBSSxDQUFDLENBQUM7UUFDM0QsQ0FBQyxDQUFDLENBQUM7UUFFSCxFQUFFLENBQUMseUNBQXlDLEVB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LENBQUM7WUFFRixNQUFNLE9BQU8sR0FBRztnQkFDZCxHQUFHLDJCQUEyQixFQUFFO2dCQUNoQyxPQUFPLEVBQUUsU0FBZ0I7Z0JBQ3pCLFVBQVUsRUFBRSxDQUFDLGFBQWEsQ0FBQzthQUM1QixDQUFDO1lBRUYsTUFBTSxPQUFPLEdBQUcsSUFBSSxpQkFBVyxDQUFDLE9BQU8sQ0FBQyxDQUFDO1lBRXpDLGdCQUFNLENBQUMsTUFBTSxDQUFDLEdBQUcsRUFBRSxDQUFDLE9BQU8sQ0FBQywwQkFBMEIsRUFBRSxFQUFFLDZDQUE2QyxDQUFDLENBQUM7UUFDM0csQ0FBQyxDQUFDLENBQUM7SUFDTCxDQUFDLENBQUMsQ0FBQztBQUNMLENBQUMsQ0FBQyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHNob3VsZCBmcm9tICdzaG91bGQnO1xuaW1wb3J0IHNpbm9uIGZyb20gJ3Npbm9uJztcbmltcG9ydCB7IEJ1ZmZlciB9IGZyb20gJ2J1ZmZlcic7XG5pbXBvcnQgeyBNZXNzYWdlT3B0aW9ucywgTWVzc2FnZVN0YW5kYXJkVHlwZSwgU2lnbmF0dXJlIH0gZnJvbSAnQGJpdGdvLWJldGEvc2RrLWNvcmUnO1xuaW1wb3J0IHsgQ2lwOE1lc3NhZ2UgfSBmcm9tICcuLi8uLi8uLi8uLi9zcmMnO1xuaW1wb3J0IHsgY2lwOFRlc3RSZXNvdXJjZXMgfSBmcm9tICcuLi8uLi8uLi9yZXNvdXJjZXMvY2lwOFJlc291cmNlcyc7XG5cbmRlc2NyaWJlKCdDaXA4TWVzc2FnZScsIGZ1bmN0aW9uICgpIHtcbiAgbGV0IHNhbmRib3g6IHNpbm9uLlNpbm9uU2FuZGJveDtcblxuICBiZWZvcmVFYWNoKGZ1bmN0aW9uICgpIHtcbiAgICBzYW5kYm94ID0gc2lub24uY3JlYXRlU2FuZGJveCgpO1xuICB9KTtcblxuICBhZnRlckVhY2goZnVuY3Rpb24gKCkge1xuICAgIHNhbmRib3gucmVzdG9yZSgpO1xuICB9KTtcblxuICBjb25zdCBjcmVhdGVEZWZhdWx0TWVzc2FnZU9wdGlvbnMgPSAobWVzc2FnZSA9IGNpcDhUZXN0UmVzb3VyY2VzLm1lc3NhZ2VzLnNpbXBsZSk6IE1lc3NhZ2VPcHRpb25zID0+IHtcbiAgICByZXR1cm4ge1xuICAgICAgY29pbkNvbmZpZzoge30gYXMgYW55LFxuICAgICAgcGF5bG9hZDogbWVzc2FnZSxcbiAgICAgIHNpZ25lcnM6IFtjaXA4VGVzdFJlc291cmNlcy5hZGRyZXNzLmJlY2gzMl0sXG4gICAgfTtcbiAgfTtcblxuICBkZXNjcmliZSgnY29uc3RydWN0b3InLCBmdW5jdGlvbiAoKSB7XG4gICAgaXQoJ3Nob3VsZCBjcmVhdGUgYSBuZXcgaW5zdGFuY2Ugd2l0aCBjb3JyZWN0IG1lc3NhZ2UgdHlwZScsIGZ1bmN0aW9uICgpIHtcbiAgICAgIGNvbnN0IG1lc3NhZ2UgPSBuZXcgQ2lwOE1lc3NhZ2UoY3JlYXRlRGVmYXVsdE1lc3NhZ2VPcHRpb25zKCkpO1xuICAgICAgc2hvdWxkLmV4aXN0KG1lc3NhZ2UpO1xuICAgICAgbWVzc2FnZS5nZXRUeXBlKCkuc2hvdWxkLmVxdWFsKE1lc3NhZ2VTdGFuZGFyZFR5cGUuQ0lQOCk7XG4gICAgfSk7XG5cbiAgICBpdCgnc2hvdWxkIGluaXRpYWxpemUgd2l0aCBwcm92aWRlZCBvcHRpb25zJywgZnVuY3Rpb24gKCkge1xuICAgICAgY29uc3Qgb3B0aW9ucyA9IGNyZWF0ZURlZmF1bHRNZXNzYWdlT3B0aW9ucygpO1xuICAgICAgb3B0aW9ucy5tZXRhZGF0YSA9IHsgdGVzdDogJ3ZhbHVlJyB9O1xuXG4gICAgICBjb25zdCBtZXNzYWdlID0gbmV3IENpcDhNZXNzYWdlKG9wdGlvbnMpO1xuICAgICAgc2hvdWxkLmV4aXN0KG1lc3NhZ2UpO1xuICAgICAgc2hvdWxkLmV4aXN0KG1lc3NhZ2UuZ2V0UGF5bG9hZCgpKTtcbiAgICAgIG1lc3NhZ2UuZ2V0UGF5bG9hZCgpLnNob3VsZC5lcXVhbChvcHRpb25zLnBheWxvYWQpO1xuICAgICAgc2hvdWxkLmV4aXN0KG1lc3NhZ2UuZ2V0U2lnbmVycygpKTtcbiAgICAgIG1lc3NhZ2UuZ2V0U2lnbmVycygpLnNob3VsZC5kZWVwRXF1YWwob3B0aW9ucy5zaWduZXJzKTtcbiAgICAgIHNob3VsZC5leGlzdChtZXNzYWdlLmdldE1ldGFkYXRhKCkpO1xuICAgICAgc2hvdWxkLmRlZXBFcXVhbChtZXNzYWdlLmdldE1ldGFkYXRhKCksIG9wdGlvbnMubWV0YWRhdGEpO1xuICAgIH0pO1xuXG4gICAgaXQoJ3Nob3VsZCBhY2NlcHQgc2lnbmF0dXJlcyBpbiBjb25zdHJ1Y3RvcicsIGZ1bmN0aW9uICgpIHtcbiAgICAgIGNvbnN0IHNpZ25hdHVyZXM6IFNpZ25hdHVyZVtdID0gW1xuICAgICAgICB7XG4gICAgICAgICAgc2lnbmF0dXJlOiBCdWZmZXIuZnJvbSgndGVzdC1zaWduYXR1cmUnKSxcbiAgICAgICAgICBwdWJsaWNLZXk6IHsgcHViOiBjaXA4VGVzdFJlc291cmNlcy5rZXlQYWlyLnB1YiB9LFxuICAgICAgICB9LFxuICAgICAgXTtcblxuICAgICAgY29uc3Qgb3B0aW9ucyA9IHtcbiAgICAgICAgLi4uY3JlYXRlRGVmYXVsdE1lc3NhZ2VPcHRpb25zKCksXG4gICAgICAgIHNpZ25hdHVyZXMsXG4gICAgICB9O1xuXG4gICAgICBjb25zdCBtZXNzYWdlID0gbmV3IENpcDhNZXNzYWdlKG9wdGlvbnMpO1xuICAgICAgc2hvdWxkLmV4aXN0KG1lc3NhZ2UuZ2V0U2lnbmF0dXJlcygpKTtcbiAgICAgIG1lc3NhZ2UuZ2V0U2lnbmF0dXJlcygpLnNob3VsZC5kZWVwRXF1YWwoc2lnbmF0dXJlcyk7XG4gICAgfSk7XG4gIH0pO1xuXG4gIGRlc2NyaWJlKCd2YWxpZGF0ZUFuZEdldENvbW1vblNldHVwJywgZnVuY3Rpb24gKCkge1xuICAgIGl0KCdzaG91bGQgdGhyb3cgZXJyb3Igd2hlbiBwYXlsb2FkIGlzIG1pc3NpbmcnLCBmdW5jdGlvbiAoKSB7XG4gICAgICBjb25zdCBvcHRpb25zID0gY3JlYXRlRGVmYXVsdE1lc3NhZ2VPcHRpb25zKCk7XG4gICAgICBvcHRpb25zLnBheWxvYWQgPSB1bmRlZmluZWQgYXMgYW55O1xuICAgICAgY29uc3QgbWVzc2FnZSA9IG5ldyBDaXA4TWVzc2FnZShvcHRpb25zKTtcblxuICAgICAgc2hvdWxkLnRocm93cygoKSA9PiAobWVzc2FnZSBhcyBhbnkpLnZhbGlkYXRlQW5kR2V0Q29tbW9uU2V0dXAoKSwgL1BheWxvYWQgaXMgcmVxdWlyZWQgdG8gYnVpbGQgYSBDSVA4IG1lc3NhZ2UvKTtcbiAgICB9KTtcblxuICAgIGl0KCdzaG91bGQgdGhyb3cgZXJyb3Igd2hlbiBzaWduZXJzIGFyZSBtaXNzaW5nJywgZnVuY3Rpb24gKCkge1xuICAgICAgY29uc3Qgb3B0aW9ucyA9IGNyZWF0ZURlZmF1bHRNZXNzYWdlT3B0aW9ucygpO1xuICAgICAgb3B0aW9ucy5zaWduZXJzID0gW107XG4gICAgICBjb25zdCBtZXNzYWdlID0gbmV3IENpcDhNZXNzYWdlKG9wdGlvbnMpO1xuXG4gICAgICBzaG91bGQudGhyb3dzKFxuICAgICAgICAoKSA9PiAobWVzc2FnZSBhcyBhbnkpLnZhbGlkYXRlQW5kR2V0Q29tbW9uU2V0dXAoKSxcbiAgICAgICAgL0Egc2lnbmVyIGFkZHJlc3MgaXMgcmVxdWlyZWQgdG8gYnVpbGQgYSBDSVA4IG1lc3NhZ2UvXG4gICAgICApO1xuICAgIH0pO1xuXG4gICAgaXQoJ3Nob3VsZCByZXR1cm4gYWRkcmVzcyBDQk9SIGJ5dGVzIGZvciB2YWxpZCBpbnB1dCcsIGZ1bmN0aW9uICgpIHtcbiAgICAgIGNvbnN0IG1lc3NhZ2UgPSBuZXcgQ2lwOE1lc3NhZ2UoY3JlYXRlRGVmYXVsdE1lc3NhZ2VPcHRpb25zKCkpO1xuICAgICAgY29uc3QgcmVzdWx0ID0gKG1lc3NhZ2UgYXMgYW55KS52YWxpZGF0ZUFuZEdldENvbW1vblNldHVwKCk7XG5cbiAgICAgIHNob3VsZC5leGlzdChyZXN1bHQpO1xuICAgICAgc2hvdWxkLmV4aXN0KHJlc3VsdC5hZGRyZXNzQ2JvckJ5dGVzKTtcbiAgICB9KTtcbiAgfSk7XG5cbiAgZGVzY3JpYmUoJ2dldFNpZ25hYmxlUGF5bG9hZCcsIGZ1bmN0aW9uICgpIHtcbiAgICBpdCgnc2hvdWxkIHJldHVybiBzaWduYWJsZSBwYXlsb2FkIGFzIGJ1ZmZlcicsIGFzeW5jIGZ1bmN0aW9uICgpIHtcbiAgICAgIGNvbnN0IG1lc3NhZ2UgPSBuZXcgQ2lwOE1lc3NhZ2UoY3JlYXRlRGVmYXVsdE1lc3NhZ2VPcHRpb25zKCkpO1xuICAgICAgY29uc3QgcGF5bG9hZCA9IGF3YWl0IG1lc3NhZ2UuZ2V0U2lnbmFibGVQYXlsb2FkKCk7XG5cbiAgICAgIHNob3VsZC5leGlzdChwYXlsb2FkKTtcbiAgICAgIHNob3VsZC5vayhCdWZmZXIuaXNCdWZmZXIocGF5bG9hZCkpO1xuICAgIH0pO1xuICB9KTtcblxuICBkZXNjcmliZSgnZ2V0QnJvYWRjYXN0YWJsZVNpZ25hdHVyZXMnLCBmdW5jdGlvbiAoKSB7XG4gICAgaXQoJ3Nob3VsZCByZXR1cm4gZW1wdHkgYXJyYXkgd2hlbiBubyBzaWduYXR1cmVzIGV4aXN0JywgZnVuY3Rpb24gKCkge1xuICAgICAgY29uc3QgbWVzc2FnZSA9IG5ldyBDaXA4TWVzc2FnZShjcmVhdGVEZWZhdWx0TWVzc2FnZU9wdGlvbnMoKSk7XG4gICAgICBjb25zdCBzaWduYXR1cmVzID0gbWVzc2FnZS5nZXRCcm9hZGNhc3RhYmxlU2lnbmF0dXJlcygpO1xuXG4gICAgICBzaG91bGQuZXhpc3Qoc2lnbmF0dXJlcyk7XG4gICAgICBzaWduYXR1cmVzLnNob3VsZC5iZS5hbi5BcnJheSgpO1xuICAgICAgc2lnbmF0dXJlcy5zaG91bGQuYmUuZW1wdHkoKTtcbiAgICB9KTtcblxuICAgIGl0KCdzaG91bGQgY29udmVydCBzaWduYXR1cmUgdG8gQ09TRSBmb3JtYXQnLCBmdW5jdGlvbiAoKSB7XG4gICAgICBjb25zdCB0ZXN0U2lnbmF0dXJlOiBTaWduYXR1cmUgPSB7XG4gICAgICAgIHNpZ25hdHVyZTogQnVmZmVyLmZyb20oJ3Rlc3Qtc2lnbmF0dXJlJyksXG4gICAgICAgIHB1YmxpY0tleTogeyBwdWI6IGNpcDhUZXN0UmVzb3VyY2VzLmtleVBhaXIucHViIH0sXG4gICAgICB9O1xuXG4gICAgICBjb25zdCBvcHRpb25zID0ge1xuICAgICAgICAuLi5jcmVhdGVEZWZhdWx0TWVzc2FnZU9wdGlvbnMoKSxcbiAgICAgICAgc2lnbmF0dXJlczogW3Rlc3RTaWduYXR1cmVdLFxuICAgICAgfTtcblxuICAgICAgY29uc3QgbWVzc2FnZSA9IG5ldyBDaXA4TWVzc2FnZShvcHRpb25zKTtcbiAgICAgIGNvbnN0IHNpZ25hdHVyZXMgPSBtZXNzYWdlLmdldEJyb2FkY2FzdGFibGVTaWduYXR1cmVzKCk7XG5cbiAgICAgIHNob3VsZC5leGlzdChzaWduYXR1cmVzKTtcbiAgICAgIHNpZ25hdHVyZXMuc2hvdWxkLmJlLmFuLkFycmF5KCk7XG4gICAgICBzaWduYXR1cmVzLnNob3VsZC5oYXZlLmxlbmd0aCgxKTtcblxuICAgICAgc2hvdWxkLmV4aXN0KHNpZ25hdHVyZXNbMF0uc2lnbmF0dXJlKTtcbiAgICAgIHNob3VsZC5vayhCdWZmZXIuaXNCdWZmZXIoc2lnbmF0dXJlc1swXS5zaWduYXR1cmUpKTtcbiAgICAgIHNob3VsZC5leGlzdChzaWduYXR1cmVzWzBdLnB1YmxpY0tleSk7XG4gICAgICBzaG91bGQuZXF1YWwoc2lnbmF0dXJlc1swXS5wdWJsaWNLZXkucHViLCBjaXA4VGVzdFJlc291cmNlcy5rZXlQYWlyLnB1Yik7XG4gICAgfSk7XG5cbiAgICBpdCgnc2hvdWxkIHRocm93IHdoZW4gdmFsaWRhdGlvbiBmYWlscycsIGZ1bmN0aW9uICgpIHtcbiAgICAgIGNvbnN0IHRlc3RTaWduYXR1cmU6IFNpZ25hdHVyZSA9IHtcbiAgICAgICAgc2lnbmF0dXJlOiBCdWZmZXIuZnJvbSgndGVzdC1zaWduYXR1cmUnKSxcbiAgICAgICAgcHVibGljS2V5OiB7IHB1YjogY2lwOFRlc3RSZXNvdXJjZXMua2V5UGFpci5wdWIgfSxcbiAgICAgIH07XG5cbiAgICAgIGNvbnN0IG9wdGlvbnMgPSB7XG4gICAgICAgIC4uLmNyZWF0ZURlZmF1bHRNZXNzYWdlT3B0aW9ucygpLFxuICAgICAgICBwYXlsb2FkOiB1bmRlZmluZWQgYXMgYW55LFxuICAgICAgICBzaWduYXR1cmVzOiBbdGVzdFNpZ25hdHVyZV0sXG4gICAgICB9O1xuXG4gICAgICBjb25zdCBtZXNzYWdlID0gbmV3IENpcDhNZXNzYWdlKG9wdGlvbnMpO1xuXG4gICAgICBzaG91bGQudGhyb3dzKCgpID0+IG1lc3NhZ2UuZ2V0QnJvYWRjYXN0YWJsZVNpZ25hdHVyZXMoKSwgL1BheWxvYWQgaXMgcmVxdWlyZWQgdG8gYnVpbGQgYSBDSVA4IG1lc3NhZ2UvKTtcbiAgICB9KTtcbiAgfSk7XG59KTtcbiJdfQ==
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"cip8MessageBuilder.d.ts","sourceRoot":"","sources":["../../../../../test/unit/messages/cip8/cip8MessageBuilder.ts"],"names":[],"mappings":""}
|
|
@@ -0,0 +1,132 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
3
|
+
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
4
|
+
};
|
|
5
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
|
+
const should_1 = __importDefault(require("should"));
|
|
7
|
+
const sinon_1 = __importDefault(require("sinon"));
|
|
8
|
+
const buffer_1 = require("buffer");
|
|
9
|
+
const sdk_core_1 = require("@bitgo-beta/sdk-core");
|
|
10
|
+
const cip8Resources_1 = require("../../../resources/cip8Resources");
|
|
11
|
+
const src_1 = require("../../../../src");
|
|
12
|
+
const utils_1 = require("../../../../src/lib/messages/cip8/utils");
|
|
13
|
+
describe('Cip8MessageBuilder', function () {
|
|
14
|
+
let sandbox;
|
|
15
|
+
let builder;
|
|
16
|
+
const coinConfig = { name: 'tada' };
|
|
17
|
+
beforeEach(function () {
|
|
18
|
+
sandbox = sinon_1.default.createSandbox();
|
|
19
|
+
builder = new src_1.Cip8MessageBuilder(coinConfig);
|
|
20
|
+
});
|
|
21
|
+
afterEach(function () {
|
|
22
|
+
sandbox.restore();
|
|
23
|
+
});
|
|
24
|
+
describe('constructor', function () {
|
|
25
|
+
it('should create a builder with correct message type', function () {
|
|
26
|
+
const builder = new src_1.Cip8MessageBuilder(coinConfig);
|
|
27
|
+
should_1.default.exist(builder);
|
|
28
|
+
builder.getType().should.equal(sdk_core_1.MessageStandardType.CIP8);
|
|
29
|
+
});
|
|
30
|
+
});
|
|
31
|
+
describe('build', function () {
|
|
32
|
+
it('should throw error if payload is not set', async function () {
|
|
33
|
+
await (0, should_1.default)(builder.build()).be.rejectedWith('Message payload must be set before building the message');
|
|
34
|
+
});
|
|
35
|
+
it('should create a CIP8 message with correct properties', async function () {
|
|
36
|
+
const payload = cip8Resources_1.cip8TestResources.messages.simple;
|
|
37
|
+
const signer = cip8Resources_1.cip8TestResources.address.bech32;
|
|
38
|
+
const metadata = { extra: 'data' };
|
|
39
|
+
builder.setPayload(payload).addSigner(signer).setMetadata(metadata);
|
|
40
|
+
const message = await builder.build();
|
|
41
|
+
should_1.default.exist(message);
|
|
42
|
+
message.should.be.instanceof(src_1.Cip8Message);
|
|
43
|
+
message.getPayload().should.equal(payload);
|
|
44
|
+
message.getSigners().should.deepEqual([signer]);
|
|
45
|
+
const messageMetadata = message.getMetadata();
|
|
46
|
+
should_1.default.exist(messageMetadata);
|
|
47
|
+
messageMetadata.should.containEql(metadata);
|
|
48
|
+
messageMetadata.should.containEql({ encoding: 'utf8' });
|
|
49
|
+
});
|
|
50
|
+
it('should include signatures when provided', async function () {
|
|
51
|
+
const payload = cip8Resources_1.cip8TestResources.messages.simple;
|
|
52
|
+
const signer = cip8Resources_1.cip8TestResources.address.bech32;
|
|
53
|
+
const signatures = [
|
|
54
|
+
{
|
|
55
|
+
signature: buffer_1.Buffer.from('test-signature'),
|
|
56
|
+
publicKey: { pub: cip8Resources_1.cip8TestResources.keyPair.pub },
|
|
57
|
+
},
|
|
58
|
+
];
|
|
59
|
+
builder.setPayload(payload).addSigner(signer).setSignatures(signatures);
|
|
60
|
+
const message = await builder.build();
|
|
61
|
+
should_1.default.exist(message);
|
|
62
|
+
message.getSignatures().should.deepEqual(signatures);
|
|
63
|
+
});
|
|
64
|
+
});
|
|
65
|
+
describe('fromBroadcastFormat', function () {
|
|
66
|
+
it('should throw error if message type is invalid', async function () {
|
|
67
|
+
const broadcastMessage = {
|
|
68
|
+
type: sdk_core_1.MessageStandardType.UNKNOWN, // Incorrect type
|
|
69
|
+
payload: 'test-payload',
|
|
70
|
+
serializedSignatures: (0, sdk_core_1.serializeSignatures)([]),
|
|
71
|
+
signers: [cip8Resources_1.cip8TestResources.address.bech32],
|
|
72
|
+
metadata: {},
|
|
73
|
+
};
|
|
74
|
+
await (0, should_1.default)(builder.fromBroadcastFormat(broadcastMessage)).be.rejectedWith(`Invalid message type, expected ${sdk_core_1.MessageStandardType.CIP8}`);
|
|
75
|
+
});
|
|
76
|
+
it('should recreate message from broadcast format', async function () {
|
|
77
|
+
const signatures = [
|
|
78
|
+
{
|
|
79
|
+
signature: buffer_1.Buffer.from('test-signature'),
|
|
80
|
+
publicKey: { pub: cip8Resources_1.cip8TestResources.keyPair.pub },
|
|
81
|
+
},
|
|
82
|
+
];
|
|
83
|
+
const broadcastMessage = {
|
|
84
|
+
type: sdk_core_1.MessageStandardType.CIP8,
|
|
85
|
+
payload: cip8Resources_1.cip8TestResources.messages.simple,
|
|
86
|
+
serializedSignatures: (0, sdk_core_1.serializeSignatures)(signatures),
|
|
87
|
+
signers: [cip8Resources_1.cip8TestResources.address.bech32],
|
|
88
|
+
metadata: { extra: 'data' },
|
|
89
|
+
};
|
|
90
|
+
const message = await builder.fromBroadcastFormat(broadcastMessage);
|
|
91
|
+
should_1.default.exist(message);
|
|
92
|
+
message.should.be.instanceof(src_1.Cip8Message);
|
|
93
|
+
message.getPayload().should.equal(broadcastMessage.payload);
|
|
94
|
+
message.getSigners().should.deepEqual(broadcastMessage.signers);
|
|
95
|
+
const messageMetadata = message.getMetadata();
|
|
96
|
+
should_1.default.exist(messageMetadata);
|
|
97
|
+
messageMetadata.should.containEql(broadcastMessage.metadata);
|
|
98
|
+
messageMetadata.should.containEql({ encoding: 'utf8' });
|
|
99
|
+
// Check signatures were deserialized correctly
|
|
100
|
+
message.getSignatures().should.have.length(signatures.length);
|
|
101
|
+
const messageSignature = message.getSignatures()[0];
|
|
102
|
+
messageSignature.signature.should.deepEqual(signatures[0].signature);
|
|
103
|
+
messageSignature.publicKey.should.deepEqual(signatures[0].publicKey);
|
|
104
|
+
});
|
|
105
|
+
describe('fromBroadcastString', function () {
|
|
106
|
+
it('should parse broadcastable string and return correct builder type', async function () {
|
|
107
|
+
const broadcastHex = '7b2274797065223a2243495038222c227061796c6f6164223a225354415220373238323535343520746f2061646472317178763965397a70353578763336307767686c3830366430327933353839397a6b6b7132726874667876377836777963746a3279726667766572353775333037776c35363735667267773232396476713538776b6a76657564357571666e6d74657a2033316136626162353061383462383433396164636662373836626232303230663638303765366538666461363239623432343131306663376262316336623862222c2273657269616c697a65645369676e617475726573223a5b7b227075626c69634b6579223a2265633861346630343534303764313134353736663963623033313832663564636163386165626434323232323332313638343332343139306539323737383431222c227369676e6174757265223a226f6e4a74595735315957784462334e6c55326c6e626a46495a586835417034344e4455344e445a684d6a41784d6a63324e7a59784e6a51324e4463794e6a55334d7a637a4e54677a4f5441784e4455784d57526c4d7a5a6d4e544a6959575669593259314e6a4d7a4d7a6b334f574979597a67325a444e6c5a6a49324e4749305a5464684d474934596a6b345a5441784d6a4d32595445304e5445785a47557a4e6d59314d6d4a685a574a6a5a6a55324d7a4d7a4f546335596a4a6a4f445a6b4d32566d4d6a5930596a526c4e324577596a68694f54686c4d4445794d7a5a684d5745784e6a59324f4459784e7a4d324f4459314e6a526d4e445534596a6b314d7a55304e4445314d6a49774d7a637a4d6a4d344d7a497a4e544d314d7a517a4e5449774e7a51325a6a49774e6a45324e4459304e7a497a4d5463784e7a67334e6a4d354e6a557a4f5464684e7a417a4e544d314e7a67334e6a4d7a4d7a597a4d4463334e6a63324f445a6a4d7a677a4d444d324e6a517a4d444d794e7a6b7a4d7a4d314d7a677a4f544d354e324532596a5a694e7a457a4d6a63794e6a67334e4459324e7a67334e6a4d334e7a677a4e6a63334e7a6b324d7a63304e6d457a4d6a63354e7a49324e6a59334e7a59324e5463794d7a557a4e7a63314d7a4d7a4d444d334e7a6332597a4d314d7a597a4e7a4d314e6a59334d6a59334e7a637a4d6a4d794d7a6b324e4463324e7a457a4e544d344e7a6332596a5a684e7a59324e5463314e6a517a4e5463314e7a45324e6a5a6c4e6d51334e4459314e3245794d444d7a4d7a45324d544d324e6a49324d5459794d7a557a4d4459784d7a677a4e4459794d7a677a4e444d7a4d7a6b324d5459304e6a4d324e6a59794d7a637a4f444d324e6a49324d6a4d794d7a417a4d6a4d774e6a597a4e6a4d344d7a417a4e7a59314d7a59324e544d344e6a59324e4459784d7a597a4d6a4d354e6a497a4e444d794d7a517a4d544d784d7a41324e6a597a4d7a63324d6a59794d7a45324d7a4d324e6a497a4f4459794e5467304d44566c5a5467335a4455784f54566859544a6b5a546b344d3251795a546332597a6c6c4f54426a4d475a6c597a59794e32466d4f5449305a47457a4f5451334f44426b596a6c684f445a6d595467354e4463775a6a4a6c595755774d7a4d305a54646b4d6d49344e6a4177596a5a694e4445354e6a686c4d54526c596a4931596a52694f5759314e5451354d544e6a596a4a6a5a5441795a6d55784e4463794e444d345a544d785a6a426d63473168626e566862454e766332564c5a586c495a586834564745304d4445774d54417a4d6a63794d4441324d6a45314f4449775a574d345954526d4d4451314e4441335a4445784e4455334e6d5935593249774d7a45344d6d59315a474e68597a68685a574a6b4e4449794d6a497a4d6a45324f44517a4d6a51784f54426c4f5449334e7a67304d513d3d227d5d2c227369676e657273223a5b22616464723171397a337268336b37353436613038347676656530786576736d663737666a7466656171687a756375716672646732397a38307264616674343637303263656e6a37646a65706b6e61756e796b6e6e36707739653363716a78367373796333737937225d2c226d65746164617461223a7b22656e636f64696e67223a2275746638227d2c227369676e61626c655061796c6f6164223a22684770546157647559585231636d5578574561694153646e5957526b636d567a6331673541555552336a62314b36363839574d7a6c357373687450764a6b744f6567754c6d4f41534e71464645643432395375757650566a4d3565624c49625437795a4c546e6f4c69356a67456a61685146693555315242556941334d6a67794e5455304e534230627942685a4752794d584634646a6c6c4f5870774e545634646a4d324d48646e614777344d445a6b4d444a354d7a55344f546c36613274784d6e4a6f64475a34646a64344e6e6435593352714d6e6c795a6d64325a5849314e33557a4d446433624455324e7a566d636d64334d6a49355a485a784e546833613270325a58566b4e5856785a6d35746447563649444d7859545a69595749314d4745344e4749344e444d355957526a5a6d49334f445a69596a49774d6a426d4e6a67774e3255325a54686d5a4745324d6a6c694e4449304d5445775a6d4d33596d4978597a5a694f47493d227d';
|
|
108
|
+
const coinConfig = { name: 'ada' };
|
|
109
|
+
const factory = new src_1.MessageBuilderFactory(coinConfig);
|
|
110
|
+
const builder = factory.fromBroadcastString(broadcastHex);
|
|
111
|
+
const message = await builder.build();
|
|
112
|
+
const payload = message.getPayload();
|
|
113
|
+
const payloadParts = payload.split(' ');
|
|
114
|
+
const address = message.getSigners()[0];
|
|
115
|
+
address.should.equal('addr1q9z3rh3k7546a084vvee0xevsmf77fjtfeaqhzucuqfrdg29z80rdaft46702cenj7djepknaunyknn6pw9e3cqjx6ssyc3sy7');
|
|
116
|
+
const destinationAddress = payloadParts[3];
|
|
117
|
+
destinationAddress.should.equal('addr1qxv9e9zp55xv360wghl806d02y35899zkkq2rhtfxv7x6wyctj2yrfgver57u307wl5675frgw229dvq58wkjveud5uqfnmtez');
|
|
118
|
+
const amount = Number(payloadParts[1]);
|
|
119
|
+
amount.should.equal(72825545);
|
|
120
|
+
const signature = message.getSignatures()[0].signature;
|
|
121
|
+
const publicKeyHex = message.getSignatures()[0].publicKey.pub;
|
|
122
|
+
publicKeyHex.should.equal('ec8a4f045407d114576f9cb03182f5dcac8aebd42222321684324190e9277841');
|
|
123
|
+
const coseObjectsOutput = await (0, utils_1.bufferToCoseObjectsOutput)(signature);
|
|
124
|
+
const coseKey = coseObjectsOutput.manualCoseKeyHex;
|
|
125
|
+
coseKey.should.equal('a4010103272006215820ec8a4f045407d114576f9cb03182f5dcac8aebd42222321684324190e9277841');
|
|
126
|
+
const coseSign1 = coseObjectsOutput.manualCoseSign1Hex;
|
|
127
|
+
coseSign1.should.equal('845846a2012767616464726573735839014511de36f52baebcf56333979b2c86d3ef264b4e7a0b8b98e01236a14511de36f52baebcf56333979b2c86d3ef264b4e7a0b8b98e01236a1a166686173686564f458b95354415220373238323535343520746f2061646472317178763965397a70353578763336307767686c3830366430327933353839397a6b6b7132726874667876377836777963746a3279726667766572353775333037776c35363735667267773232396476713538776b6a76657564357571666e6d74657a203331613662616235306138346238343339616463666237383662623230323066363830376536653866646136323962343234313130666337626231633662386258405ee87d5195aa2de983d2e76c9e90c0fec627af924da394780db9a86fa89470f2eae0334e7d2b8600b6b41968e14eb25b4b9f554913cb2ce02fe1472438e31f0f');
|
|
128
|
+
});
|
|
129
|
+
});
|
|
130
|
+
});
|
|
131
|
+
});
|
|
132
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2lwOE1lc3NhZ2VCdWlsZGVyLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vdGVzdC91bml0L21lc3NhZ2VzL2NpcDgvY2lwOE1lc3NhZ2VCdWlsZGVyLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7O0FBQUEsb0RBQTRCO0FBQzVCLGtEQUEwQjtBQUMxQixtQ0FBZ0M7QUFDaEMsbURBQWlIO0FBRWpILG9FQUFxRTtBQUNyRSx5Q0FBeUY7QUFDekYsbUVBQW9GO0FBRXBGLFFBQVEsQ0FBQyxvQkFBb0IsRUFBRTtJQUM3QixJQUFJLE9BQTJCLENBQUM7SUFDaEMsSUFBSSxPQUEyQixDQUFDO0lBQ2hDLE1BQU0sVUFBVSxHQUFHLEVBQUUsSUFBSSxFQUFFLE1BQU0sRUFBYyxDQUFDO0lBRWhELFVBQVUsQ0FBQztRQUNULE9BQU8sR0FBRyxlQUFLLENBQUMsYUFBYSxFQUFFLENBQUM7UUFDaEMsT0FBTyxHQUFHLElBQUksd0JBQWtCLENBQUMsVUFBVSxDQUFDLENBQUM7SUFDL0MsQ0FBQyxDQUFDLENBQUM7SUFFSCxTQUFTLENBQUM7UUFDUixPQUFPLENBQUMsT0FBTyxFQUFFLENBQUM7SUFDcEIsQ0FBQyxDQUFDLENBQUM7SUFFSCxRQUFRLENBQUMsYUFBYSxFQUFFO1FBQ3RCLEVBQUUsQ0FBQyxtREFBbUQsRUFBRTtZQUN0RCxNQUFNLE9BQU8sR0FBRyxJQUFJLHdCQUFrQixDQUFDLFVBQVUsQ0FBQyxDQUFDO1lBQ25ELGdCQUFNLENBQUMsS0FBSyxDQUFDLE9BQU8sQ0FBQyxDQUFDO1lBQ3RCLE9BQU8sQ0FBQyxPQUFPLEVBQUUsQ0FBQyxNQUFNLENBQUMsS0FBSyxDQUFDLDhCQUFtQixDQUFDLElBQUksQ0FBQyxDQUFDO1FBQzNELENBQUMsQ0FBQyxDQUFDO0lBQ0wsQ0FBQyxDQUFDLENBQUM7SUFFSCxRQUFRLENBQUMsT0FBTyxFQUFFO1FBQ2hCLEVBQUUsQ0FBQywwQ0FBMEMsRUFBRSxLQUFLO1lBQ2xELE1B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QkFBZ3FCLENBQ2pxQixDQUFDO1lBQ0osQ0FBQyxDQUFDLENBQUM7UUFDTCxDQUFDLENBQUMsQ0FBQztJQUNMLENBQUMsQ0FBQyxDQUFDO0FBQ0wsQ0FBQyxDQUFDLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgc2hvdWxkIGZyb20gJ3Nob3VsZCc7XG5pbXBvcnQgc2lub24gZnJvbSAnc2lub24nO1xuaW1wb3J0IHsgQnVmZmVyIH0gZnJvbSAnYnVmZmVyJztcbmltcG9ydCB7IEJyb2FkY2FzdGFibGVNZXNzYWdlLCBNZXNzYWdlU3RhbmRhcmRUeXBlLCBzZXJpYWxpemVTaWduYXR1cmVzLCBTaWduYXR1cmUgfSBmcm9tICdAYml0Z28tYmV0YS9zZGstY29yZSc7XG5pbXBvcnQgeyBCYXNlQ29pbiB9IGZyb20gJ0BiaXRnby1iZXRhL3N0YXRpY3MnO1xuaW1wb3J0IHsgY2lwOFRlc3RSZXNvdXJjZXMgfSBmcm9tICcuLi8uLi8uLi9yZXNvdXJjZXMvY2lwOFJlc291cmNlcyc7XG5pbXBvcnQgeyBDaXA4TWVzc2FnZSwgQ2lwOE1lc3NhZ2VCdWlsZGVyLCBNZXNzYWdlQnVpbGRlckZhY3RvcnkgfSBmcm9tICcuLi8uLi8uLi8uLi9zcmMnO1xuaW1wb3J0IHsgYnVmZmVyVG9Db3NlT2JqZWN0c091dHB1dCB9IGZyb20gJy4uLy4uLy4uLy4uL3NyYy9saWIvbWVzc2FnZXMvY2lwOC91dGlscyc7XG5cbmRlc2NyaWJlKCdDaXA4TWVzc2FnZUJ1aWxkZXInLCBmdW5jdGlvbiAoKSB7XG4gIGxldCBzYW5kYm94OiBzaW5vbi5TaW5vblNhbmRib3g7XG4gIGxldCBidWlsZGVyOiBDaXA4TWVzc2FnZUJ1aWxkZXI7XG4gIGNvbnN0IGNvaW5Db25maWcgPSB7IG5hbWU6ICd0YWRhJyB9IGFzIEJhc2VDb2luO1xuXG4gIGJlZm9yZUVhY2goZnVuY3Rpb24gKCkge1xuICAgIHNhbmRib3ggPSBzaW5vbi5jcmVhdGVTYW5kYm94KCk7XG4gICAgYnVpbGRlciA9IG5ldyBDaXA4TWVzc2FnZUJ1aWxkZXIoY29pbkNvbmZpZyk7XG4gIH0pO1xuXG4gIGFmdGVyRWFjaChmdW5jdGlvbiAoKSB7XG4gICAgc2FuZGJveC5yZXN0b3JlKCk7XG4gIH0pO1xuXG4gIGRlc2NyaWJlKCdjb25zdHJ1Y3RvcicsIGZ1bmN0aW9uICgpIHtcbiAgICBpdCgnc2hvdWxkIGNyZWF0ZSBhIGJ1aWxkZXIgd2l0aCBjb3JyZWN0IG1lc3NhZ2UgdHlwZScsIGZ1bmN0aW9uICgpIHtcbiAgICAgIGNvbnN0IGJ1aWxkZXIgPSBuZXcgQ2lwOE1lc3NhZ2VCdWlsZGVyKGNvaW5Db25maWcpO1xuICAgICAgc2hvdWxkLmV4aXN0KGJ1aWxkZXIpO1xuICAgICAgYnVpbGRlci5nZXRUeXBlKCkuc2hvdWxkLmVxdWFsKE1lc3NhZ2VTdGFuZGFyZFR5cGUuQ0lQOCk7XG4gICAgfSk7XG4gIH0pO1xuXG4gIGRlc2NyaWJlKCdidWlsZCcsIGZ1bmN0aW9uICgpIHtcbiAgICBpdCgnc2hvdWxkIHRocm93IGVycm9yIGlmIHBheWxvYWQgaXMgbm90IHNldCcsIGFzeW5jIGZ1bmN0aW9uICgpIHtcbiAgICAgIGF3YWl0IHNob3VsZChidWlsZGVyLmJ1aWxkKCkpLmJlLnJlamVjdGVkV2l0aCgnTWVzc2FnZSBwYXlsb2FkIG11c3QgYmUgc2V0IGJlZm9yZSBidWlsZGluZyB0aGUgbWVzc2FnZScpO1xuICAgIH0pO1xuXG4gICAgaXQoJ3Nob3VsZCBjcmVhdGUgYSBDSVA4IG1lc3NhZ2Ugd2l0aCBjb3JyZWN0IHByb3BlcnRpZXMnLCBhc3luYyBmdW5jdGlvbiAoKSB7XG4gICAgICBjb25zdCBwYXlsb2FkID0gY2lwOFRlc3RSZXNvdXJjZXMubWVzc2FnZXMuc2ltcGxlO1xuICAgICAgY29uc3Qgc2lnbmVyID0gY2lwOFRlc3RSZXNvdXJjZXMuYWRkcmVzcy5iZWNoMzI7XG4gICAgICBjb25zdCBtZXRhZGF0YSA9IHsgZXh0cmE6ICdkYXRhJyB9O1xuXG4gICAgICBidWlsZGVyLnNldFBheWxvYWQocGF5bG9hZCkuYWRkU2lnbmVyKHNpZ25lcikuc2V0TWV0YWRhdGEobWV0YWRhdGEpO1xuXG4gICAgICBjb25zdCBtZXNzYWdlID0gYXdhaXQgYnVpbGRlci5idWlsZCgpO1xuXG4gICAgICBzaG91bGQuZXhpc3QobWVzc2FnZSk7XG4gICAgICBtZXNzYWdlLnNob3VsZC5iZS5pbnN0YW5jZW9mKENpcDhNZXNzYWdlKTtcbiAgICAgIG1lc3NhZ2UuZ2V0UGF5bG9hZCgpLnNob3VsZC5lcXVhbChwYXlsb2FkKTtcbiAgICAgIG1lc3NhZ2UuZ2V0U2lnbmVycygpLnNob3VsZC5kZWVwRXF1YWwoW3NpZ25lcl0pO1xuICAgICAgY29uc3QgbWVzc2FnZU1ldGFkYXRhID0gbWVzc2FnZS5nZXRNZXRhZGF0YSgpO1xuICAgICAgc2hvdWxkLmV4aXN0KG1lc3NhZ2VNZXRhZGF0YSk7XG4gICAgICBtZXNzYWdlTWV0YWRhdGEhLnNob3VsZC5jb250YWluRXFsKG1ldGFkYXRhKTtcbiAgICAgIG1lc3NhZ2VNZXRhZGF0YSEuc2hvdWxkLmNvbnRhaW5FcWwoeyBlbmNvZGluZzogJ3V0ZjgnIH0pO1xuICAgIH0pO1xuXG4gICAgaXQoJ3Nob3VsZCBpbmNsdWRlIHNpZ25hdHVyZXMgd2hlbiBwcm92aWRlZCcsIGFzeW5jIGZ1bmN0aW9uICgpIHtcbiAgICAgIGNvbnN0IHBheWxvYWQgPSBjaXA4VGVzdFJlc291cmNlcy5tZXNzYWdlcy5zaW1wbGU7XG4gICAgICBjb25zdCBzaWduZXIgPSBjaXA4VGVzdFJlc291cmNlcy5hZGRyZXNzLmJlY2gzMjtcbiAgICAgIGNvbnN0IHNpZ25hdHVyZXM6IFNpZ25hdHVyZVtdID0gW1xuICAgICAgICB7XG4gICAgICAgICAgc2lnbmF0dXJlOiBCdWZmZXIuZnJvbSgndGVzdC1zaWduYXR1cmUnKSxcbiAgICAgICAgICBwdWJsaWNLZXk6IHsgcHViOiBjaXA4VGVzdFJlc291cmNlcy5rZXlQYWlyLnB1YiB9IGFzIGFueSxcbiAgICAgICAgfSxcbiAgICAgIF07XG5cbiAgICAgIGJ1aWxkZXIuc2V0UGF5bG9hZChwYXlsb2FkKS5hZGRTaWduZXIoc2lnbmVyKS5zZXRTaWduYXR1cmVzKHNpZ25hdHVyZXMpO1xuXG4gICAgICBjb25zdCBtZXNzYWdlID0gYXdhaXQgYnVpbGRlci5idWlsZCgpO1xuXG4gICAgICBzaG91bGQuZXhpc3QobWVzc2FnZSk7XG4gICAgICBtZXNzYWdlLmdldFNpZ25hdHVyZXMoKS5zaG91bGQuZGVlcEVxdWFsKHNpZ25hdHVyZXMpO1xuICAgIH0pO1xuICB9KTtcblxuICBkZXNjcmliZSgnZnJvbUJyb2FkY2FzdEZvcm1hdCcsIGZ1bmN0aW9uICgpIHtcbiAgICBpdCgnc2hvdWxkIHRocm93IGVycm9yIGlmIG1lc3NhZ2UgdHlwZSBpcyBpbnZhbGlkJywgYXN5bmMgZnVuY3Rpb24gKCkge1xuICAgICAgY29uc3QgYnJvYWRjYXN0TWVzc2FnZTogQnJvYWRjYXN0YWJsZU1lc3NhZ2UgPSB7XG4gICAgICAgIHR5cGU6IE1lc3NhZ2VTdGFuZGFyZFR5cGUuVU5LTk9XTiBhcyBhbnksIC8vIEluY29ycmVjdCB0eXBlXG4gICAgICAgIHBheWxvYWQ6ICd0ZXN0LXBheWxvYWQnLFxuICAgICAgICBzZXJpYWxpemVkU2lnbmF0dXJlczogc2VyaWFsaXplU2lnbmF0dXJlcyhbXSksXG4gICAgICAgIHNpZ25lcnM6IFtjaXA4VGVzdFJlc291cmNlcy5hZGRyZXNzLmJlY2gzMl0sXG4gICAgICAgIG1ldGFkYXRhOiB7fSxcbiAgICAgIH07XG4gICAgICBhd2FpdCBzaG91bGQoYnVpbGRlci5mcm9tQnJvYWRjYXN0Rm9ybWF0KGJyb2FkY2FzdE1lc3NhZ2UpKS5iZS5yZWplY3RlZFdpdGgoXG4gICAgICAgIGBJbnZhbGlkIG1lc3NhZ2UgdHlwZSwgZXhwZWN0ZWQgJHtNZXNzYWdlU3RhbmRhcmRUeXBlLkNJUDh9YFxuICAgICAgKTtcbiAgICB9KTtcblxuICAgIGl0KCdzaG91bGQgcmVjcmVhdGUgbWVzc2FnZSBmcm9tIGJyb2FkY2FzdCBmb3JtYXQnLCBhc3luYyBmdW5jdGlvbiAoKSB7XG4gICAgICBjb25zdCBzaWduYXR1cmVzOiBTaWduYXR1cmVbXSA9IFtcbiAgICAgICAge1xuICAgICAgICAgIHNpZ25hdHVyZTogQnVmZmVyLmZyb20oJ3Rlc3Qtc2lnbmF0dXJlJyksXG4gICAgICAgICAgcHVibGljS2V5OiB7IHB1YjogY2lwOFRlc3RSZXNvdXJjZXMua2V5UGFpci5wdWIgfSBhcyBhbnksXG4gICAgICAgIH0sXG4gICAgICBdO1xuXG4gICAgICBjb25zdCBicm9hZGNhc3RNZXNzYWdlOiBCcm9hZGNhc3RhYmxlTWVzc2FnZSA9IHtcbiAgICAgICAgdHlwZTogTWVzc2FnZVN0YW5kYXJkVHlwZS5DSVA4LFxuICAgICAgICBwYXlsb2FkOiBjaXA4VGVzdFJlc291cmNlcy5tZXNzYWdlcy5zaW1wbGUsXG4gICAgICAgIHNlcmlhbGl6ZWRTaWduYXR1cmVzOiBzZXJpYWxpemVTaWduYXR1cmVzKHNpZ25hdHVyZXMpLFxuICAgICAgICBzaWduZXJzOiBbY2lwOFRlc3RSZXNvdXJjZXMuYWRkcmVzcy5iZWNoMzJdLFxuICAgICAgICBtZXRhZGF0YTogeyBleHRyYTogJ2RhdGEnIH0sXG4gICAgICB9O1xuXG4gICAgICBjb25zdCBtZXNzYWdlID0gYXdhaXQgYnVpbGRlci5mcm9tQnJvYWRjYXN0Rm9ybWF0KGJyb2FkY2FzdE1lc3NhZ2UpO1xuXG4gICAgICBzaG91bGQuZXhpc3QobWVzc2FnZSk7XG4gICAgICBtZXNzYWdlLnNob3VsZC5iZS5pbnN0YW5jZW9mKENpcDhNZXNzYWdlKTtcbiAgICAgIG1lc3NhZ2UuZ2V0UGF5bG9hZCgpLnNob3VsZC5lcXVhbChicm9hZGNhc3RNZXNzYWdlLnBheWxvYWQpO1xuICAgICAgbWVzc2FnZS5nZXRTaWduZXJzKCkuc2hvdWxkLmRlZXBFcXVhbChicm9hZGNhc3RNZXNzYWdlLnNpZ25lcnMpO1xuICAgICAgY29uc3QgbWVzc2FnZU1ldGFkYXRhID0gbWVzc2FnZS5nZXRNZXRhZGF0YSgpO1xuICAgICAgc2hvdWxkLmV4aXN0KG1lc3NhZ2VNZXRhZGF0YSk7XG4gICAgICBtZXNzYWdlTWV0YWRhdGEhLnNob3VsZC5jb250YWluRXFsKGJyb2FkY2FzdE1lc3NhZ2UubWV0YWRhdGEpO1xuICAgICAgbWVzc2FnZU1ldGFkYXRhIS5zaG91bGQuY29udGFpbkVxbCh7IGVuY29kaW5nOiAndXRmOCcgfSk7XG5cbiAgICAgIC8vIENoZWNrIHNpZ25hdHVyZXMgd2VyZSBkZXNlcmlhbGl6ZWQgY29ycmVjdGx5XG4gICAgICBtZXNzYWdlLmdldFNpZ25hdHVyZXMoKS5zaG91bGQuaGF2ZS5sZW5ndGgoc2lnbmF0dXJlcy5sZW5ndGgpO1xuICAgICAgY29uc3QgbWVzc2FnZVNpZ25hdHVyZSA9IG1lc3NhZ2UuZ2V0U2lnbmF0dXJlcygpWzBdO1xuICAgICAgbWVzc2FnZVNpZ25hdHVyZS5zaWduYXR1cmUuc2hvdWxkLmRlZXBFcXVhbChzaWduYXR1cmVzWzBdLnNpZ25hdHVyZSk7XG4gICAgICBtZXNzYWdlU2lnbmF0dXJlLnB1YmxpY0tleS5zaG91bGQuZGVlcEVxdWFsKHNpZ25hdHVyZXNbMF0ucHVibGljS2V5KTtcbiAgICB9KTtcblxuICAgIGRlc2NyaWJlKCdmcm9tQnJvYWRjYXN0U3RyaW5nJywgZnVuY3Rpb24gKCkge1xuICAgICAgaXQoJ3Nob3VsZCBwYXJzZSBicm9hZGNhc3RhYmxlIHN0cmluZyBhbmQgcmV0dXJuIGNvcnJlY3QgYnVpbGRlciB0eXBlJywgYXN5bmMgZnVuY3Rpb24gKCkge1xuICAgICAgICBjb25zdCBicm9hZGNhc3RIZXggPVxuICAgICAgICAgICc3YjIyNzQ3OTcwNjUyMjNhMjI0MzQ5NTAzODIyMmMyMjcwNjE3OTZjNmY2MTY0MjIzYTIyNTM1NDQxNTIyMDM3MzIzODMyMzUzNTM0MzUyMDc0NmYyMDYxNjQ2NDcyMzE3MTc4NzYzOTY1Mzk3YTcwMzUzNTc4NzYzMzM2MzA3NzY3Njg2YzM4MzAzNjY0MzAzMjc5MzMzNTM4MzkzOTdhNmI2YjcxMzI3MjY4NzQ2Njc4NzYzNzc4MzY3Nzc5NjM3NDZhMzI3OTcyNjY2Nzc2NjU3MjM1Mzc3NTMzMzAzNzc3NmMzNTM2MzczNTY2NzI2Nzc3MzIzMjM5NjQ3NjcxMzUzODc3NmI2YTc2NjU3NTY0MzU3NTcxNjY2ZTZkNzQ2NTdhMjAzMzMxNjEzNjYyNjE2MjM1MzA2MTM4MzQ2MjM4MzQzMzM5NjE2NDYzNjY2MjM3MzgzNjYyNjIzMjMwMzIzMDY2MzYzODMwMzc2NTM2NjUzODY2NjQ2MTM2MzIzOTYyMzQzMjM0MzEzMTMwNjY2MzM3NjI2MjMxNjMzNjYyMzg2MjIyMmMyMjczNjU3MjY5NjE2YzY5N2E2NTY0NTM2OTY3NmU2MTc0NzU3MjY1NzMyMjNhNWI3YjIyNzA3NTYyNmM2OTYzNGI2NTc5MjIzYTIyNjU2MzM4NjEzNDY2MzAzNDM1MzQzMDM3NjQzMTMxMzQzNTM3MzY2NjM5NjM2MjMwMzMzMTM4MzI2NjM1NjQ2MzYxNjMzODYxNjU2MjY0MzQzMjMyMzIzMjMzMzIzMTM2MzgzNDMzMzIzNDMxMzkzMDY1MzkzMjM3MzczODM0MzEyMjJjMjI3MzY5Njc2ZTYxNzQ3NTcyNjUyMjNhMjI2ZjZlNGE3NDU5NTczNTMxNTk1Nzc4NDQ2MjMzNGU2YzU1MzI2YzZlNjI2YTQ2NDk1YTU4NjgzNTQxNzAzNDM0NGU0NDU1MzQ0ZTQ0NWE2ODRkNmE0MTc4NGQ2YTYzMzI0ZTdhNTk3ODRlNmE1MTMyNGU0NDYzNzk0ZTZhNTUzMzRkN2E2MzdhNGU1NDY3N2E0ZjU0NDE3ODRlNDQ1NTc4NGQ1NzUyNmM0ZDdhNWE2ZDRlNTQ0YTY5NTk1NzU2Njk1OTMyNTkzMTRlNmE0ZDdhNGQ3YTZiMzM0ZjU3NDk3OTU5N2E2NzMyNWE0NDRlNmM1YTZhNDkzMjRlNDc0OTMwNWE1NDY0Njg0ZDQ3NDkzNDU5NmE2YjM0NWE1NDQxNzg0ZDZhNGQzMjU5NTQ0NTMwNGU1NDQ1Nzg1YTQ3NTU3YTRlNmQ1OTMxNGQ2ZDRhNjg1YTU3NGE2YTVhNmE1NTMyNGQ3YTRkN2E0ZjU0NjMzNTU5NmE0YTZhNGY0NDVhNmI0ZDMyNTY2ZDRkNmE1OTMwNTk2YTUyNmM0ZTMyNDU3NzU5NmE2ODY5NGY1NDY4NmM0ZDQ0NDU3OTRkN2E1YTY4NGQ1NzQ1Nzg0ZTZhNTkzMjRmNDQ1OTc4NGU3YTRkMzI0ZjQ0NTkzMTRlNmE1MjZkNGU0NDU1MzQ1OTZhNmIzMTRkN2E1NTMwNGU0NDQ1MzE0ZDZhNDk3NzRkN2E2MzdhNGQ2YTRkMzQ0ZDdhNDk3YTRlNTQ0ZDMxNGQ3YTUxN2E0ZTU0NDk3NzRlN2E1MTMyNWE2YTQ5Nzc0ZTZhNDUzMjRlNDQ1OTMwNGU3YTQ5N2E0ZDU0NjM3ODRlN2E2NzMzNGU2YTRkMzU0ZTZhNTU3YTRmNTQ2NDY4NGU3YTQxN2E0ZTU0NGQzMTRlN2E2NzMzNGU2YTRkN2E0ZDdhNTk3YTRkNDQ2MzMzNGU2YTYzMzI0ZjQ0NWE2YTRkN2E2NzdhNGQ0NDRkMzI0ZTZhNTE3YTRkNDQ0ZDc5NGU3YTZiN2E0ZDdhNGQzMTRkN2E2NzdhNGY1NDRkMzU0ZTMyNDUzMjU5NmE1YTY5NGU3YTQ1N2E0ZDZhNjM3OTRlNmE2NzMzNGU0NDU5MzI0ZTdhNjczMzRlNmE0ZDMzNGU3YTY3N2E0ZTZhNjMzMzRlN2E2YjMyNGQ3YTYzMzA0ZTZkNDU3YTRkNmE2MzM1NGU3YTQ5MzI0ZTZhNTkzMzRlN2E1OTMyNGU1NDYzNzk0ZDdhNTU3YTRlN2E2MzMxNGQ3YTRkN2E0ZDQ0NGQzMzRlN2E2MzMyNTk3YTRkMzE0ZDdhNTk3YTRlN2E0ZDMxNGU2YTU5MzM0ZDZhNTkzMzRlN2E2MzdhNGQ2YTRkNzk0ZDdhNmIzMjRlNDQ2MzMyNGU3YTQ1N2E0ZTU0NGQzNDRlN2E2MzMyNTk2YTVhNjg0ZTdhNTkzMjRlNTQ2MzMxNGU2YTUxN2E0ZTU0NjMzMTRlN2E0NTMyNGU2YTVhNmM0ZTZkNTEzMzRlNDQ1OTMxNGUzMjQ1Nzk0ZDQ0NGQ3YTRkN2E0NTMyNGQ1NDRkMzI0ZTZhNDkzMjRkNTQ1OTc5NGQ3YTU1N2E0ZDQ0NTk3ODRkN2E2NzdhNGU0NDU5Nzk0ZDdhNjc3YTRlNDQ0ZDdhNGQ3YTZiMzI0ZDU0NTkzMDRlNmE0ZDMyNGU2YTU5Nzk0ZDdhNjM3YTRmNDQ0ZDMyNGU2YTQ5MzI0ZDZhNGQ3OTRkN2E0MTdhNGQ2YTRkNzc0ZTZhNTk3YTRlNmE0ZDM0NGQ3YTQxN2E0ZTdhNTkzMTRkN2E1OTMyNGU1NDRkMzQ0ZTZhNTkzMjRlNDQ1OTc4NGQ3YTU5N2E0ZDZhNGQzNTRlNmE0OTdhNGU0NDRkNzk0ZDdhNTE3YTRkNTQ0ZDc4NGQ3YTQxMzI0ZTZhNTk3YTRkN2E2MzMyNGQ2YTU5Nzk0ZDdhNDUzMjRkN2E0ZDMyNGU2YTQ5N2E0ZjQ0NTk3OTRlNTQ2NzMwNGQ0NDU2NmM1YTU0NjczMzVhNDQ1NTc4NGY1NDU2Njg1OTU0NGE2YjVhNTQ2YjM0NGQzMjUxNzk1YTU0NjMzMjU5N2E2YzZjNGY1NDQyNmE0ZDQ3NWE2YzU5N2E1OTc5NGUzMjQ2NmQ0ZjU0NDkzMDVhNDc0NTdhNGY1NDUxMzM0ZjQ0NDI2YjU5NmE2YzY4NGY0NDVhNmQ1OTU0NjczNTRlNDQ2Mzc3NWE2YTRhNmM1OTU3NTU3NzRkN2E0ZDMwNWE1NDY0NmI0ZDZkNDkzNDRlNmE0MTc3NTk2YTVhNjk0ZTQ0NDUzNTRlNmE2ODZjNGQ1NDUyNmM1OTZhNDkzMTU5NmE1MjY5NGY1NzU5MzE0ZTU0NTEzNTRkNTQ0ZTZhNTk2YTRhNmE1YTU0NDE3OTVhNmQ1NTc4NGU0NDYzNzk0ZTQ0NGQzNDVhNTQ0ZDc4NWE2YTQyNmQ2MzQ3MzE2ODYyNmU1NjY4NjI0NTRlNzY2MzMyNTY0YzVhNTg2YzQ5NWE1ODY4MzQ1NjQ3NDUzMDRkNDQ0NTc3NGQ1NDQxN2E0ZDZhNjM3OTRkNDQ0MTMyNGQ2YTQ1MzE0ZjQ0NDk3NzVhNTc0ZDM0NTk1NDUyNmQ0ZDQ0NTEzMTRlNDQ0MTMzNWE0NDQ1Nzg0ZTQ0NTUzMzRlNmQ1OTM1NTkzMjQ5Nzc0ZDdhNDUzNDRkNmQ1OTMxNWE0NzRlNjg1OTdhNjg2ODVhNTc0YTZiNGU0NDQ5Nzk0ZDZhNDk3YTRkNmE0NTMyNGY0NDUxN2E0ZDZhNTE3ODRmNTQ0MjZjNGY1NDQ5MzM0ZTdhNjczMDRkNTEzZDNkMjI3ZDVkMmMyMjczNjk2NzZlNjU3MjczMjIzYTViMjI2MTY0NjQ3MjMxNzEzOTdhMzM3MjY4MzM2YjM3MzUzNDM2NjEzMDM4MzQ3Njc2NjU2NTMwNzg2NTc2NzM2ZDY2MzczNzY2NmE3NDY2NjU2MTcxNjg3YTc1NjM3NTcxNjY3MjY0NjczMjM5N2EzODMwNzI2NDYxNjY3NDM0MzYzNzMwMzI2MzY1NmU2YTM3NjQ2YTY1NzA2YjZlNjE3NTZlNzk2YjZlNmUzNjcwNzczOTY1MzM2MzcxNmE3ODM2NzM3Mzc5NjMzMzczNzkzNzIyNWQyYzIyNmQ2NTc0NjE2NDYxNzQ2MTIyM2E3YjIyNjU2ZTYzNmY2NDY5NmU2NzIyM2EyMjc1NzQ2NjM4MjI3ZDJjMjI3MzY5Njc2ZTYxNjI2YzY1NTA2MTc5NmM2ZjYxNjQyMjNhMjI2ODQ3NzA1NDYxNTc2NDc1NTk1ODUyMzE2MzZkNTU3ODU3NDU2MTY5NDE1MzY0NmU1OTU3NTI2YjYzNmQ1NjdhNjMzMTY3MzU0MTU1NTU1MjMzNmE2MjMxNGIzNjM2MzgzOTU3NGQ3YTZjMzU3MzczNjg3NDUwNzY0YTZiNzQ0ZjY1Njc3NTRjNmQ0ZjQxNTM0ZTcxNDY0NjQ1NjQzNDMyMzk1Mzc1NzU3NjUwNTY2YTRkMzU2NTYyNGM0OTYyNTQzNzc5NWE0YzU0NmU2ZjRjNjkzNTZhNjc0NTZhNjE2ODUxNDY2OTM1NTUzMTUyNDI1NTY5NDEzMzRkNmE2Nzc5NGU1NDU1MzA0ZTUzNDIzMDYyNzk0MjY4NWE0NzUyNzk0ZDU4NDYzNDY0NmE2YzZjNGY1ODcwNzc0ZTU0NTYzNDY0NmE0ZDMyNGQ0ODY0NmU2MTQ3NzczNDRkNDQ1YTZiNGQ0NDRhMzU0ZDdhNTUzNDRmNTQ2YzM2NjEzMjc0Nzg0ZDZlNGE2ZjY0NDc1YTM0NjQ2YTY0MzQ0ZTZlNjQzNTU5MzM1MjcxNGQ2ZTZjNzk1YTZkNjQzMjVhNTg0OTMxNGUzMzU1N2E0ZDQ0NjQzMzYyNDQ1NTMyNGU3YTU2NmQ2MzZkNjQzMzRkNmE0OTM1NWE0ODVhNzg0ZTU0NjgzMzYxMzI3MDMyNWE1ODU2NmI0ZTU4NTY3ODVhNmQzNTc0NjQ0NzU2MzY0OTQ0NGQ3ODU5NTQ1YTY5NTk1NzQ5MzE0ZDQ3NDUzNDRlNDc0OTM0NGU0NDRkMzU1OTU3NTI2YTVhNmQ0OTMzNGY0NDVhNjk1OTZhNDk3NzRkNmE0MjZkNGU2YTY3Nzc0ZTMyNTUzMjVhNTQ2ODZkNWE0NzQ1MzI0ZDZhNmM2OTRlNDQ0OTMwNGQ1NDQ1Nzc1YTZkNGQzMzU5NmQ0OTc4NTk3YTVhNjk0ZjQ3NDkzZDIyN2QnO1xuICAgICAgICBjb25zdCBjb2luQ29uZmlnID0geyBuYW1lOiAnYWRhJyB9IGFzIEJhc2VDb2luO1xuICAgICAgICBjb25zdCBmYWN0b3J5ID0gbmV3IE1lc3NhZ2VCdWlsZGVyRmFjdG9yeShjb2luQ29uZmlnKTtcbiAgICAgICAgY29uc3QgYnVpbGRlciA9IGZhY3RvcnkuZnJvbUJyb2FkY2FzdFN0cmluZyhicm9hZGNhc3RIZXgpO1xuICAgICAgICBjb25zdCBtZXNzYWdlID0gYXdhaXQgYnVpbGRlci5idWlsZCgpO1xuXG4gICAgICAgIGNvbnN0IHBheWxvYWQgPSBtZXNzYWdlLmdldFBheWxvYWQoKTtcbiAgICAgICAgY29uc3QgcGF5bG9hZFBhcnRzID0gcGF5bG9hZC5zcGxpdCgnICcpO1xuICAgICAgICBjb25zdCBhZGRyZXNzID0gbWVzc2FnZS5nZXRTaWduZXJzKClbMF07XG4gICAgICAgIGFkZHJlc3Muc2hvdWxkLmVxdWFsKFxuICAgICAgICAgICdhZGRyMXE5ejNyaDNrNzU0NmEwODR2dmVlMHhldnNtZjc3Zmp0ZmVhcWh6dWN1cWZyZGcyOXo4MHJkYWZ0NDY3MDJjZW5qN2RqZXBrbmF1bnlrbm42cHc5ZTNjcWp4NnNzeWMzc3k3J1xuICAgICAgICApO1xuICAgICAgICBjb25zdCBkZXN0aW5hdGlvbkFkZHJlc3MgPSBwYXlsb2FkUGFydHNbM107XG4gICAgICAgIGRlc3RpbmF0aW9uQWRkcmVzcy5zaG91bGQuZXF1YWwoXG4gICAgICAgICAgJ2FkZHIxcXh2OWU5enA1NXh2MzYwd2dobDgwNmQwMnkzNTg5OXpra3Eycmh0Znh2N3g2d3ljdGoyeXJmZ3ZlcjU3dTMwN3dsNTY3NWZyZ3cyMjlkdnE1OHdranZldWQ1dXFmbm10ZXonXG4gICAgICAgICk7XG4gICAgICAgIGNvbnN0IGFtb3VudCA9IE51bWJlcihwYXlsb2FkUGFydHNbMV0pO1xuICAgICAgICBhbW91bnQuc2hvdWxkLmVxdWFsKDcyODI1NTQ1KTtcblxuICAgICAgICBjb25zdCBzaWduYXR1cmUgPSBtZXNzYWdlLmdldFNpZ25hdHVyZXMoKVswXS5zaWduYXR1cmU7XG4gICAgICAgIGNvbnN0IHB1YmxpY0tleUhleCA9IG1lc3NhZ2UuZ2V0U2lnbmF0dXJlcygpWzBdLnB1YmxpY0tleS5wdWI7XG4gICAgICAgIHB1YmxpY0tleUhleC5zaG91bGQuZXF1YWwoJ2VjOGE0ZjA0NTQwN2QxMTQ1NzZmOWNiMDMxODJmNWRjYWM4YWViZDQyMjIyMzIxNjg0MzI0MTkwZTkyNzc4NDEnKTtcblxuICAgICAgICBjb25zdCBjb3NlT2JqZWN0c091dHB1dCA9IGF3YWl0IGJ1ZmZlclRvQ29zZU9iamVjdHNPdXRwdXQoc2lnbmF0dXJlKTtcbiAgICAgICAgY29uc3QgY29zZUtleSA9IGNvc2VPYmplY3RzT3V0cHV0Lm1hbnVhbENvc2VLZXlIZXg7XG4gICAgICAgIGNvc2VLZXkuc2hvdWxkLmVxdWFsKCdhNDAxMDEwMzI3MjAwNjIxNTgyMGVjOGE0ZjA0NTQwN2QxMTQ1NzZmOWNiMDMxODJmNWRjYWM4YWViZDQyMjIyMzIxNjg0MzI0MTkwZTkyNzc4NDEnKTtcbiAgICAgICAgY29uc3QgY29zZVNpZ24xID0gY29zZU9iamVjdHNPdXRwdXQubWFudWFsQ29zZVNpZ24xSGV4O1xuICAgICAgICBjb3NlU2lnbjEuc2hvdWxkLmVxdWFsKFxuICAgICAgICAgICc4NDU4NDZhMjAxMjc2NzYxNjQ2NDcyNjU3MzczNTgzOTAxNDUxMWRlMzZmNTJiYWViY2Y1NjMzMzk3OWIyYzg2ZDNlZjI2NGI0ZTdhMGI4Yjk4ZTAxMjM2YTE0NTExZGUzNmY1MmJhZWJjZjU2MzMzOTc5YjJjODZkM2VmMjY0YjRlN2EwYjhiOThlMDEyMzZhMWExNjY2ODYxNzM2ODY1NjRmNDU4Yjk1MzU0NDE1MjIwMzczMjM4MzIzNTM1MzQzNTIwNzQ2ZjIwNjE2NDY0NzIzMTcxNzg3NjM5NjUzOTdhNzAzNTM1Nzg3NjMzMzYzMDc3Njc2ODZjMzgzMDM2NjQzMDMyNzkzMzM1MzgzOTM5N2E2YjZiNzEzMjcyNjg3NDY2Nzg3NjM3NzgzNjc3Nzk2Mzc0NmEzMjc5NzI2NjY3NzY2NTcyMzUzNzc1MzMzMDM3Nzc2YzM1MzYzNzM1NjY3MjY3NzczMjMyMzk2NDc2NzEzNTM4Nzc2YjZhNzY2NTc1NjQzNTc1NzE2NjZlNmQ3NDY1N2EyMDMzMzE2MTM2NjI2MTYyMzUzMDYxMzgzNDYyMzgzNDMzMzk2MTY0NjM2NjYyMzczODM2NjI2MjMyMzAzMjMwNjYzNjM4MzAzNzY1MzY2NTM4NjY2NDYxMzYzMjM5NjIzNDMyMzQzMTMxMzA2NjYzMzc2MjYyMzE2MzM2NjIzODYyNTg0MDVlZTg3ZDUxOTVhYTJkZTk4M2QyZTc2YzllOTBjMGZlYzYyN2FmOTI0ZGEzOTQ3ODBkYjlhODZmYTg5NDcwZjJlYWUwMzM0ZTdkMmI4NjAwYjZiNDE5NjhlMTRlYjI1YjRiOWY1NTQ5MTNjYjJjZTAyZmUxNDcyNDM4ZTMxZjBmJ1xuICAgICAgICApO1xuICAgICAgfSk7XG4gICAgfSk7XG4gIH0pO1xufSk7XG4iXX0=
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"utils.d.ts","sourceRoot":"","sources":["../../../../../test/unit/messages/cip8/utils.ts"],"names":[],"mappings":""}
|