@bitgo-beta/sdk-coin-sui 1.4.1-alpha.5 → 1.4.1-alpha.7
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/dist/src/lib/bcs.d.ts +3 -0
- package/dist/src/lib/bcs.d.ts.map +1 -0
- package/dist/src/lib/bcs.js +82 -0
- package/dist/src/lib/constants.d.ts +10 -0
- package/dist/src/lib/constants.d.ts.map +1 -0
- package/dist/src/lib/constants.js +16 -0
- package/dist/src/lib/iface.d.ts +46 -6
- package/dist/src/lib/iface.d.ts.map +1 -1
- package/dist/src/lib/iface.js +1 -1
- package/dist/src/lib/transaction.d.ts +13 -21
- package/dist/src/lib/transaction.d.ts.map +1 -1
- package/dist/src/lib/transaction.js +150 -115
- package/dist/src/lib/transactionBuilder.d.ts +5 -3
- package/dist/src/lib/transactionBuilder.d.ts.map +1 -1
- package/dist/src/lib/transactionBuilder.js +48 -9
- package/dist/src/lib/utils.d.ts +0 -1
- package/dist/src/lib/utils.d.ts.map +1 -1
- package/dist/src/lib/utils.js +7 -8
- package/package.json +6 -6
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"bcs.d.ts","sourceRoot":"","sources":["../../../src/lib/bcs.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,GAAG,EAA0C,MAAM,aAAa,CAAC;AAG1E,eAAO,MAAM,GAAG,KAA8B,CAAC"}
|
|
@@ -0,0 +1,82 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.bcs = void 0;
|
|
4
|
+
const bcs_1 = require("@mysten/bcs");
|
|
5
|
+
const buffer_1 = require("buffer");
|
|
6
|
+
exports.bcs = new bcs_1.BCS(bcs_1.getSuiMoveConfig());
|
|
7
|
+
exports.bcs
|
|
8
|
+
.registerType('utf8string', (writer, str) => {
|
|
9
|
+
const bytes = Array.from(buffer_1.Buffer.from(str));
|
|
10
|
+
return writer.writeVec(bytes, (writer, el) => writer.write8(el));
|
|
11
|
+
}, (reader) => {
|
|
12
|
+
const bytes = reader.readVec((reader) => reader.read8());
|
|
13
|
+
return buffer_1.Buffer.from(bytes).toString('utf-8');
|
|
14
|
+
})
|
|
15
|
+
.registerType('ObjectDigest', (writer, str) => {
|
|
16
|
+
const bytes = Array.from(bcs_1.decodeStr(str, 'base64'));
|
|
17
|
+
return writer.writeVec(bytes, (writer, el) => writer.write8(el));
|
|
18
|
+
}, (reader) => {
|
|
19
|
+
const bytes = reader.readVec((reader) => reader.read8());
|
|
20
|
+
return bcs_1.encodeStr(new Uint8Array(bytes), 'base64');
|
|
21
|
+
});
|
|
22
|
+
exports.bcs.registerStructType('SuiObjectRef', {
|
|
23
|
+
objectId: 'address',
|
|
24
|
+
version: 'u64',
|
|
25
|
+
digest: 'ObjectDigest',
|
|
26
|
+
});
|
|
27
|
+
exports.bcs.registerStructType('PayTx', {
|
|
28
|
+
coins: 'vector<SuiObjectRef>',
|
|
29
|
+
recipients: 'vector<address>',
|
|
30
|
+
amounts: 'vector<u64>',
|
|
31
|
+
});
|
|
32
|
+
exports.bcs.registerStructType('PaySuiTx', {
|
|
33
|
+
coins: 'vector<SuiObjectRef>',
|
|
34
|
+
recipients: 'vector<address>',
|
|
35
|
+
amounts: 'vector<u64>',
|
|
36
|
+
});
|
|
37
|
+
exports.bcs.registerStructType('PayAllSuiTx', {
|
|
38
|
+
coins: 'vector<SuiObjectRef>',
|
|
39
|
+
recipient: 'address',
|
|
40
|
+
amount: 'u64', // Even though Mysten sdk doesn't register amount field, adding this so that we can get the amount when deserializing
|
|
41
|
+
});
|
|
42
|
+
exports.bcs
|
|
43
|
+
.registerEnumType('TypeTag', {
|
|
44
|
+
bool: null,
|
|
45
|
+
u8: null,
|
|
46
|
+
u64: null,
|
|
47
|
+
u128: null,
|
|
48
|
+
address: null,
|
|
49
|
+
signer: null,
|
|
50
|
+
vector: 'TypeTag',
|
|
51
|
+
struct: 'StructTag',
|
|
52
|
+
u16: null,
|
|
53
|
+
u32: null,
|
|
54
|
+
u256: null,
|
|
55
|
+
})
|
|
56
|
+
.registerStructType('StructTag', {
|
|
57
|
+
address: 'address',
|
|
58
|
+
module: 'string',
|
|
59
|
+
name: 'string',
|
|
60
|
+
typeParams: 'vector<TypeTag>',
|
|
61
|
+
});
|
|
62
|
+
exports.bcs.registerEnumType('Transaction', {
|
|
63
|
+
TransferObject: 'TransferObjectTx',
|
|
64
|
+
Publish: 'PublishTx',
|
|
65
|
+
Call: 'MoveCallTx',
|
|
66
|
+
TransferSui: 'TransferSuiTx',
|
|
67
|
+
Pay: 'PayTx',
|
|
68
|
+
PaySui: 'PaySuiTx',
|
|
69
|
+
PayAllSui: 'PayAllSuiTx',
|
|
70
|
+
});
|
|
71
|
+
exports.bcs.registerEnumType('TransactionKind', {
|
|
72
|
+
Single: 'Transaction',
|
|
73
|
+
Batch: 'vector<Transaction>',
|
|
74
|
+
});
|
|
75
|
+
exports.bcs.registerStructType('TransactionData', {
|
|
76
|
+
kind: 'TransactionKind',
|
|
77
|
+
sender: 'address',
|
|
78
|
+
gasPayment: 'SuiObjectRef',
|
|
79
|
+
gasPrice: 'u64',
|
|
80
|
+
gasBudget: 'u64',
|
|
81
|
+
});
|
|
82
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYmNzLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL2xpYi9iY3MudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7O0FBQUEscUNBQTBFO0FBQzFFLG1DQUFnQztBQUVuQixRQUFBLEdBQUcsR0FBRyxJQUFJLFNBQUcsQ0FBQyxzQkFBZ0IsRUFBRSxDQUFDLENBQUM7QUFFL0MsV0FBRztLQUNBLFlBQVksQ0FDWCxZQUFZLEVBQ1osQ0FBQyxNQUFNLEVBQUUsR0FBRyxFQUFFLEVBQUU7SUFDZCxNQUFNLEtBQUssR0FBRyxLQUFLLENBQUMsSUFBSSxDQUFDLGVBQU0sQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQztJQUMzQyxPQUFPLE1BQU0sQ0FBQyxRQUFRLENBQUMsS0FBSyxFQUFFLENBQUMsTUFBTSxFQUFFLEVBQUUsRUFBRSxFQUFFLENBQUMsTUFBTSxDQUFDLE1BQU0sQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDO0FBQ25FLENBQUMsRUFDRCxDQUFDLE1BQU0sRUFBRSxFQUFFO0lBQ1QsTUFBTSxLQUFLLEdBQUcsTUFBTSxDQUFDLE9BQU8sQ0FBQyxDQUFDLE1BQU0sRUFBRSxFQUFFLENBQUMsTUFBTSxDQUFDLEtBQUssRUFBRSxDQUFDLENBQUM7SUFDekQsT0FBTyxlQUFNLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLENBQUMsQ0FBQztBQUM5QyxDQUFDLENBQ0Y7S0FDQSxZQUFZLENBQ1gsY0FBYyxFQUNkLENBQUMsTUFBTSxFQUFFLEdBQUcsRUFBRSxFQUFFO0lBQ2QsTUFBTSxLQUFLLEdBQUcsS0FBSyxDQUFDLElBQUksQ0FBQyxlQUFTLENBQUMsR0FBRyxFQUFFLFFBQVEsQ0FBQyxDQUFDLENBQUM7SUFDbkQsT0FBTyxNQUFNLENBQUMsUUFBUSxDQUFDLEtBQUssRUFBRSxDQUFDLE1BQU0sRUFBRSxFQUFFLEVBQUUsRUFBRSxDQUFDLE1BQU0sQ0FBQyxNQUFNLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQztBQUNuRSxDQUFDLEVBQ0QsQ0FBQyxNQUFNLEVBQUUsRUFBRTtJQUNULE1BQU0sS0FBSyxHQUFHLE1BQU0sQ0FBQyxPQUFPLENBQUMsQ0FBQyxNQUFNLEVBQUUsRUFBRSxDQUFDLE1BQU0sQ0FBQyxLQUFLLEVBQUUsQ0FBQyxDQUFDO0lBQ3pELE9BQU8sZUFBUyxDQUFDLElBQUksVUFBVSxDQUFDLEtBQUssQ0FBQyxFQUFFLFFBQVEsQ0FBQyxDQUFDO0FBQ3BELENBQUMsQ0FDRixDQUFDO0FBRUosV0FBRyxDQUFDLGtCQUFrQixDQUFDLGNBQWMsRUFBRTtJQUNyQyxRQUFRLEVBQUUsU0FBUztJQUNuQixPQUFPLEVBQUUsS0FBSztJQUNkLE1BQU0sRUFBRSxjQUFjO0NBQ3ZCLENBQUMsQ0FBQztBQUVILFdBQUcsQ0FBQyxrQkFBa0IsQ0FBQyxPQUFPLEVBQUU7SUFDOUIsS0FBSyxFQUFFLHNCQUFzQjtJQUM3QixVQUFVLEVBQUUsaUJBQWlCO0lBQzdCLE9BQU8sRUFBRSxhQUFhO0NBQ3ZCLENBQUMsQ0FBQztBQUVILFdBQUcsQ0FBQyxrQkFBa0IsQ0FBQyxVQUFVLEVBQUU7SUFDakMsS0FBSyxFQUFFLHNCQUFzQjtJQUM3QixVQUFVLEVBQUUsaUJBQWlCO0lBQzdCLE9BQU8sRUFBRSxhQUFhO0NBQ3ZCLENBQUMsQ0FBQztBQUVILFdBQUcsQ0FBQyxrQkFBa0IsQ0FBQyxhQUFhLEVBQUU7SUFDcEMsS0FBSyxFQUFFLHNCQUFzQjtJQUM3QixTQUFTLEVBQUUsU0FBUztJQUNwQixNQUFNLEVBQUUsS0FBSyxFQUFFLHFIQUFxSDtDQUNySSxDQUFDLENBQUM7QUFFSCxXQUFHO0tBQ0EsZ0JBQWdCLENBQUMsU0FBUyxFQUFFO0lBQzNCLElBQUksRUFBRSxJQUFJO0lBQ1YsRUFBRSxFQUFFLElBQUk7SUFDUixHQUFHLEVBQUUsSUFBSTtJQUNULElBQUksRUFBRSxJQUFJO0lBQ1YsT0FBTyxFQUFFLElBQUk7SUFDYixNQUFNLEVBQUUsSUFBSTtJQUNaLE1BQU0sRUFBRSxTQUFTO0lBQ2pCLE1BQU0sRUFBRSxXQUFXO0lBQ25CLEdBQUcsRUFBRSxJQUFJO0lBQ1QsR0FBRyxFQUFFLElBQUk7SUFDVCxJQUFJLEVBQUUsSUFBSTtDQUNYLENBQUM7S0FDRCxrQkFBa0IsQ0FBQyxXQUFXLEVBQUU7SUFDL0IsT0FBTyxFQUFFLFNBQVM7SUFDbEIsTUFBTSxFQUFFLFFBQVE7SUFDaEIsSUFBSSxFQUFFLFFBQVE7SUFDZCxVQUFVLEVBQUUsaUJBQWlCO0NBQzlCLENBQUMsQ0FBQztBQUVMLFdBQUcsQ0FBQyxnQkFBZ0IsQ0FBQyxhQUFhLEVBQUU7SUFDbEMsY0FBYyxFQUFFLGtCQUFrQjtJQUNsQyxPQUFPLEVBQUUsV0FBVztJQUNwQixJQUFJLEVBQUUsWUFBWTtJQUNsQixXQUFXLEVBQUUsZUFBZTtJQUM1QixHQUFHLEVBQUUsT0FBTztJQUNaLE1BQU0sRUFBRSxVQUFVO0lBQ2xCLFNBQVMsRUFBRSxhQUFhO0NBQ3pCLENBQUMsQ0FBQztBQUVILFdBQUcsQ0FBQyxnQkFBZ0IsQ0FBQyxpQkFBaUIsRUFBRTtJQUN0QyxNQUFNLEVBQUUsYUFBYTtJQUNyQixLQUFLLEVBQUUscUJBQXFCO0NBQzdCLENBQUMsQ0FBQztBQUVILFdBQUcsQ0FBQyxrQkFBa0IsQ0FBQyxpQkFBaUIsRUFBRTtJQUN4QyxJQUFJLEVBQUUsaUJBQWlCO0lBQ3ZCLE1BQU0sRUFBRSxTQUFTO0lBQ2pCLFVBQVUsRUFBRSxjQUFjO0lBQzFCLFFBQVEsRUFBRSxLQUFLO0lBQ2YsU0FBUyxFQUFFLEtBQUs7Q0FDakIsQ0FBQyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQkNTLCBkZWNvZGVTdHIsIGVuY29kZVN0ciwgZ2V0U3VpTW92ZUNvbmZpZyB9IGZyb20gJ0BteXN0ZW4vYmNzJztcbmltcG9ydCB7IEJ1ZmZlciB9IGZyb20gJ2J1ZmZlcic7XG5cbmV4cG9ydCBjb25zdCBiY3MgPSBuZXcgQkNTKGdldFN1aU1vdmVDb25maWcoKSk7XG5cbmJjc1xuICAucmVnaXN0ZXJUeXBlKFxuICAgICd1dGY4c3RyaW5nJyxcbiAgICAod3JpdGVyLCBzdHIpID0+IHtcbiAgICAgIGNvbnN0IGJ5dGVzID0gQXJyYXkuZnJvbShCdWZmZXIuZnJvbShzdHIpKTtcbiAgICAgIHJldHVybiB3cml0ZXIud3JpdGVWZWMoYnl0ZXMsICh3cml0ZXIsIGVsKSA9PiB3cml0ZXIud3JpdGU4KGVsKSk7XG4gICAgfSxcbiAgICAocmVhZGVyKSA9PiB7XG4gICAgICBjb25zdCBieXRlcyA9IHJlYWRlci5yZWFkVmVjKChyZWFkZXIpID0+IHJlYWRlci5yZWFkOCgpKTtcbiAgICAgIHJldHVybiBCdWZmZXIuZnJvbShieXRlcykudG9TdHJpbmcoJ3V0Zi04Jyk7XG4gICAgfVxuICApXG4gIC5yZWdpc3RlclR5cGUoXG4gICAgJ09iamVjdERpZ2VzdCcsXG4gICAgKHdyaXRlciwgc3RyKSA9PiB7XG4gICAgICBjb25zdCBieXRlcyA9IEFycmF5LmZyb20oZGVjb2RlU3RyKHN0ciwgJ2Jhc2U2NCcpKTtcbiAgICAgIHJldHVybiB3cml0ZXIud3JpdGVWZWMoYnl0ZXMsICh3cml0ZXIsIGVsKSA9PiB3cml0ZXIud3JpdGU4KGVsKSk7XG4gICAgfSxcbiAgICAocmVhZGVyKSA9PiB7XG4gICAgICBjb25zdCBieXRlcyA9IHJlYWRlci5yZWFkVmVjKChyZWFkZXIpID0+IHJlYWRlci5yZWFkOCgpKTtcbiAgICAgIHJldHVybiBlbmNvZGVTdHIobmV3IFVpbnQ4QXJyYXkoYnl0ZXMpLCAnYmFzZTY0Jyk7XG4gICAgfVxuICApO1xuXG5iY3MucmVnaXN0ZXJTdHJ1Y3RUeXBlKCdTdWlPYmplY3RSZWYnLCB7XG4gIG9iamVjdElkOiAnYWRkcmVzcycsXG4gIHZlcnNpb246ICd1NjQnLFxuICBkaWdlc3Q6ICdPYmplY3REaWdlc3QnLFxufSk7XG5cbmJjcy5yZWdpc3RlclN0cnVjdFR5cGUoJ1BheVR4Jywge1xuICBjb2luczogJ3ZlY3RvcjxTdWlPYmplY3RSZWY+JyxcbiAgcmVjaXBpZW50czogJ3ZlY3RvcjxhZGRyZXNzPicsXG4gIGFtb3VudHM6ICd2ZWN0b3I8dTY0PicsXG59KTtcblxuYmNzLnJlZ2lzdGVyU3RydWN0VHlwZSgnUGF5U3VpVHgnLCB7XG4gIGNvaW5zOiAndmVjdG9yPFN1aU9iamVjdFJlZj4nLFxuICByZWNpcGllbnRzOiAndmVjdG9yPGFkZHJlc3M+JyxcbiAgYW1vdW50czogJ3ZlY3Rvcjx1NjQ+Jyxcbn0pO1xuXG5iY3MucmVnaXN0ZXJTdHJ1Y3RUeXBlKCdQYXlBbGxTdWlUeCcsIHtcbiAgY29pbnM6ICd2ZWN0b3I8U3VpT2JqZWN0UmVmPicsXG4gIHJlY2lwaWVudDogJ2FkZHJlc3MnLFxuICBhbW91bnQ6ICd1NjQnLCAvLyBFdmVuIHRob3VnaCBNeXN0ZW4gc2RrIGRvZXNuJ3QgcmVnaXN0ZXIgYW1vdW50IGZpZWxkLCBhZGRpbmcgdGhpcyBzbyB0aGF0IHdlIGNhbiBnZXQgdGhlIGFtb3VudCB3aGVuIGRlc2VyaWFsaXppbmdcbn0pO1xuXG5iY3NcbiAgLnJlZ2lzdGVyRW51bVR5cGUoJ1R5cGVUYWcnLCB7XG4gICAgYm9vbDogbnVsbCxcbiAgICB1ODogbnVsbCxcbiAgICB1NjQ6IG51bGwsXG4gICAgdTEyODogbnVsbCxcbiAgICBhZGRyZXNzOiBudWxsLFxuICAgIHNpZ25lcjogbnVsbCxcbiAgICB2ZWN0b3I6ICdUeXBlVGFnJyxcbiAgICBzdHJ1Y3Q6ICdTdHJ1Y3RUYWcnLFxuICAgIHUxNjogbnVsbCxcbiAgICB1MzI6IG51bGwsXG4gICAgdTI1NjogbnVsbCxcbiAgfSlcbiAgLnJlZ2lzdGVyU3RydWN0VHlwZSgnU3RydWN0VGFnJywge1xuICAgIGFkZHJlc3M6ICdhZGRyZXNzJyxcbiAgICBtb2R1bGU6ICdzdHJpbmcnLFxuICAgIG5hbWU6ICdzdHJpbmcnLFxuICAgIHR5cGVQYXJhbXM6ICd2ZWN0b3I8VHlwZVRhZz4nLFxuICB9KTtcblxuYmNzLnJlZ2lzdGVyRW51bVR5cGUoJ1RyYW5zYWN0aW9uJywge1xuICBUcmFuc2Zlck9iamVjdDogJ1RyYW5zZmVyT2JqZWN0VHgnLFxuICBQdWJsaXNoOiAnUHVibGlzaFR4JyxcbiAgQ2FsbDogJ01vdmVDYWxsVHgnLFxuICBUcmFuc2ZlclN1aTogJ1RyYW5zZmVyU3VpVHgnLFxuICBQYXk6ICdQYXlUeCcsXG4gIFBheVN1aTogJ1BheVN1aVR4JyxcbiAgUGF5QWxsU3VpOiAnUGF5QWxsU3VpVHgnLFxufSk7XG5cbmJjcy5yZWdpc3RlckVudW1UeXBlKCdUcmFuc2FjdGlvbktpbmQnLCB7XG4gIFNpbmdsZTogJ1RyYW5zYWN0aW9uJyxcbiAgQmF0Y2g6ICd2ZWN0b3I8VHJhbnNhY3Rpb24+Jyxcbn0pO1xuXG5iY3MucmVnaXN0ZXJTdHJ1Y3RUeXBlKCdUcmFuc2FjdGlvbkRhdGEnLCB7XG4gIGtpbmQ6ICdUcmFuc2FjdGlvbktpbmQnLFxuICBzZW5kZXI6ICdhZGRyZXNzJyxcbiAgZ2FzUGF5bWVudDogJ1N1aU9iamVjdFJlZicsXG4gIGdhc1ByaWNlOiAndTY0JyxcbiAgZ2FzQnVkZ2V0OiAndTY0Jyxcbn0pO1xuIl19
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
export declare const UNAVAILABLE_TEXT = "UNAVAILABLE";
|
|
2
|
+
export declare const TYPE_TAG: number[];
|
|
3
|
+
export declare const SUI_GAS_PRICE = 1;
|
|
4
|
+
export declare const SUI_ADDRESS_LENGTH = 20;
|
|
5
|
+
export declare enum SuiTransactionType {
|
|
6
|
+
Pay = "Pay",
|
|
7
|
+
PaySui = "PaySui",
|
|
8
|
+
PayAllSui = "PayAllSui"
|
|
9
|
+
}
|
|
10
|
+
//# sourceMappingURL=constants.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"constants.d.ts","sourceRoot":"","sources":["../../../src/lib/constants.ts"],"names":[],"mappings":"AAAA,eAAO,MAAM,gBAAgB,gBAAgB,CAAC;AAC9C,eAAO,MAAM,QAAQ,UAA8D,CAAC;AAIpF,eAAO,MAAM,aAAa,IAAI,CAAC;AAC/B,eAAO,MAAM,kBAAkB,KAAK,CAAC;AAErC,oBAAY,kBAAkB;IAC5B,GAAG,QAAQ;IACX,MAAM,WAAW;IACjB,SAAS,cAAc;CACxB"}
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.SuiTransactionType = exports.SUI_ADDRESS_LENGTH = exports.SUI_GAS_PRICE = exports.TYPE_TAG = exports.UNAVAILABLE_TEXT = void 0;
|
|
4
|
+
exports.UNAVAILABLE_TEXT = 'UNAVAILABLE';
|
|
5
|
+
exports.TYPE_TAG = Array.from('TransactionData::').map((e) => e.charCodeAt(0));
|
|
6
|
+
// Need to keep in sync with
|
|
7
|
+
// https://github.com/MystenLabs/sui/blob/f32877f2e40d35a008710c232e49b57aab886462/crates/sui-types/src/messages.rs#L338
|
|
8
|
+
exports.SUI_GAS_PRICE = 1;
|
|
9
|
+
exports.SUI_ADDRESS_LENGTH = 20;
|
|
10
|
+
var SuiTransactionType;
|
|
11
|
+
(function (SuiTransactionType) {
|
|
12
|
+
SuiTransactionType["Pay"] = "Pay";
|
|
13
|
+
SuiTransactionType["PaySui"] = "PaySui";
|
|
14
|
+
SuiTransactionType["PayAllSui"] = "PayAllSui";
|
|
15
|
+
})(SuiTransactionType = exports.SuiTransactionType || (exports.SuiTransactionType = {}));
|
|
16
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29uc3RhbnRzLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL2xpYi9jb25zdGFudHMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7O0FBQWEsUUFBQSxnQkFBZ0IsR0FBRyxhQUFhLENBQUM7QUFDakMsUUFBQSxRQUFRLEdBQUcsS0FBSyxDQUFDLElBQUksQ0FBQyxtQkFBbUIsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsRUFBRSxFQUFFLENBQUMsQ0FBQyxDQUFDLFVBQVUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDO0FBRXBGLDRCQUE0QjtBQUM1Qix3SEFBd0g7QUFDM0csUUFBQSxhQUFhLEdBQUcsQ0FBQyxDQUFDO0FBQ2xCLFFBQUEsa0JBQWtCLEdBQUcsRUFBRSxDQUFDO0FBRXJDLElBQVksa0JBSVg7QUFKRCxXQUFZLGtCQUFrQjtJQUM1QixpQ0FBVyxDQUFBO0lBQ1gsdUNBQWlCLENBQUE7SUFDakIsNkNBQXVCLENBQUE7QUFDekIsQ0FBQyxFQUpXLGtCQUFrQixHQUFsQiwwQkFBa0IsS0FBbEIsMEJBQWtCLFFBSTdCIiwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0IGNvbnN0IFVOQVZBSUxBQkxFX1RFWFQgPSAnVU5BVkFJTEFCTEUnO1xuZXhwb3J0IGNvbnN0IFRZUEVfVEFHID0gQXJyYXkuZnJvbSgnVHJhbnNhY3Rpb25EYXRhOjonKS5tYXAoKGUpID0+IGUuY2hhckNvZGVBdCgwKSk7XG5cbi8vIE5lZWQgdG8ga2VlcCBpbiBzeW5jIHdpdGhcbi8vIGh0dHBzOi8vZ2l0aHViLmNvbS9NeXN0ZW5MYWJzL3N1aS9ibG9iL2YzMjg3N2YyZTQwZDM1YTAwODcxMGMyMzJlNDliNTdhYWI4ODY0NjIvY3JhdGVzL3N1aS10eXBlcy9zcmMvbWVzc2FnZXMucnMjTDMzOFxuZXhwb3J0IGNvbnN0IFNVSV9HQVNfUFJJQ0UgPSAxO1xuZXhwb3J0IGNvbnN0IFNVSV9BRERSRVNTX0xFTkdUSCA9IDIwO1xuXG5leHBvcnQgZW51bSBTdWlUcmFuc2FjdGlvblR5cGUge1xuICBQYXkgPSAnUGF5JyxcbiAgUGF5U3VpID0gJ1BheVN1aScsXG4gIFBheUFsbFN1aSA9ICdQYXlBbGxTdWknLFxufVxuIl19
|
package/dist/src/lib/iface.d.ts
CHANGED
|
@@ -1,22 +1,62 @@
|
|
|
1
1
|
import { TransactionExplanation as BaseTransactionExplanation, TransactionType } from '@bitgo-beta/sdk-core';
|
|
2
|
-
import {
|
|
2
|
+
import { SuiTransactionType } from './constants';
|
|
3
3
|
export interface TransactionExplanation extends BaseTransactionExplanation {
|
|
4
4
|
type: TransactionType;
|
|
5
5
|
}
|
|
6
|
-
export
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
6
|
+
export declare type SuiObjectRef = {
|
|
7
|
+
/** Hex code as string representing the object id */
|
|
8
|
+
objectId: string;
|
|
9
|
+
/** Object version */
|
|
10
|
+
version: number;
|
|
11
|
+
/** Base64 string representing the object digest */
|
|
12
|
+
digest: string;
|
|
13
|
+
};
|
|
14
|
+
export declare type TxDetails = PayTxDetails | PaySuiTxDetails | PayAllSuiTxDetails;
|
|
15
|
+
export interface PayTxDetails {
|
|
16
|
+
Pay: {
|
|
17
|
+
coins: SuiObjectRef[];
|
|
18
|
+
recipients: string[];
|
|
19
|
+
amounts: number[];
|
|
20
|
+
};
|
|
21
|
+
}
|
|
22
|
+
export interface PaySuiTxDetails {
|
|
23
|
+
PaySui: {
|
|
24
|
+
coins: SuiObjectRef[];
|
|
25
|
+
recipients: string[];
|
|
26
|
+
amounts: number[];
|
|
27
|
+
};
|
|
28
|
+
}
|
|
29
|
+
export interface PayAllSuiTxDetails {
|
|
30
|
+
PayAllSui: {
|
|
31
|
+
coins: SuiObjectRef[];
|
|
32
|
+
recipient: string;
|
|
33
|
+
amount: number;
|
|
34
|
+
};
|
|
10
35
|
}
|
|
11
36
|
/**
|
|
12
37
|
* The transaction data returned from the toJson() function of a transaction
|
|
13
38
|
*/
|
|
14
39
|
export interface TxData {
|
|
15
40
|
id?: string;
|
|
41
|
+
kind: {
|
|
42
|
+
Single: TxDetails;
|
|
43
|
+
};
|
|
44
|
+
sender: string;
|
|
45
|
+
gasPayment: SuiObjectRef;
|
|
16
46
|
gasBudget: number;
|
|
17
47
|
gasPrice: number;
|
|
18
|
-
|
|
48
|
+
}
|
|
49
|
+
export interface PayTx {
|
|
50
|
+
coins: SuiObjectRef[];
|
|
51
|
+
recipients: string[];
|
|
52
|
+
amounts: number[];
|
|
53
|
+
}
|
|
54
|
+
export interface SuiTransaction {
|
|
55
|
+
type: SuiTransactionType;
|
|
19
56
|
sender: string;
|
|
57
|
+
payTx: PayTx;
|
|
58
|
+
gasBudget: number;
|
|
59
|
+
gasPrice: number;
|
|
20
60
|
gasPayment: SuiObjectRef;
|
|
21
61
|
}
|
|
22
62
|
//# sourceMappingURL=iface.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"iface.d.ts","sourceRoot":"","sources":["../../../src/lib/iface.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,sBAAsB,IAAI,0BAA0B,EAAE,eAAe,EAAE,MAAM,sBAAsB,CAAC;AAC7G,OAAO,EAAE,
|
|
1
|
+
{"version":3,"file":"iface.d.ts","sourceRoot":"","sources":["../../../src/lib/iface.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,sBAAsB,IAAI,0BAA0B,EAAE,eAAe,EAAE,MAAM,sBAAsB,CAAC;AAC7G,OAAO,EAAE,kBAAkB,EAAE,MAAM,aAAa,CAAC;AAEjD,MAAM,WAAW,sBAAuB,SAAQ,0BAA0B;IACxE,IAAI,EAAE,eAAe,CAAC;CACvB;AAED,oBAAY,YAAY,GAAG;IACzB,oDAAoD;IACpD,QAAQ,EAAE,MAAM,CAAC;IACjB,qBAAqB;IACrB,OAAO,EAAE,MAAM,CAAC;IAChB,mDAAmD;IACnD,MAAM,EAAE,MAAM,CAAC;CAChB,CAAC;AAEF,oBAAY,SAAS,GAAG,YAAY,GAAG,eAAe,GAAG,kBAAkB,CAAC;AAE5E,MAAM,WAAW,YAAY;IAC3B,GAAG,EAAE;QACH,KAAK,EAAE,YAAY,EAAE,CAAC;QACtB,UAAU,EAAE,MAAM,EAAE,CAAC;QACrB,OAAO,EAAE,MAAM,EAAE,CAAC;KACnB,CAAC;CACH;AAED,MAAM,WAAW,eAAe;IAC9B,MAAM,EAAE;QACN,KAAK,EAAE,YAAY,EAAE,CAAC;QACtB,UAAU,EAAE,MAAM,EAAE,CAAC;QACrB,OAAO,EAAE,MAAM,EAAE,CAAC;KACnB,CAAC;CACH;AAED,MAAM,WAAW,kBAAkB;IACjC,SAAS,EAAE;QACT,KAAK,EAAE,YAAY,EAAE,CAAC;QACtB,SAAS,EAAE,MAAM,CAAC;QAClB,MAAM,EAAE,MAAM,CAAC;KAChB,CAAC;CACH;AAED;;GAEG;AACH,MAAM,WAAW,MAAM;IACrB,EAAE,CAAC,EAAE,MAAM,CAAC;IACZ,IAAI,EAAE;QAAE,MAAM,EAAE,SAAS,CAAA;KAAE,CAAC;IAC5B,MAAM,EAAE,MAAM,CAAC;IACf,UAAU,EAAE,YAAY,CAAC;IACzB,SAAS,EAAE,MAAM,CAAC;IAClB,QAAQ,EAAE,MAAM,CAAC;CAClB;AAED,MAAM,WAAW,KAAK;IACpB,KAAK,EAAE,YAAY,EAAE,CAAC;IACtB,UAAU,EAAE,MAAM,EAAE,CAAC;IACrB,OAAO,EAAE,MAAM,EAAE,CAAC;CACnB;AAED,MAAM,WAAW,cAAc;IAC7B,IAAI,EAAE,kBAAkB,CAAC;IACzB,MAAM,EAAE,MAAM,CAAC;IACf,KAAK,EAAE,KAAK,CAAC;IACb,SAAS,EAAE,MAAM,CAAC;IAClB,QAAQ,EAAE,MAAM,CAAC;IACjB,UAAU,EAAE,YAAY,CAAC;CAC1B"}
|
package/dist/src/lib/iface.js
CHANGED
|
@@ -1,3 +1,3 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
3
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaWZhY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvbGliL2lmYWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBUcmFuc2FjdGlvbkV4cGxhbmF0aW9uIGFzIEJhc2VUcmFuc2FjdGlvbkV4cGxhbmF0aW9uLCBUcmFuc2FjdGlvblR5cGUgfSBmcm9tICdAYml0Z28tYmV0YS9zZGstY29yZSc7XG5pbXBvcnQgeyBTdWlUcmFuc2FjdGlvblR5cGUgfSBmcm9tICcuL2NvbnN0YW50cyc7XG5cbmV4cG9ydCBpbnRlcmZhY2UgVHJhbnNhY3Rpb25FeHBsYW5hdGlvbiBleHRlbmRzIEJhc2VUcmFuc2FjdGlvbkV4cGxhbmF0aW9uIHtcbiAgdHlwZTogVHJhbnNhY3Rpb25UeXBlO1xufVxuXG5leHBvcnQgdHlwZSBTdWlPYmplY3RSZWYgPSB7XG4gIC8qKiBIZXggY29kZSBhcyBzdHJpbmcgcmVwcmVzZW50aW5nIHRoZSBvYmplY3QgaWQgKi9cbiAgb2JqZWN0SWQ6IHN0cmluZztcbiAgLyoqIE9iamVjdCB2ZXJzaW9uICovXG4gIHZlcnNpb246IG51bWJlcjtcbiAgLyoqIEJhc2U2NCBzdHJpbmcgcmVwcmVzZW50aW5nIHRoZSBvYmplY3QgZGlnZXN0ICovXG4gIGRpZ2VzdDogc3RyaW5nO1xufTtcblxuZXhwb3J0IHR5cGUgVHhEZXRhaWxzID0gUGF5VHhEZXRhaWxzIHwgUGF5U3VpVHhEZXRhaWxzIHwgUGF5QWxsU3VpVHhEZXRhaWxzO1xuXG5leHBvcnQgaW50ZXJmYWNlIFBheVR4RGV0YWlscyB7XG4gIFBheToge1xuICAgIGNvaW5zOiBTdWlPYmplY3RSZWZbXTtcbiAgICByZWNpcGllbnRzOiBzdHJpbmdbXTtcbiAgICBhbW91bnRzOiBudW1iZXJbXTtcbiAgfTtcbn1cblxuZXhwb3J0IGludGVyZmFjZSBQYXlTdWlUeERldGFpbHMge1xuICBQYXlTdWk6IHtcbiAgICBjb2luczogU3VpT2JqZWN0UmVmW107XG4gICAgcmVjaXBpZW50czogc3RyaW5nW107XG4gICAgYW1vdW50czogbnVtYmVyW107XG4gIH07XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgUGF5QWxsU3VpVHhEZXRhaWxzIHtcbiAgUGF5QWxsU3VpOiB7XG4gICAgY29pbnM6IFN1aU9iamVjdFJlZltdO1xuICAgIHJlY2lwaWVudDogc3RyaW5nO1xuICAgIGFtb3VudDogbnVtYmVyO1xuICB9O1xufVxuXG4vKipcbiAqIFRoZSB0cmFuc2FjdGlvbiBkYXRhIHJldHVybmVkIGZyb20gdGhlIHRvSnNvbigpIGZ1bmN0aW9uIG9mIGEgdHJhbnNhY3Rpb25cbiAqL1xuZXhwb3J0IGludGVyZmFjZSBUeERhdGEge1xuICBpZD86IHN0cmluZztcbiAga2luZDogeyBTaW5nbGU6IFR4RGV0YWlscyB9O1xuICBzZW5kZXI6IHN0cmluZztcbiAgZ2FzUGF5bWVudDogU3VpT2JqZWN0UmVmO1xuICBnYXNCdWRnZXQ6IG51bWJlcjtcbiAgZ2FzUHJpY2U6IG51bWJlcjtcbn1cblxuZXhwb3J0IGludGVyZmFjZSBQYXlUeCB7XG4gIGNvaW5zOiBTdWlPYmplY3RSZWZbXTtcbiAgcmVjaXBpZW50czogc3RyaW5nW107XG4gIGFtb3VudHM6IG51bWJlcltdO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIFN1aVRyYW5zYWN0aW9uIHtcbiAgdHlwZTogU3VpVHJhbnNhY3Rpb25UeXBlO1xuICBzZW5kZXI6IHN0cmluZztcbiAgcGF5VHg6IFBheVR4O1xuICBnYXNCdWRnZXQ6IG51bWJlcjtcbiAgZ2FzUHJpY2U6IG51bWJlcjtcbiAgZ2FzUGF5bWVudDogU3VpT2JqZWN0UmVmO1xufVxuIl19
|
|
@@ -1,29 +1,14 @@
|
|
|
1
1
|
/// <reference types="node" />
|
|
2
2
|
import { BaseKey, BaseTransaction, PublicKey as BasePublicKey, Signature, TransactionType } from '@bitgo-beta/sdk-core';
|
|
3
|
-
import {
|
|
3
|
+
import { SuiObjectRef, SuiTransaction, TransactionExplanation, TxData } from './iface';
|
|
4
4
|
import { BaseCoin as CoinConfig } from '@bitgo-beta/statics';
|
|
5
|
-
|
|
6
|
-
export declare type SuiObjectRef = {
|
|
7
|
-
/** Hex code as string representing the object id */
|
|
8
|
-
objectId: string;
|
|
9
|
-
/** Object version */
|
|
10
|
-
version: number;
|
|
11
|
-
/** Base64 string representing the object digest */
|
|
12
|
-
digest: string;
|
|
13
|
-
};
|
|
14
|
-
export declare type SuiTransaction = {
|
|
15
|
-
sender: string;
|
|
16
|
-
payTx: PayTx;
|
|
17
|
-
gasBudget: number;
|
|
18
|
-
gasPrice: number;
|
|
19
|
-
gasPayment: SuiObjectRef;
|
|
20
|
-
};
|
|
5
|
+
import { SuiTransactionType } from './constants';
|
|
21
6
|
export declare class Transaction extends BaseTransaction {
|
|
22
7
|
private _suiTransaction;
|
|
23
8
|
private _signature;
|
|
24
9
|
constructor(_coinConfig: Readonly<CoinConfig>);
|
|
25
10
|
get suiTransaction(): SuiTransaction;
|
|
26
|
-
setSuiTransaction(
|
|
11
|
+
setSuiTransaction(tx: SuiTransaction): void;
|
|
27
12
|
/** @inheritDoc **/
|
|
28
13
|
get id(): string;
|
|
29
14
|
addSignature(publicKey: BasePublicKey, signature: Buffer): void;
|
|
@@ -53,10 +38,17 @@ export declare class Transaction extends BaseTransaction {
|
|
|
53
38
|
* @param rawTransaction
|
|
54
39
|
*/
|
|
55
40
|
fromRawTransaction(rawTransaction: string): void;
|
|
56
|
-
|
|
41
|
+
/**
|
|
42
|
+
* Helper function for serialize() to get the correct txData with transaction type
|
|
43
|
+
*/
|
|
44
|
+
private getTxData;
|
|
57
45
|
serialize(): string;
|
|
58
|
-
static deserializeSuiTransaction(
|
|
59
|
-
static
|
|
46
|
+
static deserializeSuiTransaction(serializedTx: string): SuiTransaction;
|
|
47
|
+
static getProperTxDetails(k: any, type: SuiTransactionType): {
|
|
48
|
+
coins: SuiObjectRef[];
|
|
49
|
+
recipients: string[];
|
|
50
|
+
amounts: number[];
|
|
51
|
+
};
|
|
60
52
|
/**
|
|
61
53
|
* Returns a complete explanation for a transfer transaction
|
|
62
54
|
* @param {TxData} json The transaction data in json format
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"transaction.d.ts","sourceRoot":"","sources":["../../../src/lib/transaction.ts"],"names":[],"mappings":";AAAA,OAAO,EACL,OAAO,EACP,eAAe,EAIf,SAAS,IAAI,aAAa,EAC1B,SAAS,EAET,eAAe,EAChB,MAAM,sBAAsB,CAAC;AAC9B,OAAO,EAAE,
|
|
1
|
+
{"version":3,"file":"transaction.d.ts","sourceRoot":"","sources":["../../../src/lib/transaction.ts"],"names":[],"mappings":";AAAA,OAAO,EACL,OAAO,EACP,eAAe,EAIf,SAAS,IAAI,aAAa,EAC1B,SAAS,EAET,eAAe,EAChB,MAAM,sBAAsB,CAAC;AAC9B,OAAO,EAAE,YAAY,EAAE,cAAc,EAAE,sBAAsB,EAAE,MAAM,EAAa,MAAM,SAAS,CAAC;AAClG,OAAO,EAAE,QAAQ,IAAI,UAAU,EAAE,MAAM,qBAAqB,CAAC;AAI7D,OAAO,EAAiB,kBAAkB,EAA8B,MAAM,aAAa,CAAC;AAG5F,qBAAa,WAAY,SAAQ,eAAe;IAC9C,OAAO,CAAC,eAAe,CAAiB;IACxC,OAAO,CAAC,UAAU,CAAY;gBAElB,WAAW,EAAE,QAAQ,CAAC,UAAU,CAAC;IAI7C,IAAI,cAAc,IAAI,cAAc,CAEnC;IAED,iBAAiB,CAAC,EAAE,EAAE,cAAc,GAAG,IAAI;IAI3C,mBAAmB;IACnB,IAAI,EAAE,IAAI,MAAM,CAEf;IAED,YAAY,CAAC,SAAS,EAAE,aAAa,EAAE,SAAS,EAAE,MAAM,GAAG,IAAI;IAM/D,IAAI,YAAY,IAAI,SAAS,CAE5B;IAED,aAAa,IAAI,YAAY,EAAE;IAI/B,kBAAkB;IAClB,OAAO,CAAC,GAAG,EAAE,OAAO,GAAG,OAAO;IAI9B,kBAAkB;IAClB,iBAAiB,IAAI,MAAM;IAO3B,kBAAkB;IAClB,MAAM,IAAI,MAAM;IAkDhB,kBAAkB;IAClB,kBAAkB,IAAI,sBAAsB;IAwB5C;;;;OAIG;IACH,eAAe,CAAC,eAAe,EAAE,eAAe,GAAG,IAAI;IAIvD;;OAEG;IACH,oBAAoB,IAAI,IAAI;IAgC5B;;;;OAIG;IACH,kBAAkB,CAAC,cAAc,EAAE,MAAM,GAAG,IAAI;IAWhD;;OAEG;IACH,OAAO,CAAC,SAAS;IA6CjB,SAAS,IAAI,MAAM;IAanB,MAAM,CAAC,yBAAyB,CAAC,YAAY,EAAE,MAAM,GAAG,cAAc;IAqCtE,MAAM,CAAC,kBAAkB,CACvB,CAAC,EAAE,GAAG,EACN,IAAI,EAAE,kBAAkB,GACvB;QAAE,KAAK,EAAE,YAAY,EAAE,CAAC;QAAC,UAAU,EAAE,MAAM,EAAE,CAAC;QAAC,OAAO,EAAE,MAAM,EAAE,CAAA;KAAE;IAuCrE;;;;;OAKG;IACH,0BAA0B,CAAC,IAAI,EAAE,MAAM,EAAE,iBAAiB,EAAE,sBAAsB,GAAG,sBAAsB;CAgB5G"}
|
|
@@ -22,70 +22,13 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
|
22
22
|
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
23
23
|
};
|
|
24
24
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
25
|
-
exports.Transaction =
|
|
25
|
+
exports.Transaction = void 0;
|
|
26
26
|
const sdk_core_1 = require("@bitgo-beta/sdk-core");
|
|
27
27
|
const utils_1 = __importDefault(require("./utils"));
|
|
28
|
-
const bcs_1 = require("
|
|
28
|
+
const bcs_1 = require("./bcs");
|
|
29
29
|
const sha3 = __importStar(require("js-sha3"));
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
.registerVectorType('vector<u64>', 'u64')
|
|
33
|
-
.registerVectorType('vector<u128>', 'u128')
|
|
34
|
-
.registerVectorType('vector<vector<u8>>', 'vector<u8>')
|
|
35
|
-
.registerAddressType('ObjectID', 20)
|
|
36
|
-
.registerAddressType('SuiAddress', 20)
|
|
37
|
-
.registerAddressType('address', 20)
|
|
38
|
-
.registerType('utf8string', (writer, str) => {
|
|
39
|
-
const bytes = Array.from(Buffer.from(str));
|
|
40
|
-
return writer.writeVec(bytes, (writer, el) => writer.write8(el));
|
|
41
|
-
}, (reader) => {
|
|
42
|
-
const bytes = reader.readVec((reader) => reader.read8());
|
|
43
|
-
return Buffer.from(bytes).toString('utf-8');
|
|
44
|
-
})
|
|
45
|
-
.registerType('ObjectDigest', (writer, str) => {
|
|
46
|
-
const bytes = Array.from(bcs_1.decodeStr(str, 'base64'));
|
|
47
|
-
return writer.writeVec(bytes, (writer, el) => writer.write8(el));
|
|
48
|
-
}, (reader) => {
|
|
49
|
-
const bytes = reader.readVec((reader) => reader.read8());
|
|
50
|
-
return bcs_1.encodeStr(new Uint8Array(bytes), 'base64');
|
|
51
|
-
});
|
|
52
|
-
bcs_1.bcs.registerStructType('SuiObjectRef', {
|
|
53
|
-
objectId: 'ObjectID',
|
|
54
|
-
version: 'u64',
|
|
55
|
-
digest: 'ObjectDigest',
|
|
56
|
-
});
|
|
57
|
-
bcs_1.bcs
|
|
58
|
-
.registerVectorType('vector<SuiAddress>', 'SuiAddress')
|
|
59
|
-
.registerVectorType('vector<SuiObjectRef>', 'SuiObjectRef')
|
|
60
|
-
.registerStructType('PayTx', {
|
|
61
|
-
coins: 'vector<SuiObjectRef>',
|
|
62
|
-
recipients: 'vector<SuiAddress>',
|
|
63
|
-
amounts: 'vector<u64>',
|
|
64
|
-
});
|
|
65
|
-
bcs_1.bcs.registerEnumType('Transaction', {
|
|
66
|
-
TransferObject: 'TransferObjectTx',
|
|
67
|
-
Publish: 'PublishTx',
|
|
68
|
-
Call: 'MoveCallTx',
|
|
69
|
-
TransferSui: 'TransferSuiTx',
|
|
70
|
-
Pay: 'PayTx',
|
|
71
|
-
});
|
|
72
|
-
bcs_1.bcs.registerVectorType('vector<Transaction>', 'Transaction').registerEnumType('TransactionKind', {
|
|
73
|
-
Single: 'Transaction',
|
|
74
|
-
Batch: 'vector<Transaction>',
|
|
75
|
-
});
|
|
76
|
-
bcs_1.bcs.registerStructType('TransactionData', {
|
|
77
|
-
kind: 'TransactionKind',
|
|
78
|
-
sender: 'SuiAddress',
|
|
79
|
-
gasPayment: 'SuiObjectRef',
|
|
80
|
-
gasPrice: 'u64',
|
|
81
|
-
gasBudget: 'u64',
|
|
82
|
-
});
|
|
83
|
-
bcs_1.bcs.registerStructType('SenderSignedData', {
|
|
84
|
-
data: 'TransactionData',
|
|
85
|
-
txSignature: 'vector<u8>',
|
|
86
|
-
});
|
|
87
|
-
const UNAVAILABLE_TEXT = 'UNAVAILABLE';
|
|
88
|
-
exports.TYPE_TAG = Array.from('TransactionData::').map((e) => e.charCodeAt(0));
|
|
30
|
+
const constants_1 = require("./constants");
|
|
31
|
+
const buffer_1 = require("buffer");
|
|
89
32
|
class Transaction extends sdk_core_1.BaseTransaction {
|
|
90
33
|
constructor(_coinConfig) {
|
|
91
34
|
super(_coinConfig);
|
|
@@ -93,17 +36,17 @@ class Transaction extends sdk_core_1.BaseTransaction {
|
|
|
93
36
|
get suiTransaction() {
|
|
94
37
|
return this._suiTransaction;
|
|
95
38
|
}
|
|
96
|
-
setSuiTransaction(
|
|
97
|
-
this._suiTransaction =
|
|
39
|
+
setSuiTransaction(tx) {
|
|
40
|
+
this._suiTransaction = tx;
|
|
98
41
|
}
|
|
99
42
|
/** @inheritDoc **/
|
|
100
43
|
get id() {
|
|
101
|
-
return this._id || UNAVAILABLE_TEXT;
|
|
44
|
+
return this._id || constants_1.UNAVAILABLE_TEXT;
|
|
102
45
|
}
|
|
103
46
|
addSignature(publicKey, signature) {
|
|
104
47
|
this._signatures.push(signature.toString('hex'));
|
|
105
48
|
this._signature = { publicKey, signature };
|
|
106
|
-
this.
|
|
49
|
+
this.serialize();
|
|
107
50
|
}
|
|
108
51
|
get suiSignature() {
|
|
109
52
|
return this._signature;
|
|
@@ -127,13 +70,46 @@ class Transaction extends sdk_core_1.BaseTransaction {
|
|
|
127
70
|
if (!this._suiTransaction) {
|
|
128
71
|
throw new sdk_core_1.ParseTransactionError('Empty transaction');
|
|
129
72
|
}
|
|
73
|
+
const tx = this._suiTransaction;
|
|
74
|
+
let txDetails;
|
|
75
|
+
switch (tx.type) {
|
|
76
|
+
case constants_1.SuiTransactionType.Pay:
|
|
77
|
+
txDetails = {
|
|
78
|
+
Pay: {
|
|
79
|
+
coins: tx.payTx.coins,
|
|
80
|
+
recipients: tx.payTx.recipients,
|
|
81
|
+
amounts: tx.payTx.amounts,
|
|
82
|
+
},
|
|
83
|
+
};
|
|
84
|
+
break;
|
|
85
|
+
case constants_1.SuiTransactionType.PaySui:
|
|
86
|
+
txDetails = {
|
|
87
|
+
PaySui: {
|
|
88
|
+
coins: tx.payTx.coins,
|
|
89
|
+
recipients: tx.payTx.recipients,
|
|
90
|
+
amounts: tx.payTx.amounts,
|
|
91
|
+
},
|
|
92
|
+
};
|
|
93
|
+
break;
|
|
94
|
+
case constants_1.SuiTransactionType.PayAllSui:
|
|
95
|
+
txDetails = {
|
|
96
|
+
PayAllSui: {
|
|
97
|
+
coins: tx.payTx.coins,
|
|
98
|
+
recipient: tx.payTx.recipients[0],
|
|
99
|
+
amount: tx.payTx.amounts[0],
|
|
100
|
+
},
|
|
101
|
+
};
|
|
102
|
+
break;
|
|
103
|
+
default:
|
|
104
|
+
throw new sdk_core_1.InvalidTransactionError('SuiTransactionType not supported');
|
|
105
|
+
}
|
|
130
106
|
return {
|
|
131
107
|
id: this._id,
|
|
132
|
-
|
|
133
|
-
|
|
134
|
-
|
|
135
|
-
|
|
136
|
-
|
|
108
|
+
kind: { Single: txDetails },
|
|
109
|
+
sender: tx.sender,
|
|
110
|
+
gasPayment: tx.gasPayment,
|
|
111
|
+
gasBudget: tx.gasBudget,
|
|
112
|
+
gasPrice: constants_1.SUI_GAS_PRICE,
|
|
137
113
|
};
|
|
138
114
|
}
|
|
139
115
|
/** @inheritDoc */
|
|
@@ -178,7 +154,7 @@ class Transaction extends sdk_core_1.BaseTransaction {
|
|
|
178
154
|
const recipients = payTx.recipients;
|
|
179
155
|
const amounts = payTx.amounts;
|
|
180
156
|
if (recipients.length !== amounts.length) {
|
|
181
|
-
throw new Error(
|
|
157
|
+
throw new Error(`The length of recipients ${recipients.length} does not equal to the length of amounts ${amounts.length}`);
|
|
182
158
|
}
|
|
183
159
|
const outputs = recipients.map((recipient, index) => ({
|
|
184
160
|
address: recipient,
|
|
@@ -211,73 +187,132 @@ class Transaction extends sdk_core_1.BaseTransaction {
|
|
|
211
187
|
throw e;
|
|
212
188
|
}
|
|
213
189
|
}
|
|
214
|
-
|
|
190
|
+
/**
|
|
191
|
+
* Helper function for serialize() to get the correct txData with transaction type
|
|
192
|
+
*/
|
|
193
|
+
getTxData() {
|
|
215
194
|
const suiTx = this._suiTransaction;
|
|
216
|
-
|
|
217
|
-
|
|
195
|
+
let tx;
|
|
196
|
+
switch (suiTx.type) {
|
|
197
|
+
case constants_1.SuiTransactionType.Pay:
|
|
198
|
+
tx = {
|
|
199
|
+
Pay: {
|
|
200
|
+
coins: suiTx.payTx.coins,
|
|
201
|
+
recipients: suiTx.payTx.recipients,
|
|
202
|
+
amounts: suiTx.payTx.amounts,
|
|
203
|
+
},
|
|
204
|
+
};
|
|
205
|
+
break;
|
|
206
|
+
case constants_1.SuiTransactionType.PaySui:
|
|
207
|
+
tx = {
|
|
208
|
+
PaySui: {
|
|
209
|
+
coins: suiTx.payTx.coins,
|
|
210
|
+
recipients: suiTx.payTx.recipients,
|
|
211
|
+
amounts: suiTx.payTx.amounts,
|
|
212
|
+
},
|
|
213
|
+
};
|
|
214
|
+
break;
|
|
215
|
+
case constants_1.SuiTransactionType.PayAllSui:
|
|
216
|
+
tx = {
|
|
217
|
+
PayAllSui: {
|
|
218
|
+
coins: suiTx.payTx.coins,
|
|
219
|
+
recipient: suiTx.payTx.recipients[0],
|
|
220
|
+
amount: suiTx.payTx.amounts[0],
|
|
221
|
+
},
|
|
222
|
+
};
|
|
223
|
+
break;
|
|
224
|
+
default:
|
|
225
|
+
throw new sdk_core_1.InvalidTransactionError('SuiTransactionType not supported');
|
|
226
|
+
}
|
|
227
|
+
return {
|
|
228
|
+
kind: { Single: tx },
|
|
218
229
|
gasPayment: suiTx.gasPayment,
|
|
219
|
-
gasPrice:
|
|
230
|
+
gasPrice: constants_1.SUI_GAS_PRICE,
|
|
220
231
|
gasBudget: suiTx.gasBudget,
|
|
221
232
|
sender: suiTx.sender,
|
|
222
233
|
};
|
|
223
|
-
const scheme = new Uint8Array([0x00]);
|
|
224
|
-
const signatureBuffer = Buffer.concat([scheme, signature, Buffer.from(publicKey.pub)]);
|
|
225
|
-
const signedTx = {
|
|
226
|
-
data: txData,
|
|
227
|
-
txSignature: signatureBuffer,
|
|
228
|
-
};
|
|
229
|
-
const serialized = bcs_1.bcs.ser('SenderSignedData', signedTx).toBytes();
|
|
230
|
-
const typeTag = Array.from('SenderSignedData::').map((e) => e.charCodeAt(0));
|
|
231
|
-
const serializedFinal = new Uint8Array(typeTag.length + serialized.length);
|
|
232
|
-
serializedFinal.set(typeTag);
|
|
233
|
-
serializedFinal.set(serialized, typeTag.length);
|
|
234
|
-
this._id = Buffer.from(sha3.sha3_256(serializedFinal), 'hex').toString('base64');
|
|
235
234
|
}
|
|
236
235
|
serialize() {
|
|
237
|
-
const
|
|
238
|
-
const txData = {
|
|
239
|
-
kind: { Single: { Pay: suiTx.payTx } },
|
|
240
|
-
gasPayment: suiTx.gasPayment,
|
|
241
|
-
gasPrice: suiTx.gasPrice,
|
|
242
|
-
gasBudget: suiTx.gasBudget,
|
|
243
|
-
sender: suiTx.sender,
|
|
244
|
-
};
|
|
236
|
+
const txData = this.getTxData();
|
|
245
237
|
const dataBytes = bcs_1.bcs.ser('TransactionData', txData).toBytes();
|
|
246
|
-
const serialized = new Uint8Array(
|
|
247
|
-
serialized.set(
|
|
248
|
-
serialized.set(dataBytes,
|
|
238
|
+
const serialized = new Uint8Array(constants_1.TYPE_TAG.length + dataBytes.length);
|
|
239
|
+
serialized.set(constants_1.TYPE_TAG);
|
|
240
|
+
serialized.set(dataBytes, constants_1.TYPE_TAG.length);
|
|
249
241
|
if (this._signature !== undefined) {
|
|
250
|
-
this.
|
|
242
|
+
this._id = buffer_1.Buffer.from(sha3.sha3_256(serialized), 'hex').toString('base64');
|
|
251
243
|
}
|
|
252
|
-
return Buffer.from(serialized).toString('
|
|
244
|
+
return buffer_1.Buffer.from(serialized).toString('base64');
|
|
253
245
|
}
|
|
254
|
-
static deserializeSuiTransaction(
|
|
255
|
-
const data = Buffer.from(
|
|
256
|
-
const trimmedData = new Uint8Array(data.subarray(
|
|
246
|
+
static deserializeSuiTransaction(serializedTx) {
|
|
247
|
+
const data = buffer_1.Buffer.from(serializedTx, 'base64');
|
|
248
|
+
const trimmedData = new Uint8Array(data.subarray(constants_1.TYPE_TAG.length));
|
|
257
249
|
const k = bcs_1.bcs.de('TransactionData', trimmedData);
|
|
258
|
-
|
|
250
|
+
let type;
|
|
251
|
+
const txDetails = k.kind.Single;
|
|
252
|
+
if (txDetails.hasOwnProperty('Pay')) {
|
|
253
|
+
type = constants_1.SuiTransactionType.Pay;
|
|
254
|
+
}
|
|
255
|
+
else if (txDetails.hasOwnProperty('PaySui')) {
|
|
256
|
+
type = constants_1.SuiTransactionType.PaySui;
|
|
257
|
+
}
|
|
258
|
+
else if (txDetails.hasOwnProperty('PayAllSui')) {
|
|
259
|
+
type = constants_1.SuiTransactionType.PayAllSui;
|
|
260
|
+
}
|
|
261
|
+
else {
|
|
262
|
+
throw new Error('Transaction type not supported: ' + txDetails);
|
|
263
|
+
}
|
|
264
|
+
const { coins, recipients, amounts } = this.getProperTxDetails(k, type);
|
|
259
265
|
return {
|
|
260
|
-
|
|
261
|
-
|
|
266
|
+
type,
|
|
267
|
+
sender: utils_1.default.normalizeHexId(k.sender),
|
|
268
|
+
payTx: {
|
|
269
|
+
coins,
|
|
270
|
+
recipients,
|
|
271
|
+
amounts,
|
|
272
|
+
},
|
|
262
273
|
gasBudget: k.gasBudget.toNumber(),
|
|
263
274
|
gasPrice: k.gasPrice.toNumber(),
|
|
264
|
-
gasPayment:
|
|
275
|
+
gasPayment: {
|
|
276
|
+
objectId: utils_1.default.normalizeHexId(k.gasPayment.objectId),
|
|
277
|
+
version: k.gasPayment.version.toNumber(),
|
|
278
|
+
digest: k.gasPayment.digest,
|
|
279
|
+
},
|
|
265
280
|
};
|
|
266
281
|
}
|
|
267
|
-
static
|
|
282
|
+
static getProperTxDetails(k, type) {
|
|
268
283
|
// bcs deserialized number into Big Number and removed '0x' prefix from addresses, needs to convert them back
|
|
269
|
-
|
|
270
|
-
|
|
284
|
+
let coins;
|
|
285
|
+
let recipients;
|
|
286
|
+
let amounts;
|
|
287
|
+
switch (type) {
|
|
288
|
+
case constants_1.SuiTransactionType.Pay:
|
|
289
|
+
coins = k.kind.Single.Pay.coins;
|
|
290
|
+
recipients = k.kind.Single.Pay.recipients;
|
|
291
|
+
amounts = k.kind.Single.Pay.amounts;
|
|
292
|
+
break;
|
|
293
|
+
case constants_1.SuiTransactionType.PaySui:
|
|
294
|
+
coins = k.kind.Single.PaySui.coins;
|
|
295
|
+
recipients = k.kind.Single.PaySui.recipients;
|
|
296
|
+
amounts = k.kind.Single.PaySui.amounts;
|
|
297
|
+
break;
|
|
298
|
+
case constants_1.SuiTransactionType.PayAllSui:
|
|
299
|
+
coins = k.kind.Single.PayAllSui.coins;
|
|
300
|
+
recipients = [k.kind.Single.PayAllSui.recipient];
|
|
301
|
+
amounts = [k.kind.Single.PayAllSui.amount];
|
|
302
|
+
break;
|
|
303
|
+
default:
|
|
304
|
+
throw new sdk_core_1.InvalidTransactionError('SuiTransactionType not supported');
|
|
305
|
+
}
|
|
306
|
+
coins = coins.map((coin) => {
|
|
271
307
|
return {
|
|
272
308
|
objectId: utils_1.default.normalizeHexId(coin.objectId),
|
|
273
309
|
version: coin.version.toNumber(),
|
|
274
310
|
digest: coin.digest,
|
|
275
311
|
};
|
|
276
312
|
});
|
|
277
|
-
|
|
278
|
-
|
|
279
|
-
|
|
280
|
-
k.sender = utils_1.default.normalizeHexId(k.sender);
|
|
313
|
+
recipients = recipients.map((recipient) => utils_1.default.normalizeHexId(recipient));
|
|
314
|
+
amounts = amounts.map((amount) => amount.toNumber());
|
|
315
|
+
return { coins, recipients, amounts };
|
|
281
316
|
}
|
|
282
317
|
/**
|
|
283
318
|
* Returns a complete explanation for a transfer transaction
|
|
@@ -301,4 +336,4 @@ class Transaction extends sdk_core_1.BaseTransaction {
|
|
|
301
336
|
}
|
|
302
337
|
}
|
|
303
338
|
exports.Transaction = Transaction;
|
|
304
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHJhbnNhY3Rpb24uanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvbGliL3RyYW5zYWN0aW9uLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7QUFBQSxtREFVOEI7QUFHOUIsb0RBQTRCO0FBQzVCLHFDQUF3RDtBQUN4RCw4Q0FBZ0M7QUFFaEMsU0FBRztLQUNBLGtCQUFrQixDQUFDLFlBQVksRUFBRSxJQUFJLENBQUM7S0FDdEMsa0JBQWtCLENBQUMsYUFBYSxFQUFFLEtBQUssQ0FBQztLQUN4QyxrQkFBa0IsQ0FBQyxjQUFjLEVBQUUsTUFBTSxDQUFDO0tBQzFDLGtCQUFrQixDQUFDLG9CQUFvQixFQUFFLFlBQVksQ0FBQztLQUN0RCxtQkFBbUIsQ0FBQyxVQUFVLEVBQUUsRUFBRSxDQUFDO0tBQ25DLG1CQUFtQixDQUFDLFlBQVksRUFBRSxFQUFFLENBQUM7S0FDckMsbUJBQW1CLENBQUMsU0FBUyxFQUFFLEVBQUUsQ0FBQztLQUNsQyxZQUFZLENBQ1gsWUFBWSxFQUNaLENBQUMsTUFBTSxFQUFFLEdBQUcsRUFBRSxFQUFFO0lBQ2QsTUFBTSxLQUFLLEdBQUcsS0FBSyxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUM7SUFDM0MsT0FBTyxNQUFNLENBQUMsUUFBUSxDQUFDLEtBQUssRUFBRSxDQUFDLE1BQU0sRUFBRSxFQUFFLEVBQUUsRUFBRSxDQUFDLE1BQU0sQ0FBQyxNQUFNLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQztBQUNuRSxDQUFDLEVBQ0QsQ0FBQyxNQUFNLEVBQUUsRUFBRTtJQUNULE1BQU0sS0FBSyxHQUFHLE1BQU0sQ0FBQyxPQUFPLENBQUMsQ0FBQyxNQUFNLEVBQUUsRUFBRSxDQUFDLE1BQU0sQ0FBQyxLQUFLLEVBQUUsQ0FBQyxDQUFDO0lBQ3pELE9BQU8sTUFBTSxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMs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Q0FBQyxjQUFjLENBQUMsS0FBSyxDQUFDLFVBQVUsQ0FBQztRQUN4RCxNQUFNLE9BQU8sR0FBRyxJQUFJLENBQUMsY0FBYyxDQUFDLEtBQUssQ0FBQyxPQUFPLENBQUM7UUFFbEQsTUFBTSxPQUFPLEdBQTJCLFVBQVUsQ0FBQyxHQUFHLENBQUMsQ0FBQyxTQUFTLEVBQUUsS0FBSyxFQUFFLEVBQUUsQ0FBQyxDQUFDO1lBQzVFLE9BQU8sRUFBRSxTQUFTO1lBQ2xCLE1BQU0sRUFBRSxPQUFPLENBQUMsS0FBSyxDQUFDLENBQUMsUUFBUSxFQUFFO1NBQ2xDLENBQUMsQ0FBQyxDQUFDO1FBQ0osTUFBTSxZQUFZLEdBQUcsT0FBTyxDQUFDLE1BQU0sQ0FBQyxDQUFDLFdBQVcsRUFBRSxPQUFPLEVBQUUsRUFBRSxDQUFDLFdBQVcsR0FBRyxPQUFPLEVBQUUsQ0FBQyxDQUFDLENBQUM7UUFFeEYsT0FBTztZQUNMLEdBQUcsaUJBQWlCO1lBQ3BCLFlBQVk7WUFDWixPQUFPO1NBQ1IsQ0FBQztJQUNKLENBQUM7Q0FDRjtBQXBQRCxrQ0FvUEMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xuICBCYXNlS2V5LFxuICBCYXNlVHJhbnNhY3Rpb24sXG4gIEVudHJ5LFxuICBJbnZhbGlkVHJhbnNhY3Rpb25FcnJvcixcbiAgUGFyc2VUcmFuc2FjdGlvbkVycm9yLFxuICBQdWJsaWNLZXkgYXMgQmFzZVB1YmxpY0tleSxcbiAgU2lnbmF0dXJlLFxuICBUcmFuc2FjdGlvblJlY2lwaWVudCxcbiAgVHJhbnNhY3Rpb25UeXBlLFxufSBmcm9tICdAYml0Z28tYmV0YS9zZGstY29yZSc7XG5pbXBvcnQgeyBQYXlUeCwgVHJhbnNhY3Rpb25FeHBsYW5hdGlvbiwgVHhEYXRhIH0gZnJvbSAnLi9pZmFjZSc7XG5pbXBvcnQgeyBCYXNlQ29pbiBhcyBDb2luQ29uZmlnIH0gZnJvbSAnQGJpdGdvLWJldGEvc3RhdGljcyc7XG5pbXBvcnQgdXRpbHMgZnJvbSAnLi91dGlscyc7XG5pbXBvcnQgeyBiY3MsIGRlY29kZVN0ciwgZW5jb2RlU3RyIH0gZnJvbSAnQG15c3Rlbi9iY3MnO1xuaW1wb3J0ICogYXMgc2hhMyBmcm9tICdqcy1zaGEzJztcblxuYmNzXG4gIC5yZWdpc3RlclZlY3RvclR5cGUoJ3ZlY3Rvcjx1OD4nLCAndTgnKVxuICAucmVnaXN0ZXJWZWN0b3JUeXBlKCd2ZWN0b3I8dTY0PicsICd1NjQnKVxuICAucmVnaXN0ZXJWZWN0b3JUeXBlKCd2ZWN0b3I8dTEyOD4nLCAndTEyOCcpXG4gIC5yZWdpc3RlclZlY3RvclR5cGUoJ3ZlY3Rvcjx2ZWN0b3I8dTg+PicsICd2ZWN0b3I8dTg+JylcbiAgLnJlZ2lzdGVyQWRkcmVzc1R5cGUoJ09iamVjdElEJywgMjApXG4gIC5yZWdpc3RlckFkZHJlc3NUeXBlKCdTdWlBZGRyZXNzJywgMjApXG4gIC5yZWdpc3RlckFkZHJlc3NUeXBlKCdhZGRyZXNzJywgMjApXG4gIC5yZWdpc3RlclR5cGUoXG4gICAgJ3V0ZjhzdHJpbmcnLFxuICAgICh3cml0ZXIsIHN0cikgPT4ge1xuICAgICAgY29uc3QgYnl0ZXMgPSBBcnJheS5mcm9tKEJ1ZmZlci5mcm9tKHN0cikpO1xuICAgICAgcmV0dXJuIHdyaXRlci53cml0ZVZlYyhieXRlcywgKHdyaXRlciwgZWwpID0+IHdyaXRlci53cml0ZTgoZWwpKTtcbiAgICB9LFxuICAgIChyZWFkZXIpID0+IHtcbiAgICAgIGNvbnN0IGJ5dGVzID0gcmVhZGVyLnJlYWRWZWMoKHJlYWRlcikgPT4gcmVhZGVyLnJlYWQ4KCkpO1xuICAgICAgcmV0dXJuIEJ1ZmZlci5mcm9tKGJ5dGVzKS50b1N0cmluZygndXRmLTgnKTtcbiAgICB9XG4gIClcbiAgLnJlZ2lzdGVyVHlwZShcbiAgICAnT2JqZWN0RGlnZXN0JyxcbiAgICAod3JpdGVyLCBzdHIpID0+IHtcbiAgICAgIGNvbnN0IGJ5dGVzID0gQXJyYXkuZnJvbShkZWNvZGVTdHIoc3RyLCAnYmFzZTY0JykpO1xuICAgICAgcmV0dXJuIHdyaXRlci53cml0ZVZlYyhieXRlcywgKHdyaXRlciwgZWwpID0+IHdyaXRlci53cml0ZTgoZWwpKTtcbiAgICB9LFxuICAgIChyZWFkZXIpID0+IHtcbiAgICAgIGNvbnN0IGJ5dGVzID0gcmVhZGVyLnJlYWRWZWMoKHJlYWRlcikgPT4gcmVhZGVyLnJlYWQ4KCkpO1xuICAgICAgcmV0dXJuIGVuY29kZVN0cihuZXcgVWludDhBcnJheShieXRlcyksICdiYXNlNjQnKTtcbiAgICB9XG4gICk7XG5cbmJjcy5yZWdpc3RlclN0cnVjdFR5cGUoJ1N1aU9iamVjdFJlZicsIHtcbiAgb2JqZWN0SWQ6ICdPYmplY3RJRCcsXG4gIHZlcnNpb246ICd1NjQnLFxuICBkaWdlc3Q6ICdPYmplY3REaWdlc3QnLFxufSk7XG5cbmJjc1xuICAucmVnaXN0ZXJWZWN0b3JUeXBlKCd2ZWN0b3I8U3VpQWRkcmVzcz4nLCAnU3VpQWRkcmVzcycpXG4gIC5yZWdpc3RlclZlY3RvclR5cGUoJ3ZlY3RvcjxTdWlPYmplY3RSZWY+JywgJ1N1aU9iamVjdFJlZicpXG4gIC5yZWdpc3RlclN0cnVjdFR5cGUoJ1BheVR4Jywge1xuICAgIGNvaW5zOiAndmVjdG9yPFN1aU9iamVjdFJlZj4nLFxuICAgIHJlY2lwaWVudHM6ICd2ZWN0b3I8U3VpQWRkcmVzcz4nLFxuICAgIGFtb3VudHM6ICd2ZWN0b3I8dTY0PicsXG4gIH0pO1xuXG5iY3MucmVnaXN0ZXJFbnVtVHlwZSgnVHJhbnNhY3Rpb24nLCB7XG4gIFRyYW5zZmVyT2JqZWN0OiAnVHJhbnNmZXJPYmplY3RUeCcsXG4gIFB1Ymxpc2g6ICdQdWJsaXNoVHgnLFxuICBDYWxsOiAnTW92ZUNhbGxUeCcsXG4gIFRyYW5zZmVyU3VpOiAnVHJhbnNmZXJTdWlUeCcsXG4gIFBheTogJ1BheVR4Jyxcbn0pO1xuXG5iY3MucmVnaXN0ZXJWZWN0b3JUeXBlKCd2ZWN0b3I8VHJhbnNhY3Rpb24+JywgJ1RyYW5zYWN0aW9uJykucmVnaXN0ZXJFbnVtVHlwZSgnVHJhbnNhY3Rpb25LaW5kJywge1xuICBTaW5nbGU6ICdUcmFuc2FjdGlvbicsXG4gIEJhdGNoOiAndmVjdG9yPFRyYW5zYWN0aW9uPicsXG59KTtcblxuYmNzLnJlZ2lzdGVyU3RydWN0VHlwZSgnVHJhbnNhY3Rpb25EYXRhJywge1xuICBraW5kOiAnVHJhbnNhY3Rpb25LaW5kJyxcbiAgc2VuZGVyOiAnU3VpQWRkcmVzcycsXG4gIGdhc1BheW1lbnQ6ICdTdWlPYmplY3RSZWYnLFxuICBnYXNQcmljZTogJ3U2NCcsXG4gIGdhc0J1ZGdldDogJ3U2NCcsXG59KTtcblxuYmNzLnJlZ2lzdGVyU3RydWN0VHlwZSgnU2VuZGVyU2lnbmVkRGF0YScsIHtcbiAgZGF0YTogJ1RyYW5zYWN0aW9uRGF0YScsXG4gIHR4U2lnbmF0dXJlOiAndmVjdG9yPHU4PicsXG59KTtcblxuY29uc3QgVU5BVkFJTEFCTEVfVEVYVCA9ICdVTkFWQUlMQUJMRSc7XG5leHBvcnQgY29uc3QgVFlQRV9UQUcgPSBBcnJheS5mcm9tKCdUcmFuc2FjdGlvbkRhdGE6OicpLm1hcCgoZSkgPT4gZS5jaGFyQ29kZUF0KDApKTtcblxuZXhwb3J0IHR5cGUgU3VpT2JqZWN0UmVmID0ge1xuICAvKiogSGV4IGNvZGUgYXMgc3RyaW5nIHJlcHJlc2VudGluZyB0aGUgb2JqZWN0IGlkICovXG4gIG9iamVjdElkOiBzdHJpbmc7XG4gIC8qKiBPYmplY3QgdmVyc2lvbiAqL1xuICB2ZXJzaW9uOiBudW1iZXI7XG4gIC8qKiBCYXNlNjQgc3RyaW5nIHJlcHJlc2VudGluZyB0aGUgb2JqZWN0IGRpZ2VzdCAqL1xuICBkaWdlc3Q6IHN0cmluZztcbn07XG5cbmV4cG9ydCB0eXBlIFN1aVRyYW5zYWN0aW9uID0ge1xuICBzZW5kZXI6IHN0cmluZztcbiAgcGF5VHg6IFBheVR4O1xuICBnYXNCdWRnZXQ6IG51bWJlcjtcbiAgZ2FzUHJpY2U6IG51bWJlcjtcbiAgZ2FzUGF5bWVudDogU3VpT2JqZWN0UmVmO1xufTtcblxuZXhwb3J0IGNsYXNzIFRyYW5zYWN0aW9uIGV4dGVuZHMgQmFzZVRyYW5zYWN0aW9uIHtcbiAgcHJpdmF0ZSBfc3VpVHJhbnNhY3Rpb246IFN1aVRyYW5zYWN0aW9uO1xuICBwcml2YXRlIF9zaWduYXR1cmU6IFNpZ25hdHVyZTtcblxuICBjb25zdHJ1Y3RvcihfY29pbkNvbmZpZzogUmVhZG9ubHk8Q29pbkNvbmZpZz4pIHtcbiAgICBzdXBlcihfY29pbkNvbmZpZyk7XG4gIH1cblxuICBnZXQgc3VpVHJhbnNhY3Rpb24oKTogU3VpVHJhbnNhY3Rpb24ge1xuICAgIHJldHVybiB0aGlzLl9zdWlUcmFuc2FjdGlvbjtcbiAgfVxuXG4gIHNldFN1aVRyYW5zYWN0aW9uKHZhbHVlOiBTdWlUcmFuc2FjdGlvbik6IHZvaWQge1xuICAgIHRoaXMuX3N1aVRyYW5zYWN0aW9uID0gdmFsdWU7XG4gIH1cblxuICAvKiogQGluaGVyaXREb2MgKiovXG4gIGdldCBpZCgpOiBzdHJpbmcge1xuICAgIHJldHVybiB0aGlzLl9pZCB8fCBVTkFWQUlMQUJMRV9URVhUO1xuICB9XG5cbiAgYWRkU2lnbmF0dXJlKHB1YmxpY0tleTogQmFzZVB1YmxpY0tleSwgc2lnbmF0dXJlOiBCdWZmZXIpOiB2b2lkIHtcbiAgICB0aGlzLl9zaWduYXR1cmVzLnB1c2goc2lnbmF0dXJlLnRvU3RyaW5nKCdoZXgnKSk7XG4gICAgdGhpcy5fc2lnbmF0dXJlID0geyBwdWJsaWNLZXksIHNpZ25hdHVyZSB9O1xuICAgIHRoaXMuc2VyaWFsaXplU2lnbmVkVHgocHVibGljS2V5LCBzaWduYXR1cmUpO1xuICB9XG5cbiAgZ2V0IHN1aVNpZ25hdHVyZSgpOiBTaWduYXR1cmUge1xuICAgIHJldHVybiB0aGlzLl9zaWduYXR1cmU7XG4gIH1cblxuICBnZXRJbnB1dENvaW5zKCk6IFN1aU9iamVjdFJlZltdIHtcbiAgICByZXR1cm4gdGhpcy5zdWlUcmFuc2FjdGlvbi5wYXlUeC5jb2lucztcbiAgfVxuXG4gIC8qKiBAaW5oZXJpdGRvYyAqL1xuICBjYW5TaWduKGtleTogQmFzZUtleSk6IGJvb2xlYW4ge1xuICAgIHJldHVybiB0cnVlO1xuICB9XG5cbiAgLyoqIEBpbmhlcml0ZG9jICovXG4gIHRvQnJvYWRjYXN0Rm9ybWF0KCk6IHN0cmluZyB7XG4gICAgaWYgKCF0aGlzLl9zdWlUcmFuc2FjdGlvbikge1xuICAgICAgdGhyb3cgbmV3IEludmFsaWRUcmFuc2FjdGlvbkVycm9yKCdFbXB0eSB0cmFuc2FjdGlvbicpO1xuICAgIH1cbiAgICByZXR1cm4gdGhpcy5zZXJpYWxpemUoKTtcbiAgfVxuXG4gIC8qKiBAaW5oZXJpdGRvYyAqL1xuICB0b0pzb24oKTogVHhEYXRhIHtcbiAgICBpZiAoIXRoaXMuX3N1aVRyYW5zYWN0aW9uKSB7XG4gICAgICB0aHJvdyBuZXcgUGFyc2VUcmFuc2FjdGlvbkVycm9yKCdFbXB0eSB0cmFuc2FjdGlvbicpO1xuICAgIH1cblxuICAgIHJldHVybiB7XG4gICAgICBpZDogdGhpcy5faWQsXG4gICAgICBnYXNCdWRnZXQ6IHRoaXMuX3N1aVRyYW5zYWN0aW9uLmdhc0J1ZGdldCxcbiAgICAgIGdhc1ByaWNlOiB0aGlzLl9zdWlUcmFuc2FjdGlvbi5nYXNQcmljZSxcbiAgICAgIHBheVR4OiB0aGlzLl9zdWlUcmFuc2FjdGlvbi5wYXlUeCxcbiAgICAgIHNlbmRlcjogdGhpcy5fc3VpVHJhbnNhY3Rpb24uc2VuZGVyLFxuICAgICAgZ2FzUGF5bWVudDogdGhpcy5fc3VpVHJhbnNhY3Rpb24uZ2FzUGF5bWVudCxcbiAgICB9O1xuICB9XG5cbiAgLyoqIEBpbmhlcml0RG9jICovXG4gIGV4cGxhaW5UcmFuc2FjdGlvbigpOiBUcmFuc2FjdGlvbkV4cGxhbmF0aW9uIHtcbiAgICBjb25zdCByZXN1bHQgPSB0aGlzLnRvSnNvbigpO1xuICAgIGNvbnN0IGRpc3BsYXlPcmRlciA9IFsnaWQnLCAnb3V0cHV0cycsICdvdXRwdXRBbW91bnQnLCAnY2hhbmdlT3V0cHV0cycsICdjaGFuZ2VBbW91bnQnLCAnZmVlJywgJ3R5cGUnXTtcbiAgICBjb25zdCBvdXRwdXRzOiBUcmFuc2FjdGlvblJlY2lwaWVudFtdID0gW107XG5cbiAgICBjb25zdCBleHBsYW5hdGlvblJlc3VsdDogVHJhbnNhY3Rpb25FeHBsYW5hdGlvbiA9IHtcbiAgICAgIGRpc3BsYXlPcmRlcixcbiAgICAgIGlkOiB0aGlzLmlkLFxuICAgICAgb3V0cHV0cyxcbiAgICAgIG91dHB1dEFtb3VudDogJzAnLFxuICAgICAgY2hhbmdlT3V0cHV0czogW10sXG4gICAgICBjaGFuZ2VBbW91bnQ6ICcwJyxcbiAgICAgIGZlZTogeyBmZWU6IHRoaXMuc3VpVHJhbnNhY3Rpb24uZ2FzQnVkZ2V0LnRvU3RyaW5nKCkgfSxcbiAgICAgIHR5cGU6IHRoaXMudHlwZSxcbiAgICB9O1xuXG4gICAgc3dpdGNoICh0aGlzLnR5cGUpIHtcbiAgICAgIGNhc2UgVHJhbnNhY3Rpb25UeXBlLlNlbmQ6XG4gICAgICAgIHJldHVybiB0aGlzLmV4cGxhaW5UcmFuc2ZlclRyYW5zYWN0aW9uKHJlc3VsdCwgZXhwbGFuYXRpb25SZXN1bHQpO1xuICAgICAgZGVmYXVsdDpcbiAgICAgICAgdGhyb3cgbmV3IEludmFsaWRUcmFuc2FjdGlvbkVycm9yKCdUcmFuc2FjdGlvbiB0eXBlIG5vdCBzdXBwb3J0ZWQnKTtcbiAgICB9XG4gIH1cblxuICAvKipcbiAgICogU2V0IHRoZSB0cmFuc2FjdGlvbiB0eXBlLlxuICAgKlxuICAgKiBAcGFyYW0ge1RyYW5zYWN0aW9uVHlwZX0gdHJhbnNhY3Rpb25UeXBlIFRoZSB0cmFuc2FjdGlvbiB0eXBlIHRvIGJlIHNldC5cbiAgICovXG4gIHRyYW5zYWN0aW9uVHlwZSh0cmFuc2FjdGlvblR5cGU6IFRyYW5zYWN0aW9uVHlwZSk6IHZvaWQge1xuICAgIHRoaXMuX3R5cGUgPSB0cmFuc2FjdGlvblR5cGU7XG4gIH1cblxuICAvKipcbiAgICogTG9hZCB0aGUgaW5wdXQgYW5kIG91dHB1dCBkYXRhIG9uIHRoaXMgdHJhbnNhY3Rpb24uXG4gICAqL1xuICBsb2FkSW5wdXRzQW5kT3V0cHV0cygpOiB2b2lkIHtcbiAgICBpZiAoIXRoaXMuc3VpVHJhbnNhY3Rpb24pIHtcbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICBjb25zdCB0eCA9IHRoaXMuc3VpVHJhbnNhY3Rpb247XG4gICAgY29uc3QgcGF5VHggPSB0eC5wYXlUeDtcbiAgICBjb25zdCByZWNpcGllbnRzID0gcGF5VHgucmVjaXBpZW50cztcbiAgICBjb25zdCBhbW91bnRzID0gcGF5VHguYW1vdW50cztcbiAgICBpZiAocmVjaXBpZW50cy5sZW5ndGggIT09IGFtb3VudHMubGVuZ3RoKSB7XG4gICAgICB0aHJvdyBuZXcgRXJyb3IoJ1RoZSBsZW5ndGggb2YgcmVjaXBpZW50cyBkb2VzIG5vdCBlcXVhbCB0byB0aGUgbGVuZ3RoIG9mIGFtb3VudHMnKTtcbiAgICB9XG5cbiAgICBjb25zdCBvdXRwdXRzOiBFbnRyeVtdID0gcmVjaXBpZW50cy5tYXAoKHJlY2lwaWVudCwgaW5kZXgpID0+ICh7XG4gICAgICBhZGRyZXNzOiByZWNpcGllbnQsXG4gICAgICB2YWx1ZTogYW1vdW50c1tpbmRleF0udG9TdHJpbmcoKSxcbiAgICAgIGNvaW46IHRoaXMuX2NvaW5Db25maWcubmFtZSxcbiAgICB9KSk7XG5cbiAgICBjb25zdCB0b3RhbEFtb3VudCA9IGFtb3VudHMucmVkdWNlKChhY2N1bXVsYXRvciwgY3VycmVudCkgPT4gYWNjdW11bGF0b3IgKyBjdXJyZW50LCAwKTtcbiAgICB0aGlzLl9pbnB1dHMgPSBbXG4gICAgICB7XG4gICAgICAgIGFkZHJlc3M6IHR4LnNlbmRlcixcbiAgICAgICAgdmFsdWU6IHRvdGFsQW1vdW50LnRvU3RyaW5nKCksXG4gICAgICAgIGNvaW46IHRoaXMuX2NvaW5Db25maWcubmFtZSxcbiAgICAgIH0sXG4gICAgXTtcbiAgICB0aGlzLl9vdXRwdXRzID0gb3V0cHV0cztcbiAgfVxuXG4gIC8qKlxuICAgKiBTZXRzIHRoaXMgdHJhbnNhY3Rpb24gcGF5bG9hZFxuICAgKlxuICAgKiBAcGFyYW0gcmF3VHJhbnNhY3Rpb25cbiAgICovXG4gIGZyb21SYXdUcmFuc2FjdGlvbihyYXdUcmFuc2FjdGlvbjogc3RyaW5nKTogdm9pZCB7XG4gICAgdHJ5IHtcbiAgICAgIHV0aWxzLmlzVmFsaWRSYXdUcmFuc2FjdGlvbihyYXdUcmFuc2FjdGlvbik7XG4gICAgICB0aGlzLl9zdWlUcmFuc2FjdGlvbiA9IFRyYW5zYWN0aW9uLmRlc2VyaWFsaXplU3VpVHJhbnNhY3Rpb24ocmF3VHJhbnNhY3Rpb24pO1xuICAgICAgdGhpcy5fdHlwZSA9IFRyYW5zYWN0aW9uVHlwZS5TZW5kO1xuICAgICAgdGhpcy5sb2FkSW5wdXRzQW5kT3V0cHV0cygpO1xuICAgIH0gY2F0Y2ggKGUpIHtcbiAgICAgIHRocm93IGU7XG4gICAgfVxuICB9XG5cbiAgcHJpdmF0ZSBzZXJpYWxpemVTaWduZWRUeChwdWJsaWNLZXk6IEJhc2VQdWJsaWNLZXksIHNpZ25hdHVyZTogQnVmZmVyKTogdm9pZCB7XG4gICAgY29uc3Qgc3VpVHggPSB0aGlzLl9zdWlUcmFuc2FjdGlvbjtcbiAgICBjb25zdCB0eERhdGEgPSB7XG4gICAgICBraW5kOiB7IFNpbmdsZTogeyBQYXk6IHN1aVR4LnBheVR4IH0gfSxcbiAgICAgIGdhc1BheW1lbnQ6IHN1aVR4Lmdhc1BheW1lbnQsXG4gICAgICBnYXNQcmljZTogc3VpVHguZ2FzUHJpY2UsXG4gICAgICBnYXNCdWRnZXQ6IHN1aVR4Lmdhc0J1ZGdldCxcbiAgICAgIHNlbmRlcjogc3VpVHguc2VuZGVyLFxuICAgIH07XG4gICAgY29uc3Qgc2NoZW1lID0gbmV3IFVpbnQ4QXJyYXkoWzB4MDBdKTtcbiAgICBjb25zdCBzaWduYXR1cmVCdWZmZXIgPSBCdWZmZXIuY29uY2F0KFtzY2hlbWUsIHNpZ25hdHVyZSwgQnVmZmVyLmZyb20ocHVibGljS2V5LnB1YildKTtcbiAgICBjb25zdCBzaWduZWRUeCA9IHtcbiAgICAgIGRhdGE6IHR4RGF0YSxcbiAgICAgIHR4U2lnbmF0dXJlOiBzaWduYXR1cmVCdWZmZXIsXG4gICAgfTtcblxuICAgIGNvbnN0IHNlcmlhbGl6ZWQgPSBiY3Muc2VyKCdTZW5kZXJTaWduZWREYXRhJywgc2lnbmVkVHgpLnRvQnl0ZXMoKTtcbiAgICBjb25zdCB0eXBlVGFnID0gQXJyYXkuZnJvbSgnU2VuZGVyU2lnbmVkRGF0YTo6JykubWFwKChlKSA9PiBlLmNoYXJDb2RlQXQoMCkpO1xuICAgIGNvbnN0IHNlcmlhbGl6ZWRGaW5hbCA9IG5ldyBVaW50OEFycmF5KHR5cGVUYWcubGVuZ3RoICsgc2VyaWFsaXplZC5sZW5ndGgpO1xuICAgIHNlcmlhbGl6ZWRGaW5hbC5zZXQodHlwZVRhZyk7XG4gICAgc2VyaWFsaXplZEZpbmFsLnNldChzZXJpYWxpemVkLCB0eXBlVGFnLmxlbmd0aCk7XG4gICAgdGhpcy5faWQgPSBCdWZmZXIuZnJvbShzaGEzLnNoYTNfMjU2KHNlcmlhbGl6ZWRGaW5hbCksICdoZXgnKS50b1N0cmluZygnYmFzZTY0Jyk7XG4gIH1cblxuICBzZXJpYWxpemUoKTogc3RyaW5nIHtcbiAgICBjb25zdCBzdWlUeCA9IHRoaXMuX3N1aVRyYW5zYWN0aW9uO1xuICAgIGNvbnN0IHR4RGF0YSA9IHtcbiAgICAgIGtpbmQ6IHsgU2luZ2xlOiB7IFBheTogc3VpVHgucGF5VHggfSB9LFxuICAgICAgZ2FzUGF5bWVudDogc3VpVHguZ2FzUGF5bWVudCxcbiAgICAgIGdhc1ByaWNlOiBzdWlUeC5nYXNQcmljZSxcbiAgICAgIGdhc0J1ZGdldDogc3VpVHguZ2FzQnVkZ2V0LFxuICAgICAgc2VuZGVyOiBzdWlUeC5zZW5kZXIsXG4gICAgfTtcblxuICAgIGNvbnN0IGRhdGFCeXRlcyA9IGJjcy5zZXIoJ1RyYW5zYWN0aW9uRGF0YScsIHR4RGF0YSkudG9CeXRlcygpO1xuICAgIGNvbnN0IHNlcmlhbGl6ZWQgPSBuZXcgVWludDhBcnJheShUWVBFX1RBRy5sZW5ndGggKyBkYXRhQnl0ZXMubGVuZ3RoKTtcbiAgICBzZXJpYWxpemVkLnNldChUWVBFX1RBRyk7XG4gICAgc2VyaWFsaXplZC5zZXQoZGF0YUJ5dGVzLCBUWVBFX1RBRy5sZW5ndGgpO1xuICAgIGlmICh0aGlzLl9zaWduYXR1cmUgIT09IHVuZGVmaW5lZCkge1xuICAgICAgdGhpcy5zZXJpYWxpemVTaWduZWRUeCh0aGlzLl9zaWduYXR1cmUucHVibGljS2V5LCB0aGlzLl9zaWduYXR1cmUuc2lnbmF0dXJlKTtcbiAgICB9XG4gICAgcmV0dXJuIEJ1ZmZlci5mcm9tKHNlcmlhbGl6ZWQpLnRvU3RyaW5nKCdoZXgnKTtcbiAgfVxuXG4gIHN0YXRpYyBkZXNlcmlhbGl6ZVN1aVRyYW5zYWN0aW9uKHNlcmlhbGl6ZWRIZXg6IHN0cmluZyk6IFN1aVRyYW5zYWN0aW9uIHtcbiAgICBjb25zdCBkYXRhID0gQnVmZmVyLmZyb20oc2VyaWFsaXplZEhleCwgJ2hleCcpO1xuICAgIGNvbnN0IHRyaW1tZWREYXRhID0gbmV3IFVpbnQ4QXJyYXkoZGF0YS5zdWJhcnJheShUWVBFX1RBRy5sZW5ndGgpKTtcbiAgICBjb25zdCBrID0gYmNzLmRlKCdUcmFuc2FjdGlvbkRhdGEnLCB0cmltbWVkRGF0YSk7XG4gICAgdGhpcy51cGRhdGVQcm9wZXJUcmFuc2FjdGlvbkRhdGEoayk7XG5cbiAgICByZXR1cm4ge1xuICAgICAgc2VuZGVyOiBrLnNlbmRlcixcbiAgICAgIHBheVR4OiBrLmtpbmQuU2luZ2xlLlBheSxcbiAgICAgIGdhc0J1ZGdldDogay5nYXNCdWRnZXQudG9OdW1iZXIoKSxcbiAgICAgIGdhc1ByaWNlOiBrLmdhc1ByaWNlLnRvTnVtYmVyKCksXG4gICAgICBnYXNQYXltZW50OiBrLmdhc1BheW1lbnQsXG4gICAgfTtcbiAgfVxuXG4gIHN0YXRpYyB1cGRhdGVQcm9wZXJUcmFuc2FjdGlvbkRhdGEoazogYW55KTogdm9pZCB7XG4gICAgLy8gYmNzIGRlc2VyaWFsaXplZCBudW1iZXIgaW50byBCaWcgTnVtYmVyIGFuZCByZW1vdmVkICcweCcgcHJlZml4IGZyb20gYWRkcmVzc2VzLCBuZWVkcyB0byBjb252ZXJ0IHRoZW0gYmFja1xuICAgIGsua2luZC5TaW5nbGUuUGF5LmFtb3VudHMgPSBrLmtpbmQuU2luZ2xlLlBheS5hbW91bnRzLm1hcCgoYW1vdW50KSA9PiBhbW91bnQudG9OdW1iZXIoKSk7XG4gICAgay5raW5kLlNpbmdsZS5QYXkuY29pbnMgPSBrLmtpbmQuU2luZ2xlLlBheS5jb2lucy5tYXAoKGNvaW4pOiBTdWlPYmplY3RSZWYgPT4ge1xuICAgICAgcmV0dXJuIHtcbiAgICAgICAgb2JqZWN0SWQ6IHV0aWxzLm5vcm1hbGl6ZUhleElkKGNvaW4ub2JqZWN0SWQpLFxuICAgICAgICB2ZXJzaW9uOiBjb2luLnZlcnNpb24udG9OdW1iZXIoKSxcbiAgICAgICAgZGlnZXN0OiBjb2luLmRpZ2VzdCxcbiAgICAgIH07XG4gICAgfSk7XG4gICAgay5raW5kLlNpbmdsZS5QYXkucmVjaXBpZW50cyA9IGsua2luZC5TaW5nbGUuUGF5LnJlY2lwaWVudHMubWFwKChyZWNpcGllbnQpID0+IHV0aWxzLm5vcm1hbGl6ZUhleElkKHJlY2lwaWVudCkpO1xuICAgIGsuZ2FzUGF5bWVudC5vYmplY3RJZCA9IHV0aWxzLm5vcm1hbGl6ZUhleElkKGsuZ2FzUGF5bWVudC5vYmplY3RJZCk7XG4gICAgay5nYXNQYXltZW50LnZlcnNpb24gPSBrLmdhc1BheW1lbnQudmVyc2lvbi50b051bWJlcigpO1xuICAgIGsuc2VuZGVyID0gdXRpbHMubm9ybWFsaXplSGV4SWQoay5zZW5kZXIpO1xuICB9XG5cbiAgLyoqXG4gICAqIFJldHVybnMgYSBjb21wbGV0ZSBleHBsYW5hdGlvbiBmb3IgYSB0cmFuc2ZlciB0cmFuc2FjdGlvblxuICAgKiBAcGFyYW0ge1R4RGF0YX0ganNvbiBUaGUgdHJhbnNhY3Rpb24gZGF0YSBpbiBqc29uIGZvcm1hdFxuICAgKiBAcGFyYW0ge1RyYW5zYWN0aW9uRXhwbGFuYXRpb259IGV4cGxhbmF0aW9uUmVzdWx0IFRoZSB0cmFuc2FjdGlvbiBleHBsYW5hdGlvbiB0byBiZSBjb21wbGV0ZWRcbiAgICogQHJldHVybnMge1RyYW5zYWN0aW9uRXhwbGFuYXRpb259XG4gICAqL1xuICBleHBsYWluVHJhbnNmZXJUcmFuc2FjdGlvbihqc29uOiBUeERhdGEsIGV4cGxhbmF0aW9uUmVzdWx0OiBUcmFuc2FjdGlvbkV4cGxhbmF0aW9uKTogVHJhbnNhY3Rpb25FeHBsYW5hdGlvbiB7XG4gICAgY29uc3QgcmVjaXBpZW50cyA9IHRoaXMuc3VpVHJhbnNhY3Rpb24ucGF5VHgucmVjaXBpZW50cztcbiAgICBjb25zdCBhbW91bnRzID0gdGhpcy5zdWlUcmFuc2FjdGlvbi5wYXlUeC5hbW91bnRzO1xuXG4gICAgY29uc3Qgb3V0cHV0czogVHJhbnNhY3Rpb25SZWNpcGllbnRbXSA9IHJlY2lwaWVudHMubWFwKChyZWNpcGllbnQsIGluZGV4KSA9PiAoe1xuICAgICAgYWRkcmVzczogcmVjaXBpZW50LFxuICAgICAgYW1vdW50OiBhbW91bnRzW2luZGV4XS50b1N0cmluZygpLFxuICAgIH0pKTtcbiAgICBjb25zdCBvdXRwdXRBbW91bnQgPSBhbW91bnRzLnJlZHVjZSgoYWNjdW11bGF0b3IsIGN1cnJlbnQpID0+IGFjY3VtdWxhdG9yICsgY3VycmVudCwgMCk7XG5cbiAgICByZXR1cm4ge1xuICAgICAgLi4uZXhwbGFuYXRpb25SZXN1bHQsXG4gICAgICBvdXRwdXRBbW91bnQsXG4gICAgICBvdXRwdXRzLFxuICAgIH07XG4gIH1cbn1cbiJdfQ==
|
|
339
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHJhbnNhY3Rpb24uanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvbGliL3RyYW5zYWN0aW9uLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7QUFBQSxtREFVOEI7QUFHOUIsb0RBQTRCO0FBQzVCLCtCQUE0QjtBQUM1Qiw4Q0FBZ0M7QUFDaEMsMkNBQTRGO0FBQzVGLG1DQUFnQztBQUVoQyxNQUFhLFdBQVksU0FBUSwwQkFBZTtJQUk5QyxZQUFZLFdBQWlDO1FBQzNDLEtBQUssQ0FBQyxXQUFXLENBQUMsQ0FBQztJQUNyQixDQUFDO0lBRUQsSUFBSSxjQUFjO1FBQ2hCLE9BQU8sSUFBSSxDQUFDLGVBQWUsQ0FBQztJQUM5QixDQUFDO0lBRUQsaUJBQWlCLENBQUMsRUFBa0I7UUFDbEMsSUFBSSxDQUFDLGVBQWUsR0FBRyxFQUFFLENBQUM7SUFDNUIsQ0FBQztJQUVELG1CQUFtQjtJQUNuQixJQUFJLEVBQUU7UUFDSixPQUFPLElBQUksQ0FBQyxHQUFHLElBQUksNEJBQWdCLENBQUM7SUFDdEMsQ0FBQztJQUVELFlBQVksQ0FBQyxTQUF3QixFQUFFLFNBQWlCO1FBQ3RELElBQUksQ0FBQyxXQUFXLENBQUMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxRQUFRLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQztRQUNqRCxJQUFJLENBQUMsVUFBVSxHQUFHLEVBQUUsU0FBUyxFQUFFLFNBQVMsRUFBRSxDQUFDO1FBQzNDLElBQUksQ0FBQyxTQUFTLEVBQUUsQ0FBQztJQUNuQixDQUFDO0lBRUQsSUFBSSxZQUFZO1FBQ2QsT0FBTyxJQUFJLENBQUMsVUFBVSxDQUFDO0lBQ3pCLENBQUM7SUFFRCxhQUFhO1FBQ1gsT0FBTyxJQUFJLENBQUMsY0FBYyxDQUFDLEtBQUssQ0FBQyxLQUFLLENBQUM7SUFDekMsQ0FBQztJQUVELGtCQUFrQjtJQUNsQixPQUFPLENBQUMsR0FBWTtRQUNsQixPQUFPLElBQUks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LFVBQVUsR0FBRyxVQUFVLENBQUMsR0FBRyxDQUFDLENBQUMsU0FBUyxFQUFFLEVBQUUsQ0FBQyxlQUFLLENBQUMsY0FBYyxDQUFDLFNBQVMsQ0FBQyxDQUFhLENBQUM7UUFDeEYsT0FBTyxHQUFHLE9BQU8sQ0FBQyxHQUFHLENBQUMsQ0FBQyxNQUFNLEVBQUUsRUFBRSxDQUFDLE1BQU0sQ0FBQyxRQUFRLEVBQUUsQ0FBYSxDQUFDO1FBRWpFLE9BQU8sRUFBRSxLQUFLLEVBQUUsVUFBVSxFQUFFLE9BQU8sRUFBRSxDQUFDO0lBQ3hDLENBQUM7SUFFRDs7Ozs7T0FLRztJQUNILDBCQUEwQixDQUFDLElBQVksRUFBRSxpQkFBeUM7UUFDaEYsTUFBTSxVQUFVLEdBQUcsSUFBSSxDQUFDLGNBQWMsQ0FBQyxLQUFLLENBQUMsVUFBVSxDQUFDO1FBQ3hELE1BQU0sT0FBTyxHQUFHLElBQUksQ0FBQyxjQUFjLENBQUMsS0FBSyxDQUFDLE9BQU8sQ0FBQztRQUVsRCxNQUFNLE9BQU8sR0FBMkIsVUFBVSxDQUFDLEdBQUcsQ0FBQyxDQUFDLFNBQVMsRUFBRSxLQUFLLEVBQUUsRUFBRSxDQUFDLENBQUM7WUFDNUUsT0FBTyxFQUFFLFNBQVM7WUFDbEIsTUFBTSxFQUFFLE9BQU8sQ0FBQyxLQUFLLENBQUMsQ0FBQyxRQUFRLEVBQUU7U0FDbEMsQ0FBQyxDQUFDLENBQUM7UUFDSixNQUFNLFlBQVksR0FBRyxPQUFPLENBQUMsTUFBTSxDQUFDLENBQUMsV0FBVyxFQUFFLE9BQU8sRUFBRSxFQUFFLENBQUMsV0FBVyxHQUFHLE9BQU8sRUFBRSxDQUFDLENBQUMsQ0FBQztRQUV4RixPQUFPO1lBQ0wsR0FBRyxpQkFBaUI7WUFDcEIsWUFBWTtZQUNaLE9BQU87U0FDUixDQUFDO0lBQ0osQ0FBQztDQUNGO0FBMVZELGtDQTBWQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XG4gIEJhc2VLZXksXG4gIEJhc2VUcmFuc2FjdGlvbixcbiAgRW50cnksXG4gIEludmFsaWRUcmFuc2FjdGlvbkVycm9yLFxuICBQYXJzZVRyYW5zYWN0aW9uRXJyb3IsXG4gIFB1YmxpY0tleSBhcyBCYXNlUHVibGljS2V5LFxuICBTaWduYXR1cmUsXG4gIFRyYW5zYWN0aW9uUmVjaXBpZW50LFxuICBUcmFuc2FjdGlvblR5cGUsXG59IGZyb20gJ0BiaXRnby1iZXRhL3Nkay1jb3JlJztcbmltcG9ydCB7IFN1aU9iamVjdFJlZiwgU3VpVHJhbnNhY3Rpb24sIFRyYW5zYWN0aW9uRXhwbGFuYXRpb24sIFR4RGF0YSwgVHhEZXRhaWxzIH0gZnJvbSAnLi9pZmFjZSc7XG5pbXBvcnQgeyBCYXNlQ29pbiBhcyBDb2luQ29uZmlnIH0gZnJvbSAnQGJpdGdvLWJldGEvc3RhdGljcyc7XG5pbXBvcnQgdXRpbHMgZnJvbSAnLi91dGlscyc7XG5pbXBvcnQgeyBiY3MgfSBmcm9tICcuL2Jjcyc7XG5pbXBvcnQgKiBhcyBzaGEzIGZyb20gJ2pzLXNoYTMnO1xuaW1wb3J0IHsgU1VJX0dBU19QUklDRSwgU3VpVHJhbnNhY3Rpb25UeXBlLCBUWVBFX1RBRywgVU5BVkFJTEFCTEVfVEVYVCB9IGZyb20gJy4vY29uc3RhbnRzJztcbmltcG9ydCB7IEJ1ZmZlciB9IGZyb20gJ2J1ZmZlcic7XG5cbmV4cG9ydCBjbGFzcyBUcmFuc2FjdGlvbiBleHRlbmRzIEJhc2VUcmFuc2FjdGlvbiB7XG4gIHByaXZhdGUgX3N1aVRyYW5zYWN0aW9uOiBTdWlUcmFuc2FjdGlvbjtcbiAgcHJpdmF0ZSBfc2lnbmF0dXJlOiBTaWduYXR1cmU7XG5cbiAgY29uc3RydWN0b3IoX2NvaW5Db25maWc6IFJlYWRvbmx5PENvaW5Db25maWc+KSB7XG4gICAgc3VwZXIoX2NvaW5Db25maWcpO1xuICB9XG5cbiAgZ2V0IHN1aVRyYW5zYWN0aW9uKCk6IFN1aVRyYW5zYWN0aW9uIHtcbiAgICByZXR1cm4gdGhpcy5fc3VpVHJhbnNhY3Rpb247XG4gIH1cblxuICBzZXRTdWlUcmFuc2FjdGlvbih0eDogU3VpVHJhbnNhY3Rpb24pOiB2b2lkIHtcbiAgICB0aGlzLl9zdWlUcmFuc2FjdGlvbiA9IHR4O1xuICB9XG5cbiAgLyoqIEBpbmhlcml0RG9jICoqL1xuICBnZXQgaWQoKTogc3RyaW5nIHtcbiAgICByZXR1cm4gdGhpcy5faWQgfHwgVU5BVkFJTEFCTEVfVEVYVDtcbiAgfVxuXG4gIGFkZFNpZ25hdHVyZShwdWJsaWNLZXk6IEJhc2VQdWJsaWNLZXksIHNpZ25hdHVyZTogQnVmZmVyKTogdm9pZCB7XG4gICAgdGhpcy5fc2lnbmF0dXJlcy5wdXNoKHNpZ25hdHVyZS50b1N0cmluZygnaGV4JykpO1xuICAgIHRoaXMuX3NpZ25hdHVyZSA9IHsgcHVibGljS2V5LCBzaWduYXR1cmUgfTtcbiAgICB0aGlzLnNlcmlhbGl6ZSgpO1xuICB9XG5cbiAgZ2V0IHN1aVNpZ25hdHVyZSgpOiBTaWduYXR1cmUge1xuICAgIHJldHVybiB0aGlzLl9zaWduYXR1cmU7XG4gIH1cblxuICBnZXRJbnB1dENvaW5zKCk6IFN1aU9iamVjdFJlZltdIHtcbiAgICByZXR1cm4gdGhpcy5zdWlUcmFuc2FjdGlvbi5wYXlUeC5jb2lucztcbiAgfVxuXG4gIC8qKiBAaW5oZXJpdGRvYyAqL1xuICBjYW5TaWduKGtleTogQmFzZUtleSk6IGJvb2xlYW4ge1xuICAgIHJldHVybiB0cnVlO1xuICB9XG5cbiAgLyoqIEBpbmhlcml0ZG9jICovXG4gIHRvQnJvYWRjYXN0Rm9ybWF0KCk6IHN0cmluZyB7XG4gICAgaWYgKCF0aGlzLl9zdWlUcmFuc2FjdGlvbikge1xuICAgICAgdGhyb3cgbmV3IEludmFsaWRUcmFuc2FjdGlvbkVycm9yKCdFbXB0eSB0cmFuc2FjdGlvbicpO1xuICAgIH1cbiAgICByZXR1cm4gdGhpcy5zZXJpYWxpemUoKTtcbiAgfVxuXG4gIC8qKiBAaW5oZXJpdGRvYyAqL1xuICB0b0pzb24oKTogVHhEYXRhIHtcbiAgICBpZiAoIXRoaXMuX3N1aVRyYW5zYWN0aW9uKSB7XG4gICAgICB0aHJvdyBuZXcgUGFyc2VUcmFuc2FjdGlvbkVycm9yKCdFbXB0eSB0cmFuc2FjdGlvbicpO1xuICAgIH1cblxuICAgIGNvbnN0IHR4ID0gdGhpcy5fc3VpVHJhbnNhY3Rpb247XG4gICAgbGV0IHR4RGV0YWlsczogVHhEZXRhaWxzO1xuXG4gICAgc3dpdGNoICh0eC50eXBlKSB7XG4gICAgICBjYXNlIFN1aVRyYW5zYWN0aW9uVHlwZS5QYXk6XG4gICAgICAgIHR4RGV0YWlscyA9IHtcbiAgICAgICAgICBQYXk6IHtcbiAgICAgICAgICAgIGNvaW5zOiB0eC5wYXlUeC5jb2lucyxcbiAgICAgICAgICAgIHJlY2lwaWVudHM6IHR4LnBheVR4LnJlY2lwaWVudHMsXG4gICAgICAgICAgICBhbW91bnRzOiB0eC5wYXlUeC5hbW91bnRzLFxuICAgICAgICAgIH0sXG4gICAgICAgIH07XG4gICAgICAgIGJyZWFrO1xuICAgICAgY2FzZSBTdWlUcmFuc2FjdGlvblR5cGUuUGF5U3VpOlxuICAgICAgICB0eERldGFpbHMgPSB7XG4gICAgICAgICAgUGF5U3VpOiB7XG4gICAgICAgICAgICBjb2luczogdHgucGF5VHguY29pbnMsXG4gICAgICAgICAgICByZWNpcGllbnRzOiB0eC5wYXlUeC5yZWNpcGllbnRzLFxuICAgICAgICAgICAgYW1vdW50czogdHgucGF5VHguYW1vdW50cyxcbiAgICAgICAgICB9LFxuICAgICAgICB9O1xuICAgICAgICBicmVhaztcbiAgICAgIGNhc2UgU3VpVHJhbnNhY3Rpb25UeXBlLlBheUFsbFN1aTpcbiAgICAgICAgdHhEZXRhaWxzID0ge1xuICAgICAgICAgIFBheUFsbFN1aToge1xuICAgICAgICAgICAgY29pbnM6IHR4LnBheVR4LmNvaW5zLFxuICAgICAgICAgICAgcmVjaXBpZW50OiB0eC5wYXlUeC5yZWNpcGllbnRzWzBdLFxuICAgICAgICAgICAgYW1vdW50OiB0eC5wYXlUeC5hbW91bnRzWzBdLFxuICAgICAgICAgIH0sXG4gICAgICAgIH07XG4gICAgICAgIGJyZWFrO1xuICAgICAgZGVmYXVsdDpcbiAgICAgICAgdGhyb3cgbmV3IEludmFsaWRUcmFuc2FjdGlvbkVycm9yKCdTdWlUcmFuc2FjdGlvblR5cGUgbm90IHN1cHBvcnRlZCcpO1xuICAgIH1cblxuICAgIHJldHVybiB7XG4gICAgICBpZDogdGhpcy5faWQsXG4gICAgICBraW5kOiB7IFNpbmdsZTogdHhEZXRhaWxzIH0sXG4gICAgICBzZW5kZXI6IHR4LnNlbmRlcixcbiAgICAgIGdhc1BheW1lbnQ6IHR4Lmdhc1BheW1lbnQsXG4gICAgICBnYXNCdWRnZXQ6IHR4Lmdhc0J1ZGdldCxcbiAgICAgIGdhc1ByaWNlOiBTVUlfR0FTX1BSSUNFLFxuICAgIH07XG4gIH1cblxuICAvKiogQGluaGVyaXREb2MgKi9cbiAgZXhwbGFpblRyYW5zYWN0aW9uKCk6IFRyYW5zYWN0aW9uRXhwbGFuYXRpb24ge1xuICAgIGNvbnN0IHJlc3VsdCA9IHRoaXMudG9Kc29uKCk7XG4gICAgY29uc3QgZGlzcGxheU9yZGVyID0gWydpZCcsICdvdXRwdXRzJywgJ291dHB1dEFtb3VudCcsICdjaGFuZ2VPdXRwdXRzJywgJ2NoYW5nZUFtb3VudCcsICdmZWUnLCAndHlwZSddO1xuICAgIGNvbnN0IG91dHB1dHM6IFRyYW5zYWN0aW9uUmVjaXBpZW50W10gPSBbXTtcblxuICAgIGNvbnN0IGV4cGxhbmF0aW9uUmVzdWx0OiBUcmFuc2FjdGlvbkV4cGxhbmF0aW9uID0ge1xuICAgICAgZGlzcGxheU9yZGVyLFxuICAgICAgaWQ6IHRoaXMuaWQsXG4gICAgICBvdXRwdXRzLFxuICAgICAgb3V0cHV0QW1vdW50OiAnMCcsXG4gICAgICBjaGFuZ2VPdXRwdXRzOiBbXSxcbiAgICAgIGNoYW5nZUFtb3VudDogJzAnLFxuICAgICAgZmVlOiB7IGZlZTogdGhpcy5zdWlUcmFuc2FjdGlvbi5nYXNCdWRnZXQudG9TdHJpbmcoKSB9LFxuICAgICAgdHlwZTogdGhpcy50eXBlLFxuICAgIH07XG5cbiAgICBzd2l0Y2ggKHRoaXMudHlwZSkge1xuICAgICAgY2FzZSBUcmFuc2FjdGlvblR5cGUuU2VuZDpcbiAgICAgICAgcmV0dXJuIHRoaXMuZXhwbGFpblRyYW5zZmVyVHJhbnNhY3Rpb24ocmVzdWx0LCBleHBsYW5hdGlvblJlc3VsdCk7XG4gICAgICBkZWZhdWx0OlxuICAgICAgICB0aHJvdyBuZXcgSW52YWxpZFRyYW5zYWN0aW9uRXJyb3IoJ1RyYW5zYWN0aW9uIHR5cGUgbm90IHN1cHBvcnRlZCcpO1xuICAgIH1cbiAgfVxuXG4gIC8qKlxuICAgKiBTZXQgdGhlIHRyYW5zYWN0aW9uIHR5cGUuXG4gICAqXG4gICAqIEBwYXJhbSB7VHJhbnNhY3Rpb25UeXBlfSB0cmFuc2FjdGlvblR5cGUgVGhlIHRyYW5zYWN0aW9uIHR5cGUgdG8gYmUgc2V0LlxuICAgKi9cbiAgdHJhbnNhY3Rpb25UeXBlKHRyYW5zYWN0aW9uVHlwZTogVHJhbnNhY3Rpb25UeXBlKTogdm9pZCB7XG4gICAgdGhpcy5fdHlwZSA9IHRyYW5zYWN0aW9uVHlwZTtcbiAgfVxuXG4gIC8qKlxuICAgKiBMb2FkIHRoZSBpbnB1dCBhbmQgb3V0cHV0IGRhdGEgb24gdGhpcyB0cmFuc2FjdGlvbi5cbiAgICovXG4gIGxvYWRJbnB1dHNBbmRPdXRwdXRzKCk6IHZvaWQge1xuICAgIGlmICghdGhpcy5zdWlUcmFuc2FjdGlvbikge1xuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIGNvbnN0IHR4ID0gdGhpcy5zdWlUcmFuc2FjdGlvbjtcbiAgICBjb25zdCBwYXlUeCA9IHR4LnBheVR4O1xuICAgIGNvbnN0IHJlY2lwaWVudHMgPSBwYXlUeC5yZWNpcGllbnRzO1xuICAgIGNvbnN0IGFtb3VudHMgPSBwYXlUeC5hbW91bnRzO1xuICAgIGlmIChyZWNpcGllbnRzLmxlbmd0aCAhPT0gYW1vdW50cy5sZW5ndGgpIHtcbiAgICAgIHRocm93IG5ldyBFcnJvcihcbiAgICAgICAgYFRoZSBsZW5ndGggb2YgcmVjaXBpZW50cyAke3JlY2lwaWVudHMubGVuZ3RofSBkb2VzIG5vdCBlcXVhbCB0byB0aGUgbGVuZ3RoIG9mIGFtb3VudHMgJHthbW91bnRzLmxlbmd0aH1gXG4gICAgICApO1xuICAgIH1cblxuICAgIGNvbnN0IG91dHB1dHM6IEVudHJ5W10gPSByZWNpcGllbnRzLm1hcCgocmVjaXBpZW50LCBpbmRleCkgPT4gKHtcbiAgICAgIGFkZHJlc3M6IHJlY2lwaWVudCxcbiAgICAgIHZhbHVlOiBhbW91bnRzW2luZGV4XS50b1N0cmluZygpLFxuICAgICAgY29pbjogdGhpcy5fY29pbkNvbmZpZy5uYW1lLFxuICAgIH0pKTtcblxuICAgIGNvbnN0IHRvdGFsQW1vdW50ID0gYW1vdW50cy5yZWR1Y2UoKGFjY3VtdWxhdG9yLCBjdXJyZW50KSA9PiBhY2N1bXVsYXRvciArIGN1cnJlbnQsIDApO1xuICAgIHRoaXMuX2lucHV0cyA9IFtcbiAgICAgIHtcbiAgICAgICAgYWRkcmVzczogdHguc2VuZGVyLFxuICAgICAgICB2YWx1ZTogdG90YWxBbW91bnQudG9TdHJpbmcoKSxcbiAgICAgICAgY29pbjogdGhpcy5fY29pbkNvbmZpZy5uYW1lLFxuICAgICAgfSxcbiAgICBdO1xuICAgIHRoaXMuX291dHB1dHMgPSBvdXRwdXRzO1xuICB9XG5cbiAgLyoqXG4gICAqIFNldHMgdGhpcyB0cmFuc2FjdGlvbiBwYXlsb2FkXG4gICAqXG4gICAqIEBwYXJhbSByYXdUcmFuc2FjdGlvblxuICAgKi9cbiAgZnJvbVJhd1RyYW5zYWN0aW9uKHJhd1RyYW5zYWN0aW9uOiBzdHJpbmcpOiB2b2lkIHtcbiAgICB0cnkge1xuICAgICAgdXRpbHMuaXNWYWxpZFJhd1RyYW5zYWN0aW9uKHJhd1RyYW5zYWN0aW9uKTtcbiAgICAgIHRoaXMuX3N1aVRyYW5zYWN0aW9uID0gVHJhbnNhY3Rpb24uZGVzZXJpYWxpemVTdWlUcmFuc2FjdGlvbihyYXdUcmFuc2FjdGlvbik7XG4gICAgICB0aGlzLl90eXBlID0gVHJhbnNhY3Rpb25UeXBlLlNlbmQ7XG4gICAgICB0aGlzLmxvYWRJbnB1dHNBbmRPdXRwdXRzKCk7XG4gICAgfSBjYXRjaCAoZSkge1xuICAgICAgdGhyb3cgZTtcbiAgICB9XG4gIH1cblxuICAvKipcbiAgICogSGVscGVyIGZ1bmN0aW9uIGZvciBzZXJpYWxpemUoKSB0byBnZXQgdGhlIGNvcnJlY3QgdHhEYXRhIHdpdGggdHJhbnNhY3Rpb24gdHlwZVxuICAgKi9cbiAgcHJpdmF0ZSBnZXRUeERhdGEoKTogVHhEYXRhIHtcbiAgICBjb25zdCBzdWlUeCA9IHRoaXMuX3N1aVRyYW5zYWN0aW9uO1xuICAgIGxldCB0eDogVHhEZXRhaWxzO1xuXG4gICAgc3dpdGNoIChzdWlUeC50eXBlKSB7XG4gICAgICBjYXNlIFN1aVRyYW5zYWN0aW9uVHlwZS5QYXk6XG4gICAgICAgIHR4ID0ge1xuICAgICAgICAgIFBheToge1xuICAgICAgICAgICAgY29pbnM6IHN1aVR4LnBheVR4LmNvaW5zLFxuICAgICAgICAgICAgcmVjaXBpZW50czogc3VpVHgucGF5VHgucmVjaXBpZW50cyxcbiAgICAgICAgICAgIGFtb3VudHM6IHN1aVR4LnBheVR4LmFtb3VudHMsXG4gICAgICAgICAgfSxcbiAgICAgICAgfTtcbiAgICAgICAgYnJlYWs7XG4gICAgICBjYXNlIFN1aVRyYW5zYWN0aW9uVHlwZS5QYXlTdWk6XG4gICAgICAgIHR4ID0ge1xuICAgICAgICAgIFBheVN1aToge1xuICAgICAgICAgICAgY29pbnM6IHN1aVR4LnBheVR4LmNvaW5zLFxuICAgICAgICAgICAgcmVjaXBpZW50czogc3VpVHgucGF5VHgucmVjaXBpZW50cyxcbiAgICAgICAgICAgIGFtb3VudHM6IHN1aVR4LnBheVR4LmFtb3VudHMsXG4gICAgICAgICAgfSxcbiAgICAgICAgfTtcbiAgICAgICAgYnJlYWs7XG4gICAgICBjYXNlIFN1aVRyYW5zYWN0aW9uVHlwZS5QYXlBbGxTdWk6XG4gICAgICAgIHR4ID0ge1xuICAgICAgICAgIFBheUFsbFN1aToge1xuICAgICAgICAgICAgY29pbnM6IHN1aVR4LnBheVR4LmNvaW5zLFxuICAgICAgICAgICAgcmVjaXBpZW50OiBzdWlUeC5wYXlUeC5yZWNpcGllbnRzWzBdLFxuICAgICAgICAgICAgYW1vdW50OiBzdWlUeC5wYXlUeC5hbW91bnRzWzBdLFxuICAgICAgICAgIH0sXG4gICAgICAgIH07XG4gICAgICAgIGJyZWFrO1xuICAgICAgZGVmYXVsdDpcbiAgICAgICAgdGhyb3cgbmV3IEludmFsaWRUcmFuc2FjdGlvbkVycm9yKCdTdWlUcmFuc2FjdGlvblR5cGUgbm90IHN1cHBvcnRlZCcpO1xuICAgIH1cblxuICAgIHJldHVybiB7XG4gICAgICBraW5kOiB7IFNpbmdsZTogdHggfSxcbiAgICAgIGdhc1BheW1lbnQ6IHN1aVR4Lmdhc1BheW1lbnQsXG4gICAgICBnYXNQcmljZTogU1VJX0dBU19QUklDRSxcbiAgICAgIGdhc0J1ZGdldDogc3VpVHguZ2FzQnVkZ2V0LFxuICAgICAgc2VuZGVyOiBzdWlUeC5zZW5kZXIsXG4gICAgfTtcbiAgfVxuXG4gIHNlcmlhbGl6ZSgpOiBzdHJpbmcge1xuICAgIGNvbnN0IHR4RGF0YSA9IHRoaXMuZ2V0VHhEYXRhKCk7XG5cbiAgICBjb25zdCBkYXRhQnl0ZXMgPSBiY3Muc2VyKCdUcmFuc2FjdGlvbkRhdGEnLCB0eERhdGEpLnRvQnl0ZXMoKTtcbiAgICBjb25zdCBzZXJpYWxpemVkID0gbmV3IFVpbnQ4QXJyYXkoVFlQRV9UQUcubGVuZ3RoICsgZGF0YUJ5dGVzLmxlbmd0aCk7XG4gICAgc2VyaWFsaXplZC5zZXQoVFlQRV9UQUcpO1xuICAgIHNlcmlhbGl6ZWQuc2V0KGRhdGFCeXRlcywgVFlQRV9UQUcubGVuZ3RoKTtcbiAgICBpZiAodGhpcy5fc2lnbmF0dXJlICE9PSB1bmRlZmluZWQpIHtcbiAgICAgIHRoaXMuX2lkID0gQnVmZmVyLmZyb20oc2hhMy5zaGEzXzI1NihzZXJpYWxpemVkKSwgJ2hleCcpLnRvU3RyaW5nKCdiYXNlNjQnKTtcbiAgICB9XG4gICAgcmV0dXJuIEJ1ZmZlci5mcm9tKHNlcmlhbGl6ZWQpLnRvU3RyaW5nKCdiYXNlNjQnKTtcbiAgfVxuXG4gIHN0YXRpYyBkZXNlcmlhbGl6ZVN1aVRyYW5zYWN0aW9uKHNlcmlhbGl6ZWRUeDogc3RyaW5nKTogU3VpVHJhbnNhY3Rpb24ge1xuICAgIGNvbnN0IGRhdGEgPSBCdWZmZXIuZnJvbShzZXJpYWxpemVkVHgsICdiYXNlNjQnKTtcbiAgICBjb25zdCB0cmltbWVkRGF0YSA9IG5ldyBVaW50OEFycmF5KGRhdGEuc3ViYXJyYXkoVFlQRV9UQUcubGVuZ3RoKSk7XG4gICAgY29uc3QgayA9IGJjcy5kZSgnVHJhbnNhY3Rpb25EYXRhJywgdHJpbW1lZERhdGEpO1xuXG4gICAgbGV0IHR5cGU6IFN1aVRyYW5zYWN0aW9uVHlwZTtcbiAgICBjb25zdCB0eERldGFpbHM6IFR4RGV0YWlscyA9IGsua2luZC5TaW5nbGU7XG4gICAgaWYgKHR4RGV0YWlscy5oYXNPd25Qcm9wZXJ0eSgnUGF5JykpIHtcbiAgICAgIHR5cGUgPSBTdWlUcmFuc2FjdGlvblR5cGUuUGF5O1xuICAgIH0gZWxzZSBpZiAodHhEZXRhaWxzLmhhc093blByb3BlcnR5KCdQYXlTdWknKSkge1xuICAgICAgdHlwZSA9IFN1aVRyYW5zYWN0aW9uVHlwZS5QYXlTdWk7XG4gICAgfSBlbHNlIGlmICh0eERldGFpbHMuaGFzT3duUHJvcGVydHkoJ1BheUFsbFN1aScpKSB7XG4gICAgICB0eXBlID0gU3VpVHJhbnNhY3Rpb25UeXBlLlBheUFsbFN1aTtcbiAgICB9IGVsc2Uge1xuICAgICAgdGhyb3cgbmV3IEVycm9yKCdUcmFuc2FjdGlvbiB0eXBlIG5vdCBzdXBwb3J0ZWQ6ICcgKyB0eERldGFpbHMpO1xuICAgIH1cblxuICAgIGNvbnN0IHsgY29pbnMsIHJlY2lwaWVudHMsIGFtb3VudHMgfSA9IHRoaXMuZ2V0UHJvcGVyVHhEZXRhaWxzKGssIHR5cGUpO1xuXG4gICAgcmV0dXJuIHtcbiAgICAgIHR5cGUsXG4gICAgICBzZW5kZXI6IHV0aWxzLm5vcm1hbGl6ZUhleElkKGsuc2VuZGVyKSxcbiAgICAgIHBheVR4OiB7XG4gICAgICAgIGNvaW5zLFxuICAgICAgICByZWNpcGllbnRzLFxuICAgICAgICBhbW91bnRzLFxuICAgICAgfSxcbiAgICAgIGdhc0J1ZGdldDogay5nYXNCdWRnZXQudG9OdW1iZXIoKSxcbiAgICAgIGdhc1ByaWNlOiBrLmdhc1ByaWNlLnRvTnVtYmVyKCksXG4gICAgICBnYXNQYXltZW50OiB7XG4gICAgICAgIG9iamVjdElkOiB1dGlscy5ub3JtYWxpemVIZXhJZChrLmdhc1BheW1lbnQub2JqZWN0SWQpLFxuICAgICAgICB2ZXJzaW9uOiBrLmdhc1BheW1lbnQudmVyc2lvbi50b051bWJlcigpLFxuICAgICAgICBkaWdlc3Q6IGsuZ2FzUGF5bWVudC5kaWdlc3QsXG4gICAgICB9LFxuICAgIH07XG4gIH1cblxuICBzdGF0aWMgZ2V0UHJvcGVyVHhEZXRhaWxzKFxuICAgIGs6IGFueSxcbiAgICB0eXBlOiBTdWlUcmFuc2FjdGlvblR5cGVcbiAgKTogeyBjb2luczogU3VpT2JqZWN0UmVmW107IHJlY2lwaWVudHM6IHN0cmluZ1tdOyBhbW91bnRzOiBudW1iZXJbXSB9IHtcbiAgICAvLyBiY3MgZGVzZXJpYWxpemVkIG51bWJlciBpbnRvIEJpZyBOdW1iZXIgYW5kIHJlbW92ZWQgJzB4JyBwcmVmaXggZnJvbSBhZGRyZXNzZXMsIG5lZWRzIHRvIGNvbnZlcnQgdGhlbSBiYWNrXG4gICAgbGV0IGNvaW5zO1xuICAgIGxldCByZWNpcGllbnRzO1xuICAgIGxldCBhbW91bnRzO1xuXG4gICAgc3dpdGNoICh0eXBlKSB7XG4gICAgICBjYXNlIFN1aVRyYW5zYWN0aW9uVHlwZS5QYXk6XG4gICAgICAgIGNvaW5zID0gay5raW5kLlNpbmdsZS5QYXkuY29pbnM7XG4gICAgICAgIHJlY2lwaWVudHMgPSBrLmtpbmQuU2luZ2xlLlBheS5yZWNpcGllbnRzO1xuICAgICAgICBhbW91bnRzID0gay5raW5kLlNpbmdsZS5QYXkuYW1vdW50cztcbiAgICAgICAgYnJlYWs7XG4gICAgICBjYXNlIFN1aVRyYW5zYWN0aW9uVHlwZS5QYXlTdWk6XG4gICAgICAgIGNvaW5zID0gay5raW5kLlNpbmdsZS5QYXlTdWkuY29pbnM7XG4gICAgICAgIHJlY2lwaWVudHMgPSBrLmtpbmQuU2luZ2xlLlBheVN1aS5yZWNpcGllbnRzO1xuICAgICAgICBhbW91bnRzID0gay5raW5kLlNpbmdsZS5QYXlTdWkuYW1vdW50cztcbiAgICAgICAgYnJlYWs7XG4gICAgICBjYXNlIFN1aVRyYW5zYWN0aW9uVHlwZS5QYXlBbGxTdWk6XG4gICAgICAgIGNvaW5zID0gay5raW5kLlNpbmdsZS5QYXlBbGxTdWkuY29pbnM7XG4gICAgICAgIHJlY2lwaWVudHMgPSBbay5raW5kLlNpbmdsZS5QYXlBbGxTdWkucmVjaXBpZW50XTtcbiAgICAgICAgYW1vdW50cyA9IFtrLmtpbmQuU2luZ2xlLlBheUFsbFN1aS5hbW91bnRdO1xuICAgICAgICBicmVhaztcbiAgICAgIGRlZmF1bHQ6XG4gICAgICAgIHRocm93IG5ldyBJbnZhbGlkVHJhbnNhY3Rpb25FcnJvcignU3VpVHJhbnNhY3Rpb25UeXBlIG5vdCBzdXBwb3J0ZWQnKTtcbiAgICB9XG5cbiAgICBjb2lucyA9IGNvaW5zLm1hcCgoY29pbik6IFN1aU9iamVjdFJlZiA9PiB7XG4gICAgICByZXR1cm4ge1xuICAgICAgICBvYmplY3RJZDogdXRpbHMubm9ybWFsaXplSGV4SWQoY29pbi5vYmplY3RJZCksXG4gICAgICAgIHZlcnNpb246IGNvaW4udmVyc2lvbi50b051bWJlcigpLFxuICAgICAgICBkaWdlc3Q6IGNvaW4uZGlnZXN0LFxuICAgICAgfTtcbiAgICB9KSBhcyBTdWlPYmplY3RSZWZbXTtcbiAgICByZWNpcGllbnRzID0gcmVjaXBpZW50cy5tYXAoKHJlY2lwaWVudCkgPT4gdXRpbHMubm9ybWFsaXplSGV4SWQocmVjaXBpZW50KSkgYXMgc3RyaW5nW107XG4gICAgYW1vdW50cyA9IGFtb3VudHMubWFwKChhbW91bnQpID0+IGFtb3VudC50b051bWJlcigpKSBhcyBudW1iZXJbXTtcblxuICAgIHJldHVybiB7IGNvaW5zLCByZWNpcGllbnRzLCBhbW91bnRzIH07XG4gIH1cblxuICAvKipcbiAgICogUmV0dXJucyBhIGNvbXBsZXRlIGV4cGxhbmF0aW9uIGZvciBhIHRyYW5zZmVyIHRyYW5zYWN0aW9uXG4gICAqIEBwYXJhbSB7VHhEYXRhfSBqc29uIFRoZSB0cmFuc2FjdGlvbiBkYXRhIGluIGpzb24gZm9ybWF0XG4gICAqIEBwYXJhbSB7VHJhbnNhY3Rpb25FeHBsYW5hdGlvbn0gZXhwbGFuYXRpb25SZXN1bHQgVGhlIHRyYW5zYWN0aW9uIGV4cGxhbmF0aW9uIHRvIGJlIGNvbXBsZXRlZFxuICAgKiBAcmV0dXJucyB7VHJhbnNhY3Rpb25FeHBsYW5hdGlvbn1cbiAgICovXG4gIGV4cGxhaW5UcmFuc2ZlclRyYW5zYWN0aW9uKGpzb246IFR4RGF0YSwgZXhwbGFuYXRpb25SZXN1bHQ6IFRyYW5zYWN0aW9uRXhwbGFuYXRpb24pOiBUcmFuc2FjdGlvbkV4cGxhbmF0aW9uIHtcbiAgICBjb25zdCByZWNpcGllbnRzID0gdGhpcy5zdWlUcmFuc2FjdGlvbi5wYXlUeC5yZWNpcGllbnRzO1xuICAgIGNvbnN0IGFtb3VudHMgPSB0aGlzLnN1aVRyYW5zYWN0aW9uLnBheVR4LmFtb3VudHM7XG5cbiAgICBjb25zdCBvdXRwdXRzOiBUcmFuc2FjdGlvblJlY2lwaWVudFtdID0gcmVjaXBpZW50cy5tYXAoKHJlY2lwaWVudCwgaW5kZXgpID0+ICh7XG4gICAgICBhZGRyZXNzOiByZWNpcGllbnQsXG4gICAgICBhbW91bnQ6IGFtb3VudHNbaW5kZXhdLnRvU3RyaW5nKCksXG4gICAgfSkpO1xuICAgIGNvbnN0IG91dHB1dEFtb3VudCA9IGFtb3VudHMucmVkdWNlKChhY2N1bXVsYXRvciwgY3VycmVudCkgPT4gYWNjdW11bGF0b3IgKyBjdXJyZW50LCAwKTtcblxuICAgIHJldHVybiB7XG4gICAgICAuLi5leHBsYW5hdGlvblJlc3VsdCxcbiAgICAgIG91dHB1dEFtb3VudCxcbiAgICAgIG91dHB1dHMsXG4gICAgfTtcbiAgfVxufVxuIl19
|
|
@@ -1,13 +1,14 @@
|
|
|
1
1
|
/// <reference types="node" />
|
|
2
2
|
import { BaseAddress, BaseKey, BaseTransactionBuilder, PublicKey as BasePublicKey, TransactionType } from '@bitgo-beta/sdk-core';
|
|
3
|
-
import {
|
|
3
|
+
import { Transaction } from './transaction';
|
|
4
4
|
import BigNumber from 'bignumber.js';
|
|
5
5
|
import { BaseCoin as CoinConfig } from '@bitgo-beta/statics';
|
|
6
|
-
import { PayTx } from './iface';
|
|
7
|
-
|
|
6
|
+
import { PayTx, SuiObjectRef, SuiTransaction } from './iface';
|
|
7
|
+
import { SuiTransactionType } from './constants';
|
|
8
8
|
export declare abstract class TransactionBuilder extends BaseTransactionBuilder {
|
|
9
9
|
protected _transaction: Transaction;
|
|
10
10
|
private _signatures;
|
|
11
|
+
protected _type: SuiTransactionType;
|
|
11
12
|
protected _sender: string;
|
|
12
13
|
protected _gasBudget: number;
|
|
13
14
|
protected _gasPrice: number;
|
|
@@ -34,6 +35,7 @@ export declare abstract class TransactionBuilder extends BaseTransactionBuilder
|
|
|
34
35
|
* @returns {TransactionBuilder} This transaction builder
|
|
35
36
|
*/
|
|
36
37
|
sender(senderAddress: string): this;
|
|
38
|
+
type(type: SuiTransactionType): this;
|
|
37
39
|
gasBudget(gasBudget: number): this;
|
|
38
40
|
gasPrice(gasPrice: number): this;
|
|
39
41
|
payTx(payTx: PayTx): this;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"transactionBuilder.d.ts","sourceRoot":"","sources":["../../../src/lib/transactionBuilder.ts"],"names":[],"mappings":";AAAA,OAAO,EACL,WAAW,EACX,OAAO,EACP,sBAAsB,EAGtB,SAAS,IAAI,aAAa,EAE1B,eAAe,EAChB,MAAM,sBAAsB,CAAC;AAC9B,OAAO,EAAE,
|
|
1
|
+
{"version":3,"file":"transactionBuilder.d.ts","sourceRoot":"","sources":["../../../src/lib/transactionBuilder.ts"],"names":[],"mappings":"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"}
|
|
@@ -3,19 +3,17 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
|
3
3
|
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
4
4
|
};
|
|
5
5
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
|
-
exports.TransactionBuilder =
|
|
6
|
+
exports.TransactionBuilder = void 0;
|
|
7
7
|
const sdk_core_1 = require("@bitgo-beta/sdk-core");
|
|
8
8
|
const transaction_1 = require("./transaction");
|
|
9
9
|
const utils_1 = __importDefault(require("./utils"));
|
|
10
10
|
const assert_1 = __importDefault(require("assert"));
|
|
11
|
-
|
|
12
|
-
// https://github.com/MystenLabs/sui/blob/f32877f2e40d35a008710c232e49b57aab886462/crates/sui-types/src/messages.rs#L338
|
|
13
|
-
exports.SUI_GAS_PRICE = 1;
|
|
11
|
+
const constants_1 = require("./constants");
|
|
14
12
|
class TransactionBuilder extends sdk_core_1.BaseTransactionBuilder {
|
|
15
13
|
constructor(_coinConfig) {
|
|
16
14
|
super(_coinConfig);
|
|
17
15
|
this._signatures = [];
|
|
18
|
-
this._gasPrice =
|
|
16
|
+
this._gasPrice = constants_1.SUI_GAS_PRICE;
|
|
19
17
|
this._transaction = new transaction_1.Transaction(_coinConfig);
|
|
20
18
|
}
|
|
21
19
|
/** @inheritdoc */
|
|
@@ -47,6 +45,10 @@ class TransactionBuilder extends sdk_core_1.BaseTransactionBuilder {
|
|
|
47
45
|
this._sender = senderAddress;
|
|
48
46
|
return this;
|
|
49
47
|
}
|
|
48
|
+
type(type) {
|
|
49
|
+
this._type = type;
|
|
50
|
+
return this;
|
|
51
|
+
}
|
|
50
52
|
gasBudget(gasBudget) {
|
|
51
53
|
this.validateGasBudget(gasBudget);
|
|
52
54
|
this._gasBudget = gasBudget;
|
|
@@ -78,9 +80,41 @@ class TransactionBuilder extends sdk_core_1.BaseTransactionBuilder {
|
|
|
78
80
|
const txData = tx.toJson();
|
|
79
81
|
this.gasBudget(txData.gasBudget);
|
|
80
82
|
this.gasPrice(txData.gasPrice);
|
|
81
|
-
this.payTx(txData.payTx);
|
|
82
83
|
this.sender(txData.sender);
|
|
83
84
|
this.gasPayment(txData.gasPayment);
|
|
85
|
+
let payTx;
|
|
86
|
+
let txDetails = txData.kind.Single;
|
|
87
|
+
if (txDetails.hasOwnProperty('Pay')) {
|
|
88
|
+
this.type(constants_1.SuiTransactionType.Pay);
|
|
89
|
+
txDetails = txDetails;
|
|
90
|
+
payTx = {
|
|
91
|
+
coins: txDetails.Pay.coins,
|
|
92
|
+
recipients: txDetails.Pay.recipients,
|
|
93
|
+
amounts: txDetails.Pay.amounts,
|
|
94
|
+
};
|
|
95
|
+
}
|
|
96
|
+
else if (txDetails.hasOwnProperty('PaySui')) {
|
|
97
|
+
this.type(constants_1.SuiTransactionType.PaySui);
|
|
98
|
+
txDetails = txDetails;
|
|
99
|
+
payTx = {
|
|
100
|
+
coins: txDetails.PaySui.coins,
|
|
101
|
+
recipients: txDetails.PaySui.recipients,
|
|
102
|
+
amounts: txDetails.PaySui.amounts,
|
|
103
|
+
};
|
|
104
|
+
}
|
|
105
|
+
else if (txDetails.hasOwnProperty('PayAllSui')) {
|
|
106
|
+
this.type(constants_1.SuiTransactionType.PayAllSui);
|
|
107
|
+
txDetails = txDetails;
|
|
108
|
+
payTx = {
|
|
109
|
+
coins: txDetails.PayAllSui.coins,
|
|
110
|
+
recipients: [txDetails.PayAllSui.recipient],
|
|
111
|
+
amounts: [txDetails.PayAllSui.amount],
|
|
112
|
+
};
|
|
113
|
+
}
|
|
114
|
+
else {
|
|
115
|
+
throw new Error('Transaction type not supported: ' + txDetails);
|
|
116
|
+
}
|
|
117
|
+
this.payTx(payTx);
|
|
84
118
|
}
|
|
85
119
|
/** @inheritdoc */
|
|
86
120
|
fromImplementation(rawTransaction) {
|
|
@@ -98,12 +132,14 @@ class TransactionBuilder extends sdk_core_1.BaseTransactionBuilder {
|
|
|
98
132
|
return this.transaction;
|
|
99
133
|
}
|
|
100
134
|
buildSuiTransaction() {
|
|
135
|
+
assert_1.default(this._type, new sdk_core_1.BuildTransactionError('type is required before building'));
|
|
101
136
|
assert_1.default(this._sender, new sdk_core_1.BuildTransactionError('sender is required before building'));
|
|
102
137
|
assert_1.default(this._payTx, new sdk_core_1.BuildTransactionError('payTx is required before building'));
|
|
103
138
|
assert_1.default(this._gasBudget, new sdk_core_1.BuildTransactionError('gasBudget is required before building'));
|
|
104
139
|
assert_1.default(this._gasPrice, new sdk_core_1.BuildTransactionError('gasPrice is required before building'));
|
|
105
140
|
assert_1.default(this._gasPayment, new sdk_core_1.BuildTransactionError('gasPayment is required before building'));
|
|
106
141
|
return {
|
|
142
|
+
type: this._type,
|
|
107
143
|
sender: this._sender,
|
|
108
144
|
payTx: this._payTx,
|
|
109
145
|
gasBudget: this._gasBudget,
|
|
@@ -124,7 +160,7 @@ class TransactionBuilder extends sdk_core_1.BaseTransactionBuilder {
|
|
|
124
160
|
}
|
|
125
161
|
}
|
|
126
162
|
validateGasPrice(gasPrice) {
|
|
127
|
-
if (gasPrice !==
|
|
163
|
+
if (gasPrice !== constants_1.SUI_GAS_PRICE) {
|
|
128
164
|
throw new sdk_core_1.BuildTransactionError('Invalid gas price ' + gasPrice);
|
|
129
165
|
}
|
|
130
166
|
}
|
|
@@ -192,13 +228,16 @@ class TransactionBuilder extends sdk_core_1.BaseTransactionBuilder {
|
|
|
192
228
|
* Validates all fields are defined
|
|
193
229
|
*/
|
|
194
230
|
validateTransactionFields() {
|
|
231
|
+
if (this._type === undefined) {
|
|
232
|
+
throw new sdk_core_1.BuildTransactionError('Invalid transaction: missing type');
|
|
233
|
+
}
|
|
195
234
|
if (this._sender === undefined) {
|
|
196
235
|
throw new sdk_core_1.BuildTransactionError('Invalid transaction: missing sender');
|
|
197
236
|
}
|
|
198
237
|
if (this._gasBudget === undefined) {
|
|
199
238
|
throw new sdk_core_1.BuildTransactionError('Invalid transaction: missing gas budget');
|
|
200
239
|
}
|
|
201
|
-
if (this._gasPrice === undefined || this._gasPrice !==
|
|
240
|
+
if (this._gasPrice === undefined || this._gasPrice !== constants_1.SUI_GAS_PRICE) {
|
|
202
241
|
throw new sdk_core_1.BuildTransactionError('Invalid transaction: missing/incorrect gas price');
|
|
203
242
|
}
|
|
204
243
|
if (this._payTx === undefined) {
|
|
@@ -220,4 +259,4 @@ class TransactionBuilder extends sdk_core_1.BaseTransactionBuilder {
|
|
|
220
259
|
}
|
|
221
260
|
}
|
|
222
261
|
exports.TransactionBuilder = TransactionBuilder;
|
|
223
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHJhbnNhY3Rpb25CdWlsZGVyLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL2xpYi90cmFuc2FjdGlvbkJ1aWxkZXIudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7O0FBQUEsbURBUzhCO0FBQzlCLCtDQUEwRTtBQUMxRSxvREFBNEI7QUFJNUIsb0RBQTRCO0FBRTVCLDRCQUE0QjtBQUM1Qix3SEFBd0g7QUFDM0csUUFBQSxhQUFhLEdBQUcsQ0FBQyxDQUFDO0FBRS9CLE1BQXNCLGtCQUFtQixTQUFRLGlDQUFzQjtJQVVyRSxZQUFZLFdBQWlDO1FBQzNDLEtBQUssQ0FBQyxXQUFXLENBQUMsQ0FBQztRQVRiLGdCQUFXLEdBQWdCLEVBQUUsQ0FBQztRQUk1QixjQUFTLEdBQUcscUJBQWEsQ0FBQztRQU1sQyxJQUFJLENBQUMsWUFBWSxHQUFHLElBQUkseUJBQVcsQ0FBQyxXQUFXLENBQUMsQ0FBQztJQUNuRCxDQUFDO0lBUUQsa0JBQWtCO0lBQ2xCLElBQWMsV0FBVztRQUN2QixPQUFPLElBQUksQ0FBQyxZQUFZLENBQUM7SUFDM0IsQ0FBQztJQUVELGtCQUFrQjtJQUNsQixJQUFjLFdBQVcsQ0FBQyxXQUF3QjtRQUNoRCxJQUFJLENBQUMsWUFBWSxHQUFHLFdBQVcsQ0FBQztJQUNsQyxDQUFDO0lBRUQsa0JBQWtCO0lBQ1Isa0JBQWtCLENBQUMsR0FBWTtRQUN2QyxNQUFNLElBQUksS0FBSyxDQUFDLHlCQUF5QixDQUFDLENBQUM7SUFDN0MsQ0FBQztJQUVELGtCQUFrQjtJQUNsQixZQUFZLENBQUMsU0FBd0IsRUFBRSxTQUFpQjtRQUN0RCxJQUFJLENBQUMsV0FBVyxDQUFDLElBQUksQ0FBQyxFQUFFLFNBQVMsRUFBRSxTQUFTLEVBQUUsQ0FBQyxDQUFDO1FBQ2hELElBQUksQ0FBQyxXQUFXLENBQUMsWUFBWSxDQUFDLFNBQVMsRUFBRSxTQUFTLENBQUMsQ0FBQztJQUN0RCxDQUFDO0lBRUQ7Ozs7OztPQU1HO0lB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LElBQUksZ0NBQXFCLENBQUMsZ0NBQWdDLENBQUMsQ0FBQztTQUNuRTtJQUNILENBQUM7Q0FFRjtBQTlQRCxnREE4UEMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xuICBCYXNlQWRkcmVzcyxcbiAgQmFzZUtleSxcbiAgQmFzZVRyYW5zYWN0aW9uQnVpbGRlcixcbiAgQnVpbGRUcmFuc2FjdGlvbkVycm9yLFxuICBQYXJzZVRyYW5zYWN0aW9uRXJyb3IsXG4gIFB1YmxpY0tleSBhcyBCYXNlUHVibGljS2V5LFxuICBTaWduYXR1cmUsXG4gIFRyYW5zYWN0aW9uVHlwZSxcbn0gZnJvbSAnQGJpdGdvLWJldGEvc2RrLWNvcmUnO1xuaW1wb3J0IHsgU3VpT2JqZWN0UmVmLCBTdWlUcmFuc2FjdGlvbiwgVHJhbnNhY3Rpb24gfSBmcm9tICcuL3RyYW5zYWN0aW9uJztcbmltcG9ydCB1dGlscyBmcm9tICcuL3V0aWxzJztcbmltcG9ydCBCaWdOdW1iZXIgZnJvbSAnYmlnbnVtYmVyLmpzJztcbmltcG9ydCB7IEJhc2VDb2luIGFzIENvaW5Db25maWcgfSBmcm9tICdAYml0Z28tYmV0YS9zdGF0aWNzJztcbmltcG9ydCB7IFBheVR4IH0gZnJvbSAnLi9pZmFjZSc7XG5pbXBvcnQgYXNzZXJ0IGZyb20gJ2Fzc2VydCc7XG5cbi8vIE5lZWQgdG8ga2VlcCBpbiBzeW5jIHdpdGhcbi8vIGh0dHBzOi8vZ2l0aHViLmNvbS9NeXN0ZW5MYWJzL3N1aS9ibG9iL2YzMjg3N2YyZTQwZDM1YTAwODcxMGMyMzJlNDliNTdhYWI4ODY0NjIvY3JhdGVzL3N1aS10eXBlcy9zcmMvbWVzc2FnZXMucnMjTDMzOFxuZXhwb3J0IGNvbnN0IFNVSV9HQVNfUFJJQ0UgPSAxO1xuXG5leHBvcnQgYWJzdHJhY3QgY2xhc3MgVHJhbnNhY3Rpb25CdWlsZGVyIGV4dGVuZHMgQmFzZVRyYW5zYWN0aW9uQnVpbGRlciB7XG4gIHByb3RlY3RlZCBfdHJhbnNhY3Rpb246IFRyYW5zYWN0aW9uO1xuICBwcml2YXRlIF9zaWduYXR1cmVzOiBTaWduYXR1cmVbXSA9IFtdO1xuXG4gIHByb3RlY3RlZCBfc2VuZGVyOiBzdHJpbmc7XG4gIHByb3RlY3RlZCBfZ2FzQnVkZ2V0OiBudW1iZXI7XG4gIHByb3RlY3RlZCBfZ2FzUHJpY2UgPSBTVUlfR0FTX1BSSUNFO1xuICBwcm90ZWN0ZWQgX3BheVR4OiBQYXlUeDtcbiAgcHJvdGVjdGVkIF9nYXNQYXltZW50OiBTdWlPYmplY3RSZWY7XG5cbiAgY29uc3RydWN0b3IoX2NvaW5Db25maWc6IFJlYWRvbmx5PENvaW5Db25maWc+KSB7XG4gICAgc3VwZXIoX2NvaW5Db25maWcpO1xuICAgIHRoaXMuX3RyYW5zYWN0aW9uID0gbmV3IFRyYW5zYWN0aW9uKF9jb2luQ29uZmlnKTtcbiAgfVxuXG4gIC8vIGdldCBhbmQgc2V0IHJlZ2lvblxuICAvKipcbiAgICogVGhlIHRyYW5zYWN0aW9uIHR5cGUuXG4gICAqL1xuICBwcm90ZWN0ZWQgYWJzdHJhY3QgZ2V0IHRyYW5zYWN0aW9uVHlwZSgpOiBUcmFuc2FjdGlvblR5cGU7XG5cbiAgLyoqIEBpbmhlcml0ZG9jICovXG4gIHByb3RlY3RlZCBnZXQgdHJhbnNhY3Rpb24oKTogVHJhbnNhY3Rpb24ge1xuICAgIHJldHVybiB0aGlzLl90cmFuc2FjdGlvbjtcbiAgfVxuXG4gIC8qKiBAaW5oZXJpdGRvYyAqL1xuICBwcm90ZWN0ZWQgc2V0IHRyYW5zYWN0aW9uKHRyYW5zYWN0aW9uOiBUcmFuc2FjdGlvbikge1xuICAgIHRoaXMuX3RyYW5zYWN0aW9uID0gdHJhbnNhY3Rpb247XG4gIH1cblxuICAvKiogQGluaGVyaXRkb2MgKi9cbiAgcHJvdGVjdGVkIHNpZ25JbXBsZW1lbnRhdGlvbihrZXk6IEJhc2VLZXkpOiBUcmFuc2FjdGlvbiB7XG4gICAgdGhyb3cgbmV3IEVycm9yKCdNZXRob2Qgbm90IGltcGxlbWVudGVkLicpO1xuICB9XG5cbiAgLyoqIEBpbmhlcml0RG9jICovXG4gIGFkZFNpZ25hdHVyZShwdWJsaWNLZXk6IEJhc2VQdWJsaWNLZXksIHNpZ25hdHVyZTogQnVmZmVyKTogdm9pZCB7XG4gICAgdGhpcy5fc2lnbmF0dXJlcy5wdXNoKHsgcHVibGljS2V5LCBzaWduYXR1cmUgfSk7XG4gICAgdGhpcy50cmFuc2FjdGlvbi5hZGRTaWduYXR1cmUocHVibGljS2V5LCBzaWduYXR1cmUpO1xuICB9XG5cbiAgLyoqXG4gICAqIFNldHMgdGhlIHNlbmRlciBvZiB0aGlzIHRyYW5zYWN0aW9uLlxuICAgKiBUaGlzIGFjY291bnQgd2lsbCBiZSByZXNwb25zaWJsZSBmb3IgcGF5aW5nIHRyYW5zYWN0aW9uIGZlZXMuXG4gICAqXG4gICAqIEBwYXJhbSB7c3RyaW5nfSBzZW5kZXJBZGRyZXNzIHRoZSBhY2NvdW50IHRoYXQgaXMgc2VuZGluZyB0aGlzIHRyYW5zYWN0aW9uXG4gICAqIEByZXR1cm5zIHtUcmFuc2FjdGlvbkJ1aWxkZXJ9IFRoaXMgdHJhbnNhY3Rpb24gYnVpbGRlclxuICAgKi9cbiAgc2VuZGVyKHNlbmRlckFkZHJlc3M6IHN0cmluZyk6IHRoaXMge1xuICAgIHV0aWxzLnZhbGlkYXRlQWRkcmVzcyhzZW5kZXJBZGRyZXNzLCAnc2VuZGVyJyk7XG4gICAgdGhpcy5fc2VuZGVyID0gc2VuZGVyQWRkcmVzcztcbiAgICByZXR1cm4gdGhpcztcbiAgfVxuXG4gIGdhc0J1ZGdldChnYXNCdWRnZXQ6IG51bWJlcik6IHRoaXMge1xuICAgIHRoaXMudmFsaWRhdGVHYXNCdWRnZXQoZ2FzQnVkZ2V0KTtcbiAgICB0aGlzLl9nYXNCdWRnZXQgPSBnYXNCdWRnZXQ7XG4gICAgcmV0dXJuIHRoaXM7XG4gIH1cblxuICBnYXNQcmljZShnYXNQcmljZTogbnVtYmVyKTogdGhpcyB7XG4gICAgdGhpcy52YWxpZGF0ZUdhc1ByaWNlKGdhc1ByaWNlKTtcbiAgICB0aGlzLl9nYXNQcmljZSA9IGdhc1ByaWNlO1xuICAgIHJldHVybiB0aGlzO1xuICB9XG5cbiAgcGF5VHgocGF5VHg6IFBheVR4KTogdGhpcyB7XG4gICAgdGhpcy52YWxpZGF0ZVR4UGF5KHBheVR4KTtcbiAgICB0aGlzLl9wYXlUeCA9IHBheVR4O1xuICAgIHJldHVybiB0aGlzO1xuICB9XG5cbiAgZ2FzUGF5bWVudChnYXNQYXltZW50OiBTdWlPYmplY3RSZWYpOiB0aGlzIHtcbiAgICB0aGlzLnZhbGlkYXRlR2FzUGF5bWVudChnYXNQYXltZW50KTtcbiAgICB0aGlzLl9nYXNQYXltZW50ID0gZ2FzUGF5bWVudDtcbiAgICByZXR1cm4gdGhpcztcbiAgfVxuXG4gIC8qKlxuICAgKiBJbml0aWFsaXplIHRoZSB0cmFuc2FjdGlvbiBidWlsZGVyIGZpZWxkcyB1c2luZyB0aGUgZGVjb2RlZCB0cmFuc2FjdGlvbiBkYXRhXG4gICAqXG4gICAqIEBwYXJhbSB7VHJhbnNhY3Rpb259IHR4IHRoZSB0cmFuc2FjdGlvbiBkYXRhXG4gICAqL1xuICBpbml0QnVpbGRlcih0eDogVHJhbnNhY3Rpb24pOiB2b2lkIHtcbiAgICB0aGlzLl90cmFuc2FjdGlvbiA9IHR4O1xuICAgIHRoaXMuX3NpZ25hdHVyZXMgPSBbdHguc3VpU2lnbmF0dXJlXTtcbiAgICBjb25zdCB0eERhdGEgPSB0eC50b0pzb24oKTtcbiAgICB0aGlzLmdhc0J1ZGdldCh0eERhdGEuZ2FzQnVkZ2V0KTtcbiAgICB0aGlzLmdhc1ByaWNlKHR4RGF0YS5nYXNQcmljZSk7XG4gICAgdGhpcy5wYXlUeCh0eERhdGEucGF5VHgpO1xuICAgIHRoaXMuc2VuZGVyKHR4RGF0YS5zZW5kZXIpO1xuICAgIHRoaXMuZ2FzUGF5bWVudCh0eERhdGEuZ2FzUGF5bWVudCk7XG4gIH1cblxuICAvKiogQGluaGVyaXRkb2MgKi9cbiAgcHJvdGVjdGVkIGZyb21JbXBsZW1lbnRhdGlvbihyYXdUcmFuc2FjdGlvbjogc3RyaW5nKTogVHJhbnNhY3Rpb24ge1xuICAgIGNvbnN0IHR4ID0gbmV3IFRyYW5zYWN0aW9uKHRoaXMuX2NvaW5Db25maWcpO1xuICAgIHRoaXMudmFsaWRhdGVSYXdUcmFuc2FjdGlvbihyYXdUcmFuc2FjdGlvbik7XG4gICAgdHguZnJvbVJhd1RyYW5zYWN0aW9uKHJhd1RyYW5zYWN0aW9uKTtcbiAgICB0aGlzLmluaXRCdWlsZGVyKHR4KTtcbiAgICByZXR1cm4gdGhpcy50cmFuc2FjdGlvbjtcbiAgfVxuXG4gIC8qKiBAaW5oZXJpdGRvYyAqL1xuICBwcm90ZWN0ZWQgYXN5bmMgYnVpbGRJbXBsZW1lbnRhdGlvbigpOiBQcm9taXNlPFRyYW5zYWN0aW9uPiB7XG4gICAgdGhpcy50cmFuc2FjdGlvbi5zZXRTdWlUcmFuc2FjdGlvbih0aGlzLmJ1aWxkU3VpVHJhbnNhY3Rpb24oKSk7XG4gICAgdGhpcy50cmFuc2FjdGlvbi50cmFuc2FjdGlvblR5cGUodGhpcy50cmFuc2FjdGlvblR5cGUpO1xuICAgIHRoaXMudHJhbnNhY3Rpb24ubG9hZElucHV0c0FuZE91dHB1dHMoKTtcbiAgICByZXR1cm4gdGhpcy50cmFuc2FjdGlvbjtcbiAgfVxuXG4gIHByb3RlY3RlZCBidWlsZFN1aVRyYW5zYWN0aW9uKCk6IFN1aVRyYW5zYWN0aW9uIHtcbiAgICBhc3NlcnQodGhpcy5fc2VuZGVyLCBuZXcgQnVpbGRUcmFuc2FjdGlvbkVycm9yKCdzZW5kZXIgaXMgcmVxdWlyZWQgYmVmb3JlIGJ1aWxkaW5nJykpO1xuICAgIGFzc2VydCh0aGlzLl9wYXlUeCwgbmV3IEJ1aWxkVHJhbnNhY3Rpb25FcnJvcigncGF5VHggaXMgcmVxdWlyZWQgYmVmb3JlIGJ1aWxkaW5nJykpO1xuICAgIGFzc2VydCh0aGlzLl9nYXNCdWRnZXQsIG5ldyBCdWlsZFRyYW5zYWN0aW9uRXJyb3IoJ2dhc0J1ZGdldCBpcyByZXF1aXJlZCBiZWZvcmUgYnVpbGRpbmcnKSk7XG4gICAgYXNzZXJ0KHRoaXMuX2dhc1ByaWNlLCBuZXcgQnVpbGRUcmFuc2FjdGlvbkVycm9yKCdnYXNQcmljZSBpcyByZXF1aXJlZCBiZWZvcmUgYnVpbGRpbmcnKSk7XG4gICAgYXNzZXJ0KHRoaXMuX2dhc1BheW1lbnQsIG5ldyBCdWlsZFRyYW5zYWN0aW9uRXJyb3IoJ2dhc1BheW1lbnQgaXMgcmVxdWlyZWQgYmVmb3JlIGJ1aWxkaW5nJykpO1xuXG4gICAgcmV0dXJuIHtcbiAgICAgIHNlbmRlcjogdGhpcy5fc2VuZGVyLFxuICAgICAgcGF5VHg6IHRoaXMuX3BheVR4LFxuICAgICAgZ2FzQnVkZ2V0OiB0aGlzLl9nYXNCdWRnZXQsXG4gICAgICBnYXNQcmljZTogdGhpcy5fZ2FzUHJpY2UsXG4gICAgICBnYXNQYXltZW50OiB0aGlzLl9nYXNQYXltZW50LFxuICAgIH07XG4gIH1cblxuICAvLyByZWdpb24gVmFsaWRhdG9yc1xuICAvKiogQGluaGVyaXRkb2MgKi9cbiAgdmFsaWRhdGVBZGRyZXNzKGFkZHJlc3M6IEJhc2VBZGRyZXNzLCBhZGRyZXNzRm9ybWF0Pzogc3RyaW5nKTogdm9pZCB7XG4gICAgaWYgKCF1dGlscy5pc1ZhbGlkQWRkcmVzcyhhZGRyZXNzLmFkZHJlc3MpKSB7XG4gICAgICB0aHJvdyBuZXcgQnVpbGRUcmFuc2FjdGlvbkVycm9yKCdJbnZhbGlkIGFkZHJlc3MgJyArIGFkZHJlc3MuYWRkcmVzcyk7XG4gICAgfVxuICB9XG5cbiAgdmFsaWRhdGVHYXNCdWRnZXQoZ2FzQnVkZ2V0OiBudW1iZXIpOiB2b2lkIHtcbiAgICBpZiAoZ2FzQnVkZ2V0IDw9IDApIHtcbiAgICAgIHRocm93IG5ldyBCdWlsZFRyYW5zYWN0aW9uRXJyb3IoJ0ludmFsaWQgZ2FzIGJ1ZGdldCAnICsgZ2FzQnVkZ2V0KTtcbiAgICB9XG4gIH1cblxuICB2YWxpZGF0ZUdhc1ByaWNlKGdhc1ByaWNlOiBudW1iZXIpOiB2b2lkIHtcbiAgICBpZiAoZ2FzUHJpY2UgIT09IFNVSV9HQVNfUFJJQ0UpIHtcbiAgICAgIHRocm93IG5ldyBCdWlsZFRyYW5zYWN0aW9uRXJyb3IoJ0ludmFsaWQgZ2FzIHByaWNlICcgKyBnYXNQcmljZSk7XG4gICAgfVxuICB9XG5cbiAgdmFsaWRhdGVUeFBheShwYXlUeDogUGF5VHgpOiB2b2lkIHtcbiAgICBpZiAoIXBheVR4Lmhhc093blByb3BlcnR5KCdjb2lucycpKSB7XG4gICAgICB0aHJvdyBuZXcgQnVpbGRUcmFuc2FjdGlvbkVycm9yKGBJbnZhbGlkIHBheVR4LCBtaXNzaW5nIGNvaW5zYCk7XG4gICAgfVxuICAgIGlmICghcGF5VHguaGFzT3duUHJvcGVydHkoJ3JlY2lwaWVudHMnKSkge1xuICAgICAgdGhyb3cgbmV3IEJ1aWxkVHJhbnNhY3Rpb25FcnJvcihgSW52YWxpZCBwYXlUeCwgbWlzc2luZyByZWNpcGllbnRzYCk7XG4gICAgfVxuICAgIGlmICghcGF5VHguaGFzT3duUHJvcGVydHkoJ2Ftb3VudHMnKSkge1xuICAgICAgdGhyb3cgbmV3IEJ1aWxkVHJhbnNhY3Rpb25FcnJvcihgSW52YWxpZCBwYXlUeCwgbWlzc2luZyBhbW91bnRzYCk7XG4gICAgfVxuXG4gICAgaWYgKHBheVR4LnJlY2lwaWVudHMubGVuZ3RoICE9PSBwYXlUeC5hbW91bnRzLmxlbmd0aCkge1xuICAgICAgdGhyb3cgbmV3IEJ1aWxkVHJhbnNhY3Rpb25FcnJvcihcbiAgICAgICAgYHJlY2lwaWVudHMgbGVuZ3RoICR7cGF5VHgucmVjaXBpZW50cy5sZW5ndGh9IG11c3QgZXF1YWwgdG8gYW1vdW50cyBsZW5ndGggJHtwYXlUeC5hbW91bnRzLmxlbmd0aH1gXG4gICAgICApO1xuICAgIH1cbiAgICBpZiAoIXV0aWxzLmlzVmFsaWRBbW91bnRzKHBheVR4LmFtb3VudHMpKSB7XG4gICAgICB0aHJvdyBuZXcgQnVpbGRUcmFuc2FjdGlvbkVycm9yKCdJbnZhbGlkIG9yIG1pc3NpbmcgYW1vdW50cywgZ290OiAnICsgcGF5VHguYW1vdW50cyk7XG4gICAgfVxuXG4gICAgZm9yIChjb25zdCBjb2luIG9mIHBheVR4LmNvaW5zKSB7XG4gICAgICB0aGlzLnZhbGlkYXRlU3VpT2JqZWN0UmVmKGNvaW4sICdwYXlUeC5jb2luJyk7XG4gICAgfVxuXG4gICAgZm9yIChjb25zdCByZWNpcGllbnQgb2YgcGF5VHgucmVjaXBpZW50cykge1xuICAgICAgdXRpbHMudmFsaWRhdGVBZGRyZXNzKHJlY2lwaWVudCwgJ3BheVR4LnJlY2lwaWVudCcpO1xuICAgIH1cbiAgfVxuXG4gIHZhbGlkYXRlR2FzUGF5bWVudChnYXNQYXltZW50OiBTdWlPYmplY3RSZWYpOiB2b2lkIHtcbiAgICBpZiAoIWdhc1BheW1lbnQpIHtcbiAgICAgIHRocm93IG5ldyBCdWlsZFRyYW5zYWN0aW9uRXJyb3IoYEludmFsaWQgZ2FzIFBheW1lbnQ6IHVuZGVmaW5lZGApO1xuICAgIH1cbiAgICB0aGlzLnZhbGlkYXRlU3VpT2JqZWN0UmVmKGdhc1BheW1lbnQsICdnYXNQYXltZW50Jyk7XG4gIH1cblxuICB2YWxpZGF0ZVN1aU9iamVjdFJlZihzdWlPYmplY3RSZWY6IFN1aU9iamVjdFJlZiwgZmllbGQ6IHN0cmluZyk6IHZvaWQge1xuICAgIGlmICghc3VpT2JqZWN0UmVmLmhhc093blByb3BlcnR5KCdvYmplY3RJZCcpKSB7XG4gICAgICB0aHJvdyBuZXcgQnVpbGRUcmFuc2FjdGlvbkVycm9yKGBJbnZhbGlkICR7ZmllbGR9LCBtaXNzaW5nIG9iamVjdElkYCk7XG4gICAgfVxuICAgIGlmICghc3VpT2JqZWN0UmVmLmhhc093blByb3BlcnR5KCd2ZXJzaW9uJykgfHwgIXV0aWxzLmlzVmFsaWRBbW91bnQoc3VpT2JqZWN0UmVmLnZlcnNpb24pKSB7XG4gICAgICB0aHJvdyBuZXcgQnVpbGRUcmFuc2FjdGlvbkVycm9yKGBJbnZhbGlkICR7ZmllbGR9LCBpbnZhbGlkIG9yIG1pc3NpbmcgdmVyc2lvbmApO1xuICAgIH1cbiAgICBpZiAoIXN1aU9iamVjdFJlZi5oYXNPd25Qcm9wZXJ0eSgnZGlnZXN0JykpIHtcbiAgICAgIHRocm93IG5ldyBCdWlsZFRyYW5zYWN0aW9uRXJyb3IoYEludmFsaWQgJHtmaWVsZH0sIG1pc3NpbmcgZGlnZXN0YCk7XG4gICAgfVxuICB9XG5cbiAgLyoqIEBpbmhlcml0ZG9jICovXG4gIHZhbGlkYXRlS2V5KGtleTogQmFzZUtleSk6IHZvaWQge1xuICAgIHRocm93IG5ldyBFcnJvcignTWV0aG9kIG5vdCBpbXBsZW1lbnRlZC4nKTtcbiAgfVxuXG4gIC8qKiBAaW5oZXJpdGRvYyAqL1xuICB2YWxpZGF0ZVJhd1RyYW5zYWN0aW9uKHJhd1RyYW5zYWN0aW9uOiBzdHJpbmcpOiB2b2lkIHtcbiAgICBpZiAoIXJhd1RyYW5zYWN0aW9uKSB7XG4gICAgICB0aHJvdyBuZXcgUGFyc2VUcmFuc2FjdGlvbkVycm9yKCdJbnZhbGlkIHJhdyB0cmFuc2FjdGlvbjogVW5kZWZpbmVkJyk7XG4gICAgfVxuICAgIGlmICghdXRpbHMuaXNWYWxpZFJhd1RyYW5zYWN0aW9uKHJhd1RyYW5zYWN0aW9uKSkge1xuICAgICAgdGhyb3cgbmV3IFBhcnNlVHJhbnNhY3Rpb25FcnJvcignSW52YWxpZCByYXcgdHJhbnNhY3Rpb24nKTtcbiAgICB9XG4gIH1cblxuICAvKiogQGluaGVyaXRkb2MgKi9cbiAgdmFsaWRhdGVUcmFuc2FjdGlvbih0cmFuc2FjdGlvbjogVHJhbnNhY3Rpb24pOiB2b2lkIHtcbiAgICBpZiAoIXRyYW5zYWN0aW9uLnN1aVRyYW5zYWN0aW9uKSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuICAgIHRoaXMudmFsaWRhdGVUcmFuc2FjdGlvbkZpZWxkcygpO1xuICB9XG5cbiAgLyoqXG4gICAqIFZhbGlkYXRlcyBhbGwgZmllbGRzIGFyZSBkZWZpbmVkXG4gICAqL1xuICBwcml2YXRlIHZhbGlkYXRlVHJhbnNhY3Rpb25GaWVsZHMoKTogdm9pZCB7XG4gICAgaWYgKHRoaXMuX3NlbmRlciA9PT0gdW5kZWZpbmVkKSB7XG4gICAgICB0aHJvdyBuZXcgQnVpbGRUcmFuc2FjdGlvbkVycm9yKCdJbnZhbGlkIHRyYW5zYWN0aW9uOiBtaXNzaW5nIHNlbmRlcicpO1xuICAgIH1cbiAgICBpZiAodGhpcy5fZ2FzQnVkZ2V0ID09PSB1bmRlZmluZWQpIHtcbiAgICAgIHRocm93IG5ldyBCdWlsZFRyYW5zYWN0aW9uRXJyb3IoJ0ludmFsaWQgdHJhbnNhY3Rpb246IG1pc3NpbmcgZ2FzIGJ1ZGdldCcpO1xuICAgIH1cbiAgICBpZiAodGhpcy5fZ2FzUHJpY2UgPT09IHVuZGVmaW5lZCB8fCB0aGlzLl9nYXNQcmljZSAhPT0gU1VJX0dBU19QUklDRSkge1xuICAgICAgdGhyb3cgbmV3IEJ1aWxkVHJhbnNhY3Rpb25FcnJvcignSW52YWxpZCB0cmFuc2FjdGlvbjogbWlzc2luZy9pbmNvcnJlY3QgZ2FzIHByaWNlJyk7XG4gICAgfVxuICAgIGlmICh0aGlzLl9wYXlUeCA9PT0gdW5kZWZpbmVkKSB7XG4gICAgICB0aHJvdyBuZXcgQnVpbGRUcmFuc2FjdGlvbkVycm9yKCdJbnZhbGlkIHRyYW5zYWN0aW9uOiBtaXNzaW5nIHBheVR4Jyk7XG4gICAgfVxuICAgIGlmICh0aGlzLl9nYXNQYXltZW50ID09PSB1bmRlZmluZWQpIHtcbiAgICAgIHRocm93IG5ldyBCdWlsZFRyYW5zYWN0aW9uRXJyb3IoJ0ludmFsaWQgdHJhbnNhY3Rpb246IG1pc3NpbmcgZ2FzIHBheW1lbnQnKTtcbiAgICB9XG5cbiAgICBjb25zdCBjb2luSWRzID0gdGhpcy5fcGF5VHguY29pbnMubWFwKChjb2luKSA9PiBjb2luLm9iamVjdElkKTtcbiAgICBpZiAoY29pbklkcy5pbmNsdWRlcyh0aGlzLl9nYXNQYXltZW50Lm9iamVjdElkKSkge1xuICAgICAgdGhyb3cgbmV3IEJ1aWxkVHJhbnNhY3Rpb25FcnJvcihcbiAgICAgICAgYEludmFsaWQgZ2FzIFBheW1lbnQgJHt0aGlzLl9nYXNQYXltZW50Lm9iamVjdElkfSwgY2Fubm90IGJlIG9uZSBvZiB0aGUgaW5wdXRDb2luc2BcbiAgICAgICk7XG4gICAgfVxuICB9XG5cbiAgLyoqIEBpbmhlcml0ZG9jICovXG4gIHZhbGlkYXRlVmFsdWUodmFsdWU6IEJpZ051bWJlcik6IHZvaWQge1xuICAgIGlmICh2YWx1ZS5pc0xlc3NUaGFuKDApKSB7XG4gICAgICB0aHJvdyBuZXcgQnVpbGRUcmFuc2FjdGlvbkVycm9yKCdWYWx1ZSBjYW5ub3QgYmUgbGVzcyB0aGFuIHplcm8nKTtcbiAgICB9XG4gIH1cbiAgLy8gZW5kcmVnaW9uXG59XG4iXX0=
|
|
262
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHJhbnNhY3Rpb25CdWlsZGVyLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL2xpYi90cmFuc2FjdGlvbkJ1aWxkZXIudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7O0FBQUEsbURBUzhCO0FBQzlCLCtDQUE0QztBQUM1QyxvREFBNEI7QUFZNUIsb0RBQTRCO0FBQzVCLDJDQUFnRTtBQUVoRSxNQUFzQixrQkFBbUIsU0FBUSxpQ0FBc0I7SUFXckUsWUFBWSxXQUFpQztRQUMzQyxLQUFLLENBQUMsV0FBVyxDQUFDLENBQUM7UUFWYixnQkFBVyxHQUFnQixFQUFFLENBQUM7UUFLNUIsY0FBUyxHQUFHLHlCQUFhLENBQUM7UUFNbEMsSUFBSSxDQUFDLFlBQVksR0FBRyxJQUFJLHlCQUFXLENBQUMsV0FBVyxDQUFDLENBQUM7SUFDbkQsQ0FBQztJQVFELGtCQUFrQjtJQUNsQixJQUFjLFdBQVc7UUFDdkIsT0FBTyxJQUFJLENBQUMsWUFBWSxDQUFDO0lBQzNCLENBQUM7SUFFRCxrQkFBa0I7SUFDbEIsSUFBYyxXQUFXLENBQUMsV0FBd0I7UUFDaEQsSUFBSSxDQUFDLFlBQVksR0FBRyxXQUFXLENBQUM7SUFDbEMsQ0FBQztJQUVELGtCQUFrQjtJQUNSLGtCQUFrQixDQUFDLEdBQVk7UUFDdkMsTUFBTSxJQUFJLEtBQUssQ0FBQyx5QkFBeUIsQ0FBQyxDQUFDO0lBQzdDLENBQUM7SUFFRCxrQkFBa0I7SUFDbEIsWUFBWSxDQUFDLFNBQXdCLEVBQUUsU0FBaUI7UUFDdEQsSUFBSSxDQUFDLFdBQVcsQ0FBQyxJQUFJLENBQUMsRUFBRSxTQUFTLEVBQUUsU0FBUyxFQUFFLENBQUMsQ0FBQztRQUNoRCxJQUFJLENBQUMsV0FBVyxDQUFDLFlBQVksQ0FBQyxTQUFTLEVBQUUsU0FBUyxDQUFDLENBQUM7SUFDdEQsQ0FBQztJQUVEOzs7Ozs7T0FNRztJQUNILE1BQU0sQ0FBQyxhQUFxQjtRQUMxQixlQUFLLENBQUMsZUFBZSxDQUFD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QyxNQUFNLENBQUMsS0FBSyxDQUFDLEdBQUcsQ0FBQyxDQUFDLElBQUksRUFBRSxFQUFFLENBQUMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxDQUFDO1FBQy9ELElBQUksT0FBTyxDQUFDLFFBQVEsQ0FBQyxJQUFJLENBQUMsV0FBVyxDQUFDLFFBQVEsQ0FBQyxFQUFFO1lBQy9DLE1BQU0sSUFBSSxnQ0FBcUIsQ0FDN0IsdUJBQXVCLElBQUksQ0FBQyxXQUFXLENBQUMsUUFBUSxtQ0FBbUMsQ0FDcEYsQ0FBQztTQUNIO0lBQ0gsQ0FBQztJQUVELGtCQUFrQjtJQUNsQixhQUFhLENBQUMsS0FBZ0I7UUFDNUIsSUFBSSxLQUFLLENBQUMsVUFBVSxDQUFDLENBQUMsQ0FBQyxFQUFFO1lBQ3ZCLE1BQU0sSUFBSSxnQ0FBcUIsQ0FBQyxnQ0FBZ0MsQ0FBQyxDQUFDO1NBQ25FO0lBQ0gsQ0FBQztDQUVGO0FBdlNELGdEQXVTQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XG4gIEJhc2VBZGRyZXNzLFxuICBCYXNlS2V5LFxuICBCYXNlVHJhbnNhY3Rpb25CdWlsZGVyLFxuICBCdWlsZFRyYW5zYWN0aW9uRXJyb3IsXG4gIFBhcnNlVHJhbnNhY3Rpb25FcnJvcixcbiAgUHVibGljS2V5IGFzIEJhc2VQdWJsaWNLZXksXG4gIFNpZ25hdHVyZSxcbiAgVHJhbnNhY3Rpb25UeXBlLFxufSBmcm9tICdAYml0Z28tYmV0YS9zZGstY29yZSc7XG5pbXBvcnQgeyBUcmFuc2FjdGlvbiB9IGZyb20gJy4vdHJhbnNhY3Rpb24nO1xuaW1wb3J0IHV0aWxzIGZyb20gJy4vdXRpbHMnO1xuaW1wb3J0IEJpZ051bWJlciBmcm9tICdiaWdudW1iZXIuanMnO1xuaW1wb3J0IHsgQmFzZUNvaW4gYXMgQ29pbkNvbmZpZyB9IGZyb20gJ0BiaXRnby1iZXRhL3N0YXRpY3MnO1xuaW1wb3J0IHtcbiAgUGF5QWxsU3VpVHhEZXRhaWxzLFxuICBQYXlTdWlUeERldGFpbHMsXG4gIFBheVR4LFxuICBQYXlUeERldGFpbHMsXG4gIFN1aU9iamVjdFJlZixcbiAgU3VpVHJhbnNhY3Rpb24sXG4gIFR4RGV0YWlscyxcbn0gZnJvbSAnLi9pZmFjZSc7XG5pbXBvcnQgYXNzZXJ0IGZyb20gJ2Fzc2VydCc7XG5pbXBvcnQgeyBTVUlfR0FTX1BSSUNFLCBTdWlUcmFuc2FjdGlvblR5cGUgfSBmcm9tICcuL2NvbnN0YW50cyc7XG5cbmV4cG9ydCBhYnN0cmFjdCBjbGFzcyBUcmFuc2FjdGlvbkJ1aWxkZXIgZXh0ZW5kcyBCYXNlVHJhbnNhY3Rpb25CdWlsZGVyIHtcbiAgcHJvdGVjdGVkIF90cmFuc2FjdGlvbjogVHJhbnNhY3Rpb247XG4gIHByaXZhdGUgX3NpZ25hdHVyZXM6IFNpZ25hdHVyZVtdID0gW107XG5cbiAgcHJvdGVjdGVkIF90eXBlOiBTdWlUcmFuc2FjdGlvblR5cGU7XG4gIHByb3RlY3RlZCBfc2VuZGVyOiBzdHJpbmc7XG4gIHByb3RlY3RlZCBfZ2FzQnVkZ2V0OiBudW1iZXI7XG4gIHByb3RlY3RlZCBfZ2FzUHJpY2UgPSBTVUlfR0FTX1BSSUNFO1xuICBwcm90ZWN0ZWQgX3BheVR4OiBQYXlUeDtcbiAgcHJvdGVjdGVkIF9nYXNQYXltZW50OiBTdWlPYmplY3RSZWY7XG5cbiAgY29uc3RydWN0b3IoX2NvaW5Db25maWc6IFJlYWRvbmx5PENvaW5Db25maWc+KSB7XG4gICAgc3VwZXIoX2NvaW5Db25maWcpO1xuICAgIHRoaXMuX3RyYW5zYWN0aW9uID0gbmV3IFRyYW5zYWN0aW9uKF9jb2luQ29uZmlnKTtcbiAgfVxuXG4gIC8vIGdldCBhbmQgc2V0IHJlZ2lvblxuICAvKipcbiAgICogVGhlIHRyYW5zYWN0aW9uIHR5cGUuXG4gICAqL1xuICBwcm90ZWN0ZWQgYWJzdHJhY3QgZ2V0IHRyYW5zYWN0aW9uVHlwZSgpOiBUcmFuc2FjdGlvblR5cGU7XG5cbiAgLyoqIEBpbmhlcml0ZG9jICovXG4gIHByb3RlY3RlZCBnZXQgdHJhbnNhY3Rpb24oKTogVHJhbnNhY3Rpb24ge1xuICAgIHJldHVybiB0aGlzLl90cmFuc2FjdGlvbjtcbiAgfVxuXG4gIC8qKiBAaW5oZXJpdGRvYyAqL1xuICBwcm90ZWN0ZWQgc2V0IHRyYW5zYWN0aW9uKHRyYW5zYWN0aW9uOiBUcmFuc2FjdGlvbikge1xuICAgIHRoaXMuX3RyYW5zYWN0aW9uID0gdHJhbnNhY3Rpb247XG4gIH1cblxuICAvKiogQGluaGVyaXRkb2MgKi9cbiAgcHJvdGVjdGVkIHNpZ25JbXBsZW1lbnRhdGlvbihrZXk6IEJhc2VLZXkpOiBUcmFuc2FjdGlvbiB7XG4gICAgdGhyb3cgbmV3IEVycm9yKCdNZXRob2Qgbm90IGltcGxlbWVudGVkLicpO1xuICB9XG5cbiAgLyoqIEBpbmhlcml0RG9jICovXG4gIGFkZFNpZ25hdHVyZShwdWJsaWNLZXk6IEJhc2VQdWJsaWNLZXksIHNpZ25hdHVyZTogQnVmZmVyKTogdm9pZCB7XG4gICAgdGhpcy5fc2lnbmF0dXJlcy5wdXNoKHsgcHVibGljS2V5LCBzaWduYXR1cmUgfSk7XG4gICAgdGhpcy50cmFuc2FjdGlvbi5hZGRTaWduYXR1cmUocHVibGljS2V5LCBzaWduYXR1cmUpO1xuICB9XG5cbiAgLyoqXG4gICAqIFNldHMgdGhlIHNlbmRlciBvZiB0aGlzIHRyYW5zYWN0aW9uLlxuICAgKiBUaGlzIGFjY291bnQgd2lsbCBiZSByZXNwb25zaWJsZSBmb3IgcGF5aW5nIHRyYW5zYWN0aW9uIGZlZXMuXG4gICAqXG4gICAqIEBwYXJhbSB7c3RyaW5nfSBzZW5kZXJBZGRyZXNzIHRoZSBhY2NvdW50IHRoYXQgaXMgc2VuZGluZyB0aGlzIHRyYW5zYWN0aW9uXG4gICAqIEByZXR1cm5zIHtUcmFuc2FjdGlvbkJ1aWxkZXJ9IFRoaXMgdHJhbnNhY3Rpb24gYnVpbGRlclxuICAgKi9cbiAgc2VuZGVyKHNlbmRlckFkZHJlc3M6IHN0cmluZyk6IHRoaXMge1xuICAgIHV0aWxzLnZhbGlkYXRlQWRkcmVzcyhzZW5kZXJBZGRyZXNzLCAnc2VuZGVyJyk7XG4gICAgdGhpcy5fc2VuZGVyID0gc2VuZGVyQWRkcmVzcztcbiAgICByZXR1cm4gdGhpcztcbiAgfVxuXG4gIHR5cGUodHlwZTogU3VpVHJhbnNhY3Rpb25UeXBlKTogdGhpcyB7XG4gICAgdGhpcy5fdHlwZSA9IHR5cGU7XG4gICAgcmV0dXJuIHRoaXM7XG4gIH1cblxuICBnYXNCdWRnZXQoZ2FzQnVkZ2V0OiBudW1iZXIpOiB0aGlzIHtcbiAgICB0aGlzLnZhbGlkYXRlR2FzQnVkZ2V0KGdhc0J1ZGdldCk7XG4gICAgdGhpcy5fZ2FzQnVkZ2V0ID0gZ2FzQnVkZ2V0O1xuICAgIHJldHVybiB0aGlzO1xuICB9XG5cbiAgZ2FzUHJpY2UoZ2FzUHJpY2U6IG51bWJlcik6IHRoaXMge1xuICAgIHRoaXMudmFsaWRhdGVHYXNQcmljZShnYXNQcmljZSk7XG4gICAgdGhpcy5fZ2FzUHJpY2UgPSBnYXNQcmljZTtcbiAgICByZXR1cm4gdGhpcztcbiAgfVxuXG4gIHBheVR4KHBheVR4OiBQYXlUeCk6IHRoaXMge1xuICAgIHRoaXMudmFsaWRhdGVUeFBheShwYXlUeCk7XG4gICAgdGhpcy5fcGF5VHggPSBwYXlUeDtcbiAgICByZXR1cm4gdGhpcztcbiAgfVxuXG4gIGdhc1BheW1lbnQoZ2FzUGF5bWVudDogU3VpT2JqZWN0UmVmKTogdGhpcyB7XG4gICAgdGhpcy52YWxpZGF0ZUdhc1BheW1lbnQoZ2FzUGF5bWVudCk7XG4gICAgdGhpcy5fZ2FzUGF5bWVudCA9IGdhc1BheW1lbnQ7XG4gICAgcmV0dXJuIHRoaXM7XG4gIH1cblxuICAvKipcbiAgICogSW5pdGlhbGl6ZSB0aGUgdHJhbnNhY3Rpb24gYnVpbGRlciBmaWVsZHMgdXNpbmcgdGhlIGRlY29kZWQgdHJhbnNhY3Rpb24gZGF0YVxuICAgKlxuICAgKiBAcGFyYW0ge1RyYW5zYWN0aW9ufSB0eCB0aGUgdHJhbnNhY3Rpb24gZGF0YVxuICAgKi9cbiAgaW5pdEJ1aWxkZXIodHg6IFRyYW5zYWN0aW9uKTogdm9pZCB7XG4gICAgdGhpcy5fdHJhbnNhY3Rpb24gPSB0eDtcbiAgICB0aGlzLl9zaWduYXR1cmVzID0gW3R4LnN1aVNpZ25hdHVyZV07XG4gICAgY29uc3QgdHhEYXRhID0gdHgudG9Kc29uKCk7XG4gICAgdGhpcy5nYXNCdWRnZXQodHhEYXRhLmdhc0J1ZGdldCk7XG4gICAgdGhpcy5nYXNQcmljZSh0eERhdGEuZ2FzUHJpY2UpO1xuICAgIHRoaXMuc2VuZGVyKHR4RGF0YS5zZW5kZXIpO1xuICAgIHRoaXMuZ2FzUGF5bWVudCh0eERhdGEuZ2FzUGF5bWVudCk7XG5cbiAgICBsZXQgcGF5VHg7XG4gICAgbGV0IHR4RGV0YWlsczogVHhEZXRhaWxzID0gdHhEYXRhLmtpbmQuU2luZ2xlO1xuICAgIGlmICh0eERldGFpbHMuaGFzT3duUHJvcGVydHkoJ1BheScpKSB7XG4gICAgICB0aGlzLnR5cGUoU3VpVHJhbnNhY3Rpb25UeXBlLlBheSk7XG4gICAgICB0eERldGFpbHMgPSB0eERldGFpbHMgYXMgUGF5VHhEZXRhaWxzO1xuICAgICAgcGF5VHggPSB7XG4gICAgICAgIGNvaW5zOiB0eERldGFpbHMuUGF5LmNvaW5zLFxuICAgICAgICByZWNpcGllbnRzOiB0eERldGFpbHMuUGF5LnJlY2lwaWVudHMsXG4gICAgICAgIGFtb3VudHM6IHR4RGV0YWlscy5QYXkuYW1vdW50cyxcbiAgICAgIH07XG4gICAgfSBlbHNlIGlmICh0eERldGFpbHMuaGFzT3duUHJvcGVydHkoJ1BheVN1aScpKSB7XG4gICAgICB0aGlzLnR5cGUoU3VpVHJhbnNhY3Rpb25UeXBlLlBheVN1aSk7XG4gICAgICB0eERldGFpbHMgPSB0eERldGFpbHMgYXMgUGF5U3VpVHhEZXRhaWxzO1xuICAgICAgcGF5VHggPSB7XG4gICAgICAgIGNvaW5zOiB0eERldGFpbHMuUGF5U3VpLmNvaW5zLFxuICAgICAgICByZWNpcGllbnRzOiB0eERldGFpbHMuUGF5U3VpLnJlY2lwaWVudHMsXG4gICAgICAgIGFtb3VudHM6IHR4RGV0YWlscy5QYXlTdWkuYW1vdW50cyxcbiAgICAgIH07XG4gICAgfSBlbHNlIGlmICh0eERldGFpbHMuaGFzT3duUHJvcGVydHkoJ1BheUFsbFN1aScpKSB7XG4gICAgICB0aGlzLnR5cGUoU3VpVHJhbnNhY3Rpb25UeXBlLlBheUFsbFN1aSk7XG4gICAgICB0eERldGFpbHMgPSB0eERldGFpbHMgYXMgUGF5QWxsU3VpVHhEZXRhaWxzO1xuICAgICAgcGF5VHggPSB7XG4gICAgICAgIGNvaW5zOiB0eERldGFpbHMuUGF5QWxsU3VpLmNvaW5zLFxuICAgICAgICByZWNpcGllbnRzOiBbdHhEZXRhaWxzLlBheUFsbFN1aS5yZWNpcGllbnRdLFxuICAgICAgICBhbW91bnRzOiBbdHhEZXRhaWxzLlBheUFsbFN1aS5hbW91bnRdLFxuICAgICAgfTtcbiAgICB9IGVsc2Uge1xuICAgICAgdGhyb3cgbmV3IEVycm9yKCdUcmFuc2FjdGlvbiB0eXBlIG5vdCBzdXBwb3J0ZWQ6ICcgKyB0eERldGFpbHMpO1xuICAgIH1cbiAgICB0aGlzLnBheVR4KHBheVR4KTtcbiAgfVxuXG4gIC8qKiBAaW5oZXJpdGRvYyAqL1xuICBwcm90ZWN0ZWQgZnJvbUltcGxlbWVudGF0aW9uKHJhd1RyYW5zYWN0aW9uOiBzdHJpbmcpOiBUcmFuc2FjdGlvbiB7XG4gICAgY29uc3QgdHggPSBuZXcgVHJhbnNhY3Rpb24odGhpcy5fY29pbkNvbmZpZyk7XG4gICAgdGhpcy52YWxpZGF0ZVJhd1RyYW5zYWN0aW9uKHJhd1RyYW5zYWN0aW9uKTtcbiAgICB0eC5mcm9tUmF3VHJhbnNhY3Rpb24ocmF3VHJhbnNhY3Rpb24pO1xuICAgIHRoaXMuaW5pdEJ1aWxkZXIodHgpO1xuICAgIHJldHVybiB0aGlzLnRyYW5zYWN0aW9uO1xuICB9XG5cbiAgLyoqIEBpbmhlcml0ZG9jICovXG4gIHByb3RlY3RlZCBhc3luYyBidWlsZEltcGxlbWVudGF0aW9uKCk6IFByb21pc2U8VHJhbnNhY3Rpb24+IHtcbiAgICB0aGlzLnRyYW5zYWN0aW9uLnNldFN1aVRyYW5zYWN0aW9uKHRoaXMuYnVpbGRTdWlUcmFuc2FjdGlvbigpKTtcbiAgICB0aGlzLnRyYW5zYWN0aW9uLnRyYW5zYWN0aW9uVHlwZSh0aGlzLnRyYW5zYWN0aW9uVHlwZSk7XG4gICAgdGhpcy50cmFuc2FjdGlvbi5sb2FkSW5wdXRzQW5kT3V0cHV0cygpO1xuICAgIHJldHVybiB0aGlzLnRyYW5zYWN0aW9uO1xuICB9XG5cbiAgcHJvdGVjdGVkIGJ1aWxkU3VpVHJhbnNhY3Rpb24oKTogU3VpVHJhbnNhY3Rpb24ge1xuICAgIGFzc2VydCh0aGlzLl90eXBlLCBuZXcgQnVpbGRUcmFuc2FjdGlvbkVycm9yKCd0eXBlIGlzIHJlcXVpcmVkIGJlZm9yZSBidWlsZGluZycpKTtcbiAgICBhc3NlcnQodGhpcy5fc2VuZGVyLCBuZXcgQnVpbGRUcmFuc2FjdGlvbkVycm9yKCdzZW5kZXIgaXMgcmVxdWlyZWQgYmVmb3JlIGJ1aWxkaW5nJykpO1xuICAgIGFzc2VydCh0aGlzLl9wYXlUeCwgbmV3IEJ1aWxkVHJhbnNhY3Rpb25FcnJvcigncGF5VHggaXMgcmVxdWlyZWQgYmVmb3JlIGJ1aWxkaW5nJykpO1xuICAgIGFzc2VydCh0aGlzLl9nYXNCdWRnZXQsIG5ldyBCdWlsZFRyYW5zYWN0aW9uRXJyb3IoJ2dhc0J1ZGdldCBpcyByZXF1aXJlZCBiZWZvcmUgYnVpbGRpbmcnKSk7XG4gICAgYXNzZXJ0KHRoaXMuX2dhc1ByaWNlLCBuZXcgQnVpbGRUcmFuc2FjdGlvbkVycm9yKCdnYXNQcmljZSBpcyByZXF1aXJlZCBiZWZvcmUgYnVpbGRpbmcnKSk7XG4gICAgYXNzZXJ0KHRoaXMuX2dhc1BheW1lbnQsIG5ldyBCdWlsZFRyYW5zYWN0aW9uRXJyb3IoJ2dhc1BheW1lbnQgaXMgcmVxdWlyZWQgYmVmb3JlIGJ1aWxkaW5nJykpO1xuXG4gICAgcmV0dXJuIHtcbiAgICAgIHR5cGU6IHRoaXMuX3R5cGUsXG4gICAgICBzZW5kZXI6IHRoaXMuX3NlbmRlcixcbiAgICAgIHBheVR4OiB0aGlzLl9wYXlUeCxcbiAgICAgIGdhc0J1ZGdldDogdGhpcy5fZ2FzQnVkZ2V0LFxuICAgICAgZ2FzUHJpY2U6IHRoaXMuX2dhc1ByaWNlLFxuICAgICAgZ2FzUGF5bWVudDogdGhpcy5fZ2FzUGF5bWVudCxcbiAgICB9O1xuICB9XG5cbiAgLy8gcmVnaW9uIFZhbGlkYXRvcnNcbiAgLyoqIEBpbmhlcml0ZG9jICovXG4gIHZhbGlkYXRlQWRkcmVzcyhhZGRyZXNzOiBCYXNlQWRkcmVzcywgYWRkcmVzc0Zvcm1hdD86IHN0cmluZyk6IHZvaWQge1xuICAgIGlmICghdXRpbHMuaXNWYWxpZEFkZHJlc3MoYWRkcmVzcy5hZGRyZXNzKSkge1xuICAgICAgdGhyb3cgbmV3IEJ1aWxkVHJhbnNhY3Rpb25FcnJvcignSW52YWxpZCBhZGRyZXNzICcgKyBhZGRyZXNzLmFkZHJlc3MpO1xuICAgIH1cbiAgfVxuXG4gIHZhbGlkYXRlR2FzQnVkZ2V0KGdhc0J1ZGdldDogbnVtYmVyKTogdm9pZCB7XG4gICAgaWYgKGdhc0J1ZGdldCA8PSAwKSB7XG4gICAgICB0aHJvdyBuZXcgQnVpbGRUcmFuc2FjdGlvbkVycm9yKCdJbnZhbGlkIGdhcyBidWRnZXQgJyArIGdhc0J1ZGdldCk7XG4gICAgfVxuICB9XG5cbiAgdmFsaWRhdGVHYXNQcmljZShnYXNQcmljZTogbnVtYmVyKTogdm9pZCB7XG4gICAgaWYgKGdhc1ByaWNlICE9PSBTVUlfR0FTX1BSSUNFKSB7XG4gICAgICB0aHJvdyBuZXcgQnVpbGRUcmFuc2FjdGlvbkVycm9yKCdJbnZhbGlkIGdhcyBwcmljZSAnICsgZ2FzUHJpY2UpO1xuICAgIH1cbiAgfVxuXG4gIHZhbGlkYXRlVHhQYXkocGF5VHg6IFBheVR4KTogdm9pZCB7XG4gICAgaWYgKCFwYXlUeC5oYXNPd25Qcm9wZXJ0eSgnY29pbnMnKSkge1xuICAgICAgdGhyb3cgbmV3IEJ1aWxkVHJhbnNhY3Rpb25FcnJvcihgSW52YWxpZCBwYXlUeCwgbWlzc2luZyBjb2luc2ApO1xuICAgIH1cbiAgICBpZiAoIXBheVR4Lmhhc093blByb3BlcnR5KCdyZWNpcGllbnRzJykpIHtcbiAgICAgIHRocm93IG5ldyBCdWlsZFRyYW5zYWN0aW9uRXJyb3IoYEludmFsaWQgcGF5VHgsIG1pc3NpbmcgcmVjaXBpZW50c2ApO1xuICAgIH1cbiAgICBpZiAoIXBheVR4Lmhhc093blByb3BlcnR5KCdhbW91bnRzJykpIHtcbiAgICAgIHRocm93IG5ldyBCdWlsZFRyYW5zYWN0aW9uRXJyb3IoYEludmFsaWQgcGF5VHgsIG1pc3NpbmcgYW1vdW50c2ApO1xuICAgIH1cblxuICAgIGlmIChwYXlUeC5yZWNpcGllbnRzLmxlbmd0aCAhPT0gcGF5VHguYW1vdW50cy5sZW5ndGgpIHtcbiAgICAgIHRocm93IG5ldyBCdWlsZFRyYW5zYWN0aW9uRXJyb3IoXG4gICAgICAgIGByZWNpcGllbnRzIGxlbmd0aCAke3BheVR4LnJlY2lwaWVudHMubGVuZ3RofSBtdXN0IGVxdWFsIHRvIGFtb3VudHMgbGVuZ3RoICR7cGF5VHguYW1vdW50cy5sZW5ndGh9YFxuICAgICAgKTtcbiAgICB9XG4gICAgaWYgKCF1dGlscy5pc1ZhbGlkQW1vdW50cyhwYXlUeC5hbW91bnRzKSkge1xuICAgICAgdGhyb3cgbmV3IEJ1aWxkVHJhbnNhY3Rpb25FcnJvcignSW52YWxpZCBvciBtaXNzaW5nIGFtb3VudHMsIGdvdDogJyArIHBheVR4LmFtb3VudHMpO1xuICAgIH1cblxuICAgIGZvciAoY29uc3QgY29pbiBvZiBwYXlUeC5jb2lucykge1xuICAgICAgdGhpcy52YWxpZGF0ZVN1aU9iamVjdFJlZihjb2luLCAncGF5VHguY29pbicpO1xuICAgIH1cblxuICAgIGZvciAoY29uc3QgcmVjaXBpZW50IG9mIHBheVR4LnJlY2lwaWVudHMpIHtcbiAgICAgIHV0aWxzLnZhbGlkYXRlQWRkcmVzcyhyZWNpcGllbnQsICdwYXlUeC5yZWNpcGllbnQnKTtcbiAgICB9XG4gIH1cblxuICB2YWxpZGF0ZUdhc1BheW1lbnQoZ2FzUGF5bWVudDogU3VpT2JqZWN0UmVmKTogdm9pZCB7XG4gICAgaWYgKCFnYXNQYXltZW50KSB7XG4gICAgICB0aHJvdyBuZXcgQnVpbGRUcmFuc2FjdGlvbkVycm9yKGBJbnZhbGlkIGdhcyBQYXltZW50OiB1bmRlZmluZWRgKTtcbiAgICB9XG4gICAgdGhpcy52YWxpZGF0ZVN1aU9iamVjdFJlZihnYXNQYXltZW50LCAnZ2FzUGF5bWVudCcpO1xuICB9XG5cbiAgdmFsaWRhdGVTdWlPYmplY3RSZWYoc3VpT2JqZWN0UmVmOiBTdWlPYmplY3RSZWYsIGZpZWxkOiBzdHJpbmcpOiB2b2lkIHtcbiAgICBpZiAoIXN1aU9iamVjdFJlZi5oYXNPd25Qcm9wZXJ0eSgnb2JqZWN0SWQnKSkge1xuICAgICAgdGhyb3cgbmV3IEJ1aWxkVHJhbnNhY3Rpb25FcnJvcihgSW52YWxpZCAke2ZpZWxkfSwgbWlzc2luZyBvYmplY3RJZGApO1xuICAgIH1cbiAgICBpZiAoIXN1aU9iamVjdFJlZi5oYXNPd25Qcm9wZXJ0eSgndmVyc2lvbicpIHx8ICF1dGlscy5pc1ZhbGlkQW1vdW50KHN1aU9iamVjdFJlZi52ZXJzaW9uKSkge1xuICAgICAgdGhyb3cgbmV3IEJ1aWxkVHJhbnNhY3Rpb25FcnJvcihgSW52YWxpZCAke2ZpZWxkfSwgaW52YWxpZCBvciBtaXNzaW5nIHZlcnNpb25gKTtcbiAgICB9XG4gICAgaWYgKCFzdWlPYmplY3RSZWYuaGFzT3duUHJvcGVydHkoJ2RpZ2VzdCcpKSB7XG4gICAgICB0aHJvdyBuZXcgQnVpbGRUcmFuc2FjdGlvbkVycm9yKGBJbnZhbGlkICR7ZmllbGR9LCBtaXNzaW5nIGRpZ2VzdGApO1xuICAgIH1cbiAgfVxuXG4gIC8qKiBAaW5oZXJpdGRvYyAqL1xuICB2YWxpZGF0ZUtleShrZXk6IEJhc2VLZXkpOiB2b2lkIHtcbiAgICB0aHJvdyBuZXcgRXJyb3IoJ01ldGhvZCBub3QgaW1wbGVtZW50ZWQuJyk7XG4gIH1cblxuICAvKiogQGluaGVyaXRkb2MgKi9cbiAgdmFsaWRhdGVSYXdUcmFuc2FjdGlvbihyYXdUcmFuc2FjdGlvbjogc3RyaW5nKTogdm9pZCB7XG4gICAgaWYgKCFyYXdUcmFuc2FjdGlvbikge1xuICAgICAgdGhyb3cgbmV3IFBhcnNlVHJhbnNhY3Rpb25FcnJvcignSW52YWxpZCByYXcgdHJhbnNhY3Rpb246IFVuZGVmaW5lZCcpO1xuICAgIH1cbiAgICBpZiAoIXV0aWxzLmlzVmFsaWRSYXdUcmFuc2FjdGlvbihyYXdUcmFuc2FjdGlvbikpIHtcbiAgICAgIHRocm93IG5ldyBQYXJzZVRyYW5zYWN0aW9uRXJyb3IoJ0ludmFsaWQgcmF3IHRyYW5zYWN0aW9uJyk7XG4gICAgfVxuICB9XG5cbiAgLyoqIEBpbmhlcml0ZG9jICovXG4gIHZhbGlkYXRlVHJhbnNhY3Rpb24odHJhbnNhY3Rpb246IFRyYW5zYWN0aW9uKTogdm9pZCB7XG4gICAgaWYgKCF0cmFuc2FjdGlvbi5zdWlUcmFuc2FjdGlvbikge1xuICAgICAgcmV0dXJuO1xuICAgIH1cbiAgICB0aGlzLnZhbGlkYXRlVHJhbnNhY3Rpb25GaWVsZHMoKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBWYWxpZGF0ZXMgYWxsIGZpZWxkcyBhcmUgZGVmaW5lZFxuICAgKi9cbiAgcHJpdmF0ZSB2YWxpZGF0ZVRyYW5zYWN0aW9uRmllbGRzKCk6IHZvaWQge1xuICAgIGlmICh0aGlzLl90eXBlID09PSB1bmRlZmluZWQpIHtcbiAgICAgIHRocm93IG5ldyBCdWlsZFRyYW5zYWN0aW9uRXJyb3IoJ0ludmFsaWQgdHJhbnNhY3Rpb246IG1pc3NpbmcgdHlwZScpO1xuICAgIH1cbiAgICBpZiAodGhpcy5fc2VuZGVyID09PSB1bmRlZmluZWQpIHtcbiAgICAgIHRocm93IG5ldyBCdWlsZFRyYW5zYWN0aW9uRXJyb3IoJ0ludmFsaWQgdHJhbnNhY3Rpb246IG1pc3Npbmcgc2VuZGVyJyk7XG4gICAgfVxuICAgIGlmICh0aGlzLl9nYXNCdWRnZXQgPT09IHVuZGVmaW5lZCkge1xuICAgICAgdGhyb3cgbmV3IEJ1aWxkVHJhbnNhY3Rpb25FcnJvcignSW52YWxpZCB0cmFuc2FjdGlvbjogbWlzc2luZyBnYXMgYnVkZ2V0Jyk7XG4gICAgfVxuICAgIGlmICh0aGlzLl9nYXNQcmljZSA9PT0gdW5kZWZpbmVkIHx8IHRoaXMuX2dhc1ByaWNlICE9PSBTVUlfR0FTX1BSSUNFKSB7XG4gICAgICB0aHJvdyBuZXcgQnVpbGRUcmFuc2FjdGlvbkVycm9yKCdJbnZhbGlkIHRyYW5zYWN0aW9uOiBtaXNzaW5nL2luY29ycmVjdCBnYXMgcHJpY2UnKTtcbiAgICB9XG4gICAgaWYgKHRoaXMuX3BheVR4ID09PSB1bmRlZmluZWQpIHtcbiAgICAgIHRocm93IG5ldyBCdWlsZFRyYW5zYWN0aW9uRXJyb3IoJ0ludmFsaWQgdHJhbnNhY3Rpb246IG1pc3NpbmcgcGF5VHgnKTtcbiAgICB9XG4gICAgaWYgKHRoaXMuX2dhc1BheW1lbnQgPT09IHVuZGVmaW5lZCkge1xuICAgICAgdGhyb3cgbmV3IEJ1aWxkVHJhbnNhY3Rpb25FcnJvcignSW52YWxpZCB0cmFuc2FjdGlvbjogbWlzc2luZyBnYXMgcGF5bWVudCcpO1xuICAgIH1cblxuICAgIGNvbnN0IGNvaW5JZHMgPSB0aGlzLl9wYXlUeC5jb2lucy5tYXAoKGNvaW4pID0+IGNvaW4ub2JqZWN0SWQpO1xuICAgIGlmIChjb2luSWRzLmluY2x1ZGVzKHRoaXMuX2dhc1BheW1lbnQub2JqZWN0SWQpKSB7XG4gICAgICB0aHJvdyBuZXcgQnVpbGRUcmFuc2FjdGlvbkVycm9yKFxuICAgICAgICBgSW52YWxpZCBnYXMgUGF5bWVudCAke3RoaXMuX2dhc1BheW1lbnQub2JqZWN0SWR9LCBjYW5ub3QgYmUgb25lIG9mIHRoZSBpbnB1dENvaW5zYFxuICAgICAgKTtcbiAgICB9XG4gIH1cblxuICAvKiogQGluaGVyaXRkb2MgKi9cbiAgdmFsaWRhdGVWYWx1ZSh2YWx1ZTogQmlnTnVtYmVyKTogdm9pZCB7XG4gICAgaWYgKHZhbHVlLmlzTGVzc1RoYW4oMCkpIHtcbiAgICAgIHRocm93IG5ldyBCdWlsZFRyYW5zYWN0aW9uRXJyb3IoJ1ZhbHVlIGNhbm5vdCBiZSBsZXNzIHRoYW4gemVybycpO1xuICAgIH1cbiAgfVxuICAvLyBlbmRyZWdpb25cbn1cbiJdfQ==
|
package/dist/src/lib/utils.d.ts
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"utils.d.ts","sourceRoot":"","sources":["../../../src/lib/utils.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAyE,MAAM,sBAAsB,CAAC;AAKxH,
|
|
1
|
+
{"version":3,"file":"utils.d.ts","sourceRoot":"","sources":["../../../src/lib/utils.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAyE,MAAM,sBAAsB,CAAC;AAKxH,qBAAa,KAAM,YAAW,SAAS;IACrC,kBAAkB;IAClB,cAAc,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO;IAIrC,kBAAkB;IAClB,iBAAiB,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO;IAIvC,kBAAkB;IAClB,gBAAgB,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO;IAItC,kBAAkB;IAClB,gBAAgB,CAAC,SAAS,EAAE,MAAM,GAAG,OAAO;IAI5C,kBAAkB;IAClB,oBAAoB,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO;IAI3C;;;;;OAKG;IACH,qBAAqB,CAAC,cAAc,EAAE,MAAM,GAAG,OAAO;IAYtD;;;;OAIG;IACH,sBAAsB,CAAC,cAAc,EAAE,MAAM,GAAG,IAAI;IASpD;;;;;OAKG;IACH,iBAAiB,CAAC,SAAS,EAAE,MAAM,EAAE,EAAE,SAAS,EAAE,MAAM,GAAG,IAAI;IAM/D;;;;;OAKG;IACH,eAAe,CAAC,OAAO,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,GAAG,IAAI;IAMzD,kBAAkB;IAClB,cAAc,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO;IAIxC,KAAK,CAAC,KAAK,EAAE,MAAM,GAAG,OAAO;IAI7B,gBAAgB,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM;IAIvC;;;;;OAKG;IACH,cAAc,CAAC,OAAO,EAAE,MAAM,EAAE,GAAG,OAAO;IAS1C,aAAa,CAAC,MAAM,EAAE,MAAM,GAAG,OAAO;IAQtC;;QAEI;IACJ,cAAc,CAAC,EAAE,EAAE,MAAM,GAAG,MAAM;CAGnC;AAED,QAAA,MAAM,KAAK,OAAc,CAAC;AAE1B,eAAe,KAAK,CAAC"}
|
package/dist/src/lib/utils.js
CHANGED
|
@@ -3,12 +3,11 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
|
3
3
|
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
4
4
|
};
|
|
5
5
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
|
-
exports.Utils =
|
|
6
|
+
exports.Utils = void 0;
|
|
7
7
|
const sdk_core_1 = require("@bitgo-beta/sdk-core");
|
|
8
|
-
const bcs_1 = require("@mysten/bcs");
|
|
9
8
|
const bignumber_js_1 = __importDefault(require("bignumber.js"));
|
|
10
|
-
const
|
|
11
|
-
|
|
9
|
+
const constants_1 = require("./constants");
|
|
10
|
+
const bcs_1 = require("./bcs");
|
|
12
11
|
class Utils {
|
|
13
12
|
/** @inheritdoc */
|
|
14
13
|
isValidBlockId(hash) {
|
|
@@ -38,8 +37,8 @@ class Utils {
|
|
|
38
37
|
*/
|
|
39
38
|
isValidRawTransaction(rawTransaction) {
|
|
40
39
|
try {
|
|
41
|
-
const data = Buffer.from(rawTransaction, '
|
|
42
|
-
const trimmedData = new Uint8Array(data.subarray(
|
|
40
|
+
const data = Buffer.from(rawTransaction, 'base64');
|
|
41
|
+
const trimmedData = new Uint8Array(data.subarray(constants_1.TYPE_TAG.length));
|
|
43
42
|
const deserialized = bcs_1.bcs.de('TransactionData', trimmedData);
|
|
44
43
|
bcs_1.bcs.ser('TransactionData', deserialized);
|
|
45
44
|
return true;
|
|
@@ -85,7 +84,7 @@ class Utils {
|
|
|
85
84
|
}
|
|
86
85
|
/** @inheritdoc */
|
|
87
86
|
isValidAddress(address) {
|
|
88
|
-
return this.isHex(address) && this.getHexByteLength(address) ===
|
|
87
|
+
return this.isHex(address) && this.getHexByteLength(address) === constants_1.SUI_ADDRESS_LENGTH;
|
|
89
88
|
}
|
|
90
89
|
isHex(value) {
|
|
91
90
|
return /^(0x|0X)?[a-fA-F0-9]+$/.test(value) && value.length % 2 === 0;
|
|
@@ -124,4 +123,4 @@ class Utils {
|
|
|
124
123
|
exports.Utils = Utils;
|
|
125
124
|
const utils = new Utils();
|
|
126
125
|
exports.default = utils;
|
|
127
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
126
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidXRpbHMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvbGliL3V0aWxzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7OztBQUFBLG1EQUF3SDtBQUN4SCxnRUFBcUM7QUFDckMsMkNBQTJEO0FBQzNELCtCQUE0QjtBQUU1QixNQUFhLEtBQUs7SUFDaEIsa0JBQWtCO0lBQ2xCLGNBQWMsQ0FBQyxJQUFZO1FBQ3pCLE1BQU0sSUFBSSxLQUFLLENBQUMseUJBQXlCLENBQUMsQ0FBQztJQUM3QyxDQUFDO0lBRUQsa0JBQWtCO0lBQ2xCLGlCQUFpQixDQUFDLEdBQVc7UUFDM0IsTUFBTSxJQUFJLEtBQUssQ0FBQyx5QkFBeUIsQ0FBQyxDQUFDO0lBQzdDLENBQUM7SUFFRCxrQkFBa0I7SUFDbEIsZ0JBQWdCLENBQUMsR0FBVztRQUMxQixPQUFPLGtDQUF1QixDQUFDLEdBQUcsQ0FBQyxDQUFDO0lBQ3RDLENBQUM7SUFFRCxrQkFBa0I7SUFDbEIsZ0JBQWdCLENBQUMsU0FBaUI7UUFDaEMsTUFBTSxJQUFJLEtBQUssQ0FBQyx5QkFBeUIsQ0FBQyxDQUFDO0lBQzdDLENBQUM7SUFFRCxrQkFBa0I7SUFDbEIsb0JBQW9CLENBQUMsSUFBWTtRQUMvQixNQUFNLElBQUksS0FBSyxDQUFDLHlCQUF5QixDQUFDLENBQUM7SUFDN0MsQ0FBQztJQUVEOzs7OztPQUtHO0lBQ0gscUJBQXFCLENBQUMsY0FBc0I7UUFDMUMsSUFBSTtZQUNGLE1BQU0sSUFBSSxHQUFHLE1BQU0sQ0FBQyxJQUFJLENBQUMsY0FBYyxFQUFFLFFBQVEsQ0FBQyxDQUFDO1lBQ25ELE1BQU0sV0FBVyxHQUFHLElBQUksVUFBVSxDQUFDLElBQUksQ0FBQyxRQUFRLENBQUMsb0JBQVEsQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDO1lBQ25FLE1BQU0sWUFBWSxHQUFHLFNBQUcsQ0FBQyxFQUFFLENBQUMsaUJBQWlCLEVBQUUsV0FBVyxDQUFDLENBQUM7WUFDNUQsU0FB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cmFuc2FjdGlvbkVycm9yLCBQYXJzZVRyYW5zYWN0aW9uRXJyb3IsIGlzVmFsaWRFZDI1NTE5UHVibGljS2V5IH0gZnJvbSAnQGJpdGdvLWJldGEvc2RrLWNvcmUnO1xuaW1wb3J0IEJpZ051bWJlciBmcm9tICdiaWdudW1iZXIuanMnO1xuaW1wb3J0IHsgU1VJX0FERFJFU1NfTEVOR1RILCBUWVBFX1RBRyB9IGZyb20gJy4vY29uc3RhbnRzJztcbmltcG9ydCB7IGJjcyB9IGZyb20gJy4vYmNzJztcblxuZXhwb3J0IGNsYXNzIFV0aWxzIGltcGxlbWVudHMgQmFzZVV0aWxzIHtcbiAgLyoqIEBpbmhlcml0ZG9jICovXG4gIGlzVmFsaWRCbG9ja0lkKGhhc2g6IHN0cmluZyk6IGJvb2xlYW4ge1xuICAgIHRocm93IG5ldyBFcnJvcignTWV0aG9kIG5vdCBpbXBsZW1lbnRlZC4nKTtcbiAgfVxuXG4gIC8qKiBAaW5oZXJpdGRvYyAqL1xuICBpc1ZhbGlkUHJpdmF0ZUtleShrZXk6IHN0cmluZyk6IGJvb2xlYW4ge1xuICAgIHRocm93IG5ldyBFcnJvcignTWV0aG9kIG5vdCBpbXBsZW1lbnRlZC4nKTtcbiAgfVxuXG4gIC8qKiBAaW5oZXJpdGRvYyAqL1xuICBpc1ZhbGlkUHVibGljS2V5KGtleTogc3RyaW5nKTogYm9vbGVhbiB7XG4gICAgcmV0dXJuIGlzVmFsaWRFZDI1NTE5UHVibGljS2V5KGtleSk7XG4gIH1cblxuICAvKiogQGluaGVyaXRkb2MgKi9cbiAgaXNWYWxpZFNpZ25hdHVyZShzaWduYXR1cmU6IHN0cmluZyk6IGJvb2xlYW4ge1xuICAgIHRocm93IG5ldyBFcnJvcignTWV0aG9kIG5vdCBpbXBsZW1lbnRlZC4nKTtcbiAgfVxuXG4gIC8qKiBAaW5oZXJpdGRvYyAqL1xuICBpc1ZhbGlkVHJhbnNhY3Rpb25JZCh0eElkOiBzdHJpbmcpOiBib29sZWFuIHtcbiAgICB0aHJvdyBuZXcgRXJyb3IoJ01ldGhvZCBub3QgaW1wbGVtZW50ZWQuJyk7XG4gIH1cblxuICAvKipcbiAgICogQ2hlY2tzIGlmIHJhdyB0cmFuc2FjdGlvbiBjYW4gYmUgZGVzZXJpYWxpemVkXG4gICAqXG4gICAqIEBwYXJhbSB7c3RyaW5nfSByYXdUcmFuc2FjdGlvbiAtIHRyYW5zYWN0aW9uIGluIGJhc2U2NCBzdHJpbmcgZm9ybWF0XG4gICAqIEByZXR1cm5zIHtib29sZWFufSAtIHRoZSB2YWxpZGF0aW9uIHJlc3VsdFxuICAgKi9cbiAgaXNWYWxpZFJhd1RyYW5zYWN0aW9uKHJhd1RyYW5zYWN0aW9uOiBzdHJpbmcpOiBib29sZWFuIHtcbiAgICB0cnkge1xuICAgICAgY29uc3QgZGF0YSA9IEJ1ZmZlci5mcm9tKHJhd1RyYW5zYWN0aW9uLCAnYmFzZTY0Jyk7XG4gICAgICBjb25zdCB0cmltbWVkRGF0YSA9IG5ldyBVaW50OEFycmF5KGRhdGEuc3ViYXJyYXkoVFlQRV9UQUcubGVuZ3RoKSk7XG4gICAgICBjb25zdCBkZXNlcmlhbGl6ZWQgPSBiY3MuZGUoJ1RyYW5zYWN0aW9uRGF0YScsIHRyaW1tZWREYXRhKTtcbiAgICAgIGJjcy5zZXIoJ1RyYW5zYWN0aW9uRGF0YScsIGRlc2VyaWFsaXplZCk7XG4gICAgICByZXR1cm4gdHJ1ZTtcbiAgICB9IGNhdGNoIChlKSB7XG4gICAgICByZXR1cm4gZmFsc2U7XG4gICAgfVxuICB9XG5cbiAgLyoqXG4gICAqIENoZWNrIHRoZSByYXcgdHJhbnNhY3Rpb24gaGFzIGEgdmFsaWQgZm9ybWF0IGluIHRoZSBibG9ja2NoYWluIGNvbnRleHQsIHRocm93IG90aGVyd2lzZS5cbiAgICpcbiAgICogQHBhcmFtIHtzdHJpbmd9IHJhd1RyYW5zYWN0aW9uIC0gVHJhbnNhY3Rpb24gaW4gYmFzZTY0IHN0cmluZyAgZm9ybWF0XG4gICAqL1xuICB2YWxpZGF0ZVJhd1RyYW5zYWN0aW9uKHJhd1RyYW5zYWN0aW9uOiBzdHJpbmcpOiB2b2lkIHtcbiAgICBpZiAoIXJhd1RyYW5zYWN0aW9uKSB7XG4gICAgICB0aHJvdyBuZXcgUGFyc2VUcmFuc2FjdGlvbkVycm9yKCdJbnZhbGlkIHJhdyB0cmFuc2FjdGlvbjogVW5kZWZpbmVkJyk7XG4gICAgfVxuICAgIGlmICghdGhpcy5pc1ZhbGlkUmF3VHJhbnNhY3Rpb24ocmF3VHJhbnNhY3Rpb24pKSB7XG4gICAgICB0aHJvdyBuZXcgUGFyc2VUcmFuc2FjdGlvbkVycm9yKCdJbnZhbGlkIHJhdyB0cmFuc2FjdGlvbicpO1xuICAgIH1cbiAgfVxuXG4gIC8qKlxuICAgKiBWYWxpZGF0ZXMgYWRkcmVzc2VzIHRvIGNoZWNrIGlmIGFsbCBleGlzdCBhbmQgYXJlIHZhbGlkIFN1aSBwdWJsaWMga2V5c1xuICAgKlxuICAgKiBAcGFyYW0ge3N0cmluZ30gYWRkcmVzc2VzIFRoZSBhZGRyZXNzIHRvIGJlIHZhbGlkYXRlZFxuICAgKiBAcGFyYW0ge3N0cmluZ30gZmllbGROYW1lIE5hbWUgb2YgdGhlIGZpZWxkIHRvIHZhbGlkYXRlLCBpdHMgbmVlZGVkIHRvIHJldHVybiB3aGljaCBmaWVsZCBpcyBmYWlsaW5nIG9uIGNhc2Ugb2YgZXJyb3IuXG4gICAqL1xuICB2YWxpZGF0ZUFkZHJlc3NlcyhhZGRyZXNzZXM6IHN0cmluZ1tdLCBmaWVsZE5hbWU6IHN0cmluZyk6IHZvaWQge1xuICAgIGZvciAoY29uc3QgYWRkcmVzcyBvZiBhZGRyZXNzZXMpIHtcbiAgICAgIHRoaXMudmFsaWRhdGVBZGRyZXNzKGFkZHJlc3MsIGZpZWxkTmFtZSk7XG4gICAgfVxuICB9XG5cbiAgLyoqXG4gICAqIFZhbGlkYXRlcyBhZGRyZXNzIHRvIGNoZWNrIGlmIGl0IGV4aXN0cyBhbmQgaXMgYSB2YWxpZCBTdWkgcHVibGljIGtleVxuICAgKlxuICAgKiBAcGFyYW0ge3N0cmluZ30gYWRkcmVzcyBUaGUgYWRkcmVzcyB0byBiZSB2YWxpZGF0ZWRcbiAgICogQHBhcmFtIHtzdHJpbmd9IGZpZWxkTmFtZSBOYW1lIG9mIHRoZSBmaWVsZCB0byB2YWxpZGF0ZSwgaXRzIG5lZWRlZCB0byByZXR1cm4gd2hpY2ggZmllbGQgaXMgZmFpbGluZyBvbiBjYXNlIG9mIGVycm9yLlxuICAgKi9cbiAgdmFsaWRhdGVBZGRyZXNzKGFkZHJlc3M6IHN0cmluZywgZmllbGROYW1lOiBzdHJpbmcpOiB2b2lkIHtcbiAgICBpZiAoIWFkZHJlc3MgfHwgIXRoaXMuaXNWYWxpZEFkZHJlc3MoYWRkcmVzcykpIHtcbiAgICAgIHRocm93IG5ldyBCdWlsZFRyYW5zYWN0aW9uRXJyb3IoYEludmFsaWQgb3IgbWlzc2luZyAke2ZpZWxkTmFtZX0sIGdvdDogJHthZGRyZXNzfWApO1xuICAgIH1cbiAgfVxuXG4gIC8qKiBAaW5oZXJpdGRvYyAqL1xuICBpc1ZhbGlkQWRkcmVzcyhhZGRyZXNzOiBzdHJpbmcpOiBib29sZWFuIHtcbiAgICByZXR1cm4gdGhpcy5pc0hleChhZGRyZXNzKSAmJiB0aGlzLmdldEhleEJ5dGVMZW5ndGgoYWRkcmVzcykgPT09IFNVSV9BRERSRVNTX0xFTkdUSDtcbiAgfVxuXG4gIGlzSGV4KHZhbHVlOiBzdHJpbmcpOiBib29sZWFuIHtcbiAgICByZXR1cm4gL14oMHh8MFgpP1thLWZBLUYwLTldKyQvLnRlc3QodmFsdWUpICYmIHZhbHVlLmxlbmd0aCAlIDIgPT09IDA7XG4gIH1cblxuICBnZXRIZXhCeXRlTGVuZ3RoKHZhbHVlOiBzdHJpbmcpOiBudW1iZXIge1xuICAgIHJldHVybiAvXigweHwwWCkvLnRlc3QodmFsdWUpID8gKHZhbHVlLmxlbmd0aCAtIDIpIC8gMiA6IHZhbHVlLmxlbmd0aCAvIDI7XG4gIH1cblxuICAvKipcbiAgICogUmV0dXJucyB3aGV0aGVyIG9yIG5vdCB0aGUgc3RyaW5nIGlzIGEgdmFsaWQgYW1vdW50XG4gICAqXG4gICAqIEBwYXJhbSB7bnVtYmVyW119IGFtb3VudHMgLSB0aGUgYW1vdW50cyB0byB2YWxpZGF0ZVxuICAgKiBAcmV0dXJucyB7Ym9vbGVhbn0gLSB0aGUgdmFsaWRhdGlvbiByZXN1bHRcbiAgICovXG4gIGlzVmFsaWRBbW91bnRzKGFtb3VudHM6IG51bWJlcltdKTogYm9vbGVhbiB7XG4gICAgZm9yIChjb25zdCBhbW91bnQgb2YgYW1vdW50cykge1xuICAgICAgaWYgKCF0aGlzLmlzVmFsaWRBbW91bnQoYW1vdW50KSkge1xuICAgICAgICByZXR1cm4gZmFsc2U7XG4gICAgICB9XG4gICAgfVxuICAgIHJldHVybiB0cnVlO1xuICB9XG5cbiAgaXNWYWxpZEFtb3VudChhbW91bnQ6IG51bWJlcik6IGJvb2xlYW4ge1xuICAgIGNvbnN0IGJpZ051bWJlckFtb3VudCA9IG5ldyBCaWdOdW1iZXIoYW1vdW50KTtcbiAgICBpZiAoIWJpZ051bWJlckFtb3VudC5pc0ludGVnZXIoKSB8fCBiaWdOdW1iZXJBbW91bnQuaXNMZXNzVGhhbk9yRXF1YWxUbygwKSkge1xuICAgICAgcmV0dXJuIGZhbHNlO1xuICAgIH1cbiAgICByZXR1cm4gdHJ1ZTtcbiAgfVxuXG4gIC8qKlxuICAgTm9ybWFsaXplcyBoZXggaWRzIChhZGRyZXNzZXMsIG9iamVjdCBpZHMpIHRvIGFsd2F5cyBjb250YWluIHRoZSAnMHgnIHByZWZpeC5cbiAgICoqL1xuICBub3JtYWxpemVIZXhJZChpZDogc3RyaW5nKTogc3RyaW5nIHtcbiAgICByZXR1cm4gaWQuc3RhcnRzV2l0aCgnMHgnKSA/IGlkIDogJzB4Jy5jb25jYXQoaWQpO1xuICB9XG59XG5cbmNvbnN0IHV0aWxzID0gbmV3IFV0aWxzKCk7XG5cbmV4cG9ydCBkZWZhdWx0IHV0aWxzO1xuIl19
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@bitgo-beta/sdk-coin-sui",
|
|
3
|
-
"version": "1.4.1-alpha.
|
|
3
|
+
"version": "1.4.1-alpha.7",
|
|
4
4
|
"description": "BitGo SDK coin library for Sui",
|
|
5
5
|
"main": "./dist/src/index.js",
|
|
6
6
|
"types": "./dist/src/index.d.ts",
|
|
@@ -40,18 +40,18 @@
|
|
|
40
40
|
]
|
|
41
41
|
},
|
|
42
42
|
"dependencies": {
|
|
43
|
-
"@bitgo-beta/sdk-core": "2.4.1-alpha.
|
|
44
|
-
"@bitgo-beta/statics": "10.0.1-alpha.
|
|
45
|
-
"@mysten/bcs": "^0.
|
|
43
|
+
"@bitgo-beta/sdk-core": "2.4.1-alpha.7",
|
|
44
|
+
"@bitgo-beta/statics": "10.0.1-alpha.7",
|
|
45
|
+
"@mysten/bcs": "^0.4.0",
|
|
46
46
|
"bignumber.js": "^9.0.0",
|
|
47
47
|
"bs58": "^4.0.1",
|
|
48
48
|
"js-sha3": "^0.8.0",
|
|
49
49
|
"lodash": "^4.17.21"
|
|
50
50
|
},
|
|
51
51
|
"devDependencies": {
|
|
52
|
-
"@bitgo-beta/sdk-api": "1.6.1-alpha.
|
|
52
|
+
"@bitgo-beta/sdk-api": "1.6.1-alpha.7",
|
|
53
53
|
"@bitgo-beta/sdk-test": "^1.2.4",
|
|
54
54
|
"@types/lodash": "^4.14.183"
|
|
55
55
|
},
|
|
56
|
-
"gitHead": "
|
|
56
|
+
"gitHead": "dd4fb6f3dc2e0c1d0e789c8be1f41f7b43febe55"
|
|
57
57
|
}
|