Newer
Older
import { canDerive } from '@polkadot/extension-base/utils'
import { InjectedAccount } from '@polkadot/extension-inject/types'
import { SubjectInfo } from '@polkadot/ui-keyring/observable/types'
export function transformTabsAccounts(
accounts: SubjectInfo,
anyType = false
): InjectedAccount[] {
return Object.values(accounts)
.filter(({ json }) => !json.meta.isHidden)
.filter(({ type }) => (anyType ? true : canDerive(type)))
.sort(
(a, b) => (a.json.meta.whenCreated || 0) - (b.json.meta.whenCreated || 0)
)
.map(
({
json: {
address,
meta: { genesisHash, name },
},
type,
}): InjectedAccount => ({
address,
genesisHash,
name,
type,
})
)
}