icon icon Home
icon icon Accounts
icon icon Quick start
icon icon Symbols

آموزش ساخت کیف پول ارز دیجیتال

نویسنده
Arash
Arash

The Forex market or foreign exchange is a huge network of international currency buyers and sellers.

Author
بازبینی کننده
کارشناس اقتصادی
Author
کارشناس اقتصادی

کارشناس اقتصادی در آرون گروپس.

calendar آخرین بروزرسانی: 2 روز پیش
watch زمان مطالعه 1 دقیقه

بازار ارز دیجیتال در سال‌های گذشته رشد زیادی داشته است و توجه سرمایه‌گذاران خرد و کلان بسیاری به این بازار جلب شده است. این بازار با پتانسیل بالایی که برای رشد دارد می‌تواند موقعیت‌های سرمایه‌گذاری متفاوتی را نیز برای کاربران به همراه داشته باشد. فعالان این بازار با تخمین قیمت ارزها سود می‌برند و از پتانسیل‌های موجود در این بازار بهره‌مند می‌شوند. البته اولین گام برای خرید و فروش ارز دیجیتال ساخت کیف پول ارز دیجیتال است.

در این راهنما از آرون گروپس به بررسی نکاتی لازم برای ساخت والت ارز دیجیتال می‌پردازیم. در پایان این مقاله با نکات لازم برای ایجاد یک والت در این بازار آشنا می‌شوید و می‌توانید بهترین والت را با در نظر گرفتن نیاز خود تهیه کنید.

کیف پول ارز دیجیتال

والت چیست؟

بگذارید در یک توضیح مختصر شما را با مفهوم بنیادی والت آشنا کنیم. والت یا کیف پول ارز دیجیتال اپلیکیشنی یا سرویسی است که به کاربران اجازه می‌دهد در محیطی امن ارزهای دیجیتال را نگهداری کنند. کاربران در این فضا در کنار ذخیره ارز دیجیتال قادر به ارسال و دریافت ارز دیجیتال نیز خواهند بود. از سوی دیگر این والت‌ اطلاعات مربوط به تاریخچه نقل و انتقالات را نیز ذخیره می‌کند.

نکته‌ای که شاید از آن مطلع نباشید این است که ارزهای دیجیتال به صورت عینی در این والت‌ها ذخیره نمی‌شوند. این والت‌ها دسترسی کاربر به بلاک چین را میسر می‌کنند و با دریافت کلید شخصی به او اجازه می‌دهند که ارز دیجیتال را ارسال یا دریافت کند. تمام نقل و انتقالاتی که با استفاده از والت‌ها انجام می‌شود مربوط به جابه‌جایی اطلاعات در بلاک چین است و ارز به صورت مستقیم از والتی به والت دیگر منتقل نمی‌شود. در واقع شما با والت مالکیت ارز دیجیتال را در شبکه بلاک چین به فرد دیگری واگذار می‌کنید.

انواع والت ارز دیجیتال

در این بخش می‌خواهیم انواع والت ارز دیجیتال از جنبه‌های مختلف بررسی کنیم.

از نظر فرمت

دو نوع والت سرد و گرم یا سخت‌افزاری و نرم‌افزاری در بازار وجود دارد. این دو نوع والت در انواع تحت وب، دسکتاپ و اپلیکیشن ارائه می‌شوند. والت‌های سخت‌افزاری ماهیت فیزیکی دارند و مانند دستگاه یو اس بی به کامپیوتر متصل می‌شوند.

از نظر حاکمیت

مدیریت دارایی در والت به دو شکل انجام می‌شود:

نیابتی – Custodial

در این حالت یک صرافی اطلاعاتی مانند کلید شخصی و عمومی فرد را در سرو شرکت نگهداری می‌کند. در این حالت بازیابی اطلاعات به عهده شرکت توسعه‌دهنده والت است.

غیر نیابتی – Non-custodial

در این حالت کاربر با مسئولیت شخصی کلید شخصی و عمومی را در والت ذخیره می‌کند. در این حالت عبارتی برای دسترسی به ارزهای دیجیتال در اختیار کاربر گذاشته می‌شود. کاربر باید این عبارت را در جایی ذخیره کند. درکل این نوع والت در مقایسه با نوع اول محبوبیت بیشتری دارد.

