@bitgo/sdk-coin-ada 4.15.2 → 4.16.1

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.
Files changed (67) hide show
  1. package/dist/src/lib/transactionBuilder.d.ts.map +1 -1
  2. package/dist/src/lib/transactionBuilder.js +12 -2
  3. package/dist/test/resources/cip8Resources.d.ts +25 -0
  4. package/dist/test/resources/cip8Resources.d.ts.map +1 -0
  5. package/dist/test/resources/cip8Resources.js +76 -0
  6. package/dist/test/resources/index.d.ts +435 -0
  7. package/dist/test/resources/index.d.ts.map +1 -0
  8. package/dist/test/resources/index.js +635 -0
  9. package/dist/test/unit/StakingActivateBuilder.d.ts +2 -0
  10. package/dist/test/unit/StakingActivateBuilder.d.ts.map +1 -0
  11. package/dist/test/unit/StakingActivateBuilder.js +213 -0
  12. package/dist/test/unit/StakingDeactivateBuilder.d.ts +2 -0
  13. package/dist/test/unit/StakingDeactivateBuilder.d.ts.map +1 -0
  14. package/dist/test/unit/StakingDeactivateBuilder.js +158 -0
  15. package/dist/test/unit/ada.d.ts +5 -0
  16. package/dist/test/unit/ada.d.ts.map +1 -0
  17. package/dist/test/unit/ada.js +825 -0
  18. package/dist/test/unit/getBuilderFactory.d.ts +3 -0
  19. package/dist/test/unit/getBuilderFactory.d.ts.map +1 -0
  20. package/dist/test/unit/getBuilderFactory.js +10 -0
  21. package/dist/test/unit/index.d.ts +2 -0
  22. package/dist/test/unit/index.d.ts.map +1 -0
  23. package/dist/test/unit/index.js +32 -0
  24. package/dist/test/unit/keyPair.d.ts +2 -0
  25. package/dist/test/unit/keyPair.d.ts.map +1 -0
  26. package/dist/test/unit/keyPair.js +88 -0
  27. package/dist/test/unit/messages/cip8/cip8Message.d.ts +2 -0
  28. package/dist/test/unit/messages/cip8/cip8Message.d.ts.map +1 -0
  29. package/dist/test/unit/messages/cip8/cip8Message.js +131 -0
  30. package/dist/test/unit/messages/cip8/cip8MessageBuilder.d.ts +2 -0
  31. package/dist/test/unit/messages/cip8/cip8MessageBuilder.d.ts.map +1 -0
  32. package/dist/test/unit/messages/cip8/cip8MessageBuilder.js +132 -0
  33. package/dist/test/unit/messages/cip8/utils.d.ts +2 -0
  34. package/dist/test/unit/messages/cip8/utils.d.ts.map +1 -0
  35. package/dist/test/unit/messages/cip8/utils.js +127 -0
  36. package/dist/test/unit/messages/messageBuilderFactory.d.ts +2 -0
  37. package/dist/test/unit/messages/messageBuilderFactory.d.ts.map +1 -0
  38. package/dist/test/unit/messages/messageBuilderFactory.js +35 -0
  39. package/dist/test/unit/stakingClaimRewardsBuilder.d.ts +2 -0
  40. package/dist/test/unit/stakingClaimRewardsBuilder.d.ts.map +1 -0
  41. package/dist/test/unit/stakingClaimRewardsBuilder.js +70 -0
  42. package/dist/test/unit/stakingPledgeBuilder.d.ts +2 -0
  43. package/dist/test/unit/stakingPledgeBuilder.d.ts.map +1 -0
  44. package/dist/test/unit/stakingPledgeBuilder.js +141 -0
  45. package/dist/test/unit/stakingWithdrawBuilder.d.ts +2 -0
  46. package/dist/test/unit/stakingWithdrawBuilder.d.ts.map +1 -0
  47. package/dist/test/unit/stakingWithdrawBuilder.js +167 -0
  48. package/dist/test/unit/tokenWithdrawal.d.ts +2 -0
  49. package/dist/test/unit/tokenWithdrawal.d.ts.map +1 -0
  50. package/dist/test/unit/tokenWithdrawal.js +286 -0
  51. package/dist/test/unit/transaction.d.ts +2 -0
  52. package/dist/test/unit/transaction.d.ts.map +1 -0
  53. package/dist/test/unit/transaction.js +100 -0
  54. package/dist/test/unit/transactionBuilder.d.ts +2 -0
  55. package/dist/test/unit/transactionBuilder.d.ts.map +1 -0
  56. package/dist/test/unit/transactionBuilder.js +454 -0
  57. package/dist/test/unit/utils.d.ts +2 -0
  58. package/dist/test/unit/utils.d.ts.map +1 -0
  59. package/dist/test/unit/utils.js +138 -0
  60. package/dist/test/unit/voteDelegationBuilder.d.ts +2 -0
  61. package/dist/test/unit/voteDelegationBuilder.d.ts.map +1 -0
  62. package/dist/test/unit/voteDelegationBuilder.js +96 -0
  63. package/dist/tsconfig.tsbuildinfo +1 -0
  64. package/package.json +11 -8
  65. package/.eslintignore +0 -5
  66. package/.mocharc.yml +0 -8
  67. package/CHANGELOG.md +0 -1227
