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('https://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: 'https://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.阿里云:https://www.aliyun.com/?source=5176.11533457&userCode=mszy7nm5

2.腾讯云:https://curl.qcloud.com/jgwhoTBS

如何通过opensea-js获取OpenSea的数据的更多相关文章

  1. js获取地址栏参数数据

    // 获取指定地址栏数据//name:参数名 function GetQueryString(name, url) { var reg = new RegExp("(^|&)&quo ...

  2. js获取表单数据

    var modelObj = {}; var modelFieldsArray = $('#AddMusicCategory').serializeArray(); $.each(modelField ...

  3. 学习笔记-vue.js获取file文件数据

    在vue中file不能像其他input一样使用 v-model 双向数据绑定,因为文件选择是只读,只能用onchange监控值得变化. 所有需要使用v-on:change去监控. 例1: <in ...

  4. 《项目经验》--通过js获取前台数据向一般处理程序传递Json数据,并解析Json数据,将前台传来的Json数据写入数据库表中

      先看一下我要实现的功能界面:   这个界面的功能在图中已有展现,课程分配(教师教授哪门课程)在之前的页面中已做好.这个页面主要实现的是授课,即给老师教授的课程分配学生.此页面实现功能的步骤已在页面 ...

  5. 通过js获取前台数据向一般处理程序传递Json数据,并解析Json数据,将前台传来的Json数据写入数据库表中

    摘自:http://blog.csdn.net/mazhaojuan/article/details/8592015 通过js获取前台数据向一般处理程序传递Json数据,并解析Json数据,将前台传来 ...

  6. js获取div中的文本框数据

    通过div得到div里的所有数据 大神的世界无需解释,当然不是说我,当我看到这些代码的时候我惊呆了! 这是一个工具方法js: js: /* * 获取指定对象下的所有input.textarea值 * ...

  7. js获取当前页面的URL并且截取?之后的数据,返回json

    js获取当前页面的URL并且截取'?'之后的数据,返回json格式的数据 最近想要把学到的东西整理一下,以后方便查找,也是一种自我累积,如果有错误或者更好的,欢迎提出! 这篇文档主要是写关于获取页面的 ...

  8. js前端对后台数据的获取,如果是汉字则需要添上引号

    js前端对后台数据的获取,如果是汉字则需要添上引号

  9. html中通过js获取接口JSON格式数据解析以及跨域问题

    前言:本人自学前端开发,一直想研究下js获取接口数据在html的实现,顺利地找到了获取数据的方法,但是有部分接口在调用中出现无法展示数据.经查,发现时跨域的问题,花费了一通时间,随笔记录下过程,以方便 ...

随机推荐

  1. Selenium_获取界面handle、title和url(7)

    from selenium import webdriver driver = webdriver.Chrome() driver.maximize_window() driver.get(" ...

  2. Flask_路由(二)

    一.路由规则设置说明 flask框架使用route()装饰器配置路由. from flask import Flask app = Flask(__name__) @app.route("/ ...

  3. centos7 安装locate

    使用locate my.cnf命令可以列出所有的my.cnf文件 yum  -y install mlocate 原因是安装完后没有更新库 更新库:updatedb

  4. vim - 显示不可见字符(:set list)

    默认情况下,vim是不会显示space,tabs,newlines,trailing space,wrapped lines等不可见字符的.我们可以使用以下命令打开list选项,来显示非可见字符: : ...

  5. 两张Number()函数图和Boolean()函数图

  6. 若依(ruoyi)代码生成树表结构的那些坑

    若依(RuoYI)代码生成树表结构的那些坑 相信许多做后端开发的同学,一定用过若依这款框架,这款框架易上手,适合用来做后台管理系统,但是其中也存在一些坑,稍不注意就会中招(大佬可以忽略...) 今天, ...

  7. Rancher Fleet使用教程

    官方文档: https://fleet.rancher.io/ https://github.com/rancher/fleet 博客截止日期为:20201204 当前官网版本为v0.3.0,但在实践 ...

  8. C# 获取DPI例子

    public static float GetDpiX() { System.Windows.Forms.Panel p = new System.Windows.Forms.Panel(); Sys ...

  9. VictoriaMetrics:使用vmctl来实现vm-storage向victoria-metrics-prod(单机版)迁移数据

    前一篇提到了,vm-storage的备份数据,无法被victoria-metrics-prod(单机版)读取. 继续翻文档发现vmctl可以实现这个效果: 1.启动vm-restore恢复数据 vmr ...

  10. 【一个idea】YesSql,一种在经典nosql数据库redis上实现SQL引擎的方案(我就要开历史的倒车)

    公众号链接 最高级的红酒,一定要掺上雪碧才好喝. 基于这样的品味,我设计出了一套在经典nosql数据库redis上实现SQL引擎的方法.既然redis号称nosql,而我偏要把SQL加到redis上, ...