@bitgo/sdk-coin-sui 2.0.1 → 3.0.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.
- package/.eslintignore +1 -0
- package/CHANGELOG.md +33 -0
- package/dist/src/lib/constants.d.ts +3 -15
- package/dist/src/lib/constants.d.ts.map +1 -1
- package/dist/src/lib/constants.js +7 -20
- package/dist/src/lib/iface.d.ts +35 -181
- package/dist/src/lib/iface.d.ts.map +1 -1
- package/dist/src/lib/iface.js +11 -38
- package/dist/src/lib/index.d.ts +2 -0
- package/dist/src/lib/index.d.ts.map +1 -1
- package/dist/src/lib/index.js +6 -2
- package/dist/src/lib/keyPair.d.ts +4 -0
- package/dist/src/lib/keyPair.d.ts.map +1 -1
- package/dist/src/lib/keyPair.js +7 -10
- package/dist/src/lib/mystenlab/builder/Inputs.d.ts +66 -0
- package/dist/src/lib/mystenlab/builder/Inputs.d.ts.map +1 -0
- package/dist/src/lib/mystenlab/builder/Inputs.js +56 -0
- package/dist/src/lib/mystenlab/builder/TransactionBlock.d.ts +616 -0
- package/dist/src/lib/mystenlab/builder/TransactionBlock.d.ts.map +1 -0
- package/dist/src/lib/mystenlab/builder/TransactionBlock.js +260 -0
- package/dist/src/lib/mystenlab/builder/TransactionDataBlock.d.ts +566 -0
- package/dist/src/lib/mystenlab/builder/TransactionDataBlock.d.ts.map +1 -0
- package/dist/src/lib/mystenlab/builder/TransactionDataBlock.js +171 -0
- package/dist/src/lib/mystenlab/builder/Transactions.d.ts +992 -0
- package/dist/src/lib/mystenlab/builder/Transactions.d.ts.map +1 -0
- package/dist/src/lib/mystenlab/builder/Transactions.js +119 -0
- package/dist/src/lib/mystenlab/builder/bcs.d.ts +25 -0
- package/dist/src/lib/mystenlab/builder/bcs.d.ts.map +1 -0
- package/dist/src/lib/mystenlab/builder/bcs.js +141 -0
- package/dist/src/lib/mystenlab/builder/index.d.ts +5 -0
- package/dist/src/lib/mystenlab/builder/index.d.ts.map +1 -0
- package/dist/src/lib/mystenlab/builder/index.js +17 -0
- package/dist/src/lib/mystenlab/builder/serializer.d.ts +4 -0
- package/dist/src/lib/mystenlab/builder/serializer.d.ts.map +1 -0
- package/dist/src/lib/mystenlab/builder/serializer.js +101 -0
- package/dist/src/lib/mystenlab/builder/utils.d.ts +10 -0
- package/dist/src/lib/mystenlab/builder/utils.d.ts.map +1 -0
- package/dist/src/lib/mystenlab/builder/utils.js +10 -0
- package/dist/src/lib/mystenlab/cryptography/hash.d.ts +8 -0
- package/dist/src/lib/mystenlab/cryptography/hash.d.ts.map +1 -0
- package/dist/src/lib/mystenlab/cryptography/hash.js +22 -0
- package/dist/src/lib/mystenlab/framework/framework.d.ts +93 -0
- package/dist/src/lib/mystenlab/framework/framework.d.ts.map +1 -0
- package/dist/src/lib/mystenlab/framework/framework.js +138 -0
- package/dist/src/lib/mystenlab/framework/index.d.ts +3 -0
- package/dist/src/lib/mystenlab/framework/index.d.ts.map +1 -0
- package/dist/src/lib/mystenlab/framework/index.js +15 -0
- package/dist/src/lib/mystenlab/framework/sui-system-state.d.ts +12 -0
- package/dist/src/lib/mystenlab/framework/sui-system-state.d.ts.map +1 -0
- package/dist/src/lib/mystenlab/framework/sui-system-state.js +19 -0
- package/dist/src/lib/mystenlab/txn-data-serializers/type-tag-serializer.d.ts +7 -0
- package/dist/src/lib/mystenlab/txn-data-serializers/type-tag-serializer.d.ts.map +1 -0
- package/dist/src/lib/mystenlab/txn-data-serializers/type-tag-serializer.js +119 -0
- package/dist/src/lib/mystenlab/types/coin.d.ts +89 -0
- package/dist/src/lib/mystenlab/types/coin.d.ts.map +1 -0
- package/dist/src/lib/mystenlab/types/coin.js +32 -0
- package/dist/src/lib/mystenlab/types/common.d.ts +45 -0
- package/dist/src/lib/mystenlab/types/common.d.ts.map +1 -0
- package/dist/src/lib/mystenlab/types/common.js +84 -0
- package/dist/src/lib/mystenlab/types/events.d.ts +198 -0
- package/dist/src/lib/mystenlab/types/events.d.ts.map +1 -0
- package/dist/src/lib/mystenlab/types/events.js +46 -0
- package/dist/src/lib/mystenlab/types/index.d.ts +9 -0
- package/dist/src/lib/mystenlab/types/index.d.ts.map +1 -0
- package/dist/src/lib/mystenlab/types/index.js +21 -0
- package/dist/src/lib/mystenlab/types/normalized.d.ts +254 -0
- package/dist/src/lib/mystenlab/types/normalized.d.ts.map +1 -0
- package/dist/src/lib/mystenlab/types/normalized.js +111 -0
- package/dist/src/lib/mystenlab/types/objects.d.ts +806 -0
- package/dist/src/lib/mystenlab/types/objects.d.ts.map +1 -0
- package/dist/src/lib/mystenlab/types/objects.js +302 -0
- package/dist/src/lib/mystenlab/types/option.d.ts +8 -0
- package/dist/src/lib/mystenlab/types/option.d.ts.map +1 -0
- package/dist/src/lib/mystenlab/types/option.js +14 -0
- package/dist/src/lib/mystenlab/types/sui-bcs.d.ts +111 -0
- package/dist/src/lib/mystenlab/types/sui-bcs.d.ts.map +1 -0
- package/dist/src/lib/mystenlab/types/sui-bcs.js +107 -0
- package/dist/src/lib/mystenlab/types/transactions.d.ts +6703 -0
- package/dist/src/lib/mystenlab/types/transactions.d.ts.map +1 -0
- package/dist/src/lib/mystenlab/types/transactions.js +405 -0
- package/dist/src/lib/mystenlab/types/validator.d.ts +641 -0
- package/dist/src/lib/mystenlab/types/validator.d.ts.map +1 -0
- package/dist/src/lib/mystenlab/types/validator.js +156 -0
- package/dist/src/lib/stakingBuilder.d.ts +24 -35
- package/dist/src/lib/stakingBuilder.d.ts.map +1 -1
- package/dist/src/lib/stakingBuilder.js +93 -129
- package/dist/src/lib/stakingTransaction.d.ts +5 -21
- package/dist/src/lib/stakingTransaction.d.ts.map +1 -1
- package/dist/src/lib/stakingTransaction.js +77 -219
- package/dist/src/lib/transaction.d.ts +8 -6
- package/dist/src/lib/transaction.d.ts.map +1 -1
- package/dist/src/lib/transaction.js +74 -124
- package/dist/src/lib/transactionBuilder.d.ts +9 -9
- package/dist/src/lib/transactionBuilder.d.ts.map +1 -1
- package/dist/src/lib/transactionBuilder.js +27 -16
- package/dist/src/lib/transactionBuilderFactory.d.ts +8 -5
- package/dist/src/lib/transactionBuilderFactory.d.ts.map +1 -1
- package/dist/src/lib/transactionBuilderFactory.js +17 -11
- package/dist/src/lib/transferBuilder.d.ts +15 -10
- package/dist/src/lib/transferBuilder.d.ts.map +1 -1
- package/dist/src/lib/transferBuilder.js +38 -101
- package/dist/src/lib/transferTransaction.d.ts +5 -4
- package/dist/src/lib/transferTransaction.d.ts.map +1 -1
- package/dist/src/lib/transferTransaction.js +45 -96
- package/dist/src/lib/unstakingBuilder.d.ts +55 -0
- package/dist/src/lib/unstakingBuilder.d.ts.map +1 -0
- package/dist/src/lib/unstakingBuilder.js +148 -0
- package/dist/src/lib/unstakingTransaction.d.ts +51 -0
- package/dist/src/lib/unstakingTransaction.d.ts.map +1 -0
- package/dist/src/lib/unstakingTransaction.js +206 -0
- package/dist/src/lib/utils.d.ts +30 -92
- package/dist/src/lib/utils.d.ts.map +1 -1
- package/dist/src/lib/utils.js +115 -177
- package/dist/src/sui.d.ts.map +1 -1
- package/dist/src/sui.js +23 -13
- package/package.json +9 -9
- package/dist/src/lib/bcs.d.ts +0 -3
- package/dist/src/lib/bcs.d.ts.map +0 -1
- package/dist/src/lib/bcs.js +0 -109
- package/dist/src/lib/txnSchema.d.ts +0 -7
- package/dist/src/lib/txnSchema.d.ts.map +0 -1
- package/dist/src/lib/txnSchema.js +0 -81
|
@@ -0,0 +1,254 @@
|
|
|
1
|
+
import { Infer } from 'superstruct';
|
|
2
|
+
export declare 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 declare type SuiMoveFunctionArgTypes = Infer<typeof SuiMoveFunctionArgTypes>;
|
|
12
|
+
export declare const SuiMoveModuleId: import("superstruct").Struct<{
|
|
13
|
+
address: string;
|
|
14
|
+
name: string;
|
|
15
|
+
}, {
|
|
16
|
+
address: import("superstruct").Struct<string, null>;
|
|
17
|
+
name: import("superstruct").Struct<string, null>;
|
|
18
|
+
}>;
|
|
19
|
+
export declare type SuiMoveModuleId = Infer<typeof SuiMoveModuleId>;
|
|
20
|
+
export declare const SuiMoveVisibility: import("superstruct").Struct<"Private" | "Public" | "Friend", null>;
|
|
21
|
+
export declare 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 declare 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 declare 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 declare type SuiMoveNormalizedTypeParameterType = Infer<typeof SuiMoveNormalizedTypeParameterType>;
|
|
48
|
+
export declare 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 declare 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 declare 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 declare 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 declare type SuiMoveNormalizedStruct = Infer<typeof SuiMoveNormalizedStruct>;
|
|
145
|
+
export declare const SuiMoveNormalizedModule: import("superstruct").Struct<{
|
|
146
|
+
address: string;
|
|
147
|
+
name: string;
|
|
148
|
+
fileFormatVersion: number;
|
|
149
|
+
friends: {
|
|
150
|
+
address: string;
|
|
151
|
+
name: 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
|
+
address: string;
|
|
183
|
+
name: string;
|
|
184
|
+
}[], import("superstruct").Struct<{
|
|
185
|
+
address: string;
|
|
186
|
+
name: 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 declare type SuiMoveNormalizedModule = Infer<typeof SuiMoveNormalizedModule>;
|
|
217
|
+
export declare const SuiMoveNormalizedModules: import("superstruct").Struct<Record<string, {
|
|
218
|
+
address: string;
|
|
219
|
+
name: string;
|
|
220
|
+
fileFormatVersion: number;
|
|
221
|
+
friends: {
|
|
222
|
+
address: string;
|
|
223
|
+
name: 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 declare 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,oBAAY,+BAA+B,GAAG,KAAK,CAAC,OAAO,sBAAsB,CAAC,EAAE,CAAC;AAErF,eAAO,MAAM,sBAAsB;;QAAkD,CAAC;AAEtF,eAAO,MAAM,uBAAuB;;;;SAAgC,CAAC;AACrE,oBAAY,uBAAuB,GAAG,KAAK,CAAC,OAAO,uBAAuB,CAAC,CAAC;AAE5E,eAAO,MAAM,eAAe;;;;;;EAG1B,CAAC;AACH,oBAAY,eAAe,GAAG,KAAK,CAAC,OAAO,eAAe,CAAC,CAAC;AAE5D,eAAO,MAAM,iBAAiB,qEAAoE,CAAC;AACnG,oBAAY,iBAAiB,GAAG,KAAK,CAAC,OAAO,iBAAiB,CAAC,CAAC;AAEhE,eAAO,MAAM,iBAAiB;;;;EAE5B,CAAC;AACH,oBAAY,iBAAiB,GAAG,KAAK,CAAC,OAAO,iBAAiB,CAAC,CAAC;AAEhE,eAAO,MAAM,0BAA0B;;;;;;;;;;;;EAGrC,CAAC;AACH,oBAAY,0BAA0B,GAAG,KAAK,CAAC,OAAO,0BAA0B,CAAC,CAAC;AAElF,eAAO,MAAM,kCAAkC;;;;EAE7C,CAAC;AACH,oBAAY,kCAAkC,GAAG,KAAK,CAAC,OAAO,kCAAkC,CAAC,CAAC;AAElG,oBAAY,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,oBAAY,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,oBAAY,yBAAyB,GAAG,KAAK,CAAC,OAAO,yBAAyB,CAAC,CAAC;AAEhF,eAAO,MAAM,sBAAsB;;;;;;EAGjC,CAAC;AACH,oBAAY,sBAAsB,GAAG,KAAK,CAAC,OAAO,sBAAsB,CAAC,CAAC;AAE1E,eAAO,MAAM,uBAAuB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAIlC,CAAC;AACH,oBAAY,uBAAuB,GAAG,KAAK,CAAC,OAAO,uBAAuB,CAAC,CAAC;AAE5E,eAAO,MAAM,uBAAuB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAOlC,CAAC;AACH,oBAAY,uBAAuB,GAAG,KAAK,CAAC,OAAO,uBAAuB,CAAC,CAAC;AAE5E,eAAO,MAAM,wBAAwB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;SAA4C,CAAC;AAClF,oBAAY,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.extractStructTag = exports.extractReference = exports.extractMutableReference = 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
|
+
const superstruct_1 = require("superstruct");
|
|
5
|
+
exports.SuiMoveFunctionArgType = superstruct_1.union([superstruct_1.string(), superstruct_1.object({ Object: superstruct_1.string() })]);
|
|
6
|
+
exports.SuiMoveFunctionArgTypes = superstruct_1.array(exports.SuiMoveFunctionArgType);
|
|
7
|
+
exports.SuiMoveModuleId = superstruct_1.object({
|
|
8
|
+
address: superstruct_1.string(),
|
|
9
|
+
name: superstruct_1.string(),
|
|
10
|
+
});
|
|
11
|
+
exports.SuiMoveVisibility = superstruct_1.union([superstruct_1.literal('Private'), superstruct_1.literal('Public'), superstruct_1.literal('Friend')]);
|
|
12
|
+
exports.SuiMoveAbilitySet = superstruct_1.object({
|
|
13
|
+
abilities: superstruct_1.array(superstruct_1.string()),
|
|
14
|
+
});
|
|
15
|
+
exports.SuiMoveStructTypeParameter = superstruct_1.object({
|
|
16
|
+
constraints: exports.SuiMoveAbilitySet,
|
|
17
|
+
isPhantom: superstruct_1.boolean(),
|
|
18
|
+
});
|
|
19
|
+
exports.SuiMoveNormalizedTypeParameterType = superstruct_1.object({
|
|
20
|
+
TypeParameter: superstruct_1.number(),
|
|
21
|
+
});
|
|
22
|
+
function isSuiMoveNormalizedType(value) {
|
|
23
|
+
if (!value)
|
|
24
|
+
return false;
|
|
25
|
+
if (typeof value === 'string')
|
|
26
|
+
return true;
|
|
27
|
+
if (superstruct_1.is(value, exports.SuiMoveNormalizedTypeParameterType))
|
|
28
|
+
return true;
|
|
29
|
+
if (isSuiMoveNormalizedStructType(value))
|
|
30
|
+
return true;
|
|
31
|
+
if (typeof value !== 'object')
|
|
32
|
+
return false;
|
|
33
|
+
const valueProperties = value;
|
|
34
|
+
if (superstruct_1.is(valueProperties.Reference, exports.SuiMoveNormalizedType))
|
|
35
|
+
return true;
|
|
36
|
+
if (superstruct_1.is(valueProperties.MutableReference, exports.SuiMoveNormalizedType))
|
|
37
|
+
return true;
|
|
38
|
+
if (superstruct_1.is(valueProperties.Vector, exports.SuiMoveNormalizedType))
|
|
39
|
+
return true;
|
|
40
|
+
return false;
|
|
41
|
+
}
|
|
42
|
+
exports.SuiMoveNormalizedType = superstruct_1.define('SuiMoveNormalizedType', isSuiMoveNormalizedType);
|
|
43
|
+
function isSuiMoveNormalizedStructType(value) {
|
|
44
|
+
if (!value || typeof value !== 'object')
|
|
45
|
+
return false;
|
|
46
|
+
const valueProperties = value;
|
|
47
|
+
if (!valueProperties.Struct || typeof valueProperties.Struct !== 'object')
|
|
48
|
+
return false;
|
|
49
|
+
const structProperties = valueProperties.Struct;
|
|
50
|
+
if (typeof structProperties.address !== 'string' ||
|
|
51
|
+
typeof structProperties.module !== 'string' ||
|
|
52
|
+
typeof structProperties.name !== 'string' ||
|
|
53
|
+
!Array.isArray(structProperties.typeArguments) ||
|
|
54
|
+
!structProperties.typeArguments.every((value) => isSuiMoveNormalizedType(value))) {
|
|
55
|
+
return false;
|
|
56
|
+
}
|
|
57
|
+
return true;
|
|
58
|
+
}
|
|
59
|
+
// NOTE: This type is recursive, so we need to manually implement it:
|
|
60
|
+
exports.SuiMoveNormalizedStructType = superstruct_1.define('SuiMoveNormalizedStructType', isSuiMoveNormalizedStructType);
|
|
61
|
+
exports.SuiMoveNormalizedFunction = superstruct_1.object({
|
|
62
|
+
visibility: exports.SuiMoveVisibility,
|
|
63
|
+
isEntry: superstruct_1.boolean(),
|
|
64
|
+
typeParameters: superstruct_1.array(exports.SuiMoveAbilitySet),
|
|
65
|
+
parameters: superstruct_1.array(exports.SuiMoveNormalizedType),
|
|
66
|
+
return: superstruct_1.array(exports.SuiMoveNormalizedType),
|
|
67
|
+
});
|
|
68
|
+
exports.SuiMoveNormalizedField = superstruct_1.object({
|
|
69
|
+
name: superstruct_1.string(),
|
|
70
|
+
type: exports.SuiMoveNormalizedType,
|
|
71
|
+
});
|
|
72
|
+
exports.SuiMoveNormalizedStruct = superstruct_1.object({
|
|
73
|
+
abilities: exports.SuiMoveAbilitySet,
|
|
74
|
+
typeParameters: superstruct_1.array(exports.SuiMoveStructTypeParameter),
|
|
75
|
+
fields: superstruct_1.array(exports.SuiMoveNormalizedField),
|
|
76
|
+
});
|
|
77
|
+
exports.SuiMoveNormalizedModule = superstruct_1.object({
|
|
78
|
+
fileFormatVersion: superstruct_1.number(),
|
|
79
|
+
address: superstruct_1.string(),
|
|
80
|
+
name: superstruct_1.string(),
|
|
81
|
+
friends: superstruct_1.array(exports.SuiMoveModuleId),
|
|
82
|
+
structs: superstruct_1.record(superstruct_1.string(), exports.SuiMoveNormalizedStruct),
|
|
83
|
+
exposedFunctions: superstruct_1.record(superstruct_1.string(), exports.SuiMoveNormalizedFunction),
|
|
84
|
+
});
|
|
85
|
+
exports.SuiMoveNormalizedModules = superstruct_1.record(superstruct_1.string(), exports.SuiMoveNormalizedModule);
|
|
86
|
+
function extractMutableReference(normalizedType) {
|
|
87
|
+
return typeof normalizedType === 'object' && 'MutableReference' in normalizedType
|
|
88
|
+
? normalizedType.MutableReference
|
|
89
|
+
: undefined;
|
|
90
|
+
}
|
|
91
|
+
exports.extractMutableReference = extractMutableReference;
|
|
92
|
+
function extractReference(normalizedType) {
|
|
93
|
+
return typeof normalizedType === 'object' && 'Reference' in normalizedType ? normalizedType.Reference : undefined;
|
|
94
|
+
}
|
|
95
|
+
exports.extractReference = extractReference;
|
|
96
|
+
function extractStructTag(normalizedType) {
|
|
97
|
+
if (typeof normalizedType === 'object' && 'Struct' in normalizedType) {
|
|
98
|
+
return normalizedType;
|
|
99
|
+
}
|
|
100
|
+
const ref = extractReference(normalizedType);
|
|
101
|
+
const mutRef = extractMutableReference(normalizedType);
|
|
102
|
+
if (typeof ref === 'object' && 'Struct' in ref) {
|
|
103
|
+
return ref;
|
|
104
|
+
}
|
|
105
|
+
if (typeof mutRef === 'object' && 'Struct' in mutRef) {
|
|
106
|
+
return mutRef;
|
|
107
|
+
}
|
|
108
|
+
return undefined;
|
|
109
|
+
}
|
|
110
|
+
exports.extractStructTag = extractStructTag;
|
|
111
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibm9ybWFsaXplZC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3NyYy9saWIvbXlzdGVubGFiL3R5cGVzL25vcm1hbGl6ZWQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7O0FBQUEsNkNBQWdIO0FBSW5HLFFBQUEsc0JBQXNCLEdBQUcsbUJBQUssQ0FBQyxDQUFDLG9CQUFNLEVBQUUsRUFBRSxvQkFBTSxDQUFDLEVBQUUsTUFBTSxFQUFFLG9CQUFNLEVBQUUsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDO0FBRXpFLFFBQUEsdUJBQXVCLEdBQUcsbUJBQUssQ0FBQyw4QkFBc0IsQ0FBQyxDQUFDO0FBR3hELFFBQUEsZUFBZSxHQUFHLG9CQUFNLENBQUM7SUFDcEMsT0FBTyxFQUFFLG9CQUFNLEVBQUU7SUFDakIsSUFBSSxFQUFFLG9CQUFNLEVBQUU7Q0FDZixDQUFDLENBQUM7QUFHVSxRQUFBLGlCQUFpQixHQUFHLG1CQUFLLENBQUMsQ0FBQyxxQkFBTyxDQUFDLFNBQVMsQ0FBQyxFQUFFLHFCQUFPLENBQUMsUUFBUSxDQUFDLEVBQUUscUJBQU8sQ0FBQyxRQUFRLENBQUMsQ0FBQyxDQUFDLENBQUM7QUFHdEYsUUFBQSxpQkFBaUIsR0FBRyxvQkFBTSxDQUFDO0lBQ3RDLFNBQVMsRUFBRSxtQkFBSyxDQUFDLG9CQUFNLEVBQUUsQ0FBQztDQUMzQixDQUFDLENBQUM7QUFHVSxRQUFBLDBCQUEwQixHQUFHLG9CQUFNLENBQUM7SUFDL0MsV0FBVyxFQUFFLHlCQUFpQjtJQUM5QixTQUFTLEVBQUUscUJBQU8sRUFBRTtDQUNyQixDQUFDLENBQUM7QUFHVSxRQUFBLGtDQUFrQyxHQUFHLG9CQUFNLENBQUM7SUFDdkQsYUFBYSxFQUFFLG9CQUFNLEVBQUU7Q0FDeEIsQ0FBQyxDQUFDO0FBV0gsU0FBUyx1QkFBdUIsQ0FBQyxLQUFjO0lBQzdDLElBQUksQ0FBQyxLQUFLO1FBQUUsT0FBTyxLQUFLLENBQUM7SUFDekIsSUFBSSxP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LE9BQU8sTUFBTSxDQUFDO0tBQ2Y7SUFDRCxPQUFPLFNBQVMsQ0FBQztBQUNuQixDQUFDO0FBaEJELDRDQWdCQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IGFycmF5LCBJbmZlciwgb2JqZWN0LCBzdHJpbmcsIHVuaW9uLCBib29sZWFuLCBkZWZpbmUsIG51bWJlciwgbGl0ZXJhbCwgcmVjb3JkLCBpcyB9IGZyb20gJ3N1cGVyc3RydWN0JztcblxuZXhwb3J0IHR5cGUgU3VpTW92ZUZ1bmN0aW9uQXJnVHlwZXNSZXNwb25zZSA9IEluZmVyPHR5cGVvZiBTdWlNb3ZlRnVuY3Rpb25BcmdUeXBlPltdO1xuXG5leHBvcnQgY29uc3QgU3VpTW92ZUZ1bmN0aW9uQXJnVHlwZSA9IHVuaW9uKFtzdHJpbmcoKSwgb2JqZWN0KHsgT2JqZWN0OiBzdHJpbmcoKSB9KV0pO1xuXG5leHBvcnQgY29uc3QgU3VpTW92ZUZ1bmN0aW9uQXJnVHlwZXMgPSBhcnJheShTdWlNb3ZlRnVuY3Rpb25BcmdUeXBlKTtcbmV4cG9ydCB0eXBlIFN1aU1vdmVGdW5jdGlvbkFyZ1R5cGVzID0gSW5mZXI8dHlwZW9mIFN1aU1vdmVGdW5jdGlvbkFyZ1R5cGVzPjtcblxuZXhwb3J0IGNvbnN0IFN1aU1vdmVNb2R1bGVJZCA9IG9iamVjdCh7XG4gIGFkZHJlc3M6IHN0cmluZygpLFxuICBuYW1lOiBzdHJpbmcoKSxcbn0pO1xuZXhwb3J0IHR5cGUgU3VpTW92ZU1vZHVsZUlkID0gSW5mZXI8dHlwZW9mIFN1aU1vdmVNb2R1bGVJZD47XG5cbmV4cG9ydCBjb25zdCBTdWlNb3ZlVmlzaWJpbGl0eSA9IHVuaW9uKFtsaXRlcmFsKCdQcml2YXRlJyksIGxpdGVyYWwoJ1B1YmxpYycpLCBsaXRlcmFsKCdGcmllbmQnKV0pO1xuZXhwb3J0IHR5cGUgU3VpTW92ZVZpc2liaWxpdHkgPSBJbmZlcjx0eXBlb2YgU3VpTW92ZVZpc2liaWxpdHk+O1xuXG5leHBvcnQgY29uc3QgU3VpTW92ZUFiaWxpdHlTZXQgPSBvYmplY3Qoe1xuICBhYmlsaXRpZXM6IGFycmF5KHN0cmluZygpKSxcbn0pO1xuZXhwb3J0IHR5cGUgU3VpTW92ZUFiaWxpdHlTZXQgPSBJbmZlcjx0eXBlb2YgU3VpTW92ZUFiaWxpdHlTZXQ+O1xuXG5leHBvcnQgY29uc3QgU3VpTW92ZVN0cnVjdFR5cGVQYXJhbWV0ZXIgPSBvYmplY3Qoe1xuICBjb25zdHJhaW50czogU3VpTW92ZUFiaWxpdHlTZXQsXG4gIGlzUGhhbnRvbTogYm9vbGVhbigpLFxufSk7XG5leHBvcnQgdHlwZSBTdWlNb3ZlU3RydWN0VHlwZVBhcmFtZXRlciA9IEluZmVyPHR5cGVvZiBTdWlNb3ZlU3RydWN0VHlwZVBhcmFtZXRlcj47XG5cbmV4cG9ydCBjb25zdCBTdWlNb3ZlTm9ybWFsaXplZFR5cGVQYXJhbWV0ZXJUeXBlID0gb2JqZWN0KHtcbiAgVHlwZVBhcmFtZXRlcjogbnVtYmVyKCksXG59KTtcbmV4cG9ydCB0eXBlIFN1aU1vdmVOb3JtYWxpemVkVHlwZVBhcmFtZXRlclR5cGUgPSBJbmZlcjx0eXBlb2YgU3VpTW92ZU5vcm1hbGl6ZWRUeXBlUGFyYW1ldGVyVHlwZT47XG5cbmV4cG9ydCB0eXBlIFN1aU1vdmVOb3JtYWxpemVkVHlwZSA9XG4gIHwgc3RyaW5nXG4gIHwgU3VpTW92ZU5vcm1hbGl6ZWRUeXBlUGFyYW1ldGVyVHlwZVxuICB8IHsgUmVmZXJlbmNlOiBTdWlNb3ZlTm9ybWFsaXplZFR5cGUgfVxuICB8IHsgTXV0YWJsZVJlZmVyZW5jZTogU3VpTW92ZU5vcm1hbGl6ZWRUeXBlIH1cbiAgfCB7IFZlY3RvcjogU3VpTW92ZU5vcm1hbGl6ZWRUeXBlIH1cbiAgfCBTdWlNb3ZlTm9ybWFsaXplZFN0cnVjdFR5cGU7XG5cbmZ1bmN0aW9uIGlzU3VpTW92ZU5vcm1hbGl6ZWRUeXBlKHZhbHVlOiB1bmtub3duKTogdmFsdWUgaXMgU3VpTW92ZU5vcm1hbGl6ZWRUeXBlIHtcbiAgaWYgKCF2YWx1ZSkgcmV0dXJuIGZhbHNlO1xuICBpZiAodHlwZW9mIHZhbHVlID09PSAnc3RyaW5nJykgcmV0dXJuIHRydWU7XG4gIGlmIChpcyh2YWx1ZSwgU3VpTW92ZU5vcm1hbGl6ZWRUeXBlUGFyYW1ldGVyVHlwZSkpIHJldHVybiB0cnVlO1xuICBpZiAoaXNTdWlNb3ZlTm9ybWFsaXplZFN0cnVjdFR5cGUodmFsdWUpKSByZXR1cm4gdHJ1ZTtcbiAgaWYgKHR5cGVvZiB2YWx1ZSAhPT0gJ29iamVjdCcpIHJldHVybiBmYWxzZTtcblxuICBjb25zdCB2YWx1ZVByb3BlcnRpZXMgPSB2YWx1ZSBhcyBSZWNvcmQ8c3RyaW5nLCB1bmtub3duPjtcbiAgaWYgKGlzKHZhbHVlUHJvcGVydGllcy5SZWZlcmVuY2UsIFN1aU1vdmVOb3JtYWxpemVkVHlwZSkpIHJldHVybiB0cnVlO1xuICBpZiAoaXModmFsdWVQcm9wZXJ0aWVzLk11dGFibGVSZWZlcmVuY2UsIFN1aU1vdmVOb3JtYWxpemVkVHlwZSkpIHJldHVybiB0cnVlO1xuICBpZiAoaXModmFsdWVQcm9wZXJ0aWVzLlZlY3RvciwgU3VpTW92ZU5vcm1hbGl6ZWRUeXBlKSkgcmV0dXJuIHRydWU7XG4gIHJldHVybiBmYWxzZTtcbn1cblxuZXhwb3J0IGNvbnN0IFN1aU1vdmVOb3JtYWxpemVkVHlwZSA9IGRlZmluZTxTdWlNb3ZlTm9ybWFsaXplZFR5cGU+KCdTdWlNb3ZlTm9ybWFsaXplZFR5cGUnLCBpc1N1aU1vdmVOb3JtYWxpemVkVHlwZSk7XG5cbmV4cG9ydCB0eXBlIFN1aU1vdmVOb3JtYWxpemVkU3RydWN0VHlwZSA9IHtcbiAgU3RydWN0OiB7XG4gICAgYWRkcmVzczogc3RyaW5nO1xuICAgIG1vZHVsZTogc3RyaW5nO1xuICAgIG5hbWU6IHN0cmluZztcbiAgICB0eXBlQXJndW1lbnRzOiBTdWlNb3ZlTm9ybWFsaXplZFR5cGVbXTtcbiAgfTtcbn07XG5cbmZ1bmN0aW9uIGlzU3VpTW92ZU5vcm1hbGl6ZWRTdHJ1Y3RUeXBlKHZhbHVlOiB1bmtub3duKTogdmFsdWUgaXMgU3VpTW92ZU5vcm1hbGl6ZWRTdHJ1Y3RUeXBlIHtcbiAgaWYgKCF2YWx1ZSB8fCB0eXBlb2YgdmFsdWUgIT09ICdvYmplY3QnKSByZXR1cm4gZmFsc2U7XG5cbiAgY29uc3QgdmFsdWVQcm9wZXJ0aWVzID0gdmFsdWUgYXMgUmVjb3JkPHN0cmluZywgdW5rbm93bj47XG4gIGlmICghdmFsdWVQcm9wZXJ0aWVzLlN0cnVjdCB8fCB0eXBlb2YgdmFsdWVQcm9wZXJ0aWVzLlN0cnVjdCAhPT0gJ29iamVjdCcpIHJldHVybiBmYWxzZTtcblxuICBjb25zdCBzdHJ1Y3RQcm9wZXJ0aWVzID0gdmFsdWVQcm9wZXJ0aWVzLlN0cnVjdCBhcyBSZWNvcmQ8c3RyaW5nLCB1bmtub3duPjtcbiAgaWYgKFxuICAgIHR5cGVvZiBzdHJ1Y3RQcm9wZXJ0aWVzLmFkZHJlc3MgIT09ICdzdHJpbmcnIHx8XG4gICAgdHlwZW9mIHN0cnVjdFByb3BlcnRpZXMubW9kdWxlICE9PSAnc3RyaW5nJyB8fFxuICAgIHR5cGVvZiBzdHJ1Y3RQcm9wZXJ0aWVzLm5hbWUgIT09ICdzdHJpbmcnIHx8XG4gICAgIUFycmF5LmlzQXJyYXkoc3RydWN0UHJvcGVydGllcy50eXBlQXJndW1lbnRzKSB8fFxuICAgICFzdHJ1Y3RQcm9wZXJ0aWVzLnR5cGVBcmd1bWVudHMuZXZlcnkoKHZhbHVlKSA9PiBpc1N1aU1vdmVOb3JtYWxpemVkVHlwZSh2YWx1ZSkpXG4gICkge1xuICAgIHJldHVybiBmYWxzZTtcbiAgfVxuXG4gIHJldHVybiB0cnVlO1xufVxuXG4vLyBOT1RFOiBUaGlzIHR5cGUgaXMgcmVjdXJzaXZlLCBzbyB3ZSBuZWVkIHRvIG1hbnVhbGx5IGltcGxlbWVudCBpdDpcbmV4cG9ydCBjb25zdCBTdWlNb3ZlTm9ybWFsaXplZFN0cnVjdFR5cGUgPSBkZWZpbmU8U3VpTW92ZU5vcm1hbGl6ZWRTdHJ1Y3RUeXBlPihcbiAgJ1N1aU1vdmVOb3JtYWxpemVkU3RydWN0VHlwZScsXG4gIGlzU3VpTW92ZU5vcm1hbGl6ZWRTdHJ1Y3RUeXBlXG4pO1xuXG5leHBvcnQgY29uc3QgU3VpTW92ZU5vcm1hbGl6ZWRGdW5jdGlvbiA9IG9iamVjdCh7XG4gIHZpc2liaWxpdHk6IFN1aU1vdmVWaXNpYmlsaXR5LFxuICBpc0VudHJ5OiBib29sZWFuKCksXG4gIHR5cGVQYXJhbWV0ZXJzOiBhcnJheShTdWlNb3ZlQWJpbGl0eVNldCksXG4gIHBhcmFtZXRlcnM6IGFycmF5KFN1aU1vdmVOb3JtYWxpemVkVHlwZSksXG4gIHJldHVybjogYXJyYXkoU3VpTW92ZU5vcm1hbGl6ZWRUeXBlKSxcbn0pO1xuZXhwb3J0IHR5cGUgU3VpTW92ZU5vcm1hbGl6ZWRGdW5jdGlvbiA9IEluZmVyPHR5cGVvZiBTdWlNb3ZlTm9ybWFsaXplZEZ1bmN0aW9uPjtcblxuZXhwb3J0IGNvbnN0IFN1aU1vdmVOb3JtYWxpemVkRmllbGQgPSBvYmplY3Qoe1xuICBuYW1lOiBzdHJpbmcoKSxcbiAgdHlwZTogU3VpTW92ZU5vcm1hbGl6ZWRUeXBlLFxufSk7XG5leHBvcnQgdHlwZSBTdWlNb3ZlTm9ybWFsaXplZEZpZWxkID0gSW5mZXI8dHlwZW9mIFN1aU1vdmVOb3JtYWxpemVkRmllbGQ+O1xuXG5leHBvcnQgY29uc3QgU3VpTW92ZU5vcm1hbGl6ZWRTdHJ1Y3QgPSBvYmplY3Qoe1xuICBhYmlsaXRpZXM6IFN1aU1vdmVBYmlsaXR5U2V0LFxuICB0eXBlUGFyYW1ldGVyczogYXJyYXkoU3VpTW92ZVN0cnVjdFR5cGVQYXJhbWV0ZXIpLFxuICBmaWVsZHM6IGFycmF5KFN1aU1vdmVOb3JtYWxpemVkRmllbGQpLFxufSk7XG5leHBvcnQgdHlwZSBTdWlNb3ZlTm9ybWFsaXplZFN0cnVjdCA9IEluZmVyPHR5cGVvZiBTdWlNb3ZlTm9ybWFsaXplZFN0cnVjdD47XG5cbmV4cG9ydCBjb25zdCBTdWlNb3ZlTm9ybWFsaXplZE1vZHVsZSA9IG9iamVjdCh7XG4gIGZpbGVGb3JtYXRWZXJzaW9uOiBudW1iZXIoKSxcbiAgYWRkcmVzczogc3RyaW5nKCksXG4gIG5hbWU6IHN0cmluZygpLFxuICBmcmllbmRzOiBhcnJheShTdWlNb3ZlTW9kdWxlSWQpLFxuICBzdHJ1Y3RzOiByZWNvcmQoc3RyaW5nKCksIFN1aU1vdmVOb3JtYWxpemVkU3RydWN0KSxcbiAgZXhwb3NlZEZ1bmN0aW9uczogcmVjb3JkKHN0cmluZygpLCBTdWlNb3ZlTm9ybWFsaXplZEZ1bmN0aW9uKSxcbn0pO1xuZXhwb3J0IHR5cGUgU3VpTW92ZU5vcm1hbGl6ZWRNb2R1bGUgPSBJbmZlcjx0eXBlb2YgU3VpTW92ZU5vcm1hbGl6ZWRNb2R1bGU+O1xuXG5leHBvcnQgY29uc3QgU3VpTW92ZU5vcm1hbGl6ZWRNb2R1bGVzID0gcmVjb3JkKHN0cmluZygpLCBTdWlNb3ZlTm9ybWFsaXplZE1vZHVsZSk7XG5leHBvcnQgdHlwZSBTdWlNb3ZlTm9ybWFsaXplZE1vZHVsZXMgPSBJbmZlcjx0eXBlb2YgU3VpTW92ZU5vcm1hbGl6ZWRNb2R1bGVzPjtcblxuZXhwb3J0IGZ1bmN0aW9uIGV4dHJhY3RNdXRhYmxlUmVmZXJlbmNlKG5vcm1hbGl6ZWRUeXBlOiBTdWlNb3ZlTm9ybWFsaXplZFR5cGUpOiBTdWlNb3ZlTm9ybWFsaXplZFR5cGUgfCB1bmRlZmluZWQge1xuICByZXR1cm4gdHlwZW9mIG5vcm1hbGl6ZWRUeXBlID09PSAnb2JqZWN0JyAmJiAnTXV0YWJsZVJlZmVyZW5jZScgaW4gbm9ybWFsaXplZFR5cGVcbiAgICA/IG5vcm1hbGl6ZWRUeXBlLk11dGFibGVSZWZlcmVuY2VcbiAgICA6IHVuZGVmaW5lZDtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGV4dHJhY3RSZWZlcmVuY2Uobm9ybWFsaXplZFR5cGU6IFN1aU1vdmVOb3JtYWxpemVkVHlwZSk6IFN1aU1vdmVOb3JtYWxpemVkVHlwZSB8IHVuZGVmaW5lZCB7XG4gIHJldHVybiB0eXBlb2Ygbm9ybWFsaXplZFR5cGUgPT09ICdvYmplY3QnICYmICdSZWZlcmVuY2UnIGluIG5vcm1hbGl6ZWRUeXBlID8gbm9ybWFsaXplZFR5cGUuUmVmZXJlbmNlIDogdW5kZWZpbmVkO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gZXh0cmFjdFN0cnVjdFRhZyhub3JtYWxpemVkVHlwZTogU3VpTW92ZU5vcm1hbGl6ZWRUeXBlKTogU3VpTW92ZU5vcm1hbGl6ZWRTdHJ1Y3RUeXBlIHwgdW5kZWZpbmVkIHtcbiAgaWYgKHR5cGVvZiBub3JtYWxpemVkVHlwZSA9PT0gJ29iamVjdCcgJiYgJ1N0cnVjdCcgaW4gbm9ybWFsaXplZFR5cGUpIHtcbiAgICByZXR1cm4gbm9ybWFsaXplZFR5cGU7XG4gIH1cblxuICBjb25zdCByZWYgPSBleHRyYWN0UmVmZXJlbmNlKG5vcm1hbGl6ZWRUeXBlKTtcbiAgY29uc3QgbXV0UmVmID0gZXh0cmFjdE11dGFibGVSZWZlcmVuY2Uobm9ybWFsaXplZFR5cGUpO1xuXG4gIGlmICh0eXBlb2YgcmVmID09PSAnb2JqZWN0JyAmJiAnU3RydWN0JyBpbiByZWYpIHtcbiAgICByZXR1cm4gcmVmO1xuICB9XG5cbiAgaWYgKHR5cGVvZiBtdXRSZWYgPT09ICdvYmplY3QnICYmICdTdHJ1Y3QnIGluIG11dFJlZikge1xuICAgIHJldHVybiBtdXRSZWY7XG4gIH1cbiAgcmV0dXJuIHVuZGVmaW5lZDtcbn1cbiJdfQ==
|