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

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (165) hide show
  1. package/.eslintignore +6 -0
  2. package/.mocharc.yml +7 -0
  3. package/CHANGELOG.md +1152 -0
  4. package/LICENSE +191 -0
  5. package/README.md +30 -0
  6. package/dist/src/index.d.ts +6 -0
  7. package/dist/src/index.d.ts.map +1 -0
  8. package/dist/src/index.js +22 -0
  9. package/dist/src/lib/compareTransactionBlocks.d.ts +8 -0
  10. package/dist/src/lib/compareTransactionBlocks.d.ts.map +1 -0
  11. package/dist/src/lib/compareTransactionBlocks.js +12 -0
  12. package/dist/src/lib/constants.d.ts +17 -0
  13. package/dist/src/lib/constants.d.ts.map +1 -0
  14. package/dist/src/lib/constants.js +30 -0
  15. package/dist/src/lib/customTransaction.d.ts +57 -0
  16. package/dist/src/lib/customTransaction.d.ts.map +1 -0
  17. package/dist/src/lib/customTransaction.js +159 -0
  18. package/dist/src/lib/customTransactionBuilder.d.ts +46 -0
  19. package/dist/src/lib/customTransactionBuilder.d.ts.map +1 -0
  20. package/dist/src/lib/customTransactionBuilder.js +117 -0
  21. package/dist/src/lib/iface.d.ts +131 -0
  22. package/dist/src/lib/iface.d.ts.map +1 -0
  23. package/dist/src/lib/iface.js +63 -0
  24. package/dist/src/lib/index.d.ts +22 -0
  25. package/dist/src/lib/index.d.ts.map +1 -0
  26. package/dist/src/lib/index.js +77 -0
  27. package/dist/src/lib/keyPair.d.ts +29 -0
  28. package/dist/src/lib/keyPair.d.ts.map +1 -0
  29. package/dist/src/lib/keyPair.js +97 -0
  30. package/dist/src/lib/mystenlab/builder/Inputs.d.ts +66 -0
  31. package/dist/src/lib/mystenlab/builder/Inputs.d.ts.map +1 -0
  32. package/dist/src/lib/mystenlab/builder/Inputs.js +55 -0
  33. package/dist/src/lib/mystenlab/builder/TransactionBlock.d.ts +302 -0
  34. package/dist/src/lib/mystenlab/builder/TransactionBlock.d.ts.map +1 -0
  35. package/dist/src/lib/mystenlab/builder/TransactionBlock.js +255 -0
  36. package/dist/src/lib/mystenlab/builder/TransactionDataBlock.d.ts +566 -0
  37. package/dist/src/lib/mystenlab/builder/TransactionDataBlock.d.ts.map +1 -0
  38. package/dist/src/lib/mystenlab/builder/TransactionDataBlock.js +168 -0
  39. package/dist/src/lib/mystenlab/builder/Transactions.d.ts +937 -0
  40. package/dist/src/lib/mystenlab/builder/Transactions.d.ts.map +1 -0
  41. package/dist/src/lib/mystenlab/builder/Transactions.js +118 -0
  42. package/dist/src/lib/mystenlab/builder/bcs.d.ts +25 -0
  43. package/dist/src/lib/mystenlab/builder/bcs.d.ts.map +1 -0
  44. package/dist/src/lib/mystenlab/builder/bcs.js +141 -0
  45. package/dist/src/lib/mystenlab/builder/index.d.ts +5 -0
  46. package/dist/src/lib/mystenlab/builder/index.d.ts.map +1 -0
  47. package/dist/src/lib/mystenlab/builder/index.js +21 -0
  48. package/dist/src/lib/mystenlab/builder/serializer.d.ts +4 -0
  49. package/dist/src/lib/mystenlab/builder/serializer.d.ts.map +1 -0
  50. package/dist/src/lib/mystenlab/builder/serializer.js +99 -0
  51. package/dist/src/lib/mystenlab/builder/utils.d.ts +10 -0
  52. package/dist/src/lib/mystenlab/builder/utils.d.ts.map +1 -0
  53. package/dist/src/lib/mystenlab/builder/utils.js +10 -0
  54. package/dist/src/lib/mystenlab/cryptography/hash.d.ts +8 -0
  55. package/dist/src/lib/mystenlab/cryptography/hash.d.ts.map +1 -0
  56. package/dist/src/lib/mystenlab/cryptography/hash.js +21 -0
  57. package/dist/src/lib/mystenlab/framework/framework.d.ts +93 -0
  58. package/dist/src/lib/mystenlab/framework/framework.d.ts.map +1 -0
  59. package/dist/src/lib/mystenlab/framework/framework.js +135 -0
  60. package/dist/src/lib/mystenlab/framework/index.d.ts +3 -0
  61. package/dist/src/lib/mystenlab/framework/index.d.ts.map +1 -0
  62. package/dist/src/lib/mystenlab/framework/index.js +19 -0
  63. package/dist/src/lib/mystenlab/framework/sui-system-state.d.ts +14 -0
  64. package/dist/src/lib/mystenlab/framework/sui-system-state.d.ts.map +1 -0
  65. package/dist/src/lib/mystenlab/framework/sui-system-state.js +22 -0
  66. package/dist/src/lib/mystenlab/txn-data-serializers/type-tag-serializer.d.ts +7 -0
  67. package/dist/src/lib/mystenlab/txn-data-serializers/type-tag-serializer.d.ts.map +1 -0
  68. package/dist/src/lib/mystenlab/txn-data-serializers/type-tag-serializer.js +119 -0
  69. package/dist/src/lib/mystenlab/types/coin.d.ts +89 -0
  70. package/dist/src/lib/mystenlab/types/coin.d.ts.map +1 -0
  71. package/dist/src/lib/mystenlab/types/coin.js +32 -0
  72. package/dist/src/lib/mystenlab/types/common.d.ts +45 -0
  73. package/dist/src/lib/mystenlab/types/common.d.ts.map +1 -0
  74. package/dist/src/lib/mystenlab/types/common.js +84 -0
  75. package/dist/src/lib/mystenlab/types/events.d.ts +198 -0
  76. package/dist/src/lib/mystenlab/types/events.d.ts.map +1 -0
  77. package/dist/src/lib/mystenlab/types/events.js +46 -0
  78. package/dist/src/lib/mystenlab/types/index.d.ts +9 -0
  79. package/dist/src/lib/mystenlab/types/index.d.ts.map +1 -0
  80. package/dist/src/lib/mystenlab/types/index.js +25 -0
  81. package/dist/src/lib/mystenlab/types/normalized.d.ts +254 -0
  82. package/dist/src/lib/mystenlab/types/normalized.d.ts.map +1 -0
  83. package/dist/src/lib/mystenlab/types/normalized.js +111 -0
  84. package/dist/src/lib/mystenlab/types/objects.d.ts +806 -0
  85. package/dist/src/lib/mystenlab/types/objects.d.ts.map +1 -0
  86. package/dist/src/lib/mystenlab/types/objects.js +292 -0
  87. package/dist/src/lib/mystenlab/types/option.d.ts +8 -0
  88. package/dist/src/lib/mystenlab/types/option.d.ts.map +1 -0
  89. package/dist/src/lib/mystenlab/types/option.js +13 -0
  90. package/dist/src/lib/mystenlab/types/sui-bcs.d.ts +111 -0
  91. package/dist/src/lib/mystenlab/types/sui-bcs.d.ts.map +1 -0
  92. package/dist/src/lib/mystenlab/types/sui-bcs.js +107 -0
  93. package/dist/src/lib/mystenlab/types/transactions.d.ts +6703 -0
  94. package/dist/src/lib/mystenlab/types/transactions.d.ts.map +1 -0
  95. package/dist/src/lib/mystenlab/types/transactions.js +389 -0
  96. package/dist/src/lib/mystenlab/types/validator.d.ts +641 -0
  97. package/dist/src/lib/mystenlab/types/validator.d.ts.map +1 -0
  98. package/dist/src/lib/mystenlab/types/validator.js +156 -0
  99. package/dist/src/lib/resources/walrusConfig.d.ts +22 -0
  100. package/dist/src/lib/resources/walrusConfig.d.ts.map +1 -0
  101. package/dist/src/lib/resources/walrusConfig.js +37 -0
  102. package/dist/src/lib/rpcClient.d.ts +5 -0
  103. package/dist/src/lib/rpcClient.d.ts.map +1 -0
  104. package/dist/src/lib/rpcClient.js +74 -0
  105. package/dist/src/lib/stakingBuilder.d.ts +62 -0
  106. package/dist/src/lib/stakingBuilder.d.ts.map +1 -0
  107. package/dist/src/lib/stakingBuilder.js +206 -0
  108. package/dist/src/lib/stakingTransaction.d.ts +51 -0
  109. package/dist/src/lib/stakingTransaction.d.ts.map +1 -0
  110. package/dist/src/lib/stakingTransaction.js +219 -0
  111. package/dist/src/lib/tokenTransferBuilder.d.ts +38 -0
  112. package/dist/src/lib/tokenTransferBuilder.d.ts.map +1 -0
  113. package/dist/src/lib/tokenTransferBuilder.js +132 -0
  114. package/dist/src/lib/tokenTransferTransaction.d.ts +57 -0
  115. package/dist/src/lib/tokenTransferTransaction.d.ts.map +1 -0
  116. package/dist/src/lib/tokenTransferTransaction.js +250 -0
  117. package/dist/src/lib/transaction.d.ts +82 -0
  118. package/dist/src/lib/transaction.d.ts.map +1 -0
  119. package/dist/src/lib/transaction.js +283 -0
  120. package/dist/src/lib/transactionBuilder.d.ts +60 -0
  121. package/dist/src/lib/transactionBuilder.d.ts.map +1 -0
  122. package/dist/src/lib/transactionBuilder.js +140 -0
  123. package/dist/src/lib/transactionBuilderFactory.d.ts +48 -0
  124. package/dist/src/lib/transactionBuilderFactory.d.ts.map +1 -0
  125. package/dist/src/lib/transactionBuilderFactory.js +127 -0
  126. package/dist/src/lib/transferBuilder.d.ts +37 -0
  127. package/dist/src/lib/transferBuilder.d.ts.map +1 -0
  128. package/dist/src/lib/transferBuilder.js +132 -0
  129. package/dist/src/lib/transferTransaction.d.ts +54 -0
  130. package/dist/src/lib/transferTransaction.d.ts.map +1 -0
  131. package/dist/src/lib/transferTransaction.js +203 -0
  132. package/dist/src/lib/unstakingBuilder.d.ts +62 -0
  133. package/dist/src/lib/unstakingBuilder.d.ts.map +1 -0
  134. package/dist/src/lib/unstakingBuilder.js +227 -0
  135. package/dist/src/lib/unstakingTransaction.d.ts +75 -0
  136. package/dist/src/lib/unstakingTransaction.d.ts.map +1 -0
  137. package/dist/src/lib/unstakingTransaction.js +345 -0
  138. package/dist/src/lib/utils.d.ts +127 -0
  139. package/dist/src/lib/utils.d.ts.map +1 -0
  140. package/dist/src/lib/utils.js +539 -0
  141. package/dist/src/lib/walrusStakingBuilder.d.ts +66 -0
  142. package/dist/src/lib/walrusStakingBuilder.d.ts.map +1 -0
  143. package/dist/src/lib/walrusStakingBuilder.js +200 -0
  144. package/dist/src/lib/walrusStakingTransaction.d.ts +52 -0
  145. package/dist/src/lib/walrusStakingTransaction.d.ts.map +1 -0
  146. package/dist/src/lib/walrusStakingTransaction.js +269 -0
  147. package/dist/src/lib/walrusWithdrawStakeBuilder.d.ts +36 -0
  148. package/dist/src/lib/walrusWithdrawStakeBuilder.d.ts.map +1 -0
  149. package/dist/src/lib/walrusWithdrawStakeBuilder.js +173 -0
  150. package/dist/src/lib/walrusWithdrawStakeTransaction.d.ts +21 -0
  151. package/dist/src/lib/walrusWithdrawStakeTransaction.d.ts.map +1 -0
  152. package/dist/src/lib/walrusWithdrawStakeTransaction.js +190 -0
  153. package/dist/src/register.d.ts +3 -0
  154. package/dist/src/register.d.ts.map +1 -0
  155. package/dist/src/register.js +15 -0
  156. package/dist/src/sui.d.ts +92 -0
  157. package/dist/src/sui.d.ts.map +1 -0
  158. package/dist/src/sui.js +665 -0
  159. package/dist/src/suiToken.d.ts +22 -0
  160. package/dist/src/suiToken.d.ts.map +1 -0
  161. package/dist/src/suiToken.js +61 -0
  162. package/dist/src/tsui.d.ts +22 -0
  163. package/dist/src/tsui.d.ts.map +1 -0
  164. package/dist/src/tsui.js +30 -0
  165. package/package.json +63 -0
