ghost-portal/packages/react-components/src/InputAddress/createItem.tsx

38 lines
914 B
TypeScript

// Copyright 2017-2023 @polkadot/react-components authors & contributors
// SPDX-License-Identifier: Apache-2.0
import type { KeyringSectionOption } from '@polkadot/ui-keyring/options/types';
import type { Option } from './types';
import React from 'react';
import { keyring } from '@polkadot/ui-keyring';
import { decodeAddress } from '@polkadot/util-crypto';
import KeyPair from './KeyPair';
export default function createItem (option: KeyringSectionOption, isUppercase = true): Option | null {
const allowedLength = keyring.keyring.type === 'ethereum'
? 20
: 32;
try {
if (decodeAddress(option.key).length >= allowedLength) {
return {
...option,
text: (
<KeyPair
address={option.key || ''}
isUppercase={isUppercase}
name={option.name}
/>
)
};
}
} catch {
// ignore
}
return null;
}