From a7684cba2a31b656d979fe7f37fd1e8fea3747ef Mon Sep 17 00:00:00 2001 From: Hathoriel Date: Wed, 5 Feb 2025 08:50:33 +0100 Subject: [PATCH] ALL-10482 - Remove BNB --- CHANGELOG.md | 6 ++ package.json | 2 +- src/dto/Currency.ts | 1 - src/dto/Network.ts | 10 --- src/dto/rpc/BnbRpcSuite.ts | 83 ----------------- src/e2e/rpc/other/tatum.rpc.bnb.spec.ts | 65 -------------- src/service/rpc/other/AbstractBnbRpc.ts | 99 --------------------- src/service/rpc/other/BnbLoadBalancerRpc.ts | 40 --------- src/service/tatum/tatum.other.ts | 14 --- src/util/constant.ts | 2 - src/util/util.shared.ts | 30 ------- 11 files changed, 7 insertions(+), 345 deletions(-) delete mode 100644 src/dto/rpc/BnbRpcSuite.ts delete mode 100644 src/e2e/rpc/other/tatum.rpc.bnb.spec.ts delete mode 100644 src/service/rpc/other/AbstractBnbRpc.ts delete mode 100644 src/service/rpc/other/BnbLoadBalancerRpc.ts diff --git a/CHANGELOG.md b/CHANGELOG.md index ff5976e7b8..df04d8247b 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,3 +1,9 @@ +## [4.2.46] - 2025.2.5 + +### Removed + +- Removed BNB support + ## [4.2.45] - 2024.12.20 ### Fixed diff --git a/package.json b/package.json index 4f01616ae6..8730118ed9 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "@tatumio/tatum", - "version": "4.2.45", + "version": "4.2.46", "description": "Tatum JS SDK", "author": "Tatum", "repository": "https://github.com/tatumio/tatum-js", diff --git a/src/dto/Currency.ts b/src/dto/Currency.ts index ce85b9d208..0b36a14236 100644 --- a/src/dto/Currency.ts +++ b/src/dto/Currency.ts @@ -22,7 +22,6 @@ export enum Currency { FLOW = 'FLOW', XDC = 'XDC', XLM = 'XLM', - BNB = 'BNB', ONE = 'ONE', EOS = 'EOS', AVAX = 'AVAX', diff --git a/src/dto/Network.ts b/src/dto/Network.ts index 9b02434196..268002583c 100644 --- a/src/dto/Network.ts +++ b/src/dto/Network.ts @@ -12,7 +12,6 @@ export enum Network { AVALANCHE_X = 'avax-x-mainnet', BASE = 'base-mainnet', BINANCE_SMART_CHAIN = 'bsc-mainnet', - BNB = 'bnb-beacon-chain-mainnet', BITCOIN = 'bitcoin-mainnet', BITCOIN_CASH = 'bitcoin-cash-mainnet', CARDANO_ROSETTA = 'cardano-mainnet', @@ -262,7 +261,6 @@ export const EOS_LOAD_BALANCER_NETWORKS = [Network.EOS] export const XRP_LOAD_BALANCER_NETWORKS = [Network.XRP, Network.XRP_TESTNET] export const NATIVE_EVM_LOAD_BALANCER_NETWORKS = [Network.KLAYTN, Network.KLAYTN_BAOBAB] export const SOLANA_NETWORKS = [Network.SOLANA, Network.SOLANA_DEVNET] -export const BNB_LOAD_BALANCER_NETWORKS = [Network.BNB] export const TEZOS_NETWORKS = [Network.TEZOS, Network.TEZOS_TESTNET] export const ALGORAND_ALGOD_NETWORKS = [Network.ALGORAND_ALGOD, Network.ALGORAND_ALGOD_TESTNET] export const ALGORAND_INDEXER_NETWORKS = [Network.ALGORAND_INDEXER, Network.ALGORAND_INDEXER_TESTNET] @@ -295,7 +293,6 @@ export const LOAD_BALANCER_NETWORKS = [ ...XRP_LOAD_BALANCER_NETWORKS, ...NATIVE_EVM_LOAD_BALANCER_NETWORKS, ...SOLANA_NETWORKS, - ...BNB_LOAD_BALANCER_NETWORKS, ...TEZOS_NETWORKS, ...ALGORAND_ALGOD_NETWORKS, ...ALGORAND_INDEXER_NETWORKS, @@ -380,8 +377,6 @@ export const isRostrumLoadBalancerNetwork = (network: Network) => export const isNativeEvmLoadBalancerNetwork = (network: Network) => NATIVE_EVM_LOAD_BALANCER_NETWORKS.includes(network) -export const isBnbLoadBalancerNetwork = (network: Network) => BNB_LOAD_BALANCER_NETWORKS.includes(network) - export const isTezosNetwork = (network: Network) => TEZOS_NETWORKS.includes(network) export const isAlgorandAlgodNetwork = (network: Network) => ALGORAND_ALGOD_NETWORKS.includes(network) @@ -658,11 +653,6 @@ export const NETWORK_METADATA: Record = { testnet: true, defaultTestnet: true, }, - [Network.BNB]: { - currency: Currency.BNB, - testnet: false, - defaultMainnet: true, - }, [Network.DOGECOIN]: { currency: Currency.DOGE, testnet: false, diff --git a/src/dto/rpc/BnbRpcSuite.ts b/src/dto/rpc/BnbRpcSuite.ts deleted file mode 100644 index 7a823f1a1b..0000000000 --- a/src/dto/rpc/BnbRpcSuite.ts +++ /dev/null @@ -1,83 +0,0 @@ -/* eslint-disable @typescript-eslint/no-explicit-any */ -import { JsonRpcResponse } from '../JsonRpcResponse.dto' - -export interface Height { - height: string -} - -export interface AbciQuery { - path: string - data: string - height?: string - prove?: boolean -} - -export interface Validators { - height?: string - page?: string - perPage?: string -} - -export interface Tx { - hash: string - prove?: boolean -} - -export interface TxSearch { - query: string - prove?: boolean - page?: string -} - -export interface Broadcast { - tx: string -} - -export interface Blockchain { - minHeight?: string - maxHeight?: string -} - -export interface UnconfirmedTxs { - limit?: string -} - -export interface BnbRpcInterface { - status(): Promise> - abciInfo(): Promise> - abciQuery(params: AbciQuery): Promise> - block(params?: Height): Promise> - blockResult(params?: Height): Promise> - blockchain(params?: Blockchain): Promise> - commit(params?: Height): Promise> - tx(params: Tx): Promise> - broadcastTxAsync(params: Broadcast): Promise> - broadcastTxCommit(params: Broadcast): Promise> - broadcastTxSync(params: Broadcast): Promise> - txSearch(params: TxSearch): Promise> - validators(params?: Validators): Promise> - unconfirmedTxs(params: UnconfirmedTxs): Promise> - genesis(): Promise> - health(): Promise> - netInfo(): Promise> - numUnconfirmedTxs(): Promise> -} - -export interface JsonBnbRpcCall { - id: number | string - jsonrpc: string - method: string - params?: Params -} - -export interface Params { - [key: string]: unknown -} - -export interface AbstractBnbRpcInterface { - rawRpcCall(body: JsonBnbRpcCall): Promise> - destroy(): void - getRpcNodeUrl(): string -} - -export interface BnbRpcSuite extends BnbRpcInterface, AbstractBnbRpcInterface {} diff --git a/src/e2e/rpc/other/tatum.rpc.bnb.spec.ts b/src/e2e/rpc/other/tatum.rpc.bnb.spec.ts deleted file mode 100644 index dda23d4439..0000000000 --- a/src/e2e/rpc/other/tatum.rpc.bnb.spec.ts +++ /dev/null @@ -1,65 +0,0 @@ -import { Bnb, Network, TatumSDK } from '../../../service' -import { e2eUtil } from '../../e2e.util' - -const getBnbRpc = async () => await TatumSDK.init(e2eUtil.initConfig(Network.BNB)) - -// Testnet is not available -describe.skip('Bnb', () => { - describe('mainnet', () => { - it('block', async () => { - const tatum = await getBnbRpc() - const { result } = await tatum.rpc.block() - await tatum.destroy() - expect(result).toBeDefined() - }) - - it('abciInfo', async () => { - const tatum = await getBnbRpc() - const { result } = await tatum.rpc.abciInfo() - await tatum.destroy() - expect(result).toBeDefined() - }) - - it('blockchain', async () => { - const tatum = await getBnbRpc() - const { result } = await tatum.rpc.blockchain() - await tatum.destroy() - expect(result).toBeDefined() - }) - - it('health', async () => { - const tatum = await getBnbRpc() - const { result } = await tatum.rpc.health() - await tatum.destroy() - expect(result).toBeDefined() - }) - - it('genesis', async () => { - const tatum = await getBnbRpc() - const { result } = await tatum.rpc.genesis() - await tatum.destroy() - expect(result).toBeDefined() - }) - - it('validators', async () => { - const tatum = await getBnbRpc() - const { result } = await tatum.rpc.validators() - await tatum.destroy() - expect(result).toBeDefined() - }) - - it('unconfirmedTxs', async () => { - const tatum = await getBnbRpc() - const { result } = await tatum.rpc.unconfirmedTxs({ limit: '1' }) - await tatum.destroy() - expect(result).toBeDefined() - }) - - it('raw rpc call', async () => { - const tatum = await getBnbRpc() - const { result } = await tatum.rpc.rawRpcCall({ method: 'block', id: 1, jsonrpc: '2.0', params: {} }) - await tatum.destroy() - expect(result).toBeDefined() - }) - }) -}) diff --git a/src/service/rpc/other/AbstractBnbRpc.ts b/src/service/rpc/other/AbstractBnbRpc.ts deleted file mode 100644 index a31200e4df..0000000000 --- a/src/service/rpc/other/AbstractBnbRpc.ts +++ /dev/null @@ -1,99 +0,0 @@ -/* eslint-disable @typescript-eslint/no-explicit-any */ -import { JsonRpcResponse } from '../../../dto' -import { PostI } from '../../../dto/PostI' -import { - AbciQuery, - Blockchain, - BnbRpcInterface, - Broadcast, - Height, - Tx, - TxSearch, -} from '../../../dto/rpc/BnbRpcSuite' -import { Utils } from '../../../util' - -export abstract class AbstractBnbRpc implements BnbRpcInterface { - protected abstract post(post: PostI): Promise - - sendRpcCall(method: string, params?: T): Promise { - const body = { - id: 1, - jsonrpc: '2.0', - method, - params: params ? Utils.convertObjCamelToSnake(params) : {}, - } - return this.post({ body, path: '' }) - } - - status(): Promise> { - return this.sendRpcCall('status') - } - - abciInfo(): Promise> { - return this.sendRpcCall('abci_info') - } - - abciQuery(params: AbciQuery): Promise> { - return this.sendRpcCall('abci_query', params) - } - - block(params?: Height): Promise> { - return this.sendRpcCall('block', params) - } - - blockResult(params?: Height): Promise> { - return this.sendRpcCall('block_result', params) - } - - blockchain(params?: Blockchain): Promise> { - return this.sendRpcCall('blockchain', params) - } - - commit(params?: Height): Promise> { - return this.sendRpcCall('commit', params) - } - - tx(params: Tx): Promise> { - return this.sendRpcCall('tx', params) - } - - broadcastTxAsync(params: Broadcast): Promise> { - return this.sendRpcCall('broadcast_tx_async', params) - } - - broadcastTxCommit(params: Broadcast): Promise> { - return this.sendRpcCall('broadcast_tx_commit', params) - } - - broadcastTxSync(params: Broadcast): Promise> { - return this.sendRpcCall('broadcast_tx_sync', params) - } - - txSearch(params: TxSearch): Promise> { - return this.sendRpcCall('tx_search', params) - } - - validators(params: Height): Promise> { - return this.sendRpcCall('validators', params) - } - - unconfirmedTxs(params: { limit: string }): Promise> { - return this.sendRpcCall('unconfirmed_txs', params) - } - - genesis(): Promise> { - return this.sendRpcCall('genesis') - } - - health(): Promise> { - return this.sendRpcCall('health') - } - - netInfo(): Promise> { - return this.sendRpcCall('net_info') - } - - numUnconfirmedTxs(): Promise> { - return this.sendRpcCall('num_unconfirmed_txs') - } -} diff --git a/src/service/rpc/other/BnbLoadBalancerRpc.ts b/src/service/rpc/other/BnbLoadBalancerRpc.ts deleted file mode 100644 index 06ca433acf..0000000000 --- a/src/service/rpc/other/BnbLoadBalancerRpc.ts +++ /dev/null @@ -1,40 +0,0 @@ -/* eslint-disable @typescript-eslint/no-explicit-any */ -import { Container, Service } from 'typedi' -// Need to import like this to keep browser working -import { JsonRpcResponse } from '../../../dto' -import { PostI } from '../../../dto/PostI' -import { BnbRpcSuite, JsonBnbRpcCall } from '../../../dto/rpc/BnbRpcSuite' -// Need to import like this to keep browser working -import { LoadBalancer } from '../generic/LoadBalancer' -import { AbstractBnbRpc } from './AbstractBnbRpc' - -@Service({ - factory: (data: { id: string }) => { - return new BnbLoadBalancerRpc(data.id) - }, - transient: true, -}) -export class BnbLoadBalancerRpc extends AbstractBnbRpc implements BnbRpcSuite { - protected readonly loadBalancer: LoadBalancer - - constructor(id: string) { - super() - this.loadBalancer = Container.of(id).get(LoadBalancer) - } - - public destroy() { - this.loadBalancer.destroy() - } - - getRpcNodeUrl(): string { - return this.loadBalancer.getActiveNormalUrlWithFallback().url - } - - rawRpcCall(body: JsonBnbRpcCall): Promise> { - return this.loadBalancer.post({ body, path: '' }) - } - - protected post(post: PostI): Promise { - return this.loadBalancer.post(post) - } -} diff --git a/src/service/tatum/tatum.other.ts b/src/service/tatum/tatum.other.ts index 76b0f69bcc..de9c8d1f2c 100644 --- a/src/service/tatum/tatum.other.ts +++ b/src/service/tatum/tatum.other.ts @@ -2,7 +2,6 @@ import { Container } from 'typedi' import { SolanaRpcSuite, TezosRpcInterface, TronRpcSuite, XrpRpcInterface } from '../../dto' import { AlgorandAlgodRpcSuite } from '../../dto/rpc/AlgorandAlgodRpcSuite' import { AlgorandIndexerRpcSuite } from '../../dto/rpc/AlgorandIndexerRpcSuite' -import { BnbRpcSuite } from '../../dto/rpc/BnbRpcSuite' import { CardanoRpcSuite } from '../../dto/rpc/CardanoRpcSuite' import { EosRpcSuite } from '../../dto/rpc/EosRpcSuite' import { IotaRpcSuite } from '../../dto/rpc/IotaRpcSuite' @@ -32,19 +31,6 @@ export abstract class BaseOther extends TatumSdkChain { } } -export class Bnb extends BaseOther { - rpc: BnbRpcSuite - notification: Notification - address: Address - - constructor(id: string) { - super(id) - this.rpc = Utils.getRpc(id, Container.of(id).get(CONFIG)) - this.notification = Container.of(id).get(Notification) - this.address = Container.of(id).get(Address) - } -} - export class Xrp extends BaseOther { rpc: XrpRpcInterface notification: Notification diff --git a/src/util/constant.ts b/src/util/constant.ts index ed7b2c471c..545c5c23fd 100644 --- a/src/util/constant.ts +++ b/src/util/constant.ts @@ -116,7 +116,6 @@ export const Constant = { [Network.HAQQ]: 18, [Network.HAQQ_TESTNET]: 18, [Network.CHILIZ]: 18, - [Network.BNB]: 18, [Network.BASE]: 18, [Network.BASE_SEPOLIA]: 18, [Network.KADENA]: 18, @@ -229,7 +228,6 @@ export const Constant = { [Network.HAQQ]: 'HAQQ', [Network.HAQQ_TESTNET]: 'HAQQ', [Network.CHILIZ]: 'CHILIZ', - [Network.BNB]: 'BNB', [Network.BASE]: 'BASE', [Network.BASE_SEPOLIA]: 'BASE', [Network.KADENA]: 'KADENA', diff --git a/src/util/util.shared.ts b/src/util/util.shared.ts index d1880cfe5e..4cd784c4e0 100644 --- a/src/util/util.shared.ts +++ b/src/util/util.shared.ts @@ -6,7 +6,6 @@ import { AddressEventNotificationChain, isAlgorandAlgodNetwork, isAlgorandIndexerNetwork, - isBnbLoadBalancerNetwork, isCardanoNetwork, isCasperNetwork, isCosmosNetwork, @@ -57,7 +56,6 @@ import { Bitcoin, BitcoinCash, BitcoinElectrs, - Bnb, CardanoRosetta, Casper, Celo, @@ -109,7 +107,6 @@ import { TronRpc } from '../service/rpc/evm/TronRpc' import { ZkSyncLoadBalancerRpc } from '../service/rpc/evm/ZkSyncLoadBalancerRpc' import { AlgorandAlgodLoadBalancerRpc } from '../service/rpc/other/AlgorandAlgodLoadBalancerRpc' import { AlgorandIndexerLoadBalancerRpc } from '../service/rpc/other/AlgorandIndexerLoadBalancerRpc' -import { BnbLoadBalancerRpc } from '../service/rpc/other/BnbLoadBalancerRpc' import { CardanoLoadBalancerRpc } from '../service/rpc/other/CardanoLoadBalancerRpc' import { CasperLoadBalancerRpc } from '../service/rpc/other/CasperLoadBalancerRpc' import { CosmosLoadBalancerRpc } from '../service/rpc/other/CosmosLoadBalancerRpc' @@ -191,10 +188,6 @@ export const Utils = { return Container.of(id).get(TezosLoadBalancerRpc) as T } - if (isBnbLoadBalancerNetwork(network)) { - return Container.of(id).get(BnbLoadBalancerRpc) as T - } - if (isDogecoinLoadBalancedNetwork(network)) { return Container.of(id).get(DogeLoadBalancedRpc) as T } @@ -335,15 +328,6 @@ export const Utils = { } } - if (isBnbLoadBalancerNetwork(network)) { - return { - jsonrpc: '2.0', - method: 'block', - params: {}, - id: 1, - } - } - if (isCardanoNetwork(network)) { return { network_identifier: { @@ -405,10 +389,6 @@ export const Utils = { return url } - if (isBnbLoadBalancerNetwork(network)) { - return url - } - if (isRostrumLoadBalancerNetwork(network)) { return url } @@ -454,10 +434,6 @@ export const Utils = { return new BigNumber((response.result as number) || -1).toNumber() } - if (isBnbLoadBalancerNetwork(network)) { - return new BigNumber((response.result.block.header.height as number) || -1).toNumber() - } - if (isEosNetwork(network)) { return new BigNumber((response.head_block_num as number) || -1).toNumber() } @@ -513,10 +489,6 @@ export const Utils = { return response.head_block_num !== undefined } - if (isBnbLoadBalancerNetwork(network)) { - return response.result.block.header.height !== undefined - } - if (isSameGetBlockNetwork(network)) { return response.result !== undefined } @@ -894,8 +866,6 @@ export const Utils = { return new Eos(id) as T case Network.CHILIZ: return new Chiliz(id) as T - case Network.BNB: - return new Bnb(id) as T case Network.ALGORAND_ALGOD: case Network.ALGORAND_ALGOD_TESTNET: return new AlgorandAlgod(id) as T