@layerzerolabs/gated-transaction 0.2.23 → 0.2.24

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/index.cjs 2.46 KB
15
- CJS dist/gatedTx.cjs 818.00 B
16
- CJS dist/ZE3NLIHW.cjs 1.47 KB
17
- CJS dist/NQO4S4JF.cjs 5.37 KB
14
+ CJS dist/gatedTx.cjs 823.00 B
15
+ CJS dist/index.cjs 2.79 KB
16
+ CJS dist/schemata.cjs 2.11 KB
18
17
  CJS dist/YJF4D23A.cjs 245.00 B
19
- CJS dist/schemata.cjs 1.78 KB
20
- CJS dist/index.cjs.map 70.00 B
18
+ CJS dist/FBGH4Z7Y.cjs 5.92 KB
19
+ CJS dist/7S7APV6O.cjs 1.47 KB
21
20
  CJS dist/gatedTx.cjs.map 72.00 B
22
- CJS dist/ZE3NLIHW.cjs.map 5.74 KB
23
- CJS dist/NQO4S4JF.cjs.map 19.61 KB
24
- CJS dist/YJF4D23A.cjs.map 73.00 B
21
+ CJS dist/index.cjs.map 70.00 B
25
22
  CJS dist/schemata.cjs.map 73.00 B
26
- CJS ⚡️ Build success in 182ms
23
+ CJS dist/YJF4D23A.cjs.map 73.00 B
24
+ CJS dist/7S7APV6O.cjs.map 5.72 KB
25
+ CJS dist/FBGH4Z7Y.cjs.map 20.88 KB
26
+ CJS ⚡️ Build success in 256ms
27
27
  ESM dist/gatedTx.js 250.00 B
28
- ESM dist/index.js 597.00 B
29
- ESM dist/schemata.js 448.00 B
28
+ ESM dist/index.js 661.00 B
29
+ ESM dist/PMA4Q2UL.js 1.25 KB
30
+ ESM dist/schemata.js 512.00 B
30
31
  ESM dist/VUOMXK5T.js 222.00 B
31
- ESM dist/XZJ4DGII.js 4.11 KB
32
- ESM dist/L4J4JEOC.js 1.25 KB
32
+ ESM dist/FNFGPB4O.js 4.55 KB
33
33
  ESM dist/gatedTx.js.map 71.00 B
34
34
  ESM dist/index.js.map 69.00 B
35
+ ESM dist/PMA4Q2UL.js.map 5.72 KB
35
36
  ESM dist/schemata.js.map 72.00 B
37
+ ESM dist/FNFGPB4O.js.map 20.81 KB
36
38
  ESM dist/VUOMXK5T.js.map 72.00 B
37
- ESM dist/XZJ4DGII.js.map 19.54 KB
38
- ESM dist/L4J4JEOC.js.map 5.74 KB
39
- ESM ⚡️ Build success in 183ms
39
+ ESM ⚡️ 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:50361) [MODULE_TYPELESS_PACKAGE_JSON] Warning: Module type of file:///home/runner/work/monorepo-internal/monorepo-internal/eslint.config.js?mtime=1770831712321 is not specified and it doesn't parse as CommonJS.
5
+ (node:97276) [MODULE_TYPELESS_PACKAGE_JSON] Warning: Module type of file:///home/runner/work/monorepo-internal/monorepo-internal/eslint.config.js?mtime=1770955556851 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)
@@ -30,5 +30,5 @@ exports.constructGatedTransaction = constructGatedTransaction;
30
30
  exports.constructGatedTransactionFromPointer = constructGatedTransactionFromPointer;
31
31
  exports.getBundleIdForGatedTransaction = getBundleIdForGatedTransaction;
32
32
  exports.getIdForGatedTransaction = getIdForGatedTransaction;
33
- //# sourceMappingURL=ZE3NLIHW.cjs.map
34
- //# sourceMappingURL=ZE3NLIHW.cjs.map
33
+ //# sourceMappingURL=7S7APV6O.cjs.map
34
+ //# sourceMappingURL=7S7APV6O.cjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../src/gatedTx.ts"],"names":["constructGatedTransaction","gtx","dependencies","transactionType","constructGatedTransactionFromPointer","getIdForGatedTransaction","serializedUniqueIdKeys","uniqueIdKeys","Object","entries","map","k","v","join","name","chainName","getBundleIdForGatedTransaction","bundleName"],"mappings":";;;;;AAiBO,IAAMA,yBAAAA,wCAKXC,GAAAA,KAAAA;AAyBE,EAAA,MAAMC,YAAAA,GAAeD,GAAAA,CAAIC,YAAAA,IAAiB,EAAA;AAC1C,EAAA,OAAO;IAAE,GAAGD,GAAAA;IAAKE,eAAAA,EAAiB,SAAA;AAAWD,IAAAA;AAAa,GAAA;AAC9D,CAAA,EAhCyC,2BAAA;AAgDlC,IAAME,oCAAAA,wCAKXH,GAAAA,KAAAA;AA4BE,EAAA,OAAO;IACH,GAAGA,GAAAA;IACHE,eAAAA,EAAiB;AACrB,GAAA;AACJ,CAAA,EArCoD,sCAAA;AAuC7C,IAAME,wBAAAA,wCAA4BJ,GAAAA,KAAAA;AACrC,EAAA,MAAMK,sBAAAA,GAAyBL,IAAIM,YAAAA,GAC7BC,MAAAA,CAAOC,QAAQR,GAAAA,CAAIM,YAAY,CAAA,CAC1BG,GAAAA,CAAI,CAAC,CAACC,GAAGC,CAAAA,CAAAA,KAAO,GAAGD,CAAAA,CAAAA,CAAAA,EAAKC,CAAAA,CAAAA,CAAG,CAAA,CAC3BC,IAAAA,CAAK,GAAA,CAAA,GACV,EAAA;AAEN,EAAA,OAAO,GAAGZ,GAAAA,CAAIa,IAAI,IAAIb,GAAAA,CAAIc,SAAS,IAAIT,sBAAAA,CAAAA,CAAAA;AAC3C,CAAA,EARwC,0BAAA;AAUjC,IAAMU,8BAAAA,wCACTf,GAAAA,KAAAA;AAEA,EAAA,MAAMK,sBAAAA,GAAyBL,IAAIM,YAAAA,GAC7BC,MAAAA,CAAOC,QAAQR,GAAAA,CAAIM,YAAY,CAAA,CAC1BG,GAAAA,CAAI,CAAC,CAACC,GAAGC,CAAAA,CAAAA,KAAO,GAAGD,CAAAA,CAAAA,CAAAA,EAAKC,CAAAA,CAAAA,CAAG,CAAA,CAC3BC,IAAAA,CAAK,GAAA,CAAA,GACV,EAAA;AAEN,EAAA,OAAO,GAAGZ,GAAAA,CAAIgB,UAAU,IAAIhB,GAAAA,CAAIc,SAAS,IAAIT,sBAAAA,CAAAA,CAAAA;AACjD,CAAA,EAV8C,gCAAA","file":"7S7APV6O.cjs","sourcesContent":["import type { HexString, Transaction } from '@layerzerolabs/common-chain-model';\nimport type { FunctionPointer } from '@layerzerolabs/function-pointer';\nimport type { FunctionPointerWithArgs } from '@layerzerolabs/zod-utils';\n\nimport type {\n BaseGatedTransaction,\n GatedTransaction,\n GatedTransactionBundleId,\n GatedTransactionDependencies,\n GatedTransactionId,\n OnChainDataComparison,\n ResolvedGatedTransaction,\n} from './schemata';\n\n/**\n * Builds a {@link GatedTransaction}\n */\nexport const constructGatedTransaction = <\n const Name extends string,\n Tx extends Transaction,\n Method extends (...args: any[]) => any,\n _Dependencies extends GatedTransactionDependencies,\n>(gtx: {\n name: Name;\n description?: string;\n chainName: string;\n bundleName?: string;\n metadata?: {\n deployInfo?: {\n saveArtifact: boolean;\n contractName: string;\n retryable?: boolean;\n abiEncodedConstructorArguments?: HexString;\n // TODO: Should be FunctionPointerWithArgs<VerificationArtifact> (circular dependency)\n extractVerificationArtifactPointer?: FunctionPointerWithArgs<any>;\n };\n };\n check: {\n functionPointer: FunctionPointer<Method>;\n params: Parameters<Method>;\n expectedResult: OnChainDataComparison<Awaited<ReturnType<Method>>>;\n };\n uniqueIdKeys?: Record<string, string | number | boolean>;\n cacheable?: boolean;\n dependencies?: _Dependencies;\n transaction: Tx;\n}): GatedTransaction<Name, Tx, Method, any, _Dependencies> => {\n const dependencies = gtx.dependencies ?? ([] as any);\n return { ...gtx, transactionType: 'literal', dependencies };\n};\n\ntype BuildDeps<Params extends ResolvedGatedTransaction[]> = Params extends []\n ? []\n : Params extends readonly [\n ResolvedGatedTransaction<infer Gtx>,\n ...infer Rest extends ResolvedGatedTransaction[],\n ]\n ? [Gtx, ...BuildDeps<[...Rest]>]\n : Params extends Array<ResolvedGatedTransaction<infer Gtx>>\n ? Array<Gtx>\n : never;\n\n/**\n * Builds a {@link GatedTransaction} from a pointer\n */\nexport const constructGatedTransactionFromPointer = <\n const Name extends string,\n TxType extends Transaction,\n Method extends (...args: any[]) => any,\n DepMethod extends (txs: any, ...args: any[]) => Promise<TxType>,\n>(gtx: {\n name: Name;\n description?: string;\n chainName: string;\n bundleName?: string;\n metadata?: {\n deployInfo?: {\n saveArtifact: boolean;\n contractName: string;\n abiEncodedConstructorArguments?: HexString;\n retryable?: boolean;\n // TODO: Should be FunctionPointerWithArgs<VerificationArtifact> (circular dependency)\n extractVerificationArtifactPointer?: FunctionPointerWithArgs<any>;\n };\n };\n check: {\n functionPointer: FunctionPointer<Method>;\n params: Parameters<Method>;\n expectedResult: OnChainDataComparison<Awaited<ReturnType<Method>>>;\n };\n uniqueIdKeys?: Record<string, string | number | boolean>;\n cacheable?: boolean;\n dependencies: BuildDeps<Parameters<DepMethod>[0]>;\n getTransaction: {\n functionPointer: FunctionPointer<DepMethod>;\n params: Parameters<DepMethod> extends [any, ...infer Tail] ? Tail : [];\n };\n}): GatedTransaction<Name, TxType, Method, DepMethod, BuildDeps<Parameters<DepMethod>[0]>> => {\n return {\n ...gtx,\n transactionType: 'functional',\n };\n};\n\nexport const getIdForGatedTransaction = (gtx: BaseGatedTransaction): GatedTransactionId => {\n const serializedUniqueIdKeys = gtx.uniqueIdKeys\n ? Object.entries(gtx.uniqueIdKeys)\n .map(([k, v]) => `${k}:${v}`)\n .join('-')\n : '';\n\n return `${gtx.name}-${gtx.chainName}-${serializedUniqueIdKeys}`;\n};\n\nexport const getBundleIdForGatedTransaction = (\n gtx: BaseGatedTransaction,\n): GatedTransactionBundleId => {\n const serializedUniqueIdKeys = gtx.uniqueIdKeys\n ? Object.entries(gtx.uniqueIdKeys)\n .map(([k, v]) => `${k}:${v}`)\n .join('-')\n : '';\n\n return `${gtx.bundleName}-${gtx.chainName}-${serializedUniqueIdKeys}`;\n};\n"]}
@@ -58,6 +58,10 @@ var resolvedGatedTransactionSchema = /* @__PURE__ */ YJF4D23A_cjs.__name((_) =>
58
58
  title: "Resolved Gated Transaction",
59
59
  description: "A schema for a resolved gated transaction"
60
60
  }), "resolvedGatedTransactionSchema");
