@layerzerolabs/gated-transaction 0.2.22 → 0.2.23

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.
@@ -11,29 +11,29 @@
11
11
  CLI Cleaning output folder
12
12
  CJS Build start
13
13
  ESM Build start
14
- CJS dist/gatedTx.cjs 818.00 B
15
14
  CJS dist/index.cjs 2.46 KB
16
- CJS dist/schemata.cjs 1.78 KB
15
+ CJS dist/gatedTx.cjs 818.00 B
16
+ CJS dist/ZE3NLIHW.cjs 1.47 KB
17
+ CJS dist/NQO4S4JF.cjs 5.37 KB
17
18
  CJS dist/YJF4D23A.cjs 245.00 B
18
- CJS dist/BPVWQ6EE.cjs 5.09 KB
19
- CJS dist/SXSNYFO6.cjs 1.47 KB
20
- CJS dist/gatedTx.cjs.map 72.00 B
19
+ CJS dist/schemata.cjs 1.78 KB
21
20
  CJS dist/index.cjs.map 70.00 B
22
- CJS dist/schemata.cjs.map 73.00 B
21
+ CJS dist/gatedTx.cjs.map 72.00 B
22
+ CJS dist/ZE3NLIHW.cjs.map 5.74 KB
23
+ CJS dist/NQO4S4JF.cjs.map 19.61 KB
23
24
  CJS dist/YJF4D23A.cjs.map 73.00 B
24
- CJS dist/BPVWQ6EE.cjs.map 18.47 KB
25
- CJS dist/SXSNYFO6.cjs.map 5.29 KB
26
- CJS ⚡️ Build success in 217ms
27
- ESM dist/index.js 597.00 B
25
+ CJS dist/schemata.cjs.map 73.00 B
26
+ CJS ⚡️ Build success in 182ms
28
27
  ESM dist/gatedTx.js 250.00 B
28
+ ESM dist/index.js 597.00 B
29
29
  ESM dist/schemata.js 448.00 B
30
- ESM dist/Z6WLE6GM.js 1.25 KB
31
- ESM dist/RHEZ2PRK.js 3.86 KB
32
30
  ESM dist/VUOMXK5T.js 222.00 B
33
- ESM dist/index.js.map 69.00 B
31
+ ESM dist/XZJ4DGII.js 4.11 KB
32
+ ESM dist/L4J4JEOC.js 1.25 KB
34
33
  ESM dist/gatedTx.js.map 71.00 B
34
+ ESM dist/index.js.map 69.00 B
35
35
  ESM dist/schemata.js.map 72.00 B
36
- ESM dist/RHEZ2PRK.js.map 18.39 KB
37
36
  ESM dist/VUOMXK5T.js.map 72.00 B
38
- ESM dist/Z6WLE6GM.js.map 5.29 KB
39
- ESM ⚡️ Build success in 218ms
37
+ ESM dist/XZJ4DGII.js.map 19.54 KB
38
+ ESM dist/L4J4JEOC.js.map 5.74 KB
39
+ ESM ⚡️ Build success in 183ms
@@ -2,7 +2,7 @@
2
2
  > @layerzerolabs/gated-transaction@0.0.0 lint /home/runner/work/monorepo-internal/monorepo-internal/packages/gated-transaction
3
3
  > eslint . --max-warnings 0 || (eslint . --fix --max-warnings 0 && false)
4
4
 
5
- (node:48435) [MODULE_TYPELESS_PACKAGE_JSON] Warning: Module type of file:///home/runner/work/monorepo-internal/monorepo-internal/eslint.config.js?mtime=1769560295397 is not specified and it doesn't parse as CommonJS.
5
+ (node:50361) [MODULE_TYPELESS_PACKAGE_JSON] Warning: Module type of file:///home/runner/work/monorepo-internal/monorepo-internal/eslint.config.js?mtime=1770831712321 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)
@@ -25,5 +25,5 @@ var getBundleIdForGatedTransaction = /* @__PURE__ */ __name((gtx) => {
25
25
  }, "getBundleIdForGatedTransaction");
26
26
 
27
27
  export { constructGatedTransaction, constructGatedTransactionFromPointer, getBundleIdForGatedTransaction, getIdForGatedTransaction };
28
- //# sourceMappingURL=Z6WLE6GM.js.map
29
- //# sourceMappingURL=Z6WLE6GM.js.map
28
+ //# sourceMappingURL=L4J4JEOC.js.map
29
+ //# sourceMappingURL=L4J4JEOC.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../src/gatedTx.ts"],"names":["constructGatedTransaction","gtx","dependencies","transactionType","constructGatedTransactionFromPointer","getIdForGatedTransaction","serializedUniqueIdKeys","uniqueIdKeys","Object","entries","map","k","v","join","name","chainName","getBundleIdForGatedTransaction","bundleName"],"mappings":";;;AAiBO,IAAMA,yBAAAA,2BAKXC,GAAAA,KAAAA;AAyBE,EAAA,MAAMC,YAAAA,GAAeD,GAAAA,CAAIC,YAAAA,IAAiB,EAAA;AAC1C,EAAA,OAAO;IAAE,GAAGD,GAAAA;IAAKE,eAAAA,EAAiB,SAAA;AAAWD,IAAAA;AAAa,GAAA;AAC9D,CAAA,EAhCyC,2BAAA;AAgDlC,IAAME,oCAAAA,2BAKXH,GAAAA,KAAAA;AA4BE,EAAA,OAAO;IACH,GAAGA,GAAAA;IACHE,eAAAA,EAAiB;AACrB,GAAA;AACJ,CAAA,EArCoD,sCAAA;AAuC7C,IAAME,wBAAAA,2BAA4BJ,GAAAA,KAAAA;AACrC,EAAA,MAAMK,sBAAAA,GAAyBL,IAAIM,YAAAA,GAC7BC,MAAAA,CAAOC,QAAQR,GAAAA,CAAIM,YAAY,CAAA,CAC1BG,GAAAA,CAAI,CAAC,CAACC,GAAGC,CAAAA,CAAAA,KAAO,GAAGD,CAAAA,CAAAA,CAAAA,EAAKC,CAAAA,CAAAA,CAAG,CAAA,CAC3BC,IAAAA,CAAK,GAAA,CAAA,GACV,EAAA;AAEN,EAAA,OAAO,GAAGZ,GAAAA,CAAIa,IAAI,IAAIb,GAAAA,CAAIc,SAAS,IAAIT,sBAAAA,CAAAA,CAAAA;AAC3C,CAAA,EARwC,0BAAA;AAUjC,IAAMU,8BAAAA,2BACTf,GAAAA,KAAAA;AAEA,EAAA,MAAMK,sBAAAA,GAAyBL,IAAIM,YAAAA,GAC7BC,MAAAA,CAAOC,QAAQR,GAAAA,CAAIM,YAAY,CAAA,CAC1BG,GAAAA,CAAI,CAAC,CAACC,GAAGC,CAAAA,CAAAA,KAAO,GAAGD,CAAAA,CAAAA,CAAAA,EAAKC,CAAAA,CAAAA,CAAG,CAAA,CAC3BC,IAAAA,CAAK,GAAA,CAAA,GACV,EAAA;AAEN,EAAA,OAAO,GAAGZ,GAAAA,CAAIgB,UAAU,IAAIhB,GAAAA,CAAIc,SAAS,IAAIT,sBAAAA,CAAAA,CAAAA;AACjD,CAAA,EAV8C,gCAAA","file":"L4J4JEOC.js","sourcesContent":["import type { HexString, Transaction } from '@layerzerolabs/common-chain-model';\nimport type { FunctionPointer } from '@layerzerolabs/function-pointer';\nimport type { FunctionPointerWithArgs } from '@layerzerolabs/zod-utils';\n\nimport type {\n BaseGatedTransaction,\n GatedTransaction,\n GatedTransactionBundleId,\n GatedTransactionDependencies,\n GatedTransactionId,\n OnChainDataComparison,\n ResolvedGatedTransaction,\n} from './schemata';\n\n/**\n * Builds a {@link GatedTransaction}\n */\nexport const constructGatedTransaction = <\n const Name extends string,\n Tx extends Transaction,\n Method extends (...args: any[]) => any,\n _Dependencies extends GatedTransactionDependencies,\n>(gtx: {\n name: Name;\n description?: string;\n chainName: string;\n bundleName?: string;\n metadata?: {\n deployInfo?: {\n saveArtifact: boolean;\n contractName: string;\n retryable?: boolean;\n abiEncodedConstructorArguments?: HexString;\n // TODO: Should be FunctionPointerWithArgs<VerificationArtifact> (circular dependency)\n createVerificationInfoPayloadPointerWithArgs?: FunctionPointerWithArgs<any>;\n };\n };\n check: {\n functionPointer: FunctionPointer<Method>;\n params: Parameters<Method>;\n expectedResult: OnChainDataComparison<Awaited<ReturnType<Method>>>;\n };\n uniqueIdKeys?: Record<string, string | number | boolean>;\n cacheable?: boolean;\n dependencies?: _Dependencies;\n transaction: Tx;\n}): GatedTransaction<Name, Tx, Method, any, _Dependencies> => {\n const dependencies = gtx.dependencies ?? ([] as any);\n return { ...gtx, transactionType: 'literal', dependencies };\n};\n\ntype BuildDeps<Params extends ResolvedGatedTransaction[]> = Params extends []\n ? []\n : Params extends readonly [\n ResolvedGatedTransaction<infer Gtx>,\n ...infer Rest extends ResolvedGatedTransaction[],\n ]\n ? [Gtx, ...BuildDeps<[...Rest]>]\n : Params extends Array<ResolvedGatedTransaction<infer Gtx>>\n ? Array<Gtx>\n : never;\n\n/**\n * Builds a {@link GatedTransaction} from a pointer\n */\nexport const constructGatedTransactionFromPointer = <\n const Name extends string,\n TxType extends Transaction,\n Method extends (...args: any[]) => any,\n DepMethod extends (txs: any, ...args: any[]) => Promise<TxType>,\n>(gtx: {\n name: Name;\n description?: string;\n chainName: string;\n bundleName?: string;\n metadata?: {\n deployInfo?: {\n saveArtifact: boolean;\n contractName: string;\n abiEncodedConstructorArguments?: HexString;\n retryable?: boolean;\n // TODO: Should be FunctionPointerWithArgs<VerificationArtifact> (circular dependency)\n createVerificationInfoPayloadPointerWithArgs?: FunctionPointerWithArgs<any>;\n };\n };\n check: {\n functionPointer: FunctionPointer<Method>;\n params: Parameters<Method>;\n expectedResult: OnChainDataComparison<Awaited<ReturnType<Method>>>;\n };\n uniqueIdKeys?: Record<string, string | number | boolean>;\n cacheable?: boolean;\n dependencies: BuildDeps<Parameters<DepMethod>[0]>;\n getTransaction: {\n functionPointer: FunctionPointer<DepMethod>;\n params: Parameters<DepMethod> extends [any, ...infer Tail] ? Tail : [];\n };\n}): GatedTransaction<Name, TxType, Method, DepMethod, BuildDeps<Parameters<DepMethod>[0]>> => {\n return {\n ...gtx,\n transactionType: 'functional',\n };\n};\n\nexport const getIdForGatedTransaction = (gtx: BaseGatedTransaction): GatedTransactionId => {\n const serializedUniqueIdKeys = gtx.uniqueIdKeys\n ? Object.entries(gtx.uniqueIdKeys)\n .map(([k, v]) => `${k}:${v}`)\n .join('-')\n : '';\n\n return `${gtx.name}-${gtx.chainName}-${serializedUniqueIdKeys}`;\n};\n\nexport const getBundleIdForGatedTransaction = (\n gtx: BaseGatedTransaction,\n): GatedTransactionBundleId => {\n const serializedUniqueIdKeys = gtx.uniqueIdKeys\n ? Object.entries(gtx.uniqueIdKeys)\n .map(([k, v]) => `${k}:${v}`)\n .join('-')\n : '';\n\n return `${gtx.bundleName}-${gtx.chainName}-${serializedUniqueIdKeys}`;\n};\n"]}
@@ -9,30 +9,36 @@ function _interopDefault (e) { return e && e.__esModule ? e : { default: e }; }
9
9
 
10
10
  var z__default = /*#__PURE__*/_interopDefault(z);
11
11
 
