@haneullabs/wallet-sdk 0.1.0 → 0.1.1

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 (197) hide show
  1. package/CHANGELOG.md +47 -18
  2. package/dist/auto-approvals/analyzer.d.mts +83 -0
  3. package/dist/auto-approvals/analyzer.d.mts.map +1 -0
  4. package/dist/auto-approvals/analyzer.mjs +43 -0
  5. package/dist/auto-approvals/analyzer.mjs.map +1 -0
  6. package/dist/auto-approvals/index.d.mts +6 -0
  7. package/dist/auto-approvals/intent.d.mts +9 -0
  8. package/dist/auto-approvals/intent.d.mts.map +1 -0
  9. package/dist/auto-approvals/intent.mjs +40 -0
  10. package/dist/auto-approvals/intent.mjs.map +1 -0
  11. package/dist/auto-approvals/manager.d.mts +38 -0
  12. package/dist/auto-approvals/manager.d.mts.map +1 -0
  13. package/dist/auto-approvals/manager.mjs +192 -0
  14. package/dist/auto-approvals/manager.mjs.map +1 -0
  15. package/dist/auto-approvals/schemas/index.d.mts +2 -0
  16. package/dist/auto-approvals/schemas/policy.d.mts +149 -0
  17. package/dist/auto-approvals/schemas/policy.d.mts.map +1 -0
  18. package/dist/auto-approvals/schemas/policy.mjs +49 -0
  19. package/dist/auto-approvals/schemas/policy.mjs.map +1 -0
  20. package/dist/auto-approvals/schemas/state.d.mts +115 -0
  21. package/dist/auto-approvals/schemas/state.d.mts.map +1 -0
  22. package/dist/auto-approvals/schemas/state.mjs +20 -0
  23. package/dist/auto-approvals/schemas/state.mjs.map +1 -0
  24. package/dist/index.d.mts +16 -0
  25. package/dist/index.mjs +9 -0
  26. package/dist/transaction-analyzer/analyzer.d.mts +39 -0
  27. package/dist/transaction-analyzer/analyzer.d.mts.map +1 -0
  28. package/dist/transaction-analyzer/analyzer.mjs +46 -0
  29. package/dist/transaction-analyzer/analyzer.mjs.map +1 -0
  30. package/dist/transaction-analyzer/index.d.mts +8 -0
  31. package/dist/transaction-analyzer/rules/accessLevel.mjs +65 -0
  32. package/dist/transaction-analyzer/rules/accessLevel.mjs.map +1 -0
  33. package/dist/transaction-analyzer/rules/coin-flows.d.mts +12 -0
  34. package/dist/transaction-analyzer/rules/coin-flows.d.mts.map +1 -0
  35. package/dist/transaction-analyzer/rules/coin-flows.mjs +122 -0
  36. package/dist/transaction-analyzer/rules/coin-flows.mjs.map +1 -0
  37. package/dist/transaction-analyzer/rules/coin-value.d.mts +25 -0
  38. package/dist/transaction-analyzer/rules/coin-value.d.mts.map +1 -0
  39. package/dist/transaction-analyzer/rules/coin-value.mjs +36 -0
  40. package/dist/transaction-analyzer/rules/coin-value.mjs.map +1 -0
  41. package/dist/transaction-analyzer/rules/coins.d.mts +12 -0
  42. package/dist/transaction-analyzer/rules/coins.d.mts.map +1 -0
  43. package/dist/transaction-analyzer/rules/coins.mjs +48 -0
  44. package/dist/transaction-analyzer/rules/coins.mjs.map +1 -0
  45. package/dist/transaction-analyzer/rules/commands.d.mts +79 -0
  46. package/dist/transaction-analyzer/rules/commands.d.mts.map +1 -0
  47. package/dist/transaction-analyzer/rules/commands.mjs +141 -0
  48. package/dist/transaction-analyzer/rules/commands.mjs.map +1 -0
  49. package/dist/transaction-analyzer/rules/core.mjs +48 -0
  50. package/dist/transaction-analyzer/rules/core.mjs.map +1 -0
  51. package/dist/transaction-analyzer/rules/functions.mjs +31 -0
  52. package/dist/transaction-analyzer/rules/functions.mjs.map +1 -0
  53. package/dist/transaction-analyzer/rules/index.d.mts +2125 -0
  54. package/dist/transaction-analyzer/rules/index.d.mts.map +1 -0
  55. package/dist/transaction-analyzer/rules/index.mjs +34 -0
  56. package/dist/transaction-analyzer/rules/index.mjs.map +1 -0
  57. package/dist/transaction-analyzer/rules/inputs.d.mts +20 -0
  58. package/dist/transaction-analyzer/rules/inputs.d.mts.map +1 -0
  59. package/dist/transaction-analyzer/rules/inputs.mjs +38 -0
  60. package/dist/transaction-analyzer/rules/inputs.mjs.map +1 -0
  61. package/dist/transaction-analyzer/rules/objects.d.mts +12 -0
  62. package/dist/transaction-analyzer/rules/objects.d.mts.map +1 -0
  63. package/dist/transaction-analyzer/rules/objects.mjs +92 -0
  64. package/dist/transaction-analyzer/rules/objects.mjs.map +1 -0
  65. package/dist/util.d.mts +7 -0
  66. package/dist/util.d.mts.map +1 -0
  67. package/package.json +27 -25
  68. package/dist/cjs/auto-approvals/analyzer.d.ts +0 -71
  69. package/dist/cjs/auto-approvals/analyzer.js +0 -70
  70. package/dist/cjs/auto-approvals/analyzer.js.map +0 -7
  71. package/dist/cjs/auto-approvals/index.d.ts +0 -6
  72. package/dist/cjs/auto-approvals/index.js +0 -33
  73. package/dist/cjs/auto-approvals/index.js.map +0 -7
  74. package/dist/cjs/auto-approvals/intent.d.ts +0 -5
  75. package/dist/cjs/auto-approvals/intent.js +0 -65
  76. package/dist/cjs/auto-approvals/intent.js.map +0 -7
  77. package/dist/cjs/auto-approvals/manager.d.ts +0 -31
  78. package/dist/cjs/auto-approvals/manager.js +0 -328
  79. package/dist/cjs/auto-approvals/manager.js.map +0 -7
  80. package/dist/cjs/auto-approvals/schemas/index.d.ts +0 -4
  81. package/dist/cjs/auto-approvals/schemas/index.js +0 -28
  82. package/dist/cjs/auto-approvals/schemas/index.js.map +0 -7
  83. package/dist/cjs/auto-approvals/schemas/policy.d.ts +0 -145
  84. package/dist/cjs/auto-approvals/schemas/policy.js +0 -79
  85. package/dist/cjs/auto-approvals/schemas/policy.js.map +0 -7
  86. package/dist/cjs/auto-approvals/schemas/state.d.ts +0 -115
  87. package/dist/cjs/auto-approvals/schemas/state.js +0 -49
  88. package/dist/cjs/auto-approvals/schemas/state.js.map +0 -7
  89. package/dist/cjs/index.d.ts +0 -2
  90. package/dist/cjs/index.js +0 -20
  91. package/dist/cjs/index.js.map +0 -7
  92. package/dist/cjs/package.json +0 -5
  93. package/dist/cjs/transaction-analyzer/analyzer.d.ts +0 -34
  94. package/dist/cjs/transaction-analyzer/analyzer.js +0 -94
  95. package/dist/cjs/transaction-analyzer/analyzer.js.map +0 -7
  96. package/dist/cjs/transaction-analyzer/index.d.ts +0 -9
  97. package/dist/cjs/transaction-analyzer/index.js +0 -28
  98. package/dist/cjs/transaction-analyzer/index.js.map +0 -7
  99. package/dist/cjs/transaction-analyzer/rules/accessLevel.d.ts +0 -29
  100. package/dist/cjs/transaction-analyzer/rules/accessLevel.js +0 -106
  101. package/dist/cjs/transaction-analyzer/rules/accessLevel.js.map +0 -7
  102. package/dist/cjs/transaction-analyzer/rules/coin-flows.d.ts +0 -313
  103. package/dist/cjs/transaction-analyzer/rules/coin-flows.js +0 -179
  104. package/dist/cjs/transaction-analyzer/rules/coin-flows.js.map +0 -7
  105. package/dist/cjs/transaction-analyzer/rules/coin-value.d.ts +0 -42
  106. package/dist/cjs/transaction-analyzer/rules/coin-value.js +0 -60
  107. package/dist/cjs/transaction-analyzer/rules/coin-value.js.map +0 -7
  108. package/dist/cjs/transaction-analyzer/rules/coins.d.ts +0 -337
  109. package/dist/cjs/transaction-analyzer/rules/coins.js +0 -78
  110. package/dist/cjs/transaction-analyzer/rules/coins.js.map +0 -7
  111. package/dist/cjs/transaction-analyzer/rules/commands.d.ts +0 -366
  112. package/dist/cjs/transaction-analyzer/rules/commands.js +0 -148
  113. package/dist/cjs/transaction-analyzer/rules/commands.js.map +0 -7
  114. package/dist/cjs/transaction-analyzer/rules/core.d.ts +0 -314
  115. package/dist/cjs/transaction-analyzer/rules/core.js +0 -73
  116. package/dist/cjs/transaction-analyzer/rules/core.js.map +0 -7
  117. package/dist/cjs/transaction-analyzer/rules/functions.d.ts +0 -292
  118. package/dist/cjs/transaction-analyzer/rules/functions.js +0 -58
  119. package/dist/cjs/transaction-analyzer/rules/functions.js.map +0 -7
  120. package/dist/cjs/transaction-analyzer/rules/index.d.ts +0 -2244
  121. package/dist/cjs/transaction-analyzer/rules/index.js +0 -52
  122. package/dist/cjs/transaction-analyzer/rules/index.js.map +0 -7
  123. package/dist/cjs/transaction-analyzer/rules/inputs.d.ts +0 -313
  124. package/dist/cjs/transaction-analyzer/rules/inputs.js +0 -49
  125. package/dist/cjs/transaction-analyzer/rules/inputs.js.map +0 -7
  126. package/dist/cjs/transaction-analyzer/rules/objects.d.ts +0 -359
  127. package/dist/cjs/transaction-analyzer/rules/objects.js +0 -124
  128. package/dist/cjs/transaction-analyzer/rules/objects.js.map +0 -7
  129. package/dist/cjs/util.d.ts +0 -5
  130. package/dist/cjs/util.js +0 -17
  131. package/dist/cjs/util.js.map +0 -7
  132. package/dist/esm/auto-approvals/analyzer.d.ts +0 -71
  133. package/dist/esm/auto-approvals/analyzer.js +0 -50
  134. package/dist/esm/auto-approvals/analyzer.js.map +0 -7
  135. package/dist/esm/auto-approvals/index.d.ts +0 -6
  136. package/dist/esm/auto-approvals/index.js +0 -12
  137. package/dist/esm/auto-approvals/index.js.map +0 -7
  138. package/dist/esm/auto-approvals/intent.d.ts +0 -5
  139. package/dist/esm/auto-approvals/intent.js +0 -45
  140. package/dist/esm/auto-approvals/intent.js.map +0 -7
  141. package/dist/esm/auto-approvals/manager.d.ts +0 -31
  142. package/dist/esm/auto-approvals/manager.js +0 -308
  143. package/dist/esm/auto-approvals/manager.js.map +0 -7
  144. package/dist/esm/auto-approvals/schemas/index.d.ts +0 -4
  145. package/dist/esm/auto-approvals/schemas/index.js +0 -8
  146. package/dist/esm/auto-approvals/schemas/index.js.map +0 -7
  147. package/dist/esm/auto-approvals/schemas/policy.d.ts +0 -145
  148. package/dist/esm/auto-approvals/schemas/policy.js +0 -49
  149. package/dist/esm/auto-approvals/schemas/policy.js.map +0 -7
  150. package/dist/esm/auto-approvals/schemas/state.d.ts +0 -115
  151. package/dist/esm/auto-approvals/schemas/state.js +0 -19
  152. package/dist/esm/auto-approvals/schemas/state.js.map +0 -7
  153. package/dist/esm/index.d.ts +0 -2
  154. package/dist/esm/index.js +0 -3
  155. package/dist/esm/index.js.map +0 -7
  156. package/dist/esm/package.json +0 -5
  157. package/dist/esm/transaction-analyzer/analyzer.d.ts +0 -34
  158. package/dist/esm/transaction-analyzer/analyzer.js +0 -74
  159. package/dist/esm/transaction-analyzer/analyzer.js.map +0 -7
  160. package/dist/esm/transaction-analyzer/index.d.ts +0 -9
  161. package/dist/esm/transaction-analyzer/index.js +0 -8
  162. package/dist/esm/transaction-analyzer/index.js.map +0 -7
  163. package/dist/esm/transaction-analyzer/rules/accessLevel.d.ts +0 -29
  164. package/dist/esm/transaction-analyzer/rules/accessLevel.js +0 -86
  165. package/dist/esm/transaction-analyzer/rules/accessLevel.js.map +0 -7
  166. package/dist/esm/transaction-analyzer/rules/coin-flows.d.ts +0 -313
  167. package/dist/esm/transaction-analyzer/rules/coin-flows.js +0 -159
  168. package/dist/esm/transaction-analyzer/rules/coin-flows.js.map +0 -7
  169. package/dist/esm/transaction-analyzer/rules/coin-value.d.ts +0 -42
  170. package/dist/esm/transaction-analyzer/rules/coin-value.js +0 -40
  171. package/dist/esm/transaction-analyzer/rules/coin-value.js.map +0 -7
  172. package/dist/esm/transaction-analyzer/rules/coins.d.ts +0 -337
  173. package/dist/esm/transaction-analyzer/rules/coins.js +0 -58
  174. package/dist/esm/transaction-analyzer/rules/coins.js.map +0 -7
  175. package/dist/esm/transaction-analyzer/rules/commands.d.ts +0 -366
  176. package/dist/esm/transaction-analyzer/rules/commands.js +0 -128
  177. package/dist/esm/transaction-analyzer/rules/commands.js.map +0 -7
  178. package/dist/esm/transaction-analyzer/rules/core.d.ts +0 -314
  179. package/dist/esm/transaction-analyzer/rules/core.js +0 -53
  180. package/dist/esm/transaction-analyzer/rules/core.js.map +0 -7
  181. package/dist/esm/transaction-analyzer/rules/functions.d.ts +0 -292
  182. package/dist/esm/transaction-analyzer/rules/functions.js +0 -38
  183. package/dist/esm/transaction-analyzer/rules/functions.js.map +0 -7
  184. package/dist/esm/transaction-analyzer/rules/index.d.ts +0 -2244
  185. package/dist/esm/transaction-analyzer/rules/index.js +0 -32
  186. package/dist/esm/transaction-analyzer/rules/index.js.map +0 -7
  187. package/dist/esm/transaction-analyzer/rules/inputs.d.ts +0 -313
  188. package/dist/esm/transaction-analyzer/rules/inputs.js +0 -29
  189. package/dist/esm/transaction-analyzer/rules/inputs.js.map +0 -7
  190. package/dist/esm/transaction-analyzer/rules/objects.d.ts +0 -359
  191. package/dist/esm/transaction-analyzer/rules/objects.js +0 -104
  192. package/dist/esm/transaction-analyzer/rules/objects.js.map +0 -7
  193. package/dist/esm/util.d.ts +0 -5
  194. package/dist/esm/util.js +0 -1
  195. package/dist/esm/util.js.map +0 -7
  196. package/dist/tsconfig.esm.tsbuildinfo +0 -1
  197. package/dist/tsconfig.tsbuildinfo +0 -1
