@web3auth/no-modal
Version:
Multi chain wallet aggregator for web3Auth
44 lines (41 loc) • 1.3 kB
JavaScript
import { createFetchMiddleware } from '@toruslabs/base-controllers';
import { mergeMiddleware } from '@web3auth/auth';
import { RPC_METHODS } from './xrplRpcMiddlewares.js';
function createXrplChainIdMiddleware(chainId) {
return (req, res, next, end) => {
if (req.method === RPC_METHODS.CHAIN_ID) {
res.result = chainId;
return end();
}
return next();
};
}
function createXrplProviderConfigMiddleware(providerConfig) {
return (req, res, next, end) => {
if (req.method === RPC_METHODS.PROVIDER_CHAIN_CONFIG) {
res.result = providerConfig;
return end();
}
return next();
};
}
function createConfigMiddleware(providerConfig) {
const {
chainId
} = providerConfig;
return mergeMiddleware([createXrplChainIdMiddleware(chainId), createXrplProviderConfigMiddleware(providerConfig)]);
}
function createXrplJsonRpcClient(providerConfig) {
const {
rpcTarget
} = providerConfig;
const fetchMiddleware = createFetchMiddleware({
rpcTarget
});
const networkMiddleware = mergeMiddleware([createConfigMiddleware(providerConfig), fetchMiddleware]);
return {
networkMiddleware,
fetchMiddleware
};
}
export { createConfigMiddleware, createXrplChainIdMiddleware, createXrplJsonRpcClient, createXrplProviderConfigMiddleware };