@@ -0,0 +1 @@
1
+ {"version":3,"file":"objects.d.ts","sourceRoot":"","sources":["../../../../../src/lib/mystenlab/types/objects.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,292 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.PaginatedObjectsResponse = exports.CheckpointedObjectId = 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
+ exports.getSuiObjectData = getSuiObjectData;
5
+ exports.getObjectDeletedResponse = getObjectDeletedResponse;
6
+ exports.getObjectNotExistsResponse = getObjectNotExistsResponse;
7
+ exports.getObjectReference = getObjectReference;
8
+ exports.getObjectId = getObjectId;
9
+ exports.getObjectVersion = getObjectVersion;
10
+ exports.isSuiObjectResponse = isSuiObjectResponse;
11
+ exports.getObjectType = getObjectType;
12
+ exports.getObjectPreviousTransactionDigest = getObjectPreviousTransactionDigest;
13
+ exports.getObjectOwner = getObjectOwner;
14
+ exports.getObjectDisplay = getObjectDisplay;
15
+ exports.getSharedObjectInitialVersion = getSharedObjectInitialVersion;
16
+ exports.isSharedObject = isSharedObject;
17
+ exports.isImmutableObject = isImmutableObject;
18
+ exports.getMoveObjectType = getMoveObjectType;
19
+ exports.getObjectFields = getObjectFields;
20
+ exports.getMoveObject = getMoveObject;
21
+ exports.hasPublicTransfer = hasPublicTransfer;
22
+ exports.getMovePackageContent = getMovePackageContent;
23
+ const superstruct_1 = require("superstruct");
24
+ const common_1 = require("./common");
25
+ exports.ObjectType = (0, superstruct_1.union)([(0, superstruct_1.string)(), (0, superstruct_1.literal)('package')]);
26
+ exports.SuiObjectRef = (0, superstruct_1.object)({
27
+ /** Base64 string representing the object digest */
28
+ digest: common_1.TransactionDigest,
29
+ /** Hex code as string representing the object id */
30
+ objectId: (0, superstruct_1.string)(),
31
+ /** Object version */
32
+ version: (0, superstruct_1.union)([(0, superstruct_1.number)(), (0, superstruct_1.string)()]),
33
+ });
34
+ exports.SuiGasData = (0, superstruct_1.object)({
35
+ payment: (0, superstruct_1.array)(exports.SuiObjectRef),
36
+ /** Gas Object's owner */
37
+ owner: (0, superstruct_1.string)(),
38
+ price: (0, superstruct_1.number)(),
39
+ budget: (0, superstruct_1.number)(),
40
+ });
41
+ exports.SuiObjectInfo = (0, superstruct_1.assign)(exports.SuiObjectRef, (0, superstruct_1.object)({
42
+ type: (0, superstruct_1.string)(),
43
+ owner: common_1.ObjectOwner,
44
+ previousTransaction: common_1.TransactionDigest,
45
+ }));
46
+ exports.ObjectContentFields = (0, superstruct_1.record)((0, superstruct_1.string)(), (0, superstruct_1.any)());
47
+ exports.MovePackageContent = (0, superstruct_1.record)((0, superstruct_1.string)(), (0, superstruct_1.string)());
48
+ exports.SuiMoveObject = (0, superstruct_1.object)({
49
+ /** Move type (e.g., "0x2::coin::Coin<0x2::sui::SUI>") */
50
+ type: (0, superstruct_1.string)(),
51
+ /** Fields and values stored inside the Move object */
52
+ fields: exports.ObjectContentFields,
53
+ hasPublicTransfer: (0, superstruct_1.boolean)(),
54
+ });
55
+ exports.SuiMovePackage = (0, superstruct_1.object)({
56
+ /** A mapping from module name to disassembled Move bytecode */
57
+ disassembled: exports.MovePackageContent,
58
+ });
59
+ exports.SuiParsedData = (0, superstruct_1.union)([
60
+ (0, superstruct_1.assign)(exports.SuiMoveObject, (0, superstruct_1.object)({ dataType: (0, superstruct_1.literal)('moveObject') })),
61
+ (0, superstruct_1.assign)(exports.SuiMovePackage, (0, superstruct_1.object)({ dataType: (0, superstruct_1.literal)('package') })),
62
+ ]);
63
+ exports.SuiRawMoveObject = (0, superstruct_1.object)({
64
+ /** Move type (e.g., "0x2::coin::Coin<0x2::sui::SUI>") */
65
+ type: (0, superstruct_1.string)(),
66
+ hasPublicTransfer: (0, superstruct_1.boolean)(),
67
+ version: common_1.SequenceNumber,
68
+ bcsBytes: (0, superstruct_1.array)((0, superstruct_1.number)()),
69
+ });
70
+ exports.SuiRawMovePackage = (0, superstruct_1.object)({
71
+ id: common_1.ObjectId,
72
+ /** A mapping from module name to Move bytecode enocded in base64*/
73
+ moduleMap: (0, superstruct_1.record)((0, superstruct_1.string)(), (0, superstruct_1.string)()),
74
+ });
75
+ // TODO(chris): consolidate SuiRawParsedData and SuiRawObject using generics
76
+ exports.SuiRawData = (0, superstruct_1.union)([
77
+ (0, superstruct_1.assign)(exports.SuiMoveObject, (0, superstruct_1.object)({ dataType: (0, superstruct_1.literal)('moveObject') })),
78
+ (0, superstruct_1.assign)(exports.SuiRawMovePackage, (0, superstruct_1.object)({ dataType: (0, superstruct_1.literal)('package') })),
79
+ ]);
80
+ exports.MIST_PER_SUI = BigInt(1000000000);
81
+ exports.ObjectDigest = (0, superstruct_1.string)();
82
+ exports.SuiObjectData = (0, superstruct_1.object)({
83
+ objectId: common_1.ObjectId,
84
+ version: common_1.SequenceNumber,
85
+ digest: exports.ObjectDigest,
86
+ /**
87
+ * Type of the object, default to be undefined unless SuiObjectDataOptions.showType is set to true
88
+ */
89
+ type: (0, superstruct_1.optional)((0, superstruct_1.string)()),
90
+ /**
91
+ * Move object content or package content, default to be undefined unless SuiObjectDataOptions.showContent is set to true
92
+ */
93
+ content: (0, superstruct_1.optional)(exports.SuiParsedData),
94
+ /**
95
+ * Move object content or package content in BCS bytes, default to be undefined unless SuiObjectDataOptions.showBcs is set to true
96
+ */
97
+ bcs: (0, superstruct_1.optional)(exports.SuiRawData),
98
+ /**
99
+ * The owner of this object. Default to be undefined unless SuiObjectDataOptions.showOwner is set to true
100
+ */
101
+ owner: (0, superstruct_1.optional)(common_1.ObjectOwner),
102
+ /**
103
+ * The digest of the transaction that created or last mutated this object.
104
+ * Default to be undefined unless SuiObjectDataOptions.showPreviousTransaction is set to true
105
+ */
106
+ previousTransaction: (0, superstruct_1.optional)(common_1.TransactionDigest),
107
+ /**
108
+ * The amount of SUI we would rebate if this object gets deleted.
109
+ * This number is re-calculated each time the object is mutated based on
110
+ * the present storage gas price.
111
+ * Default to be undefined unless SuiObjectDataOptions.showStorageRebate is set to true
112
+ */
113
+ storageRebate: (0, superstruct_1.optional)((0, superstruct_1.number)()),
114
+ /**
115
+ * Display metadata for this object, default to be undefined unless SuiObjectDataOptions.showDisplay is set to true
116
+ * This can also be None if the struct type does not have Display defined
117
+ * See more details in https://forums.sui.io/t/nft-object-display-proposal/4872
118
+ */
119
+ display: (0, superstruct_1.optional)((0, superstruct_1.record)((0, superstruct_1.string)(), (0, superstruct_1.string)())),
120
+ });
121
+ /**
122
+ * Config for fetching object data
123
+ */
124
+ exports.SuiObjectDataOptions = (0, superstruct_1.object)({
125
+ /* Whether to fetch the object type, default to be true */
126
+ showType: (0, superstruct_1.optional)((0, superstruct_1.boolean)()),
127
+ /* Whether to fetch the object content, default to be false */
128
+ showContent: (0, superstruct_1.optional)((0, superstruct_1.boolean)()),
129
+ /* Whether to fetch the object content in BCS bytes, default to be false */
130
+ showBcs: (0, superstruct_1.optional)((0, superstruct_1.boolean)()),
131
+ /* Whether to fetch the object owner, default to be false */
132
+ showOwner: (0, superstruct_1.optional)((0, superstruct_1.boolean)()),
133
+ /* Whether to fetch the previous transaction digest, default to be false */
134
+ showPreviousTransaction: (0, superstruct_1.optional)((0, superstruct_1.boolean)()),
135
+ /* Whether to fetch the storage rebate, default to be false */
136
+ showStorageRebate: (0, superstruct_1.optional)((0, superstruct_1.boolean)()),
137
+ /* Whether to fetch the display metadata, default to be false */
138
+ showDisplay: (0, superstruct_1.optional)((0, superstruct_1.boolean)()),
139
+ });
140
+ exports.ObjectStatus = (0, superstruct_1.union)([(0, superstruct_1.literal)('Exists'), (0, superstruct_1.literal)('NotExists'), (0, superstruct_1.literal)('Deleted')]);
141
+ exports.GetOwnedObjectsResponse = (0, superstruct_1.array)(exports.SuiObjectInfo);
142
+ exports.SuiObjectResponseError = (0, superstruct_1.object)({
143
+ tag: (0, superstruct_1.string)(),
144
+ object_id: (0, superstruct_1.optional)(common_1.ObjectId),
145
+ version: (0, superstruct_1.optional)(common_1.SequenceNumber),
146
+ digest: (0, superstruct_1.optional)(exports.ObjectDigest),
147
+ });
148
+ exports.SuiObjectResponse = (0, superstruct_1.object)({
149
+ data: (0, superstruct_1.optional)(exports.SuiObjectData),
150
+ error: (0, superstruct_1.optional)(exports.SuiObjectResponseError),
151
+ });
152
+ /* -------------------------------------------------------------------------- */
153
+ /* Helper functions */
154
+ /* -------------------------------------------------------------------------- */
155
+ /* -------------------------- SuiObjectResponse ------------------------- */
156
+ function getSuiObjectData(resp) {
157
+ return resp.data;
158
+ }
159
+ function getObjectDeletedResponse(resp) {
160
+ if (resp.error && 'object_id' in resp.error && 'version' in resp.error && 'digest' in resp.error) {
161
+ const error = resp.error;
162
+ return {
163
+ objectId: error.object_id,
164
+ version: error.version,
165
+ digest: error.digest,
166
+ };
167
+ }
168
+ return undefined;
169
+ }
170
+ function getObjectNotExistsResponse(resp) {
171
+ if (resp.error && 'object_id' in resp.error && !('version' in resp.error) && !('digest' in resp.error)) {
172
+ return resp.error.object_id;
173
+ }
174
+ return undefined;
175
+ }
176
+ function getObjectReference(resp) {
177
+ if ('reference' in resp) {
178
+ return resp.reference;
179
+ }
180
+ const exists = getSuiObjectData(resp);
181
+ if (exists) {
182
+ return {
183
+ objectId: exists.objectId,
184
+ version: exists.version,
185
+ digest: exists.digest,
186
+ };
187
+ }
188
+ return getObjectDeletedResponse(resp);
189
+ }
190
+ /* ------------------------------ SuiObjectRef ------------------------------ */
191
+ function getObjectId(data) {
192
+ if ('objectId' in data) {
193
+ return data.objectId;
194
+ }
195
+ return getObjectReference(data)?.objectId ?? getObjectNotExistsResponse(data);
196
+ }
197
+ function getObjectVersion(data) {
198
+ if ('version' in data) {
199
+ return data.version;
200
+ }
201
+ return getObjectReference(data)?.version;
202
+ }
203
+ /* -------------------------------- SuiObject ------------------------------- */
204
+ function isSuiObjectResponse(resp) {
205
+ return resp.data !== undefined;
206
+ }
207
+ /**
208
+ * Deriving the object type from the object response
209
+ * @returns 'package' if the object is a package, move object type(e.g., 0x2::coin::Coin<0x2::sui::SUI>)
210
+ * if the object is a move object
211
+ */
212
+ function getObjectType(resp) {
213
+ const data = isSuiObjectResponse(resp) ? resp.data : resp;
214
+ if (!data?.type && 'data' in resp) {
215
+ if (data?.content?.dataType === 'package') {
216
+ return 'package';
217
+ }
218
+ return getMoveObjectType(resp);
219
+ }
220
+ return data?.type;
221
+ }
222
+ function getObjectPreviousTransactionDigest(resp) {
223
+ return getSuiObjectData(resp)?.previousTransaction;
224
+ }
225
+ function getObjectOwner(resp) {
226
+ if ((0, superstruct_1.is)(resp, common_1.ObjectOwner)) {
227
+ return resp;
228
+ }
229
+ return getSuiObjectData(resp)?.owner;
230
+ }
231
+ function getObjectDisplay(resp) {
232
+ return getSuiObjectData(resp)?.display;
233
+ }
234
+ function getSharedObjectInitialVersion(resp) {
235
+ const owner = getObjectOwner(resp);
236
+ if (typeof owner === 'object' && 'Shared' in owner) {
237
+ return owner.Shared.initial_shared_version;
238
+ }
239
+ else {
240
+ return undefined;
241
+ }
242
+ }
243
+ function isSharedObject(resp) {
244
+ const owner = getObjectOwner(resp);
245
+ return typeof owner === 'object' && 'Shared' in owner;
246
+ }
247
+ function isImmutableObject(resp) {
248
+ const owner = getObjectOwner(resp);
249
+ return owner === 'Immutable';
250
+ }
251
+ function getMoveObjectType(resp) {
252
+ return getMoveObject(resp)?.type;
253
+ }
254
+ function getObjectFields(resp) {
255
+ if ('fields' in resp) {
256
+ return resp.fields;
257
+ }
258
+ return getMoveObject(resp)?.fields;
259
+ }
260
+ function isSuiObjectDataWithContent(data) {
261
+ return data.content !== undefined;
262
+ }
263
+ function getMoveObject(data) {
264
+ const suiObject = 'data' in data ? getSuiObjectData(data) : data;
265
+ if (!suiObject || !isSuiObjectDataWithContent(suiObject) || suiObject.content.dataType !== 'moveObject') {
266
+ return undefined;
267
+ }
268
+ return suiObject.content;
269
+ }
270
+ function hasPublicTransfer(data) {
271
+ return getMoveObject(data)?.hasPublicTransfer ?? false;
272
+ }
273
+ function getMovePackageContent(data) {
274
+ if ('disassembled' in data) {
275
+ return data.disassembled;
276
+ }
277
+ const suiObject = getSuiObjectData(data);
278
+ if (suiObject?.content?.dataType !== 'package') {
279
+ return undefined;
280
+ }
281
+ return suiObject.content.disassembled;
282
+ }
283
+ exports.CheckpointedObjectId = (0, superstruct_1.object)({
284
+ objectId: common_1.ObjectId,
285
+ atCheckpoint: (0, superstruct_1.optional)((0, superstruct_1.number)()),
286
+ });
287
+ exports.PaginatedObjectsResponse = (0, superstruct_1.object)({
288
+ data: (0, superstruct_1.array)(exports.SuiObjectResponse),
289
+ nextCursor: (0, superstruct_1.optional)(exports.CheckpointedObjectId),
290
+ hasNextPage: (0, superstruct_1.boolean)(),
291
+ });
292
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoib2JqZWN0cy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3NyYy9saWIvbXlzdGVubGFiL3R5cGVzL29iamVjdHMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7O0FBbU1BLDRDQUVDO0FBRUQsNERBV0M7QUFFRCxnRUFNQztBQUVELGdEQWFDO0FBSUQsa0NBS0M7QUFFRCw0Q0FLQztBQUlELGtEQUVDO0FBT0Qsc0NBVUM7QUFFRCxnRkFFQztBQUVELHdDQUtDO0FBRUQsNENBRUM7QUFFRCxzRUFPQztBQUVELHdDQUdDO0FBRUQsOENBR0M7QUFFRCw4Q0FFQztBQUVELDBDQU9DO0FBVUQsc0NBUUM7QUFFRCw4Q0FFQztBQUVELHNEQVNDO0FBaFdELDZDQWNxQjtBQUNyQixxQ0FBb0Y7QUFHdkUsUUFBQSxVQUFVLEdBQUcsSUFBQSxtQkFBSyxFQUFDLENBQUMsSUFBQSxvQkFBTSxHQUFFLEVBQUUsSUFBQSxxQkFBTyxFQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUMsQ0FBQztBQUduRCxRQUFBLFlBQVksR0FBRyxJQUFBLG9CQUFNLEVBQUM7SUFDakMsbURBQW1EO0lBQ25ELE1BQU0sRUFBRSwwQkFBaUI7SUFDekIsb0RBQW9EO0lBQ3BELFFBQVEsRUFBRSxJQUFBLG9CQUFNLEdBQUU7SUFDbEIscUJBQXFCO0lBQ3JCLE9BQU8sRUFBRSxJQUFBLG1CQUFLLEVBQUMsQ0FBQyxJQUFBLG9CQUFNLEdBQUUsRUFBRSxJQUFBLG9CQUFNLEdBQUUsQ0FBQyxDQUFDO0NBQ3JDLENBQUMsQ0FBQztBQUdVLFFBQUEsVUFBVSxHQUFHLElBQUEsb0JBQU0sRUFBQztJQUMvQixPQUFPLEVBQUUsSUFBQSxtQkFBSyxFQUFDLG9CQUFZLENBQUM7SUFDNUIseUJBQXlCO0lBQ3pCLEtBQUssRUFBRSxJQUFBLG9CQUFNLEdBQUU7SUFDZixLQUFLLEVBQUUsSUFBQSxvQkFBTSxHQUFFO0lBQ2YsTUFBTSxFQUFFLElBQUEsb0JBQU0sR0FBRTtDQUNq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LFFBQUEsd0JBQXdCLEdBQUcsSUFBQSxvQkFBTSxFQUFDO0lBQzdDLElBQUksRUFBRSxJQUFBLG1CQUFLLEVBQUMseUJBQWlCLENBQUM7SUFDOUIsVUFBVSxFQUFFLElBQUEsc0JBQVEsRUFBQyw0QkFBb0IsQ0FBQztJQUMxQyxXQUFXLEVBQUUsSUFBQSxxQkFBTyxHQUFFO0NBQ3ZCLENBQUMsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XG4gIGFueSxcbiAgYXJyYXksXG4gIGFzc2lnbixcbiAgYm9vbGVhbixcbiAgSW5mZXIsXG4gIGxpdGVyYWwsXG4gIG51bWJlcixcbiAgb2JqZWN0LFxuICBvcHRpb25hbCxcbiAgcmVjb3JkLFxuICBzdHJpbmcsXG4gIHVuaW9uLFxuICBpcyxcbn0gZnJvbSAnc3VwZXJzdHJ1Y3QnO1xuaW1wb3J0IHsgT2JqZWN0SWQsIE9iamVjdE93bmVyLCBTZXF1ZW5jZU51bWJlciwgVHJhbnNhY3Rpb25EaWdlc3QgfSBmcm9tICcuL2NvbW1vbic7XG5pbXBvcnQgeyBPd25lZE9iamVjdFJlZiB9IGZyb20gJy4vdHJhbnNhY3Rpb25zJztcblxuZXhwb3J0IGNvbnN0IE9iamVjdFR5cGUgPSB1bmlvbihbc3RyaW5nKCksIGxpdGVyYWwoJ3BhY2thZ2UnKV0pO1xuZXhwb3J0IHR5cGUgT2JqZWN0VHlwZSA9IEluZmVyPHR5cGVvZiBPYmplY3RUeXBlPjtcblxuZXhwb3J0IGNvbnN0IFN1aU9iamVjdFJlZiA9IG9iamVjdCh7XG4gIC8qKiBCYXNlNjQgc3RyaW5nIHJlcHJlc2VudGluZyB0aGUgb2JqZWN0IGRpZ2VzdCAqL1xuICBkaWdlc3Q6IFRyYW5zYWN0aW9uRGlnZXN0LFxuICAvKiogSGV4IGNvZGUgYXMgc3RyaW5nIHJlcHJlc2VudGluZyB0aGUgb2JqZWN0IGlkICovXG4gIG9iamVjdElkOiBzdHJpbmcoKSxcbiAgLyoqIE9iamVjdCB2ZXJzaW9uICovXG4gIHZlcnNpb246IHVuaW9uKFtudW1iZXIoKSwgc3RyaW5nKCldKSxcbn0pO1xuZXhwb3J0IHR5cGUgU3VpT2JqZWN0UmVmID0gSW5mZXI8dHlwZW9mIFN1aU9iamVjdFJlZj47XG5cbmV4cG9ydCBjb25zdCBTdWlHYXNEYXRhID0gb2JqZWN0KHtcbiAgcGF5bWVudDogYXJyYXkoU3VpT2JqZWN0UmVmKSxcbiAgLyoqIEdhcyBPYmplY3QncyBvd25lciAqL1xuICBvd25lcjogc3RyaW5nKCksXG4gIHByaWNlOiBudW1iZXIoKSxcbiAgYnVkZ2V0OiBudW1iZXIoKSxcbn0pO1xuZXhwb3J0IHR5cGUgU3VpR2FzRGF0YSA9IEluZmVyPHR5cGVvZiBTdWlHYXNEYXRhPjtcblxuZXhwb3J0IGNvbnN0IFN1aU9iamVjdEluZm8gPSBhc3NpZ24oXG4gIFN1aU9iamVjdFJlZixcbiAgb2JqZWN0KHtcbiAgICB0eXBlOiBzdHJpbmcoKSxcbiAgICBvd25lcjogT2JqZWN0T3duZXIsXG4gICAgcHJldmlvdXNUcmFuc2FjdGlvbjogVHJhbnNhY3Rpb25EaWdlc3QsXG4gIH0pXG4pO1xuZXhwb3J0IHR5cGUgU3VpT2JqZWN0SW5mbyA9IEluZmVyPHR5cGVvZiBTdWlPYmplY3RJbmZvPjtcblxuZXhwb3J0IGNvbnN0IE9iamVjdENvbnRlbnRGaWVsZHMgPSByZWNvcmQoc3RyaW5nKCksIGFueSgpKTtcbmV4cG9ydCB0eXBlIE9iamVjdENvbnRlbnRGaWVsZHMgPSBJbmZlcjx0eXBlb2YgT2JqZWN0Q29udGVudEZpZWxkcz47XG5cbmV4cG9ydCBjb25zdCBNb3ZlUGFja2FnZUNvbnRlbnQgPSByZWNvcmQoc3RyaW5nKCksIHN0cmluZygpKTtcbmV4cG9ydCB0eXBlIE1vdmVQYWNrYWdlQ29udGVudCA9IEluZmVyPHR5cGVvZiBNb3ZlUGFja2FnZUNvbnRlbnQ+O1xuXG5leHBvcnQgY29uc3QgU3VpTW92ZU9iamVjdCA9IG9iamVjdCh7XG4gIC8qKiBNb3ZlIHR5cGUgKGUuZy4sIFwiMHgyOjpjb2luOjpDb2luPDB4Mjo6c3VpOjpTVUk+XCIpICovXG4gIHR5cGU6IHN0cmluZygpLFxuICAvKiogRmllbGRzIGFuZCB2YWx1ZXMgc3RvcmVkIGluc2lkZSB0aGUgTW92ZSBvYmplY3QgKi9cbiAgZmllbGRzOiBPYmplY3RDb250ZW50RmllbGRzLFxuICBoYXNQdWJsaWNUcmFuc2ZlcjogYm9vbGVhbigpLFxufSk7XG5leHBvcnQgdHlwZSBTdWlNb3ZlT2JqZWN0ID0gSW5mZXI8dHlwZW9mIFN1aU1vdmVPYmplY3Q+O1xuXG5leHBvcnQgY29uc3QgU3VpTW92ZVBhY2thZ2UgPSBvYmplY3Qoe1xuICAvKiogQSBtYXBwaW5nIGZyb20gbW9kdWxlIG5hbWUgdG8gZGlzYXNzZW1ibGVkIE1vdmUgYnl0ZWNvZGUgKi9cbiAgZGlzYXNzZW1ibGVkOiBNb3ZlUGFja2FnZUNvbnRlbnQsXG59KTtcbmV4cG9ydCB0eXBlIFN1aU1vdmVQYWNrYWdlID0gSW5mZXI8dHlwZW9mIFN1aU1vdmVQYWNrYWdlPjtcblxuZXhwb3J0IGNvbnN0IFN1aVBhcnNlZERhdGEgPSB1bmlvbihbXG4gIGFzc2lnbihTdWlNb3ZlT2JqZWN0LCBvYmplY3QoeyBkYXRhVHlwZTogbGl0ZXJhbCgnbW92ZU9iamVjdCcpIH0pKSxcbiAgYXNzaWduKFN1aU1vdmVQYWNrYWdlLCBvYmplY3QoeyBkYXRhVHlwZTogbGl0ZXJhbCgncGFja2FnZScpIH0pKSxcbl0pO1xuZXhwb3J0IHR5cGUgU3VpUGFyc2VkRGF0YSA9IEluZmVyPHR5cGVvZiBTdWlQYXJzZWREYXRhPjtcblxuZXhwb3J0IGNvbnN0IFN1aVJhd01vdmVPYmplY3QgPSBvYmplY3Qoe1xuICAvKiogTW92ZSB0eXBlIChlLmcuLCBcIjB4Mjo6Y29pbjo6Q29pbjwweDI6OnN1aTo6U1VJPlwiKSAqL1xuICB0eXBlOiBzdHJpbmcoKSxcbiAgaGFzUHVibGljVHJhbnNmZXI6IGJvb2xlYW4oKSxcbiAgdmVyc2lvbjogU2VxdWVuY2VOdW1iZXIsXG4gIGJjc0J5dGVzOiBhcnJheShudW1iZXIoKSksXG59KTtcbmV4cG9ydCB0eXBlIFN1aVJhd01vdmVPYmplY3QgPSBJbmZlcjx0eXBlb2YgU3VpUmF3TW92ZU9iamVjdD47XG5cbmV4cG9ydCBjb25zdCBTdWlSYXdNb3ZlUGFja2FnZSA9IG9iamVjdCh7XG4gIGlkOiBPYmplY3RJZCxcbiAgLyoqIEEgbWFwcGluZyBmcm9tIG1vZHVsZSBuYW1lIHRvIE1vdmUgYnl0ZWNvZGUgZW5vY2RlZCBpbiBiYXNlNjQqL1xuICBtb2R1bGVNYXA6IHJlY29yZChzdHJpbmcoKSwgc3RyaW5nKCkpLFxufSk7XG5leHBvcnQgdHlwZSBTdWlSYXdNb3ZlUGFja2FnZSA9IEluZmVyPHR5cGVvZiBTdWlSYXdNb3ZlUGFja2FnZT47XG5cbi8vIFRPRE8oY2hyaXMpOiBjb25zb2xpZGF0ZSBTdWlSYXdQYXJzZWREYXRhIGFuZCBTdWlSYXdPYmplY3QgdXNpbmcgZ2VuZXJpY3NcbmV4cG9ydCBjb25zdCBTdWlSYXdEYXRhID0gdW5pb24oW1xuICBhc3NpZ24oU3VpTW92ZU9iamVjdCwgb2JqZWN0KHsgZGF0YVR5cGU6IGxpdGVyYWwoJ21vdmVPYmplY3QnKSB9KSksXG4gIGFzc2lnbihTdWlSYXdNb3ZlUGFja2FnZSwgb2JqZWN0KHsgZGF0YVR5cGU6IGxpdGVyYWwoJ3BhY2thZ2UnKSB9KSksXG5dKTtcbmV4cG9ydCB0eXBlIFN1aVJhd0RhdGEgPSBJbmZlcjx0eXBlb2YgU3VpUmF3RGF0YT47XG5cbmV4cG9ydCBjb25zdCBNSVNUX1BFUl9TVUkgPSBCaWdJbnQoMTAwMDAwMDAwMCk7XG5cbmV4cG9ydCBjb25zdCBPYmplY3REaWdlc3QgPSBzdHJpbmcoKTtcbmV4cG9ydCB0eXBlIE9iamVjdERpZ2VzdCA9IEluZmVyPHR5cGVvZiBPYmplY3REaWdlc3Q+O1xuXG5leHBvcnQgY29uc3QgU3VpT2JqZWN0RGF0YSA9IG9iamVjdCh7XG4gIG9iamVjdElkOiBPYmplY3RJZCxcbiAgdmVyc2lvbjogU2VxdWVuY2VOdW1iZXIsXG4gIGRpZ2VzdDogT2JqZWN0RGlnZXN0LFxuICAvKipcbiAgICogVHlwZSBvZiB0aGUgb2JqZWN0LCBkZWZhdWx0IHRvIGJlIHVuZGVmaW5lZCB1bmxlc3MgU3VpT2JqZWN0RGF0YU9wdGlvbnMuc2hvd1R5cGUgaXMgc2V0IHRvIHRydWVcbiAgICovXG4gIHR5cGU6IG9wdGlvbmFsKHN0cmluZygpKSxcbiAgLyoqXG4gICAqIE1vdmUgb2JqZWN0IGNvbnRlbnQgb3IgcGFja2FnZSBjb250ZW50LCBkZWZhdWx0IHRvIGJlIHVuZGVmaW5lZCB1bmxlc3MgU3VpT2JqZWN0RGF0YU9wdGlvbnMuc2hvd0NvbnRlbnQgaXMgc2V0IHRvIHRydWVcbiAgICovXG4gIGNvbnRlbnQ6IG9wdGlvbmFsKFN1aVBhcnNlZERhdGEpLFxuICAvKipcbiAgICogTW92ZSBvYmplY3QgY29udGVudCBvciBwYWNrYWdlIGNvbnRlbnQgaW4gQkNTIGJ5dGVzLCBkZWZhdWx0IHRvIGJlIHVuZGVmaW5lZCB1bmxlc3MgU3VpT2JqZWN0RGF0YU9wdGlvbnMuc2hvd0JjcyBpcyBzZXQgdG8gdHJ1ZVxuICAgKi9cbiAgYmNzOiBvcHRpb25hbChTdWlSYXdEYXRhKSxcbiAgLyoqXG4gICAqIFRoZSBvd25lciBvZiB0aGlzIG9iamVjdC4gRGVmYXVsdCB0byBiZSB1bmRlZmluZWQgdW5sZXNzIFN1aU9iamVjdERhdGFPcHRpb25zLnNob3dPd25lciBpcyBzZXQgdG8gdHJ1ZVxuICAgKi9cbiAgb3duZXI6IG9wdGlvbmFsKE9iamVjdE93bmVyKSxcbiAgLyoqXG4gICAqIFRoZSBkaWdlc3Qgb2YgdGhlIHRyYW5zYWN0aW9uIHRoYXQgY3JlYXRlZCBvciBsYXN0IG11dGF0ZWQgdGhpcyBvYmplY3QuXG4gICAqIERlZmF1bHQgdG8gYmUgdW5kZWZpbmVkIHVubGVzcyBTdWlPYmplY3REYXRhT3B0aW9ucy5zaG93UHJldmlvdXNUcmFuc2FjdGlvbiBpcyBzZXQgdG8gdHJ1ZVxuICAgKi9cbiAgcHJldmlvdXNUcmFuc2FjdGlvbjogb3B0aW9uYWwoVHJhbnNhY3Rpb25EaWdlc3QpLFxuICAvKipcbiAgICogVGhlIGFtb3VudCBvZiBTVUkgd2Ugd291bGQgcmViYXRlIGlmIHRoaXMgb2JqZWN0IGdldHMgZGVsZXRlZC5cbiAgICogVGhpcyBudW1iZXIgaXMgcmUtY2FsY3VsYXRlZCBlYWNoIHRpbWUgdGhlIG9iamVjdCBpcyBtdXRhdGVkIGJhc2VkIG9uXG4gICAqIHRoZSBwcmVzZW50IHN0b3JhZ2UgZ2FzIHByaWNlLlxuICAgKiBEZWZhdWx0IHRvIGJlIHVuZGVmaW5lZCB1bmxlc3MgU3VpT2JqZWN0RGF0YU9wdGlvbnMuc2hvd1N0b3JhZ2VSZWJhdGUgaXMgc2V0IHRvIHRydWVcbiAgICovXG4gIHN0b3JhZ2VSZWJhdGU6IG9wdGlvbmFsKG51bWJlcigpKSxcbiAgLyoqXG4gICAqIERpc3BsYXkgbWV0YWRhdGEgZm9yIHRoaXMgb2JqZWN0LCBkZWZhdWx0IHRvIGJlIHVuZGVmaW5lZCB1bmxlc3MgU3VpT2JqZWN0RGF0YU9wdGlvbnMuc2hvd0Rpc3BsYXkgaXMgc2V0IHRvIHRydWVcbiAgICogVGhpcyBjYW4gYWxzbyBiZSBOb25lIGlmIHRoZSBzdHJ1Y3QgdHlwZSBkb2VzIG5vdCBoYXZlIERpc3BsYXkgZGVmaW5lZFxuICAgKiBTZWUgbW9yZSBkZXRhaWxzIGluIGh0dHBzOi8vZm9ydW1zLnN1aS5pby90L25mdC1vYmplY3QtZGlzcGxheS1wcm9wb3NhbC80ODcyXG4gICAqL1xuICBkaXNwbGF5OiBvcHRpb25hbChyZWNvcmQoc3RyaW5nKCksIHN0cmluZygpKSksXG59KTtcbmV4cG9ydCB0eXBlIFN1aU9iamVjdERhdGEgPSBJbmZlcjx0eXBlb2YgU3VpT2JqZWN0RGF0YT47XG5cbi8qKlxuICogQ29uZmlnIGZvciBmZXRjaGluZyBvYmplY3QgZGF0YVxuICovXG5leHBvcnQgY29uc3QgU3VpT2JqZWN0RGF0YU9wdGlvbnMgPSBvYmplY3Qoe1xuICAvKiBXaGV0aGVyIHRvIGZldGNoIHRoZSBvYmplY3QgdHlwZSwgZGVmYXVsdCB0byBiZSB0cnVlICovXG4gIHNob3dUeXBlOiBvcHRpb25hbChib29sZWFuKCkpLFxuICAvKiBXaGV0aGVyIHRvIGZldGNoIHRoZSBvYmplY3QgY29udGVudCwgZGVmYXVsdCB0byBiZSBmYWxzZSAqL1xuICBzaG93Q29udGVudDogb3B0aW9uYWwoYm9vbGVhbigpKSxcbiAgLyogV2hldGhlciB0byBmZXRjaCB0aGUgb2JqZWN0IGNvbnRlbnQgaW4gQkNTIGJ5dGVzLCBkZWZhdWx0IHRvIGJlIGZhbHNlICovXG4gIHNob3dCY3M6IG9wdGlvbmFsKGJvb2xlYW4oKSksXG4gIC8qIFdoZXRoZXIgdG8gZmV0Y2ggdGhlIG9iamVjdCBvd25lciwgZGVmYXVsdCB0byBiZSBmYWxzZSAqL1xuICBzaG93T3duZXI6IG9wdGlvbmFsKGJvb2xlYW4oKSksXG4gIC8qIFdoZXRoZXIgdG8gZmV0Y2ggdGhlIHByZXZpb3VzIHRyYW5zYWN0aW9uIGRpZ2VzdCwgZGVmYXVsdCB0byBiZSBmYWxzZSAqL1xuICBzaG93UHJldmlvdXNUcmFuc2FjdGlvbjogb3B0aW9uYWwoYm9vbGVhbigpKSxcbiAgLyogV2hldGhlciB0byBmZXRjaCB0aGUgc3RvcmFnZSByZWJhdGUsIGRlZmF1bHQgdG8gYmUgZmFsc2UgKi9cbiAgc2hvd1N0b3JhZ2VSZWJhdGU6IG9wdGlvbmFsKGJvb2xlYW4oKSksXG4gIC8qIFdoZXRoZXIgdG8gZmV0Y2ggdGhlIGRpc3BsYXkgbWV0YWRhdGEsIGRlZmF1bHQgdG8gYmUgZmFsc2UgKi9cbiAgc2hvd0Rpc3BsYXk6IG9wdGlvbmFsKGJvb2xlYW4oKSksXG59KTtcbmV4cG9ydCB0eXBlIFN1aU9iamVjdERhdGFPcHRpb25zID0gSW5mZXI8dHlwZW9mIFN1aU9iamVjdERhdGFPcHRpb25zPjtcblxuZXhwb3J0IGNvbnN0IE9iamVjdFN0YXR1cyA9IHVuaW9uKFtsaXRlcmFsKCdFeGlzdHMnKSwgbGl0ZXJhbCgnTm90RXhpc3RzJyksIGxpdGVyYWwoJ0RlbGV0ZWQnKV0pO1xuZXhwb3J0IHR5cGUgT2JqZWN0U3RhdHVzID0gSW5mZXI8dHlwZW9mIE9iamVjdFN0YXR1cz47XG5cbmV4cG9ydCBjb25zdCBHZXRPd25lZE9iamVjdHNSZXNwb25zZSA9IGFycmF5KFN1aU9iamVjdEluZm8pO1xuZXhwb3J0IHR5cGUgR2V0T3duZWRPYmplY3RzUmVzcG9uc2UgPSBJbmZlcjx0eXBlb2YgR2V0T3duZWRPYmplY3RzUmVzcG9uc2U+O1xuXG5leHBvcnQgY29uc3QgU3VpT2JqZWN0UmVzcG9uc2VFcnJvciA9IG9iamVjdCh7XG4gIHRhZzogc3RyaW5nKCksXG4gIG9iamVjdF9pZDogb3B0aW9uYWwoT2JqZWN0SWQpLFxuICB2ZXJzaW9uOiBvcHRpb25hbChTZXF1ZW5jZU51bWJlciksXG4gIGRpZ2VzdDogb3B0aW9uYWwoT2JqZWN0RGlnZXN0KSxcbn0pO1xuZXhwb3J0IHR5cGUgU3VpT2JqZWN0UmVzcG9uc2VFcnJvciA9IEluZmVyPHR5cGVvZiBTdWlPYmplY3RSZXNwb25zZUVycm9yPjtcblxuZXhwb3J0IGNvbnN0IFN1aU9iamVjdFJlc3BvbnNlID0gb2JqZWN0KHtcbiAgZGF0YTogb3B0aW9uYWwoU3VpT2JqZWN0RGF0YSksXG4gIGVycm9yOiBvcHRpb25hbChTdWlPYmplY3RSZXNwb25zZUVycm9yKSxcbn0pO1xuZXhwb3J0IHR5cGUgU3VpT2JqZWN0UmVzcG9uc2UgPSBJbmZlcjx0eXBlb2YgU3VpT2JqZWN0UmVzcG9uc2U+O1xuXG5leHBvcnQgdHlwZSBPcmRlciA9ICdhc2NlbmRpbmcnIHwgJ2Rlc2NlbmRpbmcnO1xuXG4vKiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSAqL1xuLyogICAgICAgICAgICAgICAgICAgICAgICAgICAgICBIZWxwZXIgZnVuY3Rpb25zICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKi9cbi8qIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tICovXG5cbi8qIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tIFN1aU9iamVjdFJlc3BvbnNlIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0gKi9cblxuZXhwb3J0IGZ1bmN0aW9uIGdldFN1aU9iamVjdERhdGEocmVzcDogU3VpT2JqZWN0UmVzcG9uc2UpOiBTdWlPYmplY3REYXRhIHwgdW5kZWZpbmVkIHtcbiAgcmV0dXJuIHJlc3AuZGF0YTtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGdldE9iamVjdERlbGV0ZWRSZXNwb25zZShyZXNwOiBTdWlPYmplY3RSZXNwb25zZSk6IFN1aU9iamVjdFJlZiB8IHVuZGVmaW5lZCB7XG4gIGlmIChyZXNwLmVycm9yICYmICdvYmplY3RfaWQnIGluIHJlc3AuZXJyb3IgJiYgJ3ZlcnNpb24nIGluIHJlc3AuZXJyb3IgJiYgJ2RpZ2VzdCcgaW4gcmVzcC5lcnJvcikge1xuICAgIGNvbnN0IGVycm9yID0gcmVzcC5lcnJvciBhcyBTdWlPYmplY3RSZXNwb25zZUVycm9yO1xuICAgIHJldHVybiB7XG4gICAgICBvYmplY3RJZDogZXJyb3Iub2JqZWN0X2lkLFxuICAgICAgdmVyc2lvbjogZXJyb3IudmVyc2lvbixcbiAgICAgIGRpZ2VzdDogZXJyb3IuZGlnZXN0LFxuICAgIH0gYXMgU3VpT2JqZWN0UmVmO1xuICB9XG5cbiAgcmV0dXJuIHVuZGVmaW5lZDtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGdldE9iamVjdE5vdEV4aXN0c1Jlc3BvbnNlKHJlc3A6IFN1aU9iamVjdFJlc3BvbnNlKTogT2JqZWN0SWQgfCB1bmRlZmluZWQge1xuICBpZiAocmVzcC5lcnJvciAmJiAnb2JqZWN0X2lkJyBpbiByZXNwLmVycm9yICYmICEoJ3ZlcnNpb24nIGluIHJlc3AuZXJyb3IpICYmICEoJ2RpZ2VzdCcgaW4gcmVzcC5lcnJvcikpIHtcbiAgICByZXR1cm4gKHJlc3AuZXJyb3IgYXMgU3VpT2JqZWN0UmVzcG9uc2VFcnJvcikub2JqZWN0X2lkIGFzIE9iamVjdElkO1xuICB9XG5cbiAgcmV0dXJuIHVuZGVmaW5lZDtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGdldE9iamVjdFJlZmVyZW5jZShyZXNwOiBTdWlPYmplY3RSZXNwb25zZSB8IE93bmVkT2JqZWN0UmVmKTogU3VpT2JqZWN0UmVmIHwgdW5kZWZpbmVkIHtcbiAgaWYgKCdyZWZlcmVuY2UnIGluIHJlc3ApIHtcbiAgICByZXR1cm4gcmVzcC5yZWZlcmVuY2U7XG4gIH1cbiAgY29uc3QgZXhpc3RzID0gZ2V0U3VpT2JqZWN0RGF0YShyZXNwKTtcbiAgaWYgKGV4aXN0cykge1xuICAgIHJldHVybiB7XG4gICAgICBvYmplY3RJZDogZXhpc3RzLm9iamVjdElkLFxuICAgICAgdmVyc2lvbjogZXhpc3RzLnZlcnNpb24sXG4gICAgICBkaWdlc3Q6IGV4aXN0cy5kaWdlc3QsXG4gICAgfTtcbiAgfVxuICByZXR1cm4gZ2V0T2JqZWN0RGVsZXRlZFJlc3BvbnNlKHJlc3ApO1xufVxuXG4vKiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0gU3VpT2JqZWN0UmVmIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSAqL1xuXG5leHBvcnQgZnVuY3Rpb24gZ2V0T2JqZWN0SWQoZGF0YTogU3VpT2JqZWN0UmVzcG9uc2UgfCBTdWlPYmplY3RSZWYgfCBPd25lZE9iamVjdFJlZik6IE9iamVjdElkIHtcbiAgaWYgKCdvYmplY3RJZCcgaW4gZGF0YSkge1xuICAgIHJldHVybiBkYXRhLm9iamVjdElkO1xuICB9XG4gIHJldHVybiBnZXRPYmplY3RSZWZlcmVuY2UoZGF0YSk/Lm9iamVjdElkID8/IGdldE9iamVjdE5vdEV4aXN0c1Jlc3BvbnNlKGRhdGEgYXMgU3VpT2JqZWN0UmVzcG9uc2UpITtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGdldE9iamVjdFZlcnNpb24oZGF0YTogU3VpT2JqZWN0UmVzcG9uc2UgfCBTdWlPYmplY3RSZWYgfCBTdWlPYmplY3REYXRhKTogc3RyaW5nIHwgbnVtYmVyIHwgdW5kZWZpbmVkIHtcbiAgaWYgKCd2ZXJzaW9uJyBpbiBkYXRhKSB7XG4gICAgcmV0dXJuIGRhdGEudmVyc2lvbjtcbiAgfVxuICByZXR1cm4gZ2V0T2JqZWN0UmVmZXJlbmNlKGRhdGEpPy52ZXJzaW9uO1xufVxuXG4vKiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSBTdWlPYmplY3QgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSAqL1xuXG5leHBvcnQgZnVuY3Rpb24gaXNTdWlPYmplY3RSZXNwb25zZShyZXNwOiBTdWlPYmplY3RSZXNwb25zZSB8IFN1aU9iamVjdERhdGEpOiByZXNwIGlzIFN1aU9iamVjdFJlc3BvbnNlIHtcbiAgcmV0dXJuIChyZXNwIGFzIFN1aU9iamVjdFJlc3BvbnNlKS5kYXRhICE9PSB1bmRlZmluZWQ7XG59XG5cbi8qKlxuICogRGVyaXZpbmcgdGhlIG9iamVjdCB0eXBlIGZyb20gdGhlIG9iamVjdCByZXNwb25zZVxuICogQHJldHVybnMgJ3BhY2thZ2UnIGlmIHRoZSBvYmplY3QgaXMgYSBwYWNrYWdlLCBtb3ZlIG9iamVjdCB0eXBlKGUuZy4sIDB4Mjo6Y29pbjo6Q29pbjwweDI6OnN1aTo6U1VJPilcbiAqIGlmIHRoZSBvYmplY3QgaXMgYSBtb3ZlIG9iamVjdFxuICovXG5leHBvcnQgZnVuY3Rpb24gZ2V0T2JqZWN0VHlwZShyZXNwOiBTdWlPYmplY3RSZXNwb25zZSB8IFN1aU9iamVjdERhdGEpOiBPYmplY3RUeXBlIHwgdW5kZWZpbmVkIHtcbiAgY29uc3QgZGF0YSA9IGlzU3VpT2JqZWN0UmVzcG9uc2UocmVzcCkgPyByZXNwLmRhdGEgOiByZXNwO1xuXG4gIGlmICghZGF0YT8udHlwZSAmJiAnZGF0YScgaW4gcmVzcCkge1xuICAgIGlmIChkYXRhPy5jb250ZW50Py5kYXRhVHlwZSA9PT0gJ3BhY2thZ2UnKSB7XG4gICAgICByZXR1cm4gJ3BhY2thZ2UnO1xuICAgIH1cbiAgICByZXR1cm4gZ2V0TW92ZU9iamVjdFR5cGUocmVzcCk7XG4gIH1cbiAgcmV0dXJuIGRhdGE/LnR5cGU7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBnZXRPYmplY3RQcmV2aW91c1RyYW5zYWN0aW9uRGlnZXN0KHJlc3A6IFN1aU9iamVjdFJlc3BvbnNlKTogVHJhbnNhY3Rpb25EaWdlc3QgfCB1bmRlZmluZWQge1xuICByZXR1cm4gZ2V0U3VpT2JqZWN0RGF0YShyZXNwKT8ucHJldmlvdXNUcmFuc2FjdGlvbjtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGdldE9iamVjdE93bmVyKHJlc3A6IFN1aU9iamVjdFJlc3BvbnNlIHwgT2JqZWN0T3duZXIpOiBPYmplY3RPd25lciB8IHVuZGVmaW5lZCB7XG4gIGlmIChpcyhyZXNwLCBPYmplY3RPd25lcikpIHtcbiAgICByZXR1cm4gcmVzcDtcbiAgfVxuICByZXR1cm4gZ2V0U3VpT2JqZWN0RGF0YShyZXNwKT8ub3duZXI7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBnZXRPYmplY3REaXNwbGF5KHJlc3A6IFN1aU9iamVjdFJlc3BvbnNlKTogUmVjb3JkPHN0cmluZywgc3RyaW5nPiB8IHVuZGVmaW5lZCB7XG4gIHJldHVybiBnZXRTdWlPYmplY3REYXRhKHJlc3ApPy5kaXNwbGF5O1xufVxuXG5leHBvcnQgZnVuY3Rpb24gZ2V0U2hhcmVkT2JqZWN0SW5pdGlhbFZlcnNpb24ocmVzcDogU3VpT2JqZWN0UmVzcG9uc2UgfCBPYmplY3RPd25lcik6IG51bWJlciB8IHVuZGVmaW5lZCB7XG4gIGNvbnN0IG93bmVyID0gZ2V0T2JqZWN0T3duZXIocmVzcCk7XG4gIGlmICh0eXBlb2Ygb3duZXIgPT09ICdvYmplY3QnICYmICdTaGFyZWQnIGluIG93bmVyKSB7XG4gICAgcmV0dXJuIG93bmVyLlNoYXJlZC5pbml0aWFsX3NoYXJlZF92ZXJzaW9uO1xuICB9IGVsc2Uge1xuICAgIHJldHVybiB1bmRlZmluZWQ7XG4gIH1cbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGlzU2hhcmVkT2JqZWN0KHJlc3A6IFN1aU9iamVjdFJlc3BvbnNlIHwgT2JqZWN0T3duZXIpOiBib29sZWFuIHtcbiAgY29uc3Qgb3duZXIgPSBnZXRPYmplY3RPd25lcihyZXNwKTtcbiAgcmV0dXJuIHR5cGVvZiBvd25lciA9PT0gJ29iamVjdCcgJiYgJ1NoYXJlZCcgaW4gb3duZXI7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBpc0ltbXV0YWJsZU9iamVjdChyZXNwOiBTdWlPYmplY3RSZXNwb25zZSB8IE9iamVjdE93bmVyKTogYm9vbGVhbiB7XG4gIGNvbnN0IG93bmVyID0gZ2V0T2JqZWN0T3duZXIocmVzcCk7XG4gIHJldHVybiBvd25lciA9PT0gJ0ltbXV0YWJsZSc7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBnZXRNb3ZlT2JqZWN0VHlwZShyZXNwOiBTdWlPYmplY3RSZXNwb25zZSk6IHN0cmluZyB8IHVuZGVmaW5lZCB7XG4gIHJldHVybiBnZXRNb3ZlT2JqZWN0KHJlc3ApPy50eXBlO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gZ2V0T2JqZWN0RmllbGRzKFxuICByZXNwOiBTdWlPYmplY3RSZXNwb25zZSB8IFN1aU1vdmVPYmplY3QgfCBTdWlPYmplY3REYXRhXG4pOiBPYmplY3RDb250ZW50RmllbGRzIHwgdW5kZWZpbmVkIHtcbiAgaWYgKCdmaWVsZHMnIGluIHJlc3ApIHtcbiAgICByZXR1cm4gcmVzcC5maWVsZHM7XG4gIH1cbiAgcmV0dXJuIGdldE1vdmVPYmplY3QocmVzcCk/LmZpZWxkcztcbn1cblxuZXhwb3J0IGludGVyZmFjZSBTdWlPYmplY3REYXRhV2l0aENvbnRlbnQgZXh0ZW5kcyBTdWlPYmplY3REYXRhIHtcbiAgY29udGVudDogU3VpUGFyc2VkRGF0YTtcbn1cblxuZnVuY3Rpb24gaXNTdWlPYmplY3REYXRhV2l0aENvbnRlbnQoZGF0YTogU3VpT2JqZWN0RGF0YSk6IGRhdGEgaXMgU3VpT2JqZWN0RGF0YVdpdGhDb250ZW50IHtcbiAgcmV0dXJuIGRhdGEuY29udGVudCAhPT0gdW5kZWZpbmVkO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gZ2V0TW92ZU9iamVjdChkYXRhOiBTdWlPYmplY3RSZXNwb25zZSB8IFN1aU9iamVjdERhdGEpOiBTdWlNb3ZlT2JqZWN0IHwgdW5kZWZpbmVkIHtcbiAgY29uc3Qgc3VpT2JqZWN0ID0gJ2RhdGEnIGluIGRhdGEgPyBnZXRTdWlPYmplY3REYXRhKGRhdGEpIDogKGRhdGEgYXMgU3VpT2JqZWN0RGF0YSk7XG5cbiAgaWYgKCFzdWlPYmplY3QgfHwgIWlzU3VpT2JqZWN0RGF0YVdpdGhDb250ZW50KHN1aU9iamVjdCkgfHwgc3VpT2JqZWN0LmNvbnRlbnQuZGF0YVR5cGUgIT09ICdtb3ZlT2JqZWN0Jykge1xuICAgIHJldHVybiB1bmRlZmluZWQ7XG4gIH1cblxuICByZXR1cm4gc3VpT2JqZWN0LmNvbnRlbnQgYXMgU3VpTW92ZU9iamVjdDtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGhhc1B1YmxpY1RyYW5zZmVyKGRhdGE6IFN1aU9iamVjdFJlc3BvbnNlIHwgU3VpT2JqZWN0RGF0YSk6IGJvb2xlYW4ge1xuICByZXR1cm4gZ2V0TW92ZU9iamVjdChkYXRhKT8uaGFzUHVibGljVHJhbnNmZXIgPz8gZmFsc2U7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBnZXRNb3ZlUGFja2FnZUNvbnRlbnQoZGF0YTogU3VpT2JqZWN0UmVzcG9uc2UgfCBTdWlNb3ZlUGFja2FnZSk6IE1vdmVQYWNrYWdlQ29udGVudCB8IHVuZGVmaW5lZCB7XG4gIGlmICgnZGlzYXNzZW1ibGVkJyBpbiBkYXRhKSB7XG4gICAgcmV0dXJuIGRhdGEuZGlzYXNzZW1ibGVkO1xuICB9XG4gIGNvbnN0IHN1aU9iamVjdCA9IGdldFN1aU9iamVjdERhdGEoZGF0YSk7XG4gIGlmIChzdWlPYmplY3Q/LmNvbnRlbnQ/LmRhdGFUeXBlICE9PSAncGFja2FnZScpIHtcbiAgICByZXR1cm4gdW5kZWZpbmVkO1xuICB9XG4gIHJldHVybiAoc3VpT2JqZWN0LmNvbnRlbnQgYXMgU3VpTW92ZVBhY2thZ2UpLmRpc2Fzc2VtYmxlZDtcbn1cblxuZXhwb3J0IGNvbnN0IENoZWNrcG9pbnRlZE9iamVjdElkID0gb2JqZWN0KHtcbiAgb2JqZWN0SWQ6IE9iamVjdElkLFxuICBhdENoZWNrcG9pbnQ6IG9wdGlvbmFsKG51bWJlcigpKSxcbn0pO1xuZXhwb3J0IHR5cGUgQ2hlY2twb2ludGVkT2JqZWN0SWQgPSBJbmZlcjx0eXBlb2YgQ2hlY2twb2ludGVkT2JqZWN0SWQ+O1xuXG5leHBvcnQgY29uc3QgUGFnaW5hdGVkT2JqZWN0c1Jlc3BvbnNlID0gb2JqZWN0KHtcbiAgZGF0YTogYXJyYXkoU3VpT2JqZWN0UmVzcG9uc2UpLFxuICBuZXh0Q3Vyc29yOiBvcHRpb25hbChDaGVja3BvaW50ZWRPYmplY3RJZCksXG4gIGhhc05leHRQYWdlOiBib29sZWFuKCksXG59KTtcbmV4cG9ydCB0eXBlIFBhZ2luYXRlZE9iamVjdHNSZXNwb25zZSA9IEluZmVyPHR5cGVvZiBQYWdpbmF0ZWRPYmplY3RzUmVzcG9uc2U+O1xuXG4vLyBtaXJyb3JzIHN1aV9qc29uX3JwY190eXBlczo6IFN1aU9iamVjdERhdGFGaWx0ZXJcbmV4cG9ydCB0eXBlIFN1aU9iamVjdERhdGFGaWx0ZXIgPVxuICB8IHsgUGFja2FnZTogT2JqZWN0SWQgfVxuICB8IHsgTW92ZU1vZHVsZTogeyBwYWNrYWdlOiBPYmplY3RJZDsgbW9kdWxlOiBzdHJpbmcgfSB9XG4gIHwgeyBTdHJ1Y3RUeXBlOiBzdHJpbmcgfTtcblxuZXhwb3J0IHR5cGUgU3VpT2JqZWN0UmVzcG9uc2VRdWVyeSA9IHtcbiAgZmlsdGVyPzogU3VpT2JqZWN0RGF0YUZpbHRlcjtcbiAgb3B0aW9ucz86IFN1aU9iamVjdERhdGFPcHRpb25zO1xufTtcbiJdfQ==
@@ -0,0 +1,8 @@
1
+ export 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,MAAM,MAAM,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,13 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.getOption = getOption;
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
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoib3B0aW9uLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vc3JjL2xpYi9teXN0ZW5sYWIvdHlwZXMvb3B0aW9uLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7O0FBU0EsOEJBVUM7QUFWRCxTQUFnQixTQUFTLENBQUksTUFBaUI7SUFDNUMsSUFDRSxPQUFPLE1BQU0sS0FBSyxRQUFRO1FBQzFCLE1BQU0sS0FBSyxJQUFJO1FBQ2YsTUFBTSxJQUFJLE1BQU07UUFDaEIsTUFBTSxDQUFDLElBQUksQ0FBQyxVQUFVLENBQUMsc0JBQXNCLENBQUMsRUFDOUMsQ0FBQztRQUNELE9BQU8sU0FBUyxDQUFDO0lBQ25CLENBQUM7SUFDRCxPQUFPLE1BQVcsQ0FBQztBQUNyQixDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0IHR5cGUgT3B0aW9uPFQ+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 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 type ObjectArg = {
18
+ ImmOrOwned: SuiObjectRef;
19
+ } | {
20
+ Shared: SharedObjectRef;
21
+ };
22
+ /**
23
+ * A pure argument.
24
+ */
25
+ export 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 type CallArg = PureArg | {
53
+ Object: ObjectArg;
54
+ };
55
+ /**
56
+ * Kind of a TypeTag which is represented by a Move type identifier.
57
+ */
58
+ export 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 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 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 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;AAgBzC;;GAEG;AACH,MAAM,MAAM,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,MAAM,MAAM,SAAS,GAAG;IAAE,UAAU,EAAE,YAAY,CAAA;CAAE,GAAG;IAAE,MAAM,EAAE,eAAe,CAAA;CAAE,CAAC;AAEnF;;GAEG;AACH,MAAM,MAAM,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,MAAM,MAAM,OAAO,GAAG,OAAO,GAAG;IAAE,MAAM,EAAE,SAAS,CAAA;CAAE,CAAC;AAEtD;;GAEG;AACH,MAAM,MAAM,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,MAAM,MAAM,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,MAAM,MAAM,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,MAAM,MAAM,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 = void 0;
4
+ exports.isPureArg = isPureArg;
5
+ const bcs_1 = require("@mysten/bcs");
6
+ function registerUTF8String(bcs) {
7
+ bcs.registerType('utf8string', (writer, str) => {
8
+ const bytes = Array.from(new TextEncoder().encode(str));
9
+ return writer.writeVec(bytes, (writer, el) => writer.write8(el));
10
+ }, (reader) => {
11
+ const bytes = reader.readVec((reader) => reader.read8());
12
+ return new TextDecoder().decode(new Uint8Array(bytes));
13
+ });
14
+ }
15
+ function isPureArg(arg) {
16
+ return arg.Pure !== undefined;
17
+ }
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({ ...(0, bcs_1.getSuiMoveConfig)(), types: BCS_SPEC });
105
+ exports.bcs = bcs;
106
+ registerUTF8String(bcs);
107
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3VpLWJjcy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3NyYy9saWIvbXlzdGVubGFiL3R5cGVzL3N1aS1iY3MudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7O0FBeUNBLDhCQUVDO0FBM0NELHFDQUE4RjtBQUc5RixTQUFTLGtCQUFrQixDQUFDLEdBQVE7SUFDbEMsR0FBRyxDQUFDLFlBQVksQ0FDZCxZQUFZLEVBQ1osQ0FBQyxNQUFNLEVBQUUsR0FBRyxFQUFFLEVBQUU7UUFDZCxNQUFNLEtBQUssR0FBRyxLQUFLLENBQUMsSUFBSSxDQUFDLElBQUksV0FBVyxFQUFFLENBQUMsTUFBTSxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUM7UUFDeEQsT0FBTyxNQUFNLENBQUMsUUFBUSxDQUFDLEtBQUssRUFBRSxDQUFDLE1BQU0sRUFBRSxFQUFFLEVBQUUsRUFBRSxDQUFDLE1BQU0sQ0FBQyxNQUFNLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQztJQUNuRSxDQUFDLEVBQ0QsQ0FBQyxNQUFNLEVBQUUsRUFBRTtRQUNULE1BQU0sS0FBSyxHQUFHLE1BQU0sQ0FBQyxPQUFPLENBQUMsQ0FBQyxNQUFNLEVBQUUsRUFBRSxDQUFDLE1BQU0sQ0FBQyxLQUFLLEVBQUUsQ0FBQyxDQUFDO1FBQ3pELE9BQU8sSUFBSSxXQUFXLEVBQUUsQ0FBQyxNQUFNLENBQUMsSUFBSSxVQUFVLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQztJQUN6RCxDQUFDLENBQ0YsQ0FBQztBQUNKLENBQUM7QUEwQkQsU0FBZ0IsU0FBUyxDQUFDLEdBQVE7SUFDaEMsT0FBUSxHQUFlLENBQUMsSUFBSSxLQUFLLFNBQVMsQ0FBQztBQUM3QyxDQUFDO0FBd0VELGdDQUFnQztBQUNoQyxNQUFNLE1BQU0sR0FBRyxRQUFRLENBQUM7QUFTeEIsTUFBTSxpQkFBaUIsR0FBRztJQUN4QixJQUFJLEVBQUUsaUJBQWlCO0lBQ3ZCLE1BQU0sRUFBRSxTQUFHLENBQUMsT0FB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dmVDb25maWcsIFN0cnVjdFR5cGVEZWZpbml0aW9uIH0gZnJvbSAnQG15c3Rlbi9iY3MnO1xuaW1wb3J0IHsgU3VpT2JqZWN0UmVmIH0gZnJvbSAnLi9vYmplY3RzJztcblxuZnVuY3Rpb24gcmVnaXN0ZXJVVEY4U3RyaW5nKGJjczogQkNTKSB7XG4gIGJjcy5yZWdpc3RlclR5cGUoXG4gICAgJ3V0ZjhzdHJpbmcnLFxuICAgICh3cml0ZXIsIHN0cikgPT4ge1xuICAgICAgY29uc3QgYnl0ZXMgPSBBcnJheS5mcm9tKG5ldyBUZXh0RW5jb2RlcigpLmVuY29kZShzdHIpKTtcbiAgICAgIHJldHVybiB3cml0ZXIud3JpdGVWZWMoYnl0ZXMsICh3cml0ZXIsIGVsKSA9PiB3cml0ZXIud3JpdGU4KGVsKSk7XG4gICAgfSxcbiAgICAocmVhZGVyKSA9PiB7XG4gICAgICBjb25zdCBieXRlcyA9IHJlYWRlci5yZWFkVmVjKChyZWFkZXIpID0+IHJlYWRlci5yZWFkOCgpKTtcbiAgICAgIHJldHVybiBuZXcgVGV4dERlY29kZXIoKS5kZWNvZGUobmV3IFVpbnQ4QXJyYXkoYnl0ZXMpKTtcbiAgICB9XG4gICk7XG59XG5cbi8qKlxuICogQSByZWZlcmVuY2UgdG8gYSBzaGFyZWQgb2JqZWN0LlxuICovXG5leHBvcnQgdHlwZSBTaGFyZWRPYmplY3RSZWYgPSB7XG4gIC8qKiBIZXggY29kZSBhcyBzdHJpbmcgcmVwcmVzZW50aW5nIHRoZSBvYmplY3QgaWQgKi9cbiAgb2JqZWN0SWQ6IHN0cmluZztcblxuICAvKiogVGhlIHZlcnNpb24gdGhlIG9iamVjdCB3YXMgc2hhcmVkIGF0ICovXG4gIGluaXRpYWxTaGFyZWRWZXJzaW9uOiBudW1iZXIgfCBzdHJpbmc7XG5cbiAgLyoqIFdoZXRoZXIgcmVmZXJlbmNlIGlzIG11dGFibGUgKi9cbiAgbXV0YWJsZTogYm9vbGVhbjtcbn07XG5cbi8qKlxuICogQW4gb2JqZWN0IGFyZ3VtZW50LlxuICovXG5leHBvcnQgdHlwZSBPYmplY3RBcmcgPSB7IEltbU9yT3duZWQ6IFN1aU9iamVjdFJlZiB9IHwgeyBTaGFyZWQ6IFNoYXJlZE9iamVjdFJlZiB9O1xuXG4vKipcbiAqIEEgcHVyZSBhcmd1bWVudC5cbiAqL1xuZXhwb3J0IHR5cGUgUHVyZUFyZyA9IHsgUHVyZTogQXJyYXlMaWtlPG51bWJlcj4gfTtcblxuZXhwb3J0IGZ1bmN0aW9uIGlzUHVyZUFyZyhhcmc6IGFueSk6IGFyZyBpcyBQdXJlQXJnIHtcbiAgcmV0dXJuIChhcmcgYXMgUHVyZUFyZykuUHVyZSAhPT0gdW5kZWZpbmVkO1xufVxuXG4vKipcbiAqIEFuIGFyZ3VtZW50IGZvciB0aGUgdHJhbnNhY3Rpb24uIEl0IGlzIGEgJ21lYW50JyBlbnVtIHdoaWNoIGV4cGVjdHMgdG8gaGF2ZVxuICogb25lIG9mIHRoZSBvcHRpb25hbCBwcm9wZXJ0aWVzLiBJZiBub3QsIHRoZSBCQ1MgZXJyb3Igd2lsbCBiZSB0aHJvd24gd2hpbGVcbiAqIGF0dGVtcHRpbmcgdG8gZm9ybSBhIHRyYW5zYWN0aW9uLlxuICpcbiAqIEV4YW1wbGU6XG4gKiBgYGBqc1xuICogbGV0IGFyZzE6IENhbGxBcmcgPSB7IE9iamVjdDogeyBTaGFyZWQ6IHtcbiAqICAgb2JqZWN0SWQ6ICc1NDYwY2Y5MmI1ZTNlNzA2N2FhYWNlNjBkODgzMjQwOTVmZDIyOTQ0JyxcbiAqICAgaW5pdGlhbFNoYXJlZFZlcnNpb246IDEsXG4gKiAgIG11dGFibGU6IHRydWUsXG4gKiB9IH0gfTtcbiAqIGxldCBhcmcyOiBDYWxsQXJnID0geyBQdXJlOiBiY3Muc2VyKEJDUy5TVFJJTkcsIDEwMDAwMCkudG9CeXRlcygpIH07XG4gKiBsZXQgYXJnMzogQ2FsbEFyZyA9IHsgT2JqZWN0OiB7IEltbU9yT3duZWQ6IHtcbiAqICAgb2JqZWN0SWQ6ICc0MDQ3ZDJlMjUyMTFkODc5MjJiNjY1MDIzM2JkMDUwM2E2NzM0Mjc5JyxcbiAqICAgdmVyc2lvbjogMSxcbiAqICAgZGlnZXN0OiAnYkNpQU5DaHQ0TzlNRVVodVlqZFJDcVJQWmpyMnJKOE1mcU5pd3lobVJnQT0nXG4gKiB9IH0gfTtcbiAqIGBgYFxuICpcbiAqIEZvciBgUHVyZWAgYXJndW1lbnRzIEJDUyBpcyByZXF1aXJlZC4gWW91IG11c3QgZW5jb2RlIHRoZSB2YWx1ZXMgd2l0aCBCQ1MgYWNjb3JkaW5nXG4gKiB0byB0aGUgdHlwZSByZXF1aXJlZCBieSB0aGUgY2FsbGVkIGZ1bmN0aW9uLiBQdXJlIGFjY2VwdHMgb25seSBzZXJpYWxpemVkIHZhbHVlc1xuICovXG5leHBvcnQgdHlwZSBDYWxsQXJnID0gUHVyZUFyZyB8IHsgT2JqZWN0OiBPYmplY3RBcmcgfTtcblxuLyoqXG4gKiBLaW5kIG9mIGEgVHlwZVRhZyB3aGljaCBpcyByZXByZXNlbnRlZCBieSBhIE1vdmUgdHlwZSBpZGVudGlmaWVyLlxuICovXG5leHBvcnQgdHlwZSBTdHJ1Y3RUYWcgPSB7XG4gIGFkZHJlc3M6IHN0cmluZztcbiAgbW9kdWxlOiBzdHJpbmc7XG4gIG5hbWU6IHN0cmluZztcbiAgdHlwZVBhcmFtczogVHlwZVRhZ1tdO1xufTtcblxuLyoqXG4gKiBTdWkgVHlwZVRhZyBvYmplY3QuIEEgZGVjb3VwbGVkIGAweC4uLjo6bW9kdWxlOjpUeXBlPD8/Pz5gIHBhcmFtZXRlci5cbiAqL1xuZXhwb3J0IHR5cGUgVHlwZVRhZyA9XG4gIHwgeyBib29sOiBudWxsIH1cbiAgfCB7IHU4OiBudWxsIH1cbiAgfCB7IHU2NDogbnVsbCB9XG4gIHwgeyB1MTI4OiBudWxsIH1cbiAgfCB7IGFkZHJlc3M6IG51bGwgfVxuICB8IHsgc2lnbmVyOiBudWxsIH1cbiAgfCB7IHZlY3RvcjogVHlwZVRhZyB9XG4gIHwgeyBzdHJ1Y3Q6IFN0cnVjdFRhZyB9XG4gIHwgeyB1MTY6IG51bGwgfVxuICB8IHsgdTMyOiBudWxsIH1cbiAgfCB7IHUyNTY6IG51bGwgfTtcblxuLy8gPT09PT09PT09PSBUcmFuc2FjdGlvbkRhdGEgPT09PT09PT09PT1cblxuLyoqXG4gKiBUaGUgR2FzRGF0YSB0byBiZSB1c2VkIGluIHRoZSB0cmFuc2FjdGlvbi5cbiAqL1xuZXhwb3J0IHR5cGUgR2FzRGF0YSA9IHtcbiAgcGF5bWVudDogU3VpT2JqZWN0UmVmW107XG4gIG93bmVyOiBzdHJpbmc7IC8vIEdhcyBPYmplY3QncyBvd25lclxuICBwcmljZTogbnVtYmVyO1xuICBidWRnZXQ6IG51bWJlcjtcbn07XG5cbi8qKlxuICogVHJhbnNhY3Rpb25FeHBpcmF0aW9uXG4gKlxuICogSW5kaWNhdGlvbnMgdGhlIGV4cGlyYXRpb24gdGltZSBmb3IgYSB0cmFuc2FjdGlvbi5cbiAqL1xuZXhwb3J0IHR5cGUgVHJhbnNhY3Rpb25FeHBpcmF0aW9uID0geyBOb25lOiBudWxsIH0gfCB7IEVwb2NoOiBudW1iZXIgfTtcblxuLy8gTW92ZSBuYW1lIG9mIHRoZSBWZWN0b3IgdHlwZS5cbmNvbnN0IFZFQ1RPUiA9ICd2ZWN0b3InO1xuXG4vLyBJbXBvcnRlZCB0byBleHBsaWNpdGx5IHRlbGwgdHlwZXNjcmlwdCB0aGF0IHR5cGVzIG1hdGNoXG50eXBlIFR5cGVTY2hlbWEgPSB7XG4gIHN0cnVjdHM/OiB7IFtrZXk6IHN0cmluZ106IFN0cnVjdFR5cGVEZWZpbml0aW9uIH07XG4gIGVudW1zPzogeyBba2V5OiBzdHJpbmddOiBFbnVtVHlwZURlZmluaXRpb24gfTtcbiAgYWxpYXNlcz86IHsgW2tleTogc3RyaW5nXTogc3RyaW5nIH07XG59O1xuXG5jb25zdCBUcmFuc2FjdGlvbkRhdGFWMSA9IHtcbiAga2luZDogJ1RyYW5zYWN0aW9uS2luZCcsXG4gIHNlbmRlcjogQkNTLkFERFJFU1MsXG4gIGdhc0RhdGE6ICdHYXNEYXRhJyxcbiAgZXhwaXJhdGlvbjogJ1RyYW5zYWN0aW9uRXhwaXJhdGlvbicsXG59O1xuXG5jb25zdCBCQ1NfU1BFQzogVHlwZVNjaGVtYSA9IHtcbiAgZW51bXM6IHtcbiAgICAnT3B0aW9uPFQ+Jzoge1xuICAgICAgTm9uZTogbnVsbCxcbiAgICAgIFNvbWU6ICdUJyxcbiAgICB9LFxuICAgIE9iamVjdEFyZzoge1xuICAgICAgSW1tT3JPd25lZDogJ1N1aU9iamVjdFJlZicsXG4gICAgICBTaGFyZWQ6ICdTaGFyZWRPYmplY3RSZWYnLFxuICAgIH0sXG4gICAgQ2FsbEFyZzoge1xuICAgICAgUHVyZTogW1ZFQ1RPUiwgQkNTLlU4XSxcbiAgICAgIE9iamVjdDogJ09iamVjdEFyZycsXG4gICAgICBPYmpWZWM6IFtWRUNUT1IsICdPYmplY3RBcmcnXSxcbiAgICB9LFxuICAgIFR5cGVUYWc6IHtcbiAgICAgIGJvb2w6IG51bGwsXG4gICAgICB1ODogbnVsbCxcbiAgICAgIHU2NDogbnVsbCxcbiAgICAgIHUxMjg6IG51bGwsXG4gICAgICBhZGRyZXNzOiBudWxsLFxuICAgICAgc2lnbmVyOiBudWxsLFxuICAgICAgdmVjdG9yOiAnVHlwZVRhZycsXG4gICAgICBzdHJ1Y3Q6ICdTdHJ1Y3RUYWcnLFxuICAgICAgdTE2OiBudWxsLFxuICAgICAgdTMyOiBudWxsLFxuICAgICAgdTI1NjogbnVsbCxcbiAgICB9LFxuICAgIFRyYW5zYWN0aW9uS2luZDoge1xuICAgICAgLy8gY2FuIG5vdCBiZSBjYWxsZWQgZnJvbSBzdWkuanM7IGR1bW15IHBsYWNlbWVudFxuICAgICAgLy8gdG8gc2V0IHRoZSBlbnVtIGNvdW50ZXIgcmlnaHQgZm9yIFByb2dyYW1tYWJsZVRyYW5zYWN0XG4gICAgICBQcm9ncmFtbWFibGVUcmFuc2FjdGlvbjogJ1Byb2dyYW1tYWJsZVRyYW5zYWN0aW9uJyxcbiAgICAgIENoYW5nZUVwb2NoOiBudWxsLFxuICAgICAgR2VuZXNpczogbnVsbCxcbiAgICAgIENvbnNlbnN1c0NvbW1pdFByb2xvZ3VlOiBudWxsLFxuICAgIH0sXG4gICAgVHJhbnNhY3Rpb25FeHBpcmF0aW9uOiB7XG4gICAgICBOb25lOiBudWxsLFxuICAgICAgRXBvY2g6IEJDUy5VNjQsXG4gICAgfSxcbiAgICBUcmFuc2FjdGlvbkRhdGE6IHtcbiAgICAgIFYxOiAnVHJhbnNhY3Rpb25EYXRhVjEnLFxuICAgIH0sXG4gIH0sXG4gIHN0cnVjdHM6IHtcbiAgICBTdWlPYmplY3RSZWY6IHtcbiAgICAgIG9iamVjdElkOiBCQ1MuQUREUkVTUyxcbiAgICAgIHZlcnNpb246IEJDUy5VNjQsXG4gICAgICBkaWdlc3Q6ICdPYmplY3REaWdlc3QnLFxuICAgIH0sXG4gICAgU2hhcmVkT2JqZWN0UmVmOiB7XG4gICAgICBvYmplY3RJZDogQkNTLkFERFJFU1MsXG4gICAgICBpbml0aWFsU2hhcmVkVmVyc2lvbjogQkNTLlU2NCxcbiAgICAgIG11dGFibGU6IEJDUy5CT09MLFxuICAgIH0sXG4gICAgU3RydWN0VGFnOiB7XG4gICAgICBhZGRyZXNzOiBCQ1MuQUREUkVTUyxcbiAgICAgIG1vZHVsZTogQkNTLlNUUklORyxcbiAgICAgIG5hbWU6IEJDUy5TVFJJTkcsXG4gICAgICB0eXBlUGFyYW1zOiBbVkVDVE9SLCAnVHlwZVRhZyddLFxuICAgIH0sXG4gICAgR2FzRGF0YToge1xuICAgICAgcGF5bWVudDogW1ZFQ1RPUiwgJ1N1aU9iamVjdFJlZiddLFxuICAgICAgb3duZXI6IEJDUy5BRERSRVNTLFxuICAgICAgcHJpY2U6IEJDUy5VNjQsXG4gICAgICBidWRnZXQ6IEJDUy5VNjQsXG4gICAgfSxcbiAgICAvLyBTaWduZWQgdHJhbnNhY3Rpb24gZGF0YSBuZWVkZWQgdG8gZ2VuZXJhdGUgdHJhbnNhY3Rpb24gZGlnZXN0LlxuICAgIFNlbmRlclNpZ25lZERhdGE6IHtcbiAgICAgIGRhdGE6ICdUcmFuc2FjdGlvbkRhdGEnLFxuICAgICAgdHhTaWduYXR1cmVzOiBbVkVDVE9SLCBbVkVDVE9SLCBCQ1MuVThdXSxcbiAgICB9LFxuICAgIFRyYW5zYWN0aW9uRGF0YVYxLFxuICB9LFxuICBhbGlhc2VzOiB7XG4gICAgT2JqZWN0RGlnZXN0OiBCQ1MuQkFTRTU4LFxuICB9LFxufTtcblxuY29uc3QgYmNzID0gbmV3IEJDUyh7IC4uLmdldFN1aU1vdmVDb25maWcoKSwgdHlwZXM6IEJDU19TUEVDIH0pO1xucmVnaXN0ZXJVVEY4U3RyaW5nKGJjcyk7XG5cbmV4cG9ydCB7IGJjcyB9O1xuIl19