diff --git a/packages/swapper/src/swappers/StonfiSwapper/swapperApi/getTradeQuote.ts b/packages/swapper/src/swappers/StonfiSwapper/swapperApi/getTradeQuote.ts index 93fac8e61ca..f80c30c4c4b 100644 --- a/packages/swapper/src/swappers/StonfiSwapper/swapperApi/getTradeQuote.ts +++ b/packages/swapper/src/swappers/StonfiSwapper/swapperApi/getTradeQuote.ts @@ -5,11 +5,14 @@ import { SettlementMethod } from '@ston-fi/omniston-sdk' import type { CommonTradeQuoteInput, TradeQuote, TradeQuoteResult } from '../../../types' import { SwapperName, TradeQuoteError } from '../../../types' import { makeSwapErrorRight } from '../../../utils' +import { getTreasuryAddressFromChainId } from '../../utils/helpers/helpers' import type { OmnistonAssetAddress, StonfiTradeSpecific } from '../types' import { STONFI_DEFAULT_SLIPPAGE_BPS, STONFI_QUOTE_TIMEOUT_MS } from '../utils/constants' import { + affiliateBpsToNumber, calculateRate, slippageDecimalToBps, + tonAddressToOmnistonAddress, validateTonAssets, waitForQuote, } from '../utils/helpers' @@ -47,6 +50,7 @@ export const getTradeQuote = async (input: CommonTradeQuoteInput): Promise { + return { + blockchain: Blockchain.TON, + address, + } +} + +export const affiliateBpsToNumber = (affiliateBps: string | undefined): number => { + if (!affiliateBps) return 0 + const parsed = parseInt(affiliateBps, 10) + if (Number.isNaN(parsed) || !Number.isFinite(parsed) || parsed < 0) return 0 + return parsed +} + export const waitForQuote = ( omniston: Omniston, request: QuoteRequest, diff --git a/packages/swapper/src/swappers/utils/helpers/helpers.ts b/packages/swapper/src/swappers/utils/helpers/helpers.ts index 7376d88a1d2..b595483edbb 100644 --- a/packages/swapper/src/swappers/utils/helpers/helpers.ts +++ b/packages/swapper/src/swappers/utils/helpers/helpers.ts @@ -27,6 +27,7 @@ import { DAO_TREASURY_POLYGON, DAO_TREASURY_SOLANA, DAO_TREASURY_STARKNET, + DAO_TREASURY_TON, isTreasuryChainId, } from '@shapeshiftoss/utils' @@ -72,6 +73,7 @@ const DAO_TREASURY_BY_CHAIN_ID: Record = { [KnownChainIds.SolanaMainnet]: DAO_TREASURY_SOLANA, [KnownChainIds.BitcoinMainnet]: DAO_TREASURY_BITCOIN, [KnownChainIds.StarknetMainnet]: DAO_TREASURY_STARKNET, + [KnownChainIds.TonMainnet]: DAO_TREASURY_TON, } export const getTreasuryAddressFromChainId = (chainId: ChainId): string => { diff --git a/packages/utils/src/treasury.ts b/packages/utils/src/treasury.ts index fcde7760dba..023d29c925f 100644 --- a/packages/utils/src/treasury.ts +++ b/packages/utils/src/treasury.ts @@ -16,6 +16,7 @@ export const treasuryChainIds = [ KnownChainIds.SolanaMainnet, KnownChainIds.BitcoinMainnet, KnownChainIds.StarknetMainnet, + KnownChainIds.TonMainnet, ] as const export type TreasuryChainId = (typeof treasuryChainIds)[number] @@ -38,3 +39,4 @@ export const DAO_TREASURY_BITCOIN = 'bc1qr2whxtd0gvqnctcxlynwejp6fvntv0mtxkv0dlv export const DAO_TREASURY_NEAR = 'f471d0b0f90593d85125f38aaf5458748d6f23fd5b437b844d293d8e87557070' export const DAO_TREASURY_STARKNET = '0x052a1132ea4db81Bde863AFb18a4d4CE5de9d3efdfda6b3DaA6484e26425D467' +export const DAO_TREASURY_TON = 'UQBGXUskbTDkLXJO_Q6cQFVbbkgvXKplcIhijiO5oDcB5qkI'