import { Address, AllSettlements, BalanceResponse, Bee, BeeDebug, CashoutResponse, ChequebookAddressResponse, ChequebookBalanceResponse, Data, DepositTokensResponse, FileData, Health, LastCashoutActionResponse, LastChequesForPeerResponse, LastChequesResponse, NodeAddresses, Peer, PingResponse, Reference, Topology, WithdrawTokensResponse, } from '@ethersphere/bee-js' import { apiHost, debugApiHost } from '../constants' const beeJSClient = () => new Bee(apiHost) const beeJSDebugClient = () => new BeeDebug(debugApiHost) export const beeApi = { status: { health(): Promise { return beeJSClient().isConnected() }, }, files: { uploadFile(postageBatchId: Address, file: File): Promise { return beeJSClient().uploadFile(postageBatchId, file) }, downloadFile(hash: string | Reference): Promise> { return beeJSClient().downloadFile(hash) }, }, } export const beeDebugApi = { status: { nodeHealth(): Promise { return beeJSDebugClient().getHealth() }, }, connectivity: { addresses(): Promise { return beeJSDebugClient().getNodeAddresses() }, listPeers(): Promise { return beeJSDebugClient().getPeers() }, topology(): Promise { return beeJSDebugClient().getTopology() }, ping(peerId: string): Promise { return beeJSDebugClient().pingPeer(peerId) }, }, balance: { balances(): Promise { return beeJSDebugClient().getAllBalances() }, }, chequebook: { address(): Promise { return beeJSDebugClient().getChequebookAddress() }, balance(): Promise { return beeJSDebugClient().getChequebookBalance() }, getLastCheques(): Promise { return beeJSDebugClient().getLastCheques() }, peerCashout(peerId: string): Promise { return beeJSDebugClient().cashoutLastCheque(peerId) }, getPeerLastCashout(peerId: string): Promise { return beeJSDebugClient().getLastCashoutAction(peerId) }, getPeerLastCheques(peerId: string): Promise { return beeJSDebugClient().getLastChequesForPeer(peerId) }, withdraw(amount: bigint): Promise { return beeJSDebugClient().withdrawTokens(amount) }, deposit(amount: bigint): Promise { return beeJSDebugClient().depositTokens(amount) }, }, settlements: { getSettlements(): Promise { return beeJSDebugClient().getAllSettlements() }, }, }