از نظر دستگاه

محبوب‌ترین والت‌ها غیرنیابتی هستند و روی دستگاه‌های متعددی اجرا می‌شوند.

والت دسکتاپ

این والت در قالب یک نرم‌افزار روی کامپیوتر دانلود و اجرا می‌شود. در این حالت اطلاعاتی مانند کلید شخصی روی حافظه کامپیوتر نگهداری می‌شود. متخصصان پیشنهاد می‌کنند با استفاده از برنامه‌های امنیتی، کامپیوتر را از خطرات سایبری محفوظ نگه دارید. نسخه دسکتاپ در مقایسه با دیگر انواع نرم‌افزار امنیت بالاتری را در اختیار کاربران قرار می‌دهد. از این رو بسیاری از کاربران از این والت برای استیکینگ استفاده می‌کنند. 

والت موبایل

 این والت‌ها روی گوشی تلفن همراه نصب می‌شوند و بیشتر در دسترس هستند. این والت‌ها برای انجام تراکنش‌های روزانه مناسب هستند. متخصصان پیشنهاد می‌دهند، در صورت استفاده از این نوع والت از رمزهای ورود قدرتمندی برای گوشی تلفن استفاده کنید و از فایل‌های موجود نسخه پشتیبان تهیه کنید.

والت تحت وب

این والت‌ها در قالب افزونه یا وبسایت ارائه می‌شوند. شما می‌توانید نرم‌افزارهای این دسته را روی مرورگر نصب می‌شوند. شما می‌توانید با استفاده از ورود دو مرحله‌ای و اقدامات امنیت، ارزهای خود را ایمن نگهدارید.

والت کاغذی

 یک تکه کاغذ است که حاوی کلید شخصی شماست. گم شدن این والت به معنای از دست دادن دارایی است.

والت سخت‌افزاری

این والت شبیه فلش است و به کامپیوتر متصل می‌شود. این نوع والت از دیگر انواع امنیت بالاتری دارد چرا که به اینترنت متصل نیست.

کیف پول ارز دیجیتال

نحوه ایجاد والت ارز دیجیتال

برای ساخت کیف پول ارز دیجیتال ابتدا باید نوع والت را انتخاب کنید. در بخش قبلی شما را با انواع والت ارز دیجیتال آشنا کردیم. شما باید با در نظرگرفتن اولویت‌ها و سبک معاملاتی خود بهترین کیف پول را انتخاب کنید.

اینکه چطور می‌خواهید از والت استفاده کنید نقش مهمی در انتخاب دارد. به یاد داشته باشید که والت را باید با در نظر گرفتن نوع ارز انتخاب کنید.

قدمی بعدی: والت بگیرید

پس از اینکه نوع والت را انتخاب کردید با در نظر گرفتن بودجه موردنیاز برای خرید و تهیه والت اقدام کنید. والت‌های سخت‌افزاری را از یک منبع مطمئن خریداری کنید. والت‌های نرم‌افزاری در اکثر موارد رایگان هستند.

اگر والت شما نرم‌افزاری است اولین گام برای ساخت کیف پول ارز دیجیتال انتخاب برند است. گزینه‌های متفاوتی در بازار وجود دارد در مقاله بهترین کیف پول ارز دیجیتال به بررسی شماری از بهترین برندهای ارائه‌دهنده والت پرداختیم.

پس از انتخاب والت، آن را دانلود روی گوشی تلفن همراه یا کامپیوتر نصب کنید. با اینکار شما در هر زمان و مکانی به ارزهای دیجیتال خود دسترسی دارید. مطمئن شوید که منبع معتبری را برای دانلود اپلیکیشن انتخاب کرده‌اید. به این ترتیب احتمال دانلود برنامه‌های مخرب به حداقل می‌رسد.

افتتاح حساب

 در قدم بعدی برای ساخت کیف پول ارز دیجیتال باید یک حساب کاربری ایجاد کندی. در این مرحله باید اطلاعات شخصی مانند نام، ایمیل و یک رمز عبور را برای حساب خود در نظر بگیرید. برخی از والت‌ها برای ارائه خدمات احراز هویت را الزامی می‌دانند. در این صورت باید کارت شناسایی و تصویر سلفی را نیز بارگزاری کنید.

