@bitgo/sdk-coin-sui 2.0.1 → 3.0.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (122) hide show
  1. package/.eslintignore +1 -0
  2. package/CHANGELOG.md +37 -0
  3. package/dist/src/lib/constants.d.ts +3 -15
  4. package/dist/src/lib/constants.d.ts.map +1 -1
  5. package/dist/src/lib/constants.js +7 -20
  6. package/dist/src/lib/iface.d.ts +35 -181
  7. package/dist/src/lib/iface.d.ts.map +1 -1
  8. package/dist/src/lib/iface.js +11 -38
  9. package/dist/src/lib/index.d.ts +2 -0
  10. package/dist/src/lib/index.d.ts.map +1 -1
  11. package/dist/src/lib/index.js +6 -2
  12. package/dist/src/lib/keyPair.d.ts +4 -0
  13. package/dist/src/lib/keyPair.d.ts.map +1 -1
  14. package/dist/src/lib/keyPair.js +7 -10
  15. package/dist/src/lib/mystenlab/builder/Inputs.d.ts +66 -0
  16. package/dist/src/lib/mystenlab/builder/Inputs.d.ts.map +1 -0
  17. package/dist/src/lib/mystenlab/builder/Inputs.js +56 -0
  18. package/dist/src/lib/mystenlab/builder/TransactionBlock.d.ts +616 -0
  19. package/dist/src/lib/mystenlab/builder/TransactionBlock.d.ts.map +1 -0
  20. package/dist/src/lib/mystenlab/builder/TransactionBlock.js +260 -0
  21. package/dist/src/lib/mystenlab/builder/TransactionDataBlock.d.ts +566 -0
  22. package/dist/src/lib/mystenlab/builder/TransactionDataBlock.d.ts.map +1 -0
  23. package/dist/src/lib/mystenlab/builder/TransactionDataBlock.js +171 -0
  24. package/dist/src/lib/mystenlab/builder/Transactions.d.ts +992 -0
  25. package/dist/src/lib/mystenlab/builder/Transactions.d.ts.map +1 -0
  26. package/dist/src/lib/mystenlab/builder/Transactions.js +119 -0
  27. package/dist/src/lib/mystenlab/builder/bcs.d.ts +25 -0
  28. package/dist/src/lib/mystenlab/builder/bcs.d.ts.map +1 -0
  29. package/dist/src/lib/mystenlab/builder/bcs.js +141 -0
  30. package/dist/src/lib/mystenlab/builder/index.d.ts +5 -0
  31. package/dist/src/lib/mystenlab/builder/index.d.ts.map +1 -0
  32. package/dist/src/lib/mystenlab/builder/index.js +17 -0
  33. package/dist/src/lib/mystenlab/builder/serializer.d.ts +4 -0
  34. package/dist/src/lib/mystenlab/builder/serializer.d.ts.map +1 -0
  35. package/dist/src/lib/mystenlab/builder/serializer.js +101 -0
  36. package/dist/src/lib/mystenlab/builder/utils.d.ts +10 -0
  37. package/dist/src/lib/mystenlab/builder/utils.d.ts.map +1 -0
  38. package/dist/src/lib/mystenlab/builder/utils.js +10 -0
  39. package/dist/src/lib/mystenlab/cryptography/hash.d.ts +8 -0
  40. package/dist/src/lib/mystenlab/cryptography/hash.d.ts.map +1 -0
  41. package/dist/src/lib/mystenlab/cryptography/hash.js +22 -0
  42. package/dist/src/lib/mystenlab/framework/framework.d.ts +93 -0
  43. package/dist/src/lib/mystenlab/framework/framework.d.ts.map +1 -0
  44. package/dist/src/lib/mystenlab/framework/framework.js +138 -0
  45. package/dist/src/lib/mystenlab/framework/index.d.ts +3 -0
  46. package/dist/src/lib/mystenlab/framework/index.d.ts.map +1 -0
  47. package/dist/src/lib/mystenlab/framework/index.js +15 -0
  48. package/dist/src/lib/mystenlab/framework/sui-system-state.d.ts +12 -0
  49. package/dist/src/lib/mystenlab/framework/sui-system-state.d.ts.map +1 -0
  50. package/dist/src/lib/mystenlab/framework/sui-system-state.js +19 -0
  51. package/dist/src/lib/mystenlab/txn-data-serializers/type-tag-serializer.d.ts +7 -0
  52. package/dist/src/lib/mystenlab/txn-data-serializers/type-tag-serializer.d.ts.map +1 -0
  53. package/dist/src/lib/mystenlab/txn-data-serializers/type-tag-serializer.js +119 -0
  54. package/dist/src/lib/mystenlab/types/coin.d.ts +89 -0
  55. package/dist/src/lib/mystenlab/types/coin.d.ts.map +1 -0
  56. package/dist/src/lib/mystenlab/types/coin.js +32 -0
  57. package/dist/src/lib/mystenlab/types/common.d.ts +45 -0
  58. package/dist/src/lib/mystenlab/types/common.d.ts.map +1 -0
  59. package/dist/src/lib/mystenlab/types/common.js +84 -0
  60. package/dist/src/lib/mystenlab/types/events.d.ts +198 -0
  61. package/dist/src/lib/mystenlab/types/events.d.ts.map +1 -0
  62. package/dist/src/lib/mystenlab/types/events.js +46 -0
  63. package/dist/src/lib/mystenlab/types/index.d.ts +9 -0
  64. package/dist/src/lib/mystenlab/types/index.d.ts.map +1 -0
  65. package/dist/src/lib/mystenlab/types/index.js +21 -0
  66. package/dist/src/lib/mystenlab/types/normalized.d.ts +254 -0
  67. package/dist/src/lib/mystenlab/types/normalized.d.ts.map +1 -0
  68. package/dist/src/lib/mystenlab/types/normalized.js +111 -0
  69. package/dist/src/lib/mystenlab/types/objects.d.ts +806 -0
  70. package/dist/src/lib/mystenlab/types/objects.d.ts.map +1 -0
  71. package/dist/src/lib/mystenlab/types/objects.js +302 -0
  72. package/dist/src/lib/mystenlab/types/option.d.ts +8 -0
  73. package/dist/src/lib/mystenlab/types/option.d.ts.map +1 -0
  74. package/dist/src/lib/mystenlab/types/option.js +14 -0
  75. package/dist/src/lib/mystenlab/types/sui-bcs.d.ts +111 -0
  76. package/dist/src/lib/mystenlab/types/sui-bcs.d.ts.map +1 -0
  77. package/dist/src/lib/mystenlab/types/sui-bcs.js +107 -0
  78. package/dist/src/lib/mystenlab/types/transactions.d.ts +6703 -0
  79. package/dist/src/lib/mystenlab/types/transactions.d.ts.map +1 -0
  80. package/dist/src/lib/mystenlab/types/transactions.js +405 -0
  81. package/dist/src/lib/mystenlab/types/validator.d.ts +641 -0
  82. package/dist/src/lib/mystenlab/types/validator.d.ts.map +1 -0
  83. package/dist/src/lib/mystenlab/types/validator.js +156 -0
  84. package/dist/src/lib/stakingBuilder.d.ts +24 -35
  85. package/dist/src/lib/stakingBuilder.d.ts.map +1 -1
  86. package/dist/src/lib/stakingBuilder.js +93 -129
  87. package/dist/src/lib/stakingTransaction.d.ts +5 -21
  88. package/dist/src/lib/stakingTransaction.d.ts.map +1 -1
  89. package/dist/src/lib/stakingTransaction.js +77 -219
  90. package/dist/src/lib/transaction.d.ts +8 -6
  91. package/dist/src/lib/transaction.d.ts.map +1 -1
  92. package/dist/src/lib/transaction.js +74 -124
  93. package/dist/src/lib/transactionBuilder.d.ts +9 -9
  94. package/dist/src/lib/transactionBuilder.d.ts.map +1 -1
  95. package/dist/src/lib/transactionBuilder.js +27 -16
  96. package/dist/src/lib/transactionBuilderFactory.d.ts +8 -5
  97. package/dist/src/lib/transactionBuilderFactory.d.ts.map +1 -1
  98. package/dist/src/lib/transactionBuilderFactory.js +17 -11
  99. package/dist/src/lib/transferBuilder.d.ts +15 -10
  100. package/dist/src/lib/transferBuilder.d.ts.map +1 -1
  101. package/dist/src/lib/transferBuilder.js +38 -101
  102. package/dist/src/lib/transferTransaction.d.ts +5 -4
  103. package/dist/src/lib/transferTransaction.d.ts.map +1 -1
  104. package/dist/src/lib/transferTransaction.js +45 -96
  105. package/dist/src/lib/unstakingBuilder.d.ts +55 -0
  106. package/dist/src/lib/unstakingBuilder.d.ts.map +1 -0
  107. package/dist/src/lib/unstakingBuilder.js +148 -0
  108. package/dist/src/lib/unstakingTransaction.d.ts +51 -0
  109. package/dist/src/lib/unstakingTransaction.d.ts.map +1 -0
  110. package/dist/src/lib/unstakingTransaction.js +206 -0
  111. package/dist/src/lib/utils.d.ts +30 -92
  112. package/dist/src/lib/utils.d.ts.map +1 -1
  113. package/dist/src/lib/utils.js +115 -177
  114. package/dist/src/sui.d.ts.map +1 -1
  115. package/dist/src/sui.js +23 -13
  116. package/package.json +9 -9
  117. package/dist/src/lib/bcs.d.ts +0 -3
  118. package/dist/src/lib/bcs.d.ts.map +0 -1
  119. package/dist/src/lib/bcs.js +0 -109
  120. package/dist/src/lib/txnSchema.d.ts +0 -7
  121. package/dist/src/lib/txnSchema.d.ts.map +0 -1
  122. package/dist/src/lib/txnSchema.js +0 -81
