@imtbl/imx-sdk
v3.8.2
Published
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/)
Downloads
8,905
Keywords
Readme
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
Note: Currently our SDK is only officially compatible with Node v18.
CHANGELOG
Index
- ImmutableX Javascript SDK
- CHANGELOG
- Index
- 3.8.2
- 3.8.1
- 3.8.0
- 3.7.1
- 3.7.0
- 3.6.0
- 3.5.0
- 3.4.0
- 3.3.0
- 3.2.0
- 3.1.3
- 3.1.2
- 3.1.1
- 3.1.0
- 3.0.0
- 2.1.1
- 2.1.0
- 2.0.3
- 2.0.2
- 2.0.1
- 2.0.0
- 1.43.7
- 1.43.6
- 1.43.5
- 1.43.4
- 1.43.3
- 1.43.2
- 1.43.1
- 1.43.0
- 1.42.1
- 1.42.0
- 1.41.3
- 1.41.2
- 1.41.1
- 1.41.0
- 1.40.1
- 1.40.0
- 1.39.1
- 1.39.0
- 1.38.6
- 1.38.5
- 1.38.4
- 1.38.3
- 1.38.2
- 1.38.1
- 1.38.0
- 1.37.6
- 1.37.5
- 1.37.4
- 1.37.3
- 1.37.2
- 1.37.1
- 1.37.0
- 1.36.1
- 1.36.0
- 1.35.7
- 1.35.6
- 1.35.5
- 1.35.4
- 1.35.3
- 1.35.2
- 1.35.1
- 1.35.0
- 1.34.0
- 1.33.0
- 1.32.2
- 1.32.1
- 1.32.0
- 1.31.0
- 1.30.0
- 1.29.0
- 1.28.0
- 1.27.0
- 1.26.1
- 1.26.0
- 1.25.1
- 1.25.0
- 1.24.1
- 1.24.0
- 1.23.0
- 1.22.3
- 1.22.1
- 1.22.0
- 1.21.4
- 1.21.3
- 1.21.2
- 1.21.1
- 1.21.0
- 1.20.4
- 1.20.3
- 1.20.2
- 1.20.1
- 1.20.0
- 1.19.0
- 1.18.0
- 1.17.0
- 1.16.0
- 1.15.0
- 1.14.1
- 1.14.0
- 1.13.0
- 1.12.0
- 1.11.1
- 1.11.0
- 1.10.2
- 1.10.1
- 1.10.0
- 1.9.1
- 1.9.0
- 1.8.3
- 1.8.2
- 1.8.0
- 1.7.0
- 1.6.1
- 1.6.0
- 1.5.0
- 1.4.0
- 1.3.53
- 1.3.52
- 1.3.51
- 1.3.50
- 1.3.49
- 1.3.48
- 1.3.47
- 1.3.46
- 1.3.45
- 1.3.44
- 1.3.43
- 1.3.42
- 1.3.41
- 1.3.40
- 1.3.39
- 1.3.38
- 1.3.37
- 1.3.36
- 1.3.35
- 1.3.34
- 1.3.33
- 1.3.32
- 1.3.31
- 1.3.30
- 1.3.29
- 1.3.28
- 1.3.27
- 1.3.26
- 1.3.25
- 1.3.24
- 1.3.23
- 1.3.22
- 1.3.21
- 1.3.20
- 1.3.19
- 1.3.18
- 1.3.17
- 1.3.16
- 1.3.15
- 1.3.14
- 1.3.13
- 1.3.12
- 1.3.11
- 1.3.10
- 1.3.9
- 1.3.8
- 1.3.7
- 1.3.6
- 1.3.5
- 1.3.4
- 1.3.3
- 1.3.2
- 1.3.1
- 1.3.0
- 1.2.8
- 1.2.7
- 1.2.6
- 1.2.5
- 1.2.4
- 1.1.6
- 1.1.6
- 1.1.5
- 1.1.4
- 1.1.3
- 1.1.2
- 1.1.1
- 1.1.0
- 1.0.2
- 1.0.1
- 1.0.0
- Index
- 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 usecontroller.getAssetId
when StarkEx contract version >= 4.0.
3.5.0
- Add
completeWithdrawalV2F
. - Update
completeWithdrawalF
to usecompleteWithdrawalV2F
when StarkEx contract version >= 4.0. - Update
isRegisteredStarkF
to be compatible with change in behavior ofgetEthAddress
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 include0
.
3.1.1
- Fix bug where
window.ethereum
has multipleproviders
, but nosetSelectedProvider
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 invokingImmutableXClient.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 nowuser_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
andnfttrade.com
1.37.3
- Updated
ImmutableOrderStatus
typeinvalid
-> renamed toinactive
to match API responses - Updated
ImmutableFeeType
type to includemaker
andtaker
1.37.2
- Updated
ImmutableOrderStatus
type to includeinvalid
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
inWidgetParams
- Add
onramp
andofframp
inImmutableExchangeType
- Add
provider
inNFTCheckoutPrimaryParamsCodec
1.35.2
- Exclude
sellerWalletAddress
fromNFTCheckoutSecondaryParamsCodec
1.35.1
- Exclude
seller_wallet_address
fromnftCheckoutPrimary
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
andcreateExchangeV3
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
andImmutableERC20Token
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 cancelOfferlink.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
andupdated_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 methodsetup()
, this value will be set only when connecting through Magic.
1.18.0
- Updated
ethBalanceV2
anderc20BalanceV2
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
anderc20BalanceV2
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
to5.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
andcreateExchangeTransfer
methods - Experimental Add
amount
parameter tocryptoToFiat
- 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 appliedcalculateFeeBreakdownFromFullPrice
: 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 endpointscreateExchangeV1
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
andgetExchange
now use v2 endpointsgetExchangesV1
andgetExchangeV1
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
andethNetwork
tolink.setup()
response. - Exporting
LocalStorageKeys
enum with the keys used internally.
1.3.6
- The
getCollection
andgetCollections
methods were updated to have new fieldmetadata_url
in the response incorrectly. This fixes the error by changing it tometadata_api_url
. - Adds
getMetadataSchema
method - Update request/response objects for collection and metadata APIs
1.3.5
- The
getCollection
andgetCollections
methods returns a new fieldmetadata_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
andcollections
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 containswithdrawalId
link.completeWithdrawal
now containstransactionId
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