@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,66 @@
|
|
|
1
|
+
import { Infer } from 'superstruct';
|
|
2
|
+
import { ObjectId, SharedObjectRef, SuiObjectRef } from '../types';
|
|
3
|
+
export declare const PureCallArg: import("superstruct").Struct<{
|
|
4
|
+
Pure: number[];
|
|
5
|
+
}, {
|
|
6
|
+
Pure: import("superstruct").Struct<number[], import("superstruct").Struct<number, null>>;
|
|
7
|
+
}>;
|
|
8
|
+
export declare const ObjectCallArg: import("superstruct").Struct<{
|
|
9
|
+
Object: {
|
|
10
|
+
ImmOrOwned: {
|
|
11
|
+
objectId: string;
|
|
12
|
+
version: string | number;
|
|
13
|
+
digest: string;
|
|
14
|
+
};
|
|
15
|
+
} | {
|
|
16
|
+
Shared: {
|
|
17
|
+
objectId: string;
|
|
18
|
+
initialSharedVersion: string | number;
|
|
19
|
+
mutable: boolean;
|
|
20
|
+
};
|
|
21
|
+
};
|
|
22
|
+
}, {
|
|
23
|
+
Object: import("superstruct").Struct<{
|
|
24
|
+
ImmOrOwned: {
|
|
25
|
+
objectId: string;
|
|
26
|
+
version: string | number;
|
|
27
|
+
digest: string;
|
|
28
|
+
};
|
|
29
|
+
} | {
|
|
30
|
+
Shared: {
|
|
31
|
+
objectId: string;
|
|
32
|
+
initialSharedVersion: string | number;
|
|
33
|
+
mutable: boolean;
|
|
34
|
+
};
|
|
35
|
+
}, null>;
|
|
36
|
+
}>;
|
|
37
|
+
export declare type PureCallArg = Infer<typeof PureCallArg>;
|
|
38
|
+
export declare type ObjectCallArg = Infer<typeof ObjectCallArg>;
|
|
39
|
+
export declare const BuilderCallArg: import("superstruct").Struct<{
|
|
40
|
+
Pure: number[];
|
|
41
|
+
} | {
|
|
42
|
+
Object: {
|
|
43
|
+
ImmOrOwned: {
|
|
44
|
+
objectId: string;
|
|
45
|
+
version: string | number;
|
|
46
|
+
digest: string;
|
|
47
|
+
};
|
|
48
|
+
} | {
|
|
49
|
+
Shared: {
|
|
50
|
+
objectId: string;
|
|
51
|
+
initialSharedVersion: string | number;
|
|
52
|
+
mutable: boolean;
|
|
53
|
+
};
|
|
54
|
+
};
|
|
55
|
+
}, null>;
|
|
56
|
+
export declare type BuilderCallArg = Infer<typeof BuilderCallArg>;
|
|
57
|
+
export declare const Inputs: {
|
|
58
|
+
Pure(data: unknown, type?: string | undefined): PureCallArg;
|
|
59
|
+
ObjectRef(ref: SuiObjectRef): ObjectCallArg;
|
|
60
|
+
SharedObjectRef(ref: SharedObjectRef): ObjectCallArg;
|
|
61
|
+
};
|
|
62
|
+
export declare function getIdFromCallArg(arg: ObjectId | ObjectCallArg): string;
|
|
63
|
+
export declare function getSharedObjectInput(arg: BuilderCallArg): SharedObjectRef | undefined;
|
|
64
|
+
export declare function isSharedObjectInput(arg: BuilderCallArg): boolean;
|
|
65
|
+
export declare function isMutableSharedObjectInput(arg: BuilderCallArg): boolean;
|
|
66
|
+
//# sourceMappingURL=Inputs.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"Inputs.d.ts","sourceRoot":"","sources":["../../../../../src/lib/mystenlab/builder/Inputs.ts"],"names":[],"mappings":"AAAA,OAAO,EAAkB,KAAK,EAAkC,MAAM,aAAa,CAAC;AACpF,OAAO,EAAuB,QAAQ,EAAE,eAAe,EAAE,YAAY,EAAE,MAAM,UAAU,CAAC;AAcxF,eAAO,MAAM,WAAW;;;;EAAqC,CAAC;AAC9D,eAAO,MAAM,aAAa;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAAgC,CAAC;AAC3D,oBAAY,WAAW,GAAG,KAAK,CAAC,OAAO,WAAW,CAAC,CAAC;AACpD,oBAAY,aAAa,GAAG,KAAK,CAAC,OAAO,aAAa,CAAC,CAAC;AAExD,eAAO,MAAM,cAAc;;;;;;;;;;;;;;;;QAAsC,CAAC;AAClE,oBAAY,cAAc,GAAG,KAAK,CAAC,OAAO,cAAc,CAAC,CAAC;AAE1D,eAAO,MAAM,MAAM;eACN,OAAO,8BAAkB,WAAW;mBAKhC,YAAY,GAAG,aAAa;yBAGtB,eAAe,GAAG,aAAa;CAGrD,CAAC;AAEF,wBAAgB,gBAAgB,CAAC,GAAG,EAAE,QAAQ,GAAG,aAAa,UAQ7D;AAED,wBAAgB,oBAAoB,CAAC,GAAG,EAAE,cAAc,GAAG,eAAe,GAAG,SAAS,CAErF;AAED,wBAAgB,mBAAmB,CAAC,GAAG,EAAE,cAAc,GAAG,OAAO,CAEhE;AAED,wBAAgB,0BAA0B,CAAC,GAAG,EAAE,cAAc,GAAG,OAAO,CAEvE"}
|
|
@@ -0,0 +1,56 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.isMutableSharedObjectInput = exports.isSharedObjectInput = exports.getSharedObjectInput = exports.getIdFromCallArg = exports.Inputs = exports.BuilderCallArg = exports.ObjectCallArg = exports.PureCallArg = void 0;
|
|
4
|
+
const superstruct_1 = require("superstruct");
|
|
5
|
+
const types_1 = require("../types");
|
|
6
|
+
const bcs_1 = require("./bcs");
|
|
7
|
+
const ObjectArg = superstruct_1.union([
|
|
8
|
+
superstruct_1.object({ ImmOrOwned: types_1.SuiObjectRef }),
|
|
9
|
+
superstruct_1.object({
|
|
10
|
+
Shared: superstruct_1.object({
|
|
11
|
+
objectId: superstruct_1.string(),
|
|
12
|
+
initialSharedVersion: superstruct_1.union([superstruct_1.integer(), superstruct_1.string()]),
|
|
13
|
+
mutable: superstruct_1.boolean(),
|
|
14
|
+
}),
|
|
15
|
+
}),
|
|
16
|
+
]);
|
|
17
|
+
exports.PureCallArg = superstruct_1.object({ Pure: superstruct_1.array(superstruct_1.integer()) });
|
|
18
|
+
exports.ObjectCallArg = superstruct_1.object({ Object: ObjectArg });
|
|
19
|
+
exports.BuilderCallArg = superstruct_1.union([exports.PureCallArg, exports.ObjectCallArg]);
|
|
20
|
+
exports.Inputs = {
|
|
21
|
+
Pure(data, type) {
|
|
22
|
+
return {
|
|
23
|
+
Pure: Array.from(data instanceof Uint8Array ? data : bcs_1.builder.ser(type, data).toBytes()),
|
|
24
|
+
};
|
|
25
|
+
},
|
|
26
|
+
ObjectRef(ref) {
|
|
27
|
+
return { Object: { ImmOrOwned: ref } };
|
|
28
|
+
},
|
|
29
|
+
SharedObjectRef(ref) {
|
|
30
|
+
return { Object: { Shared: ref } };
|
|
31
|
+
},
|
|
32
|
+
};
|
|
33
|
+
function getIdFromCallArg(arg) {
|
|
34
|
+
if (typeof arg === 'string') {
|
|
35
|
+
return types_1.normalizeSuiAddress(arg);
|
|
36
|
+
}
|
|
37
|
+
if ('ImmOrOwned' in arg.Object) {
|
|
38
|
+
return arg.Object.ImmOrOwned.objectId;
|
|
39
|
+
}
|
|
40
|
+
return arg.Object.Shared.objectId;
|
|
41
|
+
}
|
|
42
|
+
exports.getIdFromCallArg = getIdFromCallArg;
|
|
43
|
+
function getSharedObjectInput(arg) {
|
|
44
|
+
return typeof arg === 'object' && 'Object' in arg && 'Shared' in arg.Object ? arg.Object.Shared : undefined;
|
|
45
|
+
}
|
|
46
|
+
exports.getSharedObjectInput = getSharedObjectInput;
|
|
47
|
+
function isSharedObjectInput(arg) {
|
|
48
|
+
return !!getSharedObjectInput(arg);
|
|
49
|
+
}
|
|
50
|
+
exports.isSharedObjectInput = isSharedObjectInput;
|
|
51
|
+
function isMutableSharedObjectInput(arg) {
|
|
52
|
+
var _a, _b;
|
|
53
|
+
return (_b = (_a = getSharedObjectInput(arg)) === null || _a === void 0 ? void 0 : _a.mutable) !== null && _b !== void 0 ? _b : false;
|
|
54
|
+
}
|
|
55
|
+
exports.isMutableSharedObjectInput = isMutableSharedObjectInput;
|
|
56
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiSW5wdXRzLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vc3JjL2xpYi9teXN0ZW5sYWIvYnVpbGRlci9JbnB1dHMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7O0FBQUEsNkNBQW9GO0FBQ3BGLG9DQUF3RjtBQUN4RiwrQkFBZ0M7QUFFaEMsTUFBTSxTQUFTLEdBQUcsbUJBQUssQ0FBQztJQUN0QixvQkFBTSxDQUFDLEVBQUUsVUFBVSxFQUFFLG9CQUFZLEVBQUUsQ0FBQztJQUNwQyxvQkFBTSxDQUFDO1FBQ0wsTUFBTSxFQUFFLG9CQUFNLENBQUM7WUFDYixRQUFRLEVBQUUsb0JBQU0sRUFBRTtZQUNsQixvQkFBb0IsRUFBRSxtQkFBSyxDQUFDLENBQUMscUJBQU8sRUFBRSxFQUFFLG9CQUFNLEVBQUUsQ0FBQyxDQUFDO1lBQ2xELE9BQU8sRUFBRSxxQkFBTyxFQUFFO1NBQ25CLENBQUM7S0FDSCxDQUFDO0NBQ0gsQ0FBQyxDQUFDO0FBRVUsUUFBQSxXQUFXLEdBQUcsb0JBQU0sQ0FBQyxFQUFFLElBQUksRUFBRSxtQkFBSyxDQUFDLHFCQUFPLEVBQUUsQ0FBQyxFQUFFLENBQUMsQ0FBQztBQUNqRCxRQUFBLGFBQWEsR0FBRyxvQkFBTSxDQUFDLEVBQUUsTUFBTSxFQUFFLFNBQVMsRUFBRSxDQUFDLENBQUM7QUFJOUMsUUFBQSxjQUFjLEdBQUcsbUJBQUssQ0FBQyxDQUFDLG1CQUFXLEVBQUUscUJBQWEsQ0FBQyxDQUFDLENBQUM7QUFHckQsUUFBQSxNQUFNLEdBQUc7SUFDcEIsSUFBSSxDQUFDLElBQWEsRUFBRSxJQUFhO1FBQy9CLE9BQU87WUFDTCxJQUFJLEVBQUUsS0FBSyxDQUFDLElBQUksQ0FBQyxJQUFJLFlBQVksVUFBVSxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLGFBQU8sQ0FBQyxHQUFHLENBQUMsSUFBSyxFQUFFLElBQUksQ0FBQyxDQUFDLE9BQU8sRUFBRSxDQUFDO1NBQ3pGLENBQUM7SUFDSixDQUFDO0lBQ0QsU0FBUyxDQUFDLEdBQWlCO1FBQ3pCLE9BQU8sRUFBRSxNQUFNLEVBQUUsRUFBRSxVQUFVLEVBQUUsR0FBRyxFQUFFLEVBQUUsQ0FBQztJQUN6QyxDQUFDO0lBQ0QsZUFBZSxDQUFDLEdBQW9CO1FBQ2xDLE9BQU8sRUFBRSxNQUFNLEVBQUUsRUFBRSxNQUFNLEVBQUUsR0FBRyxFQUFFLEVBQUUsQ0FBQztJQUNyQyxDQUFDO0NBQ0YsQ0FBQztBQUVGLFNBQWdCLGdCQUFnQixDQUFDLEdBQTZCO0lBQzVELElBQUksT0FBTyxHQUFHLEtBQUssUUFBUSxFQUFFO1FBQzNCLE9BQU8sMkJBQW1CLENBQUMsR0FBRyxDQUFDLENBQUM7S0FDakM7SUFDRCxJQUFJLFlBQVksSUFBSSxHQUFHLENBQUMsTUFBTSxFQUFFO1FBQzlCLE9BQU8sR0FBRyxDQUFDLE1BQU0sQ0FBQyxVQUFVLENBQUMsUUFBUSxDQUFDO0tBQ3ZDO0lBQ0QsT0FBTyxHQUFHLENBQUMsTUFBTSxDQUFDLE1BQU0sQ0FBQyxRQUFRLENBQUM7QUFDcEMsQ0FBQztBQVJELDRDQVFDO0FBRUQsU0FBZ0Isb0JBQW9CLENBQUMsR0FBbUI7SUFDdEQsT0FBTyxPQUFPLEdBQUcsS0FBSyxRQUFRLElBQUksUUFBUSxJQUFJLEdBQUcsSUFBSSxRQUFRLElBQUksR0FBRyxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsR0FBRyxDQUFDLE1BQU0sQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLFNBQVMsQ0FBQztBQUM5RyxDQUFDO0FBRkQsb0RBRUM7QUFFRCxTQUFnQixtQkFBbUIsQ0FBQyxHQUFtQjtJQUNyRCxPQUFPLENBQUMsQ0FBQyxvQkFBb0IsQ0FBQyxHQUFHLENBQUMsQ0FBQztBQUNyQyxDQUFDO0FBRkQsa0RBRUM7QUFFRCxTQUFnQiwwQkFBMEIsQ0FBQyxHQUFtQjs7SUFDNUQsT0FBTyxNQUFBLE1BQUEsb0JBQW9CLENBQUMsR0FBRyxDQUFDLDBDQUFFLE9BQU8sbUNBQUksS0FBSyxDQUFDO0FBQ3JELENBQUM7QUFGRCxnRUFFQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IGFycmF5LCBib29sZWFuLCBJbmZlciwgaW50ZWdlciwgb2JqZWN0LCBzdHJpbmcsIHVuaW9uIH0gZnJvbSAnc3VwZXJzdHJ1Y3QnO1xuaW1wb3J0IHsgbm9ybWFsaXplU3VpQWRkcmVzcywgT2JqZWN0SWQsIFNoYXJlZE9iamVjdFJlZiwgU3VpT2JqZWN0UmVmIH0gZnJvbSAnLi4vdHlwZXMnO1xuaW1wb3J0IHsgYnVpbGRlciB9IGZyb20gJy4vYmNzJztcblxuY29uc3QgT2JqZWN0QXJnID0gdW5pb24oW1xuICBvYmplY3QoeyBJbW1Pck93bmVkOiBTdWlPYmplY3RSZWYgfSksXG4gIG9iamVjdCh7XG4gICAgU2hhcmVkOiBvYmplY3Qoe1xuICAgICAgb2JqZWN0SWQ6IHN0cmluZygpLFxuICAgICAgaW5pdGlhbFNoYXJlZFZlcnNpb246IHVuaW9uKFtpbnRlZ2VyKCksIHN0cmluZygpXSksXG4gICAgICBtdXRhYmxlOiBib29sZWFuKCksXG4gICAgfSksXG4gIH0pLFxuXSk7XG5cbmV4cG9ydCBjb25zdCBQdXJlQ2FsbEFyZyA9IG9iamVjdCh7IFB1cmU6IGFycmF5KGludGVnZXIoKSkgfSk7XG5leHBvcnQgY29uc3QgT2JqZWN0Q2FsbEFyZyA9IG9iamVjdCh7IE9iamVjdDogT2JqZWN0QXJnIH0pO1xuZXhwb3J0IHR5cGUgUHVyZUNhbGxBcmcgPSBJbmZlcjx0eXBlb2YgUHVyZUNhbGxBcmc+O1xuZXhwb3J0IHR5cGUgT2JqZWN0Q2FsbEFyZyA9IEluZmVyPHR5cGVvZiBPYmplY3RDYWxsQXJnPjtcblxuZXhwb3J0IGNvbnN0IEJ1aWxkZXJDYWxsQXJnID0gdW5pb24oW1B1cmVDYWxsQXJnLCBPYmplY3RDYWxsQXJnXSk7XG5leHBvcnQgdHlwZSBCdWlsZGVyQ2FsbEFyZyA9IEluZmVyPHR5cGVvZiBCdWlsZGVyQ2FsbEFyZz47XG5cbmV4cG9ydCBjb25zdCBJbnB1dHMgPSB7XG4gIFB1cmUoZGF0YTogdW5rbm93biwgdHlwZT86IHN0cmluZyk6IFB1cmVDYWxsQXJnIHtcbiAgICByZXR1cm4ge1xuICAgICAgUHVyZTogQXJyYXkuZnJvbShkYXRhIGluc3RhbmNlb2YgVWludDhBcnJheSA/IGRhdGEgOiBidWlsZGVyLnNlcih0eXBlISwgZGF0YSkudG9CeXRlcygpKSxcbiAgICB9O1xuICB9LFxuICBPYmplY3RSZWYocmVmOiBTdWlPYmplY3RSZWYpOiBPYmplY3RDYWxsQXJnIHtcbiAgICByZXR1cm4geyBPYmplY3Q6IHsgSW1tT3JPd25lZDogcmVmIH0gfTtcbiAgfSxcbiAgU2hhcmVkT2JqZWN0UmVmKHJlZjogU2hhcmVkT2JqZWN0UmVmKTogT2JqZWN0Q2FsbEFyZyB7XG4gICAgcmV0dXJuIHsgT2JqZWN0OiB7IFNoYXJlZDogcmVmIH0gfTtcbiAgfSxcbn07XG5cbmV4cG9ydCBmdW5jdGlvbiBnZXRJZEZyb21DYWxsQXJnKGFyZzogT2JqZWN0SWQgfCBPYmplY3RDYWxsQXJnKSB7XG4gIGlmICh0eXBlb2YgYXJnID09PSAnc3RyaW5nJykge1xuICAgIHJldHVybiBub3JtYWxpemVTdWlBZGRyZXNzKGFyZyk7XG4gIH1cbiAgaWYgKCdJbW1Pck93bmVkJyBpbiBhcmcuT2JqZWN0KSB7XG4gICAgcmV0dXJuIGFyZy5PYmplY3QuSW1tT3JPd25lZC5vYmplY3RJZDtcbiAgfVxuICByZXR1cm4gYXJnLk9iamVjdC5TaGFyZWQub2JqZWN0SWQ7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBnZXRTaGFyZWRPYmplY3RJbnB1dChhcmc6IEJ1aWxkZXJDYWxsQXJnKTogU2hhcmVkT2JqZWN0UmVmIHwgdW5kZWZpbmVkIHtcbiAgcmV0dXJuIHR5cGVvZiBhcmcgPT09ICdvYmplY3QnICYmICdPYmplY3QnIGluIGFyZyAmJiAnU2hhcmVkJyBpbiBhcmcuT2JqZWN0ID8gYXJnLk9iamVjdC5TaGFyZWQgOiB1bmRlZmluZWQ7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBpc1NoYXJlZE9iamVjdElucHV0KGFyZzogQnVpbGRlckNhbGxBcmcpOiBib29sZWFuIHtcbiAgcmV0dXJuICEhZ2V0U2hhcmVkT2JqZWN0SW5wdXQoYXJnKTtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGlzTXV0YWJsZVNoYXJlZE9iamVjdElucHV0KGFyZzogQnVpbGRlckNhbGxBcmcpOiBib29sZWFuIHtcbiAgcmV0dXJuIGdldFNoYXJlZE9iamVjdElucHV0KGFyZyk/Lm11dGFibGUgPz8gZmFsc2U7XG59XG4iXX0=
|