@layerzerolabs/chain-utils 0.2.58 → 0.2.60
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.
- package/.turbo/turbo-build.log +21 -21
- package/.turbo/turbo-lint.log +1 -1
- package/.turbo/turbo-test.log +4 -4
- package/dist/{3457WEGJ.js → OVN7SCH2.js} +75 -9
- package/dist/OVN7SCH2.js.map +1 -0
- package/dist/{QNFJ2P5R.cjs → X46YPLVF.cjs} +74 -8
- package/dist/X46YPLVF.cjs.map +1 -0
- package/dist/addressParser.cjs +9 -9
- package/dist/addressParser.d.ts +3 -2
- package/dist/addressParser.d.ts.map +1 -1
- package/dist/addressParser.js +1 -1
- package/dist/addressParser.test.cjs +174 -10
- package/dist/addressParser.test.cjs.map +1 -1
- package/dist/addressParser.test.js +167 -3
- package/dist/addressParser.test.js.map +1 -1
- package/dist/index.cjs +9 -9
- package/dist/index.js +1 -1
- package/package.json +9 -9
- package/src/addressParser.test.ts +181 -3
- package/src/addressParser.ts +99 -8
- package/dist/3457WEGJ.js.map +0 -1
- package/dist/QNFJ2P5R.cjs.map +0 -1
package/dist/addressParser.cjs
CHANGED
|
@@ -1,41 +1,41 @@
|
|
|
1
1
|
'use strict';
|
|
2
2
|
|
|
3
|
-
var
|
|
3
|
+
var X46YPLVF_cjs = require('./X46YPLVF.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
|
|
10
|
+
get: function () { return X46YPLVF_cjs.AddressEncoding; }
|
|
11
11
|
});
|
|
12
12
|
Object.defineProperty(exports, "addressParser", {
|
|
13
13
|
enumerable: true,
|
|
14
|
-
get: function () { return
|
|
14
|
+
get: function () { return X46YPLVF_cjs.addressParser; }
|
|
15
15
|
});
|
|
16
16
|
Object.defineProperty(exports, "base58AddressParser", {
|
|
17
17
|
enumerable: true,
|
|
18
|
-
get: function () { return
|
|
18
|
+
get: function () { return X46YPLVF_cjs.base58AddressParser; }
|
|
19
19
|
});
|
|
20
20
|
Object.defineProperty(exports, "hexAddressParser", {
|
|
21
21
|
enumerable: true,
|
|
22
|
-
get: function () { return
|
|
22
|
+
get: function () { return X46YPLVF_cjs.hexAddressParser; }
|
|
23
23
|
});
|
|
24
24
|
Object.defineProperty(exports, "initiaAddressParser", {
|
|
25
25
|
enumerable: true,
|
|
26
|
-
get: function () { return
|
|
26
|
+
get: function () { return X46YPLVF_cjs.initiaAddressParser; }
|
|
27
27
|
});
|
|
28
28
|
Object.defineProperty(exports, "starknetAddressParser", {
|
|
29
29
|
enumerable: true,
|
|
30
|
-
get: function () { return
|
|
30
|
+
get: function () { return X46YPLVF_cjs.starknetAddressParser; }
|
|
31
31
|
});
|
|
32
32
|
Object.defineProperty(exports, "stellarAddressParser", {
|
|
33
33
|
enumerable: true,
|
|
34
|
-
get: function () { return
|
|
34
|
+
get: function () { return X46YPLVF_cjs.stellarAddressParser; }
|
|
35
35
|
});
|
|
36
36
|
Object.defineProperty(exports, "tonAddressParser", {
|
|
37
37
|
enumerable: true,
|
|
38
|
-
get: function () { return
|
|
38
|
+
get: function () { return X46YPLVF_cjs.tonAddressParser; }
|
|
39
39
|
});
|
|
40
40
|
//# sourceMappingURL=addressParser.cjs.map
|
|
41
41
|
//# sourceMappingURL=addressParser.cjs.map
|
package/dist/addressParser.d.ts
CHANGED
|
@@ -25,6 +25,9 @@ export type AddressParser<T extends ChainName> = {
|
|
|
25
25
|
nativeToBytes: <Address extends NativeOrString<T> | undefined>(nativeAddress: Address) => MaybeUndefinedMapped<Address, Uint8Array>;
|
|
26
26
|
nativeToBytes32Hex: <Address extends NativeOrString<T> | undefined>(nativeAddress: Address) => MaybeUndefinedMapped<Address, HexString>;
|
|
27
27
|
nativeToBytes32: <Address extends NativeOrString<T> | undefined>(nativeAddress: Address) => MaybeUndefinedMapped<Address, Uint8Array>;
|
|
28
|
+
normalizedToBytes32Hex: <Address extends NormalizedHexString | undefined>(address: Address) => MaybeUndefinedMapped<Address, HexString>;
|
|
29
|
+
normalizedToBytes32: <Address extends NormalizedHexString | undefined>(address: Address) => MaybeUndefinedMapped<Address, Uint8Array>;
|
|
30
|
+
bytes32ToNormalized: <B extends HexString | undefined>(bytes32Hex: B) => MaybeUndefinedMapped<B, NormalizedHexString>;
|
|
28
31
|
validateNative: (nativeAddress: string | undefined) => nativeAddress is ResolvedEncodingForChainName<T>;
|
|
29
32
|
/**
|
|
30
33
|
* Parse a native address to a string if it is valid.
|
|
@@ -38,9 +41,7 @@ export type AddressParser<T extends ChainName> = {
|
|
|
38
41
|
} & InferExtensionByChainName<T>;
|
|
39
42
|
export declare function addressParser<T extends ChainName>(chainName: T): AddressParser<T>;
|
|
40
43
|
export declare namespace addressParser {
|
|
41
|
-
const normalizedToBytes32Hex: (address: NormalizedHexString) => `0x${string}`;
|
|
42
44
|
const normalizedToUnpaddedString: (address: NormalizedHexString) => HexString;
|
|
43
|
-
const normalizedToBytes32: (address: NormalizedHexString) => Uint8Array<ArrayBufferLike>;
|
|
44
45
|
const normalizedToBigInt: (address: NormalizedHexString) => bigint;
|
|
45
46
|
const parseNative: (nativeAddress: NativeAddress) => NormalizedHexString;
|
|
46
47
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"addressParser.d.ts","sourceRoot":"","sources":["../src/addressParser.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,UAAU,CAAC;AAGxC,OAAO,KAAK,EAAE,SAAS,EAAE,mBAAmB,EAAE,MAAM,mCAAmC,CAAC;AAUxF,OAAO,KAAK,EACR,YAAY,EACZ,gBAAgB,EAChB,SAAS,EACT,2BAA2B,EAC3B,0BAA0B,EAC1B,YAAY,EACZ,aAAa,EACb,4BAA4B,EAE/B,MAAM,sCAAsC,CAAC;AAC9C,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,sCAAsC,CAAC;AAC/E,OAAO,EAAE,SAAS,EAAE,MAAM,sCAAsC,CAAC;AAEjE,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,iCAAiC,CAAC;AAE5E,KAAK,cAAc,CAAC,CAAC,SAAS,SAAS,IAAI,kBAAkB,CAAC,CAAC,CAAC,GAAG,4BAA4B,CAAC,CAAC,CAAC,CAAC;AAEnG,oBAAY,eAAe;IACvB,GAAG,QAAQ;IACX,MAAM,WAAW;IACjB,GAAG,QAAQ;IACX,MAAM,WAAW;IACjB,OAAO,YAAY;CACtB;AAED,MAAM,MAAM,oBAAoB,GAAG;IAC/B,GAAG,EAAE;QACD,eAAe,EAAE,CAAC,UAAU,EAAE,OAAO,KAAK,mBAAmB,CAAC;KACjE,CAAC;CACL,CAAC;AAEF,MAAM,MAAM,yBAAyB,CAAC,CAAC,SAAS,SAAS,IACrD,0BAA0B,CAAC,CAAC,CAAC,SAAS,MAAM,oBAAoB,GAC1D,oBAAoB,CAAC,0BAA0B,CAAC,CAAC,CAAC,CAAC,GACnD,EAAE,CAAC;AAEb,MAAM,MAAM,aAAa,CAAC,CAAC,SAAS,SAAS,IAAI;IAC7C,kBAAkB,EAAE,CAAC,OAAO,SAAS,mBAAmB,GAAG,SAAS,EAChE,OAAO,EAAE,OAAO,KACf,oBAAoB,CAAC,OAAO,EAAE,kBAAkB,CAAC,CAAC,CAAC,CAAC,CAAC;IAC1D,wBAAwB,EAAE,CAAC,OAAO,SAAS,mBAAmB,GAAG,SAAS,EACtE,OAAO,EAAE,OAAO,KACf,oBAAoB,CAAC,OAAO,EAAE,4BAA4B,CAAC,CAAC,CAAC,CAAC,CAAC;IACpE,kBAAkB,EAAE,CAAC,OAAO,SAAS,cAAc,CAAC,CAAC,CAAC,GAAG,SAAS,EAC9D,aAAa,EAAE,OAAO,KACrB,oBAAoB,CAAC,OAAO,EAAE,mBAAmB,CAAC,CAAC;IACxD,aAAa,EAAE,CAAC,OAAO,SAAS,cAAc,CAAC,CAAC,CAAC,GAAG,SAAS,EACzD,aAAa,EAAE,OAAO,KACrB,oBAAoB,CAAC,OAAO,EAAE,UAAU,CAAC,CAAC;IAC/C,kBAAkB,EAAE,CAAC,OAAO,SAAS,cAAc,CAAC,CAAC,CAAC,GAAG,SAAS,EAC9D,aAAa,EAAE,OAAO,KACrB,oBAAoB,CAAC,OAAO,EAAE,SAAS,CAAC,CAAC;IAC9C,eAAe,EAAE,CAAC,OAAO,SAAS,cAAc,CAAC,CAAC,CAAC,GAAG,SAAS,EAC3D,aAAa,EAAE,OAAO,KACrB,oBAAoB,CAAC,OAAO,EAAE,UAAU,CAAC,CAAC;IAC/C,cAAc,EAAE,CACZ,aAAa,EAAE,MAAM,GAAG,SAAS,KAChC,aAAa,IAAI,4BAA4B,CAAC,CAAC,CAAC,CAAC;IACtD;;;;;OAKG;IACH,WAAW,EAAE,CAAC,aAAa,EAAE,MAAM,GAAG,SAAS,KAAK,mBAAmB,CAAC;IACxE,wBAAwB,EAAE,CAAC,aAAa,EAAE,MAAM,GAAG,SAAS,KAAK,SAAS,CAAC;IAC3E,QAAQ,EAAE,eAAe,CAAC;CAC7B,GAAG,yBAAyB,CAAC,CAAC,CAAC,CAAC;AAEjC,wBAAgB,aAAa,CAAC,CAAC,SAAS,SAAS,EAAE,SAAS,EAAE,CAAC,GAAG,aAAa,CAAC,CAAC,CAAC,CAajF;AAED,yBAAiB,aAAa,CAAC;IACpB,MAAM,
|
|
1
|
+
{"version":3,"file":"addressParser.d.ts","sourceRoot":"","sources":["../src/addressParser.ts"],"names":[],"mappings":"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"}
|
package/dist/addressParser.js
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
export { AddressEncoding, addressParser, base58AddressParser, hexAddressParser, initiaAddressParser, starknetAddressParser, stellarAddressParser, tonAddressParser } from './
|
|
1
|
+
export { AddressEncoding, addressParser, base58AddressParser, hexAddressParser, initiaAddressParser, starknetAddressParser, stellarAddressParser, tonAddressParser } from './OVN7SCH2.js';
|
|
2
2
|
import './CWKWODSW.js';
|
|
3
3
|
//# sourceMappingURL=addressParser.js.map
|
|
4
4
|
//# sourceMappingURL=addressParser.js.map
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
'use strict';
|
|
2
2
|
|
|
3
|
-
var
|
|
3
|
+
var X46YPLVF_cjs = require('./X46YPLVF.cjs');
|
|
4
4
|
var KHVGLVR5_cjs = require('./KHVGLVR5.cjs');
|
|
5
5
|
var bs58 = require('bs58');
|
|
6
6
|
var tty = require('tty');
|
|
@@ -18120,7 +18120,7 @@ describe("addressParser - hex/EVM chains", () => {
|
|
|
18120
18120
|
];
|
|
18121
18121
|
evmChains.forEach((chain) => {
|
|
18122
18122
|
describe(chain, () => {
|
|
18123
|
-
const parser =
|
|
18123
|
+
const parser = X46YPLVF_cjs.addressParser(chain);
|
|
18124
18124
|
it("maintains roundtrip invariant: hex -> native -> hex", () => {
|
|
18125
18125
|
runPropertyTest(() => {
|
|
18126
18126
|
const input = randomHex(20);
|
|
@@ -18153,13 +18153,13 @@ describe("addressParser - hex/EVM chains", () => {
|
|
|
18153
18153
|
runPropertyTest(() => {
|
|
18154
18154
|
const byteLength = Math.floor(Math.random() * 32) + 1;
|
|
18155
18155
|
const input = randomHex(byteLength);
|
|
18156
|
-
const padded =
|
|
18156
|
+
const padded = X46YPLVF_cjs.addressParser(layerzeroDefinitions.ChainName.ETHEREUM).normalizedToBytes32Hex(input);
|
|
18157
18157
|
globalExpect(padded.length).toBe(66);
|
|
18158
18158
|
globalExpect(padded).toBe(commonEncodingUtils.hexZeroPad(input, 32));
|
|
18159
18159
|
});
|
|
18160
18160
|
});
|
|
18161
18161
|
it("handles edge cases", () => {
|
|
18162
|
-
const parser =
|
|
18162
|
+
const parser = X46YPLVF_cjs.addressParser(layerzeroDefinitions.ChainName.ETHEREUM);
|
|
18163
18163
|
const empty = commonChainModel.normalizeHex("0x");
|
|
18164
18164
|
globalExpect(parser.normalizedToNative(empty).nativeAddress.length).toBe(42);
|
|
18165
18165
|
const max = commonChainModel.normalizeHex("0x" + "ff".repeat(20));
|
|
@@ -18169,7 +18169,7 @@ describe("addressParser - hex/EVM chains", () => {
|
|
|
18169
18169
|
});
|
|
18170
18170
|
});
|
|
18171
18171
|
describe("addressParser - base58 chains (Solana)", () => {
|
|
18172
|
-
const parser =
|
|
18172
|
+
const parser = X46YPLVF_cjs.addressParser(layerzeroDefinitions.ChainName.SOLANA);
|
|
18173
18173
|
it("maintains roundtrip invariant: hex -> base58 -> hex", () => {
|
|
18174
18174
|
runPropertyTest(() => {
|
|
18175
18175
|
const byteLength = Math.floor(Math.random() * 32) + 1;
|
|
@@ -18212,15 +18212,15 @@ describe("addressParser - base58 chains (Solana)", () => {
|
|
|
18212
18212
|
});
|
|
18213
18213
|
describe("addressParser - chain validation", () => {
|
|
18214
18214
|
it("validates chain names for nativeToBytes32Hex", () => {
|
|
18215
|
-
const evmParser =
|
|
18216
|
-
const solanaParser =
|
|
18215
|
+
const evmParser = X46YPLVF_cjs.addressParser(layerzeroDefinitions.ChainName.ETHEREUM);
|
|
18216
|
+
const solanaParser = X46YPLVF_cjs.addressParser(layerzeroDefinitions.ChainName.SOLANA);
|
|
18217
18217
|
const evmAddress = evmParser.normalizedToNative(randomHex(20));
|
|
18218
18218
|
const solanaAddress = solanaParser.normalizedToNative(randomHex(32));
|
|
18219
18219
|
globalExpect(() => solanaParser.nativeToBytes32Hex(evmAddress)).toThrow(/Cannot convert/);
|
|
18220
18220
|
globalExpect(() => evmParser.nativeToBytes32Hex(solanaAddress)).toThrow(/Cannot convert/);
|
|
18221
18221
|
});
|
|
18222
18222
|
it("accepts string addresses without validation", () => {
|
|
18223
|
-
const parser =
|
|
18223
|
+
const parser = X46YPLVF_cjs.addressParser(layerzeroDefinitions.ChainName.ETHEREUM);
|
|
18224
18224
|
const randomAddress = "0x" + "ab".repeat(20);
|
|
18225
18225
|
const result = parser.nativeToNormalized(randomAddress);
|
|
18226
18226
|
globalExpect(result).toBe(commonChainModel.normalizeHex(randomAddress));
|
|
@@ -18231,7 +18231,7 @@ describe("addressParser - chain validation", () => {
|
|
|
18231
18231
|
});
|
|
18232
18232
|
});
|
|
18233
18233
|
describe("addressParser - TON", () => {
|
|
18234
|
-
const parser =
|
|
18234
|
+
const parser = X46YPLVF_cjs.addressParser(layerzeroDefinitions.ChainName.TON);
|
|
18235
18235
|
it("maintains roundtrip invariant: hex -> ton address -> hex", () => {
|
|
18236
18236
|
runPropertyTest(() => {
|
|
18237
18237
|
const byteLength = Math.floor(Math.random() * 32) + 1;
|
|
@@ -18292,7 +18292,7 @@ describe("addressParser - TON", () => {
|
|
|
18292
18292
|
});
|
|
18293
18293
|
});
|
|
18294
18294
|
describe("addressParser - Stellar", () => {
|
|
18295
|
-
const parser =
|
|
18295
|
+
const parser = X46YPLVF_cjs.addressParser(layerzeroDefinitions.ChainName.STELLAR);
|
|
18296
18296
|
const validTestAddresses = {
|
|
18297
18297
|
// Account address (G...)
|
|
18298
18298
|
account: "GA7QYNF7SOWQ3GLR2BGMZEHXAVIRZA4KVWLTJJFC7MGXUA74P7UJVSGZ",
|
|
@@ -18489,6 +18489,23 @@ describe("addressParser - Stellar", () => {
|
|
|
18489
18489
|
globalExpect(bytes32.length).toBe(32);
|
|
18490
18490
|
});
|
|
18491
18491
|
});
|
|
18492
|
+
describe("normalizedToBytes32 operations", () => {
|
|
18493
|
+
it("produces same result as nativeToBytes32Hex for contract address (C...)", () => {
|
|
18494
|
+
const stellarAddress = validTestAddresses.contract;
|
|
18495
|
+
const normalized = parser.nativeToNormalized(stellarAddress);
|
|
18496
|
+
const fromNative = parser.nativeToBytes32Hex(stellarAddress);
|
|
18497
|
+
const fromNormalized = parser.normalizedToBytes32Hex(normalized);
|
|
18498
|
+
globalExpect(fromNormalized).toBe(fromNative);
|
|
18499
|
+
});
|
|
18500
|
+
it("normalizedToBytes32 returns correct Uint8Array", () => {
|
|
18501
|
+
const stellarAddress = validTestAddresses.account;
|
|
18502
|
+
const normalized = parser.nativeToNormalized(stellarAddress);
|
|
18503
|
+
const bytes32Hex = parser.normalizedToBytes32Hex(normalized);
|
|
18504
|
+
const bytes32 = parser.normalizedToBytes32(normalized);
|
|
18505
|
+
globalExpect(bytes32.length).toBe(32);
|
|
18506
|
+
globalExpect(commonEncodingUtils.bytesToHexPrefixed(bytes32)).toBe(bytes32Hex);
|
|
18507
|
+
});
|
|
18508
|
+
});
|
|
18492
18509
|
describe("address type preservation", () => {
|
|
18493
18510
|
it("preserves address type information through conversion", () => {
|
|
18494
18511
|
const addresses = [
|
|
@@ -18558,6 +18575,153 @@ describe("addressParser - Stellar", () => {
|
|
|
18558
18575
|
});
|
|
18559
18576
|
});
|
|
18560
18577
|
});
|
|
18578
|
+
describe("addressParser - normalizedToBytes32Hex (cross-chain)", () => {
|
|
18579
|
+
const testCases = [
|
|
18580
|
+
{
|
|
18581
|
+
name: "EVM (Ethereum)",
|
|
18582
|
+
chainName: layerzeroDefinitions.ChainName.ETHEREUM,
|
|
18583
|
+
nativeAddr: "0x1234567890abcdef1234567890abcdef12345678"
|
|
18584
|
+
},
|
|
18585
|
+
{
|
|
18586
|
+
name: "Solana",
|
|
18587
|
+
chainName: layerzeroDefinitions.ChainName.SOLANA,
|
|
18588
|
+
nativeAddr: "Es9vMFrzaCERmJfrF4H2FYD4KCoNkY11McCe8BenwNYB"
|
|
18589
|
+
},
|
|
18590
|
+
{
|
|
18591
|
+
name: "TON",
|
|
18592
|
+
chainName: layerzeroDefinitions.ChainName.TON,
|
|
18593
|
+
nativeAddr: "EQDtFpEwcFAEcRe5mLVh2N6C0x-_hJEM7W61_JLnSF74p4q2"
|
|
18594
|
+
},
|
|
18595
|
+
{
|
|
18596
|
+
name: "Stellar",
|
|
18597
|
+
chainName: layerzeroDefinitions.ChainName.STELLAR,
|
|
18598
|
+
nativeAddr: "GAAZI4TCR3TY5OJHCTJC2A4QSY6CJWJH5IAJTGKIN2ER7LBNVKOCCWN7"
|
|
18599
|
+
},
|
|
18600
|
+
{
|
|
18601
|
+
name: "Aptos",
|
|
18602
|
+
chainName: layerzeroDefinitions.ChainName.APTOS,
|
|
18603
|
+
nativeAddr: "0x1"
|
|
18604
|
+
},
|
|
18605
|
+
{
|
|
18606
|
+
name: "Starknet",
|
|
18607
|
+
chainName: layerzeroDefinitions.ChainName.STARKNET,
|
|
18608
|
+
nativeAddr: "0x049d36570d4e46f48e99674bd3fcc84644ddd6b96f7c741b1562b82f9e004dc7"
|
|
18609
|
+
},
|
|
18610
|
+
{
|
|
18611
|
+
name: "Initia",
|
|
18612
|
+
chainName: layerzeroDefinitions.ChainName.INITIA,
|
|
18613
|
+
nativeAddr: "0x1"
|
|
18614
|
+
}
|
|
18615
|
+
];
|
|
18616
|
+
testCases.forEach(({ name, chainName, nativeAddr }) => {
|
|
18617
|
+
it(`${name}: normalizedToBytes32Hex(normalized) === nativeToBytes32Hex(native)`, () => {
|
|
18618
|
+
const p3 = X46YPLVF_cjs.addressParser(chainName);
|
|
18619
|
+
const normalized = p3.nativeToNormalized(nativeAddr);
|
|
18620
|
+
const fromNormalized = p3.normalizedToBytes32Hex(normalized);
|
|
18621
|
+
const fromNative = p3.nativeToBytes32Hex(nativeAddr);
|
|
18622
|
+
globalExpect(fromNormalized).toBe(fromNative);
|
|
18623
|
+
globalExpect(fromNormalized.length).toBe(66);
|
|
18624
|
+
globalExpect(fromNormalized).toMatch(/^0x[0-9a-f]{64}$/);
|
|
18625
|
+
});
|
|
18626
|
+
});
|
|
18627
|
+
it("normalizedToBytes32Hex is consistent across chain parsers for \u226432 byte hex", () => {
|
|
18628
|
+
const evmParser = X46YPLVF_cjs.addressParser(layerzeroDefinitions.ChainName.ETHEREUM);
|
|
18629
|
+
const solanaParser = X46YPLVF_cjs.addressParser(layerzeroDefinitions.ChainName.SOLANA);
|
|
18630
|
+
const normalized = commonChainModel.normalizeHex("0x1234567890abcdef1234567890abcdef12345678");
|
|
18631
|
+
globalExpect(evmParser.normalizedToBytes32Hex(normalized)).toBe(solanaParser.normalizedToBytes32Hex(normalized));
|
|
18632
|
+
});
|
|
18633
|
+
it("normalizedToBytes32 returns correct Uint8Array", () => {
|
|
18634
|
+
const p3 = X46YPLVF_cjs.addressParser(layerzeroDefinitions.ChainName.ETHEREUM);
|
|
18635
|
+
const normalized = commonChainModel.normalizeHex("0x1234567890abcdef1234567890abcdef12345678");
|
|
18636
|
+
const bytes32Hex = p3.normalizedToBytes32Hex(normalized);
|
|
18637
|
+
const bytes32 = p3.normalizedToBytes32(normalized);
|
|
18638
|
+
globalExpect(bytes32.length).toBe(32);
|
|
18639
|
+
globalExpect(commonEncodingUtils.bytesToHexPrefixed(bytes32)).toBe(bytes32Hex);
|
|
18640
|
+
});
|
|
18641
|
+
it("returns undefined for undefined input", () => {
|
|
18642
|
+
const p3 = X46YPLVF_cjs.addressParser(layerzeroDefinitions.ChainName.ETHEREUM);
|
|
18643
|
+
globalExpect(p3.normalizedToBytes32Hex(void 0)).toBeUndefined();
|
|
18644
|
+
globalExpect(p3.normalizedToBytes32(void 0)).toBeUndefined();
|
|
18645
|
+
});
|
|
18646
|
+
});
|
|
18647
|
+
describe("addressParser - bytes32ToNormalized", () => {
|
|
18648
|
+
const ZERO_BYTES32 = "0x" + "00".repeat(32);
|
|
18649
|
+
describe("round-trip: bytes32ToNormalized(nativeToBytes32Hex(native)) === nativeToNormalized(native)", () => {
|
|
18650
|
+
const cases = [
|
|
18651
|
+
{
|
|
18652
|
+
name: "EVM",
|
|
18653
|
+
chainName: layerzeroDefinitions.ChainName.ETHEREUM,
|
|
18654
|
+
native: "0x1234567890abcdef1234567890abcdef12345678"
|
|
18655
|
+
},
|
|
18656
|
+
{
|
|
18657
|
+
name: "Solana",
|
|
18658
|
+
chainName: layerzeroDefinitions.ChainName.SOLANA,
|
|
18659
|
+
native: "Es9vMFrzaCERmJfrF4H2FYD4KCoNkY11McCe8BenwNYB"
|
|
18660
|
+
},
|
|
18661
|
+
{
|
|
18662
|
+
name: "TON",
|
|
18663
|
+
chainName: layerzeroDefinitions.ChainName.TON,
|
|
18664
|
+
native: "EQDtFpEwcFAEcRe5mLVh2N6C0x-_hJEM7W61_JLnSF74p4q2"
|
|
18665
|
+
},
|
|
18666
|
+
{
|
|
18667
|
+
name: "Initia",
|
|
18668
|
+
chainName: layerzeroDefinitions.ChainName.INITIA,
|
|
18669
|
+
native: "0x1"
|
|
18670
|
+
},
|
|
18671
|
+
{
|
|
18672
|
+
name: "Starknet",
|
|
18673
|
+
chainName: layerzeroDefinitions.ChainName.STARKNET,
|
|
18674
|
+
native: "0x049d36570d4e46f48e99674bd3fcc84644ddd6b96f7c741b1562b82f9e004dc7"
|
|
18675
|
+
},
|
|
18676
|
+
{
|
|
18677
|
+
name: "Aptos",
|
|
18678
|
+
chainName: layerzeroDefinitions.ChainName.APTOS,
|
|
18679
|
+
native: "0x1"
|
|
18680
|
+
}
|
|
18681
|
+
];
|
|
18682
|
+
cases.forEach(({ name, chainName, native }) => {
|
|
18683
|
+
it(`${name}: round-trip`, () => {
|
|
18684
|
+
const p3 = X46YPLVF_cjs.addressParser(chainName);
|
|
18685
|
+
const normalized = p3.nativeToNormalized(native);
|
|
18686
|
+
const bytes32Hex = p3.nativeToBytes32Hex(native);
|
|
18687
|
+
globalExpect(p3.bytes32ToNormalized(bytes32Hex)).toBe(normalized);
|
|
18688
|
+
});
|
|
18689
|
+
});
|
|
18690
|
+
it("Stellar contract: round-trip", () => {
|
|
18691
|
+
const p3 = X46YPLVF_cjs.addressParser(layerzeroDefinitions.ChainName.STELLAR);
|
|
18692
|
+
const contractAddr = "CA7QYNF7SOWQ3GLR2BGMZEHXAVIRZA4KVWLTJJFC7MGXUA74P7UJUWDA";
|
|
18693
|
+
const normalized = p3.nativeToNormalized(contractAddr);
|
|
18694
|
+
const bytes32Hex = p3.nativeToBytes32Hex(contractAddr);
|
|
18695
|
+
globalExpect(p3.bytes32ToNormalized(bytes32Hex)).toBe(normalized);
|
|
18696
|
+
});
|
|
18697
|
+
});
|
|
18698
|
+
it("undefined input returns undefined", () => {
|
|
18699
|
+
const p3 = X46YPLVF_cjs.addressParser(layerzeroDefinitions.ChainName.ETHEREUM);
|
|
18700
|
+
globalExpect(p3.bytes32ToNormalized(void 0)).toBeUndefined();
|
|
18701
|
+
});
|
|
18702
|
+
it("non-Stellar: bytes32ToNative === normalizeHex for same input", () => {
|
|
18703
|
+
const chains = [
|
|
18704
|
+
layerzeroDefinitions.ChainName.ETHEREUM,
|
|
18705
|
+
layerzeroDefinitions.ChainName.SOLANA,
|
|
18706
|
+
layerzeroDefinitions.ChainName.TON,
|
|
18707
|
+
layerzeroDefinitions.ChainName.STARKNET
|
|
18708
|
+
];
|
|
18709
|
+
const bytes32 = "0x0000000000000000000000001234567890abcdef1234567890abcdef12345678";
|
|
18710
|
+
chains.forEach((chainName) => {
|
|
18711
|
+
globalExpect(X46YPLVF_cjs.addressParser(chainName).bytes32ToNormalized(bytes32)).toBe(commonChainModel.normalizeHex(bytes32));
|
|
18712
|
+
});
|
|
18713
|
+
});
|
|
18714
|
+
it("zero bytes32: EVM returns NORMALIZED_HEX_ZERO", () => {
|
|
18715
|
+
const p3 = X46YPLVF_cjs.addressParser(layerzeroDefinitions.ChainName.ETHEREUM);
|
|
18716
|
+
globalExpect(p3.bytes32ToNormalized(ZERO_BYTES32)).toBe(commonChainModel.NORMALIZED_HEX_ZERO);
|
|
18717
|
+
});
|
|
18718
|
+
it("zero bytes32: Stellar returns C-address for zero contract ID (not undefined)", () => {
|
|
18719
|
+
const p3 = X46YPLVF_cjs.addressParser(layerzeroDefinitions.ChainName.STELLAR);
|
|
18720
|
+
const result = p3.bytes32ToNormalized(ZERO_BYTES32);
|
|
18721
|
+
globalExpect(result).toBeDefined();
|
|
18722
|
+
globalExpect(result).not.toBe(commonChainModel.NORMALIZED_HEX_ZERO);
|
|
18723
|
+
});
|
|
18724
|
+
});
|
|
18561
18725
|
/*! Bundled license information:
|
|
18562
18726
|
|
|
18563
18727
|
@vitest/pretty-format/dist/index.js:
|