@@ -0,0 +1,3 @@
1
+ import { TransactionBuilderFactory } from '../../src';
2
+ export declare const getBuilderFactory: (coin: string) => TransactionBuilderFactory;
3
+ //# sourceMappingURL=getBuilderFactory.d.ts.map
@@ -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/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,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZ2V0QnVpbGRlckZhY3RvcnkuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi90ZXN0L3VuaXQvZ2V0QnVpbGRlckZhY3RvcnkudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7O0FBQUEsbUNBQXNEO0FBQ3RELDRDQUF1QztBQUVoQyxNQUFNLGlCQUFpQixHQUFHLENBQUMsSUFBWSxFQUE2QixFQUFFO0lBQzNFLE9BQU8sSUFBSSwrQkFBeUIsQ0FBQyxlQUFLLENBQUMsR0FBRyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUM7QUFDeEQsQ0FBQyxDQUFDO0FBRlcsUUFBQSxpQkFBaUIscUJBRTVCIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgVHJhbnNhY3Rpb25CdWlsZGVyRmFjdG9yeSB9IGZyb20gJy4uLy4uL3NyYyc7XG5pbXBvcnQgeyBjb2lucyB9IGZyb20gJ0BiaXRnby9zdGF0aWNzJztcblxuZXhwb3J0IGNvbnN0IGdldEJ1aWxkZXJGYWN0b3J5ID0gKGNvaW46IHN0cmluZyk6IFRyYW5zYWN0aW9uQnVpbGRlckZhY3RvcnkgPT4ge1xuICByZXR1cm4gbmV3IFRyYW5zYWN0aW9uQnVpbGRlckZhY3RvcnkoY29pbnMuZ2V0KGNvaW4pKTtcbn07XG4iXX0=
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=index.d.ts.map
@@ -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/sdk-api");
4
+ const sdk_test_1 = require("@bitgo/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,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi90ZXN0L3VuaXQvaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7QUFBQSw0Q0FBMEM7QUFDMUMsOENBQTBEO0FBQzFELG1DQUFzQztBQUV0QyxRQUFRLENBQUMsS0FBSyxFQUFFO0lBQ2QsTUFBTSxRQUFRLEdBQUcsTUFBTSxDQUFDO0lBQ3hCLElBQUksS0FBbUIsQ0FBQztJQUN4QixJQUFJLFFBQVEsQ0FBQztJQUViLE1BQU0sQ0FBQztRQUNMLEtBQUssR0FBRyxvQkFBUyxDQUFDLFFBQVEsQ0FBQyxrQkFBUSxFQUFFO1lBQ25DLEdBQUcsRUFBRSxNQUFNO1NBQ1osQ0FBQyxDQUFDO1FBQ0gsS0FBSyxDQUFDLGtCQUFrQixFQUFFLENBQUM7UUFDM0IsS0FBSyxDQUFDLFlBQVksQ0FBQyxLQUFLLEVBQUUsU0FBRyxDQUFDLGNBQWMsQ0FBQyxDQUFDO1FBQzlDLEtBQUssQ0FBQyxZQUFZLENBQUMsTUFBTSxFQUFFLFVBQUksQ0FBQyxjQUFjLENBQUMsQ0FBQztRQUNoRCxRQUFRLEdBQUcsS0FBSyxDQUFDLElBQUksQ0FBQyxRQUFRLENBQUMsQ0FBQztJQUNsQyxDQUFDLENBQUMsQ0FBQztJQUVILEVBQUUsQ0FBQyw2QkFBNkIsRUFBRTtRQUNoQyxJQUFJLGFBQWEsR0FBRyxLQUFLLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxDQUFDO1FBQ3ZDLGFBQWEsQ0FBQyxNQUFNLENBQUMsRUFBRSxDQUFDLEVBQUUsQ0FBQyxVQUFVLENBQUMsVUFBSSxDQUFDLENBQUM7UUFFNUMsYUFBYSxHQUFHLEtBQUssQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUM7UUFDbEMsYUFBYSxDQUFDLE1BQU0sQ0FBQyxFQUFFLENBQUMsRUFBRSxDQUFDLFVBQVUsQ0FBQyxTQUFHLENBQUMsQ0FBQztJQUM3QyxDQUFDLENBQUMsQ0FBQztJQUVILEVBQUUsQ0FBQyxvQkFBb0IsRUFBRTtRQUN2QixRQUFRLENBQUMsUUFBUSxFQUFFLENBQUMsTUFBTSxDQUFDLEtBQUssQ0FBQyxNQUFNLENBQUMsQ0FBQztJQUMzQyxDQUFDLENBQUMsQ0FBQztJQUVILEVBQUUsQ0FBQyx5QkFBeUIsRUFBRTtRQUM1QixRQUFRLENBQUMsV0FBVyxFQUFFLENBQUMsTUFBTSxDQUFDLEtBQUssQ0FBQyxhQUFhLENBQUMsQ0FBQztJQUNyRCxDQUFDLENBQUMsQ0FBQztBQUNMLENBQUMsQ0FBQyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQml0R29BUEkgfSBmcm9tICdAYml0Z28vc2RrLWFwaSc7XG5pbXBvcnQgeyBUZXN0Qml0R28sIFRlc3RCaXRHb0FQSSB9IGZyb20gJ0BiaXRnby9zZGstdGVzdCc7XG5pbXBvcnQgeyBBZGEsIFRhZGEgfSBmcm9tICcuLi8uLi9zcmMnO1xuXG5kZXNjcmliZSgnQWRhJywgZnVuY3Rpb24gKCkge1xuICBjb25zdCBjb2luTmFtZSA9ICd0YWRhJztcbiAgbGV0IGJpdGdvOiBUZXN0Qml0R29BUEk7XG4gIGxldCBiYXNlY29pbjtcblxuICBiZWZvcmUoZnVuY3Rpb24gKCkge1xuICAgIGJpdGdvID0gVGVzdEJpdEdvLmRlY29yYXRlKEJpdEdvQVBJLCB7XG4gICAgICBlbnY6ICdtb2NrJyxcbiAgICB9KTtcbiAgICBiaXRnby5pbml0aWFsaXplVGVzdFZhcnMoKTtcbiAgICBiaXRnby5zYWZlUmVnaXN0ZXIoJ2FkYScsIEFkYS5jcmVhdGVJbnN0YW5jZSk7XG4gICAgYml0Z28uc2FmZVJlZ2lzdGVyKCd0YWRhJywgVGFkYS5jcmVhdGVJbnN0YW5jZSk7XG4gICAgYmFzZWNvaW4gPSBiaXRnby5jb2luKGNvaW5OYW1lKTtcbiAgfSk7XG5cbiAgaXQoJ3Nob3VsZCBpbnN0YW50aWF0ZSB0aGUgY29pbicsIGZ1bmN0aW9uICgpIHtcbiAgICBsZXQgbG9jYWxCYXNlY29pbiA9IGJpdGdvLmNvaW4oJ3RhZGEnKTtcbiAgICBsb2NhbEJhc2Vjb2luLnNob3VsZC5iZS5hbi5pbnN0YW5jZW9mKFRhZGEpO1xuXG4gICAgbG9jYWxCYXNlY29pbiA9IGJpdGdvLmNvaW4oJ2FkYScpO1xuICAgIGxvY2FsQmFzZWNvaW4uc2hvdWxkLmJlLmFuLmluc3RhbmNlb2YoQWRhKTtcbiAgfSk7XG5cbiAgaXQoJ3Nob3VsZCByZXR1cm4gdGFkYScsIGZ1bmN0aW9uICgpIHtcbiAgICBiYXNlY29pbi5nZXRDaGFpbigpLnNob3VsZC5lcXVhbCgndGFkYScpO1xuICB9KTtcblxuICBpdCgnc2hvdWxkIHJldHVybiBmdWxsIG5hbWUnLCBmdW5jdGlvbiAoKSB7XG4gICAgYmFzZWNvaW4uZ2V0RnVsbE5hbWUoKS5zaG91bGQuZXF1YWwoJ1Rlc3RuZXQgQWRhJyk7XG4gIH0pO1xufSk7XG4iXX0=
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=keyPair.d.ts.map
@@ -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/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,eyJ2ZXJzaW9uIjozLCJmaWxlIjoia2V5UGFpci5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3Rlc3QvdW5pdC9rZXlQYWlyLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7O0FBQUEsb0RBQTRCO0FBQzVCLG1DQUFvQztBQUNwQyw2Q0FBbUQ7QUFDbkQsK0ZBQWlGO0FBQ2pGLDhDQUF1RDtBQUV2RCxRQUFRLENBQUMsYUFBYSxFQUFFLEdBQUcsRUFBRTtJQUMzQixNQUFNLFdBQVcsR0FBRyxFQUFFLElBQUksRUFBRSxNQUFNLENBQUMsS0FBSyxDQUFDLEVBQUUsQ0FBQyxFQUFFLENBQUM7SUFFL0MsUUFBUSxDQUFDLGtCQUFrQixFQUFFLEdBQUcsRUFBRTtRQUNoQyxFQUFFLENBQUMsZUFBZSxFQUFFLEdBQUcsRUFBRTtZQUN2QixNQUFNLE9BQU8sR0FBRyxJQUFJLGFBQU8sRUFBRSxDQUFDO1lBQzlCLGdCQUFNLENBQUMsTUFBTSxDQUFDLE9BQU8sQ0FBQyxPQUFPLEVBQUUsQ0FBQyxHQUFHLENBQUMsQ0FBQztZQUNyQyxnQkFBTSxDQUFDLE1BQU0sQ0FBQyxPQUFPLENBQUMsT0FBTyxFQUFFLENBQUMsR0FBRyxDQUFDLENBQUM7UUFDdkMsQ0FBQyxDQUFDLENBQUM7UUFFSCxFQUFFLENBQUMsaUNBQWlDLEVBQUUsR0FBRyxFQUFFO1lBQ3pDLElBQUksT0FBTyxHQUFHLElBQUksYUFBTyxDQUFDO2dCQUN4QixHQUFHLEVBQUUsOEJBQWtCLENBQUMsUUFBUSxDQUFDLFNBQVM7YUFDM0MsQ0FBQyxDQUFDO1lBRUgsZ0JBQU0sQ0FBQyxLQUFLLENBQ1YsT0FBTyxDQUFDLE9BQU8sRUFBRSxDQUFDLEdBQUcsRUFDckIsSUFBQSxnQkFBSyxFQUFDLDZDQUFVLENBQUMsV0FBVyxDQUFDLDhCQUFrQixDQUFDLFFBQVEsQ0FBQyxTQUFTLENBQUMsQ0FBQyxRQUFRLEVBQUUsQ0FBQyxDQUNoRixDQUFDO1lBRUYsZ0JBQU0sQ0FBQyxLQUFLLENBQUMsT0FBTyxDQUFDLE9B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QUU7WUFDM0UsTUFBTSxPQUFPLEdBQUcsSUFBSSxhQUFPLENBQUMsV0FBVyxDQUFDLENBQUM7WUFDekMsTUFBTSxFQUFFLEdBQUcsRUFBRSxHQUFHLEVBQUUsR0FBRyxPQUFPLENBQUMsT0FBTyxFQUFFLENBQUM7WUFFdkMsR0FBSSxDQUFDLE1BQU0sQ0FBQyxLQUFLLENBQUMsR0FBRyxDQUFDLENBQUM7WUFDdkIsR0FBRyxDQUFDLE1BQU0sQ0FBQyxLQUFLLENBQUMsR0FBRyxDQUFDLENBQUM7WUFDdEIsTUFBTSxPQUFPLEdBQUcsT0FBTyxDQUFDLFVBQVUsQ0FBQyx3QkFBYSxDQUFDLE9BQU8sQ0FBQyxDQUFDO1lBQzFELE9BQU8sQ0FBQyxNQUFNLENBQUMsS0FBSyxDQUFDLDhCQUFrQixDQUFDLFdBQVcsQ0FBQyxpQkFBaUIsQ0FBQyxDQUFDO1FBQ3pFLENBQUMsQ0FBQyxDQUFDO1FBRUgsRUFBRSxDQUFDLHNEQUFzRCxFQUFFLEdBQUcsRUFBRTtZQUM5RCxNQUFNLE9BQU8sR0FBRyxJQUFJLGFBQU8sRUFBRSxDQUFDO1lBQzlCLE1BQU0sRUFBRSxHQUFHLEVBQUUsR0FBRyxFQUFFLEdBQUcsT0FBTyxDQUFDLE9BQU8sRUFBRSxDQUFDO1lBQ3ZDLGdCQUFNLENBQUMsS0FBSyxDQUFDLEdBQUcsQ0FBQyxDQUFDO1lBQ2xCLGdCQUFNLENBQUMsS0FBSyxDQUFDLEdBQUcsQ0FBQyxDQUFDO1FBQ3BCLENBQUMsQ0FBQyxDQUFDO0lBQ0wsQ0FBQyxDQUFDLENBQUM7QUFDTCxDQUFDLENBQUMsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCBzaG91bGQgZnJvbSAnc2hvdWxkJztcbmltcG9ydCB7IEtleVBhaXIgfSBmcm9tICcuLi8uLi9zcmMnO1xuaW1wb3J0IHsgZW50ZXJwcmlzZUFjY291bnRzIH0gZnJvbSAnLi4vcmVzb3VyY2VzLyc7XG5pbXBvcnQgeyBQcml2YXRlS2V5LCBQdWJsaWNLZXkgfSBmcm9tICdAZW11cmdvL2NhcmRhbm8tc2VyaWFsaXphdGlvbi1saWItbm9kZWpzJztcbmltcG9ydCB7IEFkZHJlc3NGb3JtYXQsIHRvSGV4IH0gZnJvbSAnQGJpdGdvL3Nkay1jb3JlJztcblxuZGVzY3JpYmUoJ0FkYSBLZXlwYWlyJywgKCkgPT4ge1xuICBjb25zdCBkZWZhdWx0U2VlZCA9IHsgc2VlZDogQnVmZmVyLmFsbG9jKDMyKSB9O1xuXG4gIGRlc2NyaWJlKCdLZXlwYWlyIGNyZWF0aW9uJywgKCkgPT4ge1xuICAgIGl0KCdpbml0aWFsIHN0YXRlJywgKCkgPT4ge1xuICAgICAgY29uc3Qga2V5UGFpciA9IG5ldyBLZXlQYWlyKCk7XG4gICAgICBzaG91bGQuZXhpc3RzKGtleVBhaXIuZ2V0S2V5cygpLnBydik7XG4gICAgICBzaG91bGQuZXhpc3RzKGtleVBhaXIuZ2V0S2V5cygpLnBydik7XG4gICAgfSk7XG5cbiAgICBpdCgnaW5pdGlhbGl6YXRpb24gZnJvbSBwcml2YXRlIGtleScsICgpID0+IHtcbiAgICAgIGxldCBrZXlQYWlyID0gbmV3IEtleVBhaXIoe1xuICAgICAgICBwcnY6IGVudGVycHJpc2VBY2NvdW50cy5hY2NvdW50MS5zZWNyZXRLZXksXG4gICAgICB9KTtcblxuICAgICAgc2hvdWxkLmVxdWFsKFxuICAgICAgICBrZXlQYWlyLmdldEtleXMoKS5wcnYsXG4gICAgICAgIHRvSGV4KFByaXZhdGVLZXkuZnJvbV9iZWNoMzIoZW50ZXJwcmlzZUFjY291bnRzLmFjY291bnQxLnNlY3JldEtleSkuYXNfYnl0ZXMoKSlcbiAgICAgICk7XG5cbiAgICAgIHNob3VsZC5lcXVhbChrZXlQYWlyLmdldEtleXMoKS5wdWIsIGVudGVycHJpc2VBY2NvdW50cy5hY2NvdW50MS5oZXhQdWJsaWMpO1xuXG4gICAgICBrZXlQYWlyID0gbmV3IEtleVBhaXIoe1xuICAgICAgICBwcnY6IGVudGVycHJpc2VBY2NvdW50cy5hY2NvdW50Mi5zZWNyZXRLZXksXG4gICAgICB9KTtcblxuICAgICAgc2hvdWxkLmVxdWFsKFxuICAgICAgICBrZXlQYWlyLmdldEtleXMoKS5wcnYsXG4gICAgICAgIHRvSGV4KFByaXZhdGVLZXkuZnJvbV9iZWNoMzIoZW50ZXJwcmlzZUFjY291bnRzLmFjY291bnQyLnNlY3JldEtleSkuYXNfYnl0ZXMoKSlcbiAgICAgICk7XG4gICAgICBzaG91bGQuZXF1YWwoa2V5UGFpci5nZXRLZXlzKCkucHViLCBlbnRlcnByaXNlQWNjb3VudHMuYWNjb3VudDIuaGV4UHVibGljKTtcbiAgICB9KTtcblxuICAgIGl0KCdpbml0aWFsaXphdGlvbiBmcm9tIHB1YmxpYyBrZXknLCAoKSA9PiB7XG4gICAgICBsZXQga2V5UGFpciA9IG5ldyBLZXlQYWlyKHsgcHViOiBlbnRlcnByaXNlQWNjb3VudHMuYWNjb3VudDEucHVibGljS2V5IH0pO1xuXG4gICAgICBzaG91bGQuZXF1YWwoXG4gICAgICAgIGtleVBhaXIuZ2V0S2V5cygpLnB1YixcbiAgICAgICAgdG9IZXgoUHVibGljS2V5LmZyb21fYmVjaDMyKGVudGVycHJpc2VBY2NvdW50cy5hY2NvdW50MS5wdWJsaWNLZXkpLmFzX2J5dGVzKCkpXG4gICAgICApO1xuXG4gICAgICBrZXlQYWlyID0gbmV3IEtleVBhaXIoeyBwdWI6IGVudGVycHJpc2VBY2NvdW50cy5hY2NvdW50Mi5wdWJsaWNLZXkgfSk7XG4gICAgICBzaG91bGQuZXF1YWwoa2V5UGFpci5nZXRBZGRyZXNzKEFkZHJlc3NGb3JtYXQudGVzdG5ldCksIGVudGVycHJpc2VBY2NvdW50cy5hY2NvdW50Mi5iYXNlQWRkcmVzcyk7XG5cbiAgICAgIGtleVBhaXIgPSBuZXcgS2V5UGFpcih7IHB1YjogZW50ZXJwcmlzZUFjY291bnRzLmFjY291bnQ0LnB1YmxpY0tleUhleCB9KTtcbiAgICAgIHNob3VsZC5lcXVhbChrZXlQYWlyLmdldEtleXMoKS5wdWIsIGVudGVycHJpc2VBY2NvdW50cy5hY2NvdW50NC5wdWJsaWNLZXlIZXgpO1xuICAgIH0pO1xuICB9KTtcblxuICBkZXNjcmliZSgnS2V5UGFpciB2YWxpZGF0aW9uJywgKCkgPT4ge1xuICAgIGl0KCdzaG91bGQgZmFpbCB0byBjcmVhdGUgZnJvbSBhbiBpbnZhbGlkIHNlZWQnLCAoKSA9PiB7XG4gICAgICBjb25zdCBzZWVkID0geyBzZWVkOiBCdWZmZXIuYWxsb2MoOCkgfTsgLy8gIFNlZWQgc2hvdWxkIGJlIDUxMiBiaXRzICg2NCBieXRlcylcbiAgICAgIHNob3VsZC50aHJvd3MoKCkgPT4gbmV3IEtleVBhaXIoc2VlZCksICdiYWQgc2VlZCBzaXplJyk7XG4gICAgfSk7XG5cbiAgICBpdCgnc2hvdWxkIGZhaWwgdG8gY3JlYXRlIGZyb20gYW4gaW52YWxpZCBwdWJsaWMga2V5JywgKCkgPT4ge1xuICAgICAgY29uc3Qgc291cmNlID0ge1xuICAgICAgICBwdWI6ICcwMUQ2M0QnLFxuICAgICAgfTtcbiAgICAgIHNob3VsZC50aHJvd3MoKCkgPT4gbmV3IEtleVBhaXIoc291cmNlKSwgJ2FkZHJlc3Mgc2VlbXMgdG8gYmUgbWFsZm9ybWVkJyk7XG4gICAgfSk7XG5cbiAgICBpdCgnc2hvdWxkIGZhaWwgdG8gY3JlYXRlIGZyb20gYW4gaW52YWxpZCBwcml2YXRlIGtleScsICgpID0+IHtcbiAgICAgIGNvbnN0IHNvdXJjZSA9IHtcbiAgICAgICAgcHJ2OiAnODJBMzQnLFxuICAgICAgfTtcbiAgICAgIHNob3VsZC50aHJvd3MoKCkgPT4gbmV3IEtleVBhaXIoc291cmNlKSwgJ0ludmFsaWQgYmFzZTMyIGNoYXJhY3RlcnMnKTtcbiAgICB9KTtcbiAgfSk7XG5cbiAgZGVzY3JpYmUoJ2dldEFkZHJlc3MnLCAoKSA9PiB7XG4gICAgaXQoJ3Nob3VsZCBnZXQgYW4gYWRkcmVzcycsICgpID0+IHtcbiAgICAgIGxldCBrZXlQYWlyID0gbmV3IEtleVBhaXIoeyBwcnY6IGVudGVycHJpc2VBY2NvdW50cy5hY2NvdW50MS5zZWNyZXRLZXkgfSk7XG4gICAgICBsZXQgYWRkcmVzcyA9IGtleVBhaXIuZ2V0QWRkcmVzcyhBZGRyZXNzRm9ybWF0LnRlc3RuZXQpO1xuICAgICAgYWRkcmVzcy5zaG91bGQuZXF1YWwoZW50ZXJwcmlzZUFjY291bnRzLmFjY291bnQxLmJhc2VBZGRyZXNzKTtcblxuICAgICAga2V5UGFpciA9IG5ldyBLZXlQYWlyKHsgcHJ2OiBlbnRlcnByaXNlQWNjb3VudHMuYWNjb3VudDMuc2VjcmV0S2V5IH0pO1xuICAgICAgYWRkcmVzcyA9IGtleVBhaXIuZ2V0QWRkcmVzcyhBZGRyZXNzRm9ybWF0LnRlc3RuZXQpO1xuICAgICAgYWRkcmVzcy5zaG91bGQuZXF1YWwoZW50ZXJwcmlzZUFjY291bnRzLmFjY291bnQzLmJhc2VBZGRyZXNzKTtcblxuICAgICAga2V5UGFpciA9IG5ldyBLZXlQYWlyKHsgcHViOiBlbnRlcnByaXNlQWNjb3VudHMuYWNjb3VudDQucHVibGljS2V5SGV4IH0pO1xuICAgICAgYWRkcmVzcyA9IGtleVBhaXIuZ2V0QWRkcmVzcyhBZGRyZXNzRm9ybWF0LnRlc3RuZXQpO1xuICAgICAgYWRkcmVzcy5zaG91bGQuZXF1YWwoZW50ZXJwcmlzZUFjY291bnRzLmFjY291bnQ0LmJhc2VBZGRyZXNzKTtcbiAgICB9KTtcbiAgfSk7XG5cbiAgZGVzY3JpYmUoJ2dldEtleXMnLCAoKSA9PiB7XG4gICAgaXQoJ3Nob3VsZCBnZXQgcHJpdmF0ZSBhbmQgcHVibGljIGtleXMgaW4gdGhlIHByb3RvY29sIGRlZmF1bHQgZm9ybWF0JywgKCkgPT4ge1xuICAgICAgY29uc3Qga2V5UGFpciA9IG5ldyBLZXlQYWlyKGRlZmF1bHRTZWVkKTtcbiAgICAgIGNvbnN0IHsgcHJ2LCBwdWIgfSA9IGtleVBhaXIuZ2V0S2V5cygpO1xuXG4gICAgICBwcnYhLnNob3VsZC5lcXVhbChwcnYpO1xuICAgICAgcHViLnNob3VsZC5lcXVhbChwdWIpO1xuICAgICAgY29uc3QgYWRkcmVzcyA9IGtleVBhaXIuZ2V0QWRkcmVzcyhBZGRyZXNzRm9ybWF0LnRlc3RuZXQpO1xuICAgICAgYWRkcmVzcy5zaG91bGQuZXF1YWwoZW50ZXJwcmlzZUFjY291bnRzLnNlZWRBY2NvdW50LmVudGVycHJpc2VBZGRyZXNzKTtcbiAgICB9KTtcblxuICAgIGl0KCdzaG91bGQgZ2V0IHByaXZhdGUgYW5kIHB1YmxpYyBrZXlzIGZvciBhIHJhbmRvbSBzZWVkJywgKCkgPT4ge1xuICAgICAgY29uc3Qga2V5UGFpciA9IG5ldyBLZXlQYWlyKCk7XG4gICAgICBjb25zdCB7IHBydiwgcHViIH0gPSBrZXlQYWlyLmdldEtleXMoKTtcbiAgICAgIHNob3VsZC5leGlzdChwcnYpO1xuICAgICAgc2hvdWxkLmV4aXN0KHB1Yik7XG4gICAgfSk7XG4gIH0pO1xufSk7XG4iXX0=
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=cip8Message.d.ts.map
@@ -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/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,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2lwOE1lc3NhZ2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi90ZXN0L3VuaXQvbWVzc2FnZXMvY2lwOC9jaXA4TWVzc2FnZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7OztBQUFBLG9EQUE0QjtBQUM1QixrREFBMEI7QUFDMUIsbUNBQWdDO0FBQ2hDLDhDQUFpRjtBQUNqRix5Q0FBOEM7QUFDOUMsb0VBQXFFO0FBRXJFLFFBQVEsQ0FBQyxhQUFhLEVBQUU7SUFDdEIsSUFBSSxPQUEyQixDQUFDO0lBRWhDLFVBQVUsQ0FBQztRQUNULE9BQU8sR0FBRyxlQUFLLENBQUMsYUFBYSxFQUFFLENBQUM7SUFDbEMsQ0FBQyxDQUFDLENBQUM7SUFFSCxTQUFTLENBQUM7UUFDUixPQUFPLENBQUMsT0FBTyxFQUFFLENBQUM7SUFDcEIsQ0FBQyxDQUFDLENBQUM7SUFFSCxNQUFNLDJCQUEyQixHQUFHLENBQUMsT0FBTyxHQUFHLGlDQUFpQixDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQWtCLEVBQUU7UUFDbEcsT0FBTztZQUNMLFVBQVUsRUFBRSxFQUFTO1lBQ3JCLE9BQU8sRUFBRSxPQUFPO1lBQ2hCLE9BQU8sRUFBRSxDQUFDLGlDQUFpQixDQUFDLE9BQU8sQ0FBQyxNQUFNLENBQUM7U0FDNUMsQ0FBQztJQUNKLENBQUMsQ0FBQztJQUVGLFFBQVEsQ0FBQyxhQUFhLEVBQUU7UUFDdEIsRUFBRSxDQUFDLHdEQUF3RCxFQUFFO1lBQzNELE1BQU0sT0FBTyxHQUFHLElBQUksaUJBQVcsQ0FBQywyQkFBMkIsRUFBRSxDQUFDLENBQUM7WUFDL0QsZ0JBQU0sQ0FBQyxLQUFLLENBQUMsT0FBTyxDQUFDLENBQUM7WUFDdEIsT0FBTyxDQUFDLE9BQU8sRUFBRSxDQUFDLE1BQU0sQ0FBQyxLQUFLLENBQUMsOEJBQW1CLENBQUMsSUFBSSxDQUFDLENBQUM7UUFDM0QsQ0FBQyxDQUFDLENBQUM7UUFFSCxFQUFFLENBQUMseUNBQXlDLEVB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LENBQUM7WUFFRixNQUFNLE9BQU8sR0FBRztnQkFDZCxHQUFHLDJCQUEyQixFQUFFO2dCQUNoQyxPQUFPLEVBQUUsU0FBZ0I7Z0JBQ3pCLFVBQVUsRUFBRSxDQUFDLGFBQWEsQ0FBQzthQUM1QixDQUFDO1lBRUYsTUFBTSxPQUFPLEdBQUcsSUFBSSxpQkFBVyxDQUFDLE9BQU8sQ0FBQyxDQUFDO1lBRXpDLGdCQUFNLENBQUMsTUFBTSxDQUFDLEdBQUcsRUFBRSxDQUFDLE9BQU8sQ0FBQywwQkFBMEIsRUFBRSxFQUFFLDZDQUE2QyxDQUFDLENBQUM7UUFDM0csQ0FBQyxDQUFDLENBQUM7SUFDTCxDQUFDLENBQUMsQ0FBQztBQUNMLENBQUMsQ0FBQyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHNob3VsZCBmcm9tICdzaG91bGQnO1xuaW1wb3J0IHNpbm9uIGZyb20gJ3Npbm9uJztcbmltcG9ydCB7IEJ1ZmZlciB9IGZyb20gJ2J1ZmZlcic7XG5pbXBvcnQgeyBNZXNzYWdlT3B0aW9ucywgTWVzc2FnZVN0YW5kYXJkVHlwZSwgU2lnbmF0dXJlIH0gZnJvbSAnQGJpdGdvL3Nkay1jb3JlJztcbmltcG9ydCB7IENpcDhNZXNzYWdlIH0gZnJvbSAnLi4vLi4vLi4vLi4vc3JjJztcbmltcG9ydCB7IGNpcDhUZXN0UmVzb3VyY2VzIH0gZnJvbSAnLi4vLi4vLi4vcmVzb3VyY2VzL2NpcDhSZXNvdXJjZXMnO1xuXG5kZXNjcmliZSgnQ2lwOE1lc3NhZ2UnLCBmdW5jdGlvbiAoKSB7XG4gIGxldCBzYW5kYm94OiBzaW5vbi5TaW5vblNhbmRib3g7XG5cbiAgYmVmb3JlRWFjaChmdW5jdGlvbiAoKSB7XG4gICAgc2FuZGJveCA9IHNpbm9uLmNyZWF0ZVNhbmRib3goKTtcbiAgfSk7XG5cbiAgYWZ0ZXJFYWNoKGZ1bmN0aW9uICgpIHtcbiAgICBzYW5kYm94LnJlc3RvcmUoKTtcbiAgfSk7XG5cbiAgY29uc3QgY3JlYXRlRGVmYXVsdE1lc3NhZ2VPcHRpb25zID0gKG1lc3NhZ2UgPSBjaXA4VGVzdFJlc291cmNlcy5tZXNzYWdlcy5zaW1wbGUpOiBNZXNzYWdlT3B0aW9ucyA9PiB7XG4gICAgcmV0dXJuIHtcbiAgICAgIGNvaW5Db25maWc6IHt9IGFzIGFueSxcbiAgICAgIHBheWxvYWQ6IG1lc3NhZ2UsXG4gICAgICBzaWduZXJzOiBbY2lwOFRlc3RSZXNvdXJjZXMuYWRkcmVzcy5iZWNoMzJdLFxuICAgIH07XG4gIH07XG5cbiAgZGVzY3JpYmUoJ2NvbnN0cnVjdG9yJywgZnVuY3Rpb24gKCkge1xuICAgIGl0KCdzaG91bGQgY3JlYXRlIGEgbmV3IGluc3RhbmNlIHdpdGggY29ycmVjdCBtZXNzYWdlIHR5cGUnLCBmdW5jdGlvbiAoKSB7XG4gICAgICBjb25zdCBtZXNzYWdlID0gbmV3IENpcDhNZXNzYWdlKGNyZWF0ZURlZmF1bHRNZXNzYWdlT3B0aW9ucygpKTtcbiAgICAgIHNob3VsZC5leGlzdChtZXNzYWdlKTtcbiAgICAgIG1lc3NhZ2UuZ2V0VHlwZSgpLnNob3VsZC5lcXVhbChNZXNzYWdlU3RhbmRhcmRUeXBlLkNJUDgpO1xuICAgIH0pO1xuXG4gICAgaXQoJ3Nob3VsZCBpbml0aWFsaXplIHdpdGggcHJvdmlkZWQgb3B0aW9ucycsIGZ1bmN0aW9uICgpIHtcbiAgICAgIGNvbnN0IG9wdGlvbnMgPSBjcmVhdGVEZWZhdWx0TWVzc2FnZU9wdGlvbnMoKTtcbiAgICAgIG9wdGlvbnMubWV0YWRhdGEgPSB7IHRlc3Q6ICd2YWx1ZScgfTtcblxuICAgICAgY29uc3QgbWVzc2FnZSA9IG5ldyBDaXA4TWVzc2FnZShvcHRpb25zKTtcbiAgICAgIHNob3VsZC5leGlzdChtZXNzYWdlKTtcbiAgICAgIHNob3VsZC5leGlzdChtZXNzYWdlLmdldFBheWxvYWQoKSk7XG4gICAgICBtZXNzYWdlLmdldFBheWxvYWQoKS5zaG91bGQuZXF1YWwob3B0aW9ucy5wYXlsb2FkKTtcbiAgICAgIHNob3VsZC5leGlzdChtZXNzYWdlLmdldFNpZ25lcnMoKSk7XG4gICAgICBtZXNzYWdlLmdldFNpZ25lcnMoKS5zaG91bGQuZGVlcEVxdWFsKG9wdGlvbnMuc2lnbmVycyk7XG4gICAgICBzaG91bGQuZXhpc3QobWVzc2FnZS5nZXRNZXRhZGF0YSgpKTtcbiAgICAgIHNob3VsZC5kZWVwRXF1YWwobWVzc2FnZS5nZXRNZXRhZGF0YSgpLCBvcHRpb25zLm1ldGFkYXRhKTtcbiAgICB9KTtcblxuICAgIGl0KCdzaG91bGQgYWNjZXB0IHNpZ25hdHVyZXMgaW4gY29uc3RydWN0b3InLCBmdW5jdGlvbiAoKSB7XG4gICAgICBjb25zdCBzaWduYXR1cmVzOiBTaWduYXR1cmVbXSA9IFtcbiAgICAgICAge1xuICAgICAgICAgIHNpZ25hdHVyZTogQnVmZmVyLmZyb20oJ3Rlc3Qtc2lnbmF0dXJlJyksXG4gICAgICAgICAgcHVibGljS2V5OiB7IHB1YjogY2lwOFRlc3RSZXNvdXJjZXMua2V5UGFpci5wdWIgfSxcbiAgICAgICAgfSxcbiAgICAgIF07XG5cbiAgICAgIGNvbnN0IG9wdGlvbnMgPSB7XG4gICAgICAgIC4uLmNyZWF0ZURlZmF1bHRNZXNzYWdlT3B0aW9ucygpLFxuICAgICAgICBzaWduYXR1cmVzLFxuICAgICAgfTtcblxuICAgICAgY29uc3QgbWVzc2FnZSA9IG5ldyBDaXA4TWVzc2FnZShvcHRpb25zKTtcbiAgICAgIHNob3VsZC5leGlzdChtZXNzYWdlLmdldFNpZ25hdHVyZXMoKSk7XG4gICAgICBtZXNzYWdlLmdldFNpZ25hdHVyZXMoKS5zaG91bGQuZGVlcEVxdWFsKHNpZ25hdHVyZXMpO1xuICAgIH0pO1xuICB9KTtcblxuICBkZXNjcmliZSgndmFsaWRhdGVBbmRHZXRDb21tb25TZXR1cCcsIGZ1bmN0aW9uICgpIHtcbiAgICBpdCgnc2hvdWxkIHRocm93IGVycm9yIHdoZW4gcGF5bG9hZCBpcyBtaXNzaW5nJywgZnVuY3Rpb24gKCkge1xuICAgICAgY29uc3Qgb3B0aW9ucyA9IGNyZWF0ZURlZmF1bHRNZXNzYWdlT3B0aW9ucygpO1xuICAgICAgb3B0aW9ucy5wYXlsb2FkID0gdW5kZWZpbmVkIGFzIGFueTtcbiAgICAgIGNvbnN0IG1lc3NhZ2UgPSBuZXcgQ2lwOE1lc3NhZ2Uob3B0aW9ucyk7XG5cbiAgICAgIHNob3VsZC50aHJvd3MoKCkgPT4gKG1lc3NhZ2UgYXMgYW55KS52YWxpZGF0ZUFuZEdldENvbW1vblNldHVwKCksIC9QYXlsb2FkIGlzIHJlcXVpcmVkIHRvIGJ1aWxkIGEgQ0lQOCBtZXNzYWdlLyk7XG4gICAgfSk7XG5cbiAgICBpdCgnc2hvdWxkIHRocm93IGVycm9yIHdoZW4gc2lnbmVycyBhcmUgbWlzc2luZycsIGZ1bmN0aW9uICgpIHtcbiAgICAgIGNvbnN0IG9wdGlvbnMgPSBjcmVhdGVEZWZhdWx0TWVzc2FnZU9wdGlvbnMoKTtcbiAgICAgIG9wdGlvbnMuc2lnbmVycyA9IFtdO1xuICAgICAgY29uc3QgbWVzc2FnZSA9IG5ldyBDaXA4TWVzc2FnZShvcHRpb25zKTtcblxuICAgICAgc2hvdWxkLnRocm93cyhcbiAgICAgICAgKCkgPT4gKG1lc3NhZ2UgYXMgYW55KS52YWxpZGF0ZUFuZEdldENvbW1vblNldHVwKCksXG4gICAgICAgIC9BIHNpZ25lciBhZGRyZXNzIGlzIHJlcXVpcmVkIHRvIGJ1aWxkIGEgQ0lQOCBtZXNzYWdlL1xuICAgICAgKTtcbiAgICB9KTtcblxuICAgIGl0KCdzaG91bGQgcmV0dXJuIGFkZHJlc3MgQ0JPUiBieXRlcyBmb3IgdmFsaWQgaW5wdXQnLCBmdW5jdGlvbiAoKSB7XG4gICAgICBjb25zdCBtZXNzYWdlID0gbmV3IENpcDhNZXNzYWdlKGNyZWF0ZURlZmF1bHRNZXNzYWdlT3B0aW9ucygpKTtcbiAgICAgIGNvbnN0IHJlc3VsdCA9IChtZXNzYWdlIGFzIGFueSkudmFsaWRhdGVBbmRHZXRDb21tb25TZXR1cCgpO1xuXG4gICAgICBzaG91bGQuZXhpc3QocmVzdWx0KTtcbiAgICAgIHNob3VsZC5leGlzdChyZXN1bHQuYWRkcmVzc0Nib3JCeXRlcyk7XG4gICAgfSk7XG4gIH0pO1xuXG4gIGRlc2NyaWJlKCdnZXRTaWduYWJsZVBheWxvYWQnLCBmdW5jdGlvbiAoKSB7XG4gICAgaXQoJ3Nob3VsZCByZXR1cm4gc2lnbmFibGUgcGF5bG9hZCBhcyBidWZmZXInLCBhc3luYyBmdW5jdGlvbiAoKSB7XG4gICAgICBjb25zdCBtZXNzYWdlID0gbmV3IENpcDhNZXNzYWdlKGNyZWF0ZURlZmF1bHRNZXNzYWdlT3B0aW9ucygpKTtcbiAgICAgIGNvbnN0IHBheWxvYWQgPSBhd2FpdCBtZXNzYWdlLmdldFNpZ25hYmxlUGF5bG9hZCgpO1xuXG4gICAgICBzaG91bGQuZXhpc3QocGF5bG9hZCk7XG4gICAgICBzaG91bGQub2soQnVmZmVyLmlzQnVmZmVyKHBheWxvYWQpKTtcbiAgICB9KTtcbiAgfSk7XG5cbiAgZGVzY3JpYmUoJ2dldEJyb2FkY2FzdGFibGVTaWduYXR1cmVzJywgZnVuY3Rpb24gKCkge1xuICAgIGl0KCdzaG91bGQgcmV0dXJuIGVtcHR5IGFycmF5IHdoZW4gbm8gc2lnbmF0dXJlcyBleGlzdCcsIGZ1bmN0aW9uICgpIHtcbiAgICAgIGNvbnN0IG1lc3NhZ2UgPSBuZXcgQ2lwOE1lc3NhZ2UoY3JlYXRlRGVmYXVsdE1lc3NhZ2VPcHRpb25zKCkpO1xuICAgICAgY29uc3Qgc2lnbmF0dXJlcyA9IG1lc3NhZ2UuZ2V0QnJvYWRjYXN0YWJsZVNpZ25hdHVyZXMoKTtcblxuICAgICAgc2hvdWxkLmV4aXN0KHNpZ25hdHVyZXMpO1xuICAgICAgc2lnbmF0dXJlcy5zaG91bGQuYmUuYW4uQXJyYXkoKTtcbiAgICAgIHNpZ25hdHVyZXMuc2hvdWxkLmJlLmVtcHR5KCk7XG4gICAgfSk7XG5cbiAgICBpdCgnc2hvdWxkIGNvbnZlcnQgc2lnbmF0dXJlIHRvIENPU0UgZm9ybWF0JywgZnVuY3Rpb24gKCkge1xuICAgICAgY29uc3QgdGVzdFNpZ25hdHVyZTogU2lnbmF0dXJlID0ge1xuICAgICAgICBzaWduYXR1cmU6IEJ1ZmZlci5mcm9tKCd0ZXN0LXNpZ25hdHVyZScpLFxuICAgICAgICBwdWJsaWNLZXk6IHsgcHViOiBjaXA4VGVzdFJlc291cmNlcy5rZXlQYWlyLnB1YiB9LFxuICAgICAgfTtcblxuICAgICAgY29uc3Qgb3B0aW9ucyA9IHtcbiAgICAgICAgLi4uY3JlYXRlRGVmYXVsdE1lc3NhZ2VPcHRpb25zKCksXG4gICAgICAgIHNpZ25hdHVyZXM6IFt0ZXN0U2lnbmF0dXJlXSxcbiAgICAgIH07XG5cbiAgICAgIGNvbnN0IG1lc3NhZ2UgPSBuZXcgQ2lwOE1lc3NhZ2Uob3B0aW9ucyk7XG4gICAgICBjb25zdCBzaWduYXR1cmVzID0gbWVzc2FnZS5nZXRCcm9hZGNhc3RhYmxlU2lnbmF0dXJlcygpO1xuXG4gICAgICBzaG91bGQuZXhpc3Qoc2lnbmF0dXJlcyk7XG4gICAgICBzaWduYXR1cmVzLnNob3VsZC5iZS5hbi5BcnJheSgpO1xuICAgICAgc2lnbmF0dXJlcy5zaG91bGQuaGF2ZS5sZW5ndGgoMSk7XG5cbiAgICAgIHNob3VsZC5leGlzdChzaWduYXR1cmVzWzBdLnNpZ25hdHVyZSk7XG4gICAgICBzaG91bGQub2soQnVmZmVyLmlzQnVmZmVyKHNpZ25hdHVyZXNbMF0uc2lnbmF0dXJlKSk7XG4gICAgICBzaG91bGQuZXhpc3Qoc2lnbmF0dXJlc1swXS5wdWJsaWNLZXkpO1xuICAgICAgc2hvdWxkLmVxdWFsKHNpZ25hdHVyZXNbMF0ucHVibGljS2V5LnB1YiwgY2lwOFRlc3RSZXNvdXJjZXMua2V5UGFpci5wdWIpO1xuICAgIH0pO1xuXG4gICAgaXQoJ3Nob3VsZCB0aHJvdyB3aGVuIHZhbGlkYXRpb24gZmFpbHMnLCBmdW5jdGlvbiAoKSB7XG4gICAgICBjb25zdCB0ZXN0U2lnbmF0dXJlOiBTaWduYXR1cmUgPSB7XG4gICAgICAgIHNpZ25hdHVyZTogQnVmZmVyLmZyb20oJ3Rlc3Qtc2lnbmF0dXJlJyksXG4gICAgICAgIHB1YmxpY0tleTogeyBwdWI6IGNpcDhUZXN0UmVzb3VyY2VzLmtleVBhaXIucHViIH0sXG4gICAgICB9O1xuXG4gICAgICBjb25zdCBvcHRpb25zID0ge1xuICAgICAgICAuLi5jcmVhdGVEZWZhdWx0TWVzc2FnZU9wdGlvbnMoKSxcbiAgICAgICAgcGF5bG9hZDogdW5kZWZpbmVkIGFzIGFueSxcbiAgICAgICAgc2lnbmF0dXJlczogW3Rlc3RTaWduYXR1cmVdLFxuICAgICAgfTtcblxuICAgICAgY29uc3QgbWVzc2FnZSA9IG5ldyBDaXA4TWVzc2FnZShvcHRpb25zKTtcblxuICAgICAgc2hvdWxkLnRocm93cygoKSA9PiBtZXNzYWdlLmdldEJyb2FkY2FzdGFibGVTaWduYXR1cmVzKCksIC9QYXlsb2FkIGlzIHJlcXVpcmVkIHRvIGJ1aWxkIGEgQ0lQOCBtZXNzYWdlLyk7XG4gICAgfSk7XG4gIH0pO1xufSk7XG4iXX0=
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=cip8MessageBuilder.d.ts.map
@@ -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/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,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2lwOE1lc3NhZ2VCdWlsZGVyLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vdGVzdC91bml0L21lc3NhZ2VzL2NpcDgvY2lwOE1lc3NhZ2VCdWlsZGVyLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7O0FBQUEsb0RBQTRCO0FBQzVCLGtEQUEwQjtBQUMxQixtQ0FBZ0M7QUFDaEMsOENBQTRHO0FBRTVHLG9FQUFxRTtBQUNyRSx5Q0FBeUY7QUFDekYsbUVBQW9GO0FBRXBGLFFBQVEsQ0FBQyxvQkFBb0IsRUFBRTtJQUM3QixJQUFJLE9BQTJCLENBQUM7SUFDaEMsSUFBSSxPQUEyQixDQUFDO0lBQ2hDLE1BQU0sVUFBVSxHQUFHLEVBQUUsSUFBSSxFQUFFLE1BQU0sRUFBYyxDQUFDO0lBRWhELFVBQVUsQ0FBQztRQUNULE9BQU8sR0FBRyxlQUFLLENBQUMsYUFBYSxFQUFFLENBQUM7UUFDaEMsT0FBTyxHQUFHLElBQUksd0JBQWtCLENBQUMsVUFBVSxDQUFDLENBQUM7SUFDL0MsQ0FBQyxDQUFDLENBQUM7SUFFSCxTQUFTLENBQUM7UUFDUixPQUFPLENBQUMsT0FBTyxFQUFFLENBQUM7SUFDcEIsQ0FBQyxDQUFDLENBQUM7SUFFSCxRQUFRLENBQUMsYUFBYSxFQUFFO1FBQ3RCLEVBQUUsQ0FBQyxtREFBbUQsRUFBRTtZQUN0RCxNQUFNLE9BQU8sR0FBRyxJQUFJLHdCQUFrQixDQUFDLFVBQVUsQ0FBQyxDQUFDO1lBQ25ELGdCQUFNLENBQUMsS0FBSyxDQUFDLE9BQU8sQ0FBQyxDQUFDO1lBQ3RCLE9BQU8sQ0FBQyxPQUFPLEVBQUUsQ0FBQyxNQUFNLENBQUMsS0FBSyxDQUFDLDhCQUFtQixDQUFDLElBQUksQ0FBQyxDQUFDO1FBQzNELENBQUMsQ0FBQyxDQUFDO0lBQ0wsQ0FBQyxDQUFDLENBQUM7SUFFSCxRQUFRLENBQUMsT0FBTyxFQUFFO1FBQ2hCLEVBQUUsQ0FBQywwQ0FBMEMsRUFBRSxLQUFLO1lBQ2xELE1B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QkFBZ3FCLENBQ2pxQixDQUFDO1lBQ0osQ0FBQyxDQUFDLENBQUM7UUFDTCxDQUFDLENBQUMsQ0FBQztJQUNMLENBQUMsQ0FBQyxDQUFDO0FBQ0wsQ0FBQyxDQUFDLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgc2hvdWxkIGZyb20gJ3Nob3VsZCc7XG5pbXBvcnQgc2lub24gZnJvbSAnc2lub24nO1xuaW1wb3J0IHsgQnVmZmVyIH0gZnJvbSAnYnVmZmVyJztcbmltcG9ydCB7IEJyb2FkY2FzdGFibGVNZXNzYWdlLCBNZXNzYWdlU3RhbmRhcmRUeXBlLCBzZXJpYWxpemVTaWduYXR1cmVzLCBTaWduYXR1cmUgfSBmcm9tICdAYml0Z28vc2RrLWNvcmUnO1xuaW1wb3J0IHsgQmFzZUNvaW4gfSBmcm9tICdAYml0Z28vc3RhdGljcyc7XG5pbXBvcnQgeyBjaXA4VGVzdFJlc291cmNlcyB9IGZyb20gJy4uLy4uLy4uL3Jlc291cmNlcy9jaXA4UmVzb3VyY2VzJztcbmltcG9ydCB7IENpcDhNZXNzYWdlLCBDaXA4TWVzc2FnZUJ1aWxkZXIsIE1lc3NhZ2VCdWlsZGVyRmFjdG9yeSB9IGZyb20gJy4uLy4uLy4uLy4uL3NyYyc7XG5pbXBvcnQgeyBidWZmZXJUb0Nvc2VPYmplY3RzT3V0cHV0IH0gZnJvbSAnLi4vLi4vLi4vLi4vc3JjL2xpYi9tZXNzYWdlcy9jaXA4L3V0aWxzJztcblxuZGVzY3JpYmUoJ0NpcDhNZXNzYWdlQnVpbGRlcicsIGZ1bmN0aW9uICgpIHtcbiAgbGV0IHNhbmRib3g6IHNpbm9uLlNpbm9uU2FuZGJveDtcbiAgbGV0IGJ1aWxkZXI6IENpcDhNZXNzYWdlQnVpbGRlcjtcbiAgY29uc3QgY29pbkNvbmZpZyA9IHsgbmFtZTogJ3RhZGEnIH0gYXMgQmFzZUNvaW47XG5cbiAgYmVmb3JlRWFjaChmdW5jdGlvbiAoKSB7XG4gICAgc2FuZGJveCA9IHNpbm9uLmNyZWF0ZVNhbmRib3goKTtcbiAgICBidWlsZGVyID0gbmV3IENpcDhNZXNzYWdlQnVpbGRlcihjb2luQ29uZmlnKTtcbiAgfSk7XG5cbiAgYWZ0ZXJFYWNoKGZ1bmN0aW9uICgpIHtcbiAgICBzYW5kYm94LnJlc3RvcmUoKTtcbiAgfSk7XG5cbiAgZGVzY3JpYmUoJ2NvbnN0cnVjdG9yJywgZnVuY3Rpb24gKCkge1xuICAgIGl0KCdzaG91bGQgY3JlYXRlIGEgYnVpbGRlciB3aXRoIGNvcnJlY3QgbWVzc2FnZSB0eXBlJywgZnVuY3Rpb24gKCkge1xuICAgICAgY29uc3QgYnVpbGRlciA9IG5ldyBDaXA4TWVzc2FnZUJ1aWxkZXIoY29pbkNvbmZpZyk7XG4gICAgICBzaG91bGQuZXhpc3QoYnVpbGRlcik7XG4gICAgICBidWlsZGVyLmdldFR5cGUoKS5zaG91bGQuZXF1YWwoTWVzc2FnZVN0YW5kYXJkVHlwZS5DSVA4KTtcbiAgICB9KTtcbiAgfSk7XG5cbiAgZGVzY3JpYmUoJ2J1aWxkJywgZnVuY3Rpb24gKCkge1xuICAgIGl0KCdzaG91bGQgdGhyb3cgZXJyb3IgaWYgcGF5bG9hZCBpcyBub3Qgc2V0JywgYXN5bmMgZnVuY3Rpb24gKCkge1xuICAgICAgYXdhaXQgc2hvdWxkKGJ1aWxkZXIuYnVpbGQoKSkuYmUucmVqZWN0ZWRXaXRoKCdNZXNzYWdlIHBheWxvYWQgbXVzdCBiZSBzZXQgYmVmb3JlIGJ1aWxkaW5nIHRoZSBtZXNzYWdlJyk7XG4gICAgfSk7XG5cbiAgICBpdCgnc2hvdWxkIGNyZWF0ZSBhIENJUDggbWVzc2FnZSB3aXRoIGNvcnJlY3QgcHJvcGVydGllcycsIGFzeW5jIGZ1bmN0aW9uICgpIHtcbiAgICAgIGNvbnN0IHBheWxvYWQgPSBjaXA4VGVzdFJlc291cmNlcy5tZXNzYWdlcy5zaW1wbGU7XG4gICAgICBjb25zdCBzaWduZXIgPSBjaXA4VGVzdFJlc291cmNlcy5hZGRyZXNzLmJlY2gzMjtcbiAgICAgIGNvbnN0IG1ldGFkYXRhID0geyBleHRyYTogJ2RhdGEnIH07XG5cbiAgICAgIGJ1aWxkZXIuc2V0UGF5bG9hZChwYXlsb2FkKS5hZGRTaWduZXIoc2lnbmVyKS5zZXRNZXRhZGF0YShtZXRhZGF0YSk7XG5cbiAgICAgIGNvbnN0IG1lc3NhZ2UgPSBhd2FpdCBidWlsZGVyLmJ1aWxkKCk7XG5cbiAgICAgIHNob3VsZC5leGlzdChtZXNzYWdlKTtcbiAgICAgIG1lc3NhZ2Uuc2hvdWxkLmJlLmluc3RhbmNlb2YoQ2lwOE1lc3NhZ2UpO1xuICAgICAgbWVzc2FnZS5nZXRQYXlsb2FkKCkuc2hvdWxkLmVxdWFsKHBheWxvYWQpO1xuICAgICAgbWVzc2FnZS5nZXRTaWduZXJzKCkuc2hvdWxkLmRlZXBFcXVhbChbc2lnbmVyXSk7XG4gICAgICBjb25zdCBtZXNzYWdlTWV0YWRhdGEgPSBtZXNzYWdlLmdldE1ldGFkYXRhKCk7XG4gICAgICBzaG91bGQuZXhpc3QobWVzc2FnZU1ldGFkYXRhKTtcbiAgICAgIG1lc3NhZ2VNZXRhZGF0YSEuc2hvdWxkLmNvbnRhaW5FcWwobWV0YWRhdGEpO1xuICAgICAgbWVzc2FnZU1ldGFkYXRhIS5zaG91bGQuY29udGFpbkVxbCh7IGVuY29kaW5nOiAndXRmOCcgfSk7XG4gICAgfSk7XG5cbiAgICBpdCgnc2hvdWxkIGluY2x1ZGUgc2lnbmF0dXJlcyB3aGVuIHByb3ZpZGVkJywgYXN5bmMgZnVuY3Rpb24gKCkge1xuICAgICAgY29uc3QgcGF5bG9hZCA9IGNpcDhUZXN0UmVzb3VyY2VzLm1lc3NhZ2VzLnNpbXBsZTtcbiAgICAgIGNvbnN0IHNpZ25lciA9IGNpcDhUZXN0UmVzb3VyY2VzLmFkZHJlc3MuYmVjaDMyO1xuICAgICAgY29uc3Qgc2lnbmF0dXJlczogU2lnbmF0dXJlW10gPSBbXG4gICAgICAgIHtcbiAgICAgICAgICBzaWduYXR1cmU6IEJ1ZmZlci5mcm9tKCd0ZXN0LXNpZ25hdHVyZScpLFxuICAgICAgICAgIHB1YmxpY0tleTogeyBwdWI6IGNpcDhUZXN0UmVzb3VyY2VzLmtleVBhaXIucHViIH0gYXMgYW55LFxuICAgICAgICB9LFxuICAgICAgXTtcblxuICAgICAgYnVpbGRlci5zZXRQYXlsb2FkKHBheWxvYWQpLmFkZFNpZ25lcihzaWduZXIpLnNldFNpZ25hdHVyZXMoc2lnbmF0dXJlcyk7XG5cbiAgICAgIGNvbnN0IG1lc3NhZ2UgPSBhd2FpdCBidWlsZGVyLmJ1aWxkKCk7XG5cbiAgICAgIHNob3VsZC5leGlzdChtZXNzYWdlKTtcbiAgICAgIG1lc3NhZ2UuZ2V0U2lnbmF0dXJlcygpLnNob3VsZC5kZWVwRXF1YWwoc2lnbmF0dXJlcyk7XG4gICAgfSk7XG4gIH0pO1xuXG4gIGRlc2NyaWJlKCdmcm9tQnJvYWRjYXN0Rm9ybWF0JywgZnVuY3Rpb24gKCkge1xuICAgIGl0KCdzaG91bGQgdGhyb3cgZXJyb3IgaWYgbWVzc2FnZSB0eXBlIGlzIGludmFsaWQnLCBhc3luYyBmdW5jdGlvbiAoKSB7XG4gICAgICBjb25zdCBicm9hZGNhc3RNZXNzYWdlOiBCcm9hZGNhc3RhYmxlTWVzc2FnZSA9IHtcbiAgICAgICAgdHlwZTogTWVzc2FnZVN0YW5kYXJkVHlwZS5VTktOT1dOIGFzIGFueSwgLy8gSW5jb3JyZWN0IHR5cGVcbiAgICAgICAgcGF5bG9hZDogJ3Rlc3QtcGF5bG9hZCcsXG4gICAgICAgIHNlcmlhbGl6ZWRTaWduYXR1cmVzOiBzZXJpYWxpemVTaWduYXR1cmVzKFtdKSxcbiAgICAgICAgc2lnbmVyczogW2NpcDhUZXN0UmVzb3VyY2VzLmFkZHJlc3MuYmVjaDMyXSxcbiAgICAgICAgbWV0YWRhdGE6IHt9LFxuICAgICAgfTtcbiAgICAgIGF3YWl0IHNob3VsZChidWlsZGVyLmZyb21Ccm9hZGNhc3RGb3JtYXQoYnJvYWRjYXN0TWVzc2FnZSkpLmJlLnJlamVjdGVkV2l0aChcbiAgICAgICAgYEludmFsaWQgbWVzc2FnZSB0eXBlLCBleHBlY3RlZCAke01lc3NhZ2VTdGFuZGFyZFR5cGUuQ0lQOH1gXG4gICAgICApO1xuICAgIH0pO1xuXG4gICAgaXQoJ3Nob3VsZCByZWNyZWF0ZSBtZXNzYWdlIGZyb20gYnJvYWRjYXN0IGZvcm1hdCcsIGFzeW5jIGZ1bmN0aW9uICgpIHtcbiAgICAgIGNvbnN0IHNpZ25hdHVyZXM6IFNpZ25hdHVyZVtdID0gW1xuICAgICAgICB7XG4gICAgICAgICAgc2lnbmF0dXJlOiBCdWZmZXIuZnJvbSgndGVzdC1zaWduYXR1cmUnKSxcbiAgICAgICAgICBwdWJsaWNLZXk6IHsgcHViOiBjaXA4VGVzdFJlc291cmNlcy5rZXlQYWlyLnB1YiB9IGFzIGFueSxcbiAgICAgICAgfSxcbiAgICAgIF07XG5cbiAgICAgIGNvbnN0IGJyb2FkY2FzdE1lc3NhZ2U6IEJyb2FkY2FzdGFibGVNZXNzYWdlID0ge1xuICAgICAgICB0eXBlOiBNZXNzYWdlU3RhbmRhcmRUeXBlLkNJUDgsXG4gICAgICAgIHBheWxvYWQ6IGNpcDhUZXN0UmVzb3VyY2VzLm1lc3NhZ2VzLnNpbXBsZSxcbiAgICAgICAgc2VyaWFsaXplZFNpZ25hdHVyZXM6IHNlcmlhbGl6ZVNpZ25hdHVyZXMoc2lnbmF0dXJlcyksXG4gICAgICAgIHNpZ25lcnM6IFtjaXA4VGVzdFJlc291cmNlcy5hZGRyZXNzLmJlY2gzMl0sXG4gICAgICAgIG1ldGFkYXRhOiB7IGV4dHJhOiAnZGF0YScgfSxcbiAgICAgIH07XG5cbiAgICAgIGNvbnN0IG1lc3NhZ2UgPSBhd2FpdCBidWlsZGVyLmZyb21Ccm9hZGNhc3RGb3JtYXQoYnJvYWRjYXN0TWVzc2FnZSk7XG5cbiAgICAgIHNob3VsZC5leGlzdChtZXNzYWdlKTtcbiAgICAgIG1lc3NhZ2Uuc2hvdWxkLmJlLmluc3RhbmNlb2YoQ2lwOE1lc3NhZ2UpO1xuICAgICAgbWVzc2FnZS5nZXRQYXlsb2FkKCkuc2hvdWxkLmVxdWFsKGJyb2FkY2FzdE1lc3NhZ2UucGF5bG9hZCk7XG4gICAgICBtZXNzYWdlLmdldFNpZ25lcnMoKS5zaG91bGQuZGVlcEVxdWFsKGJyb2FkY2FzdE1lc3NhZ2Uuc2lnbmVycyk7XG4gICAgICBjb25zdCBtZXNzYWdlTWV0YWRhdGEgPSBtZXNzYWdlLmdldE1ldGFkYXRhKCk7XG4gICAgICBzaG91bGQuZXhpc3QobWVzc2FnZU1ldGFkYXRhKTtcbiAgICAgIG1lc3NhZ2VNZXRhZGF0YSEuc2hvdWxkLmNvbnRhaW5FcWwoYnJvYWRjYXN0TWVzc2FnZS5tZXRhZGF0YSk7XG4gICAgICBtZXNzYWdlTWV0YWRhdGEhLnNob3VsZC5jb250YWluRXFsKHsgZW5jb2Rpbmc6ICd1dGY4JyB9KTtcblxuICAgICAgLy8gQ2hlY2sgc2lnbmF0dXJlcyB3ZXJlIGRlc2VyaWFsaXplZCBjb3JyZWN0bHlcbiAgICAgIG1lc3NhZ2UuZ2V0U2lnbmF0dXJlcygpLnNob3VsZC5oYXZlLmxlbmd0aChzaWduYXR1cmVzLmxlbmd0aCk7XG4gICAgICBjb25zdCBtZXNzYWdlU2lnbmF0dXJlID0gbWVzc2FnZS5nZXRTaWduYXR1cmVzKClbMF07XG4gICAgICBtZXNzYWdlU2lnbmF0dXJlLnNpZ25hdHVyZS5zaG91bGQuZGVlcEVxdWFsKHNpZ25hdHVyZXNbMF0uc2lnbmF0dXJlKTtcbiAgICAgIG1lc3NhZ2VTaWduYXR1cmUucHVibGljS2V5LnNob3VsZC5kZWVwRXF1YWwoc2lnbmF0dXJlc1swXS5wdWJsaWNLZXkpO1xuICAgIH0pO1xuXG4gICAgZGVzY3JpYmUoJ2Zyb21Ccm9hZGNhc3RTdHJpbmcnLCBmdW5jdGlvbiAoKSB7XG4gICAgICBpdCgnc2hvdWxkIHBhcnNlIGJyb2FkY2FzdGFibGUgc3RyaW5nIGFuZCByZXR1cm4gY29ycmVjdCBidWlsZGVyIHR5cGUnLCBhc3luYyBmdW5jdGlvbiAoKSB7XG4gICAgICAgIGNvbnN0IGJyb2FkY2FzdEhleCA9XG4gICAgICAgICAgJzdiMjI3NDc5NzA2NTIyM2EyMjQzNDk1MDM4MjIyYzIyNzA2MTc5NmM2ZjYxNjQyMjNhMjI1MzU0NDE1MjIwMzczMjM4MzIzNTM1MzQzNTIwNzQ2ZjIwNjE2NDY0NzIzMTcxNzg3NjM5NjUzOTdhNzAzNTM1Nzg3NjMzMzYzMDc3Njc2ODZjMzgzMDM2NjQzMDMyNzkzMzM1MzgzOTM5N2E2YjZiNzEzMjcyNjg3NDY2Nzg3NjM3NzgzNjc3Nzk2Mzc0NmEzMjc5NzI2NjY3NzY2NTcyMzUzNzc1MzMzMDM3Nzc2YzM1MzYzNzM1NjY3MjY3NzczMjMyMzk2NDc2NzEzNTM4Nzc2YjZhNzY2NTc1NjQzNTc1NzE2NjZlNmQ3NDY1N2EyMDMzMzE2MTM2NjI2MTYyMzUzMDYxMzgzNDYyMzgzNDMzMzk2MTY0NjM2NjYyMzczODM2NjI2MjMyMzAzMjMwNjYzNjM4MzAzNzY1MzY2NTM4NjY2NDYxMzYzMjM5NjIzNDMyMzQzMTMxMzA2NjYzMzc2MjYyMzE2MzM2NjIzODYyMjIyYzIyNzM2NTcyNjk2MTZjNjk3YTY1NjQ1MzY5Njc2ZTYxNzQ3NTcyNjU3MzIyM2E1YjdiMjI3MDc1NjI2YzY5NjM0YjY1NzkyMjNhMjI2NTYzMzg2MTM0NjYzMDM0MzUzNDMwMzc2NDMxMzEzNDM1MzczNjY2Mzk2MzYyMzAzMzMxMzgzMjY2MzU2NDYzNjE2MzM4NjE2NTYyNjQzNDMyMzIzMjMyMzMzMjMxMzYzODM0MzMzMjM0MzEzOTMwNjUzOTMyMzczNzM4MzQzMTIyMmMyMjczNjk2NzZlNjE3NDc1NzI2NTIyM2EyMjZmNmU0YTc0NTk1NzM1MzE1OTU3Nzg0NDYyMzM0ZTZjNTUzMjZjNmU2MjZhNDY0OTVhNTg2ODM1NDE3MDM0MzQ0ZTQ0NTUzNDRlNDQ1YTY4NGQ2YTQxNzg0ZDZhNjMzMjRlN2E1OTc4NGU2YTUxMzI0ZTQ0NjM3OTRlNmE1NTMzNGQ3YTYzN2E0ZTU0Njc3YTRmNTQ0MTc4NGU0NDU1Nzg0ZDU3NTI2YzRkN2E1YTZkNGU1NDRhNjk1OTU3NTY2OTU5MzI1OTMxNGU2YTRkN2E0ZDdhNmIzMzRmNTc0OTc5NTk3YTY3MzI1YTQ0NGU2YzVhNmE0OTMyNGU0NzQ5MzA1YTU0NjQ2ODRkNDc0OTM0NTk2YTZiMzQ1YTU0NDE3ODRkNmE0ZDMyNTk1NDQ1MzA0ZTU0NDU3ODVhNDc1NTdhNGU2ZDU5MzE0ZDZkNGE2ODVhNTc0YTZhNWE2YTU1MzI0ZDdhNGQ3YTRmNTQ2MzM1NTk2YTRhNmE0ZjQ0NWE2YjRkMzI1NjZkNGQ2YTU5MzA1OTZhNTI2YzRlMzI0NTc3NTk2YTY4Njk0ZjU0Njg2YzRkNDQ0NTc5NGQ3YTVhNjg0ZDU3NDU3ODRlNmE1OTMyNGY0NDU5Nzg0ZTdhNGQzMjRmNDQ1OTMxNGU2YTUyNmQ0ZTQ0NTUzNDU5NmE2YjMxNGQ3YTU1MzA0ZTQ0NDUzMTRkNmE0OTc3NGQ3YTYzN2E0ZDZhNGQzNDRkN2E0OTdhNGU1NDRkMzE0ZDdhNTE3YTRlNTQ0OTc3NGU3YTUxMzI1YTZhNDk3NzRlNmE0NTMyNGU0NDU5MzA0ZTdhNDk3YTRkNTQ2Mzc4NGU3YTY3MzM0ZTZhNGQzNTRlNmE1NTdhNGY1NDY0Njg0ZTdhNDE3YTRlNTQ0ZDMxNGU3YTY3MzM0ZTZhNGQ3YTRkN2E1OTdhNGQ0NDYzMzM0ZTZhNjMzMjRmNDQ1YTZhNGQ3YTY3N2E0ZDQ0NGQzMjRlNmE1MTdhNGQ0NDRkNzk0ZTdhNmI3YTRkN2E0ZDMxNGQ3YTY3N2E0ZjU0NGQzNTRlMzI0NTMyNTk2YTVhNjk0ZTdhNDU3YTRkNmE2Mzc5NGU2YTY3MzM0ZTQ0NTkzMjRlN2E2NzMzNGU2YTRkMzM0ZTdhNjc3YTRlNmE2MzMzNGU3YTZiMzI0ZDdhNjMzMDRlNmQ0NTdhNGQ2YTYzMzU0ZTdhNDkzMjRlNmE1OTMzNGU3YTU5MzI0ZTU0NjM3OTRkN2E1NTdhNGU3YTYzMzE0ZDdhNGQ3YTRkNDQ0ZDMzNGU3YTYzMzI1OTdhNGQzMTRkN2E1OTdhNGU3YTRkMzE0ZTZhNTkzMzRkNmE1OTMzNGU3YTYzN2E0ZDZhNGQ3OTRkN2E2YjMyNGU0NDYzMzI0ZTdhNDU3YTRlNTQ0ZDM0NGU3YTYzMzI1OTZhNWE2ODRlN2E1OTMyNGU1NDYzMzE0ZTZhNTE3YTRlNTQ2MzMxNGU3YTQ1MzI0ZTZhNWE2YzRlNmQ1MTMzNGU0NDU5MzE0ZTMyNDU3OTRkNDQ0ZDdhNGQ3YTQ1MzI0ZDU0NGQzMjRlNmE0OTMyNGQ1NDU5Nzk0ZDdhNTU3YTRkNDQ1OTc4NGQ3YTY3N2E0ZTQ0NTk3OTRkN2E2NzdhNGU0NDRkN2E0ZDdhNmIzMjRkNTQ1OTMwNGU2YTRkMzI0ZTZhNTk3OTRkN2E2MzdhNGY0NDRkMzI0ZTZhNDkzMjRkNmE0ZDc5NGQ3YTQxN2E0ZDZhNGQ3NzRlNmE1OTdhNGU2YTRkMzQ0ZDdhNDE3YTRlN2E1OTMxNGQ3YTU5MzI0ZTU0NGQzNDRlNmE1OTMyNGU0NDU5Nzg0ZDdhNTk3YTRkNmE0ZDM1NGU2YTQ5N2E0ZTQ0NGQ3OTRkN2E1MTdhNGQ1NDRkNzg0ZDdhNDEzMjRlNmE1OTdhNGQ3YTYzMzI0ZDZhNTk3OTRkN2E0NTMyNGQ3YTRkMzI0ZTZhNDk3YTRmNDQ1OTc5NGU1NDY3MzA0ZDQ0NTY2YzVhNTQ2NzMzNWE0NDU1Nzg0ZjU0NTY2ODU5NTQ0YTZiNWE1NDZiMzQ0ZDMyNTE3OTVhNTQ2MzMyNTk3YTZjNmM0ZjU0NDI2YTRkNDc1YTZjNTk3YTU5Nzk0ZTMyNDY2ZDRmNTQ0OTMwNWE0NzQ1N2E0ZjU0NTEzMzRmNDQ0MjZiNTk2YTZjNjg0ZjQ0NWE2ZDU5NTQ2NzM1NGU0NDYzNzc1YTZhNGE2YzU5NTc1NTc3NGQ3YTRkMzA1YTU0NjQ2YjRkNmQ0OTM0NGU2YTQxNzc1OTZhNWE2OTRlNDQ0NTM1NGU2YTY4NmM0ZDU0NTI2YzU5NmE0OTMxNTk2YTUyNjk0ZjU3NTkzMTRlNTQ1MTM1NGQ1NDRlNmE1OTZhNGE2YTVhNTQ0MTc5NWE2ZDU1Nzg0ZTQ0NjM3OTRlNDQ0ZDM0NWE1NDRkNzg1YTZhNDI2ZDYzNDczMTY4NjI2ZTU2Njg2MjQ1NGU3NjYzMzI1NjRjNWE1ODZjNDk1YTU4NjgzNDU2NDc0NTMwNGQ0NDQ1Nzc0ZDU0NDE3YTRkNmE2Mzc5NGQ0NDQxMzI0ZDZhNDUzMTRmNDQ0OTc3NWE1NzRkMzQ1OTU0NTI2ZDRkNDQ1MTMxNGU0NDQxMzM1YTQ0NDU3ODRlNDQ1NTMzNGU2ZDU5MzU1OTMyNDk3NzRkN2E0NTM0NGQ2ZDU5MzE1YTQ3NGU2ODU5N2E2ODY4NWE1NzRhNmI0ZTQ0NDk3OTRkNmE0OTdhNGQ2YTQ1MzI0ZjQ0NTE3YTRkNmE1MTc4NGY1NDQyNmM0ZjU0NDkzMzRlN2E2NzMwNGQ1MTNkM2QyMjdkNWQyYzIyNzM2OTY3NmU2NTcyNzMyMjNhNWIyMjYxNjQ2NDcyMzE3MTM5N2EzMzcyNjgzMzZiMzczNTM0MzY2MTMwMzgzNDc2NzY2NTY1MzA3ODY1NzY3MzZkNjYzNzM3NjY2YTc0NjY2NTYxNzE2ODdhNzU2Mzc1NzE2NjcyNjQ2NzMyMzk3YTM4MzA3MjY0NjE2Njc0MzQzNjM3MzAzMjYzNjU2ZTZhMzc2NDZhNjU3MDZiNmU2MTc1NmU3OTZiNmU2ZTM2NzA3NzM5NjUzMzYzNzE2YTc4MzY3MzczNzk2MzMzNzM3OTM3MjI1ZDJjMjI2ZDY1NzQ2MTY0NjE3NDYxMjIzYTdiMjI2NTZlNjM2ZjY0Njk2ZTY3MjIzYTIyNzU3NDY2MzgyMjdkMmMyMjczNjk2NzZlNjE2MjZjNjU1MDYxNzk2YzZmNjE2NDIyM2EyMjY4NDc3MDU0NjE1NzY0NzU1OTU4NTIzMTYzNmQ1NTc4NTc0NTYxNjk0MTUzNjQ2ZTU5NTc1MjZiNjM2ZDU2N2E2MzMxNjczNTQxNTU1NTUyMzM2YTYyMzE0YjM2MzYzODM5NTc0ZDdhNmMzNTczNzM2ODc0NTA3NjRhNmI3NDRmNjU2Nzc1NGM2ZDRmNDE1MzRlNzE0NjQ2NDU2NDM0MzIzOTUzNzU3NTc2NTA1NjZhNGQzNTY1NjI0YzQ5NjI1NDM3Nzk1YTRjNTQ2ZTZmNGM2OTM1NmE2NzQ1NmE2MTY4NTE0NjY5MzU1NTMxNTI0MjU1Njk0MTMzNGQ2YTY3Nzk0ZTU0NTUzMDRlNTM0MjMwNjI3OTQyNjg1YTQ3NTI3OTRkNTg0NjM0NjQ2YTZjNmM0ZjU4NzA3NzRlNTQ1NjM0NjQ2YTRkMzI0ZDQ4NjQ2ZTYxNDc3NzM0NGQ0NDVhNmI0ZDQ0NGEzNTRkN2E1NTM0NGY1NDZjMzY2MTMyNzQ3ODRkNmU0YTZmNjQ0NzVhMzQ2NDZhNjQzNDRlNmU2NDM1NTkzMzUyNzE0ZDZlNmM3OTVhNmQ2NDMyNWE1ODQ5MzE0ZTMzNTU3YTRkNDQ2NDMzNjI0NDU1MzI0ZTdhNTY2ZDYzNmQ2NDMzNGQ2YTQ5MzU1YTQ4NWE3ODRlNTQ2ODMzNjEzMjcwMzI1YTU4NTY2YjRlNTg1Njc4NWE2ZDM1NzQ2NDQ3NTYzNjQ5NDQ0ZDc4NTk1NDVhNjk1OTU3NDkzMTRkNDc0NTM0NGU0NzQ5MzQ0ZTQ0NGQzNTU5NTc1MjZhNWE2ZDQ5MzM0ZjQ0NWE2OTU5NmE0OTc3NGQ2YTQyNmQ0ZTZhNjc3NzRlMzI1NTMyNWE1NDY4NmQ1YTQ3NDUzMjRkNmE2YzY5NGU0NDQ5MzA0ZDU0NDU3NzVhNmQ0ZDMzNTk2ZDQ5Nzg1OTdhNWE2OTRmNDc0OTNkMjI3ZCc7XG4gICAgICAgIGNvbnN0IGNvaW5Db25maWcgPSB7IG5hbWU6ICdhZGEnIH0gYXMgQmFzZUNvaW47XG4gICAgICAgIGNvbnN0IGZhY3RvcnkgPSBuZXcgTWVzc2FnZUJ1aWxkZXJGYWN0b3J5KGNvaW5Db25maWcpO1xuICAgICAgICBjb25zdCBidWlsZGVyID0gZmFjdG9yeS5mcm9tQnJvYWRjYXN0U3RyaW5nKGJyb2FkY2FzdEhleCk7XG4gICAgICAgIGNvbnN0IG1lc3NhZ2UgPSBhd2FpdCBidWlsZGVyLmJ1aWxkKCk7XG5cbiAgICAgICAgY29uc3QgcGF5bG9hZCA9IG1lc3NhZ2UuZ2V0UGF5bG9hZCgpO1xuICAgICAgICBjb25zdCBwYXlsb2FkUGFydHMgPSBwYXlsb2FkLnNwbGl0KCcgJyk7XG4gICAgICAgIGNvbnN0IGFkZHJlc3MgPSBtZXNzYWdlLmdldFNpZ25lcnMoKVswXTtcbiAgICAgICAgYWRkcmVzcy5zaG91bGQuZXF1YWwoXG4gICAgICAgICAgJ2FkZHIxcTl6M3JoM2s3NTQ2YTA4NHZ2ZWUweGV2c21mNzdmanRmZWFxaHp1Y3VxZnJkZzI5ejgwcmRhZnQ0NjcwMmNlbmo3ZGplcGtuYXVueWtubjZwdzllM2Nxang2c3N5YzNzeTcnXG4gICAgICAgICk7XG4gICAgICAgIGNvbnN0IGRlc3RpbmF0aW9uQWRkcmVzcyA9IHBheWxvYWRQYXJ0c1szXTtcbiAgICAgICAgZGVzdGluYXRpb25BZGRyZXNzLnNob3VsZC5lcXVhbChcbiAgICAgICAgICAnYWRkcjFxeHY5ZTl6cDU1eHYzNjB3Z2hsODA2ZDAyeTM1ODk5emtrcTJyaHRmeHY3eDZ3eWN0ajJ5cmZndmVyNTd1MzA3d2w1Njc1ZnJndzIyOWR2cTU4d2tqdmV1ZDV1cWZubXRleidcbiAgICAgICAgKTtcbiAgICAgICAgY29uc3QgYW1vdW50ID0gTnVtYmVyKHBheWxvYWRQYXJ0c1sxXSk7XG4gICAgICAgIGFtb3VudC5zaG91bGQuZXF1YWwoNzI4MjU1NDUpO1xuXG4gICAgICAgIGNvbnN0IHNpZ25hdHVyZSA9IG1lc3NhZ2UuZ2V0U2lnbmF0dXJlcygpWzBdLnNpZ25hdHVyZTtcbiAgICAgICAgY29uc3QgcHVibGljS2V5SGV4ID0gbWVzc2FnZS5nZXRTaWduYXR1cmVzKClbMF0ucHVibGljS2V5LnB1YjtcbiAgICAgICAgcHVibGljS2V5SGV4LnNob3VsZC5lcXVhbCgnZWM4YTRmMDQ1NDA3ZDExNDU3NmY5Y2IwMzE4MmY1ZGNhYzhhZWJkNDIyMjIzMjE2ODQzMjQxOTBlOTI3Nzg0MScpO1xuXG4gICAgICAgIGNvbnN0IGNvc2VPYmplY3RzT3V0cHV0ID0gYXdhaXQgYnVmZmVyVG9Db3NlT2JqZWN0c091dHB1dChzaWduYXR1cmUpO1xuICAgICAgICBjb25zdCBjb3NlS2V5ID0gY29zZU9iamVjdHNPdXRwdXQubWFudWFsQ29zZUtleUhleDtcbiAgICAgICAgY29zZUtleS5zaG91bGQuZXF1YWwoJ2E0MDEwMTAzMjcyMDA2MjE1ODIwZWM4YTRmMDQ1NDA3ZDExNDU3NmY5Y2IwMzE4MmY1ZGNhYzhhZWJkNDIyMjIzMjE2ODQzMjQxOTBlOTI3Nzg0MScpO1xuICAgICAgICBjb25zdCBjb3NlU2lnbjEgPSBjb3NlT2JqZWN0c091dHB1dC5tYW51YWxDb3NlU2lnbjFIZXg7XG4gICAgICAgIGNvc2VTaWduMS5zaG91bGQuZXF1YWwoXG4gICAgICAgICAgJzg0NTg0NmEyMDEyNzY3NjE2NDY0NzI2NTczNzM1ODM5MDE0NTExZGUzNmY1MmJhZWJjZjU2MzMzOTc5YjJjODZkM2VmMjY0YjRlN2EwYjhiOThlMDEyMzZhMTQ1MTFkZTM2ZjUyYmFlYmNmNTYzMzM5NzliMmM4NmQzZWYyNjRiNGU3YTBiOGI5OGUwMTIzNmExYTE2NjY4NjE3MzY4NjU2NGY0NThiOTUzNTQ0MTUyMjAzNzMyMzgzMjM1MzUzNDM1MjA3NDZmMjA2MTY0NjQ3MjMxNzE3ODc2Mzk2NTM5N2E3MDM1MzU3ODc2MzMzNjMwNzc2NzY4NmMzODMwMzY2NDMwMzI3OTMzMzUzODM5Mzk3YTZiNmI3MTMyNzI2ODc0NjY3ODc2Mzc3ODM2Nzc3OTYzNzQ2YTMyNzk3MjY2Njc3NjY1NzIzNTM3NzUzMzMwMzc3NzZjMzUzNjM3MzU2NjcyNjc3NzMyMzIzOTY0NzY3MTM1Mzg3NzZiNmE3NjY1NzU2NDM1NzU3MTY2NmU2ZDc0NjU3YTIwMzMzMTYxMzY2MjYxNjIzNTMwNjEzODM0NjIzODM0MzMzOTYxNjQ2MzY2NjIzNzM4MzY2MjYyMzIzMDMyMzA2NjM2MzgzMDM3NjUzNjY1Mzg2NjY0NjEzNjMyMzk2MjM0MzIzNDMxMzEzMDY2NjMzNzYyNjIzMTYzMzY2MjM4NjI1ODQwNWVlODdkNTE5NWFhMmRlOTgzZDJlNzZjOWU5MGMwZmVjNjI3YWY5MjRkYTM5NDc4MGRiOWE4NmZhODk0NzBmMmVhZTAzMzRlN2QyYjg2MDBiNmI0MTk2OGUxNGViMjViNGI5ZjU1NDkxM2NiMmNlMDJmZTE0NzI0MzhlMzFmMGYnXG4gICAgICAgICk7XG4gICAgICB9KTtcbiAgICB9KTtcbiAgfSk7XG59KTtcbiJdfQ==
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=utils.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"utils.d.ts","sourceRoot":"","sources":["../../../../../test/unit/messages/cip8/utils.ts"],"names":[],"mappings":""}