@layerzerolabs/static-chain-info 0.0.34 → 0.0.39

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.
@@ -10,17 +10,17 @@
10
10
  CLI Cleaning output folder
11
11
  CJS Build start
12
12
  ESM Build start
13
- ESM dist/staticChainInfo.js 158.00 B
14
- ESM dist/3CVYOI5Q.js 33.45 KB
15
- ESM dist/index.js 5.20 KB
16
- ESM dist/staticChainInfo.js.map 79.00 B
17
- ESM dist/3CVYOI5Q.js.map 79.32 KB
18
- ESM dist/index.js.map 12.29 KB
19
- ESM ⚡️ Build success in 401ms
13
+ CJS dist/index.cjs 6.62 KB
20
14
  CJS dist/staticChainInfo.cjs 541.00 B
21
- CJS dist/index.cjs 6.61 KB
22
15
  CJS dist/7QMGGKXF.cjs 37.87 KB
16
+ CJS dist/index.cjs.map 12.36 KB
23
17
  CJS dist/staticChainInfo.cjs.map 80.00 B
24
- CJS dist/index.cjs.map 12.34 KB
25
18
  CJS dist/7QMGGKXF.cjs.map 79.53 KB
26
- CJS ⚡️ Build success in 402ms
19
+ CJS ⚡️ Build success in 439ms
20
+ ESM dist/index.js 5.21 KB
21
+ ESM dist/staticChainInfo.js 158.00 B
22
+ ESM dist/3CVYOI5Q.js 33.45 KB
23
+ ESM dist/index.js.map 12.31 KB
24
+ ESM dist/staticChainInfo.js.map 79.00 B
25
+ ESM dist/3CVYOI5Q.js.map 79.32 KB
26
+ ESM ⚡️ Build success in 439ms
@@ -4,5 +4,5 @@
4
4
 
5
5
 
6
6
  > @layerzerolabs/depcheck@1.0.1 depcheck /home/runner/work/monorepo-internal/monorepo-internal/tools/repo/depcheck
7
- > tsx ./src/index.ts "validate" "--catalog" "--missing-dependencies" "--only" "@layerzerolabs/static-chain-info"
7
+ > tsx ./src/index.ts validate --catalog --missing-dependencies --only @layerzerolabs/static-chain-info
8
8
 
