@haneullabs/wallet-sdk 0.1.0

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 (133) hide show
  1. package/CHANGELOG.md +69 -0
  2. package/README.md +1 -0
  3. package/dist/cjs/auto-approvals/analyzer.d.ts +71 -0
  4. package/dist/cjs/auto-approvals/analyzer.js +70 -0
  5. package/dist/cjs/auto-approvals/analyzer.js.map +7 -0
  6. package/dist/cjs/auto-approvals/index.d.ts +6 -0
  7. package/dist/cjs/auto-approvals/index.js +33 -0
  8. package/dist/cjs/auto-approvals/index.js.map +7 -0
  9. package/dist/cjs/auto-approvals/intent.d.ts +5 -0
  10. package/dist/cjs/auto-approvals/intent.js +65 -0
  11. package/dist/cjs/auto-approvals/intent.js.map +7 -0
  12. package/dist/cjs/auto-approvals/manager.d.ts +31 -0
  13. package/dist/cjs/auto-approvals/manager.js +328 -0
  14. package/dist/cjs/auto-approvals/manager.js.map +7 -0
  15. package/dist/cjs/auto-approvals/schemas/index.d.ts +4 -0
  16. package/dist/cjs/auto-approvals/schemas/index.js +28 -0
  17. package/dist/cjs/auto-approvals/schemas/index.js.map +7 -0
  18. package/dist/cjs/auto-approvals/schemas/policy.d.ts +145 -0
  19. package/dist/cjs/auto-approvals/schemas/policy.js +79 -0
  20. package/dist/cjs/auto-approvals/schemas/policy.js.map +7 -0
  21. package/dist/cjs/auto-approvals/schemas/state.d.ts +115 -0
  22. package/dist/cjs/auto-approvals/schemas/state.js +49 -0
  23. package/dist/cjs/auto-approvals/schemas/state.js.map +7 -0
  24. package/dist/cjs/index.d.ts +2 -0
  25. package/dist/cjs/index.js +20 -0
  26. package/dist/cjs/index.js.map +7 -0
  27. package/dist/cjs/package.json +5 -0
  28. package/dist/cjs/transaction-analyzer/analyzer.d.ts +34 -0
  29. package/dist/cjs/transaction-analyzer/analyzer.js +94 -0
  30. package/dist/cjs/transaction-analyzer/analyzer.js.map +7 -0
  31. package/dist/cjs/transaction-analyzer/index.d.ts +9 -0
  32. package/dist/cjs/transaction-analyzer/index.js +28 -0
  33. package/dist/cjs/transaction-analyzer/index.js.map +7 -0
  34. package/dist/cjs/transaction-analyzer/rules/accessLevel.d.ts +29 -0
  35. package/dist/cjs/transaction-analyzer/rules/accessLevel.js +106 -0
  36. package/dist/cjs/transaction-analyzer/rules/accessLevel.js.map +7 -0
  37. package/dist/cjs/transaction-analyzer/rules/coin-flows.d.ts +313 -0
  38. package/dist/cjs/transaction-analyzer/rules/coin-flows.js +179 -0
  39. package/dist/cjs/transaction-analyzer/rules/coin-flows.js.map +7 -0
  40. package/dist/cjs/transaction-analyzer/rules/coin-value.d.ts +42 -0
  41. package/dist/cjs/transaction-analyzer/rules/coin-value.js +60 -0
  42. package/dist/cjs/transaction-analyzer/rules/coin-value.js.map +7 -0
  43. package/dist/cjs/transaction-analyzer/rules/coins.d.ts +337 -0
  44. package/dist/cjs/transaction-analyzer/rules/coins.js +78 -0
  45. package/dist/cjs/transaction-analyzer/rules/coins.js.map +7 -0
  46. package/dist/cjs/transaction-analyzer/rules/commands.d.ts +366 -0
  47. package/dist/cjs/transaction-analyzer/rules/commands.js +148 -0
  48. package/dist/cjs/transaction-analyzer/rules/commands.js.map +7 -0
  49. package/dist/cjs/transaction-analyzer/rules/core.d.ts +314 -0
  50. package/dist/cjs/transaction-analyzer/rules/core.js +73 -0
  51. package/dist/cjs/transaction-analyzer/rules/core.js.map +7 -0
  52. package/dist/cjs/transaction-analyzer/rules/functions.d.ts +292 -0
  53. package/dist/cjs/transaction-analyzer/rules/functions.js +58 -0
  54. package/dist/cjs/transaction-analyzer/rules/functions.js.map +7 -0
  55. package/dist/cjs/transaction-analyzer/rules/index.d.ts +2244 -0
  56. package/dist/cjs/transaction-analyzer/rules/index.js +52 -0
  57. package/dist/cjs/transaction-analyzer/rules/index.js.map +7 -0
  58. package/dist/cjs/transaction-analyzer/rules/inputs.d.ts +313 -0
  59. package/dist/cjs/transaction-analyzer/rules/inputs.js +49 -0
  60. package/dist/cjs/transaction-analyzer/rules/inputs.js.map +7 -0
  61. package/dist/cjs/transaction-analyzer/rules/objects.d.ts +359 -0
  62. package/dist/cjs/transaction-analyzer/rules/objects.js +124 -0
  63. package/dist/cjs/transaction-analyzer/rules/objects.js.map +7 -0
  64. package/dist/cjs/util.d.ts +5 -0
  65. package/dist/cjs/util.js +17 -0
  66. package/dist/cjs/util.js.map +7 -0
  67. package/dist/esm/auto-approvals/analyzer.d.ts +71 -0
  68. package/dist/esm/auto-approvals/analyzer.js +50 -0
  69. package/dist/esm/auto-approvals/analyzer.js.map +7 -0
  70. package/dist/esm/auto-approvals/index.d.ts +6 -0
  71. package/dist/esm/auto-approvals/index.js +12 -0
  72. package/dist/esm/auto-approvals/index.js.map +7 -0
  73. package/dist/esm/auto-approvals/intent.d.ts +5 -0
  74. package/dist/esm/auto-approvals/intent.js +45 -0
  75. package/dist/esm/auto-approvals/intent.js.map +7 -0
  76. package/dist/esm/auto-approvals/manager.d.ts +31 -0
  77. package/dist/esm/auto-approvals/manager.js +308 -0
  78. package/dist/esm/auto-approvals/manager.js.map +7 -0
  79. package/dist/esm/auto-approvals/schemas/index.d.ts +4 -0
  80. package/dist/esm/auto-approvals/schemas/index.js +8 -0
  81. package/dist/esm/auto-approvals/schemas/index.js.map +7 -0
  82. package/dist/esm/auto-approvals/schemas/policy.d.ts +145 -0
  83. package/dist/esm/auto-approvals/schemas/policy.js +49 -0
  84. package/dist/esm/auto-approvals/schemas/policy.js.map +7 -0
  85. package/dist/esm/auto-approvals/schemas/state.d.ts +115 -0
  86. package/dist/esm/auto-approvals/schemas/state.js +19 -0
  87. package/dist/esm/auto-approvals/schemas/state.js.map +7 -0
  88. package/dist/esm/index.d.ts +2 -0
  89. package/dist/esm/index.js +3 -0
  90. package/dist/esm/index.js.map +7 -0
  91. package/dist/esm/package.json +5 -0
  92. package/dist/esm/transaction-analyzer/analyzer.d.ts +34 -0
  93. package/dist/esm/transaction-analyzer/analyzer.js +74 -0
  94. package/dist/esm/transaction-analyzer/analyzer.js.map +7 -0
  95. package/dist/esm/transaction-analyzer/index.d.ts +9 -0
  96. package/dist/esm/transaction-analyzer/index.js +8 -0
  97. package/dist/esm/transaction-analyzer/index.js.map +7 -0
  98. package/dist/esm/transaction-analyzer/rules/accessLevel.d.ts +29 -0
  99. package/dist/esm/transaction-analyzer/rules/accessLevel.js +86 -0
  100. package/dist/esm/transaction-analyzer/rules/accessLevel.js.map +7 -0
  101. package/dist/esm/transaction-analyzer/rules/coin-flows.d.ts +313 -0
  102. package/dist/esm/transaction-analyzer/rules/coin-flows.js +159 -0
  103. package/dist/esm/transaction-analyzer/rules/coin-flows.js.map +7 -0
  104. package/dist/esm/transaction-analyzer/rules/coin-value.d.ts +42 -0
  105. package/dist/esm/transaction-analyzer/rules/coin-value.js +40 -0
  106. package/dist/esm/transaction-analyzer/rules/coin-value.js.map +7 -0
  107. package/dist/esm/transaction-analyzer/rules/coins.d.ts +337 -0
  108. package/dist/esm/transaction-analyzer/rules/coins.js +58 -0
  109. package/dist/esm/transaction-analyzer/rules/coins.js.map +7 -0
  110. package/dist/esm/transaction-analyzer/rules/commands.d.ts +366 -0
  111. package/dist/esm/transaction-analyzer/rules/commands.js +128 -0
  112. package/dist/esm/transaction-analyzer/rules/commands.js.map +7 -0
  113. package/dist/esm/transaction-analyzer/rules/core.d.ts +314 -0
  114. package/dist/esm/transaction-analyzer/rules/core.js +53 -0
  115. package/dist/esm/transaction-analyzer/rules/core.js.map +7 -0
  116. package/dist/esm/transaction-analyzer/rules/functions.d.ts +292 -0
  117. package/dist/esm/transaction-analyzer/rules/functions.js +38 -0
  118. package/dist/esm/transaction-analyzer/rules/functions.js.map +7 -0
  119. package/dist/esm/transaction-analyzer/rules/index.d.ts +2244 -0
  120. package/dist/esm/transaction-analyzer/rules/index.js +32 -0
  121. package/dist/esm/transaction-analyzer/rules/index.js.map +7 -0
  122. package/dist/esm/transaction-analyzer/rules/inputs.d.ts +313 -0
  123. package/dist/esm/transaction-analyzer/rules/inputs.js +29 -0
  124. package/dist/esm/transaction-analyzer/rules/inputs.js.map +7 -0
  125. package/dist/esm/transaction-analyzer/rules/objects.d.ts +359 -0
  126. package/dist/esm/transaction-analyzer/rules/objects.js +104 -0
  127. package/dist/esm/transaction-analyzer/rules/objects.js.map +7 -0
  128. package/dist/esm/util.d.ts +5 -0
  129. package/dist/esm/util.js +1 -0
  130. package/dist/esm/util.js.map +7 -0
  131. package/dist/tsconfig.esm.tsbuildinfo +1 -0
  132. package/dist/tsconfig.tsbuildinfo +1 -0
  133. package/package.json +59 -0
