@layerzerolabs/common-chain-model 1.2.102 → 1.2.104

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -1,4 +1,4 @@
1
- import { normalizedHexSchema } from './ABNPUNNO.js';
1
+ import { normalizedHexSchema } from './QWAQITZH.js';
2
2
  import { transactionSchema, transactionResultSchema } from './SJ7BJ7T6.js';
3
3
  import z from 'zod';
4
4
 
@@ -31,5 +31,5 @@ var multiSigExecutedProposedTransactionSchema = z.object({
31
31
  });
32
32
 
33
33
  export { baseMultiSigDetailsSchema, baseMultiSigTransactionToProposeSchema, multiSigExecutedProposedTransactionSchema, multiSigSignedTransactionToProposeSchema, multiSigTransactionToProposeSchema, offChainMultiSigDetailsSchema, onchainMultiSigDetailsSchema, onchainMultiSigTransactionToProposeSchema };
34
- //# sourceMappingURL=BRMLKDRP.js.map
35
- //# sourceMappingURL=BRMLKDRP.js.map
34
+ //# sourceMappingURL=IHMOQ4KK.js.map
35
+ //# sourceMappingURL=IHMOQ4KK.js.map
@@ -1 +1 @@
1
- {"version":3,"sources":["../src/multiSigTransaction.ts"],"names":["baseMultiSigDetailsSchema","z","object","proposerSenderEntityName","string","multiSigAddress","normalizedHexSchema","baseMultiSigTransactionToProposeSchema","transactionSchema","extend","shape","onchainMultiSigDetailsSchema","onchainMultiSigTransactionToProposeSchema","nonce","number","optional","offChainMultiSigDetailsSchema","multiSigUrl","multiSigApiKey","multiSigTransactionToProposeSchema","multiSigSignedTransactionToProposeSchema","multiSigExecutedProposedTransactionSchema","result","transactionResultSchema"],"mappings":";;;;AAMO,IAAMA,yBAAAA,GAA4BC,EAAEC,MAAAA,CAAO;AAC9CC,EAAAA,wBAAAA,EAA0BF,EAAEG,MAAAA,EAAM;EAClCC,eAAAA,EAAiBC;AACrB,CAAA;AAEO,IAAMC,sCAAAA,GAAyCC,iBAAAA,CAAkBC,MAAAA,CACpET,yBAAAA,CAA0BU,KAAK;AAI5B,IAAMC,4BAAAA,GAA+BX;AAErC,IAAMY,yCAAAA,GAA4CJ,kBAAkBC,MAAAA,CAAO;AAC9E,EAAA,GAAGE,4BAAAA,CAA6BD,KAAAA;EAChCG,KAAAA,EAAOZ,CAAAA,CAAEa,MAAAA,EAAM,CAAGC,QAAAA;AACtB,CAAA;AAEO,IAAMC,6BAAAA,GAAgChB,0BAA0BS,MAAAA,CAAO;;AAE1EQ,EAAAA,WAAAA,EAAahB,EAAEG,MAAAA,EAAM;;EAErBc,cAAAA,EAAgBjB,CAAAA,CAAEG,MAAAA,EAAM,CAAGW,QAAAA;AAC/B,CAAA;AAEO,IAAMI,kCAAAA,GAAqCZ,uCAAuCE,MAAAA,CAAO;AAC5FI,EAAAA,KAAAA,EAAOZ,EAAEa,MAAAA,EAAM;AACf,EAAA,GAAGE,6BAAAA,CAA8BN;AACrC,CAAA;AAEO,IAAMU,wCAAAA,GAA2CnB,EAAEC,MAAAA,CAAO;AAC7D,EAAA,GAAGiB,kCAAAA,CAAmCT;AAC1C,CAAA;AAEO,IAAMW,yCAAAA,GAA4CpB,EAAEC,MAAAA,CAAO;AAC9D,EAAA,GAAGiB,kCAAAA,CAAmCT,KAAAA;EACtCY,MAAAA,EAAQC;AACZ,CAAA","file":"BRMLKDRP.js","sourcesContent":["import z from 'zod';\n\nimport { normalizedHexSchema } from './address';\nimport { transactionResultSchema, transactionSchema } from './transaction';\n\n// Used by both onchain and offchain multisig\nexport const baseMultiSigDetailsSchema = z.object({\n proposerSenderEntityName: z.string(),\n multiSigAddress: normalizedHexSchema,\n});\n\nexport const baseMultiSigTransactionToProposeSchema = transactionSchema.extend(\n baseMultiSigDetailsSchema.shape,\n);\n\n// Details that are used on onchain multisig and exist on sender entity\nexport const onchainMultiSigDetailsSchema = baseMultiSigDetailsSchema;\n\nexport const onchainMultiSigTransactionToProposeSchema = transactionSchema.extend({\n ...onchainMultiSigDetailsSchema.shape,\n nonce: z.number().optional(),\n});\n\nexport const offChainMultiSigDetailsSchema = baseMultiSigDetailsSchema.extend({\n // TODO: support per-chain custom URLs with placeholders\n multiSigUrl: z.string(),\n // TODO: support sourcing API key from environment variable\n multiSigApiKey: z.string().optional(),\n});\n\nexport const multiSigTransactionToProposeSchema = baseMultiSigTransactionToProposeSchema.extend({\n nonce: z.number(),\n ...offChainMultiSigDetailsSchema.shape,\n});\n\nexport const multiSigSignedTransactionToProposeSchema = z.object({\n ...multiSigTransactionToProposeSchema.shape,\n});\n\nexport const multiSigExecutedProposedTransactionSchema = z.object({\n ...multiSigTransactionToProposeSchema.shape,\n result: transactionResultSchema,\n});\n\nexport type BaseMultiSigDetails = z.infer<typeof baseMultiSigDetailsSchema>;\n\nexport type OnchainMultiSigDetails = z.infer<typeof onchainMultiSigDetailsSchema>;\nexport type OnChainMultiSigTransactionToPropose = z.infer<\n typeof onchainMultiSigTransactionToProposeSchema\n>;\nexport type OffchainMultiSigDetails = z.infer<typeof offChainMultiSigDetailsSchema>;\nexport type OnchainMultiSigTransactionToPropose = z.infer<\n typeof onchainMultiSigTransactionToProposeSchema\n>;\nexport type MultiSigTransactionToPropose = z.infer<typeof multiSigTransactionToProposeSchema>;\nexport type MultiSigSignedTransactionToPropose = z.infer<\n typeof multiSigSignedTransactionToProposeSchema\n>;\nexport type MultiSigExecutedProposedTransaction = z.infer<\n typeof multiSigExecutedProposedTransactionSchema\n>;\n"]}
1
+ {"version":3,"sources":["../src/multiSigTransaction.ts"],"names":["baseMultiSigDetailsSchema","z","object","proposerSenderEntityName","string","multiSigAddress","normalizedHexSchema","baseMultiSigTransactionToProposeSchema","transactionSchema","extend","shape","onchainMultiSigDetailsSchema","onchainMultiSigTransactionToProposeSchema","nonce","number","optional","offChainMultiSigDetailsSchema","multiSigUrl","multiSigApiKey","multiSigTransactionToProposeSchema","multiSigSignedTransactionToProposeSchema","multiSigExecutedProposedTransactionSchema","result","transactionResultSchema"],"mappings":";;;;AAMO,IAAMA,yBAAAA,GAA4BC,EAAEC,MAAAA,CAAO;AAC9CC,EAAAA,wBAAAA,EAA0BF,EAAEG,MAAAA,EAAM;EAClCC,eAAAA,EAAiBC;AACrB,CAAA;AAEO,IAAMC,sCAAAA,GAAyCC,iBAAAA,CAAkBC,MAAAA,CACpET,yBAAAA,CAA0BU,KAAK;AAI5B,IAAMC,4BAAAA,GAA+BX;AAErC,IAAMY,yCAAAA,GAA4CJ,kBAAkBC,MAAAA,CAAO;AAC9E,EAAA,GAAGE,4BAAAA,CAA6BD,KAAAA;EAChCG,KAAAA,EAAOZ,CAAAA,CAAEa,MAAAA,EAAM,CAAGC,QAAAA;AACtB,CAAA;AAEO,IAAMC,6BAAAA,GAAgChB,0BAA0BS,MAAAA,CAAO;;AAE1EQ,EAAAA,WAAAA,EAAahB,EAAEG,MAAAA,EAAM;;EAErBc,cAAAA,EAAgBjB,CAAAA,CAAEG,MAAAA,EAAM,CAAGW,QAAAA;AAC/B,CAAA;AAEO,IAAMI,kCAAAA,GAAqCZ,uCAAuCE,MAAAA,CAAO;AAC5FI,EAAAA,KAAAA,EAAOZ,EAAEa,MAAAA,EAAM;AACf,EAAA,GAAGE,6BAAAA,CAA8BN;AACrC,CAAA;AAEO,IAAMU,wCAAAA,GAA2CnB,EAAEC,MAAAA,CAAO;AAC7D,EAAA,GAAGiB,kCAAAA,CAAmCT;AAC1C,CAAA;AAEO,IAAMW,yCAAAA,GAA4CpB,EAAEC,MAAAA,CAAO;AAC9D,EAAA,GAAGiB,kCAAAA,CAAmCT,KAAAA;EACtCY,MAAAA,EAAQC;AACZ,CAAA","file":"IHMOQ4KK.js","sourcesContent":["import z from 'zod';\n\nimport { normalizedHexSchema } from './address';\nimport { transactionResultSchema, transactionSchema } from './transaction';\n\n// Used by both onchain and offchain multisig\nexport const baseMultiSigDetailsSchema = z.object({\n proposerSenderEntityName: z.string(),\n multiSigAddress: normalizedHexSchema,\n});\n\nexport const baseMultiSigTransactionToProposeSchema = transactionSchema.extend(\n baseMultiSigDetailsSchema.shape,\n);\n\n// Details that are used on onchain multisig and exist on sender entity\nexport const onchainMultiSigDetailsSchema = baseMultiSigDetailsSchema;\n\nexport const onchainMultiSigTransactionToProposeSchema = transactionSchema.extend({\n ...onchainMultiSigDetailsSchema.shape,\n nonce: z.number().optional(),\n});\n\nexport const offChainMultiSigDetailsSchema = baseMultiSigDetailsSchema.extend({\n // TODO: support per-chain custom URLs with placeholders\n multiSigUrl: z.string(),\n // TODO: support sourcing API key from environment variable\n multiSigApiKey: z.string().optional(),\n});\n\nexport const multiSigTransactionToProposeSchema = baseMultiSigTransactionToProposeSchema.extend({\n nonce: z.number(),\n ...offChainMultiSigDetailsSchema.shape,\n});\n\nexport const multiSigSignedTransactionToProposeSchema = z.object({\n ...multiSigTransactionToProposeSchema.shape,\n});\n\nexport const multiSigExecutedProposedTransactionSchema = z.object({\n ...multiSigTransactionToProposeSchema.shape,\n result: transactionResultSchema,\n});\n\nexport type BaseMultiSigDetails = z.infer<typeof baseMultiSigDetailsSchema>;\n\nexport type OnchainMultiSigDetails = z.infer<typeof onchainMultiSigDetailsSchema>;\nexport type OnChainMultiSigTransactionToPropose = z.infer<\n typeof onchainMultiSigTransactionToProposeSchema\n>;\nexport type OffchainMultiSigDetails = z.infer<typeof offChainMultiSigDetailsSchema>;\nexport type OnchainMultiSigTransactionToPropose = z.infer<\n typeof onchainMultiSigTransactionToProposeSchema\n>;\nexport type MultiSigTransactionToPropose = z.infer<typeof multiSigTransactionToProposeSchema>;\nexport type MultiSigSignedTransactionToPropose = z.infer<\n typeof multiSigSignedTransactionToProposeSchema\n>;\nexport type MultiSigExecutedProposedTransaction = z.infer<\n typeof multiSigExecutedProposedTransactionSchema\n>;\n"]}
@@ -36,7 +36,17 @@ var normalizeHex = /* @__PURE__ */ __name((address) => {
36
36
  var normalizedHexSort = /* @__PURE__ */ __name((a, b) => BigInt(a.toString()) - BigInt(b.toString()) > 0 ? 1 : -1, "normalizedHexSort");
37
37
  var sortNormalizedHex = /* @__PURE__ */ __name((hexStrings) => hexStrings === null ? hexStrings : hexStrings.sort(normalizedHexSort), "sortNormalizedHex");
38
38
  var NORMALIZED_HEX_ZERO = normalizeHex("0x0");
39
+ var nonZeroAddressSchema = normalizedHexSchema.refine((address) => address !== NORMALIZED_HEX_ZERO, {
40
+ error: "must not be the zero address"
41
+ });
42
+ var bytesHexSchema = hexSchema.overwrite((hex) => `0x${hex.slice(2).toLowerCase()}`).refine((hex) => hex.length % 2 === 0, {
43
+ error: "must be whole bytes"
44
+ });
45
+ var fixedBytesHexSchema = /* @__PURE__ */ __name((bytes) => bytesHexSchema.refine((hex) => hex.length === 2 + 2 * bytes, {
46
+ error: `must be ${bytes} bytes`
47
+ }), "fixedBytesHexSchema");
48
+ var bytes32HexSchema = fixedBytesHexSchema(32);
39
49
 
40
- export { NORMALIZED_HEX_ZERO, hexSchema, isNormalizedHex, normalizeHex, normalizedHexSchema, normalizedHexSort, sortNormalizedHex };
41
- //# sourceMappingURL=ABNPUNNO.js.map
42
- //# sourceMappingURL=ABNPUNNO.js.map
50
+ export { NORMALIZED_HEX_ZERO, bytes32HexSchema, bytesHexSchema, fixedBytesHexSchema, hexSchema, isNormalizedHex, nonZeroAddressSchema, normalizeHex, normalizedHexSchema, normalizedHexSort, sortNormalizedHex };
51
+ //# sourceMappingURL=QWAQITZH.js.map
52
+ //# sourceMappingURL=QWAQITZH.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../src/address.ts"],"names":["hexSchema","z","string","refine","data","startsWith","isHexString","_rawNormalizedHexSchema","length","toLowerCase","hexPart","trim0x","test","normalizedHexSchema","brandSchema","isNormalizedHex","value","safeParse","success","normalizeHex","address","body","replace","trimmed","normalizedHexSort","a","b","BigInt","toString","sortNormalizedHex","hexStrings","sort","NORMALIZED_HEX_ZERO","nonZeroAddressSchema","error","bytesHexSchema","overwrite","hex","slice","fixedBytesHexSchema","bytes","bytes32HexSchema"],"mappings":"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","file":"QWAQITZH.js","sourcesContent":["import z from 'zod';\n\nimport { isHexString, trim0x } from '@layerzerolabs/common-encoding-utils';\nimport type { HexString, NormalizedHexString } from '@layerzerolabs/typescript-utils';\nimport { brandSchema } from '@layerzerolabs/zod-utils';\n\nexport type { HexString, NormalizedHexString };\n\nexport const hexSchema = z\n .string()\n // Require the 0x prefix and valid hex content: prefix-only validation lets malformed hex\n // through, where it silently truncates at decode.\n .refine((data) => data.startsWith('0x') && isHexString(data)) as z.ZodType<HexString>;\n\nconst _rawNormalizedHexSchema = z.string().refine((data) => {\n if (typeof data !== 'string') {\n return false;\n }\n if (!data.startsWith('0x')) {\n return false;\n }\n // Bare `0x` is invalid; the zero value must be written as `0x0`.\n if (data.length <= 2) {\n return false;\n }\n // Leading zeros after `0x` are forbidden except for the single-digit `0x0` case.\n if (data.length >= 4 && data[2] === '0') {\n return false;\n }\n if (data.toLowerCase() !== data) {\n return false;\n }\n const hexPart = trim0x(data);\n if (!/^[0-9a-f]+$/.test(hexPart)) {\n return false;\n }\n return true;\n}) as any as z.ZodType<NormalizedHexString>;\n\nexport const normalizedHexSchema = brandSchema(_rawNormalizedHexSchema, 'NormalizedHexSchema');\n\n/**\n * Returns true if `value` is already normalized hex (does not transform).\n *\n * Not a `value is NormalizedHexString` predicate: that brand is opaque (not a\n * string subtype), so callers narrow with a cast after this check.\n */\nexport const isNormalizedHex = (value: string): boolean =>\n normalizedHexSchema.safeParse(value).success;\n\nexport const normalizeHex = (address: HexString): NormalizedHexString => {\n const body = trim0x(address).replace(/^0+/, '');\n // All-zero input collapses to empty body; keep a single `0` so the result is `0x0`.\n const trimmed = '0x' + (body || '0');\n return trimmed.toLowerCase() as any as NormalizedHexString;\n};\n\nexport const normalizedHexSort = (a: NormalizedHexString, b: NormalizedHexString) =>\n BigInt(a.toString()) - BigInt(b.toString()) > 0 ? 1 : -1;\n\nexport const sortNormalizedHex = <T extends NormalizedHexString[] | null>(hexStrings: T): T =>\n hexStrings === null ? hexStrings : (hexStrings.sort(normalizedHexSort) as T);\n\nexport const NORMALIZED_HEX_ZERO = normalizeHex('0x0');\n\nexport const nonZeroAddressSchema = normalizedHexSchema.refine(\n (address) => address !== NORMALIZED_HEX_ZERO,\n { error: 'must not be the zero address' },\n);\n\nexport const bytesHexSchema = hexSchema\n .overwrite((hex): HexString => `0x${hex.slice(2).toLowerCase()}`)\n .refine((hex) => hex.length % 2 === 0, { error: 'must be whole bytes' });\n\nexport const fixedBytesHexSchema = (bytes: number) =>\n bytesHexSchema.refine((hex) => hex.length === 2 + 2 * bytes, {\n error: `must be ${bytes} bytes`,\n });\n\nexport const bytes32HexSchema = fixedBytesHexSchema(32);\n"]}
@@ -10,6 +10,10 @@ var decimalStringSchema = z.string().refine((data) => {
10
10
  !(data.startsWith("-0") && data.length > 2)
11
11
  );
12
12
  });
13
+ var MAX_UINT256 = 2n ** 256n - 1n;
14
+ var uint256Schema = decimalStringSchema.refine((value) => /^\d+$/.test(value.toString()) && BigInt(value.toString()) <= MAX_UINT256, {
15
+ error: `must be between 0 and ${MAX_UINT256.toString()}`
16
+ });
13
17
  var decimalString = {
14
18
  parse: /* @__PURE__ */ __name((data) => {
15
19
  if (typeof data === "bigint") {
@@ -28,6 +32,6 @@ var decimalString = {
28
32
  }, "toBigInt")
29
33
  };
30
34
 
31
- export { decimalString, decimalStringSchema };
32
- //# sourceMappingURL=SVC6NU65.js.map
33
- //# sourceMappingURL=SVC6NU65.js.map
35
+ export { decimalString, decimalStringSchema, uint256Schema };
36
+ //# sourceMappingURL=WN32OGN3.js.map
37
+ //# sourceMappingURL=WN32OGN3.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../src/bigint.ts"],"names":["decimalStringSchema","z","string","refine","data","match","length","startsWith","MAX_UINT256","uint256Schema","value","test","toString","BigInt","error","decimalString","parse","Error","toBigInt"],"mappings":";;;AAMO,IAAMA,sBAAsBC,CAAAA,CAAEC,MAAAA,EAAM,CAAGC,MAAAA,CAAO,CAACC,IAAAA,KAAAA;AAClD,EAAA;;AAEI,IAAA,OAAOA,IAAAA,KAAS,QAAA;IAEhBA,IAAAA,CAAKC,KAAAA,CAAM,SAAA,CAAA,KAAe,IAAA;AAE1B,IAAA,EAAED,IAAAA,CAAK,CAAA,CAAA,KAAO,GAAA,IAAOA,KAAKE,MAAAA,GAAS,CAAA,CAAA;AAEnC,IAAA,EAAEF,IAAAA,CAAKG,UAAAA,CAAW,IAAA,CAAA,IAASH,KAAKE,MAAAA,GAAS,CAAA;;AAEjD,CAAA;AAEA,IAAME,WAAAA,GAAc,MAAM,IAAA,GAAO,EAAA;AAE1B,IAAMC,gBAAgBT,mBAAAA,CAAoBG,MAAAA,CAC7C,CAACO,KAAAA,KAAU,QAAQC,IAAAA,CAAKD,KAAAA,CAAME,QAAAA,EAAQ,KAAOC,MAAAA,CAAOH,KAAAA,CAAME,QAAAA,EAAQ,KAAOJ,WAAAA,EACzE;EAAEM,KAAAA,EAAO,CAAA,sBAAA,EAAyBN,WAAAA,CAAYI,QAAAA,EAAQ,CAAA;AAAK,CAAA;AAGxD,IAAMG,aAAAA,GAAgB;AACzBC,EAAAA,KAAAA,0BAAQZ,IAAAA,KAAAA;AACJ,IAAA,IAAI,OAAOA,SAAS,QAAA,EAAU;AAC1B,MAAA,OAAOA,KAAKQ,QAAAA,EAAQ;AACxB,IAAA;AACA,IAAA,IAAI,OAAOR,SAAS,QAAA,EAAU;AAC1B,MAAA,IAAIA,IAAAA,CAAKC,KAAAA,CAAM,OAAA,CAAA,KAAa,IAAA,EAAM;AAC9B,QAAA,MAAM,IAAIY,KAAAA,CAAM,CAAA,2CAAA,EAA8Cb,IAAAA,CAAAA,CAAM,CAAA;AACxE,MAAA;AAEA,MAAA,OAAOS,MAAAA,CAAOT,IAAAA,CAAAA,CAAMQ,QAAAA,EAAQ;AAChC,IAAA;AACA,IAAA,MAAM,IAAIK,KAAAA,CAAM,CAAA,cAAA,EAAiBb,IAAAA,CAAAA,CAAM,CAAA;EAC3C,CAAA,EAZO,OAAA,CAAA;AAcPc,EAAAA,QAAAA,0BAAWd,IAAAA,KAAAA;AACP,IAAA,OAAOS,OAAOT,IAAAA,CAAAA;EAClB,CAAA,EAFU,UAAA;AAGd","file":"WN32OGN3.js","sourcesContent":["import z from 'zod';\n\nimport { type DecimalString } from '@layerzerolabs/typescript-utils';\n\nexport type { DecimalString };\n\nexport const decimalStringSchema = z.string().refine((data) => {\n return (\n // must be string\n typeof data === 'string' &&\n // must contain only digits, non-empty, can be negative\n data.match(/^-?\\d+$/) !== null &&\n // must not start with 0 unless it's 0\n !(data[0] === '0' && data.length > 1) &&\n // allow -0, but still can't have multiple leading 0s\n !(data.startsWith('-0') && data.length > 2)\n );\n}) as any as z.ZodType<DecimalString>;\n\nconst MAX_UINT256 = 2n ** 256n - 1n;\n\nexport const uint256Schema = decimalStringSchema.refine(\n (value) => /^\\d+$/.test(value.toString()) && BigInt(value.toString()) <= MAX_UINT256,\n { error: `must be between 0 and ${MAX_UINT256.toString()}` },\n);\n\nexport const decimalString = {\n parse: (data: string | bigint) => {\n if (typeof data === 'bigint') {\n return data.toString() as any as DecimalString;\n }\n if (typeof data === 'string') {\n if (data.match(/^\\d+$/) === null) {\n throw new Error(`decimalString doesn't contain only digits: ${data}`);\n }\n // Normalize it as well to not have many surprises\n return BigInt(data).toString() as any as DecimalString;\n }\n throw new Error(`Invalid data: ${data}`);\n },\n\n toBigInt: (data: DecimalString) => {\n return BigInt(data as any as string);\n },\n};\n"]}
package/dist/address.d.ts CHANGED
@@ -14,4 +14,8 @@ export declare const normalizeHex: (address: HexString) => NormalizedHexString;
14
14
  export declare const normalizedHexSort: (a: NormalizedHexString, b: NormalizedHexString) => -1 | 1;
15
15
  export declare const sortNormalizedHex: <T extends NormalizedHexString[] | null>(hexStrings: T) => T;
16
16
  export declare const NORMALIZED_HEX_ZERO: NormalizedHexString;
17
+ export declare const nonZeroAddressSchema: z.ZodType<NormalizedHexString, unknown, z.core.$ZodTypeInternals<NormalizedHexString, unknown>>;
18
+ export declare const bytesHexSchema: z.ZodType<`0x${string}`, unknown, z.core.$ZodTypeInternals<`0x${string}`, unknown>>;
19
+ export declare const fixedBytesHexSchema: (bytes: number) => z.ZodType<`0x${string}`, unknown, z.core.$ZodTypeInternals<`0x${string}`, unknown>>;
20
+ export declare const bytes32HexSchema: z.ZodType<`0x${string}`, unknown, z.core.$ZodTypeInternals<`0x${string}`, unknown>>;
17
21
  //# sourceMappingURL=address.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"address.d.ts","sourceRoot":"","sources":["../src/address.ts"],"names":[],"mappings":"AAAA,OAAO,CAAC,MAAM,KAAK,CAAC;AAGpB,OAAO,KAAK,EAAE,SAAS,EAAE,mBAAmB,EAAE,MAAM,iCAAiC,CAAC;AAGtF,YAAY,EAAE,SAAS,EAAE,mBAAmB,EAAE,CAAC;AAE/C,eAAO,MAAM,SAAS,EAI+C,CAAC,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC;AA2B1F,eAAO,MAAM,mBAAmB,iGAA8D,CAAC;AAE/F;;;;;GAKG;AACH,eAAO,MAAM,eAAe,UAAW,MAAM,KAAG,OACA,CAAC;AAEjD,eAAO,MAAM,YAAY,YAAa,SAAS,KAAG,mBAKjD,CAAC;AAEF,eAAO,MAAM,iBAAiB,MAAO,mBAAmB,KAAK,mBAAmB,WACpB,CAAC;AAE7D,eAAO,MAAM,iBAAiB,GAAI,CAAC,SAAS,mBAAmB,EAAE,GAAG,IAAI,cAAc,CAAC,KAAG,CACV,CAAC;AAEjF,eAAO,MAAM,mBAAmB,qBAAsB,CAAC"}
1
+ {"version":3,"file":"address.d.ts","sourceRoot":"","sources":["../src/address.ts"],"names":[],"mappings":"AAAA,OAAO,CAAC,MAAM,KAAK,CAAC;AAGpB,OAAO,KAAK,EAAE,SAAS,EAAE,mBAAmB,EAAE,MAAM,iCAAiC,CAAC;AAGtF,YAAY,EAAE,SAAS,EAAE,mBAAmB,EAAE,CAAC;AAE/C,eAAO,MAAM,SAAS,EAI+C,CAAC,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC;AA2B1F,eAAO,MAAM,mBAAmB,iGAA8D,CAAC;AAE/F;;;;;GAKG;AACH,eAAO,MAAM,eAAe,UAAW,MAAM,KAAG,OACA,CAAC;AAEjD,eAAO,MAAM,YAAY,YAAa,SAAS,KAAG,mBAKjD,CAAC;AAEF,eAAO,MAAM,iBAAiB,MAAO,mBAAmB,KAAK,mBAAmB,WACpB,CAAC;AAE7D,eAAO,MAAM,iBAAiB,GAAI,CAAC,SAAS,mBAAmB,EAAE,GAAG,IAAI,cAAc,CAAC,KAAG,CACV,CAAC;AAEjF,eAAO,MAAM,mBAAmB,qBAAsB,CAAC;AAEvD,eAAO,MAAM,oBAAoB,iGAGhC,CAAC;AAEF,eAAO,MAAM,cAAc,qFAEiD,CAAC;AAE7E,eAAO,MAAM,mBAAmB,UAAW,MAAM,wFAG3C,CAAC;AAEP,eAAO,MAAM,gBAAgB,qFAA0B,CAAC"}
package/dist/address.js CHANGED
@@ -1,4 +1,4 @@
1
- export { NORMALIZED_HEX_ZERO, hexSchema, isNormalizedHex, normalizeHex, normalizedHexSchema, normalizedHexSort, sortNormalizedHex } from './ABNPUNNO.js';
1
+ export { NORMALIZED_HEX_ZERO, bytes32HexSchema, bytesHexSchema, fixedBytesHexSchema, hexSchema, isNormalizedHex, nonZeroAddressSchema, normalizeHex, normalizedHexSchema, normalizedHexSort, sortNormalizedHex } from './QWAQITZH.js';
2
2
  import './VUOMXK5T.js';
3
3
  //# sourceMappingURL=address.js.map
4
4
  //# sourceMappingURL=address.js.map
package/dist/bigint.d.ts CHANGED
@@ -2,6 +2,7 @@ import z from 'zod';
2
2
  import { type DecimalString } from '@layerzerolabs/typescript-utils';
3
3
  export type { DecimalString };
4
4
  export declare const decimalStringSchema: z.ZodType<DecimalString>;
5
+ export declare const uint256Schema: z.ZodType<DecimalString, unknown, z.core.$ZodTypeInternals<DecimalString, unknown>>;
5
6
  export declare const decimalString: {
6
7
  parse: (data: string | bigint) => DecimalString;
7
8
  toBigInt: (data: DecimalString) => bigint;
@@ -1 +1 @@
1
- {"version":3,"file":"bigint.d.ts","sourceRoot":"","sources":["../src/bigint.ts"],"names":[],"mappings":"AAAA,OAAO,CAAC,MAAM,KAAK,CAAC;AAEpB,OAAO,EAAE,KAAK,aAAa,EAAE,MAAM,iCAAiC,CAAC;AAErE,YAAY,EAAE,aAAa,EAAE,CAAC;AAE9B,eAAO,MAAM,mBAAmB,EAWnB,CAAC,CAAC,OAAO,CAAC,aAAa,CAAC,CAAC;AAEtC,eAAO,MAAM,aAAa;IACtB,KAAK,SAAS,MAAM,GAAG,MAAM;IAc7B,QAAQ,SAAS,aAAa;CAGjC,CAAC"}
1
+ {"version":3,"file":"bigint.d.ts","sourceRoot":"","sources":["../src/bigint.ts"],"names":[],"mappings":"AAAA,OAAO,CAAC,MAAM,KAAK,CAAC;AAEpB,OAAO,EAAE,KAAK,aAAa,EAAE,MAAM,iCAAiC,CAAC;AAErE,YAAY,EAAE,aAAa,EAAE,CAAC;AAE9B,eAAO,MAAM,mBAAmB,EAWnB,CAAC,CAAC,OAAO,CAAC,aAAa,CAAC,CAAC;AAItC,eAAO,MAAM,aAAa,qFAGzB,CAAC;AAEF,eAAO,MAAM,aAAa;IACtB,KAAK,SAAS,MAAM,GAAG,MAAM;IAc7B,QAAQ,SAAS,aAAa;CAGjC,CAAC"}
package/dist/bigint.js CHANGED
@@ -1,4 +1,4 @@
1
- export { decimalString, decimalStringSchema } from './SVC6NU65.js';
1
+ export { decimalString, decimalStringSchema, uint256Schema } from './WN32OGN3.js';
2
2
  import './VUOMXK5T.js';
3
3
  //# sourceMappingURL=bigint.js.map
4
4
  //# sourceMappingURL=bigint.js.map
package/dist/index.js CHANGED
@@ -1,8 +1,8 @@
1
- export { decimalString, decimalStringSchema } from './SVC6NU65.js';
1
+ export { decimalString, decimalStringSchema, uint256Schema } from './WN32OGN3.js';
2
2
  export { BlockTagSchema } from './XTLTCYHT.js';
3
3
  export { LZFinality, LZFinalitySchema } from './QBJAGTHK.js';
4
- export { baseMultiSigDetailsSchema, baseMultiSigTransactionToProposeSchema, multiSigExecutedProposedTransactionSchema, multiSigSignedTransactionToProposeSchema, multiSigTransactionToProposeSchema, offChainMultiSigDetailsSchema, onchainMultiSigDetailsSchema, onchainMultiSigTransactionToProposeSchema } from './BRMLKDRP.js';
5
- export { NORMALIZED_HEX_ZERO, hexSchema, isNormalizedHex, normalizeHex, normalizedHexSchema, normalizedHexSort, sortNormalizedHex } from './ABNPUNNO.js';
4
+ export { baseMultiSigDetailsSchema, baseMultiSigTransactionToProposeSchema, multiSigExecutedProposedTransactionSchema, multiSigSignedTransactionToProposeSchema, multiSigTransactionToProposeSchema, offChainMultiSigDetailsSchema, onchainMultiSigDetailsSchema, onchainMultiSigTransactionToProposeSchema } from './IHMOQ4KK.js';
5
+ export { NORMALIZED_HEX_ZERO, bytes32HexSchema, bytesHexSchema, fixedBytesHexSchema, hexSchema, isNormalizedHex, nonZeroAddressSchema, normalizeHex, normalizedHexSchema, normalizedHexSort, sortNormalizedHex } from './QWAQITZH.js';
6
6
  export { assignedTransactionSchema, buildTransactionWithResultSchema, minedTransactionSchema, signedTransactionSchema, transactionMetadataTimestamps, transactionResultSchema, transactionSchema, transactionWithResultSchema } from './SJ7BJ7T6.js';
7
7
  import './VUOMXK5T.js';
8
8
  //# sourceMappingURL=index.js.map
@@ -1,5 +1,5 @@
1
- export { baseMultiSigDetailsSchema, baseMultiSigTransactionToProposeSchema, multiSigExecutedProposedTransactionSchema, multiSigSignedTransactionToProposeSchema, multiSigTransactionToProposeSchema, offChainMultiSigDetailsSchema, onchainMultiSigDetailsSchema, onchainMultiSigTransactionToProposeSchema } from './BRMLKDRP.js';
2
- import './ABNPUNNO.js';
1
+ export { baseMultiSigDetailsSchema, baseMultiSigTransactionToProposeSchema, multiSigExecutedProposedTransactionSchema, multiSigSignedTransactionToProposeSchema, multiSigTransactionToProposeSchema, offChainMultiSigDetailsSchema, onchainMultiSigDetailsSchema, onchainMultiSigTransactionToProposeSchema } from './IHMOQ4KK.js';
2
+ import './QWAQITZH.js';
3
3
  import './SJ7BJ7T6.js';
4
4
  import './VUOMXK5T.js';
5
5
  //# sourceMappingURL=multiSigTransaction.js.map
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@layerzerolabs/common-chain-model",
3
- "version": "1.2.102",
3
+ "version": "1.2.104",
4
4
  "private": false,
5
5
  "license": "MIT",
6
6
  "type": "module",
@@ -16,14 +16,14 @@
16
16
  "dist/**/*"
17
17
  ],
18
18
  "dependencies": {
19
- "@layerzerolabs/common-encoding-utils": "1.2.102",
20
- "@layerzerolabs/typescript-utils": "1.2.102",
21
- "@layerzerolabs/zod-utils": "1.2.102",
19
+ "@layerzerolabs/common-encoding-utils": "1.2.104",
20
+ "@layerzerolabs/typescript-utils": "1.2.104",
21
+ "@layerzerolabs/zod-utils": "1.2.104",
22
22
  "zod": "4.3.5"
23
23
  },
24
24
  "devDependencies": {
25
- "@layerzerolabs/tsup-configuration": "1.2.102",
26
- "@layerzerolabs/typescript-configuration": "1.2.102",
25
+ "@layerzerolabs/tsup-configuration": "1.2.104",
26
+ "@layerzerolabs/typescript-configuration": "1.2.104",
27
27
  "tsup": "^8.4.0",
28
28
  "vitest": "^4.1.10"
29
29
  },
@@ -1 +0,0 @@
1
- {"version":3,"sources":["../src/address.ts"],"names":["hexSchema","z","string","refine","data","startsWith","isHexString","_rawNormalizedHexSchema","length","toLowerCase","hexPart","trim0x","test","normalizedHexSchema","brandSchema","isNormalizedHex","value","safeParse","success","normalizeHex","address","body","replace","trimmed","normalizedHexSort","a","b","BigInt","toString","sortNormalizedHex","hexStrings","sort","NORMALIZED_HEX_ZERO"],"mappings":";;;;;AAQO,IAAMA,SAAAA,GAAYC,CAAAA,CACpBC,MAAAA,EAAM,CAGNC,MAAAA,CAAO,CAACC,IAAAA,KAASA,IAAAA,CAAKC,UAAAA,CAAW,IAAA,CAAA,IAASC,WAAAA,CAAYF,IAAAA,CAAAA;AAE3D,IAAMG,0BAA0BN,CAAAA,CAAEC,MAAAA,EAAM,CAAGC,MAAAA,CAAO,CAACC,IAAAA,KAAAA;AAC/C,EAAA,IAAI,OAAOA,SAAS,QAAA,EAAU;AAC1B,IAAA,OAAO,KAAA;AACX,EAAA;AACA,EAAA,IAAI,CAACA,IAAAA,CAAKC,UAAAA,CAAW,IAAA,CAAA,EAAO;AACxB,IAAA,OAAO,KAAA;AACX,EAAA;AAEA,EAAA,IAAID,IAAAA,CAAKI,UAAU,CAAA,EAAG;AAClB,IAAA,OAAO,KAAA;AACX,EAAA;AAEA,EAAA,IAAIJ,KAAKI,MAAAA,IAAU,CAAA,IAAKJ,IAAAA,CAAK,CAAA,MAAO,GAAA,EAAK;AACrC,IAAA,OAAO,KAAA;AACX,EAAA;AACA,EAAA,IAAIA,IAAAA,CAAKK,WAAAA,EAAW,KAAOL,IAAAA,EAAM;AAC7B,IAAA,OAAO,KAAA;AACX,EAAA;AACA,EAAA,MAAMM,OAAAA,GAAUC,OAAOP,IAAAA,CAAAA;AACvB,EAAA,IAAI,CAAC,aAAA,CAAcQ,IAAAA,CAAKF,OAAAA,CAAAA,EAAU;AAC9B,IAAA,OAAO,KAAA;AACX,EAAA;AACA,EAAA,OAAO,IAAA;AACX,CAAA,CAAA;AAEO,IAAMG,mBAAAA,GAAsBC,WAAAA,CAAYP,uBAAAA,EAAyB,qBAAA;AAQjE,IAAMQ,kCAAkB,MAAA,CAAA,CAACC,KAAAA,KAC5BH,oBAAoBI,SAAAA,CAAUD,KAAAA,EAAOE,OAAAA,EADV,iBAAA;AAGxB,IAAMC,YAAAA,2BAAgBC,OAAAA,KAAAA;AACzB,EAAA,MAAMC,OAAOV,MAAAA,CAAOS,OAAAA,CAAAA,CAASE,OAAAA,CAAQ,OAAO,EAAA,CAAA;AAE5C,EAAA,MAAMC,OAAAA,GAAU,QAAQF,IAAAA,IAAQ,GAAA,CAAA;AAChC,EAAA,OAAOE,QAAQd,WAAAA,EAAW;AAC9B,CAAA,EAL4B,cAAA;AAOrB,IAAMe,oCAAoB,MAAA,CAAA,CAACC,CAAAA,EAAwBC,CAAAA,KACtDC,MAAAA,CAAOF,EAAEG,QAAAA,EAAQ,CAAA,GAAMD,MAAAA,CAAOD,EAAEE,QAAAA,EAAQ,CAAA,GAAM,CAAA,GAAI,IAAI,EAAA,EADzB,mBAAA;AAG1B,IAAMC,iBAAAA,2BAA6DC,UAAAA,KACtEA,UAAAA,KAAe,OAAOA,UAAAA,GAAcA,UAAAA,CAAWC,IAAAA,CAAKP,iBAAAA,CAAAA,EADvB,mBAAA;AAG1B,IAAMQ,mBAAAA,GAAsBb,aAAa,KAAA","file":"ABNPUNNO.js","sourcesContent":["import z from 'zod';\n\nimport { isHexString, trim0x } from '@layerzerolabs/common-encoding-utils';\nimport type { HexString, NormalizedHexString } from '@layerzerolabs/typescript-utils';\nimport { brandSchema } from '@layerzerolabs/zod-utils';\n\nexport type { HexString, NormalizedHexString };\n\nexport const hexSchema = z\n .string()\n // Require the 0x prefix and valid hex content: prefix-only validation lets malformed hex\n // through, where it silently truncates at decode.\n .refine((data) => data.startsWith('0x') && isHexString(data)) as z.ZodType<HexString>;\n\nconst _rawNormalizedHexSchema = z.string().refine((data) => {\n if (typeof data !== 'string') {\n return false;\n }\n if (!data.startsWith('0x')) {\n return false;\n }\n // Bare `0x` is invalid; the zero value must be written as `0x0`.\n if (data.length <= 2) {\n return false;\n }\n // Leading zeros after `0x` are forbidden except for the single-digit `0x0` case.\n if (data.length >= 4 && data[2] === '0') {\n return false;\n }\n if (data.toLowerCase() !== data) {\n return false;\n }\n const hexPart = trim0x(data);\n if (!/^[0-9a-f]+$/.test(hexPart)) {\n return false;\n }\n return true;\n}) as any as z.ZodType<NormalizedHexString>;\n\nexport const normalizedHexSchema = brandSchema(_rawNormalizedHexSchema, 'NormalizedHexSchema');\n\n/**\n * Returns true if `value` is already normalized hex (does not transform).\n *\n * Not a `value is NormalizedHexString` predicate: that brand is opaque (not a\n * string subtype), so callers narrow with a cast after this check.\n */\nexport const isNormalizedHex = (value: string): boolean =>\n normalizedHexSchema.safeParse(value).success;\n\nexport const normalizeHex = (address: HexString): NormalizedHexString => {\n const body = trim0x(address).replace(/^0+/, '');\n // All-zero input collapses to empty body; keep a single `0` so the result is `0x0`.\n const trimmed = '0x' + (body || '0');\n return trimmed.toLowerCase() as any as NormalizedHexString;\n};\n\nexport const normalizedHexSort = (a: NormalizedHexString, b: NormalizedHexString) =>\n BigInt(a.toString()) - BigInt(b.toString()) > 0 ? 1 : -1;\n\nexport const sortNormalizedHex = <T extends NormalizedHexString[] | null>(hexStrings: T): T =>\n hexStrings === null ? hexStrings : (hexStrings.sort(normalizedHexSort) as T);\n\nexport const NORMALIZED_HEX_ZERO = normalizeHex('0x0');\n"]}
@@ -1 +0,0 @@
1
- {"version":3,"sources":["../src/bigint.ts"],"names":["decimalStringSchema","z","string","refine","data","match","length","startsWith","decimalString","parse","toString","Error","BigInt","toBigInt"],"mappings":";;;AAMO,IAAMA,sBAAsBC,CAAAA,CAAEC,MAAAA,EAAM,CAAGC,MAAAA,CAAO,CAACC,IAAAA,KAAAA;AAClD,EAAA;;AAEI,IAAA,OAAOA,IAAAA,KAAS,QAAA;IAEhBA,IAAAA,CAAKC,KAAAA,CAAM,SAAA,CAAA,KAAe,IAAA;AAE1B,IAAA,EAAED,IAAAA,CAAK,CAAA,CAAA,KAAO,GAAA,IAAOA,KAAKE,MAAAA,GAAS,CAAA,CAAA;AAEnC,IAAA,EAAEF,IAAAA,CAAKG,UAAAA,CAAW,IAAA,CAAA,IAASH,KAAKE,MAAAA,GAAS,CAAA;;AAEjD,CAAA;AAEO,IAAME,aAAAA,GAAgB;AACzBC,EAAAA,KAAAA,0BAAQL,IAAAA,KAAAA;AACJ,IAAA,IAAI,OAAOA,SAAS,QAAA,EAAU;AAC1B,MAAA,OAAOA,KAAKM,QAAAA,EAAQ;AACxB,IAAA;AACA,IAAA,IAAI,OAAON,SAAS,QAAA,EAAU;AAC1B,MAAA,IAAIA,IAAAA,CAAKC,KAAAA,CAAM,OAAA,CAAA,KAAa,IAAA,EAAM;AAC9B,QAAA,MAAM,IAAIM,KAAAA,CAAM,CAAA,2CAAA,EAA8CP,IAAAA,CAAAA,CAAM,CAAA;AACxE,MAAA;AAEA,MAAA,OAAOQ,MAAAA,CAAOR,IAAAA,CAAAA,CAAMM,QAAAA,EAAQ;AAChC,IAAA;AACA,IAAA,MAAM,IAAIC,KAAAA,CAAM,CAAA,cAAA,EAAiBP,IAAAA,CAAAA,CAAM,CAAA;EAC3C,CAAA,EAZO,OAAA,CAAA;AAcPS,EAAAA,QAAAA,0BAAWT,IAAAA,KAAAA;AACP,IAAA,OAAOQ,OAAOR,IAAAA,CAAAA;EAClB,CAAA,EAFU,UAAA;AAGd","file":"SVC6NU65.js","sourcesContent":["import z from 'zod';\n\nimport { type DecimalString } from '@layerzerolabs/typescript-utils';\n\nexport type { DecimalString };\n\nexport const decimalStringSchema = z.string().refine((data) => {\n return (\n // must be string\n typeof data === 'string' &&\n // must contain only digits, non-empty, can be negative\n data.match(/^-?\\d+$/) !== null &&\n // must not start with 0 unless it's 0\n !(data[0] === '0' && data.length > 1) &&\n // allow -0, but still can't have multiple leading 0s\n !(data.startsWith('-0') && data.length > 2)\n );\n}) as any as z.ZodType<DecimalString>;\n\nexport const decimalString = {\n parse: (data: string | bigint) => {\n if (typeof data === 'bigint') {\n return data.toString() as any as DecimalString;\n }\n if (typeof data === 'string') {\n if (data.match(/^\\d+$/) === null) {\n throw new Error(`decimalString doesn't contain only digits: ${data}`);\n }\n // Normalize it as well to not have many surprises\n return BigInt(data).toString() as any as DecimalString;\n }\n throw new Error(`Invalid data: ${data}`);\n },\n\n toBigInt: (data: DecimalString) => {\n return BigInt(data as any as string);\n },\n};\n"]}