Error handling
Some errors have the class HolyheldSDKError
. The most helpful property of these errors is code. You can compare code with the values in the HolyheldSDKErrorCode
.
import { HolyheldSDKError, HolyheldSDKErrorCode } from '@holyheld/sdk';
const holyheldSDK = new HolyheldSDK({
apiKey: process.env.HOLYHELD_SDK_API_KEY,
})
(async () => {
try {
await holyheldSDK.offRamp.topup(/* ... */);
} catch (error) {
if (
error instanceof HolyheldSDKError &&
(error.code === HolyheldSDKErrorCode.UserRejectedTransaction ||
error.code === HolyheldSDKErrorCode.UserRejectedSignature)
) {
// it's okay
} else {
// it's not okay
}
}
})();
Types:
enum HolyheldSDKErrorCode {
NotInitialized = 'HSDK_NI', // SDK is not initialized
FailedInitialization = 'HSDK_FI', // cannot initialize SDK
UnsupportedNetwork = 'HSDK_UN', // wallet active network is not supported by SDK
InvalidTopUpAmount = 'HSDK_ITUA', // amount does not meet minimum or maximum allowed criteria
UnexpectedWalletNetwork = 'HSDK_UWN', // wallet active network is different from the selected network
UserRejectedSignature = 'HSDK_RS', // user rejected the signature
UserRejectedTransaction = 'HSDK_RT', // user rejected transaction
FailedSettings = 'HSDK_FS', // cannot get settings
FailedTagInfo = 'HSDK_FTI', // cannot get $holytag info
FailedAddressInfo = 'HSDK_FAI', // cannot get address info
FailedWalletBalances = 'HSDK_FWB', // cannot get wallet balance
FailedConversion = 'HSDK_FC', // cannot estimate EUR to TOKEN, or TOKEN to EUR
FailedTopUp = 'HSDK_FTU', // cannot complete top up
FailedCreateOnRampRequest = 'HSDK_FCOR', // cannot create on-ramp request
FailedOnRampRequest = 'HSDK_FOR', // fail execute on-ramp request with reason (for example not enough balance)
FailedWatchOnRampRequestTimeout = 'HSDK_FwORT', // watch request timeout
FailedWatchOnRampRequest = 'HSDK_FWORR', // fail to watch request status
FailedConvertOnRampAmount = 'HSDK_FCORA', //cannot convert (estimate) EUR to TOKEN, or TOKEN to EUR
}