Skip to content

Commit

Permalink
fixes in handling loginToken and signature
Browse files Browse the repository at this point in the history
  • Loading branch information
juliancwirko committed Apr 26, 2022
1 parent 915168e commit 8ccd705
Show file tree
Hide file tree
Showing 8 changed files with 20 additions and 15 deletions.
3 changes: 3 additions & 0 deletions CHANGELOG.md
Original file line number Diff line number Diff line change
@@ -1,3 +1,6 @@
### [1.0.3](https://github.com/ElvenTools/elven-tools-dapp/releases/tag/v1.0.3) (2022-04-26)
- improvements for loginToken and signatures, thanks to @borispoehland !

### [1.0.2](https://github.com/ElvenTools/elven-tools-dapp/releases/tag/v1.0.2) (2022-04-24)
- fix missing dependency

Expand Down
2 changes: 1 addition & 1 deletion components/TransactionPendingModal.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -41,7 +41,7 @@ export const TransactionPendingModal: FC<TransactionPendingModalProps> = ({

const txTitle = () => {
if (txError) {
return `Transaction error: ${txError}.`;
return `Transaction status: ${txError}.`;
}
if (successTxHash) {
return 'Transaction success. Check explorer for details.';
Expand Down
9 changes: 7 additions & 2 deletions hooks/auth/useElrondNetworkSync.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -24,7 +24,7 @@ import {
DAPP_INIT_ROUTE,
} from '../../config/network';
import { getBridgeAddressFromNetwork } from '../../utils/bridgeAddress';
import { getAddressFromUrl } from '../../utils/getAddressFromUrl';
import { getParamFromUrl } from '../../utils/getParamFromUrl';
import { LoginMethodsEnum } from '../../types/enums';
import { WcOnLogin } from '../../utils/walletConnectCbs';
import { useLogout } from './useLogout';
Expand Down Expand Up @@ -129,6 +129,7 @@ export const useElrondNetworkSync = () => {
if (loginExpires && isLoginExpired(loginExpires)) {
clearAuthStates();
clearDappProvider();
localStorage.clear();
return;
}

Expand Down Expand Up @@ -187,7 +188,11 @@ export const useElrondNetworkSync = () => {
break;
// Web wallet auth
case LoginMethodsEnum.wallet:
const address = getAddressFromUrl() || accountSnap?.address;
const address = getParamFromUrl('address') || accountSnap?.address;
const signature = getParamFromUrl('signature');
if (signature) {
setLoginInfoState('signature', signature);
}
if (address) {
dappProvider = new WalletProvider(
`${networkConfig[chainType].walletAddress}${DAPP_INIT_ROUTE}`
Expand Down
4 changes: 3 additions & 1 deletion hooks/auth/useMobileAppLogin.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -62,13 +62,15 @@ export const useMobileAppLogin = (params?: Login) => {
if (signature) {
setLoginInfoState('signature', signature);
}
if (params?.token) {
setLoginInfoState('loginToken', params?.token);
}

setNetworkState('dappProvider', dappProviderRef.current);

WcOnLogin(
dappProviderRef.current,
proxyProvider,
params?.token,
params?.callbackRoute
);
},
Expand Down
4 changes: 3 additions & 1 deletion hooks/auth/useWebWalletLogin.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -37,7 +37,9 @@ export const useWebWalletLogin = (params?: Login) => {
setLoginInfoState('loginMethod', LoginMethodsEnum.wallet);
await providerInstance.login(providerLoginData);
setLoginInfoState('expires', getNewLoginExpiresTimestamp());
setLoggingInState('loggedIn', true);
if (params?.token) {
setLoginInfoState('loginToken', params.token);
}
} catch (e: any) {
setLoggingInState('error', `Error logging in ${e?.message}`);
setLoginInfoState('loginMethod', '');
Expand Down
2 changes: 1 addition & 1 deletion package.json
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
{
"name": "elven-tools-dapp",
"version": "1.0.2",
"version": "1.0.3",
"author": "Julian Ćwirko <julian.io>",
"license": "MIT",
"homepage": "https://www.elven.tools",
Expand Down
4 changes: 2 additions & 2 deletions utils/getAddressFromUrl.ts → utils/getParamFromUrl.ts
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
export const getAddressFromUrl = () => {
export const getParamFromUrl = (paramName: string) => {
if (typeof window !== 'undefined') {
const url = new URL(window.location.href);
const params = new URLSearchParams(url.search);
return params.get('address');
return params.get(paramName);
}
};
7 changes: 0 additions & 7 deletions utils/walletConnectCbs.ts
Original file line number Diff line number Diff line change
Expand Up @@ -11,10 +11,8 @@ import { optionalRedirect } from '../utils/optionalRedirect';
export const WcOnLogin = async (
dappProvider: WalletConnectProvider,
proxyProvider: ProxyProvider,
token?: string,
callbackRoute?: string
) => {
const signature = await dappProvider?.getSignature();
const address = await dappProvider?.getAddress();

const userAddressInstance = new Address(address);
Expand All @@ -31,11 +29,6 @@ export const WcOnLogin = async (
}
}

if (signature) {
setLoginInfoState('loginToken', String(token));
setLoginInfoState('signature', signature);
}

setLoginInfoState('loginMethod', LoginMethodsEnum.walletconnect);

optionalRedirect(callbackRoute);
Expand Down

0 comments on commit 8ccd705

Please sign in to comment.