انتقال دارایی

 در ملحظه بعدی می‌توانید دارایی ارز دیجیتال خود را از صرافی به والت انتقال دهید. راه‌های متعددی برای این کار وجود دارد. شما می‌توانید به صورت مستقیم سرمایه را از طریق حساب بانکی به والت انتقال دهید و از آن برای خرید ارز دیجیتال استفاده کنید. شما همچنین می‌توانید با دریافت ارز دیجیتال از دیگران آن را به والت خود اضافه کنید. سعی کنید هنگام انتخاب نوع ارزهایی که برای انتقال در نظر گرفته‌اید را در نظر داشته باشید تا هنگام جابه‌جایی ارز دیجیتال با والت با مشکلی روبه‌رو نشوید.

والت را راه‌اندازی کنید

نحوه راه‌اندازی تا حد زیادی به نوع والت بستگی دارد. به عنوان مثال برای راه‌اندازی والت‌های تحت وب نیازی به اقدام خاصی وجود ندارد اما در برخی از موارد باید با ارسال چند پیام تمام قابلیت‌های والت را آزاد کنید. در نظر داشته باشید که عبارت سید را باید با دقت نگهداری کنید تا بتوانید در صورت نیاز اطلاعات را بازیابی کنید.

کیف پول سخت افزاری ارز دیجیتال

ساخت کیف پول ارز دیجیتال سخت افزاری

برای ساخت کیف پول ارز دیجیتال از نوع آفلاین ابتدا باید با جستجو و مقایسه کیف پول‌های متفاوت نمونه موردنظر را خریداری کنید. برخی از نمونه‌ها امکانات گسترده‌ای مانند صفحه نمایش لمسی را در اختیار کاربر قرار می‌دهند و گران‌قیمت هستند درحالی که نمونه‌های مقرون‌به‌صرفه‌ای نیز وجود دارد. نمونه‌ای که برای رفع نیاز شما مناسب‌تر است را انتخاب کنید.  برای انتخاب این دسته از والت‌ها یک تامین‌کننده معتبر را در نظر بگیرید.

خرید و نصب والت سخت افزاری

برای خرید والت سخت‌افزاری باید تحقیقات کاملی را انجام دهید. انواع متفاوتی از والت سخت‌افزاری در بازار وجود دارد و شما باید با درنظر گرفتن نیاز و سبک معاملاتی خود بهترین گزینه را انتخاب کنید. از سوی دیگر هزینه‌ای که برای تهیه این دسته از والت‌ها بپردازید بیشتر از دیگر نمونه‌هاست. بنابراین توصیه می‌شود فاکتور بودجه را نیز هنگام انتخاب در نظر داشته باشید. کیف پول سخت افزاری ارز دیجیتال انتخاب بسیار خوبی برای رفع نیازهای شماست. این دستگاه‌های کوچک فضای کمی را اشغال می‌کنند و امنیت بالایی را ارائه می‌دهند. برای دسترسی به بهترین امکانات بهترین تولیدکننده را انتخاب کنید. به امکانات موجود نیز توجه کنید ممکن است به صفحه نمایش لمسی برای مشاهده و مدیریت ارزهای خود نیاز داشته باشید یا بخواهید این دستگاه را با کمک بلوتوث به کامپیوتر وصل کنید.

خرید و نصب والت سرد

پس از خرید باید نرم‌افزاری مرتبط با والت را روی سیستم موردنظر نصب کنید. روند نصب با توجه به مدل دستگاه متفاوت خواهد بود. اما در اکثر موارد راهنمایی در اختیار شما گذاشته می‌شود. به محض نصب نرم‌افزار می‌توانید با استفاده از کابل یو اس بی یا بلوتوث والت را به سیستم متصل کنید. در ادامه با دنبال کردن راهنمای موجود والت را راه‌اندازی کنید.

انتقال دارایی

پس از ساخت کیف پول ارز دیجیتال زمان انتقال دارایی فرا می‌رسد. ابتدا باید والت را به حساب بروکر یا صرافی موردنظر وصل کنید. پس از اتصال می‌توانید ارزهایی که در این صرافی خریداری کرده‌اید را به والت خود انتقال دهید. زمانی که دارایی را به والت انتقال دهید، اتصال ارزهای دیجیتال به اینترنت قطع می‌شود و شما می‌توانید با امنیت کامل از آنها نگهداری کنید.

