@bitgo-beta/sdk-coin-baby 1.0.1-beta.81 → 1.0.1-beta.811

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 (77) hide show
  1. package/dist/src/baby.d.ts +2 -1
  2. package/dist/src/baby.d.ts.map +1 -1
  3. package/dist/src/baby.js +3 -2
  4. package/dist/src/lib/BabylonTransaction.d.ts +9 -0
  5. package/dist/src/lib/BabylonTransaction.d.ts.map +1 -0
  6. package/dist/src/lib/BabylonTransaction.js +87 -0
  7. package/dist/src/lib/CustomTransactionBuilder.d.ts +14 -0
  8. package/dist/src/lib/CustomTransactionBuilder.d.ts.map +1 -0
  9. package/dist/src/lib/CustomTransactionBuilder.js +37 -0
  10. package/dist/src/lib/EpochedStakingActivateBuilder.d.ts +7 -0
  11. package/dist/src/lib/EpochedStakingActivateBuilder.d.ts.map +1 -0
  12. package/dist/src/lib/EpochedStakingActivateBuilder.js +48 -0
  13. package/dist/src/lib/EpochedStakingDeactivateBuilder.d.ts +7 -0
  14. package/dist/src/lib/EpochedStakingDeactivateBuilder.d.ts.map +1 -0
  15. package/dist/src/lib/EpochedStakingDeactivateBuilder.js +48 -0
  16. package/dist/src/lib/EpochedStakingRedelegateBuilder.d.ts +7 -0
  17. package/dist/src/lib/EpochedStakingRedelegateBuilder.d.ts.map +1 -0
  18. package/dist/src/lib/EpochedStakingRedelegateBuilder.js +48 -0
  19. package/dist/src/lib/constants.d.ts +6 -0
  20. package/dist/src/lib/constants.d.ts.map +1 -1
  21. package/dist/src/lib/constants.js +11 -3
  22. package/dist/src/lib/iface.d.ts +10 -0
  23. package/dist/src/lib/iface.d.ts.map +1 -0
  24. package/dist/src/lib/iface.js +3 -0
  25. package/dist/src/lib/index.d.ts +4 -1
  26. package/dist/src/lib/index.d.ts.map +1 -1
  27. package/dist/src/lib/index.js +10 -3
  28. package/dist/src/lib/transactionBuilderFactory.d.ts +10 -8
  29. package/dist/src/lib/transactionBuilderFactory.d.ts.map +1 -1
  30. package/dist/src/lib/transactionBuilderFactory.js +15 -5
  31. package/dist/src/lib/utils.d.ts +25 -2
  32. package/dist/src/lib/utils.d.ts.map +1 -1
  33. package/dist/src/lib/utils.js +155 -2
  34. package/dist/test/resources/baby.d.ts +397 -0
  35. package/dist/test/resources/baby.d.ts.map +1 -0
  36. package/dist/test/resources/baby.js +413 -0
  37. package/dist/test/unit/baby.d.ts +2 -0
  38. package/dist/test/unit/baby.d.ts.map +1 -0
  39. package/dist/test/unit/baby.js +259 -0
  40. package/dist/test/unit/getBuilderFactory.d.ts +3 -0
  41. package/dist/test/unit/getBuilderFactory.d.ts.map +1 -0
  42. package/dist/test/unit/getBuilderFactory.js +10 -0
  43. package/dist/test/unit/keyPair.d.ts +2 -0
  44. package/dist/test/unit/keyPair.d.ts.map +1 -0
  45. package/dist/test/unit/keyPair.js +93 -0
  46. package/dist/test/unit/transaction.d.ts +2 -0
  47. package/dist/test/unit/transaction.d.ts.map +1 -0
  48. package/dist/test/unit/transaction.js +143 -0
  49. package/dist/test/unit/transactionBuilder/CustomTransactionBuilder.d.ts +2 -0
  50. package/dist/test/unit/transactionBuilder/CustomTransactionBuilder.d.ts.map +1 -0
  51. package/dist/test/unit/transactionBuilder/CustomTransactionBuilder.js +124 -0
  52. package/dist/test/unit/transactionBuilder/StakingActivateBuilder.d.ts +2 -0
  53. package/dist/test/unit/transactionBuilder/StakingActivateBuilder.d.ts.map +1 -0
  54. package/dist/test/unit/transactionBuilder/StakingActivateBuilder.js +154 -0
  55. package/dist/test/unit/transactionBuilder/StakingDeactivateBuilder.d.ts +2 -0
  56. package/dist/test/unit/transactionBuilder/StakingDeactivateBuilder.d.ts.map +1 -0
  57. package/dist/test/unit/transactionBuilder/StakingDeactivateBuilder.js +153 -0
  58. package/dist/test/unit/transactionBuilder/StakingRedelegateBuilder.d.ts +2 -0
  59. package/dist/test/unit/transactionBuilder/StakingRedelegateBuilder.d.ts.map +1 -0
  60. package/dist/test/unit/transactionBuilder/StakingRedelegateBuilder.js +93 -0
  61. package/dist/test/unit/transactionBuilder/StakingWithdrawRewardsBuilder.d.ts +2 -0
  62. package/dist/test/unit/transactionBuilder/StakingWithdrawRewardsBuilder.d.ts.map +1 -0
  63. package/dist/test/unit/transactionBuilder/StakingWithdrawRewardsBuilder.js +154 -0
  64. package/dist/test/unit/transactionBuilder/transactionBuilder.d.ts +2 -0
  65. package/dist/test/unit/transactionBuilder/transactionBuilder.d.ts.map +1 -0
  66. package/dist/test/unit/transactionBuilder/transactionBuilder.js +124 -0
  67. package/dist/test/unit/transactionBuilder/transferBuilder.d.ts +2 -0
  68. package/dist/test/unit/transactionBuilder/transferBuilder.d.ts.map +1 -0
  69. package/dist/test/unit/transactionBuilder/transferBuilder.js +212 -0
  70. package/dist/test/unit/utils.d.ts +2 -0
  71. package/dist/test/unit/utils.d.ts.map +1 -0
  72. package/dist/test/unit/utils.js +84 -0
  73. package/dist/tsconfig.tsbuildinfo +1 -0
  74. package/package.json +16 -10
  75. package/.eslintignore +0 -5
  76. package/.mocharc.yml +0 -8
  77. package/CHANGELOG.md +0 -42
