ghost-keychain/packages/extension-chains/src/index.ts
2019-09-26 10:24:57 +02:00

52 lines
1.4 KiB
TypeScript

// Copyright 2019 @polkadot/extension-chains authors & contributors
// This software may be modified and distributed under the terms
// of the Apache-2.0 license. See the LICENSE file for details.
import { Metadata } from '@polkadot/types';
import { Chain } from './types';
// imports chain details, generally metadata. For the generation of these,
// inside the api, run `yarn chain:info --ws <url>`
import alexander from './alexander';
import edgeware from './edgeware';
import kusamaCC1 from './kusama-cc1';
import kusamaCC2 from './kusama-cc2';
const chains: Map<string, Chain> = new Map(
[alexander, edgeware, kusamaCC1, kusamaCC2].map(
({ chain, genesisHash, icon, metaCalls, specVersion, ss58Format, tokenDecimals, tokenSymbol, types }): [string, Chain] => [
genesisHash,
{
genesisHash,
icon,
meta: metaCalls
? new Metadata(Buffer.from(metaCalls, 'base64'))
: undefined,
name: chain,
specVersion,
ss58Format,
tokenDecimals,
tokenSymbol,
types: types || {}
}
]
)
);
const UNKNOWN_CHAIN: Chain = {
icon: 'polkadot',
isUnknown: true,
name: 'Unknown chain',
specVersion: 0,
ss58Format: 42,
tokenDecimals: 0,
tokenSymbol: 'UNIT',
types: {
Keys: 'SessionKeysSubstrate'
}
};
export default function findChain (genesisHash?: string | null): Chain {
return chains.get(genesisHash || '') || UNKNOWN_CHAIN;
}