نحوه ساخت کیف پول ارز دیجیتال کاغذی

برای ساختن این نوع کیف پول نیازی به هزینه وجود ندارد. از نظر بسیاری از کاربران این والت بهترین گزینه موجود برای نگهداری آفلاین دارایی است.

وارد یک وبسایت تولید والت کاغذی شوید

در مرحله اول باید چنین وبسایتی را پیدا کرده و وارد شوید. این وب‌سایت‌ها اپن سورس هستند و و یک کلید عمومی و خصوصی شخصی را در اختیار شما قرار می‌دهند. باید از یک سایت معتبر استفاده کنید تا امینت والت ارتقا پیدا کند. پس از دریافت اطلاعات آنها را در فضای آفلاینی ذخیره کنید.

برای افزایش امنیت کلیدهای دریافتی را روی یک تکه کاغذ یادداشت و آن را در محل امنی مانند صندوق امانات بانک یا گاوصندوق نگهداری کنید. نگهداری از این والت بسیار مهم است و با گم شدن آن دسترسی شما به ارزهای دیجیتال قطع خواهد شد و قادر به بازیابی دارایی خود نخواهید بود.

اطلاعات موردنیاز برای ساخت کیف پول ارز دیجیتال

ساخت کیف پول ارز دیجیتال بخش مهمی از سرمایه‌گذاری شما در این بازار است. برای این کار باید اقداماتی را انجام دهید. همانطور که گفته شد ابتدا باید نوع والت را انتخاب کنید و در ادامه با ارائه اطلاعات شخصی ارزهای دیجیتال خود را در آن ذخیره کنید. این راهنما برای ساختن انواع کیف پول ارز دیجیتال مناسب است و شما می‌توانید به سادگی و تنها با کمک این راهنما این کار را انجام دهید.

اطلاعات شخصی

معمولا برای باز کردن یک حساب والت ارز دیجیتال باید اطلاعات زیر را ارائه دهید. چرا که تولیدکنندگان والت برای جلوگیری از پول‌شویی احراز هویت را الزامی می‌دانند:

  • اسم کامل
  • آدرس ایمیل
  • شماره تماس
  • آدرس محل سکونت
  • کلید عمومی و خصوصی

برای اینکه از اطلاعات مهمی مانند کلیدهای دسترسی به درستی مراقبت کنید باید اهمیت آنها را درک کنید. کلید عمومی آدرس والت شماست و کاربران دیگر برای انتقال وجه به والت شما به این آدرس نیاز دارند. از سوی دیگر کلید شخصی رمز عبور شما برای دسترسی به ارزهای دیجیتال است. شما با کلید شخصی می‌توانید تراکنش و جابه‌جایی به دیگر والت‌ها را تایید کنید. اگر کسی به کلید شخصی شما دست پیدا کند، مالک ارزهای دیجیتال شما خواهد بود.

آموزش ساخت کیف پول ارز دیجیتال

نکات مهم برای ساخت کیف پول ارز دیجیتال

شاید فرایند ساخت کیف پول ارز دیجیتال برای شما دشوار باشد، بهتر است این فاکتورهای را هنگام انتخاب بهترین کیف پول ارز دیجیتال در نظر داشته باشید.

امنیت

امنیت باید اولین فاکتور موردنظر شما برای انتخاب والت باشد. اگر والت به اندازه کافی ایمن نباشد دارایی شما در معرض حملات سایبری قرار می‌گیرد. ازسوی دیگر والت موردنظر باید از قابلیت ورود دو مرحله‌ای نیز پشتیبانی کند. قابلیت چند امضایی، پشتبیان گیری و امکان بازیابی اطلاعات از دیگر قابلیت‌های ارزشمند یک والت به شمار می‌رود. با انتخاب والت از برندهای شناخته‌شده از امنیت آن اطمینان حاصل کنید.

کارمزد

هزینه خرید والت‌ها با توجه به امکانات متفاوت است. به دنبال والتی باشید که کارمزد کمی را از شما درخواست می‌کند.