@@ -0,0 +1,212 @@
1
+ "use strict";
2
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
+ if (k2 === undefined) k2 = k;
4
+ var desc = Object.getOwnPropertyDescriptor(m, k);
5
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
6
+ desc = { enumerable: true, get: function() { return m[k]; } };
7
+ }
8
+ Object.defineProperty(o, k2, desc);
9
+ }) : (function(o, m, k, k2) {
10
+ if (k2 === undefined) k2 = k;
11
+ o[k2] = m[k];
12
+ }));
13
+ var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
14
+ Object.defineProperty(o, "default", { enumerable: true, value: v });
15
+ }) : function(o, v) {
16
+ o["default"] = v;
17
+ });
18
+ var __importStar = (this && this.__importStar) || (function () {
19
+ var ownKeys = function(o) {
20
+ ownKeys = Object.getOwnPropertyNames || function (o) {
21
+ var ar = [];
22
+ for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
23
+ return ar;
24
+ };
25
+ return ownKeys(o);
26
+ };
27
+ return function (mod) {
28
+ if (mod && mod.__esModule) return mod;
29
+ var result = {};
30
+ if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
31
+ __setModuleDefault(result, mod);
32
+ return result;
33
+ };
34
+ })();
35
+ var __importDefault = (this && this.__importDefault) || function (mod) {
36
+ return (mod && mod.__esModule) ? mod : { "default": mod };
37
+ };
38
+ Object.defineProperty(exports, "__esModule", { value: true });
39
+ const sdk_core_1 = require("@bitgo-beta/sdk-core");
40
+ const encoding_1 = require("@cosmjs/encoding");
41
+ const should_1 = __importDefault(require("should"));
42
+ const testData = __importStar(require("../../resources/baby"));
43
+ const getBuilderFactory_1 = require("../getBuilderFactory");
44
+ describe('Baby Transfer Builder', () => {
45
+ const factory = (0, getBuilderFactory_1.getBuilderFactory)('tbaby');
46
+ const testTx = testData.TEST_SEND_TX;
47
+ const testTx2 = testData.TEST_SEND_TX2;
48
+ const testTxWithMemo = testData.TEST_TX_WITH_MEMO;
49
+ it('should build a Transfer tx with signature', async function () {
50
+ const txBuilder = factory.getTransferBuilder();
51
+ txBuilder.sequence(testTx.sequence);
52
+ txBuilder.gasBudget(testTx.gasBudget);
53
+ txBuilder.messages([testTx.sendMessage.value]);
54
+ txBuilder.publicKey((0, encoding_1.toHex)((0, encoding_1.fromBase64)(testTx.pubKey)));
55
+ txBuilder.addSignature({ pub: (0, encoding_1.toHex)((0, encoding_1.fromBase64)(testTx.pubKey)) }, Buffer.from(testTx.signature, 'base64'));
56
+ const tx = await txBuilder.build();
57
+ const json = await (await txBuilder.build()).toJson();
58
+ should_1.default.equal(tx.type, sdk_core_1.TransactionType.Send);
59
+ should_1.default.deepEqual(json.gasBudget, testTx.gasBudget);
60
+ should_1.default.deepEqual(json.sendMessages, [testTx.sendMessage]);
61
+ should_1.default.deepEqual(json.publicKey, (0, encoding_1.toHex)((0, encoding_1.fromBase64)(testTx.pubKey)));
62
+ should_1.default.deepEqual(json.sequence, testTx.sequence);
63
+ const rawTx = tx.toBroadcastFormat();
64
+ should_1.default.equal(rawTx, testTx.signedTxBase64);
65
+ should_1.default.deepEqual(tx.inputs, [
66
+ {
67
+ address: testData.TEST_SEND_TX.sender,
68
+ value: testData.TEST_SEND_TX.sendMessage.value.amount[0].amount,
69
+ coin: 'tbaby',
70
+ },
71
+ ]);
72
+ should_1.default.deepEqual(tx.outputs, [
73
+ {
74
+ address: testData.TEST_SEND_TX.sendMessage.value.toAddress,
75
+ value: testData.TEST_SEND_TX.sendMessage.value.amount[0].amount,
76
+ coin: 'tbaby',
77
+ },
78
+ ]);
79
+ });
80
+ it('should build a Transfer tx with signature and memo', async function () {
81
+ const txBuilder = factory.getTransferBuilder();
82
+ txBuilder.sequence(testTxWithMemo.sequence);
83
+ txBuilder.gasBudget(testTxWithMemo.gasBudget);
84
+ txBuilder.messages([testTxWithMemo.sendMessage.value]);
85
+ txBuilder.publicKey((0, encoding_1.toHex)((0, encoding_1.fromBase64)(testTxWithMemo.pubKey)));
86
+ txBuilder.memo(testTxWithMemo.memo);
87
+ txBuilder.addSignature({ pub: (0, encoding_1.toHex)((0, encoding_1.fromBase64)(testTxWithMemo.pubKey)) }, Buffer.from(testTxWithMemo.signature, 'base64'));
88
+ const tx = await txBuilder.build();
89
+ const json = await (await txBuilder.build()).toJson();
90
+ should_1.default.equal(tx.type, sdk_core_1.TransactionType.Send);
91
+ should_1.default.deepEqual(json.gasBudget, testTxWithMemo.gasBudget);
92
+ should_1.default.deepEqual(json.sendMessages, [testTxWithMemo.sendMessage]);
93
+ should_1.default.deepEqual(json.publicKey, (0, encoding_1.toHex)((0, encoding_1.fromBase64)(testTxWithMemo.pubKey)));
94
+ should_1.default.deepEqual(json.sequence, testTxWithMemo.sequence);
95
+ should_1.default.equal(json.memo, testTxWithMemo.memo);
96
+ const rawTx = tx.toBroadcastFormat();
97
+ should_1.default.equal(rawTx, testTxWithMemo.signedTxBase64);
98
+ should_1.default.deepEqual(tx.inputs, [
99
+ {
100
+ address: testTxWithMemo.sendMessage.value.fromAddress,
101
+ value: testTxWithMemo.sendMessage.value.amount[0].amount,
102
+ coin: 'tbaby',
103
+ },
104
+ ]);
105
+ should_1.default.deepEqual(tx.outputs, [
106
+ {
107
+ address: testTxWithMemo.sendMessage.value.toAddress,
108
+ value: testTxWithMemo.sendMessage.value.amount[0].amount,
109
+ coin: 'tbaby',
110
+ },
111
+ ]);
112
+ });
113
+ it('should build a Transfer tx without signature', async function () {
114
+ const txBuilder = factory.getTransferBuilder();
115
+ txBuilder.sequence(testTx.sequence);
116
+ txBuilder.gasBudget(testTx.gasBudget);
117
+ txBuilder.messages([testTx.sendMessage.value]);
118
+ txBuilder.publicKey((0, encoding_1.toHex)((0, encoding_1.fromBase64)(testTx.pubKey)));
119
+ const tx = await txBuilder.build();
120
+ const json = await (await txBuilder.build()).toJson();
121
+ should_1.default.equal(tx.type, sdk_core_1.TransactionType.Send);
122
+ should_1.default.deepEqual(json.gasBudget, testTx.gasBudget);
123
+ should_1.default.deepEqual(json.sendMessages, [testTx.sendMessage]);
124
+ should_1.default.deepEqual(json.publicKey, (0, encoding_1.toHex)((0, encoding_1.fromBase64)(testTx.pubKey)));
125
+ should_1.default.deepEqual(json.sequence, testTx.sequence);
126
+ tx.toBroadcastFormat();
127
+ should_1.default.deepEqual(tx.inputs, [
128
+ {
129
+ address: testData.TEST_SEND_TX.sender,
130
+ value: testData.TEST_SEND_TX.sendMessage.value.amount[0].amount,
131
+ coin: 'tbaby',
132
+ },
133
+ ]);
134
+ should_1.default.deepEqual(tx.outputs, [
135
+ {
136
+ address: testData.TEST_SEND_TX.sendMessage.value.toAddress,
137
+ value: testData.TEST_SEND_TX.sendMessage.value.amount[0].amount,
138
+ coin: 'tbaby',
139
+ },
140
+ ]);
141
+ });
142
+ it('should sign a Transfer tx', async function () {
143
+ const txBuilder = factory.getTransferBuilder();
144
+ txBuilder.sequence(testTx2.sequence);
145
+ txBuilder.gasBudget(testTx2.gasBudget);
146
+ txBuilder.messages([testTx2.sendMessage.value]);
147
+ txBuilder.accountNumber(testTx2.accountNumber);
148
+ txBuilder.chainId(testTx2.chainId);
149
+ txBuilder.sign({ key: (0, encoding_1.toHex)((0, encoding_1.fromBase64)(testTx2.privateKey)) });
150
+ const tx = await txBuilder.build();
151
+ const json = await (await txBuilder.build()).toJson();
152
+ should_1.default.equal(tx.type, sdk_core_1.TransactionType.Send);
153
+ should_1.default.deepEqual(json.gasBudget, testTx2.gasBudget);
154
+ should_1.default.deepEqual(json.sendMessages, [testTx2.sendMessage]);
155
+ should_1.default.deepEqual(json.publicKey, (0, encoding_1.toHex)((0, encoding_1.fromBase64)(testTx2.pubKey)));
156
+ should_1.default.deepEqual(json.sequence, testTx2.sequence);
157
+ const rawTx = tx.toBroadcastFormat();
158
+ should_1.default.equal(tx.signature[0], (0, encoding_1.toHex)((0, encoding_1.fromBase64)(testTx2.signature)));
159
+ should_1.default.equal(rawTx, testTx2.signedTxBase64);
160
+ should_1.default.deepEqual(tx.inputs, [
161
+ {
162
+ address: testData.TEST_SEND_TX2.sender,
163
+ value: testData.TEST_SEND_TX2.sendMessage.value.amount[0].amount,
164
+ coin: 'tbaby',
165
+ },
166
+ ]);
167
+ should_1.default.deepEqual(tx.outputs, [
168
+ {
169
+ address: testData.TEST_SEND_TX2.sendMessage.value.toAddress,
170
+ value: testData.TEST_SEND_TX2.sendMessage.value.amount[0].amount,
171
+ coin: 'tbaby',
172
+ },
173
+ ]);
174
+ });
175
+ it('should build a sendMany Transfer tx', async function () {
176
+ const testSendManyTx = testData.TEST_SEND_MANY_TX;
177
+ const txBuilder = factory.getTransferBuilder();
178
+ txBuilder.sequence(testSendManyTx.sequence);
179
+ txBuilder.gasBudget(testSendManyTx.gasBudget);
180
+ txBuilder.messages(testSendManyTx.sendMessages.map((msg) => msg.value));
181
+ txBuilder.publicKey((0, encoding_1.toHex)((0, encoding_1.fromBase64)(testSendManyTx.pubKey)));
182
+ txBuilder.chainId(testSendManyTx.chainId);
183
+ txBuilder.accountNumber(testSendManyTx.accountNumber);
184
+ txBuilder.memo(testSendManyTx.memo);
185
+ txBuilder.addSignature({ pub: (0, encoding_1.toHex)((0, encoding_1.fromBase64)(testSendManyTx.pubKey)) }, Buffer.from(testSendManyTx.signature, 'base64'));
186
+ const tx = await txBuilder.build();
187
+ const json = await (await txBuilder.build()).toJson();
188
+ should_1.default.equal(tx.type, sdk_core_1.TransactionType.Send);
189
+ should_1.default.deepEqual(json.gasBudget, testSendManyTx.gasBudget);
190
+ should_1.default.deepEqual(json.sendMessages, testSendManyTx.sendMessages);
191
+ should_1.default.deepEqual(json.publicKey, (0, encoding_1.toHex)((0, encoding_1.fromBase64)(testSendManyTx.pubKey)));
192
+ should_1.default.deepEqual(json.sequence, testSendManyTx.sequence);
193
+ should_1.default.deepEqual(tx.inputs, testSendManyTx.sendMessages.map((msg) => {
194
+ return {
195
+ address: msg.value.fromAddress,
196
+ value: msg.value.amount[0].amount,
197
+ coin: 'tbaby',
198
+ };
199
+ }));
200
+ should_1.default.deepEqual(tx.outputs, testSendManyTx.sendMessages.map((msg) => {
201
+ return {
202
+ address: msg.value.toAddress,
203
+ value: msg.value.amount[0].amount,
204
+ coin: 'tbaby',
205
+ };
206
+ }));
207
+ should_1.default.equal(tx.id, testSendManyTx.hash);
208
+ const rawTx = tx.toBroadcastFormat();
209
+ should_1.default.equal(rawTx, testSendManyTx.signedTxBase64);
210
+ });
211
+ });
212
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHJhbnNmZXJCdWlsZGVyLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vdGVzdC91bml0L3RyYW5zYWN0aW9uQnVpbGRlci90cmFuc2ZlckJ1aWxkZXIudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7QUFBQSxtREFBdUQ7QUFDdkQsK0NBQXFEO0FBQ3JELG9EQUE0QjtBQUM1QiwrREFBaUQ7QUFDakQsNERBQXlEO0FBRXpELFFBQVEsQ0FBQyx1QkFBdUIsRUFBRSxHQUFHLEVBQUU7SUFDckMsTUFBTSxPQUFPLEdBQUcsSUFBQSxxQ0FBaUIsRUFBQyxPQUFPLENBQUMsQ0FBQztJQUMzQyxNQUFNLE1BQU0sR0FBRyxRQUFRLENBQUMsWUFBWSxDQUFDO0lBQ3JDLE1BQU0sT0FBTyxHQUFHLFFBQVEsQ0FBQyxhQUFhLENBQUM7SUFDdkMsTUFBTSxjQUFjLEdBQUcsUUFBUSxDQUFDLGlCQUFpQixDQUFDO0lBQ2xELEVBQUUsQ0FBQywyQ0FBMkMsRUFBRSxLQUFLO1FBQ25ELE1BQU0sU0FBUyxHQUFHLE9BQU8sQ0FBQyxrQkFBa0IsRUFBRSxDQUFDO1FBQy9DLFNBQVMsQ0FBQyxRQUFRLENBQUMsTUFBTSxDQUFDLFFBQVEsQ0FBQyxDQUFDO1FBQ3BDLFNBQVMsQ0FBQyxTQUFTLENBQUMsTUFBTSxDQUFDLFNBQVMsQ0FBQyxDQUFDO1FBQ3RDLFNBQVMsQ0FBQyxRQUFRLENBQUMsQ0FBQyxNQUFNLENBQUMsV0FBVyxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUM7UUFDL0MsU0FBUyxDQUFDLFNBQVMsQ0FBQyxJQUFBLGdCQUFLLEVBQUMsSUFBQSxxQkFBVSxFQUFDLE1BQU0sQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLENBQUM7UUFDdEQsU0FBUyxDQUFDLFlBQVksQ0FBQyxFQUFFLEdBQUcsRUFBRSxJQUFBLGdCQUFLLEVBQUMsSUFBQSxxQkFBVSxFQUFDLE1BQU0sQ0FB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S0FBSyxDQUFDLEtBQUssRUFBRSxjQUFjLENBQUMsY0FBYyxDQUFDLENBQUM7SUFDckQsQ0FBQyxDQUFDLENBQUM7QUFDTCxDQUFDLENBQUMsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IFRyYW5zYWN0aW9uVHlwZSB9IGZyb20gJ0BiaXRnby1iZXRhL3Nkay1jb3JlJztcbmltcG9ydCB7IGZyb21CYXNlNjQsIHRvSGV4IH0gZnJvbSAnQGNvc21qcy9lbmNvZGluZyc7XG5pbXBvcnQgc2hvdWxkIGZyb20gJ3Nob3VsZCc7XG5pbXBvcnQgKiBhcyB0ZXN0RGF0YSBmcm9tICcuLi8uLi9yZXNvdXJjZXMvYmFieSc7XG5pbXBvcnQgeyBnZXRCdWlsZGVyRmFjdG9yeSB9IGZyb20gJy4uL2dldEJ1aWxkZXJGYWN0b3J5JztcblxuZGVzY3JpYmUoJ0JhYnkgVHJhbnNmZXIgQnVpbGRlcicsICgpID0+IHtcbiAgY29uc3QgZmFjdG9yeSA9IGdldEJ1aWxkZXJGYWN0b3J5KCd0YmFieScpO1xuICBjb25zdCB0ZXN0VHggPSB0ZXN0RGF0YS5URVNUX1NFTkRfVFg7XG4gIGNvbnN0IHRlc3RUeDIgPSB0ZXN0RGF0YS5URVNUX1NFTkRfVFgyO1xuICBjb25zdCB0ZXN0VHhXaXRoTWVtbyA9IHRlc3REYXRhLlRFU1RfVFhfV0lUSF9NRU1PO1xuICBpdCgnc2hvdWxkIGJ1aWxkIGEgVHJhbnNmZXIgdHggd2l0aCBzaWduYXR1cmUnLCBhc3luYyBmdW5jdGlvbiAoKSB7XG4gICAgY29uc3QgdHhCdWlsZGVyID0gZmFjdG9yeS5nZXRUcmFuc2ZlckJ1aWxkZXIoKTtcbiAgICB0eEJ1aWxkZXIuc2VxdWVuY2UodGVzdFR4LnNlcXVlbmNlKTtcbiAgICB0eEJ1aWxkZXIuZ2FzQnVkZ2V0KHRlc3RUeC5nYXNCdWRnZXQpO1xuICAgIHR4QnVpbGRlci5tZXNzYWdlcyhbdGVzdFR4LnNlbmRNZXNzYWdlLnZhbHVlXSk7XG4gICAgdHhCdWlsZGVyLnB1YmxpY0tleSh0b0hleChmcm9tQmFzZTY0KHRlc3RUeC5wdWJLZXkpKSk7XG4gICAgdHhCdWlsZGVyLmFkZFNpZ25hdHVyZSh7IHB1YjogdG9IZXgoZnJvbUJhc2U2NCh0ZXN0VHgucHViS2V5KSkgfSwgQnVmZmVyLmZyb20odGVzdFR4LnNpZ25hdHVyZSwgJ2Jhc2U2NCcpKTtcblxuICAgIGNvbnN0IHR4ID0gYXdhaXQgdHhCdWlsZGVyLmJ1aWxkKCk7XG4gICAgY29uc3QganNvbiA9IGF3YWl0IChhd2FpdCB0eEJ1aWxkZXIuYnVpbGQoKSkudG9Kc29uKCk7XG4gICAgc2hvdWxkLmVxdWFsKHR4LnR5cGUsIFRyYW5zYWN0aW9uVHlwZS5TZW5kKTtcbiAgICBzaG91bGQuZGVlcEVxdWFsKGpzb24uZ2FzQnVkZ2V0LCB0ZXN0VHguZ2FzQnVkZ2V0KTtcbiAgICBzaG91bGQuZGVlcEVxdWFsKGpzb24uc2VuZE1lc3NhZ2VzLCBbdGVzdFR4LnNlbmRNZXNzYWdlXSk7XG4gICAgc2hvdWxkLmRlZXBFcXVhbChqc29uLnB1YmxpY0tleSwgdG9IZXgoZnJvbUJhc2U2NCh0ZXN0VHgucHViS2V5KSkpO1xuICAgIHNob3VsZC5kZWVwRXF1YWwoanNvbi5zZXF1ZW5jZSwgdGVzdFR4LnNlcXVlbmNlKTtcbiAgICBjb25zdCByYXdUeCA9IHR4LnRvQnJvYWRjYXN0Rm9ybWF0KCk7XG4gICAgc2hvdWxkLmVxdWFsKHJhd1R4LCB0ZXN0VHguc2lnbmVkVHhCYXNlNjQpO1xuICAgIHNob3VsZC5kZWVwRXF1YWwodHguaW5wdXRzLCBbXG4gICAgICB7XG4gICAgICAgIGFkZHJlc3M6IHRlc3REYXRhLlRFU1RfU0VORF9UWC5zZW5kZXIsXG4gICAgICAgIHZhbHVlOiB0ZXN0RGF0YS5URVNUX1NFTkRfVFguc2VuZE1lc3NhZ2UudmFsdWUuYW1vdW50WzBdLmFtb3VudCxcbiAgICAgICAgY29pbjogJ3RiYWJ5JyxcbiAgICAgIH0sXG4gICAgXSk7XG4gICAgc2hvdWxkLmRlZXBFcXVhbCh0eC5vdXRwdXRzLCBbXG4gICAgICB7XG4gICAgICAgIGFkZHJlc3M6IHRlc3REYXRhLlRFU1RfU0VORF9UWC5zZW5kTWVzc2FnZS52YWx1ZS50b0FkZHJlc3MsXG4gICAgICAgIHZhbHVlOiB0ZXN0RGF0YS5URVNUX1NFTkRfVFguc2VuZE1lc3NhZ2UudmFsdWUuYW1vdW50WzBdLmFtb3VudCxcbiAgICAgICAgY29pbjogJ3RiYWJ5JyxcbiAgICAgIH0sXG4gICAgXSk7XG4gIH0pO1xuXG4gIGl0KCdzaG91bGQgYnVpbGQgYSBUcmFuc2ZlciB0eCB3aXRoIHNpZ25hdHVyZSBhbmQgbWVtbycsIGFzeW5jIGZ1bmN0aW9uICgpIHtcbiAgICBjb25zdCB0eEJ1aWxkZXIgPSBmYWN0b3J5LmdldFRyYW5zZmVyQnVpbGRlcigpO1xuICAgIHR4QnVpbGRlci5zZXF1ZW5jZSh0ZXN0VHhXaXRoTWVtby5zZXF1ZW5jZSk7XG4gICAgdHhCdWlsZGVyLmdhc0J1ZGdldCh0ZXN0VHhXaXRoTWVtby5nYXNCdWRnZXQpO1xuICAgIHR4QnVpbGRlci5tZXNzYWdlcyhbdGVzdFR4V2l0aE1lbW8uc2VuZE1lc3NhZ2UudmFsdWVdKTtcbiAgICB0eEJ1aWxkZXIucHVibGljS2V5KHRvSGV4KGZyb21CYXNlNjQodGVzdFR4V2l0aE1lbW8ucHViS2V5KSkpO1xuICAgIHR4QnVpbGRlci5tZW1vKHRlc3RUeFdpdGhNZW1vLm1lbW8pO1xuICAgIHR4QnVpbGRlci5hZGRTaWduYXR1cmUoXG4gICAgICB7IHB1YjogdG9IZXgoZnJvbUJhc2U2NCh0ZXN0VHhXaXRoTWVtby5wdWJLZXkpKSB9LFxuICAgICAgQnVmZmVyLmZyb20odGVzdFR4V2l0aE1lbW8uc2lnbmF0dXJlLCAnYmFzZTY0JylcbiAgICApO1xuXG4gICAgY29uc3QgdHggPSBhd2FpdCB0eEJ1aWxkZXIuYnVpbGQoKTtcbiAgICBjb25zdCBqc29uID0gYXdhaXQgKGF3YWl0IHR4QnVpbGRlci5idWlsZCgpKS50b0pzb24oKTtcbiAgICBzaG91bGQuZXF1YWwodHgudHlwZSwgVHJhbnNhY3Rpb25UeXBlLlNlbmQpO1xuICAgIHNob3VsZC5kZWVwRXF1YWwoanNvbi5nYXNCdWRnZXQsIHRlc3RUeFdpdGhNZW1vLmdhc0J1ZGdldCk7XG4gICAgc2hvdWxkLmRlZXBFcXVhbChqc29uLnNlbmRNZXNzYWdlcywgW3Rlc3RUeFdpdGhNZW1vLnNlbmRNZXNzYWdlXSk7XG4gICAgc2hvdWxkLmRlZXBFcXVhbChqc29uLnB1YmxpY0tleSwgdG9IZXgoZnJvbUJhc2U2NCh0ZXN0VHhXaXRoTWVtby5wdWJLZXkpKSk7XG4gICAgc2hvdWxkLmRlZXBFcXVhbChqc29uLnNlcXVlbmNlLCB0ZXN0VHhXaXRoTWVtby5zZXF1ZW5jZSk7XG4gICAgc2hvdWxkLmVxdWFsKGpzb24ubWVtbywgdGVzdFR4V2l0aE1lbW8ubWVtbyk7XG4gICAgY29uc3QgcmF3VHggPSB0eC50b0Jyb2FkY2FzdEZvcm1hdCgpO1xuICAgIHNob3VsZC5lcXVhbChyYXdUeCwgdGVzdFR4V2l0aE1lbW8uc2lnbmVkVHhCYXNlNjQpO1xuICAgIHNob3VsZC5kZWVwRXF1YWwodHguaW5wdXRzLCBbXG4gICAgICB7XG4gICAgICAgIGFkZHJlc3M6IHRlc3RUeFdpdGhNZW1vLnNlbmRNZXNzYWdlLnZhbHVlLmZyb21BZGRyZXNzLFxuICAgICAgICB2YWx1ZTogdGVzdFR4V2l0aE1lbW8uc2VuZE1lc3NhZ2UudmFsdWUuYW1vdW50WzBdLmFtb3VudCxcbiAgICAgICAgY29pbjogJ3RiYWJ5JyxcbiAgICAgIH0sXG4gICAgXSk7XG4gICAgc2hvdWxkLmRlZXBFcXVhbCh0eC5vdXRwdXRzLCBbXG4gICAgICB7XG4gICAgICAgIGFkZHJlc3M6IHRlc3RUeFdpdGhNZW1vLnNlbmRNZXNzYWdlLnZhbHVlLnRvQWRkcmVzcyxcbiAgICAgICAgdmFsdWU6IHRlc3RUeFdpdGhNZW1vLnNlbmRNZXNzYWdlLnZhbHVlLmFtb3VudFswXS5hbW91bnQsXG4gICAgICAgIGNvaW46ICd0YmFieScsXG4gICAgICB9LFxuICAgIF0pO1xuICB9KTtcblxuICBpdCgnc2hvdWxkIGJ1aWxkIGEgVHJhbnNmZXIgdHggd2l0aG91dCBzaWduYXR1cmUnLCBhc3luYyBmdW5jdGlvbiAoKSB7XG4gICAgY29uc3QgdHhCdWlsZGVyID0gZmFjdG9yeS5nZXRUcmFuc2ZlckJ1aWxkZXIoKTtcbiAgICB0eEJ1aWxkZXIuc2VxdWVuY2UodGVzdFR4LnNlcXVlbmNlKTtcbiAgICB0eEJ1aWxkZXIuZ2FzQnVkZ2V0KHRlc3RUeC5nYXNCdWRnZXQpO1xuICAgIHR4QnVpbGRlci5tZXNzYWdlcyhbdGVzdFR4LnNlbmRNZXNzYWdlLnZhbHVlXSk7XG4gICAgdHhCdWlsZGVyLnB1YmxpY0tleSh0b0hleChmcm9tQmFzZTY0KHRlc3RUeC5wdWJLZXkpKSk7XG4gICAgY29uc3QgdHggPSBhd2FpdCB0eEJ1aWxkZXIuYnVpbGQoKTtcbiAgICBjb25zdCBqc29uID0gYXdhaXQgKGF3YWl0IHR4QnVpbGRlci5idWlsZCgpKS50b0pzb24oKTtcbiAgICBzaG91bGQuZXF1YWwodHgudHlwZSwgVHJhbnNhY3Rpb25UeXBlLlNlbmQpO1xuICAgIHNob3VsZC5kZWVwRXF1YWwoanNvbi5nYXNCdWRnZXQsIHRlc3RUeC5nYXNCdWRnZXQpO1xuICAgIHNob3VsZC5kZWVwRXF1YWwoanNvbi5zZW5kTWVzc2FnZXMsIFt0ZXN0VHguc2VuZE1lc3NhZ2VdKTtcbiAgICBzaG91bGQuZGVlcEVxdWFsKGpzb24ucHVibGljS2V5LCB0b0hleChmcm9tQmFzZTY0KHRlc3RUeC5wdWJLZXkpKSk7XG4gICAgc2hvdWxkLmRlZXBFcXVhbChqc29uLnNlcXVlbmNlLCB0ZXN0VHguc2VxdWVuY2UpO1xuICAgIHR4LnRvQnJvYWRjYXN0Rm9ybWF0KCk7XG4gICAgc2hvdWxkLmRlZXBFcXVhbCh0eC5pbnB1dHMsIFtcbiAgICAgIHtcbiAgICAgICAgYWRkcmVzczogdGVzdERhdGEuVEVTVF9TRU5EX1RYLnNlbmRlcixcbiAgICAgICAgdmFsdWU6IHRlc3REYXRhLlRFU1RfU0VORF9UWC5zZW5kTWVzc2FnZS52YWx1ZS5hbW91bnRbMF0uYW1vdW50LFxuICAgICAgICBjb2luOiAndGJhYnknLFxuICAgICAgfSxcbiAgICBdKTtcbiAgICBzaG91bGQuZGVlcEVxdWFsKHR4Lm91dHB1dHMsIFtcbiAgICAgIHtcbiAgICAgICAgYWRkcmVzczogdGVzdERhdGEuVEVTVF9TRU5EX1RYLnNlbmRNZXNzYWdlLnZhbHVlLnRvQWRkcmVzcyxcbiAgICAgICAgdmFsdWU6IHRlc3REYXRhLlRFU1RfU0VORF9UWC5zZW5kTWVzc2FnZS52YWx1ZS5hbW91bnRbMF0uYW1vdW50LFxuICAgICAgICBjb2luOiAndGJhYnknLFxuICAgICAgfSxcbiAgICBdKTtcbiAgfSk7XG5cbiAgaXQoJ3Nob3VsZCBzaWduIGEgVHJhbnNmZXIgdHgnLCBhc3luYyBmdW5jdGlvbiAoKSB7XG4gICAgY29uc3QgdHhCdWlsZGVyID0gZmFjdG9yeS5nZXRUcmFuc2ZlckJ1aWxkZXIoKTtcbiAgICB0eEJ1aWxkZXIuc2VxdWVuY2UodGVzdFR4Mi5zZXF1ZW5jZSk7XG4gICAgdHhCdWlsZGVyLmdhc0J1ZGdldCh0ZXN0VHgyLmdhc0J1ZGdldCk7XG4gICAgdHhCdWlsZGVyLm1lc3NhZ2VzKFt0ZXN0VHgyLnNlbmRNZXNzYWdlLnZhbHVlXSk7XG4gICAgdHhCdWlsZGVyLmFjY291bnROdW1iZXIodGVzdFR4Mi5hY2NvdW50TnVtYmVyKTtcbiAgICB0eEJ1aWxkZXIuY2hhaW5JZCh0ZXN0VHgyLmNoYWluSWQpO1xuICAgIHR4QnVpbGRlci5zaWduKHsga2V5OiB0b0hleChmcm9tQmFzZTY0KHRlc3RUeDIucHJpdmF0ZUtleSkpIH0pO1xuICAgIGNvbnN0IHR4ID0gYXdhaXQgdHhCdWlsZGVyLmJ1aWxkKCk7XG4gICAgY29uc3QganNvbiA9IGF3YWl0IChhd2FpdCB0eEJ1aWxkZXIuYnVpbGQoKSkudG9Kc29uKCk7XG4gICAgc2hvdWxkLmVxdWFsKHR4LnR5cGUsIFRyYW5zYWN0aW9uVHlwZS5TZW5kKTtcbiAgICBzaG91bGQuZGVlcEVxdWFsKGpzb24uZ2FzQnVkZ2V0LCB0ZXN0VHgyLmdhc0J1ZGdldCk7XG4gICAgc2hvdWxkLmRlZXBFcXVhbChqc29uLnNlbmRNZXNzYWdlcywgW3Rlc3RUeDIuc2VuZE1lc3NhZ2VdKTtcbiAgICBzaG91bGQuZGVlcEVxdWFsKGpzb24ucHVibGljS2V5LCB0b0hleChmcm9tQmFzZTY0KHRlc3RUeDIucHViS2V5KSkpO1xuICAgIHNob3VsZC5kZWVwRXF1YWwoanNvbi5zZXF1ZW5jZSwgdGVzdFR4Mi5zZXF1ZW5jZSk7XG4gICAgY29uc3QgcmF3VHggPSB0eC50b0Jyb2FkY2FzdEZvcm1hdCgpO1xuICAgIHNob3VsZC5lcXVhbCh0eC5zaWduYXR1cmVbMF0sIHRvSGV4KGZyb21CYXNlNjQodGVzdFR4Mi5zaWduYXR1cmUpKSk7XG4gICAgc2hvdWxkLmVxdWFsKHJhd1R4LCB0ZXN0VHgyLnNpZ25lZFR4QmFzZTY0KTtcbiAgICBzaG91bGQuZGVlcEVxdWFsKHR4LmlucHV0cywgW1xuICAgICAge1xuICAgICAgICBhZGRyZXNzOiB0ZXN0RGF0YS5URVNUX1NFTkRfVFgyLnNlbmRlcixcbiAgICAgICAgdmFsdWU6IHRlc3REYXRhLlRFU1RfU0VORF9UWDIuc2VuZE1lc3NhZ2UudmFsdWUuYW1vdW50WzBdLmFtb3VudCxcbiAgICAgICAgY29pbjogJ3RiYWJ5JyxcbiAgICAgIH0sXG4gICAgXSk7XG4gICAgc2hvdWxkLmRlZXBFcXVhbCh0eC5vdXRwdXRzLCBbXG4gICAgICB7XG4gICAgICAgIGFkZHJlc3M6IHRlc3REYXRhLlRFU1RfU0VORF9UWDIuc2VuZE1lc3NhZ2UudmFsdWUudG9BZGRyZXNzLFxuICAgICAgICB2YWx1ZTogdGVzdERhdGEuVEVTVF9TRU5EX1RYMi5zZW5kTWVzc2FnZS52YWx1ZS5hbW91bnRbMF0uYW1vdW50LFxuICAgICAgICBjb2luOiAndGJhYnknLFxuICAgICAgfSxcbiAgICBdKTtcbiAgfSk7XG5cbiAgaXQoJ3Nob3VsZCBidWlsZCBhIHNlbmRNYW55IFRyYW5zZmVyIHR4JywgYXN5bmMgZnVuY3Rpb24gKCkge1xuICAgIGNvbnN0IHRlc3RTZW5kTWFueVR4ID0gdGVzdERhdGEuVEVTVF9TRU5EX01BTllfVFg7XG4gICAgY29uc3QgdHhCdWlsZGVyID0gZmFjdG9yeS5nZXRUcmFuc2ZlckJ1aWxkZXIoKTtcbiAgICB0eEJ1aWxkZXIuc2VxdWVuY2UodGVzdFNlbmRNYW55VHguc2VxdWVuY2UpO1xuICAgIHR4QnVpbGRlci5nYXNCdWRnZXQodGVzdFNlbmRNYW55VHguZ2FzQnVkZ2V0KTtcbiAgICB0eEJ1aWxkZXIubWVzc2FnZXModGVzdFNlbmRNYW55VHguc2VuZE1lc3NhZ2VzLm1hcCgobXNnKSA9PiBtc2cudmFsdWUpKTtcbiAgICB0eEJ1aWxkZXIucHVibGljS2V5KHRvSGV4KGZyb21CYXNlNjQodGVzdFNlbmRNYW55VHgucHViS2V5KSkpO1xuICAgIHR4QnVpbGRlci5jaGFpbklkKHRlc3RTZW5kTWFueVR4LmNoYWluSWQpO1xuICAgIHR4QnVpbGRlci5hY2NvdW50TnVtYmVyKHRlc3RTZW5kTWFueVR4LmFjY291bnROdW1iZXIpO1xuICAgIHR4QnVpbGRlci5tZW1vKHRlc3RTZW5kTWFueVR4Lm1lbW8pO1xuICAgIHR4QnVpbGRlci5hZGRTaWduYXR1cmUoXG4gICAgICB7IHB1YjogdG9IZXgoZnJvbUJhc2U2NCh0ZXN0U2VuZE1hbnlUeC5wdWJLZXkpKSB9LFxuICAgICAgQnVmZmVyLmZyb20odGVzdFNlbmRNYW55VHguc2lnbmF0dXJlLCAnYmFzZTY0JylcbiAgICApO1xuXG4gICAgY29uc3QgdHggPSBhd2FpdCB0eEJ1aWxkZXIuYnVpbGQoKTtcbiAgICBjb25zdCBqc29uID0gYXdhaXQgKGF3YWl0IHR4QnVpbGRlci5idWlsZCgpKS50b0pzb24oKTtcbiAgICBzaG91bGQuZXF1YWwodHgudHlwZSwgVHJhbnNhY3Rpb25UeXBlLlNlbmQpO1xuICAgIHNob3VsZC5kZWVwRXF1YWwoanNvbi5nYXNCdWRnZXQsIHRlc3RTZW5kTWFueVR4Lmdhc0J1ZGdldCk7XG4gICAgc2hvdWxkLmRlZXBFcXVhbChqc29uLnNlbmRNZXNzYWdlcywgdGVzdFNlbmRNYW55VHguc2VuZE1lc3NhZ2VzKTtcbiAgICBzaG91bGQuZGVlcEVxdWFsKGpzb24ucHVibGljS2V5LCB0b0hleChmcm9tQmFzZTY0KHRlc3RTZW5kTWFueVR4LnB1YktleSkpKTtcbiAgICBzaG91bGQuZGVlcEVxdWFsKGpzb24uc2VxdWVuY2UsIHRlc3RTZW5kTWFueVR4LnNlcXVlbmNlKTtcbiAgICBzaG91bGQuZGVlcEVxdWFsKFxuICAgICAgdHguaW5wdXRzLFxuICAgICAgdGVzdFNlbmRNYW55VHguc2VuZE1lc3NhZ2VzLm1hcCgobXNnKSA9PiB7XG4gICAgICAgIHJldHVybiB7XG4gICAgICAgICAgYWRkcmVzczogbXNnLnZhbHVlLmZyb21BZGRyZXNzLFxuICAgICAgICAgIHZhbHVlOiBtc2cudmFsdWUuYW1vdW50WzBdLmFtb3VudCxcbiAgICAgICAgICBjb2luOiAndGJhYnknLFxuICAgICAgICB9O1xuICAgICAgfSlcbiAgICApO1xuICAgIHNob3VsZC5kZWVwRXF1YWwoXG4gICAgICB0eC5vdXRwdXRzLFxuICAgICAgdGVzdFNlbmRNYW55VHguc2VuZE1lc3NhZ2VzLm1hcCgobXNnKSA9PiB7XG4gICAgICAgIHJldHVybiB7XG4gICAgICAgICAgYWRkcmVzczogbXNnLnZhbHVlLnRvQWRkcmVzcyxcbiAgICAgICAgICB2YWx1ZTogbXNnLnZhbHVlLmFtb3VudFswXS5hbW91bnQsXG4gICAgICAgICAgY29pbjogJ3RiYWJ5JyxcbiAgICAgICAgfTtcbiAgICAgIH0pXG4gICAgKTtcbiAgICBzaG91bGQuZXF1YWwodHguaWQsIHRlc3RTZW5kTWFueVR4Lmhhc2gpO1xuICAgIGNvbnN0IHJhd1R4ID0gdHgudG9Ccm9hZGNhc3RGb3JtYXQoKTtcbiAgICBzaG91bGQuZXF1YWwocmF3VHgsIHRlc3RTZW5kTWFueVR4LnNpZ25lZFR4QmFzZTY0KTtcbiAgfSk7XG59KTtcbiJdfQ==
@@ -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/utils.ts"],"names":[],"mappings":""}
@@ -0,0 +1,84 @@
1
+ "use strict";
2
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
+ if (k2 === undefined) k2 = k;
4
+ var desc = Object.getOwnPropertyDescriptor(m, k);
5
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
6
+ desc = { enumerable: true, get: function() { return m[k]; } };
7
+ }
8
+ Object.defineProperty(o, k2, desc);
9
+ }) : (function(o, m, k, k2) {
10
+ if (k2 === undefined) k2 = k;
11
+ o[k2] = m[k];
12
+ }));
13
+ var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
14
+ Object.defineProperty(o, "default", { enumerable: true, value: v });
15
+ }) : function(o, v) {
16
+ o["default"] = v;
17
+ });
18
+ var __importStar = (this && this.__importStar) || (function () {
19
+ var ownKeys = function(o) {
20
+ ownKeys = Object.getOwnPropertyNames || function (o) {
21
+ var ar = [];
22
+ for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
23
+ return ar;
24
+ };
25
+ return ownKeys(o);
26
+ };
27
+ return function (mod) {
28
+ if (mod && mod.__esModule) return mod;
29
+ var result = {};
30
+ if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
31
+ __setModuleDefault(result, mod);
32
+ return result;
33
+ };
34
+ })();
35
+ var __importDefault = (this && this.__importDefault) || function (mod) {
36
+ return (mod && mod.__esModule) ? mod : { "default": mod };
37
+ };
38
+ Object.defineProperty(exports, "__esModule", { value: true });
39
+ const should_1 = __importDefault(require("should"));
40
+ const baby_1 = require("../resources/baby");
41
+ const testData = __importStar(require("../resources/baby"));
42
+ const utils_1 = __importDefault(require("../../src/lib/utils"));
43
+ describe('utils', () => {
44
+ it('should validate addresses correctly', () => {
45
+ should_1.default.equal(utils_1.default.isValidAddress(baby_1.address.address1), true);
46
+ should_1.default.equal(utils_1.default.isValidAddress(baby_1.address.address2), true);
47
+ should_1.default.equal(utils_1.default.isValidAddress(baby_1.address.address3), false);
48
+ should_1.default.equal(utils_1.default.isValidAddress(baby_1.address.address4), false);
49
+ should_1.default.equal(utils_1.default.isValidAddress('dfjk35y'), false);
50
+ should_1.default.equal(utils_1.default.isValidAddress(undefined), false);
51
+ should_1.default.equal(utils_1.default.isValidAddress(''), false);
52
+ });
53
+ it('should validate block hash correctly', () => {
54
+ should_1.default.equal(utils_1.default.isValidBlockId(baby_1.blockHash.hash1), true);
55
+ should_1.default.equal(utils_1.default.isValidBlockId(baby_1.blockHash.hash2), true);
56
+ should_1.default.equal(utils_1.default.isValidBlockId(undefined), false);
57
+ should_1.default.equal(utils_1.default.isValidBlockId(''), false);
58
+ });
59
+ it('should validate invalid block hash correctly', () => {
60
+ should_1.default.equal(utils_1.default.isValidBlockId(''), false);
61
+ should_1.default.equal(utils_1.default.isValidBlockId('0xade35465gfvdcsxsz24300'), false);
62
+ should_1.default.equal(utils_1.default.isValidBlockId(baby_1.blockHash.hash2 + 'ff'), false);
63
+ should_1.default.equal(utils_1.default.isValidBlockId('latest'), false);
64
+ });
65
+ it('should validate transaction id correctly', () => {
66
+ should_1.default.equal(utils_1.default.isValidTransactionId(baby_1.txIds.hash1), true);
67
+ should_1.default.equal(utils_1.default.isValidTransactionId(baby_1.txIds.hash2), true);
68
+ should_1.default.equal(utils_1.default.isValidTransactionId(baby_1.txIds.hash3), true);
69
+ });
70
+ it('should validate invalid transaction id correctly', () => {
71
+ should_1.default.equal(utils_1.default.isValidTransactionId(''), false);
72
+ should_1.default.equal(utils_1.default.isValidTransactionId(baby_1.txIds.hash1.slice(3)), false);
73
+ should_1.default.equal(utils_1.default.isValidTransactionId(baby_1.txIds.hash3 + '00'), false);
74
+ should_1.default.equal(utils_1.default.isValidTransactionId('dalij43ta0ga2dadda02'), false);
75
+ });
76
+ it('validateAmount', function () {
77
+ should_1.default.doesNotThrow(() => utils_1.default.validateAmountData([testData.coinAmounts.amount1]));
78
+ should_1.default.doesNotThrow(() => utils_1.default.validateAmountData([testData.coinAmounts.amount2]));
79
+ should_1.default.doesNotThrow(() => utils_1.default.validateAmountData([testData.coinAmounts.amount3]));
80
+ (0, should_1.default)(() => utils_1.default.validateAmountData([testData.coinAmounts.amount4])).throwError('transactionBuilder: validateAmount: Invalid amount: ' + testData.coinAmounts.amount4.amount);
81
+ (0, should_1.default)(() => utils_1.default.validateAmountData([testData.coinAmounts.amount5])).throwError('transactionBuilder: validateAmount: Invalid denom: ' + testData.coinAmounts.amount5.denom);
82
+ });
83
+ });
84
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidXRpbHMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi90ZXN0L3VuaXQvdXRpbHMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7QUFBQSxvREFBNEI7QUFDNUIsNENBQThEO0FBQzlELDREQUE4QztBQUM5QyxnRUFBd0M7QUFFeEMsUUFBUSxDQUFDLE9BQU8sRUFBRSxHQUFHLEVBQUU7SUFDckIsRUFBRSxDQUFDLHFDQUFxQyxFQUFFLEdBQUcsRUFBRTtRQUM3QyxnQkFBTSxDQUFDLEtBQUssQ0FBQyxlQUFLLENBQUMsY0FBYyxDQUFDLGNBQU8sQ0FBQyxRQUFRLENBQUMsRUFBRSxJQUFJLENBQUMsQ0FBQztRQUMzRCxnQkFBTSxDQUFDLEtBQUssQ0FBQyxlQUFLLENBQUMsY0FBYyxDQUFDLGNBQU8sQ0FBQyxRQUFRLENBQUMsRUFBRSxJQUFJLENBQUMsQ0FBQztRQUMzRCxnQkFBTSxDQUFDLEtBQUssQ0FBQyxlQUFLLENBQUMsY0FBYyxDQUFDLGNBQU8sQ0FBQyxRQUFRLENBQUMsRUFBRSxLQUFLLENBQUMsQ0FBQztRQUM1RCxnQkFBTSxDQUFDLEtBQUssQ0FBQyxlQUFLLENBQUMsY0FBYyxDQUFDLGNBQU8sQ0FBQyxRQUFRLENBQUMsRUFBRSxLQUFLLENBQUMsQ0FBQztRQUM1RCxnQkFBTSxDQUFDLEtBQUssQ0FBQyxlQUFLLENBQUMsY0FBYyxDQUFDLFNBQVMsQ0FBQyxFQUFFLEtBQUssQ0FBQyxDQUFDO1FBQ3JELGdCQUFNLENBQUMsS0FBSyxDQUFDLGVBQUssQ0FBQyxjQUFjLENBQUMsU0FBOEIsQ0FBQyxFQUFFLEtBQUssQ0FBQyxDQUFDO1FBQzFFLGdCQUFNLENBQUMsS0FBSyxDQUFDLGVBQUssQ0FBQyxjQUFjLENBQUMsRUFBRSxDQUFDLEVBQUUsS0FBSyxDQUFDLENBQUM7SUFDaEQsQ0FBQyxDQUFDLENBQUM7SUFFSCxFQUFFLENBQUMsc0NBQXNDLEVBQUUsR0FBRyxFQUFFO1FBQzlDLGdCQUFNLENBQUMsS0FBSyxDQUFDLGVBQUssQ0FBQyxjQUFjLENBQUMsZ0JBQVMsQ0FBQyxLQUFLLENBQUMsRUFBRSxJQUFJLENBQUMsQ0FBQztRQUMxRCxnQkFBTSxDQUFDLEtBQUssQ0FBQyxlQUFLLENBQUMsY0FBYyxDQUFDLGdCQUFTLENBQUMsS0FBSyxDQUFDLEVBQUUsSUFBSSxDQUFDLENBQUM7UUFDMUQsZ0JBQU0sQ0FBQyxLQUFLLENBQUMsZUFBSyxDQUFDLGNBQWMsQ0FBQyxTQUE4QixDQUFDLEVBQUUsS0FBSyxDQUFDLENBQUM7UUFDMUUsZ0JBQU0sQ0FBQyxLQUFLLENBQUMsZUFBSyxDQUFDLGNBQWMsQ0FBQyxFQUFFLENBQUMsRUFBRSxLQUFLLENBQUMsQ0FBQztJQUNoRCxDQUFDLENBQUMsQ0FBQztJQUVILEVBQUUsQ0FBQyw4Q0FBOEMsRUFBRSxHQUFHLEVBQUU7UUFDdEQsZ0JBQU0sQ0FBQyxLQUFLLENBQUMsZUFBSyxDQUFDLGNBQWMsQ0FBQyxFQUFFLENBQUMsRUFBRSxLQUFLLENBQUMsQ0FBQztRQUM5QyxnQkFBTSxDQUFDLEtBQUssQ0FBQyxlQUFLLENBQUMsY0FBYyxDQUFDLDBCQUEwQixDQUFDLEVBQUUsS0FBSyxDQUFDLENBQUM7UUFDdEUsZ0JBQU0sQ0FBQyxLQUFLLENBQUMsZUFBSyxDQUFDLGNBQWMsQ0FBQyxnQkFBUyxDQUFDLEtBQUssR0FBRyxJQUFJLENBQUMsRUFBRSxLQUFLLENBQUMsQ0FBQztRQUNsRSxnQkFBTSxDQUFDLEtBQUssQ0FBQyxlQUFLLENBQUMsY0FBYyxDQUFDLFFBQVEsQ0FBQyxFQUFFLEtBQUssQ0FBQyxDQUFDO0lBQ3RELENBQUMsQ0FBQyxDQUFDO0lBRUgsRUFBRSxDQUFDLDBDQUEwQyxFQUFFLEdBQUcsRUFBRTtRQUNsRCxnQkFBTSxDQUFDLEtBQUssQ0FBQyxlQUFLLENBQUMsb0JBQW9CLENBQUMsWUFBSyxDQUFDLEtBQUssQ0FBQyxFQUFFLElBQUksQ0FBQyxDQUFDO1FBQzVELGdCQUFNLENBQUMsS0FBSyxDQUFDLGVBQUssQ0FBQyxvQkFBb0IsQ0FBQyxZQUFLLENBQUMsS0FBSyxDQUFDLEVBQUUsSUFBSSxDQUFDLENBQUM7UUFDNUQsZ0JBQU0sQ0FBQyxLQUFLLENBQUMsZUFBSyxDQUFDLG9CQUFvQixDQUFDLFlBQUssQ0FBQyxLQUFLLENBQUMsRUFBRSxJQUFJLENBQUMsQ0FBQztJQUM5RCxDQUFDLENBQUMsQ0FBQztJQUVILEVBQUUsQ0FBQyxrREFBa0QsRUFBRSxHQUFHLEVBQUU7UUFDMUQsZ0JBQU0sQ0FBQyxLQUFLLENBQUMsZUFBSyxDQUFDLG9CQUFvQixDQUFDLEVBQUUsQ0FBQyxFQUFFLEtBQUssQ0FBQyxDQUFDO1FBQ3BELGdCQUFNLENBQUMsS0FBSyxDQUFDLGVBQUssQ0FBQyxvQkFBb0IsQ0FBQyxZQUFLLENBQUMsS0FBSyxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFFLEtBQUssQ0FBQyxDQUFDO1FBQ3RFLGdCQUFNLENBQUMsS0FBSyxDQUFDLGVBQUssQ0FBQyxvQkFBb0IsQ0FBQyxZQUFLLENBQUMsS0FBSyxHQUFHLElBQUksQ0FBQyxFQUFFLEtBQUssQ0FBQyxDQUFDO1FBQ3BFLGdCQUFNLENBQUMsS0FBSyxDQUFDLGVBQUssQ0FBQyxvQkFBb0IsQ0FBQyxzQkFBc0IsQ0FBQyxFQUFFLEtBQUssQ0FBQyxDQUFDO0lBQzFFLENBQUMsQ0FBQyxDQUFDO0lBRUgsRUFBRSxDQUFDLGdCQUFnQixFQUFFO1FBQ25CLGdCQUFNLENBQUMsWUFBWSxDQUFDLEdBQUcsRUFBRSxDQUFDLGVBQUssQ0FBQyxrQkFBa0IsQ0FBQyxDQUFDLFFBQVEsQ0FBQyxXQUFXLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQyxDQUFDO1FBQ3BGLGdCQUFNLENBQUMsWUFBWSxDQUFDLEdBQUcsRUFBRSxDQUFDLGVBQUssQ0FBQyxrQkFBa0IsQ0FBQyxDQUFDLFFBQVEsQ0FBQyxXQUFXLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQyxDQUFDO1FBQ3BGLGdCQUFNLENBQUMsWUFBWSxDQUFDLEdBQUcsRUFBRSxDQUFDLGVBQUssQ0FBQyxrQkFBa0IsQ0FBQyxDQUFDLFFBQVEsQ0FBQyxXQUFXLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQyxDQUFDO1FBQ3BGLElBQUEsZ0JBQU0sRUFBQyxHQUFHLEVBQUUsQ0FBQyxlQUFLLENBQUMsa0JBQWtCLENBQUMsQ0FBQyxRQUFRLENBQUMsV0FBVyxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUMsQ0FBQyxVQUFVLENBQy9FLHNEQUFzRCxHQUFHLFFBQVEsQ0FBQyxXQUFXLENBQUMsT0FBTyxDQUFDLE1BQU0sQ0FDN0YsQ0FBQztRQUNGLElBQUEsZ0JBQU0sRUFBQyxHQUFHLEVBQUUsQ0FBQyxlQUFLLENBQUMsa0JBQWtCLENBQUMsQ0FBQyxRQUFRLENBQUMsV0FBVyxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUMsQ0FBQyxVQUFVLENBQy9FLHFEQUFxRCxHQUFHLFFBQVEsQ0FBQyxXQUFXLENBQUMsT0FBTyxDQUFDLEtBQUssQ0FDM0YsQ0FBQztJQUNKLENBQUMsQ0FBQyxDQUFDO0FBQ0wsQ0FBQyxDQUFDLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgc2hvdWxkIGZyb20gJ3Nob3VsZCc7XG5pbXBvcnQgeyBhZGRyZXNzLCBibG9ja0hhc2gsIHR4SWRzIH0gZnJvbSAnLi4vcmVzb3VyY2VzL2JhYnknO1xuaW1wb3J0ICogYXMgdGVzdERhdGEgZnJvbSAnLi4vcmVzb3VyY2VzL2JhYnknO1xuaW1wb3J0IHV0aWxzIGZyb20gJy4uLy4uL3NyYy9saWIvdXRpbHMnO1xuXG5kZXNjcmliZSgndXRpbHMnLCAoKSA9PiB7XG4gIGl0KCdzaG91bGQgdmFsaWRhdGUgYWRkcmVzc2VzIGNvcnJlY3RseScsICgpID0+IHtcbiAgICBzaG91bGQuZXF1YWwodXRpbHMuaXNWYWxpZEFkZHJlc3MoYWRkcmVzcy5hZGRyZXNzMSksIHRydWUpO1xuICAgIHNob3VsZC5lcXVhbCh1dGlscy5pc1ZhbGlkQWRkcmVzcyhhZGRyZXNzLmFkZHJlc3MyKSwgdHJ1ZSk7XG4gICAgc2hvdWxkLmVxdWFsKHV0aWxzLmlzVmFsaWRBZGRyZXNzKGFkZHJlc3MuYWRkcmVzczMpLCBmYWxzZSk7XG4gICAgc2hvdWxkLmVxdWFsKHV0aWxzLmlzVmFsaWRBZGRyZXNzKGFkZHJlc3MuYWRkcmVzczQpLCBmYWxzZSk7XG4gICAgc2hvdWxkLmVxdWFsKHV0aWxzLmlzVmFsaWRBZGRyZXNzKCdkZmprMzV5JyksIGZhbHNlKTtcbiAgICBzaG91bGQuZXF1YWwodXRpbHMuaXNWYWxpZEFkZHJlc3ModW5kZWZpbmVkIGFzIHVua25vd24gYXMgc3RyaW5nKSwgZmFsc2UpO1xuICAgIHNob3VsZC5lcXVhbCh1dGlscy5pc1ZhbGlkQWRkcmVzcygnJyksIGZhbHNlKTtcbiAgfSk7XG5cbiAgaXQoJ3Nob3VsZCB2YWxpZGF0ZSBibG9jayBoYXNoIGNvcnJlY3RseScsICgpID0+IHtcbiAgICBzaG91bGQuZXF1YWwodXRpbHMuaXNWYWxpZEJsb2NrSWQoYmxvY2tIYXNoLmhhc2gxKSwgdHJ1ZSk7XG4gICAgc2hvdWxkLmVxdWFsKHV0aWxzLmlzVmFsaWRCbG9ja0lkKGJsb2NrSGFzaC5oYXNoMiksIHRydWUpO1xuICAgIHNob3VsZC5lcXVhbCh1dGlscy5pc1ZhbGlkQmxvY2tJZCh1bmRlZmluZWQgYXMgdW5rbm93biBhcyBzdHJpbmcpLCBmYWxzZSk7XG4gICAgc2hvdWxkLmVxdWFsKHV0aWxzLmlzVmFsaWRCbG9ja0lkKCcnKSwgZmFsc2UpO1xuICB9KTtcblxuICBpdCgnc2hvdWxkIHZhbGlkYXRlIGludmFsaWQgYmxvY2sgaGFzaCBjb3JyZWN0bHknLCAoKSA9PiB7XG4gICAgc2hvdWxkLmVxdWFsKHV0aWxzLmlzVmFsaWRCbG9ja0lkKCcnKSwgZmFsc2UpO1xuICAgIHNob3VsZC5lcXVhbCh1dGlscy5pc1ZhbGlkQmxvY2tJZCgnMHhhZGUzNTQ2NWdmdmRjc3hzejI0MzAwJyksIGZhbHNlKTtcbiAgICBzaG91bGQuZXF1YWwodXRpbHMuaXNWYWxpZEJsb2NrSWQoYmxvY2tIYXNoLmhhc2gyICsgJ2ZmJyksIGZhbHNlKTtcbiAgICBzaG91bGQuZXF1YWwodXRpbHMuaXNWYWxpZEJsb2NrSWQoJ2xhdGVzdCcpLCBmYWxzZSk7XG4gIH0pO1xuXG4gIGl0KCdzaG91bGQgdmFsaWRhdGUgdHJhbnNhY3Rpb24gaWQgY29ycmVjdGx5JywgKCkgPT4ge1xuICAgIHNob3VsZC5lcXVhbCh1dGlscy5pc1ZhbGlkVHJhbnNhY3Rpb25JZCh0eElkcy5oYXNoMSksIHRydWUpO1xuICAgIHNob3VsZC5lcXVhbCh1dGlscy5pc1ZhbGlkVHJhbnNhY3Rpb25JZCh0eElkcy5oYXNoMiksIHRydWUpO1xuICAgIHNob3VsZC5lcXVhbCh1dGlscy5pc1ZhbGlkVHJhbnNhY3Rpb25JZCh0eElkcy5oYXNoMyksIHRydWUpO1xuICB9KTtcblxuICBpdCgnc2hvdWxkIHZhbGlkYXRlIGludmFsaWQgdHJhbnNhY3Rpb24gaWQgY29ycmVjdGx5JywgKCkgPT4ge1xuICAgIHNob3VsZC5lcXVhbCh1dGlscy5pc1ZhbGlkVHJhbnNhY3Rpb25JZCgnJyksIGZhbHNlKTtcbiAgICBzaG91bGQuZXF1YWwodXRpbHMuaXNWYWxpZFRyYW5zYWN0aW9uSWQodHhJZHMuaGFzaDEuc2xpY2UoMykpLCBmYWxzZSk7XG4gICAgc2hvdWxkLmVxdWFsKHV0aWxzLmlzVmFsaWRUcmFuc2FjdGlvbklkKHR4SWRzLmhhc2gzICsgJzAwJyksIGZhbHNlKTtcbiAgICBzaG91bGQuZXF1YWwodXRpbHMuaXNWYWxpZFRyYW5zYWN0aW9uSWQoJ2RhbGlqNDN0YTBnYTJkYWRkYTAyJyksIGZhbHNlKTtcbiAgfSk7XG5cbiAgaXQoJ3ZhbGlkYXRlQW1vdW50JywgZnVuY3Rpb24gKCkge1xuICAgIHNob3VsZC5kb2VzTm90VGhyb3coKCkgPT4gdXRpbHMudmFsaWRhdGVBbW91bnREYXRhKFt0ZXN0RGF0YS5jb2luQW1vdW50cy5hbW91bnQxXSkpO1xuICAgIHNob3VsZC5kb2VzTm90VGhyb3coKCkgPT4gdXRpbHMudmFsaWRhdGVBbW91bnREYXRhKFt0ZXN0RGF0YS5jb2luQW1vdW50cy5hbW91bnQyXSkpO1xuICAgIHNob3VsZC5kb2VzTm90VGhyb3coKCkgPT4gdXRpbHMudmFsaWRhdGVBbW91bnREYXRhKFt0ZXN0RGF0YS5jb2luQW1vdW50cy5hbW91bnQzXSkpO1xuICAgIHNob3VsZCgoKSA9PiB1dGlscy52YWxpZGF0ZUFtb3VudERhdGEoW3Rlc3REYXRhLmNvaW5BbW91bnRzLmFtb3VudDRdKSkudGhyb3dFcnJvcihcbiAgICAgICd0cmFuc2FjdGlvbkJ1aWxkZXI6IHZhbGlkYXRlQW1vdW50OiBJbnZhbGlkIGFtb3VudDogJyArIHRlc3REYXRhLmNvaW5BbW91bnRzLmFtb3VudDQuYW1vdW50XG4gICAgKTtcbiAgICBzaG91bGQoKCkgPT4gdXRpbHMudmFsaWRhdGVBbW91bnREYXRhKFt0ZXN0RGF0YS5jb2luQW1vdW50cy5hbW91bnQ1XSkpLnRocm93RXJyb3IoXG4gICAgICAndHJhbnNhY3Rpb25CdWlsZGVyOiB2YWxpZGF0ZUFtb3VudDogSW52YWxpZCBkZW5vbTogJyArIHRlc3REYXRhLmNvaW5BbW91bnRzLmFtb3VudDUuZGVub21cbiAgICApO1xuICB9KTtcbn0pO1xuIl19