diff --git a/src/repo/index.ts b/src/repo/index.ts index a65b501..7851b1a 100644 --- a/src/repo/index.ts +++ b/src/repo/index.ts @@ -119,9 +119,10 @@ export function getAssetMaps(networkCode: string, address: string): AssetMap[] { } export function addAssetMap(map: AssetMap, repoPath: string = DEFAULT_REPO_DISK_LOCATION) { - const assetMapInfoFile = path.join(repoPath, getDirPathForTokenlist(map.fromNetwork, map.fromAddress), 'maps.json'); + const assetDir = path.join(repoPath, getDirPathForTokenlist(map.fromNetwork, map.fromAddress)); + const assetMapInfoFile = path.join(assetDir, 'maps.json'); - if(!fs.existsSync(assetMapInfoFile)) { + if(fs.existsSync(assetDir) && !fs.existsSync(assetMapInfoFile)) { fs.writeFileSync(assetMapInfoFile, JSON.stringify([map], null, 2)); return; } diff --git a/src/utils/addresses.ts b/src/utils/addresses.ts index ac03ff1..5b37047 100644 --- a/src/utils/addresses.ts +++ b/src/utils/addresses.ts @@ -1,15 +1,22 @@ -import { toChecksumAddress, checkAddressChecksum } from 'ethereum-checksum-address'; +import { toChecksumAddress } from 'ethereum-checksum-address'; export function formatAddress(address: string): string { if(!address) { return null; } + + address = address.replace(/\s/g, ""); + if(address.toLowerCase().startsWith('0x')) { - return toChecksumAddress(address); + try { + return toChecksumAddress(address); + } catch (err) { + return null; + } } // TODO; in future expand for other non EVM use cases - return address.toLowerCase(); + return address.replace(/\s/g, ""); } export function parseAssetId(assetId: string): { networkCode: string, address: string } {