تعداد ارزهای دیجیتال

اگر قصد دارید روی شماری از ارزهای دیجیتال سرمایه‌گذاری کنید باید این نکته را هنگام ساخت کیف پول ارز دیجیتال به یاد داشته باشید. برای اطلاع از ارزهای دیجیتالی که والت از آنها پشتیبانی می‌کند، نگاهی به وبسایت تولیدکننده بیندازید. به این ترتیب مطمئن می‌شوید که والت موردنظر از چه ارزهایی پشتیبانی می‌کند.

رابط کاربری ساده

 مهم نیست که چه اندازه در بازار ارز دیجیتال باتجربه هستید، والت باید به گونه‌ای طراحی شده باشد که به عنوان یک تازه‌کار یا حرفه‌ای بدون نیاز به آموزش قادر به استفاده از آن باشید. رابط کاربری ساده به شما اجازه می‌دهد بدون سوال پرسیدن از شخص سوم‌ها، مدیریت دارایی را انجام دهید. از سوی دیگر فرایند پشتیبان گیری و بازیابی نیز باید به سادگی هرچه تمام‌تر طراحی شده باشد.

شهرت

والتی که برای نگهداری ارزهای خود انتخاب می‌کنید باید شناخته‌ شده باشد. برای این منظور نظرات دیگر کاربران را مطالعه کنید و تاریخچه والت را بررسی کنید.

همخوانی

والت شما باید با سیستم و دستگا‌ه‌هایی که از آن استفاده می‌کنید همخوانی داشته باشد. اگر سیستم شما اندروید، iOS، مک و … است این نکته را هنگام خرید در نظر داشته باشید.

پشتیبانی

خدمات پشتیبانی والت‌ها را در نظر داشته باشید. تامین‌کننده باید خدمات پشتیبانی خوبی را در اختیار شما قرار دهد و پاسخگوی سوالات شما باشد. از این گذشته پشتیبانی می‌تواند پاسخ سوالات متداول کاربران را در اختیار شما قرار دهد. اگر در مورد راه‌اندازی یا بازیابی ارزهای خود با سوالی روبه‌رو شوید باید به یک تیم پشتیبانی برخط دسترسی داشته باشید.

خطرات نگهداری از ارز دیجیتال

 پیش از ساخت کیف پول ارز دیجیتال باید خطرات نگهداری از این دارایی را نیز در نظر داشته باشید.

حملات سایبری

 اصلی‌ترین تهدید حملات سایبری است. هکرها می‌توانند با دزدیدن کلید شخصی، دارایی شما را تصاحب کنند. آنها می‌توانند از طریق نرم‌افزارهای خراب به سیستم شما رخنه کنند و کلید شخصی را به سرقت ببرند.

فراموش کردن عبارت سید

سید عبارتی برای بازیابی والت است. در صورت فراموشی این عبارت شما مالکیت ارز دیجیتال را برای همیشه از دست می‌دهید. هیچ قدرت مرکزی نمی‌تواند این دارایی را به شما بازگرداند. بنابراین نگهداری از این عبارت از اهمیت بسیار بالایی برخوردار است.

نقص سخت افزاری

اگر از والت سخت‌افزاری استفاده می‌کند ممکن است با خطر ایراد فنی در والت روبه‌رو شوید. در این حالت شما کلید شخصی یا عبارت سید که در این والت‌ها ذخیره شده است را نیز از دست می‌دهید. بنابراین حتی اگر از یک والت سخت‌افزاری استفاده می‌کنید، بهتر است کلید شخصی و عبارت سید را در جای امن و آفلاینی نگهداری کنید.

باورهای غلط در مورد والت ارز دیجیتال

والت ارز دیجیتال بسیار ساده است اما باید همه چیز را در مورد عملکرد آنها بدانید در غیراین‌صورت اسیر باورهای اشتباه می‌شوید.

والت‌های تحت وب امن نیستند

درست است که والت‌های سخت‌افزاری امنیت بیشتری دارند اما این به این معنا نیست که نسخه‌های تحت وب امن نیستند. به یاد داشته باشید که هر والتی را می‌توان هک کرد و هر ارز دیجیتالی در معرض خطر قرار دارد. این شما هستید که باید با رعایت اقدامات امنیتی در مورد اتصال خود به اینترنت دارایی خود را امن نگه‌دارید.

