チュートリアル:Cryptopunks V 1サイトへの解析学の追加
5989 ワード
NFTのプロジェクトのために、それは最近の売上高とチャートのような項目をウェブサイトに追加するのは難しいことができます.既存のNFT APIがあります.しかし、ほとんどの場合、ユーザーキーを公開したくないAPIキーが必要です.完全に(自由に)使用しましょうSort API クライアント側のJavaScriptだけを使用して、CryptopUnks V 1ウェブサイトに解析論を追加します.
完全な例(コードを見るために検査することができます)を以下に含みます.
まず、問い合わせをする予定ですtransaction API Punks契約に関するいくつかの情報を得るためにポストコールを使用する
NFTRANイベント-販売のみを探す NftCountアドレス- CryptopUnks V 1契約アドレスを使用してください limit -最新の10の結果を得る timestamp - 2022 - 04 - 01以降( GTE以上)のみ検索する フィールド-パフォーマンスを上げるためにレスポンスから2つの非常に長いフィールドを省略します JavaScriptを書く
NFTimagechen url -パンクのイメージに対するURL NFT値ETH - ETHでの販売の値(必要な変換は必要ありません) NFTTokenHeightインデックス-パンクのIDを販売 フィードを表示
以前の販売フィードから同じAPI呼び出しを使用しますが、私たちのバブル/散布図チャートのトランザクションからタイムスタンプを使用します.
トランザクションの日付については、sortxyzchen data [ i ]を使用します.タイムスタンプ チャート追加
我々は、1日あたりの平均クリプトトップV 1の販売価格を得るために集計データをする必要があります.
NFTRANTイベント、NFTSEN Address -前と同じですが、ここで変更はありません aggregate -フィールドのNVG値を取得します.Valukeeth eth '、1日でバッケティング 限界-最後の10の結果 timestamp - 2022 - 04 - 01で始まる 集約APIの結果の解析
チャート追加
我々は、契約イベント(モックアップ内に示されていない)などの追加情報を追加することができます.
アクセスcompleted example here ソースコードを見て、完全なJavaScriptの例を参照してください.
プロフィールSort API docs さらに学び、さらに複雑な集約やクエリを作成します.
完全な例(コードを見るために検査することができます)を以下に含みます.
リアルタイム販売フィードの追加
まず、問い合わせをする予定ですtransaction API Punks契約に関するいくつかの情報を得るためにポストコールを使用する
POST https://api.sort.xyz/v0/transaction
BODY:
{
"nft_event": "sale",
"nft_address": "0x282bdd42f4eb70e7a9d9f40c8fea0825b7f68c5d",
"limit" : 10,
"timestamp" : "gte:2022-04-01",
"fields" : { "logs" : 0, "function" : 0 }
}
var sortxyz_result = await axios.post('https://api.sort.xyz/v0/transaction',
{
"nft_event": "sale",
"nft_address": "0x282bdd42f4eb70e7a9d9f40c8fea0825b7f68c5d",
"limit" : 10,
"timestamp" : "gte:2022-04-01",
"fields" : { "logs" : 0, "function" : 0 }
}
);
let sortxyz_data = sortxyz_result.data.result;
for (var i=0; i<sortxyz_data.length; i++) {
// Fill in our HTML
}
HTMLで使用するAPIレスポンスのフィールド値に注意してください. new_sale.innerHTML =
"<div class=\"row\"> " +
"<div class=\"col\"> " +
"<img width=\"75\" class=\"lazyload\" src=\""+sortxyz_data[i].nft.image_url+"\" />" +
"</div>" +
"<div class=\"col\">" +
"<div>" + sortxyz_data[i].nft.value_eth + "</div>" +
"<div>#" + sortxyz_data[i].nft.token_index + "</div>" +
"</div>" +
"</div>";
最近の売上高のための散布図チャートを加えること
以前の販売フィードから同じAPI呼び出しを使用しますが、私たちのバブル/散布図チャートのトランザクションからタイムスタンプを使用します.
POST https://api.sort.xyz/v0/transaction
BODY:
{
"nft_event": "sale",
"nft_address": "0x282bdd42f4eb70e7a9d9f40c8fea0825b7f68c5d",
"limit" : 10,
"timestamp" : "gte:2022-04-01",
"fields" : { "logs" : 0, "function" : 0 }
}
タイムスタンプをチャートで使うlet sortxyz_data = sortxyz_result.data.result;
for (var i=0; i<sortxyz_data.length; i++) {
let chart_item = {
"y": sortxyz_data[i].nft.value_eth,
"date" : sortxyz_data[i].timestamp,
"value": sortxyz_data[i].nft.value_eth,
"image": sortxyz_data[i].nft.image_url,
"punk" : sortxyz_data[i].nft.token_index
}
...
}
平均販売価格のグラフを追加する
我々は、1日あたりの平均クリプトトップV 1の販売価格を得るために集計データをする必要があります.
BODY:
{
"nft_event": "sale",
"nft_address": "0x282bdd42f4eb70e7a9d9f40c8fea0825b7f68c5d",
"aggregate" : { "op" : "avg", "by" : "day", "field" : "nft.value_eth" },
"limit" : 10,
"timestamp" : "gte:2022-04-01"
}
let sortxyz_data = sortxyz_result.data.result;
let position = 0;
for (var i=0; i<sortxyz_data.length; i++) {
let chart_item = {
"y": sortxyz_data[i].total,
"x": position,
"date" : sortxyz_data[i].timestamp
}
このAPI呼び出しからの結果は、以前のAPI呼び出しとは異なる形式を持っています.なぜなら、我々は濃縮されたトランザクションを返す代わりにデータを集約しているからです.チャート追加
ボーナス:契約イベントを加えてください
我々は、契約イベント(モックアップ内に示されていない)などの追加情報を追加することができます.
POST https://api.sort.xyz/v0/transaction
BODY:
{
"contract_address": "0x282bdd42f4eb70e7a9d9f40c8fea0825b7f68c5d",
"limit" : 10
}
すべてをまとめる
アクセスcompleted example here ソースコードを見て、完全なJavaScriptの例を参照してください.
プロフィールSort API docs さらに学び、さらに複雑な集約やクエリを作成します.
Reference
この問題について(チュートリアル:Cryptopunks V 1サイトへの解析学の追加), 我々は、より多くの情報をここで見つけました https://dev.to/sort_xyz/tutorial-adding-analytics-to-the-cryptopunks-v1-site-4ad0テキストは自由に共有またはコピーできます。ただし、このドキュメントのURLは参考URLとして残しておいてください。
Collection and Share based on the CC Protocol