-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathindex.js
386 lines (380 loc) · 22.7 KB
/
index.js
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
const request = require("request");
const mysql = require("mysql");
const fs = require("fs");
var CronJob = require("cron").CronJob;
const TelegramBot = require("node-telegram-bot-api");
const adverID = "@advertisingmanger";
const abedID = 922653106; //5051697
var setEhraz = new Set();
var setBuyBitcoin = new Set();
var setSellBitcoin = new Set();
var setBuyEth = new Set();
var setSellEth = new Set();
var callback_click = new Set();
/////////////local/////////////
// const token = '1029352844:AAEXUaoppERzW3ypp2OedZVZoIfXWY0tryo'; //@test_localabed_bot
// let pool = mysql.createPool({
// connectionLimit: 50,
// host: '127.0.0.1',
// user: 'root',
// password: '2019087',
// database: 'alavibo1_bitcoin',
// multipleStatements: true
// });
/////////////alavibot/////////////
const token = process.env.myToken; //bitcoin
let pool = mysql.createPool({
connectionLimit: 50,
host: "localhost",
user: "alavibo1_bitcoin_user",
password: "@Lavi2019087",
database: "alavibo1_bitcoin",
multipleStatements: true,
});
///////////////////////////////////////////////////////////////////////
const bot = new TelegramBot(token, {
polling: {
params: {
offset: -1,
},
},
});
///////////////////////////////////////////////////////
process.on("uncaughtException", (ex) => {
console.log(new Date() + ": Uncaught Exception: " + ex.message);
});
process.on("unhandledRejection", (ex) => {
console.log(new Date() + ": Unhandled Rejection: " + ex);
});
bot.on("polling_error", (error) => {
console.log(new Date() + `Polling error` + error); // => 'EFATAL'
});
process.on("exit", (code) => {
console.log(new Date() + `Process exit event with code: `, code);
bot.sendMessage(abedID, new Date() + `: Procees Exited!`);
});
bot.sendMessage(abedID, new Date() + ": Program Started!").catch((e) => {});
///////////////////////////////job for crypto//////////////////////////////////////////
var job1 = new CronJob(
"*/5 * * * *",
function () {
request(
"http://min-api.cryptocompare.com/data/pricemulti?fsyms=BTC,ETH,LTC,DOGE,BNB,XRP,TRX,XLM,SXP,ZIL,ADA,DOT,BTT,NPXS,LINK,VET,WIN,PUNDIX,VTHO,EOS,XTZ,THETA,XMR,ATOM,ALGO,AAVE,AVAX,CHZ,HBAR,SHIB,FREE,XCH,CET&tsyms=USD&api_key=40c6a434d7e306a35fa81943078ca30b652be0a09dce8fdc5f38399fc2169ef3",
{
json: true,
},
(err, res, body) => {
if (err) {
console.log(err);
bot.sendMessage(abedID, err);
}
let BTC = res.body.BTC.USD;
let ETH = res.body.ETH.USD;
let LTC = res.body.LTC.USD;
let DOGE = res.body.DOGE.USD;
let BNB = res.body.BNB.USD;
let XRP = res.body.XRP.USD;
let TRX = res.body.TRX.USD;
let XLM = res.body.XLM.USD;
let SXP = res.body.SXP.USD;
let ZIL = res.body.ZIL.USD;
let ADA = res.body.ADA.USD;
let DOT = res.body.DOT.USD;
let BTT = res.body.BTT.USD;
let NPXS = res.body.NPXS.USD;
let LINK = res.body.LINK.USD;
let VET = res.body.VET.USD;
let WIN = res.body.WIN.USD;
let PUNDIX = res.body.PUNDIX.USD;
let VTHO = res.body.VTHO.USD;
let EOS = res.body.EOS.USD;
let XTZ = res.body.XTZ.USD;
let THETA = res.body.THETA.USD;
let XMR = res.body.XMR.USD;
let ATOM = res.body.ATOM.USD;
let ALGO = res.body.ALGO.USD;
let AAVE = res.body.AAVE.USD;
let AVAX = res.body.AVAX.USD;
let CHZ = res.body.CHZ.USD;
let HBAR = res.body.HBAR.USD;
let SHIB = res.body.SHIB.USD;
let FREE = res.body.FREE.USD;
let XCH = res.body.XCH.USD;
let CET = res.body.CET.USD;
bot.sendMessage(
`@bitcoin_gheymat`,
`Bitcoin: ${BTC} 💲 USD\nEthereum: ${ETH} 💲 USD\nLitecoin: ${LTC} 💲 USD\nDogecoin: ${DOGE} 💲 USD\nBNB: ${BNB} 💲 USD\nXRP: ${XRP} 💲 USD\nTRX: ${TRX} 💲 USD\nXLM: ${XLM} 💲 USD\nSXP: ${SXP} 💲 USD\nZIL: ${ZIL} 💲 USD\nADA: ${ADA} 💲 USD\nDOT: ${DOT} 💲 USD\nBTT: ${BTT} 💲 USD\nNPXS: ${NPXS} 💲 USD\nLINK: ${LINK} 💲 USD\nVET: ${VET} 💲 USD\nWIN: ${WIN} 💲 USD\nPUNDIX: ${PUNDIX} 💲 USD\nVTHO: ${VTHO} 💲 USD\nEOS: ${EOS} 💲 USD\nXTZ: ${XTZ} 💲 USD\nTHETA: ${THETA} 💲 USD\nXMR: ${XMR} 💲 USD\nATOM: ${ATOM} 💲 USD\nALGO: ${ALGO} 💲 USD\nAAVE: ${AAVE} 💲 USD\nAVAX: ${AVAX} 💲 USD\nCHZ: ${CHZ} 💲 USD\nHBAR: ${HBAR} 💲 USD\nSHIB: ${SHIB} 💲 USD\nFREE: ${FREE} 💲 USD\nXCH: ${XCH} 💲 USD\nCET: ${CET} 💲 USD\n👉@bitcoin_gheymat`
);
bot.sendMessage(
`@digi_price`,
`Bitcoin: ${BTC} 💲 USD\nEthereum: ${ETH} 💲 USD\nLitecoin: ${LTC} 💲 USD\nDogecoin: ${DOGE} 💲 USD\nBNB: ${BNB} 💲 USD\nXRP: ${XRP} 💲 USD\nTRX: ${TRX} 💲 USD\nXLM: ${XLM} 💲 USD\nSXP: ${SXP} 💲 USD\nZIL: ${ZIL} 💲 USD\nADA: ${ADA} 💲 USD\nDOT: ${DOT} 💲 USD\nBTT: ${BTT} 💲 USD\nNPXS: ${NPXS} 💲 USD\nLINK: ${LINK} 💲 USD\nVET: ${VET} 💲 USD\nWIN: ${WIN} 💲 USD\nPUNDIX: ${PUNDIX} 💲 USD\nVTHO: ${VTHO} 💲 USD\nEOS: ${EOS} 💲 USD\nXTZ: ${XTZ} 💲 USD\nTHETA: ${THETA} 💲 USD\nXMR: ${XMR} 💲 USD\nATOM: ${ATOM} 💲 USD\nALGO: ${ALGO} 💲 USD\nAAVE: ${AAVE} 💲 USD\nAVAX: ${AVAX} 💲 USD\nCHZ: ${CHZ} 💲 USD\nHBAR: ${HBAR} 💲 USD\nSHIB: ${SHIB} 💲 USD\nFREE: ${FREE} 💲 USD\nXCH: ${XCH} 💲 USD\nCET: ${CET} 💲 USD\n👉@digi_price`
);
console.log(new Date() + `cryptocurrency successfully posted!`);
}
);
},
null,
true,
"America/Los_Angeles"
);
job1.start();
///////////////////////////////job for currency//////////////////////////////////////////
var job2 = new CronJob(
"32 * * * *",
async function () {
request(
"https://openexchangerates.org/api/latest.json?app_id=14d883a9fcd8479ca6160514385ffd3f",
{
json: true,
},
async (err, res, body) => {
if (err) {
console.log(err);
bot.sendMessage(abedID, err);
}
let r = res.body.rates;
let msg = `یک دلار آمریکا برابر است با 👇\n 🇪🇺 EUR: ${r.EUR} یورو \n 🏴 GBP: ${r.GBP} پوند انگلستان \n 🇨🇦 CAD: ${r.CAD} دلارکانادا \n 🇦🇺 AUD: ${r.AUD} دلاراسترالیا \n 🇳🇿 NZD: ${r.NZD} دلارنیوزیلند \n 🇨🇳 CNY: ${r.CNY} یوهان چین \n 🇯🇵 JPY: ${r.JPY} ین ژاپن \n 🇨🇭 CHF: ${r.CHF} فرانک سوئیس \n 🇸🇪 SEK: ${r.SEK} کرون سوئد \n 🇳🇴 NOK: ${r.NOK} کرون نروژ \n 🇩🇰 DKK: ${r.DKK} کرون دانمارک \n 🇹🇷 TRY: ${r.TRY} لیر ترکیه \n 🇬🇪 GEL: ${r.GEL} لاری گرجستان \n 🇦🇲 AMD: ${r.AMD} درام ارمنستان \n 🇦🇿 AzN: ${r.AZN} منات آذربایجان \n 🇹🇲 TMM: ${r.TMT} منات ترکمنستان \n 🇦🇫 AFN: ${r.AFN} افغانی افغانستان \n 🇵🇰 PKR: ${r.PKR} روپیه پاکستان \n 🇮🇳 INR: ${r.INR} روپیه هند \n 🇸🇦 SAR: ${r.SAR} ریال صعودی \n 🇮🇶 IQD: ${r.IQD} دینار عراق \n 🇶🇦 QAR: ${r.QAR} ریال قطر \n 🇦🇪 AED: ${r.AED} درهم امارات \n 🇴🇲 OMR: ${r.OMR} دینار عمان \n 🇧🇭 BHD: ${r.BHD} دینار بحرین \n 🇰🇼 KWD: ${r.KWD} دینار کویت \n 🇸🇾 SYP: ${r.SYP} لیر سوریه \n 🇲🇾 MYR: ${r.MYR} رینگت مالزی \n 🇹🇭 THB: ${r.THB} بت تایلند \n\n👉@bitcoin_gheymat `;
let msg1 = `یک دلار آمریکا برابر است با 👇\n 🇪🇺 EUR: ${r.EUR} یورو \n 🏴 GBP: ${r.GBP} پوند انگلستان \n 🇨🇦 CAD: ${r.CAD} دلارکانادا \n 🇦🇺 AUD: ${r.AUD} دلاراسترالیا \n 🇳🇿 NZD: ${r.NZD} دلارنیوزیلند \n 🇨🇳 CNY: ${r.CNY} یوهان چین \n 🇯🇵 JPY: ${r.JPY} ین ژاپن \n 🇨🇭 CHF: ${r.CHF} فرانک سوئیس \n 🇸🇪 SEK: ${r.SEK} کرون سوئد \n 🇳🇴 NOK: ${r.NOK} کرون نروژ \n 🇩🇰 DKK: ${r.DKK} کرون دانمارک \n 🇹🇷 TRY: ${r.TRY} لیر ترکیه \n 🇬🇪 GEL: ${r.GEL} لاری گرجستان \n 🇦🇲 AMD: ${r.AMD} درام ارمنستان \n 🇦🇿 AzN: ${r.AZN} منات آذربایجان \n 🇹🇲 TMM: ${r.TMT} منات ترکمنستان \n 🇦🇫 AFN: ${r.AFN} افغانی افغانستان \n 🇵🇰 PKR: ${r.PKR} روپیه پاکستان \n 🇮🇳 INR: ${r.INR} روپیه هند \n 🇸🇦 SAR: ${r.SAR} ریال صعودی \n 🇮🇶 IQD: ${r.IQD} دینار عراق \n 🇶🇦 QAR: ${r.QAR} ریال قطر \n 🇦🇪 AED: ${r.AED} درهم امارات \n 🇴🇲 OMR: ${r.OMR} دینار عمان \n 🇧🇭 BHD: ${r.BHD} دینار بحرین \n 🇰🇼 KWD: ${r.KWD} دینار کویت \n 🇸🇾 SYP: ${r.SYP} لیر سوریه \n 🇲🇾 MYR: ${r.MYR} رینگت مالزی \n 🇹🇭 THB: ${r.THB} بت تایلند \n\n👉@digi_price `;
await bot.sendMessage(`@bitcoin_gheymat`, msg);
await bot.sendMessage(`@digi_price`, msg1);
// bot.pinChatMessage("@bitcoin_gheymat", res1.message_id);
console.log(new Date() + `exchange successfully posted!`);
}
);
},
null,
true,
"America/Los_Angeles"
);
job2.start();
////////////////////start/////////////////
bot.onText(/\/start/, async (msg) => {
if (checkPrivate(msg)) {
try {
await bot.sendMessage(msg.from.id, "خوش آمدید");
mainMenu(msg.from.id);
} catch (e) {
console.log(new Date() + "/start error: " + e);
}
}
});
////////////////////checkPrivate/////////////////
function checkPrivate(msg) {
if (msg.chat.type === "private") return true;
else return false;
}
//////////////////main menu/////////////////////
async function mainMenu(id) {
try {
await bot.sendMessage(id, "منوی اصلی", {
parse_mode: "Markdown",
reply_markup: {
keyboard: [[`روش نصب coinomi`, `دربارۀ بیتکوین`, "احراز هویت"]],
one_time_keyboard: true,
},
});
} catch (e) {
console.log(new Date() + "main menu: " + e);
}
}
//////////////////////////احراز هویت ///////////
bot.onText(/احراز هویت$/, async (msg) => {
try {
if (await checkUserExist(msg.from.id)) {
if (await checkUserAccepted(msg.from.id)) {
bot.sendMessage(
msg.from.id,
`شما قبلا احرازهویت شدهاید!\nدر صورت نیاز به آیدی زیر پیام دهید!\n${adverID}\n✅`
);
mainMenu(msg.from.id);
return;
} else if (!(await checkUserAccepted(msg.from.id))) {
bot.sendMessage(
msg.from.id,
`شما قبلا احرازهویت کردهاید!\nلطفا منتظر تایید باشید!\nدر صورت نیاز به آیدی زیر پیام دهید!\n${adverID}\n❗️`
);
mainMenu(msg.from.id);
return;
}
}
setEhraz.add(msg.from.id);
await bot.sendMessage(
msg.from.id,
`لطفا برای احرازهویت مطابق زیر یک عکس در همینجا ارسال کنید!\nعکس کارت ملی و کارت بانکی و متن مورد نظر را در یک دست گرفته و عکس تهیه کنید!\n✅`
);
await bot.sendPhoto(msg.from.id, "./auth.jpg");
mainMenu(msg.from.id);
} catch (e) {
console.log(new Date() + "ehraz error: " + e.message);
setEhraz.delete(msg.from.id);
}
});
bot.on("photo", async (msg) => {
try {
if (setEhraz.has(msg.from.id)) {
setEhraz.delete(msg.from.id);
let result = await getQuery(
"INSERT INTO `bitcoin_users` (`name`,`telegramid`,`telegramusername`,`isaccepted`)VALUES(?,?,?,?);",
[
msg.from.first_name,
msg.from.id,
msg.from.username == undefined ? "" : msg.from.username,
0,
]
);
let captionOfImage = `آیدی:${result.insertId}\n نام: ${
msg.from.first_name
}\nیوزر تلگرامی:${
msg.from.username == undefined ? "" : msg.from.username
}\nآیدی تلگرامی:${msg.from.id}\nتاریخ ارسال:${new Date(
msg.date * 1000
).toLocaleString("fa-IR")}`;
await bot.sendPhoto(abedID, msg.photo[0].file_id, {
caption: captionOfImage,
});
await bot.sendMessage(
msg.from.id,
`عکس دریافت شد!\nلطفا منتظر تایید باشید!\nدر صورت تایید یک پیام در همینجا به شما داده میشود و شما میتوانید درخواست خرید و فروش بدهید!\n✅`
);
} else {
await bot.deleteMessage(msg.chat.id, msg.message_id);
}
mainMenu(msg.from.id);
} catch (e) {
console.log(new Date() + "photo error: " + e.message);
}
});
/////////////////////////روش نصب////////////////
bot.onText(/روش نصب/, async (msg) => {
try {
await bot.sendMessage(
msg.from.id,
`مراحل ساخت کیف پول کوینومی در موبایل\n قدم اول\nبرای شروع، باید به آپ استور یا گوگل پلی رفته و عبارت «Coinomi Wallet» را در آن جستجو کنید. پس از یافتن برنامه دکمهی GET یا INSTALL را فشار داده و آن را روی تلفن همراه خود نصب کنید. همچنین می توانید با مراجعه به صفحه دانلود سایت رسمی Coinomi فایل را مستقیما دریافت کنید.\n✅`
);
await bot.sendPhoto(msg.from.id, `./b1.jpg`).catch((e) => console.log(e));
await bot.sendMessage(
msg.from.id,
`توجه: در این بخش اگر از قبل کیف پول کوینومی داشتهاید، میتوانید با فشردن گزینهی «Restore a wallet» آن را بازیابی کنید. مراحل این کار در پایان توضیح داده خواهد شد.\nقدم سوم
پس از آن، صفحهی عبارت بازیابی (Recovery Phrase) را مشاهده خواهید کرد. در این مرحله، برای اطمینان از سخت بودن عبارت بازیابی خود، حتماً گزینهی ۲۴ کلمهای (پارانویید) را انتخاب کنید. دقت داشته باشید که عبارت را به طور کامل و به ترتیب روی تکهای کاغذ یادداشت کرده و از آن به خوبی نگهداری کنید. سپس گزینهی دایرهای پایین صفحه را انتحاب کرده و Next را بزنید. اخطاری را نیز مشاهده خواهید کرد که میگوید «اگر عبارت بازیابی خود را گم کنید، دیگر نمیتوانید کیف پولتان را بازیابی کنید».
توجه: برای ذخیرهی عبارت بازیابی، از صفحهی گوشی خود اسکرین شات نگیرید زیرا خود برنامه نیز به شما این اخطار را میدهد که روش امنی نخواهد بود.\n✅`
);
await bot.sendPhoto(msg.from.id, `./b2.jpg`);
await bot.sendMessage(
msg.from.id,
`قدم چهارم
پس از آن باید عبارت بازیابی را وارد و دکمهی Next را فشار دهید.\n✅`
);
await bot.sendPhoto(msg.from.id, `./b3.jpg`);
await bot.sendPhoto(msg.from.id, `./b4.jpg`);
await bot.sendMessage(
msg.from.id,
`قدم پنجم
پسوردی را برای استفاده روزانهی خود انتخاب کنید. این پسورد باید بین ۱۰ تا ۲۸ حرف باشد. سپس، Next را بزنید.\n✅`
);
await bot.sendPhoto(msg.from.id, `./b5.jpg`);
await bot.sendMessage(
msg.from.id,
`قدم ششم
در بخش بعدی شما میتوانید کوینهایی که میخواهید بیفزایید و استفاده کنید را انتخاب کنید. حتی اگر نمیدانید به غیر از بیت کوین از چه ارز دیجیتال دیگری استفاده خواهید کرد، نگران نباشید، میتوانید متعاقباً آنها را اضافه کنید.\n✅`
);
await bot.sendMessage(
msg.from.id,
`قدم هفتم
دکمهی پذیرش (Accept) شرایط و مقررات سرویسدهی (Terms of Services) را فشرده و به مرحلهی بعد بروید.\n✅`
);
await bot.sendPhoto(msg.from.id, `./b7.jpg`);
await bot.sendMessage(
msg.from.id,
`اگر میخواهید ارز دیجیتال جدیدی را اضافه کنید، روی گزینه Coin+ که در پایین صفحه قرار دارد، کلیک کنید.\n✅`
);
await bot.sendPhoto(msg.from.id, `./b8.jpg`);
await bot.sendMessage(
msg.from.id,
`در این مرحله، ایجاد کیف پول به پایان میرسد. اکنون به بررسی برخی گزینههای این کیف پول میپردازیم.
یکی از ویژگیهای خوب این برنامه آن است که میتوانید با توجه به ارز رایج دلخواهتان، قیمت ارزهای دیجیتال را مشاهده کنید. در این مرحله، پیغام دریافت اجازه برای ارسال هشدار از سوی این کیف پول را مشاهده خواهید کرد که با فشردن Allow این اجازه را به آن بدهید.\n✅`
);
await bot.sendPhoto(msg.from.id, `./b9.jpg`);
await bot.sendMessage(
msg.from.id,
`برای ارسال ارز دیجیتال، از گزینهی سه خطی بالا سمت چپ، روی ارز دیجیتالی که قصد ارسال آن را دارید کلیک کنید و وارد تب ارسال (Send) شوید. در این بخش نیاز است تا آدرس مقصد و میزان مورد نظر برای ارسال را وارد کادرهای مربوطه کنید. از گزینهی Scan QR Code نیز میتوان استفاده کرد، بدین شکل که باید از بارکد آدرس مقصد عکس بگیرید. گزینهی Use all funds نیز به معنی آن است که میتوانید کل داراییتان را یکجا ارسال کنید. پس از وارد کردن این اطلاعات، باید از صحت تک تک آنها اطمینان حاصل کنید و سپس دکمهی ارسال را فشار دهید.\n✅`
);
await bot.sendPhoto(msg.from.id, `./b10.jpg`);
await bot.sendMessage(
msg.from.id,
`پس از آن که تراکنش را ارسال کردید، باید منتظر تایید آن بمانید. وضعیت این تراکنش را میتوانید در تب Balance مشاهده کنید. اگر روی تراکنش انجام شده کلیلک کنید، میتوانید از جزییات آن مطلع شوید. برای مثال میتوانید از تاریخ انجام، وضعیت آن، میزان جا به جا شده، کارمزد تراکنش و شناسهی تراکنش با خبر شوید.\n✅`
);
await bot.sendMessage(
msg.from.id,
`برای دریافت ارز دیجیتال از دیگران، دوباره روی همان گزینهی سه خطی کلیک کرده و این بار در منوی باز شده، روی کوینهایی که اضافه کرده بودید کلیک کنید. خواهید دید در تب Receive که در پایین قرار دارد، آدرسی برای شما نشان داده خواهد شد که در زیر آن نیز QR کد آن قرار دارد. این آدرس را کپی کرده و به فردی که میخواهید برایتان ارز دیجیتال بفرستد، ارسال کنید و یا آن را در صرافی که قصد ارسال ارز دیجیتالتان را از آن دارید، تایپ کنید.\n✅`
);
await bot.sendPhoto(msg.from.id, `./b11.jpg`);
await bot.sendMessage(
msg.from.id,
`برای بررسی موجودی کیف پول خود، دوباره همان مراحل بالا را تکرار کنید، اما این بار به جای تب Receive وارد تب Balance شوید. در این بخش تمام تراکنشهای انجام شده را خواهید دید.\n✅`
);
await bot.sendPhoto(msg.from.id, `./b12.jpg`);
mainMenu(msg.from.id);
} catch (e) {
console.log(new Date() + e.message);
}
});
/////////////////////////درباره بیت کوین
bot.onText(/دربارۀ بیتکوین/, async (msg) => {
try {
bot.sendMessage(
msg.from.id,
`بیت کوین (به انگلیسی: Bitcoin؛نماد:BTC) یک رمزارز و نظام پرداخت جهانی با کارکردهای مشابه پول بیپشتوانه است، از نظر فنی بیتکوین نخستین پول دیجیتال غیرمتمرکز است. چرا که بدون بانک مرکزی یا مسئول مرکزی کار میکند. این شبکه همتابههمتا است و تراکنشها، مستقیماً و بدون واسطه بین کاربران انجام میشود.
به زبان ساده، بیت کوین، یک ارز و پول دیجیتال و همچنین یک شبکه برای پرداختهای مستقیم و بدون واسطه است.
تعریف بیت کوین (Bitcoin)
بیت کوین (به انگلیسی:Bitcoin) با علامت BTC یک واحد پول مجازی است که تماما در اینترنت قرار دارد و از سیستم رمز نویسی خاصی استفاده می کند که باعث می شود بدون نیاز به نهاد مرکزی (مانند بانک مرکزی) و کاملا مستقل فعالیت کند.`
);
mainMenu(msg.from.id);
} catch (e) {
console.log(new Date() + e.message);
}
});
//////////////getQuery////////////////////
function getQuery(query, params) {
return new Promise((resolve, reject) => {
// console.log(query + params);
pool.query(query, params, (err, res) => {
if (err) {
reject("Error on query: " + err.message);
}
resolve(res);
});
});
}
/////////////////////check user exist/////////////////////////////
async function checkUserExist(id) {
let user = await getQuery(
`select * from bitcoin_users where telegramid = ?`,
[id]
);
if (user == "") {
return false;
}
return true;
}
////////////////////check admin/////////////////////
function checkAdmin(id) {
return id == abedID;
}
/////////////////////check user accepted //////////
async function checkUserAccepted(id) {
let user = await getQuery(
`select isaccepted from bitcoin_users where telegramid = ?`,
[id]
);
if (user[0].isaccepted == 0) {
return false;
}
return true;
}
////////////////////clear////////////////////
function clearSets(id) {
setBuyBitcoin.delete(id);
setBuyEth.delete(id);
setSellBitcoin.delete(id);
setSellEth.delete(id);
}