@layerzerolabs/gated-transaction 0.2.32 → 0.2.34

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
- CJS dist/index.cjs 2.78 KB
16
- CJS dist/RD4R2OBY.cjs 1.47 KB
17
- CJS dist/schemata.cjs 2.11 KB
18
- CJS dist/ZW2OW4EU.cjs 5.92 KB
19
- CJS dist/YJF4D23A.cjs 245.00 B
20
- CJS dist/gatedTx.cjs.map 72.00 B
21
- CJS dist/index.cjs.map 70.00 B
22
- CJS dist/RD4R2OBY.cjs.map 5.95 KB
23
- CJS dist/schemata.cjs.map 73.00 B
24
- CJS dist/YJF4D23A.cjs.map 73.00 B
25
- CJS dist/ZW2OW4EU.cjs.map 20.56 KB
26
- CJS ⚡️ Build success in 217ms
27
14
  ESM dist/gatedTx.js 250.00 B
28
- ESM dist/index.js 661.00 B
29
- ESM dist/UQZFVCIP.js 1.25 KB
30
- ESM dist/schemata.js 512.00 B
15
+ ESM dist/index.js 632.00 B
16
+ ESM dist/schemata.js 483.00 B
17
+ ESM dist/KWDGSV72.js 1.25 KB
18
+ ESM dist/AH3I3JRT.js 4.46 KB
31
19
  ESM dist/VUOMXK5T.js 222.00 B
32
- ESM dist/D2KM6XLM.js 4.55 KB
33
20
  ESM dist/gatedTx.js.map 71.00 B
34
- ESM dist/UQZFVCIP.js.map 5.95 KB
35
21
  ESM dist/schemata.js.map 72.00 B
36
- ESM dist/VUOMXK5T.js.map 72.00 B
37
- ESM dist/D2KM6XLM.js.map 20.49 KB
38
22
  ESM dist/index.js.map 69.00 B
39
- ESM ⚡️ Build success in 217ms
23
+ ESM dist/KWDGSV72.js.map 5.68 KB
24
+ ESM dist/AH3I3JRT.js.map 21.34 KB
25
+ ESM dist/VUOMXK5T.js.map 72.00 B
26
+ ESM ⚡️ Build success in 254ms
27
+ CJS dist/index.cjs 2.73 KB
28
+ CJS dist/UJ7TGQ6J.cjs 1.47 KB
29
+ CJS dist/YJF4D23A.cjs 245.00 B
30
+ CJS dist/MXGKNQEA.cjs 5.81 KB
31
+ CJS dist/gatedTx.cjs 818.00 B
32
+ CJS dist/schemata.cjs 2.05 KB
33
+ CJS dist/index.cjs.map 70.00 B
34
+ CJS dist/UJ7TGQ6J.cjs.map 5.68 KB
35
+ CJS dist/YJF4D23A.cjs.map 73.00 B
36
+ CJS dist/MXGKNQEA.cjs.map 21.41 KB
37
+ CJS dist/gatedTx.cjs.map 72.00 B
38
+ CJS dist/schemata.cjs.map 73.00 B
39
+ CJS ⚡️ Build success in 256ms
@@ -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:57917) [MODULE_TYPELESS_PACKAGE_JSON] Warning: Module type of file:///home/runner/work/monorepo-internal/monorepo-internal/eslint.config.js?mtime=1771547161097 is not specified and it doesn't parse as CommonJS.
5
+ (node:98754) [MODULE_TYPELESS_PACKAGE_JSON] Warning: Module type of file:///home/runner/work/monorepo-internal/monorepo-internal/eslint.config.js?mtime=1771905896940 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)
@@ -43,7 +43,7 @@ var GatedTransactionStatus = /* @__PURE__ */ (function(GatedTransactionStatus2)
43
43
  GatedTransactionStatus2["DEFERRED_SUCCESS"] = "deferred_success";
44
44
  return GatedTransactionStatus2;
45
45
  })({});