@@ -0,0 +1 @@
1
+ {"version":3,"file":"objects.d.ts","sourceRoot":"","sources":["../../../../../src/lib/mystenlab/types/objects.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,302 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.PaginatedObjectsResponse = exports.CheckpointedObjectId = exports.getMovePackageContent = exports.hasPublicTransfer = exports.getMoveObject = exports.getObjectFields = exports.getMoveObjectType = exports.isImmutableObject = exports.isSharedObject = exports.getSharedObjectInitialVersion = exports.getObjectDisplay = exports.getObjectOwner = exports.getObjectPreviousTransactionDigest = exports.getObjectType = exports.isSuiObjectResponse = exports.getObjectVersion = exports.getObjectId = exports.getObjectReference = exports.getObjectNotExistsResponse = exports.getObjectDeletedResponse = exports.getSuiObjectData = exports.SuiObjectResponse = exports.SuiObjectResponseError = exports.GetOwnedObjectsResponse = exports.ObjectStatus = exports.SuiObjectDataOptions = exports.SuiObjectData = exports.ObjectDigest = exports.MIST_PER_SUI = exports.SuiRawData = exports.SuiRawMovePackage = exports.SuiRawMoveObject = exports.SuiParsedData = exports.SuiMovePackage = exports.SuiMoveObject = exports.MovePackageContent = exports.ObjectContentFields = exports.SuiObjectInfo = exports.SuiGasData = exports.SuiObjectRef = exports.ObjectType = void 0;
4
+ const superstruct_1 = require("superstruct");
5
+ const common_1 = require("./common");
6
+ exports.ObjectType = superstruct_1.union([superstruct_1.string(), superstruct_1.literal('package')]);
7
+ exports.SuiObjectRef = superstruct_1.object({
8
+ /** Base64 string representing the object digest */
9
+ digest: common_1.TransactionDigest,
10
+ /** Hex code as string representing the object id */
11
+ objectId: superstruct_1.string(),
12
+ /** Object version */
13
+ version: superstruct_1.union([superstruct_1.number(), superstruct_1.string()]),
14
+ });
15
+ exports.SuiGasData = superstruct_1.object({
16
+ payment: superstruct_1.array(exports.SuiObjectRef),
17
+ /** Gas Object's owner */
18
+ owner: superstruct_1.string(),
19
+ price: superstruct_1.number(),
20
+ budget: superstruct_1.number(),
21
+ });
22
+ exports.SuiObjectInfo = superstruct_1.assign(exports.SuiObjectRef, superstruct_1.object({
23
+ type: superstruct_1.string(),
24
+ owner: common_1.ObjectOwner,
25
+ previousTransaction: common_1.TransactionDigest,
26
+ }));
27
+ exports.ObjectContentFields = superstruct_1.record(superstruct_1.string(), superstruct_1.any());
28
+ exports.MovePackageContent = superstruct_1.record(superstruct_1.string(), superstruct_1.string());
29
+ exports.SuiMoveObject = superstruct_1.object({
30
+ /** Move type (e.g., "0x2::coin::Coin<0x2::sui::SUI>") */
31
+ type: superstruct_1.string(),
32
+ /** Fields and values stored inside the Move object */
33
+ fields: exports.ObjectContentFields,
34
+ hasPublicTransfer: superstruct_1.boolean(),
35
+ });
36
+ exports.SuiMovePackage = superstruct_1.object({
37
+ /** A mapping from module name to disassembled Move bytecode */
38
+ disassembled: exports.MovePackageContent,
39
+ });
40
+ exports.SuiParsedData = superstruct_1.union([
41
+ superstruct_1.assign(exports.SuiMoveObject, superstruct_1.object({ dataType: superstruct_1.literal('moveObject') })),
42
+ superstruct_1.assign(exports.SuiMovePackage, superstruct_1.object({ dataType: superstruct_1.literal('package') })),
43
+ ]);
44
+ exports.SuiRawMoveObject = superstruct_1.object({
45
+ /** Move type (e.g., "0x2::coin::Coin<0x2::sui::SUI>") */
46
+ type: superstruct_1.string(),
47
+ hasPublicTransfer: superstruct_1.boolean(),
48
+ version: common_1.SequenceNumber,
49
+ bcsBytes: superstruct_1.array(superstruct_1.number()),
50
+ });
51
+ exports.SuiRawMovePackage = superstruct_1.object({
52
+ id: common_1.ObjectId,
53
+ /** A mapping from module name to Move bytecode enocded in base64*/
54
+ moduleMap: superstruct_1.record(superstruct_1.string(), superstruct_1.string()),
55
+ });
56
+ // TODO(chris): consolidate SuiRawParsedData and SuiRawObject using generics
57
+ exports.SuiRawData = superstruct_1.union([
58
+ superstruct_1.assign(exports.SuiMoveObject, superstruct_1.object({ dataType: superstruct_1.literal('moveObject') })),
59
+ superstruct_1.assign(exports.SuiRawMovePackage, superstruct_1.object({ dataType: superstruct_1.literal('package') })),
60
+ ]);
61
+ exports.MIST_PER_SUI = BigInt(1000000000);
62
+ exports.ObjectDigest = superstruct_1.string();
63
+ exports.SuiObjectData = superstruct_1.object({
64
+ objectId: common_1.ObjectId,
65
+ version: common_1.SequenceNumber,
66
+ digest: exports.ObjectDigest,
67
+ /**
68
+ * Type of the object, default to be undefined unless SuiObjectDataOptions.showType is set to true
69
+ */
70
+ type: superstruct_1.optional(superstruct_1.string()),
71
+ /**
72
+ * Move object content or package content, default to be undefined unless SuiObjectDataOptions.showContent is set to true
73
+ */
74
+ content: superstruct_1.optional(exports.SuiParsedData),
75
+ /**
76
+ * Move object content or package content in BCS bytes, default to be undefined unless SuiObjectDataOptions.showBcs is set to true
77
+ */
78
+ bcs: superstruct_1.optional(exports.SuiRawData),
79
+ /**
80
+ * The owner of this object. Default to be undefined unless SuiObjectDataOptions.showOwner is set to true
81
+ */
82
+ owner: superstruct_1.optional(common_1.ObjectOwner),
83
+ /**
84
+ * The digest of the transaction that created or last mutated this object.
85
+ * Default to be undefined unless SuiObjectDataOptions.showPreviousTransaction is set to true
86
+ */
87
+ previousTransaction: superstruct_1.optional(common_1.TransactionDigest),
88
+ /**
89
+ * The amount of SUI we would rebate if this object gets deleted.
90
+ * This number is re-calculated each time the object is mutated based on
91
+ * the present storage gas price.
92
+ * Default to be undefined unless SuiObjectDataOptions.showStorageRebate is set to true
93
+ */
94
+ storageRebate: superstruct_1.optional(superstruct_1.number()),
95
+ /**
96
+ * Display metadata for this object, default to be undefined unless SuiObjectDataOptions.showDisplay is set to true
97
+ * This can also be None if the struct type does not have Display defined
98
+ * See more details in https://forums.sui.io/t/nft-object-display-proposal/4872
99
+ */
100
+ display: superstruct_1.optional(superstruct_1.record(superstruct_1.string(), superstruct_1.string())),
101
+ });
102
+ /**
103
+ * Config for fetching object data
104
+ */
105
+ exports.SuiObjectDataOptions = superstruct_1.object({
106
+ /* Whether to fetch the object type, default to be true */
107
+ showType: superstruct_1.optional(superstruct_1.boolean()),
108
+ /* Whether to fetch the object content, default to be false */
109
+ showContent: superstruct_1.optional(superstruct_1.boolean()),
110
+ /* Whether to fetch the object content in BCS bytes, default to be false */
111
+ showBcs: superstruct_1.optional(superstruct_1.boolean()),
112
+ /* Whether to fetch the object owner, default to be false */
113
+ showOwner: superstruct_1.optional(superstruct_1.boolean()),
114
+ /* Whether to fetch the previous transaction digest, default to be false */
115
+ showPreviousTransaction: superstruct_1.optional(superstruct_1.boolean()),
116
+ /* Whether to fetch the storage rebate, default to be false */
117
+ showStorageRebate: superstruct_1.optional(superstruct_1.boolean()),
118
+ /* Whether to fetch the display metadata, default to be false */
119
+ showDisplay: superstruct_1.optional(superstruct_1.boolean()),
120
+ });
121
+ exports.ObjectStatus = superstruct_1.union([superstruct_1.literal('Exists'), superstruct_1.literal('NotExists'), superstruct_1.literal('Deleted')]);
122
+ exports.GetOwnedObjectsResponse = superstruct_1.array(exports.SuiObjectInfo);
123
+ exports.SuiObjectResponseError = superstruct_1.object({
124
+ tag: superstruct_1.string(),
125
+ object_id: superstruct_1.optional(common_1.ObjectId),
126
+ version: superstruct_1.optional(common_1.SequenceNumber),
127
+ digest: superstruct_1.optional(exports.ObjectDigest),
128
+ });
129
+ exports.SuiObjectResponse = superstruct_1.object({
130
+ data: superstruct_1.optional(exports.SuiObjectData),
131
+ error: superstruct_1.optional(exports.SuiObjectResponseError),
132
+ });
133
+ /* -------------------------------------------------------------------------- */
134
+ /* Helper functions */
135
+ /* -------------------------------------------------------------------------- */
136
+ /* -------------------------- SuiObjectResponse ------------------------- */
137
+ function getSuiObjectData(resp) {
138
+ return resp.data;
139
+ }
140
+ exports.getSuiObjectData = getSuiObjectData;
141
+ function getObjectDeletedResponse(resp) {
142
+ if (resp.error && 'object_id' in resp.error && 'version' in resp.error && 'digest' in resp.error) {
143
+ const error = resp.error;
144
+ return {
145
+ objectId: error.object_id,
146
+ version: error.version,
147
+ digest: error.digest,
148
+ };
149
+ }
150
+ return undefined;
151
+ }
152
+ exports.getObjectDeletedResponse = getObjectDeletedResponse;
153
+ function getObjectNotExistsResponse(resp) {
154
+ if (resp.error && 'object_id' in resp.error && !('version' in resp.error) && !('digest' in resp.error)) {
155
+ return resp.error.object_id;
156
+ }
157
+ return undefined;
158
+ }
159
+ exports.getObjectNotExistsResponse = getObjectNotExistsResponse;
160
+ function getObjectReference(resp) {
161
+ if ('reference' in resp) {
162
+ return resp.reference;
163
+ }
164
+ const exists = getSuiObjectData(resp);
165
+ if (exists) {
166
+ return {
167
+ objectId: exists.objectId,
168
+ version: exists.version,
169
+ digest: exists.digest,
170
+ };
171
+ }
172
+ return getObjectDeletedResponse(resp);
173
+ }
174
+ exports.getObjectReference = getObjectReference;
175
+ /* ------------------------------ SuiObjectRef ------------------------------ */
176
+ function getObjectId(data) {
177
+ var _a, _b;
178
+ if ('objectId' in data) {
179
+ return data.objectId;
180
+ }
181
+ return (_b = (_a = getObjectReference(data)) === null || _a === void 0 ? void 0 : _a.objectId) !== null && _b !== void 0 ? _b : getObjectNotExistsResponse(data);
182
+ }
183
+ exports.getObjectId = getObjectId;
184
+ function getObjectVersion(data) {
185
+ var _a;
186
+ if ('version' in data) {
187
+ return data.version;
188
+ }
189
+ return (_a = getObjectReference(data)) === null || _a === void 0 ? void 0 : _a.version;
190
+ }
191
+ exports.getObjectVersion = getObjectVersion;
192
+ /* -------------------------------- SuiObject ------------------------------- */
193
+ function isSuiObjectResponse(resp) {
194
+ return resp.data !== undefined;
195
+ }
196
+ exports.isSuiObjectResponse = isSuiObjectResponse;
197
+ /**
198
+ * Deriving the object type from the object response
199
+ * @returns 'package' if the object is a package, move object type(e.g., 0x2::coin::Coin<0x2::sui::SUI>)
200
+ * if the object is a move object
201
+ */
202
+ function getObjectType(resp) {
203
+ var _a;
204
+ const data = isSuiObjectResponse(resp) ? resp.data : resp;
205
+ if (!(data === null || data === void 0 ? void 0 : data.type) && 'data' in resp) {
206
+ if (((_a = data === null || data === void 0 ? void 0 : data.content) === null || _a === void 0 ? void 0 : _a.dataType) === 'package') {
207
+ return 'package';
208
+ }
209
+ return getMoveObjectType(resp);
210
+ }
211
+ return data === null || data === void 0 ? void 0 : data.type;
212
+ }
213
+ exports.getObjectType = getObjectType;
214
+ function getObjectPreviousTransactionDigest(resp) {
215
+ var _a;
216
+ return (_a = getSuiObjectData(resp)) === null || _a === void 0 ? void 0 : _a.previousTransaction;
217
+ }
218
+ exports.getObjectPreviousTransactionDigest = getObjectPreviousTransactionDigest;
219
+ function getObjectOwner(resp) {
220
+ var _a;
221
+ if (superstruct_1.is(resp, common_1.ObjectOwner)) {
222
+ return resp;
223
+ }
224
+ return (_a = getSuiObjectData(resp)) === null || _a === void 0 ? void 0 : _a.owner;
225
+ }
226
+ exports.getObjectOwner = getObjectOwner;
227
+ function getObjectDisplay(resp) {
228
+ var _a;
229
+ return (_a = getSuiObjectData(resp)) === null || _a === void 0 ? void 0 : _a.display;
230
+ }
231
+ exports.getObjectDisplay = getObjectDisplay;
232
+ function getSharedObjectInitialVersion(resp) {
233
+ const owner = getObjectOwner(resp);
234
+ if (typeof owner === 'object' && 'Shared' in owner) {
235
+ return owner.Shared.initial_shared_version;
236
+ }
237
+ else {
238
+ return undefined;
239
+ }
240
+ }
241
+ exports.getSharedObjectInitialVersion = getSharedObjectInitialVersion;
242
+ function isSharedObject(resp) {
243
+ const owner = getObjectOwner(resp);
244
+ return typeof owner === 'object' && 'Shared' in owner;
245
+ }
246
+ exports.isSharedObject = isSharedObject;
247
+ function isImmutableObject(resp) {
248
+ const owner = getObjectOwner(resp);
249
+ return owner === 'Immutable';
250
+ }
251
+ exports.isImmutableObject = isImmutableObject;
252
+ function getMoveObjectType(resp) {
253
+ var _a;
254
+ return (_a = getMoveObject(resp)) === null || _a === void 0 ? void 0 : _a.type;
255
+ }
256
+ exports.getMoveObjectType = getMoveObjectType;
257
+ function getObjectFields(resp) {
258
+ var _a;
259
+ if ('fields' in resp) {
260
+ return resp.fields;
261
+ }
262
+ return (_a = getMoveObject(resp)) === null || _a === void 0 ? void 0 : _a.fields;
263
+ }
264
+ exports.getObjectFields = getObjectFields;
265
+ function isSuiObjectDataWithContent(data) {
266
+ return data.content !== undefined;
267
+ }
268
+ function getMoveObject(data) {
269
+ const suiObject = 'data' in data ? getSuiObjectData(data) : data;
270
+ if (!suiObject || !isSuiObjectDataWithContent(suiObject) || suiObject.content.dataType !== 'moveObject') {
271
+ return undefined;
272
+ }
273
+ return suiObject.content;
274
+ }
275
+ exports.getMoveObject = getMoveObject;
276
+ function hasPublicTransfer(data) {
277
+ var _a, _b;
278
+ return (_b = (_a = getMoveObject(data)) === null || _a === void 0 ? void 0 : _a.hasPublicTransfer) !== null && _b !== void 0 ? _b : false;
279
+ }
280
+ exports.hasPublicTransfer = hasPublicTransfer;
281
+ function getMovePackageContent(data) {
282
+ var _a;
283
+ if ('disassembled' in data) {
284
+ return data.disassembled;
285
+ }
286
+ const suiObject = getSuiObjectData(data);
287
+ if (((_a = suiObject === null || suiObject === void 0 ? void 0 : suiObject.content) === null || _a === void 0 ? void 0 : _a.dataType) !== 'package') {
288
+ return undefined;
289
+ }
290
+ return suiObject.content.disassembled;
291
+ }
292
+ exports.getMovePackageContent = getMovePackageContent;
293
+ exports.CheckpointedObjectId = superstruct_1.object({
294
+ objectId: common_1.ObjectId,
295
+ atCheckpoint: superstruct_1.optional(superstruct_1.number()),
296
+ });
297
+ exports.PaginatedObjectsResponse = superstruct_1.object({
298
+ data: superstruct_1.array(exports.SuiObjectResponse),
299
+ nextCursor: superstruct_1.optional(exports.CheckpointedObjectId),
300
+ hasNextPage: superstruct_1.boolean(),
301
+ });
302
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoib2JqZWN0cy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3NyYy9saWIvbXlzdGVubGFiL3R5cGVzL29iamVjdHMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7O0FBQUEsNkNBY3FCO0FBQ3JCLHFDQUFvRjtBQUd2RSxRQUFBLFVBQVUsR0FBRyxtQkFBSyxDQUFDLENBQUMsb0JBQU0sRUFBRSxFQUFFLHFCQUFPLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBQyxDQUFDO0FBR25ELFFBQUEsWUFBWSxHQUFHLG9CQUFNLENBQUM7SUFDakMsbURBQW1EO0lBQ25ELE1BQU0sRUFBRSwwQkFBaUI7SUFDekIsb0RBQW9EO0lBQ3BELFFBQVEsRUFBRSxvQkFBTSxFQUFFO0lBQ2xCLHFCQUFxQjtJQUNyQixPQUFPLEVBQUUsbUJBQUssQ0FBQyxDQUFDLG9CQUFNLEVBQUUsRUFBRSxvQkFBTSxFQUFFLENBQUMsQ0FBQztDQUNyQyxDQUFDLENBQUM7QUFHVSxRQUFBLFVBQVUsR0FBRyxvQkFBTSxDQUFDO0lBQy9CLE9BQU8sRUFBRSxtQkFBSyxDQUFDLG9CQUFZLENBQUM7SUFDNUIseUJBQXlCO0lBQ3pCLEtBQUssRUFBRSxvQkFBTSxFQUFFO0lBQ2YsS0FBSyxFQUFFLG9CQUFNLEVBQUU7SUFDZixNQUFNLEVBQUUsb0JBQU0sRUFBRTtDQUNqQixDQUFDLENBQUM7QUFHVSxRQUFBLGFBQWEsR0FBRyxvQkFBTSxDQUNqQyxvQkFBWSxFQUNaLG9CQUFNLENBQUM7SUFDTCxJQUFJLEVBQUUsb0JBQU0sRUFBRTtJQUNkLEtBQUssRUFBRSxvQkFBVztJQUNsQixtQkFBbUIsRUFBRSwwQkFBaUI7Q0FDdkMsQ0FBQyxDQUNILENBQUM7QUFHVyxRQUFBLG1CQUFtQixHQUFHLG9CQUFNLENBQUMsb0JBQU0sRUFBRSxFQUFFLGlCQUFHLEVBQUUsQ0FBQyxDQUFDO0FBRzlDLFFBQUEsa0JBQWtCLEdBQUcsb0JBQU0sQ0FBQyxvQkFBTSxFQUFFLEVB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O0FBQ3pELENBQUM7QUFGRCw4Q0FFQztBQUVELFNBQWdCLHFCQUFxQixDQUFDLElBQXdDOztJQUM1RSxJQUFJLGNBQWMsSUFBSSxJQUFJLEVBQUU7UUFDMUIsT0FBTyxJQUFJLENBQUMsWUFBWSxDQUFDO0tBQzFCO0lBQ0QsTUFBTSxTQUFTLEdBQUcsZ0JBQWdCLENBQUMsSUFBSSxDQUFDLENBQUM7SUFDekMsSUFBSSxDQUFBLE1BQUEsU0FBUyxhQUFULFNBQVMsdUJBQVQsU0FBUyxDQUFFLE9BQU8sMENBQUUsUUFBUSxNQUFLLFNBQVMsRUFBRTtRQUM5QyxPQUFPLFNBQVMsQ0FBQztLQUNsQjtJQUNELE9BQVEsU0FBUyxDQUFDLE9BQTBCLENBQUMsWUFBWSxDQUFDO0FBQzVELENBQUM7QUFURCxzREFTQztBQUVZLFFBQUEsb0JBQW9CLEdBQUcsb0JBQU0sQ0FBQztJQUN6QyxRQUFRLEVBQUUsaUJBQVE7SUFDbEIsWUFBWSxFQUFFLHNCQUFRLENBQUMsb0JBQU0sRUFBRSxDQUFDO0NBQ2pDLENBQUMsQ0FBQztBQUdVLFFBQUEsd0JBQXdCLEdBQUcsb0JBQU0sQ0FBQztJQUM3QyxJQUFJLEVBQUUsbUJBQUssQ0FBQyx5QkFBaUIsQ0FBQztJQUM5QixVQUFVLEVBQUUsc0JBQVEsQ0FBQyw0QkFBb0IsQ0FBQztJQUMxQyxXQUFXLEVBQUUscUJBQU8sRUFBRTtDQUN2QixDQUFDLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xuICBhbnksXG4gIGFycmF5LFxuICBhc3NpZ24sXG4gIGJvb2xlYW4sXG4gIEluZmVyLFxuICBsaXRlcmFsLFxuICBudW1iZXIsXG4gIG9iamVjdCxcbiAgb3B0aW9uYWwsXG4gIHJlY29yZCxcbiAgc3RyaW5nLFxuICB1bmlvbixcbiAgaXMsXG59IGZyb20gJ3N1cGVyc3RydWN0JztcbmltcG9ydCB7IE9iamVjdElkLCBPYmplY3RPd25lciwgU2VxdWVuY2VOdW1iZXIsIFRyYW5zYWN0aW9uRGlnZXN0IH0gZnJvbSAnLi9jb21tb24nO1xuaW1wb3J0IHsgT3duZWRPYmplY3RSZWYgfSBmcm9tICcuL3RyYW5zYWN0aW9ucyc7XG5cbmV4cG9ydCBjb25zdCBPYmplY3RUeXBlID0gdW5pb24oW3N0cmluZygpLCBsaXRlcmFsKCdwYWNrYWdlJyldKTtcbmV4cG9ydCB0eXBlIE9iamVjdFR5cGUgPSBJbmZlcjx0eXBlb2YgT2JqZWN0VHlwZT47XG5cbmV4cG9ydCBjb25zdCBTdWlPYmplY3RSZWYgPSBvYmplY3Qoe1xuICAvKiogQmFzZTY0IHN0cmluZyByZXByZXNlbnRpbmcgdGhlIG9iamVjdCBkaWdlc3QgKi9cbiAgZGlnZXN0OiBUcmFuc2FjdGlvbkRpZ2VzdCxcbiAgLyoqIEhleCBjb2RlIGFzIHN0cmluZyByZXByZXNlbnRpbmcgdGhlIG9iamVjdCBpZCAqL1xuICBvYmplY3RJZDogc3RyaW5nKCksXG4gIC8qKiBPYmplY3QgdmVyc2lvbiAqL1xuICB2ZXJzaW9uOiB1bmlvbihbbnVtYmVyKCksIHN0cmluZygpXSksXG59KTtcbmV4cG9ydCB0eXBlIFN1aU9iamVjdFJlZiA9IEluZmVyPHR5cGVvZiBTdWlPYmplY3RSZWY+O1xuXG5leHBvcnQgY29uc3QgU3VpR2FzRGF0YSA9IG9iamVjdCh7XG4gIHBheW1lbnQ6IGFycmF5KFN1aU9iamVjdFJlZiksXG4gIC8qKiBHYXMgT2JqZWN0J3Mgb3duZXIgKi9cbiAgb3duZXI6IHN0cmluZygpLFxuICBwcmljZTogbnVtYmVyKCksXG4gIGJ1ZGdldDogbnVtYmVyKCksXG59KTtcbmV4cG9ydCB0eXBlIFN1aUdhc0RhdGEgPSBJbmZlcjx0eXBlb2YgU3VpR2FzRGF0YT47XG5cbmV4cG9ydCBjb25zdCBTdWlPYmplY3RJbmZvID0gYXNzaWduKFxuICBTdWlPYmplY3RSZWYsXG4gIG9iamVjdCh7XG4gICAgdHlwZTogc3RyaW5nKCksXG4gICAgb3duZXI6IE9iamVjdE93bmVyLFxuICAgIHByZXZpb3VzVHJhbnNhY3Rpb246IFRyYW5zYWN0aW9uRGlnZXN0LFxuICB9KVxuKTtcbmV4cG9ydCB0eXBlIFN1aU9iamVjdEluZm8gPSBJbmZlcjx0eXBlb2YgU3VpT2JqZWN0SW5mbz47XG5cbmV4cG9ydCBjb25zdCBPYmplY3RDb250ZW50RmllbGRzID0gcmVjb3JkKHN0cmluZygpLCBhbnkoKSk7XG5leHBvcnQgdHlwZSBPYmplY3RDb250ZW50RmllbGRzID0gSW5mZXI8dHlwZW9mIE9iamVjdENvbnRlbnRGaWVsZHM+O1xuXG5leHBvcnQgY29uc3QgTW92ZVBhY2thZ2VDb250ZW50ID0gcmVjb3JkKHN0cmluZygpLCBzdHJpbmcoKSk7XG5leHBvcnQgdHlwZSBNb3ZlUGFja2FnZUNvbnRlbnQgPSBJbmZlcjx0eXBlb2YgTW92ZVBhY2thZ2VDb250ZW50PjtcblxuZXhwb3J0IGNvbnN0IFN1aU1vdmVPYmplY3QgPSBvYmplY3Qoe1xuICAvKiogTW92ZSB0eXBlIChlLmcuLCBcIjB4Mjo6Y29pbjo6Q29pbjwweDI6OnN1aTo6U1VJPlwiKSAqL1xuICB0eXBlOiBzdHJpbmcoKSxcbiAgLyoqIEZpZWxkcyBhbmQgdmFsdWVzIHN0b3JlZCBpbnNpZGUgdGhlIE1vdmUgb2JqZWN0ICovXG4gIGZpZWxkczogT2JqZWN0Q29udGVudEZpZWxkcyxcbiAgaGFzUHVibGljVHJhbnNmZXI6IGJvb2xlYW4oKSxcbn0pO1xuZXhwb3J0IHR5cGUgU3VpTW92ZU9iamVjdCA9IEluZmVyPHR5cGVvZiBTdWlNb3ZlT2JqZWN0PjtcblxuZXhwb3J0IGNvbnN0IFN1aU1vdmVQYWNrYWdlID0gb2JqZWN0KHtcbiAgLyoqIEEgbWFwcGluZyBmcm9tIG1vZHVsZSBuYW1lIHRvIGRpc2Fzc2VtYmxlZCBNb3ZlIGJ5dGVjb2RlICovXG4gIGRpc2Fzc2VtYmxlZDogTW92ZVBhY2thZ2VDb250ZW50LFxufSk7XG5leHBvcnQgdHlwZSBTdWlNb3ZlUGFja2FnZSA9IEluZmVyPHR5cGVvZiBTdWlNb3ZlUGFja2FnZT47XG5cbmV4cG9ydCBjb25zdCBTdWlQYXJzZWREYXRhID0gdW5pb24oW1xuICBhc3NpZ24oU3VpTW92ZU9iamVjdCwgb2JqZWN0KHsgZGF0YVR5cGU6IGxpdGVyYWwoJ21vdmVPYmplY3QnKSB9KSksXG4gIGFzc2lnbihTdWlNb3ZlUGFja2FnZSwgb2JqZWN0KHsgZGF0YVR5cGU6IGxpdGVyYWwoJ3BhY2thZ2UnKSB9KSksXG5dKTtcbmV4cG9ydCB0eXBlIFN1aVBhcnNlZERhdGEgPSBJbmZlcjx0eXBlb2YgU3VpUGFyc2VkRGF0YT47XG5cbmV4cG9ydCBjb25zdCBTdWlSYXdNb3ZlT2JqZWN0ID0gb2JqZWN0KHtcbiAgLyoqIE1vdmUgdHlwZSAoZS5nLiwgXCIweDI6OmNvaW46OkNvaW48MHgyOjpzdWk6OlNVST5cIikgKi9cbiAgdHlwZTogc3RyaW5nKCksXG4gIGhhc1B1YmxpY1RyYW5zZmVyOiBib29sZWFuKCksXG4gIHZlcnNpb246IFNlcXVlbmNlTnVtYmVyLFxuICBiY3NCeXRlczogYXJyYXkobnVtYmVyKCkpLFxufSk7XG5leHBvcnQgdHlwZSBTdWlSYXdNb3ZlT2JqZWN0ID0gSW5mZXI8dHlwZW9mIFN1aVJhd01vdmVPYmplY3Q+O1xuXG5leHBvcnQgY29uc3QgU3VpUmF3TW92ZVBhY2thZ2UgPSBvYmplY3Qoe1xuICBpZDogT2JqZWN0SWQsXG4gIC8qKiBBIG1hcHBpbmcgZnJvbSBtb2R1bGUgbmFtZSB0byBNb3ZlIGJ5dGVjb2RlIGVub2NkZWQgaW4gYmFzZTY0Ki9cbiAgbW9kdWxlTWFwOiByZWNvcmQoc3RyaW5nKCksIHN0cmluZygpKSxcbn0pO1xuZXhwb3J0IHR5cGUgU3VpUmF3TW92ZVBhY2thZ2UgPSBJbmZlcjx0eXBlb2YgU3VpUmF3TW92ZVBhY2thZ2U+O1xuXG4vLyBUT0RPKGNocmlzKTogY29uc29saWRhdGUgU3VpUmF3UGFyc2VkRGF0YSBhbmQgU3VpUmF3T2JqZWN0IHVzaW5nIGdlbmVyaWNzXG5leHBvcnQgY29uc3QgU3VpUmF3RGF0YSA9IHVuaW9uKFtcbiAgYXNzaWduKFN1aU1vdmVPYmplY3QsIG9iamVjdCh7IGRhdGFUeXBlOiBsaXRlcmFsKCdtb3ZlT2JqZWN0JykgfSkpLFxuICBhc3NpZ24oU3VpUmF3TW92ZVBhY2thZ2UsIG9iamVjdCh7IGRhdGFUeXBlOiBsaXRlcmFsKCdwYWNrYWdlJykgfSkpLFxuXSk7XG5leHBvcnQgdHlwZSBTdWlSYXdEYXRhID0gSW5mZXI8dHlwZW9mIFN1aVJhd0RhdGE+O1xuXG5leHBvcnQgY29uc3QgTUlTVF9QRVJfU1VJID0gQmlnSW50KDEwMDAwMDAwMDApO1xuXG5leHBvcnQgY29uc3QgT2JqZWN0RGlnZXN0ID0gc3RyaW5nKCk7XG5leHBvcnQgdHlwZSBPYmplY3REaWdlc3QgPSBJbmZlcjx0eXBlb2YgT2JqZWN0RGlnZXN0PjtcblxuZXhwb3J0IGNvbnN0IFN1aU9iamVjdERhdGEgPSBvYmplY3Qoe1xuICBvYmplY3RJZDogT2JqZWN0SWQsXG4gIHZlcnNpb246IFNlcXVlbmNlTnVtYmVyLFxuICBkaWdlc3Q6IE9iamVjdERpZ2VzdCxcbiAgLyoqXG4gICAqIFR5cGUgb2YgdGhlIG9iamVjdCwgZGVmYXVsdCB0byBiZSB1bmRlZmluZWQgdW5sZXNzIFN1aU9iamVjdERhdGFPcHRpb25zLnNob3dUeXBlIGlzIHNldCB0byB0cnVlXG4gICAqL1xuICB0eXBlOiBvcHRpb25hbChzdHJpbmcoKSksXG4gIC8qKlxuICAgKiBNb3ZlIG9iamVjdCBjb250ZW50IG9yIHBhY2thZ2UgY29udGVudCwgZGVmYXVsdCB0byBiZSB1bmRlZmluZWQgdW5sZXNzIFN1aU9iamVjdERhdGFPcHRpb25zLnNob3dDb250ZW50IGlzIHNldCB0byB0cnVlXG4gICAqL1xuICBjb250ZW50OiBvcHRpb25hbChTdWlQYXJzZWREYXRhKSxcbiAgLyoqXG4gICAqIE1vdmUgb2JqZWN0IGNvbnRlbnQgb3IgcGFja2FnZSBjb250ZW50IGluIEJDUyBieXRlcywgZGVmYXVsdCB0byBiZSB1bmRlZmluZWQgdW5sZXNzIFN1aU9iamVjdERhdGFPcHRpb25zLnNob3dCY3MgaXMgc2V0IHRvIHRydWVcbiAgICovXG4gIGJjczogb3B0aW9uYWwoU3VpUmF3RGF0YSksXG4gIC8qKlxuICAgKiBUaGUgb3duZXIgb2YgdGhpcyBvYmplY3QuIERlZmF1bHQgdG8gYmUgdW5kZWZpbmVkIHVubGVzcyBTdWlPYmplY3REYXRhT3B0aW9ucy5zaG93T3duZXIgaXMgc2V0IHRvIHRydWVcbiAgICovXG4gIG93bmVyOiBvcHRpb25hbChPYmplY3RPd25lciksXG4gIC8qKlxuICAgKiBUaGUgZGlnZXN0IG9mIHRoZSB0cmFuc2FjdGlvbiB0aGF0IGNyZWF0ZWQgb3IgbGFzdCBtdXRhdGVkIHRoaXMgb2JqZWN0LlxuICAgKiBEZWZhdWx0IHRvIGJlIHVuZGVmaW5lZCB1bmxlc3MgU3VpT2JqZWN0RGF0YU9wdGlvbnMuc2hvd1ByZXZpb3VzVHJhbnNhY3Rpb24gaXMgc2V0IHRvIHRydWVcbiAgICovXG4gIHByZXZpb3VzVHJhbnNhY3Rpb246IG9wdGlvbmFsKFRyYW5zYWN0aW9uRGlnZXN0KSxcbiAgLyoqXG4gICAqIFRoZSBhbW91bnQgb2YgU1VJIHdlIHdvdWxkIHJlYmF0ZSBpZiB0aGlzIG9iamVjdCBnZXRzIGRlbGV0ZWQuXG4gICAqIFRoaXMgbnVtYmVyIGlzIHJlLWNhbGN1bGF0ZWQgZWFjaCB0aW1lIHRoZSBvYmplY3QgaXMgbXV0YXRlZCBiYXNlZCBvblxuICAgKiB0aGUgcHJlc2VudCBzdG9yYWdlIGdhcyBwcmljZS5cbiAgICogRGVmYXVsdCB0byBiZSB1bmRlZmluZWQgdW5sZXNzIFN1aU9iamVjdERhdGFPcHRpb25zLnNob3dTdG9yYWdlUmViYXRlIGlzIHNldCB0byB0cnVlXG4gICAqL1xuICBzdG9yYWdlUmViYXRlOiBvcHRpb25hbChudW1iZXIoKSksXG4gIC8qKlxuICAgKiBEaXNwbGF5IG1ldGFkYXRhIGZvciB0aGlzIG9iamVjdCwgZGVmYXVsdCB0byBiZSB1bmRlZmluZWQgdW5sZXNzIFN1aU9iamVjdERhdGFPcHRpb25zLnNob3dEaXNwbGF5IGlzIHNldCB0byB0cnVlXG4gICAqIFRoaXMgY2FuIGFsc28gYmUgTm9uZSBpZiB0aGUgc3RydWN0IHR5cGUgZG9lcyBub3QgaGF2ZSBEaXNwbGF5IGRlZmluZWRcbiAgICogU2VlIG1vcmUgZGV0YWlscyBpbiBodHRwczovL2ZvcnVtcy5zdWkuaW8vdC9uZnQtb2JqZWN0LWRpc3BsYXktcHJvcG9zYWwvNDg3MlxuICAgKi9cbiAgZGlzcGxheTogb3B0aW9uYWwocmVjb3JkKHN0cmluZygpLCBzdHJpbmcoKSkpLFxufSk7XG5leHBvcnQgdHlwZSBTdWlPYmplY3REYXRhID0gSW5mZXI8dHlwZW9mIFN1aU9iamVjdERhdGE+O1xuXG4vKipcbiAqIENvbmZpZyBmb3IgZmV0Y2hpbmcgb2JqZWN0IGRhdGFcbiAqL1xuZXhwb3J0IGNvbnN0IFN1aU9iamVjdERhdGFPcHRpb25zID0gb2JqZWN0KHtcbiAgLyogV2hldGhlciB0byBmZXRjaCB0aGUgb2JqZWN0IHR5cGUsIGRlZmF1bHQgdG8gYmUgdHJ1ZSAqL1xuICBzaG93VHlwZTogb3B0aW9uYWwoYm9vbGVhbigpKSxcbiAgLyogV2hldGhlciB0byBmZXRjaCB0aGUgb2JqZWN0IGNvbnRlbnQsIGRlZmF1bHQgdG8gYmUgZmFsc2UgKi9cbiAgc2hvd0NvbnRlbnQ6IG9wdGlvbmFsKGJvb2xlYW4oKSksXG4gIC8qIFdoZXRoZXIgdG8gZmV0Y2ggdGhlIG9iamVjdCBjb250ZW50IGluIEJDUyBieXRlcywgZGVmYXVsdCB0byBiZSBmYWxzZSAqL1xuICBzaG93QmNzOiBvcHRpb25hbChib29sZWFuKCkpLFxuICAvKiBXaGV0aGVyIHRvIGZldGNoIHRoZSBvYmplY3Qgb3duZXIsIGRlZmF1bHQgdG8gYmUgZmFsc2UgKi9cbiAgc2hvd093bmVyOiBvcHRpb25hbChib29sZWFuKCkpLFxuICAvKiBXaGV0aGVyIHRvIGZldGNoIHRoZSBwcmV2aW91cyB0cmFuc2FjdGlvbiBkaWdlc3QsIGRlZmF1bHQgdG8gYmUgZmFsc2UgKi9cbiAgc2hvd1ByZXZpb3VzVHJhbnNhY3Rpb246IG9wdGlvbmFsKGJvb2xlYW4oKSksXG4gIC8qIFdoZXRoZXIgdG8gZmV0Y2ggdGhlIHN0b3JhZ2UgcmViYXRlLCBkZWZhdWx0IHRvIGJlIGZhbHNlICovXG4gIHNob3dTdG9yYWdlUmViYXRlOiBvcHRpb25hbChib29sZWFuKCkpLFxuICAvKiBXaGV0aGVyIHRvIGZldGNoIHRoZSBkaXNwbGF5IG1ldGFkYXRhLCBkZWZhdWx0IHRvIGJlIGZhbHNlICovXG4gIHNob3dEaXNwbGF5OiBvcHRpb25hbChib29sZWFuKCkpLFxufSk7XG5leHBvcnQgdHlwZSBTdWlPYmplY3REYXRhT3B0aW9ucyA9IEluZmVyPHR5cGVvZiBTdWlPYmplY3REYXRhT3B0aW9ucz47XG5cbmV4cG9ydCBjb25zdCBPYmplY3RTdGF0dXMgPSB1bmlvbihbbGl0ZXJhbCgnRXhpc3RzJyksIGxpdGVyYWwoJ05vdEV4aXN0cycpLCBsaXRlcmFsKCdEZWxldGVkJyldKTtcbmV4cG9ydCB0eXBlIE9iamVjdFN0YXR1cyA9IEluZmVyPHR5cGVvZiBPYmplY3RTdGF0dXM+O1xuXG5leHBvcnQgY29uc3QgR2V0T3duZWRPYmplY3RzUmVzcG9uc2UgPSBhcnJheShTdWlPYmplY3RJbmZvKTtcbmV4cG9ydCB0eXBlIEdldE93bmVkT2JqZWN0c1Jlc3BvbnNlID0gSW5mZXI8dHlwZW9mIEdldE93bmVkT2JqZWN0c1Jlc3BvbnNlPjtcblxuZXhwb3J0IGNvbnN0IFN1aU9iamVjdFJlc3BvbnNlRXJyb3IgPSBvYmplY3Qoe1xuICB0YWc6IHN0cmluZygpLFxuICBvYmplY3RfaWQ6IG9wdGlvbmFsKE9iamVjdElkKSxcbiAgdmVyc2lvbjogb3B0aW9uYWwoU2VxdWVuY2VOdW1iZXIpLFxuICBkaWdlc3Q6IG9wdGlvbmFsKE9iamVjdERpZ2VzdCksXG59KTtcbmV4cG9ydCB0eXBlIFN1aU9iamVjdFJlc3BvbnNlRXJyb3IgPSBJbmZlcjx0eXBlb2YgU3VpT2JqZWN0UmVzcG9uc2VFcnJvcj47XG5cbmV4cG9ydCBjb25zdCBTdWlPYmplY3RSZXNwb25zZSA9IG9iamVjdCh7XG4gIGRhdGE6IG9wdGlvbmFsKFN1aU9iamVjdERhdGEpLFxuICBlcnJvcjogb3B0aW9uYWwoU3VpT2JqZWN0UmVzcG9uc2VFcnJvciksXG59KTtcbmV4cG9ydCB0eXBlIFN1aU9iamVjdFJlc3BvbnNlID0gSW5mZXI8dHlwZW9mIFN1aU9iamVjdFJlc3BvbnNlPjtcblxuZXhwb3J0IHR5cGUgT3JkZXIgPSAnYXNjZW5kaW5nJyB8ICdkZXNjZW5kaW5nJztcblxuLyogLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0gKi9cbi8qICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgSGVscGVyIGZ1bmN0aW9ucyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICovXG4vKiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSAqL1xuXG4vKiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSBTdWlPYmplY3RSZXNwb25zZSAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tICovXG5cbmV4cG9ydCBmdW5jdGlvbiBnZXRTdWlPYmplY3REYXRhKHJlc3A6IFN1aU9iamVjdFJlc3BvbnNlKTogU3VpT2JqZWN0RGF0YSB8IHVuZGVmaW5lZCB7XG4gIHJldHVybiByZXNwLmRhdGE7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBnZXRPYmplY3REZWxldGVkUmVzcG9uc2UocmVzcDogU3VpT2JqZWN0UmVzcG9uc2UpOiBTdWlPYmplY3RSZWYgfCB1bmRlZmluZWQge1xuICBpZiAocmVzcC5lcnJvciAmJiAnb2JqZWN0X2lkJyBpbiByZXNwLmVycm9yICYmICd2ZXJzaW9uJyBpbiByZXNwLmVycm9yICYmICdkaWdlc3QnIGluIHJlc3AuZXJyb3IpIHtcbiAgICBjb25zdCBlcnJvciA9IHJlc3AuZXJyb3IgYXMgU3VpT2JqZWN0UmVzcG9uc2VFcnJvcjtcbiAgICByZXR1cm4ge1xuICAgICAgb2JqZWN0SWQ6IGVycm9yLm9iamVjdF9pZCxcbiAgICAgIHZlcnNpb246IGVycm9yLnZlcnNpb24sXG4gICAgICBkaWdlc3Q6IGVycm9yLmRpZ2VzdCxcbiAgICB9IGFzIFN1aU9iamVjdFJlZjtcbiAgfVxuXG4gIHJldHVybiB1bmRlZmluZWQ7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBnZXRPYmplY3ROb3RFeGlzdHNSZXNwb25zZShyZXNwOiBTdWlPYmplY3RSZXNwb25zZSk6IE9iamVjdElkIHwgdW5kZWZpbmVkIHtcbiAgaWYgKHJlc3AuZXJyb3IgJiYgJ29iamVjdF9pZCcgaW4gcmVzcC5lcnJvciAmJiAhKCd2ZXJzaW9uJyBpbiByZXNwLmVycm9yKSAmJiAhKCdkaWdlc3QnIGluIHJlc3AuZXJyb3IpKSB7XG4gICAgcmV0dXJuIChyZXNwLmVycm9yIGFzIFN1aU9iamVjdFJlc3BvbnNlRXJyb3IpLm9iamVjdF9pZCBhcyBPYmplY3RJZDtcbiAgfVxuXG4gIHJldHVybiB1bmRlZmluZWQ7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBnZXRPYmplY3RSZWZlcmVuY2UocmVzcDogU3VpT2JqZWN0UmVzcG9uc2UgfCBPd25lZE9iamVjdFJlZik6IFN1aU9iamVjdFJlZiB8IHVuZGVmaW5lZCB7XG4gIGlmICgncmVmZXJlbmNlJyBpbiByZXNwKSB7XG4gICAgcmV0dXJuIHJlc3AucmVmZXJlbmNlO1xuICB9XG4gIGNvbnN0IGV4aXN0cyA9IGdldFN1aU9iamVjdERhdGEocmVzcCk7XG4gIGlmIChleGlzdHMpIHtcbiAgICByZXR1cm4ge1xuICAgICAgb2JqZWN0SWQ6IGV4aXN0cy5vYmplY3RJZCxcbiAgICAgIHZlcnNpb246IGV4aXN0cy52ZXJzaW9uLFxuICAgICAgZGlnZXN0OiBleGlzdHMuZGlnZXN0LFxuICAgIH07XG4gIH1cbiAgcmV0dXJuIGdldE9iamVjdERlbGV0ZWRSZXNwb25zZShyZXNwKTtcbn1cblxuLyogLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tIFN1aU9iamVjdFJlZiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0gKi9cblxuZXhwb3J0IGZ1bmN0aW9uIGdldE9iamVjdElkKGRhdGE6IFN1aU9iamVjdFJlc3BvbnNlIHwgU3VpT2JqZWN0UmVmIHwgT3duZWRPYmplY3RSZWYpOiBPYmplY3RJZCB7XG4gIGlmICgnb2JqZWN0SWQnIGluIGRhdGEpIHtcbiAgICByZXR1cm4gZGF0YS5vYmplY3RJZDtcbiAgfVxuICByZXR1cm4gZ2V0T2JqZWN0UmVmZXJlbmNlKGRhdGEpPy5vYmplY3RJZCA/PyBnZXRPYmplY3ROb3RFeGlzdHNSZXNwb25zZShkYXRhIGFzIFN1aU9iamVjdFJlc3BvbnNlKSE7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBnZXRPYmplY3RWZXJzaW9uKGRhdGE6IFN1aU9iamVjdFJlc3BvbnNlIHwgU3VpT2JqZWN0UmVmIHwgU3VpT2JqZWN0RGF0YSk6IHN0cmluZyB8IG51bWJlciB8IHVuZGVmaW5lZCB7XG4gIGlmICgndmVyc2lvbicgaW4gZGF0YSkge1xuICAgIHJldHVybiBkYXRhLnZlcnNpb247XG4gIH1cbiAgcmV0dXJuIGdldE9iamVjdFJlZmVyZW5jZShkYXRhKT8udmVyc2lvbjtcbn1cblxuLyogLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0gU3VpT2JqZWN0IC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0gKi9cblxuZXhwb3J0IGZ1bmN0aW9uIGlzU3VpT2JqZWN0UmVzcG9uc2UocmVzcDogU3VpT2JqZWN0UmVzcG9uc2UgfCBTdWlPYmplY3REYXRhKTogcmVzcCBpcyBTdWlPYmplY3RSZXNwb25zZSB7XG4gIHJldHVybiAocmVzcCBhcyBTdWlPYmplY3RSZXNwb25zZSkuZGF0YSAhPT0gdW5kZWZpbmVkO1xufVxuXG4vKipcbiAqIERlcml2aW5nIHRoZSBvYmplY3QgdHlwZSBmcm9tIHRoZSBvYmplY3QgcmVzcG9uc2VcbiAqIEByZXR1cm5zICdwYWNrYWdlJyBpZiB0aGUgb2JqZWN0IGlzIGEgcGFja2FnZSwgbW92ZSBvYmplY3QgdHlwZShlLmcuLCAweDI6OmNvaW46OkNvaW48MHgyOjpzdWk6OlNVST4pXG4gKiBpZiB0aGUgb2JqZWN0IGlzIGEgbW92ZSBvYmplY3RcbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGdldE9iamVjdFR5cGUocmVzcDogU3VpT2JqZWN0UmVzcG9uc2UgfCBTdWlPYmplY3REYXRhKTogT2JqZWN0VHlwZSB8IHVuZGVmaW5lZCB7XG4gIGNvbnN0IGRhdGEgPSBpc1N1aU9iamVjdFJlc3BvbnNlKHJlc3ApID8gcmVzcC5kYXRhIDogcmVzcDtcblxuICBpZiAoIWRhdGE/LnR5cGUgJiYgJ2RhdGEnIGluIHJlc3ApIHtcbiAgICBpZiAoZGF0YT8uY29udGVudD8uZGF0YVR5cGUgPT09ICdwYWNrYWdlJykge1xuICAgICAgcmV0dXJuICdwYWNrYWdlJztcbiAgICB9XG4gICAgcmV0dXJuIGdldE1vdmVPYmplY3RUeXBlKHJlc3ApO1xuICB9XG4gIHJldHVybiBkYXRhPy50eXBlO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gZ2V0T2JqZWN0UHJldmlvdXNUcmFuc2FjdGlvbkRpZ2VzdChyZXNwOiBTdWlPYmplY3RSZXNwb25zZSk6IFRyYW5zYWN0aW9uRGlnZXN0IHwgdW5kZWZpbmVkIHtcbiAgcmV0dXJuIGdldFN1aU9iamVjdERhdGEocmVzcCk/LnByZXZpb3VzVHJhbnNhY3Rpb247XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBnZXRPYmplY3RPd25lcihyZXNwOiBTdWlPYmplY3RSZXNwb25zZSB8IE9iamVjdE93bmVyKTogT2JqZWN0T3duZXIgfCB1bmRlZmluZWQge1xuICBpZiAoaXMocmVzcCwgT2JqZWN0T3duZXIpKSB7XG4gICAgcmV0dXJuIHJlc3A7XG4gIH1cbiAgcmV0dXJuIGdldFN1aU9iamVjdERhdGEocmVzcCk/Lm93bmVyO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gZ2V0T2JqZWN0RGlzcGxheShyZXNwOiBTdWlPYmplY3RSZXNwb25zZSk6IFJlY29yZDxzdHJpbmcsIHN0cmluZz4gfCB1bmRlZmluZWQge1xuICByZXR1cm4gZ2V0U3VpT2JqZWN0RGF0YShyZXNwKT8uZGlzcGxheTtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGdldFNoYXJlZE9iamVjdEluaXRpYWxWZXJzaW9uKHJlc3A6IFN1aU9iamVjdFJlc3BvbnNlIHwgT2JqZWN0T3duZXIpOiBudW1iZXIgfCB1bmRlZmluZWQge1xuICBjb25zdCBvd25lciA9IGdldE9iamVjdE93bmVyKHJlc3ApO1xuICBpZiAodHlwZW9mIG93bmVyID09PSAnb2JqZWN0JyAmJiAnU2hhcmVkJyBpbiBvd25lcikge1xuICAgIHJldHVybiBvd25lci5TaGFyZWQuaW5pdGlhbF9zaGFyZWRfdmVyc2lvbjtcbiAgfSBlbHNlIHtcbiAgICByZXR1cm4gdW5kZWZpbmVkO1xuICB9XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBpc1NoYXJlZE9iamVjdChyZXNwOiBTdWlPYmplY3RSZXNwb25zZSB8IE9iamVjdE93bmVyKTogYm9vbGVhbiB7XG4gIGNvbnN0IG93bmVyID0gZ2V0T2JqZWN0T3duZXIocmVzcCk7XG4gIHJldHVybiB0eXBlb2Ygb3duZXIgPT09ICdvYmplY3QnICYmICdTaGFyZWQnIGluIG93bmVyO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gaXNJbW11dGFibGVPYmplY3QocmVzcDogU3VpT2JqZWN0UmVzcG9uc2UgfCBPYmplY3RPd25lcik6IGJvb2xlYW4ge1xuICBjb25zdCBvd25lciA9IGdldE9iamVjdE93bmVyKHJlc3ApO1xuICByZXR1cm4gb3duZXIgPT09ICdJbW11dGFibGUnO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gZ2V0TW92ZU9iamVjdFR5cGUocmVzcDogU3VpT2JqZWN0UmVzcG9uc2UpOiBzdHJpbmcgfCB1bmRlZmluZWQge1xuICByZXR1cm4gZ2V0TW92ZU9iamVjdChyZXNwKT8udHlwZTtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGdldE9iamVjdEZpZWxkcyhcbiAgcmVzcDogU3VpT2JqZWN0UmVzcG9uc2UgfCBTdWlNb3ZlT2JqZWN0IHwgU3VpT2JqZWN0RGF0YVxuKTogT2JqZWN0Q29udGVudEZpZWxkcyB8IHVuZGVmaW5lZCB7XG4gIGlmICgnZmllbGRzJyBpbiByZXNwKSB7XG4gICAgcmV0dXJuIHJlc3AuZmllbGRzO1xuICB9XG4gIHJldHVybiBnZXRNb3ZlT2JqZWN0KHJlc3ApPy5maWVsZHM7XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgU3VpT2JqZWN0RGF0YVdpdGhDb250ZW50IGV4dGVuZHMgU3VpT2JqZWN0RGF0YSB7XG4gIGNvbnRlbnQ6IFN1aVBhcnNlZERhdGE7XG59XG5cbmZ1bmN0aW9uIGlzU3VpT2JqZWN0RGF0YVdpdGhDb250ZW50KGRhdGE6IFN1aU9iamVjdERhdGEpOiBkYXRhIGlzIFN1aU9iamVjdERhdGFXaXRoQ29udGVudCB7XG4gIHJldHVybiBkYXRhLmNvbnRlbnQgIT09IHVuZGVmaW5lZDtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGdldE1vdmVPYmplY3QoZGF0YTogU3VpT2JqZWN0UmVzcG9uc2UgfCBTdWlPYmplY3REYXRhKTogU3VpTW92ZU9iamVjdCB8IHVuZGVmaW5lZCB7XG4gIGNvbnN0IHN1aU9iamVjdCA9ICdkYXRhJyBpbiBkYXRhID8gZ2V0U3VpT2JqZWN0RGF0YShkYXRhKSA6IChkYXRhIGFzIFN1aU9iamVjdERhdGEpO1xuXG4gIGlmICghc3VpT2JqZWN0IHx8ICFpc1N1aU9iamVjdERhdGFXaXRoQ29udGVudChzdWlPYmplY3QpIHx8IHN1aU9iamVjdC5jb250ZW50LmRhdGFUeXBlICE9PSAnbW92ZU9iamVjdCcpIHtcbiAgICByZXR1cm4gdW5kZWZpbmVkO1xuICB9XG5cbiAgcmV0dXJuIHN1aU9iamVjdC5jb250ZW50IGFzIFN1aU1vdmVPYmplY3Q7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBoYXNQdWJsaWNUcmFuc2ZlcihkYXRhOiBTdWlPYmplY3RSZXNwb25zZSB8IFN1aU9iamVjdERhdGEpOiBib29sZWFuIHtcbiAgcmV0dXJuIGdldE1vdmVPYmplY3QoZGF0YSk/Lmhhc1B1YmxpY1RyYW5zZmVyID8/IGZhbHNlO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gZ2V0TW92ZVBhY2thZ2VDb250ZW50KGRhdGE6IFN1aU9iamVjdFJlc3BvbnNlIHwgU3VpTW92ZVBhY2thZ2UpOiBNb3ZlUGFja2FnZUNvbnRlbnQgfCB1bmRlZmluZWQge1xuICBpZiAoJ2Rpc2Fzc2VtYmxlZCcgaW4gZGF0YSkge1xuICAgIHJldHVybiBkYXRhLmRpc2Fzc2VtYmxlZDtcbiAgfVxuICBjb25zdCBzdWlPYmplY3QgPSBnZXRTdWlPYmplY3REYXRhKGRhdGEpO1xuICBpZiAoc3VpT2JqZWN0Py5jb250ZW50Py5kYXRhVHlwZSAhPT0gJ3BhY2thZ2UnKSB7XG4gICAgcmV0dXJuIHVuZGVmaW5lZDtcbiAgfVxuICByZXR1cm4gKHN1aU9iamVjdC5jb250ZW50IGFzIFN1aU1vdmVQYWNrYWdlKS5kaXNhc3NlbWJsZWQ7XG59XG5cbmV4cG9ydCBjb25zdCBDaGVja3BvaW50ZWRPYmplY3RJZCA9IG9iamVjdCh7XG4gIG9iamVjdElkOiBPYmplY3RJZCxcbiAgYXRDaGVja3BvaW50OiBvcHRpb25hbChudW1iZXIoKSksXG59KTtcbmV4cG9ydCB0eXBlIENoZWNrcG9pbnRlZE9iamVjdElkID0gSW5mZXI8dHlwZW9mIENoZWNrcG9pbnRlZE9iamVjdElkPjtcblxuZXhwb3J0IGNvbnN0IFBhZ2luYXRlZE9iamVjdHNSZXNwb25zZSA9IG9iamVjdCh7XG4gIGRhdGE6IGFycmF5KFN1aU9iamVjdFJlc3BvbnNlKSxcbiAgbmV4dEN1cnNvcjogb3B0aW9uYWwoQ2hlY2twb2ludGVkT2JqZWN0SWQpLFxuICBoYXNOZXh0UGFnZTogYm9vbGVhbigpLFxufSk7XG5leHBvcnQgdHlwZSBQYWdpbmF0ZWRPYmplY3RzUmVzcG9uc2UgPSBJbmZlcjx0eXBlb2YgUGFnaW5hdGVkT2JqZWN0c1Jlc3BvbnNlPjtcblxuLy8gbWlycm9ycyBzdWlfanNvbl9ycGNfdHlwZXM6OiBTdWlPYmplY3REYXRhRmlsdGVyXG5leHBvcnQgdHlwZSBTdWlPYmplY3REYXRhRmlsdGVyID1cbiAgfCB7IFBhY2thZ2U6IE9iamVjdElkIH1cbiAgfCB7IE1vdmVNb2R1bGU6IHsgcGFja2FnZTogT2JqZWN0SWQ7IG1vZHVsZTogc3RyaW5nIH0gfVxuICB8IHsgU3RydWN0VHlwZTogc3RyaW5nIH07XG5cbmV4cG9ydCB0eXBlIFN1aU9iamVjdFJlc3BvbnNlUXVlcnkgPSB7XG4gIGZpbHRlcj86IFN1aU9iamVjdERhdGFGaWx0ZXI7XG4gIG9wdGlvbnM/OiBTdWlPYmplY3REYXRhT3B0aW9ucztcbn07XG4iXX0=
@@ -0,0 +1,8 @@
1
+ export declare type Option<T> = T | {
2
+ fields: {
3
+ vec: '';
4
+ };
5
+ type: string;
6
+ };
7
+ export declare function getOption<T>(option: Option<T>): T | undefined;
8
+ //# sourceMappingURL=option.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"option.d.ts","sourceRoot":"","sources":["../../../../../src/lib/mystenlab/types/option.ts"],"names":[],"mappings":"AAAA,oBAAY,MAAM,CAAC,CAAC,IAChB,CAAC,GACD;IACE,MAAM,EAAE;QACN,GAAG,EAAE,EAAE,CAAC;KACT,CAAC;IACF,IAAI,EAAE,MAAM,CAAC;CACd,CAAC;AAEN,wBAAgB,SAAS,CAAC,CAAC,EAAE,MAAM,EAAE,MAAM,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,SAAS,CAU7D"}
@@ -0,0 +1,14 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.getOption = void 0;
4
+ function getOption(option) {
5
+ if (typeof option === 'object' &&
6
+ option !== null &&
7
+ 'type' in option &&
8
+ option.type.startsWith('0x1::option::Option<')) {
9
+ return undefined;
10
+ }
11
+ return option;
12
+ }
13
+ exports.getOption = getOption;
14
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoib3B0aW9uLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vc3JjL2xpYi9teXN0ZW5sYWIvdHlwZXMvb3B0aW9uLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7OztBQVNBLFNBQWdCLFNBQVMsQ0FBSSxNQUFpQjtJQUM1QyxJQUNFLE9BQU8sTUFBTSxLQUFLLFFBQVE7UUFDMUIsTUFBTSxLQUFLLElBQUk7UUFDZixNQUFNLElBQUksTUFBTTtRQUNoQixNQUFNLENBQUMsSUFBSSxDQUFDLFVBQVUsQ0FBQyxzQkFBc0IsQ0FBQyxFQUM5QztRQUNBLE9BQU8sU0FBUyxDQUFDO0tBQ2xCO0lBQ0QsT0FBTyxNQUFXLENBQUM7QUFDckIsQ0FBQztBQVZELDhCQVVDIiwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0IHR5cGUgT3B0aW9uPFQ+ID1cbiAgfCBUXG4gIHwge1xuICAgICAgZmllbGRzOiB7XG4gICAgICAgIHZlYzogJyc7XG4gICAgICB9O1xuICAgICAgdHlwZTogc3RyaW5nO1xuICAgIH07XG5cbmV4cG9ydCBmdW5jdGlvbiBnZXRPcHRpb248VD4ob3B0aW9uOiBPcHRpb248VD4pOiBUIHwgdW5kZWZpbmVkIHtcbiAgaWYgKFxuICAgIHR5cGVvZiBvcHRpb24gPT09ICdvYmplY3QnICYmXG4gICAgb3B0aW9uICE9PSBudWxsICYmXG4gICAgJ3R5cGUnIGluIG9wdGlvbiAmJlxuICAgIG9wdGlvbi50eXBlLnN0YXJ0c1dpdGgoJzB4MTo6b3B0aW9uOjpPcHRpb248JylcbiAgKSB7XG4gICAgcmV0dXJuIHVuZGVmaW5lZDtcbiAgfVxuICByZXR1cm4gb3B0aW9uIGFzIFQ7XG59XG4iXX0=
@@ -0,0 +1,111 @@
1
+ import { BCS } from '@mysten/bcs';
2
+ import { SuiObjectRef } from './objects';
3
+ /**
4
+ * A reference to a shared object.
5
+ */
6
+ export declare type SharedObjectRef = {
7
+ /** Hex code as string representing the object id */
8
+ objectId: string;
9
+ /** The version the object was shared at */
10
+ initialSharedVersion: number | string;
11
+ /** Whether reference is mutable */
12
+ mutable: boolean;
13
+ };
14
+ /**
15
+ * An object argument.
16
+ */
17
+ export declare type ObjectArg = {
18
+ ImmOrOwned: SuiObjectRef;
19
+ } | {
20
+ Shared: SharedObjectRef;
21
+ };
22
+ /**
23
+ * A pure argument.
24
+ */
25
+ export declare type PureArg = {
26
+ Pure: ArrayLike<number>;
27
+ };
28
+ export declare function isPureArg(arg: any): arg is PureArg;
29
+ /**
30
+ * An argument for the transaction. It is a 'meant' enum which expects to have
31
+ * one of the optional properties. If not, the BCS error will be thrown while
32
+ * attempting to form a transaction.
33
+ *
34
+ * Example:
35
+ * ```js
36
+ * let arg1: CallArg = { Object: { Shared: {
37
+ * objectId: '5460cf92b5e3e7067aaace60d88324095fd22944',
38
+ * initialSharedVersion: 1,
39
+ * mutable: true,
40
+ * } } };
41
+ * let arg2: CallArg = { Pure: bcs.ser(BCS.STRING, 100000).toBytes() };
42
+ * let arg3: CallArg = { Object: { ImmOrOwned: {
43
+ * objectId: '4047d2e25211d87922b6650233bd0503a6734279',
44
+ * version: 1,
45
+ * digest: 'bCiANCht4O9MEUhuYjdRCqRPZjr2rJ8MfqNiwyhmRgA='
46
+ * } } };
47
+ * ```
48
+ *
49
+ * For `Pure` arguments BCS is required. You must encode the values with BCS according
50
+ * to the type required by the called function. Pure accepts only serialized values
51
+ */
52
+ export declare type CallArg = PureArg | {
53
+ Object: ObjectArg;
54
+ };
55
+ /**
56
+ * Kind of a TypeTag which is represented by a Move type identifier.
57
+ */
58
+ export declare type StructTag = {
59
+ address: string;
60
+ module: string;
61
+ name: string;
62
+ typeParams: TypeTag[];
63
+ };
64
+ /**
65
+ * Sui TypeTag object. A decoupled `0x...::module::Type<???>` parameter.
66
+ */
67
+ export declare type TypeTag = {
68
+ bool: null;
69
+ } | {
70
+ u8: null;
71
+ } | {
72
+ u64: null;
73
+ } | {
74
+ u128: null;
75
+ } | {
76
+ address: null;
77
+ } | {
78
+ signer: null;
79
+ } | {
80
+ vector: TypeTag;
81
+ } | {
82
+ struct: StructTag;
83
+ } | {
84
+ u16: null;
85
+ } | {
86
+ u32: null;
87
+ } | {
88
+ u256: null;
89
+ };
90
+ /**
91
+ * The GasData to be used in the transaction.
92
+ */
93
+ export declare type GasData = {
94
+ payment: SuiObjectRef[];
95
+ owner: string;
96
+ price: number;
97
+ budget: number;
98
+ };
99
+ /**
100
+ * TransactionExpiration
101
+ *
102
+ * Indications the expiration time for a transaction.
103
+ */
104
+ export declare type TransactionExpiration = {
105
+ None: null;
106
+ } | {
107
+ Epoch: number;
108
+ };
109
+ declare const bcs: BCS;
110
+ export { bcs };
111
+ //# sourceMappingURL=sui-bcs.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"sui-bcs.d.ts","sourceRoot":"","sources":["../../../../../src/lib/mystenlab/types/sui-bcs.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,GAAG,EAA8D,MAAM,aAAa,CAAC;AAC9F,OAAO,EAAE,YAAY,EAAE,MAAM,WAAW,CAAC;AAiBzC;;GAEG;AACH,oBAAY,eAAe,GAAG;IAC5B,oDAAoD;IACpD,QAAQ,EAAE,MAAM,CAAC;IAEjB,2CAA2C;IAC3C,oBAAoB,EAAE,MAAM,GAAG,MAAM,CAAC;IAEtC,mCAAmC;IACnC,OAAO,EAAE,OAAO,CAAC;CAClB,CAAC;AAEF;;GAEG;AACH,oBAAY,SAAS,GAAG;IAAE,UAAU,EAAE,YAAY,CAAA;CAAE,GAAG;IAAE,MAAM,EAAE,eAAe,CAAA;CAAE,CAAC;AAEnF;;GAEG;AACH,oBAAY,OAAO,GAAG;IAAE,IAAI,EAAE,SAAS,CAAC,MAAM,CAAC,CAAA;CAAE,CAAC;AAElD,wBAAgB,SAAS,CAAC,GAAG,EAAE,GAAG,GAAG,GAAG,IAAI,OAAO,CAElD;AAED;;;;;;;;;;;;;;;;;;;;;;GAsBG;AACH,oBAAY,OAAO,GAAG,OAAO,GAAG;IAAE,MAAM,EAAE,SAAS,CAAA;CAAE,CAAC;AAEtD;;GAEG;AACH,oBAAY,SAAS,GAAG;IACtB,OAAO,EAAE,MAAM,CAAC;IAChB,MAAM,EAAE,MAAM,CAAC;IACf,IAAI,EAAE,MAAM,CAAC;IACb,UAAU,EAAE,OAAO,EAAE,CAAC;CACvB,CAAC;AAEF;;GAEG;AACH,oBAAY,OAAO,GACf;IAAE,IAAI,EAAE,IAAI,CAAA;CAAE,GACd;IAAE,EAAE,EAAE,IAAI,CAAA;CAAE,GACZ;IAAE,GAAG,EAAE,IAAI,CAAA;CAAE,GACb;IAAE,IAAI,EAAE,IAAI,CAAA;CAAE,GACd;IAAE,OAAO,EAAE,IAAI,CAAA;CAAE,GACjB;IAAE,MAAM,EAAE,IAAI,CAAA;CAAE,GAChB;IAAE,MAAM,EAAE,OAAO,CAAA;CAAE,GACnB;IAAE,MAAM,EAAE,SAAS,CAAA;CAAE,GACrB;IAAE,GAAG,EAAE,IAAI,CAAA;CAAE,GACb;IAAE,GAAG,EAAE,IAAI,CAAA;CAAE,GACb;IAAE,IAAI,EAAE,IAAI,CAAA;CAAE,CAAC;AAInB;;GAEG;AACH,oBAAY,OAAO,GAAG;IACpB,OAAO,EAAE,YAAY,EAAE,CAAC;IACxB,KAAK,EAAE,MAAM,CAAC;IACd,KAAK,EAAE,MAAM,CAAC;IACd,MAAM,EAAE,MAAM,CAAC;CAChB,CAAC;AAEF;;;;GAIG;AACH,oBAAY,qBAAqB,GAAG;IAAE,IAAI,EAAE,IAAI,CAAA;CAAE,GAAG;IAAE,KAAK,EAAE,MAAM,CAAA;CAAE,CAAC;AAkGvE,QAAA,MAAM,GAAG,KAAsD,CAAC;AAGhE,OAAO,EAAE,GAAG,EAAE,CAAC"}
@@ -0,0 +1,107 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.bcs = exports.isPureArg = void 0;
4
+ const bcs_1 = require("@mysten/bcs");
5
+ function registerUTF8String(bcs) {
6
+ bcs.registerType('utf8string', (writer, str) => {
7
+ const bytes = Array.from(new TextEncoder().encode(str));
8
+ return writer.writeVec(bytes, (writer, el) => writer.write8(el));
9
+ }, (reader) => {
10
+ let bytes = reader.readVec((reader) => reader.read8());
11
+ return new TextDecoder().decode(new Uint8Array(bytes));
12
+ });
13
+ }
14
+ function isPureArg(arg) {
15
+ return arg.Pure !== undefined;
16
+ }
17
+ exports.isPureArg = isPureArg;
18
+ // Move name of the Vector type.
19
+ const VECTOR = 'vector';
20
+ const TransactionDataV1 = {
21
+ kind: 'TransactionKind',
22
+ sender: bcs_1.BCS.ADDRESS,
23
+ gasData: 'GasData',
24
+ expiration: 'TransactionExpiration',
25
+ };
26
+ const BCS_SPEC = {
27
+ enums: {
28
+ 'Option<T>': {
29
+ None: null,
30
+ Some: 'T',
31
+ },
32
+ ObjectArg: {
33
+ ImmOrOwned: 'SuiObjectRef',
34
+ Shared: 'SharedObjectRef',
35
+ },
36
+ CallArg: {
37
+ Pure: [VECTOR, bcs_1.BCS.U8],
38
+ Object: 'ObjectArg',
39
+ ObjVec: [VECTOR, 'ObjectArg'],
40
+ },
41
+ TypeTag: {
42
+ bool: null,
43
+ u8: null,
44
+ u64: null,
45
+ u128: null,
46
+ address: null,
47
+ signer: null,
48
+ vector: 'TypeTag',
49
+ struct: 'StructTag',
50
+ u16: null,
51
+ u32: null,
52
+ u256: null,
53
+ },
54
+ TransactionKind: {
55
+ // can not be called from sui.js; dummy placement
56
+ // to set the enum counter right for ProgrammableTransact
57
+ ProgrammableTransaction: 'ProgrammableTransaction',
58
+ ChangeEpoch: null,
59
+ Genesis: null,
60
+ ConsensusCommitPrologue: null,
61
+ },
62
+ TransactionExpiration: {
63
+ None: null,
64
+ Epoch: bcs_1.BCS.U64,
65
+ },
66
+ TransactionData: {
67
+ V1: 'TransactionDataV1',
68
+ },
69
+ },
70
+ structs: {
71
+ SuiObjectRef: {
72
+ objectId: bcs_1.BCS.ADDRESS,
73
+ version: bcs_1.BCS.U64,
74
+ digest: 'ObjectDigest',
75
+ },
76
+ SharedObjectRef: {
77
+ objectId: bcs_1.BCS.ADDRESS,
78
+ initialSharedVersion: bcs_1.BCS.U64,
79
+ mutable: bcs_1.BCS.BOOL,
80
+ },
81
+ StructTag: {
82
+ address: bcs_1.BCS.ADDRESS,
83
+ module: bcs_1.BCS.STRING,
84
+ name: bcs_1.BCS.STRING,
85
+ typeParams: [VECTOR, 'TypeTag'],
86
+ },
87
+ GasData: {
88
+ payment: [VECTOR, 'SuiObjectRef'],
89
+ owner: bcs_1.BCS.ADDRESS,
90
+ price: bcs_1.BCS.U64,
91
+ budget: bcs_1.BCS.U64,
92
+ },
93
+ // Signed transaction data needed to generate transaction digest.
94
+ SenderSignedData: {
95
+ data: 'TransactionData',
96
+ txSignatures: [VECTOR, [VECTOR, bcs_1.BCS.U8]],
97
+ },
98
+ TransactionDataV1,
99
+ },
100
+ aliases: {
101
+ ObjectDigest: bcs_1.BCS.BASE58,
102
+ },
103
+ };
104
+ const bcs = new bcs_1.BCS({ ...bcs_1.getSuiMoveConfig(), types: BCS_SPEC });
105
+ exports.bcs = bcs;
106
+ registerUTF8String(bcs);
107
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3VpLWJjcy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3NyYy9saWIvbXlzdGVubGFiL3R5cGVzL3N1aS1iY3MudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7O0FBQUEscUNBQThGO0FBSTlGLFNBQVMsa0JBQWtCLENBQUMsR0FBUTtJQUNsQyxHQUFHLENBQUMsWUFBWSxDQUNkLFlBQVksRUFDWixDQUFDLE1BQU0sRUFBRSxHQUFHLEVBQUUsRUFBRTtRQUNkLE1BQU0sS0FBSyxHQUFHLEtBQUssQ0FBQyxJQUFJLENBQUMsSUFBSSxXQUFXLEVBQUUsQ0FBQyxNQUFNLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQztRQUN4RCxPQUFPLE1BQU0sQ0FBQyxRQUFRLENBQUMsS0FBSyxFQUFFLENBQUMsTUFBTSxFQUFFLEVBQUUsRUFBRSxFQUFFLENBQUMsTUFBTSxDQUFDLE1BQU0sQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDO0lBQ25FLENBQUMsRUFDRCxDQUFDLE1BQU0sRUFBRSxFQUFFO1FBQ1QsSUFBSSxLQUFLLEdBQUcsTUFBTSxDQUFDLE9BQU8sQ0FBQyxDQUFDLE1BQU0sRUFBRSxFQUFFLENBQUMsTUFBTSxDQUFDLEtBQUssRUFBRSxDQUFDLENBQUM7UUFDdkQsT0FBTyxJQUFJLFdBQVcsRUFBRSxDQUFDLE1BQU0sQ0FBQyxJQUFJLFVBQVUsQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDO0lBQ3pELENBQUMsQ0FDRixDQUFDO0FBQ0osQ0FBQztBQTBCRCxTQUFnQixTQUFTLENBQUMsR0FBUTtJQUNoQyxPQUFRLEdBQWUsQ0FBQyxJQUFJLEtBQUssU0FBUyxDQUFDO0FBQzdDLENBQUM7QUFGRCw4QkFFQztBQXdFRCxnQ0FBZ0M7QUFDaEMsTUFBTSxNQUFNLEdBQUcsUUFBUSxDQUFDO0FBU3hCLE1BQU0saUJBQWlCLEdBQUc7SUFDeEIsSUFBSSxFQUFFLGlCQUFpQjtJQUN2QixNQUFNLEVBQUUsU0FBRyxDQUFDLE9BQU87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ZywgU3RydWN0VHlwZURlZmluaXRpb24gfSBmcm9tICdAbXlzdGVuL2Jjcyc7XG5pbXBvcnQgeyBTdWlPYmplY3RSZWYgfSBmcm9tICcuL29iamVjdHMnO1xuaW1wb3J0IHsgUHVyZUNhbGxBcmcgfSBmcm9tICcuLi9idWlsZGVyJztcblxuZnVuY3Rpb24gcmVnaXN0ZXJVVEY4U3RyaW5nKGJjczogQkNTKSB7XG4gIGJjcy5yZWdpc3RlclR5cGUoXG4gICAgJ3V0ZjhzdHJpbmcnLFxuICAgICh3cml0ZXIsIHN0cikgPT4ge1xuICAgICAgY29uc3QgYnl0ZXMgPSBBcnJheS5mcm9tKG5ldyBUZXh0RW5jb2RlcigpLmVuY29kZShzdHIpKTtcbiAgICAgIHJldHVybiB3cml0ZXIud3JpdGVWZWMoYnl0ZXMsICh3cml0ZXIsIGVsKSA9PiB3cml0ZXIud3JpdGU4KGVsKSk7XG4gICAgfSxcbiAgICAocmVhZGVyKSA9PiB7XG4gICAgICBsZXQgYnl0ZXMgPSByZWFkZXIucmVhZFZlYygocmVhZGVyKSA9PiByZWFkZXIucmVhZDgoKSk7XG4gICAgICByZXR1cm4gbmV3IFRleHREZWNvZGVyKCkuZGVjb2RlKG5ldyBVaW50OEFycmF5KGJ5dGVzKSk7XG4gICAgfVxuICApO1xufVxuXG4vKipcbiAqIEEgcmVmZXJlbmNlIHRvIGEgc2hhcmVkIG9iamVjdC5cbiAqL1xuZXhwb3J0IHR5cGUgU2hhcmVkT2JqZWN0UmVmID0ge1xuICAvKiogSGV4IGNvZGUgYXMgc3RyaW5nIHJlcHJlc2VudGluZyB0aGUgb2JqZWN0IGlkICovXG4gIG9iamVjdElkOiBzdHJpbmc7XG5cbiAgLyoqIFRoZSB2ZXJzaW9uIHRoZSBvYmplY3Qgd2FzIHNoYXJlZCBhdCAqL1xuICBpbml0aWFsU2hhcmVkVmVyc2lvbjogbnVtYmVyIHwgc3RyaW5nO1xuXG4gIC8qKiBXaGV0aGVyIHJlZmVyZW5jZSBpcyBtdXRhYmxlICovXG4gIG11dGFibGU6IGJvb2xlYW47XG59O1xuXG4vKipcbiAqIEFuIG9iamVjdCBhcmd1bWVudC5cbiAqL1xuZXhwb3J0IHR5cGUgT2JqZWN0QXJnID0geyBJbW1Pck93bmVkOiBTdWlPYmplY3RSZWYgfSB8IHsgU2hhcmVkOiBTaGFyZWRPYmplY3RSZWYgfTtcblxuLyoqXG4gKiBBIHB1cmUgYXJndW1lbnQuXG4gKi9cbmV4cG9ydCB0eXBlIFB1cmVBcmcgPSB7IFB1cmU6IEFycmF5TGlrZTxudW1iZXI+IH07XG5cbmV4cG9ydCBmdW5jdGlvbiBpc1B1cmVBcmcoYXJnOiBhbnkpOiBhcmcgaXMgUHVyZUFyZyB7XG4gIHJldHVybiAoYXJnIGFzIFB1cmVBcmcpLlB1cmUgIT09IHVuZGVmaW5lZDtcbn1cblxuLyoqXG4gKiBBbiBhcmd1bWVudCBmb3IgdGhlIHRyYW5zYWN0aW9uLiBJdCBpcyBhICdtZWFudCcgZW51bSB3aGljaCBleHBlY3RzIHRvIGhhdmVcbiAqIG9uZSBvZiB0aGUgb3B0aW9uYWwgcHJvcGVydGllcy4gSWYgbm90LCB0aGUgQkNTIGVycm9yIHdpbGwgYmUgdGhyb3duIHdoaWxlXG4gKiBhdHRlbXB0aW5nIHRvIGZvcm0gYSB0cmFuc2FjdGlvbi5cbiAqXG4gKiBFeGFtcGxlOlxuICogYGBganNcbiAqIGxldCBhcmcxOiBDYWxsQXJnID0geyBPYmplY3Q6IHsgU2hhcmVkOiB7XG4gKiAgIG9iamVjdElkOiAnNTQ2MGNmOTJiNWUzZTcwNjdhYWFjZTYwZDg4MzI0MDk1ZmQyMjk0NCcsXG4gKiAgIGluaXRpYWxTaGFyZWRWZXJzaW9uOiAxLFxuICogICBtdXRhYmxlOiB0cnVlLFxuICogfSB9IH07XG4gKiBsZXQgYXJnMjogQ2FsbEFyZyA9IHsgUHVyZTogYmNzLnNlcihCQ1MuU1RSSU5HLCAxMDAwMDApLnRvQnl0ZXMoKSB9O1xuICogbGV0IGFyZzM6IENhbGxBcmcgPSB7IE9iamVjdDogeyBJbW1Pck93bmVkOiB7XG4gKiAgIG9iamVjdElkOiAnNDA0N2QyZTI1MjExZDg3OTIyYjY2NTAyMzNiZDA1MDNhNjczNDI3OScsXG4gKiAgIHZlcnNpb246IDEsXG4gKiAgIGRpZ2VzdDogJ2JDaUFOQ2h0NE85TUVVaHVZamRSQ3FSUFpqcjJySjhNZnFOaXd5aG1SZ0E9J1xuICogfSB9IH07XG4gKiBgYGBcbiAqXG4gKiBGb3IgYFB1cmVgIGFyZ3VtZW50cyBCQ1MgaXMgcmVxdWlyZWQuIFlvdSBtdXN0IGVuY29kZSB0aGUgdmFsdWVzIHdpdGggQkNTIGFjY29yZGluZ1xuICogdG8gdGhlIHR5cGUgcmVxdWlyZWQgYnkgdGhlIGNhbGxlZCBmdW5jdGlvbi4gUHVyZSBhY2NlcHRzIG9ubHkgc2VyaWFsaXplZCB2YWx1ZXNcbiAqL1xuZXhwb3J0IHR5cGUgQ2FsbEFyZyA9IFB1cmVBcmcgfCB7IE9iamVjdDogT2JqZWN0QXJnIH07XG5cbi8qKlxuICogS2luZCBvZiBhIFR5cGVUYWcgd2hpY2ggaXMgcmVwcmVzZW50ZWQgYnkgYSBNb3ZlIHR5cGUgaWRlbnRpZmllci5cbiAqL1xuZXhwb3J0IHR5cGUgU3RydWN0VGFnID0ge1xuICBhZGRyZXNzOiBzdHJpbmc7XG4gIG1vZHVsZTogc3RyaW5nO1xuICBuYW1lOiBzdHJpbmc7XG4gIHR5cGVQYXJhbXM6IFR5cGVUYWdbXTtcbn07XG5cbi8qKlxuICogU3VpIFR5cGVUYWcgb2JqZWN0LiBBIGRlY291cGxlZCBgMHguLi46Om1vZHVsZTo6VHlwZTw/Pz8+YCBwYXJhbWV0ZXIuXG4gKi9cbmV4cG9ydCB0eXBlIFR5cGVUYWcgPVxuICB8IHsgYm9vbDogbnVsbCB9XG4gIHwgeyB1ODogbnVsbCB9XG4gIHwgeyB1NjQ6IG51bGwgfVxuICB8IHsgdTEyODogbnVsbCB9XG4gIHwgeyBhZGRyZXNzOiBudWxsIH1cbiAgfCB7IHNpZ25lcjogbnVsbCB9XG4gIHwgeyB2ZWN0b3I6IFR5cGVUYWcgfVxuICB8IHsgc3RydWN0OiBTdHJ1Y3RUYWcgfVxuICB8IHsgdTE2OiBudWxsIH1cbiAgfCB7IHUzMjogbnVsbCB9XG4gIHwgeyB1MjU2OiBudWxsIH07XG5cbi8vID09PT09PT09PT0gVHJhbnNhY3Rpb25EYXRhID09PT09PT09PT09XG5cbi8qKlxuICogVGhlIEdhc0RhdGEgdG8gYmUgdXNlZCBpbiB0aGUgdHJhbnNhY3Rpb24uXG4gKi9cbmV4cG9ydCB0eXBlIEdhc0RhdGEgPSB7XG4gIHBheW1lbnQ6IFN1aU9iamVjdFJlZltdO1xuICBvd25lcjogc3RyaW5nOyAvLyBHYXMgT2JqZWN0J3Mgb3duZXJcbiAgcHJpY2U6IG51bWJlcjtcbiAgYnVkZ2V0OiBudW1iZXI7XG59O1xuXG4vKipcbiAqIFRyYW5zYWN0aW9uRXhwaXJhdGlvblxuICpcbiAqIEluZGljYXRpb25zIHRoZSBleHBpcmF0aW9uIHRpbWUgZm9yIGEgdHJhbnNhY3Rpb24uXG4gKi9cbmV4cG9ydCB0eXBlIFRyYW5zYWN0aW9uRXhwaXJhdGlvbiA9IHsgTm9uZTogbnVsbCB9IHwgeyBFcG9jaDogbnVtYmVyIH07XG5cbi8vIE1vdmUgbmFtZSBvZiB0aGUgVmVjdG9yIHR5cGUuXG5jb25zdCBWRUNUT1IgPSAndmVjdG9yJztcblxuLy8gSW1wb3J0ZWQgdG8gZXhwbGljaXRseSB0ZWxsIHR5cGVzY3JpcHQgdGhhdCB0eXBlcyBtYXRjaFxudHlwZSBUeXBlU2NoZW1hID0ge1xuICBzdHJ1Y3RzPzogeyBba2V5OiBzdHJpbmddOiBTdHJ1Y3RUeXBlRGVmaW5pdGlvbiB9O1xuICBlbnVtcz86IHsgW2tleTogc3RyaW5nXTogRW51bVR5cGVEZWZpbml0aW9uIH07XG4gIGFsaWFzZXM/OiB7IFtrZXk6IHN0cmluZ106IHN0cmluZyB9O1xufTtcblxuY29uc3QgVHJhbnNhY3Rpb25EYXRhVjEgPSB7XG4gIGtpbmQ6ICdUcmFuc2FjdGlvbktpbmQnLFxuICBzZW5kZXI6IEJDUy5BRERSRVNTLFxuICBnYXNEYXRhOiAnR2FzRGF0YScsXG4gIGV4cGlyYXRpb246ICdUcmFuc2FjdGlvbkV4cGlyYXRpb24nLFxufTtcblxuY29uc3QgQkNTX1NQRUM6IFR5cGVTY2hlbWEgPSB7XG4gIGVudW1zOiB7XG4gICAgJ09wdGlvbjxUPic6IHtcbiAgICAgIE5vbmU6IG51bGwsXG4gICAgICBTb21lOiAnVCcsXG4gICAgfSxcbiAgICBPYmplY3RBcmc6IHtcbiAgICAgIEltbU9yT3duZWQ6ICdTdWlPYmplY3RSZWYnLFxuICAgICAgU2hhcmVkOiAnU2hhcmVkT2JqZWN0UmVmJyxcbiAgICB9LFxuICAgIENhbGxBcmc6IHtcbiAgICAgIFB1cmU6IFtWRUNUT1IsIEJDUy5VOF0sXG4gICAgICBPYmplY3Q6ICdPYmplY3RBcmcnLFxuICAgICAgT2JqVmVjOiBbVkVDVE9SLCAnT2JqZWN0QXJnJ10sXG4gICAgfSxcbiAgICBUeXBlVGFnOiB7XG4gICAgICBib29sOiBudWxsLFxuICAgICAgdTg6IG51bGwsXG4gICAgICB1NjQ6IG51bGwsXG4gICAgICB1MTI4OiBudWxsLFxuICAgICAgYWRkcmVzczogbnVsbCxcbiAgICAgIHNpZ25lcjogbnVsbCxcbiAgICAgIHZlY3RvcjogJ1R5cGVUYWcnLFxuICAgICAgc3RydWN0OiAnU3RydWN0VGFnJyxcbiAgICAgIHUxNjogbnVsbCxcbiAgICAgIHUzMjogbnVsbCxcbiAgICAgIHUyNTY6IG51bGwsXG4gICAgfSxcbiAgICBUcmFuc2FjdGlvbktpbmQ6IHtcbiAgICAgIC8vIGNhbiBub3QgYmUgY2FsbGVkIGZyb20gc3VpLmpzOyBkdW1teSBwbGFjZW1lbnRcbiAgICAgIC8vIHRvIHNldCB0aGUgZW51bSBjb3VudGVyIHJpZ2h0IGZvciBQcm9ncmFtbWFibGVUcmFuc2FjdFxuICAgICAgUHJvZ3JhbW1hYmxlVHJhbnNhY3Rpb246ICdQcm9ncmFtbWFibGVUcmFuc2FjdGlvbicsXG4gICAgICBDaGFuZ2VFcG9jaDogbnVsbCxcbiAgICAgIEdlbmVzaXM6IG51bGwsXG4gICAgICBDb25zZW5zdXNDb21taXRQcm9sb2d1ZTogbnVsbCxcbiAgICB9LFxuICAgIFRyYW5zYWN0aW9uRXhwaXJhdGlvbjoge1xuICAgICAgTm9uZTogbnVsbCxcbiAgICAgIEVwb2NoOiBCQ1MuVTY0LFxuICAgIH0sXG4gICAgVHJhbnNhY3Rpb25EYXRhOiB7XG4gICAgICBWMTogJ1RyYW5zYWN0aW9uRGF0YVYxJyxcbiAgICB9LFxuICB9LFxuICBzdHJ1Y3RzOiB7XG4gICAgU3VpT2JqZWN0UmVmOiB7XG4gICAgICBvYmplY3RJZDogQkNTLkFERFJFU1MsXG4gICAgICB2ZXJzaW9uOiBCQ1MuVTY0LFxuICAgICAgZGlnZXN0OiAnT2JqZWN0RGlnZXN0JyxcbiAgICB9LFxuICAgIFNoYXJlZE9iamVjdFJlZjoge1xuICAgICAgb2JqZWN0SWQ6IEJDUy5BRERSRVNTLFxuICAgICAgaW5pdGlhbFNoYXJlZFZlcnNpb246IEJDUy5VNjQsXG4gICAgICBtdXRhYmxlOiBCQ1MuQk9PTCxcbiAgICB9LFxuICAgIFN0cnVjdFRhZzoge1xuICAgICAgYWRkcmVzczogQkNTLkFERFJFU1MsXG4gICAgICBtb2R1bGU6IEJDUy5TVFJJTkcsXG4gICAgICBuYW1lOiBCQ1MuU1RSSU5HLFxuICAgICAgdHlwZVBhcmFtczogW1ZFQ1RPUiwgJ1R5cGVUYWcnXSxcbiAgICB9LFxuICAgIEdhc0RhdGE6IHtcbiAgICAgIHBheW1lbnQ6IFtWRUNUT1IsICdTdWlPYmplY3RSZWYnXSxcbiAgICAgIG93bmVyOiBCQ1MuQUREUkVTUyxcbiAgICAgIHByaWNlOiBCQ1MuVTY0LFxuICAgICAgYnVkZ2V0OiBCQ1MuVTY0LFxuICAgIH0sXG4gICAgLy8gU2lnbmVkIHRyYW5zYWN0aW9uIGRhdGEgbmVlZGVkIHRvIGdlbmVyYXRlIHRyYW5zYWN0aW9uIGRpZ2VzdC5cbiAgICBTZW5kZXJTaWduZWREYXRhOiB7XG4gICAgICBkYXRhOiAnVHJhbnNhY3Rpb25EYXRhJyxcbiAgICAgIHR4U2lnbmF0dXJlczogW1ZFQ1RPUiwgW1ZFQ1RPUiwgQkNTLlU4XV0sXG4gICAgfSxcbiAgICBUcmFuc2FjdGlvbkRhdGFWMSxcbiAgfSxcbiAgYWxpYXNlczoge1xuICAgIE9iamVjdERpZ2VzdDogQkNTLkJBU0U1OCxcbiAgfSxcbn07XG5cbmNvbnN0IGJjcyA9IG5ldyBCQ1MoeyAuLi5nZXRTdWlNb3ZlQ29uZmlnKCksIHR5cGVzOiBCQ1NfU1BFQyB9KTtcbnJlZ2lzdGVyVVRGOFN0cmluZyhiY3MpO1xuXG5leHBvcnQgeyBiY3MgfTtcbiJdfQ==