如何通过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