- Fixed Tatum Connector issue with process is undefined on the pure browser
- Fixed and refactored some tests
- Replaced Ton method
getTokenMetadata
with workinggetTokenData
- EOS prefix slash missing
- Relax SSRF checks and allow tatum gateway nodes
- Rename delegation methods
- Support for Ton basic api
- Support for zkSync mainnet & testnet
- Support for Ton mainnet & testnet
- Disable auto-discovery of RPC nodes when there is only one node.
- Disable Cardano Rosetta testnet tests
- Support for Casper mainnet
- Support for Electrs & Rostrum testnet
- Support for cosmos additional api
- Fix Kadena rpc double slash
- Support for Electrs calls and Iota testnet, renamed bch rostrum
- Support for Data API on Polygon Amoy
- Support for Avalanche Notifications
- Support for Polygon Amoy
- Polygon Mumbai
- Rostrum server.banner method
- Added support for Iota API calls
- Improved
getBalance
method inaddress
module by introducingtokenTypes
filter along withnative
option.
- Fixed types for
getTransactions
method inaddress
module. - Updated undici dependency.
- Added support for Cosmos API calls
- Added support for Rostrum RPC calls
- Added support for Kadena RPC calls
- Added support for Base and Base Sepolia testnet subscriptions.
- Fixed Solana RPC call for
getFeeForMessage
method. The result is now properly parsed and returns context information with value.
- Added support for Cronos and Cronos testnet subscriptions.
- Added RPC support for the BASE network. Users can now make Base RPC calls using the
Network.BASE
network.
- Added support for simplified way of configuring api key without specifying version.
- Marked old way of configuring api key through object specifying version as
deprecated
. - Fixed some tests, namely those related to
arb-testnet
eth_chainId
RPC EVM method.
- Removed support for the Goerli network.
- Added support for Cronos and Fantom rpc loadbalancer.
- Fixed the
getBlock
method for Doge, addressing an issue with the second boolean parameter.
- Fixed tests. Temporarily disabled
data-api
related tests andeos
tests.
- Added support for Flare, Flare Coston, Flare Coston 2 and Flare Songbird subscriptions.
- Updated
address
module for EVM chains. Users can add parametertokenAddress
togetTransactions
method to filter transactions by token address.
- Updated archive condition for evm rpc calls
- Added support for Solana load balancer based on the method name.
- Added support for Holesky Ethereum testnet for subscriptions.
- Fix import of LoadBalancer to keep it working in browser
- Drop support for faucet claims via SDK
- Added RPC support for the STELLAR_TESTNET network. Users can now make Stellar RPC calls using the
Network.STELLAR_TESTNET
network.
- Assert development environment if
NODE_ENV
is not set
- Use globalThis instead of
process.env
for settingTatumDevelopmentLogger
'sisWelcomeDisabled
flag
- Added logging support
- Updated dependencies
- Fix get strict methods params for STELLAR network.
- Fix optional params for STELLAR network.
- Added RPC support for the STELLAR network. Users can now make Stellar RPC calls using the
Network.STELLAR
network.
- Fix potential memory issues with
LoadBalancer
.
- Added RPC support for the XINFIN network. Users can now make RPC calls to these network using the
Network.XINFIN
network.
- Fixed logic of IPFS upload, now upload passes request using client's version
- Adjust logic redirecting for getBlockByNumber to call normal nodes for latest block
- Improved
LoadBalancer
stability
- Added RPC support for the CARDANO_ROSETTA network. Users can now make RPC calls to these network using the
Network.CARDANO_ROSETTA
network.
- Fixed lb archive fallback
- Fixed Algorand
ApplicationSearchParams
to camelCase.
- Fixed
LoadBalancer
throwing from setTimeout, it should now throw from actual method calls.
- Added RPC support for the ALGORAND network. Users can now make RPC calls to these network using the
Network.ALGORAND_ALGOD
,Network.ALGORAND_ALGOD_TESTNET
,Network.ALGORAND_INDEXER
,Network.ALGORAND_INDEXER_TESTNET
network.
- Tezos methods to support local signing and injection of operations.
- Tezos address balances fixes. Call to
address.getBalance
returns balances of all tokens for a given address. This call accepts only oneaddress
as a parameter, not an array of addresses.
- Naming of the Tezos RPC methods
- Added RPC support for the TEZOS network. Users can now make RPC calls to these network using the
Network.TEZOS
network.
- Fixed usage of
fromBlock
andtoBlock
params for UTXO-based blockchains inAddress.getTransactions
- Configurable extension usage typing
- Fixed LoadBalancer class import which cause to fail import in the browser/codepen
- Added RPC support for the BNB network. Users can now make RPC calls to these network using the
Network.BNB
network.
- Added Beacon chain v1 support for the Ethereum
- Added estimatefee rpc method to the Bitcoin Cash network
- Added IPFS get file data method
- Fixed CONTRACT_ADDRESS_LOG_EVENT data in getAll() Notification method
- Fixed response parsing for calls where the body is not defined e.g. DELETE endpoints
- Added RPC support for the CELO network. Users can now make RPC calls to these network using the
Network.CELO
network.
- Chiliz notification access
- Chiliz notification support
- Make Blockchain Classes type safe
TatumUtils
chainId <->Network
mappings always return usable value or throw error for ease of use.
TatumUtils
added with access to chainId <->Network
mapping
- Loosen types for extension usage to better support optional configs.
- Addition of
getRpc<T>(): T
toITatumSdkContainer
for best RPC support in extensions.
- Added IPFS upload and NFT mint in one action. Metadata will be prepared and uploaded automatically
- Added
walletProvider
to TatumSdkChain class so any chain can support wallet extensions.
- Added RPC support for the SOLANA network. Users can now make RPC calls to these network using the
Network.SOLANA
network.
- Added
faucet
submodule withfund
method for requesting testnet native tokens from availableTatum
faucets.
- Updated loadbalancer logging with detailed logs
- Update debug storage range parameters. The
debugStorageRangeAt
function in the EvmRpc now takes a number instead of a string for themaxResults
parameter.
- Added RPC support for the AVALANCHE_C network. Users can now make RPC calls to these network using the
Network.AVALANCHE_C
network.
- Fixed
tatumSdk.walletProvider.use()
method to return properly typed extension instance is case of custom typed configurations.
- Loosen types for extension registration purposes to better support optional config.
- Nft express minting over created collection for EVM chains.
- Added RPC support for the BITCOIN_CASH network. Users can now make RPC calls to these network using the
Network.BITCOIN_CASH
network.
- Added RPC support for the KLAYTN network. Users can now make RPC calls to these network using the
Network.KLAYTN
network.
- Added RPC support for the Holesky network. Users can now make RPC calls to these network using the
Network.ETHEREUM_HOLESKY
network.
- Added RPC support for the XRP network. Users can now make RPC calls to these network using the
Network.XRP
network.
- Added RPC support for the ZCash network. Users can now make RPC calls to these network using the
Network.ZCASH
network.
- Added RPC support for the Ethereum Classic network. Users can now make RPC calls to these network using the
Network.ETHEREUM_CLASSIC
network.
- Fixed signed raw transaction body conversion for Tron.
- Exposed tatum connector types from the root of the package.
- Wallet provider
use()
method now returns properly typed extension instance. - Exposed wallet provider types from the root of the package.
- Extension now has to implement list of supported
Network
.
- [BREAKING CHANGE]
TatumSdkExtension
now containsabstract supportedNetworks: Network[]
.
- Added RPC support for the Eos network. Users can now make RPC calls to these network using the
Network.EOS
network.
- Added RPC support for the Horizen Eon Gobi and Chiliz networks. Users can now make RPC calls to these networks using the
Network.HORIZEN_EON_GOBI
andNetwork.CHILIZ
network.
- Extension lifetime management methods made optional to implement.
- Extension lifetime management method destroy() made async and awaited.
- [BREAKING CHANGE]
tatumSdk.destroy(): void
was replaced withtatumSdk.destroy(): Promise<void>
.
- Leveraging Extension Ecosystem a specialised Wallet Provider type of extensions was added.
tatumSdk.walletProvider.use(type: TatumSdkWalletProvider)
method was added.
- [BREAKING CHANGE]
tatumSdk.walletProvider.metaMask
was replaced withtatumSdk.walletProvider.use(MetaMask)
. - [BREAKING CHANGE]
tatumSdk.walletProvider.metaMask.connect()
was replaced withtatumSdk.walletProvider.use(MetaMask).getWallet()
. - [BREAKING CHANGE]
tatumSdk.walletProvider.metaMask.customPayload()
was replaced withtatumSdk.walletProvider.use(MetaMask).signAndBroadcast()
.
- Capability to initialize
TatumSDK
with various extensions from Extension Ecosystem using the init() method andTatumConfig.configureExtensions
. - Encapsulation of
typedi
functionalities withinTatumSdkContainer
, ensuring that there are no enforced dependencies on the extensions. TatumSdkExtension
abstract class that allows extension creators to utilize services or other extensions from withing theTatumSdkContainer
.async init()
method call for each registered extensiondestroy()
method call for each registered extension
- Fixed 'tokenType' field to 'type' in Non-Fungible Token (NFT) Data Transfer Object (DTO) to match the API response.
- Fix eth_getLogs method when no fromBlock or toBlock was provided
- Add support for deploying NFT contract on Tezos chain https://docs.tatum.io/docs/nfts/create-nft-collection.
- Expose active RPC node url in the
Rpc
module
- Update horizen class
- Horizen EON notifications
- Typos
- Updated links to the status and list.json pages for new and changed chains
- Updated correctly V1 -> V3 and V2 -> V4 config options
- Integrated Tron, BSC Arbitrum One to new infra
- Minor version update to fix npm package issue
- Fix loadbalancer logic to work without api key
- The 'estimateSmartFee' method in AbstractUtxoRpc.ts has been updated to include the 'estimateMode' parameter as optional. Previously, if estimate mode was not provided, it would default to 'CONSERVATIVE'.
- fix batched raw RPC call return type to also include method level error
- Users can access data from the Horizen EON chain by using the
address
submodule. -address.getTransactions({...})
,address.getBalance({...})
- improve URL parsing for SSRF check
- Add functions to EVM rpc interface: getTokenTotalSupply, getTokenCap, supportsInterfaceERC1155
- Extend allowed list of urls for SSRF check
- This commit introduces a Server Side Request Forgery (SSRF) check to the
initRemoteHosts
method withinLoadBalancerRpc.ts
. This check ensures that URLs end with 'rpc.tatum.io' before loading them to avoid potential SSRF attacks. To accommodate this change,initRemoteHosts
has also been refactored to accept anInitRemoteHostsParams
object. In addition, an optional parameternoSSRFCheck
has been added to bypass the SSRF check when necessary.
- Update Tatum API URL to v4 from v1
- Fixed Load Balancer issue with process is undefined on the pure browser
- Removed undici dependency as it was causing issues
- Added support for Eon - RPC calls
- Add support for Tezos - Address and Notification modules
- Refactored Tron Address module. getBalance now accepts only one string parameter
address
as it wasn't working with multiple addresses
- Add better logging message
- Updated contributing guide
- Removed old example folder
- Fix retry requests
- Do not pass retry number in header
- Forced EVM debug_traceBlock and eth_getBlockReceipts methods to work with archive nodes
- Updated readme.md to look better
- In all error responses expects for RPC, error object returns also
dashboardLog
which points to the dashboard error log
- Added EVM debug_traceBlock and eth_getBlockReceipts methods
- Pass Api key to the archive load balancer liveness check
- Fix createrawtransaction method
- Changed error message for RPC calls from 'No active server found for ${nodeType} node.' to 'No active server found for node type ${NODE_TYPE_LABEL[nodeType]}.'
- Added destroy method to the global Tatum SDK instance
- Renamed RPC list domain from com to io
- Added Optimism and Polygon RPC calls archice
- Updated npm package name from @tatumcom/js to @tatumio/tatum.
- Updated npm token to ensure correct package retrieval.
- Made changes to the readme page for improved documentation.
- Fix rpc calls without api key & Added haqq archive/non-archive calls
- Selected Archive/Non-Archive node for Ethereum RPC calls based on method
- Several Tron RPC calls fixed
- Update all RPC calls to return unmodified data
- Extended JSON stringify to see error message in case of error to Loadbalancer
- Added JSON stringify to see error message in case of error to Loadbalancer
- Fixed not working Solana RPC calls
- Change Tron RPC calls error handling (to accommodate Tron RPC returning 200 status code even on error)
- Fixed not working Tron RPC calls
- All RPC methods are returning
ResponseDto
object with fields:data
,error
,status
.
- Fixed custom nodes configuration
- renamed index.md to readme.md
- Load balancer feature for Btc, Ltc, Doge, Eth, Flare, Haqq.
- Load balancer is used managing RPC calls to nodes in a blockchain network. It maintains a list of available nodes and their status, and it automatically selects the most responsive node for subsequent RPC calls.
- Added new module for getting current fee for Evm and Utxo chains.
- Refactoring TatumSdk class to return specific blockchain class on
init
instead of one generic class.
- Added new module for fungible tokens with methods
getBalance
,createNewFungibleToken
,getTokenMetadata
andgetAllFungibleTransactions
.
- Added
rates
submodule includinggetCurrentRate
andgetCurrentRateBatch
methods for obtaining current fiat/crypto exchange rates.
- Changed internal api calls for creation of NFT (
nft.createNftCollection
) / MultiToken (nft.createMultiTokenNftCollection
) collections insidenft
submodule and MetaMask integration inwalletProvider
submodule.
- Fixed TRON RPC params
- Added docs to TRON RPC
- getAllNftTransactionsByAddress required params number reduced
- Added support for creation of NFT (
nft.createNftCollection
) / MultiToken (nft.createMultiTokenNftCollection
) collections on EVM chains like Ethereum, Polygon, Celo and Binance Smart Chain insidenft
submodule.
- Added docs for Solana and XRP RPC
- Changed the underlying REST API call for metaMask deploy* contracts function
- XRP naming convention on the SDK side
- Expanded type exports
- Added support for native public RPC calls to TRON blockchain
- Change params of
createFungibleToken
,createErc1155NftCollection
andcreateNftCollection
methods
- Fixed
createFungibleToken
method - wrong initial supply calculation
- Fixed
createErc1155NftCollection
andcreateFungibleToken
methods - wrong API endpoint was used
- Added support for reading deployed smart contract address via EVM-based helper function
getContractAddress(txHash: string): Promise<string | null>
- Added support for Deploying contracts using MetaMask. It's possible to deploy NFT Collections (ERC-721/1155) or Fungible Tokens (ERC-20) directly from the browser.
- Add comments to input parameters for Solana RPC
- Added support for native public RPC calls to Solana blockchain
- Added support for native public RPC calls to XRP blockchain
- Support for
Contract Address Log Event
notification type - TRON chain notifications
- SOLANA chain notifications
- Fixed wrong decimals in WalletProvider MetaMask signing
[1.4.3] - 2023.04.27
- Fixed wrong BigNumber import
- Added missing
getchainstats
method to UTXO RPC calls
- Fixed optional
to
parameter in custom transaction payload for MetaMask signing
- Added support for transferNft using MetaMask WalletProvider.
- Added support for multiple API Keys in the configuration (V1 and V2).
- Added support for WalletProvider submodule. This submodule enables seamless interaction with external wallets like Metamask or Phantom within the browser. The Wallet Provider submodule allows the SDK to communicate with various wallet providers, streamlining the process of signing transactions, querying account balances, and interacting with smart contracts directly through popular browser wallets.
- Added possibility to use custom RPC provider for any of the blockchain. Configuration parameter for this option is
rpcUrl
. If this parameter is set, then the SDK will use this URL for all RPC calls. If this parameter is not set, then the SDK will RPC provisioned by Tatum. List of supported blockchains is available here.
- Fixed parameter names of nft.getNFTsInCollection
- Added parameter
address
to address.getBalance response to precisely identify the address for which the balance is returned.
- Added support for Address submodule. This submodule simplifies wallet management across multiple blockchains by allowing you to fetch wallet balances and retrieve transactions for a given address. With the Address submodule, you can easily manage your wallets and monitor transactions, making your blockchain application development more efficient and user-friendly.
- Minor changes in the code - documentation, types moving between files etc.
- Added missing ETH RPC calls
eth_getProof
- Fixed RPC call
trace_callMany
- wrong order of arguments were passed - Fixed all RPC calls
trace_*
- wrong naming of the method was used
- Added missing ETH RPC calls
maxPriorityFeePerGas
and add txPoolStatusinclude
parameter
- Added support for NFT submodule. This submodule offers a comprehensive suite of tools for working with Non-Fungible Tokens (NFTs). With the NFT submodule, you can query the balance of NFTs on an address, retrieve NFT transactions associated with a specific address, explore NFTs within a collection or identify the owners of a particular NFT.
- Fixed exports
- Fixed exports
- Added support for native RPC calls to UTXO and EVM based blockchains
- Changed the way how the SDK is initialized. Now it is required to choose the blockchain and then initialize the SDK with the blockchain specific configuration.
- Removed support for Open Network
- Added get fastest URL method for a specific blockchain from Open Network
- Added graceful shutdown of the SDK
- Added support for block difference to Open Network
- Added support for multiple static URLs with load balancing to Open Network
- Added support for OpenNetwork network
- Removed dependency on Axios - replaced with Fetch API
- Due to above, minimum Node version is now >= 18
debug
config field was renamed toverbose
- renamed
TatumSdk
toTatumSDK
as a main entry point
- 13 new notification types to subscribe to
- Added basic notification functionality like subscribe to address event, subscribe and unsubscribe to address event, list all subscriptions and webhooks.