@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,93 @@
1
+ import { SuiObjectResponse, SuiMoveObject, SuiObjectInfo, SuiObjectData } from '../types/objects';
2
+ import { ObjectId, SuiAddress } from '../types/common';
3
+ import { Option } from '../types/option';
4
+ import { CoinStruct } from '../types/coin';
5
+ import { StructTag } from '../types/sui-bcs';
6
+ import { Infer } from 'superstruct';
7
+ export declare const SUI_SYSTEM_ADDRESS = "0x3";
8
+ export declare const SUI_FRAMEWORK_ADDRESS = "0x2";
9
+ export declare const MOVE_STDLIB_ADDRESS = "0x1";
10
+ export declare const OBJECT_MODULE_NAME = "object";
11
+ export declare const UID_STRUCT_NAME = "UID";
12
+ export declare const ID_STRUCT_NAME = "ID";
13
+ export declare const SUI_TYPE_ARG = "0x2::sui::SUI";
14
+ export declare const VALIDATORS_EVENTS_QUERY = "0x3::validator_set::ValidatorEpochInfoEvent";
15
+ export declare const SUI_CLOCK_OBJECT_ID: string;
16
+ export declare const PAY_MODULE_NAME = "pay";
17
+ export declare const PAY_SPLIT_COIN_VEC_FUNC_NAME = "split_vec";
18
+ export declare const PAY_JOIN_COIN_FUNC_NAME = "join";
19
+ export declare const COIN_TYPE_ARG_REGEX: RegExp;
20
+ type ObjectData = ObjectDataFull | SuiObjectInfo;
21
+ type ObjectDataFull = SuiObjectResponse | SuiMoveObject;
22
+ export declare function isObjectDataFull(resp: ObjectData | ObjectDataFull): resp is SuiObjectResponse;
23
+ export declare const CoinMetadataStruct: import("superstruct").Struct<{
24
+ symbol: string;
25
+ id: string | null;
26
+ name: string;
27
+ description: string;
28
+ decimals: number;
29
+ iconUrl: string | null;
30
+ }, {
31
+ decimals: import("superstruct").Struct<number, null>;
32
+ name: import("superstruct").Struct<string, null>;
33
+ symbol: import("superstruct").Struct<string, null>;
34
+ description: import("superstruct").Struct<string, null>;
35
+ iconUrl: import("superstruct").Struct<string | null, null>;
36
+ id: import("superstruct").Struct<string | null, null>;
37
+ }>;
38
+ export type CoinMetadata = Infer<typeof CoinMetadataStruct>;
39
+ /**
40
+ * Utility class for 0x2::coin
41
+ * as defined in https://github.com/MystenLabs/sui/blob/ca9046fd8b1a9e8634a4b74b0e7dabdc7ea54475/sui_programmability/framework/sources/Coin.move#L4
42
+ */
43
+ export declare class Coin {
44
+ static isCoin(data: ObjectData): boolean;
45
+ static getCoinType(type: string): string | null;
46
+ static getCoinTypeArg(obj: ObjectData): string | null;
47
+ static isSUI(obj: ObjectData): boolean;
48
+ static getCoinSymbol(coinTypeArg: string): string;
49
+ static getCoinStructTag(coinTypeArg: string): StructTag;
50
+ static getID(obj: ObjectData): ObjectId;
51
+ static totalBalance(coins: CoinStruct[]): bigint;
52
+ /**
53
+ * Sort coin by balance in an ascending order
54
+ */
55
+ static sortByBalance(coins: CoinStruct[]): CoinStruct[];
56
+ static getBalanceFromCoinStruct(coin: CoinStruct): bigint;
57
+ static getBalance(data: ObjectDataFull): bigint | undefined;
58
+ private static getType;
59
+ }
60
+ export type DelegationData = SuiMoveObject & {
61
+ dataType: 'moveObject';
62
+ type: '0x2::delegation::Delegation';
63
+ fields: {
64
+ active_delegation: Option<number>;
65
+ delegate_amount: number;
66
+ next_reward_unclaimed_epoch: number;
67
+ validator_address: SuiAddress;
68
+ info: {
69
+ id: string;
70
+ version: number;
71
+ };
72
+ coin_locked_until_epoch: Option<SuiMoveObject>;
73
+ ending_epoch: Option<number>;
74
+ };
75
+ };
76
+ export type DelegationSuiObject = Omit<SuiObjectData, 'data'> & {
77
+ data: DelegationData;
78
+ };
79
+ export declare class Delegation {
80
+ static readonly SUI_OBJECT_TYPE = "0x2::delegation::Delegation";
81
+ private suiObject;
82
+ static isDelegationSuiObject(obj: SuiObjectData): obj is DelegationSuiObject;
83
+ constructor(obj: DelegationSuiObject);
84
+ nextRewardUnclaimedEpoch(): number;
85
+ activeDelegation(): bigint;
86
+ delegateAmount(): number;
87
+ endingEpoch(): number | undefined;
88
+ validatorAddress(): string;
89
+ isActive(): boolean;
90
+ hasUnclaimedRewards(epoch: number): boolean;
91
+ }
92
+ export {};
93
+ //# sourceMappingURL=framework.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"framework.d.ts","sourceRoot":"","sources":["../../../../../src/lib/mystenlab/framework/framework.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,135 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.Delegation = exports.Coin = exports.CoinMetadataStruct = exports.COIN_TYPE_ARG_REGEX = exports.PAY_JOIN_COIN_FUNC_NAME = exports.PAY_SPLIT_COIN_VEC_FUNC_NAME = exports.PAY_MODULE_NAME = exports.SUI_CLOCK_OBJECT_ID = exports.VALIDATORS_EVENTS_QUERY = exports.SUI_TYPE_ARG = exports.ID_STRUCT_NAME = exports.UID_STRUCT_NAME = exports.OBJECT_MODULE_NAME = exports.MOVE_STDLIB_ADDRESS = exports.SUI_FRAMEWORK_ADDRESS = exports.SUI_SYSTEM_ADDRESS = void 0;
4
+ exports.isObjectDataFull = isObjectDataFull;
5
+ const objects_1 = require("../types/objects");
6
+ const common_1 = require("../types/common");
7
+ const option_1 = require("../types/option");
8
+ const superstruct_1 = require("superstruct");
9
+ exports.SUI_SYSTEM_ADDRESS = '0x3';
10
+ exports.SUI_FRAMEWORK_ADDRESS = '0x2';
11
+ exports.MOVE_STDLIB_ADDRESS = '0x1';
12
+ exports.OBJECT_MODULE_NAME = 'object';
13
+ exports.UID_STRUCT_NAME = 'UID';
14
+ exports.ID_STRUCT_NAME = 'ID';
15
+ exports.SUI_TYPE_ARG = `${exports.SUI_FRAMEWORK_ADDRESS}::sui::SUI`;
16
+ exports.VALIDATORS_EVENTS_QUERY = '0x3::validator_set::ValidatorEpochInfoEvent';
17
+ exports.SUI_CLOCK_OBJECT_ID = (0, common_1.normalizeSuiObjectId)('0x6');
18
+ // `sui::pay` module is used for Coin management (split, join, join_and_transfer etc);
19
+ exports.PAY_MODULE_NAME = 'pay';
20
+ exports.PAY_SPLIT_COIN_VEC_FUNC_NAME = 'split_vec';
21
+ exports.PAY_JOIN_COIN_FUNC_NAME = 'join';
22
+ exports.COIN_TYPE_ARG_REGEX = /^0x2::coin::Coin<(.+)>$/;
23
+ function isObjectDataFull(resp) {
24
+ return !!resp.data || !!resp.type;
25
+ }
26
+ exports.CoinMetadataStruct = (0, superstruct_1.object)({
27
+ decimals: (0, superstruct_1.number)(),
28
+ name: (0, superstruct_1.string)(),
29
+ symbol: (0, superstruct_1.string)(),
30
+ description: (0, superstruct_1.string)(),
31
+ iconUrl: (0, superstruct_1.union)([(0, superstruct_1.string)(), (0, superstruct_1.literal)(null)]),
32
+ id: (0, superstruct_1.union)([common_1.ObjectId, (0, superstruct_1.literal)(null)]),
33
+ });
34
+ /**
35
+ * Utility class for 0x2::coin
36
+ * as defined in https://github.com/MystenLabs/sui/blob/ca9046fd8b1a9e8634a4b74b0e7dabdc7ea54475/sui_programmability/framework/sources/Coin.move#L4
37
+ */
38
+ class Coin {
39
+ static isCoin(data) {
40
+ return Coin.getType(data)?.match(exports.COIN_TYPE_ARG_REGEX) != null;
41
+ }
42
+ static getCoinType(type) {
43
+ const [, res] = type.match(exports.COIN_TYPE_ARG_REGEX) ?? [];
44
+ return res || null;
45
+ }
46
+ static getCoinTypeArg(obj) {
47
+ const type = Coin.getType(obj);
48
+ return type ? Coin.getCoinType(type) : null;
49
+ }
50
+ static isSUI(obj) {
51
+ const arg = Coin.getCoinTypeArg(obj);
52
+ return arg ? Coin.getCoinSymbol(arg) === 'SUI' : false;
53
+ }
54
+ static getCoinSymbol(coinTypeArg) {
55
+ return coinTypeArg.substring(coinTypeArg.lastIndexOf(':') + 1);
56
+ }
57
+ static getCoinStructTag(coinTypeArg) {
58
+ return {
59
+ address: (0, common_1.normalizeSuiObjectId)(coinTypeArg.split('::')[0]),
60
+ module: coinTypeArg.split('::')[1],
61
+ name: coinTypeArg.split('::')[2],
62
+ typeParams: [],
63
+ };
64
+ }
65
+ static getID(obj) {
66
+ if ('fields' in obj) {
67
+ return obj.fields.id.id;
68
+ }
69
+ return (0, objects_1.getObjectId)(obj);
70
+ }
71
+ static totalBalance(coins) {
72
+ return coins.reduce((partialSum, c) => partialSum + Coin.getBalanceFromCoinStruct(c), BigInt(0));
73
+ }
74
+ /**
75
+ * Sort coin by balance in an ascending order
76
+ */
77
+ static sortByBalance(coins) {
78
+ return [...coins].sort((a, b) => Coin.getBalanceFromCoinStruct(a) < Coin.getBalanceFromCoinStruct(b)
79
+ ? -1
80
+ : Coin.getBalanceFromCoinStruct(a) > Coin.getBalanceFromCoinStruct(b)
81
+ ? 1
82
+ : 0);
83
+ }
84
+ static getBalanceFromCoinStruct(coin) {
85
+ return BigInt(coin.balance);
86
+ }
87
+ static getBalance(data) {
88
+ if (!Coin.isCoin(data)) {
89
+ return undefined;
90
+ }
91
+ const balance = (0, objects_1.getObjectFields)(data)?.balance;
92
+ return BigInt(balance);
93
+ }
94
+ static getType(data) {
95
+ if (isObjectDataFull(data)) {
96
+ return (0, objects_1.getObjectType)(data);
97
+ }
98
+ return data.type;
99
+ }
100
+ }
101
+ exports.Coin = Coin;
102
+ // Class for delegation.move
103
+ // see https://github.com/MystenLabs/fastnft/blob/161aa27fe7eb8ecf2866ec9eb192e768f25da768/crates/sui-framework/sources/governance/delegation.move
104
+ class Delegation {
105
+ static isDelegationSuiObject(obj) {
106
+ return 'type' in obj && obj.type === Delegation.SUI_OBJECT_TYPE;
107
+ }
108
+ constructor(obj) {
109
+ this.suiObject = obj;
110
+ }
111
+ nextRewardUnclaimedEpoch() {
112
+ return this.suiObject.data.fields.next_reward_unclaimed_epoch;
113
+ }
114
+ activeDelegation() {
115
+ return BigInt((0, option_1.getOption)(this.suiObject.data.fields.active_delegation) || 0);
116
+ }
117
+ delegateAmount() {
118
+ return this.suiObject.data.fields.delegate_amount;
119
+ }
120
+ endingEpoch() {
121
+ return (0, option_1.getOption)(this.suiObject.data.fields.ending_epoch);
122
+ }
123
+ validatorAddress() {
124
+ return this.suiObject.data.fields.validator_address;
125
+ }
126
+ isActive() {
127
+ return this.activeDelegation() > 0 && !this.endingEpoch();
128
+ }
129
+ hasUnclaimedRewards(epoch) {
130
+ return this.nextRewardUnclaimedEpoch() <= epoch && (this.isActive() || (this.endingEpoch() || 0) > epoch);
131
+ }
132
+ }
133
+ exports.Delegation = Delegation;
134
+ Delegation.SUI_OBJECT_TYPE = '0x2::delegation::Delegation';
135
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZnJhbWV3b3JrLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vc3JjL2xpYi9teXN0ZW5sYWIvZnJhbWV3b3JrL2ZyYW1ld29yay50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7QUFvQ0EsNENBRUM7QUF0Q0QsOENBUTBCO0FBQzFCLDRDQUE2RTtBQUU3RSw0Q0FBb0Q7QUFHcEQsNkNBQTRFO0FBRS9ELFFBQUEsa0JBQWtCLEdBQUcsS0FBSyxDQUFDO0FBQzNCLFFBQUEscUJBQXFCLEdBQUcsS0FBSyxDQUFDO0FBQzlCLFFBQUEsbUJBQW1CLEdBQUcsS0FBSyxDQUFDO0FBQzVCLFFBQUEsa0JBQWtCLEdBQUcsUUFBUSxDQUFDO0FBQzlCLFFBQUEsZUFBZSxHQUFHLEtBQUssQ0FBQztBQUN4QixRQUFBLGNBQWMsR0FBRyxJQUFJLENBQUM7QUFDdEIsUUFBQSxZQUFZLEdBQUcsR0FBRyw2QkFBcUIsWUFBWSxDQUFDO0FBQ3BELFFBQUEsdUJBQXVCLEdBQUcsNkNBQTZDLENBQUM7QUFFeEUsUUFBQSxtQkFBbUIsR0FBRyxJQUFBLDZCQUFvQixFQUFDLEtBQUssQ0FBQyxDQUFDO0FBRS9ELHNGQUFzRjtBQUN6RSxRQUFBLGVBQWUsR0FBRyxLQUFLLENBQUM7QUFDeEIsUUFBQSw0QkFBNEIsR0FBRyxXQUFXLENBQUM7QUFDM0MsUUFBQSx1QkFBdUIsR0FBRyxNQUFNLENBQUM7QUFDakMsUUFBQSxtQkFBbUIsR0FBRyx5QkFBeUIsQ0FBQztBQUs3RCxTQUFnQixnQkFBZ0IsQ0FBQyxJQUFpQztJQUNoRSxPQUFPLENBQUMsQ0FBRSxJQUEwQixDQUFDLElBQUksSUFBSSxDQUFDLENBQUUsSUFBc0IsQ0FBQyxJQUFJLENBQUM7QUFDOUUsQ0FBQztBQUVZLFFBQUEsa0JBQWtCLEdBQUcsSUFBQSxvQkFBTSxFQUFDO0lBQ3ZDLFFBQVEsRUFBRSxJQUFBLG9CQUFNLEdBQUU7SUFDbEIsSUFBSSxFQUFFLElBQUEsb0JBQU0sR0FBRTtJ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QixDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcbiAgZ2V0T2JqZWN0RmllbGRzLFxuICBTdWlPYmplY3RSZXNwb25zZSxcbiAgU3VpTW92ZU9iamVjdCxcbiAgU3VpT2JqZWN0SW5mbyxcbiAgU3VpT2JqZWN0RGF0YSxcbiAgZ2V0T2JqZWN0SWQsXG4gIGdldE9iamVjdFR5cGUsXG59IGZyb20gJy4uL3R5cGVzL29iamVjdHMnO1xuaW1wb3J0IHsgbm9ybWFsaXplU3VpT2JqZWN0SWQsIE9iamVjdElkLCBTdWlBZGRyZXNzIH0gZnJvbSAnLi4vdHlwZXMvY29tbW9uJztcblxuaW1wb3J0IHsgZ2V0T3B0aW9uLCBPcHRpb24gfSBmcm9tICcuLi90eXBlcy9vcHRpb24nO1xuaW1wb3J0IHsgQ29pblN0cnVjdCB9IGZyb20gJy4uL3R5cGVzL2NvaW4nO1xuaW1wb3J0IHsgU3RydWN0VGFnIH0gZnJvbSAnLi4vdHlwZXMvc3VpLWJjcyc7XG5pbXBvcnQgeyBJbmZlciwgbGl0ZXJhbCwgbnVtYmVyLCBvYmplY3QsIHN0cmluZywgdW5pb24gfSBmcm9tICdzdXBlcnN0cnVjdCc7XG5cbmV4cG9ydCBjb25zdCBTVUlfU1lTVEVNX0FERFJFU1MgPSAnMHgzJztcbmV4cG9ydCBjb25zdCBTVUlfRlJBTUVXT1JLX0FERFJFU1MgPSAnMHgyJztcbmV4cG9ydCBjb25zdCBNT1ZFX1NURExJQl9BRERSRVNTID0gJzB4MSc7XG5leHBvcnQgY29uc3QgT0JKRUNUX01PRFVMRV9OQU1FID0gJ29iamVjdCc7XG5leHBvcnQgY29uc3QgVUlEX1NUUlVDVF9OQU1FID0gJ1VJRCc7XG5leHBvcnQgY29uc3QgSURfU1RSVUNUX05BTUUgPSAnSUQnO1xuZXhwb3J0IGNvbnN0IFNVSV9UWVBFX0FSRyA9IGAke1NVSV9GUkFNRVdPUktfQUREUkVTU306OnN1aTo6U1VJYDtcbmV4cG9ydCBjb25zdCBWQUxJREFUT1JTX0VWRU5UU19RVUVSWSA9ICcweDM6OnZhbGlkYXRvcl9zZXQ6OlZhbGlkYXRvckVwb2NoSW5mb0V2ZW50JztcblxuZXhwb3J0IGNvbnN0IFNVSV9DTE9DS19PQkpFQ1RfSUQgPSBub3JtYWxpemVTdWlPYmplY3RJZCgnMHg2Jyk7XG5cbi8vIGBzdWk6OnBheWAgbW9kdWxlIGlzIHVzZWQgZm9yIENvaW4gbWFuYWdlbWVudCAoc3BsaXQsIGpvaW4sIGpvaW5fYW5kX3RyYW5zZmVyIGV0Yyk7XG5leHBvcnQgY29uc3QgUEFZX01PRFVMRV9OQU1FID0gJ3BheSc7XG5leHBvcnQgY29uc3QgUEFZX1NQTElUX0NPSU5fVkVDX0ZVTkNfTkFNRSA9ICdzcGxpdF92ZWMnO1xuZXhwb3J0IGNvbnN0IFBBWV9KT0lOX0NPSU5fRlVOQ19OQU1FID0gJ2pvaW4nO1xuZXhwb3J0IGNvbnN0IENPSU5fVFlQRV9BUkdfUkVHRVggPSAvXjB4Mjo6Y29pbjo6Q29pbjwoLispPiQvO1xuXG50eXBlIE9iamVjdERhdGEgPSBPYmplY3REYXRhRnVsbCB8IFN1aU9iamVjdEluZm87XG50eXBlIE9iamVjdERhdGFGdWxsID0gU3VpT2JqZWN0UmVzcG9uc2UgfCBTdWlNb3ZlT2JqZWN0O1xuXG5leHBvcnQgZnVuY3Rpb24gaXNPYmplY3REYXRhRnVsbChyZXNwOiBPYmplY3REYXRhIHwgT2JqZWN0RGF0YUZ1bGwpOiByZXNwIGlzIFN1aU9iamVjdFJlc3BvbnNlIHtcbiAgcmV0dXJuICEhKHJlc3AgYXMgU3VpT2JqZWN0UmVzcG9uc2UpLmRhdGEgfHwgISEocmVzcCBhcyBTdWlNb3ZlT2JqZWN0KS50eXBlO1xufVxuXG5leHBvcnQgY29uc3QgQ29pbk1ldGFkYXRhU3RydWN0ID0gb2JqZWN0KHtcbiAgZGVjaW1hbHM6IG51bWJlcigpLFxuICBuYW1lOiBzdHJpbmcoKSxcbiAgc3ltYm9sOiBzdHJpbmcoKSxcbiAgZGVzY3JpcHRpb246IHN0cmluZygpLFxuICBpY29uVXJsOiB1bmlvbihbc3RyaW5nKCksIGxpdGVyYWwobnVsbCldKSxcbiAgaWQ6IHVuaW9uKFtPYmplY3RJZCwgbGl0ZXJhbChudWxsKV0pLFxufSk7XG5cbmV4cG9ydCB0eXBlIENvaW5NZXRhZGF0YSA9IEluZmVyPHR5cGVvZiBDb2luTWV0YWRhdGFTdHJ1Y3Q+O1xuXG4vKipcbiAqIFV0aWxpdHkgY2xhc3MgZm9yIDB4Mjo6Y29pblxuICogYXMgZGVmaW5lZCBpbiBodHRwczovL2dpdGh1Yi5jb20vTXlzdGVuTGFicy9zdWkvYmxvYi9jYTkwNDZmZDhiMWE5ZTg2MzRhNGI3NGIwZTdkYWJkYzdlYTU0NDc1L3N1aV9wcm9ncmFtbWFiaWxpdHkvZnJhbWV3b3JrL3NvdXJjZXMvQ29pbi5tb3ZlI0w0XG4gKi9cbmV4cG9ydCBjbGFzcyBDb2luIHtcbiAgc3RhdGljIGlzQ29pbihkYXRhOiBPYmplY3REYXRhKTogYm9vbGVhbiB7XG4gICAgcmV0dXJuIENvaW4uZ2V0VHlwZShkYXRhKT8ubWF0Y2goQ09JTl9UWVBFX0FSR19SRUdFWCkgIT0gbnVsbDtcbiAgfVxuXG4gIHN0YXRpYyBnZXRDb2luVHlwZSh0eXBlOiBzdHJpbmcpIHtcbiAgICBjb25zdCBbLCByZXNdID0gdHlwZS5tYXRjaChDT0lOX1RZUEVfQVJHX1JFR0VYKSA/PyBbXTtcbiAgICByZXR1cm4gcmVzIHx8IG51bGw7XG4gIH1cblxuICBzdGF0aWMgZ2V0Q29pblR5cGVBcmcob2JqOiBPYmplY3REYXRhKSB7XG4gICAgY29uc3QgdHlwZSA9IENvaW4uZ2V0VHlwZShvYmopO1xuICAgIHJldHVybiB0eXBlID8gQ29pbi5nZXRDb2luVHlwZSh0eXBlKSA6IG51bGw7XG4gIH1cblxuICBzdGF0aWMgaXNTVUkob2JqOiBPYmplY3REYXRhKSB7XG4gICAgY29uc3QgYXJnID0gQ29pbi5nZXRDb2luVHlwZUFyZyhvYmopO1xuICAgIHJldHVybiBhcmcgPyBDb2luLmdldENvaW5TeW1ib2woYXJnKSA9PT0gJ1NVSScgOiBmYWxzZTtcbiAgfVxuXG4gIHN0YXRpYyBnZXRDb2luU3ltYm9sKGNvaW5UeXBlQXJnOiBzdHJpbmcpIHtcbiAgICByZXR1cm4gY29pblR5cGVBcmcuc3Vic3RyaW5nKGNvaW5UeXBlQXJnLmxhc3RJbmRleE9mKCc6JykgKyAxKTtcbiAgfVxuXG4gIHN0YXRpYyBnZXRDb2luU3RydWN0VGFnKGNvaW5UeXBlQXJnOiBzdHJpbmcpOiBTdHJ1Y3RUYWcge1xuICAgIHJldHVybiB7XG4gICAgICBhZGRyZXNzOiBub3JtYWxpemVTdWlPYmplY3RJZChjb2luVHlwZUFyZy5zcGxpdCgnOjonKVswXSksXG4gICAgICBtb2R1bGU6IGNvaW5UeXBlQXJnLnNwbGl0KCc6OicpWzFdLFxuICAgICAgbmFtZTogY29pblR5cGVBcmcuc3BsaXQoJzo6JylbMl0sXG4gICAgICB0eXBlUGFyYW1zOiBbXSxcbiAgICB9O1xuICB9XG5cbiAgcHVibGljIHN0YXRpYyBnZXRJRChvYmo6IE9iamVjdERhdGEpOiBPYmplY3RJZCB7XG4gICAgaWYgKCdmaWVsZHMnIGluIG9iaikge1xuICAgICAgcmV0dXJuIG9iai5maWVsZHMuaWQuaWQ7XG4gICAgfVxuICAgIHJldHVybiBnZXRPYmplY3RJZChvYmopO1xuICB9XG5cbiAgc3RhdGljIHRvdGFsQmFsYW5jZShjb2luczogQ29pblN0cnVjdFtdKTogYmlnaW50IHtcbiAgICByZXR1cm4gY29pbnMucmVkdWNlKChwYXJ0aWFsU3VtLCBjKSA9PiBwYXJ0aWFsU3VtICsgQ29pbi5nZXRCYWxhbmNlRnJvbUNvaW5TdHJ1Y3QoYyksIEJpZ0ludCgwKSk7XG4gIH1cblxuICAvKipcbiAgICogU29ydCBjb2luIGJ5IGJhbGFuY2UgaW4gYW4gYXNjZW5kaW5nIG9yZGVyXG4gICAqL1xuICBzdGF0aWMgc29ydEJ5QmFsYW5jZShjb2luczogQ29pblN0cnVjdFtdKTogQ29pblN0cnVjdFtdIHtcbiAgICByZXR1cm4gWy4uLmNvaW5zXS5zb3J0KChhLCBiKSA9PlxuICAgICAgQ29pbi5nZXRCYWxhbmNlRnJvbUNvaW5TdHJ1Y3QoYSkgPCBDb2luLmdldEJhbGFuY2VGcm9tQ29pblN0cnVjdChiKVxuICAgICAgICA/IC0xXG4gICAgICAgIDogQ29pbi5nZXRCYWxhbmNlRnJvbUNvaW5TdHJ1Y3QoYSkgPiBDb2luLmdldEJhbGFuY2VGcm9tQ29pblN0cnVjdChiKVxuICAgICAgICA/IDFcbiAgICAgICAgOiAwXG4gICAgKTtcbiAgfVxuXG4gIHN0YXRpYyBnZXRCYWxhbmNlRnJvbUNvaW5TdHJ1Y3QoY29pbjogQ29pblN0cnVjdCk6IGJpZ2ludCB7XG4gICAgcmV0dXJuIEJpZ0ludChjb2luLmJhbGFuY2UpO1xuICB9XG5cbiAgc3RhdGljIGdldEJhbGFuY2UoZGF0YTogT2JqZWN0RGF0YUZ1bGwpOiBiaWdpbnQgfCB1bmRlZmluZWQge1xuICAgIGlmICghQ29pbi5pc0NvaW4oZGF0YSkpIHtcbiAgICAgIHJldHVybiB1bmRlZmluZWQ7XG4gICAgfVxuICAgIGNvbnN0IGJhbGFuY2UgPSBnZXRPYmplY3RGaWVsZHMoZGF0YSk/LmJhbGFuY2U7XG4gICAgcmV0dXJuIEJpZ0ludChiYWxhbmNlKTtcbiAgfVxuXG4gIHByaXZhdGUgc3RhdGljIGdldFR5cGUoZGF0YTogT2JqZWN0RGF0YSk6IHN0cmluZyB8IHVuZGVmaW5lZCB7XG4gICAgaWYgKGlzT2JqZWN0RGF0YUZ1bGwoZGF0YSkpIHtcbiAgICAgIHJldHVybiBnZXRPYmplY3RUeXBlKGRhdGEpO1xuICAgIH1cbiAgICByZXR1cm4gZGF0YS50eXBlO1xuICB9XG59XG5cbmV4cG9ydCB0eXBlIERlbGVnYXRpb25EYXRhID0gU3VpTW92ZU9iamVjdCAmIHtcbiAgZGF0YVR5cGU6ICdtb3ZlT2JqZWN0JztcbiAgdHlwZTogJzB4Mjo6ZGVsZWdhdGlvbjo6RGVsZWdhdGlvbic7XG4gIGZpZWxkczoge1xuICAgIGFjdGl2ZV9kZWxlZ2F0aW9uOiBPcHRpb248bnVtYmVyPjtcbiAgICBkZWxlZ2F0ZV9hbW91bnQ6IG51bWJlcjtcbiAgICBuZXh0X3Jld2FyZF91bmNsYWltZWRfZXBvY2g6IG51bWJlcjtcbiAgICB2YWxpZGF0b3JfYWRkcmVzczogU3VpQWRkcmVzcztcbiAgICBpbmZvOiB7XG4gICAgICBpZDogc3RyaW5nO1xuICAgICAgdmVyc2lvbjogbnVtYmVyO1xuICAgIH07XG4gICAgY29pbl9sb2NrZWRfdW50aWxfZXBvY2g6IE9wdGlvbjxTdWlNb3ZlT2JqZWN0PjtcbiAgICBlbmRpbmdfZXBvY2g6IE9wdGlvbjxudW1iZXI+O1xuICB9O1xufTtcblxuZXhwb3J0IHR5cGUgRGVsZWdhdGlvblN1aU9iamVjdCA9IE9taXQ8U3VpT2JqZWN0RGF0YSwgJ2RhdGEnPiAmIHtcbiAgZGF0YTogRGVsZWdhdGlvbkRhdGE7XG59O1xuXG4vLyBDbGFzcyBmb3IgZGVsZWdhdGlvbi5tb3ZlXG4vLyBzZWUgaHR0cHM6Ly9naXRodWIuY29tL015c3RlbkxhYnMvZmFzdG5mdC9ibG9iLzE2MWFhMjdmZTdlYjhlY2YyODY2ZWM5ZWIxOTJlNzY4ZjI1ZGE3NjgvY3JhdGVzL3N1aS1mcmFtZXdvcmsvc291cmNlcy9nb3Zlcm5hbmNlL2RlbGVnYXRpb24ubW92ZVxuZXhwb3J0IGNsYXNzIERlbGVnYXRpb24ge1xuICBwdWJsaWMgc3RhdGljIHJlYWRvbmx5IFNVSV9PQkpFQ1RfVFlQRSA9ICcweDI6OmRlbGVnYXRpb246OkRlbGVnYXRpb24nO1xuICBwcml2YXRlIHN1aU9iamVjdDogRGVsZWdhdGlvblN1aU9iamVjdDtcblxuICBwdWJsaWMgc3RhdGljIGlzRGVsZWdhdGlvblN1aU9iamVjdChvYmo6IFN1aU9iamVjdERhdGEpOiBvYmogaXMgRGVsZWdhdGlvblN1aU9iamVjdCB7XG4gICAgcmV0dXJuICd0eXBlJyBpbiBvYmogJiYgb2JqLnR5cGUgPT09IERlbGVnYXRpb24uU1VJX09CSkVDVF9UWVBFO1xuICB9XG5cbiAgY29uc3RydWN0b3Iob2JqOiBEZWxlZ2F0aW9uU3VpT2JqZWN0KSB7XG4gICAgdGhpcy5zdWlPYmplY3QgPSBvYmo7XG4gIH1cblxuICBwdWJsaWMgbmV4dFJld2FyZFVuY2xhaW1lZEVwb2NoKCkge1xuICAgIHJldHVybiB0aGlzLnN1aU9iamVjdC5kYXRhLmZpZWxkcy5uZXh0X3Jld2FyZF91bmNsYWltZWRfZXBvY2g7XG4gIH1cblxuICBwdWJsaWMgYWN0aXZlRGVsZWdhdGlvbigpIHtcbiAgICByZXR1cm4gQmlnSW50KGdldE9wdGlvbih0aGlzLnN1aU9iamVjdC5kYXRhLmZpZWxkcy5hY3RpdmVfZGVsZWdhdGlvbikgfHwgMCk7XG4gIH1cblxuICBwdWJsaWMgZGVsZWdhdGVBbW91bnQoKSB7XG4gICAgcmV0dXJuIHRoaXMuc3VpT2JqZWN0LmRhdGEuZmllbGRzLmRlbGVnYXRlX2Ftb3VudDtcbiAgfVxuXG4gIHB1YmxpYyBlbmRpbmdFcG9jaCgpIHtcbiAgICByZXR1cm4gZ2V0T3B0aW9uKHRoaXMuc3VpT2JqZWN0LmRhdGEuZmllbGRzLmVuZGluZ19lcG9jaCk7XG4gIH1cblxuICBwdWJsaWMgdmFsaWRhdG9yQWRkcmVzcygpIHtcbiAgICByZXR1cm4gdGhpcy5zdWlPYmplY3QuZGF0YS5maWVsZHMudmFsaWRhdG9yX2FkZHJlc3M7XG4gIH1cblxuICBwdWJsaWMgaXNBY3RpdmUoKSB7XG4gICAgcmV0dXJuIHRoaXMuYWN0aXZlRGVsZWdhdGlvbigpID4gMCAmJiAhdGhpcy5lbmRpbmdFcG9jaCgpO1xuICB9XG5cbiAgcHVibGljIGhhc1VuY2xhaW1lZFJld2FyZHMoZXBvY2g6IG51bWJlcikge1xuICAgIHJldHVybiB0aGlzLm5leHRSZXdhcmRVbmNsYWltZWRFcG9jaCgpIDw9IGVwb2NoICYmICh0aGlzLmlzQWN0aXZlKCkgfHwgKHRoaXMuZW5kaW5nRXBvY2goKSB8fCAwKSA+IGVwb2NoKTtcbiAgfVxufVxuIl19
@@ -0,0 +1,3 @@
1
+ export * from './framework';
2
+ export * from './sui-system-state';
3
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../../src/lib/mystenlab/framework/index.ts"],"names":[],"mappings":"AAAA,cAAc,aAAa,CAAC;AAC5B,cAAc,oBAAoB,CAAC"}
@@ -0,0 +1,19 @@
1
+ "use strict";
2
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
+ if (k2 === undefined) k2 = k;
4
+ var desc = Object.getOwnPropertyDescriptor(m, k);
5
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
6
+ desc = { enumerable: true, get: function() { return m[k]; } };
7
+ }
8
+ Object.defineProperty(o, k2, desc);
9
+ }) : (function(o, m, k, k2) {
10
+ if (k2 === undefined) k2 = k;
11
+ o[k2] = m[k];
12
+ }));
13
+ var __exportStar = (this && this.__exportStar) || function(m, exports) {
14
+ for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
15
+ };
16
+ Object.defineProperty(exports, "__esModule", { value: true });
17
+ __exportStar(require("./framework"), exports);
18
+ __exportStar(require("./sui-system-state"), exports);
19
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9zcmMvbGliL215c3RlbmxhYi9mcmFtZXdvcmsvaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7Ozs7OztBQUFBLDhDQUE0QjtBQUM1QixxREFBbUMiLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgKiBmcm9tICcuL2ZyYW1ld29yayc7XG5leHBvcnQgKiBmcm9tICcuL3N1aS1zeXN0ZW0tc3RhdGUnO1xuIl19
@@ -0,0 +1,14 @@
1
+ import { SharedObjectRef } from '../types';
2
+ /**
3
+ * Address of the Sui System object.
4
+ * Always the same in every Sui network (local, devnet, testnet).
5
+ */
6
+ export declare const SUI_SYSTEM_STATE_OBJECT_ID: string;
7
+ export declare const SUI_SYSTEM_STATE_OBJECT: SharedObjectRef;
8
+ export declare const SUI_SYSTEM_MODULE_NAME = "sui_system";
9
+ export declare const ADD_STAKE_FUN_NAME = "request_add_stake";
10
+ export declare const ADD_STAKE_LOCKED_COIN_FUN_NAME = "request_add_stake_with_locked_coin";
11
+ export declare const WITHDRAW_STAKE_FUN_NAME = "request_withdraw_stake";
12
+ export declare const SUI_STAKING_POOL_MODULE_NAME = "staking_pool";
13
+ export declare const SUI_STAKING_POOL_SPLIT_FUN_NAME = "split";
14
+ //# sourceMappingURL=sui-system-state.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"sui-system-state.d.ts","sourceRoot":"","sources":["../../../../../src/lib/mystenlab/framework/sui-system-state.ts"],"names":[],"mappings":"AAAA,OAAO,EAAwB,eAAe,EAAE,MAAM,UAAU,CAAC;AAEjE;;;GAGG;AACH,eAAO,MAAM,0BAA0B,EAAE,MAAoC,CAAC;AAE9E,eAAO,MAAM,uBAAuB,EAAE,eAIrC,CAAC;AAEF,eAAO,MAAM,sBAAsB,eAAe,CAAC;AACnD,eAAO,MAAM,kBAAkB,sBAAsB,CAAC;AACtD,eAAO,MAAM,8BAA8B,uCAAuC,CAAC;AACnF,eAAO,MAAM,uBAAuB,2BAA2B,CAAC;AAGhE,eAAO,MAAM,4BAA4B,iBAAiB,CAAC;AAC3D,eAAO,MAAM,+BAA+B,UAAU,CAAC"}
@@ -0,0 +1,22 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.SUI_STAKING_POOL_SPLIT_FUN_NAME = exports.SUI_STAKING_POOL_MODULE_NAME = exports.WITHDRAW_STAKE_FUN_NAME = exports.ADD_STAKE_LOCKED_COIN_FUN_NAME = exports.ADD_STAKE_FUN_NAME = exports.SUI_SYSTEM_MODULE_NAME = exports.SUI_SYSTEM_STATE_OBJECT = exports.SUI_SYSTEM_STATE_OBJECT_ID = void 0;
4
+ const types_1 = require("../types");
5
+ /**
6
+ * Address of the Sui System object.
7
+ * Always the same in every Sui network (local, devnet, testnet).
8
+ */
9
+ exports.SUI_SYSTEM_STATE_OBJECT_ID = (0, types_1.normalizeSuiObjectId)('0x5');
10
+ exports.SUI_SYSTEM_STATE_OBJECT = {
11
+ objectId: exports.SUI_SYSTEM_STATE_OBJECT_ID,
12
+ initialSharedVersion: 1,
13
+ mutable: true,
14
+ };
15
+ exports.SUI_SYSTEM_MODULE_NAME = 'sui_system';
16
+ exports.ADD_STAKE_FUN_NAME = 'request_add_stake';
17
+ exports.ADD_STAKE_LOCKED_COIN_FUN_NAME = 'request_add_stake_with_locked_coin';
18
+ exports.WITHDRAW_STAKE_FUN_NAME = 'request_withdraw_stake';
19
+ // https://github.com/MystenLabs/sui/blob/main/crates/sui-framework/docs/staking_pool.md
20
+ exports.SUI_STAKING_POOL_MODULE_NAME = 'staking_pool';
21
+ exports.SUI_STAKING_POOL_SPLIT_FUN_NAME = 'split';
22
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3VpLXN5c3RlbS1zdGF0ZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3NyYy9saWIvbXlzdGVubGFiL2ZyYW1ld29yay9zdWktc3lzdGVtLXN0YXRlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7OztBQUFBLG9DQUFpRTtBQUVqRTs7O0dBR0c7QUFDVSxRQUFBLDBCQUEwQixHQUFXLElBQUEsNEJBQW9CLEVBQUMsS0FBSyxDQUFDLENBQUM7QUFFakUsUUFBQSx1QkFBdUIsR0FBb0I7SUFDdEQsUUFBUSxFQUFFLGtDQUEwQjtJQUNwQyxvQkFBb0IsRUFBRSxDQUFDO0lBQ3ZCLE9BQU8sRUFBRSxJQUFJO0NBQ2QsQ0FBQztBQUVXLFFBQUEsc0JBQXNCLEdBQUcsWUFBWSxDQUFDO0FBQ3RDLFFBQUEsa0JBQWtCLEdBQUcsbUJBQW1CLENBQUM7QUFDekMsUUFBQSw4QkFBOEIsR0FBRyxvQ0FBb0MsQ0FBQztBQUN0RSxRQUFBLHVCQUF1QixHQUFHLHdCQUF3QixDQUFDO0FBRWhFLHdGQUF3RjtBQUMzRSxRQUFBLDRCQUE0QixHQUFHLGNBQWMsQ0FBQztBQUM5QyxRQUFBLCtCQUErQixHQUFHLE9BQU8sQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IG5vcm1hbGl6ZVN1aU9iamVjdElkLCBTaGFyZWRPYmplY3RSZWYgfSBmcm9tICcuLi90eXBlcyc7XG5cbi8qKlxuICogQWRkcmVzcyBvZiB0aGUgU3VpIFN5c3RlbSBvYmplY3QuXG4gKiBBbHdheXMgdGhlIHNhbWUgaW4gZXZlcnkgU3VpIG5ldHdvcmsgKGxvY2FsLCBkZXZuZXQsIHRlc3RuZXQpLlxuICovXG5leHBvcnQgY29uc3QgU1VJX1NZU1RFTV9TVEFURV9PQkpFQ1RfSUQ6IHN0cmluZyA9IG5vcm1hbGl6ZVN1aU9iamVjdElkKCcweDUnKTtcblxuZXhwb3J0IGNvbnN0IFNVSV9TWVNURU1fU1RBVEVfT0JKRUNUOiBTaGFyZWRPYmplY3RSZWYgPSB7XG4gIG9iamVjdElkOiBTVUlfU1lTVEVNX1NUQVRFX09CSkVDVF9JRCxcbiAgaW5pdGlhbFNoYXJlZFZlcnNpb246IDEsXG4gIG11dGFibGU6IHRydWUsXG59O1xuXG5leHBvcnQgY29uc3QgU1VJX1NZU1RFTV9NT0RVTEVfTkFNRSA9ICdzdWlfc3lzdGVtJztcbmV4cG9ydCBjb25zdCBBRERfU1RBS0VfRlVOX05BTUUgPSAncmVxdWVzdF9hZGRfc3Rha2UnO1xuZXhwb3J0IGNvbnN0IEFERF9TVEFLRV9MT0NLRURfQ09JTl9GVU5fTkFNRSA9ICdyZXF1ZXN0X2FkZF9zdGFrZV93aXRoX2xvY2tlZF9jb2luJztcbmV4cG9ydCBjb25zdCBXSVRIRFJBV19TVEFLRV9GVU5fTkFNRSA9ICdyZXF1ZXN0X3dpdGhkcmF3X3N0YWtlJztcblxuLy8gaHR0cHM6Ly9naXRodWIuY29tL015c3RlbkxhYnMvc3VpL2Jsb2IvbWFpbi9jcmF0ZXMvc3VpLWZyYW1ld29yay9kb2NzL3N0YWtpbmdfcG9vbC5tZFxuZXhwb3J0IGNvbnN0IFNVSV9TVEFLSU5HX1BPT0xfTU9EVUxFX05BTUUgPSAnc3Rha2luZ19wb29sJztcbmV4cG9ydCBjb25zdCBTVUlfU1RBS0lOR19QT09MX1NQTElUX0ZVTl9OQU1FID0gJ3NwbGl0JztcbiJdfQ==
@@ -0,0 +1,7 @@
1
+ import { TypeTag } from '../types';
2
+ export declare class TypeTagSerializer {
3
+ static parseFromStr(str: string, normalizeAddress?: boolean): TypeTag;
4
+ static parseStructTypeArgs(str: string, normalizeAddress?: boolean): TypeTag[];
5
+ static tagToString(tag: TypeTag): string;
6
+ }
7
+ //# sourceMappingURL=type-tag-serializer.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"type-tag-serializer.d.ts","sourceRoot":"","sources":["../../../../../src/lib/mystenlab/txn-data-serializers/type-tag-serializer.ts"],"names":[],"mappings":"AAAA,OAAO,EAAuB,OAAO,EAAE,MAAM,UAAU,CAAC;AAKxD,qBAAa,iBAAiB;IAC5B,MAAM,CAAC,YAAY,CAAC,GAAG,EAAE,MAAM,EAAE,gBAAgB,UAAQ,GAAG,OAAO;IA4CnE,MAAM,CAAC,mBAAmB,CAAC,GAAG,EAAE,MAAM,EAAE,gBAAgB,UAAQ,GAAG,OAAO,EAAE;IA0B5E,MAAM,CAAC,WAAW,CAAC,GAAG,EAAE,OAAO,GAAG,MAAM;CAsCzC"}
@@ -0,0 +1,119 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.TypeTagSerializer = void 0;
4
+ const types_1 = require("../types");
5
+ const VECTOR_REGEX = /^vector<(.+)>$/;
6
+ const STRUCT_REGEX = /^([^:]+)::([^:]+)::([^<]+)(<(.+)>)?/;
7
+ class TypeTagSerializer {
8
+ static parseFromStr(str, normalizeAddress = false) {
9
+ if (str === 'address') {
10
+ return { address: null };
11
+ }
12
+ else if (str === 'bool') {
13
+ return { bool: null };
14
+ }
15
+ else if (str === 'u8') {
16
+ return { u8: null };
17
+ }
18
+ else if (str === 'u16') {
19
+ return { u16: null };
20
+ }
21
+ else if (str === 'u32') {
22
+ return { u32: null };
23
+ }
24
+ else if (str === 'u64') {
25
+ return { u64: null };
26
+ }
27
+ else if (str === 'u128') {
28
+ return { u128: null };
29
+ }
30
+ else if (str === 'u256') {
31
+ return { u256: null };
32
+ }
33
+ else if (str === 'signer') {
34
+ return { signer: null };
35
+ }
36
+ const vectorMatch = str.match(VECTOR_REGEX);
37
+ if (vectorMatch) {
38
+ return {
39
+ vector: TypeTagSerializer.parseFromStr(vectorMatch[1], normalizeAddress),
40
+ };
41
+ }
42
+ const structMatch = str.match(STRUCT_REGEX);
43
+ if (structMatch) {
44
+ const address = normalizeAddress ? (0, types_1.normalizeSuiAddress)(structMatch[1]) : structMatch[1];
45
+ return {
46
+ struct: {
47
+ address,
48
+ module: structMatch[2],
49
+ name: structMatch[3],
50
+ typeParams: structMatch[5] === undefined ? [] : TypeTagSerializer.parseStructTypeArgs(structMatch[5], normalizeAddress),
51
+ },
52
+ };
53
+ }
54
+ throw new Error(`Encountered unexpected token when parsing type args for ${str}`);
55
+ }
56
+ static parseStructTypeArgs(str, normalizeAddress = false) {
57
+ // split `str` by all `,` outside angle brackets
58
+ const tok = [];
59
+ let word = '';
60
+ let nestedAngleBrackets = 0;
61
+ for (let i = 0; i < str.length; i++) {
62
+ const char = str[i];
63
+ if (char === '<') {
64
+ nestedAngleBrackets++;
65
+ }
66
+ if (char === '>') {
67
+ nestedAngleBrackets--;
68
+ }
69
+ if (nestedAngleBrackets === 0 && char === ',') {
70
+ tok.push(word.trim());
71
+ word = '';
72
+ continue;
73
+ }
74
+ word += char;
75
+ }
76
+ tok.push(word.trim());
77
+ return tok.map((tok) => TypeTagSerializer.parseFromStr(tok, normalizeAddress));
78
+ }
79
+ static tagToString(tag) {
80
+ if ('bool' in tag) {
81
+ return 'bool';
82
+ }
83
+ if ('u8' in tag) {
84
+ return 'u8';
85
+ }
86
+ if ('u16' in tag) {
87
+ return 'u16';
88
+ }
89
+ if ('u32' in tag) {
90
+ return 'u32';
91
+ }
92
+ if ('u64' in tag) {
93
+ return 'u64';
94
+ }
95
+ if ('u128' in tag) {
96
+ return 'u128';
97
+ }
98
+ if ('u256' in tag) {
99
+ return 'u256';
100
+ }
101
+ if ('address' in tag) {
102
+ return 'address';
103
+ }
104
+ if ('signer' in tag) {
105
+ return 'signer';
106
+ }
107
+ if ('vector' in tag) {
108
+ return `vector<${TypeTagSerializer.tagToString(tag.vector)}>`;
109
+ }
110
+ if ('struct' in tag) {
111
+ const struct = tag.struct;
112
+ const typeParams = struct.typeParams.map(TypeTagSerializer.tagToString).join(', ');
113
+ return `${struct.address}::${struct.module}::${struct.name}${typeParams ? `<${typeParams}>` : ''}`;
114
+ }
115
+ throw new Error('Invalid TypeTag');
116
+ }
117
+ }
118
+ exports.TypeTagSerializer = TypeTagSerializer;
119
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHlwZS10YWctc2VyaWFsaXplci5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3NyYy9saWIvbXlzdGVubGFiL3R4bi1kYXRhLXNlcmlhbGl6ZXJzL3R5cGUtdGFnLXNlcmlhbGl6ZXIudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7O0FBQUEsb0NBQXdEO0FBRXhELE1BQU0sWUFBWSxHQUFHLGdCQUFnQixDQUFDO0FBQ3RDLE1BQU0sWUFBWSxHQUFHLHFDQUFxQyxDQUFDO0FBRTNELE1BQWEsaUJBQWlCO0lBQzVCLE1BQU0sQ0FBQyxZQUFZLENBQUMsR0FBVyxFQUFFLGdCQUFnQixHQUFHLEtBQUs7UUFDdkQsSUFBSSxHQUFHLEtBQUssU0FBUyxFQUFFLENBQUM7WUFDdEIsT0FBTyxFQUFFLE9BQU8sRUFBRSxJQUFJLEVBQUUsQ0FBQztRQUMzQixDQUFDO2FBQU0sSUFBSSxHQUFHLEtBQUssTUFBTSxFQUFFLENBQUM7WUFDMUIsT0FBTyxFQUFFLElBQUksRUFBRSxJQUFJLEVBQUUsQ0FBQztRQUN4QixDQUFDO2FBQU0sSUFBSSxHQUFHLEtBQUssSUFBSSxFQUFFLENBQUM7WUFDeEIsT0FBTyxFQUFFLEVBQUUsRUFBRSxJQUFJLEVBQUUsQ0FBQztRQUN0QixDQUFDO2FBQU0sSUFBSSxHQUFHLEtBQUssS0FBSyxFQUFFLENBQUM7WUFDekIsT0FBTyxFQUFFLEdBQUcsRUFBRSxJQUFJLEVBQUUsQ0FBQztRQUN2QixDQUFDO2FBQU0sSUFBSSxHQUFHLEtBQUssS0FBSyxFQUFFLENBQUM7WUFDekIsT0FBTyxFQUFFLEdBQUcsRUFBRSxJQUFJLEVBQUUsQ0FBQztRQUN2QixDQUFDO2FBQU0sSUFBSSxHQUFHLEtBQUssS0FBSyxFQUFFLENBQUM7WUFDekIsT0FBTyxFQUFFLEdBQUcsRUFBRSxJQUFJLEVBQUUsQ0FBQztRQUN2QixDQUFDO2FBQU0sSUFBSSxHQUFHLEtBQUssTUFBTSxFQUFFLENBQUM7WUFDMUIsT0FBTyxFQUFFLElBQUksRUFBRSxJQUFJLEVBQUUsQ0FBQztRQUN4QixDQUFDO2FBQU0sSUFBSSxHQUFHLEtBQUssTUFBTSxFQUFFLENBQUM7WUFDMUIsT0FBTyxFQUFFLElBQUksRUFBRSxJQUFJLEVBQUUsQ0FBQztRQUN4QixDQUFDO2FBQU0sSUFBSSxHQUFHLEtBQUssUUFBUSxFQUFFLENBQUM7WUFDNUIsT0FBTyxFQUFFLE1BQU0sRUFBRSxJQUFJLEVBQUUsQ0FBQztRQUMxQixDQUFDO1FBQ0QsTUFBTSxXQUFXLEdBQUcsR0FBRyxDQUFDLEtBQUssQ0FBQyxZQUFZLENBQUMsQ0FBQztRQUM1QyxJQUFJLFdBQVcsRUFBRSxDQUFDO1lBQ2hCLE9BQU87Z0JBQ0wsTUFBTSxFQUFFLGlCQUFpQixDQUFDLFlBQVksQ0FBQyxXQUFXLENBQUMsQ0FBQyxDQUFDLEVBQUUsZ0JBQWdCLENBQUM7YUFDekUsQ0FBQztRQUNKLENBQUM7UUFFRCxNQUFNLFdBQVcsR0FBRyxHQUFHLENBQUMsS0FBSyxDQUFDLFlBQVksQ0FBQyxDQUFDO1FBQzVDLElBQUksV0FBVyxFQUFFLENBQUM7WUFDaEIsTUFBTSxPQUFPLEdBQUcsZ0JBQWdCLENBQUMsQ0FBQyxDQUFDLElBQUEsMkJBQW1CLEVBQUMsV0FBVyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLFdBQVcsQ0FBQyxDQUFDLENBQUMsQ0FBQztZQUN4RixPQUFPO2dCQUNMLE1BQU0sRUFBRTtvQkFDTixPQUFPO29CQUNQLE1BQU0sRUFBRSxXQUFXLENBQUMsQ0FBQyxDQUFDO29CQUN0QixJQUFJLEVBQUUsV0FBVyxDQUFDLENBQUMsQ0FBQztvQkFDcEIsVUFBVSxFQUNSLFdBQVcsQ0FBQyxDQUFDLENBQUMsS0FBSyxTQUFTLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsaUJBQWlCLENBQUMsbUJBQW1CLENBQUMsV0FBVyxDQUFDLENBQUMsQ0FBQyxFQUFFLGdCQUFnQixDQUFDO2lCQUM5RzthQUNGLENBQUM7UUFDSixDQUFDO1FBRUQsTUFBTSxJQUFJLEtBQUssQ0FBQywyREFBMkQsR0FBRyxFQUFFLENBQUMsQ0FBQztJQUNwRixDQUFDO0lBRUQsTUFBTSxDQUFDLG1CQUFtQixDQUFDLEdBQVcsRUFBRSxnQkFBZ0IsR0FBRyxLQUFLO1FBQzlELGdEQUFnRDtRQUNoRCxNQUFNLEdBQUcsR0FBa0IsRUFBRSxDQUFDO1FBQzlCLElBQUksSUFBSSxHQUFHLEVBQUUsQ0FBQztRQUNkLElBQUksbUJBQW1CLEdBQUcsQ0FBQyxDQUFDO1FBQzVCLEtBQUssSUFBSSxDQUFDLEdBQUcsQ0FBQyxFQUFFLENBQUMsR0FBRyxHQUFHLENBQUMsTUFBTSxFQUFFLENBQUMsRUFBRSxFQUFFLENBQUM7WUFDcEMsTUFBTSxJQUFJLEdBQUcsR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDO1lBQ3BCLElBQUksSUFBSSxLQUFLLEdBQUcsRUFBRSxDQUFDO2dCQUNqQixtQkFBbUIsRUFBRSxDQUFDO1lBQ3hCLENBQUM7WUFDRCxJQUFJLElBQUksS0FBSyxHQUFHLEVBQUUsQ0FBQztnQkFDakIsbUJBQW1CLEVBQUUsQ0FBQztZQUN4QixDQUFDO1lBQ0QsSUFBSSxtQkFBbUIsS0FBSyxDQUFDLElBQUksSUFBSSxLQUFLLEdBQUcsRUFBRSxDQUFDO2dCQUM5QyxHQUFHLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxJQUFJLEVBQUUsQ0FBQyxDQUFDO2dCQUN0QixJQUFJLEdBQUcsRUFBRSxDQUFDO2dCQUNWLFNBQVM7WUFDWCxDQUFDO1lBQ0QsSUFBSSxJQUFJLElBQUksQ0FBQztRQUNmLENBQUM7UUFFRCxHQUFHLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxJQUFJLEVBQUUsQ0FBQyxDQUFDO1FBRXRCLE9BQU8sR0FBRyxDQUFDLEdBQUcsQ0FBQyxDQUFDLEdBQUcsRUFBRSxFQUFFLENBQUMsaUJBQWlCLENBQUMsWUFBWSxDQUFDLEdBQUcsRUFBRSxnQkFBZ0IsQ0FBQyxDQUFDLENBQUM7SUFDakYsQ0FBQztJQUVELE1BQU0sQ0FBQyxXQUFXLENBQUMsR0FBWTtRQUM3QixJQUFJLE1BQU0sSUFBSSxHQUFHLEVBQUUsQ0FBQztZQUNsQixPQUFPLE1BQU0sQ0FBQztRQUNoQixDQUFDO1FBQ0QsSUFBSSxJQUFJLElBQUksR0FBRyxFQUFFLENBQUM7WUFDaEIsT0FBTyxJQUFJLENBQUM7UUFDZCxDQUFDO1FBQ0QsSUFBSSxLQUFLLElBQUksR0FBRyxFQUFFLENBQUM7WUFDakIsT0FBTyxLQUFLLENBQUM7UUFDZixDQUFDO1FBQ0QsSUFBSSxLQUFLLElBQUksR0FBRyxFQUFFLENBQUM7WUFDakIsT0FBTyxLQUFLLENBQUM7UUFDZixDQUFDO1FBQ0QsSUFBSSxLQUFLLElBQUksR0FBRyxFQUFFLENBQUM7WUFDakIsT0FBTyxLQUFLLENBQUM7UUFDZixDQUFDO1FBQ0QsSUFBSSxNQUFNLElBQUksR0FBRyxFQUFFLENBQUM7WUFDbEIsT0FBTyxNQUFNLENBQUM7UUFDaEIsQ0FBQztRQUNELElBQUksTUFBTSxJQUFJLEdBQUcsRUFBRSxDQUFDO1lBQ2xCLE9BQU8sTUFBTSxDQUFDO1FBQ2hCLENBQUM7UUFDRCxJQUFJLFNBQVMsSUFBSSxHQUFHLEVBQUUsQ0FBQztZQUNyQixPQUFPLFNBQVMsQ0FBQztRQUNuQixDQUFDO1FBQ0QsSUFBSSxRQUFRLElBQUksR0FBRyxFQUFFLENBQUM7WUFDcEIsT0FBTyxRQUFRLENBQUM7UUFDbEIsQ0FBQztRQUNELElBQUksUUFBUSxJQUFJLEdBQUcsRUFBRSxDQUFDO1lBQ3BCLE9BQU8sVUFBVSxpQkFBaUIsQ0FBQyxXQUFXLENBQUMsR0FBRyxDQUFDLE1BQU0sQ0FBQyxHQUFHLENBQUM7UUFDaEUsQ0FBQztRQUNELElBQUksUUFBUSxJQUFJLEdBQUcsRUFBRSxDQUFDO1lBQ3BCLE1BQU0sTUFBTSxHQUFHLEdBQUcsQ0FBQyxNQUFNLENBQUM7WUFDMUIsTUFBTSxVQUFVLEdBQUcsTUFBTSxDQUFDLFVBQVUsQ0FBQyxHQUFHLENBQUMsaUJBQWlCLENBQUMsV0FBVyxDQUFDLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDO1lBQ25GLE9BQU8sR0FBRyxNQUFNLENBQUMsT0FBTyxLQUFLLE1BQU0sQ0FBQyxNQUFNLEtBQUssTUFBTSxDQUFDLElBQUksR0FBRyxVQUFVLENBQUMsQ0FBQyxDQUFDLElBQUksVUFBVSxHQUFHLENBQUMsQ0FBQyxDQUFDLEVBQUUsRUFBRSxDQUFDO1FBQ3JHLENBQUM7UUFDRCxNQUFNLElBQUksS0FBSyxDQUFDLGlCQUFpQixDQUFDLENBQUM7SUFDckMsQ0FBQztDQUNGO0FBN0dELDhDQTZHQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IG5vcm1hbGl6ZVN1aUFkZHJlc3MsIFR5cGVUYWcgfSBmcm9tICcuLi90eXBlcyc7XG5cbmNvbnN0IFZFQ1RPUl9SRUdFWCA9IC9edmVjdG9yPCguKyk+JC87XG5jb25zdCBTVFJVQ1RfUkVHRVggPSAvXihbXjpdKyk6OihbXjpdKyk6OihbXjxdKykoPCguKyk+KT8vO1xuXG5leHBvcnQgY2xhc3MgVHlwZVRhZ1NlcmlhbGl6ZXIge1xuICBzdGF0aWMgcGFyc2VGcm9tU3RyKHN0cjogc3RyaW5nLCBub3JtYWxpemVBZGRyZXNzID0gZmFsc2UpOiBUeXBlVGFnIHtcbiAgICBpZiAoc3RyID09PSAnYWRkcmVzcycpIHtcbiAgICAgIHJldHVybiB7IGFkZHJlc3M6IG51bGwgfTtcbiAgICB9IGVsc2UgaWYgKHN0ciA9PT0gJ2Jvb2wnKSB7XG4gICAgICByZXR1cm4geyBib29sOiBudWxsIH07XG4gICAgfSBlbHNlIGlmIChzdHIgPT09ICd1OCcpIHtcbiAgICAgIHJldHVybiB7IHU4OiBudWxsIH07XG4gICAgfSBlbHNlIGlmIChzdHIgPT09ICd1MTYnKSB7XG4gICAgICByZXR1cm4geyB1MTY6IG51bGwgfTtcbiAgICB9IGVsc2UgaWYgKHN0ciA9PT0gJ3UzMicpIHtcbiAgICAgIHJldHVybiB7IHUzMjogbnVsbCB9O1xuICAgIH0gZWxzZSBpZiAoc3RyID09PSAndTY0Jykge1xuICAgICAgcmV0dXJuIHsgdTY0OiBudWxsIH07XG4gICAgfSBlbHNlIGlmIChzdHIgPT09ICd1MTI4Jykge1xuICAgICAgcmV0dXJuIHsgdTEyODogbnVsbCB9O1xuICAgIH0gZWxzZSBpZiAoc3RyID09PSAndTI1NicpIHtcbiAgICAgIHJldHVybiB7IHUyNTY6IG51bGwgfTtcbiAgICB9IGVsc2UgaWYgKHN0ciA9PT0gJ3NpZ25lcicpIHtcbiAgICAgIHJldHVybiB7IHNpZ25lcjogbnVsbCB9O1xuICAgIH1cbiAgICBjb25zdCB2ZWN0b3JNYXRjaCA9IHN0ci5tYXRjaChWRUNUT1JfUkVHRVgpO1xuICAgIGlmICh2ZWN0b3JNYXRjaCkge1xuICAgICAgcmV0dXJuIHtcbiAgICAgICAgdmVjdG9yOiBUeXBlVGFnU2VyaWFsaXplci5wYXJzZUZyb21TdHIodmVjdG9yTWF0Y2hbMV0sIG5vcm1hbGl6ZUFkZHJlc3MpLFxuICAgICAgfTtcbiAgICB9XG5cbiAgICBjb25zdCBzdHJ1Y3RNYXRjaCA9IHN0ci5tYXRjaChTVFJVQ1RfUkVHRVgpO1xuICAgIGlmIChzdHJ1Y3RNYXRjaCkge1xuICAgICAgY29uc3QgYWRkcmVzcyA9IG5vcm1hbGl6ZUFkZHJlc3MgPyBub3JtYWxpemVTdWlBZGRyZXNzKHN0cnVjdE1hdGNoWzFdKSA6IHN0cnVjdE1hdGNoWzFdO1xuICAgICAgcmV0dXJuIHtcbiAgICAgICAgc3RydWN0OiB7XG4gICAgICAgICAgYWRkcmVzcyxcbiAgICAgICAgICBtb2R1bGU6IHN0cnVjdE1hdGNoWzJdLFxuICAgICAgICAgIG5hbWU6IHN0cnVjdE1hdGNoWzNdLFxuICAgICAgICAgIHR5cGVQYXJhbXM6XG4gICAgICAgICAgICBzdHJ1Y3RNYXRjaFs1XSA9PT0gdW5kZWZpbmVkID8gW10gOiBUeXBlVGFnU2VyaWFsaXplci5wYXJzZVN0cnVjdFR5cGVBcmdzKHN0cnVjdE1hdGNoWzVdLCBub3JtYWxpemVBZGRyZXNzKSxcbiAgICAgICAgfSxcbiAgICAgIH07XG4gICAgfVxuXG4gICAgdGhyb3cgbmV3IEVycm9yKGBFbmNvdW50ZXJlZCB1bmV4cGVjdGVkIHRva2VuIHdoZW4gcGFyc2luZyB0eXBlIGFyZ3MgZm9yICR7c3RyfWApO1xuICB9XG5cbiAgc3RhdGljIHBhcnNlU3RydWN0VHlwZUFyZ3Moc3RyOiBzdHJpbmcsIG5vcm1hbGl6ZUFkZHJlc3MgPSBmYWxzZSk6IFR5cGVUYWdbXSB7XG4gICAgLy8gc3BsaXQgYHN0cmAgYnkgYWxsIGAsYCBvdXRzaWRlIGFuZ2xlIGJyYWNrZXRzXG4gICAgY29uc3QgdG9rOiBBcnJheTxzdHJpbmc+ID0gW107XG4gICAgbGV0IHdvcmQgPSAnJztcbiAgICBsZXQgbmVzdGVkQW5nbGVCcmFja2V0cyA9IDA7XG4gICAgZm9yIChsZXQgaSA9IDA7IGkgPCBzdHIubGVuZ3RoOyBpKyspIHtcbiAgICAgIGNvbnN0IGNoYXIgPSBzdHJbaV07XG4gICAgICBpZiAoY2hhciA9PT0gJzwnKSB7XG4gICAgICAgIG5lc3RlZEFuZ2xlQnJhY2tldHMrKztcbiAgICAgIH1cbiAgICAgIGlmIChjaGFyID09PSAnPicpIHtcbiAgICAgICAgbmVzdGVkQW5nbGVCcmFja2V0cy0tO1xuICAgICAgfVxuICAgICAgaWYgKG5lc3RlZEFuZ2xlQnJhY2tldHMgPT09IDAgJiYgY2hhciA9PT0gJywnKSB7XG4gICAgICAgIHRvay5wdXNoKHdvcmQudHJpbSgpKTtcbiAgICAgICAgd29yZCA9ICcnO1xuICAgICAgICBjb250aW51ZTtcbiAgICAgIH1cbiAgICAgIHdvcmQgKz0gY2hhcjtcbiAgICB9XG5cbiAgICB0b2sucHVzaCh3b3JkLnRyaW0oKSk7XG5cbiAgICByZXR1cm4gdG9rLm1hcCgodG9rKSA9PiBUeXBlVGFnU2VyaWFsaXplci5wYXJzZUZyb21TdHIodG9rLCBub3JtYWxpemVBZGRyZXNzKSk7XG4gIH1cblxuICBzdGF0aWMgdGFnVG9TdHJpbmcodGFnOiBUeXBlVGFnKTogc3RyaW5nIHtcbiAgICBpZiAoJ2Jvb2wnIGluIHRhZykge1xuICAgICAgcmV0dXJuICdib29sJztcbiAgICB9XG4gICAgaWYgKCd1OCcgaW4gdGFnKSB7XG4gICAgICByZXR1cm4gJ3U4JztcbiAgICB9XG4gICAgaWYgKCd1MTYnIGluIHRhZykge1xuICAgICAgcmV0dXJuICd1MTYnO1xuICAgIH1cbiAgICBpZiAoJ3UzMicgaW4gdGFnKSB7XG4gICAgICByZXR1cm4gJ3UzMic7XG4gICAgfVxuICAgIGlmICgndTY0JyBpbiB0YWcpIHtcbiAgICAgIHJldHVybiAndTY0JztcbiAgICB9XG4gICAgaWYgKCd1MTI4JyBpbiB0YWcpIHtcbiAgICAgIHJldHVybiAndTEyOCc7XG4gICAgfVxuICAgIGlmICgndTI1NicgaW4gdGFnKSB7XG4gICAgICByZXR1cm4gJ3UyNTYnO1xuICAgIH1cbiAgICBpZiAoJ2FkZHJlc3MnIGluIHRhZykge1xuICAgICAgcmV0dXJuICdhZGRyZXNzJztcbiAgICB9XG4gICAgaWYgKCdzaWduZXInIGluIHRhZykge1xuICAgICAgcmV0dXJuICdzaWduZXInO1xuICAgIH1cbiAgICBpZiAoJ3ZlY3RvcicgaW4gdGFnKSB7XG4gICAgICByZXR1cm4gYHZlY3Rvcjwke1R5cGVUYWdTZXJpYWxpemVyLnRhZ1RvU3RyaW5nKHRhZy52ZWN0b3IpfT5gO1xuICAgIH1cbiAgICBpZiAoJ3N0cnVjdCcgaW4gdGFnKSB7XG4gICAgICBjb25zdCBzdHJ1Y3QgPSB0YWcuc3RydWN0O1xuICAgICAgY29uc3QgdHlwZVBhcmFtcyA9IHN0cnVjdC50eXBlUGFyYW1zLm1hcChUeXBlVGFnU2VyaWFsaXplci50YWdUb1N0cmluZykuam9pbignLCAnKTtcbiAgICAgIHJldHVybiBgJHtzdHJ1Y3QuYWRkcmVzc306OiR7c3RydWN0Lm1vZHVsZX06OiR7c3RydWN0Lm5hbWV9JHt0eXBlUGFyYW1zID8gYDwke3R5cGVQYXJhbXN9PmAgOiAnJ31gO1xuICAgIH1cbiAgICB0aHJvdyBuZXcgRXJyb3IoJ0ludmFsaWQgVHlwZVRhZycpO1xuICB9XG59XG4iXX0=
@@ -0,0 +1,89 @@
1
+ import { Infer } from 'superstruct';
2
+ export declare const CoinStruct: import("superstruct").Struct<{
3
+ digest: string;
4
+ version: number;
5
+ previousTransaction: string;
6
+ coinType: string;
7
+ balance: number;
8
+ coinObjectId: string;
9
+ lockedUntilEpoch: number | null;
10
+ }, {
11
+ coinType: import("superstruct").Struct<string, null>;
12
+ coinObjectId: import("superstruct").Struct<string, null>;
13
+ version: import("superstruct").Struct<number, null>;
14
+ digest: import("superstruct").Struct<string, null>;
15
+ balance: import("superstruct").Struct<number, null>;
16
+ lockedUntilEpoch: import("superstruct").Struct<number | null, null>;
17
+ previousTransaction: import("superstruct").Struct<string, null>;
18
+ }>;
19
+ export type CoinStruct = Infer<typeof CoinStruct>;
20
+ export declare const PaginatedCoins: import("superstruct").Struct<{
21
+ data: {
22
+ digest: string;
23
+ version: number;
24
+ previousTransaction: string;
25
+ coinType: string;
26
+ balance: number;
27
+ coinObjectId: string;
28
+ lockedUntilEpoch: number | null;
29
+ }[];
30
+ hasNextPage: boolean;
31
+ nextCursor: string | null;
32
+ }, {
33
+ data: import("superstruct").Struct<{
34
+ digest: string;
35
+ version: number;
36
+ previousTransaction: string;
37
+ coinType: string;
38
+ balance: number;
39
+ coinObjectId: string;
40
+ lockedUntilEpoch: number | null;
41
+ }[], import("superstruct").Struct<{
42
+ digest: string;
43
+ version: number;
44
+ previousTransaction: string;
45
+ coinType: string;
46
+ balance: number;
47
+ coinObjectId: string;
48
+ lockedUntilEpoch: number | null;
49
+ }, {
50
+ coinType: import("superstruct").Struct<string, null>;
51
+ coinObjectId: import("superstruct").Struct<string, null>;
52
+ version: import("superstruct").Struct<number, null>;
53
+ digest: import("superstruct").Struct<string, null>;
54
+ balance: import("superstruct").Struct<number, null>;
55
+ lockedUntilEpoch: import("superstruct").Struct<number | null, null>;
56
+ previousTransaction: import("superstruct").Struct<string, null>;
57
+ }>>;
58
+ nextCursor: import("superstruct").Struct<string | null, null>;
59
+ hasNextPage: import("superstruct").Struct<boolean, null>;
60
+ }>;
61
+ export type PaginatedCoins = Infer<typeof PaginatedCoins>;
62
+ export declare const CoinBalance: import("superstruct").Struct<{
63
+ coinType: string;
64
+ totalBalance: number;
65
+ coinObjectCount: number;
66
+ lockedBalance: {
67
+ number?: number | undefined;
68
+ epochId?: number | undefined;
69
+ };
70
+ }, {
71
+ coinType: import("superstruct").Struct<string, null>;
72
+ coinObjectCount: import("superstruct").Struct<number, null>;
73
+ totalBalance: import("superstruct").Struct<number, null>;
74
+ lockedBalance: import("superstruct").Struct<{
75
+ number?: number | undefined;
76
+ epochId?: number | undefined;
77
+ }, {
78
+ epochId: import("superstruct").Struct<number | undefined, null>;
79
+ number: import("superstruct").Struct<number | undefined, null>;
80
+ }>;
81
+ }>;
82
+ export type CoinBalance = Infer<typeof CoinBalance>;
83
+ export declare const CoinSupply: import("superstruct").Struct<{
84
+ value: number;
85
+ }, {
86
+ value: import("superstruct").Struct<number, null>;
87
+ }>;
88
+ export type CoinSupply = Infer<typeof CoinSupply>;
89
+ //# sourceMappingURL=coin.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"coin.d.ts","sourceRoot":"","sources":["../../../../../src/lib/mystenlab/types/coin.ts"],"names":[],"mappings":"AAAA,OAAO,EAAkB,KAAK,EAA8D,MAAM,aAAa,CAAC;AAGhH,eAAO,MAAM,UAAU;;;;;;;;;;;;;;;;EAQrB,CAAC;AAEH,MAAM,MAAM,UAAU,GAAG,KAAK,CAAC,OAAO,UAAU,CAAC,CAAC;AAElD,eAAO,MAAM,cAAc;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAIzB,CAAC;AAEH,MAAM,MAAM,cAAc,GAAG,KAAK,CAAC,OAAO,cAAc,CAAC,CAAC;AAE1D,eAAO,MAAM,WAAW;;;;;;;;;;;;;;;;;;;EAQtB,CAAC;AAEH,MAAM,MAAM,WAAW,GAAG,KAAK,CAAC,OAAO,WAAW,CAAC,CAAC;AAEpD,eAAO,MAAM,UAAU;;;;EAErB,CAAC;AAEH,MAAM,MAAM,UAAU,GAAG,KAAK,CAAC,OAAO,UAAU,CAAC,CAAC"}
@@ -0,0 +1,32 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.CoinSupply = exports.CoinBalance = exports.PaginatedCoins = exports.CoinStruct = void 0;
4
+ const superstruct_1 = require("superstruct");
5
+ const common_1 = require("./common");
6
+ exports.CoinStruct = (0, superstruct_1.object)({
7
+ coinType: (0, superstruct_1.string)(),
8
+ coinObjectId: common_1.ObjectId,
9
+ version: (0, superstruct_1.number)(),
10
+ digest: common_1.TransactionDigest,
11
+ balance: (0, superstruct_1.number)(),
12
+ lockedUntilEpoch: (0, superstruct_1.nullable)((0, superstruct_1.number)()),
13
+ previousTransaction: common_1.TransactionDigest,
14
+ });
15
+ exports.PaginatedCoins = (0, superstruct_1.object)({
16
+ data: (0, superstruct_1.array)(exports.CoinStruct),
17
+ nextCursor: (0, superstruct_1.union)([common_1.ObjectId, (0, superstruct_1.literal)(null)]),
18
+ hasNextPage: (0, superstruct_1.boolean)(),
19
+ });
20
+ exports.CoinBalance = (0, superstruct_1.object)({
21
+ coinType: (0, superstruct_1.string)(),
22
+ coinObjectCount: (0, superstruct_1.number)(),
23
+ totalBalance: (0, superstruct_1.number)(),
24
+ lockedBalance: (0, superstruct_1.object)({
25
+ epochId: (0, superstruct_1.optional)((0, superstruct_1.number)()),
26
+ number: (0, superstruct_1.optional)((0, superstruct_1.number)()),
27
+ }),
28
+ });
29
+ exports.CoinSupply = (0, superstruct_1.object)({
30
+ value: (0, superstruct_1.number)(),
31
+ });
32
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29pbi5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3NyYy9saWIvbXlzdGVubGFiL3R5cGVzL2NvaW4udHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7O0FBQUEsNkNBQWdIO0FBQ2hILHFDQUF1RDtBQUUxQyxRQUFBLFVBQVUsR0FBRyxJQUFBLG9CQUFNLEVBQUM7SUFDL0IsUUFBUSxFQUFFLElBQUEsb0JBQU0sR0FBRTtJQUNsQixZQUFZLEVBQUUsaUJBQVE7SUFDdEIsT0FBTyxFQUFFLElBQUEsb0JBQU0sR0FBRTtJQUNqQixNQUFNLEVBQUUsMEJBQWlCO0lBQ3pCLE9BQU8sRUFBRSxJQUFBLG9CQUFNLEdBQUU7SUFDakIsZ0JBQWdCLEVBQUUsSUFBQSxzQkFBUSxFQUFDLElBQUEsb0JBQU0sR0FBRSxDQUFDO0lBQ3BDLG1CQUFtQixFQUFFLDBCQUFpQjtDQUN2QyxDQUFDLENBQUM7QUFJVSxRQUFBLGNBQWMsR0FBRyxJQUFBLG9CQUFNLEVBQUM7SUFDbkMsSUFBSSxFQUFFLElBQUEsbUJBQUssRUFBQyxrQkFBVSxDQUFDO0lBQ3ZCLFVBQVUsRUFBRSxJQUFBLG1CQUFLLEVBQUMsQ0FBQyxpQkFBUSxFQUFFLElBQUEscUJBQU8sRUFBQyxJQUFJLENBQUMsQ0FBQyxDQUFDO0lBQzVDLFdBQVcsRUFBRSxJQUFBLHFCQUFPLEdBQUU7Q0FDdkIsQ0FBQyxDQUFDO0FBSVUsUUFBQSxXQUFXLEdBQUcsSUFBQSxvQkFBTSxFQUFDO0lBQ2hDLFFBQVEsRUFBRSxJQUFBLG9CQUFNLEdBQUU7SUFDbEIsZUFBZSxFQUFFLElBQUEsb0JBQU0sR0FBRTtJQUN6QixZQUFZLEVBQUUsSUFBQSxvQkFBTSxHQUFFO0lBQ3RCLGFBQWEsRUFBRSxJQUFBLG9CQUFNLEVBQUM7UUFDcEIsT0FBTyxFQUFFLElBQUEsc0JBQVEsRUFBQyxJQUFBLG9CQUFNLEdBQUUsQ0FBQztRQUMzQixNQUFNLEVBQUUsSUFBQSxzQkFBUSxFQUFDLElBQUEsb0JBQU0sR0FBRSxDQUFDO0tBQzNCLENBQUM7Q0FDSCxDQUFDLENBQUM7QUFJVSxRQUFBLFVBQVUsR0FBRyxJQUFBLG9CQUFNLEVBQUM7SUFDL0IsS0FBSyxFQUFFLElBQUEsb0JBQU0sR0FBRTtDQUNoQixDQUFDLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBhcnJheSwgYm9vbGVhbiwgSW5mZXIsIGxpdGVyYWwsIG51bGxhYmxlLCBudW1iZXIsIG9iamVjdCwgb3B0aW9uYWwsIHN0cmluZywgdW5pb24gfSBmcm9tICdzdXBlcnN0cnVjdCc7XG5pbXBvcnQgeyBPYmplY3RJZCwgVHJhbnNhY3Rpb25EaWdlc3QgfSBmcm9tICcuL2NvbW1vbic7XG5cbmV4cG9ydCBjb25zdCBDb2luU3RydWN0ID0gb2JqZWN0KHtcbiAgY29pblR5cGU6IHN0cmluZygpLFxuICBjb2luT2JqZWN0SWQ6IE9iamVjdElkLFxuICB2ZXJzaW9uOiBudW1iZXIoKSxcbiAgZGlnZXN0OiBUcmFuc2FjdGlvbkRpZ2VzdCxcbiAgYmFsYW5jZTogbnVtYmVyKCksXG4gIGxvY2tlZFVudGlsRXBvY2g6IG51bGxhYmxlKG51bWJlcigpKSxcbiAgcHJldmlvdXNUcmFuc2FjdGlvbjogVHJhbnNhY3Rpb25EaWdlc3QsXG59KTtcblxuZXhwb3J0IHR5cGUgQ29pblN0cnVjdCA9IEluZmVyPHR5cGVvZiBDb2luU3RydWN0PjtcblxuZXhwb3J0IGNvbnN0IFBhZ2luYXRlZENvaW5zID0gb2JqZWN0KHtcbiAgZGF0YTogYXJyYXkoQ29pblN0cnVjdCksXG4gIG5leHRDdXJzb3I6IHVuaW9uKFtPYmplY3RJZCwgbGl0ZXJhbChudWxsKV0pLFxuICBoYXNOZXh0UGFnZTogYm9vbGVhbigpLFxufSk7XG5cbmV4cG9ydCB0eXBlIFBhZ2luYXRlZENvaW5zID0gSW5mZXI8dHlwZW9mIFBhZ2luYXRlZENvaW5zPjtcblxuZXhwb3J0IGNvbnN0IENvaW5CYWxhbmNlID0gb2JqZWN0KHtcbiAgY29pblR5cGU6IHN0cmluZygpLFxuICBjb2luT2JqZWN0Q291bnQ6IG51bWJlcigpLFxuICB0b3RhbEJhbGFuY2U6IG51bWJlcigpLFxuICBsb2NrZWRCYWxhbmNlOiBvYmplY3Qoe1xuICAgIGVwb2NoSWQ6IG9wdGlvbmFsKG51bWJlcigpKSxcbiAgICBudW1iZXI6IG9wdGlvbmFsKG51bWJlcigpKSxcbiAgfSksXG59KTtcblxuZXhwb3J0IHR5cGUgQ29pbkJhbGFuY2UgPSBJbmZlcjx0eXBlb2YgQ29pbkJhbGFuY2U+O1xuXG5leHBvcnQgY29uc3QgQ29pblN1cHBseSA9IG9iamVjdCh7XG4gIHZhbHVlOiBudW1iZXIoKSxcbn0pO1xuXG5leHBvcnQgdHlwZSBDb2luU3VwcGx5ID0gSW5mZXI8dHlwZW9mIENvaW5TdXBwbHk+O1xuIl19