@layerzerolabs/chain-utils 0.2.8 → 0.2.10

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,32 +10,32 @@
10
10
  CLI Cleaning output folder
11
11
  CJS Build start
12
12
  ESM Build start
13
+ Entry module "dist/ZZHCL54L.cjs" is using named and default exports together. Consumers of your bundle will have to use `chunk.default` to access the default export, which may not be what you want. Use `output.exports: "named"` to disable this warning.
13
14
  "default" is imported from external module "path" but never used in "dist/CWKWODSW.js".
14
15
  "fileURLToPath" is imported from external module "url" but never used in "dist/CWKWODSW.js".
15
- Entry module "dist/ZZHCL54L.cjs" is using named and default exports together. Consumers of your bundle will have to use `chunk.default` to access the default export, which may not be what you want. Use `output.exports: "named"` to disable this warning.
16
- CJS dist/addressParser.cjs 1.27 KB
17
- CJS dist/index.cjs 1.32 KB
18
- CJS dist/ICZYLYGP.cjs 19.21 KB
19
- CJS dist/KHVGLVR5.cjs 2.10 KB
16
+ CJS dist/addressParser.cjs 1.28 KB
17
+ CJS dist/index.cjs 1.33 KB
18
+ CJS dist/6ZQQF5PQ.cjs 19.43 KB
20
19
  CJS dist/ZZHCL54L.cjs 42.51 KB
21
- CJS dist/addressParser.test.cjs 669.11 KB
20
+ CJS dist/KHVGLVR5.cjs 2.10 KB
21
+ CJS dist/addressParser.test.cjs 669.26 KB
22
22
  CJS dist/addressParser.cjs.map 78.00 B
23
23
  CJS dist/index.cjs.map 181.00 B
24
- CJS dist/KHVGLVR5.cjs.map 926.00 B
25
- CJS dist/ICZYLYGP.cjs.map 40.98 KB
24
+ CJS dist/6ZQQF5PQ.cjs.map 40.99 KB
26
25
  CJS dist/ZZHCL54L.cjs.map 100.23 KB
26
+ CJS dist/KHVGLVR5.cjs.map 926.00 B
27
27
  CJS dist/addressParser.test.cjs.map 1.62 MB
28
- CJS ⚡️ Build success in 3813ms
28
+ CJS ⚡️ Build success in 3635ms
29
29
  ESM dist/addressParser.js 294.00 B
30
30
  ESM dist/index.js 337.00 B
31
- ESM dist/BG5XW4YA.js 17.29 KB
32
- ESM dist/PYS2ZW6G.js 42.16 KB
31
+ ESM dist/TNQ4ZWJM.js 17.30 KB
33
32
  ESM dist/CWKWODSW.js 1.87 KB
34
- ESM dist/addressParser.test.js 655.48 KB
33
+ ESM dist/PYS2ZW6G.js 42.16 KB
34
+ ESM dist/addressParser.test.js 655.49 KB
35
35
  ESM dist/addressParser.js.map 77.00 B
36
36
  ESM dist/index.js.map 160.00 B
37
- ESM dist/BG5XW4YA.js.map 40.90 KB
38
37
  ESM dist/CWKWODSW.js.map 669.00 B
38
+ ESM dist/TNQ4ZWJM.js.map 40.91 KB
39
39
  ESM dist/PYS2ZW6G.js.map 100.20 KB
40
40
  ESM dist/addressParser.test.js.map 1.61 MB
41
- ESM ⚡️ Build success in 3814ms
41
+ ESM ⚡️ Build success in 3637ms
@@ -2,7 +2,7 @@
2
2
  > @layerzerolabs/chain-utils@0.0.0 lint /home/runner/work/monorepo-internal/monorepo-internal/packages/chain-abstractions/chain-utils
3
3
  > eslint . --max-warnings 0 || (eslint . --fix --max-warnings 0 && false)
4
4
 
5
- (node:44768) [MODULE_TYPELESS_PACKAGE_JSON] Warning: Module type of file:///home/runner/work/monorepo-internal/monorepo-internal/eslint.config.js?mtime=1766535494239 is not specified and it doesn't parse as CommonJS.
5
+ (node:42060) [MODULE_TYPELESS_PACKAGE_JSON] Warning: Module type of file:///home/runner/work/monorepo-internal/monorepo-internal/eslint.config.js?mtime=1767815771634 is not specified and it doesn't parse as CommonJS.
6
6
  Reparsing as ES module because module syntax was detected. This incurs a performance overhead.
7
7
  To eliminate this warning, add "type": "module" to /home/runner/work/monorepo-internal/monorepo-internal/package.json.
8
8
  (Use `node --trace-warnings ...` to show where the warning was created)
@@ -13,11 +13,11 @@ Breaking changes might not follow SemVer, please pin Vitest's version when using
13
13
  error: 'The address invalid-ton-address cannot be decoded as TON, hex, or base58'
14
14
  }
15
15
 
16
- ✓ src/addressParser.test.ts (55 tests) 228ms
16
+ ✓ src/addressParser.test.ts (55 tests) 319ms
17
17
 
18
18
   Test Files  1 passed (1)
19
19
   Tests  55 passed (55)
20
20
  Type Errors  no errors
21
-  Start at  00:24:51
22
-  Duration  3.22s (transform 796ms, setup 0ms, collect 2.40s, tests 228ms, environment 0ms, prepare 169ms)
21
+  Start at  20:02:51
22
+  Duration  3.02s (transform 698ms, setup 0ms, collect 2.20s, tests 319ms, environment 0ms, prepare 169ms)
23
23
 
@@ -5,8 +5,8 @@ var initia_js = require('@initia/initia.js');
5
5
  var stellarSdk = require('@stellar/stellar-sdk');
6
6
  var bs58 = require('bs58');
7
7
  var commonChainModel = require('@layerzerolabs/common-chain-model');
8
+ var commonEncodingUtils = require('@layerzerolabs/common-encoding-utils');
8
9
  var commonTon = require('@layerzerolabs/common-ton');
9
- var commonUtils = require('@layerzerolabs/common-utils');
10
10
  var layerzeroDefinitions = require('@layerzerolabs/layerzero-definitions');
11
11
  var staticChainInfo = require('@layerzerolabs/static-chain-info');
12
12
 
