hive-stream 2.0.5 → 3.0.0

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 (89) hide show
  1. package/.claude/settings.local.json +12 -0
  2. package/.env.example +2 -2
  3. package/.travis.yml +11 -11
  4. package/CHANGELOG.md +166 -0
  5. package/CLAUDE.md +75 -0
  6. package/LICENSE +21 -21
  7. package/README.md +338 -238
  8. package/dist/actions.d.ts +41 -10
  9. package/dist/actions.js +126 -23
  10. package/dist/actions.js.map +1 -1
  11. package/dist/adapters/base.adapter.d.ts +25 -25
  12. package/dist/adapters/base.adapter.js +63 -49
  13. package/dist/adapters/base.adapter.js.map +1 -1
  14. package/dist/adapters/mongodb.adapter.d.ts +50 -37
  15. package/dist/adapters/mongodb.adapter.js +363 -158
  16. package/dist/adapters/mongodb.adapter.js.map +1 -1
  17. package/dist/adapters/postgresql.adapter.d.ts +49 -0
  18. package/dist/adapters/postgresql.adapter.js +507 -0
  19. package/dist/adapters/postgresql.adapter.js.map +1 -0
  20. package/dist/adapters/sqlite.adapter.d.ts +40 -41
  21. package/dist/adapters/sqlite.adapter.js +470 -397
  22. package/dist/adapters/sqlite.adapter.js.map +1 -1
  23. package/dist/api.d.ts +6 -6
  24. package/dist/api.js +95 -55
  25. package/dist/api.js.map +1 -1
  26. package/dist/config.d.ts +16 -16
  27. package/dist/config.js +18 -18
  28. package/dist/config.js.map +1 -1
  29. package/dist/contracts/coinflip.contract.d.ts +27 -14
  30. package/dist/contracts/coinflip.contract.js +253 -94
  31. package/dist/contracts/coinflip.contract.js.map +1 -1
  32. package/dist/contracts/dice.contract.d.ts +37 -29
  33. package/dist/contracts/dice.contract.js +282 -155
  34. package/dist/contracts/dice.contract.js.map +1 -1
  35. package/dist/contracts/lotto.contract.d.ts +20 -20
  36. package/dist/contracts/lotto.contract.js +246 -246
  37. package/dist/contracts/nft.contract.d.ts +24 -0
  38. package/dist/contracts/nft.contract.js +533 -0
  39. package/dist/contracts/nft.contract.js.map +1 -0
  40. package/dist/contracts/token.contract.d.ts +18 -0
  41. package/dist/contracts/token.contract.js +263 -0
  42. package/dist/contracts/token.contract.js.map +1 -0
  43. package/dist/exchanges/bittrex.d.ts +6 -6
  44. package/dist/exchanges/bittrex.js +34 -34
  45. package/dist/exchanges/coingecko.d.ts +5 -0
  46. package/dist/exchanges/coingecko.js +40 -0
  47. package/dist/exchanges/coingecko.js.map +1 -0
  48. package/dist/exchanges/exchange.d.ts +9 -9
  49. package/dist/exchanges/exchange.js +26 -26
  50. package/dist/hive-rates.d.ts +9 -9
  51. package/dist/hive-rates.js +121 -75
  52. package/dist/hive-rates.js.map +1 -1
  53. package/dist/index.d.ts +12 -11
  54. package/dist/index.js +33 -32
  55. package/dist/index.js.map +1 -1
  56. package/dist/streamer.d.ts +140 -93
  57. package/dist/streamer.js +793 -545
  58. package/dist/streamer.js.map +1 -1
  59. package/dist/test.d.ts +1 -1
  60. package/dist/test.js +25 -25
  61. package/dist/test.js.map +1 -1
  62. package/dist/types/hive-stream.d.ts +35 -6
  63. package/dist/types/hive-stream.js +2 -2
  64. package/dist/utils.d.ts +27 -27
  65. package/dist/utils.js +271 -261
  66. package/dist/utils.js.map +1 -1
  67. package/ecosystem.config.js +17 -17
  68. package/jest.config.js +8 -8
  69. package/package.json +53 -48
  70. package/test-contract-block.md +18 -18
  71. package/tests/actions.spec.ts +252 -0
  72. package/tests/adapters/actions-persistence.spec.ts +144 -0
  73. package/tests/adapters/postgresql.adapter.spec.ts +127 -0
  74. package/tests/adapters/sqlite.adapter.spec.ts +180 -42
  75. package/tests/contracts/coinflip.contract.spec.ts +221 -131
  76. package/tests/contracts/dice.contract.spec.ts +202 -159
  77. package/tests/contracts/entrants.json +728 -728
  78. package/tests/contracts/lotto.contract.spec.ts +323 -323
  79. package/tests/contracts/nft.contract.spec.ts +948 -0
  80. package/tests/contracts/token.contract.spec.ts +334 -0
  81. package/tests/helpers/mock-adapter.ts +214 -0
  82. package/tests/setup.ts +29 -18
  83. package/tests/streamer-actions.spec.ts +263 -0
  84. package/tests/streamer.spec.ts +248 -151
  85. package/tests/utils.spec.ts +91 -94
  86. package/tsconfig.build.json +3 -22
  87. package/tslint.json +20 -20
  88. package/wallaby.js +26 -26
  89. package/.env +0 -3
