@web3auth/no-modal
Version:
Multi chain wallet aggregator for web3Auth
96 lines (92 loc) • 2.82 kB
JavaScript
;
var react = require('react');
require('@babel/runtime/helpers/objectSpread2');
require('@babel/runtime/helpers/defineProperty');
require('@segment/analytics-next');
require('../base/loglevel.js');
require('@toruslabs/base-controllers');
require('@toruslabs/session-manager');
require('@web3auth/auth');
var index = require('../base/errors/index.js');
require('@toruslabs/constants');
require('@toruslabs/http-helpers');
require('../base/constants.js');
require('../base/wallet/index.js');
require('../base/connector/connectorStatus.js');
require('../base/connector/constants.js');
require('jwt-decode');
require('../base/plugin/errors.js');
require('../base/plugin/IPlugin.js');
var useWeb3AuthInner = require('../react/hooks/useWeb3AuthInner.js');
var rest = require('./rest.js');
const useLinkAccount = () => {
const {
web3Auth
} = useWeb3AuthInner.useWeb3AuthInner();
const [loading, setLoading] = react.useState(false);
const [error, setError] = react.useState(null);
const [linkedAccounts, setLinkedAccounts] = react.useState([]);
const linkAccount = react.useCallback(async params => {
if (!web3Auth) throw index.WalletInitializationError.notReady();
setLoading(true);
setError(null);
try {
const result = await web3Auth.linkAccount(params);
setLinkedAccounts(result.linkedAccounts);
return result;
} catch (err) {
setError(err);
} finally {
setLoading(false);
}
}, [web3Auth]);
const unlinkAccount = react.useCallback(async address => {
if (!web3Auth) throw index.WalletInitializationError.notReady();
setLoading(true);
setError(null);
try {
const result = await web3Auth.unlinkAccount(address);
setLinkedAccounts(result.linkedAccounts);
return result;
} catch (err) {
setError(err);
} finally {
setLoading(false);
}
}, [web3Auth]);
return {
loading,
error,
linkAccount,
unlinkAccount,
linkedAccounts
};
};
const useSwitchAccount = () => {
const {
web3Auth
} = useWeb3AuthInner.useWeb3AuthInner();
const [loading, setLoading] = react.useState(false);
const [error, setError] = react.useState(null);
const switchAccount = react.useCallback(async account => {
if (!web3Auth) throw index.WalletInitializationError.notReady();
setLoading(true);
setError(null);
try {
await web3Auth.switchAccount(account);
} catch (err) {
setError(err);
} finally {
setLoading(false);
}
}, [web3Auth]);
return {
loading,
error,
switchAccount
};
};
exports.makeAccountLinkingRequest = rest.makeAccountLinkingRequest;
exports.makeAccountUnlinkingRequest = rest.makeAccountUnlinkingRequest;
exports.useLinkAccount = useLinkAccount;
exports.useSwitchAccount = useSwitchAccount;