@@ -0,0 +1,337 @@
1
+ import type { AnalyzedObject } from './objects.js';
2
+ export type AnalyzedCoin = AnalyzedObject & {
3
+ balance: bigint;
4
+ coinType: string;
5
+ };
6
+ export declare const Coin: import("@haneullabs/haneul/bcs").BcsStruct<{
7
+ id: import("@haneullabs/haneul/bcs").BcsType<string, string | Uint8Array<ArrayBufferLike>, "bytes[32]">;
8
+ balance: import("@haneullabs/haneul/bcs").BcsType<string, string | number | bigint, "u64">;
9
+ }, string>;
10
+ export declare const coins: import("../analyzer.js").Analyzer<any, {
11
+ client: import("@haneullabs/haneul/dist/cjs/experimental/client.js").Experimental_BaseClient & {
12
+ core: import("@haneullabs/haneul/dist/cjs/experimental/core.js").Experimental_CoreClient;
13
+ };
14
+ }, {
15
+ objects: {
16
+ ownerAddress: string | null;
17
+ id: string;
18
+ version: string;
19
+ digest: string;
20
+ owner: import("@haneullabs/haneul/dist/cjs/experimental/types.js").Experimental_HaneulClientTypes.ObjectOwner;
21
+ type: string;
22
+ content: PromiseLike<Uint8Array>;
23
+ previousTransaction: string | null;
24
+ }[];
25
+ }>;
26
+ export declare const gasCoins: import("../analyzer.js").Analyzer<{
27
+ coinType: string;
28
+ balance: bigint;
29
+ ownerAddress: string | null;
30
+ id: string;
31
+ version: string;
32
+ digest: string;
33
+ owner: import("@haneullabs/haneul/dist/cjs/experimental/types.js").Experimental_HaneulClientTypes.ObjectOwner;
34
+ type: string;
35
+ content: PromiseLike<Uint8Array>;
36
+ previousTransaction: string | null;
37
+ }[], {
38
+ client: import("@haneullabs/haneul/dist/cjs/experimental/client.js").Experimental_BaseClient & {
39
+ core: import("@haneullabs/haneul/dist/cjs/experimental/core.js").Experimental_CoreClient;
40
+ };
41
+ }, {
42
+ objectsById: Map<string, {
43
+ ownerAddress: string | null;
44
+ id: string;
45
+ version: string;
46
+ digest: string;
47
+ owner: import("@haneullabs/haneul/dist/cjs/experimental/types.js").Experimental_HaneulClientTypes.ObjectOwner;
48
+ type: string;
49
+ content: PromiseLike<Uint8Array>;
50
+ previousTransaction: string | null;
51
+ }>;
52
+ data: {
53
+ version: 2;
54
+ sender?: string | null | undefined;
55
+ expiration?: import("@haneullabs/bcs").EnumOutputShapeWithKeys<{
56
+ None: true;
57
+ Epoch: string | number;
58
+ }, "None" | "Epoch"> | null | undefined;
59
+ gasData: {
60
+ budget: string | number | null;
61
+ price: string | number | null;
62
+ owner: string | null;
63
+ payment: {
64
+ objectId: string;
65
+ version: string | number;
66
+ digest: string;
67
+ }[] | null;
68
+ };
69
+ inputs: import("@haneullabs/bcs").EnumOutputShapeWithKeys<{
70
+ Object: import("@haneullabs/bcs").EnumOutputShapeWithKeys<{
71
+ ImmOrOwnedObject: {
72
+ objectId: string;
73
+ version: string | number;
74
+ digest: string;
75
+ };
76
+ SharedObject: {
77
+ objectId: string;
78
+ initialSharedVersion: string | number;
79
+ mutable: boolean;
80
+ };
81
+ Receiving: {
82
+ objectId: string;
83
+ version: string | number;
84
+ digest: string;
85
+ };
86
+ }, "ImmOrOwnedObject" | "SharedObject" | "Receiving">;
87
+ Pure: {
88
+ bytes: string;
89
+ };
90
+ UnresolvedPure: {
91
+ value: unknown;
92
+ };
93
+ UnresolvedObject: {
94
+ objectId: string;
95
+ version?: string | number | null | undefined;
96
+ digest?: string | null | undefined;
97
+ initialSharedVersion?: string | number | null | undefined;
98
+ mutable?: boolean | null | undefined;
99
+ };
100
+ }, "Pure" | "Object" | "UnresolvedPure" | "UnresolvedObject">[];
101
+ commands: import("@haneullabs/bcs").EnumOutputShapeWithKeys<{
102
+ MoveCall: {
103
+ package: string;
104
+ module: string;
105
+ function: string;
106
+ typeArguments: string[];
107
+ arguments: ({
108
+ $kind: "GasCoin";
109
+ GasCoin: true;
110
+ } | {
111
+ $kind: "Input";
112
+ Input: number;
113
+ type?: "pure";
114
+ } | {
115
+ $kind: "Input";
116
+ Input: number;
117
+ type?: "object";
118
+ } | {
119
+ $kind: "Result";
120
+ Result: number;
121
+ } | {
122
+ $kind: "NestedResult";
123
+ NestedResult: [number, number];
124
+ })[];
125
+ _argumentTypes?: {
126
+ ref: "&" | "&mut" | null;
127
+ body: import("@haneullabs/haneul/dist/cjs/transactions/index.js").OpenMoveTypeSignatureBody;
128
+ }[] | null | undefined;
129
+ };
130
+ TransferObjects: {
131
+ objects: ({
132
+ $kind: "GasCoin";
133
+ GasCoin: true;
134
+ } | {
135
+ $kind: "Input";
136
+ Input: number;
137
+ type?: "pure";
138
+ } | {
139
+ $kind: "Input";
140
+ Input: number;
141
+ type?: "object";
142
+ } | {
143
+ $kind: "Result";
144
+ Result: number;
145
+ } | {
146
+ $kind: "NestedResult";
147
+ NestedResult: [number, number];
148
+ })[];
149
+ address: {
150
+ $kind: "GasCoin";
151
+ GasCoin: true;
152
+ } | {
153
+ $kind: "Input";
154
+ Input: number;
155
+ type?: "pure";
156
+ } | {
157
+ $kind: "Input";
158
+ Input: number;
159
+ type?: "object";
160
+ } | {
161
+ $kind: "Result";
162
+ Result: number;
163
+ } | {
164
+ $kind: "NestedResult";
165
+ NestedResult: [number, number];
166
+ };
167
+ };
168
+ SplitCoins: {
169
+ coin: {
170
+ $kind: "GasCoin";
171
+ GasCoin: true;
172
+ } | {
173
+ $kind: "Input";
174
+ Input: number;
175
+ type?: "pure";
176
+ } | {
177
+ $kind: "Input";
178
+ Input: number;
179
+ type?: "object";
180
+ } | {
181
+ $kind: "Result";
182
+ Result: number;
183
+ } | {
184
+ $kind: "NestedResult";
185
+ NestedResult: [number, number];
186
+ };
187
+ amounts: ({
188
+ $kind: "GasCoin";
189
+ GasCoin: true;
190
+ } | {
191
+ $kind: "Input";
192
+ Input: number;
193
+ type?: "pure";
194
+ } | {
195
+ $kind: "Input";
196
+ Input: number;
197
+ type?: "object";
198
+ } | {
199
+ $kind: "Result";
200
+ Result: number;
201
+ } | {
202
+ $kind: "NestedResult";
203
+ NestedResult: [number, number];
204
+ })[];
205
+ };
206
+ MergeCoins: {
207
+ destination: {
208
+ $kind: "GasCoin";
209
+ GasCoin: true;
210
+ } | {
211
+ $kind: "Input";
212
+ Input: number;
213
+ type?: "pure";
214
+ } | {
215
+ $kind: "Input";
216
+ Input: number;
217
+ type?: "object";
218
+ } | {
219
+ $kind: "Result";
220
+ Result: number;
221
+ } | {
222
+ $kind: "NestedResult";
223
+ NestedResult: [number, number];
224
+ };
225
+ sources: ({
226
+ $kind: "GasCoin";
227
+ GasCoin: true;
228
+ } | {
229
+ $kind: "Input";
230
+ Input: number;
231
+ type?: "pure";
232
+ } | {
233
+ $kind: "Input";
234
+ Input: number;
235
+ type?: "object";
236
+ } | {
237
+ $kind: "Result";
238
+ Result: number;
239
+ } | {
240
+ $kind: "NestedResult";
241
+ NestedResult: [number, number];
242
+ })[];
243
+ };
244
+ Publish: {
245
+ modules: string[];
246
+ dependencies: string[];
247
+ };
248
+ MakeMoveVec: {
249
+ type: string | null;
250
+ elements: ({
251
+ $kind: "GasCoin";
252
+ GasCoin: true;
253
+ } | {
254
+ $kind: "Input";
255
+ Input: number;
256
+ type?: "pure";
257
+ } | {
258
+ $kind: "Input";
259
+ Input: number;
260
+ type?: "object";
261
+ } | {
262
+ $kind: "Result";
263
+ Result: number;
264
+ } | {
265
+ $kind: "NestedResult";
266
+ NestedResult: [number, number];
267
+ })[];
268
+ };
269
+ Upgrade: {
270
+ modules: string[];
271
+ dependencies: string[];
272
+ package: string;
273
+ ticket: {
274
+ $kind: "GasCoin";
275
+ GasCoin: true;
276
+ } | {
277
+ $kind: "Input";
278
+ Input: number;
279
+ type?: "pure";
280
+ } | {
281
+ $kind: "Input";
282
+ Input: number;
283
+ type?: "object";
284
+ } | {
285
+ $kind: "Result";
286
+ Result: number;
287
+ } | {
288
+ $kind: "NestedResult";
289
+ NestedResult: [number, number];
290
+ };
291
+ };
292
+ $Intent: {
293
+ name: string;
294
+ inputs: {
295
+ [x: string]: {
296
+ $kind: "GasCoin";
297
+ GasCoin: true;
298
+ } | {
299
+ $kind: "Input";
300
+ Input: number;
301
+ type?: "pure";
302
+ } | {
303
+ $kind: "Input";
304
+ Input: number;
305
+ type?: "object";
306
+ } | {
307
+ $kind: "Result";
308
+ Result: number;
309
+ } | {
310
+ $kind: "NestedResult";
311
+ NestedResult: [number, number];
312
+ } | ({
313
+ $kind: "GasCoin";
314
+ GasCoin: true;
315
+ } | {
316
+ $kind: "Input";
317
+ Input: number;
318
+ type?: "pure";
319
+ } | {
320
+ $kind: "Input";
321
+ Input: number;
322
+ type?: "object";
323
+ } | {
324
+ $kind: "Result";
325
+ Result: number;
326
+ } | {
327
+ $kind: "NestedResult";
328
+ NestedResult: [number, number];
329
+ })[];
330
+ };
331
+ data: {
332
+ [x: string]: unknown;
333
+ };
334
+ };
335
+ }, "MoveCall" | "TransferObjects" | "SplitCoins" | "MergeCoins" | "Publish" | "MakeMoveVec" | "Upgrade" | "$Intent">[];
336
+ };
337
+ }>;
@@ -0,0 +1,78 @@
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 coins_exports = {};
20
+ __export(coins_exports, {
21
+ Coin: () => Coin,
22
+ coins: () => coins,
23
+ gasCoins: () => gasCoins
24
+ });
25
+ module.exports = __toCommonJS(coins_exports);
26
+ var import_bcs = require("@haneullabs/haneul/bcs");
27
+ var import_objects = require("./objects.js");
28
+ var import_analyzer = require("../analyzer.js");
29
+ var import_utils = require("@haneullabs/haneul/utils");
30
+ var import_core = require("./core.js");
31
+ const Coin = import_bcs.bcs.struct("Coin", {
32
+ id: import_bcs.bcs.Address,
33
+ balance: import_bcs.bcs.U64
34
+ });
35
+ const parsedCoinStruct = (0, import_utils.parseStructTag)("0x2::coin::Coin<0x2::haneul::HANEUL>");
36
+ const coins = (0, import_analyzer.createAnalyzer)({
37
+ dependencies: { objects: import_objects.objects },
38
+ analyze: () => async ({ objects: objects2 }) => {
39
+ return {
40
+ result: Object.fromEntries(
41
+ await Promise.all(
42
+ objects2.filter((obj) => {
43
+ const parsed = (0, import_utils.parseStructTag)(obj.type);
44
+ return parsed.address === parsedCoinStruct.address && parsed.module === parsedCoinStruct.module && parsed.name === parsedCoinStruct.name && parsed.typeParams.length === 1;
45
+ }).map(async (obj) => {
46
+ return [
47
+ obj.id,
48
+ {
49
+ ...obj,
50
+ coinType: (0, import_utils.normalizeStructTag)((0, import_utils.parseStructTag)(obj.type).typeParams[0]),
51
+ balance: BigInt(Coin.parse(await obj.content).balance)
52
+ }
53
+ ];
54
+ })
55
+ )
56
+ )
57
+ };
58
+ }
59
+ });
60
+ const gasCoins = (0, import_analyzer.createAnalyzer)({
61
+ dependencies: { objectsById: import_objects.objectsById, data: import_core.data },
62
+ analyze: () => async ({ objectsById: objectsById2, data: data2 }) => {
63
+ return {
64
+ result: await Promise.all(
65
+ (data2.gasData.payment ?? []).map(async (coin) => {
66
+ const obj = objectsById2.get(coin.objectId);
67
+ const content = Coin.parse(await obj.content);
68
+ return {
69
+ ...obj,
70
+ coinType: (0, import_utils.normalizeStructTag)((0, import_utils.parseStructTag)(obj.type).typeParams[0]),
71
+ balance: BigInt(content.balance)
72
+ };
73
+ })
74
+ )
75
+ };
76
+ }
77
+ });
78
+ //# sourceMappingURL=coins.js.map
@@ -0,0 +1,7 @@
1
+ {
2
+ "version": 3,
3
+ "sources": ["../../../../src/transaction-analyzer/rules/coins.ts"],
4
+ "sourcesContent": ["// Copyright (c) Mysten Labs, Inc.\n// SPDX-License-Identifier: Apache-2.0\n\nimport { bcs } from '@haneullabs/haneul/bcs';\nimport { objects, objectsById } from './objects.js';\nimport type { AnalyzedObject } from './objects.js';\nimport { createAnalyzer } from '../analyzer.js';\nimport { normalizeStructTag, parseStructTag } from '@haneullabs/haneul/utils';\nimport { data } from './core.js';\n\nexport type AnalyzedCoin = AnalyzedObject & { balance: bigint; coinType: string };\n\nexport const Coin = bcs.struct('Coin', {\n\tid: bcs.Address,\n\tbalance: bcs.U64,\n});\nconst parsedCoinStruct = parseStructTag('0x2::coin::Coin<0x2::haneul::HANEUL>');\n\nexport const coins = createAnalyzer({\n\tdependencies: { objects },\n\tanalyze:\n\t\t() =>\n\t\tasync ({ objects }) => {\n\t\t\treturn {\n\t\t\t\tresult: Object.fromEntries(\n\t\t\t\t\tawait Promise.all(\n\t\t\t\t\t\tobjects\n\t\t\t\t\t\t\t.filter((obj) => {\n\t\t\t\t\t\t\t\tconst parsed = parseStructTag(obj.type);\n\t\t\t\t\t\t\t\treturn (\n\t\t\t\t\t\t\t\t\tparsed.address === parsedCoinStruct.address &&\n\t\t\t\t\t\t\t\t\tparsed.module === parsedCoinStruct.module &&\n\t\t\t\t\t\t\t\t\tparsed.name === parsedCoinStruct.name &&\n\t\t\t\t\t\t\t\t\tparsed.typeParams.length === 1\n\t\t\t\t\t\t\t\t);\n\t\t\t\t\t\t\t})\n\t\t\t\t\t\t\t.map(async (obj) => {\n\t\t\t\t\t\t\t\treturn [\n\t\t\t\t\t\t\t\t\tobj.id,\n\t\t\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\t\t\t...obj,\n\t\t\t\t\t\t\t\t\t\tcoinType: normalizeStructTag(parseStructTag(obj.type).typeParams[0]),\n\t\t\t\t\t\t\t\t\t\tbalance: BigInt(Coin.parse(await obj.content).balance),\n\t\t\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t\t];\n\t\t\t\t\t\t\t}),\n\t\t\t\t\t),\n\t\t\t\t),\n\t\t\t};\n\t\t},\n});\n\nexport const gasCoins = createAnalyzer({\n\tdependencies: { objectsById, data },\n\tanalyze:\n\t\t() =>\n\t\tasync ({ objectsById, data }) => {\n\t\t\treturn {\n\t\t\t\tresult: await Promise.all(\n\t\t\t\t\t(data.gasData.payment ?? []).map(async (coin) => {\n\t\t\t\t\t\tconst obj = objectsById.get(coin.objectId)!;\n\t\t\t\t\t\tconst content = Coin.parse(await obj.content);\n\t\t\t\t\t\treturn {\n\t\t\t\t\t\t\t...obj,\n\t\t\t\t\t\t\tcoinType: normalizeStructTag(parseStructTag(obj.type).typeParams[0]),\n\t\t\t\t\t\t\tbalance: BigInt(content.balance),\n\t\t\t\t\t\t};\n\t\t\t\t\t}),\n\t\t\t\t),\n\t\t\t};\n\t\t},\n});\n"],
5
+ "mappings": ";;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAGA,iBAAoB;AACpB,qBAAqC;AAErC,sBAA+B;AAC/B,mBAAmD;AACnD,kBAAqB;AAId,MAAM,OAAO,eAAI,OAAO,QAAQ;AAAA,EACtC,IAAI,eAAI;AAAA,EACR,SAAS,eAAI;AACd,CAAC;AACD,MAAM,uBAAmB,6BAAe,sCAAsC;AAEvE,MAAM,YAAQ,gCAAe;AAAA,EACnC,cAAc,EAAE,gCAAQ;AAAA,EACxB,SACC,MACA,OAAO,EAAE,SAAAA,SAAQ,MAAM;AACtB,WAAO;AAAA,MACN,QAAQ,OAAO;AAAA,QACd,MAAM,QAAQ;AAAA,UACbA,SACE,OAAO,CAAC,QAAQ;AAChB,kBAAM,aAAS,6BAAe,IAAI,IAAI;AACtC,mBACC,OAAO,YAAY,iBAAiB,WACpC,OAAO,WAAW,iBAAiB,UACnC,OAAO,SAAS,iBAAiB,QACjC,OAAO,WAAW,WAAW;AAAA,UAE/B,CAAC,EACA,IAAI,OAAO,QAAQ;AACnB,mBAAO;AAAA,cACN,IAAI;AAAA,cACJ;AAAA,gBACC,GAAG;AAAA,gBACH,cAAU,qCAAmB,6BAAe,IAAI,IAAI,EAAE,WAAW,CAAC,CAAC;AAAA,gBACnE,SAAS,OAAO,KAAK,MAAM,MAAM,IAAI,OAAO,EAAE,OAAO;AAAA,cACtD;AAAA,YACD;AAAA,UACD,CAAC;AAAA,QACH;AAAA,MACD;AAAA,IACD;AAAA,EACD;AACF,CAAC;AAEM,MAAM,eAAW,gCAAe;AAAA,EACtC,cAAc,EAAE,yCAAa,uBAAK;AAAA,EAClC,SACC,MACA,OAAO,EAAE,aAAAC,cAAa,MAAAC,MAAK,MAAM;AAChC,WAAO;AAAA,MACN,QAAQ,MAAM,QAAQ;AAAA,SACpBA,MAAK,QAAQ,WAAW,CAAC,GAAG,IAAI,OAAO,SAAS;AAChD,gBAAM,MAAMD,aAAY,IAAI,KAAK,QAAQ;AACzC,gBAAM,UAAU,KAAK,MAAM,MAAM,IAAI,OAAO;AAC5C,iBAAO;AAAA,YACN,GAAG;AAAA,YACH,cAAU,qCAAmB,6BAAe,IAAI,IAAI,EAAE,WAAW,CAAC,CAAC;AAAA,YACnE,SAAS,OAAO,QAAQ,OAAO;AAAA,UAChC;AAAA,QACD,CAAC;AAAA,MACF;AAAA,IACD;AAAA,EACD;AACF,CAAC;",
6
+ "names": ["objects", "objectsById", "data"]
7
+ }