package/dist/utils.js CHANGED
@@ -1,262 +1,272 @@
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
- exports.Utils = void 0;
7
- const hive_rates_1 = require("./hive-rates");
8
- const dhive_1 = require("@hiveio/dhive");
9
- const seedrandom_1 = __importDefault(require("seedrandom"));
10
- const MAX_PAYLOAD_SIZE = 2000;
11
- const MAX_ACCOUNTS_CHECK = 999;
12
- exports.Utils = {
13
- // https://flaviocopes.com/javascript-sleep/
14
- sleep(milliseconds) {
15
- return new Promise((resolve) => setTimeout(resolve, milliseconds));
16
- },
17
- // Fisher Yates shuffle
18
- shuffle(array) {
19
- let currentIndex = array.length;
20
- let temporaryValue;
21
- let randomIndex;
22
- while (0 !== currentIndex) {
23
- // Pick a remaining element...
24
- randomIndex = Math.floor(Math.random() * currentIndex);
25
- currentIndex -= 1;
26
- temporaryValue = array[currentIndex];
27
- array[currentIndex] = array[randomIndex];
28
- array[randomIndex] = temporaryValue;
29
- }
30
- return array;
31
- },
32
- roundPrecision(value, precision) {
33
- const NUMBER_SIGN = value >= 0 ? 1 : -1;
34
- return parseFloat((Math.round((value * Math.pow(10, precision)) + (NUMBER_SIGN * 0.0001)) / Math.pow(10, precision)).toFixed(precision));
35
- },
36
- randomRange(min = 0, max = 2000) {
37
- return (!isNaN(min) && !isNaN(max) ? Math.floor(Math.random() * (max - min + 1)) + min : NaN);
38
- },
39
- randomString(length = 12) {
40
- let str = '';
41
- const characters = '0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ';
42
- const max = characters.length - 1;
43
- for (let i = 0; i < length; i++) {
44
- str += characters[exports.Utils.randomRange(0, max)];
45
- }
46
- return str;
47
- },
48
- async convertHiveAmount(amount, fiatSymbol, hiveSymbol) {
49
- if (fiatSymbol === hiveSymbol) {
50
- return amount;
51
- }
52
- const rates = new hive_rates_1.HiveRates();
53
- await rates.fetchRates();
54
- const rate = rates.fiatToHiveRate(fiatSymbol, hiveSymbol);
55
- const total = amount / rate;
56
- return rate > 0 ? exports.Utils.roundPrecision(total, 3) : 0;
57
- },
58
- jsonParse(str) {
59
- let obj = null;
60
- try {
61
- obj = JSON.parse(str);
62
- }
63
- catch {
64
- // We don't do anything
65
- }
66
- return obj;
67
- },
68
- async getTransaction(client, blockNumber, transactionId) {
69
- const block = await client.database.getBlock(blockNumber);
70
- const exists = block.transaction_ids.includes(transactionId);
71
- const index = block.transaction_ids.indexOf(transactionId);
72
- if (!exists) {
73
- throw new Error(`Unable to find transaction ${transactionId} in block ${blockNumber}`);
74
- }
75
- return block.transactions[index];
76
- },
77
- async verifyTransfer(transaction, from, to, amount) {
78
- const operation = transaction.operations[0][1];
79
- return (operation.from === from && operation.to === to && operation.amount === amount);
80
- },
81
- transferHiveTokens(client, config, from, to, amount, symbol, memo = '') {
82
- const key = dhive_1.PrivateKey.fromString(config.ACTIVE_KEY);
83
- return client.broadcast.transfer({ from, to, amount: `${parseFloat(amount).toFixed(3)} ${symbol}`, memo }, key);
84
- },
85
- async transferHiveTokensMultiple(client, config, from, accounts, amount = '0', symbol, memo) {
86
- const key = dhive_1.PrivateKey.fromString(config.ACTIVE_KEY);
87
- let completed = 0;
88
- for (const user of accounts) {
89
- const to = user.replace('@', '');
90
- await client.broadcast.transfer({ from, to, amount: `${parseFloat(amount).toFixed(3)} ${symbol}`, memo }, key);
91
- completed++;
92
- await this.sleep(3000);
93
- }
94
- if (completed === accounts.length) {
95
- return true;
96
- }
97
- },
98
- async getAccountTransfers(client, account, from = -1, max = 100) {
99
- const history = await client.call('condenser_api', 'get_account_history', [account, from, max]);
100
- const transfers = history.filter(tx => tx[1].op[0] === 'transfer');
101
- const actualTransfers = transfers.reduce((arr, tx) => {
102
- const transaction = tx[1].op[1];
103
- const date = new Date(`${tx[1].timestamp}Z`);
104
- transaction.date = date;
105
- arr.push(transaction);
106
- return arr;
107
- }, []);
108
- return actualTransfers;
109
- },
110
- async getApiJson(client, from = -1, limit = 500) {
111
- const history = await client.call('condenser_api', 'get_account_history', ['hiveapi', from, limit]);
112
- const customJson = history.filter(tx => tx[1].op[0] === 'custom_json');
113
- const actualJson = customJson.reduce((arr, tx) => {
114
- const transaction = tx[1].op[1];
115
- const date = new Date(`${tx[1].timestamp}Z`);
116
- transaction.date = date;
117
- arr.push(transaction);
118
- return arr;
119
- }, []);
120
- return actualJson;
121
- },
122
- transferHiveEngineTokens(client, config, from, to, quantity, symbol, memo = '') {
123
- const key = dhive_1.PrivateKey.fromString(config.ACTIVE_KEY);
124
- const json = {
125
- contractName: 'tokens',
126
- contractAction: 'transfer',
127
- contractPayload: {
128
- symbol: symbol.toUpperCase(),
129
- to,
130
- quantity,
131
- memo,
132
- }
133
- };
134
- return client.broadcast.json({ required_auths: [from], required_posting_auths: [], id: config.HIVE_ENGINE_ID, json: JSON.stringify(json) }, key);
135
- },
136
- async transferHiveEngineTokensMultiple(client, config, from, accounts, symbol, memo, amount = '0') {
137
- const key = dhive_1.PrivateKey.fromString(config.ACTIVE_KEY);
138
- const payloads = [[]];
139
- let completed = 0;
140
- for (const user of accounts) {
141
- const account = user.account.replace('@', '');
142
- const quantity = user.amount ? parseFloat(user.amount.replace(',', '.')).toString() : parseFloat(amount).toString();
143
- // 0 means no quantity supplied (either in accounts or default)
144
- if (parseFloat(quantity) > 0) {
145
- const json = {
146
- contractName: 'tokens',
147
- contractAction: 'transfer',
148
- contractPayload: {
149
- symbol: symbol.toUpperCase(),
150
- to: account,
151
- quantity,
152
- memo,
153
- },
154
- };
155
- const lastPayloadSize = JSON.stringify(payloads[payloads.length - 1]).length;
156
- const payloadSize = JSON.stringify(json).length;
157
- if (payloadSize + lastPayloadSize > MAX_PAYLOAD_SIZE) {
158
- payloads.push([json]);
159
- }
160
- else {
161
- payloads[payloads.length - 1].push(json);
162
- }
163
- }
164
- }
165
- for (const payload of payloads) {
166
- const requiredAuths = [from];
167
- const requiredPostingAuths = [];
168
- await client.broadcast.json({ required_auths: requiredAuths, required_posting_auths: requiredPostingAuths, id: config.HIVE_ENGINE_ID, json: JSON.stringify(payload) }, key);
169
- completed++;
170
- if (completed !== (payloads.length) && completed !== 0) {
171
- await this.sleep(3000);
172
- }
173
- }
174
- },
175
- issueHiveEngineTokens(client, config, from, to, symbol, quantity, memo = '') {
176
- const key = dhive_1.PrivateKey.fromString(config.ACTIVE_KEY);
177
- const json = {
178
- contractName: 'tokens',
179
- contractAction: 'issue',
180
- contractPayload: {
181
- symbol,
182
- to,
183
- quantity,
184
- memo,
185
- },
186
- };
187
- if (config.DEBUG_MODE) {
188
- console.log(`Issuing Hive Engine Token: `, json, JSON.stringify(json));
189
- }
190
- return client.broadcast.json({ required_auths: [from], required_posting_auths: [], id: config.HIVE_ENGINE_ID, json: JSON.stringify(json) }, key);
191
- },
192
- async issueHiveEngineTokensMultiple(client, config, from, accounts, symbol, memo, amount = '0') {
193
- const key = dhive_1.PrivateKey.fromString(config.ACTIVE_KEY);
194
- const payloads = [[]];
195
- let completed = 0;
196
- for (const user of accounts) {
197
- const to = user.account.replace('@', '');
198
- const quantity = user.amount ? parseFloat(user.amount.replace(',', '.')).toString() : parseFloat(amount).toString();
199
- // 0 means no quantity supplied (either in accounts or default)
200
- if (parseFloat(quantity) > 0) {
201
- const json = {
202
- contractName: 'tokens',
203
- contractAction: 'issue',
204
- contractPayload: {
205
- symbol: symbol.toUpperCase(),
206
- to,
207
- quantity,
208
- memo,
209
- },
210
- };
211
- const lastPayloadSize = JSON.stringify(payloads[payloads.length - 1]).length;
212
- const payloadSize = JSON.stringify(json).length;
213
- if (payloadSize + lastPayloadSize > MAX_PAYLOAD_SIZE) {
214
- payloads.push([json]);
215
- }
216
- else {
217
- payloads[payloads.length - 1].push(json);
218
- }
219
- }
220
- }
221
- for (const payload of payloads) {
222
- const requiredAuths = [from];
223
- const requiredPostingAuths = null;
224
- await client.broadcast.json({ required_auths: requiredAuths, required_posting_auths: requiredPostingAuths, id: config.HIVE_ENGINE_ID, json: JSON.stringify(payload) }, key);
225
- completed++;
226
- if (completed !== (payloads.length) && completed !== 0) {
227
- await this.sleep(3000);
228
- }
229
- }
230
- },
231
- randomNumber(previousBlockId, blockId, transactionId) {
232
- const random = (0, seedrandom_1.default)(`${previousBlockId}${blockId}${transactionId}`).double();
233
- const randomRoll = Math.floor(random * 100) + 1;
234
- return randomRoll;
235
- },
236
- upvote(client, config, voter, votePercentage = '100.0', author, permlink) {
237
- const percentage = parseFloat(votePercentage);
238
- const key = dhive_1.PrivateKey.fromString(config.POSTING_KEY);
239
- if (percentage < 0) {
240
- throw new Error('Negative voting values are for downvotes, not upvotes');
241
- }
242
- const weight = this.votingWeight(percentage);
243
- return client.broadcast.vote({ voter, author, permlink, weight }, key);
244
- },
245
- downvote(client, config, voter, votePercentage = '100.0', author, permlink) {
246
- const weight = this.votingWeight(parseFloat(votePercentage)) * -1;
247
- const key = dhive_1.PrivateKey.fromString(config.POSTING_KEY);
248
- return client.broadcast.vote({ voter, author, permlink, weight }, key);
249
- },
250
- votingWeight(votePercentage) {
251
- return Math.min(Math.floor(parseFloat(votePercentage.toFixed(2)) * 100), 10000);
252
- },
253
- async asyncForEach(array, callback) {
254
- for (let index = 0; index < array.length; index++) {
255
- await callback(array[index], index, array);
256
- }
257
- },
258
- getTransferUrl(to, memo, amount, redirectUri) {
259
- return `https://hivesigner.com/sign/transfer?to=${to}&memo=${memo}&amount=${amount}&redirect_uri=${redirectUri}`;
260
- }
261
- };
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
+ exports.Utils = void 0;
7
+ const hive_rates_1 = require("./hive-rates");
8
+ const dhive_1 = require("@hiveio/dhive");
9
+ const config_1 = require("./config");
10
+ const seedrandom_1 = __importDefault(require("seedrandom"));
11
+ const MAX_PAYLOAD_SIZE = 2000;
12
+ const MAX_ACCOUNTS_CHECK = 999;
13
+ exports.Utils = {
14
+ // https://flaviocopes.com/javascript-sleep/
15
+ sleep(milliseconds) {
16
+ return new Promise((resolve) => setTimeout(resolve, milliseconds));
17
+ },
18
+ // Fisher Yates shuffle
19
+ shuffle(array) {
20
+ let currentIndex = array.length;
21
+ let temporaryValue;
22
+ let randomIndex;
23
+ while (0 !== currentIndex) {
24
+ // Pick a remaining element...
25
+ randomIndex = Math.floor(Math.random() * currentIndex);
26
+ currentIndex -= 1;
27
+ temporaryValue = array[currentIndex];
28
+ array[currentIndex] = array[randomIndex];
29
+ array[randomIndex] = temporaryValue;
30
+ }
31
+ return array;
32
+ },
33
+ roundPrecision(value, precision) {
34
+ const NUMBER_SIGN = value >= 0 ? 1 : -1;
35
+ return parseFloat((Math.round((value * Math.pow(10, precision)) + (NUMBER_SIGN * 0.0001)) / Math.pow(10, precision)).toFixed(precision));
36
+ },
37
+ randomRange(min = 0, max = 2000) {
38
+ return (!isNaN(min) && !isNaN(max) ? Math.floor(Math.random() * (max - min + 1)) + min : NaN);
39
+ },
40
+ randomString(length = 12) {
41
+ let str = '';
42
+ const characters = '0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ';
43
+ const max = characters.length - 1;
44
+ for (let i = 0; i < length; i++) {
45
+ str += characters[exports.Utils.randomRange(0, max)];
46
+ }
47
+ return str;
48
+ },
49
+ async convertHiveAmount(amount, fiatSymbol, hiveSymbol) {
50
+ if (fiatSymbol === hiveSymbol) {
51
+ return amount;
52
+ }
53
+ const rates = new hive_rates_1.HiveRates();
54
+ await rates.fetchRates();
55
+ const rate = rates.fiatToHiveRate(fiatSymbol, hiveSymbol);
56
+ const total = amount / rate;
57
+ return rate > 0 ? exports.Utils.roundPrecision(total, 3) : 0;
58
+ },
59
+ jsonParse(str) {
60
+ if (!str || typeof str !== 'string') {
61
+ return null;
62
+ }
63
+ let obj = null;
64
+ try {
65
+ obj = JSON.parse(str);
66
+ }
67
+ catch (e) {
68
+ if (config_1.Config.DEBUG_MODE) {
69
+ const error = e instanceof Error ? e : new Error(String(e));
70
+ console.warn(`[Utils] JSON parse failed: ${error.message}`, {
71
+ input: str.substring(0, 100) + (str.length > 100 ? '...' : ''),
72
+ stack: error.stack
73
+ });
74
+ }
75
+ }
76
+ return obj;
77
+ },
78
+ async getTransaction(client, blockNumber, transactionId) {
79
+ const block = await client.database.getBlock(blockNumber);
80
+ const exists = block.transaction_ids.includes(transactionId);
81
+ const index = block.transaction_ids.indexOf(transactionId);
82
+ if (!exists) {
83
+ throw new Error(`Unable to find transaction ${transactionId} in block ${blockNumber}`);
84
+ }
85
+ return block.transactions[index];
86
+ },
87
+ async verifyTransfer(transaction, from, to, amount) {
88
+ const operation = transaction.operations[0][1];
89
+ return (operation.from === from && operation.to === to && operation.amount === amount);
90
+ },
91
+ transferHiveTokens(client, config, from, to, amount, symbol, memo = '') {
92
+ const key = dhive_1.PrivateKey.fromString(config.ACTIVE_KEY);
93
+ return client.broadcast.transfer({ from, to, amount: `${parseFloat(amount).toFixed(3)} ${symbol}`, memo }, key);
94
+ },
95
+ async transferHiveTokensMultiple(client, config, from, accounts, amount = '0', symbol, memo) {
96
+ const key = dhive_1.PrivateKey.fromString(config.ACTIVE_KEY);
97
+ let completed = 0;
98
+ for (const user of accounts) {
99
+ const to = user.replace('@', '');
100
+ await client.broadcast.transfer({ from, to, amount: `${parseFloat(amount).toFixed(3)} ${symbol}`, memo }, key);
101
+ completed++;
102
+ await this.sleep(3000);
103
+ }
104
+ if (completed === accounts.length) {
105
+ return true;
106
+ }
107
+ },
108
+ async getAccountTransfers(client, account, from = -1, max = 100) {
109
+ const history = await client.call('condenser_api', 'get_account_history', [account, from, max]);
110
+ const transfers = history.filter(tx => tx[1].op[0] === 'transfer');
111
+ const actualTransfers = transfers.reduce((arr, tx) => {
112
+ const transaction = tx[1].op[1];
113
+ const date = new Date(`${tx[1].timestamp}Z`);
114
+ transaction.date = date;
115
+ arr.push(transaction);
116
+ return arr;
117
+ }, []);
118
+ return actualTransfers;
119
+ },
120
+ async getApiJson(client, from = -1, limit = 500) {
121
+ const history = await client.call('condenser_api', 'get_account_history', ['hiveapi', from, limit]);
122
+ const customJson = history.filter(tx => tx[1].op[0] === 'custom_json');
123
+ const actualJson = customJson.reduce((arr, tx) => {
124
+ const transaction = tx[1].op[1];
125
+ const date = new Date(`${tx[1].timestamp}Z`);
126
+ transaction.date = date;
127
+ arr.push(transaction);
128
+ return arr;
129
+ }, []);
130
+ return actualJson;
131
+ },
132
+ transferHiveEngineTokens(client, config, from, to, quantity, symbol, memo = '') {
133
+ const key = dhive_1.PrivateKey.fromString(config.ACTIVE_KEY);
134
+ const json = {
135
+ contractName: 'tokens',
136
+ contractAction: 'transfer',
137
+ contractPayload: {
138
+ symbol: symbol.toUpperCase(),
139
+ to,
140
+ quantity,
141
+ memo,
142
+ }
143
+ };
144
+ return client.broadcast.json({ required_auths: [from], required_posting_auths: [], id: config.HIVE_ENGINE_ID, json: JSON.stringify(json) }, key);
145
+ },
146
+ async transferHiveEngineTokensMultiple(client, config, from, accounts, symbol, memo, amount = '0') {
147
+ const key = dhive_1.PrivateKey.fromString(config.ACTIVE_KEY);
148
+ const payloads = [[]];
149
+ let completed = 0;
150
+ for (const user of accounts) {
151
+ const account = user.account.replace('@', '');
152
+ const quantity = user.amount ? parseFloat(user.amount.replace(',', '.')).toString() : parseFloat(amount).toString();
153
+ // 0 means no quantity supplied (either in accounts or default)
154
+ if (parseFloat(quantity) > 0) {
155
+ const json = {
156
+ contractName: 'tokens',
157
+ contractAction: 'transfer',
158
+ contractPayload: {
159
+ symbol: symbol.toUpperCase(),
160
+ to: account,
161
+ quantity,
162
+ memo,
163
+ },
164
+ };
165
+ const lastPayloadSize = JSON.stringify(payloads[payloads.length - 1]).length;
166
+ const payloadSize = JSON.stringify(json).length;
167
+ if (payloadSize + lastPayloadSize > MAX_PAYLOAD_SIZE) {
168
+ payloads.push([json]);
169
+ }
170
+ else {
171
+ payloads[payloads.length - 1].push(json);
172
+ }
173
+ }
174
+ }
175
+ for (const payload of payloads) {
176
+ const requiredAuths = [from];
177
+ const requiredPostingAuths = [];
178
+ await client.broadcast.json({ required_auths: requiredAuths, required_posting_auths: requiredPostingAuths, id: config.HIVE_ENGINE_ID, json: JSON.stringify(payload) }, key);
179
+ completed++;
180
+ if (completed !== (payloads.length) && completed !== 0) {
181
+ await this.sleep(3000);
182
+ }
183
+ }
184
+ },
185
+ issueHiveEngineTokens(client, config, from, to, symbol, quantity, memo = '') {
186
+ const key = dhive_1.PrivateKey.fromString(config.ACTIVE_KEY);
187
+ const json = {
188
+ contractName: 'tokens',
189
+ contractAction: 'issue',
190
+ contractPayload: {
191
+ symbol,
192
+ to,
193
+ quantity,
194
+ memo,
195
+ },
196
+ };
197
+ if (config.DEBUG_MODE) {
198
+ console.log(`Issuing Hive Engine Token: `, json, JSON.stringify(json));
199
+ }
200
+ return client.broadcast.json({ required_auths: [from], required_posting_auths: [], id: config.HIVE_ENGINE_ID, json: JSON.stringify(json) }, key);
201
+ },
202
+ async issueHiveEngineTokensMultiple(client, config, from, accounts, symbol, memo, amount = '0') {
203
+ const key = dhive_1.PrivateKey.fromString(config.ACTIVE_KEY);
204
+ const payloads = [[]];
205
+ let completed = 0;
206
+ for (const user of accounts) {
207
+ const to = user.account.replace('@', '');
208
+ const quantity = user.amount ? parseFloat(user.amount.replace(',', '.')).toString() : parseFloat(amount).toString();
209
+ // 0 means no quantity supplied (either in accounts or default)
210
+ if (parseFloat(quantity) > 0) {
211
+ const json = {
212
+ contractName: 'tokens',
213
+ contractAction: 'issue',
214
+ contractPayload: {
215
+ symbol: symbol.toUpperCase(),
216
+ to,
217
+ quantity,
218
+ memo,
219
+ },
220
+ };
221
+ const lastPayloadSize = JSON.stringify(payloads[payloads.length - 1]).length;
222
+ const payloadSize = JSON.stringify(json).length;
223
+ if (payloadSize + lastPayloadSize > MAX_PAYLOAD_SIZE) {
224
+ payloads.push([json]);
225
+ }
226
+ else {
227
+ payloads[payloads.length - 1].push(json);
228
+ }
229
+ }
230
+ }
231
+ for (const payload of payloads) {
232
+ const requiredAuths = [from];
233
+ const requiredPostingAuths = null;
234
+ await client.broadcast.json({ required_auths: requiredAuths, required_posting_auths: requiredPostingAuths, id: config.HIVE_ENGINE_ID, json: JSON.stringify(payload) }, key);
235
+ completed++;
236
+ if (completed !== (payloads.length) && completed !== 0) {
237
+ await this.sleep(3000);
238
+ }
239
+ }
240
+ },
241
+ randomNumber(previousBlockId, blockId, transactionId) {
242
+ const random = (0, seedrandom_1.default)(`${previousBlockId}${blockId}${transactionId}`).double();
243
+ const randomRoll = Math.floor(random * 100) + 1;
244
+ return randomRoll;
245
+ },
246
+ upvote(client, config, voter, votePercentage = '100.0', author, permlink) {
247
+ const percentage = parseFloat(votePercentage);
248
+ const key = dhive_1.PrivateKey.fromString(config.POSTING_KEY);
249
+ if (percentage < 0) {
250
+ throw new Error('Negative voting values are for downvotes, not upvotes');
251
+ }
252
+ const weight = this.votingWeight(percentage);
253
+ return client.broadcast.vote({ voter, author, permlink, weight }, key);
254
+ },
255
+ downvote(client, config, voter, votePercentage = '100.0', author, permlink) {
256
+ const weight = this.votingWeight(parseFloat(votePercentage)) * -1;
257
+ const key = dhive_1.PrivateKey.fromString(config.POSTING_KEY);
258
+ return client.broadcast.vote({ voter, author, permlink, weight }, key);
259
+ },
260
+ votingWeight(votePercentage) {
261
+ return Math.min(Math.floor(parseFloat(votePercentage.toFixed(2)) * 100), 10000);
262
+ },
263
+ async asyncForEach(array, callback) {
264
+ for (let index = 0; index < array.length; index++) {
265
+ await callback(array[index], index, array);
266
+ }
267
+ },
268
+ getTransferUrl(to, memo, amount, redirectUri) {
269
+ return `https://hivesigner.com/sign/transfer?to=${to}&memo=${memo}&amount=${amount}&redirect_uri=${redirectUri}`;
270
+ }
271
+ };
262
272
  //# sourceMappingURL=utils.js.map
