npm package: @imtbl/imx-sdk
Description: This repository contains everything partners need to launch the link, and make transactions on IMX. For all documentation needs, please go to [docs.x.immutable.com](https://docs.x.immutable.com/)
Author: @imtbl/IE-Squad
Latest version: 3.8.2

# ImmutableX Javascript SDK

This repository contains everything partners need to launch the link, and make
transactions on IMX. For all documentation needs, please go to
[docs.x.immutable.com](https://docs.x.immutable.com/)

Note: Currently our SDK is only officially compatible with Node v18.

# CHANGELOG

## Index

- [ImmutableX Javascript SDK](#immutablex-javascript-sdk)
- [CHANGELOG](#changelog)
  - [Index](#index)
    - [3.8.2](#382)
    - [3.8.1](#381)
    - [3.8.0](#380)
    - [3.7.1](#371)
    - [3.7.0](#370)
    - [3.6.0](#360)
    - [3.5.0](#350)
    - [3.4.0](#340)
    - [3.3.0](#330)
    - [3.2.0](#320)
    - [3.1.3](#313)
    - [3.1.2](#312)
    - [3.1.1](#311)
    - [3.1.0](#310)
    - [3.0.0](#300)
    - [2.1.1](#211)
    - [2.1.0](#210)
    - [2.0.3](#203)
    - [2.0.2](#202)
    - [2.0.1](#201)
    - [2.0.0](#200)
    - [1.43.7](#1437)
    - [1.43.6](#1436)
    - [1.43.5](#1435)
    - [1.43.4](#1434)
    - [1.43.3](#1433)
    - [1.43.2](#1432)
    - [1.43.1](#1431)
    - [1.43.0](#1430)
    - [1.42.1](#1421)
    - [1.42.0](#1420)
    - [1.41.3](#1413)
    - [1.41.2](#1412)
    - [1.41.1](#1411)
    - [1.41.0](#1410)
    - [1.40.1](#1401)
    - [1.40.0](#1400)
    - [1.39.1](#1391)
    - [1.39.0](#1390)
    - [1.38.6](#1386)
    - [1.38.5](#1385)
    - [1.38.4](#1384)
    - [1.38.3](#1383)
    - [1.38.2](#1382)
    - [1.38.1](#1381)
    - [1.38.0](#1380)
    - [1.37.6](#1376)
    - [1.37.5](#1375)
    - [1.37.4](#1374)
    - [1.37.3](#1373)
    - [1.37.2](#1372)
    - [1.37.1](#1371)
    - [1.37.0](#1370)
    - [1.36.1](#1361)
    - [1.36.0](#1360)
    - [1.35.7](#1357)
    - [1.35.6](#1356)
    - [1.35.5](#1355)
    - [1.35.4](#1354)
    - [1.35.3](#1353)
    - [1.35.2](#1352)
    - [1.35.1](#1351)
    - [1.35.0](#1350)
    - [1.34.0](#1340)
    - [1.33.0](#1330)
    - [1.32.2](#1322)
    - [1.32.1](#1321)
    - [1.32.0](#1320)
    - [1.31.0](#1310)
    - [1.30.0](#1300)
    - [1.29.0](#1290)
    - [1.28.0](#1280)
    - [1.27.0](#1270)
    - [1.26.1](#1261)
    - [1.26.0](#1260)
    - [1.25.1](#1251)
    - [1.25.0](#1250)
    - [1.24.1](#1241)
    - [1.24.0](#1240)
    - [1.23.0](#1230)
    - [1.22.3](#1223)
    - [1.22.1](#1221)
    - [1.22.0](#1220)
    - [1.21.4](#1214)
    - [1.21.3](#1213)
    - [1.21.2](#1212)
    - [1.21.1](#1211)
    - [1.21.0](#1210)
    - [1.20.4](#1204)
    - [1.20.3](#1203)
    - [1.20.2](#1202)
    - [1.20.1](#1201)
    - [1.20.0](#1200)
    - [1.19.0](#1190)
    - [1.18.0](#1180)
    - [1.17.0](#1170)
    - [1.16.0](#1160)
    - [1.15.0](#1150)
    - [1.14.1](#1141)
    - [1.14.0](#1140)
    - [1.13.0](#1130)
    - [1.12.0](#1120)
    - [1.11.1](#1111)
    - [1.11.0](#1110)
    - [1.10.2](#1102)
    - [1.10.1](#1101)
    - [1.10.0](#1100)
    - [1.9.1](#191)
    - [1.9.0](#190)
    - [1.8.3](#183)
    - [1.8.2](#182)
    - [1.8.0](#180)
    - [1.7.0](#170)
    - [1.6.1](#161)
    - [1.6.0](#160)
    - [1.5.0](#150)
    - [1.4.0](#140)
    - [1.3.53](#1353-1)
    - [1.3.52](#1352-1)
    - [1.3.51](#1351-1)
    - [1.3.50](#1350-1)
    - [1.3.49](#1349)
    - [1.3.48](#1348)
    - [1.3.47](#1347)
    - [1.3.46](#1346)
    - [1.3.45](#1345)
    - [1.3.44](#1344)
    - [1.3.43](#1343)
    - [1.3.42](#1342)
    - [1.3.41](#1341)
    - [1.3.40](#1340-1)
    - [1.3.39](#1339)
    - [1.3.38](#1338)
    - [1.3.37](#1337)
    - [1.3.36](#1336)
    - [1.3.35](#1335)
    - [1.3.34](#1334)
    - [1.3.33](#1333)
    - [1.3.32](#1332)
    - [1.3.31](#1331)
    - [1.3.30](#1330-1)
    - [1.3.29](#1329)
    - [1.3.28](#1328)
    - [1.3.27](#1327)
    - [1.3.26](#1326)
    - [1.3.25](#1325)
    - [1.3.24](#1324)
    - [1.3.23](#1323)
    - [1.3.22](#1322-1)
    - [1.3.21](#1321-1)
    - [1.3.20](#1320-1)
    - [1.3.19](#1319)
    - [1.3.18](#1318)
    - [1.3.17](#1317)
    - [1.3.16](#1316)
    - [1.3.15](#1315)
    - [1.3.14](#1314)
    - [1.3.13](#1313)
    - [1.3.12](#1312)
    - [1.3.11](#1311)
    - [1.3.10](#1310-1)
    - [1.3.9](#139)
    - [1.3.8](#138)
    - [1.3.7](#137)
    - [1.3.6](#136)
    - [1.3.5](#135)
    - [1.3.4](#134)
    - [1.3.3](#133)
    - [1.3.2](#132)
    - [1.3.1](#131)
    - [1.3.0](#130)
    - [1.2.8](#128)
    - [1.2.7](#127)
    - [1.2.6](#126)
    - [1.2.5](#125)
    - [1.2.4](#124)
    - [1.1.6](#116)
    - [1.1.6](#116-1)
    - [1.1.5](#115)
    - [1.1.4](#114)
    - [1.1.3](#113)
    - [1.1.2](#112)
    - [1.1.1](#111)
    - [1.1.0](#110)
    - [1.0.2](#102)
    - [1.0.1](#101)
    - [1.0.0](#100)
- [Maintainers](#maintainers)

### 3.8.2

- Fix ERC20 withdrawals by updating retrieval of asset type from encoding API and removing decimal from payload.

### 3.8.1

- Fix NFT withdrawals by updating generation of asset ID to use encoding API.

### 3.8.0

- Add `getStarkExContractMajorVersion` to return the StarkEx contract version number.

### 3.7.1

- Update withdrawal tests.
- Simplify withdrawal V2 token logic.
- Fix use of ownerKey in withdrawal V2.

### 3.7.0

- Add support for ERC721 token type to complete withdrawal and register and complete withdrawal flows when StarkEx contract version >= 4.0.

### 3.6.0

- Add `registerAndCompleteWithdrawal` to allow an unregistered user to complete withdrawal using updated exchange contract.
- Add `withdrawalAll` to call updated exchange contract.
- Update `getWithdrawalBalanceV4` to use `controller.getAssetId` when StarkEx contract version >= 4.0.

### 3.5.0

- Add `completeWithdrawalV2F`.
- Update `completeWithdrawalF` to use `completeWithdrawalV2F` when StarkEx contract version >= 4.0.
- Update `isRegisteredStarkF` to be compatible with change in behavior of `getEthAddress` StarkEx contract function in v4.

### 3.4.0

- Add StarkEx V4.0 contract bindings.
- Add registerEthAddress to enable use of function on StarkEx V4.0.

### 3.3.0

- Update prepare withdrawal flow to fetch StarkEx contract version and execute logic appropriate for the version.

### 3.2.0

- Update deposit flow to fetch StarkEx contract version and execute the deposit flow appropriate for the version.

### 3.1.3

- Add `getStarkExContractVersion` to fetch the StarkEx contract version.

### 3.1.2

- Extend order `quantity_with_fees` type range to include `0`.

### 3.1.1

- Fix bug where `window.ethereum` has multiple `providers`, but no `setSelectedProvider` function.

### 3.1.0

- Bump Ethers version to `^5.7.1` to support Sepolia.

### 3.0.0

- Remove functions that interface with v1 orders & trades API endpoints as v1
  version of that API has been sunsetted.
- Removed orderAndTradeAPIVersion parameter from the Link class constructor,
  this is no longer needed as order and trade API version 3 will be the only
  available default.

### 2.1.1

- Added sunset date for v1 order book functions

### 2.1.0

- Add New Ganymede as game wallet provider preference type

### 2.0.3

- Added support to generate backwards compatible stark key using
  `getKeyPairFromPath` for accounts created with versions before 1.43.5 and also
  imx-core-sdk

### 2.0.2

- fix readme.md

### 2.0.1

- remove `wallet_connect` provider preference to clean up after removal
- updates to readme

### 2.0.0

- Deprecate all `@walletconnect/*` deps
- Refactor build tooling to support Node 18 (upgrades to Rollup 3.x)
- Update `magic-sdk` to support Node 18

For more information on migration, please see:
https://docs.x.immutable.com/docs/x/node16-migration/

### 1.43.7

- Fixed GrindKey logic to correctly generate deterministic stark key.
- Provided backwards compatible way to generate starkkey after this GrindKey
  Fix.

### 1.43.6

- Deprecate v1 versions of getTrade and getTrades functions.
- Add v3 versions of getTrade and getTrades functions.

### 1.43.5

- Fix readme index

### 1.43.4

- Fix an issue when attempting a Transfer with a Link SDK created with a value
  for the orderAndTradeAPIVersion parameter.

### 1.43.3

- Fix createOrderRequestV3F function implementation.
- Add unit tests for v3 order & trade functions.

### 1.43.2

- Add SDK dependency tracking.
- Update critical dependencies.

### 1.43.1

- Add Planet quest marketplace domains to experimental feature whitelist.
- Remove experimental tag from bids/offers functions.

### 1.43.0

- Add optional parameter in the Link constructor function to allow targeting v3
  endpoints for order and trade flows.

### 1.42.1

- Revert changes from 1.42.0. Problem with transpiling Web3Modal package

### 1.42.0

- Add support for WalletConnect V2.
- Added `wallet_connect_v2` as a ProviderPreference

### 1.41.3

- Add token type, token address, decimals, and symbol to Maker Taker Fees type
- Add updated_timestamp to Get Order V3 result

### 1.41.2

- Fix changelog

### 1.41.1

- Add deprecation headers and warning logs for deprecated functions

### 1.41.0

- Add support for the optional `splitFees` parameter when invoking
  `ImmutableXClient.createOrderV3`

### 1.40.1

- Removed experimental flags on bids/offers endpoints
- Introduced maker_fees and taker_fees fields to the getOrderV3 and getOrdersV3
  endpoints

### 1.40.0

- Add `imx-link-info` events for disptaching wallet change events on the buy
  route
- With game wallets and their specific collections, the `link.buy()` route may
  suggest that users connect with a specific game wallet before purchasing, this
  will dispatch an event so that marketplaces are kept in sync with the Link
  connected wallet provider

### 1.39.1

- Fix broken import in gameWalletProvider

### 1.39.0

- Add support for Game Wallet Auto Detect feature in Link
- Add Cross the Ages and KYO as game wallet provider preference types

### 1.38.6

- Add support for taker fees to signature generation process in
  CreateOrderWithFeeV3

### 1.38.5

- Add support for taker fees to CreateTradeV3

### 1.38.4

- Add support for taker fees to Link AcceptOffer parameters

### 1.38.3

- Add Planet quest URLs to experimental feature whitelist

### 1.38.2

- Bugfix for dangling event handlers

### 1.38.1

- Rename gameIcon to gameIconUrl in GameWalletProviderOptions type

### 1.38.0

- Add game wallet provider setup to `getEthereumProvider`
- Allow for providerPreference to be extended for game wallet providers

### 1.37.6

- Update parameter name for primary and secondary sales: `wallet_address` is now
  `user_wallet_address`

### 1.37.5

- Update typo in whitelisted domain `nfttrade.com` -> `nftrade.com`

### 1.37.4

- Updated whitelisted domains to include `tokentrove.com`, `okx.com` and
  `nfttrade.com`

### 1.37.3

- Updated `ImmutableOrderStatus` type `invalid` -> renamed to `inactive` to
  match API responses
- Updated `ImmutableFeeType` type to include `maker` and `taker`

### 1.37.2

- Updated `ImmutableOrderStatus` type to include `invalid`

### 1.37.1

- Updated `ImmutableXClient` to enhance internal error handlers

### 1.37.0

- Add fees parameter to `link.makeOffer` function

### 1.36.1

- Update supported exchange types for `getCurrenciesV3()`

### 1.36.0

- Add experimental `getCurrenciesV3()`

### 1.35.7

- Remove experimental flag from nftCheckout and createExchangeV3 methods

### 1.35.6

- Fix return value for `getSecondaryTransactionsHistory()`

### 1.35.5

- Added method `isMobile()`

### 1.35.4

- Add experimental method `getSecondaryTransactionsHistory()`

### 1.35.3

- Update `supported_currencies` in `WidgetParams`
- Add `onramp` and `offramp` in `ImmutableExchangeType`
- Add `provider` in `NFTCheckoutPrimaryParamsCodec`

### 1.35.2

- Exclude `sellerWalletAddress` from `NFTCheckoutSecondaryParamsCodec`

### 1.35.1

- Exclude `seller_wallet_address` from `nftCheckoutPrimary`

### 1.35.0

- Added third-party cookie blocking policy check when running Link methods on
  the iFrame mode to return error `1004` if third-party cookies blocked
- Updated Link methods to return defined errors when rejecting asynchrounous
  operations
- Updated Link methods to return error `1003` if the user closes Link
- Updated Link methods to return error `1005` if the domain is not authorized to
  use the iFrame mode

### 1.34.0

- Add experimental method for creating a buy order `createOrderV3`
- Add experimental method for accepting a buy order `createTradeV3`
- Add experimental method for cancelling a buy order `cancelOrderV3`

### 1.33.0

- Add experimental `nftCheckoutPrimary`, `nftCheckoutSecondary`,
  `getNFTSecondaryTransactionStatus` and `createExchangeV3` methods

### 1.32.2

- Add id param to exchange signable-transfer-details

### 1.32.1

- Fixing event listener origin path

### 1.32.0

- Revert changes from 1.31.0

### 1.31.0

- Updating `ImmutableETHToken` and `ImmutableERC20Token` types to include
  quantity_with_fees property

### 1.30.0

- Add experimental method for acceptOffer `link.acceptOffer`

### 1.29.0

- Update Ropsten config to Sandbox/Goerli.

### 1.28.0

- Add experimental methods for makeOffer `link.makeOffer` and cancelOffer
  `link.cancelOffer`

### 1.27.0

- Add experimental `getPrimaryTransactions` method

### 1.26.1

- Update `getEthereumProvider` method to detect multiple wallet extensions
  properly

### 1.26.0

- Remove syncState method

### 1.25.1

- Update PrimaryTransactionStatus to support `waitingAuthorization` transaction
  status

### 1.25.0

- Add experimental createNFTPrimaryTransaction and
  getNFTPrimaryTransactionStatus methods to create/get primary sale transaction

### 1.24.1

- Update default `webUrl` in Link to https://link.ropsten.x.immutable.com

### 1.24.0

- Update ImxClient getOrders to support `buy_token_name` parameter

### 1.23.0

- Update ImxClient getOrders to support `updated_min_timestamp` and
  `updated_max_timestamp` parameters

### 1.22.3

- Increment engine version to v16

### 1.22.1

- Add MultipleExtensionsError when default ethereum was rewritten

### 1.22.0

- Add Gamestop provider preference

### 1.21.4

- Fix header key and value for createTradeWithRiskAssessment method to trigger
  risk assessment

### 1.21.3

- Remove experimental flag for cryptoToFiat function

### 1.21.2

- Update FiatToCrypto and CryptoToFiat result codecs

### 1.21.1

- Add experimental duplicated create trade method with x-wallet-sdk-version
  header

### 1.21.0

- Receiving Magic configuration as params of the getProvider function instead of
  reading it from the localStorage.

### 1.20.4

- Update user registration request by adding email field

### 1.20.3

- Add experimental verifyOTP method
- Add experimental getAwaitingOrderStatus method

### 1.20.2

- Add eth headers for exchange transfer endpoints

### 1.20.1

- Fix the vulnerabilitie by bumping the dependency version

### 1.20.0

- Add custom WalletConnect QR code modal to improve UX

### 1.19.0

- Add new optional attribute `email` to the response of the method `setup()`,
  this value will be set only when connecting through Magic.

### 1.18.0

- Updated `ethBalanceV2` and `erc20BalanceV2` to stop repetitively fetching the
  balance

### 1.17.0

- Add L1 message signing to transactions

### 1.16.0

- Add a new method to get public encryption key getPublicKey()

### 1.15.0

- Add `ethBalanceV2` and `erc20BalanceV2` to support read balances via a
  provider without connect to the wallet

### 1.14.1

- Remove experimental flag for sign()

### 1.14.0

- Update dependency: `etherjs` to `5.6.0`

### 1.13.0

- Add a new experimental method sign()

### 1.12.0

- Add new walletconnect provider
- Updated `getProvider` to accept optional provider options

### 1.11.1

- Add crypto-to-fiat awareness on `getExchanges`

### 1.11.0

- Removed method `getExchangesV1F`
- Removed method `getExchangesV1`
- Removed method `createExchangeV1`
- Removed method `getExchangeV1`
- Removed param version on method `getMoonpaySignature`

### 1.10.2

- Fix Exchange transfer to use V1 Params

### 1.10.1

- Updated `getCurrencies` to return currencies list by exchange type

### 1.10.0

- **Experimental** Added `syncState` method. link.syncState() will: 1 - add a
  persistant invisible iframe to the dom, and 2 - resolve with an observable,
  which will stream events as they come in from link, whenever the user changes
  their wallet, network or disconnects etc.

### 1.9.1

- `getExchange` returns optional provider wallet address

### 1.9.0

- **Experimental** Added `getCurrencies` method

### 1.8.3

- `validateCurrencyAmount` returns null or number for min_amount and max_amount

### 1.8.2

- **Experimental** Removed `validateCurrencyAmount` method
- **Experimental** Added `getCurrencyLimits` method

### 1.8.0

- Added calculation function `calculateFeeBreakdownFromPriceAmounts`
- Updated `calculateFeeBreakdownFromBasePrice` to allow for protocol fees to be
  supplied
- Updated `calculateFeeBreakdownFromFullPrice` to allow for protocol fees to be
  supplied

### 1.7.0

- **Experimental** Added `signableTransferDetails` and `createExchangeTransfer`
  methods
- **Experimental** Add `amount` parameter to `cryptoToFiat`
- **Experimental** Add `validateCurrencyAmount` method

### 1.6.1

- Ease `CryptoCurrencies` validation to allow string. Link will validate it

### 1.6.0

- Added `WALLET_CONNECT` in ProviderPreference enum

### 1.5.0

- Added calculation functions for order price and fee breakdowns
- `calculateFeeBreakdownFromBasePrice`: specify the base price and all fees to
  be applied
- `calculateFeeBreakdownFromFullPrice`: specify the price inclusive of fees and
  all fees applied to it

### 1.4.0

- **Experimental** Added `cryptoToFiat` method

### 1.3.53

- Bugfix for missing ERC20 type

### 1.3.52

- Enable batch transfer for NFTs `batchNftTransfer`

### 1.3.51

- `listBalances` fix bug to support multiple symbols

### 1.3.50

- `createExchange` now use v2 endpoints
- `createExchangeV1` support the old functionality

### 1.3.49

- Removes experimental warnings from methods involving maker/taker fees

### 1.3.48

- Fix fee floating point precision bug for createOrder

### 1.3.47

- `getExchanges` and `getExchange` now use v2 endpoints
- `getExchangesV1` and `getExchangeV1` support the old functionality

### 1.3.46

- **Experimental** Update types for link batch transfer

### 1.3.45

- Add support for exchange v2 endpoints

### 1.3.44

- Update request type for method `getMoonpaySignature`

### 1.3.43

- **Experimental** Add more types for transfer v2 endpoint

### 1.3.42

- Updated response type for ImmutableXClient method `cancelOrder`

### 1.3.41

- **Experimental** Allow specifying fees to Link.cancel

### 1.3.40

- **Experimental** Add transfer v2 endpoint support

### 1.3.39

- Bugfix: fix getTrade() types
- Update request and response types for experimental method `getProjects`
- Update type for `ProjectResult`

### 1.3.38

- Updated fiatToCrypto() to accept cryptoCurrencies

### 1.3.37

- **Experimental** Allow specifying fees on getAssets()

### 1.3.36

- Added pagination for the exchanges list endpoint

### 1.3.35

- Bugfix: restore the types and funcitonality of `sell_token_name` inside of
  getOrdersF()

### 1.3.34

- Enable order expiration date override from Link

### 1.3.33

- Remove **Experimental** flag from fiatToCrypto method

### 1.3.32

- Allow user to override the order expiration date

### 1.3.31

- Renamed the exchange() method to fiatToCrypto()

### 1.3.30

- Remove **Experimental** flag from deposit without params or without amount or
  token

### 1.3.29

- **Experimental** Updated experimental maker/taker fees with bindings for Link

### 1.3.28

- Update transfers to allow transfer of more than 50 assets at a time
- Implemented update transfers to allow transfer of more than 50 assets at a
  time, not yet enabled

### 1.3.27

- Refactoring the exchange history
- Adding currency parameter for the exchange

### 1.3.26

- Fix listTokens query param generation for `symbols` filter

### 1.3.25

- **Experimental** Update deposit to allow to send request without amount or
  without any params

### 1.3.24

- Bugfix for detecting wallet extensions

### 1.3.23

- Handle multiple wallet extensions when getting Etherum provider

### 1.3.22

- **Experimental** Updated experimental maker/taker fees feature to allow
  specifying fee percentages with 2 d.p. of precision.

### 1.3.21

- **Experimental** Update fee param name for getOrder and getOrders

### 1.3.20

- **Experimental** Added taker fees to getOrder and getOrders

### 1.3.19

- **Experimental** Added taker fees to createTrade

### 1.3.18

- Retry on throttled requests (HTTP 429) to API.

### 1.3.17

- Remove **Experimental** flag from sell flow.

### 1.3.16

- **Experimental** Added currency information to exchange types

### 1.3.15

- **Experimental** Added functions to retrieve the exchange history by user.

### 1.3.14

- Rename get orders parameter from buy_token_contract to buy_token_address
- **Experimental** Updated the codec types for `exchange` methods.

### 1.3.13

- **Experimental** Updated Magic api key.

### 1.3.12

- Fix for ImmutableXClient; default apiUrl in axios config.

### 1.3.11

- Added optional `apiKey` header to all requests to the IMX public api, for use
  with ratelimiting.

### 1.3.10

### 1.3.9

- **Experimental** Bugfixes for the `exchange` method

### 1.3.8

- Added optional `enableDebug` header to constructor of ImmutableXClient, to
  enable debug logging.

### 1.3.7

- Adding `providerPreference` and `ethNetwork` to `link.setup()` response.
- Exporting `LocalStorageKeys` enum with the keys used internally.

### 1.3.6

- The `getCollection` and `getCollections` methods were updated to have new
  field `metadata_url` in the response incorrectly. This fixes the error by
  changing it to `metadata_api_url`.
- Adds `getMetadataSchema` method
- Update request/response objects for collection and metadata APIs

### 1.3.5

- The `getCollection` and `getCollections` methods returns a new field
  `metadata_url` in the response.
- Specify supported node versions (12 and 14) in package.json engines.s

### 1.3.4

- `ImmutableSellOrderCodec`: update buy_decimals to be an optional and add
  contract_address, status as optional fields.
- `ImmutableBuyOrderCodec`: update sell_decimals to be an optional and add
  contract_address, status as optional fields.

### 1.3.3

- **Experimental** support for `projects` and `collections` functionality.

### 1.3.2

- **Experimental** support to new `exchange` method.

### 1.3.1

- Refactor internal implementation for experimental features.

### 1.3.0

- Added missing type definition for sell param + check location.origin instead
  of referrer
- `SellParamsCodec`: update amount to be an optional and add currencyAddress as
  an optional param as well.

### 1.2.8

- Bugfix on mint v2 response typing

### 1.2.7

- Update mint v2 endpoint's response schema to
  `{token_id, contract_address, tx_id}`

### 1.2.6

Renaming `ProviderPreference` options.

### 1.2.5

- **Experimental** temporary testing mint v2 endpoint with response as a mapping
  of NFTs to tx IDs

### 1.2.4

- **Experimental** support to easy login with Magic when used via Link.

### 1.1.6

- signMessage() function added to Client
- Controller's signVerifyEth() parametrized and renamed

### 1.1.6

- Add signAuthHeader for new Authentication process

### 1.1.5

- Claim routes added

### 1.1.4

- Fix import recovery param for ledger signing

### 1.1.3

- `include_fees` param for POST requests placed in POST body instead of in query
  param

### 1.1.2

- Bug fix on createOrders

### 1.1.1

- Add allowance and approve methods for ERC20 tokens
- Remove uneccessary fields from mintv2

### 1.1.0

Includes royalty fees by default in the following endpoints:

- `link.getOrder`
- `link.getAssets`
- `link.getOrder`
- `link.getAsset`
- `link.createOrder`
- `link.createTrade`

which will include a fee body with fee information (if exists).

### 1.0.2

Updated responses for link methods

- `link.prepareWithdrawal` now contains `withdrawalId`
- `link.completeWithdrawal` now contains `transactionId`

### 1.0.1

SDK JS is now built with node 12 instead of node 14.

### 1.0.0

1.0.0 marks the first public release of @imtbl/imx-sdk. Bundled in this release,
are the following features:

- Transfer functionality has been refactored to support multiple transfers at
  once [imx-docs](https://docs.x.immutable.com/docs/linktransfer)

# Maintainers

- [Docs for Maintainers](./docs/MAINTAINERS.md)
- [How to release](./docs/RELEASE.md)