UNPKG

@etherspot/data-utils

Version:
1 lines 15.4 kB
{"version":3,"sources":["../../src/sdk/data/data.module.ts"],"sourcesContent":["import { Route } from '@lifi/sdk';\nimport { AccountBalances, AdvanceRoutesLiFi, Token, TransactionStatus, ExchangeOffer, NftList, PaginatedTokens, RateData, StepTransactions, TokenList, TokenListToken, Transaction, Transactions, QuoteTransactionsResponse } from './classes';\nimport { BridgingProvider } from './constants';\nimport { ObjectSubject, BigNumber } from '../common';\nimport { API_ENDPOINTS, MethodTypes } from '../api/constants';\nimport { RestApiService } from '../api';\n\nexport class DataModule {\n readonly apiKey$ = new ObjectSubject<string>('');\n private apiService: RestApiService;\n\n constructor(apiKey = '') {\n this.apiService = new RestApiService();\n this.switchCurrentApi(apiKey);\n }\n\n get currentApi(): string {\n return this.apiKey$.value;\n }\n\n switchCurrentApi(currentApi: string): string {\n this.apiKey$.nextData(currentApi);\n\n return this.currentApi;\n }\n\n async getAccountBalances(account: string, chainId: number, tokens?: string[], provider?: string): Promise<AccountBalances> {\n try {\n const queryParams = {\n 'api-key': this.currentApi,\n account,\n chainId,\n provider,\n tokens: tokens.length ? tokens : []\n };\n\n const balances: AccountBalances = await this.apiService.makeRequest(API_ENDPOINTS.GET_ACCOUNT_BALANCES, MethodTypes.GET, queryParams);\n\n return balances;\n } catch (error) {\n throw new Error(error.message || 'Failed to get account balances');\n }\n }\n\n async getTransaction(hash: string, chainId: number): Promise<Transaction> {\n try {\n const queryParams = {\n 'api-key': this.currentApi,\n hash,\n chainId,\n };\n\n const response = await this.apiService.makeRequest(API_ENDPOINTS.GET_TRANSACTION, MethodTypes.GET, queryParams);\n\n return response.transaction;\n } catch (error) {\n throw new Error(error.message || 'Failed to get transaction');\n }\n }\n\n async getTransactions(account: string, chainId: number, page?: number, limit?: number): Promise<Transactions> {\n try {\n const queryParams = {\n 'api-key': this.currentApi,\n account,\n chainId,\n page,\n limit,\n };\n\n const response = await this.apiService.makeRequest(API_ENDPOINTS.GET_TRANSACTIONS, MethodTypes.GET, queryParams);\n\n return response;\n } catch (error) {\n throw new Error(error.message || 'Failed to get transactions');\n }\n }\n\n async getNftList(account: string, chainId: number): Promise<NftList> {\n try {\n const queryParams = {\n 'api-key': this.currentApi,\n account,\n chainId,\n };\n\n const nfts = await this.apiService.makeRequest(API_ENDPOINTS.GET_ACCOUNT_NFTS, MethodTypes.GET, queryParams);\n\n return nfts;\n } catch (error) {\n throw new Error(error.message || 'Failed to get nft list');\n }\n }\n\n async getAdvanceRoutesLiFi(\n fromTokenAddress: string,\n toTokenAddress: string,\n fromChainId: number,\n toChainId: number,\n fromAmount: BigNumber,\n toAddress?: string,\n allowSwitchChain?: boolean,\n fromAddress?: string,\n showZeroUsd?: boolean,\n ): Promise<AdvanceRoutesLiFi> {\n const account = fromAddress;\n let data = null;\n\n try {\n const queryParams = {\n 'api-key': this.currentApi,\n account,\n fromTokenAddress,\n toTokenAddress,\n fromChainId,\n toChainId,\n fromAmount: fromAmount.toString(),\n toAddress,\n allowSwitchChain,\n fromAddress,\n showZeroUsd,\n };\n\n const response = await this.apiService.makeRequest(API_ENDPOINTS.GET_ADVANCE_ROUTES_LIFI, MethodTypes.GET, queryParams);\n\n data = JSON.parse(response.data);\n\n return data;\n } catch (error) {\n throw new Error(error.message || 'Failed to advance routes from LiFi');\n }\n }\n\n async getStepTransaction(selectedRoute: Route, account: string): Promise<StepTransactions> {\n try {\n const route = JSON.stringify(selectedRoute);\n const queryParams = {\n 'api-key': this.currentApi,\n };\n\n const body = {\n route,\n account\n };\n\n const response = await this.apiService.makeRequest(API_ENDPOINTS.GET_STEP_TRANSACTIONS, MethodTypes.POST, queryParams, body);\n\n return {\n items: response.transactions\n };\n } catch (error) {\n throw new Error(error.message || 'Failed to get step transaction from LIFI');\n }\n }\n\n async getExchangeSupportedAssets(page: number = null, limit: number = null, chainId: number, account: string): Promise<PaginatedTokens> {\n try {\n const queryParams = {\n 'api-key': this.currentApi,\n account,\n page: page || 1,\n limit: limit || 100,\n chainId\n };\n\n const assets: PaginatedTokens = await this.apiService.makeRequest(API_ENDPOINTS.GET_EXCHANGE_SUPPORTED_ASSETS, MethodTypes.GET, queryParams);\n\n return assets;\n } catch (error) {\n throw new Error(error.message || 'Failed to get exchange supported assets');\n }\n }\n\n async getExchangeOffers(\n fromTokenAddress: string,\n toTokenAddress: string,\n fromAmount: BigNumber,\n fromChainId: number,\n fromAddress: string,\n toAddress?: string,\n showZeroUsd?: boolean\n ): Promise<ExchangeOffer[]> {\n const account = fromAddress;\n\n try {\n const queryParams = {\n 'api-key': this.currentApi,\n account,\n fromTokenAddress,\n toTokenAddress,\n fromAmount: fromAmount.toString(),\n chainId: fromChainId,\n fromAddress,\n toAddress,\n showZeroUsd,\n };\n\n const result = await this.apiService.makeRequest(API_ENDPOINTS.GET_EXCHANGE_OFFERS, MethodTypes.GET, queryParams);\n\n return result ? result.items : null;\n } catch (error) {\n throw new Error(error.message || 'Failed to get exchange offers');\n }\n }\n\n async getTokenLists(chainId: number): Promise<TokenList[]> {\n try {\n const queryParams = {\n 'api-key': this.currentApi,\n chainId,\n };\n\n const result = await this.apiService.makeRequest(API_ENDPOINTS.GET_TOKEN_LISTS, MethodTypes.GET, queryParams);\n\n return result ? result.items : [];\n } catch (error) {\n throw new Error(error.message || 'Failed to get token lists');\n }\n }\n\n async getTokenListTokens(chainId: number, name: string = null): Promise<TokenListToken[]> {\n try {\n const queryParams = {\n 'api-key': this.currentApi,\n chainId,\n name,\n };\n\n const result = await this.apiService.makeRequest(API_ENDPOINTS.GET_TOKEN_LIST_TOKENS, MethodTypes.GET, queryParams);\n\n return result ? result.tokens : [];\n } catch (error) {\n throw new Error(error.message || 'Failed to get token list tokens');\n }\n }\n\n async fetchExchangeRates(tokens: string[], chainId: number): Promise<RateData> {\n try {\n const queryParams = {\n 'api-key': this.currentApi,\n chainId,\n tokens,\n };\n\n const result = await this.apiService.makeRequest(API_ENDPOINTS.EXCHANGE_RATES, MethodTypes.GET, queryParams);\n\n return result ? result.exchangeRates : null;\n } catch (error) {\n throw new Error(error.message || 'Failed to fetch exchange rates');\n }\n }\n\n async getSupportedAssets(chainId?: number, provider?: BridgingProvider): Promise<Token[]> {\n try {\n const queryParams = {\n 'api-key': this.currentApi,\n chainId,\n };\n let apiUrl: string;\n\n switch (provider) {\n case BridgingProvider.Connext:\n apiUrl = API_ENDPOINTS.GET_CONNEXT_SUPPORTED_ASSETS;\n break;\n default:\n apiUrl = API_ENDPOINTS.GET_CONNEXT_SUPPORTED_ASSETS;\n break;\n }\n\n const result: { tokens: Token[] } = await this.apiService.makeRequest(apiUrl, MethodTypes.GET, queryParams);\n\n return result ? result.tokens : [];\n } catch (error) {\n throw new Error(error.message || 'Failed to get supported assets');\n }\n }\n\n async getQuotes(\n fromAddress: string,\n toAddress: string,\n fromChainId: number,\n toChainId: number,\n fromToken: string,\n fromAmount: BigNumber,\n slippage: number,\n provider?: BridgingProvider\n ): Promise<QuoteTransactionsResponse> {\n try {\n const queryParams = {\n 'api-key': this.currentApi,\n fromAddress,\n toAddress,\n fromChainId,\n toChainId,\n fromToken,\n fromAmount: fromAmount.toString(),\n slippage\n };\n let apiUrl: string;\n\n switch (provider) {\n case BridgingProvider.Connext:\n apiUrl = API_ENDPOINTS.GET_CONNEXT_QUOTE_TRANSACTIONS;\n break;\n default:\n apiUrl = API_ENDPOINTS.GET_CONNEXT_QUOTE_TRANSACTIONS;\n break;\n }\n\n const result: QuoteTransactionsResponse = await this.apiService.makeRequest(apiUrl, MethodTypes.GET, queryParams);\n\n return result ? result : null;\n } catch (error) {\n throw new Error(error.message || 'Failed to get quotes transactions');\n }\n }\n\n async getTransactionStatus(fromChainId: number, toChainId: number, transactionHash: string, provider?: BridgingProvider): Promise<TransactionStatus> {\n try {\n const queryParams = {\n 'api-key': this.currentApi,\n fromChainId,\n toChainId,\n transactionHash,\n };\n let apiUrl: string;\n\n switch (provider) {\n case BridgingProvider.Connext:\n apiUrl = API_ENDPOINTS.GET_CONNEXT_TRANSACTION_STATUS;\n break;\n default:\n apiUrl = API_ENDPOINTS.GET_CONNEXT_TRANSACTION_STATUS;\n break;\n }\n\n const result: TransactionStatus = await this.apiService.makeRequest(apiUrl, MethodTypes.GET, queryParams);\n\n return result ? result : null;\n } catch (error) {\n throw new Error(error.message || 'Failed to get transaction status');\n }\n }\n}\n"],"mappings":"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","names":[]}