Skip to content

Commit

Permalink
fix: sss errors (#2217)
Browse files Browse the repository at this point in the history
  • Loading branch information
iGroza authored and devkudasov committed Dec 4, 2024
1 parent c640842 commit 1a4243d
Show file tree
Hide file tree
Showing 4 changed files with 49 additions and 31 deletions.
2 changes: 1 addition & 1 deletion package.json
Original file line number Diff line number Diff line change
Expand Up @@ -44,7 +44,7 @@
"@haqq/encryption-react-native": "0.0.4",
"@haqq/format-number-with-subscript-zeros": "1.0.1",
"@haqq/provider-web3-utils": "0.0.14",
"@haqq/rn-wallet-providers": "0.0.11",
"@haqq/rn-wallet-providers": "0.0.12",
"@haqq/shared-react-native": "0.0.12",
"@invertase/react-native-apple-authentication": "2.2.2",
"@keystonehq/bc-ur-registry-eth": "0.21.0",
Expand Down
51 changes: 27 additions & 24 deletions src/helpers/get-provider-for-new-wallet.ts
Original file line number Diff line number Diff line change
Expand Up @@ -22,32 +22,35 @@ export async function getProviderForNewWallet(params?: WalletInitialData) {
const getPassword = app.getPassword.bind(app);

if (params && params.type === 'sss') {
logger.log(
'getProviderForNewWallet: Initializing ProviderSSSBase',
JSON.stringify(params, null, 2),
);
const storage = await getProviderStorage('', params.provider);
logger.log('getProviderForNewWallet: Provider storage retrieved', storage);
return await ProviderSSSBase.initialize(
params.action === 'restore' ? params.sssPrivateKey || null : null,
params.sssCloudShare || null,
params.sssLocalShare || null,
null,
params.verifier,
typeof params.token === 'string' ? params.token : params.token.value,
app.getPassword.bind(app),
storage,
{
metadataUrl: RemoteConfig.get('sss_metadata_url')!,
generateSharesUrl: RemoteConfig.get('sss_generate_shares_url')!,
},
).catch(err => {
logger.error(
'getProviderForNewWallet: Error in ProviderSSSBase.initialize',
{err},
try {
logger.log(
'getProviderForNewWallet: Initializing ProviderSSSBase',
JSON.stringify(params, null, 2),
);
const storage = await getProviderStorage('', params.provider);
logger.log(
'getProviderForNewWallet: Provider storage retrieved',
storage,
);
return await ProviderSSSBase.initialize(
params.action === 'restore' ? params.sssPrivateKey || null : null,
params.sssCloudShare || null,
params.sssLocalShare || null,
null,
params.verifier,
typeof params.token === 'string' ? params.token : params.token.value,
app.getPassword.bind(app),
storage,
{
metadataUrl: RemoteConfig.get('sss_metadata_url')!,
generateSharesUrl: RemoteConfig.get('sss_generate_shares_url')!,
},
);
} catch (err) {
Logger.captureException(err, 'getProviderForNewWallet');
ErrorHandler.handle('SSS1Y', err);
});
return null;
}
}

const keysSss = await ProviderSSSBase.getAccounts();
Expand Down
17 changes: 16 additions & 1 deletion src/screens/WelcomeStack/SignUpStack/signup-store-wallet.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -14,6 +14,7 @@ import {
getTronProviderForNewWallet,
} from '@app/helpers/get-provider-for-new-wallet';
import {useTypedNavigation, useTypedRoute} from '@app/hooks';
import {useError} from '@app/hooks/use-error';
import {I18N, getText} from '@app/i18n';
import {AppStore} from '@app/models/app';
import {Wallet} from '@app/models/wallet';
Expand All @@ -33,6 +34,7 @@ import {

export const SignUpStoreWalletScreen = observer(() => {
const navigation = useTypedNavigation<SignUpStackParamList>();
const showError = useError();
const route = useTypedRoute<
SignUpStackParamList,
SignUpStackRoutes.SignupStoreWallet
Expand Down Expand Up @@ -96,6 +98,16 @@ export const SignUpStoreWalletScreen = observer(() => {
setTimeout(async () => {
try {
const provider = await getCurrentProvider();

if (route.params.type === 'sss' && !provider) {
Logger.captureException(
new Error('sssLimitReached: provider not found'),
'createStoreWallet',
);
showModal(ModalType.sssLimitReached);
return goBack();
}

const tronProvider = await getTronProviderForNewWallet(
getWalletType(),
provider.getIdentifier(),
Expand Down Expand Up @@ -148,9 +160,12 @@ export const SignUpStoreWalletScreen = observer(() => {
),
});
} catch (err) {
Logger.captureException(err, 'createStoreWallet');
if (getWalletType() === WalletType.sss) {
hideModal('loading');
showModal('sssLimitReached');
showModal(ModalType.errorCreateAccount);
// @ts-ignore
showError('createStoreWallet', err.message);
goBack();
return;
} else {
Expand Down
10 changes: 5 additions & 5 deletions yarn.lock
Original file line number Diff line number Diff line change
Expand Up @@ -2839,9 +2839,9 @@ __metadata:
languageName: node
linkType: hard

"@haqq/rn-wallet-providers@npm:0.0.11":
version: 0.0.11
resolution: "@haqq/rn-wallet-providers@npm:0.0.11"
"@haqq/rn-wallet-providers@npm:0.0.12":
version: 0.0.12
resolution: "@haqq/rn-wallet-providers@npm:0.0.12"
dependencies:
"@ethersproject/abstract-provider": ^5.7.0
"@ethersproject/bytes": ^5.7.0
Expand All @@ -2866,7 +2866,7 @@ __metadata:
react-native: "*"
react-native-ble-plx: "*"
react-native-encrypted-storage: "*"
checksum: 5bb53eba13257b30e5179a3b44e9bfc4db5bf85dde01d7c42b527bd508074f4e876cd6512b8101113ea6698fd31bdaf686e661e4e26f057e6a39a29e2beb79e3
checksum: 8f450db90ce7150b700ef865adb26fa26b5e414ca7a445017e4e5a7640f645acc43ced26aa82a8d34d596e501ac93e5baf53966224b186b9f47e4b4e0b904439
languageName: node
linkType: hard

Expand Down Expand Up @@ -11425,7 +11425,7 @@ __metadata:
"@haqq/encryption-react-native": 0.0.4
"@haqq/format-number-with-subscript-zeros": 1.0.1
"@haqq/provider-web3-utils": 0.0.14
"@haqq/rn-wallet-providers": 0.0.11
"@haqq/rn-wallet-providers": 0.0.12
"@haqq/shared-react-native": 0.0.12
"@invertase/react-native-apple-authentication": 2.2.2
"@keystonehq/bc-ur-registry-eth": 0.21.0
Expand Down

0 comments on commit 1a4243d

Please sign in to comment.