Skip to content

Commit

Permalink
fix configs
Browse files Browse the repository at this point in the history
  • Loading branch information
rubenmarcus committed Jul 29, 2024
1 parent dcc9fc7 commit 709b014
Show file tree
Hide file tree
Showing 2 changed files with 73 additions and 10 deletions.
18 changes: 9 additions & 9 deletions packages/wallet/src/bitte-wallet.ts
Original file line number Diff line number Diff line change
Expand Up @@ -6,7 +6,7 @@ import type {
FinalExecutionOutcome,
WalletBehaviourFactory,
} from '@near-wallet-selector/core';
import { getCallbackUrl } from './utils';
import { getCallbackUrlBitte } from './utils';
import { createAction } from '@near-wallet-selector/wallet-utils';


Expand Down Expand Up @@ -76,7 +76,7 @@ export const BitteWallet: WalletBehaviourFactory<
//make near-api-js not throw without lak
if (acc && !contractId) {
localStorage.setItem(
'mintbase-wallet_wallet_auth_key',
'bitte-wallet:wallet_auth_key',
JSON.stringify({
accountId: acc as string,
allKeys: [],
Expand All @@ -85,8 +85,8 @@ export const BitteWallet: WalletBehaviourFactory<
}

const nearConnection = await connect(connectionConfig);
const wallet = new WalletConnection(nearConnection, 'mintbase-wallet');
localStorage.setItem('mintbase-wallet:callback_url', callback);
const wallet = new WalletConnection(nearConnection, 'bitte-wallet');
localStorage.setItem('bitte-wallet:callback_url', callback);

return {
wallet,
Expand Down Expand Up @@ -123,7 +123,7 @@ export const BitteWallet: WalletBehaviourFactory<
};

const signOut = async (): Promise<void> => {
window.localStorage.removeItem('mintbase-wallet:account-data');
window.localStorage.removeItem('bitte-wallet:account-data');

if (state.wallet.isSignedIn()) {
state.wallet.signOut();
Expand Down Expand Up @@ -153,7 +153,7 @@ export const BitteWallet: WalletBehaviourFactory<
// callbackUrl: cbUrl,
// });

const { cbUrl } = getCallbackUrl(callbackUrl ?? '');
const { cbUrl } = getCallbackUrlBitte(callbackUrl ?? '');

for (const { signerId } of transactions) {
assertValidSigner(signerId);
Expand Down Expand Up @@ -213,7 +213,7 @@ export const BitteWallet: WalletBehaviourFactory<
};

const signMessage = async ({ message, nonce, recipient, callbackUrl }): Promise<void> => {
const { cbUrl } = getCallbackUrl(callbackUrl ?? '');
const { cbUrl } = getCallbackUrlBitte(callbackUrl ?? '');

const newUrl = new URL(`${metadata.walletUrl}/sign-message`);
newUrl.searchParams.set('message', message);
Expand Down Expand Up @@ -260,7 +260,7 @@ export const BitteWallet: WalletBehaviourFactory<
}

const currentAccount: string = window.localStorage.getItem(
'mintbase-wallet:account-creation-data',
'bitte-wallet:account-creation-data',
)!;

return [
Expand All @@ -280,7 +280,7 @@ export const BitteWallet: WalletBehaviourFactory<

const setActiveAccountId = (accountId: string): null => {
activeAccountId = accountId;
window.localStorage.setItem('mintbase-wallet:activeAccountId', accountId);
window.localStorage.setItem('bitte-wallet:activeAccountId', accountId);

return null;
};
Expand Down
65 changes: 64 additions & 1 deletion packages/wallet/src/utils.ts
Original file line number Diff line number Diff line change
Expand Up @@ -3,6 +3,45 @@
*/


const checkCallbackUrlBitte = (callbackUrl: string): string => {
function isValidURL(url): boolean {
const urlPattern = /^(https?|ftp|http?):\/\/[^\s/$.?#].[^\s]*$/;
return urlPattern.test(url);
}

if (callbackUrl !== null && callbackUrl.length > 0) {
if (isValidURL(callbackUrl)) {
if (
callbackUrl.startsWith('https://') ||
callbackUrl.startsWith('http://')
) {
return callbackUrl.endsWith('/')
? callbackUrl.slice(0, -1)
: callbackUrl;
}
} else {
console.error(
'callbackUrl set with wrong format. please use an URL with http:// or https:// instead.Further help available on our telegram channel: https://t.me/mintdev',
);
return new URL(window.location.href).toString();
}
} else {
const globalCallBackUrl = localStorage.getItem(
'bitte-wallet:callback_url',
);

if (isValidURL(globalCallBackUrl)) {
return globalCallBackUrl;
} else {
console.warn('We recommend you to set the callbackUrl property on setupMintbaseWallet \n read more here: \n https://docs.mintbase.xyz/dev/mintbase-sdk-ref/wallet#setupmintbasewallet \n \n further help available on our telegram channel: \n https://t.me/mintdev');
return new URL(window.location.href).toString();
}
}

return new URL(window.location.href).toString();
};


const checkCallbackUrl = (callbackUrl: string): string => {
function isValidURL(url): boolean {
const urlPattern = /^(https?|ftp|http?):\/\/[^\s/$.?#].[^\s]*$/;
Expand Down Expand Up @@ -65,6 +104,30 @@ const getCallbackUrl = (callbackUrl?: string): { cbUrl: string } | null => {
return null;
};

const getCallbackUrlBitte = (callbackUrl?: string): { cbUrl: string } | null => {
if (typeof window !== undefined) {

let mbjsCallbackUrl = '';

if ( window?.['mbjs']?.keys?.callbackUrl && window?.['mbjs']?.keys?.callbackUrl.length > 0 ) {
mbjsCallbackUrl = window?.['mbjs']?.keys?.callbackUrl;
}

const globalCBUrl = localStorage?.getItem('bitte-wallet:callback_url') || mbjsCallbackUrl;

// it gets always the passed callBackUrl first, if not check for the one on the Wallet Setup or mbjs.keys.callbackUrl
const finalcbURL = callbackUrl ?? globalCBUrl;

const callBackUrlRes = checkCallbackUrlBitte(finalcbURL);

// check if callBackUrl sent on the method is valid
// method callbackUrl will always have priority over global callbackUrl , user can set different callbackUrls according to the method..

return { cbUrl: callBackUrlRes };
}
return null;
};

const resolveWalletUrl = (network: string, walletUrl?: string): string => {
if (walletUrl) {
return walletUrl;
Expand Down Expand Up @@ -95,5 +158,5 @@ const resolveBitteWallet = (network: string, walletUrl?: string): string => {
}
};

export { checkCallbackUrl, getCallbackUrl, resolveBitteWallet, resolveWalletUrl };
export { checkCallbackUrl,checkCallbackUrlBitte, getCallbackUrl,getCallbackUrlBitte, resolveBitteWallet, resolveWalletUrl };

0 comments on commit 709b014

Please sign in to comment.