UNPKG

@dojima-wallet/transfer

Version:

Transfer assets from account to account

124 lines (111 loc) 3.15 kB
import { Network } from "@dojima-wallet/types"; import { PoolData, UsdtTokenGasFeeResult } from "./types"; import { SwapAssetList } from "@dojima-wallet/utils"; import { PolkadotInit } from "@dojima-wallet/connection"; import { getUsdtTokenPriceResult } from "./utils"; export default class PolkadotChain extends PolkadotInit { constructor(mnemonic: string, network: Network) { super(mnemonic, network); } async getGasFee( recipient: string, amount: number ): Promise<UsdtTokenGasFeeResult> { const dot_gasFee = await this.dotConnect.getFees({ recipient, amount, }); const result = await getUsdtTokenPriceResult(dot_gasFee, "dot"); return result; } async transfer(recipient: string, amount: number): Promise<string> { const hash = await this.dotConnect.transfer({ recipient, amount }); return hash; } getSwapOutput(amount: number, pool: PoolData, toDoj: boolean): number { return this.dotConnect.getSwapOutput(amount, pool, toDoj); } getDoubleSwapOutput( amount: number, pool1: PoolData, pool2: PoolData ): number { return this.dotConnect.getDoubleSwapOutput(amount, pool1, pool2); } getSwapSlippage(amount: number, pool: PoolData, toDoj: boolean): number { return this.dotConnect.getSwapSlip(amount, pool, toDoj) * 100; } getDoubleSwapSlippage( amount: number, pool1: PoolData, pool2: PoolData ): number { return this.dotConnect.getDoubleSwapSlip(amount, pool1, pool2) * 100; } async getDefaultLiquidityPoolGasFee( hermesApiUrl: string ): Promise<UsdtTokenGasFeeResult> { const LPDefaultGasFee = await this.dotConnect.getDefaultLiquidityPoolGasFee( hermesApiUrl ); const dot_LPgasfee = { slow: LPDefaultGasFee, average: LPDefaultGasFee, fast: LPDefaultGasFee, }; const result = await getUsdtTokenPriceResult(dot_LPgasfee, "dot"); return result; } async addLiquidityPool( amount: number, hermesApiUrl: string, hermesAddress?: string ): Promise<string> { try { const inboundAddress = await this.dotConnect.getPolkadotInboundAddress( hermesApiUrl ); const liquidityPoolHash = await this.dotConnect.addLiquidityPool( amount, inboundAddress, hermesAddress ); return liquidityPoolHash; } catch (error) { return Promise.reject(error); } } async swap( amount: number, recipient: string, token: SwapAssetList, hermesApiUrl: string ) { try { const inboundAddress = await this.dotConnect.getPolkadotInboundAddress( hermesApiUrl ); const swapHash = await this.dotConnect.swap( amount, token, inboundAddress, recipient ); return swapHash; } catch (error) { return Promise.reject(error); } } async polkaBatchTxsToHermes( amount: number, inboundAddress: string, memo: string ): Promise<string> { const batchTxHash = await this.dotConnect.polkaBatchTxsToHermes( amount, inboundAddress, memo ); return batchTxHash; } }