نحوه دریافت سیاهههای مربوط به معامله در Solana

ساخت وبلاگ

تا به حال نیاز دارید که تمام معاملات مرتبط با کیف پول را بکشید؟آیا می خواهید تمام معاملات نعناع مرتبط با دستگاه آب نبات را ببینید؟یا شاید تاریخ معامله NFT را ببینید؟روش GetSignaturesForAddress Solana ابزاری همه کاره است که دریافت تاریخ معامله را به نسیم تبدیل می کند.

چه کاری انجام می دهید

در این راهنما ، به دنیای هیجان انگیز معاملات Solana شیرجه خواهید شد! شما یک اسکریپت ساده ایجاد خواهید کرد که می تواند یک آدرس (کیف پول ، برنامه ، نعناع توکن و غیره) را پرس و جو کند و تمام تاریخچه معاملات مرتبط با آن را پیدا کند.

آنچه شما نیاز دارید

  • Nodejs (نسخه 16. 15 یا بالاتر)
  • نخ نصب شده
  • Solana Web3
  • تجربه با معاملات اساسی در Solana. برای مسواک زدن به دانش خود ، راهنمای مبتدی ما در مورد نحوه ارسال معامله در Solana را بخوانید
  • دانش جاوا اسکریپت

بیا شروع کنیم!

محیط خود را تنظیم کنید

در ترمینال خود یک دایرکتوری و پرونده جدید پروژه ، log. js ایجاد کنید:

mkdir get_sol_tx CD get_sol_tx echo>log. js 

وابستگی های Solana Web3 را نصب کنید:

نخ ini t-y نخ اضافه کنید @solana/web3. js 
npm ini t-y NPM نص ب-save @solana/web3. js 

log. js را در یک ویرایشگر کد مورد نظر و در خط 1 باز کنید ، به @solana/web3. js نیاز دارید و آن را در یک solanaweb3 ثابت ذخیره کنید:

محاصره کردن Solanaweb3 = نیاز('@solana/web3. js'); 

آدرس را اعلام کنید که می خواهید جستجو کنید:

محاصره کردن لباس = 'your_address_here'; // مثال "Vines1vzrybzlmrdu58ou5xtby4qaqvrlmqo36nkptg ' 

توجه: این می تواند هر آدرس معتبر در Solana باشد (به عنوان مثال ، آدرس کیف پول ، آدرس نعنا ، آدرس برنامه). اگر قبلاً یکی از آنها را ندارید ، می توانید از Vines1vzrybzlmrdu58ou5xtby4qaqvrlmqo36nkptg استفاده کنید.

خوب ، ما آماده هستیم تا کوکین را بدست آوریم!

ارتباطی به RPC QuickNode خود برقرار کنید

برای ساخت در Solana ، برای ارتباط با شبکه به یک نقطه پایانی API نیاز دارید. شما از استفاده از گره های عمومی یا استقرار و مدیریت زیرساخت های خود استقبال می کنید. با این حال ، اگر دوست دارید 8 برابر سریعتر پاسخ دهید ، می توانید وزنه برداری سنگین را به ما واگذار کنید. ببینید که چرا بیش از 50 ٪ از پروژه های Solana QuickNode را انتخاب کرده و برای یک آزمایش رایگان و 7 روزه در اینجا ثبت نام کنید.

ما قصد داریم گره خود را زیر Solana Devnet راه اندازی کنیم ، اما می توانید گره ای را که نیازهای شما را برآورده می کند ، راه اندازی کنید. پیوند ارائه دهنده HTTP را کپی کنید:

New Node

دوباره به log. js بروید و یک نقطه پایانی ایجاد کنید و URL QuickNode خود را به آن اختصاص دهید. در خط زیر ، در این ثابت به عنوان یک پارامتر برای عملکرد اتصال عبور کنید و آن را در ثابت دیگری به نام Solanacoection ذخیره کنید:

محاصره کردن نقطه پایانی = 'https://example. solana-devnet. quiknode. pro/000000/' '; محاصره کردن SolanAcoection = جدید Solanaweb3.ارتباط(نقطه پایانی); 

عالی! شما آماده ساخت عملکرد جستجوی خود هستید.

یک پرس و جو معامله ایجاد کنید

روش GetSignaturesForAddress بسیاری از بالابرهای سنگین را در اینجا انجام می دهد. در اینجا نحوه عملکرد آن آورده شده است:

این دو پارامتر را می پذیرد:

  • آدرس جستجو (مورد نیاز): کلید عمومی که می خواهید از آن استفاده کنید
  • گزینه ها (اختیاری): شیئی که شامل 3 ورودی اختیاری است:
    • قبل از: قبل از امضای معامله خاص ، به موقع جستجو را به موقع شروع کنید
    • بعد از: پس از امضای معامله خاص ، به موقع جستجو کنید
    • حد: حداکثر تعداد معاملات برای بازگشت (توجه داشته باشید که مقدار حداکثر و پیش فرض 1000 است)

    این وعده برای مجموعه ای از تأیید شده signatureinfo ، یک شیء از نوع که شامل اطلاعات کلیدی معامله است ، باز می گردد:

    • امضا (شناسه معامله) ،
    • شکاف و بلوک (برای دیدن زمان پردازش معامله) ،
    • خطا (در صورت بروز هرگونه خطا) ، و
    • یادداشت (در صورت هرگونه یادداشت مرتبط با معامله)

    یک عملکرد جدید Async را تعریف کنید ، GetTransactions که دو پارامتر را می گیرد: آدرس و NUMTX.

    در داخل عملکرد ما ، روش GetSignaturesForAddress را در نمونه جدیدی از Solanacoection فراخوانی کرده و خروجی را در یک متغیر ، لیست معامله ذخیره کنید:

    محاصره کردن تعاملی = درز(نشانی, numtx) =>  محاصره کردن عکسبرداری = جدید Solanaweb3.کلید عمومی(نشانی); اجازه دهید لیست معامله = در انتظار SolanAcoection.getsignaturesforaddress(عکسبرداری, حد:numtx>); > 

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

    در داخل getTransactions ، یک حلقه foreach ایجاد کنید تا اطلاعات مربوط به هر معامله را وارد کنید:

    محاصره کردن تعاملی = درز(نشانی, numtx) =>  محاصره کردن عکسبرداری = جدید Solanaweb3.کلید عمومی(نشانی); اجازه دهید لیست معامله = در انتظار SolanAcoection.getsignaturesforaddress(عکسبرداری, حد:numtx>);  لیست معامله.برای هر((معامله, i) =>  محاصره کردن تاریخ = جدید تاریخ(معامله.زمان بلوک*1000); کنسول.ورود به سیستم(`شماره معامله: $i+1>`); کنسول.ورود به سیستم(`امضای: $معامله.امضاء>`); کنسول.ورود به سیستم(`زمان: $تاریخ>`); کنسول.ورود به سیستم(`وضعیت: $معامله.تأیید>`); کنسول.ورود به سیستم(("-").تکرار(20)); >) > 

    کد خود را اجرا کنید!

    اگر همه چیز به درستی تنظیم شده است ، باید بتوانید با عملکرد خود تماس بگیرید و برخی از نتایج را ببینید! این را به پایین log. js اضافه کنید:

    تعاملی(لباس,3); 

    و اکنون در نوع ترمینال خود:

    گره log. js 

    شما باید چیزی شبیه به این را ببینید:

    Transaction Search

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

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

    ما را در سایت فارکس به زبان ساده دنبال می کنید

    برچسب : نویسنده : طاهره ایرانی بازدید : <-PostHit-> تاريخ : شنبه 21 مرداد 1402 ساعت: 19:09