@layerzerolabs/gated-transaction 0.0.33 → 0.0.34
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/.turbo/turbo-build.log +29 -29
- package/.turbo/turbo-test.log +3 -3
- package/dist/BNWOHVIN.cjs +102 -0
- package/dist/BNWOHVIN.cjs.map +1 -0
- package/dist/GP6ZA65F.js +98 -0
- package/dist/GP6ZA65F.js.map +1 -0
- package/dist/gatedTransactionSignalLock.cjs +4 -4
- package/dist/gatedTransactionSignalLock.d.ts +9 -3
- package/dist/gatedTransactionSignalLock.d.ts.map +1 -1
- package/dist/gatedTransactionSignalLock.js +1 -1
- package/dist/index.cjs +4 -4
- package/dist/index.js +1 -1
- package/package.json +9 -9
- package/src/gatedTransactionSignalLock.ts +82 -22
- package/dist/422FLJZW.cjs +0 -59
- package/dist/422FLJZW.cjs.map +0 -1
- package/dist/TLPNG7S6.js +0 -55
- package/dist/TLPNG7S6.js.map +0 -1
package/.turbo/turbo-build.log
CHANGED
|
@@ -10,45 +10,45 @@
|
|
|
10
10
|
[34mCLI[39m Cleaning output folder
|
|
11
11
|
[34mCJS[39m Build start
|
|
12
12
|
[34mESM[39m Build start
|
|
13
|
+
[32mCJS[39m [1mdist/gatedTransactionSignalLock.cjs [22m[32m697.00 B[39m
|
|
14
|
+
[32mCJS[39m [1mdist/index.cjs [22m[32m2.49 KB[39m
|
|
15
|
+
[32mCJS[39m [1mdist/BNWOHVIN.cjs [22m[32m3.70 KB[39m
|
|
16
|
+
[32mCJS[39m [1mdist/3SOQJCDG.cjs [22m[32m1.08 KB[39m
|
|
17
|
+
[32mCJS[39m [1mdist/resolver.cjs [22m[32m546.00 B[39m
|
|
18
|
+
[32mCJS[39m [1mdist/types.cjs [22m[32m1.10 KB[39m
|
|
19
|
+
[32mCJS[39m [1mdist/TYY6L3E5.cjs [22m[32m8.88 KB[39m
|
|
20
|
+
[32mCJS[39m [1mdist/YJF4D23A.cjs [22m[32m245.00 B[39m
|
|
21
|
+
[32mCJS[39m [1mdist/4ND4S3IS.cjs [22m[32m3.31 KB[39m
|
|
22
|
+
[32mCJS[39m [1mdist/gatedTx.cjs [22m[32m656.00 B[39m
|
|
23
|
+
[32mCJS[39m [1mdist/gatedTransactionSignalLock.cjs.map [22m[32m91.00 B[39m
|
|
24
|
+
[32mCJS[39m [1mdist/index.cjs.map [22m[32m70.00 B[39m
|
|
25
|
+
[32mCJS[39m [1mdist/BNWOHVIN.cjs.map [22m[32m8.61 KB[39m
|
|
26
|
+
[32mCJS[39m [1mdist/3SOQJCDG.cjs.map [22m[32m3.78 KB[39m
|
|
27
|
+
[32mCJS[39m [1mdist/resolver.cjs.map [22m[32m73.00 B[39m
|
|
28
|
+
[32mCJS[39m [1mdist/types.cjs.map [22m[32m70.00 B[39m
|
|
29
|
+
[32mCJS[39m [1mdist/YJF4D23A.cjs.map [22m[32m73.00 B[39m
|
|
30
|
+
[32mCJS[39m [1mdist/4ND4S3IS.cjs.map [22m[32m12.45 KB[39m
|
|
31
|
+
[32mCJS[39m [1mdist/TYY6L3E5.cjs.map [22m[32m22.60 KB[39m
|
|
32
|
+
[32mCJS[39m [1mdist/gatedTx.cjs.map [22m[32m72.00 B[39m
|
|
33
|
+
[32mCJS[39m ⚡️ Build success in 194ms
|
|
34
|
+
[32mESM[39m [1mdist/gatedTx.js [22m[32m218.00 B[39m
|
|
13
35
|
[32mESM[39m [1mdist/gatedTransactionSignalLock.js [22m[32m270.00 B[39m
|
|
14
36
|
[32mESM[39m [1mdist/index.js [22m[32m624.00 B[39m
|
|
15
|
-
[32mESM[39m [1mdist/
|
|
16
|
-
[32mESM[39m [1mdist/TLPNG7S6.js [22m[32m2.17 KB[39m
|
|
37
|
+
[32mESM[39m [1mdist/GP6ZA65F.js [22m[32m3.47 KB[39m
|
|
17
38
|
[32mESM[39m [1mdist/resolver.js [22m[32m238.00 B[39m
|
|
18
39
|
[32mESM[39m [1mdist/BCFOKBQQ.js [22m[32m8.34 KB[39m
|
|
19
|
-
[32mESM[39m [1mdist/types.js [22m[32m295.00 B[39m
|
|
20
40
|
[32mESM[39m [1mdist/WWHK47IY.js [22m[32m935.00 B[39m
|
|
41
|
+
[32mESM[39m [1mdist/types.js [22m[32m295.00 B[39m
|
|
21
42
|
[32mESM[39m [1mdist/PGJAXI5M.js [22m[32m2.40 KB[39m
|
|
22
43
|
[32mESM[39m [1mdist/VUOMXK5T.js [22m[32m222.00 B[39m
|
|
23
|
-
[32mESM[39m [1mdist/index.js.map [22m[32m69.00 B[39m
|
|
24
|
-
[32mESM[39m [1mdist/gatedTransactionSignalLock.js.map [22m[32m90.00 B[39m
|
|
25
44
|
[32mESM[39m [1mdist/gatedTx.js.map [22m[32m71.00 B[39m
|
|
26
|
-
[32mESM[39m [1mdist/
|
|
45
|
+
[32mESM[39m [1mdist/gatedTransactionSignalLock.js.map [22m[32m90.00 B[39m
|
|
46
|
+
[32mESM[39m [1mdist/index.js.map [22m[32m69.00 B[39m
|
|
27
47
|
[32mESM[39m [1mdist/resolver.js.map [22m[32m72.00 B[39m
|
|
48
|
+
[32mESM[39m [1mdist/GP6ZA65F.js.map [22m[32m8.58 KB[39m
|
|
28
49
|
[32mESM[39m [1mdist/WWHK47IY.js.map [22m[32m3.78 KB[39m
|
|
29
50
|
[32mESM[39m [1mdist/types.js.map [22m[32m69.00 B[39m
|
|
30
|
-
[32mESM[39m [1mdist/PGJAXI5M.js.map [22m[32m12.39 KB[39m
|
|
31
51
|
[32mESM[39m [1mdist/BCFOKBQQ.js.map [22m[32m22.57 KB[39m
|
|
52
|
+
[32mESM[39m [1mdist/PGJAXI5M.js.map [22m[32m12.39 KB[39m
|
|
32
53
|
[32mESM[39m [1mdist/VUOMXK5T.js.map [22m[32m72.00 B[39m
|
|
33
|
-
[32mESM[39m ⚡️ Build success in
|
|
34
|
-
[32mCJS[39m [1mdist/index.cjs [22m[32m2.49 KB[39m
|
|
35
|
-
[32mCJS[39m [1mdist/gatedTransactionSignalLock.cjs [22m[32m701.00 B[39m
|
|
36
|
-
[32mCJS[39m [1mdist/gatedTx.cjs [22m[32m656.00 B[39m
|
|
37
|
-
[32mCJS[39m [1mdist/resolver.cjs [22m[32m546.00 B[39m
|
|
38
|
-
[32mCJS[39m [1mdist/422FLJZW.cjs [22m[32m2.36 KB[39m
|
|
39
|
-
[32mCJS[39m [1mdist/YJF4D23A.cjs [22m[32m245.00 B[39m
|
|
40
|
-
[32mCJS[39m [1mdist/4ND4S3IS.cjs [22m[32m3.31 KB[39m
|
|
41
|
-
[32mCJS[39m [1mdist/3SOQJCDG.cjs [22m[32m1.08 KB[39m
|
|
42
|
-
[32mCJS[39m [1mdist/TYY6L3E5.cjs [22m[32m8.88 KB[39m
|
|
43
|
-
[32mCJS[39m [1mdist/types.cjs [22m[32m1.10 KB[39m
|
|
44
|
-
[32mCJS[39m [1mdist/index.cjs.map [22m[32m70.00 B[39m
|
|
45
|
-
[32mCJS[39m [1mdist/gatedTransactionSignalLock.cjs.map [22m[32m91.00 B[39m
|
|
46
|
-
[32mCJS[39m [1mdist/gatedTx.cjs.map [22m[32m72.00 B[39m
|
|
47
|
-
[32mCJS[39m [1mdist/422FLJZW.cjs.map [22m[32m5.46 KB[39m
|
|
48
|
-
[32mCJS[39m [1mdist/4ND4S3IS.cjs.map [22m[32m12.45 KB[39m
|
|
49
|
-
[32mCJS[39m [1mdist/YJF4D23A.cjs.map [22m[32m73.00 B[39m
|
|
50
|
-
[32mCJS[39m [1mdist/resolver.cjs.map [22m[32m73.00 B[39m
|
|
51
|
-
[32mCJS[39m [1mdist/3SOQJCDG.cjs.map [22m[32m3.78 KB[39m
|
|
52
|
-
[32mCJS[39m [1mdist/TYY6L3E5.cjs.map [22m[32m22.60 KB[39m
|
|
53
|
-
[32mCJS[39m [1mdist/types.cjs.map [22m[32m70.00 B[39m
|
|
54
|
-
[32mCJS[39m ⚡️ Build success in 293ms
|
|
54
|
+
[32mESM[39m ⚡️ Build success in 195ms
|
package/.turbo/turbo-test.log
CHANGED
|
@@ -5,10 +5,10 @@
|
|
|
5
5
|
|
|
6
6
|
[1m[46m RUN [49m[22m [36mv3.2.3 [39m[90m/home/runner/work/monorepo-internal/monorepo-internal/packages/gated-transaction[39m
|
|
7
7
|
|
|
8
|
-
[32m✓[39m test/resolver.test.ts [2m([22m[2m10 tests[22m[2m)[22m[33m
|
|
8
|
+
[32m✓[39m test/resolver.test.ts [2m([22m[2m10 tests[22m[2m)[22m[33m 430[2mms[22m[39m
|
|
9
9
|
|
|
10
10
|
[2m Test Files [22m [1m[32m1 passed[39m[22m[90m (1)[39m
|
|
11
11
|
[2m Tests [22m [1m[32m10 passed[39m[22m[90m (10)[39m
|
|
12
|
-
[2m Start at [22m
|
|
13
|
-
[2m Duration [22m
|
|
12
|
+
[2m Start at [22m 00:22:36
|
|
13
|
+
[2m Duration [22m 868ms[2m (transform 107ms, setup 0ms, collect 153ms, tests 430ms, environment 0ms, prepare 112ms)[22m
|
|
14
14
|
|
|
@@ -0,0 +1,102 @@
|
|
|
1
|
+
'use strict';
|
|
2
|
+
|
|
3
|
+
var _3SOQJCDG_cjs = require('./3SOQJCDG.cjs');
|
|
4
|
+
var YJF4D23A_cjs = require('./YJF4D23A.cjs');
|
|
5
|
+
var commonWorkflow = require('@layerzerolabs/common-workflow');
|
|
6
|
+
|
|
7
|
+
var gatedTransactionGoSignal = commonWorkflow.defineSignal("GatedTransactionGo");
|
|
8
|
+
var gatedTransactionGoSignalInternal = commonWorkflow.defineSignal("GatedTransactionGoInternal");
|
|
9
|
+
var queryGatedTransactions = commonWorkflow.defineQuery("GatedTransactionQuery");
|
|
10
|
+
var useGatedTransactionSignalLock = /* @__PURE__ */ YJF4D23A_cjs.__name((fn) => {
|
|
11
|
+
const passthroughWorkflows = [];
|
|
12
|
+
const addChild = /* @__PURE__ */ YJF4D23A_cjs.__name(async (wf) => {
|
|
13
|
+
passthroughWorkflows.push(wf);
|
|
14
|
+
await wf.signal(gatedTransactionGoSignal, [
|
|
15
|
+
{
|
|
16
|
+
ids: [
|
|
17
|
+
...approvedInfo.ids
|
|
18
|
+
],
|
|
19
|
+
bundleNames: [
|
|
20
|
+
...approvedInfo.bundleNames
|
|
21
|
+
]
|
|
22
|
+
}
|
|
23
|
+
]);
|
|
24
|
+
}, "addChild");
|
|
25
|
+
const approvedInfo = {
|
|
26
|
+
ids: /* @__PURE__ */ new Set(),
|
|
27
|
+
bundleNames: /* @__PURE__ */ new Set()
|
|
28
|
+
};
|
|
29
|
+
const pendingTransactions = {};
|
|
30
|
+
const sentTransactions = {};
|
|
31
|
+
const completedTransactions = {};
|
|
32
|
+
fn.setHandler(queryGatedTransactions, () => {
|
|
33
|
+
const passthroughWfIds = passthroughWorkflows.map((wf) => wf.workflowId);
|
|
34
|
+
return {
|
|
35
|
+
pendingTransactions: Object.values(pendingTransactions),
|
|
36
|
+
sentTransactions: Object.values(sentTransactions),
|
|
37
|
+
completedTransactions: Object.values(completedTransactions),
|
|
38
|
+
passthroughWorkflowIds: passthroughWfIds ?? []
|
|
39
|
+
};
|
|
40
|
+
});
|
|
41
|
+
const gatedTransactionGoInternal = /* @__PURE__ */ YJF4D23A_cjs.__name(async ({ ids, bundleNames, uniqueGoSignalId }) => {
|
|
42
|
+
if (ids.length === 0 && bundleNames.length === 0) {
|
|
43
|
+
return;
|
|
44
|
+
}
|
|
45
|
+
approvedInfo.ids = /* @__PURE__ */ new Set([
|
|
46
|
+
...approvedInfo.ids,
|
|
47
|
+
...ids
|
|
48
|
+
]);
|
|
49
|
+
approvedInfo.bundleNames = /* @__PURE__ */ new Set([
|
|
50
|
+
...approvedInfo.bundleNames,
|
|
51
|
+
...bundleNames
|
|
52
|
+
]);
|
|
53
|
+
await Promise.allSettled(passthroughWorkflows.map((wf) => {
|
|
54
|
+
return wf.signal(gatedTransactionGoSignalInternal, [
|
|
55
|
+
{
|
|
56
|
+
ids,
|
|
57
|
+
bundleNames,
|
|
58
|
+
uniqueGoSignalId
|
|
59
|
+
}
|
|
60
|
+
]);
|
|
61
|
+
}));
|
|
62
|
+
}, "gatedTransactionGoInternal");
|
|
63
|
+
fn.setHandler(gatedTransactionGoSignalInternal, gatedTransactionGoInternal);
|
|
64
|
+
fn.setHandler(gatedTransactionGoSignal, async ({ ids, bundleNames }) => {
|
|
65
|
+
const uniqueGoSignalId = "TO_BE_IMPLEMENTED_WHEN_ADDING_THE_BUNDLER";
|
|
66
|
+
const newIds = ids.filter((id) => !approvedInfo.ids.has(id));
|
|
67
|
+
const newBundleNames = bundleNames.filter((bundleName) => !approvedInfo.bundleNames.has(bundleName));
|
|
68
|
+
await gatedTransactionGoInternal({
|
|
69
|
+
ids: newIds,
|
|
70
|
+
bundleNames: newBundleNames,
|
|
71
|
+
uniqueGoSignalId
|
|
72
|
+
});
|
|
73
|
+
});
|
|
74
|
+
const confirmationCallback = /* @__PURE__ */ YJF4D23A_cjs.__name(async (tx) => {
|
|
75
|
+
const id = _3SOQJCDG_cjs.getIdForGatedTransaction(tx);
|
|
76
|
+
pendingTransactions[id] = tx;
|
|
77
|
+
await fn.condition(() => {
|
|
78
|
+
return approvedInfo.ids.has(id) || !!tx.bundleName && approvedInfo.bundleNames.has(tx.bundleName);
|
|
79
|
+
});
|
|
80
|
+
sentTransactions[id] = tx;
|
|
81
|
+
delete pendingTransactions[id];
|
|
82
|
+
return true;
|
|
83
|
+
}, "confirmationCallback");
|
|
84
|
+
const onResultCallback = /* @__PURE__ */ YJF4D23A_cjs.__name((result) => {
|
|
85
|
+
const id = _3SOQJCDG_cjs.getIdForGatedTransaction(result);
|
|
86
|
+
completedTransactions[id] = result;
|
|
87
|
+
delete sentTransactions[id];
|
|
88
|
+
}, "onResultCallback");
|
|
89
|
+
return {
|
|
90
|
+
userInteractionCallbacks: {
|
|
91
|
+
confirmationCallback,
|
|
92
|
+
onResultCallback
|
|
93
|
+
},
|
|
94
|
+
addChild
|
|
95
|
+
};
|
|
96
|
+
}, "useGatedTransactionSignalLock");
|
|
97
|
+
|
|
98
|
+
exports.gatedTransactionGoSignal = gatedTransactionGoSignal;
|
|
99
|
+
exports.queryGatedTransactions = queryGatedTransactions;
|
|
100
|
+
exports.useGatedTransactionSignalLock = useGatedTransactionSignalLock;
|
|
101
|
+
//# sourceMappingURL=BNWOHVIN.cjs.map
|
|
102
|
+
//# sourceMappingURL=BNWOHVIN.cjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../src/gatedTransactionSignalLock.ts"],"names":["gatedTransactionGoSignal","defineSignal","gatedTransactionGoSignalInternal","queryGatedTransactions","defineQuery","useGatedTransactionSignalLock","fn","passthroughWorkflows","addChild","wf","push","signal","ids","approvedInfo","bundleNames","Set","pendingTransactions","sentTransactions","completedTransactions","setHandler","passthroughWfIds","map","workflowId","Object","values","passthroughWorkflowIds","gatedTransactionGoInternal","__name","uniqueGoSignalId","length","Promise","allSettled","newIds","filter","id","has","newBundleNames","bundleName","confirmationCallback","tx","getIdForGatedTransaction","condition","onResultCallback","result","userInteractionCallbacks"],"mappings":"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","file":"BNWOHVIN.cjs","sourcesContent":["import type { WorkflowFunctions, WorkflowHandle } from '@layerzerolabs/common-workflow';\nimport { defineQuery, defineSignal } from '@layerzerolabs/common-workflow';\n\nimport { getIdForGatedTransaction } from './gatedTx';\nimport type {\n GatedTransaction,\n GatedTransactionId,\n ResolvedGatedTransaction,\n UserInteractionCallbacks,\n} from './types';\n\nexport type QueryGatedTransactionsResult = {\n pendingTransactions: GatedTransaction[];\n sentTransactions: GatedTransaction[];\n completedTransactions: ResolvedGatedTransaction[];\n passthroughWorkflowIds: string[];\n};\n\nexport const gatedTransactionGoSignal = defineSignal<\n [\n arg: {\n ids: GatedTransactionId[];\n bundleNames: string[];\n },\n ]\n>('GatedTransactionGo');\n\nconst gatedTransactionGoSignalInternal = defineSignal<\n [\n arg: {\n ids: GatedTransactionId[];\n bundleNames: string[];\n uniqueGoSignalId: string | undefined;\n },\n ]\n>('GatedTransactionGoInternal');\n\nexport const queryGatedTransactions =\n defineQuery<QueryGatedTransactionsResult>('GatedTransactionQuery');\n\nexport const useGatedTransactionSignalLock = (\n fn: WorkflowFunctions,\n): {\n userInteractionCallbacks: UserInteractionCallbacks;\n addChild: (wf: WorkflowHandle<any>) => Promise<void>;\n} => {\n const passthroughWorkflows: WorkflowHandle<any>[] = [];\n const addChild = async (wf: WorkflowHandle<any>) => {\n passthroughWorkflows.push(wf);\n await wf.signal(gatedTransactionGoSignal, [\n { ids: [...approvedInfo.ids], bundleNames: [...approvedInfo.bundleNames] },\n ]);\n };\n const approvedInfo: {\n ids: Set<GatedTransactionId>;\n bundleNames: Set<string>;\n } = {\n ids: new Set(),\n bundleNames: new Set(),\n };\n\n const pendingTransactions: Record<GatedTransactionId, GatedTransaction> = {};\n const sentTransactions: Record<GatedTransactionId, GatedTransaction> = {};\n const completedTransactions: Record<GatedTransactionId, ResolvedGatedTransaction> = {};\n\n fn.setHandler(queryGatedTransactions, () => {\n const passthroughWfIds = passthroughWorkflows.map((wf) => wf.workflowId);\n return {\n pendingTransactions: Object.values(pendingTransactions),\n sentTransactions: Object.values(sentTransactions),\n completedTransactions: Object.values(completedTransactions),\n passthroughWorkflowIds: passthroughWfIds ?? [],\n };\n });\n\n const gatedTransactionGoInternal = async ({\n ids,\n bundleNames,\n uniqueGoSignalId,\n }: {\n ids: GatedTransactionId[];\n bundleNames: string[];\n uniqueGoSignalId: string | undefined;\n }): Promise<void> => {\n if (ids.length === 0 && bundleNames.length === 0) {\n return;\n }\n\n approvedInfo.ids = new Set([...approvedInfo.ids, ...ids]);\n approvedInfo.bundleNames = new Set([...approvedInfo.bundleNames, ...bundleNames]);\n await Promise.allSettled(\n passthroughWorkflows.map((wf) => {\n return wf.signal(gatedTransactionGoSignalInternal, [\n { ids, bundleNames, uniqueGoSignalId },\n ]);\n }),\n );\n };\n fn.setHandler(gatedTransactionGoSignalInternal, gatedTransactionGoInternal);\n\n fn.setHandler(gatedTransactionGoSignal, async ({ ids, bundleNames }) => {\n const uniqueGoSignalId = 'TO_BE_IMPLEMENTED_WHEN_ADDING_THE_BUNDLER';\n // Only keep new transaction ids and bundle names\n const newIds = ids.filter((id) => !approvedInfo.ids.has(id));\n const newBundleNames = bundleNames.filter(\n (bundleName) => !approvedInfo.bundleNames.has(bundleName),\n );\n\n await gatedTransactionGoInternal({\n ids: newIds,\n bundleNames: newBundleNames,\n uniqueGoSignalId,\n });\n });\n\n const confirmationCallback: UserInteractionCallbacks['confirmationCallback'] = async (tx) => {\n const id = getIdForGatedTransaction(tx);\n pendingTransactions[id] = tx;\n\n await fn.condition(() => {\n return (\n approvedInfo.ids.has(id) ||\n (!!tx.bundleName && approvedInfo.bundleNames.has(tx.bundleName))\n );\n });\n\n sentTransactions[id] = tx;\n delete pendingTransactions[id];\n return true;\n };\n\n const onResultCallback: UserInteractionCallbacks['onResultCallback'] = (result) => {\n const id = getIdForGatedTransaction(result);\n completedTransactions[id] = result;\n delete sentTransactions[id];\n };\n\n return { userInteractionCallbacks: { confirmationCallback, onResultCallback }, addChild };\n};\n"]}
|
package/dist/GP6ZA65F.js
ADDED
|
@@ -0,0 +1,98 @@
|
|
|
1
|
+
import { getIdForGatedTransaction } from './WWHK47IY.js';
|
|
2
|
+
import { __name } from './VUOMXK5T.js';
|
|
3
|
+
import { defineSignal, defineQuery } from '@layerzerolabs/common-workflow';
|
|
4
|
+
|
|
5
|
+
var gatedTransactionGoSignal = defineSignal("GatedTransactionGo");
|
|
6
|
+
var gatedTransactionGoSignalInternal = defineSignal("GatedTransactionGoInternal");
|
|
7
|
+
var queryGatedTransactions = defineQuery("GatedTransactionQuery");
|
|
8
|
+
var useGatedTransactionSignalLock = /* @__PURE__ */ __name((fn) => {
|
|
9
|
+
const passthroughWorkflows = [];
|
|
10
|
+
const addChild = /* @__PURE__ */ __name(async (wf) => {
|
|
11
|
+
passthroughWorkflows.push(wf);
|
|
12
|
+
await wf.signal(gatedTransactionGoSignal, [
|
|
13
|
+
{
|
|
14
|
+
ids: [
|
|
15
|
+
...approvedInfo.ids
|
|
16
|
+
],
|
|
17
|
+
bundleNames: [
|
|
18
|
+
...approvedInfo.bundleNames
|
|
19
|
+
]
|
|
20
|
+
}
|
|
21
|
+
]);
|
|
22
|
+
}, "addChild");
|
|
23
|
+
const approvedInfo = {
|
|
24
|
+
ids: /* @__PURE__ */ new Set(),
|
|
25
|
+
bundleNames: /* @__PURE__ */ new Set()
|
|
26
|
+
};
|
|
27
|
+
const pendingTransactions = {};
|
|
28
|
+
const sentTransactions = {};
|
|
29
|
+
const completedTransactions = {};
|
|
30
|
+
fn.setHandler(queryGatedTransactions, () => {
|
|
31
|
+
const passthroughWfIds = passthroughWorkflows.map((wf) => wf.workflowId);
|
|
32
|
+
return {
|
|
33
|
+
pendingTransactions: Object.values(pendingTransactions),
|
|
34
|
+
sentTransactions: Object.values(sentTransactions),
|
|
35
|
+
completedTransactions: Object.values(completedTransactions),
|
|
36
|
+
passthroughWorkflowIds: passthroughWfIds ?? []
|
|
37
|
+
};
|
|
38
|
+
});
|
|
39
|
+
const gatedTransactionGoInternal = /* @__PURE__ */ __name(async ({ ids, bundleNames, uniqueGoSignalId }) => {
|
|
40
|
+
if (ids.length === 0 && bundleNames.length === 0) {
|
|
41
|
+
return;
|
|
42
|
+
}
|
|
43
|
+
approvedInfo.ids = /* @__PURE__ */ new Set([
|
|
44
|
+
...approvedInfo.ids,
|
|
45
|
+
...ids
|
|
46
|
+
]);
|
|
47
|
+
approvedInfo.bundleNames = /* @__PURE__ */ new Set([
|
|
48
|
+
...approvedInfo.bundleNames,
|
|
49
|
+
...bundleNames
|
|
50
|
+
]);
|
|
51
|
+
await Promise.allSettled(passthroughWorkflows.map((wf) => {
|
|
52
|
+
return wf.signal(gatedTransactionGoSignalInternal, [
|
|
53
|
+
{
|
|
54
|
+
ids,
|
|
55
|
+
bundleNames,
|
|
56
|
+
uniqueGoSignalId
|
|
57
|
+
}
|
|
58
|
+
]);
|
|
59
|
+
}));
|
|
60
|
+
}, "gatedTransactionGoInternal");
|
|
61
|
+
fn.setHandler(gatedTransactionGoSignalInternal, gatedTransactionGoInternal);
|
|
62
|
+
fn.setHandler(gatedTransactionGoSignal, async ({ ids, bundleNames }) => {
|
|
63
|
+
const uniqueGoSignalId = "TO_BE_IMPLEMENTED_WHEN_ADDING_THE_BUNDLER";
|
|
64
|
+
const newIds = ids.filter((id) => !approvedInfo.ids.has(id));
|
|
65
|
+
const newBundleNames = bundleNames.filter((bundleName) => !approvedInfo.bundleNames.has(bundleName));
|
|
66
|
+
await gatedTransactionGoInternal({
|
|
67
|
+
ids: newIds,
|
|
68
|
+
bundleNames: newBundleNames,
|
|
69
|
+
uniqueGoSignalId
|
|
70
|
+
});
|
|
71
|
+
});
|
|
72
|
+
const confirmationCallback = /* @__PURE__ */ __name(async (tx) => {
|
|
73
|
+
const id = getIdForGatedTransaction(tx);
|
|
74
|
+
pendingTransactions[id] = tx;
|
|
75
|
+
await fn.condition(() => {
|
|
76
|
+
return approvedInfo.ids.has(id) || !!tx.bundleName && approvedInfo.bundleNames.has(tx.bundleName);
|
|
77
|
+
});
|
|
78
|
+
sentTransactions[id] = tx;
|
|
79
|
+
delete pendingTransactions[id];
|
|
80
|
+
return true;
|
|
81
|
+
}, "confirmationCallback");
|
|
82
|
+
const onResultCallback = /* @__PURE__ */ __name((result) => {
|
|
83
|
+
const id = getIdForGatedTransaction(result);
|
|
84
|
+
completedTransactions[id] = result;
|
|
85
|
+
delete sentTransactions[id];
|
|
86
|
+
}, "onResultCallback");
|
|
87
|
+
return {
|
|
88
|
+
userInteractionCallbacks: {
|
|
89
|
+
confirmationCallback,
|
|
90
|
+
onResultCallback
|
|
91
|
+
},
|
|
92
|
+
addChild
|
|
93
|
+
};
|
|
94
|
+
}, "useGatedTransactionSignalLock");
|
|
95
|
+
|
|
96
|
+
export { gatedTransactionGoSignal, queryGatedTransactions, useGatedTransactionSignalLock };
|
|
97
|
+
//# sourceMappingURL=GP6ZA65F.js.map
|
|
98
|
+
//# sourceMappingURL=GP6ZA65F.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../src/gatedTransactionSignalLock.ts"],"names":["gatedTransactionGoSignal","defineSignal","gatedTransactionGoSignalInternal","queryGatedTransactions","defineQuery","useGatedTransactionSignalLock","fn","passthroughWorkflows","addChild","wf","push","signal","ids","approvedInfo","bundleNames","Set","pendingTransactions","sentTransactions","completedTransactions","setHandler","passthroughWfIds","map","workflowId","Object","values","passthroughWorkflowIds","gatedTransactionGoInternal","uniqueGoSignalId","length","Promise","allSettled","newIds","filter","id","has","newBundleNames","bundleName","confirmationCallback","tx","getIdForGatedTransaction","condition","onResultCallback","result","userInteractionCallbacks"],"mappings":"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","file":"GP6ZA65F.js","sourcesContent":["import type { WorkflowFunctions, WorkflowHandle } from '@layerzerolabs/common-workflow';\nimport { defineQuery, defineSignal } from '@layerzerolabs/common-workflow';\n\nimport { getIdForGatedTransaction } from './gatedTx';\nimport type {\n GatedTransaction,\n GatedTransactionId,\n ResolvedGatedTransaction,\n UserInteractionCallbacks,\n} from './types';\n\nexport type QueryGatedTransactionsResult = {\n pendingTransactions: GatedTransaction[];\n sentTransactions: GatedTransaction[];\n completedTransactions: ResolvedGatedTransaction[];\n passthroughWorkflowIds: string[];\n};\n\nexport const gatedTransactionGoSignal = defineSignal<\n [\n arg: {\n ids: GatedTransactionId[];\n bundleNames: string[];\n },\n ]\n>('GatedTransactionGo');\n\nconst gatedTransactionGoSignalInternal = defineSignal<\n [\n arg: {\n ids: GatedTransactionId[];\n bundleNames: string[];\n uniqueGoSignalId: string | undefined;\n },\n ]\n>('GatedTransactionGoInternal');\n\nexport const queryGatedTransactions =\n defineQuery<QueryGatedTransactionsResult>('GatedTransactionQuery');\n\nexport const useGatedTransactionSignalLock = (\n fn: WorkflowFunctions,\n): {\n userInteractionCallbacks: UserInteractionCallbacks;\n addChild: (wf: WorkflowHandle<any>) => Promise<void>;\n} => {\n const passthroughWorkflows: WorkflowHandle<any>[] = [];\n const addChild = async (wf: WorkflowHandle<any>) => {\n passthroughWorkflows.push(wf);\n await wf.signal(gatedTransactionGoSignal, [\n { ids: [...approvedInfo.ids], bundleNames: [...approvedInfo.bundleNames] },\n ]);\n };\n const approvedInfo: {\n ids: Set<GatedTransactionId>;\n bundleNames: Set<string>;\n } = {\n ids: new Set(),\n bundleNames: new Set(),\n };\n\n const pendingTransactions: Record<GatedTransactionId, GatedTransaction> = {};\n const sentTransactions: Record<GatedTransactionId, GatedTransaction> = {};\n const completedTransactions: Record<GatedTransactionId, ResolvedGatedTransaction> = {};\n\n fn.setHandler(queryGatedTransactions, () => {\n const passthroughWfIds = passthroughWorkflows.map((wf) => wf.workflowId);\n return {\n pendingTransactions: Object.values(pendingTransactions),\n sentTransactions: Object.values(sentTransactions),\n completedTransactions: Object.values(completedTransactions),\n passthroughWorkflowIds: passthroughWfIds ?? [],\n };\n });\n\n const gatedTransactionGoInternal = async ({\n ids,\n bundleNames,\n uniqueGoSignalId,\n }: {\n ids: GatedTransactionId[];\n bundleNames: string[];\n uniqueGoSignalId: string | undefined;\n }): Promise<void> => {\n if (ids.length === 0 && bundleNames.length === 0) {\n return;\n }\n\n approvedInfo.ids = new Set([...approvedInfo.ids, ...ids]);\n approvedInfo.bundleNames = new Set([...approvedInfo.bundleNames, ...bundleNames]);\n await Promise.allSettled(\n passthroughWorkflows.map((wf) => {\n return wf.signal(gatedTransactionGoSignalInternal, [\n { ids, bundleNames, uniqueGoSignalId },\n ]);\n }),\n );\n };\n fn.setHandler(gatedTransactionGoSignalInternal, gatedTransactionGoInternal);\n\n fn.setHandler(gatedTransactionGoSignal, async ({ ids, bundleNames }) => {\n const uniqueGoSignalId = 'TO_BE_IMPLEMENTED_WHEN_ADDING_THE_BUNDLER';\n // Only keep new transaction ids and bundle names\n const newIds = ids.filter((id) => !approvedInfo.ids.has(id));\n const newBundleNames = bundleNames.filter(\n (bundleName) => !approvedInfo.bundleNames.has(bundleName),\n );\n\n await gatedTransactionGoInternal({\n ids: newIds,\n bundleNames: newBundleNames,\n uniqueGoSignalId,\n });\n });\n\n const confirmationCallback: UserInteractionCallbacks['confirmationCallback'] = async (tx) => {\n const id = getIdForGatedTransaction(tx);\n pendingTransactions[id] = tx;\n\n await fn.condition(() => {\n return (\n approvedInfo.ids.has(id) ||\n (!!tx.bundleName && approvedInfo.bundleNames.has(tx.bundleName))\n );\n });\n\n sentTransactions[id] = tx;\n delete pendingTransactions[id];\n return true;\n };\n\n const onResultCallback: UserInteractionCallbacks['onResultCallback'] = (result) => {\n const id = getIdForGatedTransaction(result);\n completedTransactions[id] = result;\n delete sentTransactions[id];\n };\n\n return { userInteractionCallbacks: { confirmationCallback, onResultCallback }, addChild };\n};\n"]}
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
'use strict';
|
|
2
2
|
|
|
3
|
-
var
|
|
3
|
+
var BNWOHVIN_cjs = require('./BNWOHVIN.cjs');
|
|
4
4
|
require('./3SOQJCDG.cjs');
|
|
5
5
|
require('./YJF4D23A.cjs');
|
|
6
6
|
|
|
@@ -8,15 +8,15 @@ require('./YJF4D23A.cjs');
|
|
|
8
8
|
|
|
9
9
|
Object.defineProperty(exports, "gatedTransactionGoSignal", {
|
|
10
10
|
enumerable: true,
|
|
11
|
-
get: function () { return
|
|
11
|
+
get: function () { return BNWOHVIN_cjs.gatedTransactionGoSignal; }
|
|
12
12
|
});
|
|
13
13
|
Object.defineProperty(exports, "queryGatedTransactions", {
|
|
14
14
|
enumerable: true,
|
|
15
|
-
get: function () { return
|
|
15
|
+
get: function () { return BNWOHVIN_cjs.queryGatedTransactions; }
|
|
16
16
|
});
|
|
17
17
|
Object.defineProperty(exports, "useGatedTransactionSignalLock", {
|
|
18
18
|
enumerable: true,
|
|
19
|
-
get: function () { return
|
|
19
|
+
get: function () { return BNWOHVIN_cjs.useGatedTransactionSignalLock; }
|
|
20
20
|
});
|
|
21
21
|
//# sourceMappingURL=gatedTransactionSignalLock.cjs.map
|
|
22
22
|
//# sourceMappingURL=gatedTransactionSignalLock.cjs.map
|
|
@@ -1,12 +1,18 @@
|
|
|
1
1
|
import type { WorkflowFunctions, WorkflowHandle } from '@layerzerolabs/common-workflow';
|
|
2
|
-
import type { GatedTransaction, ResolvedGatedTransaction, UserInteractionCallbacks } from './types';
|
|
2
|
+
import type { GatedTransaction, GatedTransactionId, ResolvedGatedTransaction, UserInteractionCallbacks } from './types';
|
|
3
3
|
export type QueryGatedTransactionsResult = {
|
|
4
4
|
pendingTransactions: GatedTransaction[];
|
|
5
5
|
sentTransactions: GatedTransaction[];
|
|
6
6
|
completedTransactions: ResolvedGatedTransaction[];
|
|
7
7
|
passthroughWorkflowIds: string[];
|
|
8
8
|
};
|
|
9
|
-
export declare const gatedTransactionGoSignal: import("@layerzerolabs/common-workflow").SignalDefinition<[
|
|
9
|
+
export declare const gatedTransactionGoSignal: import("@layerzerolabs/common-workflow").SignalDefinition<[arg: {
|
|
10
|
+
ids: GatedTransactionId[];
|
|
11
|
+
bundleNames: string[];
|
|
12
|
+
}], string>;
|
|
10
13
|
export declare const queryGatedTransactions: import("@layerzerolabs/common-workflow").QueryDefinition<QueryGatedTransactionsResult, [], string>;
|
|
11
|
-
export declare const useGatedTransactionSignalLock: (fn: WorkflowFunctions
|
|
14
|
+
export declare const useGatedTransactionSignalLock: (fn: WorkflowFunctions) => {
|
|
15
|
+
userInteractionCallbacks: UserInteractionCallbacks;
|
|
16
|
+
addChild: (wf: WorkflowHandle<any>) => Promise<void>;
|
|
17
|
+
};
|
|
12
18
|
//# sourceMappingURL=gatedTransactionSignalLock.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"gatedTransactionSignalLock.d.ts","sourceRoot":"","sources":["../src/gatedTransactionSignalLock.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,iBAAiB,EAAE,cAAc,EAAE,MAAM,gCAAgC,CAAC;AAIxF,OAAO,KAAK,EACR,gBAAgB,
|
|
1
|
+
{"version":3,"file":"gatedTransactionSignalLock.d.ts","sourceRoot":"","sources":["../src/gatedTransactionSignalLock.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,iBAAiB,EAAE,cAAc,EAAE,MAAM,gCAAgC,CAAC;AAIxF,OAAO,KAAK,EACR,gBAAgB,EAChB,kBAAkB,EAClB,wBAAwB,EACxB,wBAAwB,EAC3B,MAAM,SAAS,CAAC;AAEjB,MAAM,MAAM,4BAA4B,GAAG;IACvC,mBAAmB,EAAE,gBAAgB,EAAE,CAAC;IACxC,gBAAgB,EAAE,gBAAgB,EAAE,CAAC;IACrC,qBAAqB,EAAE,wBAAwB,EAAE,CAAC;IAClD,sBAAsB,EAAE,MAAM,EAAE,CAAC;CACpC,CAAC;AAEF,eAAO,MAAM,wBAAwB;SAGpB,kBAAkB,EAAE;iBACZ,MAAM,EAAE;WAGV,CAAC;AAYxB,eAAO,MAAM,sBAAsB,oGACmC,CAAC;AAEvE,eAAO,MAAM,6BAA6B,GACtC,IAAI,iBAAiB,KACtB;IACC,wBAAwB,EAAE,wBAAwB,CAAC;IACnD,QAAQ,EAAE,CAAC,EAAE,EAAE,cAAc,CAAC,GAAG,CAAC,KAAK,OAAO,CAAC,IAAI,CAAC,CAAC;CA8FxD,CAAC"}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
export { gatedTransactionGoSignal, queryGatedTransactions, useGatedTransactionSignalLock } from './
|
|
1
|
+
export { gatedTransactionGoSignal, queryGatedTransactions, useGatedTransactionSignalLock } from './GP6ZA65F.js';
|
|
2
2
|
import './WWHK47IY.js';
|
|
3
3
|
import './VUOMXK5T.js';
|
|
4
4
|
//# sourceMappingURL=gatedTransactionSignalLock.js.map
|
package/dist/index.cjs
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
'use strict';
|
|
2
2
|
|
|
3
|
-
var
|
|
3
|
+
var BNWOHVIN_cjs = require('./BNWOHVIN.cjs');
|
|
4
4
|
var TYY6L3E5_cjs = require('./TYY6L3E5.cjs');
|
|
5
5
|
var _3SOQJCDG_cjs = require('./3SOQJCDG.cjs');
|
|
6
6
|
var _4ND4S3IS_cjs = require('./4ND4S3IS.cjs');
|
|
@@ -10,15 +10,15 @@ require('./YJF4D23A.cjs');
|
|
|
10
10
|
|
|
11
11
|
Object.defineProperty(exports, "gatedTransactionGoSignal", {
|
|
12
12
|
enumerable: true,
|
|
13
|
-
get: function () { return
|
|
13
|
+
get: function () { return BNWOHVIN_cjs.gatedTransactionGoSignal; }
|
|
14
14
|
});
|
|
15
15
|
Object.defineProperty(exports, "queryGatedTransactions", {
|
|
16
16
|
enumerable: true,
|
|
17
|
-
get: function () { return
|
|
17
|
+
get: function () { return BNWOHVIN_cjs.queryGatedTransactions; }
|
|
18
18
|
});
|
|
19
19
|
Object.defineProperty(exports, "useGatedTransactionSignalLock", {
|
|
20
20
|
enumerable: true,
|
|
21
|
-
get: function () { return
|
|
21
|
+
get: function () { return BNWOHVIN_cjs.useGatedTransactionSignalLock; }
|
|
22
22
|
});
|
|
23
23
|
Object.defineProperty(exports, "resolveGatedTransactions", {
|
|
24
24
|
enumerable: true,
|
package/dist/index.js
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
export { gatedTransactionGoSignal, queryGatedTransactions, useGatedTransactionSignalLock } from './
|
|
1
|
+
export { gatedTransactionGoSignal, queryGatedTransactions, useGatedTransactionSignalLock } from './GP6ZA65F.js';
|
|
2
2
|
export { resolveGatedTransactions, resolveSequencedGatedTransactions } from './BCFOKBQQ.js';
|
|
3
3
|
export { constructGatedTransaction, constructGatedTransactionFromPointer, getIdForGatedTransaction } from './WWHK47IY.js';
|
|
4
4
|
export { GatedTransactionStatus, createTxDependentActivitySchema, gatedTransactionCacheSchema, gatedTransactionResultSchema, gatedTransactionSchema, resolvedGatedTransactionSchema } from './PGJAXI5M.js';
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@layerzerolabs/gated-transaction",
|
|
3
|
-
"version": "0.0.
|
|
3
|
+
"version": "0.0.34",
|
|
4
4
|
"private": false,
|
|
5
5
|
"license": "MIT",
|
|
6
6
|
"sideEffects": false,
|
|
@@ -17,19 +17,19 @@
|
|
|
17
17
|
"dependencies": {
|
|
18
18
|
"lodash.isequal": "^4.5.0",
|
|
19
19
|
"zod": "^3.23.8",
|
|
20
|
-
"@layerzerolabs/common-activities": "0.0.
|
|
21
|
-
"@layerzerolabs/common-utils": "0.0.
|
|
22
|
-
"@layerzerolabs/common-
|
|
23
|
-
"@layerzerolabs/common-
|
|
24
|
-
"@layerzerolabs/zod-utils": "0.0.
|
|
20
|
+
"@layerzerolabs/common-activities": "0.0.34",
|
|
21
|
+
"@layerzerolabs/common-utils": "0.0.34",
|
|
22
|
+
"@layerzerolabs/common-chain-model": "0.0.34",
|
|
23
|
+
"@layerzerolabs/common-workflow": "0.0.34",
|
|
24
|
+
"@layerzerolabs/zod-utils": "0.0.34"
|
|
25
25
|
},
|
|
26
26
|
"devDependencies": {
|
|
27
27
|
"@types/lodash.isequal": "^4.5.8",
|
|
28
28
|
"tsup": "^8.4.0",
|
|
29
29
|
"vitest": "^3.2.3",
|
|
30
|
-
"@layerzerolabs/
|
|
31
|
-
"@layerzerolabs/
|
|
32
|
-
"@layerzerolabs/typescript-utils": "0.0.
|
|
30
|
+
"@layerzerolabs/tsup-configuration": "0.0.34",
|
|
31
|
+
"@layerzerolabs/typescript-configuration": "0.0.34",
|
|
32
|
+
"@layerzerolabs/typescript-utils": "0.0.34"
|
|
33
33
|
},
|
|
34
34
|
"publishConfig": {
|
|
35
35
|
"access": "restricted",
|
|
@@ -16,24 +16,55 @@ export type QueryGatedTransactionsResult = {
|
|
|
16
16
|
passthroughWorkflowIds: string[];
|
|
17
17
|
};
|
|
18
18
|
|
|
19
|
-
export const gatedTransactionGoSignal =
|
|
20
|
-
|
|
19
|
+
export const gatedTransactionGoSignal = defineSignal<
|
|
20
|
+
[
|
|
21
|
+
arg: {
|
|
22
|
+
ids: GatedTransactionId[];
|
|
23
|
+
bundleNames: string[];
|
|
24
|
+
},
|
|
25
|
+
]
|
|
26
|
+
>('GatedTransactionGo');
|
|
27
|
+
|
|
28
|
+
const gatedTransactionGoSignalInternal = defineSignal<
|
|
29
|
+
[
|
|
30
|
+
arg: {
|
|
31
|
+
ids: GatedTransactionId[];
|
|
32
|
+
bundleNames: string[];
|
|
33
|
+
uniqueGoSignalId: string | undefined;
|
|
34
|
+
},
|
|
35
|
+
]
|
|
36
|
+
>('GatedTransactionGoInternal');
|
|
37
|
+
|
|
21
38
|
export const queryGatedTransactions =
|
|
22
39
|
defineQuery<QueryGatedTransactionsResult>('GatedTransactionQuery');
|
|
23
40
|
|
|
24
41
|
export const useGatedTransactionSignalLock = (
|
|
25
42
|
fn: WorkflowFunctions,
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
43
|
+
): {
|
|
44
|
+
userInteractionCallbacks: UserInteractionCallbacks;
|
|
45
|
+
addChild: (wf: WorkflowHandle<any>) => Promise<void>;
|
|
46
|
+
} => {
|
|
47
|
+
const passthroughWorkflows: WorkflowHandle<any>[] = [];
|
|
48
|
+
const addChild = async (wf: WorkflowHandle<any>) => {
|
|
49
|
+
passthroughWorkflows.push(wf);
|
|
50
|
+
await wf.signal(gatedTransactionGoSignal, [
|
|
51
|
+
{ ids: [...approvedInfo.ids], bundleNames: [...approvedInfo.bundleNames] },
|
|
52
|
+
]);
|
|
53
|
+
};
|
|
54
|
+
const approvedInfo: {
|
|
55
|
+
ids: Set<GatedTransactionId>;
|
|
56
|
+
bundleNames: Set<string>;
|
|
57
|
+
} = {
|
|
58
|
+
ids: new Set(),
|
|
59
|
+
bundleNames: new Set(),
|
|
60
|
+
};
|
|
30
61
|
|
|
31
62
|
const pendingTransactions: Record<GatedTransactionId, GatedTransaction> = {};
|
|
32
63
|
const sentTransactions: Record<GatedTransactionId, GatedTransaction> = {};
|
|
33
64
|
const completedTransactions: Record<GatedTransactionId, ResolvedGatedTransaction> = {};
|
|
34
65
|
|
|
35
66
|
fn.setHandler(queryGatedTransactions, () => {
|
|
36
|
-
const passthroughWfIds =
|
|
67
|
+
const passthroughWfIds = passthroughWorkflows.map((wf) => wf.workflowId);
|
|
37
68
|
return {
|
|
38
69
|
pendingTransactions: Object.values(pendingTransactions),
|
|
39
70
|
sentTransactions: Object.values(sentTransactions),
|
|
@@ -42,28 +73,57 @@ export const useGatedTransactionSignalLock = (
|
|
|
42
73
|
};
|
|
43
74
|
});
|
|
44
75
|
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
76
|
+
const gatedTransactionGoInternal = async ({
|
|
77
|
+
ids,
|
|
78
|
+
bundleNames,
|
|
79
|
+
uniqueGoSignalId,
|
|
80
|
+
}: {
|
|
81
|
+
ids: GatedTransactionId[];
|
|
82
|
+
bundleNames: string[];
|
|
83
|
+
uniqueGoSignalId: string | undefined;
|
|
84
|
+
}): Promise<void> => {
|
|
85
|
+
if (ids.length === 0 && bundleNames.length === 0) {
|
|
86
|
+
return;
|
|
54
87
|
}
|
|
88
|
+
|
|
89
|
+
approvedInfo.ids = new Set([...approvedInfo.ids, ...ids]);
|
|
90
|
+
approvedInfo.bundleNames = new Set([...approvedInfo.bundleNames, ...bundleNames]);
|
|
91
|
+
await Promise.allSettled(
|
|
92
|
+
passthroughWorkflows.map((wf) => {
|
|
93
|
+
return wf.signal(gatedTransactionGoSignalInternal, [
|
|
94
|
+
{ ids, bundleNames, uniqueGoSignalId },
|
|
95
|
+
]);
|
|
96
|
+
}),
|
|
97
|
+
);
|
|
98
|
+
};
|
|
99
|
+
fn.setHandler(gatedTransactionGoSignalInternal, gatedTransactionGoInternal);
|
|
100
|
+
|
|
101
|
+
fn.setHandler(gatedTransactionGoSignal, async ({ ids, bundleNames }) => {
|
|
102
|
+
const uniqueGoSignalId = 'TO_BE_IMPLEMENTED_WHEN_ADDING_THE_BUNDLER';
|
|
103
|
+
// Only keep new transaction ids and bundle names
|
|
104
|
+
const newIds = ids.filter((id) => !approvedInfo.ids.has(id));
|
|
105
|
+
const newBundleNames = bundleNames.filter(
|
|
106
|
+
(bundleName) => !approvedInfo.bundleNames.has(bundleName),
|
|
107
|
+
);
|
|
108
|
+
|
|
109
|
+
await gatedTransactionGoInternal({
|
|
110
|
+
ids: newIds,
|
|
111
|
+
bundleNames: newBundleNames,
|
|
112
|
+
uniqueGoSignalId,
|
|
113
|
+
});
|
|
55
114
|
});
|
|
56
115
|
|
|
57
116
|
const confirmationCallback: UserInteractionCallbacks['confirmationCallback'] = async (tx) => {
|
|
58
117
|
const id = getIdForGatedTransaction(tx);
|
|
59
118
|
pendingTransactions[id] = tx;
|
|
60
119
|
|
|
61
|
-
await fn.condition(
|
|
62
|
-
(
|
|
63
|
-
|
|
64
|
-
|
|
120
|
+
await fn.condition(() => {
|
|
121
|
+
return (
|
|
122
|
+
approvedInfo.ids.has(id) ||
|
|
123
|
+
(!!tx.bundleName && approvedInfo.bundleNames.has(tx.bundleName))
|
|
124
|
+
);
|
|
125
|
+
});
|
|
65
126
|
|
|
66
|
-
tx.bundleName && approvedBundleNames.add(tx.bundleName);
|
|
67
127
|
sentTransactions[id] = tx;
|
|
68
128
|
delete pendingTransactions[id];
|
|
69
129
|
return true;
|
|
@@ -75,5 +135,5 @@ export const useGatedTransactionSignalLock = (
|
|
|
75
135
|
delete sentTransactions[id];
|
|
76
136
|
};
|
|
77
137
|
|
|
78
|
-
return { confirmationCallback, onResultCallback };
|
|
138
|
+
return { userInteractionCallbacks: { confirmationCallback, onResultCallback }, addChild };
|
|
79
139
|
};
|
package/dist/422FLJZW.cjs
DELETED
|
@@ -1,59 +0,0 @@
|
|
|
1
|
-
'use strict';
|
|
2
|
-
|
|
3
|
-
var _3SOQJCDG_cjs = require('./3SOQJCDG.cjs');
|
|
4
|
-
var YJF4D23A_cjs = require('./YJF4D23A.cjs');
|
|
5
|
-
var commonWorkflow = require('@layerzerolabs/common-workflow');
|
|
6
|
-
|
|
7
|
-
var gatedTransactionGoSignal = commonWorkflow.defineSignal("GatedTransactionGo");
|
|
8
|
-
var queryGatedTransactions = commonWorkflow.defineQuery("GatedTransactionQuery");
|
|
9
|
-
var useGatedTransactionSignalLock = /* @__PURE__ */ YJF4D23A_cjs.__name((fn, getPassthrough) => {
|
|
10
|
-
const approvedIds = /* @__PURE__ */ new Set();
|
|
11
|
-
const approvedBundleNames = /* @__PURE__ */ new Set();
|
|
12
|
-
const pendingTransactions = {};
|
|
13
|
-
const sentTransactions = {};
|
|
14
|
-
const completedTransactions = {};
|
|
15
|
-
fn.setHandler(queryGatedTransactions, () => {
|
|
16
|
-
const passthroughWfIds = getPassthrough?.().map?.((handle) => handle.workflowId);
|
|
17
|
-
return {
|
|
18
|
-
pendingTransactions: Object.values(pendingTransactions),
|
|
19
|
-
sentTransactions: Object.values(sentTransactions),
|
|
20
|
-
completedTransactions: Object.values(completedTransactions),
|
|
21
|
-
passthroughWorkflowIds: passthroughWfIds ?? []
|
|
22
|
-
};
|
|
23
|
-
});
|
|
24
|
-
fn.setHandler(gatedTransactionGoSignal, async (id) => {
|
|
25
|
-
approvedIds.add(id);
|
|
26
|
-
const passthrough = getPassthrough?.();
|
|
27
|
-
if (passthrough) {
|
|
28
|
-
await Promise.allSettled(passthrough.map((wf) => {
|
|
29
|
-
return wf.signal(gatedTransactionGoSignal, [
|
|
30
|
-
id
|
|
31
|
-
]);
|
|
32
|
-
}));
|
|
33
|
-
}
|
|
34
|
-
});
|
|
35
|
-
const confirmationCallback = /* @__PURE__ */ YJF4D23A_cjs.__name(async (tx) => {
|
|
36
|
-
const id = _3SOQJCDG_cjs.getIdForGatedTransaction(tx);
|
|
37
|
-
pendingTransactions[id] = tx;
|
|
38
|
-
await fn.condition(() => approvedIds.has(id) || !!tx.bundleName && approvedBundleNames.has(tx.bundleName));
|
|
39
|
-
tx.bundleName && approvedBundleNames.add(tx.bundleName);
|
|
40
|
-
sentTransactions[id] = tx;
|
|
41
|
-
delete pendingTransactions[id];
|
|
42
|
-
return true;
|
|
43
|
-
}, "confirmationCallback");
|
|
44
|
-
const onResultCallback = /* @__PURE__ */ YJF4D23A_cjs.__name((result) => {
|
|
45
|
-
const id = _3SOQJCDG_cjs.getIdForGatedTransaction(result);
|
|
46
|
-
completedTransactions[id] = result;
|
|
47
|
-
delete sentTransactions[id];
|
|
48
|
-
}, "onResultCallback");
|
|
49
|
-
return {
|
|
50
|
-
confirmationCallback,
|
|
51
|
-
onResultCallback
|
|
52
|
-
};
|
|
53
|
-
}, "useGatedTransactionSignalLock");
|
|
54
|
-
|
|
55
|
-
exports.gatedTransactionGoSignal = gatedTransactionGoSignal;
|
|
56
|
-
exports.queryGatedTransactions = queryGatedTransactions;
|
|
57
|
-
exports.useGatedTransactionSignalLock = useGatedTransactionSignalLock;
|
|
58
|
-
//# sourceMappingURL=422FLJZW.cjs.map
|
|
59
|
-
//# sourceMappingURL=422FLJZW.cjs.map
|
package/dist/422FLJZW.cjs.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/gatedTransactionSignalLock.ts"],"names":["gatedTransactionGoSignal","defineSignal","queryGatedTransactions","defineQuery","useGatedTransactionSignalLock","__name","fn","getPassthrough","approvedIds","Set","approvedBundleNames","pendingTransactions","sentTransactions","completedTransactions","setHandler","passthroughWfIds","map","handle","workflowId","Object","values","passthroughWorkflowIds","id","add","passthrough","Promise","allSettled","wf","signal","confirmationCallback","tx","getIdForGatedTransaction","condition","has","bundleName","onResultCallback","result"],"mappings":";;;;;;AAkBO,IAAMA,wBAAAA,GACTC,4BAAuC,oBAAA;AACpC,IAAMC,sBAAAA,GACTC,2BAA0C,uBAAA;AAEvC,IAAMC,6BAAAA,mBAAgCC,mBAAA,CAAA,CACzCC,EAAAA,EACAC,cAAAA,KAAAA;AAEA,EAAA,MAAMC,WAAAA,uBAA2CC,GAAAA,EAAAA;AACjD,EAAA,MAAMC,mBAAAA,uBAAuCD,GAAAA,EAAAA;AAE7C,EAAA,MAAME,sBAAoE,EAAC;AAC3E,EAAA,MAAMC,mBAAiE,EAAC;AACxE,EAAA,MAAMC,wBAA8E,EAAC;AAErFP,EAAAA,EAAAA,CAAGQ,UAAAA,CAAWZ,wBAAwB,MAAA;AAClC,IAAA,MAAMa,mBAAmBR,cAAAA,IAAAA,CAAmBS,MAAM,CAACC,MAAAA,KAAWA,OAAOC,UAAU,CAAA;AAC/E,IAAA,OAAO;MACHP,mBAAAA,EAAqBQ,MAAAA,CAAOC,OAAOT,mBAAAA,CAAAA;MACnCC,gBAAAA,EAAkBO,MAAAA,CAAOC,OAAOR,gBAAAA,CAAAA;MAChCC,qBAAAA,EAAuBM,MAAAA,CAAOC,OAAOP,qBAAAA,CAAAA;AACrCQ,MAAAA,sBAAAA,EAAwBN,oBAAoB;AAChD,KAAA;EACJ,CAAA,CAAA;AAEAT,EAAAA,EAAAA,CAAGQ,UAAAA,CAAWd,wBAAAA,EAA0B,OAAOsB,EAAAA,KAAAA;AAC3Cd,IAAAA,WAAAA,CAAYe,IAAID,EAAAA,CAAAA;AAChB,IAAA,MAAME,cAAcjB,cAAAA,IAAAA;AACpB,IAAA,IAAIiB,WAAAA,EAAa;AACb,MAAA,MAAMC,OAAAA,CAAQC,UAAAA,CACVF,WAAAA,CAAYR,GAAAA,CAAI,CAACW,EAAAA,KAAAA;AACb,QAAA,OAAOA,EAAAA,CAAGC,OAAO5B,wBAAAA,EAA0B;AAACsB,UAAAA;AAAG,SAAA,CAAA;AACnD,MAAA,CAAA,CAAA,CAAA;AAER,IAAA;EACJ,CAAA,CAAA;AAEA,EAAA,MAAMO,oBAAAA,8CAAgFC,EAAAA,KAAAA;AAClF,IAAA,MAAMR,EAAAA,GAAKS,uCAAyBD,EAAAA,CAAAA;AACpCnB,IAAAA,mBAAAA,CAAoBW,EAAAA,CAAAA,GAAMQ,EAAAA;AAE1B,IAAA,MAAMxB,EAAAA,CAAG0B,SAAAA,CACL,MACIxB,WAAAA,CAAYyB,IAAIX,EAAAA,CAAAA,IAAQ,CAAC,CAACQ,GAAGI,UAAAA,IAAcxB,mBAAAA,CAAoBuB,GAAAA,CAAIH,EAAAA,CAAGI,UAAU,CAAA,CAAA;AAGxFJ,IAAAA,EAAAA,CAAGI,UAAAA,IAAcxB,mBAAAA,CAAoBa,GAAAA,CAAIO,EAAAA,CAAGI,UAAU,CAAA;AACtDtB,IAAAA,gBAAAA,CAAiBU,EAAAA,CAAAA,GAAMQ,EAAAA;AACvB,IAAA,OAAOnB,oBAAoBW,EAAAA,CAAAA;AAC3B,IAAA,OAAO,IAAA;EACX,CAAA,EAb+E,sBAAA,CAAA;AAe/E,EAAA,MAAMa,gBAAAA,wCAAkEC,MAAAA,KAAAA;AACpE,IAAA,MAAMd,EAAAA,GAAKS,uCAAyBK,MAAAA,CAAAA;AACpCvB,IAAAA,qBAAAA,CAAsBS,EAAAA,CAAAA,GAAMc,MAAAA;AAC5B,IAAA,OAAOxB,iBAAiBU,EAAAA,CAAAA;EAC5B,CAAA,EAJuE,kBAAA,CAAA;AAMvE,EAAA,OAAO;AAAEO,IAAAA,oBAAAA;AAAsBM,IAAAA;AAAiB,GAAA;AACpD,CAAA,EAvD6C,+BAAA","file":"422FLJZW.cjs","sourcesContent":["import type { WorkflowFunctions, WorkflowHandle } from '@layerzerolabs/common-workflow';\nimport { defineQuery, defineSignal } from '@layerzerolabs/common-workflow';\n\nimport { getIdForGatedTransaction } from './gatedTx';\nimport type {\n GatedTransaction,\n GatedTransactionId,\n ResolvedGatedTransaction,\n UserInteractionCallbacks,\n} from './types';\n\nexport type QueryGatedTransactionsResult = {\n pendingTransactions: GatedTransaction[];\n sentTransactions: GatedTransaction[];\n completedTransactions: ResolvedGatedTransaction[];\n passthroughWorkflowIds: string[];\n};\n\nexport const gatedTransactionGoSignal =\n defineSignal<[id: GatedTransactionId]>('GatedTransactionGo');\nexport const queryGatedTransactions =\n defineQuery<QueryGatedTransactionsResult>('GatedTransactionQuery');\n\nexport const useGatedTransactionSignalLock = (\n fn: WorkflowFunctions,\n getPassthrough?: () => WorkflowHandle<any>[],\n): UserInteractionCallbacks => {\n const approvedIds: Set<GatedTransactionId> = new Set();\n const approvedBundleNames: Set<string> = new Set();\n\n const pendingTransactions: Record<GatedTransactionId, GatedTransaction> = {};\n const sentTransactions: Record<GatedTransactionId, GatedTransaction> = {};\n const completedTransactions: Record<GatedTransactionId, ResolvedGatedTransaction> = {};\n\n fn.setHandler(queryGatedTransactions, () => {\n const passthroughWfIds = getPassthrough?.().map?.((handle) => handle.workflowId);\n return {\n pendingTransactions: Object.values(pendingTransactions),\n sentTransactions: Object.values(sentTransactions),\n completedTransactions: Object.values(completedTransactions),\n passthroughWorkflowIds: passthroughWfIds ?? [],\n };\n });\n\n fn.setHandler(gatedTransactionGoSignal, async (id) => {\n approvedIds.add(id);\n const passthrough = getPassthrough?.();\n if (passthrough) {\n await Promise.allSettled(\n passthrough.map((wf) => {\n return wf.signal(gatedTransactionGoSignal, [id]);\n }),\n );\n }\n });\n\n const confirmationCallback: UserInteractionCallbacks['confirmationCallback'] = async (tx) => {\n const id = getIdForGatedTransaction(tx);\n pendingTransactions[id] = tx;\n\n await fn.condition(\n () =>\n approvedIds.has(id) || (!!tx.bundleName && approvedBundleNames.has(tx.bundleName)),\n );\n\n tx.bundleName && approvedBundleNames.add(tx.bundleName);\n sentTransactions[id] = tx;\n delete pendingTransactions[id];\n return true;\n };\n\n const onResultCallback: UserInteractionCallbacks['onResultCallback'] = (result) => {\n const id = getIdForGatedTransaction(result);\n completedTransactions[id] = result;\n delete sentTransactions[id];\n };\n\n return { confirmationCallback, onResultCallback };\n};\n"]}
|
package/dist/TLPNG7S6.js
DELETED
|
@@ -1,55 +0,0 @@
|
|
|
1
|
-
import { getIdForGatedTransaction } from './WWHK47IY.js';
|
|
2
|
-
import { __name } from './VUOMXK5T.js';
|
|
3
|
-
import { defineSignal, defineQuery } from '@layerzerolabs/common-workflow';
|
|
4
|
-
|
|
5
|
-
var gatedTransactionGoSignal = defineSignal("GatedTransactionGo");
|
|
6
|
-
var queryGatedTransactions = defineQuery("GatedTransactionQuery");
|
|
7
|
-
var useGatedTransactionSignalLock = /* @__PURE__ */ __name((fn, getPassthrough) => {
|
|
8
|
-
const approvedIds = /* @__PURE__ */ new Set();
|
|
9
|
-
const approvedBundleNames = /* @__PURE__ */ new Set();
|
|
10
|
-
const pendingTransactions = {};
|
|
11
|
-
const sentTransactions = {};
|
|
12
|
-
const completedTransactions = {};
|
|
13
|
-
fn.setHandler(queryGatedTransactions, () => {
|
|
14
|
-
const passthroughWfIds = getPassthrough?.().map?.((handle) => handle.workflowId);
|
|
15
|
-
return {
|
|
16
|
-
pendingTransactions: Object.values(pendingTransactions),
|
|
17
|
-
sentTransactions: Object.values(sentTransactions),
|
|
18
|
-
completedTransactions: Object.values(completedTransactions),
|
|
19
|
-
passthroughWorkflowIds: passthroughWfIds ?? []
|
|
20
|
-
};
|
|
21
|
-
});
|
|
22
|
-
fn.setHandler(gatedTransactionGoSignal, async (id) => {
|
|
23
|
-
approvedIds.add(id);
|
|
24
|
-
const passthrough = getPassthrough?.();
|
|
25
|
-
if (passthrough) {
|
|
26
|
-
await Promise.allSettled(passthrough.map((wf) => {
|
|
27
|
-
return wf.signal(gatedTransactionGoSignal, [
|
|
28
|
-
id
|
|
29
|
-
]);
|
|
30
|
-
}));
|
|
31
|
-
}
|
|
32
|
-
});
|
|
33
|
-
const confirmationCallback = /* @__PURE__ */ __name(async (tx) => {
|
|
34
|
-
const id = getIdForGatedTransaction(tx);
|
|
35
|
-
pendingTransactions[id] = tx;
|
|
36
|
-
await fn.condition(() => approvedIds.has(id) || !!tx.bundleName && approvedBundleNames.has(tx.bundleName));
|
|
37
|
-
tx.bundleName && approvedBundleNames.add(tx.bundleName);
|
|
38
|
-
sentTransactions[id] = tx;
|
|
39
|
-
delete pendingTransactions[id];
|
|
40
|
-
return true;
|
|
41
|
-
}, "confirmationCallback");
|
|
42
|
-
const onResultCallback = /* @__PURE__ */ __name((result) => {
|
|
43
|
-
const id = getIdForGatedTransaction(result);
|
|
44
|
-
completedTransactions[id] = result;
|
|
45
|
-
delete sentTransactions[id];
|
|
46
|
-
}, "onResultCallback");
|
|
47
|
-
return {
|
|
48
|
-
confirmationCallback,
|
|
49
|
-
onResultCallback
|
|
50
|
-
};
|
|
51
|
-
}, "useGatedTransactionSignalLock");
|
|
52
|
-
|
|
53
|
-
export { gatedTransactionGoSignal, queryGatedTransactions, useGatedTransactionSignalLock };
|
|
54
|
-
//# sourceMappingURL=TLPNG7S6.js.map
|
|
55
|
-
//# sourceMappingURL=TLPNG7S6.js.map
|
package/dist/TLPNG7S6.js.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/gatedTransactionSignalLock.ts"],"names":["gatedTransactionGoSignal","defineSignal","queryGatedTransactions","defineQuery","useGatedTransactionSignalLock","fn","getPassthrough","approvedIds","Set","approvedBundleNames","pendingTransactions","sentTransactions","completedTransactions","setHandler","passthroughWfIds","map","handle","workflowId","Object","values","passthroughWorkflowIds","id","add","passthrough","Promise","allSettled","wf","signal","confirmationCallback","tx","getIdForGatedTransaction","condition","has","bundleName","onResultCallback","result"],"mappings":";;;;AAkBO,IAAMA,wBAAAA,GACTC,aAAuC,oBAAA;AACpC,IAAMC,sBAAAA,GACTC,YAA0C,uBAAA;AAEvC,IAAMC,6BAAAA,mBAAgC,MAAA,CAAA,CACzCC,EAAAA,EACAC,cAAAA,KAAAA;AAEA,EAAA,MAAMC,WAAAA,uBAA2CC,GAAAA,EAAAA;AACjD,EAAA,MAAMC,mBAAAA,uBAAuCD,GAAAA,EAAAA;AAE7C,EAAA,MAAME,sBAAoE,EAAC;AAC3E,EAAA,MAAMC,mBAAiE,EAAC;AACxE,EAAA,MAAMC,wBAA8E,EAAC;AAErFP,EAAAA,EAAAA,CAAGQ,UAAAA,CAAWX,wBAAwB,MAAA;AAClC,IAAA,MAAMY,mBAAmBR,cAAAA,IAAAA,CAAmBS,MAAM,CAACC,MAAAA,KAAWA,OAAOC,UAAU,CAAA;AAC/E,IAAA,OAAO;MACHP,mBAAAA,EAAqBQ,MAAAA,CAAOC,OAAOT,mBAAAA,CAAAA;MACnCC,gBAAAA,EAAkBO,MAAAA,CAAOC,OAAOR,gBAAAA,CAAAA;MAChCC,qBAAAA,EAAuBM,MAAAA,CAAOC,OAAOP,qBAAAA,CAAAA;AACrCQ,MAAAA,sBAAAA,EAAwBN,oBAAoB;AAChD,KAAA;EACJ,CAAA,CAAA;AAEAT,EAAAA,EAAAA,CAAGQ,UAAAA,CAAWb,wBAAAA,EAA0B,OAAOqB,EAAAA,KAAAA;AAC3Cd,IAAAA,WAAAA,CAAYe,IAAID,EAAAA,CAAAA;AAChB,IAAA,MAAME,cAAcjB,cAAAA,IAAAA;AACpB,IAAA,IAAIiB,WAAAA,EAAa;AACb,MAAA,MAAMC,OAAAA,CAAQC,UAAAA,CACVF,WAAAA,CAAYR,GAAAA,CAAI,CAACW,EAAAA,KAAAA;AACb,QAAA,OAAOA,EAAAA,CAAGC,OAAO3B,wBAAAA,EAA0B;AAACqB,UAAAA;AAAG,SAAA,CAAA;AACnD,MAAA,CAAA,CAAA,CAAA;AAER,IAAA;EACJ,CAAA,CAAA;AAEA,EAAA,MAAMO,oBAAAA,iCAAgFC,EAAAA,KAAAA;AAClF,IAAA,MAAMR,EAAAA,GAAKS,yBAAyBD,EAAAA,CAAAA;AACpCnB,IAAAA,mBAAAA,CAAoBW,EAAAA,CAAAA,GAAMQ,EAAAA;AAE1B,IAAA,MAAMxB,EAAAA,CAAG0B,SAAAA,CACL,MACIxB,WAAAA,CAAYyB,IAAIX,EAAAA,CAAAA,IAAQ,CAAC,CAACQ,GAAGI,UAAAA,IAAcxB,mBAAAA,CAAoBuB,GAAAA,CAAIH,EAAAA,CAAGI,UAAU,CAAA,CAAA;AAGxFJ,IAAAA,EAAAA,CAAGI,UAAAA,IAAcxB,mBAAAA,CAAoBa,GAAAA,CAAIO,EAAAA,CAAGI,UAAU,CAAA;AACtDtB,IAAAA,gBAAAA,CAAiBU,EAAAA,CAAAA,GAAMQ,EAAAA;AACvB,IAAA,OAAOnB,oBAAoBW,EAAAA,CAAAA;AAC3B,IAAA,OAAO,IAAA;EACX,CAAA,EAb+E,sBAAA,CAAA;AAe/E,EAAA,MAAMa,gBAAAA,2BAAkEC,MAAAA,KAAAA;AACpE,IAAA,MAAMd,EAAAA,GAAKS,yBAAyBK,MAAAA,CAAAA;AACpCvB,IAAAA,qBAAAA,CAAsBS,EAAAA,CAAAA,GAAMc,MAAAA;AAC5B,IAAA,OAAOxB,iBAAiBU,EAAAA,CAAAA;EAC5B,CAAA,EAJuE,kBAAA,CAAA;AAMvE,EAAA,OAAO;AAAEO,IAAAA,oBAAAA;AAAsBM,IAAAA;AAAiB,GAAA;AACpD,CAAA,EAvD6C,+BAAA","file":"TLPNG7S6.js","sourcesContent":["import type { WorkflowFunctions, WorkflowHandle } from '@layerzerolabs/common-workflow';\nimport { defineQuery, defineSignal } from '@layerzerolabs/common-workflow';\n\nimport { getIdForGatedTransaction } from './gatedTx';\nimport type {\n GatedTransaction,\n GatedTransactionId,\n ResolvedGatedTransaction,\n UserInteractionCallbacks,\n} from './types';\n\nexport type QueryGatedTransactionsResult = {\n pendingTransactions: GatedTransaction[];\n sentTransactions: GatedTransaction[];\n completedTransactions: ResolvedGatedTransaction[];\n passthroughWorkflowIds: string[];\n};\n\nexport const gatedTransactionGoSignal =\n defineSignal<[id: GatedTransactionId]>('GatedTransactionGo');\nexport const queryGatedTransactions =\n defineQuery<QueryGatedTransactionsResult>('GatedTransactionQuery');\n\nexport const useGatedTransactionSignalLock = (\n fn: WorkflowFunctions,\n getPassthrough?: () => WorkflowHandle<any>[],\n): UserInteractionCallbacks => {\n const approvedIds: Set<GatedTransactionId> = new Set();\n const approvedBundleNames: Set<string> = new Set();\n\n const pendingTransactions: Record<GatedTransactionId, GatedTransaction> = {};\n const sentTransactions: Record<GatedTransactionId, GatedTransaction> = {};\n const completedTransactions: Record<GatedTransactionId, ResolvedGatedTransaction> = {};\n\n fn.setHandler(queryGatedTransactions, () => {\n const passthroughWfIds = getPassthrough?.().map?.((handle) => handle.workflowId);\n return {\n pendingTransactions: Object.values(pendingTransactions),\n sentTransactions: Object.values(sentTransactions),\n completedTransactions: Object.values(completedTransactions),\n passthroughWorkflowIds: passthroughWfIds ?? [],\n };\n });\n\n fn.setHandler(gatedTransactionGoSignal, async (id) => {\n approvedIds.add(id);\n const passthrough = getPassthrough?.();\n if (passthrough) {\n await Promise.allSettled(\n passthrough.map((wf) => {\n return wf.signal(gatedTransactionGoSignal, [id]);\n }),\n );\n }\n });\n\n const confirmationCallback: UserInteractionCallbacks['confirmationCallback'] = async (tx) => {\n const id = getIdForGatedTransaction(tx);\n pendingTransactions[id] = tx;\n\n await fn.condition(\n () =>\n approvedIds.has(id) || (!!tx.bundleName && approvedBundleNames.has(tx.bundleName)),\n );\n\n tx.bundleName && approvedBundleNames.add(tx.bundleName);\n sentTransactions[id] = tx;\n delete pendingTransactions[id];\n return true;\n };\n\n const onResultCallback: UserInteractionCallbacks['onResultCallback'] = (result) => {\n const id = getIdForGatedTransaction(result);\n completedTransactions[id] = result;\n delete sentTransactions[id];\n };\n\n return { confirmationCallback, onResultCallback };\n};\n"]}
|