46
- var gatedTransactionIsResolvedGatedTransaction = /* @__PURE__ */ __name((gtx) => !!gtx.result, "gatedTransactionIsResolvedGatedTransaction");
46
+ var isResolvedGtx = /* @__PURE__ */ __name((gtx) => !!gtx.result, "isResolvedGtx");
47
47
  var gatedTransactionSchema = /* @__PURE__ */ __name((_) => customSchema().meta({
48
48
  title: "Gated Transaction",
49
49
  description: "A schema for a gated transaction"
@@ -114,6 +114,6 @@ var gatedTransactionCacheSchema = z.object({
114
114
  })
115
115
  });
116
116
 
117
- export { GatedTransactionStatus, createGatedTxCheckActivitySchema, createTxArrayDependentActivitySchema, createTxTupleDependentActivitySchema, gatedTransactionCacheSchema, gatedTransactionIsResolvedGatedTransaction, gatedTransactionResultSchema, gatedTransactionSchema, gatedTxCheckResultSchema, isSuccessfulGatedTransaction, resolvedGatedTransactionSchema, successfulGatedTransactionSchema };
118
- //# sourceMappingURL=D2KM6XLM.js.map
119
- //# sourceMappingURL=D2KM6XLM.js.map
117
+ export { GatedTransactionStatus, createGatedTxCheckActivitySchema, createTxArrayDependentActivitySchema, createTxTupleDependentActivitySchema, gatedTransactionCacheSchema, gatedTransactionResultSchema, gatedTransactionSchema, gatedTxCheckResultSchema, isResolvedGtx, isSuccessfulGatedTransaction, resolvedGatedTransactionSchema, successfulGatedTransactionSchema };
118
+ //# sourceMappingURL=AH3I3JRT.js.map
119
+ //# sourceMappingURL=AH3I3JRT.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","isResolvedGtx","gtx","result","gatedTransactionSchema","_","customSchema","meta","title","description","resolvedGatedTransactionSchema","successfulGatedTransactionSchema","createTxArrayDependentActivitySchema","transactionSchema","extraArgs","functionSchema","input","tuple","def","items","array","output","promise","createTxTupleDependentActivitySchema","txNumber","txs","Array","from","length","createGatedTxCheckActivitySchema","transactionWithResultSchema","_transactionWithResultSchema","optional","gatedTxCheckResultSchema","expectationMet","boolean","data","isSuccessfulGatedTransaction","gatedTransactionCacheSchema","getCachedTxCheckData","cacheSuccessfulTxCheckData"],"mappings":"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","file":"AH3I3JRT.js","sourcesContent":["import z from 'zod';\n\nimport type {\n transactionSchema as _transactionSchema,\n TransactionWithResult,\n} 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<CheckOutput extends Promise<any> = Promise<any>> = {\n functionPointer: FunctionPointer<[tx?: TransactionWithResult], CheckOutput>;\n expectedResult: OnChainDataComparison<Awaited<CheckOutput>>;\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[];\n\n/**\n * Pointer configuration for extracting a deployment artifact from a resolved GTX.\n * - FunctionPointer: Custom pointer to activity factory function\n * - 'DEFAULT': Use the default deployment activity factory function\n * - null: Don't save this artifact\n */\nexport type DeploymentArtifactPointer = FunctionPointer | 'DEFAULT' | null;\n\n/**\n * Pointer configuration for extracting a verification artifact from a resolved GTX.\n * - FunctionPointer: Custom pointer to activity factory function\n * - null: Don't save this artifact\n * Note: No 'DEFAULT' option - verification requires custom implementation per contract type.\n */\nexport type VerificationArtifactPointer = FunctionPointer | null;\n\n// TODO: riley — type FunctionPointer generics on DeploymentArtifactPointer/VerificationArtifactPointer (at least output types), consider converting ContractArtifactPointers to interface\nexport type ContractArtifactPointers = {\n extractDeploymentArtifactPointer: DeploymentArtifactPointer;\n extractVerificationArtifactPointer: VerificationArtifactPointer;\n};\n\nexport type BaseGatedTransaction<\n Name extends string = string,\n CheckOutput extends Promise<any> = Promise<any>,\n _Dependencies extends GatedTransactionDependencies = GatedTransactionDependencies,\n> = {\n name: Name;\n description?: string;\n bundleName?: string;\n metadata?: {\n deployInfo?: {\n contracts: { [contractName: string]: ContractArtifactPointers };\n alwaysResolve?: boolean;\n };\n };\n chainName: string;\n check: GatedTransactionCheck<CheckOutput>;\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 CheckOutput extends Promise<any> = Promise<any>,\n _Dependencies extends GatedTransactionDependencies = GatedTransactionDependencies,\n> = BaseGatedTransaction<Name, CheckOutput, _Dependencies> & {\n transactionType: 'literal';\n transaction: TxType;\n};\n\nexport type FunctionalGatedTransaction<\n Name extends string = string,\n TxType extends Transaction = Transaction,\n CheckOutput extends Promise<any> = Promise<any>,\n DepInput extends [...args: any[], txes: any] = [txes: any],\n _Dependencies extends GatedTransactionDependencies = GatedTransactionDependencies,\n> = BaseGatedTransaction<Name, CheckOutput, _Dependencies> & {\n transactionType: 'functional';\n getTransaction: {\n functionPointer: FunctionPointer<DepInput, Promise<TxType>>;\n };\n};\n\nexport type GatedTransaction<\n Name extends string = string,\n TxType extends Transaction = Transaction,\n CheckOutput extends Promise<any> = Promise<any>,\n DepInput extends [...args: any[], txes: any] = [txes: any],\n _Dependencies extends GatedTransactionDependencies = GatedTransactionDependencies,\n> =\n | LiteralGatedTransaction<Name, TxType, CheckOutput, _Dependencies>\n | FunctionalGatedTransaction<Name, TxType, CheckOutput, DepInput, _Dependencies>;\n\nexport type BaseGatedTransactionFor<GatedTx extends GatedTransaction> =\n GatedTx extends GatedTransaction<infer Name, any, infer CheckOutput, any, infer _Dependencies>\n ? BaseGatedTransaction<Name, CheckOutput, _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\nexport type 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 isResolvedGtx = (\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\nexport const successfulGatedTransactionSchema = <\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 BaseGatedTransactionFor<GatedTransaction<z.infer<Name>, z.infer<TransactionSchema>>> & {\n result: SuccessfulGatedTransaction<z.infer<TransactionSchema>>;\n }\n >().meta({\n title: 'Successful Gated Transaction',\n description: 'A schema for a successful 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 ...(extraArgs?.def?.items ?? []),\n z.array(\n resolvedGatedTransactionSchema({\n transactionSchema,\n }),\n ),\n ] as any),\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 ...args: [\n ...extraArgs: z.infer<ExtraArgs>,\n txs: ResolvedGatedTransaction<\n GatedTransaction<string, z.infer<TransactionSchema>>\n >[],\n ]\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([...(extraArgs?.def?.items ?? []), z.tuple(txs as any)] as any),\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 ...args: [\n ...extraArgs: z.infer<ExtraArgs>,\n txs: BuildTuple<\n ResolvedGatedTransaction<\n GatedTransaction<string, z.infer<TransactionSchema>>\n >,\n TxNumber\n >,\n ]\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 isSuccessfulGatedTransaction = <\n GatedTx extends GatedTransaction,\n TxType extends Transaction,\n>(\n gtx: ResolvedGatedTransaction<GatedTx, TxType>,\n): gtx is BaseGatedTransactionFor<GatedTx> & { result: SuccessfulGatedTransaction<TxType> } => {\n return gtx.result.status === GatedTransactionStatus.SUCCESS;\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"]}
@@ -25,5 +25,5 @@ var getBundleIdForGatedTransaction = /* @__PURE__ */ __name((gtx) => {
25
25
  }, "getBundleIdForGatedTransaction");
26
26
 
27
27
  export { constructGatedTransaction, constructGatedTransactionFromPointer, getBundleIdForGatedTransaction, getIdForGatedTransaction };
28
- //# sourceMappingURL=UQZFVCIP.js.map
29
- //# sourceMappingURL=UQZFVCIP.js.map
28
+ //# sourceMappingURL=KWDGSV72.js.map
29
+ //# sourceMappingURL=KWDGSV72.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":";;;AAkBO,IAAMA,yBAAAA,2BAKXC,GAAAA,KAAAA;AAoBE,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,EA3ByC,2BAAA;AA2ClC,IAAME,oCAAAA,2BAKXH,GAAAA,KAAAA;AAwCE,EAAA,OAAO;IACH,GAAGA,GAAAA;IACHE,eAAAA,EAAiB;AACrB,GAAA;AACJ,CAAA,EAjDoD,sCAAA;AAmD7C,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":"KWDGSV72.js","sourcesContent":["import type { Transaction, TransactionWithResult } from '@layerzerolabs/common-chain-model';\nimport type { FunctionPointer } from '@layerzerolabs/function-pointer';\n\nimport type {\n BaseGatedTransaction,\n ContractArtifactPointers,\n FunctionalGatedTransaction,\n GatedTransactionBundleId,\n GatedTransactionDependencies,\n GatedTransactionId,\n LiteralGatedTransaction,\n OnChainDataComparison,\n ResolvedGatedTransaction,\n} from './schemata';\n\n/**\n * Builds a {@link GatedTransaction}\n */\nexport const constructGatedTransaction = <\n const Name extends string,\n TxType extends Transaction,\n CheckOutput extends Promise<any>,\n _Dependencies extends GatedTransactionDependencies,\n>(gtx: {\n name: Name;\n description?: string;\n chainName: string;\n bundleName?: string;\n metadata?: {\n deployInfo?: {\n contracts: { [contractName: string]: ContractArtifactPointers };\n alwaysResolve?: boolean;\n };\n };\n check: {\n functionPointer: FunctionPointer<[tx?: TransactionWithResult], CheckOutput>;\n expectedResult: OnChainDataComparison<Awaited<CheckOutput>>;\n };\n uniqueIdKeys?: Record<string, string | number | boolean>;\n cacheable?: boolean;\n dependencies?: _Dependencies;\n transaction: TxType;\n}): LiteralGatedTransaction<Name, TxType, CheckOutput, _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 CheckOutput extends Promise<any>,\n DepInput extends [...args: any[], txes: any],\n>(gtx: {\n name: Name;\n description?: string;\n chainName: string;\n bundleName?: string;\n metadata?: {\n deployInfo?: {\n contracts: { [contractName: string]: ContractArtifactPointers };\n alwaysResolve?: boolean;\n };\n };\n check: {\n functionPointer: FunctionPointer<[tx?: TransactionWithResult], CheckOutput>;\n expectedResult: OnChainDataComparison<Awaited<CheckOutput>>;\n };\n uniqueIdKeys?: Record<string, string | number | boolean>;\n cacheable?: boolean;\n dependencies: BuildDeps<\n DepInput extends [...any, infer Tail extends readonly ResolvedGatedTransaction[]]\n ? Tail\n : DepInput extends [...infer Tail extends readonly ResolvedGatedTransaction[]]\n ? Tail\n : never\n >;\n getTransaction: {\n functionPointer: FunctionPointer<DepInput, Promise<TxType>>;\n };\n}): FunctionalGatedTransaction<\n Name,\n TxType,\n CheckOutput,\n DepInput,\n BuildDeps<\n DepInput extends [...any, infer Tail extends readonly ResolvedGatedTransaction[]]\n ? Tail\n : DepInput extends [...infer Tail extends readonly ResolvedGatedTransaction[]]\n ? Tail\n : never\n >\n> => {\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"]}
@@ -49,7 +49,7 @@ var GatedTransactionStatus = /* @__PURE__ */ (function(GatedTransactionStatus2)
49
49
  GatedTransactionStatus2["DEFERRED_SUCCESS"] = "deferred_success";
50
50
  return GatedTransactionStatus2;
51
51
  })({});