@@ -1,79 +0,0 @@
1
- "use strict";
2
- var __create = Object.create;
3
- var __defProp = Object.defineProperty;
4
- var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
5
- var __getOwnPropNames = Object.getOwnPropertyNames;
6
- var __getProtoOf = Object.getPrototypeOf;
7
- var __hasOwnProp = Object.prototype.hasOwnProperty;
8
- var __export = (target, all) => {
9
- for (var name in all)
10
- __defProp(target, name, { get: all[name], enumerable: true });
11
- };
12
- var __copyProps = (to, from, except, desc) => {
13
- if (from && typeof from === "object" || typeof from === "function") {
14
- for (let key of __getOwnPropNames(from))
15
- if (!__hasOwnProp.call(to, key) && key !== except)
16
- __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
17
- }
18
- return to;
19
- };
20
- var __toESM = (mod, isNodeMode, target) => (target = mod != null ? __create(__getProtoOf(mod)) : {}, __copyProps(
21
- // If the importer is in node compatibility mode or this is not an ESM
22
- // file that has been converted to a CommonJS file using a Babel-
23
- // compatible transform (i.e. "__esModule" has not been set), then set
24
- // "default" to the CommonJS "module.exports" for node compatibility.
25
- isNodeMode || !mod || !mod.__esModule ? __defProp(target, "default", { value: mod, enumerable: true }) : target,
26
- mod
27
- ));
28
- var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
29
- var policy_exports = {};
30
- __export(policy_exports, {
31
- AutoApprovalPolicySchema: () => AutoApprovalPolicySchema,
32
- AutoApprovalSettingsSchema: () => AutoApprovalSettingsSchema
33
- });
34
- module.exports = __toCommonJS(policy_exports);
35
- var v = __toESM(require("valibot"));
36
- const AccessLevelSchema = v.union([v.literal("read"), v.literal("mutate"), v.literal("transfer")]);
37
- const BasePermissionSchema = v.object({
38
- description: v.string()
39
- });
40
- const ObjectTypePermissionSchema = v.object({
41
- ...BasePermissionSchema.entries,
42
- $kind: v.literal("ObjectType"),
43
- objectType: v.string(),
44
- accessLevel: AccessLevelSchema
45
- });
46
- const CoinBalancePermissionSchema = v.object({
47
- ...BasePermissionSchema.entries,
48
- $kind: v.literal("CoinBalance"),
49
- coinType: v.string()
50
- });
51
- const AnyBalancesPermissionSchema = v.object({
52
- ...BasePermissionSchema.entries,
53
- $kind: v.literal("AnyBalance")
54
- });
55
- const AutoApprovalOperationSchema = v.object({
56
- id: v.string(),
57
- description: v.string(),
58
- permissions: v.object({
59
- ownedObjects: v.optional(v.array(ObjectTypePermissionSchema)),
60
- balances: v.optional(v.array(CoinBalancePermissionSchema)),
61
- anyBalance: v.optional(AnyBalancesPermissionSchema)
62
- })
63
- });
64
- const AutoApprovalSettingsSchema = v.looseObject({
65
- approvedOperations: v.array(v.string()),
66
- expiration: v.number(),
67
- // TODO: figure out a better name
68
- remainingTransactions: v.nullable(v.number()),
69
- sharedBudget: v.nullable(v.number()),
70
- // TODO: normalize coin types
71
- coinBudgets: v.record(v.string(), v.string())
72
- });
73
- const AutoApprovalPolicySchema = v.object({
74
- schemaVersion: v.literal("1.0.0"),
75
- operations: v.array(AutoApprovalOperationSchema),
76
- // TODO: do we want to split suggested settings into a different type (not everything makes sense as a suggestion)
77
- suggestedSettings: v.optional(v.partial(AutoApprovalSettingsSchema))
78
- });
79
- //# sourceMappingURL=policy.js.map
@@ -1,7 +0,0 @@
1
- {
2
- "version": 3,
3
- "sources": ["../../../../src/auto-approvals/schemas/policy.ts"],
4
- "sourcesContent": ["// Copyright (c) Mysten Labs, Inc.\n// SPDX-License-Identifier: Apache-2.0\n\nimport * as v from 'valibot';\n\nconst AccessLevelSchema = v.union([v.literal('read'), v.literal('mutate'), v.literal('transfer')]);\n\nconst BasePermissionSchema = v.object({\n\tdescription: v.string(),\n});\n\nconst ObjectTypePermissionSchema = v.object({\n\t...BasePermissionSchema.entries,\n\t$kind: v.literal('ObjectType'),\n\tobjectType: v.string(),\n\taccessLevel: AccessLevelSchema,\n});\n\nconst CoinBalancePermissionSchema = v.object({\n\t...BasePermissionSchema.entries,\n\t$kind: v.literal('CoinBalance'),\n\tcoinType: v.string(),\n});\n\nconst AnyBalancesPermissionSchema = v.object({\n\t...BasePermissionSchema.entries,\n\t$kind: v.literal('AnyBalance'),\n});\n\nexport type PolicyPermission = v.InferOutput<\n\t| typeof CoinBalancePermissionSchema\n\t| typeof AnyBalancesPermissionSchema\n\t| typeof ObjectTypePermissionSchema\n>;\n\nconst AutoApprovalOperationSchema = v.object({\n\tid: v.string(),\n\tdescription: v.string(),\n\tpermissions: v.object({\n\t\townedObjects: v.optional(v.array(ObjectTypePermissionSchema)),\n\t\tbalances: v.optional(v.array(CoinBalancePermissionSchema)),\n\t\tanyBalance: v.optional(AnyBalancesPermissionSchema),\n\t}),\n});\n\n// TODO: do we want to support custom settings\nexport const AutoApprovalSettingsSchema = v.looseObject({\n\tapprovedOperations: v.array(v.string()),\n\texpiration: v.number(),\n\t// TODO: figure out a better name\n\tremainingTransactions: v.nullable(v.number()),\n\tsharedBudget: v.nullable(v.number()),\n\t// TODO: normalize coin types\n\tcoinBudgets: v.record(v.string(), v.string()),\n});\n\nexport const AutoApprovalPolicySchema = v.object({\n\tschemaVersion: v.literal('1.0.0'),\n\toperations: v.array(AutoApprovalOperationSchema),\n\t// TODO: do we want to split suggested settings into a different type (not everything makes sense as a suggestion)\n\tsuggestedSettings: v.optional(v.partial(AutoApprovalSettingsSchema)),\n});\n\nexport type AutoApprovalSettings = v.InferOutput<typeof AutoApprovalSettingsSchema>;\nexport type AutoApprovalPolicy = v.InferOutput<typeof AutoApprovalPolicySchema>;\nexport type AutoApprovalOperation = v.InferOutput<typeof AutoApprovalOperationSchema>;\n"],
5
- "mappings": ";;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAGA,QAAmB;AAEnB,MAAM,oBAAoB,EAAE,MAAM,CAAC,EAAE,QAAQ,MAAM,GAAG,EAAE,QAAQ,QAAQ,GAAG,EAAE,QAAQ,UAAU,CAAC,CAAC;AAEjG,MAAM,uBAAuB,EAAE,OAAO;AAAA,EACrC,aAAa,EAAE,OAAO;AACvB,CAAC;AAED,MAAM,6BAA6B,EAAE,OAAO;AAAA,EAC3C,GAAG,qBAAqB;AAAA,EACxB,OAAO,EAAE,QAAQ,YAAY;AAAA,EAC7B,YAAY,EAAE,OAAO;AAAA,EACrB,aAAa;AACd,CAAC;AAED,MAAM,8BAA8B,EAAE,OAAO;AAAA,EAC5C,GAAG,qBAAqB;AAAA,EACxB,OAAO,EAAE,QAAQ,aAAa;AAAA,EAC9B,UAAU,EAAE,OAAO;AACpB,CAAC;AAED,MAAM,8BAA8B,EAAE,OAAO;AAAA,EAC5C,GAAG,qBAAqB;AAAA,EACxB,OAAO,EAAE,QAAQ,YAAY;AAC9B,CAAC;AAQD,MAAM,8BAA8B,EAAE,OAAO;AAAA,EAC5C,IAAI,EAAE,OAAO;AAAA,EACb,aAAa,EAAE,OAAO;AAAA,EACtB,aAAa,EAAE,OAAO;AAAA,IACrB,cAAc,EAAE,SAAS,EAAE,MAAM,0BAA0B,CAAC;AAAA,IAC5D,UAAU,EAAE,SAAS,EAAE,MAAM,2BAA2B,CAAC;AAAA,IACzD,YAAY,EAAE,SAAS,2BAA2B;AAAA,EACnD,CAAC;AACF,CAAC;AAGM,MAAM,6BAA6B,EAAE,YAAY;AAAA,EACvD,oBAAoB,EAAE,MAAM,EAAE,OAAO,CAAC;AAAA,EACtC,YAAY,EAAE,OAAO;AAAA;AAAA,EAErB,uBAAuB,EAAE,SAAS,EAAE,OAAO,CAAC;AAAA,EAC5C,cAAc,EAAE,SAAS,EAAE,OAAO,CAAC;AAAA;AAAA,EAEnC,aAAa,EAAE,OAAO,EAAE,OAAO,GAAG,EAAE,OAAO,CAAC;AAC7C,CAAC;AAEM,MAAM,2BAA2B,EAAE,OAAO;AAAA,EAChD,eAAe,EAAE,QAAQ,OAAO;AAAA,EAChC,YAAY,EAAE,MAAM,2BAA2B;AAAA;AAAA,EAE/C,mBAAmB,EAAE,SAAS,EAAE,QAAQ,0BAA0B,CAAC;AACpE,CAAC;",
6
- "names": []
7
- }
@@ -1,115 +0,0 @@
1
- import * as v from 'valibot';
2
- export declare const CreatedObjectSchema: v.ObjectSchema<{
3
- readonly objectId: v.StringSchema<undefined>;
4
- readonly version: v.StringSchema<undefined>;
5
- readonly digest: v.StringSchema<undefined>;
6
- readonly objectType: v.StringSchema<undefined>;
7
- }, undefined>;
8
- export declare const AutoApprovalStateSchema: v.ObjectSchema<{
9
- readonly schemaVersion: v.LiteralSchema<"1.0.0", undefined>;
10
- readonly policy: v.ObjectSchema<{
11
- readonly schemaVersion: v.LiteralSchema<"1.0.0", undefined>;
12
- readonly operations: v.ArraySchema<v.ObjectSchema<{
13
- readonly id: v.StringSchema<undefined>;
14
- readonly description: v.StringSchema<undefined>;
15
- readonly permissions: v.ObjectSchema<{
16
- readonly ownedObjects: v.OptionalSchema<v.ArraySchema<v.ObjectSchema<{
17
- readonly $kind: v.LiteralSchema<"ObjectType", undefined>;
18
- readonly objectType: v.StringSchema<undefined>;
19
- readonly accessLevel: v.UnionSchema<[v.LiteralSchema<"read", undefined>, v.LiteralSchema<"mutate", undefined>, v.LiteralSchema<"transfer", undefined>], undefined>;
20
- readonly description: v.StringSchema<undefined>;
21
- }, undefined>, undefined>, undefined>;
22
- readonly balances: v.OptionalSchema<v.ArraySchema<v.ObjectSchema<{
23
- readonly $kind: v.LiteralSchema<"CoinBalance", undefined>;
24
- readonly coinType: v.StringSchema<undefined>;
25
- readonly description: v.StringSchema<undefined>;
26
- }, undefined>, undefined>, undefined>;
27
- readonly anyBalance: v.OptionalSchema<v.ObjectSchema<{
28
- readonly $kind: v.LiteralSchema<"AnyBalance", undefined>;
29
- readonly description: v.StringSchema<undefined>;
30
- }, undefined>, undefined>;
31
- }, undefined>;
32
- }, undefined>, undefined>;
33
- readonly suggestedSettings: v.OptionalSchema<Omit<v.LooseObjectSchema<{
34
- readonly approvedOperations: v.ArraySchema<v.StringSchema<undefined>, undefined>;
35
- readonly expiration: v.NumberSchema<undefined>;
36
- readonly remainingTransactions: v.NullableSchema<v.NumberSchema<undefined>, undefined>;
37
- readonly sharedBudget: v.NullableSchema<v.NumberSchema<undefined>, undefined>;
38
- readonly coinBudgets: v.RecordSchema<v.StringSchema<undefined>, v.StringSchema<undefined>, undefined>;
39
- }, undefined>, "entries" | "~types" | "~run" | "~standard"> & {
40
- readonly entries: {
41
- readonly approvedOperations: v.OptionalSchema<v.ArraySchema<v.StringSchema<undefined>, undefined>, undefined>;
42
- readonly expiration: v.OptionalSchema<v.NumberSchema<undefined>, undefined>;
43
- readonly remainingTransactions: v.OptionalSchema<v.NullableSchema<v.NumberSchema<undefined>, undefined>, undefined>;
44
- readonly sharedBudget: v.OptionalSchema<v.NullableSchema<v.NumberSchema<undefined>, undefined>, undefined>;
45
- readonly coinBudgets: v.OptionalSchema<v.RecordSchema<v.StringSchema<undefined>, v.StringSchema<undefined>, undefined>, undefined>;
46
- };
47
- readonly "~standard": v.StandardProps<{
48
- approvedOperations?: string[] | undefined;
49
- expiration?: number | undefined;
50
- remainingTransactions?: number | null | undefined;
51
- sharedBudget?: number | null | undefined;
52
- coinBudgets?: {
53
- [x: string]: string;
54
- } | undefined;
55
- } & {
56
- [key: string]: unknown;
57
- }, {
58
- approvedOperations?: string[] | undefined;
59
- expiration?: number | undefined;
60
- remainingTransactions?: number | null | undefined;
61
- sharedBudget?: number | null | undefined;
62
- coinBudgets?: {
63
- [x: string]: string;
64
- } | undefined;
65
- } & {
66
- [key: string]: unknown;
67
- }>;
68
- readonly "~run": (dataset: v.UnknownDataset, config: v.Config<v.BaseIssue<unknown>>) => v.OutputDataset<{
69
- approvedOperations?: string[] | undefined;
70
- expiration?: number | undefined;
71
- remainingTransactions?: number | null | undefined;
72
- sharedBudget?: number | null | undefined;
73
- coinBudgets?: {
74
- [x: string]: string;
75
- } | undefined;
76
- } & {
77
- [key: string]: unknown;
78
- }, v.StringIssue | v.ArrayIssue | v.NumberIssue | v.RecordIssue | v.LooseObjectIssue>;
79
- readonly "~types"?: {
80
- readonly input: {
81
- approvedOperations?: string[] | undefined;
82
- expiration?: number | undefined;
83
- remainingTransactions?: number | null | undefined;
84
- sharedBudget?: number | null | undefined;
85
- coinBudgets?: {
86
- [x: string]: string;
87
- } | undefined;
88
- } & {
89
- [key: string]: unknown;
90
- };
91
- readonly output: {
92
- approvedOperations?: string[] | undefined;
93
- expiration?: number | undefined;
94
- remainingTransactions?: number | null | undefined;
95
- sharedBudget?: number | null | undefined;
96
- coinBudgets?: {
97
- [x: string]: string;
98
- } | undefined;
99
- } & {
100
- [key: string]: unknown;
101
- };
102
- readonly issue: v.StringIssue | v.ArrayIssue | v.NumberIssue | v.RecordIssue | v.LooseObjectIssue;
103
- } | undefined;
104
- }, undefined>;
105
- }, undefined>;
106
- readonly settings: v.NullableSchema<v.LooseObjectSchema<{
107
- readonly approvedOperations: v.ArraySchema<v.StringSchema<undefined>, undefined>;
108
- readonly expiration: v.NumberSchema<undefined>;
109
- readonly remainingTransactions: v.NullableSchema<v.NumberSchema<undefined>, undefined>;
110
- readonly sharedBudget: v.NullableSchema<v.NumberSchema<undefined>, undefined>;
111
- readonly coinBudgets: v.RecordSchema<v.StringSchema<undefined>, v.StringSchema<undefined>, undefined>;
112
- }, undefined>, undefined>;
113
- readonly pendingDigests: v.ArraySchema<v.StringSchema<undefined>, undefined>;
114
- }, undefined>;
115
- export type AutoApprovalState = v.InferOutput<typeof AutoApprovalStateSchema>;
@@ -1,49 +0,0 @@
1
- "use strict";
2
- var __create = Object.create;
3
- var __defProp = Object.defineProperty;
4
- var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
5
- var __getOwnPropNames = Object.getOwnPropertyNames;
6
- var __getProtoOf = Object.getPrototypeOf;
7
- var __hasOwnProp = Object.prototype.hasOwnProperty;
8
- var __export = (target, all) => {
9
- for (var name in all)
10
- __defProp(target, name, { get: all[name], enumerable: true });
11
- };
12
- var __copyProps = (to, from, except, desc) => {
13
- if (from && typeof from === "object" || typeof from === "function") {
14
- for (let key of __getOwnPropNames(from))
15
- if (!__hasOwnProp.call(to, key) && key !== except)
16
- __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
17
- }
18
- return to;
19
- };
20
- var __toESM = (mod, isNodeMode, target) => (target = mod != null ? __create(__getProtoOf(mod)) : {}, __copyProps(
21
- // If the importer is in node compatibility mode or this is not an ESM
22
- // file that has been converted to a CommonJS file using a Babel-
23
- // compatible transform (i.e. "__esModule" has not been set), then set
24
- // "default" to the CommonJS "module.exports" for node compatibility.
25
- isNodeMode || !mod || !mod.__esModule ? __defProp(target, "default", { value: mod, enumerable: true }) : target,
26
- mod
27
- ));
28
- var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
29
- var state_exports = {};
30
- __export(state_exports, {
31
- AutoApprovalStateSchema: () => AutoApprovalStateSchema,
32
- CreatedObjectSchema: () => CreatedObjectSchema
33
- });
34
- module.exports = __toCommonJS(state_exports);
35
- var v = __toESM(require("valibot"));
36
- var import_policy = require("./policy.js");
37
- const CreatedObjectSchema = v.object({
38
- objectId: v.string(),
39
- version: v.string(),
40
- digest: v.string(),
41
- objectType: v.string()
42
- });
43
- const AutoApprovalStateSchema = v.object({
44
- schemaVersion: v.literal("1.0.0"),
45
- policy: import_policy.AutoApprovalPolicySchema,
46
- settings: v.nullable(import_policy.AutoApprovalSettingsSchema),
47
- pendingDigests: v.array(v.string())
48
- });
49
- //# sourceMappingURL=state.js.map
@@ -1,7 +0,0 @@
1
- {
2
- "version": 3,
3
- "sources": ["../../../../src/auto-approvals/schemas/state.ts"],
4
- "sourcesContent": ["// Copyright (c) Mysten Labs, Inc.\n// SPDX-License-Identifier: Apache-2.0\n\nimport * as v from 'valibot';\nimport { AutoApprovalPolicySchema, AutoApprovalSettingsSchema } from './policy.js';\n\nexport const CreatedObjectSchema = v.object({\n\tobjectId: v.string(),\n\tversion: v.string(),\n\tdigest: v.string(),\n\tobjectType: v.string(),\n});\n\nexport const AutoApprovalStateSchema = v.object({\n\tschemaVersion: v.literal('1.0.0'),\n\tpolicy: AutoApprovalPolicySchema,\n\tsettings: v.nullable(AutoApprovalSettingsSchema),\n\tpendingDigests: v.array(v.string()),\n});\n\nexport type AutoApprovalState = v.InferOutput<typeof AutoApprovalStateSchema>;\n"],
5
- "mappings": ";;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAGA,QAAmB;AACnB,oBAAqE;AAE9D,MAAM,sBAAsB,EAAE,OAAO;AAAA,EAC3C,UAAU,EAAE,OAAO;AAAA,EACnB,SAAS,EAAE,OAAO;AAAA,EAClB,QAAQ,EAAE,OAAO;AAAA,EACjB,YAAY,EAAE,OAAO;AACtB,CAAC;AAEM,MAAM,0BAA0B,EAAE,OAAO;AAAA,EAC/C,eAAe,EAAE,QAAQ,OAAO;AAAA,EAChC,QAAQ;AAAA,EACR,UAAU,EAAE,SAAS,wCAA0B;AAAA,EAC/C,gBAAgB,EAAE,MAAM,EAAE,OAAO,CAAC;AACnC,CAAC;",
6
- "names": []
7
- }
@@ -1,2 +0,0 @@
1
- export * from './transaction-analyzer/index.js';
2
- export * from './auto-approvals/index.js';
package/dist/cjs/index.js DELETED
@@ -1,20 +0,0 @@
1
- "use strict";
2
- var __defProp = Object.defineProperty;
3
- var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
4
- var __getOwnPropNames = Object.getOwnPropertyNames;
5
- var __hasOwnProp = Object.prototype.hasOwnProperty;
6
- var __copyProps = (to, from, except, desc) => {
7
- if (from && typeof from === "object" || typeof from === "function") {
8
- for (let key of __getOwnPropNames(from))
9
- if (!__hasOwnProp.call(to, key) && key !== except)
10
- __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
11
- }
12
- return to;
13
- };
14
- var __reExport = (target, mod, secondTarget) => (__copyProps(target, mod, "default"), secondTarget && __copyProps(secondTarget, mod, "default"));
15
- var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
16
- var index_exports = {};
17
- module.exports = __toCommonJS(index_exports);
18
- __reExport(index_exports, require("./transaction-analyzer/index.js"), module.exports);
19
- __reExport(index_exports, require("./auto-approvals/index.js"), module.exports);
20
- //# sourceMappingURL=index.js.map
@@ -1,7 +0,0 @@
1
- {
2
- "version": 3,
3
- "sources": ["../../src/index.ts"],
4
- "sourcesContent": ["// Copyright (c) Mysten Labs, Inc.\n// SPDX-License-Identifier: Apache-2.0\n\nexport * from './transaction-analyzer/index.js';\nexport * from './auto-approvals/index.js';\n"],
5
- "mappings": ";;;;;;;;;;;;;;;AAAA;AAAA;AAGA,0BAAc,4CAHd;AAIA,0BAAc,sCAJd;",
6
- "names": []
7
- }
@@ -1,5 +0,0 @@
1
- {
2
- "private": true,
3
- "type": "commonjs",
4
- "sideEffects": false
5
- }
@@ -1,34 +0,0 @@
1
- import { Transaction } from '@haneullabs/haneul/transactions';
2
- import type { Defined, Simplify, UnionToIntersection } from '../util.js';
3
- export declare function createAnalyzer<T extends Defined, Deps extends Record<string, Analyzer<Defined, any, any>> = {}, Options = object>({ cacheKey, dependencies, analyze, }: {
4
- cacheKey?: unknown;
5
- dependencies?: Deps;
6
- analyze: (options: Options, transaction: Transaction) => (analysis: {
7
- [k in keyof Deps]: Deps[k] extends Analyzer<infer R, any, any> ? R : never;
8
- }) => Promise<AnalyzerResult<T>> | AnalyzerResult<T>;
9
- }): Analyzer<T, Simplify<UnionToIntersection<Options | { [k in keyof Deps]: Deps[k] extends Analyzer<any, infer O, any> ? O : never; }[keyof Deps]>>, { [k in keyof Deps]: Deps[k] extends Analyzer<infer R, any, any> ? R : never; }>;
10
- type OptionsFromAnalyzers<T extends Record<string, Analyzer<Defined, any, any>>> = Simplify<{
11
- [K in keyof T]: T[K] extends Analyzer<Defined, infer O, any> ? O : never;
12
- }[keyof T] & {
13
- transaction: string | Uint8Array;
14
- }>;
15
- export declare function analyze<T extends Record<string, Analyzer<Defined, any, any>>>(analyzers: T, { transaction, ...options }: OptionsFromAnalyzers<T>): Promise<{ [k in keyof T]: T[k] extends Analyzer<infer R extends Defined, any, any> ? AnalyzerResult<R> : never; }>;
16
- export type Analyzer<T extends Defined, Options = object, Analysis extends Record<string, Defined> = {}> = {
17
- cacheKey?: unknown;
18
- dependencies: {
19
- [k in keyof Analysis]: Analyzer<Analysis[k], Options>;
20
- };
21
- analyze: (options: Options, transaction: Transaction) => (analysis: Analysis) => AnalyzerResult<T> | Promise<AnalyzerResult<T>>;
22
- };
23
- export type AnalyzerResult<T extends Defined = Defined> = {
24
- result: T;
25
- issues?: never;
26
- } | {
27
- issues: TransactionAnalysisIssue[];
28
- result?: never;
29
- };
30
- export interface TransactionAnalysisIssue {
31
- message: string;
32
- error?: Error;
33
- }
34
- export {};
@@ -1,94 +0,0 @@
1
- "use strict";
2
- var __defProp = Object.defineProperty;
3
- var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
4
- var __getOwnPropNames = Object.getOwnPropertyNames;
5
- var __hasOwnProp = Object.prototype.hasOwnProperty;
6
- var __export = (target, all) => {
7
- for (var name in all)
8
- __defProp(target, name, { get: all[name], enumerable: true });
9
- };
10
- var __copyProps = (to, from, except, desc) => {
11
- if (from && typeof from === "object" || typeof from === "function") {
12
- for (let key of __getOwnPropNames(from))
13
- if (!__hasOwnProp.call(to, key) && key !== except)
14
- __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
15
- }
16
- return to;
17
- };
18
- var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
19
- var analyzer_exports = {};
20
- __export(analyzer_exports, {
21
- analyze: () => analyze,
22
- createAnalyzer: () => createAnalyzer
23
- });
24
- module.exports = __toCommonJS(analyzer_exports);
25
- var import_transactions = require("@haneullabs/haneul/transactions");
26
- function createAnalyzer({
27
- cacheKey,
28
- dependencies,
29
- analyze: analyze2
30
- }) {
31
- return {
32
- cacheKey,
33
- dependencies,
34
- analyze: analyze2
35
- };
36
- }
37
- async function analyze(analyzers, { transaction, ...options }) {
38
- const tx = import_transactions.Transaction.from(transaction);
39
- const analyzerMap = /* @__PURE__ */ new Map();
40
- function initializeAnalyzer(analyzer) {
41
- const cacheKey = analyzer.cacheKey ?? analyzer;
42
- if (!analyzerMap.has(cacheKey)) {
43
- const deps = analyzer.dependencies || {};
44
- analyzerMap.set(cacheKey, analyzer.analyze(options, tx));
45
- Object.values(deps).forEach((dep) => initializeAnalyzer(dep));
46
- }
47
- return analyzerMap.get(cacheKey);
48
- }
49
- Object.values(analyzers).forEach((analyzer) => initializeAnalyzer(analyzer));
50
- const analysisMap = /* @__PURE__ */ new Map();
51
- async function runAnalyzer(analyzer) {
52
- const deps = Object.fromEntries(
53
- await Promise.all(
54
- Object.entries(analyzer.dependencies || {}).map(
55
- async ([key, dep]) => [key, await getAnalysis(dep)]
56
- )
57
- )
58
- );
59
- const issues = /* @__PURE__ */ new Set();
60
- for (const dep of Object.values(deps)) {
61
- if (dep.issues) {
62
- dep.issues.forEach((issue) => issues.add(issue));
63
- }
64
- }
65
- if (issues.size) {
66
- return { issues: [...issues] };
67
- }
68
- try {
69
- const result = await analyzerMap.get(analyzer.cacheKey ?? analyzer)(
70
- Object.fromEntries(Object.entries(deps).map(([key, dep]) => [key, dep.result]))
71
- );
72
- return result;
73
- } catch (error) {
74
- return {
75
- issues: [
76
- { message: `Unexpected error while analyzing transaction: ${error.message}` }
77
- ]
78
- };
79
- }
80
- }
81
- function getAnalysis(analyzer) {
82
- const cacheKey = analyzer.cacheKey ?? analyzer;
83
- if (!analysisMap.has(cacheKey)) {
84
- analysisMap.set(cacheKey, runAnalyzer(analyzer));
85
- }
86
- return analysisMap.get(cacheKey);
87
- }
88
- return Object.fromEntries(
89
- await Promise.all(
90
- Object.entries(analyzers).map(async ([key, analyzer]) => [key, await getAnalysis(analyzer)])
91
- )
92
- );
93
- }
94
- //# sourceMappingURL=analyzer.js.map
@@ -1,7 +0,0 @@
1
- {
2
- "version": 3,
3
- "sources": ["../../../src/transaction-analyzer/analyzer.ts"],
4
- "sourcesContent": ["// Copyright (c) Mysten Labs, Inc.\n// SPDX-License-Identifier: Apache-2.0\n/* eslint-disable @typescript-eslint/ban-types */\n\nimport { Transaction } from '@haneullabs/haneul/transactions';\nimport type { Defined, Simplify, UnionToIntersection } from '../util.js';\n\nexport function createAnalyzer<\n\tT extends Defined,\n\tDeps extends Record<string, Analyzer<Defined, any, any>> = {},\n\tOptions = object,\n>({\n\tcacheKey,\n\tdependencies,\n\tanalyze,\n}: {\n\tcacheKey?: unknown;\n\tdependencies?: Deps;\n\tanalyze: (\n\t\toptions: Options,\n\t\ttransaction: Transaction,\n\t) => (analysis: {\n\t\t[k in keyof Deps]: Deps[k] extends Analyzer<infer R, any, any> ? R : never;\n\t}) => Promise<AnalyzerResult<T>> | AnalyzerResult<T>;\n}) {\n\treturn {\n\t\tcacheKey,\n\t\tdependencies,\n\t\tanalyze: analyze,\n\t} as Analyzer<\n\t\tT,\n\t\tSimplify<\n\t\t\tUnionToIntersection<\n\t\t\t\t| Options\n\t\t\t\t| {\n\t\t\t\t\t\t[k in keyof Deps]: Deps[k] extends Analyzer<any, infer O, any> ? O : never;\n\t\t\t\t }[keyof Deps]\n\t\t\t>\n\t\t>,\n\t\t{\n\t\t\t[k in keyof Deps]: Deps[k] extends Analyzer<infer R, any, any> ? R : never;\n\t\t}\n\t>;\n}\n\ntype OptionsFromAnalyzers<T extends Record<string, Analyzer<Defined, any, any>>> = Simplify<\n\t{\n\t\t[K in keyof T]: T[K] extends Analyzer<Defined, infer O, any> ? O : never;\n\t}[keyof T] & {\n\t\ttransaction: string | Uint8Array;\n\t}\n>;\n\nexport async function analyze<T extends Record<string, Analyzer<Defined, any, any>>>(\n\tanalyzers: T,\n\t{ transaction, ...options }: OptionsFromAnalyzers<T>,\n) {\n\tconst tx = Transaction.from(transaction);\n\tconst analyzerMap = new Map<\n\t\tunknown,\n\t\t(analysis: object) => AnalyzerResult | Promise<AnalyzerResult>\n\t>();\n\n\tfunction initializeAnalyzer(analyzer: Analyzer<Defined>) {\n\t\tconst cacheKey = analyzer.cacheKey ?? analyzer;\n\n\t\tif (!analyzerMap.has(cacheKey)) {\n\t\t\tconst deps: Record<string, Analyzer<Defined>> = analyzer.dependencies || {};\n\t\t\tanalyzerMap.set(cacheKey, analyzer.analyze(options, tx));\n\n\t\t\tObject.values(deps).forEach((dep) => initializeAnalyzer(dep));\n\t\t}\n\n\t\treturn analyzerMap.get(cacheKey)!;\n\t}\n\n\tObject.values(analyzers).forEach((analyzer) => initializeAnalyzer(analyzer));\n\n\tconst analysisMap = new Map<unknown, Promise<AnalyzerResult>>();\n\n\tasync function runAnalyzer(analyzer: Analyzer<Defined>): Promise<AnalyzerResult> {\n\t\tconst deps: Record<string, AnalyzerResult> = Object.fromEntries(\n\t\t\tawait Promise.all(\n\t\t\t\tObject.entries((analyzer.dependencies || {}) as Record<string, Analyzer<Defined>>).map(\n\t\t\t\t\tasync ([key, dep]) => [key, await getAnalysis(dep)],\n\t\t\t\t),\n\t\t\t),\n\t\t);\n\n\t\tconst issues = new Set<TransactionAnalysisIssue>();\n\n\t\tfor (const dep of Object.values(deps)) {\n\t\t\tif (dep.issues) {\n\t\t\t\tdep.issues.forEach((issue) => issues.add(issue));\n\t\t\t}\n\t\t}\n\n\t\tif (issues.size) {\n\t\t\treturn { issues: [...issues] };\n\t\t}\n\n\t\ttry {\n\t\t\tconst result = await analyzerMap.get(analyzer.cacheKey ?? analyzer)!(\n\t\t\t\tObject.fromEntries(Object.entries(deps).map(([key, dep]) => [key, dep.result])),\n\t\t\t);\n\n\t\t\treturn result;\n\t\t} catch (error) {\n\t\t\treturn {\n\t\t\t\tissues: [\n\t\t\t\t\t{ message: `Unexpected error while analyzing transaction: ${(error as Error).message}` },\n\t\t\t\t],\n\t\t\t};\n\t\t}\n\t}\n\n\tfunction getAnalysis(analyzer: Analyzer<Defined>): Promise<AnalyzerResult> {\n\t\tconst cacheKey = analyzer.cacheKey ?? analyzer;\n\n\t\tif (!analysisMap.has(cacheKey)) {\n\t\t\tanalysisMap.set(cacheKey, runAnalyzer(analyzer));\n\t\t}\n\n\t\treturn analysisMap.get(cacheKey)!;\n\t}\n\n\treturn Object.fromEntries(\n\t\tawait Promise.all(\n\t\t\tObject.entries(analyzers).map(async ([key, analyzer]) => [key, await getAnalysis(analyzer)]),\n\t\t),\n\t) as {\n\t\t[k in keyof T]: T[k] extends Analyzer<infer R, any, any> ? AnalyzerResult<R> : never;\n\t};\n}\n\nexport type Analyzer<\n\tT extends Defined,\n\tOptions = object,\n\tAnalysis extends Record<string, Defined> = {},\n> = {\n\tcacheKey?: unknown;\n\tdependencies: {\n\t\t[k in keyof Analysis]: Analyzer<Analysis[k], Options>;\n\t};\n\tanalyze: (\n\t\toptions: Options,\n\t\ttransaction: Transaction,\n\t) => (analysis: Analysis) => AnalyzerResult<T> | Promise<AnalyzerResult<T>>;\n};\n\nexport type AnalyzerResult<T extends Defined = Defined> =\n\t| {\n\t\t\tresult: T;\n\t\t\tissues?: never;\n\t }\n\t| {\n\t\t\tissues: TransactionAnalysisIssue[];\n\t\t\tresult?: never;\n\t };\n\nexport interface TransactionAnalysisIssue {\n\tmessage: string;\n\terror?: Error;\n}\n"],
5
- "mappings": ";;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAIA,0BAA4B;AAGrB,SAAS,eAId;AAAA,EACD;AAAA,EACA;AAAA,EACA,SAAAA;AACD,GASG;AACF,SAAO;AAAA,IACN;AAAA,IACA;AAAA,IACA,SAASA;AAAA,EACV;AAcD;AAUA,eAAsB,QACrB,WACA,EAAE,aAAa,GAAG,QAAQ,GACzB;AACD,QAAM,KAAK,gCAAY,KAAK,WAAW;AACvC,QAAM,cAAc,oBAAI,IAGtB;AAEF,WAAS,mBAAmB,UAA6B;AACxD,UAAM,WAAW,SAAS,YAAY;AAEtC,QAAI,CAAC,YAAY,IAAI,QAAQ,GAAG;AAC/B,YAAM,OAA0C,SAAS,gBAAgB,CAAC;AAC1E,kBAAY,IAAI,UAAU,SAAS,QAAQ,SAAS,EAAE,CAAC;AAEvD,aAAO,OAAO,IAAI,EAAE,QAAQ,CAAC,QAAQ,mBAAmB,GAAG,CAAC;AAAA,IAC7D;AAEA,WAAO,YAAY,IAAI,QAAQ;AAAA,EAChC;AAEA,SAAO,OAAO,SAAS,EAAE,QAAQ,CAAC,aAAa,mBAAmB,QAAQ,CAAC;AAE3E,QAAM,cAAc,oBAAI,IAAsC;AAE9D,iBAAe,YAAY,UAAsD;AAChF,UAAM,OAAuC,OAAO;AAAA,MACnD,MAAM,QAAQ;AAAA,QACb,OAAO,QAAS,SAAS,gBAAgB,CAAC,CAAuC,EAAE;AAAA,UAClF,OAAO,CAAC,KAAK,GAAG,MAAM,CAAC,KAAK,MAAM,YAAY,GAAG,CAAC;AAAA,QACnD;AAAA,MACD;AAAA,IACD;AAEA,UAAM,SAAS,oBAAI,IAA8B;AAEjD,eAAW,OAAO,OAAO,OAAO,IAAI,GAAG;AACtC,UAAI,IAAI,QAAQ;AACf,YAAI,OAAO,QAAQ,CAAC,UAAU,OAAO,IAAI,KAAK,CAAC;AAAA,MAChD;AAAA,IACD;AAEA,QAAI,OAAO,MAAM;AAChB,aAAO,EAAE,QAAQ,CAAC,GAAG,MAAM,EAAE;AAAA,IAC9B;AAEA,QAAI;AACH,YAAM,SAAS,MAAM,YAAY,IAAI,SAAS,YAAY,QAAQ;AAAA,QACjE,OAAO,YAAY,OAAO,QAAQ,IAAI,EAAE,IAAI,CAAC,CAAC,KAAK,GAAG,MAAM,CAAC,KAAK,IAAI,MAAM,CAAC,CAAC;AAAA,MAC/E;AAEA,aAAO;AAAA,IACR,SAAS,OAAO;AACf,aAAO;AAAA,QACN,QAAQ;AAAA,UACP,EAAE,SAAS,iDAAkD,MAAgB,OAAO,GAAG;AAAA,QACxF;AAAA,MACD;AAAA,IACD;AAAA,EACD;AAEA,WAAS,YAAY,UAAsD;AAC1E,UAAM,WAAW,SAAS,YAAY;AAEtC,QAAI,CAAC,YAAY,IAAI,QAAQ,GAAG;AAC/B,kBAAY,IAAI,UAAU,YAAY,QAAQ,CAAC;AAAA,IAChD;AAEA,WAAO,YAAY,IAAI,QAAQ;AAAA,EAChC;AAEA,SAAO,OAAO;AAAA,IACb,MAAM,QAAQ;AAAA,MACb,OAAO,QAAQ,SAAS,EAAE,IAAI,OAAO,CAAC,KAAK,QAAQ,MAAM,CAAC,KAAK,MAAM,YAAY,QAAQ,CAAC,CAAC;AAAA,IAC5F;AAAA,EACD;AAGD;",
6
- "names": ["analyze"]
7
- }
@@ -1,9 +0,0 @@
1
- export { analyze, createAnalyzer } from './analyzer.js';
2
- export type { AnalyzerResult, TransactionAnalysisIssue } from './analyzer.js';
3
- export type { AnalyzedCoin } from './rules/coins.js';
4
- export type { AnalyzedCommandArgument, AnalyzedCommand } from './rules/commands.js';
5
- export type { AnalyzedObject } from './rules/objects.js';
6
- export type { CoinFlow } from './rules/coin-flows.js';
7
- export type { CoinValueAnalyzerOptions, CoinValueAnalysis } from './rules/coin-value.js';
8
- export type { AnalyzedCommandInput } from './rules/inputs.js';
9
- export { analyzers } from './rules/index.js';
@@ -1,28 +0,0 @@
1
- "use strict";
2
- var __defProp = Object.defineProperty;
3
- var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
4
- var __getOwnPropNames = Object.getOwnPropertyNames;
5
- var __hasOwnProp = Object.prototype.hasOwnProperty;
6
- var __export = (target, all) => {
7
- for (var name in all)
8
- __defProp(target, name, { get: all[name], enumerable: true });
9
- };
10
- var __copyProps = (to, from, except, desc) => {
11
- if (from && typeof from === "object" || typeof from === "function") {
12
- for (let key of __getOwnPropNames(from))
13
- if (!__hasOwnProp.call(to, key) && key !== except)
14
- __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
15
- }
16
- return to;
17
- };
18
- var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
19
- var transaction_analyzer_exports = {};
20
- __export(transaction_analyzer_exports, {
21
- analyze: () => import_analyzer.analyze,
22
- analyzers: () => import_rules.analyzers,
23
- createAnalyzer: () => import_analyzer.createAnalyzer
24
- });
25
- module.exports = __toCommonJS(transaction_analyzer_exports);
26
- var import_analyzer = require("./analyzer.js");
27
- var import_rules = require("./rules/index.js");
28
- //# sourceMappingURL=index.js.map
@@ -1,7 +0,0 @@
1
- {
2
- "version": 3,
3
- "sources": ["../../../src/transaction-analyzer/index.ts"],
4
- "sourcesContent": ["// Copyright (c) Mysten Labs, Inc.\n// SPDX-License-Identifier: Apache-2.0\n\nexport { analyze, createAnalyzer } from './analyzer.js';\nexport type { AnalyzerResult, TransactionAnalysisIssue } from './analyzer.js';\n\nexport type { AnalyzedCoin } from './rules/coins.js';\nexport type { AnalyzedCommandArgument, AnalyzedCommand } from './rules/commands.js';\nexport type { AnalyzedObject } from './rules/objects.js';\nexport type { CoinFlow } from './rules/coin-flows.js';\nexport type { CoinValueAnalyzerOptions, CoinValueAnalysis } from './rules/coin-value.js';\nexport type { AnalyzedCommandInput } from './rules/inputs.js';\n\nexport { analyzers } from './rules/index.js';\n"],
5
- "mappings": ";;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAGA,sBAAwC;AAUxC,mBAA0B;",
6
- "names": []
7
- }
@@ -1,29 +0,0 @@
1
- export declare const accessLevel: import("../analyzer.js").Analyzer<Record<string, "read" | "mutate" | "transfer">, {
2
- client: import("@haneullabs/haneul/dist/cjs/experimental/client.js").Experimental_BaseClient & {
3
- core: import("@haneullabs/haneul/dist/cjs/experimental/core.js").Experimental_CoreClient;
4
- };
5
- }, {
6
- commands: import("./commands.js").AnalyzedCommand[];
7
- objects: {
8
- ownerAddress: string | null;
9
- id: string;
10
- version: string;
11
- digest: string;
12
- owner: import("@haneullabs/haneul/dist/cjs/experimental/types.js").Experimental_HaneulClientTypes.ObjectOwner;
13
- type: string;
14
- content: PromiseLike<Uint8Array>;
15
- previousTransaction: string | null;
16
- }[];
17
- gasCoins: {
18
- coinType: string;
19
- balance: bigint;
20
- ownerAddress: string | null;
21
- id: string;
22
- version: string;
23
- digest: string;
24
- owner: import("@haneullabs/haneul/dist/cjs/experimental/types.js").Experimental_HaneulClientTypes.ObjectOwner;
25
- type: string;
26
- content: PromiseLike<Uint8Array>;
27
- previousTransaction: string | null;
28
- }[];
29
- }>;
@@ -1,106 +0,0 @@
1
- "use strict";
2
- var __defProp = Object.defineProperty;
3
- var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
4
- var __getOwnPropNames = Object.getOwnPropertyNames;
5
- var __hasOwnProp = Object.prototype.hasOwnProperty;
6
- var __export = (target, all) => {
7
- for (var name in all)
8
- __defProp(target, name, { get: all[name], enumerable: true });
9
- };
10
- var __copyProps = (to, from, except, desc) => {
11
- if (from && typeof from === "object" || typeof from === "function") {
12
- for (let key of __getOwnPropNames(from))
13
- if (!__hasOwnProp.call(to, key) && key !== except)
14
- __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
15
- }
16
- return to;
17
- };
18
- var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
19
- var accessLevel_exports = {};
20
- __export(accessLevel_exports, {
21
- accessLevel: () => accessLevel
22
- });
23
- module.exports = __toCommonJS(accessLevel_exports);
24
- var import_analyzer = require("../analyzer.js");
25
- var import_coins = require("./coins.js");
26
- var import_commands = require("./commands.js");
27
- var import_objects = require("./objects.js");
28
- const accessLevel = (0, import_analyzer.createAnalyzer)({
29
- dependencies: { commands: import_commands.commands, objects: import_objects.objects, gasCoins: import_coins.gasCoins },
30
- analyze: () => async ({ commands: commands2, objects: objects2, gasCoins: gasCoins2 }) => {
31
- const issues = [];
32
- const gasCoinIds = new Set(gasCoins2.map((g) => g.id));
33
- const accessLevels = Object.fromEntries(
34
- objects2.map((obj) => [obj.id, "read"])
35
- );
36
- for (const id of gasCoinIds) {
37
- accessLevels[id] = "mutate";
38
- }
39
- for (const command of commands2) {
40
- switch (command.$kind) {
41
- case "TransferObjects":
42
- for (const obj of command.objects) {
43
- updateFromArgument(obj);
44
- }
45
- break;
46
- case "MoveCall":
47
- for (const arg of command.arguments) {
48
- updateFromArgument(arg);
49
- }
50
- break;
51
- case "SplitCoins":
52
- updateFromArgument(command.coin);
53
- break;
54
- case "MergeCoins":
55
- updateFromArgument(command.destination);
56
- for (const src of command.sources) {
57
- updateFromArgument(src);
58
- }
59
- break;
60
- case "MakeMoveVec":
61
- for (const el of command.elements) {
62
- updateFromArgument(el);
63
- }
64
- break;
65
- case "Upgrade":
66
- updateFromArgument(command.ticket);
67
- break;
68
- case "Publish":
69
- break;
70
- default:
71
- issues.push({ message: `Unknown command type: ${JSON.stringify(command)}` });
72
- }
73
- }
74
- if (issues.length) {
75
- return { issues };
76
- }
77
- return {
78
- result: accessLevels
79
- };
80
- function updateFromArgument(arg) {
81
- switch (arg.$kind) {
82
- case "GasCoin":
83
- for (const id of gasCoinIds) {
84
- updateAccessLevel(id, arg.accessLevel);
85
- }
86
- break;
87
- case "Object":
88
- updateAccessLevel(arg.object.id, arg.accessLevel);
89
- break;
90
- }
91
- }
92
- function updateAccessLevel(id, level) {
93
- const current = accessLevels[id];
94
- if (current === "transfer") {
95
- return;
96
- } else if (current === "mutate") {
97
- if (level === "transfer") {
98
- accessLevels[id] = "transfer";
99
- }
100
- } else {
101
- accessLevels[id] = level;
102
- }
103
- }
104
- }
105
- });
106
- //# sourceMappingURL=accessLevel.js.map