飙血推荐
  • HTML教程
  • MySQL教程
  • JavaScript基础教程
  • php入门教程
  • JavaScript正则表达式运用
  • Excel函数教程
  • UEditor使用文档
  • AngularJS教程
  • ThinkPHP5.0教程

如何通过opensea-js获取OpenSea的数据

时间:2022-02-15  作者:chris2021  

OpenSea作为NFT最大的交易平台,随着NFT的火热之后,热度也是出现翻天覆地的变化。作为开发人员肯定好奇有没有可以与opensea交互的包来开发相关的工具或者快速获取opensea的数据。别急,这里就告诉同学们一个好用的库opensea-js,下面就来说一下使用教程。

一.安装

执行以下命令,从npm获取安装包:

npm install --save opensea-js

二.初始化代码

官方示例:

import * as Web3 from \'web3\'
import { OpenSeaPort, Network } from \'opensea-js\'

// This example provider won\'t let you make transactions, only read-only calls:
const provider = new 域名Provider(\'https://域名\')

const seaport = new OpenSeaPort(provider, {
  networkName: 域名,
  apiKey: YOUR_API_KEY
})

这里需要说明官方代码样例中仅使用了Web3的provider与链进行交互。如果最后需要提交交易的话是会报错的,所以这里推荐使用truffle官方的库“hdwallet-provider”来进行初始化,通过对原有的Web3进行一层封装以达到使用私钥签名并发送交易的目的,具体方法可以去npm网站搜索相应的包进行详细查看。
使用代码如下:

const HDWalletProvider = require("@truffle/hdwallet-provider")
const { OpenSeaPort, Network } = require(\'opensea-js\')

const privateKey = "YOUR_PRIVATE_KEY"
const provider = new HDWalletProvider({
                    privateKeys: [privateKey],
                    providerOrUrl: \'https://域名\'
                })

const seaport = new OpenSeaPort(provider, {
  networkName: 域名,
  apiKey: YOUR_API_KEY
})

看到这里肯定有人好奇apiKey怎么获取到呢?这里提供个网址,点击进去按照要求输入后申请即可,申请地址

三.购买NFT

购买NFT需要查询相应的NFT的价格订单数据,getOrders具体可以传递哪些参数,详见OpenSea API parameters:

// Get offers (bids), a.k.a. orders where `side == 0`
const { orders, count } = await 域名rders({
  asset_contract_address: tokenAddress,
  token_id: token_id,
  side: 域名
})

获取到价格订单数据后,就可以进行购买

const accountAddress = "0x..." // The buyer\'s wallet address, also the taker
const transactionHash = await 域名域名illOrder({ 
	order, 
	accountAddress 
})

四.其余方法

opensea-js还包含其它的方法,具体的这里不在进行描述,有需要的可以点击链接转到官方文档看详细说明,这里不再赘述了。

其它

作为码农,服务器可以说跟我们简直不可分割啊,推荐几个自己亲身使用过的云服务器平台给大家,有需要小伙伴可以自行查看:

1.阿里云:https://域名/?source=域名3457&userCode=mszy7nm5

2.腾讯云:https://域名/jgwhoTBS

标签:编程
湘ICP备14001474号-3  投诉建议:234161800@qq.com   部分内容来源于网络,如有侵权,请联系删除。