@layerzerolabs/chain-utils 0.0.67 → 0.0.74

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -1 +0,0 @@
1
- {"version":3,"sources":["../src/addressParser.ts"],"names":["AddressEncoding","addressParser","chainName","ChainName","TON","tonAddressParser","SOLANA","base58AddressParser","INITIA","initiaAddressParser","hexAddressParser","normalizedToBytes32Hex","address","hexZeroPad","normalizedToUnpaddedString","toString","normalizedToBytes32","hexToBytes","normalizedToBigInt","BigInt","parseNative","nativeAddress","validateNative","expectedChainName","Error","getAddress","parseTonAddress","normalizedToNative","numericalValue","bigintToAddress","normalizedToNativeString","nativeToNormalized","normalizeHex","addressToHex","nativeToBytes32Hex","nativeToBytes","nativeToBytes32","parseNativeToHex","tonToNormalized","tonAddress","encoding","isHexString","test","AccAddress","fromHex","toHex","isBase58","bs58","encode","hex","bytesToHexPrefixed","decode","nativeByteLength","StaticChainConfigs","getAddressSizeInBytes","TRON","startsWith","slice"],"mappings":"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","file":"MR2I35UU.js","sourcesContent":["import { AccAddress } from '@initia/initia.js';\nimport type { Address } from '@ton/ton';\nimport bs58 from 'bs58';\n\nimport type { HexString, NormalizedHexString } from '@layerzerolabs/common-chain-model';\nimport { normalizeHex } from '@layerzerolabs/common-chain-model';\nimport { addressToHex, bigintToAddress, parseTonAddress } from '@layerzerolabs/common-ton';\nimport {\n bytesToHexPrefixed,\n hexToBytes,\n hexZeroPad,\n isBase58,\n isHexString,\n} from '@layerzerolabs/common-utils';\nimport type {\n Base58String,\n ChainsByEncoding,\n ChainType,\n InferChainNamesForChainType,\n InferChainTypeForChainName,\n InitiaString,\n NativeAddress,\n ResolvedEncodingForChainName,\n} from '@layerzerolabs/layerzero-definitions';\nimport type { ChainNativeAddress } from '@layerzerolabs/layerzero-definitions';\nimport { ChainName } from '@layerzerolabs/layerzero-definitions';\nimport { StaticChainConfigs } from '@layerzerolabs/static-chain-info';\n\ntype NativeOrString<T extends ChainName> = ChainNativeAddress<T> | ResolvedEncodingForChainName<T>;\n\nexport enum AddressEncoding {\n HEX = 'hex',\n BASE58 = 'base58',\n TON = 'ton',\n INITIA = 'initia',\n}\n\nexport type ExtensionByChainType = {\n ton: {\n tonToNormalized: (tonAddress: Address) => NormalizedHexString;\n };\n};\n\nexport type InferExtensionByChainName<T extends ChainName> =\n InferChainTypeForChainName<T> extends keyof ExtensionByChainType\n ? ExtensionByChainType[InferChainTypeForChainName<T>]\n : {};\n\nexport type AddressParser<T extends ChainName> = {\n normalizedToNative: (address: NormalizedHexString) => ChainNativeAddress<T>;\n normalizedToNativeString: (address: NormalizedHexString) => ResolvedEncodingForChainName<T>;\n nativeToNormalized: (nativeAddress: NativeOrString<T>) => NormalizedHexString;\n nativeToBytes: (nativeAddress: NativeOrString<T>) => Uint8Array;\n nativeToBytes32Hex: (nativeAddress: NativeOrString<T>) => HexString;\n nativeToBytes32: (nativeAddress: NativeOrString<T>) => Uint8Array;\n validateNative: (nativeAddress: string) => nativeAddress is ResolvedEncodingForChainName<T>;\n /**\n * Parse a native address to a string if it is valid.\n * Throws an error if the native address is invalid.\n * @param nativeAddress - The native address to parse.\n * @returns The parsed native address.\n */\n parseNative: (nativeAddress: string) => NormalizedHexString;\n parseNativeToHex: (nativeAddress: string) => HexString;\n encoding: AddressEncoding;\n} & InferExtensionByChainName<T>;\n\nexport function addressParser<T extends ChainName>(chainName: T): AddressParser<T> {\n // FIXME: figure out a way to not have to cast here\n if (chainName === ChainName.TON)\n return tonAddressParser(chainName) as unknown as AddressParser<T>;\n if (chainName === ChainName.SOLANA)\n return base58AddressParser(chainName) as unknown as AddressParser<T>;\n if (chainName === ChainName.INITIA)\n return initiaAddressParser(chainName) as unknown as AddressParser<T>;\n return hexAddressParser(chainName) as unknown as AddressParser<T>;\n}\n\nexport namespace addressParser {\n export const normalizedToBytes32Hex = (address: NormalizedHexString) => {\n return hexZeroPad(address as unknown as HexString, 32);\n };\n export const normalizedToUnpaddedString = (address: NormalizedHexString) => {\n return address.toString() as HexString;\n };\n export const normalizedToBytes32 = (address: NormalizedHexString) => {\n return hexToBytes(normalizedToBytes32Hex(address));\n };\n export const normalizedToBigInt = (address: NormalizedHexString) => {\n return BigInt(address as unknown as HexString);\n };\n export const parseNative = (nativeAddress: NativeAddress) => {\n return addressParser(nativeAddress.chainName).parseNative(nativeAddress.nativeAddress);\n };\n}\n\nconst validateNative = <T extends ChainName>(\n nativeAddress: string,\n expectedChainName: T,\n): nativeAddress is ResolvedEncodingForChainName<T> => {\n if (!addressParser(expectedChainName).validateNative(nativeAddress)) {\n throw new Error(\n 'Cannot convert: ' +\n nativeAddress +\n ' - The native address does not match the expected format for the chain: ' +\n expectedChainName,\n );\n }\n return true;\n};\n\nconst getAddress = <T extends ChainName>(nativeAddress: NativeOrString<T>) => {\n return typeof nativeAddress === 'object' ? nativeAddress.nativeAddress : nativeAddress;\n};\n\nexport const tonAddressParser: (\n chainName: InferChainNamesForChainType<ChainType.TON>,\n) => AddressParser<InferChainNamesForChainType<ChainType.TON>> = (chainName) => {\n return {\n validateNative: (nativeAddress): nativeAddress is HexString => {\n try {\n parseTonAddress(nativeAddress);\n return true;\n } catch {\n return false;\n }\n },\n normalizedToNative: (address) => {\n const numericalValue = addressParser.normalizedToBigInt(address);\n return {\n // FIXME this is wrong\n nativeAddress: bigintToAddress(numericalValue).toString() as HexString,\n chainName,\n };\n },\n normalizedToNativeString: (address) => {\n return addressParser(chainName).normalizedToNative(address).nativeAddress;\n },\n nativeToNormalized: (nativeAddress) => {\n const address = getAddress(nativeAddress);\n validateNative(address, chainName);\n return normalizeHex(addressToHex(address));\n },\n nativeToBytes32Hex: (nativeAddress) => {\n // naturally ton is 32 bytes, pad it anyway\n return hexZeroPad(\n addressParser(chainName).nativeToNormalized(nativeAddress) as unknown as HexString,\n 32,\n );\n },\n nativeToBytes: (nativeAddress) => {\n return hexToBytes(addressParser(chainName).nativeToBytes32Hex(nativeAddress));\n },\n nativeToBytes32: (nativeAddress) => {\n return hexToBytes(addressParser(chainName).nativeToBytes32Hex(nativeAddress));\n },\n parseNative: (nativeAddress) => {\n if (!validateNative(nativeAddress, chainName)) {\n throw new Error('Invalid native address: ' + nativeAddress);\n }\n return addressParser(chainName).nativeToNormalized(nativeAddress);\n },\n parseNativeToHex: (nativeAddress) => {\n return addressParser(chainName).parseNative(nativeAddress) as unknown as HexString;\n },\n tonToNormalized: (tonAddress) => {\n return addressParser(chainName).parseNative(addressToHex(tonAddress));\n },\n encoding: AddressEncoding.TON,\n };\n};\n\nexport const initiaAddressParser: (\n chainName: ChainsByEncoding[InitiaString],\n) => AddressParser<ChainsByEncoding[InitiaString]> = (chainName) => {\n return {\n validateNative: (nativeAddress): nativeAddress is InitiaString => {\n try {\n // Both formats are native for the chain and are used kind of randomly.\n return (\n isHexString(nativeAddress) ||\n /^(init)1(['qpzry9x8gf2tvdw0s3jn54khce6mua7l]{38,66})$/.test(nativeAddress)\n );\n } catch {\n return false;\n }\n },\n normalizedToNative: (address) => {\n return {\n nativeAddress: AccAddress.fromHex(address as unknown as HexString) as InitiaString,\n chainName,\n };\n },\n normalizedToNativeString: (address) => {\n return addressParser(chainName).normalizedToNative(address).nativeAddress;\n },\n nativeToNormalized: (nativeAddress) => {\n const address = getAddress(nativeAddress);\n validateNative(address, chainName);\n if (isHexString(address)) {\n return normalizeHex(address);\n }\n return normalizeHex(AccAddress.toHex(nativeAddress.toString()) as HexString);\n },\n nativeToBytes32Hex: (nativeAddress) => {\n return hexZeroPad(\n addressParser(chainName).nativeToNormalized(nativeAddress) as unknown as HexString,\n 32,\n );\n },\n nativeToBytes: (nativeAddress) => {\n return hexToBytes(addressParser(chainName).nativeToBytes32Hex(nativeAddress));\n },\n nativeToBytes32: (nativeAddress) => {\n return hexToBytes(addressParser(chainName).nativeToBytes32Hex(nativeAddress));\n },\n parseNative: (nativeAddress) => {\n if (!validateNative(nativeAddress, chainName)) {\n throw new Error('Invalid native address: ' + nativeAddress);\n }\n return addressParser(chainName).nativeToNormalized(nativeAddress);\n },\n parseNativeToHex: (nativeAddress) => {\n return addressParser(chainName).parseNative(nativeAddress) as unknown as HexString;\n },\n encoding: AddressEncoding.INITIA,\n };\n};\n\nexport const base58AddressParser = (\n chainName: ChainsByEncoding[Base58String],\n): AddressParser<ChainsByEncoding[Base58String]> => {\n return {\n validateNative: (nativeAddress): nativeAddress is Base58String => {\n return isBase58(nativeAddress);\n },\n normalizedToNative: (address) => {\n return {\n nativeAddress: bs58.encode(\n hexToBytes(address as unknown as HexString),\n ) as Base58String,\n chainName,\n };\n },\n normalizedToNativeString: (address) => {\n return addressParser(chainName).normalizedToNative(address).nativeAddress;\n },\n nativeToNormalized: (nativeAddress) => {\n const address = getAddress(nativeAddress);\n validateNative(address, chainName);\n const hex = bytesToHexPrefixed(bs58.decode(address));\n return normalizeHex(hex);\n },\n nativeToBytes32Hex: (nativeAddress) => {\n // naturally solana is 32 bytes, pad it anyway\n return hexZeroPad(\n addressParser(chainName).nativeToNormalized(nativeAddress) as unknown as HexString,\n 32,\n );\n },\n nativeToBytes: (nativeAddress) => {\n const address = getAddress(nativeAddress);\n validateNative(address, chainName);\n return bs58.decode(address);\n },\n nativeToBytes32: (nativeAddress) => {\n return hexToBytes(addressParser(chainName).nativeToBytes32Hex(nativeAddress));\n },\n parseNative: (nativeAddress) => {\n if (!validateNative(nativeAddress, chainName)) {\n throw new Error('Invalid native address: ' + nativeAddress);\n }\n return addressParser(chainName).nativeToNormalized(nativeAddress);\n },\n parseNativeToHex: (nativeAddress) => {\n return addressParser(chainName).parseNative(nativeAddress) as unknown as HexString;\n },\n encoding: AddressEncoding.BASE58,\n };\n};\n\nexport const hexAddressParser = (\n chainName: ChainsByEncoding[HexString],\n): AddressParser<ChainsByEncoding[HexString]> => {\n const nativeByteLength = StaticChainConfigs.getAddressSizeInBytes(chainName as ChainName);\n\n return {\n validateNative: (nativeAddress): nativeAddress is HexString => {\n return isHexString(nativeAddress);\n },\n normalizedToNative: (address) => {\n return {\n // we could have EIP-55 here, but omitted for now\n nativeAddress: hexZeroPad(address as unknown as HexString, nativeByteLength),\n chainName,\n };\n },\n normalizedToNativeString: (address) => {\n return hexZeroPad(address as unknown as HexString, nativeByteLength);\n },\n nativeToNormalized: (nativeAddress) => {\n const address = getAddress(nativeAddress);\n validateNative(address, chainName);\n return normalizeHex(address);\n },\n nativeToBytes: (nativeAddress) => {\n const address = getAddress(nativeAddress);\n validateNative(address, chainName);\n return hexToBytes(address);\n },\n nativeToBytes32Hex: (nativeAddress) => {\n const address = getAddress(nativeAddress);\n validateNative(address, chainName);\n return hexZeroPad(address, 32);\n },\n nativeToBytes32: (nativeAddress) => {\n return hexToBytes(addressParser(chainName).nativeToBytes32Hex(nativeAddress));\n },\n parseNative: (nativeAddress) => {\n // Specific case to make tron a little less flaky, handle the 41 prefix\n if (chainName === ChainName.TRON) {\n nativeAddress = nativeAddress.startsWith('41')\n ? `0x${nativeAddress.slice(2)}`\n : nativeAddress;\n }\n\n if (!validateNative(nativeAddress, chainName)) {\n throw new Error('Invalid native address: ' + nativeAddress);\n }\n return addressParser(chainName).nativeToNormalized(nativeAddress);\n },\n parseNativeToHex: (nativeAddress) => {\n return addressParser(chainName).parseNative(nativeAddress) as unknown as HexString;\n },\n encoding: AddressEncoding.HEX,\n };\n};\n"]}