Skip to content
Draft
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 2 additions & 0 deletions .env
Original file line number Diff line number Diff line change
Expand Up @@ -311,3 +311,5 @@ VITE_FEATURE_KATANA=false
VITE_FEATURE_YIELD_XYZ=false
VITE_YIELD_XYZ_API_KEY=06903960-e442-4870-81eb-03ff3ad4c035
VITE_FEATURE_YIELD_MULTI_ACCOUNT=false
VITE_TON_NODE_URL=https://toncenter.com/api/v2/jsonRPC
VITE_FEATURE_TON=false
1 change: 1 addition & 0 deletions .env.development
Original file line number Diff line number Diff line change
Expand Up @@ -97,3 +97,4 @@ VITE_FEATURE_AVNU_SWAP=true
VITE_FEATURE_NEAR=true
VITE_FEATURE_KATANA=true
VITE_FEATURE_YIELD_XYZ=true
VITE_FEATURE_TON=true
2 changes: 1 addition & 1 deletion .yarnrc.yml
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,7 @@ nodeLinker: node-modules

npmAuthToken: "${NPM_AUTH-fallback}"

npmRegistryServer: "https://registry.npmjs.org"
npmRegistryServer: "http://127.0.0.1:4873"

plugins:
- path: .yarn/plugins/@yarnpkg/plugin-interactive-tools.cjs
Expand Down
10 changes: 10 additions & 0 deletions headers/csps/chains/ton.ts
Original file line number Diff line number Diff line change
@@ -0,0 +1,10 @@
import { loadEnv } from 'vite'

import type { Csp } from '../../types'

const mode = process.env.MODE ?? process.env.NODE_ENV ?? 'development'
const env = loadEnv(mode, process.cwd(), '')

export const csp: Csp = {
'connect-src': [env.VITE_TON_NODE_URL],
}
2 changes: 2 additions & 0 deletions headers/csps/index.ts
Original file line number Diff line number Diff line change
Expand Up @@ -26,6 +26,7 @@ import { csp as solana } from './chains/solana'
import { csp as starknet } from './chains/starknet'
import { csp as sui } from './chains/sui'
import { csp as thorchain } from './chains/thorchain'
import { csp as ton } from './chains/ton'
import { csp as tron } from './chains/tron'
import { csp as zcash } from './chains/zcash'
import { csp as chatwoot } from './chatwoot'
Expand Down Expand Up @@ -116,6 +117,7 @@ export const csps = [
starknet,
sui,
thorchain,
ton,
tron,
zcash,
mayachain,
Expand Down
39 changes: 20 additions & 19 deletions package.json
Original file line number Diff line number Diff line change
Expand Up @@ -104,24 +104,24 @@
"@shapeshiftoss/chain-adapters": "workspace:^",
"@shapeshiftoss/contracts": "workspace:^",
"@shapeshiftoss/errors": "workspace:^",
"@shapeshiftoss/hdwallet-coinbase": "1.62.38",
"@shapeshiftoss/hdwallet-core": "1.62.38",
"@shapeshiftoss/hdwallet-gridplus": "1.62.38",
"@shapeshiftoss/hdwallet-keepkey": "1.62.38",
"@shapeshiftoss/hdwallet-keepkey-webusb": "1.62.38",
"@shapeshiftoss/hdwallet-keplr": "1.62.38",
"@shapeshiftoss/hdwallet-ledger": "1.62.38",
"@shapeshiftoss/hdwallet-ledger-webhid": "1.62.38",
"@shapeshiftoss/hdwallet-ledger-webusb": "1.62.38",
"@shapeshiftoss/hdwallet-metamask-multichain": "1.62.38",
"@shapeshiftoss/hdwallet-native": "1.62.38",
"@shapeshiftoss/hdwallet-native-vault": "1.62.38",
"@shapeshiftoss/hdwallet-phantom": "1.62.38",
"@shapeshiftoss/hdwallet-trezor": "1.62.38",
"@shapeshiftoss/hdwallet-trezor-connect": "1.62.38",
"@shapeshiftoss/hdwallet-vultisig": "1.62.38",
"@shapeshiftoss/hdwallet-walletconnect": "1.62.38",
"@shapeshiftoss/hdwallet-walletconnectv2": "1.62.38",
"@shapeshiftoss/hdwallet-coinbase": "1.62.39-ton-chain.15",
"@shapeshiftoss/hdwallet-core": "1.62.39-ton-chain.16",
"@shapeshiftoss/hdwallet-gridplus": "1.62.39-ton-chain.15",
"@shapeshiftoss/hdwallet-keepkey": "1.62.39-ton-chain.15",
"@shapeshiftoss/hdwallet-keepkey-webusb": "1.62.39-ton-chain.15",
"@shapeshiftoss/hdwallet-keplr": "1.62.39-ton-chain.15",
"@shapeshiftoss/hdwallet-ledger": "1.62.39-ton-chain.15",
"@shapeshiftoss/hdwallet-ledger-webhid": "1.62.39-ton-chain.15",
"@shapeshiftoss/hdwallet-ledger-webusb": "1.62.39-ton-chain.15",
"@shapeshiftoss/hdwallet-metamask-multichain": "1.62.39-ton-chain.15",
"@shapeshiftoss/hdwallet-native": "1.62.39-ton-chain.16",
"@shapeshiftoss/hdwallet-native-vault": "1.62.39-ton-chain.16",
"@shapeshiftoss/hdwallet-phantom": "1.62.39-ton-chain.15",
"@shapeshiftoss/hdwallet-trezor": "1.62.39-ton-chain.15",
"@shapeshiftoss/hdwallet-trezor-connect": "1.62.39-ton-chain.15",
"@shapeshiftoss/hdwallet-vultisig": "1.62.39-ton-chain.15",
"@shapeshiftoss/hdwallet-walletconnect": "1.62.39-ton-chain.15",
"@shapeshiftoss/hdwallet-walletconnectv2": "1.62.39-ton-chain.15",
"@shapeshiftoss/swapper": "workspace:^",
"@shapeshiftoss/types": "workspace:^",
"@shapeshiftoss/unchained-client": "workspace:^",
Expand Down Expand Up @@ -321,6 +321,7 @@
"@types/react-dom": "^19.0.0",
"readable-stream": "3.6.0",
"react-polyglot@^0.7.2": "patch:react-polyglot@npm%3A0.7.2#./.yarn/patches/react-polyglot-npm-0.7.2-636f85156f.patch",
"gridplus-sdk/bs58check": "2.1.2"
"gridplus-sdk/bs58check": "2.1.2",
"@shapeshiftoss/hdwallet-native": "1.62.39-ton-chain.14"
}
}
13 changes: 13 additions & 0 deletions packages/caip/src/adapters/coingecko/index.ts
Original file line number Diff line number Diff line change
Expand Up @@ -27,6 +27,7 @@ import {
starknetChainId,
suiChainId,
thorchainChainId,
tonChainId,
tronChainId,
} from '../../constants'
import * as adapters from './generated'
Expand Down Expand Up @@ -55,6 +56,7 @@ export enum CoingeckoAssetPlatform {
Starknet = 'starknet',
Tron = 'tron',
Sui = 'sui',
Ton = 'the-open-network',
Near = 'near-protocol',
}

