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. Python_对excel表格读写-openpyxl、xlrd&xlwt

    openpyxl 和 xlrd&xlwt 都能对excel进行读写,但是它们读写的格式不同,openpyxl 只能读写 xlsx格式的excel,xlrd&xlwt 只能读写 xls格 ...

  2. Centos更换阿里云源

    1.备份 mv /etc/yum.repos.d/CentOS-Base.repo /etc/yum.repos.d/CentOS-Base.repo.backup 2.下载新的CentOS-Base ...

  3. vue2.0点击其他任何地方隐藏dom

    methods: { handleBodyClick(){ if (绿色区域出来了,要判断点击其他地方就要关闭,这样可以避免绿色区域已经关闭还在操作) { let _con = $(目标区域) if ...

  4. BitMap算法知识笔记以及在大数据方向的使用

    概述 所谓的BitMap算法就是位图算法,简单说就是用一个bit位来标记某个元素所对应的value,而key即是该元素,由于BitMap使用了bit位来存储数据,因此可以大大节省存储空间,这是很常用的 ...

  5. 【Java】重载与重写

    重载与重写 一.重载 定义 在同一个类中,允许存在一个以上的同名方法,只要它们的参数个数或者参数类型不同即可.同一个类.相同方法名,参数列表不同:参数个数不同,参数类型不同. Java的重载是可以包括 ...

  6. RocketMQ 介绍与安装

    目录 RocketMQ 介绍 MQ 介绍 MQ 作用 MQ 缺点 MQ 常见产品 RocketMQ 简介 RocketMQ 架构 RocketMQ 安装 RocketMQ 介绍 MQ 介绍 定义: M ...

  7. Exception in thread “main“ java.net.ConnectException: Call From

    问题描述:#报错语句:FileSystem fs = FileSystem.get(new URI("hdfs://hadoop000:8020"),new Configurati ...

  8. IExposedPropertyTable与ExposedReference的使用

    近期回顾Dead of the Book demo时,看见了它们的运用.感觉主要是用于ScriptableObject资源和Scene资源解耦: 并将这类做法规范化. 做一个小测试,IExposedP ...

  9. uniapp微信小程序保存base64格式图片的方法

    uniapp保存base64格式图片的方法首先第一要先获取用户的权限 saveAlbum(){//获取权限保存相册 uni.getSetting({//获取用户的当前设置 success:(res)= ...

  10. 巧用 Base62 解决字段太短的问题

    最近银联一纸 259 号改造通知,所有支付机构开始改造支付交易,上传终端信息. 不知道其他支付机构的小伙伴针对这次改造是否开始了? 由于这次银联给的时间非常少,我们这边改动涉及到相关上游一起改造,所以 ...