12
- var gatedTransactionResultSchema = /* @__PURE__ */ YJF4D23A_cjs.__name((txWithResultSchema, onchainDataSchema) => z__default.default.union([
13
- z__default.default.object({
14
- status: z__default.default.literal("no_op")
15
- }),
16
- z__default.default.object({
17
- status: z__default.default.literal("success"),
18
- submittedTransaction: txWithResultSchema
19
- }),
20
- z__default.default.object({
21
- status: z__default.default.literal("transaction_failed"),
22
- transactionError: z__default.default.any()
23
- }),
24
- z__default.default.object({
25
- status: z__default.default.literal("final_check_failed"),
26
- submittedTransaction: txWithResultSchema,
27
- finalOnChainState: onchainDataSchema
28
- }),
29
- z__default.default.object({
30
- status: z__default.default.literal("dependency_failed")
31
- }),
32
- z__default.default.object({
33
- status: z__default.default.literal("denied")
34
- })
35
- ]), "gatedTransactionResultSchema");
12
+ var gatedTransactionResultSchema = /* @__PURE__ */ YJF4D23A_cjs.__name((txWithResultSchema, onchainDataSchema) => (
13
+ // FIXME use this as source of truth for GatedTransactionResult type
14
+ z__default.default.union([
15
+ z__default.default.object({
16
+ status: z__default.default.literal("no_op")
17
+ }),
18
+ z__default.default.object({
19
+ status: z__default.default.literal("success"),
20
+ submittedTransaction: txWithResultSchema
21
+ }),
22
+ z__default.default.object({
23
+ status: z__default.default.literal("transaction_failed"),
24
+ transactionError: z__default.default.any()
25
+ }),
26
+ z__default.default.object({
27
+ status: z__default.default.literal("final_check_failed"),
28
+ submittedTransaction: txWithResultSchema,
29
+ finalOnChainState: onchainDataSchema
30
+ }),
31
+ z__default.default.object({
32
+ status: z__default.default.literal("dependency_failed")
33
+ }),
34
+ z__default.default.object({
35
+ status: z__default.default.literal("denied")
36
+ }),
37
+ z__default.default.object({
38
+ status: z__default.default.literal("deferred_success")
39
+ })
40
+ ])
41
+ ), "gatedTransactionResultSchema");
36
42
  var GatedTransactionStatus = /* @__PURE__ */ (function(GatedTransactionStatus2) {
37
43
  GatedTransactionStatus2["NO_OP"] = "no_op";
38
44
  GatedTransactionStatus2["SUCCESS"] = "success";
@@ -40,23 +46,9 @@ var GatedTransactionStatus = /* @__PURE__ */ (function(GatedTransactionStatus2)
40
46
  GatedTransactionStatus2["FINAL_CHECK_FAILED"] = "final_check_failed";
41
47
  GatedTransactionStatus2["DEPENDENCY_FAILED"] = "dependency_failed";
42
48
  GatedTransactionStatus2["DENIED"] = "denied";
49
+ GatedTransactionStatus2["DEFERRED_SUCCESS"] = "deferred_success";
43
50
  return GatedTransactionStatus2;
44
51
  })({});
45
- var gatedTransactionCacheSchema = z__default.default.object({
46
- getCachedTxCheckData: zodUtils.functionSchema({
47
- input: z__default.default.tuple([
48
- z__default.default.any()
49
- ]),
50
- output: z__default.default.promise(z__default.default.any())
51
- }),
52
- cacheSuccessfulTxCheckData: zodUtils.functionSchema({
53
- input: z__default.default.tuple([
54
- z__default.default.any(),
55
- z__default.default.any()
56
- ]),
57
- output: z__default.default.promise(z__default.default.any())
58
- })
59
- });
60
52
  var gatedTransactionIsResolvedGatedTransaction = /* @__PURE__ */ YJF4D23A_cjs.__name((gtx) => !!gtx.result, "gatedTransactionIsResolvedGatedTransaction");
61
53
  var gatedTransactionSchema = /* @__PURE__ */ YJF4D23A_cjs.__name((_) => zodUtils.customSchema().meta({
62
54
  title: "Gated Transaction",
@@ -105,6 +97,21 @@ var gatedTxCheckResultSchema = z__default.default.object({
105
97
  expectationMet: z__default.default.boolean(),
106
98
  data: z__default.default.any()
107
99
  });
100
+ var gatedTransactionCacheSchema = z__default.default.object({
101
+ getCachedTxCheckData: zodUtils.functionSchema({
102
+ input: z__default.default.tuple([
103
+ z__default.default.any()
104
+ ]),
105
+ output: z__default.default.promise(z__default.default.any())
106
+ }),
107
+ cacheSuccessfulTxCheckData: zodUtils.functionSchema({
108
+ input: z__default.default.tuple([
109
+ z__default.default.any(),
110
+ z__default.default.any()
111
+ ]),
112
+ output: z__default.default.promise(z__default.default.any())
113
+ })
114
+ });
108
115
 
109
116
  exports.GatedTransactionStatus = GatedTransactionStatus;
110
117
  exports.createGatedTxCheckActivitySchema = createGatedTxCheckActivitySchema;
@@ -116,5 +123,5 @@ exports.gatedTransactionResultSchema = gatedTransactionResultSchema;
116
123
  exports.gatedTransactionSchema = gatedTransactionSchema;
117
124
  exports.gatedTxCheckResultSchema = gatedTxCheckResultSchema;
118
125
  exports.resolvedGatedTransactionSchema = resolvedGatedTransactionSchema;
119
- //# sourceMappingURL=BPVWQ6EE.cjs.map
120
- //# sourceMappingURL=BPVWQ6EE.cjs.map
126
+ //# sourceMappingURL=NQO4S4JF.cjs.map
127
+ //# sourceMappingURL=NQO4S4JF.cjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../src/schemata.ts"],"names":["gatedTransactionResultSchema","txWithResultSchema","onchainDataSchema","z","union","object","status","literal","submittedTransaction","transactionError","any","finalOnChainState","GatedTransactionStatus","gatedTransactionIsResolvedGatedTransaction","__name","gtx","result","gatedTransactionSchema","_","customSchema","meta","title","description","resolvedGatedTransactionSchema","createTxArrayDependentActivitySchema","transactionSchema","extraArgs","functionSchema","input","tuple","array","def","items","output","promise","createTxTupleDependentActivitySchema","txNumber","txs","Array","from","length","createGatedTxCheckActivitySchema","transactionWithResultSchema","_transactionWithResultSchema","optional","gatedTxCheckResultSchema","expectationMet","boolean","data","gatedTransactionCacheSchema","getCachedTxCheckData","cacheSuccessfulTxCheckData"],"mappings":"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","file":"NQO4S4JF.cjs","sourcesContent":["import z from 'zod';\n\nimport type { transactionSchema as _transactionSchema } from '@layerzerolabs/common-chain-model';\nimport type { HexString } from '@layerzerolabs/common-chain-model';\nimport {\n type Transaction,\n type TransactionWithResultFor,\n transactionWithResultSchema as _transactionWithResultSchema,\n} from '@layerzerolabs/common-chain-model';\nimport type { FunctionPointer } from '@layerzerolabs/function-pointer';\nimport type { BrandedError, BuildTuple, IsAny, Or } from '@layerzerolabs/typescript-utils';\nimport type { FunctionPointerWithArgs, InferredArray } from '@layerzerolabs/zod-utils';\nimport { customSchema, functionSchema } from '@layerzerolabs/zod-utils';\n\nexport type OnChainDataComparisonOperator<OnChainDataType> =\n Or<[OnChainDataType extends number ? true : false, IsAny<OnChainDataType>]> extends true\n ? '<' | '<=' | '=' | '!=' | '>' | '>='\n : OnChainDataType extends string | object | boolean\n ? '=' | '!='\n : BrandedError<'Unsupported comparison type'>;\n\nexport type OnChainDataComparison<OnChainDataType extends string | number | boolean | object> = {\n operator: OnChainDataComparisonOperator<OnChainDataType>;\n comparisonValue: OnChainDataType;\n};\n\nexport type GatedTransactionCheck<\n Method extends (...args: any[]) => Promise<any> = (...args: any[]) => Promise<unknown>,\n> = {\n functionPointer: FunctionPointer<Method>;\n params: Parameters<Method>;\n expectedResult: OnChainDataComparison<Awaited<ReturnType<Method>>>;\n};\n\n// Schema for gated transaction results\nexport const gatedTransactionResultSchema = <\n TxWithResultSchema extends typeof _transactionWithResultSchema,\n OnchainDataSchema extends z.ZodType,\n>(\n txWithResultSchema: TxWithResultSchema,\n onchainDataSchema: OnchainDataSchema,\n) =>\n // FIXME use this as source of truth for GatedTransactionResult type\n z.union([\n z.object({\n status: z.literal(GatedTransactionStatus.NO_OP),\n }),\n z.object({\n status: z.literal(GatedTransactionStatus.SUCCESS),\n submittedTransaction: txWithResultSchema,\n }),\n z.object({\n status: z.literal(GatedTransactionStatus.TRANSACTION_FAILED),\n transactionError: z.any(),\n }),\n z.object({\n status: z.literal(GatedTransactionStatus.FINAL_CHECK_FAILED),\n submittedTransaction: txWithResultSchema,\n finalOnChainState: onchainDataSchema,\n }),\n z.object({\n status: z.literal(GatedTransactionStatus.DEPENDENCY_FAILED),\n }),\n z.object({\n status: z.literal(GatedTransactionStatus.DENIED),\n }),\n z.object({\n status: z.literal(GatedTransactionStatus.DEFERRED_SUCCESS),\n }),\n ]);\n\nexport type InferOnChainDataTypeFromCheck<Check> = Check extends (...args: any[]) => infer Ret\n ? Awaited<Ret>\n : unknown;\nexport type InferOnChainDataTypeFromGatedTransaction<GatedTx extends GatedTransaction> =\n InferOnChainDataTypeFromCheck<GatedTx['check']>;\n\nexport type GatedTransactionDependencies = GatedTransaction[];\nexport type BaseGatedTransaction<\n Name extends string = string,\n CheckMethod extends (...args: any[]) => any = (...args: any[]) => any,\n _Dependencies extends GatedTransactionDependencies = GatedTransactionDependencies,\n> = {\n name: Name;\n description?: string;\n bundleName?: string;\n metadata?: {\n deployInfo?: {\n saveArtifact: boolean;\n contractName: string;\n retryable?: boolean;\n abiEncodedConstructorArguments?: HexString;\n // TODO: Should be FunctionPointerWithArgs<VerificationArtifact> (circular dependency)\n createVerificationInfoPayloadPointerWithArgs?: FunctionPointerWithArgs<any>;\n };\n };\n chainName: string;\n check: GatedTransactionCheck<CheckMethod>;\n dependencies: _Dependencies;\n cacheable?: boolean;\n uniqueIdKeys?: Record<string, string | number | boolean>;\n};\n\nexport type LiteralGatedTransaction<\n Name extends string = string,\n TxType extends Transaction = Transaction,\n CheckMethod extends (...args: any[]) => any = (...args: any[]) => any,\n _Dependencies extends GatedTransactionDependencies = GatedTransactionDependencies,\n> = BaseGatedTransaction<Name, CheckMethod, _Dependencies> & {\n transactionType: 'literal';\n transaction: TxType;\n};\n\nexport type FunctionalGatedTransaction<\n Name extends string = string,\n TxType extends Transaction = Transaction,\n CheckMethod extends (...args: any[]) => any = (...args: any[]) => any,\n DepMethod extends (txs: any, ...args: any[]) => Promise<TxType> = (\n txs: any,\n ...args: any[]\n ) => Promise<any>,\n _Dependencies extends GatedTransactionDependencies = GatedTransactionDependencies,\n> = BaseGatedTransaction<Name, CheckMethod, _Dependencies> & {\n transactionType: 'functional';\n getTransaction: {\n functionPointer: FunctionPointer<DepMethod>;\n params: Parameters<DepMethod> extends [any, ...infer Tail] ? Tail : [];\n };\n};\n\nexport type GatedTransaction<\n Name extends string = string,\n TxType extends Transaction = Transaction,\n CheckMethod extends (...args: any[]) => any = (...args: any[]) => any,\n DepMethod extends (txs: any, ...args: any[]) => Promise<TxType> = (\n txs: any,\n ...args: any[]\n ) => Promise<any>,\n _Dependencies extends GatedTransactionDependencies = GatedTransactionDependencies,\n> =\n | LiteralGatedTransaction<Name, TxType, CheckMethod, _Dependencies>\n | FunctionalGatedTransaction<Name, TxType, CheckMethod, DepMethod, _Dependencies>;\n\nexport type BaseGatedTransactionFor<GatedTx extends GatedTransaction> =\n GatedTx extends GatedTransaction<infer Name, any, infer CheckMethod, any, infer _Dependencies>\n ? BaseGatedTransaction<Name, CheckMethod, _Dependencies>\n : never;\n\nexport enum GatedTransactionStatus {\n // precheck passed, no need to send the tx\n NO_OP = 'no_op',\n // precheck failed, tx was sent, postcheck passed\n SUCCESS = 'success',\n // precheck failed, tx was sent but sender returned an error\n TRANSACTION_FAILED = 'transaction_failed',\n // precheck failed, tx was sent, postcheck failed\n FINAL_CHECK_FAILED = 'final_check_failed',\n // the tx couldn't be resolved because one of its dependencies resolved to a failed state\n DEPENDENCY_FAILED = 'dependency_failed',\n // approval to send the tx was explictly denied\n DENIED = 'denied',\n // precheck failed, tx was sent but indeterminate, deferred execution passed on a recheck\n DEFERRED_SUCCESS = 'deferred_success',\n}\n\ntype NoOpGatedTransaction = {\n status: GatedTransactionStatus.NO_OP;\n};\n\ntype SuccessfulGatedTransaction<TxType extends Transaction> = {\n status: GatedTransactionStatus.SUCCESS;\n submittedTransaction: TransactionWithResultFor<TxType>;\n};\n\ntype TxFailedGatedTransaction = {\n status: GatedTransactionStatus.TRANSACTION_FAILED;\n transactionError: any;\n};\n\ntype CheckFailedGatedTransaction<GatedTx extends GatedTransaction, TxType extends Transaction> = {\n status: GatedTransactionStatus.FINAL_CHECK_FAILED;\n submittedTransaction: TransactionWithResultFor<TxType>;\n finalOnChainState: InferOnChainDataTypeFromGatedTransaction<GatedTx>;\n};\n\ntype DependencyFailedGatedTransaction = {\n status: GatedTransactionStatus.DEPENDENCY_FAILED;\n};\n\ntype DeniedGatedTransaction = {\n status: GatedTransactionStatus.DENIED;\n};\n\ntype DeferredSuccessfulGatedTransaction = {\n status: GatedTransactionStatus.DEFERRED_SUCCESS;\n};\n\nexport type GatedTransactionResult<\n GatedTx extends GatedTransaction = GatedTransaction,\n TxType extends Transaction = Transaction,\n> =\n | NoOpGatedTransaction\n | SuccessfulGatedTransaction<TxType>\n | TxFailedGatedTransaction\n | CheckFailedGatedTransaction<GatedTx, TxType>\n | DependencyFailedGatedTransaction\n | DeniedGatedTransaction\n | DeferredSuccessfulGatedTransaction;\n\nexport type ResolvedGatedTransaction<\n GatedTx extends GatedTransaction = GatedTransaction,\n TxType extends Transaction = Transaction,\n> = BaseGatedTransactionFor<GatedTx> & {\n result: GatedTransactionResult<GatedTx, TxType>;\n};\n\nexport const gatedTransactionIsResolvedGatedTransaction = (\n gtx: GatedTransaction | ResolvedGatedTransaction,\n): gtx is ResolvedGatedTransaction => !!(gtx as ResolvedGatedTransaction).result;\n\nexport const gatedTransactionSchema = <\n Name extends z.ZodString | z.ZodLiteral<string> = z.ZodString,\n TransactionSchema extends typeof _transactionSchema = typeof _transactionSchema,\n>(_?: {\n name?: Name;\n transactionSchema?: TransactionSchema;\n}) =>\n customSchema<GatedTransaction<z.infer<Name>, z.infer<TransactionSchema>>>().meta({\n title: 'Gated Transaction',\n description: 'A schema for a gated transaction',\n });\n\nexport const resolvedGatedTransactionSchema = <\n Name extends z.ZodString | z.ZodLiteral<string> = z.ZodString,\n TransactionSchema extends typeof _transactionSchema = typeof _transactionSchema,\n>(_?: {\n name?: Name;\n transactionSchema?: TransactionSchema;\n}) =>\n customSchema<\n ResolvedGatedTransaction<\n GatedTransaction<z.infer<Name>, z.infer<TransactionSchema>>,\n z.infer<TransactionSchema>\n >\n >().meta({\n title: 'Resolved Gated Transaction',\n description: 'A schema for a resolved gated transaction',\n });\n\n/**\n * Builds a schema for an activity that builds a transaction based on the results of other transactions\n * @param transactionSchema The schema for the transaction to be built\n * @param transactionWithResultSchema The schema for the results of the transactions you're building off of\n * @param txNumber The number of transactions you're building off of\n * @param extraArgs Additional arguments that must be passed to the function after the txes\n * @returns A schema for the activity that builds the transaction\n */\nexport const createTxArrayDependentActivitySchema = <\n TransactionSchema extends typeof _transactionSchema = typeof _transactionSchema,\n ExtraArgs extends z.ZodTuple = z.ZodTuple<[]>,\n>(\n transactionSchema: TransactionSchema,\n extraArgs?: ExtraArgs,\n) => {\n return functionSchema({\n input: z.tuple([\n z.array(\n resolvedGatedTransactionSchema({\n transactionSchema,\n }),\n ),\n ...(extraArgs?.def?.items ?? []),\n ]),\n output: z.promise(transactionSchema),\n }) as unknown as z.ZodType<\n [] extends z.infer<ExtraArgs>\n ? (\n txs: ResolvedGatedTransaction<\n GatedTransaction<string, z.infer<TransactionSchema>>\n >[],\n ) => Promise<z.infer<TransactionSchema>>\n : (\n txs: ResolvedGatedTransaction<\n GatedTransaction<string, z.infer<TransactionSchema>>\n >[],\n ...extraArgs: z.infer<ExtraArgs>\n ) => Promise<z.infer<TransactionSchema>>\n >;\n};\n/**\n * Builds a schema for an activity that builds a transaction based on the results of other transactions\n * @param transactionSchema The schema for the transaction to be built\n * @param transactionWithResultSchema The schema for the results of the transactions you're building off of\n * @param txNumber The number of transactions you're building off of\n * @param extraArgs Additional arguments that must be passed to the function after the txes\n * @returns A schema for the activity that builds the transaction\n */\nexport const createTxTupleDependentActivitySchema = <\n TransactionSchema extends typeof _transactionSchema = typeof _transactionSchema,\n const TxNumber extends number = 1,\n ExtraArgs extends z.ZodTuple = z.ZodTuple<[]>,\n>(\n transactionSchema: TransactionSchema,\n txNumber: TxNumber,\n extraArgs?: ExtraArgs,\n) => {\n const txs = Array.from({ length: txNumber }, () =>\n resolvedGatedTransactionSchema({\n transactionSchema: transactionSchema,\n }),\n );\n\n return functionSchema({\n input: z.tuple([z.tuple(txs as any), ...(extraArgs?.def?.items ?? [])]),\n output: z.promise(transactionSchema),\n }) as unknown as z.ZodType<\n [] extends z.infer<ExtraArgs>\n ? (\n txs: BuildTuple<\n ResolvedGatedTransaction<\n GatedTransaction<string, z.infer<TransactionSchema>>\n >,\n TxNumber\n >,\n ) => Promise<z.infer<TransactionSchema>>\n : (\n txs: BuildTuple<\n ResolvedGatedTransaction<\n GatedTransaction<string, z.infer<TransactionSchema>>\n >,\n TxNumber\n >,\n ...extraArgs: z.infer<ExtraArgs>\n ) => Promise<z.infer<TransactionSchema>>\n >;\n};\n\nexport const createGatedTxCheckActivitySchema = <\n Output extends z.ZodType,\n const Input extends z.ZodType[] = [],\n TransactionWithResultSchema extends\n typeof _transactionWithResultSchema = typeof _transactionWithResultSchema,\n>({\n input,\n output,\n transactionWithResultSchema,\n}: {\n input?: Input;\n transactionWithResultSchema?: TransactionWithResultSchema;\n output: Output;\n}) => {\n const txWithResultSchema = (\n transactionWithResultSchema ?? _transactionWithResultSchema\n ).optional();\n\n return functionSchema({\n input: z.tuple([...(input ?? []), txWithResultSchema] as any),\n output: z.promise(output),\n }) as z.ZodType<\n (\n ...args: [...InferredArray<Input>, z.infer<TransactionWithResultSchema>?]\n ) => Promise<z.infer<Output>>\n >;\n};\n\nexport type ResolvedGatedTransactionDependencies<GatedTx extends GatedTransaction> =\n GatedTx extends GatedTransaction<any, any, any, any, infer _Dependencies>\n ? {\n [K in keyof _Dependencies]?: ResolvedGatedTransaction<_Dependencies[K]>;\n }\n : never;\n\nexport interface GatedTxCheckResult {\n expectationMet: boolean;\n data: unknown;\n}\n\nexport const gatedTxCheckResultSchema = z.object({\n expectationMet: z.boolean(),\n data: z.any(),\n});\n\nexport const gatedTransactionCacheSchema = z.object({\n getCachedTxCheckData: functionSchema({\n input: z.tuple([z.any()]),\n output: z.promise(z.any()),\n }) as z.ZodType<\n <GatedTx extends GatedTransaction>(\n gtx: GatedTx,\n ) => Promise<InferOnChainDataTypeFromGatedTransaction<GatedTx> | undefined>\n >,\n cacheSuccessfulTxCheckData: functionSchema({\n input: z.tuple([z.any(), z.any()]),\n output: z.promise(z.any()),\n }) as z.ZodType<\n <GatedTx extends GatedTransaction>(\n gtx: GatedTx,\n data: InferOnChainDataTypeFromGatedTransaction<GatedTx>,\n ) => Promise<void>\n >,\n});\n\nexport type IGatedTransactionCache = z.infer<typeof gatedTransactionCacheSchema>;\n\n/**\n * name-chain-uniqueIdKeys\n *\n * E.g., setDelegate-ethereum-oAppAddress:0xMY_OAPP\n */\nexport type GatedTransactionId = `${string}-${string}-${string}`;\n\n/**\n * bundleName-chain-uniqueIdKeys\n *\n * E.g., SetPeer-ton-oAppAddress:0xMY_OAPP\n */\nexport type GatedTransactionBundleId = `${string}-${string}-${string}`;\n"]}
@@ -3,30 +3,36 @@ import z from 'zod';
3
3
  import { transactionWithResultSchema } from '@layerzerolabs/common-chain-model';
4
4
  import { functionSchema, customSchema } from '@layerzerolabs/zod-utils';
5
5
 
6
- var gatedTransactionResultSchema = /* @__PURE__ */ __name((txWithResultSchema, onchainDataSchema) => z.union([
7
- z.object({
8
- status: z.literal("no_op")
9
- }),
10
- z.object({
11
- status: z.literal("success"),
12
- submittedTransaction: txWithResultSchema
13
- }),
14
- z.object({
15
- status: z.literal("transaction_failed"),
16
- transactionError: z.any()
17
- }),
18
- z.object({
19
- status: z.literal("final_check_failed"),
20
- submittedTransaction: txWithResultSchema,
21
- finalOnChainState: onchainDataSchema
22
- }),
23
- z.object({
24
- status: z.literal("dependency_failed")
25
- }),
26
- z.object({
27
- status: z.literal("denied")
28
- })
29
- ]), "gatedTransactionResultSchema");
6
+ var gatedTransactionResultSchema = /* @__PURE__ */ __name((txWithResultSchema, onchainDataSchema) => (
7
+ // FIXME use this as source of truth for GatedTransactionResult type
8
+ z.union([
9
+ z.object({
10
+ status: z.literal("no_op")
11
+ }),
12
+ z.object({
13
+ status: z.literal("success"),
14
+ submittedTransaction: txWithResultSchema
15
+ }),
16
+ z.object({
17
+ status: z.literal("transaction_failed"),
18
+ transactionError: z.any()
19
+ }),
20
+ z.object({
21
+ status: z.literal("final_check_failed"),
22
+ submittedTransaction: txWithResultSchema,
23
+ finalOnChainState: onchainDataSchema
24
+ }),
25
+ z.object({
26
+ status: z.literal("dependency_failed")
27
+ }),
28
+ z.object({
29
+ status: z.literal("denied")
30
+ }),
31
+ z.object({
32
+ status: z.literal("deferred_success")
33
+ })
34
+ ])
35
+ ), "gatedTransactionResultSchema");
30
36
  var GatedTransactionStatus = /* @__PURE__ */ (function(GatedTransactionStatus2) {
31
37
  GatedTransactionStatus2["NO_OP"] = "no_op";
32
38
  GatedTransactionStatus2["SUCCESS"] = "success";
@@ -34,23 +40,9 @@ var GatedTransactionStatus = /* @__PURE__ */ (function(GatedTransactionStatus2)
34
40
  GatedTransactionStatus2["FINAL_CHECK_FAILED"] = "final_check_failed";
35
41
  GatedTransactionStatus2["DEPENDENCY_FAILED"] = "dependency_failed";
36
42
  GatedTransactionStatus2["DENIED"] = "denied";
43
+ GatedTransactionStatus2["DEFERRED_SUCCESS"] = "deferred_success";
37
44
  return GatedTransactionStatus2;
38
45
  })({});
39
- var gatedTransactionCacheSchema = z.object({
40
- getCachedTxCheckData: functionSchema({
41
- input: z.tuple([
42
- z.any()
43
- ]),
44
- output: z.promise(z.any())
45
- }),
46
- cacheSuccessfulTxCheckData: functionSchema({
47
- input: z.tuple([
48
- z.any(),
49
- z.any()
50
- ]),
51
- output: z.promise(z.any())
52
- })
53
- });
54
46
  var gatedTransactionIsResolvedGatedTransaction = /* @__PURE__ */ __name((gtx) => !!gtx.result, "gatedTransactionIsResolvedGatedTransaction");
55
47
  var gatedTransactionSchema = /* @__PURE__ */ __name((_) => customSchema().meta({
56
48
  title: "Gated Transaction",
@@ -99,7 +91,22 @@ var gatedTxCheckResultSchema = z.object({
99
91
  expectationMet: z.boolean(),
100
92
  data: z.any()
101
93
  });
94
+ var gatedTransactionCacheSchema = z.object({
95
+ getCachedTxCheckData: functionSchema({
96
+ input: z.tuple([
97
+ z.any()
98
+ ]),
99
+ output: z.promise(z.any())
100
+ }),
101
+ cacheSuccessfulTxCheckData: functionSchema({
102
+ input: z.tuple([
103
+ z.any(),
104
+ z.any()
105
+ ]),
106
+ output: z.promise(z.any())
107
+ })
108
+ });
102
109
 
103
110
  export { GatedTransactionStatus, createGatedTxCheckActivitySchema, createTxArrayDependentActivitySchema, createTxTupleDependentActivitySchema, gatedTransactionCacheSchema, gatedTransactionIsResolvedGatedTransaction, gatedTransactionResultSchema, gatedTransactionSchema, gatedTxCheckResultSchema, resolvedGatedTransactionSchema };
104
- //# sourceMappingURL=RHEZ2PRK.js.map
105
- //# sourceMappingURL=RHEZ2PRK.js.map
111
+ //# sourceMappingURL=XZJ4DGII.js.map
112
+ //# sourceMappingURL=XZJ4DGII.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../src/schemata.ts"],"names":["gatedTransactionResultSchema","txWithResultSchema","onchainDataSchema","z","union","object","status","literal","submittedTransaction","transactionError","any","finalOnChainState","GatedTransactionStatus","gatedTransactionIsResolvedGatedTransaction","gtx","result","gatedTransactionSchema","_","customSchema","meta","title","description","resolvedGatedTransactionSchema","createTxArrayDependentActivitySchema","transactionSchema","extraArgs","functionSchema","input","tuple","array","def","items","output","promise","createTxTupleDependentActivitySchema","txNumber","txs","Array","from","length","createGatedTxCheckActivitySchema","transactionWithResultSchema","_transactionWithResultSchema","optional","gatedTxCheckResultSchema","expectationMet","boolean","data","gatedTransactionCacheSchema","getCachedTxCheckData","cacheSuccessfulTxCheckData"],"mappings":"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","file":"XZJ4DGII.js","sourcesContent":["import z from 'zod';\n\nimport type { transactionSchema as _transactionSchema } from '@layerzerolabs/common-chain-model';\nimport type { HexString } from '@layerzerolabs/common-chain-model';\nimport {\n type Transaction,\n type TransactionWithResultFor,\n transactionWithResultSchema as _transactionWithResultSchema,\n} from '@layerzerolabs/common-chain-model';\nimport type { FunctionPointer } from '@layerzerolabs/function-pointer';\nimport type { BrandedError, BuildTuple, IsAny, Or } from '@layerzerolabs/typescript-utils';\nimport type { FunctionPointerWithArgs, InferredArray } from '@layerzerolabs/zod-utils';\nimport { customSchema, functionSchema } from '@layerzerolabs/zod-utils';\n\nexport type OnChainDataComparisonOperator<OnChainDataType> =\n Or<[OnChainDataType extends number ? true : false, IsAny<OnChainDataType>]> extends true\n ? '<' | '<=' | '=' | '!=' | '>' | '>='\n : OnChainDataType extends string | object | boolean\n ? '=' | '!='\n : BrandedError<'Unsupported comparison type'>;\n\nexport type OnChainDataComparison<OnChainDataType extends string | number | boolean | object> = {\n operator: OnChainDataComparisonOperator<OnChainDataType>;\n comparisonValue: OnChainDataType;\n};\n\nexport type GatedTransactionCheck<\n Method extends (...args: any[]) => Promise<any> = (...args: any[]) => Promise<unknown>,\n> = {\n functionPointer: FunctionPointer<Method>;\n params: Parameters<Method>;\n expectedResult: OnChainDataComparison<Awaited<ReturnType<Method>>>;\n};\n\n// Schema for gated transaction results\nexport const gatedTransactionResultSchema = <\n TxWithResultSchema extends typeof _transactionWithResultSchema,\n OnchainDataSchema extends z.ZodType,\n>(\n txWithResultSchema: TxWithResultSchema,\n onchainDataSchema: OnchainDataSchema,\n) =>\n // FIXME use this as source of truth for GatedTransactionResult type\n z.union([\n z.object({\n status: z.literal(GatedTransactionStatus.NO_OP),\n }),\n z.object({\n status: z.literal(GatedTransactionStatus.SUCCESS),\n submittedTransaction: txWithResultSchema,\n }),\n z.object({\n status: z.literal(GatedTransactionStatus.TRANSACTION_FAILED),\n transactionError: z.any(),\n }),\n z.object({\n status: z.literal(GatedTransactionStatus.FINAL_CHECK_FAILED),\n submittedTransaction: txWithResultSchema,\n finalOnChainState: onchainDataSchema,\n }),\n z.object({\n status: z.literal(GatedTransactionStatus.DEPENDENCY_FAILED),\n }),\n z.object({\n status: z.literal(GatedTransactionStatus.DENIED),\n }),\n z.object({\n status: z.literal(GatedTransactionStatus.DEFERRED_SUCCESS),\n }),\n ]);\n\nexport type InferOnChainDataTypeFromCheck<Check> = Check extends (...args: any[]) => infer Ret\n ? Awaited<Ret>\n : unknown;\nexport type InferOnChainDataTypeFromGatedTransaction<GatedTx extends GatedTransaction> =\n InferOnChainDataTypeFromCheck<GatedTx['check']>;\n\nexport type GatedTransactionDependencies = GatedTransaction[];\nexport type BaseGatedTransaction<\n Name extends string = string,\n CheckMethod extends (...args: any[]) => any = (...args: any[]) => any,\n _Dependencies extends GatedTransactionDependencies = GatedTransactionDependencies,\n> = {\n name: Name;\n description?: string;\n bundleName?: string;\n metadata?: {\n deployInfo?: {\n saveArtifact: boolean;\n contractName: string;\n retryable?: boolean;\n abiEncodedConstructorArguments?: HexString;\n // TODO: Should be FunctionPointerWithArgs<VerificationArtifact> (circular dependency)\n createVerificationInfoPayloadPointerWithArgs?: FunctionPointerWithArgs<any>;\n };\n };\n chainName: string;\n check: GatedTransactionCheck<CheckMethod>;\n dependencies: _Dependencies;\n cacheable?: boolean;\n uniqueIdKeys?: Record<string, string | number | boolean>;\n};\n\nexport type LiteralGatedTransaction<\n Name extends string = string,\n TxType extends Transaction = Transaction,\n CheckMethod extends (...args: any[]) => any = (...args: any[]) => any,\n _Dependencies extends GatedTransactionDependencies = GatedTransactionDependencies,\n> = BaseGatedTransaction<Name, CheckMethod, _Dependencies> & {\n transactionType: 'literal';\n transaction: TxType;\n};\n\nexport type FunctionalGatedTransaction<\n Name extends string = string,\n TxType extends Transaction = Transaction,\n CheckMethod extends (...args: any[]) => any = (...args: any[]) => any,\n DepMethod extends (txs: any, ...args: any[]) => Promise<TxType> = (\n txs: any,\n ...args: any[]\n ) => Promise<any>,\n _Dependencies extends GatedTransactionDependencies = GatedTransactionDependencies,\n> = BaseGatedTransaction<Name, CheckMethod, _Dependencies> & {\n transactionType: 'functional';\n getTransaction: {\n functionPointer: FunctionPointer<DepMethod>;\n params: Parameters<DepMethod> extends [any, ...infer Tail] ? Tail : [];\n };\n};\n\nexport type GatedTransaction<\n Name extends string = string,\n TxType extends Transaction = Transaction,\n CheckMethod extends (...args: any[]) => any = (...args: any[]) => any,\n DepMethod extends (txs: any, ...args: any[]) => Promise<TxType> = (\n txs: any,\n ...args: any[]\n ) => Promise<any>,\n _Dependencies extends GatedTransactionDependencies = GatedTransactionDependencies,\n> =\n | LiteralGatedTransaction<Name, TxType, CheckMethod, _Dependencies>\n | FunctionalGatedTransaction<Name, TxType, CheckMethod, DepMethod, _Dependencies>;\n\nexport type BaseGatedTransactionFor<GatedTx extends GatedTransaction> =\n GatedTx extends GatedTransaction<infer Name, any, infer CheckMethod, any, infer _Dependencies>\n ? BaseGatedTransaction<Name, CheckMethod, _Dependencies>\n : never;\n\nexport enum GatedTransactionStatus {\n // precheck passed, no need to send the tx\n NO_OP = 'no_op',\n // precheck failed, tx was sent, postcheck passed\n SUCCESS = 'success',\n // precheck failed, tx was sent but sender returned an error\n TRANSACTION_FAILED = 'transaction_failed',\n // precheck failed, tx was sent, postcheck failed\n FINAL_CHECK_FAILED = 'final_check_failed',\n // the tx couldn't be resolved because one of its dependencies resolved to a failed state\n DEPENDENCY_FAILED = 'dependency_failed',\n // approval to send the tx was explictly denied\n DENIED = 'denied',\n // precheck failed, tx was sent but indeterminate, deferred execution passed on a recheck\n DEFERRED_SUCCESS = 'deferred_success',\n}\n\ntype NoOpGatedTransaction = {\n status: GatedTransactionStatus.NO_OP;\n};\n\ntype SuccessfulGatedTransaction<TxType extends Transaction> = {\n status: GatedTransactionStatus.SUCCESS;\n submittedTransaction: TransactionWithResultFor<TxType>;\n};\n\ntype TxFailedGatedTransaction = {\n status: GatedTransactionStatus.TRANSACTION_FAILED;\n transactionError: any;\n};\n\ntype CheckFailedGatedTransaction<GatedTx extends GatedTransaction, TxType extends Transaction> = {\n status: GatedTransactionStatus.FINAL_CHECK_FAILED;\n submittedTransaction: TransactionWithResultFor<TxType>;\n finalOnChainState: InferOnChainDataTypeFromGatedTransaction<GatedTx>;\n};\n\ntype DependencyFailedGatedTransaction = {\n status: GatedTransactionStatus.DEPENDENCY_FAILED;\n};\n\ntype DeniedGatedTransaction = {\n status: GatedTransactionStatus.DENIED;\n};\n\ntype DeferredSuccessfulGatedTransaction = {\n status: GatedTransactionStatus.DEFERRED_SUCCESS;\n};\n\nexport type GatedTransactionResult<\n GatedTx extends GatedTransaction = GatedTransaction,\n TxType extends Transaction = Transaction,\n> =\n | NoOpGatedTransaction\n | SuccessfulGatedTransaction<TxType>\n | TxFailedGatedTransaction\n | CheckFailedGatedTransaction<GatedTx, TxType>\n | DependencyFailedGatedTransaction\n | DeniedGatedTransaction\n | DeferredSuccessfulGatedTransaction;\n\nexport type ResolvedGatedTransaction<\n GatedTx extends GatedTransaction = GatedTransaction,\n TxType extends Transaction = Transaction,\n> = BaseGatedTransactionFor<GatedTx> & {\n result: GatedTransactionResult<GatedTx, TxType>;\n};\n\nexport const gatedTransactionIsResolvedGatedTransaction = (\n gtx: GatedTransaction | ResolvedGatedTransaction,\n): gtx is ResolvedGatedTransaction => !!(gtx as ResolvedGatedTransaction).result;\n\nexport const gatedTransactionSchema = <\n Name extends z.ZodString | z.ZodLiteral<string> = z.ZodString,\n TransactionSchema extends typeof _transactionSchema = typeof _transactionSchema,\n>(_?: {\n name?: Name;\n transactionSchema?: TransactionSchema;\n}) =>\n customSchema<GatedTransaction<z.infer<Name>, z.infer<TransactionSchema>>>().meta({\n title: 'Gated Transaction',\n description: 'A schema for a gated transaction',\n });\n\nexport const resolvedGatedTransactionSchema = <\n Name extends z.ZodString | z.ZodLiteral<string> = z.ZodString,\n TransactionSchema extends typeof _transactionSchema = typeof _transactionSchema,\n>(_?: {\n name?: Name;\n transactionSchema?: TransactionSchema;\n}) =>\n customSchema<\n ResolvedGatedTransaction<\n GatedTransaction<z.infer<Name>, z.infer<TransactionSchema>>,\n z.infer<TransactionSchema>\n >\n >().meta({\n title: 'Resolved Gated Transaction',\n description: 'A schema for a resolved gated transaction',\n });\n\n/**\n * Builds a schema for an activity that builds a transaction based on the results of other transactions\n * @param transactionSchema The schema for the transaction to be built\n * @param transactionWithResultSchema The schema for the results of the transactions you're building off of\n * @param txNumber The number of transactions you're building off of\n * @param extraArgs Additional arguments that must be passed to the function after the txes\n * @returns A schema for the activity that builds the transaction\n */\nexport const createTxArrayDependentActivitySchema = <\n TransactionSchema extends typeof _transactionSchema = typeof _transactionSchema,\n ExtraArgs extends z.ZodTuple = z.ZodTuple<[]>,\n>(\n transactionSchema: TransactionSchema,\n extraArgs?: ExtraArgs,\n) => {\n return functionSchema({\n input: z.tuple([\n z.array(\n resolvedGatedTransactionSchema({\n transactionSchema,\n }),\n ),\n ...(extraArgs?.def?.items ?? []),\n ]),\n output: z.promise(transactionSchema),\n }) as unknown as z.ZodType<\n [] extends z.infer<ExtraArgs>\n ? (\n txs: ResolvedGatedTransaction<\n GatedTransaction<string, z.infer<TransactionSchema>>\n >[],\n ) => Promise<z.infer<TransactionSchema>>\n : (\n txs: ResolvedGatedTransaction<\n GatedTransaction<string, z.infer<TransactionSchema>>\n >[],\n ...extraArgs: z.infer<ExtraArgs>\n ) => Promise<z.infer<TransactionSchema>>\n >;\n};\n/**\n * Builds a schema for an activity that builds a transaction based on the results of other transactions\n * @param transactionSchema The schema for the transaction to be built\n * @param transactionWithResultSchema The schema for the results of the transactions you're building off of\n * @param txNumber The number of transactions you're building off of\n * @param extraArgs Additional arguments that must be passed to the function after the txes\n * @returns A schema for the activity that builds the transaction\n */\nexport const createTxTupleDependentActivitySchema = <\n TransactionSchema extends typeof _transactionSchema = typeof _transactionSchema,\n const TxNumber extends number = 1,\n ExtraArgs extends z.ZodTuple = z.ZodTuple<[]>,\n>(\n transactionSchema: TransactionSchema,\n txNumber: TxNumber,\n extraArgs?: ExtraArgs,\n) => {\n const txs = Array.from({ length: txNumber }, () =>\n resolvedGatedTransactionSchema({\n transactionSchema: transactionSchema,\n }),\n );\n\n return functionSchema({\n input: z.tuple([z.tuple(txs as any), ...(extraArgs?.def?.items ?? [])]),\n output: z.promise(transactionSchema),\n }) as unknown as z.ZodType<\n [] extends z.infer<ExtraArgs>\n ? (\n txs: BuildTuple<\n ResolvedGatedTransaction<\n GatedTransaction<string, z.infer<TransactionSchema>>\n >,\n TxNumber\n >,\n ) => Promise<z.infer<TransactionSchema>>\n : (\n txs: BuildTuple<\n ResolvedGatedTransaction<\n GatedTransaction<string, z.infer<TransactionSchema>>\n >,\n TxNumber\n >,\n ...extraArgs: z.infer<ExtraArgs>\n ) => Promise<z.infer<TransactionSchema>>\n >;\n};\n\nexport const createGatedTxCheckActivitySchema = <\n Output extends z.ZodType,\n const Input extends z.ZodType[] = [],\n TransactionWithResultSchema extends\n typeof _transactionWithResultSchema = typeof _transactionWithResultSchema,\n>({\n input,\n output,\n transactionWithResultSchema,\n}: {\n input?: Input;\n transactionWithResultSchema?: TransactionWithResultSchema;\n output: Output;\n}) => {\n const txWithResultSchema = (\n transactionWithResultSchema ?? _transactionWithResultSchema\n ).optional();\n\n return functionSchema({\n input: z.tuple([...(input ?? []), txWithResultSchema] as any),\n output: z.promise(output),\n }) as z.ZodType<\n (\n ...args: [...InferredArray<Input>, z.infer<TransactionWithResultSchema>?]\n ) => Promise<z.infer<Output>>\n >;\n};\n\nexport type ResolvedGatedTransactionDependencies<GatedTx extends GatedTransaction> =\n GatedTx extends GatedTransaction<any, any, any, any, infer _Dependencies>\n ? {\n [K in keyof _Dependencies]?: ResolvedGatedTransaction<_Dependencies[K]>;\n }\n : never;\n\nexport interface GatedTxCheckResult {\n expectationMet: boolean;\n data: unknown;\n}\n\nexport const gatedTxCheckResultSchema = z.object({\n expectationMet: z.boolean(),\n data: z.any(),\n});\n\nexport const gatedTransactionCacheSchema = z.object({\n getCachedTxCheckData: functionSchema({\n input: z.tuple([z.any()]),\n output: z.promise(z.any()),\n }) as z.ZodType<\n <GatedTx extends GatedTransaction>(\n gtx: GatedTx,\n ) => Promise<InferOnChainDataTypeFromGatedTransaction<GatedTx> | undefined>\n >,\n cacheSuccessfulTxCheckData: functionSchema({\n input: z.tuple([z.any(), z.any()]),\n output: z.promise(z.any()),\n }) as z.ZodType<\n <GatedTx extends GatedTransaction>(\n gtx: GatedTx,\n data: InferOnChainDataTypeFromGatedTransaction<GatedTx>,\n ) => Promise<void>\n >,\n});\n\nexport type IGatedTransactionCache = z.infer<typeof gatedTransactionCacheSchema>;\n\n/**\n * name-chain-uniqueIdKeys\n *\n * E.g., setDelegate-ethereum-oAppAddress:0xMY_OAPP\n */\nexport type GatedTransactionId = `${string}-${string}-${string}`;\n\n/**\n * bundleName-chain-uniqueIdKeys\n *\n * E.g., SetPeer-ton-oAppAddress:0xMY_OAPP\n */\nexport type GatedTransactionBundleId = `${string}-${string}-${string}`;\n"]}
@@ -30,5 +30,5 @@ exports.constructGatedTransaction = constructGatedTransaction;
30
30
  exports.constructGatedTransactionFromPointer = constructGatedTransactionFromPointer;
31
31
  exports.getBundleIdForGatedTransaction = getBundleIdForGatedTransaction;
32
32
  exports.getIdForGatedTransaction = getIdForGatedTransaction;
33
- //# sourceMappingURL=SXSNYFO6.cjs.map
34
- //# sourceMappingURL=SXSNYFO6.cjs.map
33
+ //# sourceMappingURL=ZE3NLIHW.cjs.map
34
+ //# sourceMappingURL=ZE3NLIHW.cjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../src/gatedTx.ts"],"names":["constructGatedTransaction","gtx","dependencies","transactionType","constructGatedTransactionFromPointer","getIdForGatedTransaction","serializedUniqueIdKeys","uniqueIdKeys","Object","entries","map","k","v","join","name","chainName","getBundleIdForGatedTransaction","bundleName"],"mappings":";;;;;AAiBO,IAAMA,yBAAAA,wCAKXC,GAAAA,KAAAA;AAyBE,EAAA,MAAMC,YAAAA,GAAeD,GAAAA,CAAIC,YAAAA,IAAiB,EAAA;AAC1C,EAAA,OAAO;IAAE,GAAGD,GAAAA;IAAKE,eAAAA,EAAiB,SAAA;AAAWD,IAAAA;AAAa,GAAA;AAC9D,CAAA,EAhCyC,2BAAA;AAgDlC,IAAME,oCAAAA,wCAKXH,GAAAA,KAAAA;AA4BE,EAAA,OAAO;IACH,GAAGA,GAAAA;IACHE,eAAAA,EAAiB;AACrB,GAAA;AACJ,CAAA,EArCoD,sCAAA;AAuC7C,IAAME,wBAAAA,wCAA4BJ,GAAAA,KAAAA;AACrC,EAAA,MAAMK,sBAAAA,GAAyBL,IAAIM,YAAAA,GAC7BC,MAAAA,CAAOC,QAAQR,GAAAA,CAAIM,YAAY,CAAA,CAC1BG,GAAAA,CAAI,CAAC,CAACC,GAAGC,CAAAA,CAAAA,KAAO,GAAGD,CAAAA,CAAAA,CAAAA,EAAKC,CAAAA,CAAAA,CAAG,CAAA,CAC3BC,IAAAA,CAAK,GAAA,CAAA,GACV,EAAA;AAEN,EAAA,OAAO,GAAGZ,GAAAA,CAAIa,IAAI,IAAIb,GAAAA,CAAIc,SAAS,IAAIT,sBAAAA,CAAAA,CAAAA;AAC3C,CAAA,EARwC,0BAAA;AAUjC,IAAMU,8BAAAA,wCACTf,GAAAA,KAAAA;AAEA,EAAA,MAAMK,sBAAAA,GAAyBL,IAAIM,YAAAA,GAC7BC,MAAAA,CAAOC,QAAQR,GAAAA,CAAIM,YAAY,CAAA,CAC1BG,GAAAA,CAAI,CAAC,CAACC,GAAGC,CAAAA,CAAAA,KAAO,GAAGD,CAAAA,CAAAA,CAAAA,EAAKC,CAAAA,CAAAA,CAAG,CAAA,CAC3BC,IAAAA,CAAK,GAAA,CAAA,GACV,EAAA;AAEN,EAAA,OAAO,GAAGZ,GAAAA,CAAIgB,UAAU,IAAIhB,GAAAA,CAAIc,SAAS,IAAIT,sBAAAA,CAAAA,CAAAA;AACjD,CAAA,EAV8C,gCAAA","file":"ZE3NLIHW.cjs","sourcesContent":["import type { HexString, Transaction } from '@layerzerolabs/common-chain-model';\nimport type { FunctionPointer } from '@layerzerolabs/function-pointer';\nimport type { FunctionPointerWithArgs } from '@layerzerolabs/zod-utils';\n\nimport type {\n BaseGatedTransaction,\n GatedTransaction,\n GatedTransactionBundleId,\n GatedTransactionDependencies,\n GatedTransactionId,\n OnChainDataComparison,\n ResolvedGatedTransaction,\n} from './schemata';\n\n/**\n * Builds a {@link GatedTransaction}\n */\nexport const constructGatedTransaction = <\n const Name extends string,\n Tx extends Transaction,\n Method extends (...args: any[]) => any,\n _Dependencies extends GatedTransactionDependencies,\n>(gtx: {\n name: Name;\n description?: string;\n chainName: string;\n bundleName?: string;\n metadata?: {\n deployInfo?: {\n saveArtifact: boolean;\n contractName: string;\n retryable?: boolean;\n abiEncodedConstructorArguments?: HexString;\n // TODO: Should be FunctionPointerWithArgs<VerificationArtifact> (circular dependency)\n createVerificationInfoPayloadPointerWithArgs?: FunctionPointerWithArgs<any>;\n };\n };\n check: {\n functionPointer: FunctionPointer<Method>;\n params: Parameters<Method>;\n expectedResult: OnChainDataComparison<Awaited<ReturnType<Method>>>;\n };\n uniqueIdKeys?: Record<string, string | number | boolean>;\n cacheable?: boolean;\n dependencies?: _Dependencies;\n transaction: Tx;\n}): GatedTransaction<Name, Tx, Method, any, _Dependencies> => {\n const dependencies = gtx.dependencies ?? ([] as any);\n return { ...gtx, transactionType: 'literal', dependencies };\n};\n\ntype BuildDeps<Params extends ResolvedGatedTransaction[]> = Params extends []\n ? []\n : Params extends readonly [\n ResolvedGatedTransaction<infer Gtx>,\n ...infer Rest extends ResolvedGatedTransaction[],\n ]\n ? [Gtx, ...BuildDeps<[...Rest]>]\n : Params extends Array<ResolvedGatedTransaction<infer Gtx>>\n ? Array<Gtx>\n : never;\n\n/**\n * Builds a {@link GatedTransaction} from a pointer\n */\nexport const constructGatedTransactionFromPointer = <\n const Name extends string,\n TxType extends Transaction,\n Method extends (...args: any[]) => any,\n DepMethod extends (txs: any, ...args: any[]) => Promise<TxType>,\n>(gtx: {\n name: Name;\n description?: string;\n chainName: string;\n bundleName?: string;\n metadata?: {\n deployInfo?: {\n saveArtifact: boolean;\n contractName: string;\n abiEncodedConstructorArguments?: HexString;\n retryable?: boolean;\n // TODO: Should be FunctionPointerWithArgs<VerificationArtifact> (circular dependency)\n createVerificationInfoPayloadPointerWithArgs?: FunctionPointerWithArgs<any>;\n };\n };\n check: {\n functionPointer: FunctionPointer<Method>;\n params: Parameters<Method>;\n expectedResult: OnChainDataComparison<Awaited<ReturnType<Method>>>;\n };\n uniqueIdKeys?: Record<string, string | number | boolean>;\n cacheable?: boolean;\n dependencies: BuildDeps<Parameters<DepMethod>[0]>;\n getTransaction: {\n functionPointer: FunctionPointer<DepMethod>;\n params: Parameters<DepMethod> extends [any, ...infer Tail] ? Tail : [];\n };\n}): GatedTransaction<Name, TxType, Method, DepMethod, BuildDeps<Parameters<DepMethod>[0]>> => {\n return {\n ...gtx,\n transactionType: 'functional',\n };\n};\n\nexport const getIdForGatedTransaction = (gtx: BaseGatedTransaction): GatedTransactionId => {\n const serializedUniqueIdKeys = gtx.uniqueIdKeys\n ? Object.entries(gtx.uniqueIdKeys)\n .map(([k, v]) => `${k}:${v}`)\n .join('-')\n : '';\n\n return `${gtx.name}-${gtx.chainName}-${serializedUniqueIdKeys}`;\n};\n\nexport const getBundleIdForGatedTransaction = (\n gtx: BaseGatedTransaction,\n): GatedTransactionBundleId => {\n const serializedUniqueIdKeys = gtx.uniqueIdKeys\n ? Object.entries(gtx.uniqueIdKeys)\n .map(([k, v]) => `${k}:${v}`)\n .join('-')\n : '';\n\n return `${gtx.bundleName}-${gtx.chainName}-${serializedUniqueIdKeys}`;\n};\n"]}
package/dist/gatedTx.cjs CHANGED
@@ -1,25 +1,25 @@
1
1
  'use strict';
2
2
 
3
- var SXSNYFO6_cjs = require('./SXSNYFO6.cjs');
3
+ var ZE3NLIHW_cjs = require('./ZE3NLIHW.cjs');
4
4
  require('./YJF4D23A.cjs');
5
5
 
6
6
 
7
7
 
8
8
  Object.defineProperty(exports, "constructGatedTransaction", {
9
9
  enumerable: true,
10
- get: function () { return SXSNYFO6_cjs.constructGatedTransaction; }
10
+ get: function () { return ZE3NLIHW_cjs.constructGatedTransaction; }
11
11
  });
12
12
  Object.defineProperty(exports, "constructGatedTransactionFromPointer", {
13
13
  enumerable: true,
14
- get: function () { return SXSNYFO6_cjs.constructGatedTransactionFromPointer; }
14
+ get: function () { return ZE3NLIHW_cjs.constructGatedTransactionFromPointer; }
15
15
  });
16
16
  Object.defineProperty(exports, "getBundleIdForGatedTransaction", {
17
17
  enumerable: true,
18
- get: function () { return SXSNYFO6_cjs.getBundleIdForGatedTransaction; }
18
+ get: function () { return ZE3NLIHW_cjs.getBundleIdForGatedTransaction; }
19
19
  });
20
20
  Object.defineProperty(exports, "getIdForGatedTransaction", {
21
21
  enumerable: true,
22
- get: function () { return SXSNYFO6_cjs.getIdForGatedTransaction; }
22
+ get: function () { return ZE3NLIHW_cjs.getIdForGatedTransaction; }
23
23
  });
24
24
  //# sourceMappingURL=gatedTx.cjs.map
25
25
  //# sourceMappingURL=gatedTx.cjs.map
package/dist/gatedTx.d.ts CHANGED
@@ -1,5 +1,6 @@
1
1
  import type { HexString, Transaction } from '@layerzerolabs/common-chain-model';
2
2
  import type { FunctionPointer } from '@layerzerolabs/function-pointer';
3
+ import type { FunctionPointerWithArgs } from '@layerzerolabs/zod-utils';
3
4
  import type { BaseGatedTransaction, GatedTransaction, GatedTransactionBundleId, GatedTransactionDependencies, GatedTransactionId, OnChainDataComparison, ResolvedGatedTransaction } from './schemata';
4
5
  /**
5
6
  * Builds a {@link GatedTransaction}
@@ -15,6 +16,7 @@ export declare const constructGatedTransaction: <const Name extends string, Tx e
15
16
  contractName: string;
16
17
  retryable?: boolean;
17
18
  abiEncodedConstructorArguments?: HexString;
19
+ createVerificationInfoPayloadPointerWithArgs?: FunctionPointerWithArgs<any>;
18
20
  };
19
21
  };
20
22
  check: {
@@ -45,6 +47,7 @@ export declare const constructGatedTransactionFromPointer: <const Name extends s
45
47
  contractName: string;
46
48
  abiEncodedConstructorArguments?: HexString;
47
49
  retryable?: boolean;
50
+ createVerificationInfoPayloadPointerWithArgs?: FunctionPointerWithArgs<any>;
48
51
  };
49
52
  };
50
53
  check: {
@@ -1 +1 @@
1
- {"version":3,"file":"gatedTx.d.ts","sourceRoot":"","sources":["../src/gatedTx.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"gatedTx.d.ts","sourceRoot":"","sources":["../src/gatedTx.ts"],"names":[],"mappings":"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"}
package/dist/gatedTx.js CHANGED
@@ -1,4 +1,4 @@
1
- export { constructGatedTransaction, constructGatedTransactionFromPointer, getBundleIdForGatedTransaction, getIdForGatedTransaction } from './Z6WLE6GM.js';
1
+ export { constructGatedTransaction, constructGatedTransactionFromPointer, getBundleIdForGatedTransaction, getIdForGatedTransaction } from './L4J4JEOC.js';
2
2
  import './VUOMXK5T.js';
3
3
  //# sourceMappingURL=gatedTx.js.map
4
4
  //# sourceMappingURL=gatedTx.js.map
package/dist/index.cjs CHANGED
@@ -1,66 +1,66 @@
1
1
  'use strict';
2
2
 
3
- var SXSNYFO6_cjs = require('./SXSNYFO6.cjs');
4
- var BPVWQ6EE_cjs = require('./BPVWQ6EE.cjs');
3
+ var ZE3NLIHW_cjs = require('./ZE3NLIHW.cjs');
4
+ var NQO4S4JF_cjs = require('./NQO4S4JF.cjs');
5
5
  require('./YJF4D23A.cjs');
6
6
 
7
7
 
8
8
 
9
9
  Object.defineProperty(exports, "constructGatedTransaction", {
10
10
  enumerable: true,
11
- get: function () { return SXSNYFO6_cjs.constructGatedTransaction; }
11
+ get: function () { return ZE3NLIHW_cjs.constructGatedTransaction; }
12
12
  });
13
13
  Object.defineProperty(exports, "constructGatedTransactionFromPointer", {
14
14
  enumerable: true,
15
- get: function () { return SXSNYFO6_cjs.constructGatedTransactionFromPointer; }
15
+ get: function () { return ZE3NLIHW_cjs.constructGatedTransactionFromPointer; }
16
16
  });
17
17
  Object.defineProperty(exports, "getBundleIdForGatedTransaction", {
18
18
  enumerable: true,
19
- get: function () { return SXSNYFO6_cjs.getBundleIdForGatedTransaction; }
19
+ get: function () { return ZE3NLIHW_cjs.getBundleIdForGatedTransaction; }
20
20
  });
21
21
  Object.defineProperty(exports, "getIdForGatedTransaction", {
22
22
  enumerable: true,
23
- get: function () { return SXSNYFO6_cjs.getIdForGatedTransaction; }
23
+ get: function () { return ZE3NLIHW_cjs.getIdForGatedTransaction; }
24
24
  });
25
25
  Object.defineProperty(exports, "GatedTransactionStatus", {
26
26
  enumerable: true,
27
- get: function () { return BPVWQ6EE_cjs.GatedTransactionStatus; }
27
+ get: function () { return NQO4S4JF_cjs.GatedTransactionStatus; }
28
28
  });
29
29
  Object.defineProperty(exports, "createGatedTxCheckActivitySchema", {
30
30
  enumerable: true,
31
- get: function () { return BPVWQ6EE_cjs.createGatedTxCheckActivitySchema; }
31
+ get: function () { return NQO4S4JF_cjs.createGatedTxCheckActivitySchema; }
32
32
  });
33
33
  Object.defineProperty(exports, "createTxArrayDependentActivitySchema", {
34
34
  enumerable: true,
35
- get: function () { return BPVWQ6EE_cjs.createTxArrayDependentActivitySchema; }
35
+ get: function () { return NQO4S4JF_cjs.createTxArrayDependentActivitySchema; }
36
36
  });
37
37
  Object.defineProperty(exports, "createTxTupleDependentActivitySchema", {
38
38
  enumerable: true,
39
- get: function () { return BPVWQ6EE_cjs.createTxTupleDependentActivitySchema; }
39
+ get: function () { return NQO4S4JF_cjs.createTxTupleDependentActivitySchema; }
40
40
  });
41
41
  Object.defineProperty(exports, "gatedTransactionCacheSchema", {
42
42
  enumerable: true,
43
- get: function () { return BPVWQ6EE_cjs.gatedTransactionCacheSchema; }
43
+ get: function () { return NQO4S4JF_cjs.gatedTransactionCacheSchema; }
44
44
  });
45
45
  Object.defineProperty(exports, "gatedTransactionIsResolvedGatedTransaction", {
46
46
  enumerable: true,
47
- get: function () { return BPVWQ6EE_cjs.gatedTransactionIsResolvedGatedTransaction; }
47
+ get: function () { return NQO4S4JF_cjs.gatedTransactionIsResolvedGatedTransaction; }
48
48
  });
49
49
  Object.defineProperty(exports, "gatedTransactionResultSchema", {
50
50
  enumerable: true,
51
- get: function () { return BPVWQ6EE_cjs.gatedTransactionResultSchema; }
51
+ get: function () { return NQO4S4JF_cjs.gatedTransactionResultSchema; }
52
52
  });
53
53
  Object.defineProperty(exports, "gatedTransactionSchema", {
54
54
  enumerable: true,
55
- get: function () { return BPVWQ6EE_cjs.gatedTransactionSchema; }
55
+ get: function () { return NQO4S4JF_cjs.gatedTransactionSchema; }
56
56
  });
57
57
  Object.defineProperty(exports, "gatedTxCheckResultSchema", {
58
58
  enumerable: true,
59
- get: function () { return BPVWQ6EE_cjs.gatedTxCheckResultSchema; }
59
+ get: function () { return NQO4S4JF_cjs.gatedTxCheckResultSchema; }
60
60
  });
61
61
  Object.defineProperty(exports, "resolvedGatedTransactionSchema", {
62
62
  enumerable: true,
63
- get: function () { return BPVWQ6EE_cjs.resolvedGatedTransactionSchema; }
63
+ get: function () { return NQO4S4JF_cjs.resolvedGatedTransactionSchema; }
64
64
  });
65
65
  //# sourceMappingURL=index.cjs.map
66
66
  //# sourceMappingURL=index.cjs.map
package/dist/index.js CHANGED
@@ -1,5 +1,5 @@
1
- export { constructGatedTransaction, constructGatedTransactionFromPointer, getBundleIdForGatedTransaction, getIdForGatedTransaction } from './Z6WLE6GM.js';
2
- export { GatedTransactionStatus, createGatedTxCheckActivitySchema, createTxArrayDependentActivitySchema, createTxTupleDependentActivitySchema, gatedTransactionCacheSchema, gatedTransactionIsResolvedGatedTransaction, gatedTransactionResultSchema, gatedTransactionSchema, gatedTxCheckResultSchema, resolvedGatedTransactionSchema } from './RHEZ2PRK.js';
1
+ export { constructGatedTransaction, constructGatedTransactionFromPointer, getBundleIdForGatedTransaction, getIdForGatedTransaction } from './L4J4JEOC.js';
2
+ export { GatedTransactionStatus, createGatedTxCheckActivitySchema, createTxArrayDependentActivitySchema, createTxTupleDependentActivitySchema, gatedTransactionCacheSchema, gatedTransactionIsResolvedGatedTransaction, gatedTransactionResultSchema, gatedTransactionSchema, gatedTxCheckResultSchema, resolvedGatedTransactionSchema } from './XZJ4DGII.js';
3
3
  import './VUOMXK5T.js';
4
4
  //# sourceMappingURL=index.js.map
5
5
  //# sourceMappingURL=index.js.map
package/dist/schemata.cjs CHANGED
@@ -1,49 +1,49 @@
1
1
  'use strict';
2
2
 
3
- var BPVWQ6EE_cjs = require('./BPVWQ6EE.cjs');
3
+ var NQO4S4JF_cjs = require('./NQO4S4JF.cjs');
4
4
  require('./YJF4D23A.cjs');
5
5
 
6
6
 
7
7
 
8
8
  Object.defineProperty(exports, "GatedTransactionStatus", {
9
9
  enumerable: true,
10
- get: function () { return BPVWQ6EE_cjs.GatedTransactionStatus; }
10
+ get: function () { return NQO4S4JF_cjs.GatedTransactionStatus; }
11
11
  });
12
12
  Object.defineProperty(exports, "createGatedTxCheckActivitySchema", {
13
13
  enumerable: true,
14
- get: function () { return BPVWQ6EE_cjs.createGatedTxCheckActivitySchema; }
14
+ get: function () { return NQO4S4JF_cjs.createGatedTxCheckActivitySchema; }
15
15
  });
16
16
  Object.defineProperty(exports, "createTxArrayDependentActivitySchema", {
17
17
  enumerable: true,
18
- get: function () { return BPVWQ6EE_cjs.createTxArrayDependentActivitySchema; }
18
+ get: function () { return NQO4S4JF_cjs.createTxArrayDependentActivitySchema; }
19
19
  });
20
20
  Object.defineProperty(exports, "createTxTupleDependentActivitySchema", {
21
21
  enumerable: true,
22
- get: function () { return BPVWQ6EE_cjs.createTxTupleDependentActivitySchema; }
22
+ get: function () { return NQO4S4JF_cjs.createTxTupleDependentActivitySchema; }
23
23
  });
24
24
  Object.defineProperty(exports, "gatedTransactionCacheSchema", {
25
25
  enumerable: true,
26
- get: function () { return BPVWQ6EE_cjs.gatedTransactionCacheSchema; }
26
+ get: function () { return NQO4S4JF_cjs.gatedTransactionCacheSchema; }
27
27
  });
28
28
  Object.defineProperty(exports, "gatedTransactionIsResolvedGatedTransaction", {
29
29
  enumerable: true,
30
- get: function () { return BPVWQ6EE_cjs.gatedTransactionIsResolvedGatedTransaction; }
30
+ get: function () { return NQO4S4JF_cjs.gatedTransactionIsResolvedGatedTransaction; }
31
31
  });
32
32
  Object.defineProperty(exports, "gatedTransactionResultSchema", {
33
33
  enumerable: true,
34
- get: function () { return BPVWQ6EE_cjs.gatedTransactionResultSchema; }
34
+ get: function () { return NQO4S4JF_cjs.gatedTransactionResultSchema; }
35
35
  });
36
36
  Object.defineProperty(exports, "gatedTransactionSchema", {
37
37
  enumerable: true,
38
- get: function () { return BPVWQ6EE_cjs.gatedTransactionSchema; }
38
+ get: function () { return NQO4S4JF_cjs.gatedTransactionSchema; }
39
39
  });
40
40
  Object.defineProperty(exports, "gatedTxCheckResultSchema", {
41
41
  enumerable: true,
42
- get: function () { return BPVWQ6EE_cjs.gatedTxCheckResultSchema; }
42
+ get: function () { return NQO4S4JF_cjs.gatedTxCheckResultSchema; }
43
43
  });
44
44
  Object.defineProperty(exports, "resolvedGatedTransactionSchema", {
45
45
  enumerable: true,
46
- get: function () { return BPVWQ6EE_cjs.resolvedGatedTransactionSchema; }
46
+ get: function () { return NQO4S4JF_cjs.resolvedGatedTransactionSchema; }
47
47
  });
48
48
  //# sourceMappingURL=schemata.cjs.map
49
49
  //# sourceMappingURL=schemata.cjs.map
@@ -4,7 +4,7 @@ import type { HexString } from '@layerzerolabs/common-chain-model';
4
4
  import { type Transaction, type TransactionWithResultFor, transactionWithResultSchema as _transactionWithResultSchema } from '@layerzerolabs/common-chain-model';
5
5
  import type { FunctionPointer } from '@layerzerolabs/function-pointer';
6
6
  import type { BrandedError, BuildTuple, IsAny, Or } from '@layerzerolabs/typescript-utils';
7
- import type { InferredArray } from '@layerzerolabs/zod-utils';
7
+ import type { FunctionPointerWithArgs, InferredArray } from '@layerzerolabs/zod-utils';
8
8
  export type OnChainDataComparisonOperator<OnChainDataType> = Or<[OnChainDataType extends number ? true : false, IsAny<OnChainDataType>]> extends true ? '<' | '<=' | '=' | '!=' | '>' | '>=' : OnChainDataType extends string | object | boolean ? '=' | '!=' : BrandedError<'Unsupported comparison type'>;
9
9
  export type OnChainDataComparison<OnChainDataType extends string | number | boolean | object> = {
10
10
  operator: OnChainDataComparisonOperator<OnChainDataType>;
@@ -31,6 +31,8 @@ export declare const gatedTransactionResultSchema: <TxWithResultSchema extends t
31
31
  status: z.ZodLiteral<GatedTransactionStatus.DEPENDENCY_FAILED>;
32
32
  }, z.core.$strip>, z.ZodObject<{
33
33
  status: z.ZodLiteral<GatedTransactionStatus.DENIED>;
34
+ }, z.core.$strip>, z.ZodObject<{
35
+ status: z.ZodLiteral<GatedTransactionStatus.DEFERRED_SUCCESS>;
34
36
  }, z.core.$strip>]>;
35
37
  export type InferOnChainDataTypeFromCheck<Check> = Check extends (...args: any[]) => infer Ret ? Awaited<Ret> : unknown;
36
38
  export type InferOnChainDataTypeFromGatedTransaction<GatedTx extends GatedTransaction> = InferOnChainDataTypeFromCheck<GatedTx['check']>;
@@ -45,6 +47,7 @@ export type BaseGatedTransaction<Name extends string = string, CheckMethod exten
45
47
  contractName: string;
46
48
  retryable?: boolean;
47
49
  abiEncodedConstructorArguments?: HexString;
50
+ createVerificationInfoPayloadPointerWithArgs?: FunctionPointerWithArgs<any>;
48
51
  };
49
52
  };
50
53
  chainName: string;
@@ -72,7 +75,8 @@ export declare enum GatedTransactionStatus {
72
75
  TRANSACTION_FAILED = "transaction_failed",
73
76
  FINAL_CHECK_FAILED = "final_check_failed",
74
77
  DEPENDENCY_FAILED = "dependency_failed",
75
- DENIED = "denied"
78
+ DENIED = "denied",
79
+ DEFERRED_SUCCESS = "deferred_success"
76
80
  }
77
81
  type NoOpGatedTransaction = {
78
82
  status: GatedTransactionStatus.NO_OP;
@@ -96,24 +100,10 @@ type DependencyFailedGatedTransaction = {
96
100
  type DeniedGatedTransaction = {
97
101
  status: GatedTransactionStatus.DENIED;
98
102
  };
99
- export type GatedTransactionResult<GatedTx extends GatedTransaction = GatedTransaction, TxType extends Transaction = Transaction> = NoOpGatedTransaction | SuccessfulGatedTransaction<TxType> | TxFailedGatedTransaction | CheckFailedGatedTransaction<GatedTx, TxType> | DependencyFailedGatedTransaction | DeniedGatedTransaction;
100
- export declare const gatedTransactionCacheSchema: z.ZodObject<{
101
- getCachedTxCheckData: z.ZodType<(<GatedTx extends GatedTransaction>(gtx: GatedTx) => Promise<InferOnChainDataTypeFromGatedTransaction<GatedTx> | undefined>)>;
102
- cacheSuccessfulTxCheckData: z.ZodType<(<GatedTx extends GatedTransaction>(gtx: GatedTx, data: InferOnChainDataTypeFromGatedTransaction<GatedTx>) => Promise<void>)>;
103
- }, z.core.$strip>;
104
- export type IGatedTransactionCache = z.infer<typeof gatedTransactionCacheSchema>;
105
- /**
106
- * name-chain-uniqueIdKeys
107
- *
108
- * E.g., setDelegate-ethereum-oAppAddress:0xMY_OAPP
109
- */
110
- export type GatedTransactionId = `${string}-${string}-${string}`;
111
- /**
112
- * bundleName-chain-uniqueIdKeys
113
- *
114
- * E.g., SetPeer-ton-oAppAddress:0xMY_OAPP
115
- */
116
- export type GatedTransactionBundleId = `${string}-${string}-${string}`;
103
+ type DeferredSuccessfulGatedTransaction = {
104
+ status: GatedTransactionStatus.DEFERRED_SUCCESS;
105
+ };
106
+ export type GatedTransactionResult<GatedTx extends GatedTransaction = GatedTransaction, TxType extends Transaction = Transaction> = NoOpGatedTransaction | SuccessfulGatedTransaction<TxType> | TxFailedGatedTransaction | CheckFailedGatedTransaction<GatedTx, TxType> | DependencyFailedGatedTransaction | DeniedGatedTransaction | DeferredSuccessfulGatedTransaction;
117
107
  export type ResolvedGatedTransaction<GatedTx extends GatedTransaction = GatedTransaction, TxType extends Transaction = Transaction> = BaseGatedTransactionFor<GatedTx> & {
118
108
  result: GatedTransactionResult<GatedTx, TxType>;
119
109
  };
@@ -160,5 +150,22 @@ export declare const gatedTxCheckResultSchema: z.ZodObject<{
160
150
  expectationMet: z.ZodBoolean;
161
151
  data: z.ZodAny;
162
152
  }, z.core.$strip>;
153
+ export declare const gatedTransactionCacheSchema: z.ZodObject<{
154
+ getCachedTxCheckData: z.ZodType<(<GatedTx extends GatedTransaction>(gtx: GatedTx) => Promise<InferOnChainDataTypeFromGatedTransaction<GatedTx> | undefined>)>;
155
+ cacheSuccessfulTxCheckData: z.ZodType<(<GatedTx extends GatedTransaction>(gtx: GatedTx, data: InferOnChainDataTypeFromGatedTransaction<GatedTx>) => Promise<void>)>;
156
+ }, z.core.$strip>;
157
+ export type IGatedTransactionCache = z.infer<typeof gatedTransactionCacheSchema>;
158
+ /**
159
+ * name-chain-uniqueIdKeys
160
+ *
161
+ * E.g., setDelegate-ethereum-oAppAddress:0xMY_OAPP
162
+ */
163
+ export type GatedTransactionId = `${string}-${string}-${string}`;
164
+ /**
165
+ * bundleName-chain-uniqueIdKeys
166
+ *
167
+ * E.g., SetPeer-ton-oAppAddress:0xMY_OAPP
168
+ */
169
+ export type GatedTransactionBundleId = `${string}-${string}-${string}`;
163
170
  export {};
164
171
  //# sourceMappingURL=schemata.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"schemata.d.ts","sourceRoot":"","sources":["../src/schemata.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"schemata.d.ts","sourceRoot":"","sources":["../src/schemata.ts"],"names":[],"mappings":"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"}
package/dist/schemata.js CHANGED
@@ -1,4 +1,4 @@
1
- export { GatedTransactionStatus, createGatedTxCheckActivitySchema, createTxArrayDependentActivitySchema, createTxTupleDependentActivitySchema, gatedTransactionCacheSchema, gatedTransactionIsResolvedGatedTransaction, gatedTransactionResultSchema, gatedTransactionSchema, gatedTxCheckResultSchema, resolvedGatedTransactionSchema } from './RHEZ2PRK.js';
1
+ export { GatedTransactionStatus, createGatedTxCheckActivitySchema, createTxArrayDependentActivitySchema, createTxTupleDependentActivitySchema, gatedTransactionCacheSchema, gatedTransactionIsResolvedGatedTransaction, gatedTransactionResultSchema, gatedTransactionSchema, gatedTxCheckResultSchema, resolvedGatedTransactionSchema } from './XZJ4DGII.js';
2
2
  import './VUOMXK5T.js';
3
3
  //# sourceMappingURL=schemata.js.map
4
4
  //# sourceMappingURL=schemata.js.map
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@layerzerolabs/gated-transaction",
3
- "version": "0.2.22",
3
+ "version": "0.2.23",
4
4
  "private": false,
5
5
  "license": "MIT",
6
6
  "sideEffects": false,
@@ -16,18 +16,18 @@
16
16
  "types": "./dist/index.d.ts",
17
17
  "dependencies": {
18
18
  "zod": "4.3.5",
19
- "@layerzerolabs/common-chain-model": "0.2.22",
20
- "@layerzerolabs/zod-utils": "0.2.22",
21
- "@layerzerolabs/function-pointer": "0.2.22"
19
+ "@layerzerolabs/common-chain-model": "0.2.23",
20
+ "@layerzerolabs/function-pointer": "0.2.23",
21
+ "@layerzerolabs/zod-utils": "0.2.23"
22
22
  },
23
23
  "devDependencies": {
24
24
  "@types/lodash.isequal": "^4.5.8",
25
25
  "tsup": "^8.4.0",
26
26
  "vitest": "^3.2.3",
27
- "@layerzerolabs/base-definitions": "0.2.22",
28
- "@layerzerolabs/tsup-configuration": "0.2.22",
29
- "@layerzerolabs/typescript-configuration": "0.2.22",
30
- "@layerzerolabs/typescript-utils": "0.2.22"
27
+ "@layerzerolabs/base-definitions": "0.2.23",
28
+ "@layerzerolabs/tsup-configuration": "0.2.23",
29
+ "@layerzerolabs/typescript-configuration": "0.2.23",
30
+ "@layerzerolabs/typescript-utils": "0.2.23"
31
31
  },
32
32
  "publishConfig": {
33
33
  "access": "restricted",
package/src/gatedTx.ts CHANGED
@@ -1,5 +1,6 @@
1
1
  import type { HexString, Transaction } from '@layerzerolabs/common-chain-model';
2
2
  import type { FunctionPointer } from '@layerzerolabs/function-pointer';
3
+ import type { FunctionPointerWithArgs } from '@layerzerolabs/zod-utils';
3
4
 
4
5
  import type {
5
6
  BaseGatedTransaction,
@@ -30,6 +31,8 @@ export const constructGatedTransaction = <
30
31
  contractName: string;
31
32
  retryable?: boolean;
32
33
  abiEncodedConstructorArguments?: HexString;
34
+ // TODO: Should be FunctionPointerWithArgs<VerificationArtifact> (circular dependency)
35
+ createVerificationInfoPayloadPointerWithArgs?: FunctionPointerWithArgs<any>;
33
36
  };
34
37
  };
35
38
  check: {
@@ -76,6 +79,8 @@ export const constructGatedTransactionFromPointer = <
76
79
  contractName: string;
77
80
  abiEncodedConstructorArguments?: HexString;
78
81
  retryable?: boolean;
82
+ // TODO: Should be FunctionPointerWithArgs<VerificationArtifact> (circular dependency)
83
+ createVerificationInfoPayloadPointerWithArgs?: FunctionPointerWithArgs<any>;
79
84
  };
80
85
  };
81
86
  check: {
package/src/schemata.ts CHANGED
@@ -9,7 +9,7 @@ import {
9
9
  } from '@layerzerolabs/common-chain-model';
10
10
  import type { FunctionPointer } from '@layerzerolabs/function-pointer';
11
11
  import type { BrandedError, BuildTuple, IsAny, Or } from '@layerzerolabs/typescript-utils';
12
- import type { InferredArray } from '@layerzerolabs/zod-utils';
12
+ import type { FunctionPointerWithArgs, InferredArray } from '@layerzerolabs/zod-utils';
13
13
  import { customSchema, functionSchema } from '@layerzerolabs/zod-utils';
14
14
 
15
15
  export type OnChainDataComparisonOperator<OnChainDataType> =
@@ -40,6 +40,7 @@ export const gatedTransactionResultSchema = <
40
40
  txWithResultSchema: TxWithResultSchema,
41
41
  onchainDataSchema: OnchainDataSchema,
42
42
  ) =>
43
+ // FIXME use this as source of truth for GatedTransactionResult type
43
44
  z.union([
44
45
  z.object({
45
46
  status: z.literal(GatedTransactionStatus.NO_OP),
@@ -63,6 +64,9 @@ export const gatedTransactionResultSchema = <
63
64
  z.object({
64
65
  status: z.literal(GatedTransactionStatus.DENIED),
65
66
  }),
67
+ z.object({
68
+ status: z.literal(GatedTransactionStatus.DEFERRED_SUCCESS),
69
+ }),
66
70
  ]);
67
71
 
68
72
  export type InferOnChainDataTypeFromCheck<Check> = Check extends (...args: any[]) => infer Ret
@@ -86,6 +90,8 @@ export type BaseGatedTransaction<
86
90
  contractName: string;
87
91
  retryable?: boolean;
88
92
  abiEncodedConstructorArguments?: HexString;
93
+ // TODO: Should be FunctionPointerWithArgs<VerificationArtifact> (circular dependency)
94
+ createVerificationInfoPayloadPointerWithArgs?: FunctionPointerWithArgs<any>;
89
95
  };
90
96
  };
91
97
  chainName: string;
@@ -141,12 +147,20 @@ export type BaseGatedTransactionFor<GatedTx extends GatedTransaction> =
141
147
  : never;
142
148
 
143
149
  export enum GatedTransactionStatus {
150
+ // precheck passed, no need to send the tx
144
151
  NO_OP = 'no_op',
152
+ // precheck failed, tx was sent, postcheck passed
145
153
  SUCCESS = 'success',
154
+ // precheck failed, tx was sent but sender returned an error
146
155
  TRANSACTION_FAILED = 'transaction_failed',
156
+ // precheck failed, tx was sent, postcheck failed
147
157
  FINAL_CHECK_FAILED = 'final_check_failed',
158
+ // the tx couldn't be resolved because one of its dependencies resolved to a failed state
148
159
  DEPENDENCY_FAILED = 'dependency_failed',
160
+ // approval to send the tx was explictly denied
149
161
  DENIED = 'denied',
162
+ // precheck failed, tx was sent but indeterminate, deferred execution passed on a recheck
163
+ DEFERRED_SUCCESS = 'deferred_success',
150
164
  }
151
165
 
152
166
  type NoOpGatedTransaction = {
@@ -177,6 +191,10 @@ type DeniedGatedTransaction = {
177
191
  status: GatedTransactionStatus.DENIED;
178
192
  };
179
193
 
194
+ type DeferredSuccessfulGatedTransaction = {
195
+ status: GatedTransactionStatus.DEFERRED_SUCCESS;
196
+ };
197
+
180
198
  export type GatedTransactionResult<
181
199
  GatedTx extends GatedTransaction = GatedTransaction,
182
200
  TxType extends Transaction = Transaction,
@@ -186,43 +204,8 @@ export type GatedTransactionResult<
186
204
  | TxFailedGatedTransaction
187
205
  | CheckFailedGatedTransaction<GatedTx, TxType>
188
206
  | DependencyFailedGatedTransaction
189
- | DeniedGatedTransaction;
190
-
191
- export const gatedTransactionCacheSchema = z.object({
192
- getCachedTxCheckData: functionSchema({
193
- input: z.tuple([z.any()]),
194
- output: z.promise(z.any()),
195
- }) as z.ZodType<
196
- <GatedTx extends GatedTransaction>(
197
- gtx: GatedTx,
198
- ) => Promise<InferOnChainDataTypeFromGatedTransaction<GatedTx> | undefined>
199
- >,
200
- cacheSuccessfulTxCheckData: functionSchema({
201
- input: z.tuple([z.any(), z.any()]),
202
- output: z.promise(z.any()),
203
- }) as z.ZodType<
204
- <GatedTx extends GatedTransaction>(
205
- gtx: GatedTx,
206
- data: InferOnChainDataTypeFromGatedTransaction<GatedTx>,
207
- ) => Promise<void>
208
- >,
209
- });
210
-
211
- export type IGatedTransactionCache = z.infer<typeof gatedTransactionCacheSchema>;
212
-
213
- /**
214
- * name-chain-uniqueIdKeys
215
- *
216
- * E.g., setDelegate-ethereum-oAppAddress:0xMY_OAPP
217
- */
218
- export type GatedTransactionId = `${string}-${string}-${string}`;
219
-
220
- /**
221
- * bundleName-chain-uniqueIdKeys
222
- *
223
- * E.g., SetPeer-ton-oAppAddress:0xMY_OAPP
224
- */
225
- export type GatedTransactionBundleId = `${string}-${string}-${string}`;
207
+ | DeniedGatedTransaction
208
+ | DeferredSuccessfulGatedTransaction;
226
209
 
227
210
  export type ResolvedGatedTransaction<
228
211
  GatedTx extends GatedTransaction = GatedTransaction,
@@ -396,3 +379,39 @@ export const gatedTxCheckResultSchema = z.object({
396
379
  expectationMet: z.boolean(),
397
380
  data: z.any(),
398
381
  });
382
+
383
+ export const gatedTransactionCacheSchema = z.object({
384
+ getCachedTxCheckData: functionSchema({
385
+ input: z.tuple([z.any()]),
386
+ output: z.promise(z.any()),
387
+ }) as z.ZodType<
388
+ <GatedTx extends GatedTransaction>(
389
+ gtx: GatedTx,
390
+ ) => Promise<InferOnChainDataTypeFromGatedTransaction<GatedTx> | undefined>
391
+ >,
392
+ cacheSuccessfulTxCheckData: functionSchema({
393
+ input: z.tuple([z.any(), z.any()]),
394
+ output: z.promise(z.any()),
395
+ }) as z.ZodType<
396
+ <GatedTx extends GatedTransaction>(
397
+ gtx: GatedTx,
398
+ data: InferOnChainDataTypeFromGatedTransaction<GatedTx>,
399
+ ) => Promise<void>
400
+ >,
401
+ });
402
+
403
+ export type IGatedTransactionCache = z.infer<typeof gatedTransactionCacheSchema>;
404
+
405
+ /**
406
+ * name-chain-uniqueIdKeys
407
+ *
408
+ * E.g., setDelegate-ethereum-oAppAddress:0xMY_OAPP
409
+ */
410
+ export type GatedTransactionId = `${string}-${string}-${string}`;
411
+
412
+ /**
413
+ * bundleName-chain-uniqueIdKeys
414
+ *
415
+ * E.g., SetPeer-ton-oAppAddress:0xMY_OAPP
416
+ */
417
+ export type GatedTransactionBundleId = `${string}-${string}-${string}`;
@@ -1 +0,0 @@
1
- {"version":3,"sources":["../src/schemata.ts"],"names":["gatedTransactionResultSchema","__name","txWithResultSchema","onchainDataSchema","z","union","object","status","literal","submittedTransaction","transactionError","any","finalOnChainState","GatedTransactionStatus","gatedTransactionCacheSchema","getCachedTxCheckData","functionSchema","input","tuple","output","promise","cacheSuccessfulTxCheckData","gatedTransactionIsResolvedGatedTransaction","gtx","result","gatedTransactionSchema","_","customSchema","meta","title","description","resolvedGatedTransactionSchema","createTxArrayDependentActivitySchema","transactionSchema","extraArgs","array","def","items","createTxTupleDependentActivitySchema","txNumber","txs","Array","from","length","createGatedTxCheckActivitySchema","transactionWithResultSchema","_transactionWithResultSchema","optional","gatedTxCheckResultSchema","expectationMet","boolean","data"],"mappings":"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","file":"BPVWQ6EE.cjs","sourcesContent":["import z from 'zod';\n\nimport type { transactionSchema as _transactionSchema } from '@layerzerolabs/common-chain-model';\nimport type { HexString } from '@layerzerolabs/common-chain-model';\nimport {\n type Transaction,\n type TransactionWithResultFor,\n transactionWithResultSchema as _transactionWithResultSchema,\n} from '@layerzerolabs/common-chain-model';\nimport type { FunctionPointer } from '@layerzerolabs/function-pointer';\nimport type { BrandedError, BuildTuple, IsAny, Or } from '@layerzerolabs/typescript-utils';\nimport type { InferredArray } from '@layerzerolabs/zod-utils';\nimport { customSchema, functionSchema } from '@layerzerolabs/zod-utils';\n\nexport type OnChainDataComparisonOperator<OnChainDataType> =\n Or<[OnChainDataType extends number ? true : false, IsAny<OnChainDataType>]> extends true\n ? '<' | '<=' | '=' | '!=' | '>' | '>='\n : OnChainDataType extends string | object | boolean\n ? '=' | '!='\n : BrandedError<'Unsupported comparison type'>;\n\nexport type OnChainDataComparison<OnChainDataType extends string | number | boolean | object> = {\n operator: OnChainDataComparisonOperator<OnChainDataType>;\n comparisonValue: OnChainDataType;\n};\n\nexport type GatedTransactionCheck<\n Method extends (...args: any[]) => Promise<any> = (...args: any[]) => Promise<unknown>,\n> = {\n functionPointer: FunctionPointer<Method>;\n params: Parameters<Method>;\n expectedResult: OnChainDataComparison<Awaited<ReturnType<Method>>>;\n};\n\n// Schema for gated transaction results\nexport const gatedTransactionResultSchema = <\n TxWithResultSchema extends typeof _transactionWithResultSchema,\n OnchainDataSchema extends z.ZodType,\n>(\n txWithResultSchema: TxWithResultSchema,\n onchainDataSchema: OnchainDataSchema,\n) =>\n z.union([\n z.object({\n status: z.literal(GatedTransactionStatus.NO_OP),\n }),\n z.object({\n status: z.literal(GatedTransactionStatus.SUCCESS),\n submittedTransaction: txWithResultSchema,\n }),\n z.object({\n status: z.literal(GatedTransactionStatus.TRANSACTION_FAILED),\n transactionError: z.any(),\n }),\n z.object({\n status: z.literal(GatedTransactionStatus.FINAL_CHECK_FAILED),\n submittedTransaction: txWithResultSchema,\n finalOnChainState: onchainDataSchema,\n }),\n z.object({\n status: z.literal(GatedTransactionStatus.DEPENDENCY_FAILED),\n }),\n z.object({\n status: z.literal(GatedTransactionStatus.DENIED),\n }),\n ]);\n\nexport type InferOnChainDataTypeFromCheck<Check> = Check extends (...args: any[]) => infer Ret\n ? Awaited<Ret>\n : unknown;\nexport type InferOnChainDataTypeFromGatedTransaction<GatedTx extends GatedTransaction> =\n InferOnChainDataTypeFromCheck<GatedTx['check']>;\n\nexport type GatedTransactionDependencies = GatedTransaction[];\nexport type BaseGatedTransaction<\n Name extends string = string,\n CheckMethod extends (...args: any[]) => any = (...args: any[]) => any,\n _Dependencies extends GatedTransactionDependencies = GatedTransactionDependencies,\n> = {\n name: Name;\n description?: string;\n bundleName?: string;\n metadata?: {\n deployInfo?: {\n saveArtifact: boolean;\n contractName: string;\n retryable?: boolean;\n abiEncodedConstructorArguments?: HexString;\n };\n };\n chainName: string;\n check: GatedTransactionCheck<CheckMethod>;\n dependencies: _Dependencies;\n cacheable?: boolean;\n uniqueIdKeys?: Record<string, string | number | boolean>;\n};\n\nexport type LiteralGatedTransaction<\n Name extends string = string,\n TxType extends Transaction = Transaction,\n CheckMethod extends (...args: any[]) => any = (...args: any[]) => any,\n _Dependencies extends GatedTransactionDependencies = GatedTransactionDependencies,\n> = BaseGatedTransaction<Name, CheckMethod, _Dependencies> & {\n transactionType: 'literal';\n transaction: TxType;\n};\n\nexport type FunctionalGatedTransaction<\n Name extends string = string,\n TxType extends Transaction = Transaction,\n CheckMethod extends (...args: any[]) => any = (...args: any[]) => any,\n DepMethod extends (txs: any, ...args: any[]) => Promise<TxType> = (\n txs: any,\n ...args: any[]\n ) => Promise<any>,\n _Dependencies extends GatedTransactionDependencies = GatedTransactionDependencies,\n> = BaseGatedTransaction<Name, CheckMethod, _Dependencies> & {\n transactionType: 'functional';\n getTransaction: {\n functionPointer: FunctionPointer<DepMethod>;\n params: Parameters<DepMethod> extends [any, ...infer Tail] ? Tail : [];\n };\n};\n\nexport type GatedTransaction<\n Name extends string = string,\n TxType extends Transaction = Transaction,\n CheckMethod extends (...args: any[]) => any = (...args: any[]) => any,\n DepMethod extends (txs: any, ...args: any[]) => Promise<TxType> = (\n txs: any,\n ...args: any[]\n ) => Promise<any>,\n _Dependencies extends GatedTransactionDependencies = GatedTransactionDependencies,\n> =\n | LiteralGatedTransaction<Name, TxType, CheckMethod, _Dependencies>\n | FunctionalGatedTransaction<Name, TxType, CheckMethod, DepMethod, _Dependencies>;\n\nexport type BaseGatedTransactionFor<GatedTx extends GatedTransaction> =\n GatedTx extends GatedTransaction<infer Name, any, infer CheckMethod, any, infer _Dependencies>\n ? BaseGatedTransaction<Name, CheckMethod, _Dependencies>\n : never;\n\nexport enum GatedTransactionStatus {\n NO_OP = 'no_op',\n SUCCESS = 'success',\n TRANSACTION_FAILED = 'transaction_failed',\n FINAL_CHECK_FAILED = 'final_check_failed',\n DEPENDENCY_FAILED = 'dependency_failed',\n DENIED = 'denied',\n}\n\ntype NoOpGatedTransaction = {\n status: GatedTransactionStatus.NO_OP;\n};\n\ntype SuccessfulGatedTransaction<TxType extends Transaction> = {\n status: GatedTransactionStatus.SUCCESS;\n submittedTransaction: TransactionWithResultFor<TxType>;\n};\n\ntype TxFailedGatedTransaction = {\n status: GatedTransactionStatus.TRANSACTION_FAILED;\n transactionError: any;\n};\n\ntype CheckFailedGatedTransaction<GatedTx extends GatedTransaction, TxType extends Transaction> = {\n status: GatedTransactionStatus.FINAL_CHECK_FAILED;\n submittedTransaction: TransactionWithResultFor<TxType>;\n finalOnChainState: InferOnChainDataTypeFromGatedTransaction<GatedTx>;\n};\n\ntype DependencyFailedGatedTransaction = {\n status: GatedTransactionStatus.DEPENDENCY_FAILED;\n};\n\ntype DeniedGatedTransaction = {\n status: GatedTransactionStatus.DENIED;\n};\n\nexport type GatedTransactionResult<\n GatedTx extends GatedTransaction = GatedTransaction,\n TxType extends Transaction = Transaction,\n> =\n | NoOpGatedTransaction\n | SuccessfulGatedTransaction<TxType>\n | TxFailedGatedTransaction\n | CheckFailedGatedTransaction<GatedTx, TxType>\n | DependencyFailedGatedTransaction\n | DeniedGatedTransaction;\n\nexport const gatedTransactionCacheSchema = z.object({\n getCachedTxCheckData: functionSchema({\n input: z.tuple([z.any()]),\n output: z.promise(z.any()),\n }) as z.ZodType<\n <GatedTx extends GatedTransaction>(\n gtx: GatedTx,\n ) => Promise<InferOnChainDataTypeFromGatedTransaction<GatedTx> | undefined>\n >,\n cacheSuccessfulTxCheckData: functionSchema({\n input: z.tuple([z.any(), z.any()]),\n output: z.promise(z.any()),\n }) as z.ZodType<\n <GatedTx extends GatedTransaction>(\n gtx: GatedTx,\n data: InferOnChainDataTypeFromGatedTransaction<GatedTx>,\n ) => Promise<void>\n >,\n});\n\nexport type IGatedTransactionCache = z.infer<typeof gatedTransactionCacheSchema>;\n\n/**\n * name-chain-uniqueIdKeys\n *\n * E.g., setDelegate-ethereum-oAppAddress:0xMY_OAPP\n */\nexport type GatedTransactionId = `${string}-${string}-${string}`;\n\n/**\n * bundleName-chain-uniqueIdKeys\n *\n * E.g., SetPeer-ton-oAppAddress:0xMY_OAPP\n */\nexport type GatedTransactionBundleId = `${string}-${string}-${string}`;\n\nexport type ResolvedGatedTransaction<\n GatedTx extends GatedTransaction = GatedTransaction,\n TxType extends Transaction = Transaction,\n> = BaseGatedTransactionFor<GatedTx> & {\n result: GatedTransactionResult<GatedTx, TxType>;\n};\n\nexport const gatedTransactionIsResolvedGatedTransaction = (\n gtx: GatedTransaction | ResolvedGatedTransaction,\n): gtx is ResolvedGatedTransaction => !!(gtx as ResolvedGatedTransaction).result;\n\nexport const gatedTransactionSchema = <\n Name extends z.ZodString | z.ZodLiteral<string> = z.ZodString,\n TransactionSchema extends typeof _transactionSchema = typeof _transactionSchema,\n>(_?: {\n name?: Name;\n transactionSchema?: TransactionSchema;\n}) =>\n customSchema<GatedTransaction<z.infer<Name>, z.infer<TransactionSchema>>>().meta({\n title: 'Gated Transaction',\n description: 'A schema for a gated transaction',\n });\n\nexport const resolvedGatedTransactionSchema = <\n Name extends z.ZodString | z.ZodLiteral<string> = z.ZodString,\n TransactionSchema extends typeof _transactionSchema = typeof _transactionSchema,\n>(_?: {\n name?: Name;\n transactionSchema?: TransactionSchema;\n}) =>\n customSchema<\n ResolvedGatedTransaction<\n GatedTransaction<z.infer<Name>, z.infer<TransactionSchema>>,\n z.infer<TransactionSchema>\n >\n >().meta({\n title: 'Resolved Gated Transaction',\n description: 'A schema for a resolved gated transaction',\n });\n\n/**\n * Builds a schema for an activity that builds a transaction based on the results of other transactions\n * @param transactionSchema The schema for the transaction to be built\n * @param transactionWithResultSchema The schema for the results of the transactions you're building off of\n * @param txNumber The number of transactions you're building off of\n * @param extraArgs Additional arguments that must be passed to the function after the txes\n * @returns A schema for the activity that builds the transaction\n */\nexport const createTxArrayDependentActivitySchema = <\n TransactionSchema extends typeof _transactionSchema = typeof _transactionSchema,\n ExtraArgs extends z.ZodTuple = z.ZodTuple<[]>,\n>(\n transactionSchema: TransactionSchema,\n extraArgs?: ExtraArgs,\n) => {\n return functionSchema({\n input: z.tuple([\n z.array(\n resolvedGatedTransactionSchema({\n transactionSchema,\n }),\n ),\n ...(extraArgs?.def?.items ?? []),\n ]),\n output: z.promise(transactionSchema),\n }) as unknown as z.ZodType<\n [] extends z.infer<ExtraArgs>\n ? (\n txs: ResolvedGatedTransaction<\n GatedTransaction<string, z.infer<TransactionSchema>>\n >[],\n ) => Promise<z.infer<TransactionSchema>>\n : (\n txs: ResolvedGatedTransaction<\n GatedTransaction<string, z.infer<TransactionSchema>>\n >[],\n ...extraArgs: z.infer<ExtraArgs>\n ) => Promise<z.infer<TransactionSchema>>\n >;\n};\n/**\n * Builds a schema for an activity that builds a transaction based on the results of other transactions\n * @param transactionSchema The schema for the transaction to be built\n * @param transactionWithResultSchema The schema for the results of the transactions you're building off of\n * @param txNumber The number of transactions you're building off of\n * @param extraArgs Additional arguments that must be passed to the function after the txes\n * @returns A schema for the activity that builds the transaction\n */\nexport const createTxTupleDependentActivitySchema = <\n TransactionSchema extends typeof _transactionSchema = typeof _transactionSchema,\n const TxNumber extends number = 1,\n ExtraArgs extends z.ZodTuple = z.ZodTuple<[]>,\n>(\n transactionSchema: TransactionSchema,\n txNumber: TxNumber,\n extraArgs?: ExtraArgs,\n) => {\n const txs = Array.from({ length: txNumber }, () =>\n resolvedGatedTransactionSchema({\n transactionSchema: transactionSchema,\n }),\n );\n\n return functionSchema({\n input: z.tuple([z.tuple(txs as any), ...(extraArgs?.def?.items ?? [])]),\n output: z.promise(transactionSchema),\n }) as unknown as z.ZodType<\n [] extends z.infer<ExtraArgs>\n ? (\n txs: BuildTuple<\n ResolvedGatedTransaction<\n GatedTransaction<string, z.infer<TransactionSchema>>\n >,\n TxNumber\n >,\n ) => Promise<z.infer<TransactionSchema>>\n : (\n txs: BuildTuple<\n ResolvedGatedTransaction<\n GatedTransaction<string, z.infer<TransactionSchema>>\n >,\n TxNumber\n >,\n ...extraArgs: z.infer<ExtraArgs>\n ) => Promise<z.infer<TransactionSchema>>\n >;\n};\n\nexport const createGatedTxCheckActivitySchema = <\n Output extends z.ZodType,\n const Input extends z.ZodType[] = [],\n TransactionWithResultSchema extends\n typeof _transactionWithResultSchema = typeof _transactionWithResultSchema,\n>({\n input,\n output,\n transactionWithResultSchema,\n}: {\n input?: Input;\n transactionWithResultSchema?: TransactionWithResultSchema;\n output: Output;\n}) => {\n const txWithResultSchema = (\n transactionWithResultSchema ?? _transactionWithResultSchema\n ).optional();\n\n return functionSchema({\n input: z.tuple([...(input ?? []), txWithResultSchema] as any),\n output: z.promise(output),\n }) as z.ZodType<\n (\n ...args: [...InferredArray<Input>, z.infer<TransactionWithResultSchema>?]\n ) => Promise<z.infer<Output>>\n >;\n};\n\nexport type ResolvedGatedTransactionDependencies<GatedTx extends GatedTransaction> =\n GatedTx extends GatedTransaction<any, any, any, any, infer _Dependencies>\n ? {\n [K in keyof _Dependencies]?: ResolvedGatedTransaction<_Dependencies[K]>;\n }\n : never;\n\nexport interface GatedTxCheckResult {\n expectationMet: boolean;\n data: unknown;\n}\n\nexport const gatedTxCheckResultSchema = z.object({\n expectationMet: z.boolean(),\n data: z.any(),\n});\n"]}
@@ -1 +0,0 @@
1
- {"version":3,"sources":["../src/schemata.ts"],"names":["gatedTransactionResultSchema","txWithResultSchema","onchainDataSchema","z","union","object","status","literal","submittedTransaction","transactionError","any","finalOnChainState","GatedTransactionStatus","gatedTransactionCacheSchema","getCachedTxCheckData","functionSchema","input","tuple","output","promise","cacheSuccessfulTxCheckData","gatedTransactionIsResolvedGatedTransaction","gtx","result","gatedTransactionSchema","_","customSchema","meta","title","description","resolvedGatedTransactionSchema","createTxArrayDependentActivitySchema","transactionSchema","extraArgs","array","def","items","createTxTupleDependentActivitySchema","txNumber","txs","Array","from","length","createGatedTxCheckActivitySchema","transactionWithResultSchema","_transactionWithResultSchema","optional","gatedTxCheckResultSchema","expectationMet","boolean","data"],"mappings":"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","file":"RHEZ2PRK.js","sourcesContent":["import z from 'zod';\n\nimport type { transactionSchema as _transactionSchema } from '@layerzerolabs/common-chain-model';\nimport type { HexString } from '@layerzerolabs/common-chain-model';\nimport {\n type Transaction,\n type TransactionWithResultFor,\n transactionWithResultSchema as _transactionWithResultSchema,\n} from '@layerzerolabs/common-chain-model';\nimport type { FunctionPointer } from '@layerzerolabs/function-pointer';\nimport type { BrandedError, BuildTuple, IsAny, Or } from '@layerzerolabs/typescript-utils';\nimport type { InferredArray } from '@layerzerolabs/zod-utils';\nimport { customSchema, functionSchema } from '@layerzerolabs/zod-utils';\n\nexport type OnChainDataComparisonOperator<OnChainDataType> =\n Or<[OnChainDataType extends number ? true : false, IsAny<OnChainDataType>]> extends true\n ? '<' | '<=' | '=' | '!=' | '>' | '>='\n : OnChainDataType extends string | object | boolean\n ? '=' | '!='\n : BrandedError<'Unsupported comparison type'>;\n\nexport type OnChainDataComparison<OnChainDataType extends string | number | boolean | object> = {\n operator: OnChainDataComparisonOperator<OnChainDataType>;\n comparisonValue: OnChainDataType;\n};\n\nexport type GatedTransactionCheck<\n Method extends (...args: any[]) => Promise<any> = (...args: any[]) => Promise<unknown>,\n> = {\n functionPointer: FunctionPointer<Method>;\n params: Parameters<Method>;\n expectedResult: OnChainDataComparison<Awaited<ReturnType<Method>>>;\n};\n\n// Schema for gated transaction results\nexport const gatedTransactionResultSchema = <\n TxWithResultSchema extends typeof _transactionWithResultSchema,\n OnchainDataSchema extends z.ZodType,\n>(\n txWithResultSchema: TxWithResultSchema,\n onchainDataSchema: OnchainDataSchema,\n) =>\n z.union([\n z.object({\n status: z.literal(GatedTransactionStatus.NO_OP),\n }),\n z.object({\n status: z.literal(GatedTransactionStatus.SUCCESS),\n submittedTransaction: txWithResultSchema,\n }),\n z.object({\n status: z.literal(GatedTransactionStatus.TRANSACTION_FAILED),\n transactionError: z.any(),\n }),\n z.object({\n status: z.literal(GatedTransactionStatus.FINAL_CHECK_FAILED),\n submittedTransaction: txWithResultSchema,\n finalOnChainState: onchainDataSchema,\n }),\n z.object({\n status: z.literal(GatedTransactionStatus.DEPENDENCY_FAILED),\n }),\n z.object({\n status: z.literal(GatedTransactionStatus.DENIED),\n }),\n ]);\n\nexport type InferOnChainDataTypeFromCheck<Check> = Check extends (...args: any[]) => infer Ret\n ? Awaited<Ret>\n : unknown;\nexport type InferOnChainDataTypeFromGatedTransaction<GatedTx extends GatedTransaction> =\n InferOnChainDataTypeFromCheck<GatedTx['check']>;\n\nexport type GatedTransactionDependencies = GatedTransaction[];\nexport type BaseGatedTransaction<\n Name extends string = string,\n CheckMethod extends (...args: any[]) => any = (...args: any[]) => any,\n _Dependencies extends GatedTransactionDependencies = GatedTransactionDependencies,\n> = {\n name: Name;\n description?: string;\n bundleName?: string;\n metadata?: {\n deployInfo?: {\n saveArtifact: boolean;\n contractName: string;\n retryable?: boolean;\n abiEncodedConstructorArguments?: HexString;\n };\n };\n chainName: string;\n check: GatedTransactionCheck<CheckMethod>;\n dependencies: _Dependencies;\n cacheable?: boolean;\n uniqueIdKeys?: Record<string, string | number | boolean>;\n};\n\nexport type LiteralGatedTransaction<\n Name extends string = string,\n TxType extends Transaction = Transaction,\n CheckMethod extends (...args: any[]) => any = (...args: any[]) => any,\n _Dependencies extends GatedTransactionDependencies = GatedTransactionDependencies,\n> = BaseGatedTransaction<Name, CheckMethod, _Dependencies> & {\n transactionType: 'literal';\n transaction: TxType;\n};\n\nexport type FunctionalGatedTransaction<\n Name extends string = string,\n TxType extends Transaction = Transaction,\n CheckMethod extends (...args: any[]) => any = (...args: any[]) => any,\n DepMethod extends (txs: any, ...args: any[]) => Promise<TxType> = (\n txs: any,\n ...args: any[]\n ) => Promise<any>,\n _Dependencies extends GatedTransactionDependencies = GatedTransactionDependencies,\n> = BaseGatedTransaction<Name, CheckMethod, _Dependencies> & {\n transactionType: 'functional';\n getTransaction: {\n functionPointer: FunctionPointer<DepMethod>;\n params: Parameters<DepMethod> extends [any, ...infer Tail] ? Tail : [];\n };\n};\n\nexport type GatedTransaction<\n Name extends string = string,\n TxType extends Transaction = Transaction,\n CheckMethod extends (...args: any[]) => any = (...args: any[]) => any,\n DepMethod extends (txs: any, ...args: any[]) => Promise<TxType> = (\n txs: any,\n ...args: any[]\n ) => Promise<any>,\n _Dependencies extends GatedTransactionDependencies = GatedTransactionDependencies,\n> =\n | LiteralGatedTransaction<Name, TxType, CheckMethod, _Dependencies>\n | FunctionalGatedTransaction<Name, TxType, CheckMethod, DepMethod, _Dependencies>;\n\nexport type BaseGatedTransactionFor<GatedTx extends GatedTransaction> =\n GatedTx extends GatedTransaction<infer Name, any, infer CheckMethod, any, infer _Dependencies>\n ? BaseGatedTransaction<Name, CheckMethod, _Dependencies>\n : never;\n\nexport enum GatedTransactionStatus {\n NO_OP = 'no_op',\n SUCCESS = 'success',\n TRANSACTION_FAILED = 'transaction_failed',\n FINAL_CHECK_FAILED = 'final_check_failed',\n DEPENDENCY_FAILED = 'dependency_failed',\n DENIED = 'denied',\n}\n\ntype NoOpGatedTransaction = {\n status: GatedTransactionStatus.NO_OP;\n};\n\ntype SuccessfulGatedTransaction<TxType extends Transaction> = {\n status: GatedTransactionStatus.SUCCESS;\n submittedTransaction: TransactionWithResultFor<TxType>;\n};\n\ntype TxFailedGatedTransaction = {\n status: GatedTransactionStatus.TRANSACTION_FAILED;\n transactionError: any;\n};\n\ntype CheckFailedGatedTransaction<GatedTx extends GatedTransaction, TxType extends Transaction> = {\n status: GatedTransactionStatus.FINAL_CHECK_FAILED;\n submittedTransaction: TransactionWithResultFor<TxType>;\n finalOnChainState: InferOnChainDataTypeFromGatedTransaction<GatedTx>;\n};\n\ntype DependencyFailedGatedTransaction = {\n status: GatedTransactionStatus.DEPENDENCY_FAILED;\n};\n\ntype DeniedGatedTransaction = {\n status: GatedTransactionStatus.DENIED;\n};\n\nexport type GatedTransactionResult<\n GatedTx extends GatedTransaction = GatedTransaction,\n TxType extends Transaction = Transaction,\n> =\n | NoOpGatedTransaction\n | SuccessfulGatedTransaction<TxType>\n | TxFailedGatedTransaction\n | CheckFailedGatedTransaction<GatedTx, TxType>\n | DependencyFailedGatedTransaction\n | DeniedGatedTransaction;\n\nexport const gatedTransactionCacheSchema = z.object({\n getCachedTxCheckData: functionSchema({\n input: z.tuple([z.any()]),\n output: z.promise(z.any()),\n }) as z.ZodType<\n <GatedTx extends GatedTransaction>(\n gtx: GatedTx,\n ) => Promise<InferOnChainDataTypeFromGatedTransaction<GatedTx> | undefined>\n >,\n cacheSuccessfulTxCheckData: functionSchema({\n input: z.tuple([z.any(), z.any()]),\n output: z.promise(z.any()),\n }) as z.ZodType<\n <GatedTx extends GatedTransaction>(\n gtx: GatedTx,\n data: InferOnChainDataTypeFromGatedTransaction<GatedTx>,\n ) => Promise<void>\n >,\n});\n\nexport type IGatedTransactionCache = z.infer<typeof gatedTransactionCacheSchema>;\n\n/**\n * name-chain-uniqueIdKeys\n *\n * E.g., setDelegate-ethereum-oAppAddress:0xMY_OAPP\n */\nexport type GatedTransactionId = `${string}-${string}-${string}`;\n\n/**\n * bundleName-chain-uniqueIdKeys\n *\n * E.g., SetPeer-ton-oAppAddress:0xMY_OAPP\n */\nexport type GatedTransactionBundleId = `${string}-${string}-${string}`;\n\nexport type ResolvedGatedTransaction<\n GatedTx extends GatedTransaction = GatedTransaction,\n TxType extends Transaction = Transaction,\n> = BaseGatedTransactionFor<GatedTx> & {\n result: GatedTransactionResult<GatedTx, TxType>;\n};\n\nexport const gatedTransactionIsResolvedGatedTransaction = (\n gtx: GatedTransaction | ResolvedGatedTransaction,\n): gtx is ResolvedGatedTransaction => !!(gtx as ResolvedGatedTransaction).result;\n\nexport const gatedTransactionSchema = <\n Name extends z.ZodString | z.ZodLiteral<string> = z.ZodString,\n TransactionSchema extends typeof _transactionSchema = typeof _transactionSchema,\n>(_?: {\n name?: Name;\n transactionSchema?: TransactionSchema;\n}) =>\n customSchema<GatedTransaction<z.infer<Name>, z.infer<TransactionSchema>>>().meta({\n title: 'Gated Transaction',\n description: 'A schema for a gated transaction',\n });\n\nexport const resolvedGatedTransactionSchema = <\n Name extends z.ZodString | z.ZodLiteral<string> = z.ZodString,\n TransactionSchema extends typeof _transactionSchema = typeof _transactionSchema,\n>(_?: {\n name?: Name;\n transactionSchema?: TransactionSchema;\n}) =>\n customSchema<\n ResolvedGatedTransaction<\n GatedTransaction<z.infer<Name>, z.infer<TransactionSchema>>,\n z.infer<TransactionSchema>\n >\n >().meta({\n title: 'Resolved Gated Transaction',\n description: 'A schema for a resolved gated transaction',\n });\n\n/**\n * Builds a schema for an activity that builds a transaction based on the results of other transactions\n * @param transactionSchema The schema for the transaction to be built\n * @param transactionWithResultSchema The schema for the results of the transactions you're building off of\n * @param txNumber The number of transactions you're building off of\n * @param extraArgs Additional arguments that must be passed to the function after the txes\n * @returns A schema for the activity that builds the transaction\n */\nexport const createTxArrayDependentActivitySchema = <\n TransactionSchema extends typeof _transactionSchema = typeof _transactionSchema,\n ExtraArgs extends z.ZodTuple = z.ZodTuple<[]>,\n>(\n transactionSchema: TransactionSchema,\n extraArgs?: ExtraArgs,\n) => {\n return functionSchema({\n input: z.tuple([\n z.array(\n resolvedGatedTransactionSchema({\n transactionSchema,\n }),\n ),\n ...(extraArgs?.def?.items ?? []),\n ]),\n output: z.promise(transactionSchema),\n }) as unknown as z.ZodType<\n [] extends z.infer<ExtraArgs>\n ? (\n txs: ResolvedGatedTransaction<\n GatedTransaction<string, z.infer<TransactionSchema>>\n >[],\n ) => Promise<z.infer<TransactionSchema>>\n : (\n txs: ResolvedGatedTransaction<\n GatedTransaction<string, z.infer<TransactionSchema>>\n >[],\n ...extraArgs: z.infer<ExtraArgs>\n ) => Promise<z.infer<TransactionSchema>>\n >;\n};\n/**\n * Builds a schema for an activity that builds a transaction based on the results of other transactions\n * @param transactionSchema The schema for the transaction to be built\n * @param transactionWithResultSchema The schema for the results of the transactions you're building off of\n * @param txNumber The number of transactions you're building off of\n * @param extraArgs Additional arguments that must be passed to the function after the txes\n * @returns A schema for the activity that builds the transaction\n */\nexport const createTxTupleDependentActivitySchema = <\n TransactionSchema extends typeof _transactionSchema = typeof _transactionSchema,\n const TxNumber extends number = 1,\n ExtraArgs extends z.ZodTuple = z.ZodTuple<[]>,\n>(\n transactionSchema: TransactionSchema,\n txNumber: TxNumber,\n extraArgs?: ExtraArgs,\n) => {\n const txs = Array.from({ length: txNumber }, () =>\n resolvedGatedTransactionSchema({\n transactionSchema: transactionSchema,\n }),\n );\n\n return functionSchema({\n input: z.tuple([z.tuple(txs as any), ...(extraArgs?.def?.items ?? [])]),\n output: z.promise(transactionSchema),\n }) as unknown as z.ZodType<\n [] extends z.infer<ExtraArgs>\n ? (\n txs: BuildTuple<\n ResolvedGatedTransaction<\n GatedTransaction<string, z.infer<TransactionSchema>>\n >,\n TxNumber\n >,\n ) => Promise<z.infer<TransactionSchema>>\n : (\n txs: BuildTuple<\n ResolvedGatedTransaction<\n GatedTransaction<string, z.infer<TransactionSchema>>\n >,\n TxNumber\n >,\n ...extraArgs: z.infer<ExtraArgs>\n ) => Promise<z.infer<TransactionSchema>>\n >;\n};\n\nexport const createGatedTxCheckActivitySchema = <\n Output extends z.ZodType,\n const Input extends z.ZodType[] = [],\n TransactionWithResultSchema extends\n typeof _transactionWithResultSchema = typeof _transactionWithResultSchema,\n>({\n input,\n output,\n transactionWithResultSchema,\n}: {\n input?: Input;\n transactionWithResultSchema?: TransactionWithResultSchema;\n output: Output;\n}) => {\n const txWithResultSchema = (\n transactionWithResultSchema ?? _transactionWithResultSchema\n ).optional();\n\n return functionSchema({\n input: z.tuple([...(input ?? []), txWithResultSchema] as any),\n output: z.promise(output),\n }) as z.ZodType<\n (\n ...args: [...InferredArray<Input>, z.infer<TransactionWithResultSchema>?]\n ) => Promise<z.infer<Output>>\n >;\n};\n\nexport type ResolvedGatedTransactionDependencies<GatedTx extends GatedTransaction> =\n GatedTx extends GatedTransaction<any, any, any, any, infer _Dependencies>\n ? {\n [K in keyof _Dependencies]?: ResolvedGatedTransaction<_Dependencies[K]>;\n }\n : never;\n\nexport interface GatedTxCheckResult {\n expectationMet: boolean;\n data: unknown;\n}\n\nexport const gatedTxCheckResultSchema = z.object({\n expectationMet: z.boolean(),\n data: z.any(),\n});\n"]}
@@ -1 +0,0 @@
1
- {"version":3,"sources":["../src/gatedTx.ts"],"names":["constructGatedTransaction","gtx","dependencies","transactionType","constructGatedTransactionFromPointer","getIdForGatedTransaction","serializedUniqueIdKeys","uniqueIdKeys","Object","entries","map","k","v","join","name","chainName","getBundleIdForGatedTransaction","bundleName"],"mappings":";;;;;AAgBO,IAAMA,yBAAAA,wCAKXC,GAAAA,KAAAA;AAuBE,EAAA,MAAMC,YAAAA,GAAeD,GAAAA,CAAIC,YAAAA,IAAiB,EAAA;AAC1C,EAAA,OAAO;IAAE,GAAGD,GAAAA;IAAKE,eAAAA,EAAiB,SAAA;AAAWD,IAAAA;AAAa,GAAA;AAC9D,CAAA,EA9ByC,2BAAA;AA8ClC,IAAME,oCAAAA,wCAKXH,GAAAA,KAAAA;AA0BE,EAAA,OAAO;IACH,GAAGA,GAAAA;IACHE,eAAAA,EAAiB;AACrB,GAAA;AACJ,CAAA,EAnCoD,sCAAA;AAqC7C,IAAME,wBAAAA,wCAA4BJ,GAAAA,KAAAA;AACrC,EAAA,MAAMK,sBAAAA,GAAyBL,IAAIM,YAAAA,GAC7BC,MAAAA,CAAOC,QAAQR,GAAAA,CAAIM,YAAY,CAAA,CAC1BG,GAAAA,CAAI,CAAC,CAACC,GAAGC,CAAAA,CAAAA,KAAO,GAAGD,CAAAA,CAAAA,CAAAA,EAAKC,CAAAA,CAAAA,CAAG,CAAA,CAC3BC,IAAAA,CAAK,GAAA,CAAA,GACV,EAAA;AAEN,EAAA,OAAO,GAAGZ,GAAAA,CAAIa,IAAI,IAAIb,GAAAA,CAAIc,SAAS,IAAIT,sBAAAA,CAAAA,CAAAA;AAC3C,CAAA,EARwC,0BAAA;AAUjC,IAAMU,8BAAAA,wCACTf,GAAAA,KAAAA;AAEA,EAAA,MAAMK,sBAAAA,GAAyBL,IAAIM,YAAAA,GAC7BC,MAAAA,CAAOC,QAAQR,GAAAA,CAAIM,YAAY,CAAA,CAC1BG,GAAAA,CAAI,CAAC,CAACC,GAAGC,CAAAA,CAAAA,KAAO,GAAGD,CAAAA,CAAAA,CAAAA,EAAKC,CAAAA,CAAAA,CAAG,CAAA,CAC3BC,IAAAA,CAAK,GAAA,CAAA,GACV,EAAA;AAEN,EAAA,OAAO,GAAGZ,GAAAA,CAAIgB,UAAU,IAAIhB,GAAAA,CAAIc,SAAS,IAAIT,sBAAAA,CAAAA,CAAAA;AACjD,CAAA,EAV8C,gCAAA","file":"SXSNYFO6.cjs","sourcesContent":["import type { HexString, Transaction } from '@layerzerolabs/common-chain-model';\nimport type { FunctionPointer } from '@layerzerolabs/function-pointer';\n\nimport type {\n BaseGatedTransaction,\n GatedTransaction,\n GatedTransactionBundleId,\n GatedTransactionDependencies,\n GatedTransactionId,\n OnChainDataComparison,\n ResolvedGatedTransaction,\n} from './schemata';\n\n/**\n * Builds a {@link GatedTransaction}\n */\nexport const constructGatedTransaction = <\n const Name extends string,\n Tx extends Transaction,\n Method extends (...args: any[]) => any,\n _Dependencies extends GatedTransactionDependencies,\n>(gtx: {\n name: Name;\n description?: string;\n chainName: string;\n bundleName?: string;\n metadata?: {\n deployInfo?: {\n saveArtifact: boolean;\n contractName: string;\n retryable?: boolean;\n abiEncodedConstructorArguments?: HexString;\n };\n };\n check: {\n functionPointer: FunctionPointer<Method>;\n params: Parameters<Method>;\n expectedResult: OnChainDataComparison<Awaited<ReturnType<Method>>>;\n };\n uniqueIdKeys?: Record<string, string | number | boolean>;\n cacheable?: boolean;\n dependencies?: _Dependencies;\n transaction: Tx;\n}): GatedTransaction<Name, Tx, Method, any, _Dependencies> => {\n const dependencies = gtx.dependencies ?? ([] as any);\n return { ...gtx, transactionType: 'literal', dependencies };\n};\n\ntype BuildDeps<Params extends ResolvedGatedTransaction[]> = Params extends []\n ? []\n : Params extends readonly [\n ResolvedGatedTransaction<infer Gtx>,\n ...infer Rest extends ResolvedGatedTransaction[],\n ]\n ? [Gtx, ...BuildDeps<[...Rest]>]\n : Params extends Array<ResolvedGatedTransaction<infer Gtx>>\n ? Array<Gtx>\n : never;\n\n/**\n * Builds a {@link GatedTransaction} from a pointer\n */\nexport const constructGatedTransactionFromPointer = <\n const Name extends string,\n TxType extends Transaction,\n Method extends (...args: any[]) => any,\n DepMethod extends (txs: any, ...args: any[]) => Promise<TxType>,\n>(gtx: {\n name: Name;\n description?: string;\n chainName: string;\n bundleName?: string;\n metadata?: {\n deployInfo?: {\n saveArtifact: boolean;\n contractName: string;\n abiEncodedConstructorArguments?: HexString;\n retryable?: boolean;\n };\n };\n check: {\n functionPointer: FunctionPointer<Method>;\n params: Parameters<Method>;\n expectedResult: OnChainDataComparison<Awaited<ReturnType<Method>>>;\n };\n uniqueIdKeys?: Record<string, string | number | boolean>;\n cacheable?: boolean;\n dependencies: BuildDeps<Parameters<DepMethod>[0]>;\n getTransaction: {\n functionPointer: FunctionPointer<DepMethod>;\n params: Parameters<DepMethod> extends [any, ...infer Tail] ? Tail : [];\n };\n}): GatedTransaction<Name, TxType, Method, DepMethod, BuildDeps<Parameters<DepMethod>[0]>> => {\n return {\n ...gtx,\n transactionType: 'functional',\n };\n};\n\nexport const getIdForGatedTransaction = (gtx: BaseGatedTransaction): GatedTransactionId => {\n const serializedUniqueIdKeys = gtx.uniqueIdKeys\n ? Object.entries(gtx.uniqueIdKeys)\n .map(([k, v]) => `${k}:${v}`)\n .join('-')\n : '';\n\n return `${gtx.name}-${gtx.chainName}-${serializedUniqueIdKeys}`;\n};\n\nexport const getBundleIdForGatedTransaction = (\n gtx: BaseGatedTransaction,\n): GatedTransactionBundleId => {\n const serializedUniqueIdKeys = gtx.uniqueIdKeys\n ? Object.entries(gtx.uniqueIdKeys)\n .map(([k, v]) => `${k}:${v}`)\n .join('-')\n : '';\n\n return `${gtx.bundleName}-${gtx.chainName}-${serializedUniqueIdKeys}`;\n};\n"]}
@@ -1 +0,0 @@
1
- {"version":3,"sources":["../src/gatedTx.ts"],"names":["constructGatedTransaction","gtx","dependencies","transactionType","constructGatedTransactionFromPointer","getIdForGatedTransaction","serializedUniqueIdKeys","uniqueIdKeys","Object","entries","map","k","v","join","name","chainName","getBundleIdForGatedTransaction","bundleName"],"mappings":";;;AAgBO,IAAMA,yBAAAA,2BAKXC,GAAAA,KAAAA;AAuBE,EAAA,MAAMC,YAAAA,GAAeD,GAAAA,CAAIC,YAAAA,IAAiB,EAAA;AAC1C,EAAA,OAAO;IAAE,GAAGD,GAAAA;IAAKE,eAAAA,EAAiB,SAAA;AAAWD,IAAAA;AAAa,GAAA;AAC9D,CAAA,EA9ByC,2BAAA;AA8ClC,IAAME,oCAAAA,2BAKXH,GAAAA,KAAAA;AA0BE,EAAA,OAAO;IACH,GAAGA,GAAAA;IACHE,eAAAA,EAAiB;AACrB,GAAA;AACJ,CAAA,EAnCoD,sCAAA;AAqC7C,IAAME,wBAAAA,2BAA4BJ,GAAAA,KAAAA;AACrC,EAAA,MAAMK,sBAAAA,GAAyBL,IAAIM,YAAAA,GAC7BC,MAAAA,CAAOC,QAAQR,GAAAA,CAAIM,YAAY,CAAA,CAC1BG,GAAAA,CAAI,CAAC,CAACC,GAAGC,CAAAA,CAAAA,KAAO,GAAGD,CAAAA,CAAAA,CAAAA,EAAKC,CAAAA,CAAAA,CAAG,CAAA,CAC3BC,IAAAA,CAAK,GAAA,CAAA,GACV,EAAA;AAEN,EAAA,OAAO,GAAGZ,GAAAA,CAAIa,IAAI,IAAIb,GAAAA,CAAIc,SAAS,IAAIT,sBAAAA,CAAAA,CAAAA;AAC3C,CAAA,EARwC,0BAAA;AAUjC,IAAMU,8BAAAA,2BACTf,GAAAA,KAAAA;AAEA,EAAA,MAAMK,sBAAAA,GAAyBL,IAAIM,YAAAA,GAC7BC,MAAAA,CAAOC,QAAQR,GAAAA,CAAIM,YAAY,CAAA,CAC1BG,GAAAA,CAAI,CAAC,CAACC,GAAGC,CAAAA,CAAAA,KAAO,GAAGD,CAAAA,CAAAA,CAAAA,EAAKC,CAAAA,CAAAA,CAAG,CAAA,CAC3BC,IAAAA,CAAK,GAAA,CAAA,GACV,EAAA;AAEN,EAAA,OAAO,GAAGZ,GAAAA,CAAIgB,UAAU,IAAIhB,GAAAA,CAAIc,SAAS,IAAIT,sBAAAA,CAAAA,CAAAA;AACjD,CAAA,EAV8C,gCAAA","file":"Z6WLE6GM.js","sourcesContent":["import type { HexString, Transaction } from '@layerzerolabs/common-chain-model';\nimport type { FunctionPointer } from '@layerzerolabs/function-pointer';\n\nimport type {\n BaseGatedTransaction,\n GatedTransaction,\n GatedTransactionBundleId,\n GatedTransactionDependencies,\n GatedTransactionId,\n OnChainDataComparison,\n ResolvedGatedTransaction,\n} from './schemata';\n\n/**\n * Builds a {@link GatedTransaction}\n */\nexport const constructGatedTransaction = <\n const Name extends string,\n Tx extends Transaction,\n Method extends (...args: any[]) => any,\n _Dependencies extends GatedTransactionDependencies,\n>(gtx: {\n name: Name;\n description?: string;\n chainName: string;\n bundleName?: string;\n metadata?: {\n deployInfo?: {\n saveArtifact: boolean;\n contractName: string;\n retryable?: boolean;\n abiEncodedConstructorArguments?: HexString;\n };\n };\n check: {\n functionPointer: FunctionPointer<Method>;\n params: Parameters<Method>;\n expectedResult: OnChainDataComparison<Awaited<ReturnType<Method>>>;\n };\n uniqueIdKeys?: Record<string, string | number | boolean>;\n cacheable?: boolean;\n dependencies?: _Dependencies;\n transaction: Tx;\n}): GatedTransaction<Name, Tx, Method, any, _Dependencies> => {\n const dependencies = gtx.dependencies ?? ([] as any);\n return { ...gtx, transactionType: 'literal', dependencies };\n};\n\ntype BuildDeps<Params extends ResolvedGatedTransaction[]> = Params extends []\n ? []\n : Params extends readonly [\n ResolvedGatedTransaction<infer Gtx>,\n ...infer Rest extends ResolvedGatedTransaction[],\n ]\n ? [Gtx, ...BuildDeps<[...Rest]>]\n : Params extends Array<ResolvedGatedTransaction<infer Gtx>>\n ? Array<Gtx>\n : never;\n\n/**\n * Builds a {@link GatedTransaction} from a pointer\n */\nexport const constructGatedTransactionFromPointer = <\n const Name extends string,\n TxType extends Transaction,\n Method extends (...args: any[]) => any,\n DepMethod extends (txs: any, ...args: any[]) => Promise<TxType>,\n>(gtx: {\n name: Name;\n description?: string;\n chainName: string;\n bundleName?: string;\n metadata?: {\n deployInfo?: {\n saveArtifact: boolean;\n contractName: string;\n abiEncodedConstructorArguments?: HexString;\n retryable?: boolean;\n };\n };\n check: {\n functionPointer: FunctionPointer<Method>;\n params: Parameters<Method>;\n expectedResult: OnChainDataComparison<Awaited<ReturnType<Method>>>;\n };\n uniqueIdKeys?: Record<string, string | number | boolean>;\n cacheable?: boolean;\n dependencies: BuildDeps<Parameters<DepMethod>[0]>;\n getTransaction: {\n functionPointer: FunctionPointer<DepMethod>;\n params: Parameters<DepMethod> extends [any, ...infer Tail] ? Tail : [];\n };\n}): GatedTransaction<Name, TxType, Method, DepMethod, BuildDeps<Parameters<DepMethod>[0]>> => {\n return {\n ...gtx,\n transactionType: 'functional',\n };\n};\n\nexport const getIdForGatedTransaction = (gtx: BaseGatedTransaction): GatedTransactionId => {\n const serializedUniqueIdKeys = gtx.uniqueIdKeys\n ? Object.entries(gtx.uniqueIdKeys)\n .map(([k, v]) => `${k}:${v}`)\n .join('-')\n : '';\n\n return `${gtx.name}-${gtx.chainName}-${serializedUniqueIdKeys}`;\n};\n\nexport const getBundleIdForGatedTransaction = (\n gtx: BaseGatedTransaction,\n): GatedTransactionBundleId => {\n const serializedUniqueIdKeys = gtx.uniqueIdKeys\n ? Object.entries(gtx.uniqueIdKeys)\n .map(([k, v]) => `${k}:${v}`)\n .join('-')\n : '';\n\n return `${gtx.bundleName}-${gtx.chainName}-${serializedUniqueIdKeys}`;\n};\n"]}