@btc-vision/walletconnect
Version:
The OP_NET Wallet Connect library helps your dApp connect to any compatible wallet.
52 lines (51 loc) • 2.07 kB
JavaScript
import { errorDefinitions } from './definitions';
const rawPatternGeneric = {
'User rejected the request.': errorDefinitions.UserRejected,
"TypeError: Cannot read properties of undefined (reading 'addresses')": errorDefinitions.UserRejected,
};
const rawPatternUnitTest = {
'TEST_CASE: empty': '',
'TEST_CASE: simple': 'simple',
'TEST_CASE: regex1 ${value}': 'regex1',
'TEST_CASE: regex2 ${value}': 'regex2 $1',
'Test case empty': '',
'Test case simple': 'simple',
'Test case regex1 ${value}': 'regex1',
'Test case regex2 ${value.get()}': 'regex2 $1',
'TEST_MULTI: multi1': {
en: 'Test English',
'en-US': 'Test American English',
fr: 'Test French',
'fr-CA': 'Test Canadian French',
},
'TEST_MULTI: multi2 ${value}': {
en: 'Test English: $1',
'en-US': 'Test American English: $1',
fr: 'Test French: $1',
'fr-CA': 'Test Canadian French: $1',
},
};
const rawPatternMap = {
'NATIVE_SWAP: Liquidity value is too low in satoshis.': errorDefinitions.NativeSwapLiquidityValueTooLow,
'Unknown Error': errorDefinitions.UnknownError,
'Invalid Address': errorDefinitions.IndexingInProgress,
'Error Indexing at Block': errorDefinitions.IndexingInProgress,
'Valid Reservation for this Address': errorDefinitions.NoValidReservation,
...rawPatternGeneric,
...rawPatternUnitTest,
};
export const patternMap = Object.entries(rawPatternMap)
.filter(([key, value]) => !!value && !key.includes('${'))
.sort((a, b) => b[0].length - a[0].length)
.map(([key, value]) => [key, key.toLowerCase(), value]);
export const escapeKey = (key) => {
return key
.replace(/\(/g, '\\(')
.replace(/\)/g, '\\)')
.replace(/\./g, '\\.')
.replace(/\$\{.*?}/g, '(.+)');
};
export const patternRegExp = Object.entries(rawPatternMap)
.filter(([key, value]) => !!value && key.includes('${'))
.sort((a, b) => b[0].length - a[0].length)
.map(([key, value]) => [key, new RegExp(escapeKey(key), 'i'), value]);