@layerzerolabs/gated-transaction 0.0.53 → 0.0.56

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.
Files changed (44) hide show
  1. package/.turbo/turbo-build.log +31 -31
  2. package/.turbo/turbo-test.log +3 -67
  3. package/dist/{VID3ZZ5G.cjs → CZKVKTL4.cjs} +5 -5
  4. package/dist/{VID3ZZ5G.cjs.map → CZKVKTL4.cjs.map} +1 -1
  5. package/dist/{36XFV4BM.cjs → EJKFKEMV.cjs} +2 -2
  6. package/dist/{36XFV4BM.cjs.map → EJKFKEMV.cjs.map} +1 -1
  7. package/dist/{5YTIURD3.js → JMMYK2SL.js} +3 -3
  8. package/dist/{5YTIURD3.js.map → JMMYK2SL.js.map} +1 -1
  9. package/dist/{CTI3YHKW.js → ONVFWJXG.js} +14 -12
  10. package/dist/ONVFWJXG.js.map +1 -0
  11. package/dist/{44CZPU6S.cjs → UVQ5QQ4U.cjs} +17 -6
  12. package/dist/UVQ5QQ4U.cjs.map +1 -0
  13. package/dist/{CKYPLVJX.js → VH2LMV2W.js} +16 -6
  14. package/dist/VH2LMV2W.js.map +1 -0
  15. package/dist/{O2UH7G3V.js → WNYV5NIT.js} +2 -2
  16. package/dist/{O2UH7G3V.js.map → WNYV5NIT.js.map} +1 -1
  17. package/dist/{7MSI3YMN.cjs → XROB6QHI.cjs} +29 -27
  18. package/dist/XROB6QHI.cjs.map +1 -0
  19. package/dist/gatedTransactionSignalLock.cjs +5 -5
  20. package/dist/gatedTransactionSignalLock.js +2 -2
  21. package/dist/gatedTx.cjs +4 -4
  22. package/dist/gatedTx.d.ts +3 -3
  23. package/dist/gatedTx.d.ts.map +1 -1
  24. package/dist/gatedTx.js +1 -1
  25. package/dist/index.cjs +25 -21
  26. package/dist/index.js +4 -4
  27. package/dist/resolver.cjs +5 -5
  28. package/dist/resolver.d.ts +5 -2
  29. package/dist/resolver.d.ts.map +1 -1
  30. package/dist/resolver.js +3 -3
  31. package/dist/schemata.cjs +14 -10
  32. package/dist/schemata.d.ts +10 -1
  33. package/dist/schemata.d.ts.map +1 -1
  34. package/dist/schemata.js +1 -1
  35. package/package.json +10 -9
  36. package/src/gatedTx.ts +6 -4
  37. package/src/resolver.ts +12 -3
  38. package/src/schemata.ts +43 -4
  39. package/test/resolver.test.ts +21 -0
  40. package/.turbo/turbo-checkdeps.log +0 -8
  41. package/dist/44CZPU6S.cjs.map +0 -1
  42. package/dist/7MSI3YMN.cjs.map +0 -1
  43. package/dist/CKYPLVJX.js.map +0 -1
  44. package/dist/CTI3YHKW.js.map +0 -1
@@ -10,45 +10,45 @@
10
10
  CLI Cleaning output folder
11
11
  CJS Build start
12
12
  ESM Build start
13
+ CJS dist/gatedTx.cjs 652.00 B
13
14
  CJS dist/gatedTransactionSignalLock.cjs 697.00 B
14
- CJS dist/gatedTx.cjs 656.00 B
15
- CJS dist/resolver.cjs 549.00 B
16
- CJS dist/36XFV4BM.cjs 1.08 KB
17
- CJS dist/VID3ZZ5G.cjs 3.79 KB
18
- CJS dist/index.cjs 2.84 KB
19
- CJS dist/schemata.cjs 1.46 KB
20
- CJS dist/7MSI3YMN.cjs 9.63 KB
21
- CJS dist/44CZPU6S.cjs 4.20 KB
15
+ CJS dist/index.cjs 3.01 KB
16
+ CJS dist/resolver.cjs 546.00 B
17
+ CJS dist/CZKVKTL4.cjs 3.78 KB
18
+ CJS dist/EJKFKEMV.cjs 1.08 KB
19
+ CJS dist/schemata.cjs 1.63 KB
20
+ CJS dist/XROB6QHI.cjs 9.67 KB
21
+ CJS dist/UVQ5QQ4U.cjs 4.70 KB
22
22
  CJS dist/YJF4D23A.cjs 245.00 B
23
23
  CJS dist/gatedTx.cjs.map 72.00 B
24
+ CJS dist/index.cjs.map 70.00 B
24
25
  CJS dist/resolver.cjs.map 73.00 B
25
- CJS dist/36XFV4BM.cjs.map 4.29 KB
26
- CJS dist/VID3ZZ5G.cjs.map 8.89 KB
27
- CJS dist/gatedTransactionSignalLock.cjs.map 91.00 B
28
26
  CJS dist/schemata.cjs.map 73.00 B
29
- CJS dist/index.cjs.map 70.00 B
27
+ CJS dist/CZKVKTL4.cjs.map 8.89 KB
28
+ CJS dist/EJKFKEMV.cjs.map 4.35 KB
29
+ CJS dist/gatedTransactionSignalLock.cjs.map 91.00 B
30
+ CJS dist/XROB6QHI.cjs.map 24.92 KB
31
+ CJS dist/UVQ5QQ4U.cjs.map 17.32 KB
30
32
  CJS dist/YJF4D23A.cjs.map 73.00 B
31
- CJS dist/7MSI3YMN.cjs.map 24.61 KB
32
- CJS dist/44CZPU6S.cjs.map 15.38 KB
33
- CJS ⚡️ Build success in 219ms
34
- ESM dist/gatedTx.js 218.00 B
35
- ESM dist/index.js 702.00 B
33
+ CJS ⚡️ Build success in 281ms
36
34
  ESM dist/gatedTransactionSignalLock.js 270.00 B
37
- ESM dist/5YTIURD3.js 3.56 KB
38
- ESM dist/resolver.js 238.00 B
39
- ESM dist/O2UH7G3V.js 935.00 B
40
- ESM dist/schemata.js 379.00 B
41
- ESM dist/CTI3YHKW.js 9.08 KB
42
- ESM dist/CKYPLVJX.js 3.16 KB
35
+ ESM dist/gatedTx.js 218.00 B
36
+ ESM dist/index.js 745.00 B
37
+ ESM dist/JMMYK2SL.js 3.56 KB
38
+ ESM dist/WNYV5NIT.js 935.00 B
39
+ ESM dist/schemata.js 422.00 B
40
+ ESM dist/ONVFWJXG.js 9.13 KB
41
+ ESM dist/VH2LMV2W.js 3.55 KB
43
42
  ESM dist/VUOMXK5T.js 222.00 B
43
+ ESM dist/resolver.js 238.00 B
44
+ ESM dist/gatedTransactionSignalLock.js.map 90.00 B
44
45
  ESM dist/index.js.map 69.00 B
45
46
  ESM dist/gatedTx.js.map 71.00 B