هیچ کس نمی‌تواند تراکنش‌های شما را ببیند

اگر کسی آدرس عمومی شما را داشته باشد، می‌تواند تمام تراکنش‌های انجام شده از حساب شما را مشاهده کند. البته این امنیت دارایی شما را به خطر نمی‌اندازد. این ویژگی یکی از قابلیت‌های ذاتی بلاک چین است.

کاربران می‌توانند برای ولت رمز جدید در نظر بگیرند.

اگر عبارت سید را فراموش کنید دیگر به ارز دیجیتال دستری ندارید. درست مانند گم کردن کیف پول‌های واقعی، گم کردن رمز عبور به معنای از دست دادن محتویات کیف است.

ارز دیجیتال بخرید

اکنون که برای خودتان یک والت تهیه کرده‌اید زمان خرید است. والت را با ارز دیجیتال محبوب خود پر کنید. برای خرید ارز دیجیتال نیز راه‌های متعددی پیش رو دارید. شما باید با انتخاب صرافی متمرکز یا غیرمتمرکز موردنظر ارز دیجیتال را به والت شخصی خود انتقال دهید.

ساخت کیف پول ارز دیجیتال کار دشواری نیست شما برای اینکار به اندکی دانش و تحقیق نیاز دارید. معمولا ساختن این والت‌ها ساده است و راهنمای کاملی در اختیار شما گذاشته می‌شود. والت‌ها به گونه‌ای طراحی می‌شوند که کاربر با هر میزان تجربه قادر به استفاده از آنها باشد. با این وجود توصیه می‌شود با در نظر گرفتن نکات امنیتی والتی را انتخاب کنید که پشتیبانی خوبی را ارائه می‌کند. در این صورت اگر در زمان راه‌اندازی یا استفاده از والت با سوالی روبه‌رو شوید نیز می‌توانید مسئله را تیم پشتیبانی در میان بگذارید. به این ترتیب دون واگذاری ارزهای دیجیتال آن را شخصا مدیریت می‌کنید.

اگر با خواندن این مقاله همچنان در مورد ساخت کیف پول ارز دیجیتال با سوالی روبه‌رو هستید مسئله را کارشناسان ما در میان بگذارید. به یاد داشته باشید که ورود به بازارهای جدید مستلزم آموزش و یادگیری مفاهیم تازه است. این کار ممکن است زمان زیادی را به خود اختصاص دهد اما سرمایه‌گذاری شما در امر آموزش، نتایج خوشایندی را در پی خواهد داشت. اگر با ارز دیجیتال آشنایی چندانی ندارید پیش از شروع معامله، این بازار را در محیط حساب دموی آرون ارزیابی کنید و برای ورود به این بازار آماده شوید.

سوالات متداول در مورد ساخت کیف پول ارز دیجیتال

این نکته به نوع والت بستگی دارد. معمولا والت‌های نرم‌افزاری که در قالب اپلیکیشن در اختیار شما گذاشته می‌شوند رایگان هستند. با این حال والت‌های گرمی نیز وجود دارد که در ازای ارائه خدمات کارمزد دریافت می‌کنند. برای خرید والت سخت‌افزاری باید هزینه کنید. هزینه این والت‌ها با توجه به گستره امکانات متفاوت است.

والت سخت‌افزاری که آفلاین است. والت نرم‌افزاری که آنلاین است. والت کاغذی که ارزان و آفلاین است. والت تحت وب که می‌تواند رایگان یا فروشی باشد و از سوی یک شخص سوم به صورت آنلاین ارائه می‌شود.

ادامه خواندن
not-found
calendar آبان 6, 1402
به این مقاله امتیاز بدهید

Leave a Reply

Your email address will not be published. Required fields are marked *