package/dist/index.cjs CHANGED
@@ -116,7 +116,8 @@ function getAddressEncodedByChain(chainName, address) {
116
116
  "aptos",
117
117
  "movement",
118
118
  "initia",
119
- "ton"
119
+ "ton",
120
+ "sui"
120
121
  ].includes(chainName)) {
121
122
  const addressSizeInBytes = StaticChainConfigs.getAddressSizeInBytes(chainName);
122
123
  return commonUtils.hexZeroPad(commonUtils.ensure0xPrefixed(address), addressSizeInBytes).toLowerCase();
@@ -1 +1 @@
1
- {"version":3,"sources":["../src/index.ts"],"names":["getChainName","chainId","getNetworkForChainId","parseInt","toString","chainName","isLzReadEndpointId","endpointId","Object","values","ChannelId","includes","Number","getLZEndpointVersionFromChainId","EndpointVersion","V2","EndpointV2IdBase","V1","chainIdToEndpointVersion","asNumber","isInteger","Error","getEnvFromChainId","getUlnVersionFromChainId","ulnVersionString","UlnVersion","getEndpointVersionFromUlnVersion","ulnVersion","V301","V300","ReadV1002","V302","getChainId","__name","environment","ulnVer","getChainIdForNetwork","valueOf","getChainIdForEndpointVersion","version","ChainName","STARKNET","chainAndStageToEndpointId","getVId","eid","StaticChainConfigs","getAddressSizeInBytesFromChainId","getAddressSizeInBytes","staticConfig","addressSizeInBytes","denormalizeHexAddressForChain","address","denormalizeHexAddress","getSymbol","symbol","getDecimals","decimals","getMptBaseFee","mptBaseGas","getChainLayer","chainLayer","getChainSubType","chainSubType","getAddressEncodedByChain","SOLANA","isBase58","hexToBase58","hexZeroPad","ensure0xPrefixed","toLowerCase","slice"],"mappings":"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","file":"index.cjs","sourcesContent":["import {\n denormalizeHexAddress,\n type HexAddress,\n type NormalizedHexAddress,\n} from '@layerzerolabs/common-chain-model';\nimport { ensure0xPrefixed, hexToBase58, hexZeroPad, isBase58 } from '@layerzerolabs/common-utils';\nimport type { Environment } from '@layerzerolabs/layerzero-definitions';\nimport { ChainName } from '@layerzerolabs/layerzero-definitions';\nimport { EndpointVersion, UlnVersion } from '@layerzerolabs/layerzero-definitions';\nimport type { Chain, EndpointId, Stage } from '@layerzerolabs/lz-definitions';\nimport {\n chainAndStageToEndpointId,\n ChannelId,\n EndpointV2IdBase,\n getChainIdForNetwork,\n getNetworkForChainId,\n} from '@layerzerolabs/lz-definitions';\n\nimport { ChainSubType, staticConfig } from './staticChainInfo';\n\nexport { ChainSubType };\n\nexport * from './staticChainInfo';\n\nexport const getChainName = (chainId: string | number | bigint): ChainName => {\n return getNetworkForChainId(parseInt(chainId.toString()))?.chainName! as unknown as ChainName;\n};\n\nexport const isLzReadEndpointId = (endpointId: number | bigint | string) => {\n return Object.values(ChannelId).includes(Number(endpointId));\n};\n\nexport const getLZEndpointVersionFromChainId = (chainId: number): EndpointVersion => {\n if (isLzReadEndpointId(chainId)) {\n return EndpointVersion.V2;\n }\n return chainId < EndpointV2IdBase ? EndpointVersion.V1 : EndpointVersion.V2;\n};\n\nexport const chainIdToEndpointVersion = (chainId: string | number): EndpointVersion => {\n const asNumber = Number(chainId);\n if (!Number.isInteger(asNumber) || asNumber < 0)\n throw new Error('Argument must be positive integer!');\n return getLZEndpointVersionFromChainId(asNumber);\n};\n\nexport const getEnvFromChainId = (chainId: string): string => {\n return getNetworkForChainId(parseInt(chainId))!['env'];\n};\n\nexport const getUlnVersionFromChainId = (chainId: string): UlnVersion => {\n const ulnVersionString = getNetworkForChainId(parseInt(chainId))!['ulnVersion'];\n return { '2': UlnVersion.V2 }[ulnVersionString]!; // V1 will not be supported anymore\n};\n\nexport const getEndpointVersionFromUlnVersion = (ulnVersion: UlnVersion): EndpointVersion => {\n if (ulnVersion === UlnVersion.V1) {\n throw new Error('UlnVersion.V1 is not supported');\n }\n switch (ulnVersion) {\n case UlnVersion.V2:\n case UlnVersion.V301:\n return EndpointVersion.V1;\n case UlnVersion.V300:\n case UlnVersion.ReadV1002:\n case UlnVersion.V302:\n return EndpointVersion.V2;\n default:\n throw new Error(`Unknown UlnVersion: ${ulnVersion}`);\n }\n};\n\n/**\n * @deprecated Use getChainIdForEndpointVersion instead\n */\nexport const getChainId = (\n chainName: ChainName,\n environment: Environment,\n ulnVersion: UlnVersion,\n): string => {\n const ulnVer = {\n [UlnVersion.V1]: '1',\n [UlnVersion.V2]: '2',\n [UlnVersion.V300]: '3.0.2', // simpleMessageLib should get V302 chainIds\n [UlnVersion.V301]: '3.0.1',\n [UlnVersion.V302]: '3.0.2',\n [UlnVersion.ReadV1002]: '10.0.2',\n }[ulnVersion];\n\n return getChainIdForNetwork(chainName, environment, ulnVer).valueOf().toString();\n};\n\n// Note: This doesn't work for UlnVersion.V1\nexport const getChainIdForEndpointVersion = (\n chainName: ChainName,\n environment: Environment,\n version: EndpointVersion,\n): EndpointId => {\n // FIXME-STARKNET: Remove this once we have a proper ChainId for Starknet\n if (chainName === ChainName.STARKNET) {\n return 80085 as EndpointId;\n }\n\n // TODO: This is essentially 'getChainIdForNetwork' but skipping the UlnVersion -> EndpointVersion step, refactor monorepo to export this function\n return chainAndStageToEndpointId(\n chainName as unknown as Chain,\n environment as unknown as Stage,\n version,\n );\n};\n\nexport const getVId = (chainName: ChainName, environment: Environment): string => {\n // By convention the vid is alwayd the endpointV1 chainId\n // TODO: Monorepo doesnt have these chains for EndpointVersion.V1\n if (['solana', 'ton', 'initia', 'movement'].includes(chainName)) {\n const eid = getChainIdForEndpointVersion(chainName, environment, EndpointVersion.V2);\n return (parseInt(eid.toString()) % 30000).toString();\n }\n return getChainIdForEndpointVersion(chainName, environment, EndpointVersion.V1).toString();\n};\n\nexport class StaticChainConfigs {\n static getChainName(chainId: string | number): ChainName {\n return getChainName(chainId);\n }\n\n static getAddressSizeInBytesFromChainId(chainId: string | number): number {\n return StaticChainConfigs.getAddressSizeInBytes(StaticChainConfigs.getChainName(chainId));\n }\n\n static getAddressSizeInBytes(chainName: ChainName): number {\n return staticConfig[chainName].addressSizeInBytes;\n }\n\n static denormalizeHexAddressForChain(\n chainName: ChainName,\n address: NormalizedHexAddress,\n ): HexAddress {\n return denormalizeHexAddress(address, this.getAddressSizeInBytes(chainName));\n }\n\n static getSymbol(chainName: ChainName): string {\n return staticConfig[chainName].symbol;\n }\n\n static getDecimals(chainName: ChainName): number {\n return staticConfig[chainName].decimals;\n }\n\n static getMptBaseFee(chainName: ChainName): number {\n return staticConfig[chainName].mptBaseGas!;\n }\n\n static getChainLayer(chainName: ChainName): number {\n return staticConfig[chainName].chainLayer ?? 1;\n }\n\n static getChainSubType(chainName: ChainName): ChainSubType | undefined {\n return staticConfig[chainName].chainSubType;\n }\n}\n\n// TODO should be replaces with AddressParserSDK once it is written https://linear.app/layerzerolabs/issue/BE-1876\nexport function getAddressEncodedByChain(chainName: ChainName, address: HexAddress): string {\n // SOLANA addresses is base58 encoded and should not be lower cased\n // or web3.js cannot convert it to PublicKey\n if (chainName === ChainName.SOLANA) {\n return isBase58(address) ? address : hexToBase58(address);\n } else if (['aptos', 'movement', 'initia', 'ton'].includes(chainName)) {\n const addressSizeInBytes = StaticChainConfigs.getAddressSizeInBytes(chainName);\n // APTOS addresses is bytes32 hex encoded\n return hexZeroPad(ensure0xPrefixed(address), addressSizeInBytes).toLowerCase();\n }\n // EVM addresses are 20 bytes\n // The getAddress(...).toLowerCase() does not change the address in this case but it does some validation\n return hexZeroPad(ensure0xPrefixed(address), 32).slice(-40).toLowerCase();\n}\n"]}
1
+ {"version":3,"sources":["../src/index.ts"],"names":["getChainName","chainId","getNetworkForChainId","parseInt","toString","chainName","isLzReadEndpointId","endpointId","Object","values","ChannelId","includes","Number","getLZEndpointVersionFromChainId","EndpointVersion","V2","EndpointV2IdBase","V1","chainIdToEndpointVersion","asNumber","isInteger","Error","getEnvFromChainId","getUlnVersionFromChainId","ulnVersionString","UlnVersion","getEndpointVersionFromUlnVersion","ulnVersion","V301","V300","ReadV1002","V302","getChainId","__name","environment","ulnVer","getChainIdForNetwork","valueOf","getChainIdForEndpointVersion","version","ChainName","STARKNET","chainAndStageToEndpointId","getVId","eid","StaticChainConfigs","getAddressSizeInBytesFromChainId","getAddressSizeInBytes","staticConfig","addressSizeInBytes","denormalizeHexAddressForChain","address","denormalizeHexAddress","getSymbol","symbol","getDecimals","decimals","getMptBaseFee","mptBaseGas","getChainLayer","chainLayer","getChainSubType","chainSubType","getAddressEncodedByChain","SOLANA","isBase58","hexToBase58","hexZeroPad","ensure0xPrefixed","toLowerCase","slice"],"mappings":"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","file":"index.cjs","sourcesContent":["import {\n denormalizeHexAddress,\n type HexAddress,\n type NormalizedHexAddress,\n} from '@layerzerolabs/common-chain-model';\nimport { ensure0xPrefixed, hexToBase58, hexZeroPad, isBase58 } from '@layerzerolabs/common-utils';\nimport type { Environment } from '@layerzerolabs/layerzero-definitions';\nimport { ChainName } from '@layerzerolabs/layerzero-definitions';\nimport { EndpointVersion, UlnVersion } from '@layerzerolabs/layerzero-definitions';\nimport type { Chain, EndpointId, Stage } from '@layerzerolabs/lz-definitions';\nimport {\n chainAndStageToEndpointId,\n ChannelId,\n EndpointV2IdBase,\n getChainIdForNetwork,\n getNetworkForChainId,\n} from '@layerzerolabs/lz-definitions';\n\nimport { ChainSubType, staticConfig } from './staticChainInfo';\n\nexport { ChainSubType };\n\nexport * from './staticChainInfo';\n\nexport const getChainName = (chainId: string | number | bigint): ChainName => {\n return getNetworkForChainId(parseInt(chainId.toString()))?.chainName! as unknown as ChainName;\n};\n\nexport const isLzReadEndpointId = (endpointId: number | bigint | string) => {\n return Object.values(ChannelId).includes(Number(endpointId));\n};\n\nexport const getLZEndpointVersionFromChainId = (chainId: number): EndpointVersion => {\n if (isLzReadEndpointId(chainId)) {\n return EndpointVersion.V2;\n }\n return chainId < EndpointV2IdBase ? EndpointVersion.V1 : EndpointVersion.V2;\n};\n\nexport const chainIdToEndpointVersion = (chainId: string | number): EndpointVersion => {\n const asNumber = Number(chainId);\n if (!Number.isInteger(asNumber) || asNumber < 0)\n throw new Error('Argument must be positive integer!');\n return getLZEndpointVersionFromChainId(asNumber);\n};\n\nexport const getEnvFromChainId = (chainId: string): string => {\n return getNetworkForChainId(parseInt(chainId))!['env'];\n};\n\nexport const getUlnVersionFromChainId = (chainId: string): UlnVersion => {\n const ulnVersionString = getNetworkForChainId(parseInt(chainId))!['ulnVersion'];\n return { '2': UlnVersion.V2 }[ulnVersionString]!; // V1 will not be supported anymore\n};\n\nexport const getEndpointVersionFromUlnVersion = (ulnVersion: UlnVersion): EndpointVersion => {\n if (ulnVersion === UlnVersion.V1) {\n throw new Error('UlnVersion.V1 is not supported');\n }\n switch (ulnVersion) {\n case UlnVersion.V2:\n case UlnVersion.V301:\n return EndpointVersion.V1;\n case UlnVersion.V300:\n case UlnVersion.ReadV1002:\n case UlnVersion.V302:\n return EndpointVersion.V2;\n default:\n throw new Error(`Unknown UlnVersion: ${ulnVersion}`);\n }\n};\n\n/**\n * @deprecated Use getChainIdForEndpointVersion instead\n */\nexport const getChainId = (\n chainName: ChainName,\n environment: Environment,\n ulnVersion: UlnVersion,\n): string => {\n const ulnVer = {\n [UlnVersion.V1]: '1',\n [UlnVersion.V2]: '2',\n [UlnVersion.V300]: '3.0.2', // simpleMessageLib should get V302 chainIds\n [UlnVersion.V301]: '3.0.1',\n [UlnVersion.V302]: '3.0.2',\n [UlnVersion.ReadV1002]: '10.0.2',\n }[ulnVersion];\n\n return getChainIdForNetwork(chainName, environment, ulnVer).valueOf().toString();\n};\n\n// Note: This doesn't work for UlnVersion.V1\nexport const getChainIdForEndpointVersion = (\n chainName: ChainName,\n environment: Environment,\n version: EndpointVersion,\n): EndpointId => {\n // FIXME-STARKNET: Remove this once we have a proper ChainId for Starknet\n if (chainName === ChainName.STARKNET) {\n return 80085 as EndpointId;\n }\n\n // TODO: This is essentially 'getChainIdForNetwork' but skipping the UlnVersion -> EndpointVersion step, refactor monorepo to export this function\n return chainAndStageToEndpointId(\n chainName as unknown as Chain,\n environment as unknown as Stage,\n version,\n );\n};\n\nexport const getVId = (chainName: ChainName, environment: Environment): string => {\n // By convention the vid is alwayd the endpointV1 chainId\n // TODO: Monorepo doesnt have these chains for EndpointVersion.V1\n if (['solana', 'ton', 'initia', 'movement'].includes(chainName)) {\n const eid = getChainIdForEndpointVersion(chainName, environment, EndpointVersion.V2);\n return (parseInt(eid.toString()) % 30000).toString();\n }\n return getChainIdForEndpointVersion(chainName, environment, EndpointVersion.V1).toString();\n};\n\nexport class StaticChainConfigs {\n static getChainName(chainId: string | number): ChainName {\n return getChainName(chainId);\n }\n\n static getAddressSizeInBytesFromChainId(chainId: string | number): number {\n return StaticChainConfigs.getAddressSizeInBytes(StaticChainConfigs.getChainName(chainId));\n }\n\n static getAddressSizeInBytes(chainName: ChainName): number {\n return staticConfig[chainName].addressSizeInBytes;\n }\n\n static denormalizeHexAddressForChain(\n chainName: ChainName,\n address: NormalizedHexAddress,\n ): HexAddress {\n return denormalizeHexAddress(address, this.getAddressSizeInBytes(chainName));\n }\n\n static getSymbol(chainName: ChainName): string {\n return staticConfig[chainName].symbol;\n }\n\n static getDecimals(chainName: ChainName): number {\n return staticConfig[chainName].decimals;\n }\n\n static getMptBaseFee(chainName: ChainName): number {\n return staticConfig[chainName].mptBaseGas!;\n }\n\n static getChainLayer(chainName: ChainName): number {\n return staticConfig[chainName].chainLayer ?? 1;\n }\n\n static getChainSubType(chainName: ChainName): ChainSubType | undefined {\n return staticConfig[chainName].chainSubType;\n }\n}\n\n// TODO should be replaces with AddressParserSDK once it is written https://linear.app/layerzerolabs/issue/BE-1876\nexport function getAddressEncodedByChain(chainName: ChainName, address: HexAddress): string {\n // SOLANA addresses is base58 encoded and should not be lower cased\n // or web3.js cannot convert it to PublicKey\n if (chainName === ChainName.SOLANA) {\n return isBase58(address) ? address : hexToBase58(address);\n } else if (['aptos', 'movement', 'initia', 'ton', 'sui'].includes(chainName)) {\n const addressSizeInBytes = StaticChainConfigs.getAddressSizeInBytes(chainName);\n // APTOS addresses is bytes32 hex encoded\n return hexZeroPad(ensure0xPrefixed(address), addressSizeInBytes).toLowerCase();\n }\n // EVM addresses are 20 bytes\n // The getAddress(...).toLowerCase() does not change the address in this case but it does some validation\n return hexZeroPad(ensure0xPrefixed(address), 32).slice(-40).toLowerCase();\n}\n"]}
package/dist/index.js CHANGED
@@ -115,7 +115,8 @@ function getAddressEncodedByChain(chainName, address) {
115
115
  "aptos",
116
116
  "movement",
117
117
  "initia",
118
- "ton"
118
+ "ton",
119
+ "sui"
119
120
  ].includes(chainName)) {
120
121
  const addressSizeInBytes = StaticChainConfigs.getAddressSizeInBytes(chainName);
121
122
  return hexZeroPad(ensure0xPrefixed(address), addressSizeInBytes).toLowerCase();
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"sources":["../src/index.ts"],"names":["getChainName","chainId","getNetworkForChainId","parseInt","toString","chainName","isLzReadEndpointId","endpointId","Object","values","ChannelId","includes","Number","getLZEndpointVersionFromChainId","EndpointVersion","V2","EndpointV2IdBase","V1","chainIdToEndpointVersion","asNumber","isInteger","Error","getEnvFromChainId","getUlnVersionFromChainId","ulnVersionString","UlnVersion","getEndpointVersionFromUlnVersion","ulnVersion","V301","V300","ReadV1002","V302","getChainId","environment","ulnVer","getChainIdForNetwork","valueOf","getChainIdForEndpointVersion","version","ChainName","STARKNET","chainAndStageToEndpointId","getVId","eid","StaticChainConfigs","getAddressSizeInBytesFromChainId","getAddressSizeInBytes","staticConfig","addressSizeInBytes","denormalizeHexAddressForChain","address","denormalizeHexAddress","getSymbol","symbol","getDecimals","decimals","getMptBaseFee","mptBaseGas","getChainLayer","chainLayer","getChainSubType","chainSubType","getAddressEncodedByChain","SOLANA","isBase58","hexToBase58","hexZeroPad","ensure0xPrefixed","toLowerCase","slice"],"mappings":";;;;;;;AAwBO,IAAMA,YAAAA,2BAAgBC,OAAAA,KAAAA;AACzB,EAAA,OAAOC,qBAAqBC,QAAAA,CAASF,OAAAA,CAAQG,QAAAA,EAAQ,CAAA,CAAA,EAAMC,SAAAA;AAC/D,CAAA,EAF4B,cAAA;AAIrB,IAAMC,kBAAAA,2BAAsBC,UAAAA,KAAAA;AAC/B,EAAA,OAAOC,OAAOC,MAAAA,CAAOC,SAAAA,EAAWC,QAAAA,CAASC,MAAAA,CAAOL,UAAAA,CAAAA,CAAAA;AACpD,CAAA,EAFkC,oBAAA;AAI3B,IAAMM,+BAAAA,2BAAmCZ,OAAAA,KAAAA;AAC5C,EAAA,IAAIK,kBAAAA,CAAmBL,OAAAA,CAAAA,EAAU;AAC7B,IAAA,OAAOa,eAAAA,CAAgBC,EAAAA;AAC3B,EAAA;AACA,EAAA,OAAOd,OAAAA,GAAUe,gBAAAA,GAAmBF,eAAAA,CAAgBG,EAAAA,GAAKH,eAAAA,CAAgBC,EAAAA;AAC7E,CAAA,EAL+C,iCAAA;AAOxC,IAAMG,wBAAAA,2BAA4BjB,OAAAA,KAAAA;AACrC,EAAA,MAAMkB,QAAAA,GAAWP,OAAOX,OAAAA,CAAAA;AACxB,EAAA,IAAI,CAACW,MAAAA,CAAOQ,SAAAA,CAAUD,QAAAA,CAAAA,IAAaA,WAAW,CAAA,EAC1C,MAAM,IAAIE,KAAAA,CAAM,oCAAA,CAAA;AACpB,EAAA,OAAOR,gCAAgCM,QAAAA,CAAAA;AAC3C,CAAA,EALwC,0BAAA;AAOjC,IAAMG,iBAAAA,2BAAqBrB,OAAAA,KAAAA;AAC9B,EAAA,OAAOC,oBAAAA,CAAqBC,QAAAA,CAASF,OAAAA,CAAAA,EAAW,KAAA,CAAA;AACpD,CAAA,EAFiC,mBAAA;AAI1B,IAAMsB,wBAAAA,2BAA4BtB,OAAAA,KAAAA;AACrC,EAAA,MAAMuB,mBAAmBtB,oBAAAA,CAAqBC,QAAAA,CAASF,OAAAA,CAAAA,EAAW,YAAA,CAAA;AAClE,EAAA,OAAO;AAAE,IAAA,GAAA,EAAKwB,UAAAA,CAAWV;AAAG,GAAA,CAAES,gBAAAA,CAAAA;AAClC,CAAA,EAHwC,0BAAA;AAKjC,IAAME,gCAAAA,2BAAoCC,UAAAA,KAAAA;AAC7C,EAAA,IAAIA,UAAAA,KAAeF,WAAWR,EAAAA,EAAI;AAC9B,IAAA,MAAM,IAAII,MAAM,gCAAA,CAAA;AACpB,EAAA;AACA,EAAA,QAAQM,UAAAA;AACJ,IAAA,KAAKF,UAAAA,CAAWV,EAAAA;AAChB,IAAA,KAAKU,UAAAA,CAAWG,IAAAA;AACZ,MAAA,OAAOd,eAAAA,CAAgBG,EAAAA;AAC3B,IAAA,KAAKQ,UAAAA,CAAWI,IAAAA;AAChB,IAAA,KAAKJ,UAAAA,CAAWK,SAAAA;AAChB,IAAA,KAAKL,UAAAA,CAAWM,IAAAA;AACZ,MAAA,OAAOjB,eAAAA,CAAgBC,EAAAA;AAC3B,IAAA;AACI,MAAA,MAAM,IAAIM,KAAAA,CAAM,CAAA,oBAAA,EAAuBM,UAAAA,CAAAA,CAAY,CAAA;AAC3D;AACJ,CAAA,EAfgD,kCAAA;AAoBzC,IAAMK,UAAAA,mBAAa,MAAA,CAAA,CACtB3B,SAAAA,EACA4B,WAAAA,EACAN,UAAAA,KAAAA;AAEA,EAAA,MAAMO,MAAAA,GAAS;IACX,CAACT,UAAAA,CAAWR,EAAE,GAAG,GAAA;IACjB,CAACQ,UAAAA,CAAWV,EAAE,GAAG,GAAA;IACjB,CAACU,UAAAA,CAAWI,IAAI,GAAG,OAAA;IACnB,CAACJ,UAAAA,CAAWG,IAAI,GAAG,OAAA;IACnB,CAACH,UAAAA,CAAWM,IAAI,GAAG,OAAA;IACnB,CAACN,UAAAA,CAAWK,SAAS,GAAG;AAC5B,GAAA,CAAEH,UAAAA,CAAAA;AAEF,EAAA,OAAOQ,qBAAqB9B,SAAAA,EAAW4B,WAAAA,EAAaC,MAAAA,CAAAA,CAAQE,OAAAA,GAAUhC,QAAAA,EAAQ;AAClF,CAAA,EAf0B,YAAA;AAkBnB,IAAMiC,4BAAAA,mBAA+B,MAAA,CAAA,CACxChC,SAAAA,EACA4B,WAAAA,EACAK,OAAAA,KAAAA;AAGA,EAAA,IAAIjC,SAAAA,KAAckC,UAAUC,QAAAA,EAAU;AAClC,IAAA,OAAO,KAAA;AACX,EAAA;AAGA,EAAA,OAAOC,yBAAAA,CACHpC,SAAAA,EACA4B,WAAAA,EACAK,OAAAA,CAAAA;AAER,CAAA,EAhB4C,8BAAA;AAkBrC,IAAMI,MAAAA,mBAAS,MAAA,CAAA,CAACrC,SAAAA,EAAsB4B,WAAAA,KAAAA;AAGzC,EAAA,IAAI;AAAC,IAAA,QAAA;AAAU,IAAA,KAAA;AAAO,IAAA,QAAA;AAAU,IAAA;AAAYtB,GAAAA,CAAAA,QAAAA,CAASN,SAAAA,CAAAA,EAAY;AAC7D,IAAA,MAAMsC,GAAAA,GAAMN,4BAAAA,CAA6BhC,SAAAA,EAAW4B,WAAAA,EAAanB,gBAAgBC,EAAE,CAAA;AACnF,IAAA,OAAA,CAAQZ,SAASwC,GAAAA,CAAIvC,QAAAA,EAAQ,CAAA,GAAM,KAAOA,QAAAA,EAAQ;AACtD,EAAA;AACA,EAAA,OAAOiC,6BAA6BhC,SAAAA,EAAW4B,WAAAA,EAAanB,eAAAA,CAAgBG,EAAE,EAAEb,QAAAA,EAAQ;AAC5F,CAAA,EARsB,QAAA;AAUf,IAAMwC,kBAAAA,GAAN,MAAMA,mBAAAA,CAAAA;EAzHb;;;AA0HI,EAAA,OAAO5C,aAAaC,OAAAA,EAAqC;AACrD,IAAA,OAAOD,aAAaC,OAAAA,CAAAA;AACxB,EAAA;AAEA,EAAA,OAAO4C,iCAAiC5C,OAAAA,EAAkC;AACtE,IAAA,OAAO2C,mBAAAA,CAAmBE,qBAAAA,CAAsBF,mBAAAA,CAAmB5C,YAAAA,CAAaC,OAAAA,CAAAA,CAAAA;AACpF,EAAA;AAEA,EAAA,OAAO6C,sBAAsBzC,SAAAA,EAA8B;AACvD,IAAA,OAAO0C,YAAAA,CAAa1C,SAAAA,CAAAA,CAAW2C,kBAAAA;AACnC,EAAA;EAEA,OAAOC,6BAAAA,CACH5C,WACA6C,OAAAA,EACU;AACV,IAAA,OAAOC,qBAAAA,CAAsBD,OAAAA,EAAS,IAAA,CAAKJ,qBAAAA,CAAsBzC,SAAAA,CAAAA,CAAAA;AACrE,EAAA;AAEA,EAAA,OAAO+C,UAAU/C,SAAAA,EAA8B;AAC3C,IAAA,OAAO0C,YAAAA,CAAa1C,SAAAA,CAAAA,CAAWgD,MAAAA;AACnC,EAAA;AAEA,EAAA,OAAOC,YAAYjD,SAAAA,EAA8B;AAC7C,IAAA,OAAO0C,YAAAA,CAAa1C,SAAAA,CAAAA,CAAWkD,QAAAA;AACnC,EAAA;AAEA,EAAA,OAAOC,cAAcnD,SAAAA,EAA8B;AAC/C,IAAA,OAAO0C,YAAAA,CAAa1C,SAAAA,CAAAA,CAAWoD,UAAAA;AACnC,EAAA;AAEA,EAAA,OAAOC,cAAcrD,SAAAA,EAA8B;AAC/C,IAAA,OAAO0C,YAAAA,CAAa1C,SAAAA,CAAAA,CAAWsD,UAAAA,IAAc,CAAA;AACjD,EAAA;AAEA,EAAA,OAAOC,gBAAgBvD,SAAAA,EAAgD;AACnE,IAAA,OAAO0C,YAAAA,CAAa1C,SAAAA,CAAAA,CAAWwD,YAAAA;AACnC,EAAA;AACJ;AAGO,SAASC,wBAAAA,CAAyBzD,WAAsB6C,OAAAA,EAAmB;AAG9E,EAAA,IAAI7C,SAAAA,KAAckC,UAAUwB,MAAAA,EAAQ;AAChC,IAAA,OAAOC,QAAAA,CAASd,OAAAA,CAAAA,GAAWA,OAAAA,GAAUe,YAAYf,OAAAA,CAAAA;EACrD,CAAA,MAAA,IAAW;AAAC,IAAA,OAAA;AAAS,IAAA,UAAA;AAAY,IAAA,QAAA;AAAU,IAAA;AAAOvC,GAAAA,CAAAA,QAAAA,CAASN,SAAAA,CAAAA,EAAY;AACnE,IAAA,MAAM2C,kBAAAA,GAAqBJ,kBAAAA,CAAmBE,qBAAAA,CAAsBzC,SAAAA,CAAAA;AAEpE,IAAA,OAAO6D,WAAWC,gBAAAA,CAAiBjB,OAAAA,CAAAA,EAAUF,kBAAAA,EAAoBoB,WAAAA,EAAW;AAChF,EAAA;AAGA,EAAA,OAAOF,UAAAA,CAAWC,iBAAiBjB,OAAAA,CAAAA,EAAU,EAAA,CAAA,CAAImB,KAAAA,CAAM,GAAC,CAAA,CAAID,WAAAA,EAAW;AAC3E;AAbgBN,MAAAA,CAAAA,wBAAAA,EAAAA,0BAAAA,CAAAA","file":"index.js","sourcesContent":["import {\n denormalizeHexAddress,\n type HexAddress,\n type NormalizedHexAddress,\n} from '@layerzerolabs/common-chain-model';\nimport { ensure0xPrefixed, hexToBase58, hexZeroPad, isBase58 } from '@layerzerolabs/common-utils';\nimport type { Environment } from '@layerzerolabs/layerzero-definitions';\nimport { ChainName } from '@layerzerolabs/layerzero-definitions';\nimport { EndpointVersion, UlnVersion } from '@layerzerolabs/layerzero-definitions';\nimport type { Chain, EndpointId, Stage } from '@layerzerolabs/lz-definitions';\nimport {\n chainAndStageToEndpointId,\n ChannelId,\n EndpointV2IdBase,\n getChainIdForNetwork,\n getNetworkForChainId,\n} from '@layerzerolabs/lz-definitions';\n\nimport { ChainSubType, staticConfig } from './staticChainInfo';\n\nexport { ChainSubType };\n\nexport * from './staticChainInfo';\n\nexport const getChainName = (chainId: string | number | bigint): ChainName => {\n return getNetworkForChainId(parseInt(chainId.toString()))?.chainName! as unknown as ChainName;\n};\n\nexport const isLzReadEndpointId = (endpointId: number | bigint | string) => {\n return Object.values(ChannelId).includes(Number(endpointId));\n};\n\nexport const getLZEndpointVersionFromChainId = (chainId: number): EndpointVersion => {\n if (isLzReadEndpointId(chainId)) {\n return EndpointVersion.V2;\n }\n return chainId < EndpointV2IdBase ? EndpointVersion.V1 : EndpointVersion.V2;\n};\n\nexport const chainIdToEndpointVersion = (chainId: string | number): EndpointVersion => {\n const asNumber = Number(chainId);\n if (!Number.isInteger(asNumber) || asNumber < 0)\n throw new Error('Argument must be positive integer!');\n return getLZEndpointVersionFromChainId(asNumber);\n};\n\nexport const getEnvFromChainId = (chainId: string): string => {\n return getNetworkForChainId(parseInt(chainId))!['env'];\n};\n\nexport const getUlnVersionFromChainId = (chainId: string): UlnVersion => {\n const ulnVersionString = getNetworkForChainId(parseInt(chainId))!['ulnVersion'];\n return { '2': UlnVersion.V2 }[ulnVersionString]!; // V1 will not be supported anymore\n};\n\nexport const getEndpointVersionFromUlnVersion = (ulnVersion: UlnVersion): EndpointVersion => {\n if (ulnVersion === UlnVersion.V1) {\n throw new Error('UlnVersion.V1 is not supported');\n }\n switch (ulnVersion) {\n case UlnVersion.V2:\n case UlnVersion.V301:\n return EndpointVersion.V1;\n case UlnVersion.V300:\n case UlnVersion.ReadV1002:\n case UlnVersion.V302:\n return EndpointVersion.V2;\n default:\n throw new Error(`Unknown UlnVersion: ${ulnVersion}`);\n }\n};\n\n/**\n * @deprecated Use getChainIdForEndpointVersion instead\n */\nexport const getChainId = (\n chainName: ChainName,\n environment: Environment,\n ulnVersion: UlnVersion,\n): string => {\n const ulnVer = {\n [UlnVersion.V1]: '1',\n [UlnVersion.V2]: '2',\n [UlnVersion.V300]: '3.0.2', // simpleMessageLib should get V302 chainIds\n [UlnVersion.V301]: '3.0.1',\n [UlnVersion.V302]: '3.0.2',\n [UlnVersion.ReadV1002]: '10.0.2',\n }[ulnVersion];\n\n return getChainIdForNetwork(chainName, environment, ulnVer).valueOf().toString();\n};\n\n// Note: This doesn't work for UlnVersion.V1\nexport const getChainIdForEndpointVersion = (\n chainName: ChainName,\n environment: Environment,\n version: EndpointVersion,\n): EndpointId => {\n // FIXME-STARKNET: Remove this once we have a proper ChainId for Starknet\n if (chainName === ChainName.STARKNET) {\n return 80085 as EndpointId;\n }\n\n // TODO: This is essentially 'getChainIdForNetwork' but skipping the UlnVersion -> EndpointVersion step, refactor monorepo to export this function\n return chainAndStageToEndpointId(\n chainName as unknown as Chain,\n environment as unknown as Stage,\n version,\n );\n};\n\nexport const getVId = (chainName: ChainName, environment: Environment): string => {\n // By convention the vid is alwayd the endpointV1 chainId\n // TODO: Monorepo doesnt have these chains for EndpointVersion.V1\n if (['solana', 'ton', 'initia', 'movement'].includes(chainName)) {\n const eid = getChainIdForEndpointVersion(chainName, environment, EndpointVersion.V2);\n return (parseInt(eid.toString()) % 30000).toString();\n }\n return getChainIdForEndpointVersion(chainName, environment, EndpointVersion.V1).toString();\n};\n\nexport class StaticChainConfigs {\n static getChainName(chainId: string | number): ChainName {\n return getChainName(chainId);\n }\n\n static getAddressSizeInBytesFromChainId(chainId: string | number): number {\n return StaticChainConfigs.getAddressSizeInBytes(StaticChainConfigs.getChainName(chainId));\n }\n\n static getAddressSizeInBytes(chainName: ChainName): number {\n return staticConfig[chainName].addressSizeInBytes;\n }\n\n static denormalizeHexAddressForChain(\n chainName: ChainName,\n address: NormalizedHexAddress,\n ): HexAddress {\n return denormalizeHexAddress(address, this.getAddressSizeInBytes(chainName));\n }\n\n static getSymbol(chainName: ChainName): string {\n return staticConfig[chainName].symbol;\n }\n\n static getDecimals(chainName: ChainName): number {\n return staticConfig[chainName].decimals;\n }\n\n static getMptBaseFee(chainName: ChainName): number {\n return staticConfig[chainName].mptBaseGas!;\n }\n\n static getChainLayer(chainName: ChainName): number {\n return staticConfig[chainName].chainLayer ?? 1;\n }\n\n static getChainSubType(chainName: ChainName): ChainSubType | undefined {\n return staticConfig[chainName].chainSubType;\n }\n}\n\n// TODO should be replaces with AddressParserSDK once it is written https://linear.app/layerzerolabs/issue/BE-1876\nexport function getAddressEncodedByChain(chainName: ChainName, address: HexAddress): string {\n // SOLANA addresses is base58 encoded and should not be lower cased\n // or web3.js cannot convert it to PublicKey\n if (chainName === ChainName.SOLANA) {\n return isBase58(address) ? address : hexToBase58(address);\n } else if (['aptos', 'movement', 'initia', 'ton'].includes(chainName)) {\n const addressSizeInBytes = StaticChainConfigs.getAddressSizeInBytes(chainName);\n // APTOS addresses is bytes32 hex encoded\n return hexZeroPad(ensure0xPrefixed(address), addressSizeInBytes).toLowerCase();\n }\n // EVM addresses are 20 bytes\n // The getAddress(...).toLowerCase() does not change the address in this case but it does some validation\n return hexZeroPad(ensure0xPrefixed(address), 32).slice(-40).toLowerCase();\n}\n"]}
1
+ {"version":3,"sources":["../src/index.ts"],"names":["getChainName","chainId","getNetworkForChainId","parseInt","toString","chainName","isLzReadEndpointId","endpointId","Object","values","ChannelId","includes","Number","getLZEndpointVersionFromChainId","EndpointVersion","V2","EndpointV2IdBase","V1","chainIdToEndpointVersion","asNumber","isInteger","Error","getEnvFromChainId","getUlnVersionFromChainId","ulnVersionString","UlnVersion","getEndpointVersionFromUlnVersion","ulnVersion","V301","V300","ReadV1002","V302","getChainId","environment","ulnVer","getChainIdForNetwork","valueOf","getChainIdForEndpointVersion","version","ChainName","STARKNET","chainAndStageToEndpointId","getVId","eid","StaticChainConfigs","getAddressSizeInBytesFromChainId","getAddressSizeInBytes","staticConfig","addressSizeInBytes","denormalizeHexAddressForChain","address","denormalizeHexAddress","getSymbol","symbol","getDecimals","decimals","getMptBaseFee","mptBaseGas","getChainLayer","chainLayer","getChainSubType","chainSubType","getAddressEncodedByChain","SOLANA","isBase58","hexToBase58","hexZeroPad","ensure0xPrefixed","toLowerCase","slice"],"mappings":"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","file":"index.js","sourcesContent":["import {\n denormalizeHexAddress,\n type HexAddress,\n type NormalizedHexAddress,\n} from '@layerzerolabs/common-chain-model';\nimport { ensure0xPrefixed, hexToBase58, hexZeroPad, isBase58 } from '@layerzerolabs/common-utils';\nimport type { Environment } from '@layerzerolabs/layerzero-definitions';\nimport { ChainName } from '@layerzerolabs/layerzero-definitions';\nimport { EndpointVersion, UlnVersion } from '@layerzerolabs/layerzero-definitions';\nimport type { Chain, EndpointId, Stage } from '@layerzerolabs/lz-definitions';\nimport {\n chainAndStageToEndpointId,\n ChannelId,\n EndpointV2IdBase,\n getChainIdForNetwork,\n getNetworkForChainId,\n} from '@layerzerolabs/lz-definitions';\n\nimport { ChainSubType, staticConfig } from './staticChainInfo';\n\nexport { ChainSubType };\n\nexport * from './staticChainInfo';\n\nexport const getChainName = (chainId: string | number | bigint): ChainName => {\n return getNetworkForChainId(parseInt(chainId.toString()))?.chainName! as unknown as ChainName;\n};\n\nexport const isLzReadEndpointId = (endpointId: number | bigint | string) => {\n return Object.values(ChannelId).includes(Number(endpointId));\n};\n\nexport const getLZEndpointVersionFromChainId = (chainId: number): EndpointVersion => {\n if (isLzReadEndpointId(chainId)) {\n return EndpointVersion.V2;\n }\n return chainId < EndpointV2IdBase ? EndpointVersion.V1 : EndpointVersion.V2;\n};\n\nexport const chainIdToEndpointVersion = (chainId: string | number): EndpointVersion => {\n const asNumber = Number(chainId);\n if (!Number.isInteger(asNumber) || asNumber < 0)\n throw new Error('Argument must be positive integer!');\n return getLZEndpointVersionFromChainId(asNumber);\n};\n\nexport const getEnvFromChainId = (chainId: string): string => {\n return getNetworkForChainId(parseInt(chainId))!['env'];\n};\n\nexport const getUlnVersionFromChainId = (chainId: string): UlnVersion => {\n const ulnVersionString = getNetworkForChainId(parseInt(chainId))!['ulnVersion'];\n return { '2': UlnVersion.V2 }[ulnVersionString]!; // V1 will not be supported anymore\n};\n\nexport const getEndpointVersionFromUlnVersion = (ulnVersion: UlnVersion): EndpointVersion => {\n if (ulnVersion === UlnVersion.V1) {\n throw new Error('UlnVersion.V1 is not supported');\n }\n switch (ulnVersion) {\n case UlnVersion.V2:\n case UlnVersion.V301:\n return EndpointVersion.V1;\n case UlnVersion.V300:\n case UlnVersion.ReadV1002:\n case UlnVersion.V302:\n return EndpointVersion.V2;\n default:\n throw new Error(`Unknown UlnVersion: ${ulnVersion}`);\n }\n};\n\n/**\n * @deprecated Use getChainIdForEndpointVersion instead\n */\nexport const getChainId = (\n chainName: ChainName,\n environment: Environment,\n ulnVersion: UlnVersion,\n): string => {\n const ulnVer = {\n [UlnVersion.V1]: '1',\n [UlnVersion.V2]: '2',\n [UlnVersion.V300]: '3.0.2', // simpleMessageLib should get V302 chainIds\n [UlnVersion.V301]: '3.0.1',\n [UlnVersion.V302]: '3.0.2',\n [UlnVersion.ReadV1002]: '10.0.2',\n }[ulnVersion];\n\n return getChainIdForNetwork(chainName, environment, ulnVer).valueOf().toString();\n};\n\n// Note: This doesn't work for UlnVersion.V1\nexport const getChainIdForEndpointVersion = (\n chainName: ChainName,\n environment: Environment,\n version: EndpointVersion,\n): EndpointId => {\n // FIXME-STARKNET: Remove this once we have a proper ChainId for Starknet\n if (chainName === ChainName.STARKNET) {\n return 80085 as EndpointId;\n }\n\n // TODO: This is essentially 'getChainIdForNetwork' but skipping the UlnVersion -> EndpointVersion step, refactor monorepo to export this function\n return chainAndStageToEndpointId(\n chainName as unknown as Chain,\n environment as unknown as Stage,\n version,\n );\n};\n\nexport const getVId = (chainName: ChainName, environment: Environment): string => {\n // By convention the vid is alwayd the endpointV1 chainId\n // TODO: Monorepo doesnt have these chains for EndpointVersion.V1\n if (['solana', 'ton', 'initia', 'movement'].includes(chainName)) {\n const eid = getChainIdForEndpointVersion(chainName, environment, EndpointVersion.V2);\n return (parseInt(eid.toString()) % 30000).toString();\n }\n return getChainIdForEndpointVersion(chainName, environment, EndpointVersion.V1).toString();\n};\n\nexport class StaticChainConfigs {\n static getChainName(chainId: string | number): ChainName {\n return getChainName(chainId);\n }\n\n static getAddressSizeInBytesFromChainId(chainId: string | number): number {\n return StaticChainConfigs.getAddressSizeInBytes(StaticChainConfigs.getChainName(chainId));\n }\n\n static getAddressSizeInBytes(chainName: ChainName): number {\n return staticConfig[chainName].addressSizeInBytes;\n }\n\n static denormalizeHexAddressForChain(\n chainName: ChainName,\n address: NormalizedHexAddress,\n ): HexAddress {\n return denormalizeHexAddress(address, this.getAddressSizeInBytes(chainName));\n }\n\n static getSymbol(chainName: ChainName): string {\n return staticConfig[chainName].symbol;\n }\n\n static getDecimals(chainName: ChainName): number {\n return staticConfig[chainName].decimals;\n }\n\n static getMptBaseFee(chainName: ChainName): number {\n return staticConfig[chainName].mptBaseGas!;\n }\n\n static getChainLayer(chainName: ChainName): number {\n return staticConfig[chainName].chainLayer ?? 1;\n }\n\n static getChainSubType(chainName: ChainName): ChainSubType | undefined {\n return staticConfig[chainName].chainSubType;\n }\n}\n\n// TODO should be replaces with AddressParserSDK once it is written https://linear.app/layerzerolabs/issue/BE-1876\nexport function getAddressEncodedByChain(chainName: ChainName, address: HexAddress): string {\n // SOLANA addresses is base58 encoded and should not be lower cased\n // or web3.js cannot convert it to PublicKey\n if (chainName === ChainName.SOLANA) {\n return isBase58(address) ? address : hexToBase58(address);\n } else if (['aptos', 'movement', 'initia', 'ton', 'sui'].includes(chainName)) {\n const addressSizeInBytes = StaticChainConfigs.getAddressSizeInBytes(chainName);\n // APTOS addresses is bytes32 hex encoded\n return hexZeroPad(ensure0xPrefixed(address), addressSizeInBytes).toLowerCase();\n }\n // EVM addresses are 20 bytes\n // The getAddress(...).toLowerCase() does not change the address in this case but it does some validation\n return hexZeroPad(ensure0xPrefixed(address), 32).slice(-40).toLowerCase();\n}\n"]}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@layerzerolabs/static-chain-info",
3
- "version": "0.0.34",
3
+ "version": "0.0.39",
4
4
  "private": false,