46
- ESM dist/gatedTransactionSignalLock.js.map 90.00 B
47
- ESM dist/5YTIURD3.js.map 8.87 KB
48
- ESM dist/resolver.js.map 72.00 B
49
- ESM dist/O2UH7G3V.js.map 4.28 KB
50
- ESM dist/schemata.js.map 72.00 B
51
- ESM dist/CKYPLVJX.js.map 15.31 KB
52
- ESM dist/CTI3YHKW.js.map 24.58 KB
47
+ ESM dist/JMMYK2SL.js.map 8.87 KB
48
+ ESM dist/WNYV5NIT.js.map 4.35 KB
49
+ ESM dist/ONVFWJXG.js.map 24.89 KB
50
+ ESM dist/VH2LMV2W.js.map 17.24 KB
53
51
  ESM dist/VUOMXK5T.js.map 72.00 B
54
- ESM ⚡️ Build success in 220ms
52
+ ESM dist/schemata.js.map 72.00 B
53
+ ESM dist/resolver.js.map 72.00 B
54
+ ESM ⚡️ Build success in 282ms
@@ -7,75 +7,11 @@ Breaking changes might not follow SemVer, please pin Vitest's version when using
7
7
 
8
8
   RUN  v3.2.3 /home/runner/work/monorepo-internal/monorepo-internal/packages/gated-transaction
9
9
 
10
- stderr | test/resolver.test.ts > resolveGatedTransactions - dependency and edge cases > internal dependency TRANSACTION_FAILED causes dependent DEPENDENCY_FAILED
11
- Gated transaction failed Error: failed to submit
12
- at /home/runner/work/monorepo-internal/monorepo-internal/packages/gated-transaction/test/resolver.test.ts:121:19
13
- at mockCall (file:///home/runner/work/monorepo-internal/monorepo-internal/node_modules/.pnpm/@vitest+spy@3.2.3/node_modules/@vitest/spy/dist/index.js:89:15)
14
- at spy (file:///home/runner/work/monorepo-internal/monorepo-internal/node_modules/.pnpm/tinyspy@4.0.3/node_modules/tinyspy/dist/index.js:47:103)
15
- at resolveGatedTransaction (/home/runner/work/monorepo-internal/monorepo-internal/packages/gated-transaction/src/resolver.ts:249:37)
16
- at /home/runner/work/monorepo-internal/monorepo-internal/packages/gated-transaction/src/resolver.ts:372:63
17
- at async Promise.all (index 0)
18
- at resolveGatedTransactions (/home/runner/work/monorepo-internal/monorepo-internal/packages/gated-transaction/src/resolver.ts:403:12)
19
- at /home/runner/work/monorepo-internal/monorepo-internal/packages/gated-transaction/test/resolver.test.ts:127:30
20
- at file:///home/runner/work/monorepo-internal/monorepo-internal/node_modules/.pnpm/@vitest+runner@3.2.3/node_modules/@vitest/runner/dist/chunk-hooks.js:752:20
21
-
22
- stderr | test/resolver.test.ts > resolveGatedTransactions - dependency and edge cases > internal dependency TRANSACTION_FAILED causes dependent DEPENDENCY_FAILED
23
- Some dependencies of gated transaction B failed: {
24
- "A-test-chain-name:A": {
25
- "resolved": {
26
- "name": "A",
27
- "chainName": "test-chain",
28
- "check": {
29
- "functionPointer": "checkA",
30
- "params": [],
31
- "expectedResult": {
32
- "operator": "=",
33
- "comparisonValue": true
34
- }
35
- },
36
- "dependencies": [],
37
- "uniqueIdKeys": {
38
- "name": "A"
39
- },
40
- "result": {
41
- "status": "transaction_failed",
42
- "transactionError": {}
43
- }
44
- },
45
- "checkResult": {
46
- "expectationMet": false,
47
- "onChainData": false
48
- }
49
- }
50
- }
51
-
52
- stderr | test/resolver.test.ts > resolveGatedTransactions - dependency and edge cases > external dependency unsatisfied by precheck causes dependent DEPENDENCY_FAILED
53
- Some dependencies of gated transaction B failed: {
54
- "Ext-test-chain-name:Ext": {
55
- "checkResult": {
56
- "expectationMet": false,
57
- "onChainData": false
58
- }
59
- }
60
- }
61
-
62
- stderr | test/resolver.test.ts > resolveGatedTransactions - functional transactions > functional getTransactionPointer error yields TRANSACTION_FAILED
63
- Gated transaction failed Error: build failed
64
- at Object.final (/home/runner/work/monorepo-internal/monorepo-internal/packages/gated-transaction/test/resolver.test.ts:368:27)
65
- at Object.callByPointer (/home/runner/work/monorepo-internal/monorepo-internal/packages/gated-transaction/test/resolver.test.ts:25:41)
66
- at extractGatedTransactionUnderlyingTransaction (/home/runner/work/monorepo-internal/monorepo-internal/packages/gated-transaction/src/resolver.ts:119:29)
67
- at resolveGatedTransaction (/home/runner/work/monorepo-internal/monorepo-internal/packages/gated-transaction/src/resolver.ts:244:34)
68
- at /home/runner/work/monorepo-internal/monorepo-internal/packages/gated-transaction/src/resolver.ts:372:63
69
- at async Promise.all (index 0)
70
- at resolveGatedTransactions (/home/runner/work/monorepo-internal/monorepo-internal/packages/gated-transaction/src/resolver.ts:403:12)
71
- at /home/runner/work/monorepo-internal/monorepo-internal/packages/gated-transaction/test/resolver.test.ts:394:23
72
- at file:///home/runner/work/monorepo-internal/monorepo-internal/node_modules/.pnpm/@vitest+runner@3.2.3/node_modules/@vitest/runner/dist/chunk-hooks.js:752:20
73
-
74
- ✓ test/resolver.test.ts (10 tests) 423ms
10
+ ✓ test/resolver.test.ts (10 tests) 418ms
75
11
 
76
12
   Test Files  1 passed (1)
77
13
   Tests  10 passed (10)
78
14
  Type Errors  no errors
79
-  Start at  22:49:38
80
-  Duration  1.32s (transform 152ms, setup 0ms, collect 239ms, tests 423ms, environment 0ms, prepare 97ms)
15
+  Start at  19:42:18
16
+  Duration  1.16s (transform 129ms, setup 0ms, collect 175ms, tests 418ms, environment 0ms, prepare 151ms)
81
17
 
@@ -1,6 +1,6 @@
1
1
  'use strict';
2
2
 
3
- var _36XFV4BM_cjs = require('./36XFV4BM.cjs');
3
+ var EJKFKEMV_cjs = require('./EJKFKEMV.cjs');
4
4
  var YJF4D23A_cjs = require('./YJF4D23A.cjs');
5
5
  var commonWorkflow = require('@layerzerolabs/common-workflow');
6
6
 
@@ -74,7 +74,7 @@ var useGatedTransactionSignalLock = /* @__PURE__ */ YJF4D23A_cjs.__name((fn, opt
74
74
  });
75
75
  });
