SDK Error Handling

For logging in, signing data, or sending transactions, users can deny by simply closing the modal. On these events, Fortmatic SDK will throw an error to indicate that user has denied one of those actions.

Logging In

import Fortmatic from 'fortmatic';
import Web3 from 'web3';
const fm = new Fortmatic('YOUR_API_KEY');
window.web3 = new Web3(fm.getProvider());
try {
const accounts = await web3.eth.getAccounts();
// other functions for logging in:
// const accounts = await web3.currentProvider.enable();
// const accounts = await fm.user.login();
}
catch (err) { // if user closes the modal without logging in
console.log(err); // { message: 'Fortmatic: User denied account access.', code: '4001' }
}

Sending a Transaction

import Fortmatic from 'fortmatic';
import Web3 from 'web3';
const fm = new Fortmatic('YOUR_API_KEY');
window.web3 = new Web3(fm.getProvider());
try {
web3.eth.sendTransaction(...);
}
catch (err) { // if user closes the modal without starting the transaction
console.log(err); // { message: 'Fortmatic: User denied transaction.', code: '-32603' }
}

Signing a Data

import Fortmatic from 'fortmatic';
import Web3 from 'web3';
const fm = new Fortmatic('YOUR_API_KEY');
window.web3 = new Web3(fm.getProvider());
try {
await web3.currentProvider.sendAsync(
{
id: 1,
method: 'eth_signTypedData', // other function for signing: personal_sign
params: [...]
});
}
catch (err) { // if user closes the modal without signing
console.log(err); // { message: 'Fortmatic: User denied transaction.', code: '-32603' }
}