`; // Select the inner section where the comment should be placed const contentWrapper = cardTemplate.querySelector('.gradient-card-content'); // Move the comment into the template contentWrapper.appendChild(comment); // Add the template to the wrapper wrapper.appendChild(cardTemplate); // Add the constructed wrapper to the comment list commentListWrapper.appendChild(wrapper); }); comments.forEach((comment) => { // Select the comment-body element const commentBody = comment.querySelector('.comment-body'); const meta = comment.querySelector('.comment-meta.commentmetadata'); const reply = comment.querySelector('.reply'); if (commentBody) { // Create a new
with a specific class const newDiv = document.createElement('div'); newDiv.classList.add('custom-wrapper'); // Add the desired class // Append the new
to the comment-body commentBody.appendChild(newDiv); newDiv.appendChild(meta) newDiv.appendChild(reply) } }); -->
نه ممنون
Table of contents
`; const initializeAccordion = () => { const accordionHeaders = document.querySelectorAll(".accordion__header"); accordionHeaders.forEach((item) => { item.addEventListener("mouseup", () => { item.classList.toggle("open"); }); }); }; if (newSingleBlogPost != null || newSingleBlogPost != undefined) { // add table of content after first child in base content const firstChild = baseContent.firstElementChild.firstElementChild.firstElementChild; // Convert the table of content HTML string to a DOM element const tempDiv = document.createElement("div"); tempDiv.innerHTML = tableOfContentHTML; const tableOfContentElement = tempDiv.firstElementChild; if (firstChild) { baseContent.firstElementChild.firstElementChild.insertBefore(tableOfContentElement, firstChild.nextElementSibling); } // Set accordion click after table of content add to DOM initializeAccordion(); // Select all h2 and h3 elements const headings = document.querySelectorAll(".base_content h2, .base_content h3"); // Add data-id attribute to each heading headings.forEach((heading) => { const text = heading.textContent.trim(); const id = text .replace(/\s+/g, "_") .replace(/[^\w\u0600-\u06FF_]/g, "") .toLowerCase(); heading.setAttribute("data-id", id); }); // Create dynamic table of contents const tocWrapper = document.querySelector(".tocWrapper"); tocWrapper.innerHTML = ""; // Clear any existing content let currentH2 = null; // Variable to store the current h2 being processed headings.forEach((heading,index) => { if (heading.tagName === "H2") { // Create a link for h2 headings const link = document.createElement("a"); link.href = `#${heading.getAttribute("data-id")}`; link.textContent = heading.textContent; link.classList.add("h2"); link.classList.add("scroll-tag"); // Create a list item for h2 const listItem = document.createElement("div"); listItem.classList.add("item"); listItem.appendChild(link); // Append the list item for the h2 tocWrapper.appendChild(listItem); // Set the current h2 to this heading currentH2 = listItem; } else if (heading.tagName === "H3" && currentH2) { // Create a link for h3 headings as a subitem of the current h2 const link = document.createElement("a"); link.href = `#${heading.getAttribute("data-id")}`; link.textContent = heading.textContent; link.classList.add("h3"); link.classList.add("scroll-tag"); // Create a subitem for h3 and append it to the current h2 item const subItem = document.createElement("div"); subItem.classList.add("sub-item"); subItem.appendChild(link); // Append the subitem to the current h2's list item currentH2.appendChild(subItem); } }); // Scroll to the section when a TOC item is clicked tocWrapper.addEventListener("click", (e) => { e.preventDefault() if (e.target.tagName === "A") { const targetId = e.target.getAttribute("href").substring(1); const targetElement = document.querySelector(`[data-id="${targetId}"]`); if (targetElement) { // Scroll to the element, but adjust for the header height const targetOffset = targetElement.getBoundingClientRect().top + window.scrollY - 84; window.scrollTo({ top: targetOffset, behavior: "smooth" }); e.preventDefault(); } } }); const tableOfcontent = document.querySelector('.table_of_contents'); const tagleOfContentTitle = tableOfcontent.querySelector('.title span') const translateTableOfContent = () => { const language = getLanguageKey(); if (language === "fa") { tagleOfContentTitle.textContent = "فهرست مطالب"; } else if (language === "ar") { tagleOfContentTitle.textContent = "جدول المحتويات"; } else { tagleOfContentTitle.textContent = "Table of Content"; } }; // فراخوانی تابع ترجمه translateTableOfContent(); // Copy logic // Localized messages for different languages const messages = { en: { initial: "Copy link", copied: "Copied!", }, fa: { initial: "کپی لینک", copied: "کپی شد!", }, ar: { initial: "نسخ الرابط", copied: "تم النسخ!", }, }; // Function to detect language and match messages function getLanguageKey () { const lang = document.documentElement.lang.toLowerCase(); if (lang.includes("fa")) return "fa"; if (lang.includes("ar")) return "ar"; return "en"; }; // Function to update button text based on language const updateButtonText = (button, state = "initial") => { const langKey = getLanguageKey(); button.textContent = messages[langKey]?.[state] || messages.en[state]; }; // Function to change button background color const updateButtonBackgroundColor = (button, color) => { button.style.backgroundColor = color; }; // Initialize button text and background color on page load window.addEventListener("load", () => { const copyButton = document.querySelector(".copy_btn"); updateButtonText(copyButton); updateButtonBackgroundColor(copyButton, "#f9c43e"); // Initial color }); // Add click event listener to copy URL and update button text and color document.querySelector(".copy_btn").addEventListener("click", function () { const copyButton = this; const currentUrl = window.location.href; navigator.clipboard .writeText(currentUrl) .then(() => { updateButtonText(copyButton, "copied"); updateButtonBackgroundColor(copyButton, "#cacaca"); // Change color on click setTimeout(() => { updateButtonBackgroundColor(copyButton, "#f9c43e"); // Reset color after 3 seconds updateButtonText(copyButton); // Reset text after 3 seconds }, 3000); // 3-second timeout }) .catch((err) => { console.error("Failed to copy:", err); }); }); // rate popup click function /** * Initialize popup functionality for rate popups. * @param {HTMLElement} trigger - Element that triggers the popup. * @param {HTMLElement} popup - Popup element to display. * @param {HTMLElement} overlay - The overlay element. * @param {HTMLElement} closeButton - Button to close the popup. */ function initRatePopup(trigger, popup, overlay, closeButton) { // Show the popup when the trigger is clicked if (trigger) { trigger.addEventListener("click", () => { setTimeout(()=>{ openModal(popup, overlay); },1000) }); } // Add event listener to the overlay for closing the modal overlay.addEventListener("click", () => closeModal(popup, overlay)); // Hide the popup when the close button is clicked if (closeButton) { closeButton.addEventListener("click", () => { closeModal(popup, overlay); }); } } // Initialize the rate popup const rateStarsWrapper = document.querySelectorAll(".rate_stars_wrapper"); const ratePopup = document.querySelector(".rate_popup"); const closeRatePopupBtn = document.querySelector(".no_thanks"); rateStarsWrapper.forEach((element)=>{ initRatePopup(element, ratePopup, overlay, closeRatePopupBtn); }) window.addEventListener("load", () => { // Bonus popup functions const popup = document.querySelector(".bonus_popup"); if (!popup) return; // Exit if popup doesn't exist let isPopupShown = false; let hasScrolled = false; // Listener for scroll event const handleScroll = () => { if (isPopupShown || hasScrolled) return; // Prevent multiple triggers hasScrolled = true; setTimeout(() => { popup.classList.add("show"); isPopupShown = true; // Remove the event listener after showing the popup window.removeEventListener("scroll", handleScroll); }, 0); }; window.addEventListener("scroll", handleScroll); // Close popup functionality const closeIcon = popup.querySelector(".close_icon"); if (closeIcon) { closeIcon.addEventListener("click", () => { popup.classList.remove("show"); popup.classList.add("hide"); // Remove the hide class after animation completes popup.addEventListener( "transitionend", () => { popup.classList.remove("hide"); }, { once: true } ); }); } // Suggested Article Popup Logic const suggestedPopup = document.querySelector(".suggested_article_popup"); if (suggestedPopup) { const timeout = parseInt(suggestedPopup.getAttribute("data-timeout"), 10) || 0; setTimeout(() => { suggestedPopup.classList.add("show"); const closeSuggestedIcon = suggestedPopup.querySelector(".close_btn_wrapper"); if (closeSuggestedIcon) { closeSuggestedIcon.addEventListener("click", () => { suggestedPopup.classList.remove("show"); suggestedPopup.classList.add("hide"); suggestedPopup.addEventListener( "transitionend", () => { suggestedPopup.classList.remove("hide"); }, { once: true } ); }); } }, timeout); } }); } -->