You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
34 lines
1.0 KiB
34 lines
1.0 KiB
3 years ago
|
import { MESSAGE_TYPE } from '../../../../../shared/constants/app';
|
||
|
|
||
|
/**
|
||
|
* A wrapper for `eth_accounts` that returns an empty array when permission is denied.
|
||
|
*/
|
||
|
|
||
|
const requestEthereumAccounts = {
|
||
|
methodNames: [MESSAGE_TYPE.ETH_ACCOUNTS],
|
||
|
implementation: ethAccountsHandler,
|
||
|
hookNames: {
|
||
|
getAccounts: true,
|
||
|
},
|
||
|
};
|
||
|
export default requestEthereumAccounts;
|
||
|
|
||
|
/**
|
||
|
* @typedef {Record<string, Function>} EthAccountsOptions
|
||
|
* @property {Function} getAccounts - Gets the accounts for the requesting
|
||
|
* origin.
|
||
|
*/
|
||
|
|
||
|
/**
|
||
|
*
|
||
|
* @param {import('json-rpc-engine').JsonRpcRequest<unknown>} req - The JSON-RPC request object.
|
||
|
* @param {import('json-rpc-engine').JsonRpcResponse<true>} res - The JSON-RPC response object.
|
||
|
* @param {Function} _next - The json-rpc-engine 'next' callback.
|
||
|
* @param {Function} end - The json-rpc-engine 'end' callback.
|
||
|
* @param {EthAccountsOptions} options - The RPC method hooks.
|
||
|
*/
|
||
|
async function ethAccountsHandler(_req, res, _next, end, { getAccounts }) {
|
||
|
res.result = await getAccounts();
|
||
|
return end();
|
||
|
}
|