export default function getRestrictedMethods({ getIdentities, getKeyringAccounts, }) { return { eth_accounts: { method: async (_, res, __, end) => { try { const accounts = await getKeyringAccounts() const identities = getIdentities() res.result = accounts.sort((firstAddress, secondAddress) => { if (!identities[firstAddress]) { throw new Error(`Missing identity for address ${firstAddress}`) } else if (!identities[secondAddress]) { throw new Error(`Missing identity for address ${secondAddress}`) } else if ( identities[firstAddress].lastSelected === identities[secondAddress].lastSelected ) { return 0 } else if (identities[firstAddress].lastSelected === undefined) { return 1 } else if (identities[secondAddress].lastSelected === undefined) { return -1 } return ( identities[secondAddress].lastSelected - identities[firstAddress].lastSelected ) }) end() } catch (err) { res.error = err end(err) } }, }, } }