@bitgo-beta/sdk-coin-sui 0.0.0-semantic-release-managed

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 (165) hide show
  1. package/.eslintignore +6 -0
  2. package/.mocharc.yml +7 -0
  3. package/CHANGELOG.md +1152 -0
  4. package/LICENSE +191 -0
  5. package/README.md +30 -0
  6. package/dist/src/index.d.ts +6 -0
  7. package/dist/src/index.d.ts.map +1 -0
  8. package/dist/src/index.js +22 -0
  9. package/dist/src/lib/compareTransactionBlocks.d.ts +8 -0
  10. package/dist/src/lib/compareTransactionBlocks.d.ts.map +1 -0
  11. package/dist/src/lib/compareTransactionBlocks.js +12 -0
  12. package/dist/src/lib/constants.d.ts +17 -0
  13. package/dist/src/lib/constants.d.ts.map +1 -0
  14. package/dist/src/lib/constants.js +30 -0
  15. package/dist/src/lib/customTransaction.d.ts +57 -0
  16. package/dist/src/lib/customTransaction.d.ts.map +1 -0
  17. package/dist/src/lib/customTransaction.js +159 -0
  18. package/dist/src/lib/customTransactionBuilder.d.ts +46 -0
  19. package/dist/src/lib/customTransactionBuilder.d.ts.map +1 -0
  20. package/dist/src/lib/customTransactionBuilder.js +117 -0
  21. package/dist/src/lib/iface.d.ts +131 -0
  22. package/dist/src/lib/iface.d.ts.map +1 -0
  23. package/dist/src/lib/iface.js +63 -0
  24. package/dist/src/lib/index.d.ts +22 -0
  25. package/dist/src/lib/index.d.ts.map +1 -0
  26. package/dist/src/lib/index.js +77 -0
  27. package/dist/src/lib/keyPair.d.ts +29 -0
  28. package/dist/src/lib/keyPair.d.ts.map +1 -0
  29. package/dist/src/lib/keyPair.js +97 -0
  30. package/dist/src/lib/mystenlab/builder/Inputs.d.ts +66 -0
  31. package/dist/src/lib/mystenlab/builder/Inputs.d.ts.map +1 -0
  32. package/dist/src/lib/mystenlab/builder/Inputs.js +55 -0
  33. package/dist/src/lib/mystenlab/builder/TransactionBlock.d.ts +302 -0
  34. package/dist/src/lib/mystenlab/builder/TransactionBlock.d.ts.map +1 -0
  35. package/dist/src/lib/mystenlab/builder/TransactionBlock.js +255 -0
  36. package/dist/src/lib/mystenlab/builder/TransactionDataBlock.d.ts +566 -0
  37. package/dist/src/lib/mystenlab/builder/TransactionDataBlock.d.ts.map +1 -0
  38. package/dist/src/lib/mystenlab/builder/TransactionDataBlock.js +168 -0
  39. package/dist/src/lib/mystenlab/builder/Transactions.d.ts +937 -0
  40. package/dist/src/lib/mystenlab/builder/Transactions.d.ts.map +1 -0
  41. package/dist/src/lib/mystenlab/builder/Transactions.js +118 -0
  42. package/dist/src/lib/mystenlab/builder/bcs.d.ts +25 -0
  43. package/dist/src/lib/mystenlab/builder/bcs.d.ts.map +1 -0
  44. package/dist/src/lib/mystenlab/builder/bcs.js +141 -0
  45. package/dist/src/lib/mystenlab/builder/index.d.ts +5 -0
  46. package/dist/src/lib/mystenlab/builder/index.d.ts.map +1 -0
  47. package/dist/src/lib/mystenlab/builder/index.js +21 -0
  48. package/dist/src/lib/mystenlab/builder/serializer.d.ts +4 -0
  49. package/dist/src/lib/mystenlab/builder/serializer.d.ts.map +1 -0
  50. package/dist/src/lib/mystenlab/builder/serializer.js +99 -0
  51. package/dist/src/lib/mystenlab/builder/utils.d.ts +10 -0
  52. package/dist/src/lib/mystenlab/builder/utils.d.ts.map +1 -0
  53. package/dist/src/lib/mystenlab/builder/utils.js +10 -0
  54. package/dist/src/lib/mystenlab/cryptography/hash.d.ts +8 -0
  55. package/dist/src/lib/mystenlab/cryptography/hash.d.ts.map +1 -0
  56. package/dist/src/lib/mystenlab/cryptography/hash.js +21 -0
  57. package/dist/src/lib/mystenlab/framework/framework.d.ts +93 -0
  58. package/dist/src/lib/mystenlab/framework/framework.d.ts.map +1 -0
  59. package/dist/src/lib/mystenlab/framework/framework.js +135 -0
  60. package/dist/src/lib/mystenlab/framework/index.d.ts +3 -0
  61. package/dist/src/lib/mystenlab/framework/index.d.ts.map +1 -0
  62. package/dist/src/lib/mystenlab/framework/index.js +19 -0
  63. package/dist/src/lib/mystenlab/framework/sui-system-state.d.ts +14 -0
  64. package/dist/src/lib/mystenlab/framework/sui-system-state.d.ts.map +1 -0
  65. package/dist/src/lib/mystenlab/framework/sui-system-state.js +22 -0
  66. package/dist/src/lib/mystenlab/txn-data-serializers/type-tag-serializer.d.ts +7 -0
  67. package/dist/src/lib/mystenlab/txn-data-serializers/type-tag-serializer.d.ts.map +1 -0
  68. package/dist/src/lib/mystenlab/txn-data-serializers/type-tag-serializer.js +119 -0
  69. package/dist/src/lib/mystenlab/types/coin.d.ts +89 -0
  70. package/dist/src/lib/mystenlab/types/coin.d.ts.map +1 -0
  71. package/dist/src/lib/mystenlab/types/coin.js +32 -0
  72. package/dist/src/lib/mystenlab/types/common.d.ts +45 -0
  73. package/dist/src/lib/mystenlab/types/common.d.ts.map +1 -0
  74. package/dist/src/lib/mystenlab/types/common.js +84 -0
  75. package/dist/src/lib/mystenlab/types/events.d.ts +198 -0
  76. package/dist/src/lib/mystenlab/types/events.d.ts.map +1 -0
  77. package/dist/src/lib/mystenlab/types/events.js +46 -0
  78. package/dist/src/lib/mystenlab/types/index.d.ts +9 -0
  79. package/dist/src/lib/mystenlab/types/index.d.ts.map +1 -0
  80. package/dist/src/lib/mystenlab/types/index.js +25 -0
  81. package/dist/src/lib/mystenlab/types/normalized.d.ts +254 -0
  82. package/dist/src/lib/mystenlab/types/normalized.d.ts.map +1 -0
  83. package/dist/src/lib/mystenlab/types/normalized.js +111 -0
  84. package/dist/src/lib/mystenlab/types/objects.d.ts +806 -0
  85. package/dist/src/lib/mystenlab/types/objects.d.ts.map +1 -0
  86. package/dist/src/lib/mystenlab/types/objects.js +292 -0
  87. package/dist/src/lib/mystenlab/types/option.d.ts +8 -0
  88. package/dist/src/lib/mystenlab/types/option.d.ts.map +1 -0
  89. package/dist/src/lib/mystenlab/types/option.js +13 -0
  90. package/dist/src/lib/mystenlab/types/sui-bcs.d.ts +111 -0
  91. package/dist/src/lib/mystenlab/types/sui-bcs.d.ts.map +1 -0
  92. package/dist/src/lib/mystenlab/types/sui-bcs.js +107 -0
  93. package/dist/src/lib/mystenlab/types/transactions.d.ts +6703 -0
  94. package/dist/src/lib/mystenlab/types/transactions.d.ts.map +1 -0
  95. package/dist/src/lib/mystenlab/types/transactions.js +389 -0
  96. package/dist/src/lib/mystenlab/types/validator.d.ts +641 -0
  97. package/dist/src/lib/mystenlab/types/validator.d.ts.map +1 -0
  98. package/dist/src/lib/mystenlab/types/validator.js +156 -0
  99. package/dist/src/lib/resources/walrusConfig.d.ts +22 -0
  100. package/dist/src/lib/resources/walrusConfig.d.ts.map +1 -0
  101. package/dist/src/lib/resources/walrusConfig.js +37 -0
  102. package/dist/src/lib/rpcClient.d.ts +5 -0
  103. package/dist/src/lib/rpcClient.d.ts.map +1 -0
  104. package/dist/src/lib/rpcClient.js +74 -0
  105. package/dist/src/lib/stakingBuilder.d.ts +62 -0
  106. package/dist/src/lib/stakingBuilder.d.ts.map +1 -0
  107. package/dist/src/lib/stakingBuilder.js +206 -0
  108. package/dist/src/lib/stakingTransaction.d.ts +51 -0
  109. package/dist/src/lib/stakingTransaction.d.ts.map +1 -0
  110. package/dist/src/lib/stakingTransaction.js +219 -0
  111. package/dist/src/lib/tokenTransferBuilder.d.ts +38 -0
  112. package/dist/src/lib/tokenTransferBuilder.d.ts.map +1 -0
  113. package/dist/src/lib/tokenTransferBuilder.js +132 -0
  114. package/dist/src/lib/tokenTransferTransaction.d.ts +57 -0
  115. package/dist/src/lib/tokenTransferTransaction.d.ts.map +1 -0
  116. package/dist/src/lib/tokenTransferTransaction.js +250 -0
  117. package/dist/src/lib/transaction.d.ts +82 -0
  118. package/dist/src/lib/transaction.d.ts.map +1 -0
  119. package/dist/src/lib/transaction.js +283 -0
  120. package/dist/src/lib/transactionBuilder.d.ts +60 -0
  121. package/dist/src/lib/transactionBuilder.d.ts.map +1 -0
  122. package/dist/src/lib/transactionBuilder.js +140 -0
  123. package/dist/src/lib/transactionBuilderFactory.d.ts +48 -0
  124. package/dist/src/lib/transactionBuilderFactory.d.ts.map +1 -0
  125. package/dist/src/lib/transactionBuilderFactory.js +127 -0
  126. package/dist/src/lib/transferBuilder.d.ts +37 -0
  127. package/dist/src/lib/transferBuilder.d.ts.map +1 -0
  128. package/dist/src/lib/transferBuilder.js +132 -0
  129. package/dist/src/lib/transferTransaction.d.ts +54 -0
  130. package/dist/src/lib/transferTransaction.d.ts.map +1 -0
  131. package/dist/src/lib/transferTransaction.js +203 -0
  132. package/dist/src/lib/unstakingBuilder.d.ts +62 -0
  133. package/dist/src/lib/unstakingBuilder.d.ts.map +1 -0
  134. package/dist/src/lib/unstakingBuilder.js +227 -0
  135. package/dist/src/lib/unstakingTransaction.d.ts +75 -0
  136. package/dist/src/lib/unstakingTransaction.d.ts.map +1 -0
  137. package/dist/src/lib/unstakingTransaction.js +345 -0
  138. package/dist/src/lib/utils.d.ts +127 -0
  139. package/dist/src/lib/utils.d.ts.map +1 -0
  140. package/dist/src/lib/utils.js +539 -0
  141. package/dist/src/lib/walrusStakingBuilder.d.ts +66 -0
  142. package/dist/src/lib/walrusStakingBuilder.d.ts.map +1 -0
  143. package/dist/src/lib/walrusStakingBuilder.js +200 -0
  144. package/dist/src/lib/walrusStakingTransaction.d.ts +52 -0
  145. package/dist/src/lib/walrusStakingTransaction.d.ts.map +1 -0
  146. package/dist/src/lib/walrusStakingTransaction.js +269 -0
  147. package/dist/src/lib/walrusWithdrawStakeBuilder.d.ts +36 -0
  148. package/dist/src/lib/walrusWithdrawStakeBuilder.d.ts.map +1 -0
  149. package/dist/src/lib/walrusWithdrawStakeBuilder.js +173 -0
  150. package/dist/src/lib/walrusWithdrawStakeTransaction.d.ts +21 -0
  151. package/dist/src/lib/walrusWithdrawStakeTransaction.d.ts.map +1 -0
  152. package/dist/src/lib/walrusWithdrawStakeTransaction.js +190 -0
  153. package/dist/src/register.d.ts +3 -0
  154. package/dist/src/register.d.ts.map +1 -0
  155. package/dist/src/register.js +15 -0
  156. package/dist/src/sui.d.ts +92 -0
  157. package/dist/src/sui.d.ts.map +1 -0
  158. package/dist/src/sui.js +665 -0
  159. package/dist/src/suiToken.d.ts +22 -0
  160. package/dist/src/suiToken.d.ts.map +1 -0
  161. package/dist/src/suiToken.js +61 -0
  162. package/dist/src/tsui.d.ts +22 -0
  163. package/dist/src/tsui.d.ts.map +1 -0
  164. package/dist/src/tsui.js +30 -0
  165. package/package.json +63 -0
