@layerzerolabs/gated-transaction 0.2.28 → 0.2.30
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/.turbo/turbo-build.log +18 -18
- package/.turbo/turbo-lint.log +1 -1
- package/dist/{FBGH4Z7Y.cjs → 4LG2D5QB.cjs} +6 -6
- package/dist/4LG2D5QB.cjs.map +1 -0
- package/dist/{PMA4Q2UL.js → 6CP6YLBR.js} +2 -2
- package/dist/6CP6YLBR.js.map +1 -0
- package/dist/{FNFGPB4O.js → STF7S2ML.js} +6 -6
- package/dist/STF7S2ML.js.map +1 -0
- package/dist/{7S7APV6O.cjs → UOTELJ6R.cjs} +2 -2
- package/dist/UOTELJ6R.cjs.map +1 -0
- package/dist/gatedTx.cjs +5 -5
- package/dist/gatedTx.d.ts +15 -19
- package/dist/gatedTx.d.ts.map +1 -1
- package/dist/gatedTx.js +1 -1
- package/dist/index.cjs +18 -18
- package/dist/index.js +2 -2
- package/dist/schemata.cjs +13 -13
- package/dist/schemata.d.ts +19 -21
- package/dist/schemata.d.ts.map +1 -1
- package/dist/schemata.js +1 -1
- package/package.json +8 -8
- package/src/gatedTx.ts +42 -23
- package/src/schemata.ts +41 -44
- package/dist/7S7APV6O.cjs.map +0 -1
- package/dist/FBGH4Z7Y.cjs.map +0 -1
- package/dist/FNFGPB4O.js.map +0 -1
- package/dist/PMA4Q2UL.js.map +0 -1
package/dist/schemata.d.ts
CHANGED
|
@@ -1,19 +1,18 @@
|
|
|
1
1
|
import z from 'zod';
|
|
2
|
-
import type { transactionSchema as _transactionSchema } from '@layerzerolabs/common-chain-model';
|
|
2
|
+
import type { transactionSchema as _transactionSchema, TransactionWithResult } from '@layerzerolabs/common-chain-model';
|
|
3
3
|
import type { HexString } from '@layerzerolabs/common-chain-model';
|
|
4
4
|
import { type Transaction, type TransactionWithResultFor, transactionWithResultSchema as _transactionWithResultSchema } from '@layerzerolabs/common-chain-model';
|
|
5
5
|
import type { FunctionPointer } from '@layerzerolabs/function-pointer';
|
|
6
6
|
import type { BrandedError, BuildTuple, IsAny, Or } from '@layerzerolabs/typescript-utils';
|
|
7
|
-
import type {
|
|
7
|
+
import type { InferredArray } from '@layerzerolabs/zod-utils';
|
|
8
8
|
export type OnChainDataComparisonOperator<OnChainDataType> = Or<[OnChainDataType extends number ? true : false, IsAny<OnChainDataType>]> extends true ? '<' | '<=' | '=' | '!=' | '>' | '>=' : OnChainDataType extends string | object | boolean ? '=' | '!=' : BrandedError<'Unsupported comparison type'>;
|
|
9
9
|
export type OnChainDataComparison<OnChainDataType extends string | number | boolean | object> = {
|
|
10
10
|
operator: OnChainDataComparisonOperator<OnChainDataType>;
|
|
11
11
|
comparisonValue: OnChainDataType;
|
|
12
12
|
};
|
|
13
|
-
export type GatedTransactionCheck<
|
|
14
|
-
functionPointer: FunctionPointer<
|
|
15
|
-
|
|
16
|
-
expectedResult: OnChainDataComparison<Awaited<ReturnType<Method>>>;
|
|
13
|
+
export type GatedTransactionCheck<CheckOutput extends Promise<any> = Promise<any>> = {
|
|
14
|
+
functionPointer: FunctionPointer<[tx?: TransactionWithResult], CheckOutput>;
|
|
15
|
+
expectedResult: OnChainDataComparison<Awaited<CheckOutput>>;
|
|
17
16
|
};
|
|
18
17
|
export declare const gatedTransactionResultSchema: <TxWithResultSchema extends typeof _transactionWithResultSchema, OnchainDataSchema extends z.ZodType>(txWithResultSchema: TxWithResultSchema, onchainDataSchema: OnchainDataSchema) => z.ZodUnion<readonly [z.ZodObject<{
|
|
19
18
|
status: z.ZodLiteral<GatedTransactionStatus.NO_OP>;
|
|
@@ -37,7 +36,7 @@ export declare const gatedTransactionResultSchema: <TxWithResultSchema extends t
|
|
|
37
36
|
export type InferOnChainDataTypeFromCheck<Check> = Check extends (...args: any[]) => infer Ret ? Awaited<Ret> : unknown;
|
|
38
37
|
export type InferOnChainDataTypeFromGatedTransaction<GatedTx extends GatedTransaction> = InferOnChainDataTypeFromCheck<GatedTx['check']>;
|
|
39
38
|
export type GatedTransactionDependencies = GatedTransaction[];
|
|
40
|
-
export type BaseGatedTransaction<Name extends string = string,
|
|
39
|
+
export type BaseGatedTransaction<Name extends string = string, CheckOutput extends Promise<any> = Promise<any>, _Dependencies extends GatedTransactionDependencies = GatedTransactionDependencies> = {
|
|
41
40
|
name: Name;
|
|
42
41
|
description?: string;
|
|
43
42
|
bundleName?: string;
|
|
@@ -47,28 +46,27 @@ export type BaseGatedTransaction<Name extends string = string, CheckMethod exten
|
|
|
47
46
|
contractName: string;
|
|
48
47
|
retryable?: boolean;
|
|
49
48
|
abiEncodedConstructorArguments?: HexString;
|
|
50
|
-
extractVerificationArtifactPointer?:
|
|
49
|
+
extractVerificationArtifactPointer?: FunctionPointer;
|
|
51
50
|
};
|
|
52
51
|
};
|
|
53
52
|
chainName: string;
|
|
54
|
-
check: GatedTransactionCheck<
|
|
53
|
+
check: GatedTransactionCheck<CheckOutput>;
|
|
55
54
|
dependencies: _Dependencies;
|
|
56
55
|
cacheable?: boolean;
|
|
57
56
|
uniqueIdKeys?: Record<string, string | number | boolean>;
|
|
58
57
|
};
|
|
59
|
-
export type LiteralGatedTransaction<Name extends string = string, TxType extends Transaction = Transaction,
|
|
58
|
+
export type LiteralGatedTransaction<Name extends string = string, TxType extends Transaction = Transaction, CheckOutput extends Promise<any> = Promise<any>, _Dependencies extends GatedTransactionDependencies = GatedTransactionDependencies> = BaseGatedTransaction<Name, CheckOutput, _Dependencies> & {
|
|
60
59
|
transactionType: 'literal';
|
|
61
60
|
transaction: TxType;
|
|
62
61
|
};
|
|
63
|
-
export type FunctionalGatedTransaction<Name extends string = string, TxType extends Transaction = Transaction,
|
|
62
|
+
export type FunctionalGatedTransaction<Name extends string = string, TxType extends Transaction = Transaction, CheckOutput extends Promise<any> = Promise<any>, DepInput extends [...args: any[], txes: any] = [txes: any], _Dependencies extends GatedTransactionDependencies = GatedTransactionDependencies> = BaseGatedTransaction<Name, CheckOutput, _Dependencies> & {
|
|
64
63
|
transactionType: 'functional';
|
|
65
64
|
getTransaction: {
|
|
66
|
-
functionPointer: FunctionPointer<
|
|
67
|
-
params: Parameters<DepMethod> extends [any, ...infer Tail] ? Tail : [];
|
|
65
|
+
functionPointer: FunctionPointer<DepInput, Promise<TxType>>;
|
|
68
66
|
};
|
|
69
67
|
};
|
|
70
|
-
export type GatedTransaction<Name extends string = string, TxType extends Transaction = Transaction,
|
|
71
|
-
export type BaseGatedTransactionFor<GatedTx extends GatedTransaction> = GatedTx extends GatedTransaction<infer Name, any, infer
|
|
68
|
+
export type GatedTransaction<Name extends string = string, TxType extends Transaction = Transaction, CheckOutput extends Promise<any> = Promise<any>, DepInput extends [...args: any[], txes: any] = [txes: any], _Dependencies extends GatedTransactionDependencies = GatedTransactionDependencies> = LiteralGatedTransaction<Name, TxType, CheckOutput, _Dependencies> | FunctionalGatedTransaction<Name, TxType, CheckOutput, DepInput, _Dependencies>;
|
|
69
|
+
export type BaseGatedTransactionFor<GatedTx extends GatedTransaction> = GatedTx extends GatedTransaction<infer Name, any, infer CheckOutput, any, infer _Dependencies> ? BaseGatedTransaction<Name, CheckOutput, _Dependencies> : never;
|
|
72
70
|
export declare enum GatedTransactionStatus {
|
|
73
71
|
NO_OP = "no_op",
|
|
74
72
|
SUCCESS = "success",
|
|
@@ -111,17 +109,17 @@ export declare const gatedTransactionIsResolvedGatedTransaction: (gtx: GatedTran
|
|
|
111
109
|
export declare const gatedTransactionSchema: <Name extends z.ZodString | z.ZodLiteral<string> = z.ZodString, TransactionSchema extends typeof _transactionSchema = typeof _transactionSchema>(_?: {
|
|
112
110
|
name?: Name;
|
|
113
111
|
transactionSchema?: TransactionSchema;
|
|
114
|
-
}) => z.ZodType<GatedTransaction<z.core.output<Name>, z.core.output<TransactionSchema>,
|
|
112
|
+
}) => z.ZodType<GatedTransaction<z.core.output<Name>, z.core.output<TransactionSchema>, Promise<any>, [txes: any], GatedTransactionDependencies>, unknown, z.core.$ZodTypeInternals<GatedTransaction<z.core.output<Name>, z.core.output<TransactionSchema>, Promise<any>, [txes: any], GatedTransactionDependencies>, unknown>>;
|
|
115
113
|
export declare const resolvedGatedTransactionSchema: <Name extends z.ZodString | z.ZodLiteral<string> = z.ZodString, TransactionSchema extends typeof _transactionSchema = typeof _transactionSchema>(_?: {
|
|
116
114
|
name?: Name;
|
|
117
115
|
transactionSchema?: TransactionSchema;
|
|
118
|
-
}) => z.ZodType<ResolvedGatedTransaction<GatedTransaction<z.core.output<Name>, z.core.output<TransactionSchema>,
|
|
116
|
+
}) => z.ZodType<ResolvedGatedTransaction<GatedTransaction<z.core.output<Name>, z.core.output<TransactionSchema>, Promise<any>, [txes: any], GatedTransactionDependencies>, z.core.output<TransactionSchema>>, unknown, z.core.$ZodTypeInternals<ResolvedGatedTransaction<GatedTransaction<z.core.output<Name>, z.core.output<TransactionSchema>, Promise<any>, [txes: any], GatedTransactionDependencies>, z.core.output<TransactionSchema>>, unknown>>;
|
|
119
117
|
export declare const successfulGatedTransactionSchema: <Name extends z.ZodString | z.ZodLiteral<string> = z.ZodString, TransactionSchema extends typeof _transactionSchema = typeof _transactionSchema>(_?: {
|
|
120
118
|
name?: Name;
|
|
121
119
|
transactionSchema?: TransactionSchema;
|
|
122
|
-
}) => z.ZodType<BaseGatedTransaction<z.core.output<Name>,
|
|
120
|
+
}) => z.ZodType<BaseGatedTransaction<z.core.output<Name>, Promise<any>, GatedTransactionDependencies> & {
|
|
123
121
|
result: SuccessfulGatedTransaction<z.infer<TransactionSchema>>;
|
|
124
|
-
}, unknown, z.core.$ZodTypeInternals<BaseGatedTransaction<z.core.output<Name>,
|
|
122
|
+
}, unknown, z.core.$ZodTypeInternals<BaseGatedTransaction<z.core.output<Name>, Promise<any>, GatedTransactionDependencies> & {
|
|
125
123
|
result: SuccessfulGatedTransaction<z.infer<TransactionSchema>>;
|
|
126
124
|
}, unknown>>;
|
|
127
125
|
/**
|
|
@@ -132,7 +130,7 @@ export declare const successfulGatedTransactionSchema: <Name extends z.ZodString
|
|
|
132
130
|
* @param extraArgs Additional arguments that must be passed to the function after the txes
|
|
133
131
|
* @returns A schema for the activity that builds the transaction
|
|
134
132
|
*/
|
|
135
|
-
export declare const createTxArrayDependentActivitySchema: <TransactionSchema extends typeof _transactionSchema = typeof _transactionSchema, ExtraArgs extends z.ZodTuple = z.ZodTuple<[]>>(transactionSchema: TransactionSchema, extraArgs?: ExtraArgs) => z.ZodType<[] extends z.infer<ExtraArgs> ? (txs: ResolvedGatedTransaction<GatedTransaction<string, z.infer<TransactionSchema>>>[]) => Promise<z.infer<TransactionSchema>> : (txs: ResolvedGatedTransaction<GatedTransaction<string, z.infer<TransactionSchema>>>[]
|
|
133
|
+
export declare const createTxArrayDependentActivitySchema: <TransactionSchema extends typeof _transactionSchema = typeof _transactionSchema, ExtraArgs extends z.ZodTuple = z.ZodTuple<[]>>(transactionSchema: TransactionSchema, extraArgs?: ExtraArgs) => z.ZodType<[] extends z.infer<ExtraArgs> ? (txs: ResolvedGatedTransaction<GatedTransaction<string, z.infer<TransactionSchema>>>[]) => Promise<z.infer<TransactionSchema>> : (...args: [...extraArgs: z.infer<ExtraArgs>, txs: ResolvedGatedTransaction<GatedTransaction<string, z.infer<TransactionSchema>>>[]]) => Promise<z.infer<TransactionSchema>>>;
|
|
136
134
|
/**
|
|
137
135
|
* Builds a schema for an activity that builds a transaction based on the results of other transactions
|
|
138
136
|
* @param transactionSchema The schema for the transaction to be built
|
|
@@ -141,7 +139,7 @@ export declare const createTxArrayDependentActivitySchema: <TransactionSchema ex
|
|
|
141
139
|
* @param extraArgs Additional arguments that must be passed to the function after the txes
|
|
142
140
|
* @returns A schema for the activity that builds the transaction
|
|
143
141
|
*/
|
|
144
|
-
export declare const createTxTupleDependentActivitySchema: <TransactionSchema extends typeof _transactionSchema = typeof _transactionSchema, const TxNumber extends number = 1, ExtraArgs extends z.ZodTuple = z.ZodTuple<[]>>(transactionSchema: TransactionSchema, txNumber: TxNumber, extraArgs?: ExtraArgs) => z.ZodType<[] extends z.infer<ExtraArgs> ? (txs: BuildTuple<ResolvedGatedTransaction<GatedTransaction<string, z.infer<TransactionSchema>>>, TxNumber>) => Promise<z.infer<TransactionSchema>> : (txs: BuildTuple<ResolvedGatedTransaction<GatedTransaction<string, z.infer<TransactionSchema>>>, TxNumber
|
|
142
|
+
export declare const createTxTupleDependentActivitySchema: <TransactionSchema extends typeof _transactionSchema = typeof _transactionSchema, const TxNumber extends number = 1, ExtraArgs extends z.ZodTuple = z.ZodTuple<[]>>(transactionSchema: TransactionSchema, txNumber: TxNumber, extraArgs?: ExtraArgs) => z.ZodType<[] extends z.infer<ExtraArgs> ? (txs: BuildTuple<ResolvedGatedTransaction<GatedTransaction<string, z.infer<TransactionSchema>>>, TxNumber>) => Promise<z.infer<TransactionSchema>> : (...args: [...extraArgs: z.infer<ExtraArgs>, txs: BuildTuple<ResolvedGatedTransaction<GatedTransaction<string, z.infer<TransactionSchema>>>, TxNumber>]) => Promise<z.infer<TransactionSchema>>>;
|
|
145
143
|
export declare const createGatedTxCheckActivitySchema: <Output extends z.ZodType, const Input extends z.ZodType[] = [], TransactionWithResultSchema extends typeof _transactionWithResultSchema = typeof _transactionWithResultSchema>({ input, output, transactionWithResultSchema, }: {
|
|
146
144
|
input?: Input;
|
|
147
145
|
transactionWithResultSchema?: TransactionWithResultSchema;
|
package/dist/schemata.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"schemata.d.ts","sourceRoot":"","sources":["../src/schemata.ts"],"names":[],"mappings":"AAAA,OAAO,CAAC,MAAM,KAAK,CAAC;AAEpB,OAAO,KAAK,
|
|
1
|
+
{"version":3,"file":"schemata.d.ts","sourceRoot":"","sources":["../src/schemata.ts"],"names":[],"mappings":"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"}
|
package/dist/schemata.js
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
export { GatedTransactionStatus, createGatedTxCheckActivitySchema, createTxArrayDependentActivitySchema, createTxTupleDependentActivitySchema, gatedTransactionCacheSchema, gatedTransactionIsResolvedGatedTransaction, gatedTransactionResultSchema, gatedTransactionSchema, gatedTxCheckResultSchema, isSuccessfulGatedTransaction, resolvedGatedTransactionSchema, successfulGatedTransactionSchema } from './
|
|
1
|
+
export { GatedTransactionStatus, createGatedTxCheckActivitySchema, createTxArrayDependentActivitySchema, createTxTupleDependentActivitySchema, gatedTransactionCacheSchema, gatedTransactionIsResolvedGatedTransaction, gatedTransactionResultSchema, gatedTransactionSchema, gatedTxCheckResultSchema, isSuccessfulGatedTransaction, resolvedGatedTransactionSchema, successfulGatedTransactionSchema } from './STF7S2ML.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.
|
|
3
|
+
"version": "0.2.30",
|
|
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.
|
|
20
|
-
"@layerzerolabs/
|
|
21
|
-
"@layerzerolabs/
|
|
19
|
+
"@layerzerolabs/common-chain-model": "0.2.30",
|
|
20
|
+
"@layerzerolabs/zod-utils": "0.2.30",
|
|
21
|
+
"@layerzerolabs/function-pointer": "0.2.30"
|
|
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/
|
|
28
|
-
"@layerzerolabs/
|
|
29
|
-
"@layerzerolabs/typescript-
|
|
30
|
-
"@layerzerolabs/typescript-
|
|
27
|
+
"@layerzerolabs/tsup-configuration": "0.2.30",
|
|
28
|
+
"@layerzerolabs/base-definitions": "0.2.30",
|
|
29
|
+
"@layerzerolabs/typescript-utils": "0.2.30",
|
|
30
|
+
"@layerzerolabs/typescript-configuration": "0.2.30"
|
|
31
31
|
},
|
|
32
32
|
"publishConfig": {
|
|
33
33
|
"access": "restricted",
|
package/src/gatedTx.ts
CHANGED
|
@@ -1,13 +1,17 @@
|
|
|
1
|
-
import type {
|
|
1
|
+
import type {
|
|
2
|
+
HexString,
|
|
3
|
+
Transaction,
|
|
4
|
+
TransactionWithResult,
|
|
5
|
+
} from '@layerzerolabs/common-chain-model';
|
|
2
6
|
import type { FunctionPointer } from '@layerzerolabs/function-pointer';
|
|
3
|
-
import type { FunctionPointerWithArgs } from '@layerzerolabs/zod-utils';
|
|
4
7
|
|
|
5
8
|
import type {
|
|
6
9
|
BaseGatedTransaction,
|
|
7
|
-
|
|
10
|
+
FunctionalGatedTransaction,
|
|
8
11
|
GatedTransactionBundleId,
|
|
9
12
|
GatedTransactionDependencies,
|
|
10
13
|
GatedTransactionId,
|
|
14
|
+
LiteralGatedTransaction,
|
|
11
15
|
OnChainDataComparison,
|
|
12
16
|
ResolvedGatedTransaction,
|
|
13
17
|
} from './schemata';
|
|
@@ -17,8 +21,8 @@ import type {
|
|
|
17
21
|
*/
|
|
18
22
|
export const constructGatedTransaction = <
|
|
19
23
|
const Name extends string,
|
|
20
|
-
|
|
21
|
-
|
|
24
|
+
TxType extends Transaction,
|
|
25
|
+
CheckOutput extends Promise<any>,
|
|
22
26
|
_Dependencies extends GatedTransactionDependencies,
|
|
23
27
|
>(gtx: {
|
|
24
28
|
name: Name;
|
|
@@ -31,20 +35,19 @@ export const constructGatedTransaction = <
|
|
|
31
35
|
contractName: string;
|
|
32
36
|
retryable?: boolean;
|
|
33
37
|
abiEncodedConstructorArguments?: HexString;
|
|
34
|
-
// TODO: Should be
|
|
35
|
-
extractVerificationArtifactPointer?:
|
|
38
|
+
// TODO: Should be FunctionPointer<any, VerificationArtifact> (circular dependency)
|
|
39
|
+
extractVerificationArtifactPointer?: FunctionPointer;
|
|
36
40
|
};
|
|
37
41
|
};
|
|
38
42
|
check: {
|
|
39
|
-
functionPointer: FunctionPointer<
|
|
40
|
-
|
|
41
|
-
expectedResult: OnChainDataComparison<Awaited<ReturnType<Method>>>;
|
|
43
|
+
functionPointer: FunctionPointer<[tx?: TransactionWithResult], CheckOutput>;
|
|
44
|
+
expectedResult: OnChainDataComparison<Awaited<CheckOutput>>;
|
|
42
45
|
};
|
|
43
46
|
uniqueIdKeys?: Record<string, string | number | boolean>;
|
|
44
47
|
cacheable?: boolean;
|
|
45
48
|
dependencies?: _Dependencies;
|
|
46
|
-
transaction:
|
|
47
|
-
}):
|
|
49
|
+
transaction: TxType;
|
|
50
|
+
}): LiteralGatedTransaction<Name, TxType, CheckOutput, _Dependencies> => {
|
|
48
51
|
const dependencies = gtx.dependencies ?? ([] as any);
|
|
49
52
|
return { ...gtx, transactionType: 'literal', dependencies };
|
|
50
53
|
};
|
|
@@ -66,8 +69,8 @@ type BuildDeps<Params extends ResolvedGatedTransaction[]> = Params extends []
|
|
|
66
69
|
export const constructGatedTransactionFromPointer = <
|
|
67
70
|
const Name extends string,
|
|
68
71
|
TxType extends Transaction,
|
|
69
|
-
|
|
70
|
-
|
|
72
|
+
CheckOutput extends Promise<any>,
|
|
73
|
+
DepInput extends [...args: any[], txes: any],
|
|
71
74
|
>(gtx: {
|
|
72
75
|
name: Name;
|
|
73
76
|
description?: string;
|
|
@@ -79,23 +82,39 @@ export const constructGatedTransactionFromPointer = <
|
|
|
79
82
|
contractName: string;
|
|
80
83
|
abiEncodedConstructorArguments?: HexString;
|
|
81
84
|
retryable?: boolean;
|
|
82
|
-
// TODO: Should be
|
|
83
|
-
extractVerificationArtifactPointer?:
|
|
85
|
+
// TODO: Should be FunctionPointer<any, VerificationArtifact> (circular dependency)
|
|
86
|
+
extractVerificationArtifactPointer?: FunctionPointer;
|
|
84
87
|
};
|
|
85
88
|
};
|
|
86
89
|
check: {
|
|
87
|
-
functionPointer: FunctionPointer<
|
|
88
|
-
|
|
89
|
-
expectedResult: OnChainDataComparison<Awaited<ReturnType<Method>>>;
|
|
90
|
+
functionPointer: FunctionPointer<[tx?: TransactionWithResult], CheckOutput>;
|
|
91
|
+
expectedResult: OnChainDataComparison<Awaited<CheckOutput>>;
|
|
90
92
|
};
|
|
91
93
|
uniqueIdKeys?: Record<string, string | number | boolean>;
|
|
92
94
|
cacheable?: boolean;
|
|
93
|
-
dependencies: BuildDeps<
|
|
95
|
+
dependencies: BuildDeps<
|
|
96
|
+
DepInput extends [...any, infer Tail extends readonly ResolvedGatedTransaction[]]
|
|
97
|
+
? Tail
|
|
98
|
+
: DepInput extends [...infer Tail extends readonly ResolvedGatedTransaction[]]
|
|
99
|
+
? Tail
|
|
100
|
+
: never
|
|
101
|
+
>;
|
|
94
102
|
getTransaction: {
|
|
95
|
-
functionPointer: FunctionPointer<
|
|
96
|
-
params: Parameters<DepMethod> extends [any, ...infer Tail] ? Tail : [];
|
|
103
|
+
functionPointer: FunctionPointer<DepInput, Promise<TxType>>;
|
|
97
104
|
};
|
|
98
|
-
}):
|
|
105
|
+
}): FunctionalGatedTransaction<
|
|
106
|
+
Name,
|
|
107
|
+
TxType,
|
|
108
|
+
CheckOutput,
|
|
109
|
+
DepInput,
|
|
110
|
+
BuildDeps<
|
|
111
|
+
DepInput extends [...any, infer Tail extends readonly ResolvedGatedTransaction[]]
|
|
112
|
+
? Tail
|
|
113
|
+
: DepInput extends [...infer Tail extends readonly ResolvedGatedTransaction[]]
|
|
114
|
+
? Tail
|
|
115
|
+
: never
|
|
116
|
+
>
|
|
117
|
+
> => {
|
|
99
118
|
return {
|
|
100
119
|
...gtx,
|
|
101
120
|
transactionType: 'functional',
|
package/src/schemata.ts
CHANGED
|
@@ -1,6 +1,9 @@
|
|
|
1
1
|
import z from 'zod';
|
|
2
2
|
|
|
3
|
-
import type {
|
|
3
|
+
import type {
|
|
4
|
+
transactionSchema as _transactionSchema,
|
|
5
|
+
TransactionWithResult,
|
|
6
|
+
} from '@layerzerolabs/common-chain-model';
|
|
4
7
|
import type { HexString } from '@layerzerolabs/common-chain-model';
|
|
5
8
|
import {
|
|
6
9
|
type Transaction,
|
|
@@ -9,7 +12,7 @@ import {
|
|
|
9
12
|
} from '@layerzerolabs/common-chain-model';
|
|
10
13
|
import type { FunctionPointer } from '@layerzerolabs/function-pointer';
|
|
11
14
|
import type { BrandedError, BuildTuple, IsAny, Or } from '@layerzerolabs/typescript-utils';
|
|
12
|
-
import type {
|
|
15
|
+
import type { InferredArray } from '@layerzerolabs/zod-utils';
|
|
13
16
|
import { customSchema, functionSchema } from '@layerzerolabs/zod-utils';
|
|
14
17
|
|
|
15
18
|
export type OnChainDataComparisonOperator<OnChainDataType> =
|
|
@@ -24,12 +27,9 @@ export type OnChainDataComparison<OnChainDataType extends string | number | bool
|
|
|
24
27
|
comparisonValue: OnChainDataType;
|
|
25
28
|
};
|
|
26
29
|
|
|
27
|
-
export type GatedTransactionCheck<
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
functionPointer: FunctionPointer<Method>;
|
|
31
|
-
params: Parameters<Method>;
|
|
32
|
-
expectedResult: OnChainDataComparison<Awaited<ReturnType<Method>>>;
|
|
30
|
+
export type GatedTransactionCheck<CheckOutput extends Promise<any> = Promise<any>> = {
|
|
31
|
+
functionPointer: FunctionPointer<[tx?: TransactionWithResult], CheckOutput>;
|
|
32
|
+
expectedResult: OnChainDataComparison<Awaited<CheckOutput>>;
|
|
33
33
|
};
|
|
34
34
|
|
|
35
35
|
// Schema for gated transaction results
|
|
@@ -78,7 +78,7 @@ export type InferOnChainDataTypeFromGatedTransaction<GatedTx extends GatedTransa
|
|
|
78
78
|
export type GatedTransactionDependencies = GatedTransaction[];
|
|
79
79
|
export type BaseGatedTransaction<
|
|
80
80
|
Name extends string = string,
|
|
81
|
-
|
|
81
|
+
CheckOutput extends Promise<any> = Promise<any>,
|
|
82
82
|
_Dependencies extends GatedTransactionDependencies = GatedTransactionDependencies,
|
|
83
83
|
> = {
|
|
84
84
|
name: Name;
|
|
@@ -90,12 +90,12 @@ export type BaseGatedTransaction<
|
|
|
90
90
|
contractName: string;
|
|
91
91
|
retryable?: boolean;
|
|
92
92
|
abiEncodedConstructorArguments?: HexString;
|
|
93
|
-
// TODO: Should be
|
|
94
|
-
extractVerificationArtifactPointer?:
|
|
93
|
+
// TODO: Should be FunctionPointer<any, VerificationArtifact> (circular dependency)
|
|
94
|
+
extractVerificationArtifactPointer?: FunctionPointer;
|
|
95
95
|
};
|
|
96
96
|
};
|
|
97
97
|
chainName: string;
|
|
98
|
-
check: GatedTransactionCheck<
|
|
98
|
+
check: GatedTransactionCheck<CheckOutput>;
|
|
99
99
|
dependencies: _Dependencies;
|
|
100
100
|
cacheable?: boolean;
|
|
101
101
|
uniqueIdKeys?: Record<string, string | number | boolean>;
|
|
@@ -104,9 +104,9 @@ export type BaseGatedTransaction<
|
|
|
104
104
|
export type LiteralGatedTransaction<
|
|
105
105
|
Name extends string = string,
|
|
106
106
|
TxType extends Transaction = Transaction,
|
|
107
|
-
|
|
107
|
+
CheckOutput extends Promise<any> = Promise<any>,
|
|
108
108
|
_Dependencies extends GatedTransactionDependencies = GatedTransactionDependencies,
|
|
109
|
-
> = BaseGatedTransaction<Name,
|
|
109
|
+
> = BaseGatedTransaction<Name, CheckOutput, _Dependencies> & {
|
|
110
110
|
transactionType: 'literal';
|
|
111
111
|
transaction: TxType;
|
|
112
112
|
};
|
|
@@ -114,36 +114,29 @@ export type LiteralGatedTransaction<
|
|
|
114
114
|
export type FunctionalGatedTransaction<
|
|
115
115
|
Name extends string = string,
|
|
116
116
|
TxType extends Transaction = Transaction,
|
|
117
|
-
|
|
118
|
-
|
|
119
|
-
txs: any,
|
|
120
|
-
...args: any[]
|
|
121
|
-
) => Promise<any>,
|
|
117
|
+
CheckOutput extends Promise<any> = Promise<any>,
|
|
118
|
+
DepInput extends [...args: any[], txes: any] = [txes: any],
|
|
122
119
|
_Dependencies extends GatedTransactionDependencies = GatedTransactionDependencies,
|
|
123
|
-
> = BaseGatedTransaction<Name,
|
|
120
|
+
> = BaseGatedTransaction<Name, CheckOutput, _Dependencies> & {
|
|
124
121
|
transactionType: 'functional';
|
|
125
122
|
getTransaction: {
|
|
126
|
-
functionPointer: FunctionPointer<
|
|
127
|
-
params: Parameters<DepMethod> extends [any, ...infer Tail] ? Tail : [];
|
|
123
|
+
functionPointer: FunctionPointer<DepInput, Promise<TxType>>;
|
|
128
124
|
};
|
|
129
125
|
};
|
|
130
126
|
|
|
131
127
|
export type GatedTransaction<
|
|
132
128
|
Name extends string = string,
|
|
133
129
|
TxType extends Transaction = Transaction,
|
|
134
|
-
|
|
135
|
-
|
|
136
|
-
txs: any,
|
|
137
|
-
...args: any[]
|
|
138
|
-
) => Promise<any>,
|
|
130
|
+
CheckOutput extends Promise<any> = Promise<any>,
|
|
131
|
+
DepInput extends [...args: any[], txes: any] = [txes: any],
|
|
139
132
|
_Dependencies extends GatedTransactionDependencies = GatedTransactionDependencies,
|
|
140
133
|
> =
|
|
141
|
-
| LiteralGatedTransaction<Name, TxType,
|
|
142
|
-
| FunctionalGatedTransaction<Name, TxType,
|
|
134
|
+
| LiteralGatedTransaction<Name, TxType, CheckOutput, _Dependencies>
|
|
135
|
+
| FunctionalGatedTransaction<Name, TxType, CheckOutput, DepInput, _Dependencies>;
|
|
143
136
|
|
|
144
137
|
export type BaseGatedTransactionFor<GatedTx extends GatedTransaction> =
|
|
145
|
-
GatedTx extends GatedTransaction<infer Name, any, infer
|
|
146
|
-
? BaseGatedTransaction<Name,
|
|
138
|
+
GatedTx extends GatedTransaction<infer Name, any, infer CheckOutput, any, infer _Dependencies>
|
|
139
|
+
? BaseGatedTransaction<Name, CheckOutput, _Dependencies>
|
|
147
140
|
: never;
|
|
148
141
|
|
|
149
142
|
export enum GatedTransactionStatus {
|
|
@@ -280,13 +273,13 @@ export const createTxArrayDependentActivitySchema = <
|
|
|
280
273
|
) => {
|
|
281
274
|
return functionSchema({
|
|
282
275
|
input: z.tuple([
|
|
276
|
+
...(extraArgs?.def?.items ?? []),
|
|
283
277
|
z.array(
|
|
284
278
|
resolvedGatedTransactionSchema({
|
|
285
279
|
transactionSchema,
|
|
286
280
|
}),
|
|
287
281
|
),
|
|
288
|
-
|
|
289
|
-
]),
|
|
282
|
+
] as any),
|
|
290
283
|
output: z.promise(transactionSchema),
|
|
291
284
|
}) as unknown as z.ZodType<
|
|
292
285
|
[] extends z.infer<ExtraArgs>
|
|
@@ -296,10 +289,12 @@ export const createTxArrayDependentActivitySchema = <
|
|
|
296
289
|
>[],
|
|
297
290
|
) => Promise<z.infer<TransactionSchema>>
|
|
298
291
|
: (
|
|
299
|
-
|
|
300
|
-
|
|
301
|
-
|
|
302
|
-
|
|
292
|
+
...args: [
|
|
293
|
+
...extraArgs: z.infer<ExtraArgs>,
|
|
294
|
+
txs: ResolvedGatedTransaction<
|
|
295
|
+
GatedTransaction<string, z.infer<TransactionSchema>>
|
|
296
|
+
>[],
|
|
297
|
+
]
|
|
303
298
|
) => Promise<z.infer<TransactionSchema>>
|
|
304
299
|
>;
|
|
305
300
|
};
|
|
@@ -327,7 +322,7 @@ export const createTxTupleDependentActivitySchema = <
|
|
|
327
322
|
);
|
|
328
323
|
|
|
329
324
|
return functionSchema({
|
|
330
|
-
input: z.tuple([
|
|
325
|
+
input: z.tuple([...(extraArgs?.def?.items ?? []), z.tuple(txs as any)] as any),
|
|
331
326
|
output: z.promise(transactionSchema),
|
|
332
327
|
}) as unknown as z.ZodType<
|
|
333
328
|
[] extends z.infer<ExtraArgs>
|
|
@@ -340,13 +335,15 @@ export const createTxTupleDependentActivitySchema = <
|
|
|
340
335
|
>,
|
|
341
336
|
) => Promise<z.infer<TransactionSchema>>
|
|
342
337
|
: (
|
|
343
|
-
|
|
344
|
-
|
|
345
|
-
|
|
338
|
+
...args: [
|
|
339
|
+
...extraArgs: z.infer<ExtraArgs>,
|
|
340
|
+
txs: BuildTuple<
|
|
341
|
+
ResolvedGatedTransaction<
|
|
342
|
+
GatedTransaction<string, z.infer<TransactionSchema>>
|
|
343
|
+
>,
|
|
344
|
+
TxNumber
|
|
346
345
|
>,
|
|
347
|
-
|
|
348
|
-
>,
|
|
349
|
-
...extraArgs: z.infer<ExtraArgs>
|
|
346
|
+
]
|
|
350
347
|
) => Promise<z.infer<TransactionSchema>>
|
|
351
348
|
>;
|
|
352
349
|
};
|
package/dist/7S7APV6O.cjs.map
DELETED
|
@@ -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":"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"]}
|
package/dist/FBGH4Z7Y.cjs.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/schemata.ts"],"names":["gatedTransactionResultSchema","txWithResultSchema","onchainDataSchema","z","union","object","status","literal","submittedTransaction","transactionError","any","finalOnChainState","GatedTransactionStatus","gatedTransactionIsResolvedGatedTransaction","__name","gtx","result","gatedTransactionSchema","_","customSchema","meta","title","description","resolvedGatedTransactionSchema","successfulGatedTransactionSchema","createTxArrayDependentActivitySchema","transactionSchema","extraArgs","functionSchema","input","tuple","array","def","items","output","promise","createTxTupleDependentActivitySchema","txNumber","txs","Array","from","length","createGatedTxCheckActivitySchema","transactionWithResultSchema","_transactionWithResultSchema","optional","gatedTxCheckResultSchema","expectationMet","boolean","data","isSuccessfulGatedTransaction","gatedTransactionCacheSchema","getCachedTxCheckData","cacheSuccessfulTxCheckData"],"mappings":";;;;;;;;;;;AAmCO,IAAMA,4BAAAA,wCAITC,kBAAAA,EACAC,iBAAAA;;AAGAC,EAAAA,kBAAAA,CAAEC,KAAAA,CAAM;AACJD,IAAAA,kBAAAA,CAAEE,MAAAA,CAAO;MACLC,MAAAA,EAAQH,kBAAAA,CAAEI,QAAO,OAAA;KACrB,CAAA;AACAJ,IAAAA,kBAAAA,CAAEE,MAAAA,CAAO;MACLC,MAAAA,EAAQH,kBAAAA,CAAEI,QAAO,SAAA,CAAA;MACjBC,oBAAAA,EAAsBP;KAC1B,CAAA;AACAE,IAAAA,kBAAAA,CAAEE,MAAAA,CAAO;MACLC,MAAAA,EAAQH,kBAAAA,CAAEI,QAAO,oBAAA,CAAA;AACjBE,MAAAA,gBAAAA,EAAkBN,mBAAEO,GAAAA;KACxB,CAAA;AACAP,IAAAA,kBAAAA,CAAEE,MAAAA,CAAO;MACLC,MAAAA,EAAQH,kBAAAA,CAAEI,QAAO,oBAAA,CAAA;MACjBC,oBAAAA,EAAsBP,kBAAAA;MACtBU,iBAAAA,EAAmBT;KACvB,CAAA;AACAC,IAAAA,kBAAAA,CAAEE,MAAAA,CAAO;MACLC,MAAAA,EAAQH,kBAAAA,CAAEI,QAAO,mBAAA;KACrB,CAAA;AACAJ,IAAAA,kBAAAA,CAAEE,MAAAA,CAAO;MACLC,MAAAA,EAAQH,kBAAAA,CAAEI,QAAO,QAAA;KACrB,CAAA;AACAJ,IAAAA,kBAAAA,CAAEE,MAAAA,CAAO;MACLC,MAAAA,EAAQH,kBAAAA,CAAEI,QAAO,kBAAA;KACrB;AACH,GAAA;AAlCuC,CAAA,EAAA,8BAAA;AAiHrC,IAAKK,sBAAAA,6BAAAA,uBAAAA,EAAAA;;;;;;;;AAAAA,EAAAA,OAAAA,uBAAAA;;AAoEL,IAAMC,6DAA6CC,mBAAA,CAAA,CACtDC,GAAAA,KACkC,CAAC,CAAEA,IAAiCC,MAAAA,EAFhB,4CAAA;AAInD,IAAMC,sBAAAA,mBAAyBH,mBAAA,CAAA,CAGpCI,CAAAA,KAIEC,qBAAAA,GAA4EC,IAAAA,CAAK;EAC7EC,KAAAA,EAAO,mBAAA;EACPC,WAAAA,EAAa;AACjB,CAAA,CAAA,EAVkC,wBAAA;AAY/B,IAAMC,8BAAAA,mBAAiCT,mBAAA,CAAA,CAG5CI,CAAAA,KAIEC,qBAAAA,GAKIC,IAAAA,CAAK;EACLC,KAAAA,EAAO,4BAAA;EACPC,WAAAA,EAAa;AACjB,CAAA,CAAA,EAf0C,gCAAA;AAiBvC,IAAME,gCAAAA,mBAAmCV,mBAAA,CAAA,CAG9CI,CAAAA,KAIEC,qBAAAA,GAIIC,IAAAA,CAAK;EACLC,KAAAA,EAAO,8BAAA;EACPC,WAAAA,EAAa;AACjB,CAAA,CAAA,EAd4C,kCAAA;AAwBzC,IAAMG,oCAAAA,mBAAuCX,mBAAA,CAAA,CAIhDY,iBAAAA,EACAC,SAAAA,KAAAA;AAEA,EAAA,OAAOC,uBAAAA,CAAe;AAClBC,IAAAA,KAAAA,EAAO1B,mBAAE2B,KAAAA,CAAM;AACX3B,MAAAA,kBAAAA,CAAE4B,MACER,8BAAAA,CAA+B;AAC3BG,QAAAA;AACJ,OAAA,CAAA,CAAA;SAEAC,SAAAA,EAAWK,GAAAA,EAAKC,SAAS;AAChC,KAAA,CAAA;IACDC,MAAAA,EAAQ/B,kBAAAA,CAAEgC,QAAQT,iBAAAA;GACtB,CAAA;AAcJ,CAAA,EA/BoD,sCAAA;AAwC7C,IAAMU,oCAAAA,mBAAuCtB,mBAAA,CAAA,CAKhDY,iBAAAA,EACAW,QAAAA,EACAV,SAAAA,KAAAA;AAEA,EAAA,MAAMW,GAAAA,GAAMC,MAAMC,IAAAA,CAAK;IAAEC,MAAAA,EAAQJ;AAAS,GAAA,EAAG,MACzCd,8BAAAA,CAA+B;AAC3BG,IAAAA;AACJ,GAAA,CAAA,CAAA;AAGJ,EAAA,OAAOE,uBAAAA,CAAe;AAClBC,IAAAA,KAAAA,EAAO1B,mBAAE2B,KAAAA,CAAM;AAAC3B,MAAAA,kBAAAA,CAAE2B,MAAMQ,GAAAA,CAAAA;SAAiBX,SAAAA,EAAWK,GAAAA,EAAKC,SAAS;AAAI,KAAA,CAAA;IACtEC,MAAAA,EAAQ/B,kBAAAA,CAAEgC,QAAQT,iBAAAA;GACtB,CAAA;AAoBJ,CAAA,EAtCoD,sCAAA;AAwC7C,IAAMgB,mDAAmC5B,mBAAA,CAAA,CAK9C,EACEe,KAAAA,EACAK,MAAAA,EACAS,6BAA2B,KAK9B;AACG,EAAA,MAAM1C,kBAAAA,GAAAA,CACF0C,2BAAAA,IAA+BC,4CAAAA,EACjCC,QAAAA,EAAQ;AAEV,EAAA,OAAOjB,uBAAAA,CAAe;AAClBC,IAAAA,KAAAA,EAAO1B,mBAAE2B,KAAAA,CAAM;AAAKD,MAAAA,GAAAA,KAAAA,IAAS,EAAA;AAAK5B,MAAAA;AAAmB,KAAA,CAAA;IACrDiC,MAAAA,EAAQ/B,kBAAAA,CAAEgC,QAAQD,MAAAA;GACtB,CAAA;AAKJ,CAAA,EA1BgD,kCAAA;AAwCzC,IAAMY,wBAAAA,GAA2B3C,mBAAEE,MAAAA,CAAO;AAC7C0C,EAAAA,cAAAA,EAAgB5C,mBAAE6C,OAAAA,EAAO;AACzBC,EAAAA,IAAAA,EAAM9C,mBAAEO,GAAAA;AACZ,CAAA;AAEO,IAAMwC,4BAAAA,wCAITnC,GAAAA,KAAAA;AAEA,EAAA,OAAOA,GAAAA,CAAIC,OAAOV,MAAAA,KAAM,SAAA;AAC5B,CAAA,EAP4C,8BAAA;AASrC,IAAM6C,2BAAAA,GAA8BhD,mBAAEE,MAAAA,CAAO;AAChD+C,EAAAA,oBAAAA,EAAsBxB,uBAAAA,CAAe;AACjCC,IAAAA,KAAAA,EAAO1B,mBAAE2B,KAAAA,CAAM;AAAC3B,MAAAA,kBAAAA,CAAEO,GAAAA;AAAM,KAAA,CAAA;AACxBwB,IAAAA,MAAAA,EAAQ/B,kBAAAA,CAAEgC,OAAAA,CAAQhC,kBAAAA,CAAEO,GAAAA,EAAG;GAC3B,CAAA;AAKA2C,EAAAA,0BAAAA,EAA4BzB,uBAAAA,CAAe;AACvCC,IAAAA,KAAAA,EAAO1B,mBAAE2B,KAAAA,CAAM;AAAC3B,MAAAA,kBAAAA,CAAEO,GAAAA,EAAG;AAAIP,MAAAA,kBAAAA,CAAEO,GAAAA;AAAM,KAAA,CAAA;AACjCwB,IAAAA,MAAAA,EAAQ/B,kBAAAA,CAAEgC,OAAAA,CAAQhC,kBAAAA,CAAEO,GAAAA,EAAG;GAC3B;AAMJ,CAAA","file":"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"]}
|