76
76
  const confirmationCallback = /* @__PURE__ */ YJF4D23A_cjs.__name(async (tx) => {
77
- const id = _36XFV4BM_cjs.getIdForGatedTransaction(tx);
77
+ const id = EJKFKEMV_cjs.getIdForGatedTransaction(tx);
78
78
  pendingTransactions[id] = tx;
79
79
  await fn.condition(() => {
80
80
  if (options.forceSend) {
@@ -87,7 +87,7 @@ var useGatedTransactionSignalLock = /* @__PURE__ */ YJF4D23A_cjs.__name((fn, opt
87
87
  return true;
88
88
  }, "confirmationCallback");
89
89
  const onResultCallback = /* @__PURE__ */ YJF4D23A_cjs.__name((result) => {
90
- const id = _36XFV4BM_cjs.getIdForGatedTransaction(result);
90
+ const id = EJKFKEMV_cjs.getIdForGatedTransaction(result);
91
91
  completedTransactions[id] = result;
92
92
  delete sentTransactions[id];
93
93
  }, "onResultCallback");
@@ -103,5 +103,5 @@ var useGatedTransactionSignalLock = /* @__PURE__ */ YJF4D23A_cjs.__name((fn, opt
103
103
  exports.gatedTransactionGoSignal = gatedTransactionGoSignal;
104
104
  exports.queryGatedTransactions = queryGatedTransactions;
105
105
  exports.useGatedTransactionSignalLock = useGatedTransactionSignalLock;
106
- //# sourceMappingURL=VID3ZZ5G.cjs.map
107
- //# sourceMappingURL=VID3ZZ5G.cjs.map
106
+ //# sourceMappingURL=CZKVKTL4.cjs.map
107
+ //# sourceMappingURL=CZKVKTL4.cjs.map
@@ -1 +1 @@
1
- {"version":3,"sources":["../src/gatedTransactionSignalLock.ts"],"names":["gatedTransactionGoSignal","defineSignal","gatedTransactionGoSignalInternal","queryGatedTransactions","defineQuery","useGatedTransactionSignalLock","__name","fn","options","forceSend","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":"VID3ZZ5G.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 './schemata';\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 options: { forceSend: boolean } = { forceSend: false },\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 if (options.forceSend) {\n return true;\n }\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
+ {"version":3,"sources":["../src/gatedTransactionSignalLock.ts"],"names":["gatedTransactionGoSignal","defineSignal","gatedTransactionGoSignalInternal","queryGatedTransactions","defineQuery","useGatedTransactionSignalLock","__name","fn","options","forceSend","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":"CZKVKTL4.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 './schemata';\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 options: { forceSend: boolean } = { forceSend: false },\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 if (options.forceSend) {\n return true;\n }\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"]}
@@ -25,5 +25,5 @@ var getIdForGatedTransaction = /* @__PURE__ */ YJF4D23A_cjs.__name((gtx) => {
25
25
  exports.constructGatedTransaction = constructGatedTransaction;
26
26
  exports.constructGatedTransactionFromPointer = constructGatedTransactionFromPointer;
27
27
  exports.getIdForGatedTransaction = getIdForGatedTransaction;
28
- //# sourceMappingURL=36XFV4BM.cjs.map
29
- //# sourceMappingURL=36XFV4BM.cjs.map
28
+ //# sourceMappingURL=EJKFKEMV.cjs.map
29
+ //# sourceMappingURL=EJKFKEMV.cjs.map
@@ -1 +1 @@
1
- {"version":3,"sources":["../src/gatedTx.ts"],"names":["constructGatedTransaction","gtx","dependencies","transactionType","constructGatedTransactionFromPointer","getIdForGatedTransaction","serializedUniqueIdKeys","uniqueIdKeys","Object","entries","map","k","v","join","name","chainName"],"mappings":";;;;;AAeO,IAAMA,yBAAAA,wCAKXC,GAAAA,KAAAA;AAsBE,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,EA7ByC,2BAAA;AA2ClC,IAAME,oCAAAA,wCAKXH,GAAAA,KAAAA;AAyBE,EAAA,OAAO;IACH,GAAGA,GAAAA;IACHE,eAAAA,EAAiB;AACrB,GAAA;AACJ,CAAA,EAlCoD,sCAAA;AAoC7C,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","file":"36XFV4BM.cjs","sourcesContent":["import type { Transaction } from '@layerzerolabs/common-chain-model';\nimport type { FunctionPointer } from '@layerzerolabs/common-utils';\n\nimport type {\n BaseGatedTransaction,\n GatedTransaction,\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 };\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 readonly ResolvedGatedTransaction[]> = Params extends []\n ? []\n : Params extends readonly [\n ResolvedGatedTransaction<infer Gtx>,\n ...infer Rest extends readonly ResolvedGatedTransaction[],\n ]\n ? [Gtx, ...BuildDeps<readonly [...Rest]>]\n : Params;\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 retryable?: boolean;\n };\n };\n check: {\n functionPointer: FunctionPointer<Method>;\n params: Parameters<Method>;\n expectedResult: OnChainDataComparison<Awaited<ReturnType<Method>>>;\n };\n uniqueIdKeys?: Record<string, string | number | boolean>;\n cacheable?: boolean;\n dependencies: BuildDeps<Parameters<DepMethod>[0]>;\n getTransaction: {\n functionPointer: FunctionPointer<DepMethod>;\n params: Parameters<DepMethod> extends [any, ...infer Tail] ? Tail : [];\n };\n}): GatedTransaction<Name, TxType, Method, DepMethod, BuildDeps<Parameters<DepMethod>[0]>> => {\n return {\n ...gtx,\n transactionType: 'functional',\n };\n};\n\nexport const getIdForGatedTransaction = (gtx: BaseGatedTransaction): GatedTransactionId => {\n const serializedUniqueIdKeys = gtx.uniqueIdKeys\n ? Object.entries(gtx.uniqueIdKeys)\n .map(([k, v]) => `${k}:${v}`)\n .join('-')\n : '';\n\n return `${gtx.name}-${gtx.chainName}-${serializedUniqueIdKeys}`;\n};\n"]}
1
+ {"version":3,"sources":["../src/gatedTx.ts"],"names":["constructGatedTransaction","gtx","dependencies","transactionType","constructGatedTransactionFromPointer","getIdForGatedTransaction","serializedUniqueIdKeys","uniqueIdKeys","Object","entries","map","k","v","join","name","chainName"],"mappings":";;;;;AAeO,IAAMA,yBAAAA,wCAKXC,GAAAA,KAAAA;AAsBE,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,EA7ByC,2BAAA;AA6ClC,IAAME,oCAAAA,wCAKXH,GAAAA,KAAAA;AAyBE,EAAA,OAAO;IACH,GAAGA,GAAAA;IACHE,eAAAA,EAAiB;AACrB,GAAA;AACJ,CAAA,EAlCoD,sCAAA;AAoC7C,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","file":"EJKFKEMV.cjs","sourcesContent":["import type { Transaction } from '@layerzerolabs/common-chain-model';\nimport type { FunctionPointer } from '@layerzerolabs/common-utils';\n\nimport type {\n BaseGatedTransaction,\n GatedTransaction,\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 };\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 retryable?: boolean;\n };\n };\n check: {\n functionPointer: FunctionPointer<Method>;\n params: Parameters<Method>;\n expectedResult: OnChainDataComparison<Awaited<ReturnType<Method>>>;\n };\n uniqueIdKeys?: Record<string, string | number | boolean>;\n cacheable?: boolean;\n dependencies: BuildDeps<Parameters<DepMethod>[0]>;\n getTransaction: {\n functionPointer: FunctionPointer<DepMethod>;\n params: Parameters<DepMethod> extends [any, ...infer Tail] ? Tail : [];\n };\n}): GatedTransaction<Name, TxType, Method, DepMethod, BuildDeps<Parameters<DepMethod>[0]>> => {\n return {\n ...gtx,\n transactionType: 'functional',\n };\n};\n\nexport const getIdForGatedTransaction = (gtx: BaseGatedTransaction): GatedTransactionId => {\n const serializedUniqueIdKeys = gtx.uniqueIdKeys\n ? Object.entries(gtx.uniqueIdKeys)\n .map(([k, v]) => `${k}:${v}`)\n .join('-')\n : '';\n\n return `${gtx.name}-${gtx.chainName}-${serializedUniqueIdKeys}`;\n};\n"]}
@@ -1,4 +1,4 @@
1
- import { getIdForGatedTransaction } from './O2UH7G3V.js';
1
+ import { getIdForGatedTransaction } from './WNYV5NIT.js';
2
2
  import { __name } from './VUOMXK5T.js';
3
3
  import { defineSignal, defineQuery } from '@layerzerolabs/common-workflow';
4
4
 
@@ -99,5 +99,5 @@ var useGatedTransactionSignalLock = /* @__PURE__ */ __name((fn, options = {
99
99
  }, "useGatedTransactionSignalLock");
100
100
 
101
101
  export { gatedTransactionGoSignal, queryGatedTransactions, useGatedTransactionSignalLock };
102
- //# sourceMappingURL=5YTIURD3.js.map
103
- //# sourceMappingURL=5YTIURD3.js.map
102
+ //# sourceMappingURL=JMMYK2SL.js.map
103
+ //# sourceMappingURL=JMMYK2SL.js.map
@@ -1 +1 @@
1
- {"version":3,"sources":["../src/gatedTransactionSignalLock.ts"],"names":["gatedTransactionGoSignal","defineSignal","gatedTransactionGoSignalInternal","queryGatedTransactions","defineQuery","useGatedTransactionSignalLock","fn","options","forceSend","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":"5YTIURD3.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 './schemata';\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 options: { forceSend: boolean } = { forceSend: false },\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 if (options.forceSend) {\n return true;\n }\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
+ {"version":3,"sources":["../src/gatedTransactionSignalLock.ts"],"names":["gatedTransactionGoSignal","defineSignal","gatedTransactionGoSignalInternal","queryGatedTransactions","defineQuery","useGatedTransactionSignalLock","fn","options","forceSend","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":"JMMYK2SL.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 './schemata';\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 options: { forceSend: boolean } = { forceSend: false },\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 if (options.forceSend) {\n return true;\n }\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,5 +1,5 @@
1
- import { getIdForGatedTransaction } from './O2UH7G3V.js';
2
- import { GatedTransactionStatus } from './CKYPLVJX.js';
1
+ import { getIdForGatedTransaction } from './WNYV5NIT.js';
2
+ import { GatedTransactionStatus } from './VH2LMV2W.js';
3
3
  import { __name } from './VUOMXK5T.js';
4
4
  import isEqual from 'lodash.isequal';
5
5
 
@@ -60,7 +60,7 @@ var extractGatedTransactionUnderlyingTransaction = /* @__PURE__ */ __name(async
60
60
  }
61
61
  return tx;
62
62
  }, "extractGatedTransactionUnderlyingTransaction");
63
- var resolveGatedTransaction = /* @__PURE__ */ __name(async ({ activityRegistry, gatedTx, getTransactionResult, processTx, confirmationCallback, fn, cache }) => {
63
+ var resolveGatedTransaction = /* @__PURE__ */ __name(async ({ activityRegistry, gatedTx, getTransactionResult, processTx, confirmationCallback, fn, cache, logger }) => {
64
64
  const baseGatedTx = {
65
65
  name: gatedTx.name,
66
66
  chainName: gatedTx.chainName,
@@ -77,7 +77,7 @@ var resolveGatedTransaction = /* @__PURE__ */ __name(async ({ activityRegistry,
77
77
  await fn.condition(dependenciesAreAllProcessed);
78
78
  const dependenciesWereSuccessful = dependencyIds.every((id) => getTransactionResult(id)?.checkResult.expectationMet);
79
79
  if (!dependenciesWereSuccessful) {
80
- console.error(`Some dependencies of gated transaction ${gatedTx.name} failed: ${JSON.stringify(Object.fromEntries(dependencyIds.map((id) => [
80
+ logger.error(`Some dependencies of gated transaction ${gatedTx.name} failed: ${JSON.stringify(Object.fromEntries(dependencyIds.map((id) => [
81
81
  id,
82
82
  getTransactionResult(id)
83
83
  ])), void 0, 2)}`);
@@ -154,7 +154,7 @@ var resolveGatedTransaction = /* @__PURE__ */ __name(async ({ activityRegistry,
154
154
  };
155
155
  } else {
156
156
  const stringify = /* @__PURE__ */ __name((o) => JSON.stringify(o, (_, v) => v === void 0 ? "undefined" : typeof v === "bigint" ? v.toString() : v, 2), "stringify");
157
- console.error(`Gated transaction ${gatedTx.name} final check failed:
157
+ logger.error(`Gated transaction ${gatedTx.name} final check failed:
158
158
  Expected result ${stringify(gatedTx.check.expectedResult.comparisonValue)}, but got:
159
159
  ${stringify(finalCheckResult.onChainData)}, txHash: ${submittedTransaction.result.minedTxHash}`);
160
160
  return {
@@ -170,7 +170,7 @@ ${stringify(finalCheckResult.onChainData)}, txHash: ${submittedTransaction.resul
170
170
  };
171
171
  }
172
172
  } catch (e) {
173
- console.error("Gated transaction failed", e);
173
+ logger.error("Gated transaction failed", e);
174
174
  return {
175
175
  resolvedGatedTransaction: {
176
176
  ...baseGatedTx,
@@ -183,7 +183,7 @@ ${stringify(finalCheckResult.onChainData)}, txHash: ${submittedTransaction.resul
183
183
  };
184
184
  }
185
185
  }, "resolveGatedTransaction");
186
- var resolveGatedTransactions = /* @__PURE__ */ __name(async ({ activityRegistry, gatedTxes, processTx, fn, cache, userInteractionCallbacks }) => {
186
+ var resolveGatedTransactions = /* @__PURE__ */ __name(async ({ activityRegistry, gatedTxes, processTx, fn, cache, userInteractionCallbacks, logger }) => {
187
187
  const allInternalIds = gatedTxes.map((tx) => getIdForGatedTransaction(tx));
188
188
  const allDeps = gatedTxes.flatMap((tx) => tx.dependencies ?? []);
189
189
  const allExternalDeps = allDeps.filter((tx) => !allInternalIds.includes(getIdForGatedTransaction(tx)));
@@ -209,7 +209,8 @@ var resolveGatedTransactions = /* @__PURE__ */ __name(async ({ activityRegistry,
209
209
  processTx,
210
210
  confirmationCallback: userInteractionCallbacks?.confirmationCallback ?? (async () => true),
211
211
  fn,
212
- cache
212
+ cache,
213
+ logger
213
214
  });
214
215
  const resId = getIdForGatedTransaction(resolvedGatedTransaction);
215
216
  results[resId] = {
@@ -227,7 +228,7 @@ var resolveGatedTransactions = /* @__PURE__ */ __name(async ({ activityRegistry,
227
228
  });
228
229
  return await Promise.all(txFunctions.map((func) => func()));
229
230
  }, "resolveGatedTransactions");
230
- var resolveSequencedGatedTransactions = /* @__PURE__ */ __name(async ({ activityRegistry, gatedTxes, processTx, cache, userInteractionCallbacks, fn }) => {
231
+ var resolveSequencedGatedTransactions = /* @__PURE__ */ __name(async ({ activityRegistry, gatedTxes, processTx, cache, userInteractionCallbacks, fn, logger }) => {
231
232
  const results = [];
232
233
  for (const seq of gatedTxes) {
233
234
  const result = await resolveGatedTransactions({
@@ -236,7 +237,8 @@ var resolveSequencedGatedTransactions = /* @__PURE__ */ __name(async ({ activity
236
237
  processTx,
237
238
  cache,
238
239
  userInteractionCallbacks,
239
- fn
240
+ fn,
241
+ logger
240
242
  });
241
243
  results.push(result);
242
244
  }
@@ -244,5 +246,5 @@ var resolveSequencedGatedTransactions = /* @__PURE__ */ __name(async ({ activity
244
246
  }, "resolveSequencedGatedTransactions");
245
247
 
246
248
  export { resolveGatedTransactions, resolveSequencedGatedTransactions };
247
- //# sourceMappingURL=CTI3YHKW.js.map
248
- //# sourceMappingURL=CTI3YHKW.js.map
249
+ //# sourceMappingURL=ONVFWJXG.js.map
250
+ //# sourceMappingURL=ONVFWJXG.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../src/resolver.ts"],"names":["checkGatedTransaction","registry","gatedTransaction","cachedCheckResult","submittedTransaction","onChainData","undefined","params","check","callByPointer","functionPointer","expectationMet","expectedResult","operator","isEqual","comparisonValue","Error","extractGatedTransactionUnderlyingTransaction","deps","tx","transactionType","transaction","getTransaction","parallelizingKey","getIdForGatedTransaction","resolveGatedTransaction","activityRegistry","gatedTx","getTransactionResult","processTx","confirmationCallback","fn","cache","logger","baseGatedTx","name","chainName","bundleName","dependencies","cacheable","uniqueIdKeys","metadata","description","dependencyIds","map","dependenciesAreAllProcessed","every","id","condition","dependenciesWereSuccessful","checkResult","error","JSON","stringify","Object","fromEntries","resolvedGatedTransaction","result","status","GatedTransactionStatus","DEPENDENCY_FAILED","lastCheckResult","initialCheckResult","getCachedTxCheckData","cacheSuccessfulTxCheckData","NO_OP","confirmation","DENIED","depsResults","dep","resolved","underlying","processResult","type","finalCheckResult","SUCCESS","o","_","v","toString","minedTxHash","FINAL_CHECK_FAILED","finalOnChainState","e","TRANSACTION_FAILED","transactionError","resolveGatedTransactions","gatedTxes","userInteractionCallbacks","allInternalIds","allDeps","flatMap","allExternalDeps","filter","includes","results","Promise","all","gtxId","txFunctions","resId","onResultCallback","func","resolveSequencedGatedTransactions","seq","push"],"mappings":"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","file":"ONVFWJXG.js","sourcesContent":["import isEqual from 'lodash.isequal';\n\nimport type { ActivityRegistry } from '@layerzerolabs/common-activities';\nimport type {\n Transaction,\n TransactionResult,\n TransactionWithResult,\n} from '@layerzerolabs/common-chain-model';\nimport type { WorkflowFunctions } from '@layerzerolabs/common-workflow';\nimport type { Logger } from '@layerzerolabs/logger-node';\n\nimport { getIdForGatedTransaction } from './gatedTx';\nimport type {\n BaseGatedTransactionFor,\n GatedTransaction,\n GatedTransactionId,\n IGatedTransactionCache,\n InferOnChainDataTypeFromGatedTransaction,\n ResolvedGatedTransaction,\n ResolvedGatedTransactionDependencies,\n UserInteractionCallbacks,\n} from './schemata';\nimport { GatedTransactionStatus } from './schemata';\n\ntype OnChainCheckResult<DataType = any> = {\n expectationMet: boolean;\n onChainData: DataType;\n};\n\nconst checkGatedTransaction = async <\n GatedTx extends GatedTransaction,\n TxWithResult extends TransactionWithResult,\n>({\n registry,\n gatedTransaction,\n cachedCheckResult,\n submittedTransaction,\n}: {\n registry: ActivityRegistry;\n gatedTransaction: GatedTx;\n cachedCheckResult?: InferOnChainDataTypeFromGatedTransaction<GatedTx>;\n submittedTransaction?: TxWithResult;\n}): Promise<OnChainCheckResult<InferOnChainDataTypeFromGatedTransaction<GatedTx>>> => {\n let onChainData: InferOnChainDataTypeFromGatedTransaction<GatedTx>;\n if (cachedCheckResult !== undefined) {\n onChainData = cachedCheckResult;\n } else {\n // Always inject the processed transaction as the last parameter when available\n let params = gatedTransaction.check.params;\n if (submittedTransaction !== undefined) {\n params = [...gatedTransaction.check.params, submittedTransaction];\n }\n\n onChainData = await registry.callByPointer(gatedTransaction.check.functionPointer, params);\n }\n\n let expectationMet: boolean;\n\n switch (gatedTransaction.check.expectedResult.operator) {\n case '=':\n expectationMet = isEqual(\n onChainData,\n gatedTransaction.check.expectedResult.comparisonValue,\n );\n break;\n case '!=':\n expectationMet = !isEqual(\n onChainData,\n gatedTransaction.check.expectedResult.comparisonValue,\n );\n break;\n case '>':\n expectationMet =\n (onChainData as number) >\n (gatedTransaction.check.expectedResult.comparisonValue as number);\n break;\n case '>=':\n expectationMet =\n (onChainData as number) >=\n (gatedTransaction.check.expectedResult.comparisonValue as number);\n break;\n case '<':\n expectationMet =\n (onChainData as number) <\n (gatedTransaction.check.expectedResult.comparisonValue as number);\n break;\n case '<=':\n expectationMet =\n (onChainData as number) <=\n (gatedTransaction.check.expectedResult.comparisonValue as number);\n break;\n default:\n throw new Error(\n `Gated transaction operator \"${gatedTransaction.check.expectedResult.operator}\" is not supported`,\n );\n }\n\n return {\n expectationMet,\n onChainData,\n };\n};\n\nconst extractGatedTransactionUnderlyingTransaction = async <\n GatedTx extends GatedTransaction,\n TxType extends Transaction,\n>({\n registry,\n gatedTransaction,\n deps,\n}: {\n registry: ActivityRegistry;\n gatedTransaction: GatedTx;\n deps: ResolvedGatedTransactionDependencies<GatedTx>;\n}): Promise<TxType> => {\n let tx: TxType;\n if (gatedTransaction.transactionType === 'literal') {\n tx = gatedTransaction.transaction as TxType;\n } else {\n tx = await registry.callByPointer(gatedTransaction.getTransaction.functionPointer, [\n deps,\n ...gatedTransaction.getTransaction.params,\n ]);\n }\n\n if (!tx.parallelizingKey) {\n tx.parallelizingKey = `MISSING_PARALLELIZING_KEY-${getIdForGatedTransaction(gatedTransaction)}`;\n }\n\n return tx;\n};\n\nconst resolveGatedTransaction = async <\n TxType extends Transaction,\n GatedTx extends GatedTransaction<string, TxType, any>,\n ProcessTx extends (transaction: TxType) => Promise<TransactionResult>,\n>({\n activityRegistry,\n gatedTx,\n getTransactionResult,\n processTx,\n confirmationCallback,\n fn,\n cache,\n logger,\n}: {\n activityRegistry: ActivityRegistry;\n gatedTx: GatedTx;\n processTx: ProcessTx;\n getTransactionResult: (gtxId: GatedTransactionId) =>\n | {\n resolved?: ResolvedGatedTransaction;\n checkResult: { onChainData?: any; expectationMet: boolean };\n }\n | undefined;\n confirmationCallback: NonNullable<UserInteractionCallbacks['confirmationCallback']>;\n fn: WorkflowFunctions;\n cache?: IGatedTransactionCache;\n logger: Logger;\n}): Promise<{\n resolvedGatedTransaction: ResolvedGatedTransaction<GatedTx>;\n lastCheckResult: OnChainCheckResult | null;\n}> => {\n const baseGatedTx = {\n name: gatedTx.name,\n chainName: gatedTx.chainName,\n bundleName: gatedTx.bundleName,\n check: gatedTx.check,\n dependencies: gatedTx.dependencies,\n cacheable: gatedTx.cacheable,\n uniqueIdKeys: gatedTx.uniqueIdKeys,\n metadata: gatedTx.metadata,\n description: gatedTx.description,\n } as BaseGatedTransactionFor<GatedTx>;\n\n const dependencyIds = (gatedTx.dependencies ?? []).map((tx) => getIdForGatedTransaction(tx));\n\n const dependenciesAreAllProcessed = () => dependencyIds.every((id) => getTransactionResult(id));\n\n await fn.condition(dependenciesAreAllProcessed);\n\n //check that the dependencies succeeded\n const dependenciesWereSuccessful = dependencyIds.every(\n (id) => getTransactionResult(id)?.checkResult.expectationMet,\n );\n\n if (!dependenciesWereSuccessful) {\n logger.error(\n `Some dependencies of gated transaction ${gatedTx.name} failed: ${JSON.stringify(\n Object.fromEntries(dependencyIds.map((id) => [id, getTransactionResult(id)])),\n undefined,\n 2,\n )}`,\n );\n return {\n resolvedGatedTransaction: {\n ...baseGatedTx,\n result: {\n status: GatedTransactionStatus.DEPENDENCY_FAILED,\n },\n },\n lastCheckResult: null,\n };\n }\n\n const initialCheckResult = await checkGatedTransaction({\n gatedTransaction: gatedTx,\n registry: activityRegistry,\n cachedCheckResult: await cache?.getCachedTxCheckData?.(gatedTx),\n });\n\n await cache?.cacheSuccessfulTxCheckData?.(gatedTx, initialCheckResult.onChainData);\n\n if (initialCheckResult.expectationMet) {\n //already met\n return {\n resolvedGatedTransaction: {\n ...baseGatedTx,\n result: {\n status: GatedTransactionStatus.NO_OP,\n },\n },\n lastCheckResult: initialCheckResult,\n };\n }\n\n //get confirmation before sending\n const confirmation = await confirmationCallback(gatedTx);\n if (!confirmation) {\n return {\n resolvedGatedTransaction: {\n ...baseGatedTx,\n result: {\n status: GatedTransactionStatus.DENIED,\n },\n },\n lastCheckResult: initialCheckResult,\n };\n }\n\n //send the tx\n try {\n const depsResults = gatedTx.dependencies.map(\n (dep) => getTransactionResult(getIdForGatedTransaction(dep))!.resolved!,\n ) as ResolvedGatedTransactionDependencies<GatedTx>;\n // get the underlying calldata\n const underlying = await extractGatedTransactionUnderlyingTransaction<GatedTx, TxType>({\n registry: activityRegistry,\n gatedTransaction: gatedTx,\n deps: depsResults,\n });\n const processResult = await processTx(underlying);\n\n if (processResult.type === 'error') {\n throw new Error(`Sending gtx ${gatedTx.name} failed: ${processResult.error}`);\n }\n\n const submittedTransaction = { ...underlying, result: processResult };\n const finalCheckResult = await checkGatedTransaction({\n registry: activityRegistry,\n gatedTransaction: gatedTx,\n submittedTransaction,\n });\n\n await cache?.cacheSuccessfulTxCheckData?.(gatedTx, finalCheckResult.onChainData);\n\n if (finalCheckResult.expectationMet) {\n //sent and successful\n return {\n resolvedGatedTransaction: {\n ...baseGatedTx,\n result: {\n status: GatedTransactionStatus.SUCCESS,\n submittedTransaction,\n },\n },\n lastCheckResult: finalCheckResult,\n };\n } else {\n //sent and unsuccessful\n const stringify = (o: any) =>\n JSON.stringify(\n o,\n (_, v) =>\n v === undefined ? 'undefined' : typeof v === 'bigint' ? v.toString() : v,\n 2,\n );\n logger.error(\n `Gated transaction ${gatedTx.name} final check failed:\\nExpected result ${stringify(gatedTx.check.expectedResult.comparisonValue)}, but got:\\n${stringify(finalCheckResult.onChainData)}, txHash: ${submittedTransaction.result.minedTxHash}`,\n );\n return {\n resolvedGatedTransaction: {\n ...baseGatedTx,\n result: {\n status: GatedTransactionStatus.FINAL_CHECK_FAILED,\n submittedTransaction,\n finalOnChainState: finalCheckResult.onChainData,\n },\n },\n lastCheckResult: finalCheckResult,\n };\n }\n } catch (e) {\n logger.error('Gated transaction failed', e);\n //sent and failed\n return {\n resolvedGatedTransaction: {\n ...baseGatedTx,\n result: {\n status: GatedTransactionStatus.TRANSACTION_FAILED,\n transactionError: e,\n },\n },\n lastCheckResult: initialCheckResult,\n };\n }\n};\n\nexport const resolveGatedTransactions = async <\n TxType extends Transaction,\n GatedTx extends GatedTransaction<string, TxType, any>,\n ProcessTx extends (transaction: TxType) => Promise<TransactionResult>,\n>({\n activityRegistry,\n gatedTxes,\n processTx,\n fn,\n cache,\n userInteractionCallbacks,\n logger,\n}: {\n activityRegistry: ActivityRegistry;\n gatedTxes: GatedTx[];\n processTx: ProcessTx;\n fn: WorkflowFunctions;\n cache?: IGatedTransactionCache;\n userInteractionCallbacks?: UserInteractionCallbacks;\n logger: Logger;\n}): Promise<ResolvedGatedTransaction[]> => {\n //compute deps\n const allInternalIds = gatedTxes.map((tx) => getIdForGatedTransaction(tx));\n const allDeps = gatedTxes.flatMap((tx) => tx.dependencies ?? []);\n const allExternalDeps = allDeps.filter(\n (tx) => !allInternalIds.includes(getIdForGatedTransaction(tx)),\n );\n\n //prepopulate results for external dependencies\n //this map is only used for internal status tracking\n const results: Record<\n GatedTransactionId,\n {\n resolved?: ResolvedGatedTransaction;\n checkResult: { onChainData?: any; expectationMet: boolean };\n }\n > = Object.fromEntries(\n await Promise.all(\n allExternalDeps.map(async (tx) => {\n const checkResult = await checkGatedTransaction({\n gatedTransaction: tx,\n registry: activityRegistry,\n cachedCheckResult: await cache?.getCachedTxCheckData?.(tx),\n });\n\n return [\n getIdForGatedTransaction(tx),\n {\n checkResult,\n },\n ];\n }),\n ),\n );\n\n const getTransactionResult = (gtxId: GatedTransactionId) => results[gtxId];\n\n const txFunctions = gatedTxes.map((tx) => async () => {\n const { resolvedGatedTransaction, lastCheckResult } = await resolveGatedTransaction<\n TxType,\n GatedTx,\n ProcessTx\n >({\n gatedTx: tx,\n activityRegistry,\n getTransactionResult,\n processTx,\n confirmationCallback:\n userInteractionCallbacks?.confirmationCallback ?? (async () => true),\n fn,\n cache,\n logger,\n });\n\n const resId = getIdForGatedTransaction(resolvedGatedTransaction);\n results[resId] = {\n resolved: resolvedGatedTransaction,\n checkResult: {\n expectationMet: [\n GatedTransactionStatus.SUCCESS,\n GatedTransactionStatus.NO_OP,\n ].includes(resolvedGatedTransaction.result.status),\n onChainData: lastCheckResult?.onChainData ?? undefined,\n },\n };\n\n userInteractionCallbacks?.onResultCallback?.(resolvedGatedTransaction);\n return resolvedGatedTransaction;\n });\n\n return await Promise.all(txFunctions.map((func) => func()));\n};\n\nexport const resolveSequencedGatedTransactions = async <\n TxType extends Transaction,\n GatedTx extends GatedTransaction<string, TxType, any>,\n ProcessTx extends (transaction: TxType) => Promise<TransactionResult>,\n>({\n activityRegistry,\n gatedTxes,\n processTx,\n cache,\n userInteractionCallbacks,\n fn,\n logger,\n}: {\n activityRegistry: ActivityRegistry;\n gatedTxes: GatedTx[][];\n processTx: ProcessTx;\n fn: WorkflowFunctions;\n cache?: IGatedTransactionCache;\n userInteractionCallbacks?: UserInteractionCallbacks;\n logger: Logger;\n}) => {\n const results = [];\n for (const seq of gatedTxes) {\n const result = await resolveGatedTransactions<TxType, GatedTx, ProcessTx>({\n gatedTxes: seq,\n activityRegistry,\n processTx,\n cache,\n userInteractionCallbacks,\n fn,\n logger,\n });\n results.push(result);\n }\n\n return results;\n};\n"]}
@@ -60,11 +60,21 @@ var gatedTransactionCacheSchema = z__default.default.object({
60
60
  var gatedTransactionIsResolvedGatedTransaction = /* @__PURE__ */ YJF4D23A_cjs.__name((gtx) => !!gtx.result, "gatedTransactionIsResolvedGatedTransaction");
61
61
  var gatedTransactionSchema = /* @__PURE__ */ YJF4D23A_cjs.__name((_) => zodUtils.customSchema(), "gatedTransactionSchema");
62
62
  var resolvedGatedTransactionSchema = /* @__PURE__ */ YJF4D23A_cjs.__name((_) => zodUtils.customSchema(), "resolvedGatedTransactionSchema");
63
- var createTxDependentActivitySchema = /* @__PURE__ */ YJF4D23A_cjs.__name((transactionSchema, txNumber, extraArgs) => {
63
+ var createTxArrayDependentActivitySchema = /* @__PURE__ */ YJF4D23A_cjs.__name((transactionSchema, extraArgs) => {
64
+ return zodUtils.functionSchema({
65
+ input: z__default.default.tuple([
66
+ z__default.default.array(resolvedGatedTransactionSchema({
67
+ transactionSchema
68
+ })),
69
+ ...extraArgs?.def?.items ?? []
70
+ ]),
71
+ output: z__default.default.promise(transactionSchema)
72
+ });
73
+ }, "createTxArrayDependentActivitySchema");
74
+ var createTxTupleDependentActivitySchema = /* @__PURE__ */ YJF4D23A_cjs.__name((transactionSchema, txNumber, extraArgs) => {
64
75
  const txs = Array.from({
65
76
  length: txNumber
66
77
  }, () => resolvedGatedTransactionSchema({
67
- name: z__default.default.string(),
68
78
  transactionSchema
69
79
  }));
70
80
  return zodUtils.functionSchema({
@@ -74,7 +84,7 @@ var createTxDependentActivitySchema = /* @__PURE__ */ YJF4D23A_cjs.__name((trans
74
84
  ]),
75
85
  output: z__default.default.promise(transactionSchema)
76
86
  });
77
- }, "createTxDependentActivitySchema");
87
+ }, "createTxTupleDependentActivitySchema");
78
88
  var createGatedTxCheckActivitySchema = /* @__PURE__ */ YJF4D23A_cjs.__name(({ input, output, transactionWithResultSchema }) => {
79
89
  const txWithResultSchema = (transactionWithResultSchema ?? commonChainModel.transactionWithResultSchema).optional();
80
90
  return zodUtils.functionSchema({
@@ -88,11 +98,12 @@ var createGatedTxCheckActivitySchema = /* @__PURE__ */ YJF4D23A_cjs.__name(({ in
88
98
 
89
99
  exports.GatedTransactionStatus = GatedTransactionStatus;
90
100
  exports.createGatedTxCheckActivitySchema = createGatedTxCheckActivitySchema;
91
- exports.createTxDependentActivitySchema = createTxDependentActivitySchema;
101
+ exports.createTxArrayDependentActivitySchema = createTxArrayDependentActivitySchema;
102
+ exports.createTxTupleDependentActivitySchema = createTxTupleDependentActivitySchema;
92
103
  exports.gatedTransactionCacheSchema = gatedTransactionCacheSchema;
93
104
  exports.gatedTransactionIsResolvedGatedTransaction = gatedTransactionIsResolvedGatedTransaction;
94
105
  exports.gatedTransactionResultSchema = gatedTransactionResultSchema;
95
106
  exports.gatedTransactionSchema = gatedTransactionSchema;
96
107
  exports.resolvedGatedTransactionSchema = resolvedGatedTransactionSchema;
97
- //# sourceMappingURL=44CZPU6S.cjs.map
98
- //# sourceMappingURL=44CZPU6S.cjs.map
108
+ //# sourceMappingURL=UVQ5QQ4U.cjs.map
109
+ //# sourceMappingURL=UVQ5QQ4U.cjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../src/schemata.ts"],"names":["gatedTransactionResultSchema","__name","txWithResultSchema","onchainDataSchema","z","union","object","status","literal","submittedTransaction","transactionError","any","finalOnChainState","GatedTransactionStatus","gatedTransactionCacheSchema","getCachedTxCheckData","functionSchema","input","tuple","output","promise","cacheSuccessfulTxCheckData","gatedTransactionIsResolvedGatedTransaction","gtx","result","gatedTransactionSchema","_","customSchema","resolvedGatedTransactionSchema","createTxArrayDependentActivitySchema","transactionSchema","extraArgs","array","def","items","createTxTupleDependentActivitySchema","txNumber","txs","Array","from","length","createGatedTxCheckActivitySchema","transactionWithResultSchema","_transactionWithResultSchema","optional"],"mappings":"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","file":"UVQ5QQ4U.cjs","sourcesContent":["import z from 'zod/v4';\n\nimport type { transactionSchema as _transactionSchema } 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/common-utils';\nimport type { BuildTuple } from '@layerzerolabs/typescript-utils';\nimport type { InferredArray } from '@layerzerolabs/zod-utils';\nimport { customSchema, functionSchema } from '@layerzerolabs/zod-utils';\n\nexport type OnChainDataComparisonOperator<OnChainDataType> = OnChainDataType extends number\n ? '<' | '<=' | '=' | '!=' | '>' | '>='\n : '=' | '!=';\n\nexport type OnChainDataComparison<OnChainDataType> = {\n operator: OnChainDataComparisonOperator<OnChainDataType>;\n comparisonValue: OnChainDataType;\n};\n\nexport type GatedTransactionCheck<\n Method extends (...args: any[]) => Promise<any> = (...args: any[]) => Promise<unknown>,\n> = {\n functionPointer: FunctionPointer<Method>;\n params: Parameters<Method>;\n expectedResult: OnChainDataComparison<Awaited<ReturnType<Method>>>;\n};\n\n// Schema for gated transaction results\nexport const gatedTransactionResultSchema = <\n TxWithResultSchema extends typeof _transactionWithResultSchema,\n OnchainDataSchema extends z.ZodType,\n>(\n txWithResultSchema: TxWithResultSchema,\n onchainDataSchema: OnchainDataSchema,\n) =>\n z.union([\n z.object({\n status: z.literal(GatedTransactionStatus.NO_OP),\n }),\n z.object({\n status: z.literal(GatedTransactionStatus.SUCCESS),\n submittedTransaction: txWithResultSchema,\n }),\n z.object({\n status: z.literal(GatedTransactionStatus.TRANSACTION_FAILED),\n transactionError: z.any(),\n }),\n z.object({\n status: z.literal(GatedTransactionStatus.FINAL_CHECK_FAILED),\n submittedTransaction: txWithResultSchema,\n finalOnChainState: onchainDataSchema,\n }),\n z.object({\n status: z.literal(GatedTransactionStatus.DEPENDENCY_FAILED),\n }),\n z.object({\n status: z.literal(GatedTransactionStatus.DENIED),\n }),\n ]);\n\nexport type InferOnChainDataTypeFromCheck<Check> = Check extends (...args: any[]) => infer Ret\n ? Awaited<Ret>\n : unknown;\nexport type InferOnChainDataTypeFromGatedTransaction<GatedTx extends GatedTransaction> =\n InferOnChainDataTypeFromCheck<GatedTx['check']>;\n\nexport type GatedTransactionDependencies = GatedTransaction[];\nexport type BaseGatedTransaction<\n Name extends string = string,\n CheckMethod extends (...args: any[]) => any = (...args: any[]) => any,\n _Dependencies extends GatedTransactionDependencies = GatedTransactionDependencies,\n> = {\n name: Name;\n description?: string;\n bundleName?: string;\n metadata?: {\n deployInfo?: {\n saveArtifact: boolean;\n contractName: string;\n retryable?: boolean;\n };\n };\n chainName: string;\n check: GatedTransactionCheck<CheckMethod>;\n dependencies: _Dependencies;\n cacheable?: boolean;\n uniqueIdKeys?: Record<string, string | number | boolean>;\n};\n\nexport type LiteralGatedTransaction<\n Name extends string = string,\n TxType extends Transaction = Transaction,\n CheckMethod extends (...args: any[]) => any = (...args: any[]) => any,\n _Dependencies extends GatedTransactionDependencies = GatedTransactionDependencies,\n> = BaseGatedTransaction<Name, CheckMethod, _Dependencies> & {\n transactionType: 'literal';\n transaction: TxType;\n};\n\nexport type FunctionalGatedTransaction<\n Name extends string = string,\n TxType extends Transaction = Transaction,\n CheckMethod extends (...args: any[]) => any = (...args: any[]) => any,\n DepMethod extends (txs: any, ...args: any[]) => Promise<TxType> = (\n txs: any,\n ...args: any[]\n ) => Promise<any>,\n _Dependencies extends GatedTransactionDependencies = GatedTransactionDependencies,\n> = BaseGatedTransaction<Name, CheckMethod, _Dependencies> & {\n transactionType: 'functional';\n getTransaction: {\n functionPointer: FunctionPointer<DepMethod>;\n params: Parameters<DepMethod> extends [any, ...infer Tail] ? Tail : [];\n };\n};\n\nexport type GatedTransaction<\n Name extends string = string,\n TxType extends Transaction = Transaction,\n CheckMethod extends (...args: any[]) => any = (...args: any[]) => any,\n DepMethod extends (txs: any, ...args: any[]) => Promise<TxType> = (\n txs: any,\n ...args: any[]\n ) => Promise<any>,\n _Dependencies extends GatedTransactionDependencies = GatedTransactionDependencies,\n> =\n | LiteralGatedTransaction<Name, TxType, CheckMethod, _Dependencies>\n | FunctionalGatedTransaction<Name, TxType, CheckMethod, DepMethod, _Dependencies>;\n\nexport type BaseGatedTransactionFor<GatedTx extends GatedTransaction> =\n GatedTx extends GatedTransaction<infer Name, any, infer CheckMethod, any, infer _Dependencies>\n ? BaseGatedTransaction<Name, CheckMethod, _Dependencies>\n : never;\n\nexport enum GatedTransactionStatus {\n NO_OP = 'no_op',\n SUCCESS = 'success',\n TRANSACTION_FAILED = 'transaction_failed',\n FINAL_CHECK_FAILED = 'final_check_failed',\n DEPENDENCY_FAILED = 'dependency_failed',\n DENIED = 'denied',\n}\n\ntype NoOpGatedTransaction = {\n status: GatedTransactionStatus.NO_OP;\n};\n\ntype SuccessfulGatedTransaction<TxType extends Transaction> = {\n status: GatedTransactionStatus.SUCCESS;\n submittedTransaction: TransactionWithResultFor<TxType>;\n};\n\ntype TxFailedGatedTransaction = {\n status: GatedTransactionStatus.TRANSACTION_FAILED;\n transactionError: any;\n};\n\ntype CheckFailedGatedTransaction<GatedTx extends GatedTransaction, TxType extends Transaction> = {\n status: GatedTransactionStatus.FINAL_CHECK_FAILED;\n submittedTransaction: TransactionWithResultFor<TxType>;\n finalOnChainState: InferOnChainDataTypeFromGatedTransaction<GatedTx>;\n};\n\ntype DependencyFailedGatedTransaction = {\n status: GatedTransactionStatus.DEPENDENCY_FAILED;\n};\n\ntype DeniedGatedTransaction = {\n status: GatedTransactionStatus.DENIED;\n};\n\nexport type GatedTransactionResult<\n GatedTx extends GatedTransaction = GatedTransaction,\n TxType extends Transaction = Transaction,\n> =\n | NoOpGatedTransaction\n | SuccessfulGatedTransaction<TxType>\n | TxFailedGatedTransaction\n | CheckFailedGatedTransaction<GatedTx, TxType>\n | DependencyFailedGatedTransaction\n | DeniedGatedTransaction;\n\nexport const gatedTransactionCacheSchema = z.object({\n getCachedTxCheckData: functionSchema({\n input: z.tuple([z.any()]),\n output: z.promise(z.any()),\n }) as z.ZodType<\n <GatedTx extends GatedTransaction>(\n gtx: GatedTx,\n ) => Promise<InferOnChainDataTypeFromGatedTransaction<GatedTx> | undefined>\n >,\n cacheSuccessfulTxCheckData: functionSchema({\n input: z.tuple([z.any(), z.any()]),\n output: z.promise(z.any()),\n }) as z.ZodType<\n <GatedTx extends GatedTransaction>(\n gtx: GatedTx,\n data: InferOnChainDataTypeFromGatedTransaction<GatedTx>,\n ) => Promise<void>\n >,\n});\n\nexport type IGatedTransactionCache = z.infer<typeof gatedTransactionCacheSchema>;\n\n/**\n * name-chain-uniqueIdKeys\n *\n * E.g., setDelegate-ethereum-oAppAddress:0xMY_OAPP\n */\nexport type GatedTransactionId = `${string}-${string}-${string}`;\n\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 type UserInteractionCallbacks = {\n confirmationCallback?: (gtx: GatedTransaction) => Promise<boolean>;\n onResultCallback?: (result: ResolvedGatedTransaction) => void;\n};\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}) => customSchema<GatedTransaction<z.infer<Name>, z.infer<TransactionSchema>>>();\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 >();\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"]}