diff --git a/README.md b/README.md index 3ce41cf..7edadfc 100644 --- a/README.md +++ b/README.md @@ -17,7 +17,6 @@ All channels support transfers in both directions. | acala | INTR IBTC | | astar | INTR IBTC | | bifrost | BNC VDOT | -| parallel | INTR IBTC | | polkadot | DOT | | polkadot asset hub | USDT | | hydradx | HDX IBTC | @@ -27,7 +26,6 @@ All channels support transfers in both directions. | channel | tokens | | ---------------- | -------------- | | bifrost | VKSM | -| heiko | KBTC KINT | | karura | KBTC KINT LKSM | | kusama | KSM | | kusama asset hub | USDT | diff --git a/scripts/configs/parallel-heiko.yml b/scripts/configs/parallel-heiko.yml deleted file mode 100644 index 5355ba5..0000000 --- a/scripts/configs/parallel-heiko.yml +++ /dev/null @@ -1,25 +0,0 @@ -endpoint: - - wss://heiko-rpc.parallel.fi -mock-signature-host: true - -import-storage: - System: - Account: - - - - - - 5GrwvaEF5zXb26Fz9rcQpDWS57CtERHpNehXCPcNoHGKutQY # Alice - - providers: 1 - data: - free: '1000000000000000' - Assets: - Account: - - - - - - 121 # KBTC - - 5GrwvaEF5zXb26Fz9rcQpDWS57CtERHpNehXCPcNoHGKutQY # Alice - - balance: '1000000000000000' - - - - - - 119 # KINT - - 5GrwvaEF5zXb26Fz9rcQpDWS57CtERHpNehXCPcNoHGKutQY # Alice - - balance: '1000000000000000' \ No newline at end of file diff --git a/scripts/configs/parallel.yml b/scripts/configs/parallel.yml deleted file mode 100644 index b693c9c..0000000 --- a/scripts/configs/parallel.yml +++ /dev/null @@ -1,26 +0,0 @@ -endpoint: - - wss://parallel-rpc.dwellir.com - - wss://polkadot-parallel-rpc.parallel.fi -mock-signature-host: true - -import-storage: - System: - Account: - - - - - - 5GrwvaEF5zXb26Fz9rcQpDWS57CtERHpNehXCPcNoHGKutQY # Alice - - providers: 1 - data: - free: '1000000000000000' - Assets: - Account: - - - - - - 122 # IBTC - - 5GrwvaEF5zXb26Fz9rcQpDWS57CtERHpNehXCPcNoHGKutQY # Alice - - balance: '1000000000000000' - - - - - - 120 # INTR - - 5GrwvaEF5zXb26Fz9rcQpDWS57CtERHpNehXCPcNoHGKutQY # Alice - - balance: '1000000000000000' diff --git a/scripts/kintsugi-chopsticks-test.ts b/scripts/kintsugi-chopsticks-test.ts index c928915..05db003 100644 --- a/scripts/kintsugi-chopsticks-test.ts +++ b/scripts/kintsugi-chopsticks-test.ts @@ -4,7 +4,6 @@ import { KaruraAdapter } from "../src/adapters/acala"; import { BifrostKusamaAdapter } from "../src/adapters/bifrost"; import { KintsugiAdapter } from "../src/adapters/interlay"; -// import { HeikoAdapter } from "../src/adapters/parallel"; import { KusamaAdapter } from "../src/adapters/polkadot"; import { BaseCrossChainAdapter } from "../src/base-chain-adapter"; import { RouterTestCase, runTestCasesAndExit } from "./chopsticks-test"; @@ -23,7 +22,6 @@ async function main(): Promise { // relaychain gets its port last after all parachains. kintsugi: { adapter: new KintsugiAdapter(), endpoints: ['ws://127.0.0.1:8000'] }, karura: { adapter: new KaruraAdapter(), endpoints: ['ws://127.0.0.1:8001'] }, - // heiko: { adapter: new HeikoAdapter(), endpoints: ['ws://127.0.0.1:8002'] }, bifrost: { adapter: new BifrostKusamaAdapter(), endpoints: ['ws://127.0.0.1:8002'] }, kusama: { adapter: new KusamaAdapter(), endpoints: ['ws://127.0.0.1:8003'] }, }; diff --git a/src/adapters/interlay.spec.ts b/src/adapters/interlay.spec.ts index e0eaf2e..6024e8d 100644 --- a/src/adapters/interlay.spec.ts +++ b/src/adapters/interlay.spec.ts @@ -7,7 +7,6 @@ import { PolkadotAdapter, KusamaAdapter } from "./polkadot"; import { InterlayAdapter, KintsugiAdapter } from "./interlay"; import { StatemineAdapter, StatemintAdapter } from "./statemint"; import { AcalaAdapter, KaruraAdapter } from "./acala"; -import { HeikoAdapter, ParallelAdapter } from "./parallel"; import { buildTestTxWithConfigData } from "../utils/shared-spec-methods"; import { BifrostKusamaAdapter } from "./bifrost"; import { HydraAdapter } from "./hydradx"; @@ -72,29 +71,27 @@ describe.skip("interlay-adapter should work", () => { } test("connect kintsugi to do xcm", async () => { - const fromChains = ["kintsugi", "karura", "heiko", "bifrost", "statemine", "kusama"] as ChainName[]; + const fromChains = ["kintsugi", "karura", "bifrost", "statemine", "kusama"] as ChainName[]; await connect(fromChains); const kintsugi = new KintsugiAdapter(); const karura = new KaruraAdapter(); - const heiko = new HeikoAdapter(); const bifrost = new BifrostKusamaAdapter(); const statemine = new StatemineAdapter(); const kusama = new KusamaAdapter(); await kintsugi.setApi(provider.getApi(fromChains[0])); await karura.setApi(provider.getApi(fromChains[1])); - await heiko.setApi(provider.getApi(fromChains[2])); await bifrost.setApi(provider.getApi(fromChains[3])); await statemine.setApi(provider.getApi(fromChains[4])); await kusama.setApi(provider.getApi(fromChains[5])); const bridge = new Bridge({ - adapters: [kintsugi, karura, heiko, bifrost, statemine, kusama], + adapters: [kintsugi, karura, bifrost, statemine, kusama], }); - // expected destinations: 1 (heiko, karura) + // expected destinations: 1 (karura) expect( bridge.router.getDestinationChains({ from: chains.kintsugi, @@ -102,7 +99,7 @@ describe.skip("interlay-adapter should work", () => { }).length ).toEqual(2); - // expected destinations: 2 (heiko and karura) + // expected destinations: 2 (karura) expect( bridge.router.getDestinationChains({ from: chains.kintsugi, @@ -125,7 +122,6 @@ describe.skip("interlay-adapter should work", () => { ).toEqual(1); - await runMyTestSuite(testAccount, bridge, "kintsugi", "heiko", "KBTC"); await runMyTestSuite(testAccount, bridge, "kintsugi", "karura", "KINT"); await runMyTestSuite(testAccount, bridge, "kintsugi", "karura", "KBTC"); await runMyTestSuite(testAccount, bridge, "kintsugi", "karura", "LKSM"); @@ -136,7 +132,7 @@ describe.skip("interlay-adapter should work", () => { }); test("connect interlay to do xcm", async () => { - const fromChains = ["interlay", "polkadot", "statemint", "hydra", "acala", "parallel", "astar"] as ChainName[]; + const fromChains = ["interlay", "polkadot", "statemint", "hydra", "acala", "astar"] as ChainName[]; await connect(fromChains); @@ -146,7 +142,6 @@ describe.skip("interlay-adapter should work", () => { const hydra = new HydraAdapter(); const acala = new AcalaAdapter(); - const parallel = new ParallelAdapter(); const astar = new AstarAdapter(); await Promise.all([ @@ -155,13 +150,12 @@ describe.skip("interlay-adapter should work", () => { statemint.setApi(provider.getApi(fromChains[2])), hydra.setApi(provider.getApi(fromChains[3])), acala.setApi(provider.getApi(fromChains[4])), - parallel.setApi(provider.getApi(fromChains[5])), astar.setApi(provider.getApi(fromChains[6])) ]); const bridge = new Bridge({ - adapters: [interlay, polkadot, statemint, hydra, acala, parallel, astar], + adapters: [interlay, polkadot, statemint, hydra, acala, astar], }); expect( @@ -197,8 +191,6 @@ describe.skip("interlay-adapter should work", () => { await runMyTestSuite(testAccount, bridge, "interlay", "hydra", "IBTC"); await runMyTestSuite(testAccount, bridge, "interlay", "acala", "IBTC"); await runMyTestSuite(testAccount, bridge, "interlay", "acala", "INTR"); - await runMyTestSuite(testAccount, bridge, "interlay", "parallel", "IBTC"); - await runMyTestSuite(testAccount, bridge, "interlay", "parallel", "INTR"); await runMyTestSuite(testAccount, bridge, "interlay", "astar", "IBTC"); await runMyTestSuite(testAccount, bridge, "interlay", "astar", "INTR"); }); diff --git a/src/adapters/interlay.ts b/src/adapters/interlay.ts index 81aa2bb..c0206f5 100644 --- a/src/adapters/interlay.ts +++ b/src/adapters/interlay.ts @@ -50,21 +50,6 @@ export const interlayRoutersConfig: Omit[] = [ // from chopsticks: fee = 4 - Add 10x margin xcm: { fee: { token: "IBTC", amount: "40" }, weightLimit: DEST_WEIGHT }, }, - { - to: "parallel", - token: "INTR", - xcm: { - // during chopsticks test: fee = 6_535_947_712 Add 10x margin - fee: { token: "INTR", amount: "65359477120" }, - weightLimit: DEST_WEIGHT, - }, - }, - { - to: "parallel", - token: "IBTC", - // during chopsticks test: fee = 103 Add 10x margin - xcm: { fee: { token: "IBTC", amount: "1030" }, weightLimit: DEST_WEIGHT }, - }, { to: "phala", token: "PHA", @@ -217,24 +202,6 @@ export const kintsugiRoutersConfig: Omit[] = [ weightLimit: DEST_WEIGHT, }, }, - { - to: "heiko", - token: "KBTC", - xcm: { - // from local tests on choptsicks: actual fees sat around 103 - fee: { token: "KBTC", amount: "1030" }, - weightLimit: DEST_WEIGHT, - }, - }, - { - to: "heiko", - token: "KINT", - xcm: { - // recent fee during chopsticks test: fee = 16634783331. Added 10x margin - fee: { token: "KINT", amount: "166347833310" }, - weightLimit: DEST_WEIGHT, - }, - }, { to: "bifrost", token: "VKSM", diff --git a/src/adapters/parallel.spec.ts b/src/adapters/parallel.spec.ts deleted file mode 100644 index f18b095..0000000 --- a/src/adapters/parallel.spec.ts +++ /dev/null @@ -1,115 +0,0 @@ -import { firstValueFrom } from "rxjs"; - -import { ApiProvider } from "../api-provider"; -import { chains, ChainName } from "../configs"; -import { Bridge } from ".."; -import { KintsugiAdapter } from "./interlay"; -import { HeikoAdapter } from "./parallel"; -import { buildTestTxWithConfigData } from "../utils/shared-spec-methods"; - -// helper method for getting balances, configs, fees, and constructing xcm extrinsics -async function runMyTestSuite(testAccount: string, bridge: Bridge, from: ChainName, to: ChainName, token: string) { - const {fromBalance, toBalance, inputConfig, destFee, tx} = await buildTestTxWithConfigData(testAccount, bridge, from, to, token); - - // from balance prints/checks - console.log( - `balance ${token}: free-${fromBalance.free.toNumber()} locked-${fromBalance.locked.toNumber()} available-${fromBalance.available.toNumber()}` - ); - expect(fromBalance.available.toNumber()).toBeGreaterThanOrEqual(0); - expect(fromBalance.free.toNumber()).toBeGreaterThanOrEqual( - fromBalance.available.toNumber() - ); - expect(fromBalance.free.toNumber()).toEqual( - fromBalance.locked.add(fromBalance.available).toNumber() - ); - - // toBalance prints/checks - console.log( - `balance at destination ${token}: free-${toBalance.free.toNumber()} locked-${toBalance.locked.toNumber()} available-${toBalance.available.toNumber()}` - ); - - // inputConfig prints/checks - console.log( - `inputConfig: min-${inputConfig.minInput.toNumber()} max-${inputConfig.maxInput.toNumber()} ss58-${ - inputConfig.ss58Prefix - } estimateFee-${inputConfig.estimateFee}` - ); - expect(inputConfig.minInput.toNumber()).toBeGreaterThan(0); - expect(inputConfig.maxInput.toNumber()).toBeLessThanOrEqual( - fromBalance.available.toNumber() - ); - - // destFee prints/checks - console.log( - `destFee: fee-${destFee.balance.toNumber()} ${destFee.token}` - ); - expect(destFee.balance.toNumber()).toBeGreaterThan(0); - - // tx method & params checks - expect(tx.method.section).toEqual("xTokens"); - expect(tx.args.length).toEqual(4); - expect(tx.method.method).toEqual("transfer"); -}; - -describe.skip("parallel-adapter should work", () => { - jest.setTimeout(30000); - - // alice - const testAccount = "hJKzPoi3MQnSLvbShxeDmzbtHncrMXe5zwS3Wa36P6kXeNpcv"; - const provider = new ApiProvider(); - - async function connect(chains: ChainName[]) { - return firstValueFrom(provider.connectFromChain(chains, undefined)); - } - - test("connect parallel-heiko to do xcm", async () => { - const fromChains = ["heiko", "kintsugi"] as ChainName[]; - - await connect(fromChains); - - const heiko = new HeikoAdapter(); - const kintsugi = new KintsugiAdapter(); - - await heiko.setApi(provider.getApi(fromChains[0])); - await kintsugi.setApi(provider.getApi(fromChains[1])); - - const bridge = new Bridge({ - adapters: [heiko, kintsugi], - }); - - expect( - bridge.router.getDestinationChains({ - from: chains.heiko, - token: "KBTC", - }).length - ).toEqual(1); - - await runMyTestSuite(testAccount, bridge, "heiko", "kintsugi", "KBTC"); - }); - - // in preparation for later addition of parallel <-> interlay XCM - // test("connect parallel to do xcm", async () => { - // const fromChains = ["parallel", "interlay"] as ChainName[]; - - // await connect(fromChains); - - // const parallel = new ParallelAdapter(); - // const interlay = new InterlayAdapter(); - - // await parallel.setApi(provider.getApi(fromChains[0])); - // await interlay.setApi(provider.getApi(fromChains[1])); - - // const bridge = new Bridge({ - // adapters: [parallel, interlay], - // }); - - // expect( - // bridge.router.getDestinationChains({ - // from: chains.interlay, - // token: "IBTC", - // }).length - // ).toEqual(1); - - // await runMyTestSuite(testAccount, bridge, "parallel", "interlay", "IBTC"); - // }); -}); diff --git a/src/adapters/parallel.ts b/src/adapters/parallel.ts deleted file mode 100644 index 37d2f21..0000000 --- a/src/adapters/parallel.ts +++ /dev/null @@ -1,274 +0,0 @@ -import { Storage } from "@acala-network/sdk/utils/storage"; -import { AnyApi, FixedPointNumber as FN } from "@acala-network/sdk-core"; -import { combineLatest, map, Observable } from "rxjs"; - -import { SubmittableExtrinsic } from "@polkadot/api/types"; -import { DeriveBalancesAll } from "@polkadot/api-derive/balances/types"; -import { ISubmittableResult } from "@polkadot/types/types"; - -import { BalanceAdapter, BalanceAdapterConfigs } from "../balance-adapter"; -import { BaseCrossChainAdapter } from "../base-chain-adapter"; -import { ChainName, chains } from "../configs"; -import { ApiNotFound, CurrencyNotFound } from "../errors"; -import { - BalanceData, - BasicToken, - CrossChainRouterConfigs, - CrossChainTransferParams, -} from "../types"; -import { xTokensHelper } from "../utils/xtokens-helper"; - -const DEST_WEIGHT = "Unlimited"; - -export const parallelRoutersConfig: Omit[] = [ - { - to: "interlay", - token: "IBTC", - xcm: { - // during chopsticks test: fee = 71 Add 10x margin - fee: { token: "IBTC", amount: "710" }, - weightLimit: DEST_WEIGHT, - }, - }, - { - to: "interlay", - token: "INTR", - xcm: { - // during chopsticks test: fee = 21_660_472 Add 10x margin - fee: { token: "INTR", amount: "216604720" }, - weightLimit: DEST_WEIGHT, - }, - }, -]; - -export const heikoRoutersConfig: Omit[] = [ - { - to: "kintsugi", - token: "KBTC", - xcm: { - // chopsticks tests indicate fees are 107 - fee: { token: "KBTC", amount: "1070" }, - weightLimit: DEST_WEIGHT, - }, - }, - { - to: "kintsugi", - token: "KINT", - xcm: { - fee: { token: "KINT", amount: "2471893330" }, // 247189333 fee in recent chopsticks test. Added 10x margin - weightLimit: DEST_WEIGHT, - }, - }, -]; - -export const parallelTokensConfig: Record< - string, - Record -> = { - parallel: { - // ed confirmed via assets.asset() - IBTC: { name: "IBTC", symbol: "IBTC", decimals: 8, ed: "1" }, - INTR: { name: "INTR", symbol: "INTR", decimals: 10, ed: "1" }, - }, - heiko: { - // ed confirmed via assets.asset() - KBTC: { name: "KBTC", symbol: "KBTC", decimals: 8, ed: "0" }, - KINT: { name: "Kintsugi", symbol: "KINT", decimals: 12, ed: "0" }, - }, -}; - -const SUPPORTED_TOKENS: Record = { - IBTC: 122, // asset id 122 - INTR: 120, // asset id 120 - KBTC: 121, // asset id 121 - KINT: 119, // asset id 119 -}; - -// eslint-disable-next-line @typescript-eslint/explicit-module-boundary-types -const createBalanceStorages = (api: AnyApi) => { - return { - balances: (address: string) => - Storage.create({ - api, - path: "derive.balances.all", - params: [address], - }), - assets: (tokenId: number, address: string) => - Storage.create({ - api, - path: "query.assets.account", - params: [tokenId, address], - }), - }; -}; - -class ParallelBalanceAdapter extends BalanceAdapter { - private storages: ReturnType; - - constructor({ api, chain, tokens }: BalanceAdapterConfigs) { - super({ api, chain, tokens }); - this.storages = createBalanceStorages(api); - } - - public subscribeBalance( - token: string, - address: string - ): Observable { - const storage = this.storages.balances(address); - - if (token === this.nativeToken) { - return storage.observable.pipe( - map((data) => ({ - free: FN.fromInner(data.freeBalance.toString(), this.decimals), - locked: FN.fromInner(data.lockedBalance.toString(), this.decimals), - reserved: FN.fromInner( - data.reservedBalance.toString(), - this.decimals - ), - available: FN.fromInner( - data.availableBalance.toString(), - this.decimals - ), - })) - ); - } - - const tokenId = SUPPORTED_TOKENS[token]; - - if (tokenId === undefined) { - throw new CurrencyNotFound(token); - } - - return this.storages.assets(tokenId, address).observable.pipe( - map((balance) => { - const amount = FN.fromInner( - balance.unwrapOrDefault()?.balance?.toString() || "0", - this.getToken(token).decimals - ); - - return { - free: amount, - locked: new FN(0), - reserved: new FN(0), - available: amount, - }; - }) - ); - } -} - -class BaseParallelAdapter extends BaseCrossChainAdapter { - private balanceAdapter?: ParallelBalanceAdapter; - - public override async setApi(api: AnyApi) { - this.api = api; - - await api.isReady; - - const chain = this.chain.id as ChainName; - - this.balanceAdapter = new ParallelBalanceAdapter({ - chain, - api, - tokens: parallelTokensConfig[chain], - }); - } - - public subscribeTokenBalance( - token: string, - address: string - ): Observable { - if (!this.balanceAdapter) { - throw new ApiNotFound(this.chain.id); - } - - return this.balanceAdapter.subscribeBalance(token, address); - } - - public subscribeMaxInput( - token: string, - address: string, - to: ChainName - ): Observable { - if (!this.balanceAdapter) { - throw new ApiNotFound(this.chain.id); - } - - return combineLatest({ - txFee: - token === this.balanceAdapter?.nativeToken - ? this.estimateTxFee({ - amount: FN.ZERO, - to, - token, - address, - signer: address, - }) - : "0", - balance: this.balanceAdapter - .subscribeBalance(token, address) - .pipe(map((i) => i.available)), - }).pipe( - map(({ balance, txFee }) => { - const tokenMeta = this.balanceAdapter?.getToken(token); - const feeFactor = 1.2; - const fee = FN.fromInner(txFee, tokenMeta?.decimals).mul( - new FN(feeFactor) - ); - - // always minus ed - return balance - .minus(fee) - .minus(FN.fromInner(tokenMeta?.ed || "0", tokenMeta?.decimals)); - }) - ); - } - - public createTx( - params: CrossChainTransferParams - ): - | SubmittableExtrinsic<"promise", ISubmittableResult> - | SubmittableExtrinsic<"rxjs", ISubmittableResult> { - if (this.api === undefined) { - throw new ApiNotFound(this.chain.id); - } - - const { address, amount, to, token } = params; - const toChain = chains[to]; - - const accountId = this.api.createType("AccountId32", address).toHex(); - - const tokenId = SUPPORTED_TOKENS[token]; - - if (tokenId === undefined) { - throw new CurrencyNotFound(token); - } - - return xTokensHelper.transfer( - this.api, - this.chain, - toChain, - accountId, - token, - tokenId, - amount, - this.getDestWeight(token, to) || "Unlimited" - ); - } -} - -export class HeikoAdapter extends BaseParallelAdapter { - constructor() { - super(chains.heiko, heikoRoutersConfig, parallelTokensConfig.heiko); - } -} - -export class ParallelAdapter extends BaseParallelAdapter { - constructor() { - super( - chains.parallel, - parallelRoutersConfig, - parallelTokensConfig.parallel - ); - } -} diff --git a/src/bridge.spec.ts b/src/bridge.spec.ts index a30ac44..991b9e7 100644 --- a/src/bridge.spec.ts +++ b/src/bridge.spec.ts @@ -8,7 +8,6 @@ import { KintsugiAdapter, InterlayAdapter } from "./adapters/interlay"; import { FN } from "./types"; import { KusamaAdapter, PolkadotAdapter } from "./adapters/polkadot"; import { StatemineAdapter, StatemintAdapter } from "./adapters/statemint"; -import { HeikoAdapter, ParallelAdapter } from "./adapters/parallel"; import { AcalaAdapter, KaruraAdapter } from "./adapters/acala"; import { BifrostKusamaAdapter, BifrostPolkadotAdapter } from "./adapters/bifrost"; import { HydraAdapter } from "./adapters/hydradx"; @@ -29,11 +28,9 @@ describe.skip("Bridge sdk usage", () => { karura: new KaruraAdapter(), statemint: new StatemintAdapter(), statemine: new StatemineAdapter(), - heiko: new HeikoAdapter(), bifrost_polkadot: new BifrostPolkadotAdapter(), bifrost: new BifrostKusamaAdapter(), hydra: new HydraAdapter(), - parallel: new ParallelAdapter(), astar: new AstarAdapter(), phala: new PhalaAdapter(), }; @@ -176,7 +173,6 @@ describe.skip("Bridge sdk usage", () => { // kintsugi // printBidirectionalTxs("kintsugi", "kusama", "KSM"); // printBidirectionalTxs("kintsugi", "statemine", "USDT"); - // printBidirectionalTxs("kintsugi", "heiko", "KBTC"); // printBidirectionalTxs("kintsugi", "karura", "KINT"); // printBidirectionalTxs("kintsugi", "karura", "KBTC"); // printBidirectionalTxs("kintsugi", "karura", "LKSM"); @@ -193,8 +189,6 @@ describe.skip("Bridge sdk usage", () => { // printBidirectionalTxs("interlay", "hydra", "INTR"); // printBidirectionalTxs("interlay", "acala", "INTR"); // printBidirectionalTxs("interlay", "acala", "IBTC"); - // printBidirectionalTxs("interlay", "parallel", "INTR"); - // printBidirectionalTxs("interlay", "parallel", "IBTC"); // printBidirectionalTxs("interlay", "astar", "INTR"); // printBidirectionalTxs("interlay", "astar", "IBTC"); // printBidirectionalTxs("interlay", "bifrost_polkadot", "VDOT"); @@ -208,14 +202,12 @@ describe.skip("Bridge sdk usage", () => { ["kintsugi", "KINT"], ["karura", "KAR"], ["bifrost", "BNC"], - ["heiko", "HKO"], ["statemine", "KSM"], // polkadot network ["polkadot", "DOT"], ["interlay", "INTR"], ["acala", "ACA"], ["hydra", "HDX"], - ["parallel", "PARA"], ["bifrost_polkadot", "BNC"], ["statemint", "DOT"], ["phala", "PHA"], diff --git a/src/configs/chains/kusama-chains.ts b/src/configs/chains/kusama-chains.ts index 0d988d5..7e0abf3 100644 --- a/src/configs/chains/kusama-chains.ts +++ b/src/configs/chains/kusama-chains.ts @@ -53,12 +53,4 @@ export const kusamaChains = { // paraChainId: 2023, // ss58Prefix: 1285, // }, - heiko: { - id: "heiko", - display: "Parallel Heiko", - type: typeSubstrate, - icon: "https://resources.acala.network/_next/image?url=%2Fnetworks%2Fparallel.png&w=96&q=75", - paraChainId: 2085, - ss58Prefix: 110, - }, }; diff --git a/src/configs/chains/polkadot-chains.ts b/src/configs/chains/polkadot-chains.ts index 120a349..62e59f0 100644 --- a/src/configs/chains/polkadot-chains.ts +++ b/src/configs/chains/polkadot-chains.ts @@ -29,14 +29,6 @@ export const polkadotChains = { paraChainId: 2000, ss58Prefix: 10, }, - parallel: { - id: "parallel", - display: "Parallel", - type: typeSubstrate, - icon: "https://resources.acala.network/_next/image?url=%2Fnetworks%2Fparallel.png&w=96&q=75", - paraChainId: 2012, - ss58Prefix: 172, - }, // moonbeam: { // id: "moonbeam", // display: "Moonbeam",