@@ -0,0 +1,254 @@
1
+ import { Infer } from 'superstruct';
2
+ export type SuiMoveFunctionArgTypesResponse = Infer<typeof SuiMoveFunctionArgType>[];
3
+ export declare const SuiMoveFunctionArgType: import("superstruct").Struct<string | {
4
+ Object: string;
5
+ }, null>;
6
+ export declare const SuiMoveFunctionArgTypes: import("superstruct").Struct<(string | {
7
+ Object: string;
8
+ })[], import("superstruct").Struct<string | {
9
+ Object: string;
10
+ }, null>>;
11
+ export type SuiMoveFunctionArgTypes = Infer<typeof SuiMoveFunctionArgTypes>;
12
+ export declare const SuiMoveModuleId: import("superstruct").Struct<{
13
+ name: string;
14
+ address: string;
15
+ }, {
16
+ address: import("superstruct").Struct<string, null>;
17
+ name: import("superstruct").Struct<string, null>;
18
+ }>;
19
+ export type SuiMoveModuleId = Infer<typeof SuiMoveModuleId>;
20
+ export declare const SuiMoveVisibility: import("superstruct").Struct<"Private" | "Public" | "Friend", null>;
21
+ export type SuiMoveVisibility = Infer<typeof SuiMoveVisibility>;
22
+ export declare const SuiMoveAbilitySet: import("superstruct").Struct<{
23
+ abilities: string[];
24
+ }, {
25
+ abilities: import("superstruct").Struct<string[], import("superstruct").Struct<string, null>>;
26
+ }>;
27
+ export type SuiMoveAbilitySet = Infer<typeof SuiMoveAbilitySet>;
28
+ export declare const SuiMoveStructTypeParameter: import("superstruct").Struct<{
29
+ constraints: {
30
+ abilities: string[];
31
+ };
32
+ isPhantom: boolean;
33
+ }, {
34
+ constraints: import("superstruct").Struct<{
35
+ abilities: string[];
36
+ }, {
37
+ abilities: import("superstruct").Struct<string[], import("superstruct").Struct<string, null>>;
38
+ }>;
39
+ isPhantom: import("superstruct").Struct<boolean, null>;
40
+ }>;
41
+ export type SuiMoveStructTypeParameter = Infer<typeof SuiMoveStructTypeParameter>;
42
+ export declare const SuiMoveNormalizedTypeParameterType: import("superstruct").Struct<{
43
+ TypeParameter: number;
44
+ }, {
45
+ TypeParameter: import("superstruct").Struct<number, null>;
46
+ }>;
47
+ export type SuiMoveNormalizedTypeParameterType = Infer<typeof SuiMoveNormalizedTypeParameterType>;
48
+ export type SuiMoveNormalizedType = string | SuiMoveNormalizedTypeParameterType | {
49
+ Reference: SuiMoveNormalizedType;
50
+ } | {
51
+ MutableReference: SuiMoveNormalizedType;
52
+ } | {
53
+ Vector: SuiMoveNormalizedType;
54
+ } | SuiMoveNormalizedStructType;
55
+ export declare const SuiMoveNormalizedType: import("superstruct").Struct<SuiMoveNormalizedType, null>;
56
+ export type SuiMoveNormalizedStructType = {
57
+ Struct: {
58
+ address: string;
59
+ module: string;
60
+ name: string;
61
+ typeArguments: SuiMoveNormalizedType[];
62
+ };
63
+ };
64
+ export declare const SuiMoveNormalizedStructType: import("superstruct").Struct<SuiMoveNormalizedStructType, null>;
65
+ export declare const SuiMoveNormalizedFunction: import("superstruct").Struct<{
66
+ visibility: "Private" | "Public" | "Friend";
67
+ isEntry: boolean;
68
+ typeParameters: {
69
+ abilities: string[];
70
+ }[];
71
+ parameters: SuiMoveNormalizedType[];
72
+ return: SuiMoveNormalizedType[];
73
+ }, {
74
+ visibility: import("superstruct").Struct<"Private" | "Public" | "Friend", null>;
75
+ isEntry: import("superstruct").Struct<boolean, null>;
76
+ typeParameters: import("superstruct").Struct<{
77
+ abilities: string[];
78
+ }[], import("superstruct").Struct<{
79
+ abilities: string[];
80
+ }, {
81
+ abilities: import("superstruct").Struct<string[], import("superstruct").Struct<string, null>>;
82
+ }>>;
83
+ parameters: import("superstruct").Struct<SuiMoveNormalizedType[], import("superstruct").Struct<SuiMoveNormalizedType, null>>;
84
+ return: import("superstruct").Struct<SuiMoveNormalizedType[], import("superstruct").Struct<SuiMoveNormalizedType, null>>;
85
+ }>;
86
+ export type SuiMoveNormalizedFunction = Infer<typeof SuiMoveNormalizedFunction>;
87
+ export declare const SuiMoveNormalizedField: import("superstruct").Struct<{
88
+ type: SuiMoveNormalizedType;
89
+ name: string;
90
+ }, {
91
+ name: import("superstruct").Struct<string, null>;
92
+ type: import("superstruct").Struct<SuiMoveNormalizedType, null>;
93
+ }>;
94
+ export type SuiMoveNormalizedField = Infer<typeof SuiMoveNormalizedField>;
95
+ export declare const SuiMoveNormalizedStruct: import("superstruct").Struct<{
96
+ fields: {
97
+ type: SuiMoveNormalizedType;
98
+ name: string;
99
+ }[];
100
+ abilities: {
101
+ abilities: string[];
102
+ };
103
+ typeParameters: {
104
+ constraints: {
105
+ abilities: string[];
106
+ };
107
+ isPhantom: boolean;
108
+ }[];
109
+ }, {
110
+ abilities: import("superstruct").Struct<{
111
+ abilities: string[];
112
+ }, {
113
+ abilities: import("superstruct").Struct<string[], import("superstruct").Struct<string, null>>;
114
+ }>;
115
+ typeParameters: import("superstruct").Struct<{
116
+ constraints: {
117
+ abilities: string[];
118
+ };
119
+ isPhantom: boolean;
120
+ }[], import("superstruct").Struct<{
121
+ constraints: {
122
+ abilities: string[];
123
+ };
124
+ isPhantom: boolean;
125
+ }, {
126
+ constraints: import("superstruct").Struct<{
127
+ abilities: string[];
128
+ }, {
129
+ abilities: import("superstruct").Struct<string[], import("superstruct").Struct<string, null>>;
130
+ }>;
131
+ isPhantom: import("superstruct").Struct<boolean, null>;
132
+ }>>;
133
+ fields: import("superstruct").Struct<{
134
+ type: SuiMoveNormalizedType;
135
+ name: string;
136
+ }[], import("superstruct").Struct<{
137
+ type: SuiMoveNormalizedType;
138
+ name: string;
139
+ }, {
140
+ name: import("superstruct").Struct<string, null>;
141
+ type: import("superstruct").Struct<SuiMoveNormalizedType, null>;
142
+ }>>;
143
+ }>;
144
+ export type SuiMoveNormalizedStruct = Infer<typeof SuiMoveNormalizedStruct>;
145
+ export declare const SuiMoveNormalizedModule: import("superstruct").Struct<{
146
+ name: string;
147
+ address: string;
148
+ fileFormatVersion: number;
149
+ friends: {
150
+ name: string;
151
+ address: string;
152
+ }[];
153
+ structs: Record<string, {
154
+ fields: {
155
+ type: SuiMoveNormalizedType;
156
+ name: string;
157
+ }[];
158
+ abilities: {
159
+ abilities: string[];
160
+ };
161
+ typeParameters: {
162
+ constraints: {
163
+ abilities: string[];
164
+ };
165
+ isPhantom: boolean;
166
+ }[];
167
+ }>;
168
+ exposedFunctions: Record<string, {
169
+ visibility: "Private" | "Public" | "Friend";
170
+ isEntry: boolean;
171
+ typeParameters: {
172
+ abilities: string[];
173
+ }[];
174
+ parameters: SuiMoveNormalizedType[];
175
+ return: SuiMoveNormalizedType[];
176
+ }>;
177
+ }, {
178
+ fileFormatVersion: import("superstruct").Struct<number, null>;
179
+ address: import("superstruct").Struct<string, null>;
180
+ name: import("superstruct").Struct<string, null>;
181
+ friends: import("superstruct").Struct<{
182
+ name: string;
183
+ address: string;
184
+ }[], import("superstruct").Struct<{
185
+ name: string;
186
+ address: string;
187
+ }, {
188
+ address: import("superstruct").Struct<string, null>;
189
+ name: import("superstruct").Struct<string, null>;
190
+ }>>;
191
+ structs: import("superstruct").Struct<Record<string, {
192
+ fields: {
193
+ type: SuiMoveNormalizedType;
194
+ name: string;
195
+ }[];
196
+ abilities: {
197
+ abilities: string[];
198
+ };
199
+ typeParameters: {
200
+ constraints: {
201
+ abilities: string[];
202
+ };
203
+ isPhantom: boolean;
204
+ }[];
205
+ }>, null>;
206
+ exposedFunctions: import("superstruct").Struct<Record<string, {
207
+ visibility: "Private" | "Public" | "Friend";
208
+ isEntry: boolean;
209
+ typeParameters: {
210
+ abilities: string[];
211
+ }[];
212
+ parameters: SuiMoveNormalizedType[];
213
+ return: SuiMoveNormalizedType[];
214
+ }>, null>;
215
+ }>;
216
+ export type SuiMoveNormalizedModule = Infer<typeof SuiMoveNormalizedModule>;
217
+ export declare const SuiMoveNormalizedModules: import("superstruct").Struct<Record<string, {
218
+ name: string;
219
+ address: string;
220
+ fileFormatVersion: number;
221
+ friends: {
222
+ name: string;
223
+ address: string;
224
+ }[];
225
+ structs: Record<string, {
226
+ fields: {
227
+ type: SuiMoveNormalizedType;
228
+ name: string;
229
+ }[];
230
+ abilities: {
231
+ abilities: string[];
232
+ };
233
+ typeParameters: {
234
+ constraints: {
235
+ abilities: string[];
236
+ };
237
+ isPhantom: boolean;
238
+ }[];
239
+ }>;
240
+ exposedFunctions: Record<string, {
241
+ visibility: "Private" | "Public" | "Friend";
242
+ isEntry: boolean;
243
+ typeParameters: {
244
+ abilities: string[];
245
+ }[];
246
+ parameters: SuiMoveNormalizedType[];
247
+ return: SuiMoveNormalizedType[];
248
+ }>;
249
+ }>, null>;
250
+ export type SuiMoveNormalizedModules = Infer<typeof SuiMoveNormalizedModules>;
251
+ export declare function extractMutableReference(normalizedType: SuiMoveNormalizedType): SuiMoveNormalizedType | undefined;
252
+ export declare function extractReference(normalizedType: SuiMoveNormalizedType): SuiMoveNormalizedType | undefined;
253
+ export declare function extractStructTag(normalizedType: SuiMoveNormalizedType): SuiMoveNormalizedStructType | undefined;
254
+ //# sourceMappingURL=normalized.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"normalized.d.ts","sourceRoot":"","sources":["../../../../../src/lib/mystenlab/types/normalized.ts"],"names":[],"mappings":"AAAA,OAAO,EAAS,KAAK,EAAuE,MAAM,aAAa,CAAC;AAEhH,MAAM,MAAM,+BAA+B,GAAG,KAAK,CAAC,OAAO,sBAAsB,CAAC,EAAE,CAAC;AAErF,eAAO,MAAM,sBAAsB;;QAAkD,CAAC;AAEtF,eAAO,MAAM,uBAAuB;;;;SAAgC,CAAC;AACrE,MAAM,MAAM,uBAAuB,GAAG,KAAK,CAAC,OAAO,uBAAuB,CAAC,CAAC;AAE5E,eAAO,MAAM,eAAe;;;;;;EAG1B,CAAC;AACH,MAAM,MAAM,eAAe,GAAG,KAAK,CAAC,OAAO,eAAe,CAAC,CAAC;AAE5D,eAAO,MAAM,iBAAiB,qEAAoE,CAAC;AACnG,MAAM,MAAM,iBAAiB,GAAG,KAAK,CAAC,OAAO,iBAAiB,CAAC,CAAC;AAEhE,eAAO,MAAM,iBAAiB;;;;EAE5B,CAAC;AACH,MAAM,MAAM,iBAAiB,GAAG,KAAK,CAAC,OAAO,iBAAiB,CAAC,CAAC;AAEhE,eAAO,MAAM,0BAA0B;;;;;;;;;;;;EAGrC,CAAC;AACH,MAAM,MAAM,0BAA0B,GAAG,KAAK,CAAC,OAAO,0BAA0B,CAAC,CAAC;AAElF,eAAO,MAAM,kCAAkC;;;;EAE7C,CAAC;AACH,MAAM,MAAM,kCAAkC,GAAG,KAAK,CAAC,OAAO,kCAAkC,CAAC,CAAC;AAElG,MAAM,MAAM,qBAAqB,GAC7B,MAAM,GACN,kCAAkC,GAClC;IAAE,SAAS,EAAE,qBAAqB,CAAA;CAAE,GACpC;IAAE,gBAAgB,EAAE,qBAAqB,CAAA;CAAE,GAC3C;IAAE,MAAM,EAAE,qBAAqB,CAAA;CAAE,GACjC,2BAA2B,CAAC;AAgBhC,eAAO,MAAM,qBAAqB,2DAAkF,CAAC;AAErH,MAAM,MAAM,2BAA2B,GAAG;IACxC,MAAM,EAAE;QACN,OAAO,EAAE,MAAM,CAAC;QAChB,MAAM,EAAE,MAAM,CAAC;QACf,IAAI,EAAE,MAAM,CAAC;QACb,aAAa,EAAE,qBAAqB,EAAE,CAAC;KACxC,CAAC;CACH,CAAC;AAuBF,eAAO,MAAM,2BAA2B,iEAGvC,CAAC;AAEF,eAAO,MAAM,yBAAyB;;;;;;;;;;;;;;;;;;;;EAMpC,CAAC;AACH,MAAM,MAAM,yBAAyB,GAAG,KAAK,CAAC,OAAO,yBAAyB,CAAC,CAAC;AAEhF,eAAO,MAAM,sBAAsB;;;;;;EAGjC,CAAC;AACH,MAAM,MAAM,sBAAsB,GAAG,KAAK,CAAC,OAAO,sBAAsB,CAAC,CAAC;AAE1E,eAAO,MAAM,uBAAuB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAIlC,CAAC;AACH,MAAM,MAAM,uBAAuB,GAAG,KAAK,CAAC,OAAO,uBAAuB,CAAC,CAAC;AAE5E,eAAO,MAAM,uBAAuB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAOlC,CAAC;AACH,MAAM,MAAM,uBAAuB,GAAG,KAAK,CAAC,OAAO,uBAAuB,CAAC,CAAC;AAE5E,eAAO,MAAM,wBAAwB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;SAA4C,CAAC;AAClF,MAAM,MAAM,wBAAwB,GAAG,KAAK,CAAC,OAAO,wBAAwB,CAAC,CAAC;AAE9E,wBAAgB,uBAAuB,CAAC,cAAc,EAAE,qBAAqB,GAAG,qBAAqB,GAAG,SAAS,CAIhH;AAED,wBAAgB,gBAAgB,CAAC,cAAc,EAAE,qBAAqB,GAAG,qBAAqB,GAAG,SAAS,CAEzG;AAED,wBAAgB,gBAAgB,CAAC,cAAc,EAAE,qBAAqB,GAAG,2BAA2B,GAAG,SAAS,CAgB/G"}
@@ -0,0 +1,111 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.SuiMoveNormalizedModules = exports.SuiMoveNormalizedModule = exports.SuiMoveNormalizedStruct = exports.SuiMoveNormalizedField = exports.SuiMoveNormalizedFunction = exports.SuiMoveNormalizedStructType = exports.SuiMoveNormalizedType = exports.SuiMoveNormalizedTypeParameterType = exports.SuiMoveStructTypeParameter = exports.SuiMoveAbilitySet = exports.SuiMoveVisibility = exports.SuiMoveModuleId = exports.SuiMoveFunctionArgTypes = exports.SuiMoveFunctionArgType = void 0;
4
+ exports.extractMutableReference = extractMutableReference;
5
+ exports.extractReference = extractReference;
6
+ exports.extractStructTag = extractStructTag;
7
+ const superstruct_1 = require("superstruct");
8
+ exports.SuiMoveFunctionArgType = (0, superstruct_1.union)([(0, superstruct_1.string)(), (0, superstruct_1.object)({ Object: (0, superstruct_1.string)() })]);
9
+ exports.SuiMoveFunctionArgTypes = (0, superstruct_1.array)(exports.SuiMoveFunctionArgType);
10
+ exports.SuiMoveModuleId = (0, superstruct_1.object)({
11
+ address: (0, superstruct_1.string)(),
12
+ name: (0, superstruct_1.string)(),
13
+ });
14
+ exports.SuiMoveVisibility = (0, superstruct_1.union)([(0, superstruct_1.literal)('Private'), (0, superstruct_1.literal)('Public'), (0, superstruct_1.literal)('Friend')]);
15
+ exports.SuiMoveAbilitySet = (0, superstruct_1.object)({
16
+ abilities: (0, superstruct_1.array)((0, superstruct_1.string)()),
17
+ });
18
+ exports.SuiMoveStructTypeParameter = (0, superstruct_1.object)({
19
+ constraints: exports.SuiMoveAbilitySet,
20
+ isPhantom: (0, superstruct_1.boolean)(),
21
+ });
22
+ exports.SuiMoveNormalizedTypeParameterType = (0, superstruct_1.object)({
23
+ TypeParameter: (0, superstruct_1.number)(),
24
+ });
25
+ function isSuiMoveNormalizedType(value) {
26
+ if (!value)
27
+ return false;
28
+ if (typeof value === 'string')
29
+ return true;
30
+ if ((0, superstruct_1.is)(value, exports.SuiMoveNormalizedTypeParameterType))
31
+ return true;
32
+ if (isSuiMoveNormalizedStructType(value))
33
+ return true;
34
+ if (typeof value !== 'object')
35
+ return false;
36
+ const valueProperties = value;
37
+ if ((0, superstruct_1.is)(valueProperties.Reference, exports.SuiMoveNormalizedType))
38
+ return true;
39
+ if ((0, superstruct_1.is)(valueProperties.MutableReference, exports.SuiMoveNormalizedType))
40
+ return true;
41
+ if ((0, superstruct_1.is)(valueProperties.Vector, exports.SuiMoveNormalizedType))
42
+ return true;
43
+ return false;
44
+ }
45
+ exports.SuiMoveNormalizedType = (0, superstruct_1.define)('SuiMoveNormalizedType', isSuiMoveNormalizedType);
46
+ function isSuiMoveNormalizedStructType(value) {
47
+ if (!value || typeof value !== 'object')
48
+ return false;
49
+ const valueProperties = value;
50
+ if (!valueProperties.Struct || typeof valueProperties.Struct !== 'object')
51
+ return false;
52
+ const structProperties = valueProperties.Struct;
53
+ if (typeof structProperties.address !== 'string' ||
54
+ typeof structProperties.module !== 'string' ||
55
+ typeof structProperties.name !== 'string' ||
56
+ !Array.isArray(structProperties.typeArguments) ||
57
+ !structProperties.typeArguments.every((value) => isSuiMoveNormalizedType(value))) {
58
+ return false;
59
+ }
60
+ return true;
61
+ }
62
+ // NOTE: This type is recursive, so we need to manually implement it:
63
+ exports.SuiMoveNormalizedStructType = (0, superstruct_1.define)('SuiMoveNormalizedStructType', isSuiMoveNormalizedStructType);
64
+ exports.SuiMoveNormalizedFunction = (0, superstruct_1.object)({
65
+ visibility: exports.SuiMoveVisibility,
66
+ isEntry: (0, superstruct_1.boolean)(),
67
+ typeParameters: (0, superstruct_1.array)(exports.SuiMoveAbilitySet),
68
+ parameters: (0, superstruct_1.array)(exports.SuiMoveNormalizedType),
69
+ return: (0, superstruct_1.array)(exports.SuiMoveNormalizedType),
70
+ });
71
+ exports.SuiMoveNormalizedField = (0, superstruct_1.object)({
72
+ name: (0, superstruct_1.string)(),
73
+ type: exports.SuiMoveNormalizedType,
74
+ });
75
+ exports.SuiMoveNormalizedStruct = (0, superstruct_1.object)({
76
+ abilities: exports.SuiMoveAbilitySet,
77
+ typeParameters: (0, superstruct_1.array)(exports.SuiMoveStructTypeParameter),
78
+ fields: (0, superstruct_1.array)(exports.SuiMoveNormalizedField),
79
+ });
80
+ exports.SuiMoveNormalizedModule = (0, superstruct_1.object)({
81
+ fileFormatVersion: (0, superstruct_1.number)(),
82
+ address: (0, superstruct_1.string)(),
83
+ name: (0, superstruct_1.string)(),
84
+ friends: (0, superstruct_1.array)(exports.SuiMoveModuleId),
85
+ structs: (0, superstruct_1.record)((0, superstruct_1.string)(), exports.SuiMoveNormalizedStruct),
86
+ exposedFunctions: (0, superstruct_1.record)((0, superstruct_1.string)(), exports.SuiMoveNormalizedFunction),
87
+ });
88
+ exports.SuiMoveNormalizedModules = (0, superstruct_1.record)((0, superstruct_1.string)(), exports.SuiMoveNormalizedModule);
89
+ function extractMutableReference(normalizedType) {
90
+ return typeof normalizedType === 'object' && 'MutableReference' in normalizedType
91
+ ? normalizedType.MutableReference
92
+ : undefined;
93
+ }
94
+ function extractReference(normalizedType) {
95
+ return typeof normalizedType === 'object' && 'Reference' in normalizedType ? normalizedType.Reference : undefined;
96
+ }
97
+ function extractStructTag(normalizedType) {
98
+ if (typeof normalizedType === 'object' && 'Struct' in normalizedType) {
99
+ return normalizedType;
100
+ }
101
+ const ref = extractReference(normalizedType);
102
+ const mutRef = extractMutableReference(normalizedType);
103
+ if (typeof ref === 'object' && 'Struct' in ref) {
104
+ return ref;
105
+ }
106
+ if (typeof mutRef === 'object' && 'Struct' in mutRef) {
107
+ return mutRef;
108
+ }
109
+ return undefined;
110
+ }
111
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibm9ybWFsaXplZC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3NyYy9saWIvbXlzdGVubGFiL3R5cGVzL25vcm1hbGl6ZWQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7O0FBZ0lBLDBEQUlDO0FBRUQsNENBRUM7QUFFRCw0Q0FnQkM7QUExSkQsNkNBQWdIO0FBSW5HLFFBQUEsc0JBQXNCLEdBQUcsSUFBQSxtQkFBSyxFQUFDLENBQUMsSUFBQSxvQkFBTSxHQUFFLEVBQUUsSUFBQSxvQkFBTSxFQUFDLEVBQUUsTUFBTSxFQUFFLElBQUEsb0JBQU0sR0FBRSxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUM7QUFFekUsUUFBQSx1QkFBdUIsR0FBRyxJQUFBLG1CQUFLLEVBQUMsOEJBQXNCLENBQUMsQ0FBQztBQUd4RCxRQUFBLGVBQWUsR0FBRyxJQUFBLG9CQUFNLEVBQUM7SUFDcEMsT0FBTyxFQUFFLElBQUEsb0JBQU0sR0FBRTtJQUNqQixJQUFJLEVBQUUsSUFBQSxvQkFBTSxHQUFFO0NBQ2YsQ0FBQyxDQUFDO0FBR1UsUUFBQSxpQkFBaUIsR0FBRyxJQUFBLG1CQUFLLEVBQUMsQ0FBQyxJQUFBLHFCQUFPLEVBQUMsU0FBUyxDQUFDLEVBQUUsSUFBQSxxQkFBTyxFQUFDLFFBQVEsQ0FBQyxFQUFFLElBQUEscUJBQU8sRUFBQyxRQUFRLENBQUMsQ0FBQyxDQUFDLENBQUM7QUFHdEYsUUFBQSxpQkFBaUIsR0FBRyxJQUFBLG9CQUFNLEVBQUM7SUFDdEMsU0FBUyxFQUFFLElBQUEsbUJBQUssRUFBQyxJQUFBLG9CQUFNLEdBQUUsQ0FBQztDQUMzQixDQUFDLENBQUM7QUFHVSxRQUFBLDBCQUEwQixHQUFHLElBQUEsb0JBQU0sRUFBQztJQUMvQyxXQUFXLEVBQUUseUJBQWlCO0lBQzlCLFNBQVMsRUFBRSxJQUFBLHFCQUFPLEdBQUU7Q0FDckIsQ0FBQyxDQUFDO0FBR1UsUUFBQSxrQ0FBa0MsR0FBRyxJQUFBLG9CQUFNLEVB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LE9BQU8sY0FBYyxDQUFDO0lBQ3hCLENBQUM7SUFFRCxNQUFNLEdBQUcsR0FBRyxnQkFBZ0IsQ0FBQyxjQUFjLENBQUMsQ0FBQztJQUM3QyxNQUFNLE1BQU0sR0FBRyx1QkFBdUIsQ0FBQyxjQUFjLENBQUMsQ0FBQztJQUV2RCxJQUFJLE9BQU8sR0FBRyxLQUFLLFFBQVEsSUFBSSxRQUFRLElBQUksR0FBRyxFQUFFLENBQUM7UUFDL0MsT0FBTyxHQUFHLENBQUM7SUFDYixDQUFDO0lBRUQsSUFBSSxPQUFPLE1BQU0sS0FBSyxRQUFRLElBQUksUUFBUSxJQUFJLE1BQU0sRUFBRSxDQUFDO1FBQ3JELE9BQU8sTUFBTSxDQUFDO0lBQ2hCLENBQUM7SUFDRCxPQUFPLFNBQVMsQ0FBQztBQUNuQixDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgYXJyYXksIEluZmVyLCBvYmplY3QsIHN0cmluZywgdW5pb24sIGJvb2xlYW4sIGRlZmluZSwgbnVtYmVyLCBsaXRlcmFsLCByZWNvcmQsIGlzIH0gZnJvbSAnc3VwZXJzdHJ1Y3QnO1xuXG5leHBvcnQgdHlwZSBTdWlNb3ZlRnVuY3Rpb25BcmdUeXBlc1Jlc3BvbnNlID0gSW5mZXI8dHlwZW9mIFN1aU1vdmVGdW5jdGlvbkFyZ1R5cGU+W107XG5cbmV4cG9ydCBjb25zdCBTdWlNb3ZlRnVuY3Rpb25BcmdUeXBlID0gdW5pb24oW3N0cmluZygpLCBvYmplY3QoeyBPYmplY3Q6IHN0cmluZygpIH0pXSk7XG5cbmV4cG9ydCBjb25zdCBTdWlNb3ZlRnVuY3Rpb25BcmdUeXBlcyA9IGFycmF5KFN1aU1vdmVGdW5jdGlvbkFyZ1R5cGUpO1xuZXhwb3J0IHR5cGUgU3VpTW92ZUZ1bmN0aW9uQXJnVHlwZXMgPSBJbmZlcjx0eXBlb2YgU3VpTW92ZUZ1bmN0aW9uQXJnVHlwZXM+O1xuXG5leHBvcnQgY29uc3QgU3VpTW92ZU1vZHVsZUlkID0gb2JqZWN0KHtcbiAgYWRkcmVzczogc3RyaW5nKCksXG4gIG5hbWU6IHN0cmluZygpLFxufSk7XG5leHBvcnQgdHlwZSBTdWlNb3ZlTW9kdWxlSWQgPSBJbmZlcjx0eXBlb2YgU3VpTW92ZU1vZHVsZUlkPjtcblxuZXhwb3J0IGNvbnN0IFN1aU1vdmVWaXNpYmlsaXR5ID0gdW5pb24oW2xpdGVyYWwoJ1ByaXZhdGUnKSwgbGl0ZXJhbCgnUHVibGljJyksIGxpdGVyYWwoJ0ZyaWVuZCcpXSk7XG5leHBvcnQgdHlwZSBTdWlNb3ZlVmlzaWJpbGl0eSA9IEluZmVyPHR5cGVvZiBTdWlNb3ZlVmlzaWJpbGl0eT47XG5cbmV4cG9ydCBjb25zdCBTdWlNb3ZlQWJpbGl0eVNldCA9IG9iamVjdCh7XG4gIGFiaWxpdGllczogYXJyYXkoc3RyaW5nKCkpLFxufSk7XG5leHBvcnQgdHlwZSBTdWlNb3ZlQWJpbGl0eVNldCA9IEluZmVyPHR5cGVvZiBTdWlNb3ZlQWJpbGl0eVNldD47XG5cbmV4cG9ydCBjb25zdCBTdWlNb3ZlU3RydWN0VHlwZVBhcmFtZXRlciA9IG9iamVjdCh7XG4gIGNvbnN0cmFpbnRzOiBTdWlNb3ZlQWJpbGl0eVNldCxcbiAgaXNQaGFudG9tOiBib29sZWFuKCksXG59KTtcbmV4cG9ydCB0eXBlIFN1aU1vdmVTdHJ1Y3RUeXBlUGFyYW1ldGVyID0gSW5mZXI8dHlwZW9mIFN1aU1vdmVTdHJ1Y3RUeXBlUGFyYW1ldGVyPjtcblxuZXhwb3J0IGNvbnN0IFN1aU1vdmVOb3JtYWxpemVkVHlwZVBhcmFtZXRlclR5cGUgPSBvYmplY3Qoe1xuICBUeXBlUGFyYW1ldGVyOiBudW1iZXIoKSxcbn0pO1xuZXhwb3J0IHR5cGUgU3VpTW92ZU5vcm1hbGl6ZWRUeXBlUGFyYW1ldGVyVHlwZSA9IEluZmVyPHR5cGVvZiBTdWlNb3ZlTm9ybWFsaXplZFR5cGVQYXJhbWV0ZXJUeXBlPjtcblxuZXhwb3J0IHR5cGUgU3VpTW92ZU5vcm1hbGl6ZWRUeXBlID1cbiAgfCBzdHJpbmdcbiAgfCBTdWlNb3ZlTm9ybWFsaXplZFR5cGVQYXJhbWV0ZXJUeXBlXG4gIHwgeyBSZWZlcmVuY2U6IFN1aU1vdmVOb3JtYWxpemVkVHlwZSB9XG4gIHwgeyBNdXRhYmxlUmVmZXJlbmNlOiBTdWlNb3ZlTm9ybWFsaXplZFR5cGUgfVxuICB8IHsgVmVjdG9yOiBTdWlNb3ZlTm9ybWFsaXplZFR5cGUgfVxuICB8IFN1aU1vdmVOb3JtYWxpemVkU3RydWN0VHlwZTtcblxuZnVuY3Rpb24gaXNTdWlNb3ZlTm9ybWFsaXplZFR5cGUodmFsdWU6IHVua25vd24pOiB2YWx1ZSBpcyBTdWlNb3ZlTm9ybWFsaXplZFR5cGUge1xuICBpZiAoIXZhbHVlKSByZXR1cm4gZmFsc2U7XG4gIGlmICh0eXBlb2YgdmFsdWUgPT09ICdzdHJpbmcnKSByZXR1cm4gdHJ1ZTtcbiAgaWYgKGlzKHZhbHVlLCBTdWlNb3ZlTm9ybWFsaXplZFR5cGVQYXJhbWV0ZXJUeXBlKSkgcmV0dXJuIHRydWU7XG4gIGlmIChpc1N1aU1vdmVOb3JtYWxpemVkU3RydWN0VHlwZSh2YWx1ZSkpIHJldHVybiB0cnVlO1xuICBpZiAodHlwZW9mIHZhbHVlICE9PSAnb2JqZWN0JykgcmV0dXJuIGZhbHNlO1xuXG4gIGNvbnN0IHZhbHVlUHJvcGVydGllcyA9IHZhbHVlIGFzIFJlY29yZDxzdHJpbmcsIHVua25vd24+O1xuICBpZiAoaXModmFsdWVQcm9wZXJ0aWVzLlJlZmVyZW5jZSwgU3VpTW92ZU5vcm1hbGl6ZWRUeXBlKSkgcmV0dXJuIHRydWU7XG4gIGlmIChpcyh2YWx1ZVByb3BlcnRpZXMuTXV0YWJsZVJlZmVyZW5jZSwgU3VpTW92ZU5vcm1hbGl6ZWRUeXBlKSkgcmV0dXJuIHRydWU7XG4gIGlmIChpcyh2YWx1ZVByb3BlcnRpZXMuVmVjdG9yLCBTdWlNb3ZlTm9ybWFsaXplZFR5cGUpKSByZXR1cm4gdHJ1ZTtcbiAgcmV0dXJuIGZhbHNlO1xufVxuXG5leHBvcnQgY29uc3QgU3VpTW92ZU5vcm1hbGl6ZWRUeXBlID0gZGVmaW5lPFN1aU1vdmVOb3JtYWxpemVkVHlwZT4oJ1N1aU1vdmVOb3JtYWxpemVkVHlwZScsIGlzU3VpTW92ZU5vcm1hbGl6ZWRUeXBlKTtcblxuZXhwb3J0IHR5cGUgU3VpTW92ZU5vcm1hbGl6ZWRTdHJ1Y3RUeXBlID0ge1xuICBTdHJ1Y3Q6IHtcbiAgICBhZGRyZXNzOiBzdHJpbmc7XG4gICAgbW9kdWxlOiBzdHJpbmc7XG4gICAgbmFtZTogc3RyaW5nO1xuICAgIHR5cGVBcmd1bWVudHM6IFN1aU1vdmVOb3JtYWxpemVkVHlwZVtdO1xuICB9O1xufTtcblxuZnVuY3Rpb24gaXNTdWlNb3ZlTm9ybWFsaXplZFN0cnVjdFR5cGUodmFsdWU6IHVua25vd24pOiB2YWx1ZSBpcyBTdWlNb3ZlTm9ybWFsaXplZFN0cnVjdFR5cGUge1xuICBpZiAoIXZhbHVlIHx8IHR5cGVvZiB2YWx1ZSAhPT0gJ29iamVjdCcpIHJldHVybiBmYWxzZTtcblxuICBjb25zdCB2YWx1ZVByb3BlcnRpZXMgPSB2YWx1ZSBhcyBSZWNvcmQ8c3RyaW5nLCB1bmtub3duPjtcbiAgaWYgKCF2YWx1ZVByb3BlcnRpZXMuU3RydWN0IHx8IHR5cGVvZiB2YWx1ZVByb3BlcnRpZXMuU3RydWN0ICE9PSAnb2JqZWN0JykgcmV0dXJuIGZhbHNlO1xuXG4gIGNvbnN0IHN0cnVjdFByb3BlcnRpZXMgPSB2YWx1ZVByb3BlcnRpZXMuU3RydWN0IGFzIFJlY29yZDxzdHJpbmcsIHVua25vd24+O1xuICBpZiAoXG4gICAgdHlwZW9mIHN0cnVjdFByb3BlcnRpZXMuYWRkcmVzcyAhPT0gJ3N0cmluZycgfHxcbiAgICB0eXBlb2Ygc3RydWN0UHJvcGVydGllcy5tb2R1bGUgIT09ICdzdHJpbmcnIHx8XG4gICAgdHlwZW9mIHN0cnVjdFByb3BlcnRpZXMubmFtZSAhPT0gJ3N0cmluZycgfHxcbiAgICAhQXJyYXkuaXNBcnJheShzdHJ1Y3RQcm9wZXJ0aWVzLnR5cGVBcmd1bWVudHMpIHx8XG4gICAgIXN0cnVjdFByb3BlcnRpZXMudHlwZUFyZ3VtZW50cy5ldmVyeSgodmFsdWUpID0+IGlzU3VpTW92ZU5vcm1hbGl6ZWRUeXBlKHZhbHVlKSlcbiAgKSB7XG4gICAgcmV0dXJuIGZhbHNlO1xuICB9XG5cbiAgcmV0dXJuIHRydWU7XG59XG5cbi8vIE5PVEU6IFRoaXMgdHlwZSBpcyByZWN1cnNpdmUsIHNvIHdlIG5lZWQgdG8gbWFudWFsbHkgaW1wbGVtZW50IGl0OlxuZXhwb3J0IGNvbnN0IFN1aU1vdmVOb3JtYWxpemVkU3RydWN0VHlwZSA9IGRlZmluZTxTdWlNb3ZlTm9ybWFsaXplZFN0cnVjdFR5cGU+KFxuICAnU3VpTW92ZU5vcm1hbGl6ZWRTdHJ1Y3RUeXBlJyxcbiAgaXNTdWlNb3ZlTm9ybWFsaXplZFN0cnVjdFR5cGVcbik7XG5cbmV4cG9ydCBjb25zdCBTdWlNb3ZlTm9ybWFsaXplZEZ1bmN0aW9uID0gb2JqZWN0KHtcbiAgdmlzaWJpbGl0eTogU3VpTW92ZVZpc2liaWxpdHksXG4gIGlzRW50cnk6IGJvb2xlYW4oKSxcbiAgdHlwZVBhcmFtZXRlcnM6IGFycmF5KFN1aU1vdmVBYmlsaXR5U2V0KSxcbiAgcGFyYW1ldGVyczogYXJyYXkoU3VpTW92ZU5vcm1hbGl6ZWRUeXBlKSxcbiAgcmV0dXJuOiBhcnJheShTdWlNb3ZlTm9ybWFsaXplZFR5cGUpLFxufSk7XG5leHBvcnQgdHlwZSBTdWlNb3ZlTm9ybWFsaXplZEZ1bmN0aW9uID0gSW5mZXI8dHlwZW9mIFN1aU1vdmVOb3JtYWxpemVkRnVuY3Rpb24+O1xuXG5leHBvcnQgY29uc3QgU3VpTW92ZU5vcm1hbGl6ZWRGaWVsZCA9IG9iamVjdCh7XG4gIG5hbWU6IHN0cmluZygpLFxuICB0eXBlOiBTdWlNb3ZlTm9ybWFsaXplZFR5cGUsXG59KTtcbmV4cG9ydCB0eXBlIFN1aU1vdmVOb3JtYWxpemVkRmllbGQgPSBJbmZlcjx0eXBlb2YgU3VpTW92ZU5vcm1hbGl6ZWRGaWVsZD47XG5cbmV4cG9ydCBjb25zdCBTdWlNb3ZlTm9ybWFsaXplZFN0cnVjdCA9IG9iamVjdCh7XG4gIGFiaWxpdGllczogU3VpTW92ZUFiaWxpdHlTZXQsXG4gIHR5cGVQYXJhbWV0ZXJzOiBhcnJheShTdWlNb3ZlU3RydWN0VHlwZVBhcmFtZXRlciksXG4gIGZpZWxkczogYXJyYXkoU3VpTW92ZU5vcm1hbGl6ZWRGaWVsZCksXG59KTtcbmV4cG9ydCB0eXBlIFN1aU1vdmVOb3JtYWxpemVkU3RydWN0ID0gSW5mZXI8dHlwZW9mIFN1aU1vdmVOb3JtYWxpemVkU3RydWN0PjtcblxuZXhwb3J0IGNvbnN0IFN1aU1vdmVOb3JtYWxpemVkTW9kdWxlID0gb2JqZWN0KHtcbiAgZmlsZUZvcm1hdFZlcnNpb246IG51bWJlcigpLFxuICBhZGRyZXNzOiBzdHJpbmcoKSxcbiAgbmFtZTogc3RyaW5nKCksXG4gIGZyaWVuZHM6IGFycmF5KFN1aU1vdmVNb2R1bGVJZCksXG4gIHN0cnVjdHM6IHJlY29yZChzdHJpbmcoKSwgU3VpTW92ZU5vcm1hbGl6ZWRTdHJ1Y3QpLFxuICBleHBvc2VkRnVuY3Rpb25zOiByZWNvcmQoc3RyaW5nKCksIFN1aU1vdmVOb3JtYWxpemVkRnVuY3Rpb24pLFxufSk7XG5leHBvcnQgdHlwZSBTdWlNb3ZlTm9ybWFsaXplZE1vZHVsZSA9IEluZmVyPHR5cGVvZiBTdWlNb3ZlTm9ybWFsaXplZE1vZHVsZT47XG5cbmV4cG9ydCBjb25zdCBTdWlNb3ZlTm9ybWFsaXplZE1vZHVsZXMgPSByZWNvcmQoc3RyaW5nKCksIFN1aU1vdmVOb3JtYWxpemVkTW9kdWxlKTtcbmV4cG9ydCB0eXBlIFN1aU1vdmVOb3JtYWxpemVkTW9kdWxlcyA9IEluZmVyPHR5cGVvZiBTdWlNb3ZlTm9ybWFsaXplZE1vZHVsZXM+O1xuXG5leHBvcnQgZnVuY3Rpb24gZXh0cmFjdE11dGFibGVSZWZlcmVuY2Uobm9ybWFsaXplZFR5cGU6IFN1aU1vdmVOb3JtYWxpemVkVHlwZSk6IFN1aU1vdmVOb3JtYWxpemVkVHlwZSB8IHVuZGVmaW5lZCB7XG4gIHJldHVybiB0eXBlb2Ygbm9ybWFsaXplZFR5cGUgPT09ICdvYmplY3QnICYmICdNdXRhYmxlUmVmZXJlbmNlJyBpbiBub3JtYWxpemVkVHlwZVxuICAgID8gbm9ybWFsaXplZFR5cGUuTXV0YWJsZVJlZmVyZW5jZVxuICAgIDogdW5kZWZpbmVkO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gZXh0cmFjdFJlZmVyZW5jZShub3JtYWxpemVkVHlwZTogU3VpTW92ZU5vcm1hbGl6ZWRUeXBlKTogU3VpTW92ZU5vcm1hbGl6ZWRUeXBlIHwgdW5kZWZpbmVkIHtcbiAgcmV0dXJuIHR5cGVvZiBub3JtYWxpemVkVHlwZSA9PT0gJ29iamVjdCcgJiYgJ1JlZmVyZW5jZScgaW4gbm9ybWFsaXplZFR5cGUgPyBub3JtYWxpemVkVHlwZS5SZWZlcmVuY2UgOiB1bmRlZmluZWQ7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBleHRyYWN0U3RydWN0VGFnKG5vcm1hbGl6ZWRUeXBlOiBTdWlNb3ZlTm9ybWFsaXplZFR5cGUpOiBTdWlNb3ZlTm9ybWFsaXplZFN0cnVjdFR5cGUgfCB1bmRlZmluZWQge1xuICBpZiAodHlwZW9mIG5vcm1hbGl6ZWRUeXBlID09PSAnb2JqZWN0JyAmJiAnU3RydWN0JyBpbiBub3JtYWxpemVkVHlwZSkge1xuICAgIHJldHVybiBub3JtYWxpemVkVHlwZTtcbiAgfVxuXG4gIGNvbnN0IHJlZiA9IGV4dHJhY3RSZWZlcmVuY2Uobm9ybWFsaXplZFR5cGUpO1xuICBjb25zdCBtdXRSZWYgPSBleHRyYWN0TXV0YWJsZVJlZmVyZW5jZShub3JtYWxpemVkVHlwZSk7XG5cbiAgaWYgKHR5cGVvZiByZWYgPT09ICdvYmplY3QnICYmICdTdHJ1Y3QnIGluIHJlZikge1xuICAgIHJldHVybiByZWY7XG4gIH1cblxuICBpZiAodHlwZW9mIG11dFJlZiA9PT0gJ29iamVjdCcgJiYgJ1N0cnVjdCcgaW4gbXV0UmVmKSB7XG4gICAgcmV0dXJuIG11dFJlZjtcbiAgfVxuICByZXR1cm4gdW5kZWZpbmVkO1xufVxuIl19