|
|
|
@ -1,34 +1,30 @@ |
|
|
|
|
export default function getRestrictedMethods ({ getIdentities, getKeyringAccounts }) { |
|
|
|
|
return { |
|
|
|
|
'eth_accounts': { |
|
|
|
|
method: (_, res, __, end) => { |
|
|
|
|
getKeyringAccounts() |
|
|
|
|
.then((accounts) => { |
|
|
|
|
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 |
|
|
|
|
} |
|
|
|
|
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() |
|
|
|
|
return identities[secondAddress].lastSelected - identities[firstAddress].lastSelected |
|
|
|
|
}) |
|
|
|
|
.catch( |
|
|
|
|
(err) => { |
|
|
|
|
res.error = err |
|
|
|
|
end(err) |
|
|
|
|
}, |
|
|
|
|
) |
|
|
|
|
end() |
|
|
|
|
} catch (err) { |
|
|
|
|
res.error = err |
|
|
|
|
end(err) |
|
|
|
|
} |
|
|
|
|
}, |
|
|
|
|
}, |
|
|
|
|
} |
|
|
|
|