5
5
  "license": "MIT",
6
6
  "sideEffects": false,
@@ -15,16 +15,16 @@
15
15
  "module": "./dist/index.js",
16
16
  "types": "./dist/index.d.ts",
17
17
  "dependencies": {
18
- "@layerzerolabs/lz-definitions": "3.0.129",
19
- "@layerzerolabs/common-chain-model": "0.0.34",
20
- "@layerzerolabs/common-utils": "0.0.34",
21
- "@layerzerolabs/layerzero-definitions": "0.0.34"
18
+ "@layerzerolabs/lz-definitions": "3.0.134",
19
+ "@layerzerolabs/common-chain-model": "0.0.39",
20
+ "@layerzerolabs/common-utils": "0.0.39",
21
+ "@layerzerolabs/layerzero-definitions": "0.0.39"
22
22
  },
23
23
  "devDependencies": {
24
24
  "tsup": "^8.4.0",
25
25
  "vitest": "^3.2.3",
26
- "@layerzerolabs/tsup-configuration": "0.0.34",
27
- "@layerzerolabs/typescript-configuration": "0.0.34"
26
+ "@layerzerolabs/tsup-configuration": "0.0.39",
27
+ "@layerzerolabs/typescript-configuration": "0.0.39"
28
28
  },
29
29
  "publishConfig": {
30
30
  "access": "restricted",
package/src/index.ts CHANGED
@@ -166,7 +166,7 @@ export function getAddressEncodedByChain(chainName: ChainName, address: HexAddre
166
166
  // or web3.js cannot convert it to PublicKey
167
167
  if (chainName === ChainName.SOLANA) {
168
168
  return isBase58(address) ? address : hexToBase58(address);
169
- } else if (['aptos', 'movement', 'initia', 'ton'].includes(chainName)) {
169
+ } else if (['aptos', 'movement', 'initia', 'ton', 'sui'].includes(chainName)) {
170
170
  const addressSizeInBytes = StaticChainConfigs.getAddressSizeInBytes(chainName);
171
171
  // APTOS addresses is bytes32 hex encoded
172
172
  return hexZeroPad(ensure0xPrefixed(address), addressSizeInBytes).toLowerCase();