@web3auth/no-modal
Version:
Multi chain wallet aggregator for web3Auth
98 lines (94 loc) • 2.85 kB
JavaScript
;
var vue = require('vue');
require('@babel/runtime/helpers/objectSpread2');
require('@babel/runtime/helpers/defineProperty');
require('@segment/analytics-next');
var loglevel = 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('../vue/composables/useWeb3AuthInner.js');
var rest = require('./rest.js');
const useLinkAccount = () => {
const {
web3Auth
} = useWeb3AuthInner.useWeb3AuthInner();
const loading = vue.ref(false);
const error = vue.ref(null);
const linkedAccounts = vue.ref([]);
const linkAccount = async params => {
if (!web3Auth.value) throw index.WalletInitializationError.notReady();
try {
error.value = null;
loading.value = true;
const result = await web3Auth.value.linkAccount(params);
linkedAccounts.value = result.linkedAccounts;
return result;
} catch (err) {
error.value = err;
} finally {
loading.value = false;
}
};
const unlinkAccount = async address => {
if (!web3Auth.value) throw index.WalletInitializationError.notReady();
try {
error.value = null;
loading.value = true;
const result = await web3Auth.value.unlinkAccount(address);
linkedAccounts.value = result.linkedAccounts;
return result;
} catch (err) {
loglevel.log.error("Error unlinking account", err);
error.value = err;
} finally {
loading.value = false;
}
};
return {
loading,
error,
linkAccount,
unlinkAccount,
linkedAccounts
};
};
const useSwitchAccount = () => {
const {
web3Auth
} = useWeb3AuthInner.useWeb3AuthInner();
const loading = vue.ref(false);
const error = vue.ref(null);
const switchAccount = async account => {
if (!web3Auth.value) throw index.WalletInitializationError.notReady();
error.value = null;
loading.value = true;
try {
await web3Auth.value.switchAccount(account);
} catch (err) {
loglevel.log.error("Error switching account", err);
error.value = err;
} finally {
loading.value = false;
}
};
return {
loading,
error,
switchAccount
};
};
exports.makeAccountLinkingRequest = rest.makeAccountLinkingRequest;
exports.makeAccountUnlinkingRequest = rest.makeAccountUnlinkingRequest;
exports.useLinkAccount = useLinkAccount;
exports.useSwitchAccount = useSwitchAccount;