نحوه بررسی توازن توکن ERC20 - راهنمای نهایی

ساخت وبلاگ

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

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

بیایید به آن پرش کنیم.

چگونه تعادل توکن ERC20 را بررسی کنیم؟

تمام نشانه های ERC20 دارای یک روش تعادل هستند که تعادل یک آدرس کیف پول معین را برمی گرداند. این روش عمومی است تا هر کسی بتواند از آن استفاده کند ، شما فقط به آن نیاز دارید:

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

بنابراین اول از همه ، برای دسترسی به چندین گره blockchains با ChainStack:

چگونه می توان یک آدرس نشانه ERC20 دریافت کرد؟

ما می توانیم آدرس نشانه ERC20 را که می خواهیم از مستندات پروژه بررسی کنیم ، پیدا کنیم. برای نشانه های مشترک مانند USDC ، می توانید به هر کاوشگر مانند Etherscan بروید ، نام را وارد کنید و ظاهر می شود.

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

چگونه لیستی از نشانه های ERC20 را تهیه کنیم؟

tokenlists.org گزینه خوبی برای اتریوم است ، اما اگر می خواهیم از پروتکل های مختلف blockchain پرس و جو کنیم ، به لیست های بیشتری احتیاج داریم. خوشبختانه برای ما ، این چیزی است که بسیاری از مردم روی آن کار می کنند و من این مخزن را با لیست نشانه های ERC20 برای بسیاری از blockchain های مختلف مانند بهمن ، BNB ، چند ضلعی و غیره پیدا کردم.

ما می توانیم پرونده های JSON را مستقیماً از مخزن بارگیری کنیم یا آنها را با JavaScript بارگیری کنیم. در مثال زیر ، من تابعی را ایجاد کردم که نام blockchain را که می خواهیم لیست توکن را برای آن دریافت کنیم ، دریافت می کند و آن را از URL مربوطه بارگیری می کند:

چگونه تعادل فعلی و تعادل گذشته را بررسی کنیم؟

برای به دست آوردن تعادل فعلی ، ما باید با روش تعادل نمونه قرارداد ERC20 تماس بگیریم و آدرس کیف پول را که می خواهیم از آن استفاده کنیم عبور دهیم:

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

توجه به این نکته حائز اهمیت است که می توانید تعادل فعلی را از یک گره کامل blockchain بدست آورید ، اما برای به دست آوردن مانده از تاریخ های گذشته (یا 128 بلوک قبل از فعلی در بیشتر موارد) ، شما نیاز به دسترسی به یک گره بایگانی دارید.

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

مشکل اینجاست که چگونه می توان شماره بلوک یک تاریخ خاص را پیدا کرد؟بیایید به آن حفر کنیم.

چگونه می توان شماره بلوک را برای تاریخ گذشته دریافت کرد؟

به دست آوردن شماره بلوک در هر تاریخ معین ، قسمت دشوار است. برای Ethereum ، بسته NPM به تاریخ Ethereum-Block به روز وجود دارد ، اما برای سایر زنجیرها ، من چیزی مشابه پیدا نکرده ام.

با این حال ، بیشتر زنجیرها یک اکسپلورر مبتنی بر اترسان دارند. به عنوان مثال ، برفی برای بهمن و BSCSCAN برای زنجیره BNB وجود دارد. همه این کاوشگران دارای یک API عمومی با روشی به نام GetBlockNoByTime هستند که شماره بلوک را در یک جدول زمانی معین باز می گرداند. می توانید مستندات را در اینجا پیدا کنید.

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

چگونه می توان چندین توازن را همزمان دریافت کرد؟

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

با استفاده از Promise. AllSettle () می توانیم لیست نشانه ها را حلقه کنیم و تمام درخواست ها را ایجاد کنیم ، اما به جای انتظار برای هر یک ، می توانیم همه آنها را همزمان ارسال کنیم:

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

نحوه به دست آوردن جزئیات توکن: نام ، نماد و اعشار

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

چگونه می توان تعادل توکن را به اعشاری قالب بندی کرد

روش تعادل قرارداد توکن ERC20 تعادل را به عنوان یک bignumber در قالب شش ضلعی باز می گرداند و تبدیل آن به رشته ، اعشار را برای ما جدا نمی کند.

به عنوان مثال ، اگر 15 USDC داشته باشیم ، پاسخ این خواهد بود:

به منظور قالب بندی این موضوع در تعدادی با اعشار ، می توانیم از Ether. Utils. FormatUnits استفاده کنیم که مقدار اصلی و تعداد اعشار را دریافت می کند. بیشتر نشانه های ERC20 به طور پیش فرض از 18 اعشار استفاده می کنند اما همه آنها مانند USDC که از 6 اعشار استفاده می کند ، استفاده نمی کنند.

توکن توازن ابزار CLI

در مخزن زیر ، می توانید یک ابزار CLI پیدا کنید که کل فرآیند بررسی توازن توکن را ساده می کند.

برای اجرای آن به صورت محلی ، باید به گره های blockchain دسترسی پیدا کنید ، کلیدهای API خود را از Etherscan ، Snowtrace ، BSCScan و Polygonscan دریافت کرده و آنها را در پرونده . env پیکربندی کنید.

می توانید تعادل را از blockchain های مختلف پرس و جو کنید و بین یک نشانه واحد یا همه نشانه های موجود (که از repo github ذکر شده در بالا گرفته می شود) انتخاب کنید. علاوه بر این ، شما قادر خواهید بود تاریخی را که می خواهید از آن پرس و جو کنید انتخاب کنید.

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

نتیجه

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

دریافت تعادل از تاریخ های گذشته می تواند بسیار مشکل باشد زیرا ما باید برای یک تاریخ خاص شماره بلوک را پیدا کنیم ، اما می توانیم با استفاده از API ها از کاوشگران مختلف blockchain کارها را آسانتر کنیم.

حتماً repo را با ابزار CLI Token Balance CLI کلون کنید و آن را امتحان کنید!

  • به اتریوم ، چند ضلعی ، زنجیره هوشمند BNB ، بهمن ، آربیتروم وصل شوید ، در نزدیکی شفق قطبی ، فانتوم ، کرونوس ، سولانا ، زنجیره گنوزیس ، هارمونی ، Tezos ، فیوز و استارکنت اصلی یا تست از طریق رابط طراحی شده برای کمک به شما در انجام کار.
  • برای پرس و جو از کل تاریخچه Mainnet - که فقط 49 دلار در هر ماه شروع می شود ، به گره های Ethereum ، Polygon ، BNB Smart Chain ، Avalanche ، Fantom ، Cronos و Tezos دسترسی پیدا کنید.
  • جایی را که می خواهید مستقر کنید انتخاب کنید ، و ما زیرساخت های اختصاصی مدیریت شده را که می تواند دسترسی با حجم بالا و با سرعت بالا خواندن و دسترسی به شبکه را در اختیار شما قرار دهد ، در اختیار شما قرار می دهیم.
  • برای کسب اطلاعات بیشتر در مورد ChainStack ، به مرکز دانش ما مراجعه کنید یا به سرور Discord و گروه تلگرام ما بپیوندید.

آیا قبلاً با ChainStack به چه چیزی می توانید دست پیدا کنید؟امروز به صورت رایگان شروع کنید.

اعلام برنامه مرکز توسعه دهنده جامعه

با انتشار در ChainStack ، نمونه کارها Web3 خود را تقویت کنید. شبکه با سایر توسعه دهندگان. پرداخت شده.

آموزش معاملات Metamask - راهنمای توسعه دهنده معاملات در Ethereum Mempool

با کمک کیف پول Metamask ، مقاله توضیح می دهد که چگونه مملوک ها ، هزینه های معامله و مقادیر غیرقانونی بر مدت زمان تأیید معامله در شبکه های سازگار با EVM تأثیر می گذارد.

footer sube

device

footer sube

در عمل به زنجیره ای مراجعه کنید

خدمات blockchain مدیریت شده و راه اندازی و مقیاس شبکه ها و برنامه های غیر متمرکز را ساده می کند.

newsletter

به جامعه Chainstack بپیوندید!

یکی از 50،000+ مبتکر باشید که در به روزرسانی های ما مشترک هستند.

ایالات متحده 1 Van de Graaff Drive Burlington ، MA 01803

بلوار 8 TEMASEK SINGAPORE #30-01/02 ، برج Suntec 3 038988

مقالات آموزش فارکس...
ما را در سایت مقالات آموزش فارکس دنبال می کنید

برچسب : نویسنده : بهزاد فراهانی بازدید : 42 تاريخ : شنبه 12 فروردين 1402 ساعت: 17:03