package/dist/utils.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"utils.js","sourceRoot":"","sources":["../src/utils.ts"],"names":[],"mappings":";;;;;;AAAA,6CAAyC;AACzC,yCAAsE;AAEtE,4DAAoC;AAEpC,MAAM,gBAAgB,GAAG,IAAI,CAAC;AAC9B,MAAM,kBAAkB,GAAG,GAAG,CAAC;AAElB,QAAA,KAAK,GAAG;IAEjB,4CAA4C;IAC5C,KAAK,CAAC,YAAoB;QACtB,OAAO,IAAI,OAAO,CAAC,CAAC,OAAO,EAAE,EAAE,CAAC,UAAU,CAAC,OAAO,EAAE,YAAY,CAAC,CAAC,CAAC;IACvE,CAAC;IAED,uBAAuB;IACvB,OAAO,CAAC,KAAK;QACT,IAAI,YAAY,GAAG,KAAK,CAAC,MAAM,CAAC;QAChC,IAAI,cAAc,CAAC;QACnB,IAAI,WAAW,CAAC;QAEhB,OAAO,CAAC,KAAK,YAAY,EAAE;YACzB,8BAA8B;YAC9B,WAAW,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,MAAM,EAAE,GAAG,YAAY,CAAC,CAAC;YACvD,YAAY,IAAI,CAAC,CAAC;YAElB,cAAc,GAAG,KAAK,CAAC,YAAY,CAAC,CAAC;YACrC,KAAK,CAAC,YAAY,CAAC,GAAG,KAAK,CAAC,WAAW,CAAC,CAAC;YACzC,KAAK,CAAC,WAAW,CAAC,GAAG,cAAc,CAAC;SACrC;QAED,OAAO,KAAK,CAAC;IACjB,CAAC;IAED,cAAc,CAAC,KAAK,EAAE,SAAS;QAC3B,MAAM,WAAW,GAAG,KAAK,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;QAExC,OAAO,UAAU,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,KAAK,GAAG,IAAI,CAAC,GAAG,CAAC,EAAE,EAAE,SAAS,CAAC,CAAC,GAAG,CAAC,WAAW,GAAG,MAAM,CAAC,CAAC,GAAG,IAAI,CAAC,GAAG,CAAC,EAAE,EAAE,SAAS,CAAC,CAAC,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC,CAAC;IAC7I,CAAC;IAED,WAAW,CAAC,GAAG,GAAG,CAAC,EAAE,GAAG,GAAG,IAAI;QAC3B,OAAO,CAAC,CAAC,KAAK,CAAC,GAAG,CAAC,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,MAAM,EAAE,GAAG,CAAC,GAAG,GAAG,GAAG,GAAG,CAAC,CAAC,CAAC,GAAG,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC;IAClG,CAAC;IAED,YAAY,CAAC,MAAM,GAAG,EAAE;QACpB,IAAI,GAAG,GAAG,EAAE,CAAC;QAEb,MAAM,UAAU,GAAG,gEAAgE,CAAC;QACpF,MAAM,GAAG,GAAG,UAAU,CAAC,MAAM,GAAG,CAAC,CAAC;QAElC,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,MAAM,EAAE,CAAC,EAAE,EAAE;YAC7B,GAAG,IAAI,UAAU,CAAC,aAAK,CAAC,WAAW,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC,CAAC;SAChD;QAED,OAAO,GAAG,CAAC;IACf,CAAC;IAED,KAAK,CAAC,iBAAiB,CAAC,MAAM,EAAE,UAAU,EAAE,UAAU;QAClD,IAAI,UAAU,KAAK,UAAU,EAAE;YAC3B,OAAO,MAAM,CAAC;SACjB;QAED,MAAM,KAAK,GAAG,IAAI,sBAAS,EAAE,CAAC;QAE9B,MAAM,KAAK,CAAC,UAAU,EAAE,CAAC;QAEzB,MAAM,IAAI,GAAG,KAAK,CAAC,cAAc,CAAC,UAAU,EAAE,UAAU,CAAC,CAAC;QAC1D,MAAM,KAAK,GAAG,MAAM,GAAG,IAAI,CAAC;QAE5B,OAAO,IAAI,GAAG,CAAC,CAAC,CAAC,CAAC,aAAK,CAAC,cAAc,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;IACzD,CAAC;IAED,SAAS,CAAC,GAAW;QACjB,IAAI,GAAG,GAAG,IAAI,CAAC;QAEf,IAAI;YACA,GAAG,GAAG,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;SACzB;QAAC,MAAM;YACJ,uBAAuB;SAC1B;QAED,OAAO,GAAG,CAAC;IACf,CAAC;IAED,KAAK,CAAC,cAAc,CAAC,MAAc,EAAE,WAAmB,EAAE,aAAa;QACnE,MAAM,KAAK,GAAG,MAAM,MAAM,CAAC,QAAQ,CAAC,QAAQ,CAAC,WAAW,CAAC,CAAC;QAE1D,MAAM,MAAM,GAAG,KAAK,CAAC,eAAe,CAAC,QAAQ,CAAC,aAAa,CAAC,CAAC;QAC7D,MAAM,KAAK,GAAG,KAAK,CAAC,eAAe,CAAC,OAAO,CAAC,aAAa,CAAC,CAAC;QAE3D,IAAI,CAAC,MAAM,EAAE;YACT,MAAM,IAAI,KAAK,CAAC,8BAA+B,aAAc,aAAc,WAAY,EAAE,CAAC,CAAA;SAC7F;QAED,OAAO,KAAK,CAAC,YAAY,CAAC,KAAK,CAAsB,CAAC;IAC1D,CAAC;IAED,KAAK,CAAC,cAAc,CAAC,WAA8B,EAAE,IAAY,EAAE,EAAU,EAAE,MAAc;QACzF,MAAM,SAAS,GAAG,WAAW,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;QAE/C,OAAO,CAAC,SAAS,CAAC,IAAI,KAAK,IAAI,IAAI,SAAS,CAAC,EAAE,KAAK,EAAE,IAAI,SAAS,CAAC,MAAM,KAAK,MAAM,CAAC,CAAC;IAC3F,CAAC;IAED,kBAAkB,CAAC,MAAc,EAAE,MAAgC,EAAE,IAAY,EAAE,EAAU,EAAE,MAAc,EAAE,MAAc,EAAE,OAAe,EAAE;QAC5I,MAAM,GAAG,GAAG,kBAAU,CAAC,UAAU,CAAC,MAAM,CAAC,UAAU,CAAC,CAAC;QAErD,OAAO,MAAM,CAAC,SAAS,CAAC,QAAQ,CAAC,EAAC,IAAI,EAAE,EAAE,EAAE,MAAM,EAAE,GAAG,UAAU,CAAC,MAAM,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,IAAI,MAAM,EAAE,EAAE,IAAI,EAAC,EAAE,GAAG,CAAC,CAAC;IAClH,CAAC;IAED,KAAK,CAAC,0BAA0B,CAAC,MAAc,EAAE,MAAuB,EAAE,IAAY,EAAE,QAAkB,EAAE,SAAiB,GAAG,EAAE,MAAc,EAAE,IAAY;QAC1J,MAAM,GAAG,GAAG,kBAAU,CAAC,UAAU,CAAC,MAAM,CAAC,UAAU,CAAC,CAAC;QACrD,IAAI,SAAS,GAAG,CAAC,CAAC;QAElB,KAAK,MAAM,IAAI,IAAI,QAAQ,EAAE;YACzB,MAAM,EAAE,GAAW,IAAI,CAAC,OAAO,CAAC,GAAG,EAAE,EAAE,CAAC,CAAC;YAEzC,MAAM,MAAM,CAAC,SAAS,CAAC,QAAQ,CAAC,EAAC,IAAI,EAAE,EAAE,EAAE,MAAM,EAAE,GAAG,UAAU,CAAC,MAAM,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,IAAI,MAAM,EAAE,EAAE,IAAI,EAAC,EAAE,GAAG,CAAC,CAAC;YAE7G,SAAS,EAAE,CAAC;YAEZ,MAAM,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;SAC1B;QAED,IAAI,SAAS,KAAK,QAAQ,CAAC,MAAM,EAAE;YAC/B,OAAO,IAAI,CAAC;SACf;IACL,CAAC;IAED,KAAK,CAAC,mBAAmB,CAAC,MAAc,EAAE,OAAe,EAAE,OAAe,CAAC,CAAC,EAAE,MAAc,GAAG;QAC3F,MAAM,OAAO,GAAG,MAAM,MAAM,CAAC,IAAI,CAAC,eAAe,EAAE,qBAAqB,EAAE,CAAC,OAAO,EAAE,IAAI,EAAE,GAAG,CAAC,CAAC,CAAC;QAChG,MAAM,SAAS,GAAG,OAAO,CAAC,MAAM,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,KAAK,UAAU,CAAC,CAAC;QAEnE,MAAM,eAAe,GAAG,SAAS,CAAC,MAAM,CAAC,CAAC,GAAG,EAAE,EAAE,EAAE,EAAE;YACjD,MAAM,WAAW,GAAG,EAAE,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC;YAChC,MAAM,IAAI,GAAG,IAAI,IAAI,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC,CAAC,SAAS,GAAG,CAAC,CAAC;YAE7C,WAAW,CAAC,IAAI,GAAG,IAAI,CAAC;YAExB,GAAG,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC;YAEtB,OAAO,GAAG,CAAC;QACf,CAAC,EAAE,EAAE,CAAC,CAAC;QAEP,OAAO,eAAe,CAAC;IAC3B,CAAC;IAED,KAAK,CAAC,UAAU,CAAC,MAAc,EAAE,OAAe,CAAC,CAAC,EAAE,QAAgB,GAAG;QACnE,MAAM,OAAO,GAAG,MAAM,MAAM,CAAC,IAAI,CAAC,eAAe,EAAE,qBAAqB,EAAE,CAAC,SAAS,EAAE,IAAI,EAAE,KAAK,CAAC,CAAC,CAAC;QACpG,MAAM,UAAU,GAAG,OAAO,CAAC,MAAM,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,KAAK,aAAa,CAAC,CAAC;QAEvE,MAAM,UAAU,GAAG,UAAU,CAAC,MAAM,CAAC,CAAC,GAAG,EAAE,EAAE,EAAE,EAAE;YAC7C,MAAM,WAAW,GAAG,EAAE,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC;YAChC,MAAM,IAAI,GAAG,IAAI,IAAI,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC,CAAC,SAAS,GAAG,CAAC,CAAC;YAE7C,WAAW,CAAC,IAAI,GAAG,IAAI,CAAC;YAExB,GAAG,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC;YAEtB,OAAO,GAAG,CAAC;QACf,CAAC,EAAE,EAAE,CAAC,CAAC;QAEP,OAAO,UAAU,CAAC;IACtB,CAAC;IAED,wBAAwB,CAAC,MAAc,EAAE,MAAuB,EAAE,IAAY,EAAE,EAAU,EAAE,QAAgB,EAAE,MAAc,EAAE,OAAe,EAAE;QAC3I,MAAM,GAAG,GAAG,kBAAU,CAAC,UAAU,CAAC,MAAM,CAAC,UAAU,CAAC,CAAC;QAErD,MAAM,IAAI,GAAG;YACT,YAAY,EAAE,QAAQ;YACtB,cAAc,EAAE,UAAU;YAC1B,eAAe,EAAE;gBACb,MAAM,EAAE,MAAM,CAAC,WAAW,EAAE;gBAC5B,EAAE;gBACF,QAAQ;gBACR,IAAI;aACP;SACJ,CAAC;QAGF,OAAO,MAAM,CAAC,SAAS,CAAC,IAAI,CAAC,EAAC,cAAc,EAAE,CAAC,IAAI,CAAC,EAAE,sBAAsB,EAAE,EAAE,EAAE,EAAE,EAAE,MAAM,CAAC,cAAc,EAAE,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,EAAC,EAAE,GAAG,CAAC,CAAC;IACnJ,CAAC;IAED,KAAK,CAAC,gCAAgC,CAAC,MAAc,EAAE,MAAuB,EAAE,IAAY,EAAE,QAAe,EAAE,MAAc,EAAE,IAAY,EAAE,SAAiB,GAAG;QAC7J,MAAM,GAAG,GAAG,kBAAU,CAAC,UAAU,CAAC,MAAM,CAAC,UAAU,CAAC,CAAC;QAErD,MAAM,QAAQ,GAAY,CAAC,EAAE,CAAC,CAAC;QAC/B,IAAI,SAAS,GAAW,CAAC,CAAC;QAE1B,KAAK,MAAM,IAAI,IAAI,QAAQ,EAAE;YACzB,MAAM,OAAO,GAAW,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,GAAG,EAAE,EAAE,CAAC,CAAC;YACtD,MAAM,QAAQ,GAAW,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,UAAU,CAAC,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC,GAAG,EAAE,GAAG,CAAC,CAAC,CAAC,QAAQ,EAAE,CAAC,CAAC,CAAC,UAAU,CAAC,MAAM,CAAC,CAAC,QAAQ,EAAE,CAAC;YAE5H,gEAAgE;YAChE,IAAI,UAAU,CAAC,QAAQ,CAAC,GAAG,CAAC,EAAE;gBAC1B,MAAM,IAAI,GAAG;oBACT,YAAY,EAAE,QAAQ;oBACtB,cAAc,EAAE,UAAU;oBAC1B,eAAe,EAAE;wBACb,MAAM,EAAE,MAAM,CAAC,WAAW,EAAE;wBAC5B,EAAE,EAAE,OAAO;wBACX,QAAQ;wBACR,IAAI;qBACP;iBACJ,CAAC;gBAGF,MAAM,eAAe,GAAG,IAAI,CAAC,SAAS,CAAC,QAAQ,CAAC,QAAQ,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC;gBAC7E,MAAM,WAAW,GAAG,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC,MAAM,CAAC;gBAGhD,IAAI,WAAW,GAAG,eAAe,GAAG,gBAAgB,EAAE;oBAClD,QAAQ,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC;iBACzB;qBAAM;oBACH,QAAQ,CAAC,QAAQ,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;iBAC5C;aACJ;SACJ;QAGD,KAAK,MAAM,OAAO,IAAI,QAAQ,EAAE;YAC5B,MAAM,aAAa,GAAG,CAAC,IAAI,CAAC,CAAC;YAC7B,MAAM,oBAAoB,GAAQ,EAAE,CAAC;YAErC,MAAM,MAAM,CAAC,SAAS,CAAC,IAAI,CAAC,EAAC,cAAc,EAAE,aAAa,EAAE,sBAAsB,EAAE,oBAAoB,EAAE,EAAE,EAAE,MAAM,CAAC,cAAc,EAAE,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC,EAAC,EAAE,GAAG,CAAC,CAAC;YAE1K,SAAS,EAAE,CAAC;YAEZ,IAAI,SAAS,KAAK,CAAC,QAAQ,CAAC,MAAM,CAAC,IAAI,SAAS,KAAK,CAAC,EAAE;gBACpD,MAAM,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;aAC1B;SACJ;IACL,CAAC;IAED,qBAAqB,CAAC,MAAc,EAAE,MAAuB,EAAE,IAAY,EAAE,EAAU,EAAE,MAAc,EAAE,QAAgB,EAAE,OAAe,EAAE;QACxI,MAAM,GAAG,GAAG,kBAAU,CAAC,UAAU,CAAC,MAAM,CAAC,UAAU,CAAC,CAAC;QAErD,MAAM,IAAI,GAAG;YACT,YAAY,EAAE,QAAQ;YACtB,cAAc,EAAE,OAAO;YACvB,eAAe,EAAE;gBACb,MAAM;gBACN,EAAE;gBACF,QAAQ;gBACR,IAAI;aACP;SACJ,CAAC;QAEF,IAAI,MAAM,CAAC,UAAU,EAAE;YACnB,OAAO,CAAC,GAAG,CAAC,6BAA6B,EAAE,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC,CAAC;SAC1E;QAED,OAAO,MAAM,CAAC,SAAS,CAAC,IAAI,CAAC,EAAC,cAAc,EAAE,CAAC,IAAI,CAAC,EAAE,sBAAsB,EAAE,EAAE,EAAE,EAAE,EAAE,MAAM,CAAC,cAAc,EAAE,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,EAAC,EAAE,GAAG,CAAC,CAAC;IACnJ,CAAC;IAED,KAAK,CAAC,6BAA6B,CAAC,MAAc,EAAE,MAAuB,EAAE,IAAY,EAAE,QAAe,EAAE,MAAc,EAAE,IAAY,EAAE,SAAiB,GAAG;QAC1J,MAAM,GAAG,GAAG,kBAAU,CAAC,UAAU,CAAC,MAAM,CAAC,UAAU,CAAC,CAAC;QAErD,MAAM,QAAQ,GAAY,CAAC,EAAE,CAAC,CAAC;QAE/B,IAAI,SAAS,GAAG,CAAC,CAAC;QAElB,KAAK,MAAM,IAAI,IAAI,QAAQ,EAAE;YACzB,MAAM,EAAE,GAAG,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,GAAG,EAAE,EAAE,CAAC,CAAC;YACzC,MAAM,QAAQ,GAAW,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,UAAU,CAAC,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC,GAAG,EAAE,GAAG,CAAC,CAAC,CAAC,QAAQ,EAAE,CAAC,CAAC,CAAC,UAAU,CAAC,MAAM,CAAC,CAAC,QAAQ,EAAE,CAAC;YAE5H,+DAA+D;YAC/D,IAAI,UAAU,CAAC,QAAQ,CAAC,GAAG,CAAC,EAAE;gBAC1B,MAAM,IAAI,GAAG;oBACT,YAAY,EAAE,QAAQ;oBACtB,cAAc,EAAE,OAAO;oBACvB,eAAe,EAAE;wBACb,MAAM,EAAE,MAAM,CAAC,WAAW,EAAE;wBAC5B,EAAE;wBACF,QAAQ;wBACR,IAAI;qBACP;iBACJ,CAAC;gBAEF,MAAM,eAAe,GAAG,IAAI,CAAC,SAAS,CAAC,QAAQ,CAAC,QAAQ,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC;gBAC7E,MAAM,WAAW,GAAG,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC,MAAM,CAAC;gBAEhD,IAAI,WAAW,GAAG,eAAe,GAAG,gBAAgB,EAAE;oBAClD,QAAQ,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC;iBACzB;qBAAM;oBACH,QAAQ,CAAC,QAAQ,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;iBAC5C;aACJ;SACJ;QAED,KAAK,MAAM,OAAO,IAAI,QAAQ,EAAE;YAC5B,MAAM,aAAa,GAAG,CAAC,IAAI,CAAC,CAAC;YAC7B,MAAM,oBAAoB,GAAQ,IAAI,CAAC;YAEvC,MAAM,MAAM,CAAC,SAAS,CAAC,IAAI,CAAC,EAAC,cAAc,EAAE,aAAa,EAAE,sBAAsB,EAAE,oBAAoB,EAAE,EAAE,EAAE,MAAM,CAAC,cAAc,EAAE,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC,EAAC,EAAE,GAAG,CAAC,CAAC;YAE1K,SAAS,EAAE,CAAC;YAEZ,IAAI,SAAS,KAAK,CAAC,QAAQ,CAAC,MAAM,CAAC,IAAI,SAAS,KAAK,CAAC,EAAE;gBACpD,MAAM,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;aAC1B;SACJ;IACL,CAAC;IAED,YAAY,CAAC,eAAe,EAAE,OAAO,EAAE,aAAa;QAChD,MAAM,MAAM,GAAG,IAAA,oBAAU,EAAC,GAAG,eAAe,GAAG,OAAO,GAAG,aAAa,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC;QACnF,MAAM,UAAU,GAAG,IAAI,CAAC,KAAK,CAAC,MAAM,GAAG,GAAG,CAAC,GAAG,CAAC,CAAC;QAChD,OAAO,UAAU,CAAC;IACtB,CAAC;IAED,MAAM,CAAC,MAAc,EAAE,MAAgC,EAAE,KAAa,EAAE,iBAAyB,OAAO,EACjG,MAAc,EAAE,QAAgB;QACnC,MAAM,UAAU,GAAG,UAAU,CAAC,cAAc,CAAC,CAAC;QAE9C,MAAM,GAAG,GAAG,kBAAU,CAAC,UAAU,CAAC,MAAM,CAAC,WAAW,CAAC,CAAC;QAEtD,IAAI,UAAU,GAAG,CAAC,EAAE;YAChB,MAAM,IAAI,KAAK,CAAC,uDAAuD,CAAC,CAAC;SAC5E;QAED,MAAM,MAAM,GAAG,IAAI,CAAC,YAAY,CAAC,UAAU,CAAC,CAAC;QAE7C,OAAO,MAAM,CAAC,SAAS,CAAC,IAAI,CAAC,EAAC,KAAK,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,EAAC,EAAE,GAAG,CAAC,CAAC;IACzE,CAAC;IAED,QAAQ,CAAC,MAAc,EAAE,MAAgC,EAAE,KAAa,EAAE,iBAAyB,OAAO,EACjG,MAAc,EAAE,QAAgB;QACrC,MAAM,MAAM,GAAG,IAAI,CAAC,YAAY,CAAC,UAAU,CAAC,cAAc,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC;QAClE,MAAM,GAAG,GAAG,kBAAU,CAAC,UAAU,CAAC,MAAM,CAAC,WAAW,CAAC,CAAC;QAEtD,OAAO,MAAM,CAAC,SAAS,CAAC,IAAI,CAAC,EAAC,KAAK,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,EAAC,EAAE,GAAG,CAAC,CAAC;IACzE,CAAC;IAED,YAAY,CAAC,cAAsB;QAC/B,OAAO,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,KAAK,CAAC,UAAU,CAAC,cAAc,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,GAAG,GAAG,CAAC,EAAE,KAAK,CAAC,CAAC;IACpF,CAAC;IAED,KAAK,CAAC,YAAY,CAAC,KAAY,EAAE,QAAa;QAC1C,KAAK,IAAI,KAAK,GAAG,CAAC,EAAE,KAAK,GAAG,KAAK,CAAC,MAAM,EAAE,KAAK,EAAE,EAAE;YACjD,MAAM,QAAQ,CAAC,KAAK,CAAC,KAAK,CAAC,EAAE,KAAK,EAAE,KAAK,CAAC,CAAC;SAC5C;IACL,CAAC;IAED,cAAc,CAAC,EAAU,EAAE,IAAY,EAAE,MAAc,EAAE,WAAmB;QACxE,OAAO,2CAA2C,EAAE,SAAS,IAAI,WAAW,MAAM,iBAAiB,WAAW,EAAE,CAAC;IACrH,CAAC;CAEJ,CAAC"}
1
+ {"version":3,"file":"utils.js","sourceRoot":"","sources":["../src/utils.ts"],"names":[],"mappings":"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"}