mirror of
https://github.com/Brotocol-xyz/bro-sdk.git
synced 2026-01-12 14:54:21 +08:00
feat: add GHIBLICZ token support on EVM side
This commit is contained in:
@@ -1,50 +0,0 @@
|
||||
import { requestAPI } from "../../utils/apiHelpers"
|
||||
import { BigNumber } from "../../utils/BigNumber"
|
||||
import { isNotNull } from "../../utils/typeHelpers"
|
||||
import { KnownChainId, KnownTokenId } from "../../utils/types/knownIds"
|
||||
import { SDKGlobalContext } from "../../xlinkSdkUtils/types.internal"
|
||||
|
||||
export interface DexAggregatorRoute {
|
||||
provider: "icecreamswap"
|
||||
toAmount: BigNumber
|
||||
}
|
||||
export async function getDexAggregatorRoutes(
|
||||
sdkContext: SDKGlobalContext,
|
||||
info: {
|
||||
fromChain: KnownChainId.EVMChain
|
||||
fromToken: KnownTokenId.EVMToken
|
||||
toToken: KnownTokenId.EVMToken
|
||||
amount: BigNumber
|
||||
slippage: BigNumber
|
||||
},
|
||||
): Promise<DexAggregatorRoute[]> {
|
||||
const resp = await requestAPI<{ routes: API_DexAggregatorRoute[] }>(
|
||||
sdkContext,
|
||||
{
|
||||
method: "GET",
|
||||
path: "/xlink/evm/dex-aggregator-routes",
|
||||
query: {
|
||||
fromChain: info.fromChain,
|
||||
fromToken: info.fromToken,
|
||||
toToken: info.toToken,
|
||||
amount: BigNumber.toString(info.amount),
|
||||
slippage: BigNumber.toString(info.slippage),
|
||||
},
|
||||
},
|
||||
)
|
||||
|
||||
const routes = await Promise.all(
|
||||
resp.routes.map(
|
||||
async (route): Promise<null | DexAggregatorRoute> => ({
|
||||
...route,
|
||||
toAmount: BigNumber.from(route.toAmount),
|
||||
}),
|
||||
),
|
||||
)
|
||||
|
||||
return routes.filter(isNotNull)
|
||||
}
|
||||
interface API_DexAggregatorRoute {
|
||||
provider: "icecreamswap"
|
||||
toAmount: `${number}`
|
||||
}
|
||||
@@ -206,6 +206,7 @@ const _getOnChainConfigsImpl = async (
|
||||
ONCHAIN_CONFIG_KEY.ENDPOINT,
|
||||
ONCHAIN_CONFIG_KEY.REGISTRY,
|
||||
ONCHAIN_CONFIG_KEY.TIMELOCK,
|
||||
ONCHAIN_CONFIG_KEY.ENDPOINT_NATIVE,
|
||||
ONCHAIN_CONFIG_KEY.TOKEN_ABTC,
|
||||
ONCHAIN_CONFIG_KEY.TOKEN_ALEX,
|
||||
ONCHAIN_CONFIG_KEY.TOKEN_ATALEX,
|
||||
@@ -219,9 +220,9 @@ const _getOnChainConfigsImpl = async (
|
||||
ONCHAIN_CONFIG_KEY.TOKEN_WUBTC,
|
||||
ONCHAIN_CONFIG_KEY.TOKEN_DB20,
|
||||
ONCHAIN_CONFIG_KEY.TOKEN_DOG,
|
||||
ONCHAIN_CONFIG_KEY.ENDPOINT_NATIVE,
|
||||
ONCHAIN_CONFIG_KEY.TOKEN_STX,
|
||||
ONCHAIN_CONFIG_KEY.TOKEN_TRUMP,
|
||||
ONCHAIN_CONFIG_KEY.TOKEN_GHIBLICZ,
|
||||
],
|
||||
],
|
||||
}).catch(err => {
|
||||
@@ -242,32 +243,33 @@ const _getOnChainConfigsImpl = async (
|
||||
[EVMEndpointContract.BridgeEndpoint]: maybeAddress(configs[0]),
|
||||
[EVMEndpointContract.Registry]: maybeAddress(configs[1]),
|
||||
[EVMEndpointContract.TimeLock]: maybeAddress(configs[2]),
|
||||
[EVMToken.aBTC]: maybeAddress(configs[3]),
|
||||
[EVMToken.ALEX]: maybeAddress(configs[4]),
|
||||
[EVMToken.vLiALEX]: maybeAddress(configs[5]),
|
||||
[EVMToken.vLiSTX]: maybeAddress(configs[6]),
|
||||
[EVMEndpointContract.NativeBridgeEndpoint]: maybeAddress(configs[3]),
|
||||
[EVMToken.aBTC]: maybeAddress(configs[4]),
|
||||
[EVMToken.ALEX]: maybeAddress(configs[5]),
|
||||
[EVMToken.vLiALEX]: maybeAddress(configs[6]),
|
||||
[EVMToken.vLiSTX]: maybeAddress(configs[7]),
|
||||
// prettier-ignore
|
||||
[
|
||||
chain === KnownChainId.EVM.Base ? EVMToken.USDC :
|
||||
EVMToken.USDT
|
||||
]: maybeAddress(configs[7]),
|
||||
]: maybeAddress(configs[8]),
|
||||
// prettier-ignore
|
||||
[
|
||||
chain === KnownChainId.EVM.BSC ? EVMToken.BTCB :
|
||||
chain === KnownChainId.EVM.Base ? EVMToken.cbBTC :
|
||||
EVMToken.WBTC
|
||||
]:
|
||||
maybeAddress(configs[8]),
|
||||
[EVMToken.LUNR]: maybeAddress(configs[9]),
|
||||
[EVMToken.SKO]: maybeAddress(configs[10]),
|
||||
[EVMToken.sUSDT]: maybeAddress(configs[11]),
|
||||
[EVMToken.uBTC]: maybeAddress(configs[12]),
|
||||
[EVMToken.wuBTC]: maybeAddress(configs[13]),
|
||||
[EVMToken.DB20]: maybeAddress(configs[14]),
|
||||
[EVMToken.DOG]: maybeAddress(configs[15]),
|
||||
[EVMEndpointContract.NativeBridgeEndpoint]: maybeAddress(configs[16]),
|
||||
maybeAddress(configs[9]),
|
||||
[EVMToken.LUNR]: maybeAddress(configs[10]),
|
||||
[EVMToken.SKO]: maybeAddress(configs[11]),
|
||||
[EVMToken.sUSDT]: maybeAddress(configs[12]),
|
||||
[EVMToken.uBTC]: maybeAddress(configs[13]),
|
||||
[EVMToken.wuBTC]: maybeAddress(configs[14]),
|
||||
[EVMToken.DB20]: maybeAddress(configs[15]),
|
||||
[EVMToken.DOG]: maybeAddress(configs[16]),
|
||||
[EVMToken.STX]: maybeAddress(configs[17]),
|
||||
[EVMToken.TRUMP]: maybeAddress(configs[18]),
|
||||
[EVMToken.GHIBLICZ]: maybeAddress(configs[19]),
|
||||
}
|
||||
}
|
||||
function maybeAddress(value: string | null): Address | undefined {
|
||||
@@ -314,4 +316,7 @@ enum ONCHAIN_CONFIG_KEY {
|
||||
|
||||
// https://t.me/c/1599543687/69562
|
||||
TOKEN_TRUMP = "TOKEN_TRUMP",
|
||||
|
||||
// https://t.me/c/1599543687/73009
|
||||
TOKEN_GHIBLICZ = "TOKEN_GHIBLICZ",
|
||||
}
|
||||
|
||||
@@ -340,4 +340,14 @@ export const stxTokenContractAddresses_legacy: Record<
|
||||
contractName: "runes-trump",
|
||||
}),
|
||||
},
|
||||
[KnownTokenId.Stacks.GHIBLICZ]: {
|
||||
[KnownChainId.Stacks.Mainnet]: wrapContractAddress("mainnet", {
|
||||
deployerAddress: xlinkContractsMultisigMainnet,
|
||||
contractName: "bsc-ghiblicz",
|
||||
}),
|
||||
[KnownChainId.Stacks.Testnet]: wrapContractAddress("testnet", {
|
||||
deployerAddress: xlinkContractsMultisigTestnet,
|
||||
contractName: "bsc-ghiblicz",
|
||||
}),
|
||||
},
|
||||
}
|
||||
|
||||
@@ -83,6 +83,7 @@ export namespace KnownTokenId {
|
||||
export const DOG = tokenId("evm-dog")
|
||||
export const STX = tokenId("evm-stx")
|
||||
export const TRUMP = tokenId("evm-trump")
|
||||
export const GHIBLICZ = tokenId("evm-ghiblicz")
|
||||
}
|
||||
/** This type includes all known tokens on EVM-compatible blockchains. */
|
||||
export type EVMToken = (typeof _allKnownEVMTokens)[number]
|
||||
@@ -114,6 +115,7 @@ export namespace KnownTokenId {
|
||||
export const DOG = tokenId("stx-dog")
|
||||
export const STX = tokenId("stx-stx")
|
||||
export const TRUMP = tokenId("stx-trump")
|
||||
export const GHIBLICZ = tokenId("stx-ghiblicz")
|
||||
}
|
||||
const _allKnownStacksTokens = [
|
||||
Stacks.sUSDT,
|
||||
@@ -129,6 +131,7 @@ export namespace KnownTokenId {
|
||||
Stacks.DOG,
|
||||
Stacks.STX,
|
||||
Stacks.TRUMP,
|
||||
Stacks.GHIBLICZ,
|
||||
] as const
|
||||
export type StacksToken =
|
||||
| TokenId<`a Stacks token`>
|
||||
|
||||
Reference in New Issue
Block a user