@bitgo/sdk-coin-sui 2.0.1 → 3.0.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/.eslintignore +1 -0
- package/CHANGELOG.md +37 -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,45 @@
|
|
|
1
|
+
import { Infer } from 'superstruct';
|
|
2
|
+
import { CallArg } from './sui-bcs';
|
|
3
|
+
export declare const TransactionDigest: import("superstruct").Struct<string, null>;
|
|
4
|
+
export declare type TransactionDigest = Infer<typeof TransactionDigest>;
|
|
5
|
+
export declare const TransactionEffectsDigest: import("superstruct").Struct<string, null>;
|
|
6
|
+
export declare type TransactionEffectsDigest = Infer<typeof TransactionEffectsDigest>;
|
|
7
|
+
export declare const TransactionEventDigest: import("superstruct").Struct<string, null>;
|
|
8
|
+
export declare type TransactionEventDigest = Infer<typeof TransactionEventDigest>;
|
|
9
|
+
export declare const ObjectId: import("superstruct").Struct<string, null>;
|
|
10
|
+
export declare type ObjectId = Infer<typeof ObjectId>;
|
|
11
|
+
export declare const SuiAddress: import("superstruct").Struct<string, null>;
|
|
12
|
+
export declare type SuiAddress = Infer<typeof SuiAddress>;
|
|
13
|
+
export declare const SequenceNumber: import("superstruct").Struct<number, null>;
|
|
14
|
+
export declare type SequenceNumber = Infer<typeof SequenceNumber>;
|
|
15
|
+
export declare const ObjectOwner: import("superstruct").Struct<{
|
|
16
|
+
AddressOwner: string;
|
|
17
|
+
} | {
|
|
18
|
+
ObjectOwner: string;
|
|
19
|
+
} | {
|
|
20
|
+
Shared: {
|
|
21
|
+
initial_shared_version: number;
|
|
22
|
+
};
|
|
23
|
+
} | "Immutable", null>;
|
|
24
|
+
export declare type ObjectOwner = Infer<typeof ObjectOwner>;
|
|
25
|
+
export declare type SuiJsonValue = boolean | number | string | CallArg | Array<SuiJsonValue>;
|
|
26
|
+
export declare const SuiJsonValue: import("superstruct").Struct<SuiJsonValue, null>;
|
|
27
|
+
/** Returns whether the tx digest is valid based on the serialization format */
|
|
28
|
+
export declare function isValidTransactionDigest(value: string): value is TransactionDigest;
|
|
29
|
+
export declare const SUI_ADDRESS_LENGTH = 32;
|
|
30
|
+
export declare function isValidSuiAddress(value: string): value is SuiAddress;
|
|
31
|
+
export declare function isValidSuiObjectId(value: string): boolean;
|
|
32
|
+
/**
|
|
33
|
+
* Perform the following operations:
|
|
34
|
+
* 1. Make the address lower case
|
|
35
|
+
* 2. Prepend `0x` if the string does not start with `0x`.
|
|
36
|
+
* 3. Add more zeros if the length of the address(excluding `0x`) is less than `SUI_ADDRESS_LENGTH`
|
|
37
|
+
*
|
|
38
|
+
* WARNING: if the address value itself starts with `0x`, e.g., `0x0x`, the default behavior
|
|
39
|
+
* is to treat the first `0x` not as part of the address. The default behavior can be overridden by
|
|
40
|
+
* setting `forceAdd0x` to true
|
|
41
|
+
*
|
|
42
|
+
*/
|
|
43
|
+
export declare function normalizeSuiAddress(value: string, forceAdd0x?: boolean): SuiAddress;
|
|
44
|
+
export declare function normalizeSuiObjectId(value: string, forceAdd0x?: boolean): ObjectId;
|
|
45
|
+
//# sourceMappingURL=common.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"common.d.ts","sourceRoot":"","sources":["../../../../../src/lib/mystenlab/types/common.ts"],"names":[],"mappings":"AAAA,OAAO,EAAU,KAAK,EAA0C,MAAM,aAAa,CAAC;AACpF,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAGpC,eAAO,MAAM,iBAAiB,4CAAW,CAAC;AAC1C,oBAAY,iBAAiB,GAAG,KAAK,CAAC,OAAO,iBAAiB,CAAC,CAAC;AAEhE,eAAO,MAAM,wBAAwB,4CAAW,CAAC;AACjD,oBAAY,wBAAwB,GAAG,KAAK,CAAC,OAAO,wBAAwB,CAAC,CAAC;AAE9E,eAAO,MAAM,sBAAsB,4CAAW,CAAC;AAC/C,oBAAY,sBAAsB,GAAG,KAAK,CAAC,OAAO,sBAAsB,CAAC,CAAC;AAE1E,eAAO,MAAM,QAAQ,4CAAW,CAAC;AACjC,oBAAY,QAAQ,GAAG,KAAK,CAAC,OAAO,QAAQ,CAAC,CAAC;AAE9C,eAAO,MAAM,UAAU,4CAAW,CAAC;AACnC,oBAAY,UAAU,GAAG,KAAK,CAAC,OAAO,UAAU,CAAC,CAAC;AAElD,eAAO,MAAM,cAAc,4CAAW,CAAC;AACvC,oBAAY,cAAc,GAAG,KAAK,CAAC,OAAO,cAAc,CAAC,CAAC;AAE1D,eAAO,MAAM,WAAW;;;;;;;;sBAatB,CAAC;AACH,oBAAY,WAAW,GAAG,KAAK,CAAC,OAAO,WAAW,CAAC,CAAC;AAEpD,oBAAY,YAAY,GAAG,OAAO,GAAG,MAAM,GAAG,MAAM,GAAG,OAAO,GAAG,KAAK,CAAC,YAAY,CAAC,CAAC;AACrF,eAAO,MAAM,YAAY,kDAAmD,CAAC;AAM7E,+EAA+E;AAC/E,wBAAgB,wBAAwB,CAAC,KAAK,EAAE,MAAM,GAAG,KAAK,IAAI,iBAAiB,CAOlF;AAQD,eAAO,MAAM,kBAAkB,KAAK,CAAC;AACrC,wBAAgB,iBAAiB,CAAC,KAAK,EAAE,MAAM,GAAG,KAAK,IAAI,UAAU,CAEpE;AAED,wBAAgB,kBAAkB,CAAC,KAAK,EAAE,MAAM,GAAG,OAAO,CAEzD;AAED;;;;;;;;;;GAUG;AACH,wBAAgB,mBAAmB,CAAC,KAAK,EAAE,MAAM,EAAE,UAAU,GAAE,OAAe,GAAG,UAAU,CAM1F;AAED,wBAAgB,oBAAoB,CAAC,KAAK,EAAE,MAAM,EAAE,UAAU,GAAE,OAAe,GAAG,QAAQ,CAEzF"}
|
|
@@ -0,0 +1,84 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.normalizeSuiObjectId = exports.normalizeSuiAddress = exports.isValidSuiObjectId = exports.isValidSuiAddress = exports.SUI_ADDRESS_LENGTH = exports.isValidTransactionDigest = exports.SuiJsonValue = exports.ObjectOwner = exports.SequenceNumber = exports.SuiAddress = exports.ObjectId = exports.TransactionEventDigest = exports.TransactionEffectsDigest = exports.TransactionDigest = void 0;
|
|
4
|
+
const superstruct_1 = require("superstruct");
|
|
5
|
+
const bcs_1 = require("@mysten/bcs");
|
|
6
|
+
exports.TransactionDigest = superstruct_1.string();
|
|
7
|
+
exports.TransactionEffectsDigest = superstruct_1.string();
|
|
8
|
+
exports.TransactionEventDigest = superstruct_1.string();
|
|
9
|
+
exports.ObjectId = superstruct_1.string();
|
|
10
|
+
exports.SuiAddress = superstruct_1.string();
|
|
11
|
+
exports.SequenceNumber = superstruct_1.number();
|
|
12
|
+
exports.ObjectOwner = superstruct_1.union([
|
|
13
|
+
superstruct_1.object({
|
|
14
|
+
AddressOwner: exports.SuiAddress,
|
|
15
|
+
}),
|
|
16
|
+
superstruct_1.object({
|
|
17
|
+
ObjectOwner: exports.SuiAddress,
|
|
18
|
+
}),
|
|
19
|
+
superstruct_1.object({
|
|
20
|
+
Shared: superstruct_1.object({
|
|
21
|
+
initial_shared_version: superstruct_1.number(),
|
|
22
|
+
}),
|
|
23
|
+
}),
|
|
24
|
+
superstruct_1.literal('Immutable'),
|
|
25
|
+
]);
|
|
26
|
+
exports.SuiJsonValue = superstruct_1.define('SuiJsonValue', () => true);
|
|
27
|
+
// source of truth is
|
|
28
|
+
// https://github.com/MystenLabs/sui/blob/acb2b97ae21f47600e05b0d28127d88d0725561d/crates/sui-types/src/base_types.rs#L171
|
|
29
|
+
const TX_DIGEST_LENGTH = 32;
|
|
30
|
+
/** Returns whether the tx digest is valid based on the serialization format */
|
|
31
|
+
function isValidTransactionDigest(value) {
|
|
32
|
+
try {
|
|
33
|
+
const buffer = bcs_1.fromB58(value);
|
|
34
|
+
return buffer.length === TX_DIGEST_LENGTH;
|
|
35
|
+
}
|
|
36
|
+
catch (e) {
|
|
37
|
+
return false;
|
|
38
|
+
}
|
|
39
|
+
}
|
|
40
|
+
exports.isValidTransactionDigest = isValidTransactionDigest;
|
|
41
|
+
// TODO - can we automatically sync this with rust length definition?
|
|
42
|
+
// Source of truth is
|
|
43
|
+
// https://github.com/MystenLabs/sui/blob/acb2b97ae21f47600e05b0d28127d88d0725561d/crates/sui-types/src/base_types.rs#L67
|
|
44
|
+
// which uses the Move account address length
|
|
45
|
+
// https://github.com/move-language/move/blob/67ec40dc50c66c34fd73512fcc412f3b68d67235/language/move-core/types/src/account_address.rs#L23 .
|
|
46
|
+
exports.SUI_ADDRESS_LENGTH = 32;
|
|
47
|
+
function isValidSuiAddress(value) {
|
|
48
|
+
return isHex(value) && getHexByteLength(value) === exports.SUI_ADDRESS_LENGTH;
|
|
49
|
+
}
|
|
50
|
+
exports.isValidSuiAddress = isValidSuiAddress;
|
|
51
|
+
function isValidSuiObjectId(value) {
|
|
52
|
+
return isValidSuiAddress(value);
|
|
53
|
+
}
|
|
54
|
+
exports.isValidSuiObjectId = isValidSuiObjectId;
|
|
55
|
+
/**
|
|
56
|
+
* Perform the following operations:
|
|
57
|
+
* 1. Make the address lower case
|
|
58
|
+
* 2. Prepend `0x` if the string does not start with `0x`.
|
|
59
|
+
* 3. Add more zeros if the length of the address(excluding `0x`) is less than `SUI_ADDRESS_LENGTH`
|
|
60
|
+
*
|
|
61
|
+
* WARNING: if the address value itself starts with `0x`, e.g., `0x0x`, the default behavior
|
|
62
|
+
* is to treat the first `0x` not as part of the address. The default behavior can be overridden by
|
|
63
|
+
* setting `forceAdd0x` to true
|
|
64
|
+
*
|
|
65
|
+
*/
|
|
66
|
+
function normalizeSuiAddress(value, forceAdd0x = false) {
|
|
67
|
+
let address = value.toLowerCase();
|
|
68
|
+
if (!forceAdd0x && address.startsWith('0x')) {
|
|
69
|
+
address = address.slice(2);
|
|
70
|
+
}
|
|
71
|
+
return `0x${address.padStart(exports.SUI_ADDRESS_LENGTH * 2, '0')}`;
|
|
72
|
+
}
|
|
73
|
+
exports.normalizeSuiAddress = normalizeSuiAddress;
|
|
74
|
+
function normalizeSuiObjectId(value, forceAdd0x = false) {
|
|
75
|
+
return normalizeSuiAddress(value, forceAdd0x);
|
|
76
|
+
}
|
|
77
|
+
exports.normalizeSuiObjectId = normalizeSuiObjectId;
|
|
78
|
+
function isHex(value) {
|
|
79
|
+
return /^(0x|0X)?[a-fA-F0-9]+$/.test(value) && value.length % 2 === 0;
|
|
80
|
+
}
|
|
81
|
+
function getHexByteLength(value) {
|
|
82
|
+
return /^(0x|0X)/.test(value) ? (value.length - 2) / 2 : value.length / 2;
|
|
83
|
+
}
|
|
84
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29tbW9uLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vc3JjL2xpYi9teXN0ZW5sYWIvdHlwZXMvY29tbW9uLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7OztBQUFBLDZDQUFvRjtBQUVwRixxQ0FBc0M7QUFFekIsUUFBQSxpQkFBaUIsR0FBRyxvQkFBTSxFQUFFLENBQUM7QUFHN0IsUUFBQSx3QkFBd0IsR0FBRyxvQkFBTSxFQUFFLENBQUM7QUFHcEMsUUFBQSxzQkFBc0IsR0FBRyxvQkFBTSxFQUFFLENBQUM7QUFHbEMsUUFBQSxRQUFRLEdBQUcsb0JBQU0sRUFBRSxDQUFDO0FBR3BCLFFBQUEsVUFBVSxHQUFHLG9CQUFNLEVBQUUsQ0FBQztBQUd0QixRQUFBLGNBQWMsR0FBRyxvQkFBTSxFQUFFLENBQUM7QUFHMUIsUUFBQSxXQUFXLEdBQUcsbUJBQUssQ0FBQztJQUMvQixvQkFBTSxDQUFDO1FBQ0wsWUFBWSxFQUFFLGtCQUFVO0tBQ3pCLENBQUM7SUFDRixvQkFBTSxDQUFDO1FBQ0wsV0FBVyxFQUFFLGtCQUFVO0tBQ3hCLENBQUM7SUFDRixvQkFBTSxDQUFDO1FBQ0wsTUFBTSxFQUFFLG9CQUFNLENBQUM7WUFDYixzQkFBc0IsRUFBRSxvQkFBTSxFQUFFO1NBQ2pDLENBQUM7S0FDSCxDQUFDO0lBQ0YscUJBQU8sQ0FBQyxXQUFXLENBQUM7Q0FDckIsQ0FBQyxDQUFDO0FBSVUsUUFBQSxZQUFZLEdBQUcsb0JBQU0sQ0FBZSxjQUFjLEVBQUUsR0FBRyxFQUFFLENBQUMsSUFBSSxDQUFDLENBQUM7QUFFN0UscUJBQXFCO0FBQ3JCLDBIQUEwSDtBQUMxSCxNQUFNLGdCQUFnQixHQUFHLEVBQUUsQ0FBQztBQUU1QiwrRUFBK0U7QUFDL0UsU0FBZ0Isd0JBQXdCLENBQUMsS0FBYTtJQUNwRCxJQUFJO1FBQ0YsTUFBTSxNQUFNLEdBQUcsYUFBTyxDQUFDLEtBQUssQ0FBQyxDQUFDO1FBQzlCLE9BQU8sTUFBTSxDQUFDLE1BQU0sS0FBSyxnQkFBZ0IsQ0FBQztLQUMzQztJQUFDLE9BQU8sQ0FBQyxFQUFFO1FBQ1YsT0FBTyxLQUFLLENBQUM7S0FDZDtBQUNILENBQUM7QUFQRCw0REFPQztBQUVELHFFQUFxRTtBQUNyRSxxQkFBcUI7QUFDckIseUhBQXlIO0FBQ3pILDZDQUE2QztBQUM3Qyw0SUFBNEk7QUFFL0gsUUFBQSxrQkFBa0IsR0FBRyxFQUFFLENBQUM7QUFDckMsU0FBZ0IsaUJBQWlCLENBQUMsS0FBYTtJQUM3QyxPQUFPLEtBQUssQ0FBQyxLQUFLLENBQUMsSUFBSSxnQkFBZ0IsQ0FBQyxLQUFLLENBQUMsS0FBSywwQkFBa0IsQ0FBQztBQUN4RSxDQUFDO0FBRkQsOENBRUM7QUFFRCxTQUFnQixrQkFBa0IsQ0FBQyxLQUFhO0lBQzlDLE9BQU8saUJBQWlCLENBQUMsS0FBSyxDQUFDLENBQUM7QUFDbEMsQ0FBQztBQUZELGdEQUVDO0FBRUQ7Ozs7Ozs7Ozs7R0FVRztBQUNILFNBQWdCLG1CQUFtQixDQUFDLEtBQWEsRUFBRSxhQUFzQixLQUFLO0lBQzVFLElBQUksT0FBTyxHQUFHLEtBQUssQ0FBQyxXQUFXLEVBQUUsQ0FBQztJQUNsQyxJQUFJLENBQUMsVUFBVSxJQUFJLE9BQU8sQ0FBQyxVQUFVLENBQUMsSUFBSSxDQUFDLEVBQUU7UUFDM0MsT0FBTyxHQUFHLE9BQU8sQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLENBQUM7S0FDNUI7SUFDRCxPQUFPLEtBQUssT0FBTyxDQUFDLFFBQVEsQ0FBQywwQkFBa0IsR0FBRyxDQUFDLEVBQUUsR0FBRyxDQUFDLEVBQUUsQ0FBQztBQUM5RCxDQUFDO0FBTkQsa0RBTUM7QUFFRCxTQUFnQixvQkFBb0IsQ0FBQyxLQUFhLEVBQUUsYUFBc0IsS0FBSztJQUM3RSxPQUFPLG1CQUFtQixDQUFDLEtBQUssRUFBRSxVQUFVLENBQUMsQ0FBQztBQUNoRCxDQUFDO0FBRkQsb0RBRUM7QUFFRCxTQUFTLEtBQUssQ0FBQyxLQUFhO0lBQzFCLE9BQU8sd0JBQXdCLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxJQUFJLEtBQUssQ0FBQyxNQUFNLEdBQUcsQ0FBQyxLQUFLLENBQUMsQ0FBQztBQUN4RSxDQUFDO0FBRUQsU0FBUyxnQkFBZ0IsQ0FBQyxLQUFhO0lBQ3JDLE9BQU8sVUFBVSxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxLQUFLLENBQUMsTUFBTSxHQUFHLENBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUMsS0FBSyxDQUFDLE1BQU0sR0FBRyxDQUFDLENBQUM7QUFDNUUsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IGRlZmluZSwgSW5mZXIsIGxpdGVyYWwsIG51bWJlciwgb2JqZWN0LCBzdHJpbmcsIHVuaW9uIH0gZnJvbSAnc3VwZXJzdHJ1Y3QnO1xuaW1wb3J0IHsgQ2FsbEFyZyB9IGZyb20gJy4vc3VpLWJjcyc7XG5pbXBvcnQgeyBmcm9tQjU4IH0gZnJvbSAnQG15c3Rlbi9iY3MnO1xuXG5leHBvcnQgY29uc3QgVHJhbnNhY3Rpb25EaWdlc3QgPSBzdHJpbmcoKTtcbmV4cG9ydCB0eXBlIFRyYW5zYWN0aW9uRGlnZXN0ID0gSW5mZXI8dHlwZW9mIFRyYW5zYWN0aW9uRGlnZXN0PjtcblxuZXhwb3J0IGNvbnN0IFRyYW5zYWN0aW9uRWZmZWN0c0RpZ2VzdCA9IHN0cmluZygpO1xuZXhwb3J0IHR5cGUgVHJhbnNhY3Rpb25FZmZlY3RzRGlnZXN0ID0gSW5mZXI8dHlwZW9mIFRyYW5zYWN0aW9uRWZmZWN0c0RpZ2VzdD47XG5cbmV4cG9ydCBjb25zdCBUcmFuc2FjdGlvbkV2ZW50RGlnZXN0ID0gc3RyaW5nKCk7XG5leHBvcnQgdHlwZSBUcmFuc2FjdGlvbkV2ZW50RGlnZXN0ID0gSW5mZXI8dHlwZW9mIFRyYW5zYWN0aW9uRXZlbnREaWdlc3Q+O1xuXG5leHBvcnQgY29uc3QgT2JqZWN0SWQgPSBzdHJpbmcoKTtcbmV4cG9ydCB0eXBlIE9iamVjdElkID0gSW5mZXI8dHlwZW9mIE9iamVjdElkPjtcblxuZXhwb3J0IGNvbnN0IFN1aUFkZHJlc3MgPSBzdHJpbmcoKTtcbmV4cG9ydCB0eXBlIFN1aUFkZHJlc3MgPSBJbmZlcjx0eXBlb2YgU3VpQWRkcmVzcz47XG5cbmV4cG9ydCBjb25zdCBTZXF1ZW5jZU51bWJlciA9IG51bWJlcigpO1xuZXhwb3J0IHR5cGUgU2VxdWVuY2VOdW1iZXIgPSBJbmZlcjx0eXBlb2YgU2VxdWVuY2VOdW1iZXI+O1xuXG5leHBvcnQgY29uc3QgT2JqZWN0T3duZXIgPSB1bmlvbihbXG4gIG9iamVjdCh7XG4gICAgQWRkcmVzc093bmVyOiBTdWlBZGRyZXNzLFxuICB9KSxcbiAgb2JqZWN0KHtcbiAgICBPYmplY3RPd25lcjogU3VpQWRkcmVzcyxcbiAgfSksXG4gIG9iamVjdCh7XG4gICAgU2hhcmVkOiBvYmplY3Qoe1xuICAgICAgaW5pdGlhbF9zaGFyZWRfdmVyc2lvbjogbnVtYmVyKCksXG4gICAgfSksXG4gIH0pLFxuICBsaXRlcmFsKCdJbW11dGFibGUnKSxcbl0pO1xuZXhwb3J0IHR5cGUgT2JqZWN0T3duZXIgPSBJbmZlcjx0eXBlb2YgT2JqZWN0T3duZXI+O1xuXG5leHBvcnQgdHlwZSBTdWlKc29uVmFsdWUgPSBib29sZWFuIHwgbnVtYmVyIHwgc3RyaW5nIHwgQ2FsbEFyZyB8IEFycmF5PFN1aUpzb25WYWx1ZT47XG5leHBvcnQgY29uc3QgU3VpSnNvblZhbHVlID0gZGVmaW5lPFN1aUpzb25WYWx1ZT4oJ1N1aUpzb25WYWx1ZScsICgpID0+IHRydWUpO1xuXG4vLyBzb3VyY2Ugb2YgdHJ1dGggaXNcbi8vIGh0dHBzOi8vZ2l0aHViLmNvbS9NeXN0ZW5MYWJzL3N1aS9ibG9iL2FjYjJiOTdhZTIxZjQ3NjAwZTA1YjBkMjgxMjdkODhkMDcyNTU2MWQvY3JhdGVzL3N1aS10eXBlcy9zcmMvYmFzZV90eXBlcy5ycyNMMTcxXG5jb25zdCBUWF9ESUdFU1RfTEVOR1RIID0gMzI7XG5cbi8qKiBSZXR1cm5zIHdoZXRoZXIgdGhlIHR4IGRpZ2VzdCBpcyB2YWxpZCBiYXNlZCBvbiB0aGUgc2VyaWFsaXphdGlvbiBmb3JtYXQgKi9cbmV4cG9ydCBmdW5jdGlvbiBpc1ZhbGlkVHJhbnNhY3Rpb25EaWdlc3QodmFsdWU6IHN0cmluZyk6IHZhbHVlIGlzIFRyYW5zYWN0aW9uRGlnZXN0IHtcbiAgdHJ5IHtcbiAgICBjb25zdCBidWZmZXIgPSBmcm9tQjU4KHZhbHVlKTtcbiAgICByZXR1cm4gYnVmZmVyLmxlbmd0aCA9PT0gVFhfRElHRVNUX0xFTkdUSDtcbiAgfSBjYXRjaCAoZSkge1xuICAgIHJldHVybiBmYWxzZTtcbiAgfVxufVxuXG4vLyBUT0RPIC0gY2FuIHdlIGF1dG9tYXRpY2FsbHkgc3luYyB0aGlzIHdpdGggcnVzdCBsZW5ndGggZGVmaW5pdGlvbj9cbi8vIFNvdXJjZSBvZiB0cnV0aCBpc1xuLy8gaHR0cHM6Ly9naXRodWIuY29tL015c3RlbkxhYnMvc3VpL2Jsb2IvYWNiMmI5N2FlMjFmNDc2MDBlMDViMGQyODEyN2Q4OGQwNzI1NTYxZC9jcmF0ZXMvc3VpLXR5cGVzL3NyYy9iYXNlX3R5cGVzLnJzI0w2N1xuLy8gd2hpY2ggdXNlcyB0aGUgTW92ZSBhY2NvdW50IGFkZHJlc3MgbGVuZ3RoXG4vLyBodHRwczovL2dpdGh1Yi5jb20vbW92ZS1sYW5ndWFnZS9tb3ZlL2Jsb2IvNjdlYzQwZGM1MGM2NmMzNGZkNzM1MTJmY2M0MTJmM2I2OGQ2NzIzNS9sYW5ndWFnZS9tb3ZlLWNvcmUvdHlwZXMvc3JjL2FjY291bnRfYWRkcmVzcy5ycyNMMjMgLlxuXG5leHBvcnQgY29uc3QgU1VJX0FERFJFU1NfTEVOR1RIID0gMzI7XG5leHBvcnQgZnVuY3Rpb24gaXNWYWxpZFN1aUFkZHJlc3ModmFsdWU6IHN0cmluZyk6IHZhbHVlIGlzIFN1aUFkZHJlc3Mge1xuICByZXR1cm4gaXNIZXgodmFsdWUpICYmIGdldEhleEJ5dGVMZW5ndGgodmFsdWUpID09PSBTVUlfQUREUkVTU19MRU5HVEg7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBpc1ZhbGlkU3VpT2JqZWN0SWQodmFsdWU6IHN0cmluZyk6IGJvb2xlYW4ge1xuICByZXR1cm4gaXNWYWxpZFN1aUFkZHJlc3ModmFsdWUpO1xufVxuXG4vKipcbiAqIFBlcmZvcm0gdGhlIGZvbGxvd2luZyBvcGVyYXRpb25zOlxuICogMS4gTWFrZSB0aGUgYWRkcmVzcyBsb3dlciBjYXNlXG4gKiAyLiBQcmVwZW5kIGAweGAgaWYgdGhlIHN0cmluZyBkb2VzIG5vdCBzdGFydCB3aXRoIGAweGAuXG4gKiAzLiBBZGQgbW9yZSB6ZXJvcyBpZiB0aGUgbGVuZ3RoIG9mIHRoZSBhZGRyZXNzKGV4Y2x1ZGluZyBgMHhgKSBpcyBsZXNzIHRoYW4gYFNVSV9BRERSRVNTX0xFTkdUSGBcbiAqXG4gKiBXQVJOSU5HOiBpZiB0aGUgYWRkcmVzcyB2YWx1ZSBpdHNlbGYgc3RhcnRzIHdpdGggYDB4YCwgZS5nLiwgYDB4MHhgLCB0aGUgZGVmYXVsdCBiZWhhdmlvclxuICogaXMgdG8gdHJlYXQgdGhlIGZpcnN0IGAweGAgbm90IGFzIHBhcnQgb2YgdGhlIGFkZHJlc3MuIFRoZSBkZWZhdWx0IGJlaGF2aW9yIGNhbiBiZSBvdmVycmlkZGVuIGJ5XG4gKiBzZXR0aW5nIGBmb3JjZUFkZDB4YCB0byB0cnVlXG4gKlxuICovXG5leHBvcnQgZnVuY3Rpb24gbm9ybWFsaXplU3VpQWRkcmVzcyh2YWx1ZTogc3RyaW5nLCBmb3JjZUFkZDB4OiBib29sZWFuID0gZmFsc2UpOiBTdWlBZGRyZXNzIHtcbiAgbGV0IGFkZHJlc3MgPSB2YWx1ZS50b0xvd2VyQ2FzZSgpO1xuICBpZiAoIWZvcmNlQWRkMHggJiYgYWRkcmVzcy5zdGFydHNXaXRoKCcweCcpKSB7XG4gICAgYWRkcmVzcyA9IGFkZHJlc3Muc2xpY2UoMik7XG4gIH1cbiAgcmV0dXJuIGAweCR7YWRkcmVzcy5wYWRTdGFydChTVUlfQUREUkVTU19MRU5HVEggKiAyLCAnMCcpfWA7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBub3JtYWxpemVTdWlPYmplY3RJZCh2YWx1ZTogc3RyaW5nLCBmb3JjZUFkZDB4OiBib29sZWFuID0gZmFsc2UpOiBPYmplY3RJZCB7XG4gIHJldHVybiBub3JtYWxpemVTdWlBZGRyZXNzKHZhbHVlLCBmb3JjZUFkZDB4KTtcbn1cblxuZnVuY3Rpb24gaXNIZXgodmFsdWU6IHN0cmluZyk6IGJvb2xlYW4ge1xuICByZXR1cm4gL14oMHh8MFgpP1thLWZBLUYwLTldKyQvLnRlc3QodmFsdWUpICYmIHZhbHVlLmxlbmd0aCAlIDIgPT09IDA7XG59XG5cbmZ1bmN0aW9uIGdldEhleEJ5dGVMZW5ndGgodmFsdWU6IHN0cmluZyk6IG51bWJlciB7XG4gIHJldHVybiAvXigweHwwWCkvLnRlc3QodmFsdWUpID8gKHZhbHVlLmxlbmd0aCAtIDIpIC8gMiA6IHZhbHVlLmxlbmd0aCAvIDI7XG59XG4iXX0=
|
|
@@ -0,0 +1,198 @@
|
|
|
1
|
+
import { Infer } from 'superstruct';
|
|
2
|
+
import { ObjectId, SuiAddress, TransactionDigest, SuiJsonValue } from './common';
|
|
3
|
+
export declare const EventId: import("superstruct").Struct<{
|
|
4
|
+
txDigest: string;
|
|
5
|
+
eventSeq: number;
|
|
6
|
+
}, {
|
|
7
|
+
txDigest: import("superstruct").Struct<string, null>;
|
|
8
|
+
eventSeq: import("superstruct").Struct<number, null>;
|
|
9
|
+
}>;
|
|
10
|
+
export declare const SuiEvent: import("superstruct").Struct<{
|
|
11
|
+
id: {
|
|
12
|
+
txDigest: string;
|
|
13
|
+
eventSeq: number;
|
|
14
|
+
};
|
|
15
|
+
packageId: string;
|
|
16
|
+
transactionModule: string;
|
|
17
|
+
sender: string;
|
|
18
|
+
type: string;
|
|
19
|
+
parsedJson?: Record<string, any> | undefined;
|
|
20
|
+
bcs?: string | undefined;
|
|
21
|
+
timestampMs?: number | undefined;
|
|
22
|
+
}, {
|
|
23
|
+
id: import("superstruct").Struct<{
|
|
24
|
+
txDigest: string;
|
|
25
|
+
eventSeq: number;
|
|
26
|
+
}, {
|
|
27
|
+
txDigest: import("superstruct").Struct<string, null>;
|
|
28
|
+
eventSeq: import("superstruct").Struct<number, null>;
|
|
29
|
+
}>;
|
|
30
|
+
packageId: import("superstruct").Struct<string, null>;
|
|
31
|
+
transactionModule: import("superstruct").Struct<string, null>;
|
|
32
|
+
sender: import("superstruct").Struct<string, null>;
|
|
33
|
+
type: import("superstruct").Struct<string, null>;
|
|
34
|
+
parsedJson: import("superstruct").Struct<Record<string, any> | undefined, null>;
|
|
35
|
+
bcs: import("superstruct").Struct<string | undefined, null>;
|
|
36
|
+
timestampMs: import("superstruct").Struct<number | undefined, null>;
|
|
37
|
+
}>;
|
|
38
|
+
export declare type SuiEvent = Infer<typeof SuiEvent>;
|
|
39
|
+
export declare type MoveEventField = {
|
|
40
|
+
path: string;
|
|
41
|
+
value: SuiJsonValue;
|
|
42
|
+
};
|
|
43
|
+
/**
|
|
44
|
+
* Sequential event ID, ie (transaction seq number, event seq number).
|
|
45
|
+
* 1) Serves as a unique event ID for each fullnode
|
|
46
|
+
* 2) Also serves to sequence events for the purposes of pagination and querying.
|
|
47
|
+
* A higher id is an event seen later by that fullnode.
|
|
48
|
+
* This ID is the "cursor" for event querying.
|
|
49
|
+
*/
|
|
50
|
+
export declare type EventId = Infer<typeof EventId>;
|
|
51
|
+
export declare type SuiEventFilter = {
|
|
52
|
+
Package: ObjectId;
|
|
53
|
+
} | {
|
|
54
|
+
MoveModule: {
|
|
55
|
+
package: ObjectId;
|
|
56
|
+
module: string;
|
|
57
|
+
};
|
|
58
|
+
} | {
|
|
59
|
+
MoveEventType: string;
|
|
60
|
+
} | {
|
|
61
|
+
MoveEventField: MoveEventField;
|
|
62
|
+
} | {
|
|
63
|
+
Transaction: TransactionDigest;
|
|
64
|
+
} | {
|
|
65
|
+
TimeRange: {
|
|
66
|
+
start_time: number;
|
|
67
|
+
end_time: number;
|
|
68
|
+
};
|
|
69
|
+
} | {
|
|
70
|
+
Sender: SuiAddress;
|
|
71
|
+
} | {
|
|
72
|
+
All: SuiEventFilter[];
|
|
73
|
+
} | {
|
|
74
|
+
Any: SuiEventFilter[];
|
|
75
|
+
} | {
|
|
76
|
+
And: [SuiEventFilter, SuiEventFilter];
|
|
77
|
+
} | {
|
|
78
|
+
Or: [SuiEventFilter, SuiEventFilter];
|
|
79
|
+
};
|
|
80
|
+
export declare const PaginatedEvents: import("superstruct").Struct<{
|
|
81
|
+
data: {
|
|
82
|
+
id: {
|
|
83
|
+
txDigest: string;
|
|
84
|
+
eventSeq: number;
|
|
85
|
+
};
|
|
86
|
+
packageId: string;
|
|
87
|
+
transactionModule: string;
|
|
88
|
+
sender: string;
|
|
89
|
+
type: string;
|
|
90
|
+
parsedJson?: Record<string, any> | undefined;
|
|
91
|
+
bcs?: string | undefined;
|
|
92
|
+
timestampMs?: number | undefined;
|
|
93
|
+
}[];
|
|
94
|
+
nextCursor: {
|
|
95
|
+
txDigest: string;
|
|
96
|
+
eventSeq: number;
|
|
97
|
+
} | null;
|
|
98
|
+
hasNextPage: boolean;
|
|
99
|
+
}, {
|
|
100
|
+
data: import("superstruct").Struct<{
|
|
101
|
+
id: {
|
|
102
|
+
txDigest: string;
|
|
103
|
+
eventSeq: number;
|
|
104
|
+
};
|
|
105
|
+
packageId: string;
|
|
106
|
+
transactionModule: string;
|
|
107
|
+
sender: string;
|
|
108
|
+
type: string;
|
|
109
|
+
parsedJson?: Record<string, any> | undefined;
|
|
110
|
+
bcs?: string | undefined;
|
|
111
|
+
timestampMs?: number | undefined;
|
|
112
|
+
}[], import("superstruct").Struct<{
|
|
113
|
+
id: {
|
|
114
|
+
txDigest: string;
|
|
115
|
+
eventSeq: number;
|
|
116
|
+
};
|
|
117
|
+
packageId: string;
|
|
118
|
+
transactionModule: string;
|
|
119
|
+
sender: string;
|
|
120
|
+
type: string;
|
|
121
|
+
parsedJson?: Record<string, any> | undefined;
|
|
122
|
+
bcs?: string | undefined;
|
|
123
|
+
timestampMs?: number | undefined;
|
|
124
|
+
}, {
|
|
125
|
+
id: import("superstruct").Struct<{
|
|
126
|
+
txDigest: string;
|
|
127
|
+
eventSeq: number;
|
|
128
|
+
}, {
|
|
129
|
+
txDigest: import("superstruct").Struct<string, null>;
|
|
130
|
+
eventSeq: import("superstruct").Struct<number, null>;
|
|
131
|
+
}>;
|
|
132
|
+
packageId: import("superstruct").Struct<string, null>;
|
|
133
|
+
transactionModule: import("superstruct").Struct<string, null>;
|
|
134
|
+
sender: import("superstruct").Struct<string, null>;
|
|
135
|
+
type: import("superstruct").Struct<string, null>;
|
|
136
|
+
parsedJson: import("superstruct").Struct<Record<string, any> | undefined, null>;
|
|
137
|
+
bcs: import("superstruct").Struct<string | undefined, null>;
|
|
138
|
+
timestampMs: import("superstruct").Struct<number | undefined, null>;
|
|
139
|
+
}>>;
|
|
140
|
+
nextCursor: import("superstruct").Struct<{
|
|
141
|
+
txDigest: string;
|
|
142
|
+
eventSeq: number;
|
|
143
|
+
} | null, null>;
|
|
144
|
+
hasNextPage: import("superstruct").Struct<boolean, null>;
|
|
145
|
+
}>;
|
|
146
|
+
export declare type PaginatedEvents = Infer<typeof PaginatedEvents>;
|
|
147
|
+
export declare const SubscriptionId: import("superstruct").Struct<number, null>;
|
|
148
|
+
export declare type SubscriptionId = Infer<typeof SubscriptionId>;
|
|
149
|
+
export declare const SubscriptionEvent: import("superstruct").Struct<{
|
|
150
|
+
subscription: number;
|
|
151
|
+
result: {
|
|
152
|
+
id: {
|
|
153
|
+
txDigest: string;
|
|
154
|
+
eventSeq: number;
|
|
155
|
+
};
|
|
156
|
+
packageId: string;
|
|
157
|
+
transactionModule: string;
|
|
158
|
+
sender: string;
|
|
159
|
+
type: string;
|
|
160
|
+
parsedJson?: Record<string, any> | undefined;
|
|
161
|
+
bcs?: string | undefined;
|
|
162
|
+
timestampMs?: number | undefined;
|
|
163
|
+
};
|
|
164
|
+
}, {
|
|
165
|
+
subscription: import("superstruct").Struct<number, null>;
|
|
166
|
+
result: import("superstruct").Struct<{
|
|
167
|
+
id: {
|
|
168
|
+
txDigest: string;
|
|
169
|
+
eventSeq: number;
|
|
170
|
+
};
|
|
171
|
+
packageId: string;
|
|
172
|
+
transactionModule: string;
|
|
173
|
+
sender: string;
|
|
174
|
+
type: string;
|
|
175
|
+
parsedJson?: Record<string, any> | undefined;
|
|
176
|
+
bcs?: string | undefined;
|
|
177
|
+
timestampMs?: number | undefined;
|
|
178
|
+
}, {
|
|
179
|
+
id: import("superstruct").Struct<{
|
|
180
|
+
txDigest: string;
|
|
181
|
+
eventSeq: number;
|
|
182
|
+
}, {
|
|
183
|
+
txDigest: import("superstruct").Struct<string, null>;
|
|
184
|
+
eventSeq: import("superstruct").Struct<number, null>;
|
|
185
|
+
}>;
|
|
186
|
+
packageId: import("superstruct").Struct<string, null>;
|
|
187
|
+
transactionModule: import("superstruct").Struct<string, null>;
|
|
188
|
+
sender: import("superstruct").Struct<string, null>;
|
|
189
|
+
type: import("superstruct").Struct<string, null>;
|
|
190
|
+
parsedJson: import("superstruct").Struct<Record<string, any> | undefined, null>;
|
|
191
|
+
bcs: import("superstruct").Struct<string | undefined, null>;
|
|
192
|
+
timestampMs: import("superstruct").Struct<number | undefined, null>;
|
|
193
|
+
}>;
|
|
194
|
+
}>;
|
|
195
|
+
export declare type SubscriptionEvent = Infer<typeof SubscriptionEvent>;
|
|
196
|
+
export declare function getEventSender(event: SuiEvent): SuiAddress;
|
|
197
|
+
export declare function getEventPackage(event: SuiEvent): ObjectId;
|
|
198
|
+
//# sourceMappingURL=events.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"events.d.ts","sourceRoot":"","sources":["../../../../../src/lib/mystenlab/types/events.ts"],"names":[],"mappings":"AAAA,OAAO,EAML,KAAK,EAON,MAAM,aAAa,CAAC;AACrB,OAAO,EAAE,QAAQ,EAAE,UAAU,EAAE,iBAAiB,EAAE,YAAY,EAAkB,MAAM,UAAU,CAAC;AAEjG,eAAO,MAAM,OAAO;;;;;;EAGlB,CAAC;AAIH,eAAO,MAAM,QAAQ;;;;;;;;;;;;;;;;;;;;;;;;;;;EAenB,CAAC;AAEH,oBAAY,QAAQ,GAAG,KAAK,CAAC,OAAO,QAAQ,CAAC,CAAC;AAE9C,oBAAY,cAAc,GAAG;IAC3B,IAAI,EAAE,MAAM,CAAC;IACb,KAAK,EAAE,YAAY,CAAC;CACrB,CAAC;AAEF;;;;;;GAMG;AACH,oBAAY,OAAO,GAAG,KAAK,CAAC,OAAO,OAAO,CAAC,CAAC;AAG5C,oBAAY,cAAc,GACtB;IAAE,OAAO,EAAE,QAAQ,CAAA;CAAE,GACrB;IAAE,UAAU,EAAE;QAAE,OAAO,EAAE,QAAQ,CAAC;QAAC,MAAM,EAAE,MAAM,CAAA;KAAE,CAAA;CAAE,GACrD;IAAE,aAAa,EAAE,MAAM,CAAA;CAAE,GACzB;IAAE,cAAc,EAAE,cAAc,CAAA;CAAE,GAClC;IAAE,WAAW,EAAE,iBAAiB,CAAA;CAAE,GAClC;IACE,SAAS,EAAE;QAET,UAAU,EAAE,MAAM,CAAC;QAEnB,QAAQ,EAAE,MAAM,CAAC;KAClB,CAAC;CACH,GACD;IAAE,MAAM,EAAE,UAAU,CAAA;CAAE,GACtB;IAAE,GAAG,EAAE,cAAc,EAAE,CAAA;CAAE,GACzB;IAAE,GAAG,EAAE,cAAc,EAAE,CAAA;CAAE,GACzB;IAAE,GAAG,EAAE,CAAC,cAAc,EAAE,cAAc,CAAC,CAAA;CAAE,GACzC;IAAE,EAAE,EAAE,CAAC,cAAc,EAAE,cAAc,CAAC,CAAA;CAAE,CAAC;AAE7C,eAAO,MAAM,eAAe;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAI1B,CAAC;AACH,oBAAY,eAAe,GAAG,KAAK,CAAC,OAAO,eAAe,CAAC,CAAC;AAE5D,eAAO,MAAM,cAAc,4CAAW,CAAC;AAEvC,oBAAY,cAAc,GAAG,KAAK,CAAC,OAAO,cAAc,CAAC,CAAC;AAE1D,eAAO,MAAM,iBAAiB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAG5B,CAAC;AAEH,oBAAY,iBAAiB,GAAG,KAAK,CAAC,OAAO,iBAAiB,CAAC,CAAC;AAIhE,wBAAgB,cAAc,CAAC,KAAK,EAAE,QAAQ,GAAG,UAAU,CAE1D;AAED,wBAAgB,eAAe,CAAC,KAAK,EAAE,QAAQ,GAAG,QAAQ,CAEzD"}
|
|
@@ -0,0 +1,46 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.getEventPackage = exports.getEventSender = exports.SubscriptionEvent = exports.SubscriptionId = exports.PaginatedEvents = exports.SuiEvent = exports.EventId = void 0;
|
|
4
|
+
const superstruct_1 = require("superstruct");
|
|
5
|
+
const common_1 = require("./common");
|
|
6
|
+
exports.EventId = superstruct_1.object({
|
|
7
|
+
txDigest: common_1.TransactionDigest,
|
|
8
|
+
eventSeq: common_1.SequenceNumber,
|
|
9
|
+
});
|
|
10
|
+
// event types mirror those in "sui-json-rpc-types/src/sui_event.rs"
|
|
11
|
+
exports.SuiEvent = superstruct_1.object({
|
|
12
|
+
id: exports.EventId,
|
|
13
|
+
// Move package where this event was emitted.
|
|
14
|
+
packageId: common_1.ObjectId,
|
|
15
|
+
// Move module where this event was emitted.
|
|
16
|
+
transactionModule: superstruct_1.string(),
|
|
17
|
+
// Sender's Sui address.
|
|
18
|
+
sender: common_1.SuiAddress,
|
|
19
|
+
// Move event type.
|
|
20
|
+
type: superstruct_1.string(),
|
|
21
|
+
// Parsed json value of the event
|
|
22
|
+
parsedJson: superstruct_1.optional(superstruct_1.record(superstruct_1.string(), superstruct_1.any())),
|
|
23
|
+
// Base 58 encoded bcs bytes of the move event
|
|
24
|
+
bcs: superstruct_1.optional(superstruct_1.string()),
|
|
25
|
+
timestampMs: superstruct_1.optional(superstruct_1.integer()),
|
|
26
|
+
});
|
|
27
|
+
exports.PaginatedEvents = superstruct_1.object({
|
|
28
|
+
data: superstruct_1.array(exports.SuiEvent),
|
|
29
|
+
nextCursor: superstruct_1.union([exports.EventId, superstruct_1.literal(null)]),
|
|
30
|
+
hasNextPage: superstruct_1.boolean(),
|
|
31
|
+
});
|
|
32
|
+
exports.SubscriptionId = superstruct_1.number();
|
|
33
|
+
exports.SubscriptionEvent = superstruct_1.object({
|
|
34
|
+
subscription: exports.SubscriptionId,
|
|
35
|
+
result: exports.SuiEvent,
|
|
36
|
+
});
|
|
37
|
+
/* ------------------------------- EventData ------------------------------ */
|
|
38
|
+
function getEventSender(event) {
|
|
39
|
+
return event.sender;
|
|
40
|
+
}
|
|
41
|
+
exports.getEventSender = getEventSender;
|
|
42
|
+
function getEventPackage(event) {
|
|
43
|
+
return event.packageId;
|
|
44
|
+
}
|
|
45
|
+
exports.getEventPackage = getEventPackage;
|
|
46
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZXZlbnRzLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vc3JjL2xpYi9teXN0ZW5sYWIvdHlwZXMvZXZlbnRzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7OztBQUFBLDZDQWFxQjtBQUNyQixxQ0FBaUc7QUFFcEYsUUFBQSxPQUFPLEdBQUcsb0JBQU0sQ0FBQztJQUM1QixRQUFRLEVBQUUsMEJBQWlCO0lBQzNCLFFBQVEsRUFBRSx1QkFBYztDQUN6QixDQUFDLENBQUM7QUFFSCxvRUFBb0U7QUFFdkQsUUFBQSxRQUFRLEdBQUcsb0JBQU0sQ0FBQztJQUM3QixFQUFFLEVBQUUsZUFBTztJQUNYLDZDQUE2QztJQUM3QyxTQUFTLEVBQUUsaUJBQVE7SUFDbkIsNENBQTRDO0lBQzVDLGlCQUFpQixFQUFFLG9CQUFNLEVBQUU7SUFDM0Isd0JBQXdCO0lBQ3hCLE1BQU0sRUFBRSxtQkFBVTtJQUNsQixtQkFBbUI7SUFDbkIsSUFBSSxFQUFFLG9CQUFNLEVBQUU7SUFDZCxpQ0FBaUM7SUFDakMsVUFBVSxFQUFFLHNCQUFRLENBQUMsb0JBQU0sQ0FBQyxvQkFBTSxFQUFFLEVBQUUsaUJBQUcsRUFBRSxDQUFDLENBQUM7SUFDN0MsOENBQThDO0lBQzlDLEdBQUcsRUFBRSxzQkFBUSxDQUFDLG9CQUFNLEVBQUUsQ0FBQztJQUN2QixXQUFXLEVBQUUsc0JBQVEsQ0FBQyxxQkFBTyxFQUFFLENBQUM7Q0FDakMsQ0FBQyxDQUFDO0FBdUNVLFFBQUEsZUFBZSxHQUFHLG9CQUFNLENBQUM7SUFDcEMsSUFBSSxFQUFFLG1CQUFLLENBQUMsZ0JBQVEsQ0FBQztJQUNyQixVQUFVLEVBQUUsbUJBQUssQ0FBQyxDQUFDLGVBQU8sRUFBRSxxQkFBTyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUM7SUFDM0MsV0FBVyxFQUFFLHFCQUFPLEVBQUU7Q0FDdkIsQ0FBQyxDQUFDO0FBR1UsUUFBQSxjQUFjLEdBQUcsb0JBQU0sRUFBRSxDQUFDO0FBSTFCLFFBQUEsaUJBQWlCLEdBQUcsb0JBQU0sQ0FBQztJQUN0QyxZQUFZLEVBQUUsc0JBQWM7SUFDNUIsTUFBTSxFQUFFLGdCQUFRO0NBQ2pCLENBQUMsQ0FBQztBQUlILDhFQUE4RTtBQUU5RSxTQUFnQixjQUFjLENBQUMsS0FBZTtJQUM1QyxPQUFPLEtBQUssQ0FBQyxNQUFNLENBQUM7QUFDdEIsQ0FBQztBQUZELHdDQUVDO0FBRUQsU0FBZ0IsZUFBZSxDQUFDLEtBQWU7SUFDN0MsT0FBTyxLQUFLLENBQUMsU0FBUyxDQUFDO0FBQ3pCLENBQUM7QUFGRCwwQ0FFQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XG4gIG9iamVjdCxcbiAgbnVtYmVyLFxuICBzdHJpbmcsXG4gIHVuaW9uLFxuICBsaXRlcmFsLFxuICBJbmZlcixcbiAgYXJyYXksXG4gIHJlY29yZCxcbiAgYW55LFxuICBvcHRpb25hbCxcbiAgYm9vbGVhbixcbiAgaW50ZWdlcixcbn0gZnJvbSAnc3VwZXJzdHJ1Y3QnO1xuaW1wb3J0IHsgT2JqZWN0SWQsIFN1aUFkZHJlc3MsIFRyYW5zYWN0aW9uRGlnZXN0LCBTdWlKc29uVmFsdWUsIFNlcXVlbmNlTnVtYmVyIH0gZnJvbSAnLi9jb21tb24nO1xuXG5leHBvcnQgY29uc3QgRXZlbnRJZCA9IG9iamVjdCh7XG4gIHR4RGlnZXN0OiBUcmFuc2FjdGlvbkRpZ2VzdCxcbiAgZXZlbnRTZXE6IFNlcXVlbmNlTnVtYmVyLFxufSk7XG5cbi8vIGV2ZW50IHR5cGVzIG1pcnJvciB0aG9zZSBpbiBcInN1aS1qc29uLXJwYy10eXBlcy9zcmMvc3VpX2V2ZW50LnJzXCJcblxuZXhwb3J0IGNvbnN0IFN1aUV2ZW50ID0gb2JqZWN0KHtcbiAgaWQ6IEV2ZW50SWQsXG4gIC8vIE1vdmUgcGFja2FnZSB3aGVyZSB0aGlzIGV2ZW50IHdhcyBlbWl0dGVkLlxuICBwYWNrYWdlSWQ6IE9iamVjdElkLFxuICAvLyBNb3ZlIG1vZHVsZSB3aGVyZSB0aGlzIGV2ZW50IHdhcyBlbWl0dGVkLlxuICB0cmFuc2FjdGlvbk1vZHVsZTogc3RyaW5nKCksXG4gIC8vIFNlbmRlcidzIFN1aSBhZGRyZXNzLlxuICBzZW5kZXI6IFN1aUFkZHJlc3MsXG4gIC8vIE1vdmUgZXZlbnQgdHlwZS5cbiAgdHlwZTogc3RyaW5nKCksXG4gIC8vIFBhcnNlZCBqc29uIHZhbHVlIG9mIHRoZSBldmVudFxuICBwYXJzZWRKc29uOiBvcHRpb25hbChyZWNvcmQoc3RyaW5nKCksIGFueSgpKSksXG4gIC8vIEJhc2UgNTggZW5jb2RlZCBiY3MgYnl0ZXMgb2YgdGhlIG1vdmUgZXZlbnRcbiAgYmNzOiBvcHRpb25hbChzdHJpbmcoKSksXG4gIHRpbWVzdGFtcE1zOiBvcHRpb25hbChpbnRlZ2VyKCkpLFxufSk7XG5cbmV4cG9ydCB0eXBlIFN1aUV2ZW50ID0gSW5mZXI8dHlwZW9mIFN1aUV2ZW50PjtcblxuZXhwb3J0IHR5cGUgTW92ZUV2ZW50RmllbGQgPSB7XG4gIHBhdGg6IHN0cmluZztcbiAgdmFsdWU6IFN1aUpzb25WYWx1ZTtcbn07XG5cbi8qKlxuICogU2VxdWVudGlhbCBldmVudCBJRCwgaWUgKHRyYW5zYWN0aW9uIHNlcSBudW1iZXIsIGV2ZW50IHNlcSBudW1iZXIpLlxuICogMSkgU2VydmVzIGFzIGEgdW5pcXVlIGV2ZW50IElEIGZvciBlYWNoIGZ1bGxub2RlXG4gKiAyKSBBbHNvIHNlcnZlcyB0byBzZXF1ZW5jZSBldmVudHMgZm9yIHRoZSBwdXJwb3NlcyBvZiBwYWdpbmF0aW9uIGFuZCBxdWVyeWluZy5cbiAqICAgIEEgaGlnaGVyIGlkIGlzIGFuIGV2ZW50IHNlZW4gbGF0ZXIgYnkgdGhhdCBmdWxsbm9kZS5cbiAqIFRoaXMgSUQgaXMgdGhlIFwiY3Vyc29yXCIgZm9yIGV2ZW50IHF1ZXJ5aW5nLlxuICovXG5leHBvcnQgdHlwZSBFdmVudElkID0gSW5mZXI8dHlwZW9mIEV2ZW50SWQ+O1xuXG4vLyBtaXJyb3JzIHN1aV9qc29uX3JwY190eXBlczo6U3VpRXZlbnRGaWx0ZXJcbmV4cG9ydCB0eXBlIFN1aUV2ZW50RmlsdGVyID1cbiAgfCB7IFBhY2thZ2U6IE9iamVjdElkIH1cbiAgfCB7IE1vdmVNb2R1bGU6IHsgcGFja2FnZTogT2JqZWN0SWQ7IG1vZHVsZTogc3RyaW5nIH0gfVxuICB8IHsgTW92ZUV2ZW50VHlwZTogc3RyaW5nIH1cbiAgfCB7IE1vdmVFdmVudEZpZWxkOiBNb3ZlRXZlbnRGaWVsZCB9XG4gIHwgeyBUcmFuc2FjdGlvbjogVHJhbnNhY3Rpb25EaWdlc3QgfVxuICB8IHtcbiAgICAgIFRpbWVSYW5nZToge1xuICAgICAgICAvLyBsZWZ0IGVuZHBvaW50IG9mIHRpbWUgaW50ZXJ2YWwsIG1pbGxpc2Vjb25kcyBzaW5jZSBlcG9jaCwgaW5jbHVzaXZlXG4gICAgICAgIHN0YXJ0X3RpbWU6IG51bWJlcjtcbiAgICAgICAgLy8gcmlnaHQgZW5kcG9pbnQgb2YgdGltZSBpbnRlcnZhbCwgbWlsbGlzZWNvbmRzIHNpbmNlIGVwb2NoLCBleGNsdXNpdmVcbiAgICAgICAgZW5kX3RpbWU6IG51bWJlcjtcbiAgICAgIH07XG4gICAgfVxuICB8IHsgU2VuZGVyOiBTdWlBZGRyZXNzIH1cbiAgfCB7IEFsbDogU3VpRXZlbnRGaWx0ZXJbXSB9XG4gIHwgeyBBbnk6IFN1aUV2ZW50RmlsdGVyW10gfVxuICB8IHsgQW5kOiBbU3VpRXZlbnRGaWx0ZXIsIFN1aUV2ZW50RmlsdGVyXSB9XG4gIHwgeyBPcjogW1N1aUV2ZW50RmlsdGVyLCBTdWlFdmVudEZpbHRlcl0gfTtcblxuZXhwb3J0IGNvbnN0IFBhZ2luYXRlZEV2ZW50cyA9IG9iamVjdCh7XG4gIGRhdGE6IGFycmF5KFN1aUV2ZW50KSxcbiAgbmV4dEN1cnNvcjogdW5pb24oW0V2ZW50SWQsIGxpdGVyYWwobnVsbCldKSxcbiAgaGFzTmV4dFBhZ2U6IGJvb2xlYW4oKSxcbn0pO1xuZXhwb3J0IHR5cGUgUGFnaW5hdGVkRXZlbnRzID0gSW5mZXI8dHlwZW9mIFBhZ2luYXRlZEV2ZW50cz47XG5cbmV4cG9ydCBjb25zdCBTdWJzY3JpcHRpb25JZCA9IG51bWJlcigpO1xuXG5leHBvcnQgdHlwZSBTdWJzY3JpcHRpb25JZCA9IEluZmVyPHR5cGVvZiBTdWJzY3JpcHRpb25JZD47XG5cbmV4cG9ydCBjb25zdCBTdWJzY3JpcHRpb25FdmVudCA9IG9iamVjdCh7XG4gIHN1YnNjcmlwdGlvbjogU3Vic2NyaXB0aW9uSWQsXG4gIHJlc3VsdDogU3VpRXZlbnQsXG59KTtcblxuZXhwb3J0IHR5cGUgU3Vic2NyaXB0aW9uRXZlbnQgPSBJbmZlcjx0eXBlb2YgU3Vic2NyaXB0aW9uRXZlbnQ+O1xuXG4vKiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tIEV2ZW50RGF0YSAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0gKi9cblxuZXhwb3J0IGZ1bmN0aW9uIGdldEV2ZW50U2VuZGVyKGV2ZW50OiBTdWlFdmVudCk6IFN1aUFkZHJlc3Mge1xuICByZXR1cm4gZXZlbnQuc2VuZGVyO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gZ2V0RXZlbnRQYWNrYWdlKGV2ZW50OiBTdWlFdmVudCk6IE9iamVjdElkIHtcbiAgcmV0dXJuIGV2ZW50LnBhY2thZ2VJZDtcbn1cbiJdfQ==
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
export * from './common';
|
|
2
|
+
export * from './objects';
|
|
3
|
+
export * from './events';
|
|
4
|
+
export * from './transactions';
|
|
5
|
+
export * from './sui-bcs';
|
|
6
|
+
export * from './normalized';
|
|
7
|
+
export * from './coin';
|
|
8
|
+
export * from '../framework/framework';
|
|
9
|
+
//# sourceMappingURL=index.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../../src/lib/mystenlab/types/index.ts"],"names":[],"mappings":"AAAA,cAAc,UAAU,CAAC;AACzB,cAAc,WAAW,CAAC;AAC1B,cAAc,UAAU,CAAC;AACzB,cAAc,gBAAgB,CAAC;AAC/B,cAAc,WAAW,CAAC;AAC1B,cAAc,cAAc,CAAC;AAC7B,cAAc,QAAQ,CAAC;AACvB,cAAc,wBAAwB,CAAC"}
|
|
@@ -0,0 +1,21 @@
|
|
|
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("./common"), exports);
|
|
14
|
+
__exportStar(require("./objects"), exports);
|
|
15
|
+
__exportStar(require("./events"), exports);
|
|
16
|
+
__exportStar(require("./transactions"), exports);
|
|
17
|
+
__exportStar(require("./sui-bcs"), exports);
|
|
18
|
+
__exportStar(require("./normalized"), exports);
|
|
19
|
+
__exportStar(require("./coin"), exports);
|
|
20
|
+
__exportStar(require("../framework/framework"), exports);
|
|
21
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9zcmMvbGliL215c3RlbmxhYi90eXBlcy9pbmRleC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7QUFBQSwyQ0FBeUI7QUFDekIsNENBQTBCO0FBQzFCLDJDQUF5QjtBQUN6QixpREFBK0I7QUFDL0IsNENBQTBCO0FBQzFCLCtDQUE2QjtBQUM3Qix5Q0FBdUI7QUFDdkIseURBQXVDIiwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0ICogZnJvbSAnLi9jb21tb24nO1xuZXhwb3J0ICogZnJvbSAnLi9vYmplY3RzJztcbmV4cG9ydCAqIGZyb20gJy4vZXZlbnRzJztcbmV4cG9ydCAqIGZyb20gJy4vdHJhbnNhY3Rpb25zJztcbmV4cG9ydCAqIGZyb20gJy4vc3VpLWJjcyc7XG5leHBvcnQgKiBmcm9tICcuL25vcm1hbGl6ZWQnO1xuZXhwb3J0ICogZnJvbSAnLi9jb2luJztcbmV4cG9ydCAqIGZyb20gJy4uL2ZyYW1ld29yay9mcmFtZXdvcmsnO1xuIl19
|