@web3auth/no-modal
Version:
Multi chain wallet aggregator for web3Auth
42 lines (38 loc) • 1.59 kB
JavaScript
;
var auth = require('@web3auth/auth');
var walletMiddleware = require('./walletMiddleware.js');
function createEthMiddleware(providerHandlers) {
const engine = auth.JRPCEngineV2.create({
middleware: [auth.createScaffoldMiddlewareV2({
eth_syncing: false
}), walletMiddleware.createWalletMiddlewareV2(providerHandlers)]
});
return engine.asMiddleware();
}
function createEthChainSwitchMiddleware({
switchChain,
addChain
}) {
async function walletSwitchEthereumChainHandler(params) {
var _request$params;
const request = params.request;
const chainParams = (_request$params = request.params) !== null && _request$params !== void 0 && _request$params.length ? request.params[0] : undefined;
if (!chainParams) throw auth.rpcErrors.invalidParams("Missing chainId");
await switchChain(chainParams);
return null;
}
async function walletAddEthereumChainHandler(params) {
var _request$params2;
const request = params.request;
const chainConfig = (_request$params2 = request.params) !== null && _request$params2 !== void 0 && _request$params2.length ? request.params[0] : undefined;
if (!chainConfig) throw auth.rpcErrors.invalidParams("Missing chainConfig");
await addChain(chainConfig);
return null;
}
return auth.createScaffoldMiddlewareV2({
wallet_switchEthereumChain: walletSwitchEthereumChainHandler,
wallet_addEthereumChain: walletAddEthereumChainHandler
});
}
exports.createEthChainSwitchMiddleware = createEthChainSwitchMiddleware;
exports.createEthMiddleware = createEthMiddleware;