61
+ var successfulGatedTransactionSchema = /* @__PURE__ */ YJF4D23A_cjs.__name((_) => zodUtils.customSchema().meta({
62
+ title: "Successful Gated Transaction",
63
+ description: "A schema for a successful gated transaction"
64
+ }), "successfulGatedTransactionSchema");
61
65
  var createTxArrayDependentActivitySchema = /* @__PURE__ */ YJF4D23A_cjs.__name((transactionSchema, extraArgs) => {
62
66
  return zodUtils.functionSchema({
63
67
  input: z__default.default.tuple([
@@ -97,6 +101,9 @@ var gatedTxCheckResultSchema = z__default.default.object({
97
101
  expectationMet: z__default.default.boolean(),
98
102
  data: z__default.default.any()
99
103
  });
104
+ var isSuccessfulGatedTransaction = /* @__PURE__ */ YJF4D23A_cjs.__name((gtx) => {
105
+ return gtx.result.status === "success";
106
+ }, "isSuccessfulGatedTransaction");
100
107
  var gatedTransactionCacheSchema = z__default.default.object({
101
108
  getCachedTxCheckData: zodUtils.functionSchema({
102
109
  input: z__default.default.tuple([
@@ -122,6 +129,8 @@ exports.gatedTransactionIsResolvedGatedTransaction = gatedTransactionIsResolvedG
122
129
  exports.gatedTransactionResultSchema = gatedTransactionResultSchema;
123
130
  exports.gatedTransactionSchema = gatedTransactionSchema;
124
131
  exports.gatedTxCheckResultSchema = gatedTxCheckResultSchema;
132
+ exports.isSuccessfulGatedTransaction = isSuccessfulGatedTransaction;
125
133
  exports.resolvedGatedTransactionSchema = resolvedGatedTransactionSchema;
126
- //# sourceMappingURL=NQO4S4JF.cjs.map
127
- //# sourceMappingURL=NQO4S4JF.cjs.map
134
+ exports.successfulGatedTransactionSchema = successfulGatedTransactionSchema;
135
+ //# sourceMappingURL=FBGH4Z7Y.cjs.map
136
+ //# sourceMappingURL=FBGH4Z7Y.cjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../src/schemata.ts"],"names":["gatedTransactionResultSchema","txWithResultSchema","onchainDataSchema","z","union","object","status","literal","submittedTransaction","transactionError","any","finalOnChainState","GatedTransactionStatus","gatedTransactionIsResolvedGatedTransaction","__name","gtx","result","gatedTransactionSchema","_","customSchema","meta","title","description","resolvedGatedTransactionSchema","successfulGatedTransactionSchema","createTxArrayDependentActivitySchema","transactionSchema","extraArgs","functionSchema","input","tuple","array","def","items","output","promise","createTxTupleDependentActivitySchema","txNumber","txs","Array","from","length","createGatedTxCheckActivitySchema","transactionWithResultSchema","_transactionWithResultSchema","optional","gatedTxCheckResultSchema","expectationMet","boolean","data","isSuccessfulGatedTransaction","gatedTransactionCacheSchema","getCachedTxCheckData","cacheSuccessfulTxCheckData"],"mappings":"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","file":"FBGH4Z7Y.cjs","sourcesContent":["import z from 'zod';\n\nimport type { transactionSchema as _transactionSchema } from '@layerzerolabs/common-chain-model';\nimport type { HexString } from '@layerzerolabs/common-chain-model';\nimport {\n type Transaction,\n type TransactionWithResultFor,\n transactionWithResultSchema as _transactionWithResultSchema,\n} from '@layerzerolabs/common-chain-model';\nimport type { FunctionPointer } from '@layerzerolabs/function-pointer';\nimport type { BrandedError, BuildTuple, IsAny, Or } from '@layerzerolabs/typescript-utils';\nimport type { FunctionPointerWithArgs, InferredArray } from '@layerzerolabs/zod-utils';\nimport { customSchema, functionSchema } from '@layerzerolabs/zod-utils';\n\nexport type OnChainDataComparisonOperator<OnChainDataType> =\n Or<[OnChainDataType extends number ? true : false, IsAny<OnChainDataType>]> extends true\n ? '<' | '<=' | '=' | '!=' | '>' | '>='\n : OnChainDataType extends string | object | boolean\n ? '=' | '!='\n : BrandedError<'Unsupported comparison type'>;\n\nexport type OnChainDataComparison<OnChainDataType extends string | number | boolean | object> = {\n operator: OnChainDataComparisonOperator<OnChainDataType>;\n comparisonValue: OnChainDataType;\n};\n\nexport type GatedTransactionCheck<\n Method extends (...args: any[]) => Promise<any> = (...args: any[]) => Promise<unknown>,\n> = {\n functionPointer: FunctionPointer<Method>;\n params: Parameters<Method>;\n expectedResult: OnChainDataComparison<Awaited<ReturnType<Method>>>;\n};\n\n// Schema for gated transaction results\nexport const gatedTransactionResultSchema = <\n TxWithResultSchema extends typeof _transactionWithResultSchema,\n OnchainDataSchema extends z.ZodType,\n>(\n txWithResultSchema: TxWithResultSchema,\n onchainDataSchema: OnchainDataSchema,\n) =>\n // FIXME use this as source of truth for GatedTransactionResult type\n z.union([\n z.object({\n status: z.literal(GatedTransactionStatus.NO_OP),\n }),\n z.object({\n status: z.literal(GatedTransactionStatus.SUCCESS),\n submittedTransaction: txWithResultSchema,\n }),\n z.object({\n status: z.literal(GatedTransactionStatus.TRANSACTION_FAILED),\n transactionError: z.any(),\n }),\n z.object({\n status: z.literal(GatedTransactionStatus.FINAL_CHECK_FAILED),\n submittedTransaction: txWithResultSchema,\n finalOnChainState: onchainDataSchema,\n }),\n z.object({\n status: z.literal(GatedTransactionStatus.DEPENDENCY_FAILED),\n }),\n z.object({\n status: z.literal(GatedTransactionStatus.DENIED),\n }),\n z.object({\n status: z.literal(GatedTransactionStatus.DEFERRED_SUCCESS),\n }),\n ]);\n\nexport type InferOnChainDataTypeFromCheck<Check> = Check extends (...args: any[]) => infer Ret\n ? Awaited<Ret>\n : unknown;\nexport type InferOnChainDataTypeFromGatedTransaction<GatedTx extends GatedTransaction> =\n InferOnChainDataTypeFromCheck<GatedTx['check']>;\n\nexport type GatedTransactionDependencies = GatedTransaction[];\nexport type BaseGatedTransaction<\n Name extends string = string,\n CheckMethod extends (...args: any[]) => any = (...args: any[]) => any,\n _Dependencies extends GatedTransactionDependencies = GatedTransactionDependencies,\n> = {\n name: Name;\n description?: string;\n bundleName?: string;\n metadata?: {\n deployInfo?: {\n saveArtifact: boolean;\n contractName: string;\n retryable?: boolean;\n abiEncodedConstructorArguments?: HexString;\n // TODO: Should be FunctionPointerWithArgs<VerificationArtifact> (circular dependency)\n extractVerificationArtifactPointer?: FunctionPointerWithArgs<any>;\n };\n };\n chainName: string;\n check: GatedTransactionCheck<CheckMethod>;\n dependencies: _Dependencies;\n cacheable?: boolean;\n uniqueIdKeys?: Record<string, string | number | boolean>;\n};\n\nexport type LiteralGatedTransaction<\n Name extends string = string,\n TxType extends Transaction = Transaction,\n CheckMethod extends (...args: any[]) => any = (...args: any[]) => any,\n _Dependencies extends GatedTransactionDependencies = GatedTransactionDependencies,\n> = BaseGatedTransaction<Name, CheckMethod, _Dependencies> & {\n transactionType: 'literal';\n transaction: TxType;\n};\n\nexport type FunctionalGatedTransaction<\n Name extends string = string,\n TxType extends Transaction = Transaction,\n CheckMethod extends (...args: any[]) => any = (...args: any[]) => any,\n DepMethod extends (txs: any, ...args: any[]) => Promise<TxType> = (\n txs: any,\n ...args: any[]\n ) => Promise<any>,\n _Dependencies extends GatedTransactionDependencies = GatedTransactionDependencies,\n> = BaseGatedTransaction<Name, CheckMethod, _Dependencies> & {\n transactionType: 'functional';\n getTransaction: {\n functionPointer: FunctionPointer<DepMethod>;\n params: Parameters<DepMethod> extends [any, ...infer Tail] ? Tail : [];\n };\n};\n\nexport type GatedTransaction<\n Name extends string = string,\n TxType extends Transaction = Transaction,\n CheckMethod extends (...args: any[]) => any = (...args: any[]) => any,\n DepMethod extends (txs: any, ...args: any[]) => Promise<TxType> = (\n txs: any,\n ...args: any[]\n ) => Promise<any>,\n _Dependencies extends GatedTransactionDependencies = GatedTransactionDependencies,\n> =\n | LiteralGatedTransaction<Name, TxType, CheckMethod, _Dependencies>\n | FunctionalGatedTransaction<Name, TxType, CheckMethod, DepMethod, _Dependencies>;\n\nexport type BaseGatedTransactionFor<GatedTx extends GatedTransaction> =\n GatedTx extends GatedTransaction<infer Name, any, infer CheckMethod, any, infer _Dependencies>\n ? BaseGatedTransaction<Name, CheckMethod, _Dependencies>\n : never;\n\nexport enum GatedTransactionStatus {\n // precheck passed, no need to send the tx\n NO_OP = 'no_op',\n // precheck failed, tx was sent, postcheck passed\n SUCCESS = 'success',\n // precheck failed, tx was sent but sender returned an error\n TRANSACTION_FAILED = 'transaction_failed',\n // precheck failed, tx was sent, postcheck failed\n FINAL_CHECK_FAILED = 'final_check_failed',\n // the tx couldn't be resolved because one of its dependencies resolved to a failed state\n DEPENDENCY_FAILED = 'dependency_failed',\n // approval to send the tx was explictly denied\n DENIED = 'denied',\n // precheck failed, tx was sent but indeterminate, deferred execution passed on a recheck\n DEFERRED_SUCCESS = 'deferred_success',\n}\n\ntype NoOpGatedTransaction = {\n status: GatedTransactionStatus.NO_OP;\n};\n\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 z.array(\n resolvedGatedTransactionSchema({\n transactionSchema,\n }),\n ),\n ...(extraArgs?.def?.items ?? []),\n ]),\n output: z.promise(transactionSchema),\n }) as unknown as z.ZodType<\n [] extends z.infer<ExtraArgs>\n ? (\n txs: ResolvedGatedTransaction<\n GatedTransaction<string, z.infer<TransactionSchema>>\n >[],\n ) => Promise<z.infer<TransactionSchema>>\n : (\n txs: ResolvedGatedTransaction<\n GatedTransaction<string, z.infer<TransactionSchema>>\n >[],\n ...extraArgs: z.infer<ExtraArgs>\n ) => Promise<z.infer<TransactionSchema>>\n >;\n};\n/**\n * Builds a schema for an activity that builds a transaction based on the results of other transactions\n * @param transactionSchema The schema for the transaction to be built\n * @param transactionWithResultSchema The schema for the results of the transactions you're building off of\n * @param txNumber The number of transactions you're building off of\n * @param extraArgs Additional arguments that must be passed to the function after the txes\n * @returns A schema for the activity that builds the transaction\n */\nexport const createTxTupleDependentActivitySchema = <\n TransactionSchema extends typeof _transactionSchema = typeof _transactionSchema,\n const TxNumber extends number = 1,\n ExtraArgs extends z.ZodTuple = z.ZodTuple<[]>,\n>(\n transactionSchema: TransactionSchema,\n txNumber: TxNumber,\n extraArgs?: ExtraArgs,\n) => {\n const txs = Array.from({ length: txNumber }, () =>\n resolvedGatedTransactionSchema({\n transactionSchema: transactionSchema,\n }),\n );\n\n return functionSchema({\n input: z.tuple([z.tuple(txs as any), ...(extraArgs?.def?.items ?? [])]),\n output: z.promise(transactionSchema),\n }) as unknown as z.ZodType<\n [] extends z.infer<ExtraArgs>\n ? (\n txs: BuildTuple<\n ResolvedGatedTransaction<\n GatedTransaction<string, z.infer<TransactionSchema>>\n >,\n TxNumber\n >,\n ) => Promise<z.infer<TransactionSchema>>\n : (\n txs: BuildTuple<\n ResolvedGatedTransaction<\n GatedTransaction<string, z.infer<TransactionSchema>>\n >,\n TxNumber\n >,\n ...extraArgs: z.infer<ExtraArgs>\n ) => Promise<z.infer<TransactionSchema>>\n >;\n};\n\nexport const createGatedTxCheckActivitySchema = <\n Output extends z.ZodType,\n const Input extends z.ZodType[] = [],\n TransactionWithResultSchema extends\n typeof _transactionWithResultSchema = typeof _transactionWithResultSchema,\n>({\n input,\n output,\n transactionWithResultSchema,\n}: {\n input?: Input;\n transactionWithResultSchema?: TransactionWithResultSchema;\n output: Output;\n}) => {\n const txWithResultSchema = (\n transactionWithResultSchema ?? _transactionWithResultSchema\n ).optional();\n\n return functionSchema({\n input: z.tuple([...(input ?? []), txWithResultSchema] as any),\n output: z.promise(output),\n }) as z.ZodType<\n (\n ...args: [...InferredArray<Input>, z.infer<TransactionWithResultSchema>?]\n ) => Promise<z.infer<Output>>\n >;\n};\n\nexport type ResolvedGatedTransactionDependencies<GatedTx extends GatedTransaction> =\n GatedTx extends GatedTransaction<any, any, any, any, infer _Dependencies>\n ? {\n [K in keyof _Dependencies]?: ResolvedGatedTransaction<_Dependencies[K]>;\n }\n : never;\n\nexport interface GatedTxCheckResult {\n expectationMet: boolean;\n data: unknown;\n}\n\nexport const gatedTxCheckResultSchema = z.object({\n expectationMet: z.boolean(),\n data: z.any(),\n});\n\nexport const 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"]}
@@ -52,6 +52,10 @@ var resolvedGatedTransactionSchema = /* @__PURE__ */ __name((_) => customSchema(
52
52
  title: "Resolved Gated Transaction",
53
53
  description: "A schema for a resolved gated transaction"
54
54
  }), "resolvedGatedTransactionSchema");
55
+ var successfulGatedTransactionSchema = /* @__PURE__ */ __name((_) => customSchema().meta({
56
+ title: "Successful Gated Transaction",
57
+ description: "A schema for a successful gated transaction"
58
+ }), "successfulGatedTransactionSchema");
55
59
  var createTxArrayDependentActivitySchema = /* @__PURE__ */ __name((transactionSchema, extraArgs) => {
56
60
  return functionSchema({
57
61
  input: z.tuple([
@@ -91,6 +95,9 @@ var gatedTxCheckResultSchema = z.object({
91
95
  expectationMet: z.boolean(),
92
96
  data: z.any()
93
97
  });
98
+ var isSuccessfulGatedTransaction = /* @__PURE__ */ __name((gtx) => {
99
+ return gtx.result.status === "success";
100
+ }, "isSuccessfulGatedTransaction");
94
101
  var gatedTransactionCacheSchema = z.object({
95
102
  getCachedTxCheckData: functionSchema({
96
103
  input: z.tuple([
@@ -107,6 +114,6 @@ var gatedTransactionCacheSchema = z.object({
107
114
  })
108
115
  });
109
116
 
110
- export { GatedTransactionStatus, createGatedTxCheckActivitySchema, createTxArrayDependentActivitySchema, createTxTupleDependentActivitySchema, gatedTransactionCacheSchema, gatedTransactionIsResolvedGatedTransaction, gatedTransactionResultSchema, gatedTransactionSchema, gatedTxCheckResultSchema, resolvedGatedTransactionSchema };
111
- //# sourceMappingURL=XZJ4DGII.js.map
112
- //# sourceMappingURL=XZJ4DGII.js.map
117
+ export { GatedTransactionStatus, createGatedTxCheckActivitySchema, createTxArrayDependentActivitySchema, createTxTupleDependentActivitySchema, gatedTransactionCacheSchema, gatedTransactionIsResolvedGatedTransaction, gatedTransactionResultSchema, gatedTransactionSchema, gatedTxCheckResultSchema, isSuccessfulGatedTransaction, resolvedGatedTransactionSchema, successfulGatedTransactionSchema };
118
+ //# sourceMappingURL=FNFGPB4O.js.map
119
+ //# sourceMappingURL=FNFGPB4O.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../src/schemata.ts"],"names":["gatedTransactionResultSchema","txWithResultSchema","onchainDataSchema","z","union","object","status","literal","submittedTransaction","transactionError","any","finalOnChainState","GatedTransactionStatus","gatedTransactionIsResolvedGatedTransaction","gtx","result","gatedTransactionSchema","_","customSchema","meta","title","description","resolvedGatedTransactionSchema","successfulGatedTransactionSchema","createTxArrayDependentActivitySchema","transactionSchema","extraArgs","functionSchema","input","tuple","array","def","items","output","promise","createTxTupleDependentActivitySchema","txNumber","txs","Array","from","length","createGatedTxCheckActivitySchema","transactionWithResultSchema","_transactionWithResultSchema","optional","gatedTxCheckResultSchema","expectationMet","boolean","data","isSuccessfulGatedTransaction","gatedTransactionCacheSchema","getCachedTxCheckData","cacheSuccessfulTxCheckData"],"mappings":"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","file":"FNFGPB4O.js","sourcesContent":["import z from 'zod';\n\nimport type { transactionSchema as _transactionSchema } from '@layerzerolabs/common-chain-model';\nimport type { HexString } from '@layerzerolabs/common-chain-model';\nimport {\n type Transaction,\n type TransactionWithResultFor,\n transactionWithResultSchema as _transactionWithResultSchema,\n} from '@layerzerolabs/common-chain-model';\nimport type { FunctionPointer } from '@layerzerolabs/function-pointer';\nimport type { BrandedError, BuildTuple, IsAny, Or } from '@layerzerolabs/typescript-utils';\nimport type { FunctionPointerWithArgs, InferredArray } from '@layerzerolabs/zod-utils';\nimport { customSchema, functionSchema } from '@layerzerolabs/zod-utils';\n\nexport type OnChainDataComparisonOperator<OnChainDataType> =\n Or<[OnChainDataType extends number ? true : false, IsAny<OnChainDataType>]> extends true\n ? '<' | '<=' | '=' | '!=' | '>' | '>='\n : OnChainDataType extends string | object | boolean\n ? '=' | '!='\n : BrandedError<'Unsupported comparison type'>;\n\nexport type OnChainDataComparison<OnChainDataType extends string | number | boolean | object> = {\n operator: OnChainDataComparisonOperator<OnChainDataType>;\n comparisonValue: OnChainDataType;\n};\n\nexport type GatedTransactionCheck<\n Method extends (...args: any[]) => Promise<any> = (...args: any[]) => Promise<unknown>,\n> = {\n functionPointer: FunctionPointer<Method>;\n params: Parameters<Method>;\n expectedResult: OnChainDataComparison<Awaited<ReturnType<Method>>>;\n};\n\n// Schema for gated transaction results\nexport const gatedTransactionResultSchema = <\n TxWithResultSchema extends typeof _transactionWithResultSchema,\n OnchainDataSchema extends z.ZodType,\n>(\n txWithResultSchema: TxWithResultSchema,\n onchainDataSchema: OnchainDataSchema,\n) =>\n // FIXME use this as source of truth for GatedTransactionResult type\n z.union([\n z.object({\n status: z.literal(GatedTransactionStatus.NO_OP),\n }),\n z.object({\n status: z.literal(GatedTransactionStatus.SUCCESS),\n submittedTransaction: txWithResultSchema,\n }),\n z.object({\n status: z.literal(GatedTransactionStatus.TRANSACTION_FAILED),\n transactionError: z.any(),\n }),\n z.object({\n status: z.literal(GatedTransactionStatus.FINAL_CHECK_FAILED),\n submittedTransaction: txWithResultSchema,\n finalOnChainState: onchainDataSchema,\n }),\n z.object({\n status: z.literal(GatedTransactionStatus.DEPENDENCY_FAILED),\n }),\n z.object({\n status: z.literal(GatedTransactionStatus.DENIED),\n }),\n z.object({\n status: z.literal(GatedTransactionStatus.DEFERRED_SUCCESS),\n }),\n ]);\n\nexport type InferOnChainDataTypeFromCheck<Check> = Check extends (...args: any[]) => infer Ret\n ? Awaited<Ret>\n : unknown;\nexport type InferOnChainDataTypeFromGatedTransaction<GatedTx extends GatedTransaction> =\n InferOnChainDataTypeFromCheck<GatedTx['check']>;\n\nexport type GatedTransactionDependencies = GatedTransaction[];\nexport type BaseGatedTransaction<\n Name extends string = string,\n CheckMethod extends (...args: any[]) => any = (...args: any[]) => any,\n _Dependencies extends GatedTransactionDependencies = GatedTransactionDependencies,\n> = {\n name: Name;\n description?: string;\n bundleName?: string;\n metadata?: {\n deployInfo?: {\n saveArtifact: boolean;\n contractName: string;\n retryable?: boolean;\n abiEncodedConstructorArguments?: HexString;\n // TODO: Should be FunctionPointerWithArgs<VerificationArtifact> (circular dependency)\n extractVerificationArtifactPointer?: FunctionPointerWithArgs<any>;\n };\n };\n chainName: string;\n check: GatedTransactionCheck<CheckMethod>;\n dependencies: _Dependencies;\n cacheable?: boolean;\n uniqueIdKeys?: Record<string, string | number | boolean>;\n};\n\nexport type LiteralGatedTransaction<\n Name extends string = string,\n TxType extends Transaction = Transaction,\n CheckMethod extends (...args: any[]) => any = (...args: any[]) => any,\n _Dependencies extends GatedTransactionDependencies = GatedTransactionDependencies,\n> = BaseGatedTransaction<Name, CheckMethod, _Dependencies> & {\n transactionType: 'literal';\n transaction: TxType;\n};\n\nexport type FunctionalGatedTransaction<\n Name extends string = string,\n TxType extends Transaction = Transaction,\n CheckMethod extends (...args: any[]) => any = (...args: any[]) => any,\n DepMethod extends (txs: any, ...args: any[]) => Promise<TxType> = (\n txs: any,\n ...args: any[]\n ) => Promise<any>,\n _Dependencies extends GatedTransactionDependencies = GatedTransactionDependencies,\n> = BaseGatedTransaction<Name, CheckMethod, _Dependencies> & {\n transactionType: 'functional';\n getTransaction: {\n functionPointer: FunctionPointer<DepMethod>;\n params: Parameters<DepMethod> extends [any, ...infer Tail] ? Tail : [];\n };\n};\n\nexport type GatedTransaction<\n Name extends string = string,\n TxType extends Transaction = Transaction,\n CheckMethod extends (...args: any[]) => any = (...args: any[]) => any,\n DepMethod extends (txs: any, ...args: any[]) => Promise<TxType> = (\n txs: any,\n ...args: any[]\n ) => Promise<any>,\n _Dependencies extends GatedTransactionDependencies = GatedTransactionDependencies,\n> =\n | LiteralGatedTransaction<Name, TxType, CheckMethod, _Dependencies>\n | FunctionalGatedTransaction<Name, TxType, CheckMethod, DepMethod, _Dependencies>;\n\nexport type BaseGatedTransactionFor<GatedTx extends GatedTransaction> =\n GatedTx extends GatedTransaction<infer Name, any, infer CheckMethod, any, infer _Dependencies>\n ? BaseGatedTransaction<Name, CheckMethod, _Dependencies>\n : never;\n\nexport enum GatedTransactionStatus {\n // precheck passed, no need to send the tx\n NO_OP = 'no_op',\n // precheck failed, tx was sent, postcheck passed\n SUCCESS = 'success',\n // precheck failed, tx was sent but sender returned an error\n TRANSACTION_FAILED = 'transaction_failed',\n // precheck failed, tx was sent, postcheck failed\n FINAL_CHECK_FAILED = 'final_check_failed',\n // the tx couldn't be resolved because one of its dependencies resolved to a failed state\n DEPENDENCY_FAILED = 'dependency_failed',\n // approval to send the tx was explictly denied\n DENIED = 'denied',\n // precheck failed, tx was sent but indeterminate, deferred execution passed on a recheck\n DEFERRED_SUCCESS = 'deferred_success',\n}\n\ntype NoOpGatedTransaction = {\n status: GatedTransactionStatus.NO_OP;\n};\n\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 z.array(\n resolvedGatedTransactionSchema({\n transactionSchema,\n }),\n ),\n ...(extraArgs?.def?.items ?? []),\n ]),\n output: z.promise(transactionSchema),\n }) as unknown as z.ZodType<\n [] extends z.infer<ExtraArgs>\n ? (\n txs: ResolvedGatedTransaction<\n GatedTransaction<string, z.infer<TransactionSchema>>\n >[],\n ) => Promise<z.infer<TransactionSchema>>\n : (\n txs: ResolvedGatedTransaction<\n GatedTransaction<string, z.infer<TransactionSchema>>\n >[],\n ...extraArgs: z.infer<ExtraArgs>\n ) => Promise<z.infer<TransactionSchema>>\n >;\n};\n/**\n * Builds a schema for an activity that builds a transaction based on the results of other transactions\n * @param transactionSchema The schema for the transaction to be built\n * @param transactionWithResultSchema The schema for the results of the transactions you're building off of\n * @param txNumber The number of transactions you're building off of\n * @param extraArgs Additional arguments that must be passed to the function after the txes\n * @returns A schema for the activity that builds the transaction\n */\nexport const createTxTupleDependentActivitySchema = <\n TransactionSchema extends typeof _transactionSchema = typeof _transactionSchema,\n const TxNumber extends number = 1,\n ExtraArgs extends z.ZodTuple = z.ZodTuple<[]>,\n>(\n transactionSchema: TransactionSchema,\n txNumber: TxNumber,\n extraArgs?: ExtraArgs,\n) => {\n const txs = Array.from({ length: txNumber }, () =>\n resolvedGatedTransactionSchema({\n transactionSchema: transactionSchema,\n }),\n );\n\n return functionSchema({\n input: z.tuple([z.tuple(txs as any), ...(extraArgs?.def?.items ?? [])]),\n output: z.promise(transactionSchema),\n }) as unknown as z.ZodType<\n [] extends z.infer<ExtraArgs>\n ? (\n txs: BuildTuple<\n ResolvedGatedTransaction<\n GatedTransaction<string, z.infer<TransactionSchema>>\n >,\n TxNumber\n >,\n ) => Promise<z.infer<TransactionSchema>>\n : (\n txs: BuildTuple<\n ResolvedGatedTransaction<\n GatedTransaction<string, z.infer<TransactionSchema>>\n >,\n TxNumber\n >,\n ...extraArgs: z.infer<ExtraArgs>\n ) => Promise<z.infer<TransactionSchema>>\n >;\n};\n\nexport const createGatedTxCheckActivitySchema = <\n Output extends z.ZodType,\n const Input extends z.ZodType[] = [],\n TransactionWithResultSchema extends\n typeof _transactionWithResultSchema = typeof _transactionWithResultSchema,\n>({\n input,\n output,\n transactionWithResultSchema,\n}: {\n input?: Input;\n transactionWithResultSchema?: TransactionWithResultSchema;\n output: Output;\n}) => {\n const txWithResultSchema = (\n transactionWithResultSchema ?? _transactionWithResultSchema\n ).optional();\n\n return functionSchema({\n input: z.tuple([...(input ?? []), txWithResultSchema] as any),\n output: z.promise(output),\n }) as z.ZodType<\n (\n ...args: [...InferredArray<Input>, z.infer<TransactionWithResultSchema>?]\n ) => Promise<z.infer<Output>>\n >;\n};\n\nexport type ResolvedGatedTransactionDependencies<GatedTx extends GatedTransaction> =\n GatedTx extends GatedTransaction<any, any, any, any, infer _Dependencies>\n ? {\n [K in keyof _Dependencies]?: ResolvedGatedTransaction<_Dependencies[K]>;\n }\n : never;\n\nexport interface GatedTxCheckResult {\n expectationMet: boolean;\n data: unknown;\n}\n\nexport const gatedTxCheckResultSchema = z.object({\n expectationMet: z.boolean(),\n data: z.any(),\n});\n\nexport const 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=L4J4JEOC.js.map
29
- //# sourceMappingURL=L4J4JEOC.js.map
28
+ //# sourceMappingURL=PMA4Q2UL.js.map
29
+ //# sourceMappingURL=PMA4Q2UL.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../src/gatedTx.ts"],"names":["constructGatedTransaction","gtx","dependencies","transactionType","constructGatedTransactionFromPointer","getIdForGatedTransaction","serializedUniqueIdKeys","uniqueIdKeys","Object","entries","map","k","v","join","name","chainName","getBundleIdForGatedTransaction","bundleName"],"mappings":";;;AAiBO,IAAMA,yBAAAA,2BAKXC,GAAAA,KAAAA;AAyBE,EAAA,MAAMC,YAAAA,GAAeD,GAAAA,CAAIC,YAAAA,IAAiB,EAAA;AAC1C,EAAA,OAAO;IAAE,GAAGD,GAAAA;IAAKE,eAAAA,EAAiB,SAAA;AAAWD,IAAAA;AAAa,GAAA;AAC9D,CAAA,EAhCyC,2BAAA;AAgDlC,IAAME,oCAAAA,2BAKXH,GAAAA,KAAAA;AA4BE,EAAA,OAAO;IACH,GAAGA,GAAAA;IACHE,eAAAA,EAAiB;AACrB,GAAA;AACJ,CAAA,EArCoD,sCAAA;AAuC7C,IAAME,wBAAAA,2BAA4BJ,GAAAA,KAAAA;AACrC,EAAA,MAAMK,sBAAAA,GAAyBL,IAAIM,YAAAA,GAC7BC,MAAAA,CAAOC,QAAQR,GAAAA,CAAIM,YAAY,CAAA,CAC1BG,GAAAA,CAAI,CAAC,CAACC,GAAGC,CAAAA,CAAAA,KAAO,GAAGD,CAAAA,CAAAA,CAAAA,EAAKC,CAAAA,CAAAA,CAAG,CAAA,CAC3BC,IAAAA,CAAK,GAAA,CAAA,GACV,EAAA;AAEN,EAAA,OAAO,GAAGZ,GAAAA,CAAIa,IAAI,IAAIb,GAAAA,CAAIc,SAAS,IAAIT,sBAAAA,CAAAA,CAAAA;AAC3C,CAAA,EARwC,0BAAA;AAUjC,IAAMU,8BAAAA,2BACTf,GAAAA,KAAAA;AAEA,EAAA,MAAMK,sBAAAA,GAAyBL,IAAIM,YAAAA,GAC7BC,MAAAA,CAAOC,QAAQR,GAAAA,CAAIM,YAAY,CAAA,CAC1BG,GAAAA,CAAI,CAAC,CAACC,GAAGC,CAAAA,CAAAA,KAAO,GAAGD,CAAAA,CAAAA,CAAAA,EAAKC,CAAAA,CAAAA,CAAG,CAAA,CAC3BC,IAAAA,CAAK,GAAA,CAAA,GACV,EAAA;AAEN,EAAA,OAAO,GAAGZ,GAAAA,CAAIgB,UAAU,IAAIhB,GAAAA,CAAIc,SAAS,IAAIT,sBAAAA,CAAAA,CAAAA;AACjD,CAAA,EAV8C,gCAAA","file":"PMA4Q2UL.js","sourcesContent":["import type { HexString, Transaction } from '@layerzerolabs/common-chain-model';\nimport type { FunctionPointer } from '@layerzerolabs/function-pointer';\nimport type { FunctionPointerWithArgs } from '@layerzerolabs/zod-utils';\n\nimport type {\n BaseGatedTransaction,\n GatedTransaction,\n GatedTransactionBundleId,\n GatedTransactionDependencies,\n GatedTransactionId,\n OnChainDataComparison,\n ResolvedGatedTransaction,\n} from './schemata';\n\n/**\n * Builds a {@link GatedTransaction}\n */\nexport const constructGatedTransaction = <\n const Name extends string,\n Tx extends Transaction,\n Method extends (...args: any[]) => any,\n _Dependencies extends GatedTransactionDependencies,\n>(gtx: {\n name: Name;\n description?: string;\n chainName: string;\n bundleName?: string;\n metadata?: {\n deployInfo?: {\n saveArtifact: boolean;\n contractName: string;\n retryable?: boolean;\n abiEncodedConstructorArguments?: HexString;\n // TODO: Should be FunctionPointerWithArgs<VerificationArtifact> (circular dependency)\n extractVerificationArtifactPointer?: FunctionPointerWithArgs<any>;\n };\n };\n check: {\n functionPointer: FunctionPointer<Method>;\n params: Parameters<Method>;\n expectedResult: OnChainDataComparison<Awaited<ReturnType<Method>>>;\n };\n uniqueIdKeys?: Record<string, string | number | boolean>;\n cacheable?: boolean;\n dependencies?: _Dependencies;\n transaction: Tx;\n}): GatedTransaction<Name, Tx, Method, any, _Dependencies> => {\n const dependencies = gtx.dependencies ?? ([] as any);\n return { ...gtx, transactionType: 'literal', dependencies };\n};\n\ntype BuildDeps<Params extends ResolvedGatedTransaction[]> = Params extends []\n ? []\n : Params extends readonly [\n ResolvedGatedTransaction<infer Gtx>,\n ...infer Rest extends ResolvedGatedTransaction[],\n ]\n ? [Gtx, ...BuildDeps<[...Rest]>]\n : Params extends Array<ResolvedGatedTransaction<infer Gtx>>\n ? Array<Gtx>\n : never;\n\n/**\n * Builds a {@link GatedTransaction} from a pointer\n */\nexport const constructGatedTransactionFromPointer = <\n const Name extends string,\n TxType extends Transaction,\n Method extends (...args: any[]) => any,\n DepMethod extends (txs: any, ...args: any[]) => Promise<TxType>,\n>(gtx: {\n name: Name;\n description?: string;\n chainName: string;\n bundleName?: string;\n metadata?: {\n deployInfo?: {\n saveArtifact: boolean;\n contractName: string;\n abiEncodedConstructorArguments?: HexString;\n retryable?: boolean;\n // TODO: Should be FunctionPointerWithArgs<VerificationArtifact> (circular dependency)\n extractVerificationArtifactPointer?: FunctionPointerWithArgs<any>;\n };\n };\n check: {\n functionPointer: FunctionPointer<Method>;\n params: Parameters<Method>;\n expectedResult: OnChainDataComparison<Awaited<ReturnType<Method>>>;\n };\n uniqueIdKeys?: Record<string, string | number | boolean>;\n cacheable?: boolean;\n dependencies: BuildDeps<Parameters<DepMethod>[0]>;\n getTransaction: {\n functionPointer: FunctionPointer<DepMethod>;\n params: Parameters<DepMethod> extends [any, ...infer Tail] ? Tail : [];\n };\n}): GatedTransaction<Name, TxType, Method, DepMethod, BuildDeps<Parameters<DepMethod>[0]>> => {\n return {\n ...gtx,\n transactionType: 'functional',\n };\n};\n\nexport const getIdForGatedTransaction = (gtx: BaseGatedTransaction): GatedTransactionId => {\n const serializedUniqueIdKeys = gtx.uniqueIdKeys\n ? Object.entries(gtx.uniqueIdKeys)\n .map(([k, v]) => `${k}:${v}`)\n .join('-')\n : '';\n\n return `${gtx.name}-${gtx.chainName}-${serializedUniqueIdKeys}`;\n};\n\nexport const getBundleIdForGatedTransaction = (\n gtx: BaseGatedTransaction,\n): GatedTransactionBundleId => {\n const serializedUniqueIdKeys = gtx.uniqueIdKeys\n ? Object.entries(gtx.uniqueIdKeys)\n .map(([k, v]) => `${k}:${v}`)\n .join('-')\n : '';\n\n return `${gtx.bundleName}-${gtx.chainName}-${serializedUniqueIdKeys}`;\n};\n"]}
package/dist/gatedTx.cjs CHANGED
@@ -1,25 +1,25 @@
1
1
  'use strict';
2
2
 
3
- var ZE3NLIHW_cjs = require('./ZE3NLIHW.cjs');
3
+ var _7S7APV6O_cjs = require('./7S7APV6O.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 ZE3NLIHW_cjs.constructGatedTransaction; }
10
+ get: function () { return _7S7APV6O_cjs.constructGatedTransaction; }
11
11
  });
12
12
  Object.defineProperty(exports, "constructGatedTransactionFromPointer", {
13
13
  enumerable: true,
14
- get: function () { return ZE3NLIHW_cjs.constructGatedTransactionFromPointer; }
14
+ get: function () { return _7S7APV6O_cjs.constructGatedTransactionFromPointer; }
15
15
  });
16
16
  Object.defineProperty(exports, "getBundleIdForGatedTransaction", {
17
17
  enumerable: true,
18
- get: function () { return ZE3NLIHW_cjs.getBundleIdForGatedTransaction; }
18
+ get: function () { return _7S7APV6O_cjs.getBundleIdForGatedTransaction; }
19
19
  });
20
20
  Object.defineProperty(exports, "getIdForGatedTransaction", {
21
21
  enumerable: true,
22
- get: function () { return ZE3NLIHW_cjs.getIdForGatedTransaction; }
22
+ get: function () { return _7S7APV6O_cjs.getIdForGatedTransaction; }
23
23
  });
24
24
  //# sourceMappingURL=gatedTx.cjs.map
25
25
  //# sourceMappingURL=gatedTx.cjs.map
package/dist/gatedTx.d.ts CHANGED
@@ -16,7 +16,7 @@ export declare const constructGatedTransaction: <const Name extends string, Tx e
16
16
  contractName: string;
17
17
  retryable?: boolean;
18
18
  abiEncodedConstructorArguments?: HexString;
19
- createVerificationInfoPayloadPointerWithArgs?: FunctionPointerWithArgs<any>;
19
+ extractVerificationArtifactPointer?: FunctionPointerWithArgs<any>;
20
20
  };
21
21
  };
22
22
  check: {
@@ -47,7 +47,7 @@ export declare const constructGatedTransactionFromPointer: <const Name extends s
47
47
  contractName: string;
48
48
  abiEncodedConstructorArguments?: HexString;
49
49
  retryable?: boolean;
50
- createVerificationInfoPayloadPointerWithArgs?: FunctionPointerWithArgs<any>;
50
+ extractVerificationArtifactPointer?: FunctionPointerWithArgs<any>;
51
51
  };
52
52
  };
53
53
  check: {
@@ -1 +1 @@
1
- {"version":3,"file":"gatedTx.d.ts","sourceRoot":"","sources":["../src/gatedTx.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"gatedTx.d.ts","sourceRoot":"","sources":["../src/gatedTx.ts"],"names":[],"mappings":"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"}
package/dist/gatedTx.js CHANGED
@@ -1,4 +1,4 @@
1
- export { constructGatedTransaction, constructGatedTransactionFromPointer, getBundleIdForGatedTransaction, getIdForGatedTransaction } from './L4J4JEOC.js';
1
+ export { constructGatedTransaction, constructGatedTransactionFromPointer, getBundleIdForGatedTransaction, getIdForGatedTransaction } from './PMA4Q2UL.js';
2
2
  import './VUOMXK5T.js';
3
3
  //# sourceMappingURL=gatedTx.js.map
4
4
  //# sourceMappingURL=gatedTx.js.map
package/dist/index.cjs CHANGED
@@ -1,66 +1,74 @@
1
1
  'use strict';
2
2
 
3
- var ZE3NLIHW_cjs = require('./ZE3NLIHW.cjs');
4
- var NQO4S4JF_cjs = require('./NQO4S4JF.cjs');
3
+ var _7S7APV6O_cjs = require('./7S7APV6O.cjs');
4
+ var FBGH4Z7Y_cjs = require('./FBGH4Z7Y.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 ZE3NLIHW_cjs.constructGatedTransaction; }
11
+ get: function () { return _7S7APV6O_cjs.constructGatedTransaction; }
12
12
  });
13
13
  Object.defineProperty(exports, "constructGatedTransactionFromPointer", {
14
14
  enumerable: true,
15
- get: function () { return ZE3NLIHW_cjs.constructGatedTransactionFromPointer; }
15
+ get: function () { return _7S7APV6O_cjs.constructGatedTransactionFromPointer; }
16
16
  });
17
17
  Object.defineProperty(exports, "getBundleIdForGatedTransaction", {
18
18
  enumerable: true,
19
- get: function () { return ZE3NLIHW_cjs.getBundleIdForGatedTransaction; }
19
+ get: function () { return _7S7APV6O_cjs.getBundleIdForGatedTransaction; }
20
20
  });
21
21
  Object.defineProperty(exports, "getIdForGatedTransaction", {
22
22
  enumerable: true,
23
- get: function () { return ZE3NLIHW_cjs.getIdForGatedTransaction; }
23
+ get: function () { return _7S7APV6O_cjs.getIdForGatedTransaction; }
24
24
  });
25
25
  Object.defineProperty(exports, "GatedTransactionStatus", {
26
26
  enumerable: true,
27
- get: function () { return NQO4S4JF_cjs.GatedTransactionStatus; }
27
+ get: function () { return FBGH4Z7Y_cjs.GatedTransactionStatus; }
28
28
  });
29
29
  Object.defineProperty(exports, "createGatedTxCheckActivitySchema", {
30
30
  enumerable: true,
31
- get: function () { return NQO4S4JF_cjs.createGatedTxCheckActivitySchema; }
31
+ get: function () { return FBGH4Z7Y_cjs.createGatedTxCheckActivitySchema; }
32
32
  });
33
33
  Object.defineProperty(exports, "createTxArrayDependentActivitySchema", {
34
34
  enumerable: true,
35
- get: function () { return NQO4S4JF_cjs.createTxArrayDependentActivitySchema; }
35
+ get: function () { return FBGH4Z7Y_cjs.createTxArrayDependentActivitySchema; }
36
36
  });
37
37
  Object.defineProperty(exports, "createTxTupleDependentActivitySchema", {
38
38
  enumerable: true,
39
- get: function () { return NQO4S4JF_cjs.createTxTupleDependentActivitySchema; }
39
+ get: function () { return FBGH4Z7Y_cjs.createTxTupleDependentActivitySchema; }
40
40
  });
41
41
  Object.defineProperty(exports, "gatedTransactionCacheSchema", {
42
42
  enumerable: true,
43
- get: function () { return NQO4S4JF_cjs.gatedTransactionCacheSchema; }
43
+ get: function () { return FBGH4Z7Y_cjs.gatedTransactionCacheSchema; }
44
44
  });
45
45
  Object.defineProperty(exports, "gatedTransactionIsResolvedGatedTransaction", {
46
46
  enumerable: true,
47
- get: function () { return NQO4S4JF_cjs.gatedTransactionIsResolvedGatedTransaction; }
47
+ get: function () { return FBGH4Z7Y_cjs.gatedTransactionIsResolvedGatedTransaction; }
48
48
  });
49
49
  Object.defineProperty(exports, "gatedTransactionResultSchema", {
50
50
  enumerable: true,
51
- get: function () { return NQO4S4JF_cjs.gatedTransactionResultSchema; }
51
+ get: function () { return FBGH4Z7Y_cjs.gatedTransactionResultSchema; }
52
52
  });
53
53
  Object.defineProperty(exports, "gatedTransactionSchema", {
54
54
  enumerable: true,
55
- get: function () { return NQO4S4JF_cjs.gatedTransactionSchema; }
55
+ get: function () { return FBGH4Z7Y_cjs.gatedTransactionSchema; }
56
56
  });
57
57
  Object.defineProperty(exports, "gatedTxCheckResultSchema", {
58
58
  enumerable: true,
59
- get: function () { return NQO4S4JF_cjs.gatedTxCheckResultSchema; }
59
+ get: function () { return FBGH4Z7Y_cjs.gatedTxCheckResultSchema; }
60
+ });
61
+ Object.defineProperty(exports, "isSuccessfulGatedTransaction", {
62
+ enumerable: true,
63
+ get: function () { return FBGH4Z7Y_cjs.isSuccessfulGatedTransaction; }
60
64
  });
61
65
  Object.defineProperty(exports, "resolvedGatedTransactionSchema", {
62
66
  enumerable: true,
63
- get: function () { return NQO4S4JF_cjs.resolvedGatedTransactionSchema; }
67
+ get: function () { return FBGH4Z7Y_cjs.resolvedGatedTransactionSchema; }
68
+ });
69
+ Object.defineProperty(exports, "successfulGatedTransactionSchema", {
70
+ enumerable: true,
71
+ get: function () { return FBGH4Z7Y_cjs.successfulGatedTransactionSchema; }
64
72
  });
65
73
  //# sourceMappingURL=index.cjs.map
66
74
  //# sourceMappingURL=index.cjs.map
package/dist/index.js CHANGED
@@ -1,5 +1,5 @@
1
- export { constructGatedTransaction, constructGatedTransactionFromPointer, getBundleIdForGatedTransaction, getIdForGatedTransaction } from './L4J4JEOC.js';
2
- export { GatedTransactionStatus, createGatedTxCheckActivitySchema, createTxArrayDependentActivitySchema, createTxTupleDependentActivitySchema, gatedTransactionCacheSchema, gatedTransactionIsResolvedGatedTransaction, gatedTransactionResultSchema, gatedTransactionSchema, gatedTxCheckResultSchema, resolvedGatedTransactionSchema } from './XZJ4DGII.js';
1
+ export { constructGatedTransaction, constructGatedTransactionFromPointer, getBundleIdForGatedTransaction, getIdForGatedTransaction } from './PMA4Q2UL.js';
2
+ export { GatedTransactionStatus, createGatedTxCheckActivitySchema, createTxArrayDependentActivitySchema, createTxTupleDependentActivitySchema, gatedTransactionCacheSchema, gatedTransactionIsResolvedGatedTransaction, gatedTransactionResultSchema, gatedTransactionSchema, gatedTxCheckResultSchema, isSuccessfulGatedTransaction, resolvedGatedTransactionSchema, successfulGatedTransactionSchema } from './FNFGPB4O.js';
3
3
  import './VUOMXK5T.js';
4
4
  //# sourceMappingURL=index.js.map
5
5
  //# sourceMappingURL=index.js.map
package/dist/schemata.cjs CHANGED
@@ -1,49 +1,57 @@
1
1
  'use strict';
2
2
 
3
- var NQO4S4JF_cjs = require('./NQO4S4JF.cjs');
3
+ var FBGH4Z7Y_cjs = require('./FBGH4Z7Y.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 NQO4S4JF_cjs.GatedTransactionStatus; }
10
+ get: function () { return FBGH4Z7Y_cjs.GatedTransactionStatus; }
11
11
  });
12
12
  Object.defineProperty(exports, "createGatedTxCheckActivitySchema", {
13
13
  enumerable: true,
14
- get: function () { return NQO4S4JF_cjs.createGatedTxCheckActivitySchema; }
14
+ get: function () { return FBGH4Z7Y_cjs.createGatedTxCheckActivitySchema; }
15
15
  });
16
16
  Object.defineProperty(exports, "createTxArrayDependentActivitySchema", {
17
17
  enumerable: true,
18
- get: function () { return NQO4S4JF_cjs.createTxArrayDependentActivitySchema; }
18
+ get: function () { return FBGH4Z7Y_cjs.createTxArrayDependentActivitySchema; }
19
19
  });
20
20
  Object.defineProperty(exports, "createTxTupleDependentActivitySchema", {
21
21
  enumerable: true,
22
- get: function () { return NQO4S4JF_cjs.createTxTupleDependentActivitySchema; }
22
+ get: function () { return FBGH4Z7Y_cjs.createTxTupleDependentActivitySchema; }
23
23
  });
24
24
  Object.defineProperty(exports, "gatedTransactionCacheSchema", {
25
25
  enumerable: true,
26
- get: function () { return NQO4S4JF_cjs.gatedTransactionCacheSchema; }
26
+ get: function () { return FBGH4Z7Y_cjs.gatedTransactionCacheSchema; }
27
27
  });
28
28
  Object.defineProperty(exports, "gatedTransactionIsResolvedGatedTransaction", {
29
29
  enumerable: true,
30
- get: function () { return NQO4S4JF_cjs.gatedTransactionIsResolvedGatedTransaction; }
30
+ get: function () { return FBGH4Z7Y_cjs.gatedTransactionIsResolvedGatedTransaction; }
31
31
  });
32
32
  Object.defineProperty(exports, "gatedTransactionResultSchema", {
33
33
  enumerable: true,
34
- get: function () { return NQO4S4JF_cjs.gatedTransactionResultSchema; }
34
+ get: function () { return FBGH4Z7Y_cjs.gatedTransactionResultSchema; }
35
35
  });
36
36
  Object.defineProperty(exports, "gatedTransactionSchema", {
37
37
  enumerable: true,
38
- get: function () { return NQO4S4JF_cjs.gatedTransactionSchema; }
38
+ get: function () { return FBGH4Z7Y_cjs.gatedTransactionSchema; }
39
39
  });
40
40
  Object.defineProperty(exports, "gatedTxCheckResultSchema", {
41
41
  enumerable: true,
42
- get: function () { return NQO4S4JF_cjs.gatedTxCheckResultSchema; }
42
+ get: function () { return FBGH4Z7Y_cjs.gatedTxCheckResultSchema; }
43
+ });
44
+ Object.defineProperty(exports, "isSuccessfulGatedTransaction", {
45
+ enumerable: true,
46
+ get: function () { return FBGH4Z7Y_cjs.isSuccessfulGatedTransaction; }
43
47
  });
44
48
  Object.defineProperty(exports, "resolvedGatedTransactionSchema", {
45
49
  enumerable: true,
46
- get: function () { return NQO4S4JF_cjs.resolvedGatedTransactionSchema; }
50
+ get: function () { return FBGH4Z7Y_cjs.resolvedGatedTransactionSchema; }
51
+ });
52
+ Object.defineProperty(exports, "successfulGatedTransactionSchema", {
53
+ enumerable: true,
54
+ get: function () { return FBGH4Z7Y_cjs.successfulGatedTransactionSchema; }
47
55
  });
48
56
  //# sourceMappingURL=schemata.cjs.map
49
57
  //# sourceMappingURL=schemata.cjs.map
@@ -47,7 +47,7 @@ export type BaseGatedTransaction<Name extends string = string, CheckMethod exten
47
47
  contractName: string;
48
48
  retryable?: boolean;
49
49
  abiEncodedConstructorArguments?: HexString;
50
- createVerificationInfoPayloadPointerWithArgs?: FunctionPointerWithArgs<any>;
50
+ extractVerificationArtifactPointer?: FunctionPointerWithArgs<any>;
51
51
  };
52
52
  };
53
53
  chainName: string;
@@ -81,7 +81,7 @@ export declare enum GatedTransactionStatus {
81
81
  type NoOpGatedTransaction = {
82
82
  status: GatedTransactionStatus.NO_OP;
83
83
  };
84
- type SuccessfulGatedTransaction<TxType extends Transaction> = {
84
+ export type SuccessfulGatedTransaction<TxType extends Transaction> = {
85
85
  status: GatedTransactionStatus.SUCCESS;
86
86
  submittedTransaction: TransactionWithResultFor<TxType>;
87
87
  };
@@ -116,6 +116,14 @@ export declare const resolvedGatedTransactionSchema: <Name extends z.ZodString |
116
116
  name?: Name;
117
117
  transactionSchema?: TransactionSchema;
118
118
  }) => z.ZodType<ResolvedGatedTransaction<GatedTransaction<z.core.output<Name>, z.core.output<TransactionSchema>, (...args: any[]) => any, (txs: any, ...args: any[]) => Promise<any>, GatedTransactionDependencies>, z.core.output<TransactionSchema>>, unknown, z.core.$ZodTypeInternals<ResolvedGatedTransaction<GatedTransaction<z.core.output<Name>, z.core.output<TransactionSchema>, (...args: any[]) => any, (txs: any, ...args: any[]) => Promise<any>, GatedTransactionDependencies>, z.core.output<TransactionSchema>>, unknown>>;
119
+ export declare const successfulGatedTransactionSchema: <Name extends z.ZodString | z.ZodLiteral<string> = z.ZodString, TransactionSchema extends typeof _transactionSchema = typeof _transactionSchema>(_?: {
120
+ name?: Name;
121
+ transactionSchema?: TransactionSchema;
122
+ }) => z.ZodType<BaseGatedTransaction<z.core.output<Name>, (...args: any[]) => any, GatedTransactionDependencies> & {
123
+ result: SuccessfulGatedTransaction<z.infer<TransactionSchema>>;
124
+ }, unknown, z.core.$ZodTypeInternals<BaseGatedTransaction<z.core.output<Name>, (...args: any[]) => any, GatedTransactionDependencies> & {
125
+ result: SuccessfulGatedTransaction<z.infer<TransactionSchema>>;
126
+ }, unknown>>;
119
127
  /**
120
128
  * Builds a schema for an activity that builds a transaction based on the results of other transactions
121
129
  * @param transactionSchema The schema for the transaction to be built
@@ -150,6 +158,9 @@ export declare const gatedTxCheckResultSchema: z.ZodObject<{
150
158
  expectationMet: z.ZodBoolean;
151
159
  data: z.ZodAny;
152
160
  }, z.core.$strip>;
161
+ export declare const isSuccessfulGatedTransaction: <GatedTx extends GatedTransaction, TxType extends Transaction>(gtx: ResolvedGatedTransaction<GatedTx, TxType>) => gtx is BaseGatedTransactionFor<GatedTx> & {
162
+ result: SuccessfulGatedTransaction<TxType>;
163
+ };
153
164
  export declare const gatedTransactionCacheSchema: z.ZodObject<{
154
165
  getCachedTxCheckData: z.ZodType<(<GatedTx extends GatedTransaction>(gtx: GatedTx) => Promise<InferOnChainDataTypeFromGatedTransaction<GatedTx> | undefined>)>;
155
166
  cacheSuccessfulTxCheckData: z.ZodType<(<GatedTx extends GatedTransaction>(gtx: GatedTx, data: InferOnChainDataTypeFromGatedTransaction<GatedTx>) => Promise<void>)>;
@@ -1 +1 @@
1
- {"version":3,"file":"schemata.d.ts","sourceRoot":"","sources":["../src/schemata.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"schemata.d.ts","sourceRoot":"","sources":["../src/schemata.ts"],"names":[],"mappings":"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"}
package/dist/schemata.js CHANGED
@@ -1,4 +1,4 @@
1
- export { GatedTransactionStatus, createGatedTxCheckActivitySchema, createTxArrayDependentActivitySchema, createTxTupleDependentActivitySchema, gatedTransactionCacheSchema, gatedTransactionIsResolvedGatedTransaction, gatedTransactionResultSchema, gatedTransactionSchema, gatedTxCheckResultSchema, resolvedGatedTransactionSchema } from './XZJ4DGII.js';
1
+ export { GatedTransactionStatus, createGatedTxCheckActivitySchema, createTxArrayDependentActivitySchema, createTxTupleDependentActivitySchema, gatedTransactionCacheSchema, gatedTransactionIsResolvedGatedTransaction, gatedTransactionResultSchema, gatedTransactionSchema, gatedTxCheckResultSchema, isSuccessfulGatedTransaction, resolvedGatedTransactionSchema, successfulGatedTransactionSchema } from './FNFGPB4O.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.23",
3
+ "version": "0.2.24",
4
4
  "private": false,
5
5
  "license": "MIT",
6
6
  "sideEffects": false,
@@ -16,18 +16,18 @@
16
16
  "types": "./dist/index.d.ts",
17
17
  "dependencies": {
18
18
  "zod": "4.3.5",
19
- "@layerzerolabs/common-chain-model": "0.2.23",
20
- "@layerzerolabs/function-pointer": "0.2.23",
21
- "@layerzerolabs/zod-utils": "0.2.23"
19
+ "@layerzerolabs/common-chain-model": "0.2.24",
20
+ "@layerzerolabs/function-pointer": "0.2.24",
21
+ "@layerzerolabs/zod-utils": "0.2.24"
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.23",
28
- "@layerzerolabs/tsup-configuration": "0.2.23",
29
- "@layerzerolabs/typescript-configuration": "0.2.23",
30
- "@layerzerolabs/typescript-utils": "0.2.23"
27
+ "@layerzerolabs/tsup-configuration": "0.2.24",
28
+ "@layerzerolabs/base-definitions": "0.2.24",
29
+ "@layerzerolabs/typescript-configuration": "0.2.24",
30
+ "@layerzerolabs/typescript-utils": "0.2.24"
31
31
  },
32
32
  "publishConfig": {
33
33
  "access": "restricted",
package/src/gatedTx.ts CHANGED
@@ -32,7 +32,7 @@ export const constructGatedTransaction = <
32
32
  retryable?: boolean;
33
33
  abiEncodedConstructorArguments?: HexString;
34
34
  // TODO: Should be FunctionPointerWithArgs<VerificationArtifact> (circular dependency)
35
- createVerificationInfoPayloadPointerWithArgs?: FunctionPointerWithArgs<any>;
35
+ extractVerificationArtifactPointer?: FunctionPointerWithArgs<any>;
36
36
  };
37
37
  };
38
38
  check: {
@@ -80,7 +80,7 @@ export const constructGatedTransactionFromPointer = <
80
80
  abiEncodedConstructorArguments?: HexString;
81
81
  retryable?: boolean;
82
82
  // TODO: Should be FunctionPointerWithArgs<VerificationArtifact> (circular dependency)
83
- createVerificationInfoPayloadPointerWithArgs?: FunctionPointerWithArgs<any>;
83
+ extractVerificationArtifactPointer?: FunctionPointerWithArgs<any>;
84
84
  };
85
85
  };
86
86
  check: {
package/src/schemata.ts CHANGED
@@ -91,7 +91,7 @@ export type BaseGatedTransaction<
91
91
  retryable?: boolean;
92
92
  abiEncodedConstructorArguments?: HexString;
93
93
  // TODO: Should be FunctionPointerWithArgs<VerificationArtifact> (circular dependency)
94
- createVerificationInfoPayloadPointerWithArgs?: FunctionPointerWithArgs<any>;
94
+ extractVerificationArtifactPointer?: FunctionPointerWithArgs<any>;
95
95
  };
96
96
  };
97
97
  chainName: string;
@@ -167,7 +167,7 @@ type NoOpGatedTransaction = {
167
167
  status: GatedTransactionStatus.NO_OP;
168
168
  };
169
169
 
170
- type SuccessfulGatedTransaction<TxType extends Transaction> = {
170
+ export type SuccessfulGatedTransaction<TxType extends Transaction> = {
171
171
  status: GatedTransactionStatus.SUCCESS;
172
172
  submittedTransaction: TransactionWithResultFor<TxType>;
173
173
  };
@@ -247,6 +247,22 @@ export const resolvedGatedTransactionSchema = <
247
247
  description: 'A schema for a resolved gated transaction',
248
248
  });
249
249
 
250
+ export const successfulGatedTransactionSchema = <
251
+ Name extends z.ZodString | z.ZodLiteral<string> = z.ZodString,
252
+ TransactionSchema extends typeof _transactionSchema = typeof _transactionSchema,
253
+ >(_?: {
254
+ name?: Name;
255
+ transactionSchema?: TransactionSchema;
256
+ }) =>
257
+ customSchema<
258
+ BaseGatedTransactionFor<GatedTransaction<z.infer<Name>, z.infer<TransactionSchema>>> & {
259
+ result: SuccessfulGatedTransaction<z.infer<TransactionSchema>>;
260
+ }
261
+ >().meta({
262
+ title: 'Successful Gated Transaction',
263
+ description: 'A schema for a successful gated transaction',
264
+ });
265
+
250
266
  /**
251
267
  * Builds a schema for an activity that builds a transaction based on the results of other transactions
252
268
  * @param transactionSchema The schema for the transaction to be built
@@ -380,6 +396,15 @@ export const gatedTxCheckResultSchema = z.object({
380
396
  data: z.any(),
381
397
  });
382
398
 
399
+ export const isSuccessfulGatedTransaction = <
400
+ GatedTx extends GatedTransaction,
401
+ TxType extends Transaction,
402
+ >(
403
+ gtx: ResolvedGatedTransaction<GatedTx, TxType>,
404
+ ): gtx is BaseGatedTransactionFor<GatedTx> & { result: SuccessfulGatedTransaction<TxType> } => {
405
+ return gtx.result.status === GatedTransactionStatus.SUCCESS;
406
+ };
407
+
383
408
  export const gatedTransactionCacheSchema = z.object({
384
409
  getCachedTxCheckData: functionSchema({
385
410
  input: z.tuple([z.any()]),
@@ -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;AAyBE,EAAA,MAAMC,YAAAA,GAAeD,GAAAA,CAAIC,YAAAA,IAAiB,EAAA;AAC1C,EAAA,OAAO;IAAE,GAAGD,GAAAA;IAAKE,eAAAA,EAAiB,SAAA;AAAWD,IAAAA;AAAa,GAAA;AAC9D,CAAA,EAhCyC,2BAAA;AAgDlC,IAAME,oCAAAA,2BAKXH,GAAAA,KAAAA;AA4BE,EAAA,OAAO;IACH,GAAGA,GAAAA;IACHE,eAAAA,EAAiB;AACrB,GAAA;AACJ,CAAA,EArCoD,sCAAA;AAuC7C,IAAME,wBAAAA,2BAA4BJ,GAAAA,KAAAA;AACrC,EAAA,MAAMK,sBAAAA,GAAyBL,IAAIM,YAAAA,GAC7BC,MAAAA,CAAOC,QAAQR,GAAAA,CAAIM,YAAY,CAAA,CAC1BG,GAAAA,CAAI,CAAC,CAACC,GAAGC,CAAAA,CAAAA,KAAO,GAAGD,CAAAA,CAAAA,CAAAA,EAAKC,CAAAA,CAAAA,CAAG,CAAA,CAC3BC,IAAAA,CAAK,GAAA,CAAA,GACV,EAAA;AAEN,EAAA,OAAO,GAAGZ,GAAAA,CAAIa,IAAI,IAAIb,GAAAA,CAAIc,SAAS,IAAIT,sBAAAA,CAAAA,CAAAA;AAC3C,CAAA,EARwC,0BAAA;AAUjC,IAAMU,8BAAAA,2BACTf,GAAAA,KAAAA;AAEA,EAAA,MAAMK,sBAAAA,GAAyBL,IAAIM,YAAAA,GAC7BC,MAAAA,CAAOC,QAAQR,GAAAA,CAAIM,YAAY,CAAA,CAC1BG,GAAAA,CAAI,CAAC,CAACC,GAAGC,CAAAA,CAAAA,KAAO,GAAGD,CAAAA,CAAAA,CAAAA,EAAKC,CAAAA,CAAAA,CAAG,CAAA,CAC3BC,IAAAA,CAAK,GAAA,CAAA,GACV,EAAA;AAEN,EAAA,OAAO,GAAGZ,GAAAA,CAAIgB,UAAU,IAAIhB,GAAAA,CAAIc,SAAS,IAAIT,sBAAAA,CAAAA,CAAAA;AACjD,CAAA,EAV8C,gCAAA","file":"L4J4JEOC.js","sourcesContent":["import type { HexString, Transaction } from '@layerzerolabs/common-chain-model';\nimport type { FunctionPointer } from '@layerzerolabs/function-pointer';\nimport type { FunctionPointerWithArgs } from '@layerzerolabs/zod-utils';\n\nimport type {\n BaseGatedTransaction,\n GatedTransaction,\n GatedTransactionBundleId,\n GatedTransactionDependencies,\n GatedTransactionId,\n OnChainDataComparison,\n ResolvedGatedTransaction,\n} from './schemata';\n\n/**\n * Builds a {@link GatedTransaction}\n */\nexport const constructGatedTransaction = <\n const Name extends string,\n Tx extends Transaction,\n Method extends (...args: any[]) => any,\n _Dependencies extends GatedTransactionDependencies,\n>(gtx: {\n name: Name;\n description?: string;\n chainName: string;\n bundleName?: string;\n metadata?: {\n deployInfo?: {\n saveArtifact: boolean;\n contractName: string;\n retryable?: boolean;\n abiEncodedConstructorArguments?: HexString;\n // TODO: Should be FunctionPointerWithArgs<VerificationArtifact> (circular dependency)\n createVerificationInfoPayloadPointerWithArgs?: FunctionPointerWithArgs<any>;\n };\n };\n check: {\n functionPointer: FunctionPointer<Method>;\n params: Parameters<Method>;\n expectedResult: OnChainDataComparison<Awaited<ReturnType<Method>>>;\n };\n uniqueIdKeys?: Record<string, string | number | boolean>;\n cacheable?: boolean;\n dependencies?: _Dependencies;\n transaction: Tx;\n}): GatedTransaction<Name, Tx, Method, any, _Dependencies> => {\n const dependencies = gtx.dependencies ?? ([] as any);\n return { ...gtx, transactionType: 'literal', dependencies };\n};\n\ntype BuildDeps<Params extends ResolvedGatedTransaction[]> = Params extends []\n ? []\n : Params extends readonly [\n ResolvedGatedTransaction<infer Gtx>,\n ...infer Rest extends ResolvedGatedTransaction[],\n ]\n ? [Gtx, ...BuildDeps<[...Rest]>]\n : Params extends Array<ResolvedGatedTransaction<infer Gtx>>\n ? Array<Gtx>\n : never;\n\n/**\n * Builds a {@link GatedTransaction} from a pointer\n */\nexport const constructGatedTransactionFromPointer = <\n const Name extends string,\n TxType extends Transaction,\n Method extends (...args: any[]) => any,\n DepMethod extends (txs: any, ...args: any[]) => Promise<TxType>,\n>(gtx: {\n name: Name;\n description?: string;\n chainName: string;\n bundleName?: string;\n metadata?: {\n deployInfo?: {\n saveArtifact: boolean;\n contractName: string;\n abiEncodedConstructorArguments?: HexString;\n retryable?: boolean;\n // TODO: Should be FunctionPointerWithArgs<VerificationArtifact> (circular dependency)\n createVerificationInfoPayloadPointerWithArgs?: FunctionPointerWithArgs<any>;\n };\n };\n check: {\n functionPointer: FunctionPointer<Method>;\n params: Parameters<Method>;\n expectedResult: OnChainDataComparison<Awaited<ReturnType<Method>>>;\n };\n uniqueIdKeys?: Record<string, string | number | boolean>;\n cacheable?: boolean;\n dependencies: BuildDeps<Parameters<DepMethod>[0]>;\n getTransaction: {\n functionPointer: FunctionPointer<DepMethod>;\n params: Parameters<DepMethod> extends [any, ...infer Tail] ? Tail : [];\n };\n}): GatedTransaction<Name, TxType, Method, DepMethod, BuildDeps<Parameters<DepMethod>[0]>> => {\n return {\n ...gtx,\n transactionType: 'functional',\n };\n};\n\nexport const getIdForGatedTransaction = (gtx: BaseGatedTransaction): GatedTransactionId => {\n const serializedUniqueIdKeys = gtx.uniqueIdKeys\n ? Object.entries(gtx.uniqueIdKeys)\n .map(([k, v]) => `${k}:${v}`)\n .join('-')\n : '';\n\n return `${gtx.name}-${gtx.chainName}-${serializedUniqueIdKeys}`;\n};\n\nexport const getBundleIdForGatedTransaction = (\n gtx: BaseGatedTransaction,\n): GatedTransactionBundleId => {\n const serializedUniqueIdKeys = gtx.uniqueIdKeys\n ? Object.entries(gtx.uniqueIdKeys)\n .map(([k, v]) => `${k}:${v}`)\n .join('-')\n : '';\n\n return `${gtx.bundleName}-${gtx.chainName}-${serializedUniqueIdKeys}`;\n};\n"]}
@@ -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","createTxArrayDependentActivitySchema","transactionSchema","extraArgs","functionSchema","input","tuple","array","def","items","output","promise","createTxTupleDependentActivitySchema","txNumber","txs","Array","from","length","createGatedTxCheckActivitySchema","transactionWithResultSchema","_transactionWithResultSchema","optional","gatedTxCheckResultSchema","expectationMet","boolean","data","gatedTransactionCacheSchema","getCachedTxCheckData","cacheSuccessfulTxCheckData"],"mappings":"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","file":"NQO4S4JF.cjs","sourcesContent":["import z from 'zod';\n\nimport type { transactionSchema as _transactionSchema } from '@layerzerolabs/common-chain-model';\nimport type { HexString } from '@layerzerolabs/common-chain-model';\nimport {\n type Transaction,\n type TransactionWithResultFor,\n transactionWithResultSchema as _transactionWithResultSchema,\n} from '@layerzerolabs/common-chain-model';\nimport type { FunctionPointer } from '@layerzerolabs/function-pointer';\nimport type { BrandedError, BuildTuple, IsAny, Or } from '@layerzerolabs/typescript-utils';\nimport type { FunctionPointerWithArgs, InferredArray } from '@layerzerolabs/zod-utils';\nimport { customSchema, functionSchema } from '@layerzerolabs/zod-utils';\n\nexport type OnChainDataComparisonOperator<OnChainDataType> =\n Or<[OnChainDataType extends number ? true : false, IsAny<OnChainDataType>]> extends true\n ? '<' | '<=' | '=' | '!=' | '>' | '>='\n : OnChainDataType extends string | object | boolean\n ? '=' | '!='\n : BrandedError<'Unsupported comparison type'>;\n\nexport type OnChainDataComparison<OnChainDataType extends string | number | boolean | object> = {\n operator: OnChainDataComparisonOperator<OnChainDataType>;\n comparisonValue: OnChainDataType;\n};\n\nexport type GatedTransactionCheck<\n Method extends (...args: any[]) => Promise<any> = (...args: any[]) => Promise<unknown>,\n> = {\n functionPointer: FunctionPointer<Method>;\n params: Parameters<Method>;\n expectedResult: OnChainDataComparison<Awaited<ReturnType<Method>>>;\n};\n\n// Schema for gated transaction results\nexport const gatedTransactionResultSchema = <\n TxWithResultSchema extends typeof _transactionWithResultSchema,\n OnchainDataSchema extends z.ZodType,\n>(\n txWithResultSchema: TxWithResultSchema,\n onchainDataSchema: OnchainDataSchema,\n) =>\n // FIXME use this as source of truth for GatedTransactionResult type\n z.union([\n z.object({\n status: z.literal(GatedTransactionStatus.NO_OP),\n }),\n z.object({\n status: z.literal(GatedTransactionStatus.SUCCESS),\n submittedTransaction: txWithResultSchema,\n }),\n z.object({\n status: z.literal(GatedTransactionStatus.TRANSACTION_FAILED),\n transactionError: z.any(),\n }),\n z.object({\n status: z.literal(GatedTransactionStatus.FINAL_CHECK_FAILED),\n submittedTransaction: txWithResultSchema,\n finalOnChainState: onchainDataSchema,\n }),\n z.object({\n status: z.literal(GatedTransactionStatus.DEPENDENCY_FAILED),\n }),\n z.object({\n status: z.literal(GatedTransactionStatus.DENIED),\n }),\n z.object({\n status: z.literal(GatedTransactionStatus.DEFERRED_SUCCESS),\n }),\n ]);\n\nexport type InferOnChainDataTypeFromCheck<Check> = Check extends (...args: any[]) => infer Ret\n ? Awaited<Ret>\n : unknown;\nexport type InferOnChainDataTypeFromGatedTransaction<GatedTx extends GatedTransaction> =\n InferOnChainDataTypeFromCheck<GatedTx['check']>;\n\nexport type GatedTransactionDependencies = GatedTransaction[];\nexport type BaseGatedTransaction<\n Name extends string = string,\n CheckMethod extends (...args: any[]) => any = (...args: any[]) => any,\n _Dependencies extends GatedTransactionDependencies = GatedTransactionDependencies,\n> = {\n name: Name;\n description?: string;\n bundleName?: string;\n metadata?: {\n deployInfo?: {\n saveArtifact: boolean;\n contractName: string;\n retryable?: boolean;\n abiEncodedConstructorArguments?: HexString;\n // TODO: Should be FunctionPointerWithArgs<VerificationArtifact> (circular dependency)\n createVerificationInfoPayloadPointerWithArgs?: FunctionPointerWithArgs<any>;\n };\n };\n chainName: string;\n check: GatedTransactionCheck<CheckMethod>;\n dependencies: _Dependencies;\n cacheable?: boolean;\n uniqueIdKeys?: Record<string, string | number | boolean>;\n};\n\nexport type LiteralGatedTransaction<\n Name extends string = string,\n TxType extends Transaction = Transaction,\n CheckMethod extends (...args: any[]) => any = (...args: any[]) => any,\n _Dependencies extends GatedTransactionDependencies = GatedTransactionDependencies,\n> = BaseGatedTransaction<Name, CheckMethod, _Dependencies> & {\n transactionType: 'literal';\n transaction: TxType;\n};\n\nexport type FunctionalGatedTransaction<\n Name extends string = string,\n TxType extends Transaction = Transaction,\n CheckMethod extends (...args: any[]) => any = (...args: any[]) => any,\n DepMethod extends (txs: any, ...args: any[]) => Promise<TxType> = (\n txs: any,\n ...args: any[]\n ) => Promise<any>,\n _Dependencies extends GatedTransactionDependencies = GatedTransactionDependencies,\n> = BaseGatedTransaction<Name, CheckMethod, _Dependencies> & {\n transactionType: 'functional';\n getTransaction: {\n functionPointer: FunctionPointer<DepMethod>;\n params: Parameters<DepMethod> extends [any, ...infer Tail] ? Tail : [];\n };\n};\n\nexport type GatedTransaction<\n Name extends string = string,\n TxType extends Transaction = Transaction,\n CheckMethod extends (...args: any[]) => any = (...args: any[]) => any,\n DepMethod extends (txs: any, ...args: any[]) => Promise<TxType> = (\n txs: any,\n ...args: any[]\n ) => Promise<any>,\n _Dependencies extends GatedTransactionDependencies = GatedTransactionDependencies,\n> =\n | LiteralGatedTransaction<Name, TxType, CheckMethod, _Dependencies>\n | FunctionalGatedTransaction<Name, TxType, CheckMethod, DepMethod, _Dependencies>;\n\nexport type BaseGatedTransactionFor<GatedTx extends GatedTransaction> =\n GatedTx extends GatedTransaction<infer Name, any, infer CheckMethod, any, infer _Dependencies>\n ? BaseGatedTransaction<Name, CheckMethod, _Dependencies>\n : never;\n\nexport enum GatedTransactionStatus {\n // precheck passed, no need to send the tx\n NO_OP = 'no_op',\n // precheck failed, tx was sent, postcheck passed\n SUCCESS = 'success',\n // precheck failed, tx was sent but sender returned an error\n TRANSACTION_FAILED = 'transaction_failed',\n // precheck failed, tx was sent, postcheck failed\n FINAL_CHECK_FAILED = 'final_check_failed',\n // the tx couldn't be resolved because one of its dependencies resolved to a failed state\n DEPENDENCY_FAILED = 'dependency_failed',\n // approval to send the tx was explictly denied\n DENIED = 'denied',\n // precheck failed, tx was sent but indeterminate, deferred execution passed on a recheck\n DEFERRED_SUCCESS = 'deferred_success',\n}\n\ntype NoOpGatedTransaction = {\n status: GatedTransactionStatus.NO_OP;\n};\n\ntype SuccessfulGatedTransaction<TxType extends Transaction> = {\n status: GatedTransactionStatus.SUCCESS;\n submittedTransaction: TransactionWithResultFor<TxType>;\n};\n\ntype TxFailedGatedTransaction = {\n status: GatedTransactionStatus.TRANSACTION_FAILED;\n transactionError: any;\n};\n\ntype CheckFailedGatedTransaction<GatedTx extends GatedTransaction, TxType extends Transaction> = {\n status: GatedTransactionStatus.FINAL_CHECK_FAILED;\n submittedTransaction: TransactionWithResultFor<TxType>;\n finalOnChainState: InferOnChainDataTypeFromGatedTransaction<GatedTx>;\n};\n\ntype DependencyFailedGatedTransaction = {\n status: GatedTransactionStatus.DEPENDENCY_FAILED;\n};\n\ntype DeniedGatedTransaction = {\n status: GatedTransactionStatus.DENIED;\n};\n\ntype DeferredSuccessfulGatedTransaction = {\n status: GatedTransactionStatus.DEFERRED_SUCCESS;\n};\n\nexport type GatedTransactionResult<\n GatedTx extends GatedTransaction = GatedTransaction,\n TxType extends Transaction = Transaction,\n> =\n | NoOpGatedTransaction\n | SuccessfulGatedTransaction<TxType>\n | TxFailedGatedTransaction\n | CheckFailedGatedTransaction<GatedTx, TxType>\n | DependencyFailedGatedTransaction\n | DeniedGatedTransaction\n | DeferredSuccessfulGatedTransaction;\n\nexport type ResolvedGatedTransaction<\n GatedTx extends GatedTransaction = GatedTransaction,\n TxType extends Transaction = Transaction,\n> = BaseGatedTransactionFor<GatedTx> & {\n result: GatedTransactionResult<GatedTx, TxType>;\n};\n\nexport const gatedTransactionIsResolvedGatedTransaction = (\n gtx: GatedTransaction | ResolvedGatedTransaction,\n): gtx is ResolvedGatedTransaction => !!(gtx as ResolvedGatedTransaction).result;\n\nexport const gatedTransactionSchema = <\n Name extends z.ZodString | z.ZodLiteral<string> = z.ZodString,\n TransactionSchema extends typeof _transactionSchema = typeof _transactionSchema,\n>(_?: {\n name?: Name;\n transactionSchema?: TransactionSchema;\n}) =>\n customSchema<GatedTransaction<z.infer<Name>, z.infer<TransactionSchema>>>().meta({\n title: 'Gated Transaction',\n description: 'A schema for a gated transaction',\n });\n\nexport const resolvedGatedTransactionSchema = <\n Name extends z.ZodString | z.ZodLiteral<string> = z.ZodString,\n TransactionSchema extends typeof _transactionSchema = typeof _transactionSchema,\n>(_?: {\n name?: Name;\n transactionSchema?: TransactionSchema;\n}) =>\n customSchema<\n ResolvedGatedTransaction<\n GatedTransaction<z.infer<Name>, z.infer<TransactionSchema>>,\n z.infer<TransactionSchema>\n >\n >().meta({\n title: 'Resolved Gated Transaction',\n description: 'A schema for a resolved gated transaction',\n });\n\n/**\n * Builds a schema for an activity that builds a transaction based on the results of other transactions\n * @param transactionSchema The schema for the transaction to be built\n * @param transactionWithResultSchema The schema for the results of the transactions you're building off of\n * @param txNumber The number of transactions you're building off of\n * @param extraArgs Additional arguments that must be passed to the function after the txes\n * @returns A schema for the activity that builds the transaction\n */\nexport const createTxArrayDependentActivitySchema = <\n TransactionSchema extends typeof _transactionSchema = typeof _transactionSchema,\n ExtraArgs extends z.ZodTuple = z.ZodTuple<[]>,\n>(\n transactionSchema: TransactionSchema,\n extraArgs?: ExtraArgs,\n) => {\n return functionSchema({\n input: z.tuple([\n z.array(\n resolvedGatedTransactionSchema({\n transactionSchema,\n }),\n ),\n ...(extraArgs?.def?.items ?? []),\n ]),\n output: z.promise(transactionSchema),\n }) as unknown as z.ZodType<\n [] extends z.infer<ExtraArgs>\n ? (\n txs: ResolvedGatedTransaction<\n GatedTransaction<string, z.infer<TransactionSchema>>\n >[],\n ) => Promise<z.infer<TransactionSchema>>\n : (\n txs: ResolvedGatedTransaction<\n GatedTransaction<string, z.infer<TransactionSchema>>\n >[],\n ...extraArgs: z.infer<ExtraArgs>\n ) => Promise<z.infer<TransactionSchema>>\n >;\n};\n/**\n * Builds a schema for an activity that builds a transaction based on the results of other transactions\n * @param transactionSchema The schema for the transaction to be built\n * @param transactionWithResultSchema The schema for the results of the transactions you're building off of\n * @param txNumber The number of transactions you're building off of\n * @param extraArgs Additional arguments that must be passed to the function after the txes\n * @returns A schema for the activity that builds the transaction\n */\nexport const createTxTupleDependentActivitySchema = <\n TransactionSchema extends typeof _transactionSchema = typeof _transactionSchema,\n const TxNumber extends number = 1,\n ExtraArgs extends z.ZodTuple = z.ZodTuple<[]>,\n>(\n transactionSchema: TransactionSchema,\n txNumber: TxNumber,\n extraArgs?: ExtraArgs,\n) => {\n const txs = Array.from({ length: txNumber }, () =>\n resolvedGatedTransactionSchema({\n transactionSchema: transactionSchema,\n }),\n );\n\n return functionSchema({\n input: z.tuple([z.tuple(txs as any), ...(extraArgs?.def?.items ?? [])]),\n output: z.promise(transactionSchema),\n }) as unknown as z.ZodType<\n [] extends z.infer<ExtraArgs>\n ? (\n txs: BuildTuple<\n ResolvedGatedTransaction<\n GatedTransaction<string, z.infer<TransactionSchema>>\n >,\n TxNumber\n >,\n ) => Promise<z.infer<TransactionSchema>>\n : (\n txs: BuildTuple<\n ResolvedGatedTransaction<\n GatedTransaction<string, z.infer<TransactionSchema>>\n >,\n TxNumber\n >,\n ...extraArgs: z.infer<ExtraArgs>\n ) => Promise<z.infer<TransactionSchema>>\n >;\n};\n\nexport const createGatedTxCheckActivitySchema = <\n Output extends z.ZodType,\n const Input extends z.ZodType[] = [],\n TransactionWithResultSchema extends\n typeof _transactionWithResultSchema = typeof _transactionWithResultSchema,\n>({\n input,\n output,\n transactionWithResultSchema,\n}: {\n input?: Input;\n transactionWithResultSchema?: TransactionWithResultSchema;\n output: Output;\n}) => {\n const txWithResultSchema = (\n transactionWithResultSchema ?? _transactionWithResultSchema\n ).optional();\n\n return functionSchema({\n input: z.tuple([...(input ?? []), txWithResultSchema] as any),\n output: z.promise(output),\n }) as z.ZodType<\n (\n ...args: [...InferredArray<Input>, z.infer<TransactionWithResultSchema>?]\n ) => Promise<z.infer<Output>>\n >;\n};\n\nexport type ResolvedGatedTransactionDependencies<GatedTx extends GatedTransaction> =\n GatedTx extends GatedTransaction<any, any, any, any, infer _Dependencies>\n ? {\n [K in keyof _Dependencies]?: ResolvedGatedTransaction<_Dependencies[K]>;\n }\n : never;\n\nexport interface GatedTxCheckResult {\n expectationMet: boolean;\n data: unknown;\n}\n\nexport const gatedTxCheckResultSchema = z.object({\n expectationMet: z.boolean(),\n data: z.any(),\n});\n\nexport const gatedTransactionCacheSchema = z.object({\n getCachedTxCheckData: functionSchema({\n input: z.tuple([z.any()]),\n output: z.promise(z.any()),\n }) as z.ZodType<\n <GatedTx extends GatedTransaction>(\n gtx: GatedTx,\n ) => Promise<InferOnChainDataTypeFromGatedTransaction<GatedTx> | undefined>\n >,\n cacheSuccessfulTxCheckData: functionSchema({\n input: z.tuple([z.any(), z.any()]),\n output: z.promise(z.any()),\n }) as z.ZodType<\n <GatedTx extends GatedTransaction>(\n gtx: GatedTx,\n data: InferOnChainDataTypeFromGatedTransaction<GatedTx>,\n ) => Promise<void>\n >,\n});\n\nexport type IGatedTransactionCache = z.infer<typeof gatedTransactionCacheSchema>;\n\n/**\n * name-chain-uniqueIdKeys\n *\n * E.g., setDelegate-ethereum-oAppAddress:0xMY_OAPP\n */\nexport type GatedTransactionId = `${string}-${string}-${string}`;\n\n/**\n * bundleName-chain-uniqueIdKeys\n *\n * E.g., SetPeer-ton-oAppAddress:0xMY_OAPP\n */\nexport type GatedTransactionBundleId = `${string}-${string}-${string}`;\n"]}
@@ -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","createTxArrayDependentActivitySchema","transactionSchema","extraArgs","functionSchema","input","tuple","array","def","items","output","promise","createTxTupleDependentActivitySchema","txNumber","txs","Array","from","length","createGatedTxCheckActivitySchema","transactionWithResultSchema","_transactionWithResultSchema","optional","gatedTxCheckResultSchema","expectationMet","boolean","data","gatedTransactionCacheSchema","getCachedTxCheckData","cacheSuccessfulTxCheckData"],"mappings":"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","file":"XZJ4DGII.js","sourcesContent":["import z from 'zod';\n\nimport type { transactionSchema as _transactionSchema } from '@layerzerolabs/common-chain-model';\nimport type { HexString } from '@layerzerolabs/common-chain-model';\nimport {\n type Transaction,\n type TransactionWithResultFor,\n transactionWithResultSchema as _transactionWithResultSchema,\n} from '@layerzerolabs/common-chain-model';\nimport type { FunctionPointer } from '@layerzerolabs/function-pointer';\nimport type { BrandedError, BuildTuple, IsAny, Or } from '@layerzerolabs/typescript-utils';\nimport type { FunctionPointerWithArgs, InferredArray } from '@layerzerolabs/zod-utils';\nimport { customSchema, functionSchema } from '@layerzerolabs/zod-utils';\n\nexport type OnChainDataComparisonOperator<OnChainDataType> =\n Or<[OnChainDataType extends number ? true : false, IsAny<OnChainDataType>]> extends true\n ? '<' | '<=' | '=' | '!=' | '>' | '>='\n : OnChainDataType extends string | object | boolean\n ? '=' | '!='\n : BrandedError<'Unsupported comparison type'>;\n\nexport type OnChainDataComparison<OnChainDataType extends string | number | boolean | object> = {\n operator: OnChainDataComparisonOperator<OnChainDataType>;\n comparisonValue: OnChainDataType;\n};\n\nexport type GatedTransactionCheck<\n Method extends (...args: any[]) => Promise<any> = (...args: any[]) => Promise<unknown>,\n> = {\n functionPointer: FunctionPointer<Method>;\n params: Parameters<Method>;\n expectedResult: OnChainDataComparison<Awaited<ReturnType<Method>>>;\n};\n\n// Schema for gated transaction results\nexport const gatedTransactionResultSchema = <\n TxWithResultSchema extends typeof _transactionWithResultSchema,\n OnchainDataSchema extends z.ZodType,\n>(\n txWithResultSchema: TxWithResultSchema,\n onchainDataSchema: OnchainDataSchema,\n) =>\n // FIXME use this as source of truth for GatedTransactionResult type\n z.union([\n z.object({\n status: z.literal(GatedTransactionStatus.NO_OP),\n }),\n z.object({\n status: z.literal(GatedTransactionStatus.SUCCESS),\n submittedTransaction: txWithResultSchema,\n }),\n z.object({\n status: z.literal(GatedTransactionStatus.TRANSACTION_FAILED),\n transactionError: z.any(),\n }),\n z.object({\n status: z.literal(GatedTransactionStatus.FINAL_CHECK_FAILED),\n submittedTransaction: txWithResultSchema,\n finalOnChainState: onchainDataSchema,\n }),\n z.object({\n status: z.literal(GatedTransactionStatus.DEPENDENCY_FAILED),\n }),\n z.object({\n status: z.literal(GatedTransactionStatus.DENIED),\n }),\n z.object({\n status: z.literal(GatedTransactionStatus.DEFERRED_SUCCESS),\n }),\n ]);\n\nexport type InferOnChainDataTypeFromCheck<Check> = Check extends (...args: any[]) => infer Ret\n ? Awaited<Ret>\n : unknown;\nexport type InferOnChainDataTypeFromGatedTransaction<GatedTx extends GatedTransaction> =\n InferOnChainDataTypeFromCheck<GatedTx['check']>;\n\nexport type GatedTransactionDependencies = GatedTransaction[];\nexport type BaseGatedTransaction<\n Name extends string = string,\n CheckMethod extends (...args: any[]) => any = (...args: any[]) => any,\n _Dependencies extends GatedTransactionDependencies = GatedTransactionDependencies,\n> = {\n name: Name;\n description?: string;\n bundleName?: string;\n metadata?: {\n deployInfo?: {\n saveArtifact: boolean;\n contractName: string;\n retryable?: boolean;\n abiEncodedConstructorArguments?: HexString;\n // TODO: Should be FunctionPointerWithArgs<VerificationArtifact> (circular dependency)\n createVerificationInfoPayloadPointerWithArgs?: FunctionPointerWithArgs<any>;\n };\n };\n chainName: string;\n check: GatedTransactionCheck<CheckMethod>;\n dependencies: _Dependencies;\n cacheable?: boolean;\n uniqueIdKeys?: Record<string, string | number | boolean>;\n};\n\nexport type LiteralGatedTransaction<\n Name extends string = string,\n TxType extends Transaction = Transaction,\n CheckMethod extends (...args: any[]) => any = (...args: any[]) => any,\n _Dependencies extends GatedTransactionDependencies = GatedTransactionDependencies,\n> = BaseGatedTransaction<Name, CheckMethod, _Dependencies> & {\n transactionType: 'literal';\n transaction: TxType;\n};\n\nexport type FunctionalGatedTransaction<\n Name extends string = string,\n TxType extends Transaction = Transaction,\n CheckMethod extends (...args: any[]) => any = (...args: any[]) => any,\n DepMethod extends (txs: any, ...args: any[]) => Promise<TxType> = (\n txs: any,\n ...args: any[]\n ) => Promise<any>,\n _Dependencies extends GatedTransactionDependencies = GatedTransactionDependencies,\n> = BaseGatedTransaction<Name, CheckMethod, _Dependencies> & {\n transactionType: 'functional';\n getTransaction: {\n functionPointer: FunctionPointer<DepMethod>;\n params: Parameters<DepMethod> extends [any, ...infer Tail] ? Tail : [];\n };\n};\n\nexport type GatedTransaction<\n Name extends string = string,\n TxType extends Transaction = Transaction,\n CheckMethod extends (...args: any[]) => any = (...args: any[]) => any,\n DepMethod extends (txs: any, ...args: any[]) => Promise<TxType> = (\n txs: any,\n ...args: any[]\n ) => Promise<any>,\n _Dependencies extends GatedTransactionDependencies = GatedTransactionDependencies,\n> =\n | LiteralGatedTransaction<Name, TxType, CheckMethod, _Dependencies>\n | FunctionalGatedTransaction<Name, TxType, CheckMethod, DepMethod, _Dependencies>;\n\nexport type BaseGatedTransactionFor<GatedTx extends GatedTransaction> =\n GatedTx extends GatedTransaction<infer Name, any, infer CheckMethod, any, infer _Dependencies>\n ? BaseGatedTransaction<Name, CheckMethod, _Dependencies>\n : never;\n\nexport enum GatedTransactionStatus {\n // precheck passed, no need to send the tx\n NO_OP = 'no_op',\n // precheck failed, tx was sent, postcheck passed\n SUCCESS = 'success',\n // precheck failed, tx was sent but sender returned an error\n TRANSACTION_FAILED = 'transaction_failed',\n // precheck failed, tx was sent, postcheck failed\n FINAL_CHECK_FAILED = 'final_check_failed',\n // the tx couldn't be resolved because one of its dependencies resolved to a failed state\n DEPENDENCY_FAILED = 'dependency_failed',\n // approval to send the tx was explictly denied\n DENIED = 'denied',\n // precheck failed, tx was sent but indeterminate, deferred execution passed on a recheck\n DEFERRED_SUCCESS = 'deferred_success',\n}\n\ntype NoOpGatedTransaction = {\n status: GatedTransactionStatus.NO_OP;\n};\n\ntype SuccessfulGatedTransaction<TxType extends Transaction> = {\n status: GatedTransactionStatus.SUCCESS;\n submittedTransaction: TransactionWithResultFor<TxType>;\n};\n\ntype TxFailedGatedTransaction = {\n status: GatedTransactionStatus.TRANSACTION_FAILED;\n transactionError: any;\n};\n\ntype CheckFailedGatedTransaction<GatedTx extends GatedTransaction, TxType extends Transaction> = {\n status: GatedTransactionStatus.FINAL_CHECK_FAILED;\n submittedTransaction: TransactionWithResultFor<TxType>;\n finalOnChainState: InferOnChainDataTypeFromGatedTransaction<GatedTx>;\n};\n\ntype DependencyFailedGatedTransaction = {\n status: GatedTransactionStatus.DEPENDENCY_FAILED;\n};\n\ntype DeniedGatedTransaction = {\n status: GatedTransactionStatus.DENIED;\n};\n\ntype DeferredSuccessfulGatedTransaction = {\n status: GatedTransactionStatus.DEFERRED_SUCCESS;\n};\n\nexport type GatedTransactionResult<\n GatedTx extends GatedTransaction = GatedTransaction,\n TxType extends Transaction = Transaction,\n> =\n | NoOpGatedTransaction\n | SuccessfulGatedTransaction<TxType>\n | TxFailedGatedTransaction\n | CheckFailedGatedTransaction<GatedTx, TxType>\n | DependencyFailedGatedTransaction\n | DeniedGatedTransaction\n | DeferredSuccessfulGatedTransaction;\n\nexport type ResolvedGatedTransaction<\n GatedTx extends GatedTransaction = GatedTransaction,\n TxType extends Transaction = Transaction,\n> = BaseGatedTransactionFor<GatedTx> & {\n result: GatedTransactionResult<GatedTx, TxType>;\n};\n\nexport const gatedTransactionIsResolvedGatedTransaction = (\n gtx: GatedTransaction | ResolvedGatedTransaction,\n): gtx is ResolvedGatedTransaction => !!(gtx as ResolvedGatedTransaction).result;\n\nexport const gatedTransactionSchema = <\n Name extends z.ZodString | z.ZodLiteral<string> = z.ZodString,\n TransactionSchema extends typeof _transactionSchema = typeof _transactionSchema,\n>(_?: {\n name?: Name;\n transactionSchema?: TransactionSchema;\n}) =>\n customSchema<GatedTransaction<z.infer<Name>, z.infer<TransactionSchema>>>().meta({\n title: 'Gated Transaction',\n description: 'A schema for a gated transaction',\n });\n\nexport const resolvedGatedTransactionSchema = <\n Name extends z.ZodString | z.ZodLiteral<string> = z.ZodString,\n TransactionSchema extends typeof _transactionSchema = typeof _transactionSchema,\n>(_?: {\n name?: Name;\n transactionSchema?: TransactionSchema;\n}) =>\n customSchema<\n ResolvedGatedTransaction<\n GatedTransaction<z.infer<Name>, z.infer<TransactionSchema>>,\n z.infer<TransactionSchema>\n >\n >().meta({\n title: 'Resolved Gated Transaction',\n description: 'A schema for a resolved gated transaction',\n });\n\n/**\n * Builds a schema for an activity that builds a transaction based on the results of other transactions\n * @param transactionSchema The schema for the transaction to be built\n * @param transactionWithResultSchema The schema for the results of the transactions you're building off of\n * @param txNumber The number of transactions you're building off of\n * @param extraArgs Additional arguments that must be passed to the function after the txes\n * @returns A schema for the activity that builds the transaction\n */\nexport const createTxArrayDependentActivitySchema = <\n TransactionSchema extends typeof _transactionSchema = typeof _transactionSchema,\n ExtraArgs extends z.ZodTuple = z.ZodTuple<[]>,\n>(\n transactionSchema: TransactionSchema,\n extraArgs?: ExtraArgs,\n) => {\n return functionSchema({\n input: z.tuple([\n z.array(\n resolvedGatedTransactionSchema({\n transactionSchema,\n }),\n ),\n ...(extraArgs?.def?.items ?? []),\n ]),\n output: z.promise(transactionSchema),\n }) as unknown as z.ZodType<\n [] extends z.infer<ExtraArgs>\n ? (\n txs: ResolvedGatedTransaction<\n GatedTransaction<string, z.infer<TransactionSchema>>\n >[],\n ) => Promise<z.infer<TransactionSchema>>\n : (\n txs: ResolvedGatedTransaction<\n GatedTransaction<string, z.infer<TransactionSchema>>\n >[],\n ...extraArgs: z.infer<ExtraArgs>\n ) => Promise<z.infer<TransactionSchema>>\n >;\n};\n/**\n * Builds a schema for an activity that builds a transaction based on the results of other transactions\n * @param transactionSchema The schema for the transaction to be built\n * @param transactionWithResultSchema The schema for the results of the transactions you're building off of\n * @param txNumber The number of transactions you're building off of\n * @param extraArgs Additional arguments that must be passed to the function after the txes\n * @returns A schema for the activity that builds the transaction\n */\nexport const createTxTupleDependentActivitySchema = <\n TransactionSchema extends typeof _transactionSchema = typeof _transactionSchema,\n const TxNumber extends number = 1,\n ExtraArgs extends z.ZodTuple = z.ZodTuple<[]>,\n>(\n transactionSchema: TransactionSchema,\n txNumber: TxNumber,\n extraArgs?: ExtraArgs,\n) => {\n const txs = Array.from({ length: txNumber }, () =>\n resolvedGatedTransactionSchema({\n transactionSchema: transactionSchema,\n }),\n );\n\n return functionSchema({\n input: z.tuple([z.tuple(txs as any), ...(extraArgs?.def?.items ?? [])]),\n output: z.promise(transactionSchema),\n }) as unknown as z.ZodType<\n [] extends z.infer<ExtraArgs>\n ? (\n txs: BuildTuple<\n ResolvedGatedTransaction<\n GatedTransaction<string, z.infer<TransactionSchema>>\n >,\n TxNumber\n >,\n ) => Promise<z.infer<TransactionSchema>>\n : (\n txs: BuildTuple<\n ResolvedGatedTransaction<\n GatedTransaction<string, z.infer<TransactionSchema>>\n >,\n TxNumber\n >,\n ...extraArgs: z.infer<ExtraArgs>\n ) => Promise<z.infer<TransactionSchema>>\n >;\n};\n\nexport const createGatedTxCheckActivitySchema = <\n Output extends z.ZodType,\n const Input extends z.ZodType[] = [],\n TransactionWithResultSchema extends\n typeof _transactionWithResultSchema = typeof _transactionWithResultSchema,\n>({\n input,\n output,\n transactionWithResultSchema,\n}: {\n input?: Input;\n transactionWithResultSchema?: TransactionWithResultSchema;\n output: Output;\n}) => {\n const txWithResultSchema = (\n transactionWithResultSchema ?? _transactionWithResultSchema\n ).optional();\n\n return functionSchema({\n input: z.tuple([...(input ?? []), txWithResultSchema] as any),\n output: z.promise(output),\n }) as z.ZodType<\n (\n ...args: [...InferredArray<Input>, z.infer<TransactionWithResultSchema>?]\n ) => Promise<z.infer<Output>>\n >;\n};\n\nexport type ResolvedGatedTransactionDependencies<GatedTx extends GatedTransaction> =\n GatedTx extends GatedTransaction<any, any, any, any, infer _Dependencies>\n ? {\n [K in keyof _Dependencies]?: ResolvedGatedTransaction<_Dependencies[K]>;\n }\n : never;\n\nexport interface GatedTxCheckResult {\n expectationMet: boolean;\n data: unknown;\n}\n\nexport const gatedTxCheckResultSchema = z.object({\n expectationMet: z.boolean(),\n data: z.any(),\n});\n\nexport const gatedTransactionCacheSchema = z.object({\n getCachedTxCheckData: functionSchema({\n input: z.tuple([z.any()]),\n output: z.promise(z.any()),\n }) as z.ZodType<\n <GatedTx extends GatedTransaction>(\n gtx: GatedTx,\n ) => Promise<InferOnChainDataTypeFromGatedTransaction<GatedTx> | undefined>\n >,\n cacheSuccessfulTxCheckData: functionSchema({\n input: z.tuple([z.any(), z.any()]),\n output: z.promise(z.any()),\n }) as z.ZodType<\n <GatedTx extends GatedTransaction>(\n gtx: GatedTx,\n data: InferOnChainDataTypeFromGatedTransaction<GatedTx>,\n ) => Promise<void>\n >,\n});\n\nexport type IGatedTransactionCache = z.infer<typeof gatedTransactionCacheSchema>;\n\n/**\n * name-chain-uniqueIdKeys\n *\n * E.g., setDelegate-ethereum-oAppAddress:0xMY_OAPP\n */\nexport type GatedTransactionId = `${string}-${string}-${string}`;\n\n/**\n * bundleName-chain-uniqueIdKeys\n *\n * E.g., SetPeer-ton-oAppAddress:0xMY_OAPP\n */\nexport type GatedTransactionBundleId = `${string}-${string}-${string}`;\n"]}
@@ -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;AAyBE,EAAA,MAAMC,YAAAA,GAAeD,GAAAA,CAAIC,YAAAA,IAAiB,EAAA;AAC1C,EAAA,OAAO;IAAE,GAAGD,GAAAA;IAAKE,eAAAA,EAAiB,SAAA;AAAWD,IAAAA;AAAa,GAAA;AAC9D,CAAA,EAhCyC,2BAAA;AAgDlC,IAAME,oCAAAA,wCAKXH,GAAAA,KAAAA;AA4BE,EAAA,OAAO;IACH,GAAGA,GAAAA;IACHE,eAAAA,EAAiB;AACrB,GAAA;AACJ,CAAA,EArCoD,sCAAA;AAuC7C,IAAME,wBAAAA,wCAA4BJ,GAAAA,KAAAA;AACrC,EAAA,MAAMK,sBAAAA,GAAyBL,IAAIM,YAAAA,GAC7BC,MAAAA,CAAOC,QAAQR,GAAAA,CAAIM,YAAY,CAAA,CAC1BG,GAAAA,CAAI,CAAC,CAACC,GAAGC,CAAAA,CAAAA,KAAO,GAAGD,CAAAA,CAAAA,CAAAA,EAAKC,CAAAA,CAAAA,CAAG,CAAA,CAC3BC,IAAAA,CAAK,GAAA,CAAA,GACV,EAAA;AAEN,EAAA,OAAO,GAAGZ,GAAAA,CAAIa,IAAI,IAAIb,GAAAA,CAAIc,SAAS,IAAIT,sBAAAA,CAAAA,CAAAA;AAC3C,CAAA,EARwC,0BAAA;AAUjC,IAAMU,8BAAAA,wCACTf,GAAAA,KAAAA;AAEA,EAAA,MAAMK,sBAAAA,GAAyBL,IAAIM,YAAAA,GAC7BC,MAAAA,CAAOC,QAAQR,GAAAA,CAAIM,YAAY,CAAA,CAC1BG,GAAAA,CAAI,CAAC,CAACC,GAAGC,CAAAA,CAAAA,KAAO,GAAGD,CAAAA,CAAAA,CAAAA,EAAKC,CAAAA,CAAAA,CAAG,CAAA,CAC3BC,IAAAA,CAAK,GAAA,CAAA,GACV,EAAA;AAEN,EAAA,OAAO,GAAGZ,GAAAA,CAAIgB,UAAU,IAAIhB,GAAAA,CAAIc,SAAS,IAAIT,sBAAAA,CAAAA,CAAAA;AACjD,CAAA,EAV8C,gCAAA","file":"ZE3NLIHW.cjs","sourcesContent":["import type { HexString, Transaction } from '@layerzerolabs/common-chain-model';\nimport type { FunctionPointer } from '@layerzerolabs/function-pointer';\nimport type { FunctionPointerWithArgs } from '@layerzerolabs/zod-utils';\n\nimport type {\n BaseGatedTransaction,\n GatedTransaction,\n GatedTransactionBundleId,\n GatedTransactionDependencies,\n GatedTransactionId,\n OnChainDataComparison,\n ResolvedGatedTransaction,\n} from './schemata';\n\n/**\n * Builds a {@link GatedTransaction}\n */\nexport const constructGatedTransaction = <\n const Name extends string,\n Tx extends Transaction,\n Method extends (...args: any[]) => any,\n _Dependencies extends GatedTransactionDependencies,\n>(gtx: {\n name: Name;\n description?: string;\n chainName: string;\n bundleName?: string;\n metadata?: {\n deployInfo?: {\n saveArtifact: boolean;\n contractName: string;\n retryable?: boolean;\n abiEncodedConstructorArguments?: HexString;\n // TODO: Should be FunctionPointerWithArgs<VerificationArtifact> (circular dependency)\n createVerificationInfoPayloadPointerWithArgs?: FunctionPointerWithArgs<any>;\n };\n };\n check: {\n functionPointer: FunctionPointer<Method>;\n params: Parameters<Method>;\n expectedResult: OnChainDataComparison<Awaited<ReturnType<Method>>>;\n };\n uniqueIdKeys?: Record<string, string | number | boolean>;\n cacheable?: boolean;\n dependencies?: _Dependencies;\n transaction: Tx;\n}): GatedTransaction<Name, Tx, Method, any, _Dependencies> => {\n const dependencies = gtx.dependencies ?? ([] as any);\n return { ...gtx, transactionType: 'literal', dependencies };\n};\n\ntype BuildDeps<Params extends ResolvedGatedTransaction[]> = Params extends []\n ? []\n : Params extends readonly [\n ResolvedGatedTransaction<infer Gtx>,\n ...infer Rest extends ResolvedGatedTransaction[],\n ]\n ? [Gtx, ...BuildDeps<[...Rest]>]\n : Params extends Array<ResolvedGatedTransaction<infer Gtx>>\n ? Array<Gtx>\n : never;\n\n/**\n * Builds a {@link GatedTransaction} from a pointer\n */\nexport const constructGatedTransactionFromPointer = <\n const Name extends string,\n TxType extends Transaction,\n Method extends (...args: any[]) => any,\n DepMethod extends (txs: any, ...args: any[]) => Promise<TxType>,\n>(gtx: {\n name: Name;\n description?: string;\n chainName: string;\n bundleName?: string;\n metadata?: {\n deployInfo?: {\n saveArtifact: boolean;\n contractName: string;\n abiEncodedConstructorArguments?: HexString;\n retryable?: boolean;\n // TODO: Should be FunctionPointerWithArgs<VerificationArtifact> (circular dependency)\n createVerificationInfoPayloadPointerWithArgs?: FunctionPointerWithArgs<any>;\n };\n };\n check: {\n functionPointer: FunctionPointer<Method>;\n params: Parameters<Method>;\n expectedResult: OnChainDataComparison<Awaited<ReturnType<Method>>>;\n };\n uniqueIdKeys?: Record<string, string | number | boolean>;\n cacheable?: boolean;\n dependencies: BuildDeps<Parameters<DepMethod>[0]>;\n getTransaction: {\n functionPointer: FunctionPointer<DepMethod>;\n params: Parameters<DepMethod> extends [any, ...infer Tail] ? Tail : [];\n };\n}): GatedTransaction<Name, TxType, Method, DepMethod, BuildDeps<Parameters<DepMethod>[0]>> => {\n return {\n ...gtx,\n transactionType: 'functional',\n };\n};\n\nexport const getIdForGatedTransaction = (gtx: BaseGatedTransaction): GatedTransactionId => {\n const serializedUniqueIdKeys = gtx.uniqueIdKeys\n ? Object.entries(gtx.uniqueIdKeys)\n .map(([k, v]) => `${k}:${v}`)\n .join('-')\n : '';\n\n return `${gtx.name}-${gtx.chainName}-${serializedUniqueIdKeys}`;\n};\n\nexport const getBundleIdForGatedTransaction = (\n gtx: BaseGatedTransaction,\n): GatedTransactionBundleId => {\n const serializedUniqueIdKeys = gtx.uniqueIdKeys\n ? Object.entries(gtx.uniqueIdKeys)\n .map(([k, v]) => `${k}:${v}`)\n .join('-')\n : '';\n\n return `${gtx.bundleName}-${gtx.chainName}-${serializedUniqueIdKeys}`;\n};\n"]}