Expand Down Expand Up @@ -175,6 +177,15 @@ export const chainIdToCoingeckoAssetPlatform = (chainId: ChainId): string => {
`chainNamespace ${chainNamespace}, chainReference ${chainReference} not supported.`,
)
}
case CHAIN_NAMESPACE.Ton:
switch (chainReference) {
case CHAIN_REFERENCE.TonMainnet:
return CoingeckoAssetPlatform.Ton
default:
throw new Error(
`chainNamespace ${chainNamespace}, chainReference ${chainReference} not supported.`,
)
}
// No valid asset platform: https://api.coingecko.com/api/v3/asset_platforms
case CHAIN_NAMESPACE.Utxo:
default:
Expand Down Expand Up @@ -226,6 +237,8 @@ export const coingeckoAssetPlatformToChainId = (
return tronChainId
case CoingeckoAssetPlatform.Sui:
return suiChainId
case CoingeckoAssetPlatform.Ton:
return tonChainId
case CoingeckoAssetPlatform.Near:
return nearChainId
default:
Expand Down
11 changes: 10 additions & 1 deletion packages/caip/src/constants.ts
Original file line number Diff line number Diff line change
Expand Up @@ -27,6 +27,7 @@ export const tronAssetId: AssetId = 'tron:0x2b6653dc/slip44:195'
export const suiAssetId: AssetId = 'sui:35834a8a/slip44:784'
export const nearAssetId: AssetId = 'near:mainnet/slip44:397'
export const starknetAssetId: AssetId = 'starknet:SN_MAIN/slip44:9004'
export const tonAssetId: AssetId = 'ton:mainnet/slip44:607'
export const uniV2EthFoxArbitrumAssetId: AssetId =
'eip155:42161/erc20:0x5f6ce0ca13b87bd738519545d3e018e70e339c24'

Expand Down Expand Up @@ -91,6 +92,7 @@ export const tronChainId: ChainId = 'tron:0x2b6653dc'
export const suiChainId: ChainId = 'sui:35834a8a'
export const nearChainId: ChainId = 'near:mainnet'
export const starknetChainId: ChainId = 'starknet:SN_MAIN'
export const tonChainId: ChainId = 'ton:mainnet'

export const CHAIN_NAMESPACE = {
Evm: 'eip155',
Expand All @@ -101,6 +103,7 @@ export const CHAIN_NAMESPACE = {
Sui: 'sui',
Near: 'near',
Starknet: 'starknet',
Ton: 'ton',
} as const

type ValidChainMap = {
Expand Down Expand Up @@ -135,6 +138,7 @@ export const CHAIN_REFERENCE = {
SuiMainnet: '35834a8a', // First 8 chars of SUI mainnet genesis hash
NearMainnet: 'mainnet', // https://docs.reown.com/cloud/chains/chain-list (CAIP-2: near:mainnet)
StarknetMainnet: 'SN_MAIN', // https://namespaces.chainagnostic.org/starknet/caip2
TonMainnet: 'mainnet', // TON Mainnet
} as const

export const ASSET_NAMESPACE = {
Expand All @@ -148,6 +152,7 @@ export const ASSET_NAMESPACE = {
suiCoin: 'coin',
nep141: 'nep141', // NEAR fungible token standard: https://nomicon.io/Standards/Tokens/FungibleToken/Core
starknetToken: 'token',
jetton: 'jetton', // TON fungible token standard (TEP-74)
} as const

export const ASSET_REFERENCE = {
Expand Down Expand Up @@ -176,8 +181,9 @@ export const ASSET_REFERENCE = {
Solana: '501',
Tron: '195',
Sui: '784',
Near: '397', // https://github.com/satoshilabs/slips/blob/master/slip-0044.md
Near: '397',
Starknet: '9004',
Ton: '607',
} as const

export const VALID_CHAIN_IDS: ValidChainMap = Object.freeze({
Expand Down Expand Up @@ -214,6 +220,7 @@ export const VALID_CHAIN_IDS: ValidChainMap = Object.freeze({
[CHAIN_NAMESPACE.Sui]: [CHAIN_REFERENCE.SuiMainnet],
[CHAIN_NAMESPACE.Near]: [CHAIN_REFERENCE.NearMainnet],
[CHAIN_NAMESPACE.Starknet]: [CHAIN_REFERENCE.StarknetMainnet],
[CHAIN_NAMESPACE.Ton]: [CHAIN_REFERENCE.TonMainnet],
})

type ValidAssetNamespace = {
Expand All @@ -234,6 +241,7 @@ export const VALID_ASSET_NAMESPACE: ValidAssetNamespace = Object.freeze({
[CHAIN_NAMESPACE.Sui]: [ASSET_NAMESPACE.slip44, ASSET_NAMESPACE.suiCoin],
[CHAIN_NAMESPACE.Near]: [ASSET_NAMESPACE.slip44, ASSET_NAMESPACE.nep141],
[CHAIN_NAMESPACE.Starknet]: [ASSET_NAMESPACE.slip44, ASSET_NAMESPACE.starknetToken],
[CHAIN_NAMESPACE.Ton]: [ASSET_NAMESPACE.slip44, ASSET_NAMESPACE.jetton],
})

// We should prob change this once we add more chains
Expand All @@ -260,5 +268,6 @@ export const FEE_ASSET_IDS = [
suiAssetId,
nearAssetId,
starknetAssetId,
tonAssetId,
zecAssetId,
]
6 changes: 4 additions & 2 deletions packages/chain-adapters/package.json
Original file line number Diff line number Diff line change
Expand Up @@ -35,13 +35,15 @@
"@near-js/transactions": "^2.5.1",
"@near-js/utils": "^2.5.1",
"@shapeshiftoss/caip": "workspace:^",
"@shapeshiftoss/hdwallet-core": "1.62.38",
"@shapeshiftoss/hdwallet-ledger": "1.62.38",
"@shapeshiftoss/hdwallet-core": "1.62.39-ton-chain.15",
"@shapeshiftoss/hdwallet-ledger": "1.62.39-ton-chain.15",
"@shapeshiftoss/types": "workspace:^",
"@shapeshiftoss/unchained-client": "workspace:^",
"@shapeshiftoss/utils": "workspace:^",
"@solana/spl-token": "^0.4.9",
"@solana/web3.js": "^1.98.0",
"@ton/core": "^0.62.1",
"@ton/crypto": "^3.3.0",
"axios": "^1.13.0",
"bech32": "^2.0.0",
"bignumber.js": "^9.3.1",
Expand Down
1 change: 1 addition & 0 deletions packages/chain-adapters/src/index.ts
Original file line number Diff line number Diff line change
Expand Up @@ -8,6 +8,7 @@ export * from './evm'
export * as solana from './solana'
export * as starknet from './starknet'
export * as sui from './sui'
export * as ton from './ton'
export * as tron from './tron'
export * as near from './near'
export * from './utxo'
Loading