Page MenuHomePhabricator

D13489.id38999.diff
No OneTemporary

D13489.id38999.diff

diff --git a/web/alias-server/config.js b/web/alias-server/config.js
--- a/web/alias-server/config.js
+++ b/web/alias-server/config.js
@@ -18,9 +18,32 @@
},
telegram: {
maxLength: 4096,
- tgMsgOptions: {
- parse_mode: 'MarkdownV2',
+ tgMsgOptions: (options = {
+ parse_mode: 'HTML',
disable_web_page_preview: true,
+ }),
+ emojiReference: {
+ 1: '🐋🐋🐋',
+ 2: '🐋🐋',
+ 3: '🐋',
+ 4: '🐳',
+ 5: '🦈',
+ 6: '🐳',
+ 7: '🐬',
+ 8: '🐠',
+ 9: '🐙',
+ 10: '🐡',
+ 11: '🦀',
+ 12: '',
+ 13: '',
+ 14: '',
+ 15: '',
+ 16: '',
+ 17: '',
+ 18: '',
+ 19: '',
+ 20: '',
+ 21: '',
},
},
unconfirmedBlockheight: 100000000,
diff --git a/web/alias-server/scripts/sendAdminAlert.js b/web/alias-server/scripts/sendAdminAlert.js
--- a/web/alias-server/scripts/sendAdminAlert.js
+++ b/web/alias-server/scripts/sendAdminAlert.js
@@ -6,9 +6,11 @@
const adminNotified = await sendAdminAlert(msg);
if (adminNotified) {
// Exit success
+ console.log('\x1b[32m%s\x1b[0m', `✔ Admin alert sent"`);
process.exit(0);
} else {
// Exit in error condition
+ console.log('\x1b[31m%s\x1b[0m', `Failed to send admin alert`);
process.exit(1);
}
}
diff --git a/web/alias-server/scripts/sendAliasAnnouncement.js b/web/alias-server/scripts/sendAliasAnnouncement.js
--- a/web/alias-server/scripts/sendAliasAnnouncement.js
+++ b/web/alias-server/scripts/sendAliasAnnouncement.js
@@ -1,8 +1,6 @@
const config = require('../config');
-const {
- returnTelegramBotSendMessagePromise,
- buildAliasAnnouncementMsg,
-} = require('../telegram');
+const { returnTelegramBotSendMessagePromise } = require('../telegram');
+const { buildAliasAnnouncementMsg } = require('../utils');
// Define alias variables
const alias = 'aliasserver';
diff --git a/web/alias-server/telegram.js b/web/alias-server/telegram.js
--- a/web/alias-server/telegram.js
+++ b/web/alias-server/telegram.js
@@ -5,7 +5,7 @@
const { botId, announcementChatId, adminAlertChatId } = secrets.telegram;
const { telegram } = config;
-const { maxLength, tgMsgOptions } = telegram;
+const { maxLength, tgMsgOptions, emojiReference } = telegram;
// Create a bot that uses 'polling' to fetch new updates
const telegramBot = new TelegramBot(botId, { polling: true });
@@ -29,10 +29,7 @@
sendAdminAlert: async function (
msg,
chatId = adminAlertChatId,
- options = {
- parse_mode: 'HTML',
- disable_web_page_preview: true,
- },
+ options = tgMsgOptions,
) {
let adminNotified = false;
msg = prepareStringForTelegramHTML(msg);
@@ -58,31 +55,4 @@
}
return adminNotified;
},
- buildAliasAnnouncementMsg: function (
- alias,
- address,
- registeringTxid,
- xecPrice,
- ) {
- const aliasBytecount = getAliasBytecount(alias);
- const aliasPriceSats =
- config.aliasConstants.registrationFeesSats[aliasBytecount];
-
- const tgMsg =
- `A new ${aliasBytecount}\\-byte alias has been registered for ` +
- (xecPrice
- ? `$${((aliasPriceSats / 100) * xecPrice).toLocaleString(
- 'en-US',
- {
- maximumFractionDigits: 2,
- },
- )} USD`
- : `${(aliasPriceSats / 100).toLocaleString()} XEC`) +
- `\\!\n` +
- `\n` +
- `"${alias}"\n` +
- `\n` +
- `[address](${config.blockExplorer}/address/${address}) \\| [tx](${config.blockExplorer}/tx/${registeringTxid})`;
- return tgMsg;
- },
};
diff --git a/web/alias-server/test/mocks/telegramMocks.js b/web/alias-server/test/mocks/telegramMocks.js
new file mode 100644
--- /dev/null
+++ b/web/alias-server/test/mocks/telegramMocks.js
@@ -0,0 +1,57 @@
+const { telegram } = require('../../config');
+const { emojiReference } = telegram;
+module.exports = {
+ aliasTgMsgs: [
+ {
+ alias: 'a',
+ msg: `A new ${emojiReference[1]}1-byte alias has been registered for $0 USD!\n\n"a"\n\n<a href="https://explorer.e.cash/address/ecash:qp3c268rd5946l2f5m5es4x25f7ewu4sjvpy52pqa8">address</a> | <a href="https://explorer.e.cash/tx/13e48d7b38d9892b949b2064cb76dbcb5c7090c397afc35ec165176642cf79ab">tx</a>`,
+ },
+ {
+ alias: 'ab',
+ msg: `A new ${emojiReference[2]}2-byte alias has been registered for $0 USD!\n\n"ab"\n\n<a href="https://explorer.e.cash/address/ecash:qp3c268rd5946l2f5m5es4x25f7ewu4sjvpy52pqa8">address</a> | <a href="https://explorer.e.cash/tx/13e48d7b38d9892b949b2064cb76dbcb5c7090c397afc35ec165176642cf79ab">tx</a>`,
+ },
+ {
+ alias: 'abc',
+ msg: `A new ${emojiReference[3]}3-byte alias has been registered for $0 USD!\n\n"abc"\n\n<a href="https://explorer.e.cash/address/ecash:qp3c268rd5946l2f5m5es4x25f7ewu4sjvpy52pqa8">address</a> | <a href="https://explorer.e.cash/tx/13e48d7b38d9892b949b2064cb76dbcb5c7090c397afc35ec165176642cf79ab">tx</a>`,
+ },
+ {
+ alias: 'abcd',
+ msg: `A new ${emojiReference[4]}4-byte alias has been registered for $0 USD!\n\n"abcd"\n\n<a href="https://explorer.e.cash/address/ecash:qp3c268rd5946l2f5m5es4x25f7ewu4sjvpy52pqa8">address</a> | <a href="https://explorer.e.cash/tx/13e48d7b38d9892b949b2064cb76dbcb5c7090c397afc35ec165176642cf79ab">tx</a>`,
+ },
+ {
+ alias: 'abcde',
+ msg: `A new ${emojiReference[5]}5-byte alias has been registered for $0 USD!\n\n"abcde"\n\n<a href="https://explorer.e.cash/address/ecash:qp3c268rd5946l2f5m5es4x25f7ewu4sjvpy52pqa8">address</a> | <a href="https://explorer.e.cash/tx/13e48d7b38d9892b949b2064cb76dbcb5c7090c397afc35ec165176642cf79ab">tx</a>`,
+ },
+ {
+ alias: 'abcdef',
+ msg: `A new ${emojiReference[6]}6-byte alias has been registered for $0 USD!\n\n"abcdef"\n\n<a href="https://explorer.e.cash/address/ecash:qp3c268rd5946l2f5m5es4x25f7ewu4sjvpy52pqa8">address</a> | <a href="https://explorer.e.cash/tx/13e48d7b38d9892b949b2064cb76dbcb5c7090c397afc35ec165176642cf79ab">tx</a>`,
+ },
+ {
+ alias: 'abcdefg',
+ msg: `A new ${emojiReference[7]}7-byte alias has been registered for $0 USD!\n\n"abcdefg"\n\n<a href="https://explorer.e.cash/address/ecash:qp3c268rd5946l2f5m5es4x25f7ewu4sjvpy52pqa8">address</a> | <a href="https://explorer.e.cash/tx/13e48d7b38d9892b949b2064cb76dbcb5c7090c397afc35ec165176642cf79ab">tx</a>`,
+ },
+ {
+ alias: 'abcdefgh',
+ msg: `A new ${emojiReference[8]}8-byte alias has been registered for $0 USD!\n\n"abcdefgh"\n\n<a href="https://explorer.e.cash/address/ecash:qp3c268rd5946l2f5m5es4x25f7ewu4sjvpy52pqa8">address</a> | <a href="https://explorer.e.cash/tx/13e48d7b38d9892b949b2064cb76dbcb5c7090c397afc35ec165176642cf79ab">tx</a>`,
+ },
+ {
+ alias: 'abcdefghi',
+ msg: `A new ${emojiReference[9]}9-byte alias has been registered for $0 USD!\n\n"abcdefghi"\n\n<a href="https://explorer.e.cash/address/ecash:qp3c268rd5946l2f5m5es4x25f7ewu4sjvpy52pqa8">address</a> | <a href="https://explorer.e.cash/tx/13e48d7b38d9892b949b2064cb76dbcb5c7090c397afc35ec165176642cf79ab">tx</a>`,
+ },
+ {
+ alias: 'abcdefghij',
+ msg: `A new ${emojiReference[10]}10-byte alias has been registered for $0 USD!\n\n"abcdefghij"\n\n<a href="https://explorer.e.cash/address/ecash:qp3c268rd5946l2f5m5es4x25f7ewu4sjvpy52pqa8">address</a> | <a href="https://explorer.e.cash/tx/13e48d7b38d9892b949b2064cb76dbcb5c7090c397afc35ec165176642cf79ab">tx</a>`,
+ },
+ {
+ alias: 'abcdefghijk',
+ msg: `A new ${emojiReference[11]}11-byte alias has been registered for $0 USD!\n\n"abcdefghijk"\n\n<a href="https://explorer.e.cash/address/ecash:qp3c268rd5946l2f5m5es4x25f7ewu4sjvpy52pqa8">address</a> | <a href="https://explorer.e.cash/tx/13e48d7b38d9892b949b2064cb76dbcb5c7090c397afc35ec165176642cf79ab">tx</a>`,
+ },
+ {
+ alias: 'abcdefghijkl',
+ msg: `A new ${emojiReference[12]}12-byte alias has been registered for $0 USD!\n\n"abcdefghijkl"\n\n<a href="https://explorer.e.cash/address/ecash:qp3c268rd5946l2f5m5es4x25f7ewu4sjvpy52pqa8">address</a> | <a href="https://explorer.e.cash/tx/13e48d7b38d9892b949b2064cb76dbcb5c7090c397afc35ec165176642cf79ab">tx</a>`,
+ },
+ ],
+ address: 'ecash:qp3c268rd5946l2f5m5es4x25f7ewu4sjvpy52pqa8',
+ txid: '13e48d7b38d9892b949b2064cb76dbcb5c7090c397afc35ec165176642cf79ab',
+ xecPrice: 0.00003,
+};
diff --git a/web/alias-server/test/telegramTests.js b/web/alias-server/test/telegramTests.js
new file mode 100644
--- /dev/null
+++ b/web/alias-server/test/telegramTests.js
@@ -0,0 +1,20 @@
+const assert = require('assert');
+const { buildAliasAnnouncementMsg } = require('../utils');
+const {
+ aliasTgMsgs,
+ address,
+ txid,
+ xecPrice,
+} = require('./mocks/telegramMocks');
+
+describe('alias-server telegram.js', function () {
+ it('Creates appropriate HTML msgs for alias generation', function () {
+ for (let i = 0; i < aliasTgMsgs.length; i += 1) {
+ const { alias, msg } = aliasTgMsgs[i];
+ assert.strictEqual(
+ buildAliasAnnouncementMsg(alias, address, txid, xecPrice),
+ msg,
+ );
+ }
+ });
+});
diff --git a/web/alias-server/utils.js b/web/alias-server/utils.js
--- a/web/alias-server/utils.js
+++ b/web/alias-server/utils.js
@@ -18,6 +18,36 @@
return tgReadyString;
},
+ buildAliasAnnouncementMsg: function (
+ alias,
+ address,
+ registeringTxid,
+ xecPrice,
+ ) {
+ const aliasBytecount = module.exports.getAliasBytecount(alias);
+ const aliasPriceSats =
+ config.aliasConstants.registrationFeesSats[aliasBytecount];
+ const emoji = config.telegram.emojiReference[aliasBytecount];
+
+ const tgMsg =
+ `A new ${emoji}${aliasBytecount}-byte alias has been registered for ` +
+ (xecPrice
+ ? `$${((aliasPriceSats / 100) * xecPrice).toLocaleString(
+ 'en-US',
+ {
+ maximumFractionDigits: 2,
+ },
+ )} USD`
+ : `${(aliasPriceSats / 100).toLocaleString('en-US', {
+ maximumFractionDigits: 0,
+ })} XEC`) +
+ `!\n` +
+ `\n` +
+ `"${alias}"\n` +
+ `\n` +
+ `<a href="${config.blockExplorer}/address/${address}">address</a> | <a href="${config.blockExplorer}/tx/${registeringTxid}">tx</a>`;
+ return tgMsg;
+ },
outputScriptToAddress: function (outputScript) {
// returns P2SH or P2PKH address
// P2PKH addresses are in outputScript of type 76a914...88ac
diff --git a/web/alias-server/websocket.js b/web/alias-server/websocket.js
--- a/web/alias-server/websocket.js
+++ b/web/alias-server/websocket.js
@@ -11,11 +11,9 @@
const {
removeUnconfirmedTxsFromTxHistory,
generateReservedAliasTxArray,
-} = require('./utils');
-const {
- returnTelegramBotSendMessagePromise,
buildAliasAnnouncementMsg,
-} = require('./telegram');
+} = require('./utils');
+const { returnTelegramBotSendMessagePromise } = require('./telegram');
const {
getValidAliasesFromDb,
getServerStateFromDb,

File Metadata

Mime Type
text/plain
Expires
Thu, Feb 6, 16:27 (17 h, 22 m)
Storage Engine
blob
Storage Format
Raw Data
Storage Handle
5082694
Default Alt Text
D13489.id38999.diff (11 KB)

Event Timeline