Skip to content

Releases: ProjectOpenSea/opensea-js

v6.1.0

07 Jul 17:27
b6000c7
Compare
Choose a tag to compare

What's Changed

This minor version primarily adds 4 new NFT endpoints, read the announcement here: New Release - v2 NFT Endpoints

Full Changelog: v6.0.6...v6.1.0

v6.0.6

06 Jul 04:04
876845a
Compare
Choose a tag to compare

What's Changed

The main patch fix was to use the zone returned by the buildOffer endpoint which fixed a bug when creating collection offers.

Full Changelog: v6.0.5...v6.0.6

v6.0.5

08 Jun 14:47
7a65d75
Compare
Choose a tag to compare

Biggest change is a bug fix. BigNumber underflow errors were thrown when passing a fractional number to createBuyOrder or createSellOrder.

What's Changed

Full Changelog: v6.0.4...v6.0.5

v6.0.4

07 Jun 21:55
923218e
Compare
Choose a tag to compare

Fixes Windows installs

What's Changed

Full Changelog: v6.0.3...v6.0.4

v6.0.3

07 Jun 19:18
e523b62
Compare
Choose a tag to compare

What's Changed

Full Changelog: v6.0.2...v6.0.3

v6.0.2

01 Jun 14:21
2332fa4
Compare
Choose a tag to compare

What's Changed

Full Changelog: v6.0.1...v6.0.2

v6.0.1

01 Jun 14:20
3d1cbd1
Compare
Choose a tag to compare

What's Changed

  • make postinstall script nonblocking on error by @ryanio in #1015

v6.0.0

31 May 23:05
e02313f
Compare
Choose a tag to compare

Overview

The SDK contained a lot of legacy code from deprecated dependencies and pre-Seaport contracts. OpenSea audited every dependency, function, and utility in the codebase to delete as much code as possible.

Now, this SDK will be focused on functions and convenience wrappers for 2 use cases:

  1. OpenSea APIs
  2. Seaport interactions specifically for creating OpenSea orders

Provider Consistency

In previous versions, the SDK had a random mix of Web3 and ethers usage. Now, the SDK has created consistency by only using ethers. This makes instantiating an instance of the SDK much simpler. As a read-only example:

import { ethers } from 'ethers'
import { OpenSeaSDK, Network } from 'opensea-js'

// This example provider won't let you make transactions, only read-only calls:
const provider = new ethers.providers.JsonRpcProvider('https://mainnet.infura.io')
const openseaSDK = new OpenSeaSDK(provider, {
  networkName: Network.Main,
  apiKey: YOUR_API_KEY
})

Big Number Consistency

The SDK had a random mix of bignumber.js, BN.js, and ethers.BigNumber with many utility functions to convert between the various types. This system was ripe for hidden, uncaught bugs. Now, the SDK only uses ethers built in BigNumber.

For more information on this type see the Ethers BigNumber documentation.

Naming Changes

Types

  • Network -> Chain
  • WyvernSchemaName -> TokenStandard
  • WyvernNFTAsset -> NFTAsset
  • WyvernFTAsset -> FungibleAsset
  • WyvernAsset -> AssetType
  • WyvernBundle -> Bundle

Functions

  • getAssetBalance -> getBalance

Initial Config

There was a config called networkName which has been renamed to chain

Public Functions Removed

These functions were a mix of broken, deprecated, or rarely used. If anything was removed that was heavily relied upon by the web3 ecosystem, make sure to comment in the discussions for this release. OpenSea is open to adding back functions that the community needs if there is sufficient support for it and no better alternative.

Wyvern Functions

The following functions still existed in the code base from the legacy Wyvern functions and are now removed.

  • _initializeProxy
  • _getProxy
  • _approveAll
  • _getApprovedTokenCount
  • _ownsAssetOnChain
  • revokeAuthenticatedProxyAccess
  • isAuthenticatedProxyRevoked
  • unrevokeAuthenticatedProxyAccess
  • approveFungibleToken
  • unapproveFungibleToken
  • approveSemiOrNonFungibleToken
  • isAssetTransferrable
  • transfer
  • transferAll
  • _correctGasAmount
  • gasIncreaseFactor (property)

Deprecated

The following functions were previously marked as deprecated and are now removed.

  • _createEmailWhitelistEntry
  • api.postAssetWhitelist
  • _computeGasPrice
  • getFungibleTokens
  • gasPriceAddition (property): only used by _computeGasPrice

Wrapped NFTs

Utility functions existed in the SDK for wrapping NFTs into their corresponding WrappedNFT ERC20 tokens, purchasing Wrapped NFTS, and liquidating NFTs. If users still have a need for these types of transactions, they should learn to use the Uniswap API.

  • getQuoteFromUniswap
  • liquidateAssets
  • purchaseAssets
  • unwrapAssets
  • wrapAssets

Utility/Convenience Functions

These methods were superfluous and have been removed.

  • getTokenBalance: This has been replaced by getBalance
  • getCurrentGasPrice: Can directly use ethers provider.getGasPrice()
  • _getBuyFeeParameters: Unused
  • api.put: There are no put methods on the API

Additionally, these methods were wrappers on Seaport and can still be called by using sdkInstance.seaport_v1_5

  • getDomain
  • getDomains
  • getNumberOfDomains
  • setDomain

Renamed Functions and Properties

  • Env var API_KEY renamed to OPENSEA_API_KEY
  • Network enum renamed to Chain
  • apiConfig.networkName renamed to apiConfig.chain

Integration Tests

Integration test coverage has been dramatically improved. As of now, the integration tests include:

  • getAsset
  • getCollection
  • createBuyOrder
  • createSellOrder
  • createCollectionOffer
  • wrapEth
  • unwrapEth

For more information on integration tests, see the README

Dependencies Removed

By removing the following dependencies, the package size was reduced by XX%.

  • axios
  • ethereumjs-abi
  • ethereumjs-util
  • safe-buffer
  • web3
  • wyvern-js
  • ajv
  • lodash
  • bignumber.js
  • fbemitter

There are now only 3 dependencies left! From 15 in opensea-js v5.

Compilation Target & Browser Build

The compilation target has been bumped from es5 to es6 and a browser build is now outputted to lib/bundle.js.

TypeScript Compiler Config

esModuleInterop and allowSyntheticDefaultImports are now disabled by default. See reasoning here: https://www.semver-ts.org/#module-interop

v5.0.3

25 May 16:48
65fdc05
Compare
Choose a tag to compare
  • Includes the src files which will make the package more easily consumed by tools like webpack
  • Collection Verification Status (safelistRequestStatus) when getting a collection
  • Animation URLs added when getting an asset
  • Interface for OpenseaCollectionStats
  • Various Dependency Updates

v5.0.0

03 May 15:26
efc194d
Compare
Choose a tag to compare

This release uses the Seaport 1.5 protocol.

For more information, see our changelog announcement.

What's Changed

Full Changelog: 4.0.22...v5.0.0