자습서: CryptoPunks V1 사이트에 분석 추가
6135 단어 webdevjavascriptnftblockchain
아래에 전체 예제(코드를 확인하기 위해 검사할 수 있음)가 포함됩니다.
실시간 판매 피드 추가
먼저 POST 호출을 사용하여 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
}
...
}
차트 추가
평균 판매 가격에 대한 차트 추가
일일 평균 CryptoPunks V1 판매 가격을 얻으려면 데이터를 집계해야 합니다.
BODY:
{
"nft_event": "sale",
"nft_address": "0x282bdd42f4eb70e7a9d9f40c8fea0825b7f68c5d",
"aggregate" : { "op" : "avg", "by" : "day", "field" : "nft.value_eth" },
"limit" : 10,
"timestamp" : "gte:2022-04-01"
}
집계 API 결과 구문 분석
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 V1 사이트에 분석 추가), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://dev.to/sort_xyz/tutorial-adding-analytics-to-the-cryptopunks-v1-site-4ad0텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)