@@ -35,13 +35,13 @@ function addressParser(chainName) {
35
35
  KHVGLVR5_cjs.__name(addressParser, "addressParser");
36
36
  (function(addressParser2) {
37
37
  addressParser2.normalizedToBytes32Hex = (address) => {
38
- return commonUtils.hexZeroPad(address, 32);
38
+ return commonEncodingUtils.hexZeroPad(address, 32);
39
39
  };
40
40
  addressParser2.normalizedToUnpaddedString = (address) => {
41
41
  return address.toString();
42
42
  };
43
43
  addressParser2.normalizedToBytes32 = (address) => {
44
- return commonUtils.hexToBytes(addressParser2.normalizedToBytes32Hex(address));
44
+ return commonEncodingUtils.hexToBytes(addressParser2.normalizedToBytes32Hex(address));
45
45
  };
46
46
  addressParser2.normalizedToBigInt = (address) => {
47
47
  return BigInt(address);
@@ -93,15 +93,15 @@ var tonAddressParser = /* @__PURE__ */ KHVGLVR5_cjs.__name((chainName) => {
93
93
  }, "nativeToNormalized"),
94
94
  nativeToBytes32Hex: /* @__PURE__ */ KHVGLVR5_cjs.__name((nativeAddress) => {
95
95
  if (nativeAddress === void 0) return void 0;
96
- return commonUtils.hexZeroPad(addressParser(chainName).nativeToNormalized(nativeAddress), 32);
96
+ return commonEncodingUtils.hexZeroPad(addressParser(chainName).nativeToNormalized(nativeAddress), 32);
97
97
  }, "nativeToBytes32Hex"),
98
98
  nativeToBytes: /* @__PURE__ */ KHVGLVR5_cjs.__name((nativeAddress) => {
99
99
  if (nativeAddress === void 0) return void 0;
100
- return commonUtils.hexToBytes(addressParser(chainName).nativeToBytes32Hex(nativeAddress));
100
+ return commonEncodingUtils.hexToBytes(addressParser(chainName).nativeToBytes32Hex(nativeAddress));
101
101
  }, "nativeToBytes"),
102
102
  nativeToBytes32: /* @__PURE__ */ KHVGLVR5_cjs.__name((nativeAddress) => {
103
103
  if (nativeAddress === void 0) return void 0;
104
- return commonUtils.hexToBytes(addressParser(chainName).nativeToBytes32Hex(nativeAddress));
104
+ return commonEncodingUtils.hexToBytes(addressParser(chainName).nativeToBytes32Hex(nativeAddress));
105
105
  }, "nativeToBytes32"),
106
106
  parseNative: /* @__PURE__ */ KHVGLVR5_cjs.__name((nativeAddress) => {
107
107
  assertNative(nativeAddress, chainName);
@@ -123,7 +123,7 @@ var initiaAddressParser = /* @__PURE__ */ KHVGLVR5_cjs.__name((chainName) => {
123
123
  return false;
124
124
  }
125
125
  try {
126
- return commonUtils.isHexString(nativeAddress) || /^(init)1(['qpzry9x8gf2tvdw0s3jn54khce6mua7l]{38,66})$/.test(nativeAddress);
126
+ return commonEncodingUtils.isHexString(nativeAddress) || /^(init)1(['qpzry9x8gf2tvdw0s3jn54khce6mua7l]{38,66})$/.test(nativeAddress);
127
127
  } catch {
128
128
  return false;
129
129
  }
@@ -145,22 +145,22 @@ var initiaAddressParser = /* @__PURE__ */ KHVGLVR5_cjs.__name((chainName) => {
145
145
  if (nativeAddress === void 0) return void 0;
146
146
  const address = getAddress(nativeAddress);
147
147
  assertNative(address, chainName);
148
- if (commonUtils.isHexString(address)) {
148
+ if (commonEncodingUtils.isHexString(address)) {
149
149
  return commonChainModel.normalizeHex(address);
150
150
  }
151
151
  return commonChainModel.normalizeHex(initia_js.AccAddress.toHex(nativeAddress.toString()));
152
152
  }, "nativeToNormalized"),
153
153
  nativeToBytes32Hex: /* @__PURE__ */ KHVGLVR5_cjs.__name((nativeAddress) => {
154
154
  if (nativeAddress === void 0) return void 0;
155
- return commonUtils.hexZeroPad(addressParser(chainName).nativeToNormalized(nativeAddress), 32);
155
+ return commonEncodingUtils.hexZeroPad(addressParser(chainName).nativeToNormalized(nativeAddress), 32);
156
156
  }, "nativeToBytes32Hex"),
157
157
  nativeToBytes: /* @__PURE__ */ KHVGLVR5_cjs.__name((nativeAddress) => {
158
158
  if (nativeAddress === void 0) return void 0;
159
- return commonUtils.hexToBytes(addressParser(chainName).nativeToBytes32Hex(nativeAddress));
159
+ return commonEncodingUtils.hexToBytes(addressParser(chainName).nativeToBytes32Hex(nativeAddress));
160
160
  }, "nativeToBytes"),
161
161
  nativeToBytes32: /* @__PURE__ */ KHVGLVR5_cjs.__name((nativeAddress) => {
162
162
  if (nativeAddress === void 0) return void 0;
163
- return commonUtils.hexToBytes(addressParser(chainName).nativeToBytes32Hex(nativeAddress));
163
+ return commonEncodingUtils.hexToBytes(addressParser(chainName).nativeToBytes32Hex(nativeAddress));
164
164
  }, "nativeToBytes32"),
165
165
  parseNative: /* @__PURE__ */ KHVGLVR5_cjs.__name((nativeAddress) => {
166
166
  assertNative(nativeAddress, chainName);
@@ -176,12 +176,12 @@ var base58AddressParser = /* @__PURE__ */ KHVGLVR5_cjs.__name((chainName) => {
176
176
  return {
177
177
  validateNative: /* @__PURE__ */ KHVGLVR5_cjs.__name((nativeAddress) => {
178
178
  if (nativeAddress === void 0) return false;
179
- return commonUtils.isBase58(nativeAddress);
179
+ return commonEncodingUtils.isBase58(nativeAddress);
180
180
  }, "validateNative"),
181
181
  normalizedToNative: /* @__PURE__ */ KHVGLVR5_cjs.__name((address) => {
182
182
  if (address === void 0) return void 0;
183
183
  return {
184
- nativeAddress: bs58__default.default.encode(commonUtils.hexToBytes(address)),
184
+ nativeAddress: bs58__default.default.encode(commonEncodingUtils.hexToBytes(address)),
185
185
  chainName
186
186
  };
187
187
  }, "normalizedToNative"),
@@ -193,12 +193,12 @@ var base58AddressParser = /* @__PURE__ */ KHVGLVR5_cjs.__name((chainName) => {
193
193
  if (nativeAddress === void 0) return void 0;
194
194
  const address = getAddress(nativeAddress);
195
195
  assertNative(address, chainName);
196
- const hex = commonUtils.bytesToHexPrefixed(bs58__default.default.decode(address));
196
+ const hex = commonEncodingUtils.bytesToHexPrefixed(bs58__default.default.decode(address));
197
197
  return commonChainModel.normalizeHex(hex);
198
198
  }, "nativeToNormalized"),
199
199
  nativeToBytes32Hex: /* @__PURE__ */ KHVGLVR5_cjs.__name((nativeAddress) => {
200
200
  if (nativeAddress === void 0) return void 0;
201
- return commonUtils.hexZeroPad(addressParser(chainName).nativeToNormalized(nativeAddress), 32);
201
+ return commonEncodingUtils.hexZeroPad(addressParser(chainName).nativeToNormalized(nativeAddress), 32);
202
202
  }, "nativeToBytes32Hex"),
203
203
  nativeToBytes: /* @__PURE__ */ KHVGLVR5_cjs.__name((nativeAddress) => {
204
204
  if (nativeAddress === void 0) return void 0;
@@ -208,7 +208,7 @@ var base58AddressParser = /* @__PURE__ */ KHVGLVR5_cjs.__name((chainName) => {
208
208
  }, "nativeToBytes"),
209
209
  nativeToBytes32: /* @__PURE__ */ KHVGLVR5_cjs.__name((nativeAddress) => {
210
210
  if (nativeAddress === void 0) return void 0;
211
- return commonUtils.hexToBytes(addressParser(chainName).nativeToBytes32Hex(nativeAddress));
211
+ return commonEncodingUtils.hexToBytes(addressParser(chainName).nativeToBytes32Hex(nativeAddress));
212
212
  }, "nativeToBytes32"),
213
213
  parseNative: /* @__PURE__ */ KHVGLVR5_cjs.__name((nativeAddress) => {
214
214
  assertNative(nativeAddress, chainName);
@@ -224,21 +224,21 @@ var hexAddressParser = /* @__PURE__ */ KHVGLVR5_cjs.__name((chainName) => {
224
224
  return {
225
225
  validateNative: /* @__PURE__ */ KHVGLVR5_cjs.__name((nativeAddress) => {
226
226
  if (nativeAddress === void 0) return false;
227
- return commonUtils.isHexString(nativeAddress);
227
+ return commonEncodingUtils.isHexString(nativeAddress);
228
228
  }, "validateNative"),
229
229
  normalizedToNative: /* @__PURE__ */ KHVGLVR5_cjs.__name((address) => {
230
230
  if (address === void 0) return void 0;
231
231
  const nativeByteLength = staticChainInfo.StaticChainConfigs.getAddressSizeInBytes(chainName);
232
232
  return {
233
233
  // we could have EIP-55 here, but omitted for now
234
- nativeAddress: commonUtils.hexZeroPad(address, nativeByteLength),
234
+ nativeAddress: commonEncodingUtils.hexZeroPad(address, nativeByteLength),
235
235
  chainName
236
236
  };
237
237
  }, "normalizedToNative"),
238
238
  normalizedToNativeString: /* @__PURE__ */ KHVGLVR5_cjs.__name((address) => {
239
239
  if (address === void 0) return void 0;
240
240
  const nativeByteLength = staticChainInfo.StaticChainConfigs.getAddressSizeInBytes(chainName);
241
- return commonUtils.hexZeroPad(address, nativeByteLength);
241
+ return commonEncodingUtils.hexZeroPad(address, nativeByteLength);
242
242
  }, "normalizedToNativeString"),
243
243
  nativeToNormalized: /* @__PURE__ */ KHVGLVR5_cjs.__name((nativeAddress) => {
244
244
  if (nativeAddress === void 0) return void 0;
@@ -250,17 +250,17 @@ var hexAddressParser = /* @__PURE__ */ KHVGLVR5_cjs.__name((chainName) => {
250
250
  if (nativeAddress === void 0) return void 0;
251
251
  const address = getAddress(nativeAddress);
252
252
  assertNative(address, chainName);
253
- return commonUtils.hexToBytes(address);
253
+ return commonEncodingUtils.hexToBytes(address);
254
254
  }, "nativeToBytes"),
255
255
  nativeToBytes32Hex: /* @__PURE__ */ KHVGLVR5_cjs.__name((nativeAddress) => {
256
256
  if (nativeAddress === void 0) return void 0;
257
257
  const address = getAddress(nativeAddress);
258
258
  assertNative(address, chainName);
259
- return commonUtils.hexZeroPad(address, 32);
259
+ return commonEncodingUtils.hexZeroPad(address, 32);
260
260
  }, "nativeToBytes32Hex"),
261
261
  nativeToBytes32: /* @__PURE__ */ KHVGLVR5_cjs.__name((nativeAddress) => {
262
262
  if (nativeAddress === void 0) return void 0;
263
- return commonUtils.hexToBytes(addressParser(chainName).nativeToBytes32Hex(nativeAddress));
263
+ return commonEncodingUtils.hexToBytes(addressParser(chainName).nativeToBytes32Hex(nativeAddress));
264
264
  }, "nativeToBytes32"),
265
265
  parseNative: /* @__PURE__ */ KHVGLVR5_cjs.__name((nativeAddress) => {
266
266
  if (chainName === layerzeroDefinitions.ChainName.TRON && nativeAddress) {
@@ -283,11 +283,11 @@ var stellarAddressParser = /* @__PURE__ */ KHVGLVR5_cjs.__name((chainName) => {
283
283
  const stellarTextEncoder = new TextEncoder();
284
284
  const stellarAsciiToNormalized = /* @__PURE__ */ KHVGLVR5_cjs.__name((address) => {
285
285
  const bytes = stellarTextEncoder.encode(address);
286
- return commonChainModel.normalizeHex(commonUtils.bytesToHexPrefixed(bytes));
286
+ return commonChainModel.normalizeHex(commonEncodingUtils.bytesToHexPrefixed(bytes));
287
287
  }, "stellarAsciiToNormalized");
288
288
  const stellarTextDecoder = new TextDecoder();
289
289
  const normalizedToStellarAscii = /* @__PURE__ */ KHVGLVR5_cjs.__name((normalizedHex) => {
290
- const bytes = commonUtils.hexToBytes(normalizedHex);
290
+ const bytes = commonEncodingUtils.hexToBytes(normalizedHex);
291
291
  return stellarTextDecoder.decode(bytes);
292
292
  }, "normalizedToStellarAscii");
293
293
  return {
@@ -334,7 +334,7 @@ var stellarAddressParser = /* @__PURE__ */ KHVGLVR5_cjs.__name((chainName) => {
334
334
  } else {
335
335
  throw new Error(`Unknown Stellar address type: ${address}`);
336
336
  }
337
- return commonUtils.bytesToHexPrefixed(rawBytes);
337
+ return commonEncodingUtils.bytesToHexPrefixed(rawBytes);
338
338
  }, "nativeToBytes32Hex"),
339
339
  nativeToBytes: /* @__PURE__ */ KHVGLVR5_cjs.__name((nativeAddress) => {
340
340
  if (nativeAddress === void 0) return void 0;
@@ -345,7 +345,7 @@ var stellarAddressParser = /* @__PURE__ */ KHVGLVR5_cjs.__name((chainName) => {
345
345
  nativeToBytes32: /* @__PURE__ */ KHVGLVR5_cjs.__name((nativeAddress) => {
346
346
  if (nativeAddress === void 0) return void 0;
347
347
  const hex = addressParser(chainName).nativeToBytes32Hex(nativeAddress);
348
- return commonUtils.hexToBytes(hex);
348
+ return commonEncodingUtils.hexToBytes(hex);
349
349
  }, "nativeToBytes32"),
350
350
  parseNative: /* @__PURE__ */ KHVGLVR5_cjs.__name((nativeAddress) => {
351
351
  assertNative(nativeAddress, chainName);
@@ -364,7 +364,7 @@ var starknetAddressParser = /* @__PURE__ */ KHVGLVR5_cjs.__name((chainName) => {
364
364
  ...hexAddressParser(chainName),
365
365
  validateNative: /* @__PURE__ */ KHVGLVR5_cjs.__name((nativeAddress) => {
366
366
  if (nativeAddress === void 0) return false;
367
- return commonUtils.isHexString(nativeAddress);
367
+ return commonEncodingUtils.isHexString(nativeAddress);
368
368
  }, "validateNative"),
369
369
  parseNative: /* @__PURE__ */ KHVGLVR5_cjs.__name((nativeAddress) => {
370
370
  if (nativeAddress === void 0) return void 0;
@@ -394,5 +394,5 @@ exports.initiaAddressParser = initiaAddressParser;
394
394
  exports.starknetAddressParser = starknetAddressParser;
395
395
  exports.stellarAddressParser = stellarAddressParser;
396
396
  exports.tonAddressParser = tonAddressParser;
397
- //# sourceMappingURL=ICZYLYGP.cjs.map
398
- //# sourceMappingURL=ICZYLYGP.cjs.map
397
+ //# sourceMappingURL=6ZQQF5PQ.cjs.map
398
+ //# sourceMappingURL=6ZQQF5PQ.cjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../src/addressParser.ts"],"names":["init_cjs_shims","AddressEncoding","addressParser","chainName","ChainName","TON","tonAddressParser","SOLANA","base58AddressParser","INITIA","initiaAddressParser","STELLAR","stellarAddressParser","STARKNET","starknetAddressParser","hexAddressParser","normalizedToBytes32Hex","address","hexZeroPad","normalizedToUnpaddedString","toString","normalizedToBytes32","hexToBytes","normalizedToBigInt","BigInt","parseNative","nativeAddress","assertNative","expectedChainName","validateNative","Error","getAddress","undefined","parseTonAddress","normalizedToNative","numericalValue","bigintToAddress","normalizedToNativeString","nativeToNormalized","normalizeHex","addressToHex","nativeToBytes32Hex","nativeToBytes","nativeToBytes32","parseNativeToUnpaddedHex","tonToNormalized","tonAddress","encoding","isHexString","test","AccAddress","fromHex","toHex","isBase58","bs58","encode","hex","bytesToHexPrefixed","decode","nativeByteLength","StaticChainConfigs","getAddressSizeInBytes","TRON","startsWith","slice","isValidStellarAddress","StrKey","isValidEd25519PublicKey","isValidContract","isValidMed25519PublicKey","isValidLiquidityPool","isValidClaimableBalance","isValidSignedPayload","stellarTextEncoder","TextEncoder","stellarAsciiToNormalized","bytes","stellarTextDecoder","TextDecoder","normalizedToStellarAscii","normalizedHex","stellarAddress","rawBytes","decodeEd25519PublicKey","decodeContract","decodeLiquidityPool","fullBytes","decodeClaimableBalance","subarray","normalized"],"mappings":";;;;;;;;;;;;;;;;;AAAAA,2BAAA,EAAA;AAiCO,IAAKC,eAAAA,6BAAAA,gBAAAA,EAAAA;;;;;;AAAAA,EAAAA,OAAAA,gBAAAA;;AAoDL,SAASC,cAAmCC,SAAAA,EAAY;AAE3D,EAAA,IAAIA,SAAAA,KAAcC,8BAAAA,CAAUC,GAAAA,EACxB,OAAOC,iBAAiBH,SAAAA,CAAAA;AAC5B,EAAA,IAAIA,SAAAA,KAAcC,8BAAAA,CAAUG,MAAAA,EACxB,OAAOC,oBAAoBL,SAAAA,CAAAA;AAC/B,EAAA,IAAIA,SAAAA,KAAcC,8BAAAA,CAAUK,MAAAA,EACxB,OAAOC,oBAAoBP,SAAAA,CAAAA;AAC/B,EAAA,IAAIA,SAAAA,KAAcC,8BAAAA,CAAUO,OAAAA,EACxB,OAAOC,qBAAqBT,SAAAA,CAAAA;AAChC,EAAA,IAAIA,SAAAA,KAAcC,8BAAAA,CAAUS,QAAAA,EACxB,OAAOC,sBAAsBX,SAAAA,CAAAA;AACjC,EAAA,OAAOY,iBAAiBZ,SAAAA,CAAAA;AAC5B;AAbgBD,mBAAAA,CAAAA,aAAAA,EAAAA,eAAAA,CAAAA;UAeCA,cAAAA,EAAAA;AACAc,EAAAA,cAAAA,CAAAA,sBAAAA,GAAyB,CAACC,OAAAA,KAAAA;AACnC,IAAA,OAAOC,8BAAAA,CAAWD,SAAiC,EAAA,CAAA;AACvD,EAAA,CAAA;AAEaE,EAAAA,cAAAA,CAAAA,0BAAAA,GAA6B,CAACF,OAAAA,KAAAA;AACvC,IAAA,OAAOA,QAAQG,QAAAA,EAAQ;AAC3B,EAAA,CAAA;AAEaC,EAAAA,cAAAA,CAAAA,mBAAAA,GAAsB,CAACJ,OAAAA,KAAAA;AAChC,IAAA,OAAOK,8BAAAA,CAAWN,cAAAA,CAAAA,sBAAAA,CAAuBC,OAAAA,CAAAA,CAAAA;AAC7C,EAAA,CAAA;AAEaM,EAAAA,cAAAA,CAAAA,kBAAAA,GAAqB,CAACN,OAAAA,KAAAA;AAC/B,IAAA,OAAOO,OAAOP,OAAAA,CAAAA;AAClB,EAAA,CAAA;AAEaQ,EAAAA,cAAAA,CAAAA,WAAAA,GAAc,CAACC,aAAAA,KAAAA;AACxB,IAAA,OAAOxB,eAAcwB,aAAAA,CAAcvB,SAAS,CAAA,CAAEsB,WAAAA,CAAYC,cAAcA,aAAa,CAAA;AACzF,EAAA,CAAA;AACJ,CAAA,EApBiBxB,aAAAA,KAAAA,aAAAA,GAAAA,EAAAA,CAAAA,CAAAA;AAsBjB,SAASyB,YAAAA,CACLD,eACAE,iBAAAA,EAAoB;AAEpB,EAAA,IAAI,CAAC1B,aAAAA,CAAc0B,iBAAAA,CAAAA,CAAmBC,cAAAA,CAAeH,aAAAA,CAAAA,EAAgB;AACjE,IAAA,MAAM,IAAII,KAAAA,CACN,mBAAA,GACIJ,aAAAA,GACA,8EACAE,iBAAAA,CAAAA;AAEZ,EAAA;AACJ;AAZSD,mBAAAA,CAAAA,YAAAA,EAAAA,cAAAA,CAAAA;AAcT,IAAMI,UAAAA,wCAAmCL,aAAAA,KAAAA;AACrC,EAAA,OAAO,OAAOA,aAAAA,KAAkB,QAAA,GAAWA,aAAAA,CAAcA,aAAAA,GAAgBA,aAAAA;AAC7E,CAAA,EAFmB,YAAA,CAAA;AAIZ,IAAMpB,gBAAAA,wCAEqDH,SAAAA,KAAAA;AAC9D,EAAA,OAAO;AACH0B,IAAAA,cAAAA,uCAAiBH,aAAAA,KAAAA;AACb,MAAA,IAAIA,kBAAkBM,MAAAA,EAAW;AAC7B,QAAA,OAAO,KAAA;AACX,MAAA;AACA,MAAA,IAAI;AACAC,QAAAA,yBAAAA,CAAgBP,aAAAA,CAAAA;AAChB,QAAA,OAAO,IAAA;MACX,CAAA,CAAA,MAAQ;AACJ,QAAA,OAAO,KAAA;AACX,MAAA;IACJ,CAAA,EAVgB,gBAAA,CAAA;AAWhBQ,IAAAA,kBAAAA,uCAAqBjB,OAAAA,KAAAA;AACjB,MAAA,IAAIA,OAAAA,KAAYe,QAAW,OAAOA,MAAAA;AAClC,MAAA,MAAMG,cAAAA,GAAiBjC,aAAAA,CAAcqB,kBAAAA,CAAmBN,OAAAA,CAAAA;AACxD,MAAA,OAAO;;QAEHS,aAAAA,EAAeU,yBAAAA,CAAgBD,cAAAA,CAAAA,CAAgBf,QAAAA,EAAQ;AACvDjB,QAAAA;AACJ,OAAA;IACJ,CAAA,EARoB,oBAAA,CAAA;AASpBkC,IAAAA,wBAAAA,uCAA2BpB,OAAAA,KAAAA;AACvB,MAAA,IAAIA,OAAAA,KAAYe,QAAW,OAAOA,MAAAA;AAClC,MAAA,OAAO9B,aAAAA,CAAcC,SAAAA,CAAAA,CAAW+B,kBAAAA,CAAmBjB,OAAAA,CAAAA,CAASS,aAAAA;IAChE,CAAA,EAH0B,0BAAA,CAAA;AAI1BY,IAAAA,kBAAAA,uCAAqBZ,aAAAA,KAAAA;AACjB,MAAA,IAAIA,aAAAA,KAAkBM,QAAW,OAAOA,MAAAA;AACxC,MAAA,MAAMf,OAAAA,GAAUc,WAAWL,aAAAA,CAAAA;AAC3BC,MAAAA,YAAAA,CAAaV,SAASd,SAAAA,CAAAA;AACtB,MAAA,OAAOoC,6BAAAA,CAAaC,sBAAAA,CAAavB,OAAAA,CAAAA,CAAAA;IACrC,CAAA,EALoB,oBAAA,CAAA;AAMpBwB,IAAAA,kBAAAA,uCAAqBf,aAAAA,KAAAA;AAEjB,MAAA,IAAIA,aAAAA,KAAkBM,QAAW,OAAOA,MAAAA;AACxC,MAAA,OAAOd,+BACHhB,aAAAA,CAAcC,SAAAA,EAAWmC,kBAAAA,CAAmBZ,aAAAA,GAC5C,EAAA,CAAA;IAER,CAAA,EAPoB,oBAAA,CAAA;AAQpBgB,IAAAA,aAAAA,uCAAgBhB,aAAAA,KAAAA;AACZ,MAAA,IAAIA,aAAAA,KAAkBM,QAAW,OAAOA,MAAAA;AACxC,MAAA,OAAOV,+BAAWpB,aAAAA,CAAcC,SAAAA,CAAAA,CAAWsC,kBAAAA,CAAmBf,aAAAA,CAAAA,CAAAA;IAClE,CAAA,EAHe,eAAA,CAAA;AAIfiB,IAAAA,eAAAA,uCAAkBjB,aAAAA,KAAAA;AACd,MAAA,IAAIA,aAAAA,KAAkBM,QAAW,OAAOA,MAAAA;AACxC,MAAA,OAAOV,+BAAWpB,aAAAA,CAAcC,SAAAA,CAAAA,CAAWsC,kBAAAA,CAAmBf,aAAAA,CAAAA,CAAAA;IAClE,CAAA,EAHiB,iBAAA,CAAA;AAIjBD,IAAAA,WAAAA,uCAAcC,aAAAA,KAAAA;AACVC,MAAAA,YAAAA,CAAaD,eAAevB,SAAAA,CAAAA;AAC5B,MAAA,OAAOD,aAAAA,CAAcC,SAAAA,CAAAA,CAAWmC,kBAAAA,CAAmBZ,aAAAA,CAAAA;IACvD,CAAA,EAHa,aAAA,CAAA;AAIbkB,IAAAA,wBAAAA,uCAA2BlB,aAAAA,KAAAA;AACvB,MAAA,OAAOxB,aAAAA,CAAcC,SAAAA,CAAAA,CAAWsB,WAAAA,CAAYC,aAAAA,CAAAA;IAChD,CAAA,EAF0B,0BAAA,CAAA;AAG1BmB,IAAAA,eAAAA,uCAAkBC,UAAAA,KAAAA;AACd,MAAA,OAAO5C,cAAcC,SAAAA,CAAAA,CAAWsB,WAAAA,CAAYe,sBAAAA,CAAaM,UAAAA,CAAAA,CAAAA;IAC7D,CAAA,EAFiB,iBAAA,CAAA;IAGjBC,QAAAA,EAAQ;AACZ,GAAA;AACJ,CAAA,EA5DiE,kBAAA;AA8D1D,IAAMrC,mBAAAA,wCAEyCP,SAAAA,KAAAA;AAClD,EAAA,OAAO;AACH0B,IAAAA,cAAAA,uCAAiBH,aAAAA,KAAAA;AACb,MAAA,IAAIA,kBAAkBM,MAAAA,EAAW;AAC7B,QAAA,OAAO,KAAA;AACX,MAAA;AACA,MAAA,IAAI;AAEA,QAAA,OACIgB,+BAAAA,CAAYtB,aAAAA,CAAAA,IACZ,uDAAA,CAAwDuB,KAAKvB,aAAAA,CAAAA;MAErE,CAAA,CAAA,MAAQ;AACJ,QAAA,OAAO,KAAA;AACX,MAAA;IACJ,CAAA,EAbgB,gBAAA,CAAA;AAchBQ,IAAAA,kBAAAA,uCAAqBjB,OAAAA,KAAAA;AACjB,MAAA,IAAIA,YAAYe,MAAAA,EAAW;AACvB,QAAA,OAAOA,MAAAA;AACX,MAAA;AACA,MAAA,OAAO;QACHN,aAAAA,EAAewB,oBAAAA,CAAWC,QAAQlC,OAAAA,CAAAA;AAClCd,QAAAA;AACJ,OAAA;IACJ,CAAA,EARoB,oBAAA,CAAA;AASpBkC,IAAAA,wBAAAA,uCAA2BpB,OAAAA,KAAAA;AACvB,MAAA,IAAIA,OAAAA,KAAYe,QAAW,OAAOA,MAAAA;AAClC,MAAA,OAAO9B,aAAAA,CAAcC,SAAAA,CAAAA,CAAW+B,kBAAAA,CAAmBjB,OAAAA,CAAAA,CAASS,aAAAA;IAChE,CAAA,EAH0B,0BAAA,CAAA;AAI1BY,IAAAA,kBAAAA,uCAAqBZ,aAAAA,KAAAA;AACjB,MAAA,IAAIA,aAAAA,KAAkBM,QAAW,OAAOA,MAAAA;AACxC,MAAA,MAAMf,OAAAA,GAAUc,WAAWL,aAAAA,CAAAA;AAC3BC,MAAAA,YAAAA,CAAaV,SAASd,SAAAA,CAAAA;AACtB,MAAA,IAAI6C,+BAAAA,CAAY/B,OAAAA,CAAAA,EAAU;AACtB,QAAA,OAAOsB,8BAAatB,OAAAA,CAAAA;AACxB,MAAA;AACA,MAAA,OAAOsB,8BAAaW,oBAAAA,CAAWE,KAAAA,CAAM1B,aAAAA,CAAcN,QAAAA,EAAQ,CAAA,CAAA;IAC/D,CAAA,EARoB,oBAAA,CAAA;AASpBqB,IAAAA,kBAAAA,uCAAqBf,aAAAA,KAAAA;AACjB,MAAA,IAAIA,aAAAA,KAAkBM,QAAW,OAAOA,MAAAA;AAExC,MAAA,OAAOd,+BACHhB,aAAAA,CAAcC,SAAAA,EAAWmC,kBAAAA,CAAmBZ,aAAAA,GAC5C,EAAA,CAAA;IAER,CAAA,EAPoB,oBAAA,CAAA;AAQpBgB,IAAAA,aAAAA,uCAAgBhB,aAAAA,KAAAA;AACZ,MAAA,IAAIA,aAAAA,KAAkBM,QAAW,OAAOA,MAAAA;AACxC,MAAA,OAAOV,+BAAWpB,aAAAA,CAAcC,SAAAA,CAAAA,CAAWsC,kBAAAA,CAAmBf,aAAAA,CAAAA,CAAAA;IAClE,CAAA,EAHe,eAAA,CAAA;AAIfiB,IAAAA,eAAAA,uCAAkBjB,aAAAA,KAAAA;AACd,MAAA,IAAIA,aAAAA,KAAkBM,QAAW,OAAOA,MAAAA;AACxC,MAAA,OAAOV,+BAAWpB,aAAAA,CAAcC,SAAAA,CAAAA,CAAWsC,kBAAAA,CAAmBf,aAAAA,CAAAA,CAAAA;IAClE,CAAA,EAHiB,iBAAA,CAAA;AAIjBD,IAAAA,WAAAA,uCAAcC,aAAAA,KAAAA;AACVC,MAAAA,YAAAA,CAAaD,eAAevB,SAAAA,CAAAA;AAC5B,MAAA,OAAOD,aAAAA,CAAcC,SAAAA,CAAAA,CAAWmC,kBAAAA,CAAmBZ,aAAAA,CAAAA;IACvD,CAAA,EAHa,aAAA,CAAA;AAIbkB,IAAAA,wBAAAA,uCAA2BlB,aAAAA,KAAAA;AACvB,MAAA,OAAOxB,aAAAA,CAAcC,SAAAA,CAAAA,CAAWsB,WAAAA,CAAYC,aAAAA,CAAAA;IAChD,CAAA,EAF0B,0BAAA,CAAA;IAG1BqB,QAAAA,EAAQ;AACZ,GAAA;AACJ,CAAA,EA/DqD,qBAAA;AAiE9C,IAAMvC,mBAAAA,wCACTL,SAAAA,KAAAA;AAEA,EAAA,OAAO;AACH0B,IAAAA,cAAAA,uCAAiBH,aAAAA,KAAAA;AACb,MAAA,IAAIA,aAAAA,KAAkBM,QAAW,OAAO,KAAA;AACxC,MAAA,OAAOqB,6BAAS3B,aAAAA,CAAAA;IACpB,CAAA,EAHgB,gBAAA,CAAA;AAIhBQ,IAAAA,kBAAAA,uCAAqBjB,OAAAA,KAAAA;AACjB,MAAA,IAAIA,OAAAA,KAAYe,QAAW,OAAOA,MAAAA;AAClC,MAAA,OAAO;AACHN,QAAAA,aAAAA,EAAe4B,qBAAAA,CAAKC,MAAAA,CAChBjC,8BAAAA,CAAWL,OAAAA,CAAAA,CAAAA;AAEfd,QAAAA;AACJ,OAAA;IACJ,CAAA,EARoB,oBAAA,CAAA;AASpBkC,IAAAA,wBAAAA,uCAA2BpB,OAAAA,KAAAA;AACvB,MAAA,IAAIA,OAAAA,KAAYe,QAAW,OAAOA,MAAAA;AAClC,MAAA,OAAO9B,aAAAA,CAAcC,SAAAA,CAAAA,CAAW+B,kBAAAA,CAAmBjB,OAAAA,CAAAA,CAASS,aAAAA;IAChE,CAAA,EAH0B,0BAAA,CAAA;AAI1BY,IAAAA,kBAAAA,uCAAqBZ,aAAAA,KAAAA;AACjB,MAAA,IAAIA,aAAAA,KAAkBM,QAAW,OAAOA,MAAAA;AACxC,MAAA,MAAMf,OAAAA,GAAUc,WAAWL,aAAAA,CAAAA;AAC3BC,MAAAA,YAAAA,CAAaV,SAASd,SAAAA,CAAAA;AACtB,MAAA,MAAMqD,GAAAA,GAAMC,sCAAAA,CAAmBH,qBAAAA,CAAKI,MAAAA,CAAOzC,OAAAA,CAAAA,CAAAA;AAC3C,MAAA,OAAOsB,8BAAaiB,GAAAA,CAAAA;IACxB,CAAA,EANoB,oBAAA,CAAA;AAOpBf,IAAAA,kBAAAA,uCAAqBf,aAAAA,KAAAA;AAEjB,MAAA,IAAIA,aAAAA,KAAkBM,QAAW,OAAOA,MAAAA;AACxC,MAAA,OAAOd,+BACHhB,aAAAA,CAAcC,SAAAA,EAAWmC,kBAAAA,CAAmBZ,aAAAA,GAC5C,EAAA,CAAA;IAER,CAAA,EAPoB,oBAAA,CAAA;AAQpBgB,IAAAA,aAAAA,uCAAgBhB,aAAAA,KAAAA;AACZ,MAAA,IAAIA,aAAAA,KAAkBM,QAAW,OAAOA,MAAAA;AACxC,MAAA,MAAMf,OAAAA,GAAUc,WAAWL,aAAAA,CAAAA;AAC3BC,MAAAA,YAAAA,CAAaV,SAASd,SAAAA,CAAAA;AACtB,MAAA,OAAOmD,qBAAAA,CAAKI,OAAOzC,OAAAA,CAAAA;IACvB,CAAA,EALe,eAAA,CAAA;AAMf0B,IAAAA,eAAAA,uCAAkBjB,aAAAA,KAAAA;AACd,MAAA,IAAIA,aAAAA,KAAkBM,QAAW,OAAOA,MAAAA;AACxC,MAAA,OAAOV,+BAAWpB,aAAAA,CAAcC,SAAAA,CAAAA,CAAWsC,kBAAAA,CAAmBf,aAAAA,CAAAA,CAAAA;IAClE,CAAA,EAHiB,iBAAA,CAAA;AAIjBD,IAAAA,WAAAA,uCAAcC,aAAAA,KAAAA;AACVC,MAAAA,YAAAA,CAAaD,eAAevB,SAAAA,CAAAA;AAC5B,MAAA,OAAOD,aAAAA,CAAcC,SAAAA,CAAAA,CAAWmC,kBAAAA,CAAmBZ,aAAAA,CAAAA;IACvD,CAAA,EAHa,aAAA,CAAA;AAIbkB,IAAAA,wBAAAA,uCAA2BlB,aAAAA,KAAAA;AACvB,MAAA,OAAOxB,aAAAA,CAAcC,SAAAA,CAAAA,CAAWsB,WAAAA,CAAYC,aAAAA,CAAAA;IAChD,CAAA,EAF0B,0BAAA,CAAA;IAG1BqB,QAAAA,EAAQ;AACZ,GAAA;AACJ,CAAA,EAvDmC,qBAAA;AAyD5B,IAAMhC,gBAAAA,wCACTZ,SAAAA,KAAAA;AAEA,EAAA,OAAO;AACH0B,IAAAA,cAAAA,uCAAiBH,aAAAA,KAAAA;AACb,MAAA,IAAIA,aAAAA,KAAkBM,QAAW,OAAO,KAAA;AACxC,MAAA,OAAOgB,gCAAYtB,aAAAA,CAAAA;IACvB,CAAA,EAHgB,gBAAA,CAAA;AAIhBQ,IAAAA,kBAAAA,uCAAqBjB,OAAAA,KAAAA;AACjB,MAAA,IAAIA,OAAAA,KAAYe,QAAW,OAAOA,MAAAA;AAGlC,MAAA,MAAM2B,gBAAAA,GAAmBC,kCAAAA,CAAmBC,qBAAAA,CAAsB1D,SAAAA,CAAAA;AAClE,MAAA,OAAO;;QAEHuB,aAAAA,EAAeR,8BAAAA,CAAWD,SAAiC0C,gBAAAA,CAAAA;AAC3DxD,QAAAA;AACJ,OAAA;IACJ,CAAA,EAVoB,oBAAA,CAAA;AAWpBkC,IAAAA,wBAAAA,uCAA2BpB,OAAAA,KAAAA;AACvB,MAAA,IAAIA,OAAAA,KAAYe,QAAW,OAAOA,MAAAA;AAClC,MAAA,MAAM2B,gBAAAA,GAAmBC,kCAAAA,CAAmBC,qBAAAA,CAAsB1D,SAAAA,CAAAA;AAClE,MAAA,OAAOe,8BAAAA,CAAWD,SAAiC0C,gBAAAA,CAAAA;IACvD,CAAA,EAJ0B,0BAAA,CAAA;AAK1BrB,IAAAA,kBAAAA,uCAAqBZ,aAAAA,KAAAA;AACjB,MAAA,IAAIA,aAAAA,KAAkBM,QAAW,OAAOA,MAAAA;AACxC,MAAA,MAAMf,OAAAA,GAAUc,WAAWL,aAAAA,CAAAA;AAC3BC,MAAAA,YAAAA,CAAaV,SAASd,SAAAA,CAAAA;AACtB,MAAA,OAAOoC,8BAAatB,OAAAA,CAAAA;IACxB,CAAA,EALoB,oBAAA,CAAA;AAMpByB,IAAAA,aAAAA,uCAAgBhB,aAAAA,KAAAA;AACZ,MAAA,IAAIA,aAAAA,KAAkBM,QAAW,OAAOA,MAAAA;AACxC,MAAA,MAAMf,OAAAA,GAAUc,WAAWL,aAAAA,CAAAA;AAC3BC,MAAAA,YAAAA,CAAaV,SAASd,SAAAA,CAAAA;AACtB,MAAA,OAAOmB,+BAAWL,OAAAA,CAAAA;IACtB,CAAA,EALe,eAAA,CAAA;AAMfwB,IAAAA,kBAAAA,uCAAqBf,aAAAA,KAAAA;AACjB,MAAA,IAAIA,aAAAA,KAAkBM,QAAW,OAAOA,MAAAA;AACxC,MAAA,MAAMf,OAAAA,GAAUc,WAAWL,aAAAA,CAAAA;AAC3BC,MAAAA,YAAAA,CAAaV,SAASd,SAAAA,CAAAA;AACtB,MAAA,OAAOe,8BAAAA,CAAWD,SAAS,EAAA,CAAA;IAC/B,CAAA,EALoB,oBAAA,CAAA;AAMpB0B,IAAAA,eAAAA,uCAAkBjB,aAAAA,KAAAA;AACd,MAAA,IAAIA,aAAAA,KAAkBM,QAAW,OAAOA,MAAAA;AACxC,MAAA,OAAOV,+BAAWpB,aAAAA,CAAcC,SAAAA,CAAAA,CAAWsC,kBAAAA,CAAmBf,aAAAA,CAAAA,CAAAA;IAClE,CAAA,EAHiB,iBAAA,CAAA;AAIjBD,IAAAA,WAAAA,uCAAcC,aAAAA,KAAAA;AAEV,MAAA,IAAIvB,SAAAA,KAAcC,8BAAAA,CAAU0D,IAAAA,IAAQpC,aAAAA,EAAe;AAC/CA,QAAAA,aAAAA,GAAgBA,aAAAA,CAAcqC,WAAW,IAAA,CAAA,GACnC,KAAKrC,aAAAA,CAAcsC,KAAAA,CAAM,CAAA,CAAA,CAAA,CAAA,GACzBtC,aAAAA;AACV,MAAA;AAEAC,MAAAA,YAAAA,CAAaD,eAAevB,SAAAA,CAAAA;AAC5B,MAAA,OAAOD,aAAAA,CAAcC,SAAAA,CAAAA,CAAWmC,kBAAAA,CAAmBZ,aAAAA,CAAAA;IACvD,CAAA,EAVa,aAAA,CAAA;AAWbkB,IAAAA,wBAAAA,uCAA2BlB,aAAAA,KAAAA;AACvB,MAAA,OAAOxB,aAAAA,CAAcC,SAAAA,CAAAA,CAAWsB,WAAAA,CAAYC,aAAAA,CAAAA;IAChD,CAAA,EAF0B,0BAAA,CAAA;IAG1BqB,QAAAA,EAAQ;AACZ,GAAA;AACJ,CAAA,EA9DgC,kBAAA;AAgEzB,IAAMnC,oBAAAA,wCAEyDT,SAAAA,KAAAA;AAelE,EAAA,MAAM8D,qBAAAA,wCAAyBhD,OAAAA,KAAAA;AAC3B,IAAA,IAAI,CAACA,SAAS,OAAO,KAAA;AAErB,IAAA,OACIiD,iBAAAA,CAAOC,wBAAwBlD,OAAAA,CAAAA,IAC/BiD,kBAAOE,eAAAA,CAAgBnD,OAAAA,CAAAA,IACvBiD,iBAAAA,CAAOG,wBAAAA,CAAyBpD,OAAAA,KAChCiD,iBAAAA,CAAOI,oBAAAA,CAAqBrD,OAAAA,CAAAA,IAC5BiD,iBAAAA,CAAOK,wBAAwBtD,OAAAA,CAAAA,IAC/BiD,iBAAAA,CAAOM,oBAAAA,CAAqBvD,OAAAA,CAAAA;EAEpC,CAAA,EAX8B,uBAAA,CAAA;AAiB9B,EAAA,MAAMwD,kBAAAA,GAAqB,IAAIC,WAAAA,EAAAA;AAC/B,EAAA,MAAMC,wBAAAA,wCAA4B1D,OAAAA,KAAAA;AAE9B,IAAA,MAAM2D,KAAAA,GAAQH,kBAAAA,CAAmBlB,MAAAA,CAAOtC,OAAAA,CAAAA;AACxC,IAAA,OAAOsB,6BAAAA,CAAakB,sCAAAA,CAAmBmB,KAAAA,CAAAA,CAAAA;EAC3C,CAAA,EAJiC,0BAAA,CAAA;AASjC,EAAA,MAAMC,kBAAAA,GAAqB,IAAIC,WAAAA,EAAAA;AAC/B,EAAA,MAAMC,wBAAAA,wCAA4BC,aAAAA,KAAAA;AAE9B,IAAA,MAAMJ,KAAAA,GAAQtD,+BAAW0D,aAAAA,CAAAA;AACzB,IAAA,OAAOH,kBAAAA,CAAmBnB,OAAOkB,KAAAA,CAAAA;EACrC,CAAA,EAJiC,0BAAA,CAAA;AAMjC,EAAA,OAAO;AACH/C,IAAAA,cAAAA,uCAAiBH,aAAAA,KAAAA;AACb,MAAA,IAAIA,aAAAA,KAAkBM,QAAW,OAAO,KAAA;AACxC,MAAA,OAAOiC,sBAAsBvC,aAAAA,CAAAA;IACjC,CAAA,EAHgB,gBAAA,CAAA;AAIhBQ,IAAAA,kBAAAA,uCAAqBjB,OAAAA,KAAAA;AACjB,MAAA,IAAIA,OAAAA,KAAYe,QAAW,OAAOA,MAAAA;AAElC,MAAA,MAAMiD,cAAAA,GAAiBF,yBAAyB9D,OAAAA,CAAAA;AAChD,MAAA,OAAO;QACHS,aAAAA,EAAeuD,cAAAA;AACf9E,QAAAA;AACJ,OAAA;IACJ,CAAA,EARoB,oBAAA,CAAA;AASpBkC,IAAAA,wBAAAA,uCAA2BpB,OAAAA,KAAAA;AACvB,MAAA,IAAIA,OAAAA,KAAYe,QAAW,OAAOA,MAAAA;AAClC,MAAA,OAAO+C,yBAAyB9D,OAAAA,CAAAA;IACpC,CAAA,EAH0B,0BAAA,CAAA;AAI1BqB,IAAAA,kBAAAA,uCAAqBZ,aAAAA,KAAAA;AACjB,MAAA,IAAIA,aAAAA,KAAkBM,QAAW,OAAOA,MAAAA;AACxC,MAAA,MAAMf,OAAAA,GAAUc,WAAWL,aAAAA,CAAAA;AAC3BC,MAAAA,YAAAA,CAAaV,SAASd,SAAAA,CAAAA;AAEtB,MAAA,OAAOwE,yBAAyB1D,OAAAA,CAAAA;IACpC,CAAA,EANoB,oBAAA,CAAA;AAOpBwB,IAAAA,kBAAAA,uCAAqBf,aAAAA,KAAAA;AACjB,MAAA,IAAIA,aAAAA,KAAkBM,QAAW,OAAOA,MAAAA;AACxC,MAAA,MAAMf,OAAAA,GAAUc,WAAWL,aAAAA,CAAAA;AAC3BC,MAAAA,YAAAA,CAAaV,SAASd,SAAAA,CAAAA;AAEtB,MAAA,IAAI+E,QAAAA;AACJ,MAAA,IAAIhB,iBAAAA,CAAOC,uBAAAA,CAAwBlD,OAAAA,CAAAA,EAAU;AAEzCiE,QAAAA,QAAAA,GAAWhB,iBAAAA,CAAOiB,uBAAuBlE,OAAAA,CAAAA;MAC7C,CAAA,MAAA,IAAWiD,iBAAAA,CAAOE,eAAAA,CAAgBnD,OAAAA,CAAAA,EAAU;AAExCiE,QAAAA,QAAAA,GAAWhB,iBAAAA,CAAOkB,eAAenE,OAAAA,CAAAA;MACrC,CAAA,MAAA,IAAWiD,iBAAAA,CAAOI,oBAAAA,CAAqBrD,OAAAA,CAAAA,EAAU;AAE7CiE,QAAAA,QAAAA,GAAWhB,iBAAAA,CAAOmB,oBAAoBpE,OAAAA,CAAAA;MAC1C,CAAA,MAAA,IAAWiD,iBAAAA,CAAOK,uBAAAA,CAAwBtD,OAAAA,CAAAA,EAAU;AAGhD,QAAA,MAAMqE,SAAAA,GAAYpB,iBAAAA,CAAOqB,sBAAAA,CAAuBtE,OAAAA,CAAAA;AAChDiE,QAAAA,QAAAA,GAAWI,SAAAA,CAAUE,SAAS,CAAA,CAAA;MAClC,CAAA,MAAA,IAAWtB,iBAAAA,CAAOG,wBAAAA,CAAyBpD,OAAAA,CAAAA,EAAU;AAEjD,QAAA,MAAM,IAAIa,MACN,qEAAA,CAAA;MAER,CAAA,MAAA,IAAWoC,iBAAAA,CAAOM,oBAAAA,CAAqBvD,OAAAA,CAAAA,EAAU;AAE7C,QAAA,MAAM,IAAIa,MACN,8EAAA,CAAA;MAER,CAAA,MAAO;AACH,QAAA,MAAM,IAAIA,KAAAA,CAAM,CAAA,8BAAA,EAAiCb,OAAAA,CAAAA,CAAS,CAAA;AAC9D,MAAA;AACA,MAAA,OAAOwC,uCAAmByB,QAAAA,CAAAA;IAC9B,CAAA,EAlCoB,oBAAA,CAAA;AAmCpBxC,IAAAA,aAAAA,uCAAgBhB,aAAAA,KAAAA;AACZ,MAAA,IAAIA,aAAAA,KAAkBM,QAAW,OAAOA,MAAAA;AACxC,MAAA,MAAMf,OAAAA,GAAUc,WAAWL,aAAAA,CAAAA;AAC3BC,MAAAA,YAAAA,CAAaV,SAASd,SAAAA,CAAAA;AAEtB,MAAA,OAAOsE,kBAAAA,CAAmBlB,OAAOtC,OAAAA,CAAAA;IACrC,CAAA,EANe,eAAA,CAAA;AAOf0B,IAAAA,eAAAA,uCAAkBjB,aAAAA,KAAAA;AACd,MAAA,IAAIA,aAAAA,KAAkBM,QAAW,OAAOA,MAAAA;AAExC,MAAA,MAAMwB,GAAAA,GAAMtD,aAAAA,CAAcC,SAAAA,CAAAA,CAAWsC,mBAAmBf,aAAAA,CAAAA;AACxD,MAAA,OAAOJ,+BAAWkC,GAAAA,CAAAA;IACtB,CAAA,EALiB,iBAAA,CAAA;AAMjB/B,IAAAA,WAAAA,uCAAcC,aAAAA,KAAAA;AACVC,MAAAA,YAAAA,CAAaD,eAAevB,SAAAA,CAAAA;AAC5B,MAAA,OAAOD,aAAAA,CAAcC,SAAAA,CAAAA,CAAWmC,kBAAAA,CAAmBZ,aAAAA,CAAAA;IACvD,CAAA,EAHa,aAAA,CAAA;AAIbkB,IAAAA,wBAAAA,uCAA2BlB,aAAAA,KAAAA;AACvBC,MAAAA,YAAAA,CAAaD,eAAevB,SAAAA,CAAAA;AAC5B,MAAA,MAAMsF,UAAAA,GAAavF,aAAAA,CAAcC,SAAAA,CAAAA,CAAWmC,mBAAmBZ,aAAAA,CAAAA;AAC/D,MAAA,OAAO+D,UAAAA;IACX,CAAA,EAJ0B,0BAAA,CAAA;IAK1B1C,QAAAA,EAAQ;AACZ,GAAA;AACJ,CAAA,EArIqE,sBAAA;AAwI9D,IAAMjC,qBAAAA,wCACTX,SAAAA,KAAAA;AAEA,EAAA,OAAO;AACH,IAAA,GAAGY,iBAAiBZ,SAAAA,CAAAA;AACpB0B,IAAAA,cAAAA,uCAAiBH,aAAAA,KAAAA;AACb,MAAA,IAAIA,aAAAA,KAAkBM,QAAW,OAAO,KAAA;AACxC,MAAA,OAAOgB,gCAAYtB,aAAAA,CAAAA;IACvB,CAAA,EAHgB,gBAAA,CAAA;AAIhBD,IAAAA,WAAAA,uCAAcC,aAAAA,KAAAA;AACV,MAAA,IAAIA,aAAAA,KAAkBM,QAAW,OAAOA,MAAAA;AAGxCN,MAAAA,aAAAA,GAAgB,KAAKF,MAAAA,CAAOE,aAAAA,CAAAA,CAAeN,QAAAA,CAAS,EAAA,CAAA,CAAA,CAAA;AACpDO,MAAAA,YAAAA,CAAaD,eAAevB,SAAAA,CAAAA;AAC5B,MAAA,OAAOD,aAAAA,CAAcC,SAAAA,CAAAA,CAAWmC,kBAAAA,CAAmBZ,aAAAA,CAAAA;IACvD,CAAA,EAPa,aAAA,CAAA;AAQbQ,IAAAA,kBAAAA,uCAAqBjB,OAAAA,KAAAA;AACjB,MAAA,IAAIA,OAAAA,KAAYe,QAAW,OAAOA,MAAAA;AAClC,MAAA,OAAO;QACHN,aAAAA,EAAeT,OAAAA;AACfd,QAAAA;AACJ,OAAA;IACJ,CAAA,EANoB,oBAAA,CAAA;AAOpBkC,IAAAA,wBAAAA,uCAA2BpB,OAAAA,KAAAA;AACvB,MAAA,IAAIA,OAAAA,KAAYe,QAAW,OAAOA,MAAAA;AAClC,MAAA,OAAOf,OAAAA;IACX,CAAA,EAH0B,0BAAA;AAI9B,GAAA;AACJ,CAAA,EA7BqC,uBAAA","file":"6ZQQF5PQ.cjs","sourcesContent":["import { AccAddress } from '@initia/initia.js';\nimport { StrKey } from '@stellar/stellar-sdk';\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 {\n bytesToHexPrefixed,\n hexToBytes,\n hexZeroPad,\n isBase58,\n isHexString,\n} from '@layerzerolabs/common-encoding-utils';\nimport { addressToHex, bigintToAddress, parseTonAddress } from '@layerzerolabs/common-ton';\nimport type {\n Base58String,\n ChainsByEncoding,\n ChainType,\n InferChainNamesForChainType,\n InferChainTypeForChainName,\n InitiaString,\n NativeAddress,\n ResolvedEncodingForChainName,\n StellarString,\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';\nimport type { MaybeUndefinedMapped } from '@layerzerolabs/typescript-utils';\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 STELLAR = 'stellar',\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 extends NormalizedHexString | undefined>(\n address: Address,\n ) => MaybeUndefinedMapped<Address, ChainNativeAddress<T>>;\n normalizedToNativeString: <Address extends NormalizedHexString | undefined>(\n address: Address,\n ) => MaybeUndefinedMapped<Address, ResolvedEncodingForChainName<T>>;\n nativeToNormalized: <Address extends NativeOrString<T> | undefined>(\n nativeAddress: Address,\n ) => MaybeUndefinedMapped<Address, NormalizedHexString>;\n nativeToBytes: <Address extends NativeOrString<T> | undefined>(\n nativeAddress: Address,\n ) => MaybeUndefinedMapped<Address, Uint8Array>;\n nativeToBytes32Hex: <Address extends NativeOrString<T> | undefined>(\n nativeAddress: Address,\n ) => MaybeUndefinedMapped<Address, HexString>;\n nativeToBytes32: <Address extends NativeOrString<T> | undefined>(\n nativeAddress: Address,\n ) => MaybeUndefinedMapped<Address, Uint8Array>;\n validateNative: (\n nativeAddress: string | undefined,\n ) => 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 | undefined) => NormalizedHexString;\n parseNativeToUnpaddedHex: (nativeAddress: string | undefined) => 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 if (chainName === ChainName.STELLAR)\n return stellarAddressParser(chainName) as unknown as AddressParser<T>;\n if (chainName === ChainName.STARKNET)\n return starknetAddressParser(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\n export const normalizedToUnpaddedString = (address: NormalizedHexString) => {\n return address.toString() as HexString;\n };\n\n export const normalizedToBytes32 = (address: NormalizedHexString) => {\n return hexToBytes(normalizedToBytes32Hex(address));\n };\n\n export const normalizedToBigInt = (address: NormalizedHexString) => {\n return BigInt(address as unknown as HexString);\n };\n\n export const parseNative = (nativeAddress: NativeAddress) => {\n return addressParser(nativeAddress.chainName).parseNative(nativeAddress.nativeAddress);\n };\n}\n\nfunction assertNative<T extends ChainName>(\n nativeAddress: string | undefined,\n expectedChainName: T,\n): asserts 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}\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 if (nativeAddress === undefined) {\n return false;\n }\n try {\n parseTonAddress(nativeAddress);\n return true;\n } catch {\n return false;\n }\n },\n normalizedToNative: (address) => {\n if (address === undefined) return undefined as any;\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 if (address === undefined) return undefined as any;\n return addressParser(chainName).normalizedToNative(address).nativeAddress;\n },\n nativeToNormalized: (nativeAddress) => {\n if (nativeAddress === undefined) return undefined as any;\n const address = getAddress(nativeAddress);\n assertNative(address, chainName);\n return normalizeHex(addressToHex(address));\n },\n nativeToBytes32Hex: (nativeAddress) => {\n // naturally ton is 32 bytes, pad it anyway\n if (nativeAddress === undefined) return undefined as any;\n return hexZeroPad(\n addressParser(chainName).nativeToNormalized(nativeAddress) as unknown as HexString,\n 32,\n );\n },\n nativeToBytes: (nativeAddress) => {\n if (nativeAddress === undefined) return undefined as any;\n return hexToBytes(addressParser(chainName).nativeToBytes32Hex(nativeAddress));\n },\n nativeToBytes32: (nativeAddress) => {\n if (nativeAddress === undefined) return undefined as any;\n return hexToBytes(addressParser(chainName).nativeToBytes32Hex(nativeAddress));\n },\n parseNative: (nativeAddress) => {\n assertNative(nativeAddress, chainName);\n return addressParser(chainName).nativeToNormalized(nativeAddress);\n },\n parseNativeToUnpaddedHex: (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 if (nativeAddress === undefined) {\n return false;\n }\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 if (address === undefined) {\n return undefined as any;\n }\n return {\n nativeAddress: AccAddress.fromHex(address as unknown as HexString) as InitiaString,\n chainName,\n };\n },\n normalizedToNativeString: (address) => {\n if (address === undefined) return undefined as any;\n return addressParser(chainName).normalizedToNative(address).nativeAddress;\n },\n nativeToNormalized: (nativeAddress) => {\n if (nativeAddress === undefined) return undefined as any;\n const address = getAddress(nativeAddress);\n assertNative(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 if (nativeAddress === undefined) return undefined as any;\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 if (nativeAddress === undefined) return undefined as any;\n return hexToBytes(addressParser(chainName).nativeToBytes32Hex(nativeAddress));\n },\n nativeToBytes32: (nativeAddress) => {\n if (nativeAddress === undefined) return undefined as any;\n return hexToBytes(addressParser(chainName).nativeToBytes32Hex(nativeAddress));\n },\n parseNative: (nativeAddress) => {\n assertNative(nativeAddress, chainName);\n return addressParser(chainName).nativeToNormalized(nativeAddress);\n },\n parseNativeToUnpaddedHex: (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 if (nativeAddress === undefined) return false;\n return isBase58(nativeAddress);\n },\n normalizedToNative: (address) => {\n if (address === undefined) return undefined as any;\n return {\n nativeAddress: bs58.encode(\n hexToBytes(address as unknown as HexString),\n ) as Base58String,\n chainName,\n };\n },\n normalizedToNativeString: (address) => {\n if (address === undefined) return undefined as any;\n return addressParser(chainName).normalizedToNative(address).nativeAddress;\n },\n nativeToNormalized: (nativeAddress) => {\n if (nativeAddress === undefined) return undefined as any;\n const address = getAddress(nativeAddress);\n assertNative(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 if (nativeAddress === undefined) return undefined as any;\n return hexZeroPad(\n addressParser(chainName).nativeToNormalized(nativeAddress) as unknown as HexString,\n 32,\n );\n },\n nativeToBytes: (nativeAddress) => {\n if (nativeAddress === undefined) return undefined as any;\n const address = getAddress(nativeAddress);\n assertNative(address, chainName);\n return bs58.decode(address);\n },\n nativeToBytes32: (nativeAddress) => {\n if (nativeAddress === undefined) return undefined as any;\n return hexToBytes(addressParser(chainName).nativeToBytes32Hex(nativeAddress));\n },\n parseNative: (nativeAddress) => {\n assertNative(nativeAddress, chainName);\n return addressParser(chainName).nativeToNormalized(nativeAddress);\n },\n parseNativeToUnpaddedHex: (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 return {\n validateNative: (nativeAddress): nativeAddress is HexString => {\n if (nativeAddress === undefined) return false;\n return isHexString(nativeAddress);\n },\n normalizedToNative: (address) => {\n if (address === undefined) return undefined as any;\n // we fetch here instead of storing by chain because some chains may not have this defined,\n // so we should only throw on those chains if they try to use these methods that need the native byte length\n const nativeByteLength = StaticChainConfigs.getAddressSizeInBytes(chainName);\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 if (address === undefined) return undefined as any;\n const nativeByteLength = StaticChainConfigs.getAddressSizeInBytes(chainName);\n return hexZeroPad(address as unknown as HexString, nativeByteLength);\n },\n nativeToNormalized: (nativeAddress) => {\n if (nativeAddress === undefined) return undefined as any;\n const address = getAddress(nativeAddress);\n assertNative(address, chainName);\n return normalizeHex(address);\n },\n nativeToBytes: (nativeAddress) => {\n if (nativeAddress === undefined) return undefined as any;\n const address = getAddress(nativeAddress);\n assertNative(address, chainName);\n return hexToBytes(address);\n },\n nativeToBytes32Hex: (nativeAddress) => {\n if (nativeAddress === undefined) return undefined as any;\n const address = getAddress(nativeAddress);\n assertNative(address, chainName);\n return hexZeroPad(address, 32);\n },\n nativeToBytes32: (nativeAddress) => {\n if (nativeAddress === undefined) return undefined as any;\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 && nativeAddress) {\n nativeAddress = nativeAddress.startsWith('41')\n ? `0x${nativeAddress.slice(2)}`\n : nativeAddress;\n }\n\n assertNative(nativeAddress, chainName);\n return addressParser(chainName).nativeToNormalized(nativeAddress);\n },\n parseNativeToUnpaddedHex: (nativeAddress) => {\n return addressParser(chainName).parseNative(nativeAddress) as unknown as HexString;\n },\n encoding: AddressEncoding.HEX,\n };\n};\n\nexport const stellarAddressParser: (\n chainName: InferChainNamesForChainType<ChainType.STELLAR>,\n) => AddressParser<InferChainNamesForChainType<ChainType.STELLAR>> = (chainName) => {\n /**\n * Validate if a string is a valid Stellar address.\n *\n * According to SEP-0023 (https://github.com/stellar/stellar-protocol/blob/master/ecosystem/sep-0023.md),\n * Stellar supports multiple address types encoded as base32 ASCII strings:\n * - Account addresses starting with 'G' (56 chars, Ed25519 public key)\n * - Contract addresses starting with 'C' (56 chars, contract ID)\n * - Muxed addresses starting with 'M' (69 chars, muxed account with ID)\n * - Liquidity pool addresses starting with 'L' (56 chars, pool ID)\n * - Claimable balance addresses starting with 'B' (56 chars, balance ID)\n * - Signed payload starting with 'P' (variable length)\n *\n * All addresses are stored in their native ASCII format to preserve type information.\n */\n const isValidStellarAddress = (address: string): boolean => {\n if (!address) return false;\n // Use the StrKey validation methods for all supported address types\n return (\n StrKey.isValidEd25519PublicKey(address) ||\n StrKey.isValidContract(address) ||\n StrKey.isValidMed25519PublicKey(address) ||\n StrKey.isValidLiquidityPool(address) ||\n StrKey.isValidClaimableBalance(address) ||\n StrKey.isValidSignedPayload(address)\n );\n };\n\n /**\n * Convert Stellar ASCII address to normalized hex by encoding the ASCII string as UTF-8 bytes.\n * This preserves the full address including type prefix and allows round-trip conversion.\n */\n const stellarTextEncoder = new TextEncoder();\n const stellarAsciiToNormalized = (address: string): NormalizedHexString => {\n // Convert ASCII address string to UTF-8 bytes, then to hex\n const bytes = stellarTextEncoder.encode(address);\n return normalizeHex(bytesToHexPrefixed(bytes));\n };\n\n /**\n * Convert normalized hex back to Stellar ASCII address by decoding UTF-8 bytes.\n */\n const stellarTextDecoder = new TextDecoder();\n const normalizedToStellarAscii = (normalizedHex: NormalizedHexString): string => {\n // Convert hex to bytes, then decode as UTF-8 string\n const bytes = hexToBytes(normalizedHex as unknown as HexString);\n return stellarTextDecoder.decode(bytes);\n };\n\n return {\n validateNative: (nativeAddress): nativeAddress is StellarString => {\n if (nativeAddress === undefined) return false;\n return isValidStellarAddress(nativeAddress);\n },\n normalizedToNative: (address) => {\n if (address === undefined) return undefined as any;\n // Decode normalized hex back to ASCII Stellar address\n const stellarAddress = normalizedToStellarAscii(address);\n return {\n nativeAddress: stellarAddress as StellarString,\n chainName,\n };\n },\n normalizedToNativeString: (address) => {\n if (address === undefined) return undefined as any;\n return normalizedToStellarAscii(address) as StellarString;\n },\n nativeToNormalized: (nativeAddress) => {\n if (nativeAddress === undefined) return undefined as any;\n const address = getAddress(nativeAddress);\n assertNative(address, chainName);\n // Convert ASCII address to normalized hex\n return stellarAsciiToNormalized(address);\n },\n nativeToBytes32Hex: (nativeAddress) => {\n if (nativeAddress === undefined) return undefined as any;\n const address = getAddress(nativeAddress);\n assertNative(address, chainName);\n // Decode the Stellar address to its raw 32-byte payload based on type\n let rawBytes: Buffer;\n if (StrKey.isValidEd25519PublicKey(address)) {\n // Account addresses (G...) - Ed25519 public key (32 bytes)\n rawBytes = StrKey.decodeEd25519PublicKey(address);\n } else if (StrKey.isValidContract(address)) {\n // Contract addresses (C...) - contract ID (32 bytes)\n rawBytes = StrKey.decodeContract(address);\n } else if (StrKey.isValidLiquidityPool(address)) {\n // Liquidity pool addresses (L...) - pool ID (32 bytes)\n rawBytes = StrKey.decodeLiquidityPool(address);\n } else if (StrKey.isValidClaimableBalance(address)) {\n // Claimable balance addresses (B...) - balance ID (33 bytes: 1-byte version + 32-byte hash)\n // Per SEP-0023: first byte is the claimable balance type (0x00 = V0), followed by 32-byte SHA256 hash\n const fullBytes = StrKey.decodeClaimableBalance(address);\n rawBytes = fullBytes.subarray(1); // Skip the first byte (version), return the 32-byte hash\n } else if (StrKey.isValidMed25519PublicKey(address)) {\n // Muxed addresses (M...) contain additional data beyond 32 bytes\n throw new Error(\n 'nativeToBytes32 is not supported for Stellar muxed addresses (M...)',\n );\n } else if (StrKey.isValidSignedPayload(address)) {\n // Signed payload (P...) has variable length\n throw new Error(\n 'nativeToBytes32 is not supported for Stellar signed payload addresses (P...)',\n );\n } else {\n throw new Error(`Unknown Stellar address type: ${address}`);\n }\n return bytesToHexPrefixed(rawBytes);\n },\n nativeToBytes: (nativeAddress) => {\n if (nativeAddress === undefined) return undefined as any;\n const address = getAddress(nativeAddress);\n assertNative(address, chainName);\n // Convert ASCII address to UTF-8 bytes\n return stellarTextEncoder.encode(address);\n },\n nativeToBytes32: (nativeAddress) => {\n if (nativeAddress === undefined) return undefined as any;\n // Use nativeToBytes32Hex and convert to Uint8Array\n const hex = addressParser(chainName).nativeToBytes32Hex(nativeAddress);\n return hexToBytes(hex);\n },\n parseNative: (nativeAddress) => {\n assertNative(nativeAddress, chainName);\n return addressParser(chainName).nativeToNormalized(nativeAddress);\n },\n parseNativeToUnpaddedHex: (nativeAddress) => {\n assertNative(nativeAddress, chainName);\n const normalized = addressParser(chainName).nativeToNormalized(nativeAddress);\n return normalized as unknown as HexString;\n },\n encoding: AddressEncoding.STELLAR,\n };\n};\n\n// Starknet addresses do not have handle hexzero padding, so we just return the address as is\nexport const starknetAddressParser = (\n chainName: ChainsByEncoding[HexString],\n): AddressParser<ChainsByEncoding[HexString]> => {\n return {\n ...hexAddressParser(chainName),\n validateNative: (nativeAddress): nativeAddress is HexString => {\n if (nativeAddress === undefined) return false;\n return isHexString(nativeAddress);\n },\n parseNative: (nativeAddress) => {\n if (nativeAddress === undefined) return undefined as any;\n // We can't trust starknet.js strings, they may actually be bigints!\n // so just convert everything to hex first, then convert to normalized\n nativeAddress = `0x${BigInt(nativeAddress).toString(16)}`;\n assertNative(nativeAddress, chainName);\n return addressParser(chainName).nativeToNormalized(nativeAddress);\n },\n normalizedToNative: (address) => {\n if (address === undefined) return undefined as any;\n return {\n nativeAddress: address,\n chainName,\n };\n },\n normalizedToNativeString: (address) => {\n if (address === undefined) return undefined as any;\n return address;\n },\n };\n};\n"]}
@@ -3,8 +3,8 @@ import { AccAddress } from '@initia/initia.js';
3
3
  import { StrKey } from '@stellar/stellar-sdk';
4
4
  import bs58 from 'bs58';
5
5
  import { normalizeHex } from '@layerzerolabs/common-chain-model';
6
+ import { hexZeroPad, hexToBytes, bytesToHexPrefixed, isBase58, isHexString } from '@layerzerolabs/common-encoding-utils';
6
7
  import { addressToHex, bigintToAddress, parseTonAddress } from '@layerzerolabs/common-ton';
7
- import { hexZeroPad, hexToBytes, bytesToHexPrefixed, isBase58, isHexString } from '@layerzerolabs/common-utils';
8
8
  import { ChainName } from '@layerzerolabs/layerzero-definitions';
9
9
  import { StaticChainConfigs } from '@layerzerolabs/static-chain-info';
10
10
 
@@ -381,5 +381,5 @@ var starknetAddressParser = /* @__PURE__ */ __name((chainName) => {
381
381
  }, "starknetAddressParser");
382
382
 
383
383
  export { AddressEncoding, addressParser, base58AddressParser, hexAddressParser, initiaAddressParser, starknetAddressParser, stellarAddressParser, tonAddressParser };
384
- //# sourceMappingURL=BG5XW4YA.js.map
385
- //# sourceMappingURL=BG5XW4YA.js.map
384
+ //# sourceMappingURL=TNQ4ZWJM.js.map
385
+ //# sourceMappingURL=TNQ4ZWJM.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../src/addressParser.ts"],"names":["AddressEncoding","addressParser","chainName","ChainName","TON","tonAddressParser","SOLANA","base58AddressParser","INITIA","initiaAddressParser","STELLAR","stellarAddressParser","STARKNET","starknetAddressParser","hexAddressParser","normalizedToBytes32Hex","address","hexZeroPad","normalizedToUnpaddedString","toString","normalizedToBytes32","hexToBytes","normalizedToBigInt","BigInt","parseNative","nativeAddress","assertNative","expectedChainName","validateNative","Error","getAddress","undefined","parseTonAddress","normalizedToNative","numericalValue","bigintToAddress","normalizedToNativeString","nativeToNormalized","normalizeHex","addressToHex","nativeToBytes32Hex","nativeToBytes","nativeToBytes32","parseNativeToUnpaddedHex","tonToNormalized","tonAddress","encoding","isHexString","test","AccAddress","fromHex","toHex","isBase58","bs58","encode","hex","bytesToHexPrefixed","decode","nativeByteLength","StaticChainConfigs","getAddressSizeInBytes","TRON","startsWith","slice","isValidStellarAddress","StrKey","isValidEd25519PublicKey","isValidContract","isValidMed25519PublicKey","isValidLiquidityPool","isValidClaimableBalance","isValidSignedPayload","stellarTextEncoder","TextEncoder","stellarAsciiToNormalized","bytes","stellarTextDecoder","TextDecoder","normalizedToStellarAscii","normalizedHex","stellarAddress","rawBytes","decodeEd25519PublicKey","decodeContract","decodeLiquidityPool","fullBytes","decodeClaimableBalance","subarray","normalized"],"mappings":"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","file":"TNQ4ZWJM.js","sourcesContent":["import { AccAddress } from '@initia/initia.js';\nimport { StrKey } from '@stellar/stellar-sdk';\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 {\n bytesToHexPrefixed,\n hexToBytes,\n hexZeroPad,\n isBase58,\n isHexString,\n} from '@layerzerolabs/common-encoding-utils';\nimport { addressToHex, bigintToAddress, parseTonAddress } from '@layerzerolabs/common-ton';\nimport type {\n Base58String,\n ChainsByEncoding,\n ChainType,\n InferChainNamesForChainType,\n InferChainTypeForChainName,\n InitiaString,\n NativeAddress,\n ResolvedEncodingForChainName,\n StellarString,\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';\nimport type { MaybeUndefinedMapped } from '@layerzerolabs/typescript-utils';\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 STELLAR = 'stellar',\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 extends NormalizedHexString | undefined>(\n address: Address,\n ) => MaybeUndefinedMapped<Address, ChainNativeAddress<T>>;\n normalizedToNativeString: <Address extends NormalizedHexString | undefined>(\n address: Address,\n ) => MaybeUndefinedMapped<Address, ResolvedEncodingForChainName<T>>;\n nativeToNormalized: <Address extends NativeOrString<T> | undefined>(\n nativeAddress: Address,\n ) => MaybeUndefinedMapped<Address, NormalizedHexString>;\n nativeToBytes: <Address extends NativeOrString<T> | undefined>(\n nativeAddress: Address,\n ) => MaybeUndefinedMapped<Address, Uint8Array>;\n nativeToBytes32Hex: <Address extends NativeOrString<T> | undefined>(\n nativeAddress: Address,\n ) => MaybeUndefinedMapped<Address, HexString>;\n nativeToBytes32: <Address extends NativeOrString<T> | undefined>(\n nativeAddress: Address,\n ) => MaybeUndefinedMapped<Address, Uint8Array>;\n validateNative: (\n nativeAddress: string | undefined,\n ) => 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 | undefined) => NormalizedHexString;\n parseNativeToUnpaddedHex: (nativeAddress: string | undefined) => 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 if (chainName === ChainName.STELLAR)\n return stellarAddressParser(chainName) as unknown as AddressParser<T>;\n if (chainName === ChainName.STARKNET)\n return starknetAddressParser(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\n export const normalizedToUnpaddedString = (address: NormalizedHexString) => {\n return address.toString() as HexString;\n };\n\n export const normalizedToBytes32 = (address: NormalizedHexString) => {\n return hexToBytes(normalizedToBytes32Hex(address));\n };\n\n export const normalizedToBigInt = (address: NormalizedHexString) => {\n return BigInt(address as unknown as HexString);\n };\n\n export const parseNative = (nativeAddress: NativeAddress) => {\n return addressParser(nativeAddress.chainName).parseNative(nativeAddress.nativeAddress);\n };\n}\n\nfunction assertNative<T extends ChainName>(\n nativeAddress: string | undefined,\n expectedChainName: T,\n): asserts 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}\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 if (nativeAddress === undefined) {\n return false;\n }\n try {\n parseTonAddress(nativeAddress);\n return true;\n } catch {\n return false;\n }\n },\n normalizedToNative: (address) => {\n if (address === undefined) return undefined as any;\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 if (address === undefined) return undefined as any;\n return addressParser(chainName).normalizedToNative(address).nativeAddress;\n },\n nativeToNormalized: (nativeAddress) => {\n if (nativeAddress === undefined) return undefined as any;\n const address = getAddress(nativeAddress);\n assertNative(address, chainName);\n return normalizeHex(addressToHex(address));\n },\n nativeToBytes32Hex: (nativeAddress) => {\n // naturally ton is 32 bytes, pad it anyway\n if (nativeAddress === undefined) return undefined as any;\n return hexZeroPad(\n addressParser(chainName).nativeToNormalized(nativeAddress) as unknown as HexString,\n 32,\n );\n },\n nativeToBytes: (nativeAddress) => {\n if (nativeAddress === undefined) return undefined as any;\n return hexToBytes(addressParser(chainName).nativeToBytes32Hex(nativeAddress));\n },\n nativeToBytes32: (nativeAddress) => {\n if (nativeAddress === undefined) return undefined as any;\n return hexToBytes(addressParser(chainName).nativeToBytes32Hex(nativeAddress));\n },\n parseNative: (nativeAddress) => {\n assertNative(nativeAddress, chainName);\n return addressParser(chainName).nativeToNormalized(nativeAddress);\n },\n parseNativeToUnpaddedHex: (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 if (nativeAddress === undefined) {\n return false;\n }\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 if (address === undefined) {\n return undefined as any;\n }\n return {\n nativeAddress: AccAddress.fromHex(address as unknown as HexString) as InitiaString,\n chainName,\n };\n },\n normalizedToNativeString: (address) => {\n if (address === undefined) return undefined as any;\n return addressParser(chainName).normalizedToNative(address).nativeAddress;\n },\n nativeToNormalized: (nativeAddress) => {\n if (nativeAddress === undefined) return undefined as any;\n const address = getAddress(nativeAddress);\n assertNative(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 if (nativeAddress === undefined) return undefined as any;\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 if (nativeAddress === undefined) return undefined as any;\n return hexToBytes(addressParser(chainName).nativeToBytes32Hex(nativeAddress));\n },\n nativeToBytes32: (nativeAddress) => {\n if (nativeAddress === undefined) return undefined as any;\n return hexToBytes(addressParser(chainName).nativeToBytes32Hex(nativeAddress));\n },\n parseNative: (nativeAddress) => {\n assertNative(nativeAddress, chainName);\n return addressParser(chainName).nativeToNormalized(nativeAddress);\n },\n parseNativeToUnpaddedHex: (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 if (nativeAddress === undefined) return false;\n return isBase58(nativeAddress);\n },\n normalizedToNative: (address) => {\n if (address === undefined) return undefined as any;\n return {\n nativeAddress: bs58.encode(\n hexToBytes(address as unknown as HexString),\n ) as Base58String,\n chainName,\n };\n },\n normalizedToNativeString: (address) => {\n if (address === undefined) return undefined as any;\n return addressParser(chainName).normalizedToNative(address).nativeAddress;\n },\n nativeToNormalized: (nativeAddress) => {\n if (nativeAddress === undefined) return undefined as any;\n const address = getAddress(nativeAddress);\n assertNative(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 if (nativeAddress === undefined) return undefined as any;\n return hexZeroPad(\n addressParser(chainName).nativeToNormalized(nativeAddress) as unknown as HexString,\n 32,\n );\n },\n nativeToBytes: (nativeAddress) => {\n if (nativeAddress === undefined) return undefined as any;\n const address = getAddress(nativeAddress);\n assertNative(address, chainName);\n return bs58.decode(address);\n },\n nativeToBytes32: (nativeAddress) => {\n if (nativeAddress === undefined) return undefined as any;\n return hexToBytes(addressParser(chainName).nativeToBytes32Hex(nativeAddress));\n },\n parseNative: (nativeAddress) => {\n assertNative(nativeAddress, chainName);\n return addressParser(chainName).nativeToNormalized(nativeAddress);\n },\n parseNativeToUnpaddedHex: (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 return {\n validateNative: (nativeAddress): nativeAddress is HexString => {\n if (nativeAddress === undefined) return false;\n return isHexString(nativeAddress);\n },\n normalizedToNative: (address) => {\n if (address === undefined) return undefined as any;\n // we fetch here instead of storing by chain because some chains may not have this defined,\n // so we should only throw on those chains if they try to use these methods that need the native byte length\n const nativeByteLength = StaticChainConfigs.getAddressSizeInBytes(chainName);\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 if (address === undefined) return undefined as any;\n const nativeByteLength = StaticChainConfigs.getAddressSizeInBytes(chainName);\n return hexZeroPad(address as unknown as HexString, nativeByteLength);\n },\n nativeToNormalized: (nativeAddress) => {\n if (nativeAddress === undefined) return undefined as any;\n const address = getAddress(nativeAddress);\n assertNative(address, chainName);\n return normalizeHex(address);\n },\n nativeToBytes: (nativeAddress) => {\n if (nativeAddress === undefined) return undefined as any;\n const address = getAddress(nativeAddress);\n assertNative(address, chainName);\n return hexToBytes(address);\n },\n nativeToBytes32Hex: (nativeAddress) => {\n if (nativeAddress === undefined) return undefined as any;\n const address = getAddress(nativeAddress);\n assertNative(address, chainName);\n return hexZeroPad(address, 32);\n },\n nativeToBytes32: (nativeAddress) => {\n if (nativeAddress === undefined) return undefined as any;\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 && nativeAddress) {\n nativeAddress = nativeAddress.startsWith('41')\n ? `0x${nativeAddress.slice(2)}`\n : nativeAddress;\n }\n\n assertNative(nativeAddress, chainName);\n return addressParser(chainName).nativeToNormalized(nativeAddress);\n },\n parseNativeToUnpaddedHex: (nativeAddress) => {\n return addressParser(chainName).parseNative(nativeAddress) as unknown as HexString;\n },\n encoding: AddressEncoding.HEX,\n };\n};\n\nexport const stellarAddressParser: (\n chainName: InferChainNamesForChainType<ChainType.STELLAR>,\n) => AddressParser<InferChainNamesForChainType<ChainType.STELLAR>> = (chainName) => {\n /**\n * Validate if a string is a valid Stellar address.\n *\n * According to SEP-0023 (https://github.com/stellar/stellar-protocol/blob/master/ecosystem/sep-0023.md),\n * Stellar supports multiple address types encoded as base32 ASCII strings:\n * - Account addresses starting with 'G' (56 chars, Ed25519 public key)\n * - Contract addresses starting with 'C' (56 chars, contract ID)\n * - Muxed addresses starting with 'M' (69 chars, muxed account with ID)\n * - Liquidity pool addresses starting with 'L' (56 chars, pool ID)\n * - Claimable balance addresses starting with 'B' (56 chars, balance ID)\n * - Signed payload starting with 'P' (variable length)\n *\n * All addresses are stored in their native ASCII format to preserve type information.\n */\n const isValidStellarAddress = (address: string): boolean => {\n if (!address) return false;\n // Use the StrKey validation methods for all supported address types\n return (\n StrKey.isValidEd25519PublicKey(address) ||\n StrKey.isValidContract(address) ||\n StrKey.isValidMed25519PublicKey(address) ||\n StrKey.isValidLiquidityPool(address) ||\n StrKey.isValidClaimableBalance(address) ||\n StrKey.isValidSignedPayload(address)\n );\n };\n\n /**\n * Convert Stellar ASCII address to normalized hex by encoding the ASCII string as UTF-8 bytes.\n * This preserves the full address including type prefix and allows round-trip conversion.\n */\n const stellarTextEncoder = new TextEncoder();\n const stellarAsciiToNormalized = (address: string): NormalizedHexString => {\n // Convert ASCII address string to UTF-8 bytes, then to hex\n const bytes = stellarTextEncoder.encode(address);\n return normalizeHex(bytesToHexPrefixed(bytes));\n };\n\n /**\n * Convert normalized hex back to Stellar ASCII address by decoding UTF-8 bytes.\n */\n const stellarTextDecoder = new TextDecoder();\n const normalizedToStellarAscii = (normalizedHex: NormalizedHexString): string => {\n // Convert hex to bytes, then decode as UTF-8 string\n const bytes = hexToBytes(normalizedHex as unknown as HexString);\n return stellarTextDecoder.decode(bytes);\n };\n\n return {\n validateNative: (nativeAddress): nativeAddress is StellarString => {\n if (nativeAddress === undefined) return false;\n return isValidStellarAddress(nativeAddress);\n },\n normalizedToNative: (address) => {\n if (address === undefined) return undefined as any;\n // Decode normalized hex back to ASCII Stellar address\n const stellarAddress = normalizedToStellarAscii(address);\n return {\n nativeAddress: stellarAddress as StellarString,\n chainName,\n };\n },\n normalizedToNativeString: (address) => {\n if (address === undefined) return undefined as any;\n return normalizedToStellarAscii(address) as StellarString;\n },\n nativeToNormalized: (nativeAddress) => {\n if (nativeAddress === undefined) return undefined as any;\n const address = getAddress(nativeAddress);\n assertNative(address, chainName);\n // Convert ASCII address to normalized hex\n return stellarAsciiToNormalized(address);\n },\n nativeToBytes32Hex: (nativeAddress) => {\n if (nativeAddress === undefined) return undefined as any;\n const address = getAddress(nativeAddress);\n assertNative(address, chainName);\n // Decode the Stellar address to its raw 32-byte payload based on type\n let rawBytes: Buffer;\n if (StrKey.isValidEd25519PublicKey(address)) {\n // Account addresses (G...) - Ed25519 public key (32 bytes)\n rawBytes = StrKey.decodeEd25519PublicKey(address);\n } else if (StrKey.isValidContract(address)) {\n // Contract addresses (C...) - contract ID (32 bytes)\n rawBytes = StrKey.decodeContract(address);\n } else if (StrKey.isValidLiquidityPool(address)) {\n // Liquidity pool addresses (L...) - pool ID (32 bytes)\n rawBytes = StrKey.decodeLiquidityPool(address);\n } else if (StrKey.isValidClaimableBalance(address)) {\n // Claimable balance addresses (B...) - balance ID (33 bytes: 1-byte version + 32-byte hash)\n // Per SEP-0023: first byte is the claimable balance type (0x00 = V0), followed by 32-byte SHA256 hash\n const fullBytes = StrKey.decodeClaimableBalance(address);\n rawBytes = fullBytes.subarray(1); // Skip the first byte (version), return the 32-byte hash\n } else if (StrKey.isValidMed25519PublicKey(address)) {\n // Muxed addresses (M...) contain additional data beyond 32 bytes\n throw new Error(\n 'nativeToBytes32 is not supported for Stellar muxed addresses (M...)',\n );\n } else if (StrKey.isValidSignedPayload(address)) {\n // Signed payload (P...) has variable length\n throw new Error(\n 'nativeToBytes32 is not supported for Stellar signed payload addresses (P...)',\n );\n } else {\n throw new Error(`Unknown Stellar address type: ${address}`);\n }\n return bytesToHexPrefixed(rawBytes);\n },\n nativeToBytes: (nativeAddress) => {\n if (nativeAddress === undefined) return undefined as any;\n const address = getAddress(nativeAddress);\n assertNative(address, chainName);\n // Convert ASCII address to UTF-8 bytes\n return stellarTextEncoder.encode(address);\n },\n nativeToBytes32: (nativeAddress) => {\n if (nativeAddress === undefined) return undefined as any;\n // Use nativeToBytes32Hex and convert to Uint8Array\n const hex = addressParser(chainName).nativeToBytes32Hex(nativeAddress);\n return hexToBytes(hex);\n },\n parseNative: (nativeAddress) => {\n assertNative(nativeAddress, chainName);\n return addressParser(chainName).nativeToNormalized(nativeAddress);\n },\n parseNativeToUnpaddedHex: (nativeAddress) => {\n assertNative(nativeAddress, chainName);\n const normalized = addressParser(chainName).nativeToNormalized(nativeAddress);\n return normalized as unknown as HexString;\n },\n encoding: AddressEncoding.STELLAR,\n };\n};\n\n// Starknet addresses do not have handle hexzero padding, so we just return the address as is\nexport const starknetAddressParser = (\n chainName: ChainsByEncoding[HexString],\n): AddressParser<ChainsByEncoding[HexString]> => {\n return {\n ...hexAddressParser(chainName),\n validateNative: (nativeAddress): nativeAddress is HexString => {\n if (nativeAddress === undefined) return false;\n return isHexString(nativeAddress);\n },\n parseNative: (nativeAddress) => {\n if (nativeAddress === undefined) return undefined as any;\n // We can't trust starknet.js strings, they may actually be bigints!\n // so just convert everything to hex first, then convert to normalized\n nativeAddress = `0x${BigInt(nativeAddress).toString(16)}`;\n assertNative(nativeAddress, chainName);\n return addressParser(chainName).nativeToNormalized(nativeAddress);\n },\n normalizedToNative: (address) => {\n if (address === undefined) return undefined as any;\n return {\n nativeAddress: address,\n chainName,\n };\n },\n normalizedToNativeString: (address) => {\n if (address === undefined) return undefined as any;\n return address;\n },\n };\n};\n"]}
@@ -1,41 +1,41 @@
1
1
  'use strict';
2
2
 
3
- var ICZYLYGP_cjs = require('./ICZYLYGP.cjs');
3
+ var _6ZQQF5PQ_cjs = require('./6ZQQF5PQ.cjs');
4
4
  require('./KHVGLVR5.cjs');
5
5
 
6
6
 
7
7
 
8
8
  Object.defineProperty(exports, "AddressEncoding", {
9
9
  enumerable: true,
10
- get: function () { return ICZYLYGP_cjs.AddressEncoding; }
10
+ get: function () { return _6ZQQF5PQ_cjs.AddressEncoding; }
11
11
  });
12
12
  Object.defineProperty(exports, "addressParser", {
13
13
  enumerable: true,
14
- get: function () { return ICZYLYGP_cjs.addressParser; }
14
+ get: function () { return _6ZQQF5PQ_cjs.addressParser; }
15
15
  });
16
16
  Object.defineProperty(exports, "base58AddressParser", {
17
17
  enumerable: true,
18
- get: function () { return ICZYLYGP_cjs.base58AddressParser; }
18
+ get: function () { return _6ZQQF5PQ_cjs.base58AddressParser; }
19
19
  });
20
20
  Object.defineProperty(exports, "hexAddressParser", {
21
21
  enumerable: true,
22
- get: function () { return ICZYLYGP_cjs.hexAddressParser; }
22
+ get: function () { return _6ZQQF5PQ_cjs.hexAddressParser; }
23
23
  });
24
24
  Object.defineProperty(exports, "initiaAddressParser", {
25
25
  enumerable: true,
26
- get: function () { return ICZYLYGP_cjs.initiaAddressParser; }
26
+ get: function () { return _6ZQQF5PQ_cjs.initiaAddressParser; }
27
27
  });
28
28
  Object.defineProperty(exports, "starknetAddressParser", {
29
29
  enumerable: true,
30
- get: function () { return ICZYLYGP_cjs.starknetAddressParser; }
30
+ get: function () { return _6ZQQF5PQ_cjs.starknetAddressParser; }
31
31
  });
32
32
  Object.defineProperty(exports, "stellarAddressParser", {
33
33
  enumerable: true,
34
- get: function () { return ICZYLYGP_cjs.stellarAddressParser; }
34
+ get: function () { return _6ZQQF5PQ_cjs.stellarAddressParser; }
35
35
  });
36
36
  Object.defineProperty(exports, "tonAddressParser", {
37
37
  enumerable: true,
38
- get: function () { return ICZYLYGP_cjs.tonAddressParser; }
38
+ get: function () { return _6ZQQF5PQ_cjs.tonAddressParser; }
39
39
  });
40
40
  //# sourceMappingURL=addressParser.cjs.map
41
41
  //# sourceMappingURL=addressParser.cjs.map
@@ -1,4 +1,4 @@
1
- export { AddressEncoding, addressParser, base58AddressParser, hexAddressParser, initiaAddressParser, starknetAddressParser, stellarAddressParser, tonAddressParser } from './BG5XW4YA.js';
1
+ export { AddressEncoding, addressParser, base58AddressParser, hexAddressParser, initiaAddressParser, starknetAddressParser, stellarAddressParser, tonAddressParser } from './TNQ4ZWJM.js';
2
2
  import './CWKWODSW.js';
3
3
  //# sourceMappingURL=addressParser.js.map
4
4
  //# sourceMappingURL=addressParser.js.map