52
- var gatedTransactionIsResolvedGatedTransaction = /* @__PURE__ */ YJF4D23A_cjs.__name((gtx) => !!gtx.result, "gatedTransactionIsResolvedGatedTransaction");
52
+ var isResolvedGtx = /* @__PURE__ */ YJF4D23A_cjs.__name((gtx) => !!gtx.result, "isResolvedGtx");
53
53
  var gatedTransactionSchema = /* @__PURE__ */ YJF4D23A_cjs.__name((_) => zodUtils.customSchema().meta({
54
54
  title: "Gated Transaction",
55
55
  description: "A schema for a gated transaction"
@@ -125,12 +125,12 @@ exports.createGatedTxCheckActivitySchema = createGatedTxCheckActivitySchema;
125
125
  exports.createTxArrayDependentActivitySchema = createTxArrayDependentActivitySchema;
126
126
  exports.createTxTupleDependentActivitySchema = createTxTupleDependentActivitySchema;
127
127
  exports.gatedTransactionCacheSchema = gatedTransactionCacheSchema;
128
- exports.gatedTransactionIsResolvedGatedTransaction = gatedTransactionIsResolvedGatedTransaction;
129
128
  exports.gatedTransactionResultSchema = gatedTransactionResultSchema;
130
129
  exports.gatedTransactionSchema = gatedTransactionSchema;
131
130
  exports.gatedTxCheckResultSchema = gatedTxCheckResultSchema;
131
+ exports.isResolvedGtx = isResolvedGtx;
132
132
  exports.isSuccessfulGatedTransaction = isSuccessfulGatedTransaction;
133
133
  exports.resolvedGatedTransactionSchema = resolvedGatedTransactionSchema;
134
134
  exports.successfulGatedTransactionSchema = successfulGatedTransactionSchema;
135
- //# sourceMappingURL=ZW2OW4EU.cjs.map
136
- //# sourceMappingURL=ZW2OW4EU.cjs.map
135
+ //# sourceMappingURL=MXGKNQEA.cjs.map
136
+ //# sourceMappingURL=MXGKNQEA.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","isResolvedGtx","__name","gtx","result","gatedTransactionSchema","_","customSchema","meta","title","description","resolvedGatedTransactionSchema","successfulGatedTransactionSchema","createTxArrayDependentActivitySchema","transactionSchema","extraArgs","functionSchema","input","tuple","def","items","array","output","promise","createTxTupleDependentActivitySchema","txNumber","txs","Array","from","length","createGatedTxCheckActivitySchema","transactionWithResultSchema","_transactionWithResultSchema","optional","gatedTxCheckResultSchema","expectationMet","boolean","data","isSuccessfulGatedTransaction","gatedTransactionCacheSchema","getCachedTxCheckData","cacheSuccessfulTxCheckData"],"mappings":"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","file":"MXGKNQEA.cjs","sourcesContent":["import z from 'zod';\n\nimport type {\n transactionSchema as _transactionSchema,\n TransactionWithResult,\n} 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<CheckOutput extends Promise<any> = Promise<any>> = {\n functionPointer: FunctionPointer<[tx?: TransactionWithResult], CheckOutput>;\n expectedResult: OnChainDataComparison<Awaited<CheckOutput>>;\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[];\n\n/**\n * Pointer configuration for extracting a deployment artifact from a resolved GTX.\n * - FunctionPointer: Custom pointer to activity factory function\n * - 'DEFAULT': Use the default deployment activity factory function\n * - null: Don't save this artifact\n */\nexport type DeploymentArtifactPointer = FunctionPointer | 'DEFAULT' | null;\n\n/**\n * Pointer configuration for extracting a verification artifact from a resolved GTX.\n * - FunctionPointer: Custom pointer to activity factory function\n * - null: Don't save this artifact\n * Note: No 'DEFAULT' option - verification requires custom implementation per contract type.\n */\nexport type VerificationArtifactPointer = FunctionPointer | null;\n\n// TODO: riley — type FunctionPointer generics on DeploymentArtifactPointer/VerificationArtifactPointer (at least output types), consider converting ContractArtifactPointers to interface\nexport type ContractArtifactPointers = {\n extractDeploymentArtifactPointer: DeploymentArtifactPointer;\n extractVerificationArtifactPointer: VerificationArtifactPointer;\n};\n\nexport type BaseGatedTransaction<\n Name extends string = string,\n CheckOutput extends Promise<any> = Promise<any>,\n _Dependencies extends GatedTransactionDependencies = GatedTransactionDependencies,\n> = {\n name: Name;\n description?: string;\n bundleName?: string;\n metadata?: {\n deployInfo?: {\n contracts: { [contractName: string]: ContractArtifactPointers };\n alwaysResolve?: boolean;\n };\n };\n chainName: string;\n check: GatedTransactionCheck<CheckOutput>;\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 CheckOutput extends Promise<any> = Promise<any>,\n _Dependencies extends GatedTransactionDependencies = GatedTransactionDependencies,\n> = BaseGatedTransaction<Name, CheckOutput, _Dependencies> & {\n transactionType: 'literal';\n transaction: TxType;\n};\n\nexport type FunctionalGatedTransaction<\n Name extends string = string,\n TxType extends Transaction = Transaction,\n CheckOutput extends Promise<any> = Promise<any>,\n DepInput extends [...args: any[], txes: any] = [txes: any],\n _Dependencies extends GatedTransactionDependencies = GatedTransactionDependencies,\n> = BaseGatedTransaction<Name, CheckOutput, _Dependencies> & {\n transactionType: 'functional';\n getTransaction: {\n functionPointer: FunctionPointer<DepInput, Promise<TxType>>;\n };\n};\n\nexport type GatedTransaction<\n Name extends string = string,\n TxType extends Transaction = Transaction,\n CheckOutput extends Promise<any> = Promise<any>,\n DepInput extends [...args: any[], txes: any] = [txes: any],\n _Dependencies extends GatedTransactionDependencies = GatedTransactionDependencies,\n> =\n | LiteralGatedTransaction<Name, TxType, CheckOutput, _Dependencies>\n | FunctionalGatedTransaction<Name, TxType, CheckOutput, DepInput, _Dependencies>;\n\nexport type BaseGatedTransactionFor<GatedTx extends GatedTransaction> =\n GatedTx extends GatedTransaction<infer Name, any, infer CheckOutput, any, infer _Dependencies>\n ? BaseGatedTransaction<Name, CheckOutput, _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\nexport type 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 isResolvedGtx = (\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\nexport const successfulGatedTransactionSchema = <\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 BaseGatedTransactionFor<GatedTransaction<z.infer<Name>, z.infer<TransactionSchema>>> & {\n result: SuccessfulGatedTransaction<z.infer<TransactionSchema>>;\n }\n >().meta({\n title: 'Successful Gated Transaction',\n description: 'A schema for a successful 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 ...(extraArgs?.def?.items ?? []),\n z.array(\n resolvedGatedTransactionSchema({\n transactionSchema,\n }),\n ),\n ] as any),\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 ...args: [\n ...extraArgs: z.infer<ExtraArgs>,\n txs: ResolvedGatedTransaction<\n GatedTransaction<string, z.infer<TransactionSchema>>\n >[],\n ]\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([...(extraArgs?.def?.items ?? []), z.tuple(txs as any)] as any),\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 ...args: [\n ...extraArgs: z.infer<ExtraArgs>,\n txs: BuildTuple<\n ResolvedGatedTransaction<\n GatedTransaction<string, z.infer<TransactionSchema>>\n >,\n TxNumber\n >,\n ]\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 isSuccessfulGatedTransaction = <\n GatedTx extends GatedTransaction,\n TxType extends Transaction,\n>(\n gtx: ResolvedGatedTransaction<GatedTx, TxType>,\n): gtx is BaseGatedTransactionFor<GatedTx> & { result: SuccessfulGatedTransaction<TxType> } => {\n return gtx.result.status === GatedTransactionStatus.SUCCESS;\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=RD4R2OBY.cjs.map
34
- //# sourceMappingURL=RD4R2OBY.cjs.map
33
+ //# sourceMappingURL=UJ7TGQ6J.cjs.map
34
+ //# sourceMappingURL=UJ7TGQ6J.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":";;;;;AAkBO,IAAMA,yBAAAA,wCAKXC,GAAAA,KAAAA;AAoBE,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,EA3ByC,2BAAA;AA2ClC,IAAME,oCAAAA,wCAKXH,GAAAA,KAAAA;AAwCE,EAAA,OAAO;IACH,GAAGA,GAAAA;IACHE,eAAAA,EAAiB;AACrB,GAAA;AACJ,CAAA,EAjDoD,sCAAA;AAmD7C,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":"UJ7TGQ6J.cjs","sourcesContent":["import type { Transaction, TransactionWithResult } from '@layerzerolabs/common-chain-model';\nimport type { FunctionPointer } from '@layerzerolabs/function-pointer';\n\nimport type {\n BaseGatedTransaction,\n ContractArtifactPointers,\n FunctionalGatedTransaction,\n GatedTransactionBundleId,\n GatedTransactionDependencies,\n GatedTransactionId,\n LiteralGatedTransaction,\n OnChainDataComparison,\n ResolvedGatedTransaction,\n} from './schemata';\n\n/**\n * Builds a {@link GatedTransaction}\n */\nexport const constructGatedTransaction = <\n const Name extends string,\n TxType extends Transaction,\n CheckOutput extends Promise<any>,\n _Dependencies extends GatedTransactionDependencies,\n>(gtx: {\n name: Name;\n description?: string;\n chainName: string;\n bundleName?: string;\n metadata?: {\n deployInfo?: {\n contracts: { [contractName: string]: ContractArtifactPointers };\n alwaysResolve?: boolean;\n };\n };\n check: {\n functionPointer: FunctionPointer<[tx?: TransactionWithResult], CheckOutput>;\n expectedResult: OnChainDataComparison<Awaited<CheckOutput>>;\n };\n uniqueIdKeys?: Record<string, string | number | boolean>;\n cacheable?: boolean;\n dependencies?: _Dependencies;\n transaction: TxType;\n}): LiteralGatedTransaction<Name, TxType, CheckOutput, _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 CheckOutput extends Promise<any>,\n DepInput extends [...args: any[], txes: any],\n>(gtx: {\n name: Name;\n description?: string;\n chainName: string;\n bundleName?: string;\n metadata?: {\n deployInfo?: {\n contracts: { [contractName: string]: ContractArtifactPointers };\n alwaysResolve?: boolean;\n };\n };\n check: {\n functionPointer: FunctionPointer<[tx?: TransactionWithResult], CheckOutput>;\n expectedResult: OnChainDataComparison<Awaited<CheckOutput>>;\n };\n uniqueIdKeys?: Record<string, string | number | boolean>;\n cacheable?: boolean;\n dependencies: BuildDeps<\n DepInput extends [...any, infer Tail extends readonly ResolvedGatedTransaction[]]\n ? Tail\n : DepInput extends [...infer Tail extends readonly ResolvedGatedTransaction[]]\n ? Tail\n : never\n >;\n getTransaction: {\n functionPointer: FunctionPointer<DepInput, Promise<TxType>>;\n };\n}): FunctionalGatedTransaction<\n Name,\n TxType,\n CheckOutput,\n DepInput,\n BuildDeps<\n DepInput extends [...any, infer Tail extends readonly ResolvedGatedTransaction[]]\n ? Tail\n : DepInput extends [...infer Tail extends readonly ResolvedGatedTransaction[]]\n ? Tail\n : never\n >\n> => {\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 RD4R2OBY_cjs = require('./RD4R2OBY.cjs');
3
+ var UJ7TGQ6J_cjs = require('./UJ7TGQ6J.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 RD4R2OBY_cjs.constructGatedTransaction; }
10
+ get: function () { return UJ7TGQ6J_cjs.constructGatedTransaction; }
11
11
  });
12
12
  Object.defineProperty(exports, "constructGatedTransactionFromPointer", {
13
13
  enumerable: true,
14
- get: function () { return RD4R2OBY_cjs.constructGatedTransactionFromPointer; }
14
+ get: function () { return UJ7TGQ6J_cjs.constructGatedTransactionFromPointer; }
15
15
  });
16
16
  Object.defineProperty(exports, "getBundleIdForGatedTransaction", {
17
17
  enumerable: true,
18
- get: function () { return RD4R2OBY_cjs.getBundleIdForGatedTransaction; }
18
+ get: function () { return UJ7TGQ6J_cjs.getBundleIdForGatedTransaction; }
19
19
  });
20
20
  Object.defineProperty(exports, "getIdForGatedTransaction", {
21
21
  enumerable: true,
22
- get: function () { return RD4R2OBY_cjs.getIdForGatedTransaction; }
22
+ get: function () { return UJ7TGQ6J_cjs.getIdForGatedTransaction; }
23
23
  });
24
24
  //# sourceMappingURL=gatedTx.cjs.map
25
25
  //# sourceMappingURL=gatedTx.cjs.map
package/dist/gatedTx.d.ts CHANGED
@@ -1,6 +1,6 @@
1
1
  import type { Transaction, TransactionWithResult } from '@layerzerolabs/common-chain-model';
2
2
  import type { FunctionPointer } from '@layerzerolabs/function-pointer';
3
- import type { BaseGatedTransaction, FunctionalGatedTransaction, GatedTransactionBundleId, GatedTransactionDependencies, GatedTransactionId, LiteralGatedTransaction, OnChainDataComparison, ResolvedGatedTransaction } from './schemata';
3
+ import type { BaseGatedTransaction, ContractArtifactPointers, FunctionalGatedTransaction, GatedTransactionBundleId, GatedTransactionDependencies, GatedTransactionId, LiteralGatedTransaction, OnChainDataComparison, ResolvedGatedTransaction } from './schemata';
4
4
  /**
5
5
  * Builds a {@link GatedTransaction}
6
6
  */
@@ -11,10 +11,10 @@ export declare const constructGatedTransaction: <const Name extends string, TxTy
11
11
  bundleName?: string;
12
12
  metadata?: {
13
13
  deployInfo?: {
14
- saveArtifact: boolean;
15
- contractName: string;
16
- retryable?: boolean;
17
- extractVerificationArtifactPointer?: FunctionPointer;
14
+ contracts: {
15
+ [contractName: string]: ContractArtifactPointers;
16
+ };
17
+ alwaysResolve?: boolean;
18
18
  };
19
19
  };
20
20
  check: {
@@ -40,10 +40,10 @@ export declare const constructGatedTransactionFromPointer: <const Name extends s
40
40
  bundleName?: string;
41
41
  metadata?: {
42
42
  deployInfo?: {
43
- saveArtifact: boolean;
44
- contractName: string;
45
- retryable?: boolean;
46
- extractVerificationArtifactPointer?: FunctionPointer;
43
+ contracts: {
44
+ [contractName: string]: ContractArtifactPointers;
45
+ };
46
+ alwaysResolve?: boolean;
47
47
  };
48
48
  };
49
49
  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 './UQZFVCIP.js';
1
+ export { constructGatedTransaction, constructGatedTransactionFromPointer, getBundleIdForGatedTransaction, getIdForGatedTransaction } from './KWDGSV72.js';
2
2
  import './VUOMXK5T.js';
3
3
  //# sourceMappingURL=gatedTx.js.map
4
4
  //# sourceMappingURL=gatedTx.js.map
package/dist/index.cjs CHANGED
@@ -1,74 +1,74 @@
1
1
  'use strict';
2
2
 
3
- var RD4R2OBY_cjs = require('./RD4R2OBY.cjs');
4
- var ZW2OW4EU_cjs = require('./ZW2OW4EU.cjs');
3
+ var UJ7TGQ6J_cjs = require('./UJ7TGQ6J.cjs');
4
+ var MXGKNQEA_cjs = require('./MXGKNQEA.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 RD4R2OBY_cjs.constructGatedTransaction; }
11
+ get: function () { return UJ7TGQ6J_cjs.constructGatedTransaction; }
12
12
  });
13
13
  Object.defineProperty(exports, "constructGatedTransactionFromPointer", {
14
14
  enumerable: true,
15
- get: function () { return RD4R2OBY_cjs.constructGatedTransactionFromPointer; }
15
+ get: function () { return UJ7TGQ6J_cjs.constructGatedTransactionFromPointer; }
16
16
  });
17
17
  Object.defineProperty(exports, "getBundleIdForGatedTransaction", {
18
18
  enumerable: true,
19
- get: function () { return RD4R2OBY_cjs.getBundleIdForGatedTransaction; }
19
+ get: function () { return UJ7TGQ6J_cjs.getBundleIdForGatedTransaction; }
20
20
  });
21
21
  Object.defineProperty(exports, "getIdForGatedTransaction", {
22
22
  enumerable: true,
23
- get: function () { return RD4R2OBY_cjs.getIdForGatedTransaction; }
23
+ get: function () { return UJ7TGQ6J_cjs.getIdForGatedTransaction; }
24
24
  });
25
25
  Object.defineProperty(exports, "GatedTransactionStatus", {
26
26
  enumerable: true,
27
- get: function () { return ZW2OW4EU_cjs.GatedTransactionStatus; }
27
+ get: function () { return MXGKNQEA_cjs.GatedTransactionStatus; }
28
28
  });
29
29
  Object.defineProperty(exports, "createGatedTxCheckActivitySchema", {
30
30
  enumerable: true,
31
- get: function () { return ZW2OW4EU_cjs.createGatedTxCheckActivitySchema; }
31
+ get: function () { return MXGKNQEA_cjs.createGatedTxCheckActivitySchema; }
32
32
  });
33
33
  Object.defineProperty(exports, "createTxArrayDependentActivitySchema", {
34
34
  enumerable: true,
35
- get: function () { return ZW2OW4EU_cjs.createTxArrayDependentActivitySchema; }
35
+ get: function () { return MXGKNQEA_cjs.createTxArrayDependentActivitySchema; }
36
36
  });
37
37
  Object.defineProperty(exports, "createTxTupleDependentActivitySchema", {
38
38
  enumerable: true,
39
- get: function () { return ZW2OW4EU_cjs.createTxTupleDependentActivitySchema; }
39
+ get: function () { return MXGKNQEA_cjs.createTxTupleDependentActivitySchema; }
40
40
  });
41
41
  Object.defineProperty(exports, "gatedTransactionCacheSchema", {
42
42
  enumerable: true,
43
- get: function () { return ZW2OW4EU_cjs.gatedTransactionCacheSchema; }
44
- });
45
- Object.defineProperty(exports, "gatedTransactionIsResolvedGatedTransaction", {
46
- enumerable: true,
47
- get: function () { return ZW2OW4EU_cjs.gatedTransactionIsResolvedGatedTransaction; }
43
+ get: function () { return MXGKNQEA_cjs.gatedTransactionCacheSchema; }
48
44
  });
49
45
  Object.defineProperty(exports, "gatedTransactionResultSchema", {
50
46
  enumerable: true,
51
- get: function () { return ZW2OW4EU_cjs.gatedTransactionResultSchema; }
47
+ get: function () { return MXGKNQEA_cjs.gatedTransactionResultSchema; }
52
48
  });
53
49
  Object.defineProperty(exports, "gatedTransactionSchema", {
54
50
  enumerable: true,
55
- get: function () { return ZW2OW4EU_cjs.gatedTransactionSchema; }
51
+ get: function () { return MXGKNQEA_cjs.gatedTransactionSchema; }
56
52
  });
57
53
  Object.defineProperty(exports, "gatedTxCheckResultSchema", {
58
54
  enumerable: true,
59
- get: function () { return ZW2OW4EU_cjs.gatedTxCheckResultSchema; }
55
+ get: function () { return MXGKNQEA_cjs.gatedTxCheckResultSchema; }
56
+ });
57
+ Object.defineProperty(exports, "isResolvedGtx", {
58
+ enumerable: true,
59
+ get: function () { return MXGKNQEA_cjs.isResolvedGtx; }
60
60
  });
61
61
  Object.defineProperty(exports, "isSuccessfulGatedTransaction", {
62
62
  enumerable: true,
63
- get: function () { return ZW2OW4EU_cjs.isSuccessfulGatedTransaction; }
63
+ get: function () { return MXGKNQEA_cjs.isSuccessfulGatedTransaction; }
64
64
  });
65
65
  Object.defineProperty(exports, "resolvedGatedTransactionSchema", {
66
66
  enumerable: true,
67
- get: function () { return ZW2OW4EU_cjs.resolvedGatedTransactionSchema; }
67
+ get: function () { return MXGKNQEA_cjs.resolvedGatedTransactionSchema; }
68
68
  });
69
69
  Object.defineProperty(exports, "successfulGatedTransactionSchema", {
70
70
  enumerable: true,
71
- get: function () { return ZW2OW4EU_cjs.successfulGatedTransactionSchema; }
71
+ get: function () { return MXGKNQEA_cjs.successfulGatedTransactionSchema; }
72
72
  });
73
73
  //# sourceMappingURL=index.cjs.map
74
74
  //# sourceMappingURL=index.cjs.map
package/dist/index.js CHANGED
@@ -1,5 +1,5 @@
1
- export { constructGatedTransaction, constructGatedTransactionFromPointer, getBundleIdForGatedTransaction, getIdForGatedTransaction } from './UQZFVCIP.js';
2
- export { GatedTransactionStatus, createGatedTxCheckActivitySchema, createTxArrayDependentActivitySchema, createTxTupleDependentActivitySchema, gatedTransactionCacheSchema, gatedTransactionIsResolvedGatedTransaction, gatedTransactionResultSchema, gatedTransactionSchema, gatedTxCheckResultSchema, isSuccessfulGatedTransaction, resolvedGatedTransactionSchema, successfulGatedTransactionSchema } from './D2KM6XLM.js';
1
+ export { constructGatedTransaction, constructGatedTransactionFromPointer, getBundleIdForGatedTransaction, getIdForGatedTransaction } from './KWDGSV72.js';
2
+ export { GatedTransactionStatus, createGatedTxCheckActivitySchema, createTxArrayDependentActivitySchema, createTxTupleDependentActivitySchema, gatedTransactionCacheSchema, gatedTransactionResultSchema, gatedTransactionSchema, gatedTxCheckResultSchema, isResolvedGtx, isSuccessfulGatedTransaction, resolvedGatedTransactionSchema, successfulGatedTransactionSchema } from './AH3I3JRT.js';
3
3
  import './VUOMXK5T.js';
4
4
  //# sourceMappingURL=index.js.map
5
5
  //# sourceMappingURL=index.js.map
package/dist/schemata.cjs CHANGED
@@ -1,57 +1,57 @@
1
1
  'use strict';
2
2
 
3
- var ZW2OW4EU_cjs = require('./ZW2OW4EU.cjs');
3
+ var MXGKNQEA_cjs = require('./MXGKNQEA.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 ZW2OW4EU_cjs.GatedTransactionStatus; }
10
+ get: function () { return MXGKNQEA_cjs.GatedTransactionStatus; }
11
11
  });
12
12
  Object.defineProperty(exports, "createGatedTxCheckActivitySchema", {
13
13
  enumerable: true,
14
- get: function () { return ZW2OW4EU_cjs.createGatedTxCheckActivitySchema; }
14
+ get: function () { return MXGKNQEA_cjs.createGatedTxCheckActivitySchema; }
15
15
  });
16
16
  Object.defineProperty(exports, "createTxArrayDependentActivitySchema", {
17
17
  enumerable: true,
18
- get: function () { return ZW2OW4EU_cjs.createTxArrayDependentActivitySchema; }
18
+ get: function () { return MXGKNQEA_cjs.createTxArrayDependentActivitySchema; }
19
19
  });
20
20
  Object.defineProperty(exports, "createTxTupleDependentActivitySchema", {
21
21
  enumerable: true,
22
- get: function () { return ZW2OW4EU_cjs.createTxTupleDependentActivitySchema; }
22
+ get: function () { return MXGKNQEA_cjs.createTxTupleDependentActivitySchema; }
23
23
  });
24
24
  Object.defineProperty(exports, "gatedTransactionCacheSchema", {
25
25
  enumerable: true,
26
- get: function () { return ZW2OW4EU_cjs.gatedTransactionCacheSchema; }
27
- });
28
- Object.defineProperty(exports, "gatedTransactionIsResolvedGatedTransaction", {
29
- enumerable: true,
30
- get: function () { return ZW2OW4EU_cjs.gatedTransactionIsResolvedGatedTransaction; }
26
+ get: function () { return MXGKNQEA_cjs.gatedTransactionCacheSchema; }
31
27
  });
32
28
  Object.defineProperty(exports, "gatedTransactionResultSchema", {
33
29
  enumerable: true,
34
- get: function () { return ZW2OW4EU_cjs.gatedTransactionResultSchema; }
30
+ get: function () { return MXGKNQEA_cjs.gatedTransactionResultSchema; }
35
31
  });
36
32
  Object.defineProperty(exports, "gatedTransactionSchema", {
37
33
  enumerable: true,
38
- get: function () { return ZW2OW4EU_cjs.gatedTransactionSchema; }
34
+ get: function () { return MXGKNQEA_cjs.gatedTransactionSchema; }
39
35
  });
40
36
  Object.defineProperty(exports, "gatedTxCheckResultSchema", {
41
37
  enumerable: true,
42
- get: function () { return ZW2OW4EU_cjs.gatedTxCheckResultSchema; }
38
+ get: function () { return MXGKNQEA_cjs.gatedTxCheckResultSchema; }
39
+ });
40
+ Object.defineProperty(exports, "isResolvedGtx", {
41
+ enumerable: true,
42
+ get: function () { return MXGKNQEA_cjs.isResolvedGtx; }
43
43
  });
44
44
  Object.defineProperty(exports, "isSuccessfulGatedTransaction", {
45
45
  enumerable: true,
46
- get: function () { return ZW2OW4EU_cjs.isSuccessfulGatedTransaction; }
46
+ get: function () { return MXGKNQEA_cjs.isSuccessfulGatedTransaction; }
47
47
  });
48
48
  Object.defineProperty(exports, "resolvedGatedTransactionSchema", {
49
49
  enumerable: true,
50
- get: function () { return ZW2OW4EU_cjs.resolvedGatedTransactionSchema; }
50
+ get: function () { return MXGKNQEA_cjs.resolvedGatedTransactionSchema; }
51
51
  });
52
52
  Object.defineProperty(exports, "successfulGatedTransactionSchema", {
53
53
  enumerable: true,
54
- get: function () { return ZW2OW4EU_cjs.successfulGatedTransactionSchema; }
54
+ get: function () { return MXGKNQEA_cjs.successfulGatedTransactionSchema; }
55
55
  });
56
56
  //# sourceMappingURL=schemata.cjs.map
57
57
  //# sourceMappingURL=schemata.cjs.map
@@ -35,16 +35,34 @@ export declare const gatedTransactionResultSchema: <TxWithResultSchema extends t
35
35
  export type InferOnChainDataTypeFromCheck<Check> = Check extends (...args: any[]) => infer Ret ? Awaited<Ret> : unknown;
36
36
  export type InferOnChainDataTypeFromGatedTransaction<GatedTx extends GatedTransaction> = InferOnChainDataTypeFromCheck<GatedTx['check']>;
37
37
  export type GatedTransactionDependencies = GatedTransaction[];
38
+ /**
39
+ * Pointer configuration for extracting a deployment artifact from a resolved GTX.
40
+ * - FunctionPointer: Custom pointer to activity factory function
41
+ * - 'DEFAULT': Use the default deployment activity factory function
42
+ * - null: Don't save this artifact
43
+ */
44
+ export type DeploymentArtifactPointer = FunctionPointer | 'DEFAULT' | null;
45
+ /**
46
+ * Pointer configuration for extracting a verification artifact from a resolved GTX.
47
+ * - FunctionPointer: Custom pointer to activity factory function
48
+ * - null: Don't save this artifact
49
+ * Note: No 'DEFAULT' option - verification requires custom implementation per contract type.
50
+ */
51
+ export type VerificationArtifactPointer = FunctionPointer | null;
52
+ export type ContractArtifactPointers = {
53
+ extractDeploymentArtifactPointer: DeploymentArtifactPointer;
54
+ extractVerificationArtifactPointer: VerificationArtifactPointer;
55
+ };
38
56
  export type BaseGatedTransaction<Name extends string = string, CheckOutput extends Promise<any> = Promise<any>, _Dependencies extends GatedTransactionDependencies = GatedTransactionDependencies> = {
39
57
  name: Name;
40
58
  description?: string;
41
59
  bundleName?: string;
42
60
  metadata?: {
43
61
  deployInfo?: {
44
- saveArtifact: boolean;
45
- contractName: string;
46
- retryable?: boolean;
47
- extractVerificationArtifactPointer?: FunctionPointer;
62
+ contracts: {
63
+ [contractName: string]: ContractArtifactPointers;
64
+ };
65
+ alwaysResolve?: boolean;
48
66
  };
49
67
  };
50
68
  chainName: string;
@@ -103,7 +121,7 @@ export type GatedTransactionResult<GatedTx extends GatedTransaction = GatedTrans
103
121
  export type ResolvedGatedTransaction<GatedTx extends GatedTransaction = GatedTransaction, TxType extends Transaction = Transaction> = BaseGatedTransactionFor<GatedTx> & {
104
122
  result: GatedTransactionResult<GatedTx, TxType>;
105
123
  };
106
- export declare const gatedTransactionIsResolvedGatedTransaction: (gtx: GatedTransaction | ResolvedGatedTransaction) => gtx is ResolvedGatedTransaction;
124
+ export declare const isResolvedGtx: (gtx: GatedTransaction | ResolvedGatedTransaction) => gtx is ResolvedGatedTransaction;
107
125
  export declare const gatedTransactionSchema: <Name extends z.ZodString | z.ZodLiteral<string> = z.ZodString, TransactionSchema extends typeof _transactionSchema = typeof _transactionSchema>(_?: {
108
126
  name?: Name;
109
127
  transactionSchema?: TransactionSchema;
@@ -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, isSuccessfulGatedTransaction, resolvedGatedTransactionSchema, successfulGatedTransactionSchema } from './D2KM6XLM.js';
1
+ export { GatedTransactionStatus, createGatedTxCheckActivitySchema, createTxArrayDependentActivitySchema, createTxTupleDependentActivitySchema, gatedTransactionCacheSchema, gatedTransactionResultSchema, gatedTransactionSchema, gatedTxCheckResultSchema, isResolvedGtx, isSuccessfulGatedTransaction, resolvedGatedTransactionSchema, successfulGatedTransactionSchema } from './AH3I3JRT.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.32",
3
+ "version": "0.2.34",
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/zod-utils": "0.2.32",
20
- "@layerzerolabs/common-chain-model": "0.2.32",
21
- "@layerzerolabs/function-pointer": "0.2.32"
19
+ "@layerzerolabs/function-pointer": "0.2.34",
20
+ "@layerzerolabs/zod-utils": "0.2.34",
21
+ "@layerzerolabs/common-chain-model": "0.2.34"
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.32",
28
- "@layerzerolabs/tsup-configuration": "0.2.32",
29
- "@layerzerolabs/typescript-configuration": "0.2.32",
30
- "@layerzerolabs/typescript-utils": "0.2.32"
27
+ "@layerzerolabs/base-definitions": "0.2.34",
28
+ "@layerzerolabs/tsup-configuration": "0.2.34",
29
+ "@layerzerolabs/typescript-configuration": "0.2.34",
30
+ "@layerzerolabs/typescript-utils": "0.2.34"
31
31
  },
32
32
  "publishConfig": {
33
33
  "access": "restricted",
package/src/gatedTx.ts CHANGED
@@ -3,6 +3,7 @@ import type { FunctionPointer } from '@layerzerolabs/function-pointer';
3
3
 
4
4
  import type {
5
5
  BaseGatedTransaction,
6
+ ContractArtifactPointers,
6
7
  FunctionalGatedTransaction,
7
8
  GatedTransactionBundleId,
8
9
  GatedTransactionDependencies,
@@ -27,11 +28,8 @@ export const constructGatedTransaction = <
27
28
  bundleName?: string;
28
29
  metadata?: {
29
30
  deployInfo?: {
30
- saveArtifact: boolean;
31
- contractName: string;
32
- retryable?: boolean;
33
- // TODO: Should be FunctionPointer<any, VerificationArtifact> (circular dependency)
34
- extractVerificationArtifactPointer?: FunctionPointer;
31
+ contracts: { [contractName: string]: ContractArtifactPointers };
32
+ alwaysResolve?: boolean;
35
33
  };
36
34
  };
37
35
  check: {
@@ -73,11 +71,8 @@ export const constructGatedTransactionFromPointer = <
73
71
  bundleName?: string;
74
72
  metadata?: {
75
73
  deployInfo?: {
76
- saveArtifact: boolean;
77
- contractName: string;
78
- retryable?: boolean;
79
- // TODO: Should be FunctionPointer<any, VerificationArtifact> (circular dependency)
80
- extractVerificationArtifactPointer?: FunctionPointer;
74
+ contracts: { [contractName: string]: ContractArtifactPointers };
75
+ alwaysResolve?: boolean;
81
76
  };
82
77
  };
83
78
  check: {
package/src/schemata.ts CHANGED
@@ -75,6 +75,29 @@ export type InferOnChainDataTypeFromGatedTransaction<GatedTx extends GatedTransa
75
75
  InferOnChainDataTypeFromCheck<GatedTx['check']>;
76
76
 
77
77
  export type GatedTransactionDependencies = GatedTransaction[];
78
+
79
+ /**
80
+ * Pointer configuration for extracting a deployment artifact from a resolved GTX.
81
+ * - FunctionPointer: Custom pointer to activity factory function
82
+ * - 'DEFAULT': Use the default deployment activity factory function
83
+ * - null: Don't save this artifact
84
+ */
85
+ export type DeploymentArtifactPointer = FunctionPointer | 'DEFAULT' | null;
86
+
87
+ /**
88
+ * Pointer configuration for extracting a verification artifact from a resolved GTX.
89
+ * - FunctionPointer: Custom pointer to activity factory function
90
+ * - null: Don't save this artifact
91
+ * Note: No 'DEFAULT' option - verification requires custom implementation per contract type.
92
+ */
93
+ export type VerificationArtifactPointer = FunctionPointer | null;
94
+
95
+ // TODO: riley — type FunctionPointer generics on DeploymentArtifactPointer/VerificationArtifactPointer (at least output types), consider converting ContractArtifactPointers to interface
96
+ export type ContractArtifactPointers = {
97
+ extractDeploymentArtifactPointer: DeploymentArtifactPointer;
98
+ extractVerificationArtifactPointer: VerificationArtifactPointer;
99
+ };
100
+
78
101
  export type BaseGatedTransaction<
79
102
  Name extends string = string,
80
103
  CheckOutput extends Promise<any> = Promise<any>,
@@ -85,11 +108,8 @@ export type BaseGatedTransaction<
85
108
  bundleName?: string;
86
109
  metadata?: {
87
110
  deployInfo?: {
88
- saveArtifact: boolean;
89
- contractName: string;
90
- retryable?: boolean;
91
- // TODO: Should be FunctionPointer<any, VerificationArtifact> (circular dependency)
92
- extractVerificationArtifactPointer?: FunctionPointer;
111
+ contracts: { [contractName: string]: ContractArtifactPointers };
112
+ alwaysResolve?: boolean;
93
113
  };
94
114
  };
95
115
  chainName: string;
@@ -205,7 +225,7 @@ export type ResolvedGatedTransaction<
205
225
  result: GatedTransactionResult<GatedTx, TxType>;
206
226
  };
207
227
 
208
- export const gatedTransactionIsResolvedGatedTransaction = (
228
+ export const isResolvedGtx = (
209
229
  gtx: GatedTransaction | ResolvedGatedTransaction,
210
230
  ): gtx is ResolvedGatedTransaction => !!(gtx as ResolvedGatedTransaction).result;
211
231
 
@@ -1 +0,0 @@
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","successfulGatedTransactionSchema","createTxArrayDependentActivitySchema","transactionSchema","extraArgs","functionSchema","input","tuple","def","items","array","output","promise","createTxTupleDependentActivitySchema","txNumber","txs","Array","from","length","createGatedTxCheckActivitySchema","transactionWithResultSchema","_transactionWithResultSchema","optional","gatedTxCheckResultSchema","expectationMet","boolean","data","isSuccessfulGatedTransaction","gatedTransactionCacheSchema","getCachedTxCheckData","cacheSuccessfulTxCheckData"],"mappings":"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","file":"D2KM6XLM.js","sourcesContent":["import z from 'zod';\n\nimport type {\n transactionSchema as _transactionSchema,\n TransactionWithResult,\n} 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<CheckOutput extends Promise<any> = Promise<any>> = {\n functionPointer: FunctionPointer<[tx?: TransactionWithResult], CheckOutput>;\n expectedResult: OnChainDataComparison<Awaited<CheckOutput>>;\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 CheckOutput extends Promise<any> = Promise<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 // TODO: Should be FunctionPointer<any, VerificationArtifact> (circular dependency)\n extractVerificationArtifactPointer?: FunctionPointer;\n };\n };\n chainName: string;\n check: GatedTransactionCheck<CheckOutput>;\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 CheckOutput extends Promise<any> = Promise<any>,\n _Dependencies extends GatedTransactionDependencies = GatedTransactionDependencies,\n> = BaseGatedTransaction<Name, CheckOutput, _Dependencies> & {\n transactionType: 'literal';\n transaction: TxType;\n};\n\nexport type FunctionalGatedTransaction<\n Name extends string = string,\n TxType extends Transaction = Transaction,\n CheckOutput extends Promise<any> = Promise<any>,\n DepInput extends [...args: any[], txes: any] = [txes: any],\n _Dependencies extends GatedTransactionDependencies = GatedTransactionDependencies,\n> = BaseGatedTransaction<Name, CheckOutput, _Dependencies> & {\n transactionType: 'functional';\n getTransaction: {\n functionPointer: FunctionPointer<DepInput, Promise<TxType>>;\n };\n};\n\nexport type GatedTransaction<\n Name extends string = string,\n TxType extends Transaction = Transaction,\n CheckOutput extends Promise<any> = Promise<any>,\n DepInput extends [...args: any[], txes: any] = [txes: any],\n _Dependencies extends GatedTransactionDependencies = GatedTransactionDependencies,\n> =\n | LiteralGatedTransaction<Name, TxType, CheckOutput, _Dependencies>\n | FunctionalGatedTransaction<Name, TxType, CheckOutput, DepInput, _Dependencies>;\n\nexport type BaseGatedTransactionFor<GatedTx extends GatedTransaction> =\n GatedTx extends GatedTransaction<infer Name, any, infer CheckOutput, any, infer _Dependencies>\n ? BaseGatedTransaction<Name, CheckOutput, _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\nexport type 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\nexport const successfulGatedTransactionSchema = <\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 BaseGatedTransactionFor<GatedTransaction<z.infer<Name>, z.infer<TransactionSchema>>> & {\n result: SuccessfulGatedTransaction<z.infer<TransactionSchema>>;\n }\n >().meta({\n title: 'Successful Gated Transaction',\n description: 'A schema for a successful 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 ...(extraArgs?.def?.items ?? []),\n z.array(\n resolvedGatedTransactionSchema({\n transactionSchema,\n }),\n ),\n ] as any),\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 ...args: [\n ...extraArgs: z.infer<ExtraArgs>,\n txs: ResolvedGatedTransaction<\n GatedTransaction<string, z.infer<TransactionSchema>>\n >[],\n ]\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([...(extraArgs?.def?.items ?? []), z.tuple(txs as any)] as any),\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 ...args: [\n ...extraArgs: z.infer<ExtraArgs>,\n txs: BuildTuple<\n ResolvedGatedTransaction<\n GatedTransaction<string, z.infer<TransactionSchema>>\n >,\n TxNumber\n >,\n ]\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 isSuccessfulGatedTransaction = <\n GatedTx extends GatedTransaction,\n TxType extends Transaction,\n>(\n gtx: ResolvedGatedTransaction<GatedTx, TxType>,\n): gtx is BaseGatedTransactionFor<GatedTx> & { result: SuccessfulGatedTransaction<TxType> } => {\n return gtx.result.status === GatedTransactionStatus.SUCCESS;\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"]}
@@ -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":";;;;;AAiBO,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;AA2CE,EAAA,OAAO;IACH,GAAGA,GAAAA;IACHE,eAAAA,EAAiB;AACrB,GAAA;AACJ,CAAA,EApDoD,sCAAA;AAsD7C,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":"RD4R2OBY.cjs","sourcesContent":["import type { Transaction, TransactionWithResult } from '@layerzerolabs/common-chain-model';\nimport type { FunctionPointer } from '@layerzerolabs/function-pointer';\n\nimport type {\n BaseGatedTransaction,\n FunctionalGatedTransaction,\n GatedTransactionBundleId,\n GatedTransactionDependencies,\n GatedTransactionId,\n LiteralGatedTransaction,\n OnChainDataComparison,\n ResolvedGatedTransaction,\n} from './schemata';\n\n/**\n * Builds a {@link GatedTransaction}\n */\nexport const constructGatedTransaction = <\n const Name extends string,\n TxType extends Transaction,\n CheckOutput extends Promise<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 // TODO: Should be FunctionPointer<any, VerificationArtifact> (circular dependency)\n extractVerificationArtifactPointer?: FunctionPointer;\n };\n };\n check: {\n functionPointer: FunctionPointer<[tx?: TransactionWithResult], CheckOutput>;\n expectedResult: OnChainDataComparison<Awaited<CheckOutput>>;\n };\n uniqueIdKeys?: Record<string, string | number | boolean>;\n cacheable?: boolean;\n dependencies?: _Dependencies;\n transaction: TxType;\n}): LiteralGatedTransaction<Name, TxType, CheckOutput, _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 CheckOutput extends Promise<any>,\n DepInput extends [...args: any[], txes: any],\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 // TODO: Should be FunctionPointer<any, VerificationArtifact> (circular dependency)\n extractVerificationArtifactPointer?: FunctionPointer;\n };\n };\n check: {\n functionPointer: FunctionPointer<[tx?: TransactionWithResult], CheckOutput>;\n expectedResult: OnChainDataComparison<Awaited<CheckOutput>>;\n };\n uniqueIdKeys?: Record<string, string | number | boolean>;\n cacheable?: boolean;\n dependencies: BuildDeps<\n DepInput extends [...any, infer Tail extends readonly ResolvedGatedTransaction[]]\n ? Tail\n : DepInput extends [...infer Tail extends readonly ResolvedGatedTransaction[]]\n ? Tail\n : never\n >;\n getTransaction: {\n functionPointer: FunctionPointer<DepInput, Promise<TxType>>;\n };\n}): FunctionalGatedTransaction<\n Name,\n TxType,\n CheckOutput,\n DepInput,\n BuildDeps<\n DepInput extends [...any, infer Tail extends readonly ResolvedGatedTransaction[]]\n ? Tail\n : DepInput extends [...infer Tail extends readonly ResolvedGatedTransaction[]]\n ? Tail\n : never\n >\n> => {\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":";;;AAiBO,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;AA2CE,EAAA,OAAO;IACH,GAAGA,GAAAA;IACHE,eAAAA,EAAiB;AACrB,GAAA;AACJ,CAAA,EApDoD,sCAAA;AAsD7C,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":"UQZFVCIP.js","sourcesContent":["import type { Transaction, TransactionWithResult } from '@layerzerolabs/common-chain-model';\nimport type { FunctionPointer } from '@layerzerolabs/function-pointer';\n\nimport type {\n BaseGatedTransaction,\n FunctionalGatedTransaction,\n GatedTransactionBundleId,\n GatedTransactionDependencies,\n GatedTransactionId,\n LiteralGatedTransaction,\n OnChainDataComparison,\n ResolvedGatedTransaction,\n} from './schemata';\n\n/**\n * Builds a {@link GatedTransaction}\n */\nexport const constructGatedTransaction = <\n const Name extends string,\n TxType extends Transaction,\n CheckOutput extends Promise<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 // TODO: Should be FunctionPointer<any, VerificationArtifact> (circular dependency)\n extractVerificationArtifactPointer?: FunctionPointer;\n };\n };\n check: {\n functionPointer: FunctionPointer<[tx?: TransactionWithResult], CheckOutput>;\n expectedResult: OnChainDataComparison<Awaited<CheckOutput>>;\n };\n uniqueIdKeys?: Record<string, string | number | boolean>;\n cacheable?: boolean;\n dependencies?: _Dependencies;\n transaction: TxType;\n}): LiteralGatedTransaction<Name, TxType, CheckOutput, _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 CheckOutput extends Promise<any>,\n DepInput extends [...args: any[], txes: any],\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 // TODO: Should be FunctionPointer<any, VerificationArtifact> (circular dependency)\n extractVerificationArtifactPointer?: FunctionPointer;\n };\n };\n check: {\n functionPointer: FunctionPointer<[tx?: TransactionWithResult], CheckOutput>;\n expectedResult: OnChainDataComparison<Awaited<CheckOutput>>;\n };\n uniqueIdKeys?: Record<string, string | number | boolean>;\n cacheable?: boolean;\n dependencies: BuildDeps<\n DepInput extends [...any, infer Tail extends readonly ResolvedGatedTransaction[]]\n ? Tail\n : DepInput extends [...infer Tail extends readonly ResolvedGatedTransaction[]]\n ? Tail\n : never\n >;\n getTransaction: {\n functionPointer: FunctionPointer<DepInput, Promise<TxType>>;\n };\n}): FunctionalGatedTransaction<\n Name,\n TxType,\n CheckOutput,\n DepInput,\n BuildDeps<\n DepInput extends [...any, infer Tail extends readonly ResolvedGatedTransaction[]]\n ? Tail\n : DepInput extends [...infer Tail extends readonly ResolvedGatedTransaction[]]\n ? Tail\n : never\n >\n> => {\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/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","successfulGatedTransactionSchema","createTxArrayDependentActivitySchema","transactionSchema","extraArgs","functionSchema","input","tuple","def","items","array","output","promise","createTxTupleDependentActivitySchema","txNumber","txs","Array","from","length","createGatedTxCheckActivitySchema","transactionWithResultSchema","_transactionWithResultSchema","optional","gatedTxCheckResultSchema","expectationMet","boolean","data","isSuccessfulGatedTransaction","gatedTransactionCacheSchema","getCachedTxCheckData","cacheSuccessfulTxCheckData"],"mappings":";;;;;;;;;;;AAkCO,IAAMA,4BAAAA,wCAITC,kBAAAA,EACAC,iBAAAA;;AAGAC,EAAAA,kBAAAA,CAAEC,KAAAA,CAAM;AACJD,IAAAA,kBAAAA,CAAEE,MAAAA,CAAO;MACLC,MAAAA,EAAQH,kBAAAA,CAAEI,QAAO,OAAA;KACrB,CAAA;AACAJ,IAAAA,kBAAAA,CAAEE,MAAAA,CAAO;MACLC,MAAAA,EAAQH,kBAAAA,CAAEI,QAAO,SAAA,CAAA;MACjBC,oBAAAA,EAAsBP;KAC1B,CAAA;AACAE,IAAAA,kBAAAA,CAAEE,MAAAA,CAAO;MACLC,MAAAA,EAAQH,kBAAAA,CAAEI,QAAO,oBAAA,CAAA;AACjBE,MAAAA,gBAAAA,EAAkBN,mBAAEO,GAAAA;KACxB,CAAA;AACAP,IAAAA,kBAAAA,CAAEE,MAAAA,CAAO;MACLC,MAAAA,EAAQH,kBAAAA,CAAEI,QAAO,oBAAA,CAAA;MACjBC,oBAAAA,EAAsBP,kBAAAA;MACtBU,iBAAAA,EAAmBT;KACvB,CAAA;AACAC,IAAAA,kBAAAA,CAAEE,MAAAA,CAAO;MACLC,MAAAA,EAAQH,kBAAAA,CAAEI,QAAO,mBAAA;KACrB,CAAA;AACAJ,IAAAA,kBAAAA,CAAEE,MAAAA,CAAO;MACLC,MAAAA,EAAQH,kBAAAA,CAAEI,QAAO,QAAA;KACrB,CAAA;AACAJ,IAAAA,kBAAAA,CAAEE,MAAAA,CAAO;MACLC,MAAAA,EAAQH,kBAAAA,CAAEI,QAAO,kBAAA;KACrB;AACH,GAAA;AAlCuC,CAAA,EAAA,8BAAA;AAyGrC,IAAKK,sBAAAA,6BAAAA,uBAAAA,EAAAA;;;;;;;;AAAAA,EAAAA,OAAAA,uBAAAA;;AAoEL,IAAMC,6DAA6CC,mBAAA,CAAA,CACtDC,GAAAA,KACkC,CAAC,CAAEA,IAAiCC,MAAAA,EAFhB,4CAAA;AAInD,IAAMC,sBAAAA,mBAAyBH,mBAAA,CAAA,CAGpCI,CAAAA,KAIEC,qBAAAA,GAA4EC,IAAAA,CAAK;EAC7EC,KAAAA,EAAO,mBAAA;EACPC,WAAAA,EAAa;AACjB,CAAA,CAAA,EAVkC,wBAAA;AAY/B,IAAMC,8BAAAA,mBAAiCT,mBAAA,CAAA,CAG5CI,CAAAA,KAIEC,qBAAAA,GAKIC,IAAAA,CAAK;EACLC,KAAAA,EAAO,4BAAA;EACPC,WAAAA,EAAa;AACjB,CAAA,CAAA,EAf0C,gCAAA;AAiBvC,IAAME,gCAAAA,mBAAmCV,mBAAA,CAAA,CAG9CI,CAAAA,KAIEC,qBAAAA,GAIIC,IAAAA,CAAK;EACLC,KAAAA,EAAO,8BAAA;EACPC,WAAAA,EAAa;AACjB,CAAA,CAAA,EAd4C,kCAAA;AAwBzC,IAAMG,oCAAAA,mBAAuCX,mBAAA,CAAA,CAIhDY,iBAAAA,EACAC,SAAAA,KAAAA;AAEA,EAAA,OAAOC,uBAAAA,CAAe;AAClBC,IAAAA,KAAAA,EAAO1B,mBAAE2B,KAAAA,CAAM;SACPH,SAAAA,EAAWI,GAAAA,EAAKC,SAAS,EAAA;AAC7B7B,MAAAA,kBAAAA,CAAE8B,MACEV,8BAAAA,CAA+B;AAC3BG,QAAAA;AACJ,OAAA,CAAA;AAEP,KAAA,CAAA;IACDQ,MAAAA,EAAQ/B,kBAAAA,CAAEgC,QAAQT,iBAAAA;GACtB,CAAA;AAgBJ,CAAA,EAjCoD,sCAAA;AA0C7C,IAAMU,oCAAAA,mBAAuCtB,mBAAA,CAAA,CAKhDY,iBAAAA,EACAW,QAAAA,EACAV,SAAAA,KAAAA;AAEA,EAAA,MAAMW,GAAAA,GAAMC,MAAMC,IAAAA,CAAK;IAAEC,MAAAA,EAAQJ;AAAS,GAAA,EAAG,MACzCd,8BAAAA,CAA+B;AAC3BG,IAAAA;AACJ,GAAA,CAAA,CAAA;AAGJ,EAAA,OAAOE,uBAAAA,CAAe;AAClBC,IAAAA,KAAAA,EAAO1B,mBAAE2B,KAAAA,CAAM;SAAKH,SAAAA,EAAWI,GAAAA,EAAKC,SAAS,EAAA;AAAK7B,MAAAA,kBAAAA,CAAE2B,MAAMQ,GAAAA;AAAY,KAAA,CAAA;IACtEJ,MAAAA,EAAQ/B,kBAAAA,CAAEgC,QAAQT,iBAAAA;GACtB,CAAA;AAsBJ,CAAA,EAxCoD,sCAAA;AA0C7C,IAAMgB,mDAAmC5B,mBAAA,CAAA,CAK9C,EACEe,KAAAA,EACAK,MAAAA,EACAS,6BAA2B,KAK9B;AACG,EAAA,MAAM1C,kBAAAA,GAAAA,CACF0C,2BAAAA,IAA+BC,4CAAAA,EACjCC,QAAAA,EAAQ;AAEV,EAAA,OAAOjB,uBAAAA,CAAe;AAClBC,IAAAA,KAAAA,EAAO1B,mBAAE2B,KAAAA,CAAM;AAAKD,MAAAA,GAAAA,KAAAA,IAAS,EAAA;AAAK5B,MAAAA;AAAmB,KAAA,CAAA;IACrDiC,MAAAA,EAAQ/B,kBAAAA,CAAEgC,QAAQD,MAAAA;GACtB,CAAA;AAKJ,CAAA,EA1BgD,kCAAA;AAwCzC,IAAMY,wBAAAA,GAA2B3C,mBAAEE,MAAAA,CAAO;AAC7C0C,EAAAA,cAAAA,EAAgB5C,mBAAE6C,OAAAA,EAAO;AACzBC,EAAAA,IAAAA,EAAM9C,mBAAEO,GAAAA;AACZ,CAAA;AAEO,IAAMwC,4BAAAA,wCAITnC,GAAAA,KAAAA;AAEA,EAAA,OAAOA,GAAAA,CAAIC,OAAOV,MAAAA,KAAM,SAAA;AAC5B,CAAA,EAP4C,8BAAA;AASrC,IAAM6C,2BAAAA,GAA8BhD,mBAAEE,MAAAA,CAAO;AAChD+C,EAAAA,oBAAAA,EAAsBxB,uBAAAA,CAAe;AACjCC,IAAAA,KAAAA,EAAO1B,mBAAE2B,KAAAA,CAAM;AAAC3B,MAAAA,kBAAAA,CAAEO,GAAAA;AAAM,KAAA,CAAA;AACxBwB,IAAAA,MAAAA,EAAQ/B,kBAAAA,CAAEgC,OAAAA,CAAQhC,kBAAAA,CAAEO,GAAAA,EAAG;GAC3B,CAAA;AAKA2C,EAAAA,0BAAAA,EAA4BzB,uBAAAA,CAAe;AACvCC,IAAAA,KAAAA,EAAO1B,mBAAE2B,KAAAA,CAAM;AAAC3B,MAAAA,kBAAAA,CAAEO,GAAAA,EAAG;AAAIP,MAAAA,kBAAAA,CAAEO,GAAAA;AAAM,KAAA,CAAA;AACjCwB,IAAAA,MAAAA,EAAQ/B,kBAAAA,CAAEgC,OAAAA,CAAQhC,kBAAAA,CAAEO,GAAAA,EAAG;GAC3B;AAMJ,CAAA","file":"ZW2OW4EU.cjs","sourcesContent":["import z from 'zod';\n\nimport type {\n transactionSchema as _transactionSchema,\n TransactionWithResult,\n} 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<CheckOutput extends Promise<any> = Promise<any>> = {\n functionPointer: FunctionPointer<[tx?: TransactionWithResult], CheckOutput>;\n expectedResult: OnChainDataComparison<Awaited<CheckOutput>>;\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 CheckOutput extends Promise<any> = Promise<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 // TODO: Should be FunctionPointer<any, VerificationArtifact> (circular dependency)\n extractVerificationArtifactPointer?: FunctionPointer;\n };\n };\n chainName: string;\n check: GatedTransactionCheck<CheckOutput>;\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 CheckOutput extends Promise<any> = Promise<any>,\n _Dependencies extends GatedTransactionDependencies = GatedTransactionDependencies,\n> = BaseGatedTransaction<Name, CheckOutput, _Dependencies> & {\n transactionType: 'literal';\n transaction: TxType;\n};\n\nexport type FunctionalGatedTransaction<\n Name extends string = string,\n TxType extends Transaction = Transaction,\n CheckOutput extends Promise<any> = Promise<any>,\n DepInput extends [...args: any[], txes: any] = [txes: any],\n _Dependencies extends GatedTransactionDependencies = GatedTransactionDependencies,\n> = BaseGatedTransaction<Name, CheckOutput, _Dependencies> & {\n transactionType: 'functional';\n getTransaction: {\n functionPointer: FunctionPointer<DepInput, Promise<TxType>>;\n };\n};\n\nexport type GatedTransaction<\n Name extends string = string,\n TxType extends Transaction = Transaction,\n CheckOutput extends Promise<any> = Promise<any>,\n DepInput extends [...args: any[], txes: any] = [txes: any],\n _Dependencies extends GatedTransactionDependencies = GatedTransactionDependencies,\n> =\n | LiteralGatedTransaction<Name, TxType, CheckOutput, _Dependencies>\n | FunctionalGatedTransaction<Name, TxType, CheckOutput, DepInput, _Dependencies>;\n\nexport type BaseGatedTransactionFor<GatedTx extends GatedTransaction> =\n GatedTx extends GatedTransaction<infer Name, any, infer CheckOutput, any, infer _Dependencies>\n ? BaseGatedTransaction<Name, CheckOutput, _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\nexport type 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\nexport const successfulGatedTransactionSchema = <\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 BaseGatedTransactionFor<GatedTransaction<z.infer<Name>, z.infer<TransactionSchema>>> & {\n result: SuccessfulGatedTransaction<z.infer<TransactionSchema>>;\n }\n >().meta({\n title: 'Successful Gated Transaction',\n description: 'A schema for a successful 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 ...(extraArgs?.def?.items ?? []),\n z.array(\n resolvedGatedTransactionSchema({\n transactionSchema,\n }),\n ),\n ] as any),\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 ...args: [\n ...extraArgs: z.infer<ExtraArgs>,\n txs: ResolvedGatedTransaction<\n GatedTransaction<string, z.infer<TransactionSchema>>\n >[],\n ]\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([...(extraArgs?.def?.items ?? []), z.tuple(txs as any)] as any),\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 ...args: [\n ...extraArgs: z.infer<ExtraArgs>,\n txs: BuildTuple<\n ResolvedGatedTransaction<\n GatedTransaction<string, z.infer<TransactionSchema>>\n >,\n TxNumber\n >,\n ]\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 isSuccessfulGatedTransaction = <\n GatedTx extends GatedTransaction,\n TxType extends Transaction,\n>(\n gtx: ResolvedGatedTransaction<GatedTx, TxType>,\n): gtx is BaseGatedTransactionFor<GatedTx> & { result: SuccessfulGatedTransaction<TxType> } => {\n return gtx.result.status === GatedTransactionStatus.SUCCESS;\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"]}