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); } }, }, }; }