@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.
- package/.eslintignore +6 -0
- package/.mocharc.yml +7 -0
- package/CHANGELOG.md +1152 -0
- package/LICENSE +191 -0
- package/README.md +30 -0
- package/dist/src/index.d.ts +6 -0
- package/dist/src/index.d.ts.map +1 -0
- package/dist/src/index.js +22 -0
- package/dist/src/lib/compareTransactionBlocks.d.ts +8 -0
- package/dist/src/lib/compareTransactionBlocks.d.ts.map +1 -0
- package/dist/src/lib/compareTransactionBlocks.js +12 -0
- package/dist/src/lib/constants.d.ts +17 -0
- package/dist/src/lib/constants.d.ts.map +1 -0
- package/dist/src/lib/constants.js +30 -0
- package/dist/src/lib/customTransaction.d.ts +57 -0
- package/dist/src/lib/customTransaction.d.ts.map +1 -0
- package/dist/src/lib/customTransaction.js +159 -0
- package/dist/src/lib/customTransactionBuilder.d.ts +46 -0
- package/dist/src/lib/customTransactionBuilder.d.ts.map +1 -0
- package/dist/src/lib/customTransactionBuilder.js +117 -0
- package/dist/src/lib/iface.d.ts +131 -0
- package/dist/src/lib/iface.d.ts.map +1 -0
- package/dist/src/lib/iface.js +63 -0
- package/dist/src/lib/index.d.ts +22 -0
- package/dist/src/lib/index.d.ts.map +1 -0
- package/dist/src/lib/index.js +77 -0
- package/dist/src/lib/keyPair.d.ts +29 -0
- package/dist/src/lib/keyPair.d.ts.map +1 -0
- package/dist/src/lib/keyPair.js +97 -0
- package/dist/src/lib/mystenlab/builder/Inputs.d.ts +66 -0
- package/dist/src/lib/mystenlab/builder/Inputs.d.ts.map +1 -0
- package/dist/src/lib/mystenlab/builder/Inputs.js +55 -0
- package/dist/src/lib/mystenlab/builder/TransactionBlock.d.ts +302 -0
- package/dist/src/lib/mystenlab/builder/TransactionBlock.d.ts.map +1 -0
- package/dist/src/lib/mystenlab/builder/TransactionBlock.js +255 -0
- package/dist/src/lib/mystenlab/builder/TransactionDataBlock.d.ts +566 -0
- package/dist/src/lib/mystenlab/builder/TransactionDataBlock.d.ts.map +1 -0
- package/dist/src/lib/mystenlab/builder/TransactionDataBlock.js +168 -0
- package/dist/src/lib/mystenlab/builder/Transactions.d.ts +937 -0
- package/dist/src/lib/mystenlab/builder/Transactions.d.ts.map +1 -0
- package/dist/src/lib/mystenlab/builder/Transactions.js +118 -0
- package/dist/src/lib/mystenlab/builder/bcs.d.ts +25 -0
- package/dist/src/lib/mystenlab/builder/bcs.d.ts.map +1 -0
- package/dist/src/lib/mystenlab/builder/bcs.js +141 -0
- package/dist/src/lib/mystenlab/builder/index.d.ts +5 -0
- package/dist/src/lib/mystenlab/builder/index.d.ts.map +1 -0
- package/dist/src/lib/mystenlab/builder/index.js +21 -0
- package/dist/src/lib/mystenlab/builder/serializer.d.ts +4 -0
- package/dist/src/lib/mystenlab/builder/serializer.d.ts.map +1 -0
- package/dist/src/lib/mystenlab/builder/serializer.js +99 -0
- package/dist/src/lib/mystenlab/builder/utils.d.ts +10 -0
- package/dist/src/lib/mystenlab/builder/utils.d.ts.map +1 -0
- package/dist/src/lib/mystenlab/builder/utils.js +10 -0
- package/dist/src/lib/mystenlab/cryptography/hash.d.ts +8 -0
- package/dist/src/lib/mystenlab/cryptography/hash.d.ts.map +1 -0
- package/dist/src/lib/mystenlab/cryptography/hash.js +21 -0
- package/dist/src/lib/mystenlab/framework/framework.d.ts +93 -0
- package/dist/src/lib/mystenlab/framework/framework.d.ts.map +1 -0
- package/dist/src/lib/mystenlab/framework/framework.js +135 -0
- package/dist/src/lib/mystenlab/framework/index.d.ts +3 -0
- package/dist/src/lib/mystenlab/framework/index.d.ts.map +1 -0
- package/dist/src/lib/mystenlab/framework/index.js +19 -0
- package/dist/src/lib/mystenlab/framework/sui-system-state.d.ts +14 -0
- package/dist/src/lib/mystenlab/framework/sui-system-state.d.ts.map +1 -0
- package/dist/src/lib/mystenlab/framework/sui-system-state.js +22 -0
- package/dist/src/lib/mystenlab/txn-data-serializers/type-tag-serializer.d.ts +7 -0
- package/dist/src/lib/mystenlab/txn-data-serializers/type-tag-serializer.d.ts.map +1 -0
- package/dist/src/lib/mystenlab/txn-data-serializers/type-tag-serializer.js +119 -0
- package/dist/src/lib/mystenlab/types/coin.d.ts +89 -0
- package/dist/src/lib/mystenlab/types/coin.d.ts.map +1 -0
- package/dist/src/lib/mystenlab/types/coin.js +32 -0
- package/dist/src/lib/mystenlab/types/common.d.ts +45 -0
- package/dist/src/lib/mystenlab/types/common.d.ts.map +1 -0
- package/dist/src/lib/mystenlab/types/common.js +84 -0
- package/dist/src/lib/mystenlab/types/events.d.ts +198 -0
- package/dist/src/lib/mystenlab/types/events.d.ts.map +1 -0
- package/dist/src/lib/mystenlab/types/events.js +46 -0
- package/dist/src/lib/mystenlab/types/index.d.ts +9 -0
- package/dist/src/lib/mystenlab/types/index.d.ts.map +1 -0
- package/dist/src/lib/mystenlab/types/index.js +25 -0
- package/dist/src/lib/mystenlab/types/normalized.d.ts +254 -0
- package/dist/src/lib/mystenlab/types/normalized.d.ts.map +1 -0
- package/dist/src/lib/mystenlab/types/normalized.js +111 -0
- package/dist/src/lib/mystenlab/types/objects.d.ts +806 -0
- package/dist/src/lib/mystenlab/types/objects.d.ts.map +1 -0
- package/dist/src/lib/mystenlab/types/objects.js +292 -0
- package/dist/src/lib/mystenlab/types/option.d.ts +8 -0
- package/dist/src/lib/mystenlab/types/option.d.ts.map +1 -0
- package/dist/src/lib/mystenlab/types/option.js +13 -0
- package/dist/src/lib/mystenlab/types/sui-bcs.d.ts +111 -0
- package/dist/src/lib/mystenlab/types/sui-bcs.d.ts.map +1 -0
- package/dist/src/lib/mystenlab/types/sui-bcs.js +107 -0
- package/dist/src/lib/mystenlab/types/transactions.d.ts +6703 -0
- package/dist/src/lib/mystenlab/types/transactions.d.ts.map +1 -0
- package/dist/src/lib/mystenlab/types/transactions.js +389 -0
- package/dist/src/lib/mystenlab/types/validator.d.ts +641 -0
- package/dist/src/lib/mystenlab/types/validator.d.ts.map +1 -0
- package/dist/src/lib/mystenlab/types/validator.js +156 -0
- package/dist/src/lib/resources/walrusConfig.d.ts +22 -0
- package/dist/src/lib/resources/walrusConfig.d.ts.map +1 -0
- package/dist/src/lib/resources/walrusConfig.js +37 -0
- package/dist/src/lib/rpcClient.d.ts +5 -0
- package/dist/src/lib/rpcClient.d.ts.map +1 -0
- package/dist/src/lib/rpcClient.js +74 -0
- package/dist/src/lib/stakingBuilder.d.ts +62 -0
- package/dist/src/lib/stakingBuilder.d.ts.map +1 -0
- package/dist/src/lib/stakingBuilder.js +206 -0
- package/dist/src/lib/stakingTransaction.d.ts +51 -0
- package/dist/src/lib/stakingTransaction.d.ts.map +1 -0
- package/dist/src/lib/stakingTransaction.js +219 -0
- package/dist/src/lib/tokenTransferBuilder.d.ts +38 -0
- package/dist/src/lib/tokenTransferBuilder.d.ts.map +1 -0
- package/dist/src/lib/tokenTransferBuilder.js +132 -0
- package/dist/src/lib/tokenTransferTransaction.d.ts +57 -0
- package/dist/src/lib/tokenTransferTransaction.d.ts.map +1 -0
- package/dist/src/lib/tokenTransferTransaction.js +250 -0
- package/dist/src/lib/transaction.d.ts +82 -0
- package/dist/src/lib/transaction.d.ts.map +1 -0
- package/dist/src/lib/transaction.js +283 -0
- package/dist/src/lib/transactionBuilder.d.ts +60 -0
- package/dist/src/lib/transactionBuilder.d.ts.map +1 -0
- package/dist/src/lib/transactionBuilder.js +140 -0
- package/dist/src/lib/transactionBuilderFactory.d.ts +48 -0
- package/dist/src/lib/transactionBuilderFactory.d.ts.map +1 -0
- package/dist/src/lib/transactionBuilderFactory.js +127 -0
- package/dist/src/lib/transferBuilder.d.ts +37 -0
- package/dist/src/lib/transferBuilder.d.ts.map +1 -0
- package/dist/src/lib/transferBuilder.js +132 -0
- package/dist/src/lib/transferTransaction.d.ts +54 -0
- package/dist/src/lib/transferTransaction.d.ts.map +1 -0
- package/dist/src/lib/transferTransaction.js +203 -0
- package/dist/src/lib/unstakingBuilder.d.ts +62 -0
- package/dist/src/lib/unstakingBuilder.d.ts.map +1 -0
- package/dist/src/lib/unstakingBuilder.js +227 -0
- package/dist/src/lib/unstakingTransaction.d.ts +75 -0
- package/dist/src/lib/unstakingTransaction.d.ts.map +1 -0
- package/dist/src/lib/unstakingTransaction.js +345 -0
- package/dist/src/lib/utils.d.ts +127 -0
- package/dist/src/lib/utils.d.ts.map +1 -0
- package/dist/src/lib/utils.js +539 -0
- package/dist/src/lib/walrusStakingBuilder.d.ts +66 -0
- package/dist/src/lib/walrusStakingBuilder.d.ts.map +1 -0
- package/dist/src/lib/walrusStakingBuilder.js +200 -0
- package/dist/src/lib/walrusStakingTransaction.d.ts +52 -0
- package/dist/src/lib/walrusStakingTransaction.d.ts.map +1 -0
- package/dist/src/lib/walrusStakingTransaction.js +269 -0
- package/dist/src/lib/walrusWithdrawStakeBuilder.d.ts +36 -0
- package/dist/src/lib/walrusWithdrawStakeBuilder.d.ts.map +1 -0
- package/dist/src/lib/walrusWithdrawStakeBuilder.js +173 -0
- package/dist/src/lib/walrusWithdrawStakeTransaction.d.ts +21 -0
- package/dist/src/lib/walrusWithdrawStakeTransaction.d.ts.map +1 -0
- package/dist/src/lib/walrusWithdrawStakeTransaction.js +190 -0
- package/dist/src/register.d.ts +3 -0
- package/dist/src/register.d.ts.map +1 -0
- package/dist/src/register.js +15 -0
- package/dist/src/sui.d.ts +92 -0
- package/dist/src/sui.d.ts.map +1 -0
- package/dist/src/sui.js +665 -0
- package/dist/src/suiToken.d.ts +22 -0
- package/dist/src/suiToken.d.ts.map +1 -0
- package/dist/src/suiToken.js +61 -0
- package/dist/src/tsui.d.ts +22 -0
- package/dist/src/tsui.d.ts.map +1 -0
- package/dist/src/tsui.js +30 -0
- 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 @@
|
|
|
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,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHlwZS10YWctc2VyaWFsaXplci5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3NyYy9saWIvbXlzdGVubGFiL3R4bi1kYXRhLXNlcmlhbGl6ZXJzL3R5cGUtdGFnLXNlcmlhbGl6ZXIudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7O0FBQUEsb0NBQXdEO0FBRXhELE1BQU0sWUFBWSxHQUFHLGdCQUFnQixDQUFDO0FBQ3RDLE1BQU0sWUFBWSxHQUFHLHFDQUFxQyxDQUFDO0FBRTNELE1BQWEsaUJBQWlCO0lBQzVCLE1BQU0sQ0FBQyxZQUFZLENBQUMsR0FBVyxFQUFFLGdCQUFnQixHQUFHLEtBQUs7UUFDdkQsSUFBSSxHQUFHLEtBQUssU0FBUyxFQUFFLENBQUM7WUFDdEIsT0FBTyxFQUFFLE9BQU8sRUFBRSxJQUFJLEVBQUUsQ0FBQztRQUMzQixDQUFDO2FBQU0sSUFBSSxHQUFHLEtBQUssTUFBTSxFQUFFLENBQUM7WUFDMUIsT0FBTyxFQUFFLElBQUksRUFBRSxJQUFJLEVBQUUsQ0FBQztRQUN4QixDQUFDO2FBQU0sSUFBSSxHQUFHLEtBQUssSUFBSSxFQUFFLENBQUM7WUFDeEIsT0FBTyxFQUFFLEVBQUUsRUFBRSxJQUFJLEVBQUUsQ0FBQztRQUN0QixDQUFDO2FBQU0sSUFBSSxHQUFHLEtBQUssS0FBSyxFQUFFLENBQUM7WUFDekIsT0FBTyxFQUFFLEdBQUcsRUFBRSxJQUFJLEVBQUUsQ0FBQztRQUN2QixDQUFDO2FBQU0sSUFBSSxHQUFHLEtBQUssS0FBSyxFQUFFLENBQUM7WUFDekIsT0FBTyxFQUFFLEdBQUcsRUFBRSxJQUFJLEVBQUUsQ0FBQztRQUN2QixDQUFDO2FBQU0sSUFBSSxHQUFHLEtBQUssS0FBSyxFQUFFLENBQUM7WUFDekIsT0FBTyxFQUFFLEdBQUcsRUFBRSxJQUFJLEVBQUUsQ0FBQztRQUN2QixDQUFDO2FBQU0sSUFBSSxHQUFHLEtBQUssTUFBTSxFQUFFLENBQUM7WUFDMUIsT0FBTyxFQUFF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LENBQUMsT0FBTyxLQUFLLE1BQU0sQ0FBQyxNQUFNLEtBQUssTUFBTSxDQUFDLElBQUksR0FBRyxVQUFVLENBQUMsQ0FBQyxDQUFDLElBQUksVUFBVSxHQUFHLENBQUMsQ0FBQyxDQUFDLEVBQUUsRUFBRSxDQUFDO1FBQ3JHLENBQUM7UUFDRCxNQUFNLElBQUksS0FBSyxDQUFDLGlCQUFpQixDQUFDLENBQUM7SUFDckMsQ0FBQztDQUNGO0FBN0dELDhDQTZHQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IG5vcm1hbGl6ZVN1aUFkZHJlc3MsIFR5cGVUYWcgfSBmcm9tICcuLi90eXBlcyc7XG5cbmNvbnN0IFZFQ1RPUl9SRUdFWCA9IC9edmVjdG9yPCguKyk+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
|