如何通過opensea-js獲取OpenSea的數據
- 2022 年 2 月 14 日
- 筆記
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 Web3.providers.HttpProvider('//mainnet.infura.io')
const seaport = new OpenSeaPort(provider, {
networkName: Network.Main,
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: '//mainnet.infura.io'
})
const seaport = new OpenSeaPort(provider, {
networkName: Network.Main,
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 seaport.api.getOrders({
asset_contract_address: tokenAddress,
token_id: token_id,
side: OrderSid.Sell
})
獲取到價格訂單數據後,就可以進行購買
const accountAddress = "0x..." // The buyer's wallet address, also the taker
const transactionHash = await this.props.seaport.fulfillOrder({
order,
accountAddress
})
四.其餘方法
opensea-js還包含其它的方法,具體的這裡不在進行描述,有需要的可以點擊鏈接轉到官方文檔看詳細說明,這裡不再贅述了。
其它
作為碼農,伺服器可以說跟我們簡直不可分割啊,推薦幾個自己親身使用過的雲伺服器平台給大家,有需要小夥伴可以自行查看:
1.阿里云://www.aliyun.com/?source=5176.11533457&userCode=mszy7nm5
2.騰訊云://curl.qcloud.com/jgwhoTBS