@bitgo/sdk-coin-sui 2.0.1 → 3.0.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/.eslintignore +1 -0
- package/CHANGELOG.md +33 -0
- package/dist/src/lib/constants.d.ts +3 -15
- package/dist/src/lib/constants.d.ts.map +1 -1
- package/dist/src/lib/constants.js +7 -20
- package/dist/src/lib/iface.d.ts +35 -181
- package/dist/src/lib/iface.d.ts.map +1 -1
- package/dist/src/lib/iface.js +11 -38
- package/dist/src/lib/index.d.ts +2 -0
- package/dist/src/lib/index.d.ts.map +1 -1
- package/dist/src/lib/index.js +6 -2
- package/dist/src/lib/keyPair.d.ts +4 -0
- package/dist/src/lib/keyPair.d.ts.map +1 -1
- package/dist/src/lib/keyPair.js +7 -10
- package/dist/src/lib/mystenlab/builder/Inputs.d.ts +66 -0
- package/dist/src/lib/mystenlab/builder/Inputs.d.ts.map +1 -0
- package/dist/src/lib/mystenlab/builder/Inputs.js +56 -0
- package/dist/src/lib/mystenlab/builder/TransactionBlock.d.ts +616 -0
- package/dist/src/lib/mystenlab/builder/TransactionBlock.d.ts.map +1 -0
- package/dist/src/lib/mystenlab/builder/TransactionBlock.js +260 -0
- package/dist/src/lib/mystenlab/builder/TransactionDataBlock.d.ts +566 -0
- package/dist/src/lib/mystenlab/builder/TransactionDataBlock.d.ts.map +1 -0
- package/dist/src/lib/mystenlab/builder/TransactionDataBlock.js +171 -0
- package/dist/src/lib/mystenlab/builder/Transactions.d.ts +992 -0
- package/dist/src/lib/mystenlab/builder/Transactions.d.ts.map +1 -0
- package/dist/src/lib/mystenlab/builder/Transactions.js +119 -0
- package/dist/src/lib/mystenlab/builder/bcs.d.ts +25 -0
- package/dist/src/lib/mystenlab/builder/bcs.d.ts.map +1 -0
- package/dist/src/lib/mystenlab/builder/bcs.js +141 -0
- package/dist/src/lib/mystenlab/builder/index.d.ts +5 -0
- package/dist/src/lib/mystenlab/builder/index.d.ts.map +1 -0
- package/dist/src/lib/mystenlab/builder/index.js +17 -0
- package/dist/src/lib/mystenlab/builder/serializer.d.ts +4 -0
- package/dist/src/lib/mystenlab/builder/serializer.d.ts.map +1 -0
- package/dist/src/lib/mystenlab/builder/serializer.js +101 -0
- package/dist/src/lib/mystenlab/builder/utils.d.ts +10 -0
- package/dist/src/lib/mystenlab/builder/utils.d.ts.map +1 -0
- package/dist/src/lib/mystenlab/builder/utils.js +10 -0
- package/dist/src/lib/mystenlab/cryptography/hash.d.ts +8 -0
- package/dist/src/lib/mystenlab/cryptography/hash.d.ts.map +1 -0
- package/dist/src/lib/mystenlab/cryptography/hash.js +22 -0
- package/dist/src/lib/mystenlab/framework/framework.d.ts +93 -0
- package/dist/src/lib/mystenlab/framework/framework.d.ts.map +1 -0
- package/dist/src/lib/mystenlab/framework/framework.js +138 -0
- package/dist/src/lib/mystenlab/framework/index.d.ts +3 -0
- package/dist/src/lib/mystenlab/framework/index.d.ts.map +1 -0
- package/dist/src/lib/mystenlab/framework/index.js +15 -0
- package/dist/src/lib/mystenlab/framework/sui-system-state.d.ts +12 -0
- package/dist/src/lib/mystenlab/framework/sui-system-state.d.ts.map +1 -0
- package/dist/src/lib/mystenlab/framework/sui-system-state.js +19 -0
- package/dist/src/lib/mystenlab/txn-data-serializers/type-tag-serializer.d.ts +7 -0
- package/dist/src/lib/mystenlab/txn-data-serializers/type-tag-serializer.d.ts.map +1 -0
- package/dist/src/lib/mystenlab/txn-data-serializers/type-tag-serializer.js +119 -0
- package/dist/src/lib/mystenlab/types/coin.d.ts +89 -0
- package/dist/src/lib/mystenlab/types/coin.d.ts.map +1 -0
- package/dist/src/lib/mystenlab/types/coin.js +32 -0
- package/dist/src/lib/mystenlab/types/common.d.ts +45 -0
- package/dist/src/lib/mystenlab/types/common.d.ts.map +1 -0
- package/dist/src/lib/mystenlab/types/common.js +84 -0
- package/dist/src/lib/mystenlab/types/events.d.ts +198 -0
- package/dist/src/lib/mystenlab/types/events.d.ts.map +1 -0
- package/dist/src/lib/mystenlab/types/events.js +46 -0
- package/dist/src/lib/mystenlab/types/index.d.ts +9 -0
- package/dist/src/lib/mystenlab/types/index.d.ts.map +1 -0
- package/dist/src/lib/mystenlab/types/index.js +21 -0
- package/dist/src/lib/mystenlab/types/normalized.d.ts +254 -0
- package/dist/src/lib/mystenlab/types/normalized.d.ts.map +1 -0
- package/dist/src/lib/mystenlab/types/normalized.js +111 -0
- package/dist/src/lib/mystenlab/types/objects.d.ts +806 -0
- package/dist/src/lib/mystenlab/types/objects.d.ts.map +1 -0
- package/dist/src/lib/mystenlab/types/objects.js +302 -0
- package/dist/src/lib/mystenlab/types/option.d.ts +8 -0
- package/dist/src/lib/mystenlab/types/option.d.ts.map +1 -0
- package/dist/src/lib/mystenlab/types/option.js +14 -0
- package/dist/src/lib/mystenlab/types/sui-bcs.d.ts +111 -0
- package/dist/src/lib/mystenlab/types/sui-bcs.d.ts.map +1 -0
- package/dist/src/lib/mystenlab/types/sui-bcs.js +107 -0
- package/dist/src/lib/mystenlab/types/transactions.d.ts +6703 -0
- package/dist/src/lib/mystenlab/types/transactions.d.ts.map +1 -0
- package/dist/src/lib/mystenlab/types/transactions.js +405 -0
- package/dist/src/lib/mystenlab/types/validator.d.ts +641 -0
- package/dist/src/lib/mystenlab/types/validator.d.ts.map +1 -0
- package/dist/src/lib/mystenlab/types/validator.js +156 -0
- package/dist/src/lib/stakingBuilder.d.ts +24 -35
- package/dist/src/lib/stakingBuilder.d.ts.map +1 -1
- package/dist/src/lib/stakingBuilder.js +93 -129
- package/dist/src/lib/stakingTransaction.d.ts +5 -21
- package/dist/src/lib/stakingTransaction.d.ts.map +1 -1
- package/dist/src/lib/stakingTransaction.js +77 -219
- package/dist/src/lib/transaction.d.ts +8 -6
- package/dist/src/lib/transaction.d.ts.map +1 -1
- package/dist/src/lib/transaction.js +74 -124
- package/dist/src/lib/transactionBuilder.d.ts +9 -9
- package/dist/src/lib/transactionBuilder.d.ts.map +1 -1
- package/dist/src/lib/transactionBuilder.js +27 -16
- package/dist/src/lib/transactionBuilderFactory.d.ts +8 -5
- package/dist/src/lib/transactionBuilderFactory.d.ts.map +1 -1
- package/dist/src/lib/transactionBuilderFactory.js +17 -11
- package/dist/src/lib/transferBuilder.d.ts +15 -10
- package/dist/src/lib/transferBuilder.d.ts.map +1 -1
- package/dist/src/lib/transferBuilder.js +38 -101
- package/dist/src/lib/transferTransaction.d.ts +5 -4
- package/dist/src/lib/transferTransaction.d.ts.map +1 -1
- package/dist/src/lib/transferTransaction.js +45 -96
- package/dist/src/lib/unstakingBuilder.d.ts +55 -0
- package/dist/src/lib/unstakingBuilder.d.ts.map +1 -0
- package/dist/src/lib/unstakingBuilder.js +148 -0
- package/dist/src/lib/unstakingTransaction.d.ts +51 -0
- package/dist/src/lib/unstakingTransaction.d.ts.map +1 -0
- package/dist/src/lib/unstakingTransaction.js +206 -0
- package/dist/src/lib/utils.d.ts +30 -92
- package/dist/src/lib/utils.d.ts.map +1 -1
- package/dist/src/lib/utils.js +115 -177
- package/dist/src/sui.d.ts.map +1 -1
- package/dist/src/sui.js +23 -13
- package/package.json +9 -9
- package/dist/src/lib/bcs.d.ts +0 -3
- package/dist/src/lib/bcs.d.ts.map +0 -1
- package/dist/src/lib/bcs.js +0 -109
- package/dist/src/lib/txnSchema.d.ts +0 -7
- package/dist/src/lib/txnSchema.d.ts.map +0 -1
- package/dist/src/lib/txnSchema.js +0 -81
|
@@ -0,0 +1,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: string;
|
|
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
|
+
declare type ObjectData = ObjectDataFull | SuiObjectInfo;
|
|
21
|
+
declare 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
|
+
decimals: number;
|
|
28
|
+
description: string;
|
|
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 declare 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 declare 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 declare 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,138 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.Delegation = exports.Coin = exports.CoinMetadataStruct = exports.isObjectDataFull = 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
|
+
const objects_1 = require("../types/objects");
|
|
5
|
+
const common_1 = require("../types/common");
|
|
6
|
+
const option_1 = require("../types/option");
|
|
7
|
+
const superstruct_1 = require("superstruct");
|
|
8
|
+
exports.SUI_SYSTEM_ADDRESS = '0x3';
|
|
9
|
+
exports.SUI_FRAMEWORK_ADDRESS = '0x2';
|
|
10
|
+
exports.MOVE_STDLIB_ADDRESS = '0x1';
|
|
11
|
+
exports.OBJECT_MODULE_NAME = 'object';
|
|
12
|
+
exports.UID_STRUCT_NAME = 'UID';
|
|
13
|
+
exports.ID_STRUCT_NAME = 'ID';
|
|
14
|
+
exports.SUI_TYPE_ARG = `${exports.SUI_FRAMEWORK_ADDRESS}::sui::SUI`;
|
|
15
|
+
exports.VALIDATORS_EVENTS_QUERY = '0x3::validator_set::ValidatorEpochInfoEvent';
|
|
16
|
+
exports.SUI_CLOCK_OBJECT_ID = common_1.normalizeSuiObjectId('0x6');
|
|
17
|
+
// `sui::pay` module is used for Coin management (split, join, join_and_transfer etc);
|
|
18
|
+
exports.PAY_MODULE_NAME = 'pay';
|
|
19
|
+
exports.PAY_SPLIT_COIN_VEC_FUNC_NAME = 'split_vec';
|
|
20
|
+
exports.PAY_JOIN_COIN_FUNC_NAME = 'join';
|
|
21
|
+
exports.COIN_TYPE_ARG_REGEX = /^0x2::coin::Coin<(.+)>$/;
|
|
22
|
+
function isObjectDataFull(resp) {
|
|
23
|
+
return !!resp.data || !!resp.type;
|
|
24
|
+
}
|
|
25
|
+
exports.isObjectDataFull = isObjectDataFull;
|
|
26
|
+
exports.CoinMetadataStruct = superstruct_1.object({
|
|
27
|
+
decimals: superstruct_1.number(),
|
|
28
|
+
name: superstruct_1.string(),
|
|
29
|
+
symbol: superstruct_1.string(),
|
|
30
|
+
description: superstruct_1.string(),
|
|
31
|
+
iconUrl: superstruct_1.union([superstruct_1.string(), superstruct_1.literal(null)]),
|
|
32
|
+
id: superstruct_1.union([common_1.ObjectId, 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
|
+
var _a;
|
|
41
|
+
return ((_a = Coin.getType(data)) === null || _a === void 0 ? void 0 : _a.match(exports.COIN_TYPE_ARG_REGEX)) != null;
|
|
42
|
+
}
|
|
43
|
+
static getCoinType(type) {
|
|
44
|
+
var _a;
|
|
45
|
+
const [, res] = (_a = type.match(exports.COIN_TYPE_ARG_REGEX)) !== null && _a !== void 0 ? _a : [];
|
|
46
|
+
return res || null;
|
|
47
|
+
}
|
|
48
|
+
static getCoinTypeArg(obj) {
|
|
49
|
+
const type = Coin.getType(obj);
|
|
50
|
+
return type ? Coin.getCoinType(type) : null;
|
|
51
|
+
}
|
|
52
|
+
static isSUI(obj) {
|
|
53
|
+
const arg = Coin.getCoinTypeArg(obj);
|
|
54
|
+
return arg ? Coin.getCoinSymbol(arg) === 'SUI' : false;
|
|
55
|
+
}
|
|
56
|
+
static getCoinSymbol(coinTypeArg) {
|
|
57
|
+
return coinTypeArg.substring(coinTypeArg.lastIndexOf(':') + 1);
|
|
58
|
+
}
|
|
59
|
+
static getCoinStructTag(coinTypeArg) {
|
|
60
|
+
return {
|
|
61
|
+
address: common_1.normalizeSuiObjectId(coinTypeArg.split('::')[0]),
|
|
62
|
+
module: coinTypeArg.split('::')[1],
|
|
63
|
+
name: coinTypeArg.split('::')[2],
|
|
64
|
+
typeParams: [],
|
|
65
|
+
};
|
|
66
|
+
}
|
|
67
|
+
static getID(obj) {
|
|
68
|
+
if ('fields' in obj) {
|
|
69
|
+
return obj.fields.id.id;
|
|
70
|
+
}
|
|
71
|
+
return objects_1.getObjectId(obj);
|
|
72
|
+
}
|
|
73
|
+
static totalBalance(coins) {
|
|
74
|
+
return coins.reduce((partialSum, c) => partialSum + Coin.getBalanceFromCoinStruct(c), BigInt(0));
|
|
75
|
+
}
|
|
76
|
+
/**
|
|
77
|
+
* Sort coin by balance in an ascending order
|
|
78
|
+
*/
|
|
79
|
+
static sortByBalance(coins) {
|
|
80
|
+
return [...coins].sort((a, b) => Coin.getBalanceFromCoinStruct(a) < Coin.getBalanceFromCoinStruct(b)
|
|
81
|
+
? -1
|
|
82
|
+
: Coin.getBalanceFromCoinStruct(a) > Coin.getBalanceFromCoinStruct(b)
|
|
83
|
+
? 1
|
|
84
|
+
: 0);
|
|
85
|
+
}
|
|
86
|
+
static getBalanceFromCoinStruct(coin) {
|
|
87
|
+
return BigInt(coin.balance);
|
|
88
|
+
}
|
|
89
|
+
static getBalance(data) {
|
|
90
|
+
var _a;
|
|
91
|
+
if (!Coin.isCoin(data)) {
|
|
92
|
+
return undefined;
|
|
93
|
+
}
|
|
94
|
+
const balance = (_a = objects_1.getObjectFields(data)) === null || _a === void 0 ? void 0 : _a.balance;
|
|
95
|
+
return BigInt(balance);
|
|
96
|
+
}
|
|
97
|
+
static getType(data) {
|
|
98
|
+
if (isObjectDataFull(data)) {
|
|
99
|
+
return objects_1.getObjectType(data);
|
|
100
|
+
}
|
|
101
|
+
return data.type;
|
|
102
|
+
}
|
|
103
|
+
}
|
|
104
|
+
exports.Coin = Coin;
|
|
105
|
+
// Class for delegation.move
|
|
106
|
+
// see https://github.com/MystenLabs/fastnft/blob/161aa27fe7eb8ecf2866ec9eb192e768f25da768/crates/sui-framework/sources/governance/delegation.move
|
|
107
|
+
class Delegation {
|
|
108
|
+
constructor(obj) {
|
|
109
|
+
this.suiObject = obj;
|
|
110
|
+
}
|
|
111
|
+
static isDelegationSuiObject(obj) {
|
|
112
|
+
return 'type' in obj && obj.type === Delegation.SUI_OBJECT_TYPE;
|
|
113
|
+
}
|
|
114
|
+
nextRewardUnclaimedEpoch() {
|
|
115
|
+
return this.suiObject.data.fields.next_reward_unclaimed_epoch;
|
|
116
|
+
}
|
|
117
|
+
activeDelegation() {
|
|
118
|
+
return BigInt(option_1.getOption(this.suiObject.data.fields.active_delegation) || 0);
|
|
119
|
+
}
|
|
120
|
+
delegateAmount() {
|
|
121
|
+
return this.suiObject.data.fields.delegate_amount;
|
|
122
|
+
}
|
|
123
|
+
endingEpoch() {
|
|
124
|
+
return option_1.getOption(this.suiObject.data.fields.ending_epoch);
|
|
125
|
+
}
|
|
126
|
+
validatorAddress() {
|
|
127
|
+
return this.suiObject.data.fields.validator_address;
|
|
128
|
+
}
|
|
129
|
+
isActive() {
|
|
130
|
+
return this.activeDelegation() > 0 && !this.endingEpoch();
|
|
131
|
+
}
|
|
132
|
+
hasUnclaimedRewards(epoch) {
|
|
133
|
+
return this.nextRewardUnclaimedEpoch() <= epoch && (this.isActive() || (this.endingEpoch() || 0) > epoch);
|
|
134
|
+
}
|
|
135
|
+
}
|
|
136
|
+
exports.Delegation = Delegation;
|
|
137
|
+
Delegation.SUI_OBJECT_TYPE = '0x2::delegation::Delegation';
|
|
138
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZnJhbWV3b3JrLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vc3JjL2xpYi9teXN0ZW5sYWIvZnJhbWV3b3JrL2ZyYW1ld29yay50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7QUFBQSw4Q0FRMEI7QUFDMUIsNENBQTZFO0FBRTdFLDRDQUFvRDtBQUdwRCw2Q0FBNEU7QUFFL0QsUUFBQSxrQkFBa0IsR0FBRyxLQUFLLENBQUM7QUFDM0IsUUFBQSxxQkFBcUIsR0FBRyxLQUFLLENBQUM7QUFDOUIsUUFBQSxtQkFBbUIsR0FBRyxLQUFLLENBQUM7QUFDNUIsUUFBQSxrQkFBa0IsR0FBRyxRQUFRLENBQUM7QUFDOUIsUUFBQSxlQUFlLEdBQUcsS0FBSyxDQUFDO0FBQ3hCLFFBQUEsY0FBYyxHQUFHLElBQUksQ0FBQztBQUN0QixRQUFBLFlBQVksR0FBRyxHQUFHLDZCQUFxQixZQUFZLENBQUM7QUFDcEQsUUFBQSx1QkFBdUIsR0FBRyw2Q0FBNkMsQ0FBQztBQUV4RSxRQUFBLG1CQUFtQixHQUFHLDZCQUFvQixDQUFDLEtBQUssQ0FBQyxDQUFDO0FBRS9ELHNGQUFzRjtBQUN6RSxRQUFBLGVBQWUsR0FBRyxLQUFLLENBQUM7QUFDeEIsUUFBQSw0QkFBNEIsR0FBRyxXQUFXLENBQUM7QUFDM0MsUUFBQSx1QkFBdUIsR0FBRyxNQUFNLENBQUM7QUFDakMsUUFBQSxtQkFBbUIsR0FBRyx5QkFBeUIsQ0FBQztBQUs3RCxTQUFnQixnQkFBZ0IsQ0FBQyxJQUFpQztJQUNoRSxPQUFPLENBQUMsQ0FBRSxJQUEwQixDQUFDLElBQUksSUFBSSxDQUFDLENBQUUsSUFBc0IsQ0FBQyxJQUFJLENBQUM7QUFDOUUsQ0FBQztBQUZELDRDQUVDO0FBRVksUUFBQSxrQkFBa0IsR0FBRyxvQkFBTSxDQUFDO0lBQ3ZDLFFBQVEsRUFBRSxvQkFBTSxFQUFFO0lBQ2xCLElBQUksRUFBRSxvQkFBTSxFQUFFO0lBQ2QsTUFBTSxFQUFFLG9CQUFNLEVB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QUFDLGVBQWUsQ0FBQztJQUNsRSxDQUFDO0lBTU0sd0JBQXdCO1FBQzdCLE9BQU8sSUFBSSxDQUFDLFNBQVMsQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLDJCQUEyQixDQUFDO0lBQ2hFLENBQUM7SUFFTSxnQkFBZ0I7UUFDckIsT0FBTyxNQUFNLENBQUMsa0JBQVMsQ0FBQyxJQUFJLENBQUMsU0FBUyxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsaUJBQWlCLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQztJQUM5RSxDQUFDO0lBRU0sY0FBYztRQUNuQixPQUFPLElBQUksQ0FBQyxTQUFTLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxlQUFlLENBQUM7SUFDcEQsQ0FBQztJQUVNLFdBQVc7UUFDaEIsT0FBTyxrQkFBUyxDQUFDLElBQUksQ0FBQyxTQUFTLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxZQUFZLENBQUMsQ0FBQztJQUM1RCxDQUFDO0lBRU0sZ0JBQWdCO1FBQ3JCLE9BQU8sSUFBSSxDQUFDLFNBQVMsQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLGlCQUFpQixDQUFDO0lBQ3RELENBQUM7SUFFTSxRQUFRO1FBQ2IsT0FBTyxJQUFJLENBQUMsZ0JBQWdCLEVBQUUsR0FBRyxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsV0FBVyxFQUFFLENBQUM7SUFDNUQsQ0FBQztJQUVNLG1CQUFtQixDQUFDLEtBQWE7UUFDdEMsT0FBTyxJQUFJLENBQUMsd0JBQXdCLEVBQUUsSUFBSSxLQUFLLElBQUksQ0FBQyxJQUFJLENBQUMsUUFBUSxFQUFFLElBQUksQ0FBQyxJQUFJLENBQUMsV0FBVyxFQUFFLElBQUksQ0FBQyxDQUFDLEdBQUcsS0FBSyxDQUFDLENBQUM7SUFDNUcsQ0FBQzs7QUF0Q0gsZ0NBdUNDO0FBdEN3QiwwQkFBZSxHQUFHLDZCQUE2QixDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcbiAgZ2V0T2JqZWN0RmllbGRzLFxuICBTdWlPYmplY3RSZXNwb25zZSxcbiAgU3VpTW92ZU9iamVjdCxcbiAgU3VpT2JqZWN0SW5mbyxcbiAgU3VpT2JqZWN0RGF0YSxcbiAgZ2V0T2JqZWN0SWQsXG4gIGdldE9iamVjdFR5cGUsXG59IGZyb20gJy4uL3R5cGVzL29iamVjdHMnO1xuaW1wb3J0IHsgbm9ybWFsaXplU3VpT2JqZWN0SWQsIE9iamVjdElkLCBTdWlBZGRyZXNzIH0gZnJvbSAnLi4vdHlwZXMvY29tbW9uJztcblxuaW1wb3J0IHsgZ2V0T3B0aW9uLCBPcHRpb24gfSBmcm9tICcuLi90eXBlcy9vcHRpb24nO1xuaW1wb3J0IHsgQ29pblN0cnVjdCB9IGZyb20gJy4uL3R5cGVzL2NvaW4nO1xuaW1wb3J0IHsgU3RydWN0VGFnIH0gZnJvbSAnLi4vdHlwZXMvc3VpLWJjcyc7XG5pbXBvcnQgeyBJbmZlciwgbGl0ZXJhbCwgbnVtYmVyLCBvYmplY3QsIHN0cmluZywgdW5pb24gfSBmcm9tICdzdXBlcnN0cnVjdCc7XG5cbmV4cG9ydCBjb25zdCBTVUlfU1lTVEVNX0FERFJFU1MgPSAnMHgzJztcbmV4cG9ydCBjb25zdCBTVUlfRlJBTUVXT1JLX0FERFJFU1MgPSAnMHgyJztcbmV4cG9ydCBjb25zdCBNT1ZFX1NURExJQl9BRERSRVNTID0gJzB4MSc7XG5leHBvcnQgY29uc3QgT0JKRUNUX01PRFVMRV9OQU1FID0gJ29iamVjdCc7XG5leHBvcnQgY29uc3QgVUlEX1NUUlVDVF9OQU1FID0gJ1VJRCc7XG5leHBvcnQgY29uc3QgSURfU1RSVUNUX05BTUUgPSAnSUQnO1xuZXhwb3J0IGNvbnN0IFNVSV9UWVBFX0FSRyA9IGAke1NVSV9GUkFNRVdPUktfQUREUkVTU306OnN1aTo6U1VJYDtcbmV4cG9ydCBjb25zdCBWQUxJREFUT1JTX0VWRU5UU19RVUVSWSA9ICcweDM6OnZhbGlkYXRvcl9zZXQ6OlZhbGlkYXRvckVwb2NoSW5mb0V2ZW50JztcblxuZXhwb3J0IGNvbnN0IFNVSV9DTE9DS19PQkpFQ1RfSUQgPSBub3JtYWxpemVTdWlPYmplY3RJZCgnMHg2Jyk7XG5cbi8vIGBzdWk6OnBheWAgbW9kdWxlIGlzIHVzZWQgZm9yIENvaW4gbWFuYWdlbWVudCAoc3BsaXQsIGpvaW4sIGpvaW5fYW5kX3RyYW5zZmVyIGV0Yyk7XG5leHBvcnQgY29uc3QgUEFZX01PRFVMRV9OQU1FID0gJ3BheSc7XG5leHBvcnQgY29uc3QgUEFZX1NQTElUX0NPSU5fVkVDX0ZVTkNfTkFNRSA9ICdzcGxpdF92ZWMnO1xuZXhwb3J0IGNvbnN0IFBBWV9KT0lOX0NPSU5fRlVOQ19OQU1FID0gJ2pvaW4nO1xuZXhwb3J0IGNvbnN0IENPSU5fVFlQRV9BUkdfUkVHRVggPSAvXjB4Mjo6Y29pbjo6Q29pbjwoLispPiQvO1xuXG50eXBlIE9iamVjdERhdGEgPSBPYmplY3REYXRhRnVsbCB8IFN1aU9iamVjdEluZm87XG50eXBlIE9iamVjdERhdGFGdWxsID0gU3VpT2JqZWN0UmVzcG9uc2UgfCBTdWlNb3ZlT2JqZWN0O1xuXG5leHBvcnQgZnVuY3Rpb24gaXNPYmplY3REYXRhRnVsbChyZXNwOiBPYmplY3REYXRhIHwgT2JqZWN0RGF0YUZ1bGwpOiByZXNwIGlzIFN1aU9iamVjdFJlc3BvbnNlIHtcbiAgcmV0dXJuICEhKHJlc3AgYXMgU3VpT2JqZWN0UmVzcG9uc2UpLmRhdGEgfHwgISEocmVzcCBhcyBTdWlNb3ZlT2JqZWN0KS50eXBlO1xufVxuXG5leHBvcnQgY29uc3QgQ29pbk1ldGFkYXRhU3RydWN0ID0gb2JqZWN0KHtcbiAgZGVjaW1hbHM6IG51bWJlcigpLFxuICBuYW1lOiBzdHJpbmcoKSxcbiAgc3ltYm9sOiBzdHJpbmcoKSxcbiAgZGVzY3JpcHRpb246IHN0cmluZygpLFxuICBpY29uVXJsOiB1bmlvbihbc3RyaW5nKCksIGxpdGVyYWwobnVsbCldKSxcbiAgaWQ6IHVuaW9uKFtPYmplY3RJZCwgbGl0ZXJhbChudWxsKV0pLFxufSk7XG5cbmV4cG9ydCB0eXBlIENvaW5NZXRhZGF0YSA9IEluZmVyPHR5cGVvZiBDb2luTWV0YWRhdGFTdHJ1Y3Q+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,15 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
|
3
|
+
if (k2 === undefined) k2 = k;
|
|
4
|
+
Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } });
|
|
5
|
+
}) : (function(o, m, k, k2) {
|
|
6
|
+
if (k2 === undefined) k2 = k;
|
|
7
|
+
o[k2] = m[k];
|
|
8
|
+
}));
|
|
9
|
+
var __exportStar = (this && this.__exportStar) || function(m, exports) {
|
|
10
|
+
for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
|
|
11
|
+
};
|
|
12
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
13
|
+
__exportStar(require("./framework"), exports);
|
|
14
|
+
__exportStar(require("./sui-system-state"), exports);
|
|
15
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9zcmMvbGliL215c3RlbmxhYi9mcmFtZXdvcmsvaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7O0FBQUEsOENBQTRCO0FBQzVCLHFEQUFtQyIsInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCAqIGZyb20gJy4vZnJhbWV3b3JrJztcbmV4cG9ydCAqIGZyb20gJy4vc3VpLXN5c3RlbS1zdGF0ZSc7XG4iXX0=
|
|
@@ -0,0 +1,12 @@
|
|
|
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
|
+
//# 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"}
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
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 = 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
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3VpLXN5c3RlbS1zdGF0ZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3NyYy9saWIvbXlzdGVubGFiL2ZyYW1ld29yay9zdWktc3lzdGVtLXN0YXRlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7OztBQUFBLG9DQUFpRTtBQUVqRTs7O0dBR0c7QUFDVSxRQUFBLDBCQUEwQixHQUFXLDRCQUFvQixDQUFDLEtBQUssQ0FBQyxDQUFDO0FBRWpFLFFBQUEsdUJBQXVCLEdBQW9CO0lBQ3RELFFBQVEsRUFBRSxrQ0FBMEI7SUFDcEMsb0JBQW9CLEVBQUUsQ0FBQztJQUN2QixPQUFPLEVBQUUsSUFBSTtDQUNkLENBQUM7QUFFVyxRQUFBLHNCQUFzQixHQUFHLFlBQVksQ0FBQztBQUN0QyxRQUFBLGtCQUFrQixHQUFHLG1CQUFtQixDQUFDO0FBQ3pDLFFBQUEsOEJBQThCLEdBQUcsb0NBQW9DLENBQUM7QUFDdEUsUUFBQSx1QkFBdUIsR0FBRyx3QkFBd0IsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IG5vcm1hbGl6ZVN1aU9iamVjdElkLCBTaGFyZWRPYmplY3RSZWYgfSBmcm9tICcuLi90eXBlcyc7XG5cbi8qKlxuICogQWRkcmVzcyBvZiB0aGUgU3VpIFN5c3RlbSBvYmplY3QuXG4gKiBBbHdheXMgdGhlIHNhbWUgaW4gZXZlcnkgU3VpIG5ldHdvcmsgKGxvY2FsLCBkZXZuZXQsIHRlc3RuZXQpLlxuICovXG5leHBvcnQgY29uc3QgU1VJX1NZU1RFTV9TVEFURV9PQkpFQ1RfSUQ6IHN0cmluZyA9IG5vcm1hbGl6ZVN1aU9iamVjdElkKCcweDUnKTtcblxuZXhwb3J0IGNvbnN0IFNVSV9TWVNURU1fU1RBVEVfT0JKRUNUOiBTaGFyZWRPYmplY3RSZWYgPSB7XG4gIG9iamVjdElkOiBTVUlfU1lTVEVNX1NUQVRFX09CSkVDVF9JRCxcbiAgaW5pdGlhbFNoYXJlZFZlcnNpb246IDEsXG4gIG11dGFibGU6IHRydWUsXG59O1xuXG5leHBvcnQgY29uc3QgU1VJX1NZU1RFTV9NT0RVTEVfTkFNRSA9ICdzdWlfc3lzdGVtJztcbmV4cG9ydCBjb25zdCBBRERfU1RBS0VfRlVOX05BTUUgPSAncmVxdWVzdF9hZGRfc3Rha2UnO1xuZXhwb3J0IGNvbnN0IEFERF9TVEFLRV9MT0NLRURfQ09JTl9GVU5fTkFNRSA9ICdyZXF1ZXN0X2FkZF9zdGFrZV93aXRoX2xvY2tlZF9jb2luJztcbmV4cG9ydCBjb25zdCBXSVRIRFJBV19TVEFLRV9GVU5fTkFNRSA9ICdyZXF1ZXN0X3dpdGhkcmF3X3N0YWtlJztcbiJdfQ==
|
|
@@ -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 ? 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,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHlwZS10YWctc2VyaWFsaXplci5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3NyYy9saWIvbXlzdGVubGFiL3R4bi1kYXRhLXNlcmlhbGl6ZXJzL3R5cGUtdGFnLXNlcmlhbGl6ZXIudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7O0FBQUEsb0NBQXdEO0FBRXhELE1BQU0sWUFBWSxHQUFHLGdCQUFnQixDQUFDO0FBQ3RDLE1BQU0sWUFBWSxHQUFHLHFDQUFxQyxDQUFDO0FBRTNELE1BQWEsaUJBQWlCO0lBQzVCLE1BQU0sQ0FBQyxZQUFZLENBQUMsR0FBVyxFQUFFLGdCQUFnQixHQUFHLEtBQUs7UUFDdkQsSUFBSSxHQUFHLEtBQUssU0FBUyxFQUFFO1lBQ3JCLE9BQU8sRUFBRSxPQUFPLEVBQUUsSUFBSSxFQUFFLENBQUM7U0FDMUI7YUFBTSxJQUFJLEdBQUcsS0FBSyxNQUFNLEVBQUU7WUFDekIsT0FBTyxFQUFFLElBQUksRUFBRSxJQUFJLEVBQUUsQ0FBQztTQUN2QjthQUFNLElBQUksR0FBRyxLQUFLLElBQUksRUFBRTtZQUN2QixPQUFPLEVBQUUsRUFBRSxFQUFFLElBQUksRUFBRSxDQUFDO1NBQ3JCO2FBQU0sSUFBSSxHQUFHLEtBQUssS0FBSyxFQUFFO1lBQ3hCLE9BQU8sRUFBRSxHQUFHLEVBQUUsSUFBSSxFQUFFLENBQUM7U0FDdEI7YUFBTSxJQUFJLEdBQUcsS0FBSyxLQUFLLEVBQUU7WUFDeEIsT0FBTyxFQUFFLEdBQUcsRUFBRSxJQUFJLEVBQUUsQ0FBQztTQUN0QjthQUFNLElBQUksR0FBRyxLQUFLLEtBQUssRUFBRTtZQUN4QixPQUFPLEVBQUUsR0FBRyxFQUFFLElBQUksRUFBRSxDQUFDO1NBQ3RCO2FBQU0sSUFBSSxHQUFHLEtBQUssTUFBTSxFQUFFO1lBQ3pCLE9BQU8sRUFBRSxJQUFJLEVBQUUsSUFBSSxFQUFFLENBQUM7U0FDdkI7YUFBTSxJQUFJLEdBQUcsS0FBSyxNQUFNLEVBQUU7WUFD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Q0QsSUFBSSxLQUFLLElBQUksR0FBRyxFQUFFO1lBQ2hCLE9BQU8sS0FBSyxDQUFDO1NBQ2Q7UUFDRCxJQUFJLEtBQUssSUFBSSxHQUFHLEVBQUU7WUFDaEIsT0FBTyxLQUFLLENBQUM7U0FDZDtRQUNELElBQUksTUFBTSxJQUFJLEdBQUcsRUFBRTtZQUNqQixPQUFPLE1BQU0sQ0FBQztTQUNmO1FBQ0QsSUFBSSxNQUFNLElBQUksR0FBRyxFQUFFO1lBQ2pCLE9BQU8sTUFBTSxDQUFDO1NBQ2Y7UUFDRCxJQUFJLFNBQVMsSUFBSSxHQUFHLEVBQUU7WUFDcEIsT0FBTyxTQUFTLENBQUM7U0FDbEI7UUFDRCxJQUFJLFFBQVEsSUFBSSxHQUFHLEVBQUU7WUFDbkIsT0FBTyxRQUFRLENBQUM7U0FDakI7UUFDRCxJQUFJLFFBQVEsSUFBSSxHQUFHLEVBQUU7WUFDbkIsT0FBTyxVQUFVLGlCQUFpQixDQUFDLFdBQVcsQ0FBQyxHQUFHLENBQUMsTUFBTSxDQUFDLEdBQUcsQ0FBQztTQUMvRDtRQUNELElBQUksUUFBUSxJQUFJLEdBQUcsRUFBRTtZQUNuQixNQUFNLE1BQU0sR0FBRyxHQUFHLENBQUMsTUFBTSxDQUFDO1lBQzFCLE1BQU0sVUFBVSxHQUFHLE1BQU0sQ0FBQyxVQUFVLENBQUMsR0FBRyxDQUFDLGlCQUFpQixDQUFDLFdBQVcsQ0FBQyxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQztZQUNuRixPQUFPLEdBQUcsTUFBTSxDQUFDLE9BQU8sS0FBSyxNQUFNLENBQUMsTUFBTSxLQUFLLE1BQU0sQ0FBQyxJQUFJLEdBQUcsVUFBVSxDQUFDLENBQUMsQ0FBQyxJQUFJLFVBQVUsR0FBRyxDQUFDLENBQUMsQ0FBQyxFQUFFLEVBQUUsQ0FBQztTQUNwRztRQUNELE1BQU0sSUFBSSxLQUFLLENBQUMsaUJBQWlCLENBQUMsQ0FBQztJQUNyQyxDQUFDO0NBQ0Y7QUE3R0QsOENBNkdDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgbm9ybWFsaXplU3VpQWRkcmVzcywgVHlwZVRhZyB9IGZyb20gJy4uL3R5cGVzJztcblxuY29uc3QgVkVDVE9SX1JFR0VYID0gL152ZWN0b3I8KC4rKT4kLztcbmNvbnN0IFNUUlVDVF9SRUdFWCA9IC9eKFteOl0rKTo6KFteOl0rKTo6KFtePF0rKSg8KC4rKT4pPy87XG5cbmV4cG9ydCBjbGFzcyBUeXBlVGFnU2VyaWFsaXplciB7XG4gIHN0YXRpYyBwYXJzZUZyb21TdHIoc3RyOiBzdHJpbmcsIG5vcm1hbGl6ZUFkZHJlc3MgPSBmYWxzZSk6IFR5cGVUYWcge1xuICAgIGlmIChzdHIgPT09ICdhZGRyZXNzJykge1xuICAgICAgcmV0dXJuIHsgYWRkcmVzczogbnVsbCB9O1xuICAgIH0gZWxzZSBpZiAoc3RyID09PSAnYm9vbCcpIHtcbiAgICAgIHJldHVybiB7IGJvb2w6IG51bGwgfTtcbiAgICB9IGVsc2UgaWYgKHN0ciA9PT0gJ3U4Jykge1xuICAgICAgcmV0dXJuIHsgdTg6IG51bGwgfTtcbiAgICB9IGVsc2UgaWYgKHN0ciA9PT0gJ3UxNicpIHtcbiAgICAgIHJldHVybiB7IHUxNjogbnVsbCB9O1xuICAgIH0gZWxzZSBpZiAoc3RyID09PSAndTMyJykge1xuICAgICAgcmV0dXJuIHsgdTMyOiBudWxsIH07XG4gICAgfSBlbHNlIGlmIChzdHIgPT09ICd1NjQnKSB7XG4gICAgICByZXR1cm4geyB1NjQ6IG51bGwgfTtcbiAgICB9IGVsc2UgaWYgKHN0ciA9PT0gJ3UxMjgnKSB7XG4gICAgICByZXR1cm4geyB1MTI4OiBudWxsIH07XG4gICAgfSBlbHNlIGlmIChzdHIgPT09ICd1MjU2Jykge1xuICAgICAgcmV0dXJuIHsgdTI1NjogbnVsbCB9O1xuICAgIH0gZWxzZSBpZiAoc3RyID09PSAnc2lnbmVyJykge1xuICAgICAgcmV0dXJuIHsgc2lnbmVyOiBudWxsIH07XG4gICAgfVxuICAgIGNvbnN0IHZlY3Rvck1hdGNoID0gc3RyLm1hdGNoKFZFQ1RPUl9SRUdFWCk7XG4gICAgaWYgKHZlY3Rvck1hdGNoKSB7XG4gICAgICByZXR1cm4ge1xuICAgICAgICB2ZWN0b3I6IFR5cGVUYWdTZXJpYWxpemVyLnBhcnNlRnJvbVN0cih2ZWN0b3JNYXRjaFsxXSwgbm9ybWFsaXplQWRkcmVzcyksXG4gICAgICB9O1xuICAgIH1cblxuICAgIGNvbnN0IHN0cnVjdE1hdGNoID0gc3RyLm1hdGNoKFNUUlVDVF9SRUdFWCk7XG4gICAgaWYgKHN0cnVjdE1hdGNoKSB7XG4gICAgICBjb25zdCBhZGRyZXNzID0gbm9ybWFsaXplQWRkcmVzcyA/IG5vcm1hbGl6ZVN1aUFkZHJlc3Moc3RydWN0TWF0Y2hbMV0pIDogc3RydWN0TWF0Y2hbMV07XG4gICAgICByZXR1cm4ge1xuICAgICAgICBzdHJ1Y3Q6IHtcbiAgICAgICAgICBhZGRyZXNzLFxuICAgICAgICAgIG1vZHVsZTogc3RydWN0TWF0Y2hbMl0sXG4gICAgICAgICAgbmFtZTogc3RydWN0TWF0Y2hbM10sXG4gICAgICAgICAgdHlwZVBhcmFtczpcbiAgICAgICAgICAgIHN0cnVjdE1hdGNoWzVdID09PSB1bmRlZmluZWQgPyBbXSA6IFR5cGVUYWdTZXJpYWxpemVyLnBhcnNlU3RydWN0VHlwZUFyZ3Moc3RydWN0TWF0Y2hbNV0sIG5vcm1hbGl6ZUFkZHJlc3MpLFxuICAgICAgICB9LFxuICAgICAgfTtcbiAgICB9XG5cbiAgICB0aHJvdyBuZXcgRXJyb3IoYEVuY291bnRlcmVkIHVuZXhwZWN0ZWQgdG9rZW4gd2hlbiBwYXJzaW5nIHR5cGUgYXJncyBmb3IgJHtzdHJ9YCk7XG4gIH1cblxuICBzdGF0aWMgcGFyc2VTdHJ1Y3RUeXBlQXJncyhzdHI6IHN0cmluZywgbm9ybWFsaXplQWRkcmVzcyA9IGZhbHNlKTogVHlwZVRhZ1tdIHtcbiAgICAvLyBzcGxpdCBgc3RyYCBieSBhbGwgYCxgIG91dHNpZGUgYW5nbGUgYnJhY2tldHNcbiAgICBjb25zdCB0b2s6IEFycmF5PHN0cmluZz4gPSBbXTtcbiAgICBsZXQgd29yZCA9ICcnO1xuICAgIGxldCBuZXN0ZWRBbmdsZUJyYWNrZXRzID0gMDtcbiAgICBmb3IgKGxldCBpID0gMDsgaSA8IHN0ci5sZW5ndGg7IGkrKykge1xuICAgICAgY29uc3QgY2hhciA9IHN0cltpXTtcbiAgICAgIGlmIChjaGFyID09PSAnPCcpIHtcbiAgICAgICAgbmVzdGVkQW5nbGVCcmFja2V0cysrO1xuICAgICAgfVxuICAgICAgaWYgKGNoYXIgPT09ICc+Jykge1xuICAgICAgICBuZXN0ZWRBbmdsZUJyYWNrZXRzLS07XG4gICAgICB9XG4gICAgICBpZiAobmVzdGVkQW5nbGVCcmFja2V0cyA9PT0gMCAmJiBjaGFyID09PSAnLCcpIHtcbiAgICAgICAgdG9rLnB1c2god29yZC50cmltKCkpO1xuICAgICAgICB3b3JkID0gJyc7XG4gICAgICAgIGNvbnRpbnVlO1xuICAgICAgfVxuICAgICAgd29yZCArPSBjaGFyO1xuICAgIH1cblxuICAgIHRvay5wdXNoKHdvcmQudHJpbSgpKTtcblxuICAgIHJldHVybiB0b2subWFwKCh0b2spID0+IFR5cGVUYWdTZXJpYWxpemVyLnBhcnNlRnJvbVN0cih0b2ssIG5vcm1hbGl6ZUFkZHJlc3MpKTtcbiAgfVxuXG4gIHN0YXRpYyB0YWdUb1N0cmluZyh0YWc6IFR5cGVUYWcpOiBzdHJpbmcge1xuICAgIGlmICgnYm9vbCcgaW4gdGFnKSB7XG4gICAgICByZXR1cm4gJ2Jvb2wnO1xuICAgIH1cbiAgICBpZiAoJ3U4JyBpbiB0YWcpIHtcbiAgICAgIHJldHVybiAndTgnO1xuICAgIH1cbiAgICBpZiAoJ3UxNicgaW4gdGFnKSB7XG4gICAgICByZXR1cm4gJ3UxNic7XG4gICAgfVxuICAgIGlmICgndTMyJyBpbiB0YWcpIHtcbiAgICAgIHJldHVybiAndTMyJztcbiAgICB9XG4gICAgaWYgKCd1NjQnIGluIHRhZykge1xuICAgICAgcmV0dXJuICd1NjQnO1xuICAgIH1cbiAgICBpZiAoJ3UxMjgnIGluIHRhZykge1xuICAgICAgcmV0dXJuICd1MTI4JztcbiAgICB9XG4gICAgaWYgKCd1MjU2JyBpbiB0YWcpIHtcbiAgICAgIHJldHVybiAndTI1Nic7XG4gICAgfVxuICAgIGlmICgnYWRkcmVzcycgaW4gdGFnKSB7XG4gICAgICByZXR1cm4gJ2FkZHJlc3MnO1xuICAgIH1cbiAgICBpZiAoJ3NpZ25lcicgaW4gdGFnKSB7XG4gICAgICByZXR1cm4gJ3NpZ25lcic7XG4gICAgfVxuICAgIGlmICgndmVjdG9yJyBpbiB0YWcpIHtcbiAgICAgIHJldHVybiBgdmVjdG9yPCR7VHlwZVRhZ1NlcmlhbGl6ZXIudGFnVG9TdHJpbmcodGFnLnZlY3Rvcil9PmA7XG4gICAgfVxuICAgIGlmICgnc3RydWN0JyBpbiB0YWcpIHtcbiAgICAgIGNvbnN0IHN0cnVjdCA9IHRhZy5zdHJ1Y3Q7XG4gICAgICBjb25zdCB0eXBlUGFyYW1zID0gc3RydWN0LnR5cGVQYXJhbXMubWFwKFR5cGVUYWdTZXJpYWxpemVyLnRhZ1RvU3RyaW5nKS5qb2luKCcsICcpO1xuICAgICAgcmV0dXJuIGAke3N0cnVjdC5hZGRyZXNzfTo6JHtzdHJ1Y3QubW9kdWxlfTo6JHtzdHJ1Y3QubmFtZX0ke3R5cGVQYXJhbXMgPyBgPCR7dHlwZVBhcmFtc30+YCA6ICcnfWA7XG4gICAgfVxuICAgIHRocm93IG5ldyBFcnJvcignSW52YWxpZCBUeXBlVGFnJyk7XG4gIH1cbn1cbiJdfQ==
|
|
@@ -0,0 +1,89 @@
|
|
|
1
|
+
import { Infer } from 'superstruct';
|
|
2
|
+
export declare const CoinStruct: import("superstruct").Struct<{
|
|
3
|
+
version: number;
|
|
4
|
+
digest: string;
|
|
5
|
+
coinType: string;
|
|
6
|
+
previousTransaction: string;
|
|
7
|
+
coinObjectId: string;
|
|
8
|
+
balance: number;
|
|
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 declare type CoinStruct = Infer<typeof CoinStruct>;
|
|
20
|
+
export declare const PaginatedCoins: import("superstruct").Struct<{
|
|
21
|
+
data: {
|
|
22
|
+
version: number;
|
|
23
|
+
digest: string;
|
|
24
|
+
coinType: string;
|
|
25
|
+
previousTransaction: string;
|
|
26
|
+
coinObjectId: string;
|
|
27
|
+
balance: number;
|
|
28
|
+
lockedUntilEpoch: number | null;
|
|
29
|
+
}[];
|
|
30
|
+
nextCursor: string | null;
|
|
31
|
+
hasNextPage: boolean;
|
|
32
|
+
}, {
|
|
33
|
+
data: import("superstruct").Struct<{
|
|
34
|
+
version: number;
|
|
35
|
+
digest: string;
|
|
36
|
+
coinType: string;
|
|
37
|
+
previousTransaction: string;
|
|
38
|
+
coinObjectId: string;
|
|
39
|
+
balance: number;
|
|
40
|
+
lockedUntilEpoch: number | null;
|
|
41
|
+
}[], import("superstruct").Struct<{
|
|
42
|
+
version: number;
|
|
43
|
+
digest: string;
|
|
44
|
+
coinType: string;
|
|
45
|
+
previousTransaction: string;
|
|
46
|
+
coinObjectId: string;
|
|
47
|
+
balance: number;
|
|
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 declare type PaginatedCoins = Infer<typeof PaginatedCoins>;
|
|
62
|
+
export declare const CoinBalance: import("superstruct").Struct<{
|
|
63
|
+
coinType: string;
|
|
64
|
+
coinObjectCount: number;
|
|
65
|
+
totalBalance: 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 declare 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 declare 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,oBAAY,UAAU,GAAG,KAAK,CAAC,OAAO,UAAU,CAAC,CAAC;AAElD,eAAO,MAAM,cAAc;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAIzB,CAAC;AAEH,oBAAY,cAAc,GAAG,KAAK,CAAC,OAAO,cAAc,CAAC,CAAC;AAE1D,eAAO,MAAM,WAAW;;;;;;;;;;;;;;;;;;;EAQtB,CAAC;AAEH,oBAAY,WAAW,GAAG,KAAK,CAAC,OAAO,WAAW,CAAC,CAAC;AAEpD,eAAO,MAAM,UAAU;;;;EAErB,CAAC;AAEH,oBAAY,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 = superstruct_1.object({
|
|
7
|
+
coinType: superstruct_1.string(),
|
|
8
|
+
coinObjectId: common_1.ObjectId,
|
|
9
|
+
version: superstruct_1.number(),
|
|
10
|
+
digest: common_1.TransactionDigest,
|
|
11
|
+
balance: superstruct_1.number(),
|
|
12
|
+
lockedUntilEpoch: superstruct_1.nullable(superstruct_1.number()),
|
|
13
|
+
previousTransaction: common_1.TransactionDigest,
|
|
14
|
+
});
|
|
15
|
+
exports.PaginatedCoins = superstruct_1.object({
|
|
16
|
+
data: superstruct_1.array(exports.CoinStruct),
|
|
17
|
+
nextCursor: superstruct_1.union([common_1.ObjectId, superstruct_1.literal(null)]),
|
|
18
|
+
hasNextPage: superstruct_1.boolean(),
|
|
19
|
+
});
|
|
20
|
+
exports.CoinBalance = superstruct_1.object({
|
|
21
|
+
coinType: superstruct_1.string(),
|
|
22
|
+
coinObjectCount: superstruct_1.number(),
|
|
23
|
+
totalBalance: superstruct_1.number(),
|
|
24
|
+
lockedBalance: superstruct_1.object({
|
|
25
|
+
epochId: superstruct_1.optional(superstruct_1.number()),
|
|
26
|
+
number: superstruct_1.optional(superstruct_1.number()),
|
|
27
|
+
}),
|
|
28
|
+
});
|
|
29
|
+
exports.CoinSupply = superstruct_1.object({
|
|
30
|
+
value: superstruct_1.number(),
|
|
31
|
+
});
|
|
32
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29pbi5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3NyYy9saWIvbXlzdGVubGFiL3R5cGVzL2NvaW4udHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7O0FBQUEsNkNBQWdIO0FBQ2hILHFDQUF1RDtBQUUxQyxRQUFBLFVBQVUsR0FBRyxvQkFBTSxDQUFDO0lBQy9CLFFBQVEsRUFBRSxvQkFBTSxFQUFFO0lBQ2xCLFlBQVksRUFBRSxpQkFBUTtJQUN0QixPQUFPLEVBQUUsb0JBQU0sRUFBRTtJQUNqQixNQUFNLEVBQUUsMEJBQWlCO0lBQ3pCLE9BQU8sRUFBRSxvQkFBTSxFQUFFO0lBQ2pCLGdCQUFnQixFQUFFLHNCQUFRLENBQUMsb0JBQU0sRUFBRSxDQUFDO0lBQ3BDLG1CQUFtQixFQUFFLDBCQUFpQjtDQUN2QyxDQUFDLENBQUM7QUFJVSxRQUFBLGNBQWMsR0FBRyxvQkFBTSxDQUFDO0lBQ25DLElBQUksRUFBRSxtQkFBSyxDQUFDLGtCQUFVLENBQUM7SUFDdkIsVUFBVSxFQUFFLG1CQUFLLENBQUMsQ0FBQyxpQkFBUSxFQUFFLHFCQUFPLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQztJQUM1QyxXQUFXLEVBQUUscUJBQU8sRUFBRTtDQUN2QixDQUFDLENBQUM7QUFJVSxRQUFBLFdBQVcsR0FBRyxvQkFBTSxDQUFDO0lBQ2hDLFFBQVEsRUFBRSxvQkFBTSxFQUFFO0lBQ2xCLGVBQWUsRUFBRSxvQkFBTSxFQUFFO0lBQ3pCLFlBQVksRUFBRSxvQkFBTSxFQUFFO0lBQ3RCLGFBQWEsRUFBRSxvQkFBTSxDQUFDO1FBQ3BCLE9BQU8sRUFBRSxzQkFBUSxDQUFDLG9CQUFNLEVBQUUsQ0FBQztRQUMzQixNQUFNLEVBQUUsc0JBQVEsQ0FBQyxvQkFBTSxFQUFFLENBQUM7S0FDM0IsQ0FBQztDQUNILENBQUMsQ0FBQztBQUlVLFFBQUEsVUFBVSxHQUFHLG9CQUFNLENBQUM7SUFDL0IsS0FBSyxFQUFFLG9CQUFNLEVBQUU7Q0FDaEIsQ0FBQyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgYXJyYXksIGJvb2xlYW4sIEluZmVyLCBsaXRlcmFsLCBudWxsYWJsZSwgbnVtYmVyLCBvYmplY3QsIG9wdGlvbmFsLCBzdHJpbmcsIHVuaW9uIH0gZnJvbSAnc3VwZXJzdHJ1Y3QnO1xuaW1wb3J0IHsgT2JqZWN0SWQsIFRyYW5zYWN0aW9uRGlnZXN0IH0gZnJvbSAnLi9jb21tb24nO1xuXG5leHBvcnQgY29uc3QgQ29pblN0cnVjdCA9IG9iamVjdCh7XG4gIGNvaW5UeXBlOiBzdHJpbmcoKSxcbiAgY29pbk9iamVjdElkOiBPYmplY3RJZCxcbiAgdmVyc2lvbjogbnVtYmVyKCksXG4gIGRpZ2VzdDogVHJhbnNhY3Rpb25EaWdlc3QsXG4gIGJhbGFuY2U6IG51bWJlcigpLFxuICBsb2NrZWRVbnRpbEVwb2NoOiBudWxsYWJsZShudW1iZXIoKSksXG4gIHByZXZpb3VzVHJhbnNhY3Rpb246IFRyYW5zYWN0aW9uRGlnZXN0LFxufSk7XG5cbmV4cG9ydCB0eXBlIENvaW5TdHJ1Y3QgPSBJbmZlcjx0eXBlb2YgQ29pblN0cnVjdD47XG5cbmV4cG9ydCBjb25zdCBQYWdpbmF0ZWRDb2lucyA9IG9iamVjdCh7XG4gIGRhdGE6IGFycmF5KENvaW5TdHJ1Y3QpLFxuICBuZXh0Q3Vyc29yOiB1bmlvbihbT2JqZWN0SWQsIGxpdGVyYWwobnVsbCldKSxcbiAgaGFzTmV4dFBhZ2U6IGJvb2xlYW4oKSxcbn0pO1xuXG5leHBvcnQgdHlwZSBQYWdpbmF0ZWRDb2lucyA9IEluZmVyPHR5cGVvZiBQYWdpbmF0ZWRDb2lucz47XG5cbmV4cG9ydCBjb25zdCBDb2luQmFsYW5jZSA9IG9iamVjdCh7XG4gIGNvaW5UeXBlOiBzdHJpbmcoKSxcbiAgY29pbk9iamVjdENvdW50OiBudW1iZXIoKSxcbiAgdG90YWxCYWxhbmNlOiBudW1iZXIoKSxcbiAgbG9ja2VkQmFsYW5jZTogb2JqZWN0KHtcbiAgICBlcG9jaElkOiBvcHRpb25hbChudW1iZXIoKSksXG4gICAgbnVtYmVyOiBvcHRpb25hbChudW1iZXIoKSksXG4gIH0pLFxufSk7XG5cbmV4cG9ydCB0eXBlIENvaW5CYWxhbmNlID0gSW5mZXI8dHlwZW9mIENvaW5CYWxhbmNlPjtcblxuZXhwb3J0IGNvbnN0IENvaW5TdXBwbHkgPSBvYmplY3Qoe1xuICB2YWx1ZTogbnVtYmVyKCksXG59KTtcblxuZXhwb3J0IHR5cGUgQ29pblN1cHBseSA9IEluZmVyPHR5cGVvZiBDb2luU3VwcGx5PjtcbiJdfQ==
|