@web3auth/no-modal
Version:
Multi chain wallet aggregator for web3Auth
63 lines (59 loc) • 2.02 kB
JavaScript
;
var auth = require('@web3auth/auth');
var walletMidddleware = require('./walletMidddleware.js');
function createEthMiddleware(providerHandlers) {
const {
getAccounts,
getPrivateKey,
getPublicKey,
processTransaction,
processSignTransaction,
processEthSignMessage,
processTypedMessageV4,
processPersonalMessage,
processGetCapabilities,
processSendCalls,
processGetCallsStatus,
processShowCallsStatus
} = providerHandlers;
const ethMiddleware = auth.mergeMiddleware([auth.createScaffoldMiddleware({
eth_syncing: false
}), walletMidddleware.createWalletMiddleware({
getAccounts,
getPrivateKey,
getPublicKey,
processTransaction,
processEthSignMessage,
processSignTransaction,
processTypedMessageV4,
processPersonalMessage,
processGetCapabilities,
processSendCalls,
processGetCallsStatus,
processShowCallsStatus
})]);
return ethMiddleware;
}
function createEthChainSwitchMiddleware({
switchChain,
addChain
}) {
async function updateChain(req, res) {
var _req$params;
const chainParams = (_req$params = req.params) !== null && _req$params !== void 0 && _req$params.length ? req.params[0] : undefined;
if (!chainParams) throw auth.rpcErrors.invalidParams("Missing chainId");
res.result = await switchChain(chainParams);
}
async function addChainConfig(req, res) {
var _req$params2;
const chainConfig = (_req$params2 = req.params) !== null && _req$params2 !== void 0 && _req$params2.length ? req.params[0] : undefined;
if (!chainConfig) throw auth.rpcErrors.invalidParams("Missing chainConfig");
res.result = await addChain(chainConfig);
}
return auth.createScaffoldMiddleware({
wallet_switchEthereumChain: auth.createAsyncMiddleware(updateChain),
wallet_addEthereumChain: auth.createAsyncMiddleware(addChainConfig)
});
}
exports.createEthChainSwitchMiddleware = createEthChainSwitchMiddleware;
exports.createEthMiddleware = createEthMiddleware;