hadi mirzaie
hadi mirzaie
خواندن ۲ دقیقه·۲ سال پیش

لیست 10 NFT پرفروش با استفاده از PHP و Infura

اگر مقالات قبلی بنده را خونده باشید، متوجه خواهید شید که ورژن قبلی کتابخونه NFT history logs از تابع لاگ top-selling (پرفروش ترین ها) پشتیبانی نمیکرد. اما در آپدیت اخیر، تنها با یک خط کد، می توان به لاگ پرفروش ترین nft های یک قرارداد هوشمند دسترسی پیدا کرد.

شما در 3 مرحله به 10 nft پرفروش دسترسی پیدا میکنید:

1- ثبت نام در وبسایت infura

2- تنظیم پروایدر برای کتابخانه nft history logs

3- لیست 10 nft پرفروش با یک خط کد

خب حالا چرا infura؟ Infura یکی از مناسبت ترین آپشن ها برای ارتباط برقرار کردن با شبکه اتریوم است که 100 هزار درخواست در طول روز را پشتیبانی می کند و خب قطعا پلن های پرمیوم هم دارد منتها همین پلن رایگان براای ما کافیه.

ابتدا در وبسایت Infura ثبت نام کنید:

سپس یک کلید API بسازید:

گزینه WEB3 API را انتخاب کنید و یک اسم برای پروژه خودتون تعیین کنید:

لینک شبکه اصلی اتریوم را کپی کنید، حواستون باشه که کلید API خودتون رو با کسی به اشتراک نذارید:

حالا وقتشه بریم سراغ معجزه اصلی، ابتدا کتابخونه NFT history logs رو با استفاده از دستور زیر نصب کنید:

composer require nfthistory/nfthistorylogs dev-master

سپس به این شکل آن را وارد کنید:

<?php require 'vendor/autoload.php' use Nft\History\nftHistory;

آدرس قرار دادهوشمند مورد نظر خود را به همراه لینک پروایدر که کپی کرده بودید ست کنید:

$contractAddress = '0x00B3e138c6e4b233e5DDed8CfeD200f0c82B536c'; $provider = 'https://mainnet.infura.io/v3/<YOUR API KEY>';

حالا از کتابخانه یک شی بسازید:

$nfthistory = new nftHistory($contractAdress, $provider);

حالا تابع ()topSellNfts را فراخوانی کنید تا هر تعداد NFT پرفروش یک قرارداد هوشمند را بتوانید برگردانید:

$NftHistory->topSellNfts('multiThread', 10);

در کد بالا، ما 10 NFT پرفروش یک قرارداد هوشمند را با یک خط کد ساده برگرداندیم. همچنین گزینه mode را برابر با multiTread قرار دادیم تا سرعت دسترسی به لاگ را افزایش دهیم. گزینه دوم را 10 قرار دادیم به معنی این که 10 nft پرفروش را برگرداند. این اپشن می تواند بنا به دلخواه متغیر باشد.

خروجی تابع بالا:

array(10) { [0]=> string(4) '0.40' [1]=> string(4) '0.25' [2]=> string(4) '0.21' [3]=> string(4) '0.19' [4]=> string(4) '0.15' [5]=>string(4) '0.12' [6]=> string(4) '0.11' [7]=> string(4) '0.11' [8]=> string(4) '0.10' [9]=> string(4) '0.09' }

همانطور که میبینید ما موفق شدیم 10 nft پرفروش یک قرارداد هوشمند را بر مبنای فرمت ether برگردانیم آن هم تنها با استفاده از یک تابع ساده. فقط حواستون باشه وقتی mode رو برابر با multiTread میذارید به دلیلی درخواست bulk یا همون حجیم، ممکنه پروایدر، دسترسی شما را محدود یا مسدود بکنه. خوشبختانه شبکه infura چنین برخوردی نداره ولی احتمالا در مابقی موارد به مشکل بر بخورید. به جاش میتونید از روش singleThread استفاده کنید که بسیار کندتر اما مطمئن تر است.

برای دسترسی به مابقی توابع از اینجا

اگر سوالی داشتید در کامنت میتونید ازم بپرسید.

امیدوارم براتون مفید بوده باشه ^__^


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