diff --git a/apps/ecash-herald/scripts/sendTestTgMsgs.js b/apps/ecash-herald/scripts/sendTestTgMsgs.js
--- a/apps/ecash-herald/scripts/sendTestTgMsgs.js
+++ b/apps/ecash-herald/scripts/sendTestTgMsgs.js
@@ -10,7 +10,7 @@
*/
'use strict';
-const config = require('../config');
+const { sendBlockSummary } = require('../src/telegram');
const secrets = require('../secrets');
const TelegramBot = require('node-telegram-bot-api');
const { dev } = secrets;
@@ -19,9 +19,9 @@
const telegramBotDev = new TelegramBot(botId, { polling: true });
const blocks = require('../test/mocks/blocks');
-function returnTelegramBotSendMessagePromise(msg, options) {
+function returnSendBlockSummaryPromise(tgMsgStrings, telegramBot, channelId) {
return new Promise((resolve, reject) => {
- telegramBotDev.sendMessage(channelId, msg, options).then(
+ sendBlockSummary(tgMsgStrings, telegramBot, channelId).then(
result => {
resolve(result);
},
@@ -36,10 +36,14 @@
const testTgMsgPromises = [];
for (let i in blocks) {
const thisBlock = blocks[i];
- const { tgMsg } = thisBlock;
+ const { blockSummaryTgMsgs } = thisBlock;
testTgMsgPromises.push(
- returnTelegramBotSendMessagePromise(tgMsg, config.tgMsgOptions),
+ returnSendBlockSummaryPromise(
+ blockSummaryTgMsgs,
+ telegramBotDev,
+ channelId,
+ ),
);
}
@@ -49,7 +53,7 @@
testTgMsgsSuccess = await Promise.all(testTgMsgPromises);
console.log(
'\x1b[32m%s\x1b[0m',
- `✔ Sent ${testTgMsgsSuccess.length} telegram messages to ${testTgMsgsSuccess[0].chat.title}`,
+ `✔ Sent ${testTgMsgsSuccess.length} telegram messages to ${testTgMsgsSuccess[0][0].chat.title}`,
);
// Exit in success condition
diff --git a/apps/ecash-herald/src/events.js b/apps/ecash-herald/src/events.js
--- a/apps/ecash-herald/src/events.js
+++ b/apps/ecash-herald/src/events.js
@@ -5,6 +5,7 @@
const config = require('../config');
const { parseBlock, getBlockTgMessage } = require('./parse');
const { getCoingeckoPrices } = require('./utils');
+const { sendBlockSummary } = require('./telegram');
module.exports = {
handleBlockConnected: async function (
@@ -61,7 +62,10 @@
const { coingeckoResponse, coingeckoPrices } = await getCoingeckoPrices(
config.priceApi,
);
- const tgMsg = getBlockTgMessage(parsedBlock, coingeckoPrices);
+ const blockSummaryTgMsgs = getBlockTgMessage(
+ parsedBlock,
+ coingeckoPrices,
+ );
// returnMocks is used in the script function generateMocks
// Using it as a flag here ensures the script is always using the same function
@@ -73,22 +77,19 @@
parsedBlock,
coingeckoResponse,
coingeckoPrices,
- tgMsg,
- tgMsgPriceFailure: getBlockTgMessage(parsedBlock, false),
+ blockSummaryTgMsgs,
+ blockSummaryTgMsgsPriceFailure: getBlockTgMessage(
+ parsedBlock,
+ false,
+ ),
};
}
- try {
- return await telegramBot.sendMessage(
- channelId,
- tgMsg,
- config.tgMsgOptions,
- );
- } catch (err) {
- console.log(
- `Error in telegramBot.sendMessage(channelId=${channelId}, msg=${tgMsg}, options=${config.tgMsgOptions})`,
- err,
- );
- }
- return false;
+
+ // Broadcast block summary telegram message(s)
+ return await sendBlockSummary(
+ blockSummaryTgMsgs,
+ telegramBot,
+ channelId,
+ );
},
};
diff --git a/apps/ecash-herald/src/parse.js b/apps/ecash-herald/src/parse.js
--- a/apps/ecash-herald/src/parse.js
+++ b/apps/ecash-herald/src/parse.js
@@ -5,7 +5,10 @@
'use strict';
const config = require('../config');
const cashaddr = require('ecashaddrjs');
-const { prepareStringForTelegramHTML } = require('./telegram');
+const {
+ prepareStringForTelegramHTML,
+ splitOverflowTgMsg,
+} = require('./telegram');
const { formatPrice, returnAddressPreview } = require('./utils');
module.exports = {
parseBlock: function (chronikBlockResponse) {
@@ -459,7 +462,6 @@
tgMsg = tgMsg.concat(xecSendTxTgMsgLines);
}
- // Join array with newLine char, \n
- return tgMsg.join('\n');
+ return splitOverflowTgMsg(tgMsg);
},
};
diff --git a/apps/ecash-herald/src/telegram.js b/apps/ecash-herald/src/telegram.js
--- a/apps/ecash-herald/src/telegram.js
+++ b/apps/ecash-herald/src/telegram.js
@@ -3,6 +3,9 @@
// file COPYING or http://www.opensource.org/licenses/mit-license.php.
'use strict';
+const config = require('../config');
+// undocumented API behavior of HTML parsing mode, discovered through brute force
+const TG_MSG_MAX_LENGTH = 4096;
module.exports = {
prepareStringForTelegramHTML: function (string) {
@@ -21,4 +24,111 @@
return tgReadyString;
},
+ splitOverflowTgMsg: function (tgMsgArray) {
+ /* splitOverflowTgMsg
+ *
+ * Params
+ * tgMsgArray - an array of unjoined strings prepared by getBlockTgMessage
+ * each string has length <= 4096 characters
+ *
+ * Output
+ * tgMsgStrings - an array of ready-to-broadcast HTML-parsed telegram messages, all under
+ * the 4096 character limit
+ */
+
+ // Iterate over tgMsgArray to build an array of messages under the TG_MSG_MAX_LENGTH ceiling
+ const tgMsgStrings = [];
+
+ let thisTgMsgStringLength = 0;
+ let sliceStartIndex = 0;
+ for (let i = 0; i < tgMsgArray.length; i += 1) {
+ const thisLine = tgMsgArray[i];
+ // Account for the .join('\n'), each line has an extra 2 characters
+ // Note: this is undocumented behavior of telegram API HTML parsing mode
+ // '\n' is counted as 2 characters and also is parsed as a new line in HTML mode
+ thisTgMsgStringLength += thisLine.length + 2;
+ console.assert(thisLine.length + 2 <= TG_MSG_MAX_LENGTH, '%o', {
+ length: thisLine.length + 2,
+ line: thisLine,
+ error: 'Telegram message line is longer than 4096 characters',
+ });
+
+ // If this particular message line pushes the message over TG_MSG_MAX_LENGTH
+ // less 2 as there is no `\n` at the end of the last line of the msg
+ if (thisTgMsgStringLength - 2 > TG_MSG_MAX_LENGTH) {
+ // Build a msg string with preceding lines, i.e. do not include this i'th line
+ const sliceEndIndex = i; // Note that the slice end index is not included
+ tgMsgStrings.push(
+ tgMsgArray.slice(sliceStartIndex, sliceEndIndex).join('\n'),
+ );
+ // Reset sliceStartIndex and thisTgMsgStringLength for the next message
+ sliceStartIndex = sliceEndIndex;
+ thisTgMsgStringLength = 0;
+ }
+ }
+
+ // Build a tg msg of all unused lines, if you have them
+ if (sliceStartIndex < tgMsgArray.length) {
+ tgMsgStrings.push(tgMsgArray.slice(sliceStartIndex).join('\n'));
+ }
+
+ return tgMsgStrings;
+ },
+ sendBlockSummary: async function (tgMsgStrings, telegramBot, channelId) {
+ /* sendBlockSummary
+ *
+ * Params
+ * tgMsgStrings - an array of ready-to-be broadcast HTML-parsed telegram messages,
+ * all under the 4096 character length limit
+ * telegramBot - a telegram bot instance
+ * channelId - the channel where the messages will be broadcast
+ *
+ * Output
+ * Message(s) will be broadcast by telegramBot to channelId
+ * If there are multiple messages, each message will be sent as a reply to its
+ * preceding message
+ * Function returns 'false' if there is an error in sending any one message
+ * Function returns an array of msgSuccess objects for each successfully send msg
+ */
+
+ let msgReplyId = false;
+ let msgSuccessArray = [];
+ for (let i = 0; i < tgMsgStrings.length; i += 1) {
+ const thisMsg = tgMsgStrings[i];
+ let msgSuccess;
+ const thisMsgOptions = msgReplyId
+ ? {
+ ...config.tgMsgOptions,
+ reply_to_message_id: msgReplyId,
+ }
+ : config.tgMsgOptions;
+ try {
+ msgSuccess = await telegramBot.sendMessage(
+ channelId,
+ thisMsg,
+ thisMsgOptions,
+ );
+ msgReplyId = msgSuccess.message_id;
+ msgSuccessArray.push(msgSuccess);
+ } catch (err) {
+ console.log(
+ `Error in sending msg in sendBlockSummary, telegramBot.send(${thisMsg}) for msg ${
+ i + 1
+ } of ${tgMsgStrings.length}`,
+ err,
+ );
+ return false;
+ }
+ }
+ if (msgSuccessArray.length === tgMsgStrings.length) {
+ return msgSuccessArray;
+ }
+ // Catch potential edge case
+ console.log({
+ msgsSent: msgSuccessArray.length,
+ msgsAttempted: tgMsgStrings.length,
+ error: 'Failed to send all messages',
+ });
+ return false;
+ },
};
diff --git a/apps/ecash-herald/test/chronikWsHandlerTests.js b/apps/ecash-herald/test/chronikWsHandlerTests.js
--- a/apps/ecash-herald/test/chronikWsHandlerTests.js
+++ b/apps/ecash-herald/test/chronikWsHandlerTests.js
@@ -123,7 +123,7 @@
input: thisBlockHash,
output: thisBlockChronikBlockResponse,
});
- const thisBlockExpectedMsg = thisBlock.tgMsg;
+ const thisBlockExpectedMsgs = thisBlock.blockSummaryTgMsgs;
// Mock a chronik websocket msg of correct format
const mockWsMsg = {
@@ -151,16 +151,19 @@
channelId,
);
- // Check that sendMessage was called successfully
- assert.strictEqual(telegramBot.messageSent, true);
+ // Build expected array of successful msg returns
+ let msgSuccessArray = [];
+ for (let i = 0; i < thisBlockExpectedMsgs.length; i += 1) {
+ msgSuccessArray.push({
+ success: true,
+ channelId,
+ msg: thisBlockExpectedMsgs[i],
+ options: config.tgMsgOptions,
+ });
+ }
// Check that the correct msg info was sent
- assert.deepEqual(result, {
- success: true,
- channelId,
- msg: thisBlockExpectedMsg,
- options: config.tgMsgOptions,
- });
+ assert.deepEqual(result, msgSuccessArray);
}
});
it('parseWebsocketMessage creates and sends a telegram msg without prices for all mocked blocks on failed price API call', async function () {
@@ -177,7 +180,8 @@
input: thisBlockHash,
output: thisBlockChronikBlockResponse,
});
- const thisBlockExpectedMsg = thisBlock.tgMsgPriceFailure;
+ const thisBlockExpectedMsgs =
+ thisBlock.blockSummaryTgMsgsPriceFailure;
// Mock a chronik websocket msg of correct format
const mockWsMsg = {
@@ -203,16 +207,22 @@
channelId,
);
+ // Build expected array of successful msg returns
+ let msgSuccessArray = [];
+ for (let i = 0; i < thisBlockExpectedMsgs.length; i += 1) {
+ msgSuccessArray.push({
+ success: true,
+ channelId,
+ msg: thisBlockExpectedMsgs[i],
+ options: config.tgMsgOptions,
+ });
+ }
+
// Check that sendMessage was called successfully
assert.strictEqual(telegramBot.messageSent, true);
// Check that the correct msg info was sent
- assert.deepEqual(result, {
- success: true,
- channelId,
- msg: thisBlockExpectedMsg,
- options: config.tgMsgOptions,
- });
+ assert.deepEqual(result, msgSuccessArray);
}
});
it('parseWebsocketMessage returns false if telegram msg fails to send', async function () {
diff --git a/apps/ecash-herald/test/eventsTests.js b/apps/ecash-herald/test/eventsTests.js
--- a/apps/ecash-herald/test/eventsTests.js
+++ b/apps/ecash-herald/test/eventsTests.js
@@ -29,7 +29,7 @@
input: thisBlockHash,
output: thisBlockChronikBlockResponse,
});
- const thisBlockExpectedMsg = thisBlock.tgMsg;
+ const thisBlockExpectedMsgs = thisBlock.blockSummaryTgMsgs;
const telegramBot = new MockTelegramBot();
const channelId = mockChannelId;
@@ -55,13 +55,19 @@
// Check that sendMessage was called successfully
assert.strictEqual(telegramBot.messageSent, true);
+ // Build expected array of successful msg returns
+ let msgSuccessArray = [];
+ for (let i = 0; i < thisBlockExpectedMsgs.length; i += 1) {
+ msgSuccessArray.push({
+ success: true,
+ channelId,
+ msg: thisBlockExpectedMsgs[i],
+ options: config.tgMsgOptions,
+ });
+ }
+
// Check that the correct msg info was sent
- assert.deepEqual(result, {
- success: true,
- channelId,
- msg: thisBlockExpectedMsg,
- options: config.tgMsgOptions,
- });
+ assert.deepEqual(result, msgSuccessArray);
}
});
it('handleBlockConnected creates and sends a telegram msg without price info for all mocked blocks if api call fails', async function () {
@@ -78,7 +84,8 @@
input: thisBlockHash,
output: thisBlockChronikBlockResponse,
});
- const thisBlockExpectedMsg = thisBlock.tgMsgPriceFailure;
+ const thisBlockExpectedMsgs =
+ thisBlock.blockSummaryTgMsgsPriceFailure;
const telegramBot = new MockTelegramBot();
const channelId = mockChannelId;
@@ -102,13 +109,19 @@
// Check that sendMessage was called successfully
assert.strictEqual(telegramBot.messageSent, true);
+ // Build expected array of successful msg returns
+ let msgSuccessArray = [];
+ for (let i = 0; i < thisBlockExpectedMsgs.length; i += 1) {
+ msgSuccessArray.push({
+ success: true,
+ channelId,
+ msg: thisBlockExpectedMsgs[i],
+ options: config.tgMsgOptions,
+ });
+ }
+
// Check that the correct msg info was sent
- assert.deepEqual(result, {
- success: true,
- channelId,
- msg: thisBlockExpectedMsg,
- options: config.tgMsgOptions,
- });
+ assert.deepEqual(result, msgSuccessArray);
}
});
it('handleBlockConnected sends desired backup msg if it encounters an error in message creation', async function () {
diff --git a/apps/ecash-herald/test/mocks/blocks.js b/apps/ecash-herald/test/mocks/blocks.js
--- a/apps/ecash-herald/test/mocks/blocks.js
+++ b/apps/ecash-herald/test/mocks/blocks.js
@@ -78,35 +78,38 @@
},
coingeckoResponse: {
bitcoin: {
- usd: 29160.02775612,
+ usd: 28546.41121148,
},
ecash: {
- usd: 0.00002943,
+ usd: 0.00002876,
},
ethereum: {
- usd: 1894.98574958,
+ usd: 1861.31220549,
},
},
coingeckoPrices: [
{
fiat: 'usd',
- price: 0.00002943,
+ price: 0.00002876,
ticker: 'XEC',
},
{
fiat: 'usd',
- price: 29160.02775612,
+ price: 28546.41121148,
ticker: 'BTC',
},
{
fiat: 'usd',
- price: 1894.98574958,
+ price: 1861.31220549,
ticker: 'ETH',
},
],
- tgMsg: '0 | 1 tx | unknown\n1 XEC = $0.00002943\n1 BTC = $29,160\n1 ETH = $1,895',
- tgMsgPriceFailure:
+ blockSummaryTgMsgs: [
+ '0 | 1 tx | unknown\n1 XEC = $0.00002876\n1 BTC = $28,546\n1 ETH = $1,861',
+ ],
+ blockSummaryTgMsgsPriceFailure: [
'0 | 1 tx | unknown',
+ ],
blockName: 'genesisBlock',
},
{
@@ -7804,35 +7807,44 @@
},
coingeckoResponse: {
bitcoin: {
- usd: 29160.02775612,
+ usd: 28546.41121148,
},
ecash: {
- usd: 0.00002943,
+ usd: 0.00002876,
},
ethereum: {
- usd: 1894.98574958,
+ usd: 1861.31220549,
},
},
coingeckoPrices: [
{
fiat: 'usd',
- price: 0.00002943,
+ price: 0.00002876,
ticker: 'XEC',
},
{
fiat: 'usd',
- price: 29160.02775612,
+ price: 28546.41121148,
ticker: 'BTC',
},
{
fiat: 'usd',
- price: 1894.98574958,
+ price: 1861.31220549,
ticker: 'ETH',
},
],
- tgMsg: '700722 | 97 txs | unknown\n1 XEC = $0.00002943\n1 BTC = $29,160\n1 ETH = $1,895\n\n1 new eToken created:\nLambda Variant Variants (LVV) [doc]\n\nApp txs:\nno app: 1629498127|85\nno app: 1629500089|91\nno app: 1629497915|79\nno app: 1629500647|79\nno app: 1629499023|76\nno app: 1629497534|78\nno app: 1629498535|87\nno app: 1629500798|79\nno app: 1629497457|77\nno app: 1629498288|72\nno app: 1629499274|64\nno app: 1629500162|80\nno app: 1629500720|82\nno app: 1629499774|94\nno app: 1629497610|79\nno app: 1629499360|84\nno app: 1629498460|71\nno app: 1629500318|76\nno app: 1629497132|78\nno app: 1629498060|88\nno app: 1629499897|105\nno app: 1629497763|75\nno app: 1629499571|93\nno app: 1629497054|74\nno app: 1629499185|75\nno app: 1629498375|70\nno app: 1629498610|74\nno app: 1629497293|68\nno app: 1629497209|76\nno app: 1629499706|88\nno app: 1629497685|81\nno app: 1629499504|84\nno app: 1629498864|64\nno app: 1629498773|66\nno app: 1629499955|96\nno app: 1629500566|71\nno app: 1629497990|82\nno app: 1629498205|77\nno app: 1629499836|98\nno app: 1629498688|79\nno app: 1629497840|81\nno app: 1629500240|77\nno app: 1629500399|75\nno app: 1629498945|79\nno app: 1629497378|72\nno app: 1629499638|91\nno app: 1629499432|84\nno app: 1629500022|85\nno app: 1629500482|72\nno app: 1629499103|75\n\n45 eCash txs:\nqqv...y7y sent 201,835,617 XEC to qqn...gd2 and 1 others | 1.00 sats per byte\nqrf...ldm sent 6,354 XEC to qr8...kys and 1 others | 1.00 sats per byte\nqq4...xph sent 2,099,979 XEC to qp0...rj6 | 10.69 sats per byte\nqru...y7r sent 240,420 XEC to qz5...7p8 and 1 others | 1.23 sats per byte\nqp5...pck sent 4,261,646 XEC to qqz...cc8 | 1.06 sats per byte\nqrh...47a sent 47,684,497 XEC to qz0...c8j and 1 others | 1.00 sats per byte\nqp9...jlg sent 69,850 XEC to qpu...dtm | 4.18 sats per byte\nqp9...jlg sent 10,000 XEC to qqm...uqa | 4.18 sats per byte\nqr9...3zm sent 425,718,894 XEC to qzx...xg8 and 1 others | 1.00 sats per byte\nqq4...w64 sent 110,320,517 XEC to qqt...q7t and 2 others | 4.10 sats per byte\nqph...72y sent 15,326 XEC to qz2...035 | 2.01 sats per byte\nqrp...rtz sent 1,008,221 XEC to qp2...qa4 and 1 others | 5.02 sats per byte\nqzs...qn7 sent 6,941,377 XEC to qqh...ytf and 1 others | 1.00 sats per byte\nqrz...k3d sent 2,571,837 XEC to qr4...kxh | 150.87 sats per byte\nqz5...7p8 sent 750 XEC to qrf...py0 and 1 others | 1.12 sats per byte\nqzq...mzs sent 717,296 XEC to qzj...e2s and 1 others | 5.00 sats per byte\nqql...h03 sent 89,006,076 XEC to qzj...ksg | 2.13 sats per byte\nqp0...t92 sent 612,181 XEC to qzj...ztx and 1 others | 1.00 sats per byte\nqpm...k9g sent 199,999,998 XEC to qqp...zqu and 1 others | 1.00 sats per byte\nqpa...czv sent 612,208 XEC to qp0...t92 and 1 others | 1.00 sats per byte\nppt...gny sent 88,521,997 XEC to qz3...rj3 and 2 others | 15.28 sats per byte\nqp2...pca sent 294,905 XEC to qp4...0fg and 1 others | 1.00 sats per byte\nqpm...k9g sent 199,999,997 XEC to qpl...eep and 2 others | 1.00 sats per byte\nqp4...yuu sent 289,611,690 XEC to qqh...zy3 and 1 others | 1.00 sats per byte\nqr4...ffa sent 1,975,381 XEC to qr3...w9u and 2 others | 1.00 sats per byte\nqql...y4w sent 30,000,000 XEC to qz8...0fa | 4.16 sats per byte\nqzn...amg sent 3,285,159 XEC to qzt...rag and 1 others | 1.00 sats per byte\nqp9...jlg sent 10,000 XEC to qpv...jap | 4.16 sats per byte\nqp9...jlg sent 45,000 XEC to qry...tf4 | 4.16 sats per byte\nqp9...jlg sent 95,000 XEC to qrt...lp5 | 4.16 sats per byte\nqqn...e9j sent 21,197,785 XEC to qr2...rh9 and 1 others | 4.10 sats per byte\nqpp...p3l sent 1,217,361 XEC to qz3...hef and 1 others | 1.00 sats per byte\nqz5...7p8 sent 150 XEC to qre...t4t and 1 others | 1.17 sats per byte\nqzj...ksg sent 937,282,770 XEC to qz3...rj3 and 4 others | 1.92 sats per byte\nqpm...k9g sent 199,999,998 XEC to qrd...vnm and 1 others | 1.00 sats per byte\npqu...4ws sent 551,094 XEC to qp2...thh and 1 others | 1.05 sats per byte\nqzl...52p sent 159,000,922 XEC to qpt...67y and 1 others | 1.01 sats per byte\nqz5...7p8 sent 750 XEC to qrf...py0 and 1 others | 1.13 sats per byte\nqz5...7p8 sent 2,300 XEC to qrf...py0 | 1.14 sats per byte\nqp9...jlg sent 971,154,369 XEC to qpu...qhj | 4.16 sats per byte\nqq4...qvq sent 5,167,950 XEC to qqu...vun and 1 others | 1.00 sats per byte\nqqn...gnz sent 10,499,318 XEC to qrj...eya and 1 others | 2.21 sats per byte\nqze...e3p sent 504,025 XEC to qzv...geu | 5.00 sats per byte\nqqs...7c5 sent 101,520,270 XEC to pzz...qn8 and 3 others | 1.00 sats per byte\nqpp...m7l sent 23,026 XEC to qqe...fmm | 5.01 sats per byte',
- tgMsgPriceFailure:
- '700722 | 97 txs | unknown\n\n1 new eToken created:\nLambda Variant Variants (LVV) [doc]\n\nApp txs:\nno app: 1629498127|85\nno app: 1629500089|91\nno app: 1629497915|79\nno app: 1629500647|79\nno app: 1629499023|76\nno app: 1629497534|78\nno app: 1629498535|87\nno app: 1629500798|79\nno app: 1629497457|77\nno app: 1629498288|72\nno app: 1629499274|64\nno app: 1629500162|80\nno app: 1629500720|82\nno app: 1629499774|94\nno app: 1629497610|79\nno app: 1629499360|84\nno app: 1629498460|71\nno app: 1629500318|76\nno app: 1629497132|78\nno app: 1629498060|88\nno app: 1629499897|105\nno app: 1629497763|75\nno app: 1629499571|93\nno app: 1629497054|74\nno app: 1629499185|75\nno app: 1629498375|70\nno app: 1629498610|74\nno app: 1629497293|68\nno app: 1629497209|76\nno app: 1629499706|88\nno app: 1629497685|81\nno app: 1629499504|84\nno app: 1629498864|64\nno app: 1629498773|66\nno app: 1629499955|96\nno app: 1629500566|71\nno app: 1629497990|82\nno app: 1629498205|77\nno app: 1629499836|98\nno app: 1629498688|79\nno app: 1629497840|81\nno app: 1629500240|77\nno app: 1629500399|75\nno app: 1629498945|79\nno app: 1629497378|72\nno app: 1629499638|91\nno app: 1629499432|84\nno app: 1629500022|85\nno app: 1629500482|72\nno app: 1629499103|75\n\n45 eCash txs:\nqqv...y7y sent 201,835,617 XEC to qqn...gd2 and 1 others | 1.00 sats per byte\nqrf...ldm sent 6,354 XEC to qr8...kys and 1 others | 1.00 sats per byte\nqq4...xph sent 2,099,979 XEC to qp0...rj6 | 10.69 sats per byte\nqru...y7r sent 240,420 XEC to qz5...7p8 and 1 others | 1.23 sats per byte\nqp5...pck sent 4,261,646 XEC to qqz...cc8 | 1.06 sats per byte\nqrh...47a sent 47,684,497 XEC to qz0...c8j and 1 others | 1.00 sats per byte\nqp9...jlg sent 69,850 XEC to qpu...dtm | 4.18 sats per byte\nqp9...jlg sent 10,000 XEC to qqm...uqa | 4.18 sats per byte\nqr9...3zm sent 425,718,894 XEC to qzx...xg8 and 1 others | 1.00 sats per byte\nqq4...w64 sent 110,320,517 XEC to qqt...q7t and 2 others | 4.10 sats per byte\nqph...72y sent 15,326 XEC to qz2...035 | 2.01 sats per byte\nqrp...rtz sent 1,008,221 XEC to qp2...qa4 and 1 others | 5.02 sats per byte\nqzs...qn7 sent 6,941,377 XEC to qqh...ytf and 1 others | 1.00 sats per byte\nqrz...k3d sent 2,571,837 XEC to qr4...kxh | 150.87 sats per byte\nqz5...7p8 sent 750 XEC to qrf...py0 and 1 others | 1.12 sats per byte\nqzq...mzs sent 717,296 XEC to qzj...e2s and 1 others | 5.00 sats per byte\nqql...h03 sent 89,006,076 XEC to qzj...ksg | 2.13 sats per byte\nqp0...t92 sent 612,181 XEC to qzj...ztx and 1 others | 1.00 sats per byte\nqpm...k9g sent 199,999,998 XEC to qqp...zqu and 1 others | 1.00 sats per byte\nqpa...czv sent 612,208 XEC to qp0...t92 and 1 others | 1.00 sats per byte\nppt...gny sent 88,521,997 XEC to qz3...rj3 and 2 others | 15.28 sats per byte\nqp2...pca sent 294,905 XEC to qp4...0fg and 1 others | 1.00 sats per byte\nqpm...k9g sent 199,999,997 XEC to qpl...eep and 2 others | 1.00 sats per byte\nqp4...yuu sent 289,611,690 XEC to qqh...zy3 and 1 others | 1.00 sats per byte\nqr4...ffa sent 1,975,381 XEC to qr3...w9u and 2 others | 1.00 sats per byte\nqql...y4w sent 30,000,000 XEC to qz8...0fa | 4.16 sats per byte\nqzn...amg sent 3,285,159 XEC to qzt...rag and 1 others | 1.00 sats per byte\nqp9...jlg sent 10,000 XEC to qpv...jap | 4.16 sats per byte\nqp9...jlg sent 45,000 XEC to qry...tf4 | 4.16 sats per byte\nqp9...jlg sent 95,000 XEC to qrt...lp5 | 4.16 sats per byte\nqqn...e9j sent 21,197,785 XEC to qr2...rh9 and 1 others | 4.10 sats per byte\nqpp...p3l sent 1,217,361 XEC to qz3...hef and 1 others | 1.00 sats per byte\nqz5...7p8 sent 150 XEC to qre...t4t and 1 others | 1.17 sats per byte\nqzj...ksg sent 937,282,770 XEC to qz3...rj3 and 4 others | 1.92 sats per byte\nqpm...k9g sent 199,999,998 XEC to qrd...vnm and 1 others | 1.00 sats per byte\npqu...4ws sent 551,094 XEC to qp2...thh and 1 others | 1.05 sats per byte\nqzl...52p sent 159,000,922 XEC to qpt...67y and 1 others | 1.01 sats per byte\nqz5...7p8 sent 750 XEC to qrf...py0 and 1 others | 1.13 sats per byte\nqz5...7p8 sent 2,300 XEC to qrf...py0 | 1.14 sats per byte\nqp9...jlg sent 971,154,369 XEC to qpu...qhj | 4.16 sats per byte\nqq4...qvq sent 5,167,950 XEC to qqu...vun and 1 others | 1.00 sats per byte\nqqn...gnz sent 10,499,318 XEC to qrj...eya and 1 others | 2.21 sats per byte\nqze...e3p sent 504,025 XEC to qzv...geu | 5.00 sats per byte\nqqs...7c5 sent 101,520,270 XEC to pzz...qn8 and 3 others | 1.00 sats per byte\nqpp...m7l sent 23,026 XEC to qqe...fmm | 5.01 sats per byte',
+ blockSummaryTgMsgs: [
+ '700722 | 97 txs | unknown\n1 XEC = $0.00002876\n1 BTC = $28,546\n1 ETH = $1,861\n\n1 new eToken created:\nLambda Variant Variants (LVV) [doc]\n\nApp txs:\nno app: 1629498127|85\nno app: 1629500089|91\nno app: 1629497915|79\nno app: 1629500647|79\nno app: 1629499023|76\nno app: 1629497534|78\nno app: 1629498535|87\nno app: 1629500798|79\nno app: 1629497457|77\nno app: 1629498288|72\nno app: 1629499274|64\nno app: 1629500162|80\nno app: 1629500720|82\nno app: 1629499774|94\nno app: 1629497610|79\nno app: 1629499360|84\nno app: 1629498460|71\nno app: 1629500318|76\nno app: 1629497132|78\nno app: 1629498060|88\nno app: 1629499897|105\nno app: 1629497763|75\nno app: 1629499571|93\nno app: 1629497054|74\nno app: 1629499185|75\nno app: 1629498375|70\nno app: 1629498610|74\nno app: 1629497293|68',
+ 'no app: 1629497209|76\nno app: 1629499706|88\nno app: 1629497685|81\nno app: 1629499504|84\nno app: 1629498864|64\nno app: 1629498773|66\nno app: 1629499955|96\nno app: 1629500566|71\nno app: 1629497990|82\nno app: 1629498205|77\nno app: 1629499836|98\nno app: 1629498688|79\nno app: 1629497840|81\nno app: 1629500240|77\nno app: 1629500399|75\nno app: 1629498945|79\nno app: 1629497378|72\nno app: 1629499638|91\nno app: 1629499432|84\nno app: 1629500022|85\nno app: 1629500482|72\nno app: 1629499103|75\n\n45 eCash txs:\nqqv...y7y sent 201,835,617 XEC to qqn...gd2 and 1 others | 1.00 sats per byte\nqrf...ldm sent 6,354 XEC to qr8...kys and 1 others | 1.00 sats per byte\nqq4...xph sent 2,099,979 XEC to qp0...rj6 | 10.69 sats per byte\nqru...y7r sent 240,420 XEC to qz5...7p8 and 1 others | 1.23 sats per byte\nqp5...pck sent 4,261,646 XEC to qqz...cc8 | 1.06 sats per byte\nqrh...47a sent 47,684,497 XEC to qz0...c8j and 1 others | 1.00 sats per byte\nqp9...jlg sent 69,850 XEC to qpu...dtm | 4.18 sats per byte',
+ 'qp9...jlg sent 10,000 XEC to qqm...uqa | 4.18 sats per byte\nqr9...3zm sent 425,718,894 XEC to qzx...xg8 and 1 others | 1.00 sats per byte\nqq4...w64 sent 110,320,517 XEC to qqt...q7t and 2 others | 4.10 sats per byte\nqph...72y sent 15,326 XEC to qz2...035 | 2.01 sats per byte\nqrp...rtz sent 1,008,221 XEC to qp2...qa4 and 1 others | 5.02 sats per byte\nqzs...qn7 sent 6,941,377 XEC to qqh...ytf and 1 others | 1.00 sats per byte\nqrz...k3d sent 2,571,837 XEC to qr4...kxh | 150.87 sats per byte\nqz5...7p8 sent 750 XEC to qrf...py0 and 1 others | 1.12 sats per byte\nqzq...mzs sent 717,296 XEC to qzj...e2s and 1 others | 5.00 sats per byte\nqql...h03 sent 89,006,076 XEC to qzj...ksg | 2.13 sats per byte\nqp0...t92 sent 612,181 XEC to qzj...ztx and 1 others | 1.00 sats per byte\nqpm...k9g sent 199,999,998 XEC to qqp...zqu and 1 others | 1.00 sats per byte\nqpa...czv sent 612,208 XEC to qp0...t92 and 1 others | 1.00 sats per byte\nppt...gny sent 88,521,997 XEC to qz3...rj3 and 2 others | 15.28 sats per byte\nqp2...pca sent 294,905 XEC to qp4...0fg and 1 others | 1.00 sats per byte\nqpm...k9g sent 199,999,997 XEC to qpl...eep and 2 others | 1.00 sats per byte\nqp4...yuu sent 289,611,690 XEC to qqh...zy3 and 1 others | 1.00 sats per byte\nqr4...ffa sent 1,975,381 XEC to qr3...w9u and 2 others | 1.00 sats per byte\nqql...y4w sent 30,000,000 XEC to qz8...0fa | 4.16 sats per byte\nqzn...amg sent 3,285,159 XEC to qzt...rag and 1 others | 1.00 sats per byte\nqp9...jlg sent 10,000 XEC to qpv...jap | 4.16 sats per byte\nqp9...jlg sent 45,000 XEC to qry...tf4 | 4.16 sats per byte\nqp9...jlg sent 95,000 XEC to qrt...lp5 | 4.16 sats per byte',
+ 'qqn...e9j sent 21,197,785 XEC to qr2...rh9 and 1 others | 4.10 sats per byte\nqpp...p3l sent 1,217,361 XEC to qz3...hef and 1 others | 1.00 sats per byte\nqz5...7p8 sent 150 XEC to qre...t4t and 1 others | 1.17 sats per byte\nqzj...ksg sent 937,282,770 XEC to qz3...rj3 and 4 others | 1.92 sats per byte\nqpm...k9g sent 199,999,998 XEC to qrd...vnm and 1 others | 1.00 sats per byte\npqu...4ws sent 551,094 XEC to qp2...thh and 1 others | 1.05 sats per byte\nqzl...52p sent 159,000,922 XEC to qpt...67y and 1 others | 1.01 sats per byte\nqz5...7p8 sent 750 XEC to qrf...py0 and 1 others | 1.13 sats per byte\nqz5...7p8 sent 2,300 XEC to qrf...py0 | 1.14 sats per byte\nqp9...jlg sent 971,154,369 XEC to qpu...qhj | 4.16 sats per byte\nqq4...qvq sent 5,167,950 XEC to qqu...vun and 1 others | 1.00 sats per byte\nqqn...gnz sent 10,499,318 XEC to qrj...eya and 1 others | 2.21 sats per byte\nqze...e3p sent 504,025 XEC to qzv...geu | 5.00 sats per byte\nqqs...7c5 sent 101,520,270 XEC to pzz...qn8 and 3 others | 1.00 sats per byte\nqpp...m7l sent 23,026 XEC to qqe...fmm | 5.01 sats per byte',
+ ],
+ blockSummaryTgMsgsPriceFailure: [
+ '700722 | 97 txs | unknown\n\n1 new eToken created:\nLambda Variant Variants (LVV) [doc]\n\nApp txs:\nno app: 1629498127|85\nno app: 1629500089|91\nno app: 1629497915|79\nno app: 1629500647|79\nno app: 1629499023|76\nno app: 1629497534|78\nno app: 1629498535|87\nno app: 1629500798|79\nno app: 1629497457|77\nno app: 1629498288|72\nno app: 1629499274|64\nno app: 1629500162|80\nno app: 1629500720|82\nno app: 1629499774|94\nno app: 1629497610|79\nno app: 1629499360|84\nno app: 1629498460|71\nno app: 1629500318|76\nno app: 1629497132|78\nno app: 1629498060|88\nno app: 1629499897|105\nno app: 1629497763|75\nno app: 1629499571|93\nno app: 1629497054|74\nno app: 1629499185|75\nno app: 1629498375|70\nno app: 1629498610|74\nno app: 1629497293|68\nno app: 1629497209|76',
+ 'no app: 1629499706|88\nno app: 1629497685|81\nno app: 1629499504|84\nno app: 1629498864|64\nno app: 1629498773|66\nno app: 1629499955|96\nno app: 1629500566|71\nno app: 1629497990|82\nno app: 1629498205|77\nno app: 1629499836|98\nno app: 1629498688|79\nno app: 1629497840|81\nno app: 1629500240|77\nno app: 1629500399|75\nno app: 1629498945|79\nno app: 1629497378|72\nno app: 1629499638|91\nno app: 1629499432|84\nno app: 1629500022|85\nno app: 1629500482|72\nno app: 1629499103|75\n\n45 eCash txs:\nqqv...y7y sent 201,835,617 XEC to qqn...gd2 and 1 others | 1.00 sats per byte\nqrf...ldm sent 6,354 XEC to qr8...kys and 1 others | 1.00 sats per byte\nqq4...xph sent 2,099,979 XEC to qp0...rj6 | 10.69 sats per byte\nqru...y7r sent 240,420 XEC to qz5...7p8 and 1 others | 1.23 sats per byte\nqp5...pck sent 4,261,646 XEC to qqz...cc8 | 1.06 sats per byte\nqrh...47a sent 47,684,497 XEC to qz0...c8j and 1 others | 1.00 sats per byte\nqp9...jlg sent 69,850 XEC to qpu...dtm | 4.18 sats per byte\nqp9...jlg sent 10,000 XEC to qqm...uqa | 4.18 sats per byte',
+ 'qr9...3zm sent 425,718,894 XEC to qzx...xg8 and 1 others | 1.00 sats per byte\nqq4...w64 sent 110,320,517 XEC to qqt...q7t and 2 others | 4.10 sats per byte\nqph...72y sent 15,326 XEC to qz2...035 | 2.01 sats per byte\nqrp...rtz sent 1,008,221 XEC to qp2...qa4 and 1 others | 5.02 sats per byte\nqzs...qn7 sent 6,941,377 XEC to qqh...ytf and 1 others | 1.00 sats per byte\nqrz...k3d sent 2,571,837 XEC to qr4...kxh | 150.87 sats per byte\nqz5...7p8 sent 750 XEC to qrf...py0 and 1 others | 1.12 sats per byte\nqzq...mzs sent 717,296 XEC to qzj...e2s and 1 others | 5.00 sats per byte\nqql...h03 sent 89,006,076 XEC to qzj...ksg | 2.13 sats per byte\nqp0...t92 sent 612,181 XEC to qzj...ztx and 1 others | 1.00 sats per byte\nqpm...k9g sent 199,999,998 XEC to qqp...zqu and 1 others | 1.00 sats per byte\nqpa...czv sent 612,208 XEC to qp0...t92 and 1 others | 1.00 sats per byte\nppt...gny sent 88,521,997 XEC to qz3...rj3 and 2 others | 15.28 sats per byte\nqp2...pca sent 294,905 XEC to qp4...0fg and 1 others | 1.00 sats per byte\nqpm...k9g sent 199,999,997 XEC to qpl...eep and 2 others | 1.00 sats per byte\nqp4...yuu sent 289,611,690 XEC to qqh...zy3 and 1 others | 1.00 sats per byte\nqr4...ffa sent 1,975,381 XEC to qr3...w9u and 2 others | 1.00 sats per byte\nqql...y4w sent 30,000,000 XEC to qz8...0fa | 4.16 sats per byte\nqzn...amg sent 3,285,159 XEC to qzt...rag and 1 others | 1.00 sats per byte\nqp9...jlg sent 10,000 XEC to qpv...jap | 4.16 sats per byte\nqp9...jlg sent 45,000 XEC to qry...tf4 | 4.16 sats per byte\nqp9...jlg sent 95,000 XEC to qrt...lp5 | 4.16 sats per byte\nqqn...e9j sent 21,197,785 XEC to qr2...rh9 and 1 others | 4.10 sats per byte',
+ 'qpp...p3l sent 1,217,361 XEC to qz3...hef and 1 others | 1.00 sats per byte\nqz5...7p8 sent 150 XEC to qre...t4t and 1 others | 1.17 sats per byte\nqzj...ksg sent 937,282,770 XEC to qz3...rj3 and 4 others | 1.92 sats per byte\nqpm...k9g sent 199,999,998 XEC to qrd...vnm and 1 others | 1.00 sats per byte\npqu...4ws sent 551,094 XEC to qp2...thh and 1 others | 1.05 sats per byte\nqzl...52p sent 159,000,922 XEC to qpt...67y and 1 others | 1.01 sats per byte\nqz5...7p8 sent 750 XEC to qrf...py0 and 1 others | 1.13 sats per byte\nqz5...7p8 sent 2,300 XEC to qrf...py0 | 1.14 sats per byte\nqp9...jlg sent 971,154,369 XEC to qpu...qhj | 4.16 sats per byte\nqq4...qvq sent 5,167,950 XEC to qqu...vun and 1 others | 1.00 sats per byte\nqqn...gnz sent 10,499,318 XEC to qrj...eya and 1 others | 2.21 sats per byte\nqze...e3p sent 504,025 XEC to qzv...geu | 5.00 sats per byte\nqqs...7c5 sent 101,520,270 XEC to pzz...qn8 and 3 others | 1.00 sats per byte\nqpp...m7l sent 23,026 XEC to qqe...fmm | 5.01 sats per byte',
+ ],
blockName: 'etokenGenesisTx',
},
{
@@ -13279,35 +13291,40 @@
},
coingeckoResponse: {
bitcoin: {
- usd: 29160.02775612,
+ usd: 28546.41121148,
},
ecash: {
- usd: 0.00002943,
+ usd: 0.00002876,
},
ethereum: {
- usd: 1894.98574958,
+ usd: 1861.31220549,
},
},
coingeckoPrices: [
{
fiat: 'usd',
- price: 0.00002943,
+ price: 0.00002876,
ticker: 'XEC',
},
{
fiat: 'usd',
- price: 29160.02775612,
+ price: 28546.41121148,
ticker: 'BTC',
},
{
fiat: 'usd',
- price: 1894.98574958,
+ price: 1861.31220549,
ticker: 'ETH',
},
],
- tgMsg: '782665 | 43 txs | ViaBTC\n1 XEC = $0.00002943\n1 BTC = $29,160\n1 ETH = $1,895\n\n2 new eTokens created:\nBearNip (BEAR) [doc]\neCash Herald (TRIB) [doc]\n\nApp txs:\nmemo: Reply to memo|�V��iM�j�t[P\u001c\u000e����J\u0018_�z7�\b�k\u0005u\n|From what I\'m gathering, it seems that the media went from questioning authority to doing their bidding as a collective NPC hivemind!\nAlias: 12345\n\n38 eCash txs:\nqq6...eq7 sent 5 XEC to qpx...kvj | 2.56 sats per byte\nqrv...ffd sent 5 XEC to qrs...6k9 | 2.37 sats per byte\nqq6...eq7 sent 5 XEC to qpx...kvj | 2.56 sats per byte\nqq6...eq7 sent 5 XEC to qpx...kvj | 2.56 sats per byte\nqrv...ffd sent 5 XEC to qrs...6k9 | 2.37 sats per byte\nqzx...efz sent 999,998 XEC to qq6...f27 | 1.08 sats per byte\nqqc...c8e sent 18,698,998 XEC to qz4...n9l and 1 others | 1.03 sats per byte\nqrv...ffd sent 5 XEC to qrs...6k9 | 2.37 sats per byte\nqqj...9g4 sent 936 XEC to qpw...x5g | 2.38 sats per byte\nqqh...lpy sent 29,022,106 XEC to qqu...0av and 1 others | 10.05 sats per byte\nqrv...ffd sent 5 XEC to qq5...fn0 | 2.36 sats per byte\nqq6...eq7 sent 5 XEC to qpx...kvj | 2.56 sats per byte\nqrv...ffd sent 5 XEC to qrs...6k9 | 2.37 sats per byte\nqrx...4nm sent 1,000 XEC to qz9...jhz | 1.00 sats per byte\nqz2...035 sent 5 XEC to qp8...gg6 | 2.37 sats per byte\nqq6...eq7 sent 5 XEC to qpx...kvj | 2.56 sats per byte\nqpl...4l0 sent 984,178 XEC to qpu...4d7 | 1.44 sats per byte\nqpt...2wg sent 23,656,838 XEC to qz6...74j and 2 others | 10.05 sats per byte\nqq6...eq7 sent 11 XEC to qpx...kvj and 1 others | 1.47 sats per byte\nqq3...x4u sent 807,228 XEC to qrh...pdm | 1.00 sats per byte\nqq6...eq7 sent 5 XEC to qpx...kvj | 2.56 sats per byte\nqq6...eq7 sent 5 XEC to qpx...kvj | 2.56 sats per byte\nqq6...eq7 sent 5 XEC to qpx...kvj | 2.56 sats per byte\nqz2...035 sent 5 XEC to qp8...gg6 | 2.37 sats per byte\nqq6...eq7 sent 5 XEC to qpx...kvj | 2.56 sats per byte\nqz9...m57 sent 950 XEC to qqj...9g4 | 2.16 sats per byte\nqrv...ffd sent 5 XEC to qrs...6k9 | 2.37 sats per byte\n1 address sent 237.57 XEC to itself\nqq6...eq7 sent 5 XEC to qpx...kvj | 2.56 sats per byte\nqrv...ffd sent 5 XEC to qrs...6k9 | 2.37 sats per byte\nqz2...035 sent 5 XEC to qp8...gg6 | 2.36 sats per byte\nqpy...6yp sent 2,000 XEC to qqn...678 | 2.02 sats per byte\nqq6...eq7 sent 5 XEC to qpx...kvj | 2.56 sats per byte\nqrv...ffd sent 5 XEC to qq5...fn0 | 2.37 sats per byte\npp2...mza sent 16 XEC to qpx...kvj and 2 others | 1.01 sats per byte\nqq6...eq7 sent 5 XEC to qpx...kvj | 2.56 sats per byte\nqpx...kvj sent 32 XEC to qr0...d2u and 1 others | 2.03 sats per byte\nqq6...eq7 sent 5 XEC to qpx...kvj | 2.56 sats per byte',
- tgMsgPriceFailure:
- '782665 | 43 txs | ViaBTC\n\n2 new eTokens created:\nBearNip (BEAR) [doc]\neCash Herald (TRIB) [doc]\n\nApp txs:\nmemo: Reply to memo|�V��iM�j�t[P\u001c\u000e����J\u0018_�z7�\b�k\u0005u\n|From what I\'m gathering, it seems that the media went from questioning authority to doing their bidding as a collective NPC hivemind!\nAlias: 12345\n\n38 eCash txs:\nqq6...eq7 sent 5 XEC to qpx...kvj | 2.56 sats per byte\nqrv...ffd sent 5 XEC to qrs...6k9 | 2.37 sats per byte\nqq6...eq7 sent 5 XEC to qpx...kvj | 2.56 sats per byte\nqq6...eq7 sent 5 XEC to qpx...kvj | 2.56 sats per byte\nqrv...ffd sent 5 XEC to qrs...6k9 | 2.37 sats per byte\nqzx...efz sent 999,998 XEC to qq6...f27 | 1.08 sats per byte\nqqc...c8e sent 18,698,998 XEC to qz4...n9l and 1 others | 1.03 sats per byte\nqrv...ffd sent 5 XEC to qrs...6k9 | 2.37 sats per byte\nqqj...9g4 sent 936 XEC to qpw...x5g | 2.38 sats per byte\nqqh...lpy sent 29,022,106 XEC to qqu...0av and 1 others | 10.05 sats per byte\nqrv...ffd sent 5 XEC to qq5...fn0 | 2.36 sats per byte\nqq6...eq7 sent 5 XEC to qpx...kvj | 2.56 sats per byte\nqrv...ffd sent 5 XEC to qrs...6k9 | 2.37 sats per byte\nqrx...4nm sent 1,000 XEC to qz9...jhz | 1.00 sats per byte\nqz2...035 sent 5 XEC to qp8...gg6 | 2.37 sats per byte\nqq6...eq7 sent 5 XEC to qpx...kvj | 2.56 sats per byte\nqpl...4l0 sent 984,178 XEC to qpu...4d7 | 1.44 sats per byte\nqpt...2wg sent 23,656,838 XEC to qz6...74j and 2 others | 10.05 sats per byte\nqq6...eq7 sent 11 XEC to qpx...kvj and 1 others | 1.47 sats per byte\nqq3...x4u sent 807,228 XEC to qrh...pdm | 1.00 sats per byte\nqq6...eq7 sent 5 XEC to qpx...kvj | 2.56 sats per byte\nqq6...eq7 sent 5 XEC to qpx...kvj | 2.56 sats per byte\nqq6...eq7 sent 5 XEC to qpx...kvj | 2.56 sats per byte\nqz2...035 sent 5 XEC to qp8...gg6 | 2.37 sats per byte\nqq6...eq7 sent 5 XEC to qpx...kvj | 2.56 sats per byte\nqz9...m57 sent 950 XEC to qqj...9g4 | 2.16 sats per byte\nqrv...ffd sent 5 XEC to qrs...6k9 | 2.37 sats per byte\n1 address sent 237.57 XEC to itself\nqq6...eq7 sent 5 XEC to qpx...kvj | 2.56 sats per byte\nqrv...ffd sent 5 XEC to qrs...6k9 | 2.37 sats per byte\nqz2...035 sent 5 XEC to qp8...gg6 | 2.36 sats per byte\nqpy...6yp sent 2,000 XEC to qqn...678 | 2.02 sats per byte\nqq6...eq7 sent 5 XEC to qpx...kvj | 2.56 sats per byte\nqrv...ffd sent 5 XEC to qq5...fn0 | 2.37 sats per byte\npp2...mza sent 16 XEC to qpx...kvj and 2 others | 1.01 sats per byte\nqq6...eq7 sent 5 XEC to qpx...kvj | 2.56 sats per byte\nqpx...kvj sent 32 XEC to qr0...d2u and 1 others | 2.03 sats per byte\nqq6...eq7 sent 5 XEC to qpx...kvj | 2.56 sats per byte',
+ blockSummaryTgMsgs: [
+ '782665 | 43 txs | ViaBTC\n1 XEC = $0.00002876\n1 BTC = $28,546\n1 ETH = $1,861\n\n2 new eTokens created:\nBearNip (BEAR) [doc]\neCash Herald (TRIB) [doc]\n\nApp txs:\nmemo: Reply to memo|�V��iM�j�t[P\u001c\u000e����J\u0018_�z7�\b�k\u0005u\n|From what I\'m gathering, it seems that the media went from questioning authority to doing their bidding as a collective NPC hivemind!\nAlias: 12345\n\n38 eCash txs:\nqq6...eq7 sent 5 XEC to qpx...kvj | 2.56 sats per byte\nqrv...ffd sent 5 XEC to qrs...6k9 | 2.37 sats per byte\nqq6...eq7 sent 5 XEC to qpx...kvj | 2.56 sats per byte\nqq6...eq7 sent 5 XEC to qpx...kvj | 2.56 sats per byte\nqrv...ffd sent 5 XEC to qrs...6k9 | 2.37 sats per byte\nqzx...efz sent 999,998 XEC to qq6...f27 | 1.08 sats per byte\nqqc...c8e sent 18,698,998 XEC to qz4...n9l and 1 others | 1.03 sats per byte\nqrv...ffd sent 5 XEC to qrs...6k9 | 2.37 sats per byte\nqqj...9g4 sent 936 XEC to qpw...x5g | 2.38 sats per byte\nqqh...lpy sent 29,022,106 XEC to qqu...0av and 1 others | 10.05 sats per byte\nqrv...ffd sent 5 XEC to qq5...fn0 | 2.36 sats per byte\nqq6...eq7 sent 5 XEC to qpx...kvj | 2.56 sats per byte\nqrv...ffd sent 5 XEC to qrs...6k9 | 2.37 sats per byte\nqrx...4nm sent 1,000 XEC to qz9...jhz | 1.00 sats per byte\nqz2...035 sent 5 XEC to qp8...gg6 | 2.37 sats per byte\nqq6...eq7 sent 5 XEC to qpx...kvj | 2.56 sats per byte\nqpl...4l0 sent 984,178 XEC to qpu...4d7 | 1.44 sats per byte\nqpt...2wg sent 23,656,838 XEC to qz6...74j and 2 others | 10.05 sats per byte',
+ 'qq6...eq7 sent 11 XEC to qpx...kvj and 1 others | 1.47 sats per byte\nqq3...x4u sent 807,228 XEC to qrh...pdm | 1.00 sats per byte\nqq6...eq7 sent 5 XEC to qpx...kvj | 2.56 sats per byte\nqq6...eq7 sent 5 XEC to qpx...kvj | 2.56 sats per byte\nqq6...eq7 sent 5 XEC to qpx...kvj | 2.56 sats per byte\nqz2...035 sent 5 XEC to qp8...gg6 | 2.37 sats per byte\nqq6...eq7 sent 5 XEC to qpx...kvj | 2.56 sats per byte\nqz9...m57 sent 950 XEC to qqj...9g4 | 2.16 sats per byte\nqrv...ffd sent 5 XEC to qrs...6k9 | 2.37 sats per byte\n1 address sent 237.57 XEC to itself\nqq6...eq7 sent 5 XEC to qpx...kvj | 2.56 sats per byte\nqrv...ffd sent 5 XEC to qrs...6k9 | 2.37 sats per byte\nqz2...035 sent 5 XEC to qp8...gg6 | 2.36 sats per byte\nqpy...6yp sent 2,000 XEC to qqn...678 | 2.02 sats per byte\nqq6...eq7 sent 5 XEC to qpx...kvj | 2.56 sats per byte\nqrv...ffd sent 5 XEC to qq5...fn0 | 2.37 sats per byte\npp2...mza sent 16 XEC to qpx...kvj and 2 others | 1.01 sats per byte\nqq6...eq7 sent 5 XEC to qpx...kvj | 2.56 sats per byte\nqpx...kvj sent 32 XEC to qr0...d2u and 1 others | 2.03 sats per byte\nqq6...eq7 sent 5 XEC to qpx...kvj | 2.56 sats per byte',
+ ],
+ blockSummaryTgMsgsPriceFailure: [
+ '782665 | 43 txs | ViaBTC\n\n2 new eTokens created:\nBearNip (BEAR) [doc]\neCash Herald (TRIB) [doc]\n\nApp txs:\nmemo: Reply to memo|�V��iM�j�t[P\u001c\u000e����J\u0018_�z7�\b�k\u0005u\n|From what I\'m gathering, it seems that the media went from questioning authority to doing their bidding as a collective NPC hivemind!\nAlias: 12345\n\n38 eCash txs:\nqq6...eq7 sent 5 XEC to qpx...kvj | 2.56 sats per byte\nqrv...ffd sent 5 XEC to qrs...6k9 | 2.37 sats per byte\nqq6...eq7 sent 5 XEC to qpx...kvj | 2.56 sats per byte\nqq6...eq7 sent 5 XEC to qpx...kvj | 2.56 sats per byte\nqrv...ffd sent 5 XEC to qrs...6k9 | 2.37 sats per byte\nqzx...efz sent 999,998 XEC to qq6...f27 | 1.08 sats per byte\nqqc...c8e sent 18,698,998 XEC to qz4...n9l and 1 others | 1.03 sats per byte\nqrv...ffd sent 5 XEC to qrs...6k9 | 2.37 sats per byte\nqqj...9g4 sent 936 XEC to qpw...x5g | 2.38 sats per byte\nqqh...lpy sent 29,022,106 XEC to qqu...0av and 1 others | 10.05 sats per byte\nqrv...ffd sent 5 XEC to qq5...fn0 | 2.36 sats per byte\nqq6...eq7 sent 5 XEC to qpx...kvj | 2.56 sats per byte\nqrv...ffd sent 5 XEC to qrs...6k9 | 2.37 sats per byte\nqrx...4nm sent 1,000 XEC to qz9...jhz | 1.00 sats per byte\nqz2...035 sent 5 XEC to qp8...gg6 | 2.37 sats per byte\nqq6...eq7 sent 5 XEC to qpx...kvj | 2.56 sats per byte\nqpl...4l0 sent 984,178 XEC to qpu...4d7 | 1.44 sats per byte\nqpt...2wg sent 23,656,838 XEC to qz6...74j and 2 others | 10.05 sats per byte',
+ 'qq6...eq7 sent 11 XEC to qpx...kvj and 1 others | 1.47 sats per byte\nqq3...x4u sent 807,228 XEC to qrh...pdm | 1.00 sats per byte\nqq6...eq7 sent 5 XEC to qpx...kvj | 2.56 sats per byte\nqq6...eq7 sent 5 XEC to qpx...kvj | 2.56 sats per byte\nqq6...eq7 sent 5 XEC to qpx...kvj | 2.56 sats per byte\nqz2...035 sent 5 XEC to qp8...gg6 | 2.37 sats per byte\nqq6...eq7 sent 5 XEC to qpx...kvj | 2.56 sats per byte\nqz9...m57 sent 950 XEC to qqj...9g4 | 2.16 sats per byte\nqrv...ffd sent 5 XEC to qrs...6k9 | 2.37 sats per byte\n1 address sent 237.57 XEC to itself\nqq6...eq7 sent 5 XEC to qpx...kvj | 2.56 sats per byte\nqrv...ffd sent 5 XEC to qrs...6k9 | 2.37 sats per byte\nqz2...035 sent 5 XEC to qp8...gg6 | 2.36 sats per byte\nqpy...6yp sent 2,000 XEC to qqn...678 | 2.02 sats per byte\nqq6...eq7 sent 5 XEC to qpx...kvj | 2.56 sats per byte\nqrv...ffd sent 5 XEC to qq5...fn0 | 2.37 sats per byte\npp2...mza sent 16 XEC to qpx...kvj and 2 others | 1.01 sats per byte\nqq6...eq7 sent 5 XEC to qpx...kvj | 2.56 sats per byte\nqpx...kvj sent 32 XEC to qr0...d2u and 1 others | 2.03 sats per byte\nqq6...eq7 sent 5 XEC to qpx...kvj | 2.56 sats per byte',
+ ],
blockName: 'multipleGenesis',
},
{
@@ -13850,35 +13867,38 @@
},
coingeckoResponse: {
bitcoin: {
- usd: 29160.02775612,
+ usd: 28546.41121148,
},
ecash: {
- usd: 0.00002943,
+ usd: 0.00002876,
},
ethereum: {
- usd: 1894.98574958,
+ usd: 1861.31220549,
},
},
coingeckoPrices: [
{
fiat: 'usd',
- price: 0.00002943,
+ price: 0.00002876,
ticker: 'XEC',
},
{
fiat: 'usd',
- price: 29160.02775612,
+ price: 28546.41121148,
ticker: 'BTC',
},
{
fiat: 'usd',
- price: 1894.98574958,
+ price: 1861.31220549,
ticker: 'ETH',
},
],
- tgMsg: '782571 | 5 txs | ViaBTC\n1 XEC = $0.00002943\n1 BTC = $29,160\n1 ETH = $1,895\n\n4 eCash txs:\n1 address sent 10.92 XEC to itself\nqqw...6v4 sent 5 XEC to qrd...9j0 | 2.37 sats per byte\nqpk...pga sent 1,061,524 XEC to qrt...4v7 | 1.10 sats per byte\n1 address sent 0 XEC to itself',
- tgMsgPriceFailure:
+ blockSummaryTgMsgs: [
+ '782571 | 5 txs | ViaBTC\n1 XEC = $0.00002876\n1 BTC = $28,546\n1 ETH = $1,861\n\n4 eCash txs:\n1 address sent 10.92 XEC to itself\nqqw...6v4 sent 5 XEC to qrd...9j0 | 2.37 sats per byte\nqpk...pga sent 1,061,524 XEC to qrt...4v7 | 1.10 sats per byte\n1 address sent 0 XEC to itself',
+ ],
+ blockSummaryTgMsgsPriceFailure: [
'782571 | 5 txs | ViaBTC\n\n4 eCash txs:\n1 address sent 10.92 XEC to itself\nqqw...6v4 sent 5 XEC to qrd...9j0 | 2.37 sats per byte\nqpk...pga sent 1,061,524 XEC to qrt...4v7 | 1.10 sats per byte\n1 address sent 0 XEC to itself',
+ ],
blockName: 'buxTxs',
},
{
@@ -15000,35 +15020,38 @@
},
coingeckoResponse: {
bitcoin: {
- usd: 29160.02775612,
+ usd: 28546.41121148,
},
ecash: {
- usd: 0.00002943,
+ usd: 0.00002876,
},
ethereum: {
- usd: 1894.98574958,
+ usd: 1861.31220549,
},
},
coingeckoPrices: [
{
fiat: 'usd',
- price: 0.00002943,
+ price: 0.00002876,
ticker: 'XEC',
},
{
fiat: 'usd',
- price: 29160.02775612,
+ price: 28546.41121148,
ticker: 'BTC',
},
{
fiat: 'usd',
- price: 1894.98574958,
+ price: 1861.31220549,
ticker: 'ETH',
},
],
- tgMsg: '782657 | 10 txs | ViaBTC\n1 XEC = $0.00002943\n1 BTC = $29,160\n1 ETH = $1,895\n\nApp txs:\nunknown app: SWP\u0000|\u0001|\u0001|���]���7���؉�v��\u0018�\u001b�֯�\u001d��|SELL|110.00000000000001|\u0000|�Ϩ�O���+�u������Y�(���\u000e<D=�ήX|\u0001|\u0000|2747\nCashtab Msg: Sending a message transaction to test parsing in ecash telegram bot. With an emoji bc why not? 🤔\nunknown app: SWP\u0000|\u0001|\u0001|���]���7���؉�v��\u0018�\u001b�֯�\u001d��|SELL\n\n6 eCash txs:\nqzr...tfg sent 4,681,584 XEC to qqt...2qc and 1 others | 1.00 sats per byte\nqp9...jlg sent 2,993,000 XEC to qr5...taj | 4.18 sats per byte\nqpw...ms5 sent 2,843,535 XEC to qpw...f2s and 1 others | 1.91 sats per byte\nqp0...c3a sent 67,528,995 XEC to qph...tg5 and 1 others | 1.00 sats per byte\nqrn...54p sent 10,255 XEC to qqs...tsk and 1 others | 1.00 sats per byte\nqzt...zwy sent 18,832,831 XEC to qrv...rm2 | 1.00 sats per byte',
- tgMsgPriceFailure:
+ blockSummaryTgMsgs: [
+ '782657 | 10 txs | ViaBTC\n1 XEC = $0.00002876\n1 BTC = $28,546\n1 ETH = $1,861\n\nApp txs:\nunknown app: SWP\u0000|\u0001|\u0001|���]���7���؉�v��\u0018�\u001b�֯�\u001d��|SELL|110.00000000000001|\u0000|�Ϩ�O���+�u������Y�(���\u000e<D=�ήX|\u0001|\u0000|2747\nCashtab Msg: Sending a message transaction to test parsing in ecash telegram bot. With an emoji bc why not? 🤔\nunknown app: SWP\u0000|\u0001|\u0001|���]���7���؉�v��\u0018�\u001b�֯�\u001d��|SELL\n\n6 eCash txs:\nqzr...tfg sent 4,681,584 XEC to qqt...2qc and 1 others | 1.00 sats per byte\nqp9...jlg sent 2,993,000 XEC to qr5...taj | 4.18 sats per byte\nqpw...ms5 sent 2,843,535 XEC to qpw...f2s and 1 others | 1.91 sats per byte\nqp0...c3a sent 67,528,995 XEC to qph...tg5 and 1 others | 1.00 sats per byte\nqrn...54p sent 10,255 XEC to qqs...tsk and 1 others | 1.00 sats per byte\nqzt...zwy sent 18,832,831 XEC to qrv...rm2 | 1.00 sats per byte',
+ ],
+ blockSummaryTgMsgsPriceFailure: [
'782657 | 10 txs | ViaBTC\n\nApp txs:\nunknown app: SWP\u0000|\u0001|\u0001|���]���7���؉�v��\u0018�\u001b�֯�\u001d��|SELL|110.00000000000001|\u0000|�Ϩ�O���+�u������Y�(���\u000e<D=�ήX|\u0001|\u0000|2747\nCashtab Msg: Sending a message transaction to test parsing in ecash telegram bot. With an emoji bc why not? 🤔\nunknown app: SWP\u0000|\u0001|\u0001|���]���7���؉�v��\u0018�\u001b�֯�\u001d��|SELL\n\n6 eCash txs:\nqzr...tfg sent 4,681,584 XEC to qqt...2qc and 1 others | 1.00 sats per byte\nqp9...jlg sent 2,993,000 XEC to qr5...taj | 4.18 sats per byte\nqpw...ms5 sent 2,843,535 XEC to qpw...f2s and 1 others | 1.91 sats per byte\nqp0...c3a sent 67,528,995 XEC to qph...tg5 and 1 others | 1.00 sats per byte\nqrn...54p sent 10,255 XEC to qqs...tsk and 1 others | 1.00 sats per byte\nqzt...zwy sent 18,832,831 XEC to qrv...rm2 | 1.00 sats per byte',
+ ],
blockName: 'cashtabMsg',
},
{
@@ -17187,35 +17210,38 @@
},
coingeckoResponse: {
bitcoin: {
- usd: 29160.02775612,
+ usd: 28546.41121148,
},
ecash: {
- usd: 0.00002943,
+ usd: 0.00002876,
},
ethereum: {
- usd: 1894.98574958,
+ usd: 1861.31220549,
},
},
coingeckoPrices: [
{
fiat: 'usd',
- price: 0.00002943,
+ price: 0.00002876,
ticker: 'XEC',
},
{
fiat: 'usd',
- price: 29160.02775612,
+ price: 28546.41121148,
ticker: 'BTC',
},
{
fiat: 'usd',
- price: 1894.98574958,
+ price: 1861.31220549,
ticker: 'ETH',
},
],
- tgMsg: '782785 | 17 txs | Mining-Dutch\n1 XEC = $0.00002943\n1 BTC = $29,160\n1 ETH = $1,895\n\n1 new eToken created:\n<><><> (&&&) [doc]\n\nApp txs:\nCashtab Msg: Testing a normal message but give it some <i> spice </i> because <b>why not</b>?<a href="https://cashtab.com/">Cashtab link test</a>\nCashtab Msg: <b>Try to hack the format</b> ${true && <i>yes</i>}\n\n13 eCash txs:\nqq3...x4u sent 256,510 XEC to qp3...scq | 1.00 sats per byte\nqqv...wwc sent 5 XEC to qp2...dce | 1.07 sats per byte\nqzx...vth sent 10,039 XEC to qza...e7g | 5.01 sats per byte\nqp3...f6c sent 20,294 XEC to qza...e7g | 5.01 sats per byte\nqr7...wlz sent 223,965 XEC to qqr...8y8 and 1 others | 1.00 sats per byte\nqqg...q4a sent 5 XEC to qp2...dce | 1.07 sats per byte\nqp3...scq sent 256,506 XEC to qpu...ez7 | 2.38 sats per byte\nqpw...ms5 sent 849,061 XEC to qz8...y4c and 1 others | 1.90 sats per byte\nqrm...f33 sent 17,099,643 XEC to qrx...y9d and 1 others | 2.44 sats per byte\nqqg...v4e sent 49 XEC to qpj...yv6 and 8 others | 1.20 sats per byte\nqrh...6em sent 3,125,893 XEC to qz8...tu7 and 1 others | 2.01 sats per byte\nqqg...v4e sent 49 XEC to qpj...yv6 and 8 others | 1.20 sats per byte\nqpu...ez7 sent 256,501 XEC to qp0...upp | 2.38 sats per byte',
- tgMsgPriceFailure:
+ blockSummaryTgMsgs: [
+ '782785 | 17 txs | Mining-Dutch\n1 XEC = $0.00002876\n1 BTC = $28,546\n1 ETH = $1,861\n\n1 new eToken created:\n<><><> (&&&) [doc]\n\nApp txs:\nCashtab Msg: Testing a normal message but give it some <i> spice </i> because <b>why not</b>?<a href="https://cashtab.com/">Cashtab link test</a>\nCashtab Msg: <b>Try to hack the format</b> ${true && <i>yes</i>}\n\n13 eCash txs:\nqq3...x4u sent 256,510 XEC to qp3...scq | 1.00 sats per byte\nqqv...wwc sent 5 XEC to qp2...dce | 1.07 sats per byte\nqzx...vth sent 10,039 XEC to qza...e7g | 5.01 sats per byte\nqp3...f6c sent 20,294 XEC to qza...e7g | 5.01 sats per byte\nqr7...wlz sent 223,965 XEC to qqr...8y8 and 1 others | 1.00 sats per byte\nqqg...q4a sent 5 XEC to qp2...dce | 1.07 sats per byte\nqp3...scq sent 256,506 XEC to qpu...ez7 | 2.38 sats per byte\nqpw...ms5 sent 849,061 XEC to qz8...y4c and 1 others | 1.90 sats per byte\nqrm...f33 sent 17,099,643 XEC to qrx...y9d and 1 others | 2.44 sats per byte\nqqg...v4e sent 49 XEC to qpj...yv6 and 8 others | 1.20 sats per byte\nqrh...6em sent 3,125,893 XEC to qz8...tu7 and 1 others | 2.01 sats per byte\nqqg...v4e sent 49 XEC to qpj...yv6 and 8 others | 1.20 sats per byte\nqpu...ez7 sent 256,501 XEC to qp0...upp | 2.38 sats per byte',
+ ],
+ blockSummaryTgMsgsPriceFailure: [
'782785 | 17 txs | Mining-Dutch\n\n1 new eToken created:\n<><><> (&&&) [doc]\n\nApp txs:\nCashtab Msg: Testing a normal message but give it some <i> spice </i> because <b>why not</b>?<a href="https://cashtab.com/">Cashtab link test</a>\nCashtab Msg: <b>Try to hack the format</b> ${true && <i>yes</i>}\n\n13 eCash txs:\nqq3...x4u sent 256,510 XEC to qp3...scq | 1.00 sats per byte\nqqv...wwc sent 5 XEC to qp2...dce | 1.07 sats per byte\nqzx...vth sent 10,039 XEC to qza...e7g | 5.01 sats per byte\nqp3...f6c sent 20,294 XEC to qza...e7g | 5.01 sats per byte\nqr7...wlz sent 223,965 XEC to qqr...8y8 and 1 others | 1.00 sats per byte\nqqg...q4a sent 5 XEC to qp2...dce | 1.07 sats per byte\nqp3...scq sent 256,506 XEC to qpu...ez7 | 2.38 sats per byte\nqpw...ms5 sent 849,061 XEC to qz8...y4c and 1 others | 1.90 sats per byte\nqrm...f33 sent 17,099,643 XEC to qrx...y9d and 1 others | 2.44 sats per byte\nqqg...v4e sent 49 XEC to qpj...yv6 and 8 others | 1.20 sats per byte\nqrh...6em sent 3,125,893 XEC to qz8...tu7 and 1 others | 2.01 sats per byte\nqqg...v4e sent 49 XEC to qpj...yv6 and 8 others | 1.20 sats per byte\nqpu...ez7 sent 256,501 XEC to qp0...upp | 2.38 sats per byte',
+ ],
blockName: 'htmlEscapeTest',
},
{
@@ -18236,35 +18262,38 @@
},
coingeckoResponse: {
bitcoin: {
- usd: 29160.02775612,
+ usd: 28546.41121148,
},
ecash: {
- usd: 0.00002943,
+ usd: 0.00002876,
},
ethereum: {
- usd: 1894.98574958,
+ usd: 1861.31220549,
},
},
coingeckoPrices: [
{
fiat: 'usd',
- price: 0.00002943,
+ price: 0.00002876,
ticker: 'XEC',
},
{
fiat: 'usd',
- price: 29160.02775612,
+ price: 28546.41121148,
ticker: 'BTC',
},
{
fiat: 'usd',
- price: 1894.98574958,
+ price: 1861.31220549,
ticker: 'ETH',
},
],
- tgMsg: '782774 | 10 txs | ViaBTC\n1 XEC = $0.00002943\n1 BTC = $29,160\n1 ETH = $1,895\n\nApp txs:\nCashtab Msg: Why not another one, this time with emojis 🤔\nCashtab Msg: Can\'t believe already need to test again\nCashtab Msg: Another Cashtab message to the TG bot. Making it longer to see if spacing is a problem. Is spacing a problem? Is parsing a problem? Who can tell. We will only know after this message appears (or doesn\'t). \n\n6 eCash txs:\nqrw...re7 sent 21 XEC to qza...e7g | 5.00 sats per byte\nqp4...v8x sent 4,568,709 XEC to pqg...tlg and 1 others | 2.02 sats per byte\nqq5...ck4 sent 10,280 XEC to qza...e7g | 5.01 sats per byte\nqzj...u85 sent 29 XEC to qza...e7g | 5.02 sats per byte\nqz2...035 sent 5 XEC to qp8...gg6 | 2.37 sats per byte\nqrk...wcf sent 8,220 XEC to qza...e7g | 5.01 sats per byte',
- tgMsgPriceFailure:
+ blockSummaryTgMsgs: [
+ '782774 | 10 txs | ViaBTC\n1 XEC = $0.00002876\n1 BTC = $28,546\n1 ETH = $1,861\n\nApp txs:\nCashtab Msg: Why not another one, this time with emojis 🤔\nCashtab Msg: Can\'t believe already need to test again\nCashtab Msg: Another Cashtab message to the TG bot. Making it longer to see if spacing is a problem. Is spacing a problem? Is parsing a problem? Who can tell. We will only know after this message appears (or doesn\'t). \n\n6 eCash txs:\nqrw...re7 sent 21 XEC to qza...e7g | 5.00 sats per byte\nqp4...v8x sent 4,568,709 XEC to pqg...tlg and 1 others | 2.02 sats per byte\nqq5...ck4 sent 10,280 XEC to qza...e7g | 5.01 sats per byte\nqzj...u85 sent 29 XEC to qza...e7g | 5.02 sats per byte\nqz2...035 sent 5 XEC to qp8...gg6 | 2.37 sats per byte\nqrk...wcf sent 8,220 XEC to qza...e7g | 5.01 sats per byte',
+ ],
+ blockSummaryTgMsgsPriceFailure: [
'782774 | 10 txs | ViaBTC\n\nApp txs:\nCashtab Msg: Why not another one, this time with emojis 🤔\nCashtab Msg: Can\'t believe already need to test again\nCashtab Msg: Another Cashtab message to the TG bot. Making it longer to see if spacing is a problem. Is spacing a problem? Is parsing a problem? Who can tell. We will only know after this message appears (or doesn\'t). \n\n6 eCash txs:\nqrw...re7 sent 21 XEC to qza...e7g | 5.00 sats per byte\nqp4...v8x sent 4,568,709 XEC to pqg...tlg and 1 others | 2.02 sats per byte\nqq5...ck4 sent 10,280 XEC to qza...e7g | 5.01 sats per byte\nqzj...u85 sent 29 XEC to qza...e7g | 5.02 sats per byte\nqz2...035 sent 5 XEC to qp8...gg6 | 2.37 sats per byte\nqrk...wcf sent 8,220 XEC to qza...e7g | 5.01 sats per byte',
+ ],
blockName: 'cashtabMsgMulti',
},
];
diff --git a/apps/ecash-herald/test/mocks/telegramMsgs.js b/apps/ecash-herald/test/mocks/telegramMsgs.js
new file mode 100644
--- /dev/null
+++ b/apps/ecash-herald/test/mocks/telegramMsgs.js
@@ -0,0 +1,171 @@
+// Copyright (c) 2023 The Bitcoin developers
+// Distributed under the MIT software license, see the accompanying
+// file COPYING or http://www.opensource.org/licenses/mit-license.php.
+// @generated
+
+'use strict';
+module.exports = {
+ overflowMsg: [
+ '700722 | 97 txs | unknown',
+ '',
+ '1 new eToken created:',
+ 'Lambda Variant Variants (LVV) [doc]',
+ '',
+ 'App txs:',
+ 'no app: 1629498127|85',
+ 'no app: 1629500089|91',
+ 'no app: 1629497915|79',
+ 'no app: 1629500647|79',
+ 'no app: 1629499023|76',
+ 'no app: 1629497534|78',
+ 'no app: 1629498535|87',
+ 'no app: 1629500798|79',
+ 'no app: 1629497457|77',
+ 'no app: 1629498288|72',
+ 'no app: 1629499274|64',
+ 'no app: 1629500162|80',
+ 'no app: 1629500720|82',
+ 'no app: 1629499774|94',
+ 'no app: 1629497610|79',
+ 'no app: 1629499360|84',
+ 'no app: 1629498460|71',
+ 'no app: 1629500318|76',
+ 'no app: 1629497132|78',
+ 'no app: 1629498060|88',
+ 'no app: 1629499897|105',
+ 'no app: 1629497763|75',
+ 'no app: 1629499571|93',
+ 'no app: 1629497054|74',
+ 'no app: 1629499185|75',
+ 'no app: 1629498375|70',
+ 'no app: 1629498610|74',
+ 'no app: 1629497293|68',
+ 'no app: 1629497209|76',
+ 'no app: 1629499706|88',
+ 'no app: 1629497685|81',
+ 'no app: 1629499504|84',
+ 'no app: 1629498864|64',
+ 'no app: 1629498773|66',
+ 'no app: 1629499955|96',
+ 'no app: 1629500566|71',
+ 'no app: 1629497990|82',
+ 'no app: 1629498205|77',
+ 'no app: 1629499836|98',
+ 'no app: 1629498688|79',
+ 'no app: 1629497840|81',
+ 'no app: 1629500240|77',
+ 'no app: 1629500399|75',
+ 'no app: 1629498945|79',
+ 'no app: 1629497378|72',
+ 'no app: 1629499638|91',
+ 'no app: 1629499432|84',
+ 'no app: 1629500022|85',
+ 'no app: 1629500482|72',
+ 'no app: 1629499103|75',
+ '',
+ '45 eCash txs:',
+ 'qqv...y7y sent 201,835,617 XEC to qqn...gd2 and 1 others | 1.00 sats per byte',
+ 'qrf...ldm sent 6,354 XEC to qr8...kys and 1 others | 1.00 sats per byte',
+ 'qq4...xph sent 2,099,979 XEC to qp0...rj6 | 10.69 sats per byte',
+ 'qru...y7r sent 240,420 XEC to qz5...7p8 and 1 others | 1.23 sats per byte',
+ 'qp5...pck sent 4,261,646 XEC to qqz...cc8 | 1.06 sats per byte',
+ 'qrh...47a sent 47,684,497 XEC to qz0...c8j and 1 others | 1.00 sats per byte',
+ 'qp9...jlg sent 69,850 XEC to qpu...dtm | 4.18 sats per byte',
+ 'qp9...jlg sent 10,000 XEC to qqm...uqa | 4.18 sats per byte',
+ 'qr9...3zm sent 425,718,894 XEC to qzx...xg8 and 1 others | 1.00 sats per byte',
+ 'qq4...w64 sent 110,320,517 XEC to qqt...q7t and 2 others | 4.10 sats per byte',
+ 'qph...72y sent 15,326 XEC to qz2...035 | 2.01 sats per byte',
+ 'qrp...rtz sent 1,008,221 XEC to qp2...qa4 and 1 others | 5.02 sats per byte',
+ 'qzs...qn7 sent 6,941,377 XEC to qqh...ytf and 1 others | 1.00 sats per byte',
+ 'qrz...k3d sent 2,571,837 XEC to qr4...kxh | 150.87 sats per byte',
+ 'qz5...7p8 sent 750 XEC to qrf...py0 and 1 others | 1.12 sats per byte',
+ 'qzq...mzs sent 717,296 XEC to qzj...e2s and 1 others | 5.00 sats per byte',
+ 'qql...h03 sent 89,006,076 XEC to qzj...ksg | 2.13 sats per byte',
+ 'qp0...t92 sent 612,181 XEC to qzj...ztx and 1 others | 1.00 sats per byte',
+ 'qpm...k9g sent 199,999,998 XEC to qqp...zqu and 1 others | 1.00 sats per byte',
+ 'qpa...czv sent 612,208 XEC to qp0...t92 and 1 others | 1.00 sats per byte',
+ 'ppt...gny sent 88,521,997 XEC to qz3...rj3 and 2 others | 15.28 sats per byte',
+ 'qp2...pca sent 294,905 XEC to qp4...0fg and 1 others | 1.00 sats per byte',
+ 'qpm...k9g sent 199,999,997 XEC to qpl...eep and 2 others | 1.00 sats per byte',
+ 'qp4...yuu sent 289,611,690 XEC to qqh...zy3 and 1 others | 1.00 sats per byte',
+ 'qr4...ffa sent 1,975,381 XEC to qr3...w9u and 2 others | 1.00 sats per byte',
+ 'qql...y4w sent 30,000,000 XEC to qz8...0fa | 4.16 sats per byte',
+ 'qzn...amg sent 3,285,159 XEC to qzt...rag and 1 others | 1.00 sats per byte',
+ 'qp9...jlg sent 10,000 XEC to qpv...jap | 4.16 sats per byte',
+ 'qp9...jlg sent 45,000 XEC to qry...tf4 | 4.16 sats per byte',
+ 'qp9...jlg sent 95,000 XEC to qrt...lp5 | 4.16 sats per byte',
+ 'qqn...e9j sent 21,197,785 XEC to qr2...rh9 and 1 others | 4.10 sats per byte',
+ 'qpp...p3l sent 1,217,361 XEC to qz3...hef and 1 others | 1.00 sats per byte',
+ 'qz5...7p8 sent 150 XEC to qre...t4t and 1 others | 1.17 sats per byte',
+ 'qzj...ksg sent 937,282,770 XEC to qz3...rj3 and 4 others | 1.92 sats per byte',
+ 'qpm...k9g sent 199,999,998 XEC to qrd...vnm and 1 others | 1.00 sats per byte',
+ 'pqu...4ws sent 551,094 XEC to qp2...thh and 1 others | 1.05 sats per byte',
+ 'qzl...52p sent 159,000,922 XEC to qpt...67y and 1 others | 1.01 sats per byte',
+ 'qz5...7p8 sent 750 XEC to qrf...py0 and 1 others | 1.13 sats per byte',
+ 'qz5...7p8 sent 2,300 XEC to qrf...py0 | 1.14 sats per byte',
+ 'qp9...jlg sent 971,154,369 XEC to qpu...qhj | 4.16 sats per byte',
+ 'qq4...qvq sent 5,167,950 XEC to qqu...vun and 1 others | 1.00 sats per byte',
+ 'qqn...gnz sent 10,499,318 XEC to qrj...eya and 1 others | 2.21 sats per byte',
+ 'qze...e3p sent 504,025 XEC to qzv...geu | 5.00 sats per byte',
+ 'qqs...7c5 sent 101,520,270 XEC to pzz...qn8 and 3 others | 1.00 sats per byte',
+ 'qpp...m7l sent 23,026 XEC to qqe...fmm | 5.01 sats per byte',
+ ],
+ overflowMsgSplit: [
+ '700722 | 97 txs | unknown\n\n1 new eToken created:\nLambda Variant Variants (LVV) [doc]\n\nApp txs:\nno app: 1629498127|85\nno app: 1629500089|91\nno app: 1629497915|79\nno app: 1629500647|79\nno app: 1629499023|76\nno app: 1629497534|78\nno app: 1629498535|87\nno app: 1629500798|79\nno app: 1629497457|77\nno app: 1629498288|72\nno app: 1629499274|64\nno app: 1629500162|80\nno app: 1629500720|82\nno app: 1629499774|94\nno app: 1629497610|79\nno app: 1629499360|84\nno app: 1629498460|71\nno app: 1629500318|76\nno app: 1629497132|78\nno app: 1629498060|88\nno app: 1629499897|105\nno app: 1629497763|75\nno app: 1629499571|93\nno app: 1629497054|74\nno app: 1629499185|75\nno app: 1629498375|70\nno app: 1629498610|74\nno app: 1629497293|68\nno app: 1629497209|76',
+ 'no app: 1629499706|88\nno app: 1629497685|81\nno app: 1629499504|84\nno app: 1629498864|64\nno app: 1629498773|66\nno app: 1629499955|96\nno app: 1629500566|71\nno app: 1629497990|82\nno app: 1629498205|77\nno app: 1629499836|98\nno app: 1629498688|79\nno app: 1629497840|81\nno app: 1629500240|77\nno app: 1629500399|75\nno app: 1629498945|79\nno app: 1629497378|72\nno app: 1629499638|91\nno app: 1629499432|84\nno app: 1629500022|85\nno app: 1629500482|72\nno app: 1629499103|75\n\n45 eCash txs:\nqqv...y7y sent 201,835,617 XEC to qqn...gd2 and 1 others | 1.00 sats per byte\nqrf...ldm sent 6,354 XEC to qr8...kys and 1 others | 1.00 sats per byte\nqq4...xph sent 2,099,979 XEC to qp0...rj6 | 10.69 sats per byte\nqru...y7r sent 240,420 XEC to qz5...7p8 and 1 others | 1.23 sats per byte\nqp5...pck sent 4,261,646 XEC to qqz...cc8 | 1.06 sats per byte\nqrh...47a sent 47,684,497 XEC to qz0...c8j and 1 others | 1.00 sats per byte\nqp9...jlg sent 69,850 XEC to qpu...dtm | 4.18 sats per byte\nqp9...jlg sent 10,000 XEC to qqm...uqa | 4.18 sats per byte',
+ 'qr9...3zm sent 425,718,894 XEC to qzx...xg8 and 1 others | 1.00 sats per byte\nqq4...w64 sent 110,320,517 XEC to qqt...q7t and 2 others | 4.10 sats per byte\nqph...72y sent 15,326 XEC to qz2...035 | 2.01 sats per byte\nqrp...rtz sent 1,008,221 XEC to qp2...qa4 and 1 others | 5.02 sats per byte\nqzs...qn7 sent 6,941,377 XEC to qqh...ytf and 1 others | 1.00 sats per byte\nqrz...k3d sent 2,571,837 XEC to qr4...kxh | 150.87 sats per byte\nqz5...7p8 sent 750 XEC to qrf...py0 and 1 others | 1.12 sats per byte\nqzq...mzs sent 717,296 XEC to qzj...e2s and 1 others | 5.00 sats per byte\nqql...h03 sent 89,006,076 XEC to qzj...ksg | 2.13 sats per byte\nqp0...t92 sent 612,181 XEC to qzj...ztx and 1 others | 1.00 sats per byte\nqpm...k9g sent 199,999,998 XEC to qqp...zqu and 1 others | 1.00 sats per byte\nqpa...czv sent 612,208 XEC to qp0...t92 and 1 others | 1.00 sats per byte\nppt...gny sent 88,521,997 XEC to qz3...rj3 and 2 others | 15.28 sats per byte\nqp2...pca sent 294,905 XEC to qp4...0fg and 1 others | 1.00 sats per byte\nqpm...k9g sent 199,999,997 XEC to qpl...eep and 2 others | 1.00 sats per byte\nqp4...yuu sent 289,611,690 XEC to qqh...zy3 and 1 others | 1.00 sats per byte\nqr4...ffa sent 1,975,381 XEC to qr3...w9u and 2 others | 1.00 sats per byte\nqql...y4w sent 30,000,000 XEC to qz8...0fa | 4.16 sats per byte\nqzn...amg sent 3,285,159 XEC to qzt...rag and 1 others | 1.00 sats per byte\nqp9...jlg sent 10,000 XEC to qpv...jap | 4.16 sats per byte\nqp9...jlg sent 45,000 XEC to qry...tf4 | 4.16 sats per byte\nqp9...jlg sent 95,000 XEC to qrt...lp5 | 4.16 sats per byte\nqqn...e9j sent 21,197,785 XEC to qr2...rh9 and 1 others | 4.10 sats per byte',
+ 'qpp...p3l sent 1,217,361 XEC to qz3...hef and 1 others | 1.00 sats per byte\nqz5...7p8 sent 150 XEC to qre...t4t and 1 others | 1.17 sats per byte\nqzj...ksg sent 937,282,770 XEC to qz3...rj3 and 4 others | 1.92 sats per byte\nqpm...k9g sent 199,999,998 XEC to qrd...vnm and 1 others | 1.00 sats per byte\npqu...4ws sent 551,094 XEC to qp2...thh and 1 others | 1.05 sats per byte\nqzl...52p sent 159,000,922 XEC to qpt...67y and 1 others | 1.01 sats per byte\nqz5...7p8 sent 750 XEC to qrf...py0 and 1 others | 1.13 sats per byte\nqz5...7p8 sent 2,300 XEC to qrf...py0 | 1.14 sats per byte\nqp9...jlg sent 971,154,369 XEC to qpu...qhj | 4.16 sats per byte\nqq4...qvq sent 5,167,950 XEC to qqu...vun and 1 others | 1.00 sats per byte\nqqn...gnz sent 10,499,318 XEC to qrj...eya and 1 others | 2.21 sats per byte\nqze...e3p sent 504,025 XEC to qzv...geu | 5.00 sats per byte\nqqs...7c5 sent 101,520,270 XEC to pzz...qn8 and 3 others | 1.00 sats per byte\nqpp...m7l sent 23,026 XEC to qqe...fmm | 5.01 sats per byte',
+ ],
+ overflowMsgSuccess: [
+ {
+ channelId: '-1001999999999',
+ msg: '700722 | 97 txs | unknown\n\n1 new eToken created:\nLambda Variant Variants (LVV) [doc]\n\nApp txs:\nno app: 1629498127|85\nno app: 1629500089|91\nno app: 1629497915|79\nno app: 1629500647|79\nno app: 1629499023|76\nno app: 1629497534|78\nno app: 1629498535|87\nno app: 1629500798|79\nno app: 1629497457|77\nno app: 1629498288|72\nno app: 1629499274|64\nno app: 1629500162|80\nno app: 1629500720|82\nno app: 1629499774|94\nno app: 1629497610|79\nno app: 1629499360|84\nno app: 1629498460|71\nno app: 1629500318|76\nno app: 1629497132|78\nno app: 1629498060|88\nno app: 1629499897|105\nno app: 1629497763|75\nno app: 1629499571|93\nno app: 1629497054|74\nno app: 1629499185|75\nno app: 1629498375|70\nno app: 1629498610|74\nno app: 1629497293|68\nno app: 1629497209|76',
+ options: {
+ disable_web_page_preview: true,
+ parse_mode: 'HTML',
+ },
+ success: true,
+ },
+ {
+ channelId: '-1001999999999',
+ msg: 'no app: 1629499706|88\nno app: 1629497685|81\nno app: 1629499504|84\nno app: 1629498864|64\nno app: 1629498773|66\nno app: 1629499955|96\nno app: 1629500566|71\nno app: 1629497990|82\nno app: 1629498205|77\nno app: 1629499836|98\nno app: 1629498688|79\nno app: 1629497840|81\nno app: 1629500240|77\nno app: 1629500399|75\nno app: 1629498945|79\nno app: 1629497378|72\nno app: 1629499638|91\nno app: 1629499432|84\nno app: 1629500022|85\nno app: 1629500482|72\nno app: 1629499103|75\n\n45 eCash txs:\nqqv...y7y sent 201,835,617 XEC to qqn...gd2 and 1 others | 1.00 sats per byte\nqrf...ldm sent 6,354 XEC to qr8...kys and 1 others | 1.00 sats per byte\nqq4...xph sent 2,099,979 XEC to qp0...rj6 | 10.69 sats per byte\nqru...y7r sent 240,420 XEC to qz5...7p8 and 1 others | 1.23 sats per byte\nqp5...pck sent 4,261,646 XEC to qqz...cc8 | 1.06 sats per byte\nqrh...47a sent 47,684,497 XEC to qz0...c8j and 1 others | 1.00 sats per byte\nqp9...jlg sent 69,850 XEC to qpu...dtm | 4.18 sats per byte\nqp9...jlg sent 10,000 XEC to qqm...uqa | 4.18 sats per byte',
+ options: {
+ disable_web_page_preview: true,
+ parse_mode: 'HTML',
+ },
+ success: true,
+ },
+ {
+ channelId: '-1001999999999',
+ msg: 'qr9...3zm sent 425,718,894 XEC to qzx...xg8 and 1 others | 1.00 sats per byte\nqq4...w64 sent 110,320,517 XEC to qqt...q7t and 2 others | 4.10 sats per byte\nqph...72y sent 15,326 XEC to qz2...035 | 2.01 sats per byte\nqrp...rtz sent 1,008,221 XEC to qp2...qa4 and 1 others | 5.02 sats per byte\nqzs...qn7 sent 6,941,377 XEC to qqh...ytf and 1 others | 1.00 sats per byte\nqrz...k3d sent 2,571,837 XEC to qr4...kxh | 150.87 sats per byte\nqz5...7p8 sent 750 XEC to qrf...py0 and 1 others | 1.12 sats per byte\nqzq...mzs sent 717,296 XEC to qzj...e2s and 1 others | 5.00 sats per byte\nqql...h03 sent 89,006,076 XEC to qzj...ksg | 2.13 sats per byte\nqp0...t92 sent 612,181 XEC to qzj...ztx and 1 others | 1.00 sats per byte\nqpm...k9g sent 199,999,998 XEC to qqp...zqu and 1 others | 1.00 sats per byte\nqpa...czv sent 612,208 XEC to qp0...t92 and 1 others | 1.00 sats per byte\nppt...gny sent 88,521,997 XEC to qz3...rj3 and 2 others | 15.28 sats per byte\nqp2...pca sent 294,905 XEC to qp4...0fg and 1 others | 1.00 sats per byte\nqpm...k9g sent 199,999,997 XEC to qpl...eep and 2 others | 1.00 sats per byte\nqp4...yuu sent 289,611,690 XEC to qqh...zy3 and 1 others | 1.00 sats per byte\nqr4...ffa sent 1,975,381 XEC to qr3...w9u and 2 others | 1.00 sats per byte\nqql...y4w sent 30,000,000 XEC to qz8...0fa | 4.16 sats per byte\nqzn...amg sent 3,285,159 XEC to qzt...rag and 1 others | 1.00 sats per byte\nqp9...jlg sent 10,000 XEC to qpv...jap | 4.16 sats per byte\nqp9...jlg sent 45,000 XEC to qry...tf4 | 4.16 sats per byte\nqp9...jlg sent 95,000 XEC to qrt...lp5 | 4.16 sats per byte\nqqn...e9j sent 21,197,785 XEC to qr2...rh9 and 1 others | 4.10 sats per byte',
+ options: {
+ disable_web_page_preview: true,
+ parse_mode: 'HTML',
+ },
+ success: true,
+ },
+ {
+ channelId: '-1001999999999',
+ msg: 'qpp...p3l sent 1,217,361 XEC to qz3...hef and 1 others | 1.00 sats per byte\nqz5...7p8 sent 150 XEC to qre...t4t and 1 others | 1.17 sats per byte\nqzj...ksg sent 937,282,770 XEC to qz3...rj3 and 4 others | 1.92 sats per byte\nqpm...k9g sent 199,999,998 XEC to qrd...vnm and 1 others | 1.00 sats per byte\npqu...4ws sent 551,094 XEC to qp2...thh and 1 others | 1.05 sats per byte\nqzl...52p sent 159,000,922 XEC to qpt...67y and 1 others | 1.01 sats per byte\nqz5...7p8 sent 750 XEC to qrf...py0 and 1 others | 1.13 sats per byte\nqz5...7p8 sent 2,300 XEC to qrf...py0 | 1.14 sats per byte\nqp9...jlg sent 971,154,369 XEC to qpu...qhj | 4.16 sats per byte\nqq4...qvq sent 5,167,950 XEC to qqu...vun and 1 others | 1.00 sats per byte\nqqn...gnz sent 10,499,318 XEC to qrj...eya and 1 others | 2.21 sats per byte\nqze...e3p sent 504,025 XEC to qzv...geu | 5.00 sats per byte\nqqs...7c5 sent 101,520,270 XEC to pzz...qn8 and 3 others | 1.00 sats per byte\nqpp...m7l sent 23,026 XEC to qqe...fmm | 5.01 sats per byte',
+ options: {
+ disable_web_page_preview: true,
+ parse_mode: 'HTML',
+ },
+ success: true,
+ },
+ ],
+ nonOverflowMsg: [
+ '0 | 1 tx | unknown',
+ ],
+ nonOverflowMsgSuccess: [
+ {
+ channelId: '-1001999999999',
+ msg: '0 | 1 tx | unknown',
+ options: {
+ disable_web_page_preview: true,
+ parse_mode: 'HTML',
+ },
+ success: true,
+ },
+ ],
+};
diff --git a/apps/ecash-herald/test/parseTests.js b/apps/ecash-herald/test/parseTests.js
--- a/apps/ecash-herald/test/parseTests.js
+++ b/apps/ecash-herald/test/parseTests.js
@@ -20,12 +20,16 @@
it('All test blocks', function () {
for (let i = 0; i < blocks.length; i += 1) {
const thisBlock = blocks[i];
- const { blockDetails, parsedBlock, coingeckoPrices, tgMsg } =
- thisBlock;
+ const {
+ blockDetails,
+ parsedBlock,
+ coingeckoPrices,
+ blockSummaryTgMsgs,
+ } = thisBlock;
assert.deepEqual(parseBlock(blockDetails), parsedBlock);
assert.deepEqual(
getBlockTgMessage(parsedBlock, coingeckoPrices),
- tgMsg,
+ blockSummaryTgMsgs,
);
}
});
diff --git a/apps/ecash-herald/test/telegramTests.js b/apps/ecash-herald/test/telegramTests.js
--- a/apps/ecash-herald/test/telegramTests.js
+++ b/apps/ecash-herald/test/telegramTests.js
@@ -4,8 +4,21 @@
'use strict';
const assert = require('assert');
-const { prepareStringForTelegramHTML } = require('../src/telegram');
+const {
+ prepareStringForTelegramHTML,
+ splitOverflowTgMsg,
+ sendBlockSummary,
+} = require('../src/telegram');
const { telegramHtmlStrings } = require('./mocks/templates');
+const {
+ overflowMsg,
+ overflowMsgSplit,
+ overflowMsgSuccess,
+ nonOverflowMsg,
+ nonOverflowMsgSuccess,
+} = require('./mocks/telegramMsgs');
+const blocks = require('./mocks/blocks');
+const { MockTelegramBot, mockChannelId } = require('./mocks/telegramBotMock');
describe('ecash-herald telegram.js functions', function () {
it(`prepareStringForTelegramHTML replaces '<', '>', and '&' per specifications`, function () {
@@ -19,4 +32,61 @@
noChangeExpected,
);
});
+ it(`Given a block summary string array longer than 4096 characters, splitOverflowTgMsg returns an array of strings each shorter than 4096 characters`, function () {
+ assert.deepEqual(splitOverflowTgMsg(overflowMsg), overflowMsgSplit);
+ });
+ it(`Given a block summary string array shorter than 4096 characters, splitOverflowTgMsg returns an array of a single string shorter than 4096 characters`, function () {
+ assert.deepEqual(splitOverflowTgMsg(nonOverflowMsg), nonOverflowMsg);
+ });
+ it(`sendBlockSummary returns false if there is an error in telegramBot.sendMessage`, async function () {
+ const tgMsgStrings = nonOverflowMsg;
+ const telegramBot = new MockTelegramBot();
+ const channelId = mockChannelId;
+
+ // Set an expected error in sendMessage method
+ telegramBot.setExpectedError(
+ 'sendMessage',
+ 'Error: message failed to send',
+ );
+
+ assert.strictEqual(
+ await sendBlockSummary(tgMsgStrings, telegramBot, channelId),
+ false,
+ );
+ });
+ it(`sendBlockSummary returns an array containing one msg success item if original msg is not > 4096 characters`, async function () {
+ const tgMsgStrings = nonOverflowMsg;
+ const telegramBot = new MockTelegramBot();
+ const channelId = mockChannelId;
+
+ assert.deepEqual(
+ await sendBlockSummary(tgMsgStrings, telegramBot, channelId),
+ nonOverflowMsgSuccess,
+ );
+ });
+ it(`sendBlockSummary returns an array containing a msg success item for each sent msg if original msg is > 4096 characters`, async function () {
+ const tgMsgStrings = overflowMsgSplit;
+ const telegramBot = new MockTelegramBot();
+ const channelId = mockChannelId;
+
+ assert.deepEqual(
+ await sendBlockSummary(tgMsgStrings, telegramBot, channelId),
+ overflowMsgSuccess,
+ );
+ });
+ it(`None of the prepared telegram messages exceed the character limit of 4096`, function () {
+ const TG_MSG_MAX_LENGTH = 4096;
+
+ for (let i = 0; i < blocks.length; i += 1) {
+ const thisBlock = blocks[i];
+ const { blockSummaryTgMsgs } = thisBlock;
+ for (let j = 0; j < blockSummaryTgMsgs.length; j += 1) {
+ console.log(blockSummaryTgMsgs[j].length);
+ assert.strictEqual(
+ blockSummaryTgMsgs[j].length <= TG_MSG_MAX_LENGTH,
+ true,
+ );
+ }
+ }
+ });
});