@bitgo/sdk-coin-ton 3.11.5 → 3.12.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/src/lib/constants.d.ts +2 -0
- package/dist/src/lib/constants.d.ts.map +1 -1
- package/dist/src/lib/constants.js +4 -2
- package/dist/src/lib/tonWhalesDepositBuilder.d.ts +12 -0
- package/dist/src/lib/tonWhalesDepositBuilder.d.ts.map +1 -0
- package/dist/src/lib/tonWhalesDepositBuilder.js +42 -0
- package/dist/src/lib/tonWhalesWithdrawalBuilder.d.ts +30 -0
- package/dist/src/lib/tonWhalesWithdrawalBuilder.d.ts.map +1 -0
- package/dist/src/lib/tonWhalesWithdrawalBuilder.js +59 -0
- package/dist/src/lib/transaction.d.ts.map +1 -1
- package/dist/src/lib/transaction.js +39 -1
- package/dist/src/lib/transactionBuilderFactory.d.ts +4 -0
- package/dist/src/lib/transactionBuilderFactory.d.ts.map +1 -1
- package/dist/src/lib/transactionBuilderFactory.js +15 -1
- package/dist/test/resources/ton.d.ts +44 -0
- package/dist/test/resources/ton.d.ts.map +1 -1
- package/dist/test/resources/ton.js +50 -2
- package/dist/test/unit/tonWhalesDepositBuilder.d.ts +2 -0
- package/dist/test/unit/tonWhalesDepositBuilder.d.ts.map +1 -0
- package/dist/test/unit/tonWhalesDepositBuilder.js +114 -0
- package/dist/test/unit/tonWhalesWithdrawalBuilder.d.ts +2 -0
- package/dist/test/unit/tonWhalesWithdrawalBuilder.d.ts.map +1 -0
- package/dist/test/unit/tonWhalesWithdrawalBuilder.js +127 -0
- package/dist/tsconfig.tsbuildinfo +1 -1
- package/package.json +6 -6
|
@@ -3,4 +3,6 @@ export declare const WALLET_ID = 698983191;
|
|
|
3
3
|
export declare const JETTON_TRANSFER_OPCODE = 260734629;
|
|
4
4
|
export declare const WITHDRAW_OPCODE = "00001000";
|
|
5
5
|
export declare const VESTING_CONTRACT_CODE_B64 = "te6cckECHAEAA/sAART/APSkE/S88sgLAQIBIAISAgFIAwUDrNBsIiDXScFgkVvgAdDTAwFxsJFb4PpAMNs8AdMf0z/4S1JAxwUjghCnczrNurCOpGwS2zyCEPdzOs0BcIAYyMsFUATPFiP6AhPLassfyz/JgED7AOMOExQEAc74SlJAxwUDghByWKabuhOwjtGOLAH6QH/IygAC+kQByMoHy//J0PhEECOBAQj0QfhkINdKwgAglQHUMNAB3rMS5oIQ8limmzJwgBjIywVQBM8WI/oCE8tqyx/LP8mAQPsA2zySXwPiGwIBIAYPAgEgBwoCAW4ICQAZrc52omhAIGuQ64X/wAAZrx32omhAEGuQ64WPwAIBYgsMAUutNG2eNvwiRw1AgIR6STfSmRDOaQPp/5g3gSgBt4EBSJhxWfMYQBMCAWoNDgAPol+1E0NcLH4BL6LHbPPpEAcjKB8v/ydD4RIEBCPQKb6ExhMCASAQEQEpukYts8+EX4RvhH+Ej4SfhK+Ev4RIEwINuYRts82zyBMVA7jygwjXGCDTH9Mf0x8C+CO78mTtRNDTH9Mf0/8wWrryoVAzuvKiAvkBQDP5EPKj+ADbPCDXSsABjpntRO1F7UeRW+1n7WXtZI6C2zztQe3xAfL/kTDi+EGk+GHbPBMUGwB+7UTQ0x8B+GHTHwH4YtP/Afhj9AQB+GTUAdDTPwH4ZdMfAfhm0x8B+GfTHwH4aPoAAfhp+kAB+Gr6QAH4a9HRAlzTB9TR+CPbPCDCAI6bIsAD8uBkIdDTA/pAMfpA+EpSIMcFs5JfBOMNkTDiAfsAFRYAYPhF+EagUhC8kjBw4PhF+EigUhC5kzD4SeD4SfhJ+EUTofhHqQT4RvhHqQQQI6mEoQP6IfpEAcjKB8v/ydD4RIEBCPQKb6Exj18zAXKwwALy4GUB+gAxcdch+gAx+gAx0z8x0x8x0wABwADy4GbTAAGT1DDQ3iFx2zyOKjHTHzAgghBOc3RLuiGCEEdldCS6sSGCEFZ0Q3C6sQGCEFZvdGW6sfLgZ+MOcJJfA+IgwgAYFxoC6gFw2zyObSDXScIAjmPTHyHAACKDC7qxIoEQAbqxIoIQR9VDkbqxIoIQWV8HvLqxIoIQafswbLqxIoIQVm90ZbqxIoIQVnRDcLqx8uBnAcAAIddJwgCwjhXTBzAgwGQhwHexIcBEsQHAV7Hy4GiRMOKRMOLjDRgZAEQB+kQBw/+SW3DgAfgzIG6SW3Dg0CDXSYMHuZJbcODXC/+6ABrTHzCCEFZvdGW68uBnAA6TcvsCkTDiAGb4SPhH+Eb4RcjLP8sfyx/LH/hJ+gL4Ss8W+EvPFsn4RPhD+EL4QcjLH8sfy//0AMzJ7VSo1+S9";
|
|
6
|
+
export declare const TON_WHALES_DEPOSIT_OPCODE = "2077040623";
|
|
7
|
+
export declare const TON_WHALES_WITHDRAW_OPCODE = "3665837821";
|
|
6
8
|
//# sourceMappingURL=constants.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"constants.d.ts","sourceRoot":"","sources":["../../../src/lib/constants.ts"],"names":[],"mappings":"AAAA,eAAO,MAAM,0BAA0B,MAAM,CAAC;AAC9C,eAAO,MAAM,SAAS,YAAY,CAAC;AACnC,eAAO,MAAM,sBAAsB,YAAa,CAAC;AACjD,eAAO,MAAM,eAAe,aAAa,CAAC;AAC1C,eAAO,MAAM,yBAAyB,y2CACk0C,CAAC"}
|
|
1
|
+
{"version":3,"file":"constants.d.ts","sourceRoot":"","sources":["../../../src/lib/constants.ts"],"names":[],"mappings":"AAAA,eAAO,MAAM,0BAA0B,MAAM,CAAC;AAC9C,eAAO,MAAM,SAAS,YAAY,CAAC;AACnC,eAAO,MAAM,sBAAsB,YAAa,CAAC;AACjD,eAAO,MAAM,eAAe,aAAa,CAAC;AAC1C,eAAO,MAAM,yBAAyB,y2CACk0C,CAAC;AACz2C,eAAO,MAAM,yBAAyB,eAAe,CAAC;AACtD,eAAO,MAAM,0BAA0B,eAAe,CAAC"}
|
|
@@ -1,9 +1,11 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.VESTING_CONTRACT_CODE_B64 = exports.WITHDRAW_OPCODE = exports.JETTON_TRANSFER_OPCODE = exports.WALLET_ID = exports.VESTING_CONTRACT_WALLET_ID = void 0;
|
|
3
|
+
exports.TON_WHALES_WITHDRAW_OPCODE = exports.TON_WHALES_DEPOSIT_OPCODE = exports.VESTING_CONTRACT_CODE_B64 = exports.WITHDRAW_OPCODE = exports.JETTON_TRANSFER_OPCODE = exports.WALLET_ID = exports.VESTING_CONTRACT_WALLET_ID = void 0;
|
|
4
4
|
exports.VESTING_CONTRACT_WALLET_ID = 268;
|
|
5
5
|
exports.WALLET_ID = 698983191;
|
|
6
6
|
exports.JETTON_TRANSFER_OPCODE = 0x0f8a7ea5;
|
|
7
7
|
exports.WITHDRAW_OPCODE = '00001000';
|
|
8
8
|
exports.VESTING_CONTRACT_CODE_B64 = 'te6cckECHAEAA/sAART/APSkE/S88sgLAQIBIAISAgFIAwUDrNBsIiDXScFgkVvgAdDTAwFxsJFb4PpAMNs8AdMf0z/4S1JAxwUjghCnczrNurCOpGwS2zyCEPdzOs0BcIAYyMsFUATPFiP6AhPLassfyz/JgED7AOMOExQEAc74SlJAxwUDghByWKabuhOwjtGOLAH6QH/IygAC+kQByMoHy//J0PhEECOBAQj0QfhkINdKwgAglQHUMNAB3rMS5oIQ8limmzJwgBjIywVQBM8WI/oCE8tqyx/LP8mAQPsA2zySXwPiGwIBIAYPAgEgBwoCAW4ICQAZrc52omhAIGuQ64X/wAAZrx32omhAEGuQ64WPwAIBYgsMAUutNG2eNvwiRw1AgIR6STfSmRDOaQPp/5g3gSgBt4EBSJhxWfMYQBMCAWoNDgAPol+1E0NcLH4BL6LHbPPpEAcjKB8v/ydD4RIEBCPQKb6ExhMCASAQEQEpukYts8+EX4RvhH+Ej4SfhK+Ev4RIEwINuYRts82zyBMVA7jygwjXGCDTH9Mf0x8C+CO78mTtRNDTH9Mf0/8wWrryoVAzuvKiAvkBQDP5EPKj+ADbPCDXSsABjpntRO1F7UeRW+1n7WXtZI6C2zztQe3xAfL/kTDi+EGk+GHbPBMUGwB+7UTQ0x8B+GHTHwH4YtP/Afhj9AQB+GTUAdDTPwH4ZdMfAfhm0x8B+GfTHwH4aPoAAfhp+kAB+Gr6QAH4a9HRAlzTB9TR+CPbPCDCAI6bIsAD8uBkIdDTA/pAMfpA+EpSIMcFs5JfBOMNkTDiAfsAFRYAYPhF+EagUhC8kjBw4PhF+EigUhC5kzD4SeD4SfhJ+EUTofhHqQT4RvhHqQQQI6mEoQP6IfpEAcjKB8v/ydD4RIEBCPQKb6Exj18zAXKwwALy4GUB+gAxcdch+gAx+gAx0z8x0x8x0wABwADy4GbTAAGT1DDQ3iFx2zyOKjHTHzAgghBOc3RLuiGCEEdldCS6sSGCEFZ0Q3C6sQGCEFZvdGW6sfLgZ+MOcJJfA+IgwgAYFxoC6gFw2zyObSDXScIAjmPTHyHAACKDC7qxIoEQAbqxIoIQR9VDkbqxIoIQWV8HvLqxIoIQafswbLqxIoIQVm90ZbqxIoIQVnRDcLqx8uBnAcAAIddJwgCwjhXTBzAgwGQhwHexIcBEsQHAV7Hy4GiRMOKRMOLjDRgZAEQB+kQBw/+SW3DgAfgzIG6SW3Dg0CDXSYMHuZJbcODXC/+6ABrTHzCCEFZvdGW68uBnAA6TcvsCkTDiAGb4SPhH+Eb4RcjLP8sfyx/LH/hJ+gL4Ss8W+EvPFsn4RPhD+EL4QcjLH8sfy//0AMzJ7VSo1+S9';
|
|
9
|
-
|
|
9
|
+
exports.TON_WHALES_DEPOSIT_OPCODE = '2077040623';
|
|
10
|
+
exports.TON_WHALES_WITHDRAW_OPCODE = '3665837821';
|
|
11
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29uc3RhbnRzLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL2xpYi9jb25zdGFudHMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7O0FBQWEsUUFBQSwwQkFBMEIsR0FBRyxHQUFHLENBQUM7QUFDakMsUUFBQSxTQUFTLEdBQUcsU0FBUyxDQUFDO0FBQ3RCLFFBQUEsc0JBQXNCLEdBQUcsVUFBVSxDQUFDO0FBQ3BDLFFBQUEsZUFBZSxHQUFHLFVBQVUsQ0FBQztBQUM3QixRQUFBLHlCQUF5QixHQUNwQyxzMkNBQXMyQyxDQUFDO0FBQzUxQyxRQUFBLHlCQUF5QixHQUFHLFlBQVksQ0FBQztBQUN6QyxRQUFBLDBCQUEwQixHQUFHLFlBQVksQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCBjb25zdCBWRVNUSU5HX0NPTlRSQUNUX1dBTExFVF9JRCA9IDI2ODtcbmV4cG9ydCBjb25zdCBXQUxMRVRfSUQgPSA2OTg5ODMxOTE7XG5leHBvcnQgY29uc3QgSkVUVE9OX1RSQU5TRkVSX09QQ09ERSA9IDB4MGY4YTdlYTU7XG5leHBvcnQgY29uc3QgV0lUSERSQVdfT1BDT0RFID0gJzAwMDAxMDAwJztcbmV4cG9ydCBjb25zdCBWRVNUSU5HX0NPTlRSQUNUX0NPREVfQjY0ID1cbiAgJ3RlNmNja0VDSEFFQUEvc0FBUlQvQVBTa0UvUzg4c2dMQVFJQklBSVNBZ0ZJQXdVRHJOQnNJaURYU2NGZ2tWdmdBZERUQXdGeHNKRmI0UHBBTU5zOEFkTWYwei80UzFKQXh3VWpnaENuY3pyTnVyQ09wR3dTMnp5Q0VQZHpPczBCY0lBWXlNc0ZVQVRQRmlQNkFoUExhc3NmeXovSmdFRDdBT01PRXhRRUFjNzRTbEpBeHdVRGdoQnlXS2FidWhPd2p0R09MQUg2UUgvSXlnQUMra1FCeU1vSHkvL0owUGhFRUNPQkFRajBRZmhrSU5kS3dnQWdsUUhVTU5BQjNyTVM1b0lROGxpbW16SndnQmpJeXdWUUJNOFdJL29DRTh0cXl4L0xQOG1BUVBzQTJ6eVNYd1BpR3dJQklBWVBBZ0VnQndvQ0FXNElDUUFacmM1Mm9taEFJR3VRNjRYL3dBQVpyeDMyb21oQUVHdVE2NFdQd0FJQllnc01BVXV0TkcyZU52d2lSdzFBZ0lSNlNUZlNtUkRPYVFQcC81ZzNnU2dCdDRFQlNKaHhXZk1ZUUJNQ0FXb05EZ0FQb2wrMUUwTmNMSDRCTDZMSGJQUHBFQWNqS0I4di95ZEQ0UklFQkNQUUtiNkV4aE1DQVNBUUVRRXB1a1l0czgrRVg0UnZoSCtFajRTZmhLK0V2NFJJRXdJTnVZUnRzODJ6eUJNVkE3anlnd2pYR0NEVEg5TWYweDhDK0NPNzhtVHRSTkRUSDlNZjAvOHdXcnJ5b1ZBenV2S2lBdmtCUURQNUVQS2orQURiUENEWFNzQUJqcG50Uk8xRjdVZVJXKzFuN1dYdFpJNkMyenp0UWUzeEFmTC9rVERpK0VHaytHSGJQQk1VR3dCKzdVVFEweDhCK0dIVEh3SDRZdFAvQWZoajlBUUIrR1RVQWREVFB3SDRaZE1mQWZobTB4OEIrR2ZUSHdINGFQb0FBZmhwK2tBQitHcjZRQUg0YTlIUkFselRCOVRSK0NQYlBDRENBSTZiSXNBRDh1QmtJZERUQS9wQU1mcEErRXBTSU1jRnM1SmZCT01Oa1REaUFmc0FGUllBWVBoRitFYWdVaEM4a2pCdzRQaEYrRWlnVWhDNWt6RDRTZUQ0U2ZoSitFVVRvZmhIcVFUNFJ2aEhxUVFRSTZtRW9RUDZJZnBFQWNqS0I4di95ZEQ0UklFQkNQUUtiNkV4ajE4ekFYS3d3QUx5NEdVQitnQXhjZGNoK2dBeCtnQXgwejh4MHg4eDB3QUJ3QUR5NEdiVEFBR1QxRERRM2lGeDJ6eU9LakhUSHpBZ2doQk9jM1JMdWlHQ0VFZGxkQ1M2c1NHQ0VGWjBRM0M2c1FHQ0VGWnZkR1c2c2ZMZ1orTU9jSkpmQStJZ3dnQVlGeG9DNmdGdzJ6eU9iU0RYU2NJQWptUFRIeUhBQUNLREM3cXhJb0VRQWJxeElvSVFSOVZEa2JxeElvSVFXVjhIdkxxeElvSVFhZnN3YkxxeElvSVFWbTkwWmJxeElvSVFWblJEY0xxeDh1Qm5BY0FBSWRkSndnQ3dqaFhUQnpBZ3dHUWh3SGV4SWNCRXNRSEFWN0h5NEdpUk1PS1JNT0xqRFJnWkFFUUIra1FCdy8rU1czRGdBZmd6SUc2U1czRGcwQ0RYU1lNSHVaSmJjT0RYQy8rNkFCclRIekNDRUZadmRHVzY4dUJuQUE2VGN2c0NrVERpQUdiNFNQaEgrRWI0UmNqTFA4c2Z5eC9MSC9oSitnTDRTczhXK0V2UEZzbjRSUGhEK0VMNFFjakxIOHNmeS8vMEFNeko3VlNvMStTOSc7XG5leHBvcnQgY29uc3QgVE9OX1dIQUxFU19ERVBPU0lUX09QQ09ERSA9ICcyMDc3MDQwNjIzJztcbmV4cG9ydCBjb25zdCBUT05fV0hBTEVTX1dJVEhEUkFXX09QQ09ERSA9ICczNjY1ODM3ODIxJztcbiJdfQ==
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
import { BaseCoin as CoinConfig } from '@bitgo/statics';
|
|
2
|
+
import { Recipient, TransactionType } from '@bitgo/sdk-core';
|
|
3
|
+
import { TransactionBuilder } from './transactionBuilder';
|
|
4
|
+
export declare class TonWhalesDepositBuilder extends TransactionBuilder {
|
|
5
|
+
constructor(_coinConfig: Readonly<CoinConfig>);
|
|
6
|
+
protected get transactionType(): TransactionType;
|
|
7
|
+
setDepositMessage(queryId?: string): TonWhalesDepositBuilder;
|
|
8
|
+
setDepositAmount(amount: string): TonWhalesDepositBuilder;
|
|
9
|
+
send(recipient: Recipient): TonWhalesDepositBuilder;
|
|
10
|
+
setMessage(msg: string): TonWhalesDepositBuilder;
|
|
11
|
+
}
|
|
12
|
+
//# sourceMappingURL=tonWhalesDepositBuilder.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"tonWhalesDepositBuilder.d.ts","sourceRoot":"","sources":["../../../src/lib/tonWhalesDepositBuilder.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,IAAI,UAAU,EAAE,MAAM,gBAAgB,CAAC;AACxD,OAAO,EAAE,SAAS,EAAE,eAAe,EAAE,MAAM,iBAAiB,CAAC;AAC7D,OAAO,EAAE,kBAAkB,EAAE,MAAM,sBAAsB,CAAC;AAI1D,qBAAa,uBAAwB,SAAQ,kBAAkB;gBACjD,WAAW,EAAE,QAAQ,CAAC,UAAU,CAAC;IAK7C,SAAS,KAAK,eAAe,IAAI,eAAe,CAE/C;IAED,iBAAiB,CAAC,OAAO,CAAC,EAAE,MAAM,GAAG,uBAAuB;IAS5D,gBAAgB,CAAC,MAAM,EAAE,MAAM,GAAG,uBAAuB;IASzD,IAAI,CAAC,SAAS,EAAE,SAAS,GAAG,uBAAuB;IAKnD,UAAU,CAAC,GAAG,EAAE,MAAM,GAAG,uBAAuB;CAGjD"}
|
|
@@ -0,0 +1,42 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.TonWhalesDepositBuilder = void 0;
|
|
4
|
+
const sdk_core_1 = require("@bitgo/sdk-core");
|
|
5
|
+
const transactionBuilder_1 = require("./transactionBuilder");
|
|
6
|
+
const transaction_1 = require("./transaction");
|
|
7
|
+
const constants_1 = require("./constants");
|
|
8
|
+
class TonWhalesDepositBuilder extends transactionBuilder_1.TransactionBuilder {
|
|
9
|
+
constructor(_coinConfig) {
|
|
10
|
+
super(_coinConfig);
|
|
11
|
+
this._transaction = new transaction_1.Transaction(_coinConfig);
|
|
12
|
+
}
|
|
13
|
+
get transactionType() {
|
|
14
|
+
return sdk_core_1.TransactionType.TonWhalesDeposit;
|
|
15
|
+
}
|
|
16
|
+
setDepositMessage(queryId) {
|
|
17
|
+
// Deposit payload is just OpCode + QueryId.
|
|
18
|
+
// The Amount is in the transaction value (recipient.amount)
|
|
19
|
+
// The Gas Limit is hardcoded in Transaction.ts build()
|
|
20
|
+
const qId = queryId || '0000000000000000';
|
|
21
|
+
this.transaction.message = constants_1.TON_WHALES_DEPOSIT_OPCODE + qId;
|
|
22
|
+
return this;
|
|
23
|
+
}
|
|
24
|
+
setDepositAmount(amount) {
|
|
25
|
+
if (!this.transaction.recipient) {
|
|
26
|
+
this.transaction.recipient = { address: '', amount: amount };
|
|
27
|
+
}
|
|
28
|
+
else {
|
|
29
|
+
this.transaction.recipient.amount = amount;
|
|
30
|
+
}
|
|
31
|
+
return this;
|
|
32
|
+
}
|
|
33
|
+
send(recipient) {
|
|
34
|
+
this.transaction.recipient = recipient;
|
|
35
|
+
return this;
|
|
36
|
+
}
|
|
37
|
+
setMessage(msg) {
|
|
38
|
+
throw new Error('Method not implemented.');
|
|
39
|
+
}
|
|
40
|
+
}
|
|
41
|
+
exports.TonWhalesDepositBuilder = TonWhalesDepositBuilder;
|
|
42
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidG9uV2hhbGVzRGVwb3NpdEJ1aWxkZXIuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvbGliL3RvbldoYWxlc0RlcG9zaXRCdWlsZGVyLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7OztBQUNBLDhDQUE2RDtBQUM3RCw2REFBMEQ7QUFDMUQsK0NBQTRDO0FBQzVDLDJDQUF3RDtBQUV4RCxNQUFhLHVCQUF3QixTQUFRLHVDQUFrQjtJQUM3RCxZQUFZLFdBQWlDO1FBQzNDLEtBQUssQ0FBQyxXQUFXLENBQUMsQ0FBQztRQUNuQixJQUFJLENBQUMsWUFBWSxHQUFHLElBQUkseUJBQVcsQ0FBQyxXQUFXLENBQUMsQ0FBQztJQUNuRCxDQUFDO0lBRUQsSUFBYyxlQUFlO1FBQzNCLE9BQU8sMEJBQWUsQ0FBQyxnQkFBZ0IsQ0FBQztJQUMxQyxDQUFDO0lBRUQsaUJBQWlCLENBQUMsT0FBZ0I7UUFDaEMsNENBQTRDO1FBQzVDLDREQUE0RDtRQUM1RCx1REFBdUQ7UUFDdkQsTUFBTSxHQUFHLEdBQUcsT0FBTyxJQUFJLGtCQUFrQixDQUFDO1FBQzFDLElBQUksQ0FBQyxXQUFXLENBQUMsT0FBTyxHQUFHLHFDQUF5QixHQUFHLEdBQUcsQ0FBQztRQUMzRCxPQUFPLElBQUksQ0FBQztJQUNkLENBQUM7SUFFRCxnQkFBZ0IsQ0FBQyxNQUFjO1FBQzdCLElBQUksQ0FBQyxJQUFJLENBQUMsV0FBVyxDQUFDLFNBQVMsRUFBRSxDQUFDO1lBQ2hDLElBQUksQ0FBQyxXQUFXLENBQUMsU0FBUyxHQUFHLEVBQUUsT0FBTyxFQUFFLEVBQUUsRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLENBQUM7UUFDL0QsQ0FBQzthQUFNLENBQUM7WUFDTixJQUFJLENBQUMsV0FBVyxDQUFDLFNBQVMsQ0FBQyxNQUFNLEdBQUcsTUFBTSxDQUFDO1FBQzdDLENBQUM7UUFDRCxPQUFPLElBQUksQ0FBQztJQUNkLENBQUM7SUFFRCxJQUFJLENBQUMsU0FBb0I7UUFDdkIsSUFBSSxDQUFDLFdBQVcsQ0FBQyxTQUFTLEdBQUcsU0FBUyxDQUFDO1FBQ3ZDLE9BQU8sSUFBSSxDQUFDO0lBQ2QsQ0FBQztJQUVELFVBQVUsQ0FBQyxHQUFXO1FBQ3BCLE1BQU0sSUFBSSxLQUFLLENBQUMseUJBQXlCLENBQUMsQ0FBQztJQUM3QyxDQUFDO0NBQ0Y7QUFwQ0QsMERBb0NDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQmFzZUNvaW4gYXMgQ29pbkNvbmZpZyB9IGZyb20gJ0BiaXRnby9zdGF0aWNzJztcbmltcG9ydCB7IFJlY2lwaWVudCwgVHJhbnNhY3Rpb25UeXBlIH0gZnJvbSAnQGJpdGdvL3Nkay1jb3JlJztcbmltcG9ydCB7IFRyYW5zYWN0aW9uQnVpbGRlciB9IGZyb20gJy4vdHJhbnNhY3Rpb25CdWlsZGVyJztcbmltcG9ydCB7IFRyYW5zYWN0aW9uIH0gZnJvbSAnLi90cmFuc2FjdGlvbic7XG5pbXBvcnQgeyBUT05fV0hBTEVTX0RFUE9TSVRfT1BDT0RFIH0gZnJvbSAnLi9jb25zdGFudHMnO1xuXG5leHBvcnQgY2xhc3MgVG9uV2hhbGVzRGVwb3NpdEJ1aWxkZXIgZXh0ZW5kcyBUcmFuc2FjdGlvbkJ1aWxkZXIge1xuICBjb25zdHJ1Y3RvcihfY29pbkNvbmZpZzogUmVhZG9ubHk8Q29pbkNvbmZpZz4pIHtcbiAgICBzdXBlcihfY29pbkNvbmZpZyk7XG4gICAgdGhpcy5fdHJhbnNhY3Rpb24gPSBuZXcgVHJhbnNhY3Rpb24oX2NvaW5Db25maWcpO1xuICB9XG5cbiAgcHJvdGVjdGVkIGdldCB0cmFuc2FjdGlvblR5cGUoKTogVHJhbnNhY3Rpb25UeXBlIHtcbiAgICByZXR1cm4gVHJhbnNhY3Rpb25UeXBlLlRvbldoYWxlc0RlcG9zaXQ7XG4gIH1cblxuICBzZXREZXBvc2l0TWVzc2FnZShxdWVyeUlkPzogc3RyaW5nKTogVG9uV2hhbGVzRGVwb3NpdEJ1aWxkZXIge1xuICAgIC8vIERlcG9zaXQgcGF5bG9hZCBpcyBqdXN0IE9wQ29kZSArIFF1ZXJ5SWQuXG4gICAgLy8gVGhlIEFtb3VudCBpcyBpbiB0aGUgdHJhbnNhY3Rpb24gdmFsdWUgKHJlY2lwaWVudC5hbW91bnQpXG4gICAgLy8gVGhlIEdhcyBMaW1pdCBpcyBoYXJkY29kZWQgaW4gVHJhbnNhY3Rpb24udHMgYnVpbGQoKVxuICAgIGNvbnN0IHFJZCA9IHF1ZXJ5SWQgfHwgJzAwMDAwMDAwMDAwMDAwMDAnO1xuICAgIHRoaXMudHJhbnNhY3Rpb24ubWVzc2FnZSA9IFRPTl9XSEFMRVNfREVQT1NJVF9PUENPREUgKyBxSWQ7XG4gICAgcmV0dXJuIHRoaXM7XG4gIH1cblxuICBzZXREZXBvc2l0QW1vdW50KGFtb3VudDogc3RyaW5nKTogVG9uV2hhbGVzRGVwb3NpdEJ1aWxkZXIge1xuICAgIGlmICghdGhpcy50cmFuc2FjdGlvbi5yZWNpcGllbnQpIHtcbiAgICAgIHRoaXMudHJhbnNhY3Rpb24ucmVjaXBpZW50ID0geyBhZGRyZXNzOiAnJywgYW1vdW50OiBhbW91bnQgfTtcbiAgICB9IGVsc2Uge1xuICAgICAgdGhpcy50cmFuc2FjdGlvbi5yZWNpcGllbnQuYW1vdW50ID0gYW1vdW50O1xuICAgIH1cbiAgICByZXR1cm4gdGhpcztcbiAgfVxuXG4gIHNlbmQocmVjaXBpZW50OiBSZWNpcGllbnQpOiBUb25XaGFsZXNEZXBvc2l0QnVpbGRlciB7XG4gICAgdGhpcy50cmFuc2FjdGlvbi5yZWNpcGllbnQgPSByZWNpcGllbnQ7XG4gICAgcmV0dXJuIHRoaXM7XG4gIH1cblxuICBzZXRNZXNzYWdlKG1zZzogc3RyaW5nKTogVG9uV2hhbGVzRGVwb3NpdEJ1aWxkZXIge1xuICAgIHRocm93IG5ldyBFcnJvcignTWV0aG9kIG5vdCBpbXBsZW1lbnRlZC4nKTtcbiAgfVxufVxuIl19
|
|
@@ -0,0 +1,30 @@
|
|
|
1
|
+
import { BaseCoin as CoinConfig } from '@bitgo/statics';
|
|
2
|
+
import { Recipient, TransactionType } from '@bitgo/sdk-core';
|
|
3
|
+
import { TransactionBuilder } from './transactionBuilder';
|
|
4
|
+
export declare class TonWhalesWithdrawalBuilder extends TransactionBuilder {
|
|
5
|
+
constructor(_coinConfig: Readonly<CoinConfig>);
|
|
6
|
+
protected get transactionType(): TransactionType;
|
|
7
|
+
/**
|
|
8
|
+
* Sets the payload for the withdrawal request.
|
|
9
|
+
* Structure: OpCode (32) + QueryId (64) + GasLimit (Coins) + UnstakeAmount (Coins)
|
|
10
|
+
* * @param unstakeAmount The amount of NanoTON to unstake (inside payload)
|
|
11
|
+
* @param unstakeAmount The amount to unstake
|
|
12
|
+
* @param queryId Optional custom query ID
|
|
13
|
+
*/
|
|
14
|
+
setWithdrawalMessage(unstakeAmount: string, queryId?: string): TonWhalesWithdrawalBuilder;
|
|
15
|
+
/**
|
|
16
|
+
* Sets the message to withdraw EVERYTHING from the pool.
|
|
17
|
+
* This sets the unstakeAmount to "0", which is the specific signal for full withdrawal.
|
|
18
|
+
*/
|
|
19
|
+
setFullWithdrawalMessage(queryId?: string): TonWhalesWithdrawalBuilder;
|
|
20
|
+
/**
|
|
21
|
+
* Sets the value attached to the transaction (The Fees).
|
|
22
|
+
* NOTE: This is NOT the unstake amount. This is the fee paid to the pool
|
|
23
|
+
* to process the request (e.g. withdrawFee + receiptPrice).
|
|
24
|
+
* * @param amount NanoTON amount to attach to the message
|
|
25
|
+
*/
|
|
26
|
+
setForwardAmount(amount: string): TonWhalesWithdrawalBuilder;
|
|
27
|
+
send(recipient: Recipient): TonWhalesWithdrawalBuilder;
|
|
28
|
+
setMessage(msg: string): TonWhalesWithdrawalBuilder;
|
|
29
|
+
}
|
|
30
|
+
//# sourceMappingURL=tonWhalesWithdrawalBuilder.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"tonWhalesWithdrawalBuilder.d.ts","sourceRoot":"","sources":["../../../src/lib/tonWhalesWithdrawalBuilder.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,IAAI,UAAU,EAAE,MAAM,gBAAgB,CAAC;AACxD,OAAO,EAAE,SAAS,EAAE,eAAe,EAAE,MAAM,iBAAiB,CAAC;AAC7D,OAAO,EAAE,kBAAkB,EAAE,MAAM,sBAAsB,CAAC;AAI1D,qBAAa,0BAA2B,SAAQ,kBAAkB;gBACpD,WAAW,EAAE,QAAQ,CAAC,UAAU,CAAC;IAK7C,SAAS,KAAK,eAAe,IAAI,eAAe,CAE/C;IAED;;;;;;OAMG;IACH,oBAAoB,CAAC,aAAa,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,MAAM,GAAG,0BAA0B;IAOzF;;;OAGG;IACH,wBAAwB,CAAC,OAAO,CAAC,EAAE,MAAM,GAAG,0BAA0B;IAItE;;;;;OAKG;IACH,gBAAgB,CAAC,MAAM,EAAE,MAAM,GAAG,0BAA0B;IAS5D,IAAI,CAAC,SAAS,EAAE,SAAS,GAAG,0BAA0B;IAKtD,UAAU,CAAC,GAAG,EAAE,MAAM,GAAG,0BAA0B;CAGpD"}
|
|
@@ -0,0 +1,59 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.TonWhalesWithdrawalBuilder = void 0;
|
|
4
|
+
const sdk_core_1 = require("@bitgo/sdk-core");
|
|
5
|
+
const transactionBuilder_1 = require("./transactionBuilder");
|
|
6
|
+
const transaction_1 = require("./transaction");
|
|
7
|
+
const constants_1 = require("./constants");
|
|
8
|
+
class TonWhalesWithdrawalBuilder extends transactionBuilder_1.TransactionBuilder {
|
|
9
|
+
constructor(_coinConfig) {
|
|
10
|
+
super(_coinConfig);
|
|
11
|
+
this._transaction = new transaction_1.Transaction(_coinConfig);
|
|
12
|
+
}
|
|
13
|
+
get transactionType() {
|
|
14
|
+
return sdk_core_1.TransactionType.TonWhalesWithdrawal;
|
|
15
|
+
}
|
|
16
|
+
/**
|
|
17
|
+
* Sets the payload for the withdrawal request.
|
|
18
|
+
* Structure: OpCode (32) + QueryId (64) + GasLimit (Coins) + UnstakeAmount (Coins)
|
|
19
|
+
* * @param unstakeAmount The amount of NanoTON to unstake (inside payload)
|
|
20
|
+
* @param unstakeAmount The amount to unstake
|
|
21
|
+
* @param queryId Optional custom query ID
|
|
22
|
+
*/
|
|
23
|
+
setWithdrawalMessage(unstakeAmount, queryId) {
|
|
24
|
+
const qId = queryId || '0000000000000000';
|
|
25
|
+
this.transaction.message = constants_1.TON_WHALES_WITHDRAW_OPCODE + qId + unstakeAmount;
|
|
26
|
+
return this;
|
|
27
|
+
}
|
|
28
|
+
/**
|
|
29
|
+
* Sets the message to withdraw EVERYTHING from the pool.
|
|
30
|
+
* This sets the unstakeAmount to "0", which is the specific signal for full withdrawal.
|
|
31
|
+
*/
|
|
32
|
+
setFullWithdrawalMessage(queryId) {
|
|
33
|
+
return this.setWithdrawalMessage('0', queryId);
|
|
34
|
+
}
|
|
35
|
+
/**
|
|
36
|
+
* Sets the value attached to the transaction (The Fees).
|
|
37
|
+
* NOTE: This is NOT the unstake amount. This is the fee paid to the pool
|
|
38
|
+
* to process the request (e.g. withdrawFee + receiptPrice).
|
|
39
|
+
* * @param amount NanoTON amount to attach to the message
|
|
40
|
+
*/
|
|
41
|
+
setForwardAmount(amount) {
|
|
42
|
+
if (!this.transaction.recipient) {
|
|
43
|
+
this.transaction.recipient = { address: '', amount: amount };
|
|
44
|
+
}
|
|
45
|
+
else {
|
|
46
|
+
this.transaction.recipient.amount = amount;
|
|
47
|
+
}
|
|
48
|
+
return this;
|
|
49
|
+
}
|
|
50
|
+
send(recipient) {
|
|
51
|
+
this.transaction.recipient = recipient;
|
|
52
|
+
return this;
|
|
53
|
+
}
|
|
54
|
+
setMessage(msg) {
|
|
55
|
+
throw new Error('Use setWithdrawalMessage for specific payload construction');
|
|
56
|
+
}
|
|
57
|
+
}
|
|
58
|
+
exports.TonWhalesWithdrawalBuilder = TonWhalesWithdrawalBuilder;
|
|
59
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidG9uV2hhbGVzV2l0aGRyYXdhbEJ1aWxkZXIuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvbGliL3RvbldoYWxlc1dpdGhkcmF3YWxCdWlsZGVyLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7OztBQUNBLDhDQUE2RDtBQUM3RCw2REFBMEQ7QUFDMUQsK0NBQTRDO0FBQzVDLDJDQUF5RDtBQUV6RCxNQUFhLDBCQUEyQixTQUFRLHVDQUFrQjtJQUNoRSxZQUFZLFdBQWlDO1FBQzNDLEtBQUssQ0FBQyxXQUFXLENBQUMsQ0FBQztRQUNuQixJQUFJLENBQUMsWUFBWSxHQUFHLElBQUkseUJBQVcsQ0FBQyxXQUFXLENBQUMsQ0FBQztJQUNuRCxDQUFDO0lBRUQsSUFBYyxlQUFlO1FBQzNCLE9BQU8sMEJBQWUsQ0FBQyxtQkFBbUIsQ0FBQztJQUM3QyxDQUFDO0lBRUQ7Ozs7OztPQU1HO0lBQ0gsb0JBQW9CLENBQUMsYUFBcUIsRUFBRSxPQUFnQjtRQUMxRCxNQUFNLEdBQUcsR0FBRyxPQUFPLElBQUksa0JBQWtCLENBQUM7UUFFMUMsSUFBSSxDQUFDLFdBQVcsQ0FBQyxPQUFPLEdBQUcsc0NBQTBCLEdBQUcsR0FBRyxHQUFHLGFBQWEsQ0FBQztRQUM1RSxPQUFPLElBQUksQ0FBQztJQUNkLENBQUM7SUFFRDs7O09BR0c7SUFDSCx3QkFBd0IsQ0FBQyxPQUFnQjtRQUN2QyxPQUFPLElBQUksQ0FBQyxvQkFBb0IsQ0FBQyxHQUFHLEVBQUUsT0FBTyxDQUFDLENBQUM7SUFDakQsQ0FBQztJQUVEOzs7OztPQUtHO0lBQ0gsZ0JBQWdCLENBQUMsTUFBYztRQUM3QixJQUFJLENBQUMsSUFBSSxDQUFDLFdBQVcsQ0FBQyxTQUFTLEVBQUUsQ0FBQztZQUNoQyxJQUFJLENBQUMsV0FBVyxDQUFDLFNBQVMsR0FBRyxFQUFFLE9BQU8sRUFBRSxFQUFFLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxDQUFDO1FBQy9ELENBQUM7YUFBTSxDQUFDO1lBQ04sSUFBSSxDQUFDLFdBQVcsQ0FBQyxTQUFTLENBQUMsTUFBTSxHQUFHLE1BQU0sQ0FBQztRQUM3QyxDQUFDO1FBQ0QsT0FBTyxJQUFJLENBQUM7SUFDZCxDQUFDO0lBRUQsSUFBSSxDQUFDLFNBQW9CO1FBQ3ZCLElBQUksQ0FBQyxXQUFXLENBQUMsU0FBUyxHQUFHLFNBQVMsQ0FBQztRQUN2QyxPQUFPLElBQUksQ0FBQztJQUNkLENBQUM7SUFFRCxVQUFVLENBQUMsR0FBVztRQUNwQixNQUFNLElBQUksS0FBSyxDQUFDLDREQUE0RCxDQUFDLENBQUM7SUFDaEYsQ0FBQztDQUNGO0FBdkRELGdFQXVEQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEJhc2VDb2luIGFzIENvaW5Db25maWcgfSBmcm9tICdAYml0Z28vc3RhdGljcyc7XG5pbXBvcnQgeyBSZWNpcGllbnQsIFRyYW5zYWN0aW9uVHlwZSB9IGZyb20gJ0BiaXRnby9zZGstY29yZSc7XG5pbXBvcnQgeyBUcmFuc2FjdGlvbkJ1aWxkZXIgfSBmcm9tICcuL3RyYW5zYWN0aW9uQnVpbGRlcic7XG5pbXBvcnQgeyBUcmFuc2FjdGlvbiB9IGZyb20gJy4vdHJhbnNhY3Rpb24nO1xuaW1wb3J0IHsgVE9OX1dIQUxFU19XSVRIRFJBV19PUENPREUgfSBmcm9tICcuL2NvbnN0YW50cyc7XG5cbmV4cG9ydCBjbGFzcyBUb25XaGFsZXNXaXRoZHJhd2FsQnVpbGRlciBleHRlbmRzIFRyYW5zYWN0aW9uQnVpbGRlciB7XG4gIGNvbnN0cnVjdG9yKF9jb2luQ29uZmlnOiBSZWFkb25seTxDb2luQ29uZmlnPikge1xuICAgIHN1cGVyKF9jb2luQ29uZmlnKTtcbiAgICB0aGlzLl90cmFuc2FjdGlvbiA9IG5ldyBUcmFuc2FjdGlvbihfY29pbkNvbmZpZyk7XG4gIH1cblxuICBwcm90ZWN0ZWQgZ2V0IHRyYW5zYWN0aW9uVHlwZSgpOiBUcmFuc2FjdGlvblR5cGUge1xuICAgIHJldHVybiBUcmFuc2FjdGlvblR5cGUuVG9uV2hhbGVzV2l0aGRyYXdhbDtcbiAgfVxuXG4gIC8qKlxuICAgKiBTZXRzIHRoZSBwYXlsb2FkIGZvciB0aGUgd2l0aGRyYXdhbCByZXF1ZXN0LlxuICAgKiBTdHJ1Y3R1cmU6IE9wQ29kZSAoMzIpICsgUXVlcnlJZCAoNjQpICsgR2FzTGltaXQgKENvaW5zKSArIFVuc3Rha2VBbW91bnQgKENvaW5zKVxuICAgKiAqIEBwYXJhbSB1bnN0YWtlQW1vdW50IFRoZSBhbW91bnQgb2YgTmFub1RPTiB0byB1bnN0YWtlIChpbnNpZGUgcGF5bG9hZClcbiAgICogQHBhcmFtIHVuc3Rha2VBbW91bnQgVGhlIGFtb3VudCB0byB1bnN0YWtlXG4gICAqIEBwYXJhbSBxdWVyeUlkIE9wdGlvbmFsIGN1c3RvbSBxdWVyeSBJRFxuICAgKi9cbiAgc2V0V2l0aGRyYXdhbE1lc3NhZ2UodW5zdGFrZUFtb3VudDogc3RyaW5nLCBxdWVyeUlkPzogc3RyaW5nKTogVG9uV2hhbGVzV2l0aGRyYXdhbEJ1aWxkZXIge1xuICAgIGNvbnN0IHFJZCA9IHF1ZXJ5SWQgfHwgJzAwMDAwMDAwMDAwMDAwMDAnO1xuXG4gICAgdGhpcy50cmFuc2FjdGlvbi5tZXNzYWdlID0gVE9OX1dIQUxFU19XSVRIRFJBV19PUENPREUgKyBxSWQgKyB1bnN0YWtlQW1vdW50O1xuICAgIHJldHVybiB0aGlzO1xuICB9XG5cbiAgLyoqXG4gICAqIFNldHMgdGhlIG1lc3NhZ2UgdG8gd2l0aGRyYXcgRVZFUllUSElORyBmcm9tIHRoZSBwb29sLlxuICAgKiBUaGlzIHNldHMgdGhlIHVuc3Rha2VBbW91bnQgdG8gXCIwXCIsIHdoaWNoIGlzIHRoZSBzcGVjaWZpYyBzaWduYWwgZm9yIGZ1bGwgd2l0aGRyYXdhbC5cbiAgICovXG4gIHNldEZ1bGxXaXRoZHJhd2FsTWVzc2FnZShxdWVyeUlkPzogc3RyaW5nKTogVG9uV2hhbGVzV2l0aGRyYXdhbEJ1aWxkZXIge1xuICAgIHJldHVybiB0aGlzLnNldFdpdGhkcmF3YWxNZXNzYWdlKCcwJywgcXVlcnlJZCk7XG4gIH1cblxuICAvKipcbiAgICogU2V0cyB0aGUgdmFsdWUgYXR0YWNoZWQgdG8gdGhlIHRyYW5zYWN0aW9uIChUaGUgRmVlcykuXG4gICAqIE5PVEU6IFRoaXMgaXMgTk9UIHRoZSB1bnN0YWtlIGFtb3VudC4gVGhpcyBpcyB0aGUgZmVlIHBhaWQgdG8gdGhlIHBvb2xcbiAgICogdG8gcHJvY2VzcyB0aGUgcmVxdWVzdCAoZS5nLiB3aXRoZHJhd0ZlZSArIHJlY2VpcHRQcmljZSkuXG4gICAqICogQHBhcmFtIGFtb3VudCBOYW5vVE9OIGFtb3VudCB0byBhdHRhY2ggdG8gdGhlIG1lc3NhZ2VcbiAgICovXG4gIHNldEZvcndhcmRBbW91bnQoYW1vdW50OiBzdHJpbmcpOiBUb25XaGFsZXNXaXRoZHJhd2FsQnVpbGRlciB7XG4gICAgaWYgKCF0aGlzLnRyYW5zYWN0aW9uLnJlY2lwaWVudCkge1xuICAgICAgdGhpcy50cmFuc2FjdGlvbi5yZWNpcGllbnQgPSB7IGFkZHJlc3M6ICcnLCBhbW91bnQ6IGFtb3VudCB9O1xuICAgIH0gZWxzZSB7XG4gICAgICB0aGlzLnRyYW5zYWN0aW9uLnJlY2lwaWVudC5hbW91bnQgPSBhbW91bnQ7XG4gICAgfVxuICAgIHJldHVybiB0aGlzO1xuICB9XG5cbiAgc2VuZChyZWNpcGllbnQ6IFJlY2lwaWVudCk6IFRvbldoYWxlc1dpdGhkcmF3YWxCdWlsZGVyIHtcbiAgICB0aGlzLnRyYW5zYWN0aW9uLnJlY2lwaWVudCA9IHJlY2lwaWVudDtcbiAgICByZXR1cm4gdGhpcztcbiAgfVxuXG4gIHNldE1lc3NhZ2UobXNnOiBzdHJpbmcpOiBUb25XaGFsZXNXaXRoZHJhd2FsQnVpbGRlciB7XG4gICAgdGhyb3cgbmV3IEVycm9yKCdVc2Ugc2V0V2l0aGRyYXdhbE1lc3NhZ2UgZm9yIHNwZWNpZmljIHBheWxvYWQgY29uc3RydWN0aW9uJyk7XG4gIH1cbn1cbiJdfQ==
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"transaction.d.ts","sourceRoot":"","sources":["../../../src/lib/transaction.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,IAAI,EAAE,MAAM,4BAA4B,CAAC;AAElD,OAAO,EAAE,OAAO,EAAE,eAAe,EAAS,SAAS,EAAwB,eAAe,EAAE,MAAM,iBAAiB,CAAC;AACpH,OAAO,EAAE,QAAQ,IAAI,UAAU,EAAE,MAAM,gBAAgB,CAAC;AACxD,OAAO,EAAE,sBAAsB,EAAE,MAAM,EAAE,MAAM,SAAS,CAAC;
|
|
1
|
+
{"version":3,"file":"transaction.d.ts","sourceRoot":"","sources":["../../../src/lib/transaction.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,IAAI,EAAE,MAAM,4BAA4B,CAAC;AAElD,OAAO,EAAE,OAAO,EAAE,eAAe,EAAS,SAAS,EAAwB,eAAe,EAAE,MAAM,iBAAiB,CAAC;AACpH,OAAO,EAAE,QAAQ,IAAI,UAAU,EAAE,MAAM,gBAAgB,CAAC;AACxD,OAAO,EAAE,sBAAsB,EAAE,MAAM,EAAE,MAAM,SAAS,CAAC;AAUzD,qBAAa,WAAY,SAAQ,eAAe;IACvC,SAAS,EAAE,SAAS,CAAC;IACrB,UAAU,EAAE,OAAO,CAAC;IACpB,qBAAqB,EAAE,OAAO,CAAC;IAC/B,mBAAmB,EAAE,OAAO,CAAC;IAC7B,OAAO,EAAE,MAAM,CAAC;IAChB,cAAc,EAAE,MAAM,CAAC;IAC9B,KAAK,EAAE,MAAM,CAAC;IACd,UAAU,EAAE,MAAM,CAAC;IACnB,MAAM,EAAE,MAAM,CAAC;IACf,SAAS,EAAE,MAAM,CAAC;IAClB,mBAAmB,EAAE,OAAO,CAAC;IAC7B,aAAa,EAAE,MAAM,CAAC;IACtB,SAAS,CAAC,eAAe,EAAE,MAAM,CAAC;IAClC,SAAS,CAAC,YAAY,EAAE,MAAM,CAAC;gBAEnB,UAAU,EAAE,QAAQ,CAAC,UAAU,CAAC;IAQ5C,OAAO,CAAC,GAAG,EAAE,OAAO,GAAG,OAAO;IAI9B,iBAAiB,IAAI,MAAM;IAI3B,MAAM,IAAI,MAAM;IAsBhB,IAAI,eAAe,IAAI,MAAM,CAE5B;IAED;;;OAGG;IACH,IAAI,eAAe,CAAC,eAAe,EAAE,eAAe,EAEnD;IAEK,KAAK,IAAI,OAAO,CAAC,IAAI,CAAC;IAyB5B,SAAS,CAAC,oBAAoB,CAAC,QAAQ,KAAA,EAAE,KAAK,KAAA,EAAE,QAAQ,KAAA;IAYxD,SAAS,CAAC,YAAY,CAAC,OAAO,KAAA,EAAE,MAAM,KAAA,EAAE,OAAO,KAAA;IAuDzC,qBAAqB,CAAC,cAAc,EAAE,IAAI,EAAE,KAAK,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAqBlG,oBAAoB,IAAI,IAAI;IAiB5B,kBAAkB,CAAC,cAAc,EAAE,MAAM,GAAG,IAAI;IAoBhD,kBAAkB;IAClB,kBAAkB,IAAI,sBAAsB;IAkB5C,SAAS,CAAC,gBAAgB,CAAC,IAAI,EAAE,IAAI,GAAG,GAAG;IA6C3C,OAAO,CAAC,oBAAoB;IA0I5B,OAAO,CAAC,sBAAsB;CAgB/B"}
|
|
@@ -100,6 +100,26 @@ class Transaction extends sdk_core_1.BaseTransaction {
|
|
|
100
100
|
payloadCell.bits.writeUint(parseInt(queryId, 16), 64);
|
|
101
101
|
payloadCell.bits.writeCoins(new bn_js_1.BN(withdrawAmount));
|
|
102
102
|
}
|
|
103
|
+
else if (payload.length >= 26 && payload.substring(0, 10) === constants_1.TON_WHALES_DEPOSIT_OPCODE) {
|
|
104
|
+
const queryId = payload.substring(10, 26);
|
|
105
|
+
payloadCell.bits.writeUint(parseInt(constants_1.TON_WHALES_DEPOSIT_OPCODE, 10), 32);
|
|
106
|
+
payloadCell.bits.writeUint(parseInt(queryId, 16), 64);
|
|
107
|
+
// The Ton Whales protocol requires a specific 'gas limit' field in the payload
|
|
108
|
+
// structure (OpCode -> QueryId -> GasLimit -> Amount).
|
|
109
|
+
payloadCell.bits.writeCoins(tonweb_1.default.utils.toNano('1'));
|
|
110
|
+
}
|
|
111
|
+
else if (payload.length >= 26 && payload.substring(0, 10) === constants_1.TON_WHALES_WITHDRAW_OPCODE) {
|
|
112
|
+
const queryId = payload.substring(10, 26);
|
|
113
|
+
const amountStr = payload.substring(26);
|
|
114
|
+
payloadCell.bits.writeUint(parseInt(constants_1.TON_WHALES_WITHDRAW_OPCODE, 10), 32);
|
|
115
|
+
payloadCell.bits.writeUint(new bn_js_1.BN(queryId, 16), 64);
|
|
116
|
+
// The Ton Whales protocol requires a specific 'gas limit' field in the payload
|
|
117
|
+
// structure (OpCode -> QueryId -> GasLimit -> Amount).
|
|
118
|
+
// We hardcode 1 TON here to match the Deposit implementation and ensure
|
|
119
|
+
// sufficient gas for the pool to process the request.
|
|
120
|
+
payloadCell.bits.writeCoins(tonweb_1.default.utils.toNano('1'));
|
|
121
|
+
payloadCell.bits.writeCoins(new bn_js_1.BN(amountStr));
|
|
122
|
+
}
|
|
103
123
|
else {
|
|
104
124
|
payloadCell.bits.writeUint(0, 32);
|
|
105
125
|
payloadCell.bits.writeString(payload);
|
|
@@ -327,6 +347,24 @@ class Transaction extends sdk_core_1.BaseTransaction {
|
|
|
327
347
|
message: message,
|
|
328
348
|
};
|
|
329
349
|
}
|
|
350
|
+
else if (opcode === parseInt(constants_1.TON_WHALES_DEPOSIT_OPCODE, 10)) {
|
|
351
|
+
this.transactionType = sdk_core_1.TransactionType.TonWhalesDeposit;
|
|
352
|
+
const queryId = order.loadUint(64).toNumber();
|
|
353
|
+
// This is the gas limit, which must be read to advance the cursor
|
|
354
|
+
// We do not need to store it
|
|
355
|
+
order.loadCoins();
|
|
356
|
+
payload = constants_1.TON_WHALES_DEPOSIT_OPCODE + queryId.toString(16).padStart(16, '0');
|
|
357
|
+
}
|
|
358
|
+
else if (opcode === parseInt(constants_1.TON_WHALES_WITHDRAW_OPCODE, 10)) {
|
|
359
|
+
this.transactionType = sdk_core_1.TransactionType.TonWhalesWithdrawal;
|
|
360
|
+
const queryId = order.loadUint(64).toNumber();
|
|
361
|
+
order.loadCoins(); // Skip Gas (Hardcoded in builder)
|
|
362
|
+
const amount = order.loadCoins();
|
|
363
|
+
withdrawAmount = amount.toString(); // Decimal String
|
|
364
|
+
// Reconstruct Payload: Decimal Op + Hex Query + Decimal Amount
|
|
365
|
+
const queryHex = new bn_js_1.BN(queryId).toString(16).padStart(16, '0');
|
|
366
|
+
payload = constants_1.TON_WHALES_WITHDRAW_OPCODE + queryHex + withdrawAmount;
|
|
367
|
+
}
|
|
330
368
|
else {
|
|
331
369
|
payload = '';
|
|
332
370
|
}
|
|
@@ -365,4 +403,4 @@ class Transaction extends sdk_core_1.BaseTransaction {
|
|
|
365
403
|
}
|
|
366
404
|
}
|
|
367
405
|
exports.Transaction = Transaction;
|
|
368
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHJhbnNhY3Rpb24uanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvbGliL3RyYW5zYWN0aW9uLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7OztBQUFBLG9EQUE0QjtBQUM1QixpQ0FBMkI7QUFHM0IsOENBQW9IO0FBR3BILDJDQUE2RztBQUU3RyxNQUFhLFdBQVksU0FBUSwwQkFBZTtJQWdCOUMsWUFBWSxVQUFnQztRQUMxQyxLQUFLLENBQUMsVUFBVSxDQUFDLENBQUM7UUFDbEIsSUFBSSxDQUFDLFVBQVUsR0FBRyxLQUFLLENBQUM7UUFDeEIsSUFBSSxDQUFDLHFCQUFxQixHQUFHLElBQUksQ0FBQztRQUNsQyxJQUFJLENBQUMsbUJBQW1CLEdBQUcsSUFBSSxDQUFDO1FBQ2hDLElBQUksQ0FBQyxtQkFBbUIsR0FBRyxLQUFLLENBQUM7SUFDbkMsQ0FBQztJQUVELE9BQU8sQ0FBQyxHQUFZO1FBQ2xCLE9BQU8sS0FBSyxDQUFDO0lBQ2YsQ0FBQztJQUVELGlCQUFpQjtRQUNmLE9BQU8sSUFBSSxDQUFDLFlBQVksQ0FBQztJQUMzQixDQUFDO0lBRUQsTUFBTTtRQUNKLE1BQU0sV0FBVyxHQUFHLElBQUksZ0JBQU0sQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQ3JFLElBQUksRUFDSixJQUFJLEVBQ0osQ0FBQyxJQUFJLGdCQUFNLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxTQUFTLENBQUMsT0FBTyxDQUFDLENBQUMsWUFBWSxDQUN6RCxDQUFDO1FBQ0YsT0FBTztZQUNMLEVBQUUsRUFBRSxJQUFJLENBQUMsR0FBYTtZQUN0QixNQUFNLEVBQUUsSUFBSSxDQUFDLE1BQU07WUFDbkIsV0FBVyxFQUFFLElBQUksQ0FBQyxTQUFTLENBQUMsT0FBTztZQUNuQyxnQkFBZ0IsRUFBRSxXQUFXO1lBQzdCLE1BQU0sRUFBRSxJQUFJLENBQUMsU0FBUyxDQUFDLE1BQU07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QXNCLENBQUMsS0FBVTtRQUN2QyxJQUFJLEtBQUssS0FBSyxJQUFJO1lBQUUsT0FBTyxFQUFFLENBQUM7UUFDOUIsS0FBSyxDQUFDLE9BQU8sRUFBRSxDQUFDO1FBQ2hCLE1BQU0sSUFBSSxHQUFHLEtBQUssQ0FBQyxPQUFPLEVBQUUsQ0FBQztRQUM3QixNQUFNLEtBQUssR0FBRyxJQUFJLENBQUMsUUFBUSxDQUFDLEVBQUUsQ0FBQyxDQUFDLFFBQVEsRUFBRSxDQUFDO1FBQzNDLElBQUksS0FBSyxLQUFLLENBQUM7WUFBRSxNQUFNLElBQUksS0FBSyxDQUFDLGVBQWUsQ0FBQyxDQUFDO1FBQ2xELE1BQU0sUUFBUSxHQUFHLElBQUksQ0FBQyxRQUFRLENBQUMsRUFBRSxDQUFDLENBQUMsUUFBUSxFQUFFLENBQUM7UUFDOUMsSUFBSSxRQUFRLEtBQUsscUJBQVM7WUFBRSxNQUFNLElBQUksS0FBSyxDQUFDLG1CQUFtQixDQUFDLENBQUM7UUFDakUsTUFBTSxTQUFTLEdBQUcsSUFBSSxVQUFVLENBQUMsRUFBRSxDQUFDLENBQUM7UUFDckMsS0FBSyxJQUFJLENBQUMsR0FBRyxDQUFDLEVBQUUsQ0FBQyxHQUFHLFNBQVMsQ0FBQyxNQUFNLEVBQUUsQ0FBQyxFQUFFLEVBQUUsQ0FBQztZQUMxQyxTQUFTLENBQUMsQ0FBQyxDQUFDLEdBQUcsSUFBSSxDQUFDLFFBQVEsQ0FBQyxDQUFDLENBQUMsQ0FBQztRQUNsQyxDQUFDO1FBQ0QsT0FBTztZQUNMLFNBQVMsRUFBRSxNQUFNLENBQUMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxDQUFDLFFBQVEsQ0FBQyxLQUFLLENBQUM7U0FDbEQsQ0FBQztJQUNKLENBQUM7Q0FDRjtBQTVZRCxrQ0E0WUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgVG9uV2ViIGZyb20gJ3RvbndlYic7XG5pbXBvcnQgeyBCTiB9IGZyb20gJ2JuLmpzJztcbmltcG9ydCB7IENlbGwgfSBmcm9tICd0b253ZWIvZGlzdC90eXBlcy9ib2MvY2VsbCc7XG5cbmltcG9ydCB7IEJhc2VLZXksIEJhc2VUcmFuc2FjdGlvbiwgRW50cnksIFJlY2lwaWVudCwgVHJhbnNhY3Rpb25SZWNpcGllbnQsIFRyYW5zYWN0aW9uVHlwZSB9IGZyb20gJ0BiaXRnby9zZGstY29yZSc7XG5pbXBvcnQgeyBCYXNlQ29pbiBhcyBDb2luQ29uZmlnIH0gZnJvbSAnQGJpdGdvL3N0YXRpY3MnO1xuaW1wb3J0IHsgVHJhbnNhY3Rpb25FeHBsYW5hdGlvbiwgVHhEYXRhIH0gZnJvbSAnLi9pZmFjZSc7XG5pbXBvcnQgeyBXSVRIRFJBV19PUENPREUsIFdBTExFVF9JRCwgSkVUVE9OX1RSQU5TRkVSX09QQ09ERSwgVkVTVElOR19DT05UUkFDVF9XQUxMRVRfSUQgfSBmcm9tICcuL2NvbnN0YW50cyc7XG5cbmV4cG9ydCBjbGFzcyBUcmFuc2FjdGlvbiBleHRlbmRzIEJhc2VUcmFuc2FjdGlvbiB7XG4gIHB1YmxpYyByZWNpcGllbnQ6IFJlY2lwaWVudDtcbiAgcHVibGljIGJvdW5jZWFibGU6IGJvb2xlYW47XG4gIHB1YmxpYyBmcm9tQWRkcmVzc0JvdW5jZWFibGU6IGJvb2xlYW47XG4gIHB1YmxpYyB0b0FkZHJlc3NCb3VuY2VhYmxlOiBib29sZWFuO1xuICBwdWJsaWMgbWVzc2FnZTogc3RyaW5nO1xuICBwdWJsaWMgd2l0aGRyYXdBbW91bnQ6IHN0cmluZztcbiAgc2Vxbm86IG51bWJlcjtcbiAgZXhwaXJlVGltZTogbnVtYmVyO1xuICBzZW5kZXI6IHN0cmluZztcbiAgcHVibGljS2V5OiBzdHJpbmc7XG4gIGlzVjNDb250cmFjdE1lc3NhZ2U6IGJvb2xlYW47XG4gIHN1Yl93YWxsZXRfaWQ6IG51bWJlcjtcbiAgcHJvdGVjdGVkIHVuc2lnbmVkTWVzc2FnZTogc3RyaW5nO1xuICBwcm90ZWN0ZWQgZmluYWxNZXNzYWdlOiBzdHJpbmc7XG5cbiAgY29uc3RydWN0b3IoY29pbkNvbmZpZzogUmVhZG9ubHk8Q29pbkNvbmZpZz4pIHtcbiAgICBzdXBlcihjb2luQ29uZmlnKTtcbiAgICB0aGlzLmJvdW5jZWFibGUgPSBmYWxzZTtcbiAgICB0aGlzLmZyb21BZGRyZXNzQm91bmNlYWJsZSA9IHRydWU7XG4gICAgdGhpcy50b0FkZHJlc3NCb3VuY2VhYmxlID0gdHJ1ZTtcbiAgICB0aGlzLmlzVjNDb250cmFjdE1lc3NhZ2UgPSBmYWxzZTtcbiAgfVxuXG4gIGNhblNpZ24oa2V5OiBCYXNlS2V5KTogYm9vbGVhbiB7XG4gICAgcmV0dXJuIGZhbHNlO1xuICB9XG5cbiAgdG9Ccm9hZGNhc3RGb3JtYXQoKTogc3RyaW5nIHtcbiAgICByZXR1cm4gdGhpcy5maW5hbE1lc3NhZ2U7XG4gIH1cblxuICB0b0pzb24oKTogVHhEYXRhIHtcbiAgICBjb25zdCBvdGhlckZvcm1hdCA9IG5ldyBUb25XZWIuQWRkcmVzcyh0aGlzLnJlY2lwaWVudC5hZGRyZXNzKS50b1N0cmluZyhcbiAgICAgIHRydWUsXG4gICAgICB0cnVlLFxuICAgICAgIW5ldyBUb25XZWIuQWRkcmVzcyh0aGlzLnJlY2lwaWVudC5hZGRyZXNzKS5pc0JvdW5jZWFibGVcbiAgICApO1xuICAgIHJldHVybiB7XG4gICAgICBpZDogdGhpcy5faWQgYXMgc3RyaW5nLFxuICAgICAgc2VuZGVyOiB0aGlzLnNlbmRlcixcbiAgICAgIGRlc3RpbmF0aW9uOiB0aGlzLnJlY2lwaWVudC5hZGRyZXNzLFxuICAgICAgZGVzdGluYXRpb25BbGlhczogb3RoZXJGb3JtYXQsXG4gICAgICBhbW91bnQ6IHRoaXMucmVjaXBpZW50LmFtb3VudCxcbiAgICAgIHdpdGhkcmF3QW1vdW50OiB0aGlzLndpdGhkcmF3QW1vdW50LFxuICAgICAgc2Vxbm86IHRoaXMuc2Vxbm8sXG4gICAgICBzdWJfd2FsbGV0X2lkOiB0aGlzLnN1Yl93YWxsZXRfaWQsXG4gICAgICBleHBpcmF0aW9uVGltZTogdGhpcy5leHBpcmVUaW1lLFxuICAgICAgcHVibGljS2V5OiB0aGlzLnB1YmxpY0tleSxcbiAgICAgIHNpZ25hdHVyZTogdGhpcy5fc2lnbmF0dXJlc1swXSxcbiAgICAgIGJvdW5jZWFibGU6IHRoaXMuYm91bmNlYWJsZSxcbiAgICB9O1xuICB9XG5cbiAgZ2V0IHNpZ25hYmxlUGF5bG9hZCgpOiBCdWZmZXIge1xuICAgIHJldHVybiBCdWZmZXIuZnJvbSh0aGlzLnVuc2lnbmVkTWVzc2FnZSwgJ2hleCcpO1xuICB9XG5cbiAgLyoqXG4gICAqIFNldCB0aGUgdHJhbnNhY3Rpb24gdHlwZS5cbiAgICogQHBhcmFtIHtUcmFuc2FjdGlvblR5cGV9IHRyYW5zYWN0aW9uVHlwZSBUaGUgdHJhbnNhY3Rpb24gdHlwZSB0byBiZSBzZXQuXG4gICAqL1xuICBzZXQgdHJhbnNhY3Rpb25UeXBlKHRyYW5zYWN0aW9uVHlwZTogVHJhbnNhY3Rpb25UeXBlKSB7XG4gICAgdGhpcy5fdHlwZSA9IHRyYW5zYWN0aW9uVHlwZTtcbiAgfVxuXG4gIGFzeW5jIGJ1aWxkKCk6IFByb21pc2U8dm9pZD4ge1xuICAgIGlmICghdGhpcy5zdWJfd2FsbGV0X2lkKSB7XG4gICAgICBpZiAodGhpcy5pc1YzQ29udHJhY3RNZXNzYWdlKSB7XG4gICAgICAgIHRoaXMuc3ViX3dhbGxldF9pZCA9IFZFU1RJTkdfQ09OVFJBQ1RfV0FMTEVUX0lEO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgdGhpcy5zdWJfd2FsbGV0X2lkID0gV0FMTEVUX0lEO1xuICAgICAgfVxuICAgIH1cbiAgICBjb25zdCBzaWduaW5nTWVzc2FnZSA9IHRoaXMuY3JlYXRlU2lnbmluZ01lc3NhZ2UodGhpcy5zdWJfd2FsbGV0X2lkLCB0aGlzLnNlcW5vLCB0aGlzLmV4cGlyZVRpbWUpO1xuICAgIGNvbnN0IHNlbmRNb2RlID0gMzsgLy8gZGVmYXVsdCBzZW5kTW9kZVxuICAgIHNpZ25pbmdNZXNzYWdlLmJpdHMud3JpdGVVaW50OChzZW5kTW9kZSk7XG4gICAgY29uc3Qgb3V0TXNnID0gdGhpcy5jcmVhdGVPdXRNc2codGhpcy5yZWNpcGllbnQuYWRkcmVzcywgdGhpcy5yZWNpcGllbnQuYW1vdW50LCB0aGlzLm1lc3NhZ2UpO1xuICAgIHNpZ25pbmdNZXNzYWdlLnJlZnMucHVzaChvdXRNc2cpO1xuICAgIHRoaXMudW5zaWduZWRNZXNzYWdlID0gQnVmZmVyLmZyb20oYXdhaXQgc2lnbmluZ01lc3NhZ2UuaGFzaCgpKS50b1N0cmluZygnaGV4Jyk7XG5cbiAgICBjb25zdCBzaWduYXR1cmUgPVxuICAgICAgdGhpcy5fc2lnbmF0dXJlcy5sZW5ndGggPiAwID8gdGhpcy5fc2lnbmF0dXJlc1swXSA6IEJ1ZmZlci5mcm9tKG5ldyBVaW50OEFycmF5KDY0KSkudG9TdHJpbmcoJ2hleCcpO1xuICAgIGNvbnN0IGZpbmFsTWVzc2FnZSA9IGF3YWl0IHRoaXMuY3JlYXRlRXh0ZXJuYWxNZXNzYWdlKHNpZ25pbmdNZXNzYWdlLCB0aGlzLnNlcW5vLCBzaWduYXR1cmUpO1xuXG4gICAgdGhpcy5maW5hbE1lc3NhZ2UgPSBUb25XZWIudXRpbHMuYnl0ZXNUb0Jhc2U2NChhd2FpdCBmaW5hbE1lc3NhZ2UudG9Cb2MoZmFsc2UpKTtcblxuICAgIGNvbnN0IG9yaWdpbmFsVHhJZCA9IFRvbldlYi51dGlscy5ieXRlc1RvQmFzZTY0KGF3YWl0IGZpbmFsTWVzc2FnZS5oYXNoKCkpO1xuICAgIHRoaXMuX2lkID0gb3JpZ2luYWxUeElkLnJlcGxhY2UoL1xcLy9nLCAnXycpLnJlcGxhY2UoL1xcKy9nLCAnLScpO1xuICB9XG5cbiAgcHJvdGVjdGVkIGNyZWF0ZVNpZ25pbmdNZXNzYWdlKHdhbGxldElkLCBzZXFubywgZXhwaXJlQXQpIHtcbiAgICBjb25zdCBtZXNzYWdlID0gbmV3IFRvbldlYi5ib2MuQ2VsbCgpO1xuICAgIG1lc3NhZ2UuYml0cy53cml0ZVVpbnQod2FsbGV0SWQsIDMyKTtcbiAgICAvLyBleHBpcmVBdCBzaG91bGQgYmUgc2V0IGFzIHBlciB0aGUgcHJvdmlkZWQgYXJnIHZhbHVlLCByZWdhcmRsZXNzIG9mIHRoZSBzZXFub1xuICAgIG1lc3NhZ2UuYml0cy53cml0ZVVpbnQoZXhwaXJlQXQsIDMyKTtcbiAgICBtZXNzYWdlLmJpdHMud3JpdGVVaW50KHNlcW5vLCAzMik7XG4gICAgaWYgKCF0aGlzLmlzVjNDb250cmFjdE1lc3NhZ2UpIHtcbiAgICAgIG1lc3NhZ2UuYml0cy53cml0ZVVpbnQoMCwgOCk7IC8vIG9wXG4gICAgfVxuICAgIHJldHVybiBtZXNzYWdlO1xuICB9XG5cbiAgcHJvdGVjdGVkIGNyZWF0ZU91dE1zZyhhZGRyZXNzLCBhbW91bnQsIHBheWxvYWQpIHtcbiAgICBsZXQgcGF5bG9hZENlbGwgPSBuZXcgVG9uV2ViLmJvYy5DZWxsKCk7XG4gICAgaWYgKHBheWxvYWQpIHtcbiAgICAgIGlmIChwYXlsb2FkLnJlZnMpIHtcbiAgICAgICAgLy8gaXMgQ2VsbFxuICAgICAgICBwYXlsb2FkQ2VsbCA9IHBheWxvYWQ7XG4gICAgICB9IGVsc2UgaWYgKHR5cGVvZiBwYXlsb2FkID09PSAnc3RyaW5nJykge1xuICAgICAgICBpZiAocGF5bG9hZC5sZW5ndGggPiAwKSB7XG4gICAgICAgICAgaWYgKHBheWxvYWQubGVuZ3RoID4gMjQgJiYgcGF5bG9hZC5zdWJzdHJpbmcoMCwgOCkgPT09IFdJVEhEUkFXX09QQ09ERSkge1xuICAgICAgICAgICAgLy8gcGF5bG9hZCBpcyBhIHdpdGhkcmF3IHR4biBtZXNzYWdlXG4gICAgICAgICAgICBjb25zdCBxdWVyeUlkID0gcGF5bG9hZC5zdWJzdHJpbmcoOCwgMjQpO1xuICAgICAgICAgICAgY29uc3Qgd2l0aGRyYXdBbW91bnQgPSBwYXlsb2FkLnN1YnN0cmluZygyNCk7XG4gICAgICAgICAgICAvKiBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgbm8tY29uc29sZSAqL1xuICAgICAgICAgICAgY29uc29sZS5sb2coYHBheWxvYWQ6ICR7cGF5bG9hZH0sIHF1ZXJ5SWQ6ICR7cXVlcnlJZH0sIHdpdGhkcmF3QW1vdW50OiAke3dpdGhkcmF3QW1vdW50fWApO1xuICAgICAgICAgICAgcGF5bG9hZENlbGwuYml0cy53cml0ZVVpbnQocGFyc2VJbnQoV0lUSERSQVdfT1BDT0RFLCAxNiksIDMyKTtcbiAgICAgICAgICAgIHBheWxvYWRDZWxsLmJpdHMud3JpdGVVaW50KHBhcnNlSW50KHF1ZXJ5SWQsIDE2KSwgNjQpO1xuICAgICAgICAgICAgcGF5bG9hZENlbGwuYml0cy53cml0ZUNvaW5zKG5ldyBCTih3aXRoZHJhd0Ftb3VudCkpO1xuICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICBwYXlsb2FkQ2VsbC5iaXRzLndyaXRlVWludCgwLCAzMik7XG4gICAgICAgICAgICBwYXlsb2FkQ2VsbC5iaXRzLndyaXRlU3RyaW5nKHBheWxvYWQpO1xuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfSBlbHNlIHtcbiAgICAgICAgcGF5bG9hZENlbGwuYml0cy53cml0ZUJ5dGVzKHBheWxvYWQpO1xuICAgICAgfVxuICAgIH1cblxuICAgIGNvbnN0IG9yZGVySGVhZGVyID0gVG9uV2ViLkNvbnRyYWN0LmNyZWF0ZUludGVybmFsTWVzc2FnZUhlYWRlcihcbiAgICAgIG5ldyBUb25XZWIuQWRkcmVzcyhhZGRyZXNzKSxcbiAgICAgIG5ldyBCTihhbW91bnQpLFxuICAgICAgdHJ1ZSxcbiAgICAgIHRoaXMuYm91bmNlYWJsZVxuICAgICk7XG4gICAgcmV0dXJuIFRvbldlYi5Db250cmFjdC5jcmVhdGVDb21tb25Nc2dJbmZvKG9yZGVySGVhZGVyLCB1bmRlZmluZWQsIHBheWxvYWRDZWxsKTtcbiAgfVxuXG4gIGFzeW5jIGNyZWF0ZUV4dGVybmFsTWVzc2FnZShzaWduaW5nTWVzc2FnZTogQ2VsbCwgc2Vxbm86IG51bWJlciwgc2lnbmF0dXJlOiBzdHJpbmcpOiBQcm9taXNlPENlbGw+IHtcbiAgICBjb25zdCBib2R5ID0gbmV3IFRvbldlYi5ib2MuQ2VsbCgpO1xuXG4gICAgYm9keS5iaXRzLndyaXRlQnl0ZXMoQnVmZmVyLmZyb20oc2lnbmF0dXJlLCAnaGV4JykpO1xuICAgIGJvZHkud3JpdGVDZWxsKHNpZ25pbmdNZXNzYWdlKTtcblxuICAgIGxldCBzdGF0ZUluaXQ7XG4gICAgaWYgKHNlcW5vID09PSAwICYmICF0aGlzLmlzVjNDb250cmFjdE1lc3NhZ2UpIHtcbiAgICAgIGNvbnN0IFdhbGxldENsYXNzID0gVG9uV2ViLldhbGxldHMuYWxsWyd2NFIyJ107XG4gICAgICBjb25zdCB3YWxsZXQgPSBuZXcgV2FsbGV0Q2xhc3MobmV3IFRvbldlYi5IdHRwUHJvdmlkZXIoKSwge1xuICAgICAgICBwdWJsaWNLZXk6IFRvbldlYi51dGlscy5oZXhUb0J5dGVzKHRoaXMucHVibGljS2V5KSxcbiAgICAgICAgd2M6IDAsXG4gICAgICB9KTtcbiAgICAgIGNvbnN0IGRlcGxveSA9IGF3YWl0IHdhbGxldC5jcmVhdGVTdGF0ZUluaXQoKTtcbiAgICAgIHN0YXRlSW5pdCA9IGRlcGxveS5zdGF0ZUluaXQ7XG4gICAgfVxuXG4gICAgY29uc3QgaGVhZGVyID0gVG9uV2ViLkNvbnRyYWN0LmNyZWF0ZUV4dGVybmFsTWVzc2FnZUhlYWRlcih0aGlzLnNlbmRlcik7XG4gICAgcmV0dXJuIFRvbldlYi5Db250cmFjdC5jcmVhdGVDb21tb25Nc2dJbmZvKGhlYWRlciwgc3RhdGVJbml0LCBib2R5KTtcbiAgfVxuXG4gIGxvYWRJbnB1dHNBbmRPdXRwdXRzKCk6IHZvaWQge1xuICAgIGNvbnN0IG91dHB1dHM6IEVudHJ5W10gPSBbXTtcbiAgICBjb25zdCBpbnB1dHM6IEVudHJ5W10gPSBbXTtcbiAgICBpbnB1dHMucHVzaCh7XG4gICAgICBhZGRyZXNzOiB0aGlzLnNlbmRlcixcbiAgICAgIHZhbHVlOiB0aGlzLnJlY2lwaWVudC5hbW91bnQsXG4gICAgICBjb2luOiB0aGlzLl9jb2luQ29uZmlnLm5hbWUsXG4gICAgfSk7XG4gICAgb3V0cHV0cy5wdXNoKHtcbiAgICAgIGFkZHJlc3M6IHRoaXMucmVjaXBpZW50LmFkZHJlc3MsXG4gICAgICB2YWx1ZTogdGhpcy5yZWNpcGllbnQuYW1vdW50LFxuICAgICAgY29pbjogdGhpcy5fY29pbkNvbmZpZy5uYW1lLFxuICAgIH0pO1xuICAgIHRoaXMuX291dHB1dHMgPSBvdXRwdXRzO1xuICAgIHRoaXMuX2lucHV0cyA9IGlucHV0cztcbiAgfVxuXG4gIGZyb21SYXdUcmFuc2FjdGlvbihyYXdUcmFuc2FjdGlvbjogc3RyaW5nKTogdm9pZCB7XG4gICAgdHJ5IHtcbiAgICAgIGNvbnN0IGNlbGwgPSBUb25XZWIuYm9jLkNlbGwub25lRnJvbUJvYyhUb25XZWIudXRpbHMuYmFzZTY0VG9CeXRlcyhyYXdUcmFuc2FjdGlvbikpO1xuICAgICAgY29uc3QgcGFyc2VkID0gdGhpcy5wYXJzZVRyYW5zYWN0aW9uKGNlbGwpO1xuXG4gICAgICB0aGlzLnNlbmRlciA9IHBhcnNlZC5mcm9tQWRkcmVzcztcbiAgICAgIHRoaXMucmVjaXBpZW50ID0geyBhZGRyZXNzOiBwYXJzZWQudG9BZGRyZXNzLCBhbW91bnQ6IHBhcnNlZC52YWx1ZSB9O1xuICAgICAgdGhpcy53aXRoZHJhd0Ftb3VudCA9IHBhcnNlZC53aXRoZHJhd0Ftb3VudDtcbiAgICAgIHRoaXMuc2Vxbm8gPSBwYXJzZWQuc2Vxbm87XG4gICAgICB0aGlzLnB1YmxpY0tleSA9IHBhcnNlZC5wdWJsaWNLZXkgYXMgc3RyaW5nO1xuICAgICAgdGhpcy5leHBpcmVUaW1lID0gcGFyc2VkLmV4cGlyZUF0O1xuICAgICAgdGhpcy5tZXNzYWdlID0gcGFyc2VkLnBheWxvYWQ7XG4gICAgICB0aGlzLl9zaWduYXR1cmVzLnB1c2gocGFyc2VkLnNpZ25hdHVyZSk7XG4gICAgICB0aGlzLmJvdW5jZWFibGUgPSBwYXJzZWQuYm91bmNlO1xuICAgICAgdGhpcy5zdWJfd2FsbGV0X2lkID0gcGFyc2VkLndhbGxldElkO1xuICAgIH0gY2F0Y2ggKGUpIHtcbiAgICAgIHRocm93IG5ldyBFcnJvcignaW52YWxpZCByYXcgdHJhbnNhY3Rpb24nKTtcbiAgICB9XG4gIH1cblxuICAvKiogQGluaGVyaXREb2MgKi9cbiAgZXhwbGFpblRyYW5zYWN0aW9uKCk6IFRyYW5zYWN0aW9uRXhwbGFuYXRpb24ge1xuICAgIGNvbnN0IGRpc3BsYXlPcmRlciA9IFsnaWQnLCAnb3V0cHV0cycsICdvdXRwdXRBbW91bnQnLCAnY2hhbmdlT3V0cHV0cycsICdjaGFuZ2VBbW91bnQnLCAnZmVlJywgJ3dpdGhkcmF3QW1vdW50J107XG5cbiAgICBjb25zdCBvdXRwdXRzOiBUcmFuc2FjdGlvblJlY2lwaWVudFtdID0gW3RoaXMucmVjaXBpZW50XTtcbiAgICBjb25zdCBvdXRwdXRBbW91bnQgPSB0aGlzLnJlY2lwaWVudC5hbW91bnQ7XG4gICAgY29uc3Qgd2l0aGRyYXdBbW91bnQgPSB0aGlzLndpdGhkcmF3QW1vdW50O1xuICAgIHJldHVybiB7XG4gICAgICBkaXNwbGF5T3JkZXIsXG4gICAgICBpZDogdGhpcy5pZCxcbiAgICAgIG91dHB1dHMsXG4gICAgICBvdXRwdXRBbW91bnQsXG4gICAgICBjaGFuZ2VPdXRwdXRzOiBbXSxcbiAgICAgIGNoYW5nZUFtb3VudDogJzAnLFxuICAgICAgZmVlOiB7IGZlZTogJ1VOS05PV04nIH0sXG4gICAgICB3aXRoZHJhd0Ftb3VudCxcbiAgICB9O1xuICB9XG5cbiAgcHJvdGVjdGVkIHBhcnNlVHJhbnNhY3Rpb24oY2VsbDogQ2VsbCk6IGFueSB7XG4gICAgY29uc3Qgc2xpY2UgPSAoY2VsbCBhcyBhbnkpLmJlZ2luUGFyc2UoKTtcblxuICAgIC8vIGhlYWRlclxuXG4gICAgaWYgKHNsaWNlLmxvYWRVaW50KDIpLnRvTnVtYmVyKCkgIT09IDIpIHRocm93IEVycm9yKCdpbnZhbGlkIGhlYWRlcicpO1xuXG4gICAgY29uc3QgZXh0ZXJuYWxTb3VyY2VBZGRyZXNzID0gc2xpY2UubG9hZEFkZHJlc3MoKTtcbiAgICBpZiAoZXh0ZXJuYWxTb3VyY2VBZGRyZXNzICE9PSBudWxsKSB0aHJvdyBFcnJvcignaW52YWxpZCBleHRlcm5hbFNvdXJjZUFkZHJlc3MnKTtcblxuICAgIGNvbnN0IGV4dGVybmFsRGVzdEFkZHJlc3MgPSBzbGljZS5sb2FkQWRkcmVzcygpO1xuXG4gICAgY29uc3QgZXh0ZXJuYWxJbXBvcnRGZWUgPSBzbGljZS5sb2FkQ29pbnMoKTtcbiAgICBpZiAoIWV4dGVybmFsSW1wb3J0RmVlLmVxKG5ldyBCTigwKSkpIHRocm93IG5ldyBFcnJvcignaW52YWxpZCBleHRlcm5hbEltcG9ydEZlZScpO1xuXG4gICAgLy8gc3RhdGVJbml0XG5cbiAgICBsZXQgcHVibGljS2V5O1xuICAgIGlmIChzbGljZS5sb2FkQml0KCkpIHtcbiAgICAgIGlmIChzbGljZS5sb2FkQml0KCkpIHtcbiAgICAgICAgY29uc3Qgc3RhdGVJbml0ID0gc2xpY2UubG9hZFJlZigpO1xuICAgICAgICBzdGF0ZUluaXQubG9hZFJlZigpO1xuICAgICAgICBjb25zdCBkYXRhID0gc3RhdGVJbml0LmxvYWRSZWYoKTtcbiAgICAgICAgY29uc3Qgc2Vxbm8gPSBkYXRhLmxvYWRVaW50KDMyKS50b051bWJlcigpO1xuICAgICAgICBpZiAoc2Vxbm8gIT09IDApIHRocm93IG5ldyBFcnJvcignaW52YWxpZCBzZXFubycpO1xuICAgICAgICBjb25zdCB3YWxsZXRJZCA9IGRhdGEubG9hZFVpbnQoMzIpLnRvTnVtYmVyKCk7XG4gICAgICAgIGlmICh3YWxsZXRJZCAhPT0gV0FMTEVUX0lEKSB0aHJvdyBuZXcgRXJyb3IoJ2ludmFsaWQgd2FsbGV0IGlkJyk7XG4gICAgICAgIGNvbnN0IHB1YmxpY0tleUJ1ZiA9IG5ldyBVaW50OEFycmF5KDMyKTtcbiAgICAgICAgZm9yIChsZXQgaSA9IDA7IGkgPCBwdWJsaWNLZXlCdWYubGVuZ3RoOyBpKyspIHtcbiAgICAgICAgICBwdWJsaWNLZXlCdWZbaV0gPSBkYXRhLmxvYWRVaW50KDgpO1xuICAgICAgICB9XG4gICAgICAgIHB1YmxpY0tleSA9IEJ1ZmZlci5mcm9tKHB1YmxpY0tleUJ1ZikudG9TdHJpbmcoJ2hleCcpO1xuICAgICAgfVxuICAgIH1cblxuICAgIC8vIGJvZHlcbiAgICBjb25zdCBib2R5U2xpY2UgPSBzbGljZS5sb2FkQml0KCkgPyBzbGljZS5sb2FkUmVmKCkgOiBzbGljZTtcblxuICAgIHJldHVybiB7XG4gICAgICBmcm9tQWRkcmVzczogZXh0ZXJuYWxEZXN0QWRkcmVzcy50b1N0cmluZyh0cnVlLCB0cnVlLCB0aGlzLmZyb21BZGRyZXNzQm91bmNlYWJsZSksXG4gICAgICBwdWJsaWNLZXksXG4gICAgICAuLi50aGlzLnBhcnNlVHJhbnNhY3Rpb25Cb2R5KGJvZHlTbGljZSksXG4gICAgfTtcbiAgfVxuXG4gIHByaXZhdGUgcGFyc2VUcmFuc2FjdGlvbkJvZHkoc2xpY2U6IGFueSk6IGFueSB7XG4gICAgY29uc3Qgc2lnbmF0dXJlID0gQnVmZmVyLmZyb20oc2xpY2UubG9hZEJpdHMoNTEyKSkudG9TdHJpbmcoJ2hleCcpO1xuICAgIC8vIHNpZ25pbmcgbWVzc2FnZVxuXG4gICAgY29uc3Qgd2FsbGV0SWQgPSBzbGljZS5sb2FkVWludCgzMikudG9OdW1iZXIoKTtcbiAgICBpZiAod2FsbGV0SWQgIT09IFdBTExFVF9JRCAmJiB3YWxsZXRJZCAhPT0gVkVTVElOR19DT05UUkFDVF9XQUxMRVRfSUQpIHRocm93IG5ldyBFcnJvcignaW52YWxpZCB3YWxsZXRJZCcpO1xuXG4gICAgY29uc3QgZXhwaXJlQXQgPSBzbGljZS5sb2FkVWludCgzMikudG9OdW1iZXIoKTtcblxuICAgIGNvbnN0IHNlcW5vID0gc2xpY2UubG9hZFVpbnQoMzIpLnRvTnVtYmVyKCk7XG5cbiAgICBjb25zdCBvcCA9IHNsaWNlLmxvYWRVaW50KDgpLnRvTnVtYmVyKCk7XG4gICAgaWYgKG9wICE9PSAzKSB7XG4gICAgICBpZiAob3AgIT09IDApIHRocm93IG5ldyBFcnJvcignaW52YWxpZCBvcCcpO1xuXG4gICAgICBjb25zdCBzZW5kTW9kZSA9IHNsaWNlLmxvYWRVaW50KDgpLnRvTnVtYmVyKCk7XG4gICAgICBpZiAoc2VuZE1vZGUgIT09IDMpIHRocm93IG5ldyBFcnJvcignaW52YWxpZCBzZW5kTW9kZScpO1xuICAgIH0gZWxzZSB7XG4gICAgICB0aGlzLmlzVjNDb250cmFjdE1lc3NhZ2UgPSB0cnVlO1xuICAgIH1cblxuICAgIGxldCBvcmRlciA9IHNsaWNlLmxvYWRSZWYoKTtcblxuICAgIGlmIChvcmRlci5sb2FkQml0KCkpIHRocm93IEVycm9yKCdpbnZhbGlkIGludGVybmFsIGhlYWRlcicpO1xuICAgIGlmICghb3JkZXIubG9hZEJpdCgpKSB0aHJvdyBFcnJvcignaW52YWxpZCBpaHJEaXNhYmxlZCcpO1xuICAgIGNvbnN0IGJvdW5jZSA9IG9yZGVyLmxvYWRCaXQoKTtcbiAgICBpZiAob3JkZXIubG9hZEJpdCgpKSB0aHJvdyBFcnJvcignaW52YWxpZCBib3VuY2VkJyk7XG4gICAgY29uc3Qgc291cmNlQWRkcmVzcyA9IG9yZGVyLmxvYWRBZGRyZXNzKCk7XG4gICAgaWYgKHNvdXJjZUFkZHJlc3MgIT09IG51bGwpIHRocm93IEVycm9yKCdpbnZhbGlkIGV4dGVybmFsU291cmNlQWRkcmVzcycpO1xuICAgIGNvbnN0IGRlc3RBZGRyZXNzID0gb3JkZXIubG9hZEFkZHJlc3MoKTtcbiAgICBjb25zdCB2YWx1ZSA9IG9yZGVyLmxvYWRDb2lucygpLnRvU3RyaW5nKCk7XG5cbiAgICBpZiAob3JkZXIubG9hZEJpdCgpKSB0aHJvdyBFcnJvcignaW52YWxpZCBjdXJyZW5jeUNvbGxlY3Rpb24nKTtcbiAgICBjb25zdCBpaHJGZWVzID0gb3JkZXIubG9hZENvaW5zKCk7XG4gICAgaWYgKCFpaHJGZWVzLmVxKG5ldyBCTigwKSkpIHRocm93IG5ldyBFcnJvcignaW52YWxpZCBpaHJGZWVzJyk7XG4gICAgY29uc3QgZndkRmVlcyA9IG9yZGVyLmxvYWRDb2lucygpO1xuICAgIGlmICghZndkRmVlcy5lcShuZXcgQk4oMCkpKSB0aHJvdyBuZXcgRXJyb3IoJ2ludmFsaWQgZndkRmVlcycpO1xuICAgIGNvbnN0IGNyZWF0ZWRMdCA9IG9yZGVyLmxvYWRVaW50KDY0KTtcbiAgICBpZiAoIWNyZWF0ZWRMdC5lcShuZXcgQk4oMCkpKSB0aHJvdyBuZXcgRXJyb3IoJ2ludmFsaWQgY3JlYXRlZEx0Jyk7XG4gICAgY29uc3QgY3JlYXRlZEF0ID0gb3JkZXIubG9hZFVpbnQoMzIpO1xuICAgIGlmICghY3JlYXRlZEF0LmVxKG5ldyBCTigwKSkpIHRocm93IG5ldyBFcnJvcignaW52YWxpZCBjcmVhdGVkQXQnKTtcblxuICAgIC8vIG9yZGVyIHN0YXRlSW5pdFxuICAgIGlmIChvcmRlci5sb2FkQml0KCkpIHtcbiAgICAgIG9yZGVyLmxvYWRSZWYoKTsgLy8gZG9uJ3QgcGFyc2Ugc3RhdGVJbml0XG4gICAgfVxuXG4gICAgLy8gb3JkZXIgYm9keVxuICAgIGxldCBwYXlsb2FkO1xuICAgIGxldCB3aXRoZHJhd0Ftb3VudDtcbiAgICB0aGlzLnRyYW5zYWN0aW9uVHlwZSA9IFRyYW5zYWN0aW9uVHlwZS5TZW5kO1xuICAgIGlmIChvcmRlci5nZXRGcmVlQml0cygpID4gMCkge1xuICAgICAgaWYgKG9yZGVyLmxvYWRCaXQoKSkge1xuICAgICAgICBvcmRlciA9IG9yZGVyLmxvYWRSZWYoKTtcbiAgICAgIH1cblxuICAgICAgaWYgKG9yZGVyLmdldEZyZWVCaXRzKCkgPiAzMikge1xuICAgICAgICBjb25zdCBvcGNvZGUgPSBvcmRlci5sb2FkVWludCgzMikudG9OdW1iZXIoKTtcbiAgICAgICAgaWYgKG9wY29kZSA9PT0gMCkge1xuICAgICAgICAgIGNvbnN0IHBheWxvYWRCeXRlcyA9IG9yZGVyLmxvYWRCaXRzKG9yZGVyLmdldEZyZWVCaXRzKCkpO1xuICAgICAgICAgIHBheWxvYWQgPSBuZXcgVGV4dERlY29kZXIoKS5kZWNvZGUocGF5bG9hZEJ5dGVzKTtcbiAgICAgICAgfSBlbHNlIGlmIChvcGNvZGUgPT09IDQwOTYpIHtcbiAgICAgICAgICBjb25zdCBxdWVyeUlkID0gb3JkZXIubG9hZFVpbnQoNjQpLnRvTnVtYmVyKCk7XG4gICAgICAgICAgd2l0aGRyYXdBbW91bnQgPSBvcmRlci5sb2FkQ29pbnMoKS50b051bWJlcigpLnRvU3RyaW5nKCk7XG4gICAgICAgICAgcGF5bG9hZCA9IFdJVEhEUkFXX09QQ09ERSArIHF1ZXJ5SWQudG9TdHJpbmcoMTYpLnBhZFN0YXJ0KDE2LCAnMCcpICsgd2l0aGRyYXdBbW91bnQ7XG4gICAgICAgICAgdGhpcy50cmFuc2FjdGlvblR5cGUgPSBUcmFuc2FjdGlvblR5cGUuU2luZ2xlTm9taW5hdG9yV2l0aGRyYXc7XG4gICAgICAgIH0gZWxzZSBpZiAob3Bjb2RlID09PSBKRVRUT05fVFJBTlNGRVJfT1BDT0RFKSB7XG4gICAgICAgICAgdGhpcy50cmFuc2FjdGlvblR5cGUgPSBUcmFuc2FjdGlvblR5cGUuU2VuZFRva2VuO1xuICAgICAgICAgIGNvbnN0IHF1ZXJ5SWQgPSBvcmRlci5sb2FkVWludCg2NCkudG9OdW1iZXIoKTtcbiAgICAgICAgICBpZiAocXVlcnlJZCAhPT0gMCkgdGhyb3cgbmV3IEVycm9yKCdpbnZhbGlkIHF1ZXJ5SWQgZm9yIGpldHRvbiB0cmFuc2ZlcicpO1xuXG4gICAgICAgICAgY29uc3QgamV0dG9uQW1vdW50ID0gb3JkZXIubG9hZENvaW5zKCk7XG4gICAgICAgICAgaWYgKCFqZXR0b25BbW91bnQuZ3QobmV3IEJOKDApKSkgdGhyb3cgbmV3IEVycm9yKCdpbnZhbGlkIGpldHRvbkFtb3VudCcpO1xuXG4gICAgICAgICAgY29uc3QgamV0dG9uUmVjaXBpZW50ID0gb3JkZXIubG9hZEFkZHJlc3MoKTtcbiAgICAgICAgICBpZiAoIWpldHRvblJlY2lwaWVudCkgdGhyb3cgbmV3IEVycm9yKCdpbnZhbGlkIGpldHRvblJlY2lwaWVudCcpO1xuXG4gICAgICAgICAgY29uc3QgZm9yd2FyZGVyQWRkcmVzcyA9IG9yZGVyLmxvYWRBZGRyZXNzKCk7XG4gICAgICAgICAgaWYgKCFmb3J3YXJkZXJBZGRyZXNzKSB0aHJvdyBuZXcgRXJyb3IoJ2ludmFsaWQgZm9yd2FyZGVyQWRkcmVzcycpO1xuXG4gICAgICAgICAgb3JkZXIubG9hZEJpdCgpOyAvLyBza2lwIGJpdFxuXG4gICAgICAgICAgY29uc3QgZm9yd2FyZFRvbkFtb3VudCA9IG9yZGVyLmxvYWRDb2lucygpO1xuICAgICAgICAgIGlmICghZm9yd2FyZFRvbkFtb3VudC5ndChuZXcgQk4oMCkpKSB0aHJvdyBuZXcgRXJyb3IoJ2ludmFsaWQgZm9yd2FyZFRvbkFtb3VudCcpO1xuXG4gICAgICAgICAgbGV0IG1lc3NhZ2UgPSAnJztcbiAgICAgICAgICBpZiAob3JkZXIubG9hZEJpdCgpKSB7XG4gICAgICAgICAgICBvcmRlciA9IG9yZGVyLmxvYWRSZWYoKTtcbiAgICAgICAgICAgIGNvbnN0IG1lc3NhZ2VPcGNvZGUgPSBvcmRlci5sb2FkVWludCgzMikudG9OdW1iZXIoKTtcbiAgICAgICAgICAgIGlmIChtZXNzYWdlT3Bjb2RlICE9PSAwKSB0aHJvdyBuZXcgRXJyb3IoJ2ludmFsaWQgbWVzc2FnZSBvcGNvZGUnKTtcbiAgICAgICAgICAgIGNvbnN0IG1lc3NhZ2VCeXRlcyA9IG9yZGVyLmxvYWRCaXRzKG9yZGVyLmdldEZyZWVCaXRzKCkpO1xuICAgICAgICAgICAgbWVzc2FnZSA9IG5ldyBUZXh0RGVjb2RlcigpLmRlY29kZShtZXNzYWdlQnl0ZXMpO1xuICAgICAgICAgIH1cblxuICAgICAgICAgIHBheWxvYWQgPSB7XG4gICAgICAgICAgICBqZXR0b25BbW91bnQ6IGpldHRvbkFtb3VudC50b1N0cmluZygpLFxuICAgICAgICAgICAgamV0dG9uUmVjaXBpZW50OiBqZXR0b25SZWNpcGllbnQudG9TdHJpbmcodHJ1ZSwgdHJ1ZSwgdGhpcy50b0FkZHJlc3NCb3VuY2VhYmxlKSxcbiAgICAgICAgICAgIGZvcndhcmRlckFkZHJlc3M6IGZvcndhcmRlckFkZHJlc3MudG9TdHJpbmcodHJ1ZSwgdHJ1ZSwgdGhpcy5mcm9tQWRkcmVzc0JvdW5jZWFibGUpLFxuICAgICAgICAgICAgZm9yd2FyZFRvbkFtb3VudDogZm9yd2FyZFRvbkFtb3VudC50b1N0cmluZygpLFxuICAgICAgICAgICAgbWVzc2FnZTogbWVzc2FnZSxcbiAgICAgICAgICB9O1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgIHBheWxvYWQgPSAnJztcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cbiAgICByZXR1cm4ge1xuICAgICAgdG9BZGRyZXNzOiBkZXN0QWRkcmVzcy50b1N0cmluZyh0cnVlLCB0cnVlLCB0aGlzLmZyb21BZGRyZXNzQm91bmNlYWJsZSksXG4gICAgICB2YWx1ZSxcbiAgICAgIGJvdW5jZSxcbiAgICAgIHNlcW5vLFxuICAgICAgd2l0aGRyYXdBbW91bnQsXG4gICAgICBleHBpcmVBdCxcbiAgICAgIHBheWxvYWQsXG4gICAgICBzaWduYXR1cmUsXG4gICAgICB3YWxsZXRJZCxcbiAgICB9O1xuICB9XG5cbiAgcHJpdmF0ZSBwYXJzZVRyYW5zZmVyU3RhdGVJbml0KHNsaWNlOiBhbnkpOiBhbnkge1xuICAgIGlmIChzbGljZSA9PT0gbnVsbCkgcmV0dXJuIHt9O1xuICAgIHNsaWNlLmxvYWRSZWYoKTtcbiAgICBjb25zdCBkYXRhID0gc2xpY2UubG9hZFJlZigpO1xuICAgIGNvbnN0IHNlcW5vID0gZGF0YS5sb2FkVWludCgzMikudG9OdW1iZXIoKTtcbiAgICBpZiAoc2Vxbm8gIT09IDApIHRocm93IG5ldyBFcnJvcignaW52YWxpZCBzZXFubycpO1xuICAgIGNvbnN0IHdhbGxldElkID0gZGF0YS5sb2FkVWludCgzMikudG9OdW1iZXIoKTtcbiAgICBpZiAod2FsbGV0SWQgIT09IFdBTExFVF9JRCkgdGhyb3cgbmV3IEVycm9yKCdpbnZhbGlkIHdhbGxldCBpZCcpO1xuICAgIGNvbnN0IHB1YmxpY0tleSA9IG5ldyBVaW50OEFycmF5KDMyKTtcbiAgICBmb3IgKGxldCBpID0gMDsgaSA8IHB1YmxpY0tleS5sZW5ndGg7IGkrKykge1xuICAgICAgcHVibGljS2V5W2ldID0gZGF0YS5sb2FkVWludCg4KTtcbiAgICB9XG4gICAgcmV0dXJuIHtcbiAgICAgIHB1YmxpY0tleTogQnVmZmVyLmZyb20ocHVibGljS2V5KS50b1N0cmluZygnaGV4JyksXG4gICAgfTtcbiAgfVxufVxuIl19
|
|
406
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHJhbnNhY3Rpb24uanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvbGliL3RyYW5zYWN0aW9uLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7OztBQUFBLG9EQUE0QjtBQUM1QixpQ0FBMkI7QUFHM0IsOENBQW9IO0FBR3BILDJDQU9xQjtBQUVyQixNQUFhLFdBQVksU0FBUSwwQkFBZTtJQWdCOUMsWUFBWSxVQUFnQztRQUMxQyxLQUFLLENBQUMsVUFBVSxDQUFDLENBQUM7UUFDbEIsSUFBSSxDQUFDLFVBQVUsR0FBRyxLQUFLLENBQUM7UUFDeEIsSUFBSSxDQUFDLHFCQUFxQixHQUFHLElBQUksQ0FBQztRQUNsQyxJQUFJLENBQUMsbUJBQW1CLEdBQUcsSUFBSSxDQUFDO1FBQ2hDLElBQUksQ0FBQyxtQkFBbUIsR0FBRyxLQUFLLENBQUM7SUFDbkMsQ0FBQztJQUVELE9BQU8sQ0FBQyxHQUFZO1FBQ2xCLE9BQU8sS0FBSyxDQUFDO0lBQ2YsQ0FBQztJQUVELGlCQUFpQjtRQUNmLE9BQU8sSUFBSSxDQUFDLFlBQVksQ0FBQztJQUMzQixDQUFDO0lBRUQsTUFBTTtRQUNKLE1BQU0sV0FBVyxHQUFHLElBQUksZ0JBQU0sQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQ3JFLElBQUksRUFDSixJQUFJLEVBQ0osQ0FBQyxJQUFJLGdCQUFNLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxTQUFTLENBQUMsT0FBTyxDQUFDLENBQUMsWUFBWSxDQUN6RCxDQUFDO1FBQ0YsT0FBTztZQUNMLEVBQUUsRUFBRSxJQUFJLENBQUMsR0FBYTtZQUN0QixNQUFNLEVBQUUsSUFBSSxDQUFDLE1BQU07WUFDbkIsV0FBVyxFQUFFLElBQUksQ0FBQyxTQUFTLENBQUMsT0FBTztZQUNuQyxnQkFBZ0IsRUFBRSxXQUFXO1lBQzdCLE1BQU0sRUFBRSxJQUFJLENBQUMsU0FBUyxDQUFDLE1BQU07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QztJQUNKLENBQUM7Q0FDRjtBQWxiRCxrQ0FrYkMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgVG9uV2ViIGZyb20gJ3RvbndlYic7XG5pbXBvcnQgeyBCTiB9IGZyb20gJ2JuLmpzJztcbmltcG9ydCB7IENlbGwgfSBmcm9tICd0b253ZWIvZGlzdC90eXBlcy9ib2MvY2VsbCc7XG5cbmltcG9ydCB7IEJhc2VLZXksIEJhc2VUcmFuc2FjdGlvbiwgRW50cnksIFJlY2lwaWVudCwgVHJhbnNhY3Rpb25SZWNpcGllbnQsIFRyYW5zYWN0aW9uVHlwZSB9IGZyb20gJ0BiaXRnby9zZGstY29yZSc7XG5pbXBvcnQgeyBCYXNlQ29pbiBhcyBDb2luQ29uZmlnIH0gZnJvbSAnQGJpdGdvL3N0YXRpY3MnO1xuaW1wb3J0IHsgVHJhbnNhY3Rpb25FeHBsYW5hdGlvbiwgVHhEYXRhIH0gZnJvbSAnLi9pZmFjZSc7XG5pbXBvcnQge1xuICBXSVRIRFJBV19PUENPREUsXG4gIFdBTExFVF9JRCxcbiAgSkVUVE9OX1RSQU5TRkVSX09QQ09ERSxcbiAgVkVTVElOR19DT05UUkFDVF9XQUxMRVRfSUQsXG4gIFRPTl9XSEFMRVNfREVQT1NJVF9PUENPREUsXG4gIFRPTl9XSEFMRVNfV0lUSERSQVdfT1BDT0RFLFxufSBmcm9tICcuL2NvbnN0YW50cyc7XG5cbmV4cG9ydCBjbGFzcyBUcmFuc2FjdGlvbiBleHRlbmRzIEJhc2VUcmFuc2FjdGlvbiB7XG4gIHB1YmxpYyByZWNpcGllbnQ6IFJlY2lwaWVudDtcbiAgcHVibGljIGJvdW5jZWFibGU6IGJvb2xlYW47XG4gIHB1YmxpYyBmcm9tQWRkcmVzc0JvdW5jZWFibGU6IGJvb2xlYW47XG4gIHB1YmxpYyB0b0FkZHJlc3NCb3VuY2VhYmxlOiBib29sZWFuO1xuICBwdWJsaWMgbWVzc2FnZTogc3RyaW5nO1xuICBwdWJsaWMgd2l0aGRyYXdBbW91bnQ6IHN0cmluZztcbiAgc2Vxbm86IG51bWJlcjtcbiAgZXhwaXJlVGltZTogbnVtYmVyO1xuICBzZW5kZXI6IHN0cmluZztcbiAgcHVibGljS2V5OiBzdHJpbmc7XG4gIGlzVjNDb250cmFjdE1lc3NhZ2U6IGJvb2xlYW47XG4gIHN1Yl93YWxsZXRfaWQ6IG51bWJlcjtcbiAgcHJvdGVjdGVkIHVuc2lnbmVkTWVzc2FnZTogc3RyaW5nO1xuICBwcm90ZWN0ZWQgZmluYWxNZXNzYWdlOiBzdHJpbmc7XG5cbiAgY29uc3RydWN0b3IoY29pbkNvbmZpZzogUmVhZG9ubHk8Q29pbkNvbmZpZz4pIHtcbiAgICBzdXBlcihjb2luQ29uZmlnKTtcbiAgICB0aGlzLmJvdW5jZWFibGUgPSBmYWxzZTtcbiAgICB0aGlzLmZyb21BZGRyZXNzQm91bmNlYWJsZSA9IHRydWU7XG4gICAgdGhpcy50b0FkZHJlc3NCb3VuY2VhYmxlID0gdHJ1ZTtcbiAgICB0aGlzLmlzVjNDb250cmFjdE1lc3NhZ2UgPSBmYWxzZTtcbiAgfVxuXG4gIGNhblNpZ24oa2V5OiBCYXNlS2V5KTogYm9vbGVhbiB7XG4gICAgcmV0dXJuIGZhbHNlO1xuICB9XG5cbiAgdG9Ccm9hZGNhc3RGb3JtYXQoKTogc3RyaW5nIHtcbiAgICByZXR1cm4gdGhpcy5maW5hbE1lc3NhZ2U7XG4gIH1cblxuICB0b0pzb24oKTogVHhEYXRhIHtcbiAgICBjb25zdCBvdGhlckZvcm1hdCA9IG5ldyBUb25XZWIuQWRkcmVzcyh0aGlzLnJlY2lwaWVudC5hZGRyZXNzKS50b1N0cmluZyhcbiAgICAgIHRydWUsXG4gICAgICB0cnVlLFxuICAgICAgIW5ldyBUb25XZWIuQWRkcmVzcyh0aGlzLnJlY2lwaWVudC5hZGRyZXNzKS5pc0JvdW5jZWFibGVcbiAgICApO1xuICAgIHJldHVybiB7XG4gICAgICBpZDogdGhpcy5faWQgYXMgc3RyaW5nLFxuICAgICAgc2VuZGVyOiB0aGlzLnNlbmRlcixcbiAgICAgIGRlc3RpbmF0aW9uOiB0aGlzLnJlY2lwaWVudC5hZGRyZXNzLFxuICAgICAgZGVzdGluYXRpb25BbGlhczogb3RoZXJGb3JtYXQsXG4gICAgICBhbW91bnQ6IHRoaXMucmVjaXBpZW50LmFtb3VudCxcbiAgICAgIHdpdGhkcmF3QW1vdW50OiB0aGlzLndpdGhkcmF3QW1vdW50LFxuICAgICAgc2Vxbm86IHRoaXMuc2Vxbm8sXG4gICAgICBzdWJfd2FsbGV0X2lkOiB0aGlzLnN1Yl93YWxsZXRfaWQsXG4gICAgICBleHBpcmF0aW9uVGltZTogdGhpcy5leHBpcmVUaW1lLFxuICAgICAgcHVibGljS2V5OiB0aGlzLnB1YmxpY0tleSxcbiAgICAgIHNpZ25hdHVyZTogdGhpcy5fc2lnbmF0dXJlc1swXSxcbiAgICAgIGJvdW5jZWFibGU6IHRoaXMuYm91bmNlYWJsZSxcbiAgICB9O1xuICB9XG5cbiAgZ2V0IHNpZ25hYmxlUGF5bG9hZCgpOiBCdWZmZXIge1xuICAgIHJldHVybiBCdWZmZXIuZnJvbSh0aGlzLnVuc2lnbmVkTWVzc2FnZSwgJ2hleCcpO1xuICB9XG5cbiAgLyoqXG4gICAqIFNldCB0aGUgdHJhbnNhY3Rpb24gdHlwZS5cbiAgICogQHBhcmFtIHtUcmFuc2FjdGlvblR5cGV9IHRyYW5zYWN0aW9uVHlwZSBUaGUgdHJhbnNhY3Rpb24gdHlwZSB0byBiZSBzZXQuXG4gICAqL1xuICBzZXQgdHJhbnNhY3Rpb25UeXBlKHRyYW5zYWN0aW9uVHlwZTogVHJhbnNhY3Rpb25UeXBlKSB7XG4gICAgdGhpcy5fdHlwZSA9IHRyYW5zYWN0aW9uVHlwZTtcbiAgfVxuXG4gIGFzeW5jIGJ1aWxkKCk6IFByb21pc2U8dm9pZD4ge1xuICAgIGlmICghdGhpcy5zdWJfd2FsbGV0X2lkKSB7XG4gICAgICBpZiAodGhpcy5pc1YzQ29udHJhY3RNZXNzYWdlKSB7XG4gICAgICAgIHRoaXMuc3ViX3dhbGxldF9pZCA9IFZFU1RJTkdfQ09OVFJBQ1RfV0FMTEVUX0lEO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgdGhpcy5zdWJfd2FsbGV0X2lkID0gV0FMTEVUX0lEO1xuICAgICAgfVxuICAgIH1cbiAgICBjb25zdCBzaWduaW5nTWVzc2FnZSA9IHRoaXMuY3JlYXRlU2lnbmluZ01lc3NhZ2UodGhpcy5zdWJfd2FsbGV0X2lkLCB0aGlzLnNlcW5vLCB0aGlzLmV4cGlyZVRpbWUpO1xuICAgIGNvbnN0IHNlbmRNb2RlID0gMzsgLy8gZGVmYXVsdCBzZW5kTW9kZVxuICAgIHNpZ25pbmdNZXNzYWdlLmJpdHMud3JpdGVVaW50OChzZW5kTW9kZSk7XG4gICAgY29uc3Qgb3V0TXNnID0gdGhpcy5jcmVhdGVPdXRNc2codGhpcy5yZWNpcGllbnQuYWRkcmVzcywgdGhpcy5yZWNpcGllbnQuYW1vdW50LCB0aGlzLm1lc3NhZ2UpO1xuICAgIHNpZ25pbmdNZXNzYWdlLnJlZnMucHVzaChvdXRNc2cpO1xuICAgIHRoaXMudW5zaWduZWRNZXNzYWdlID0gQnVmZmVyLmZyb20oYXdhaXQgc2lnbmluZ01lc3NhZ2UuaGFzaCgpKS50b1N0cmluZygnaGV4Jyk7XG5cbiAgICBjb25zdCBzaWduYXR1cmUgPVxuICAgICAgdGhpcy5fc2lnbmF0dXJlcy5sZW5ndGggPiAwID8gdGhpcy5fc2lnbmF0dXJlc1swXSA6IEJ1ZmZlci5mcm9tKG5ldyBVaW50OEFycmF5KDY0KSkudG9TdHJpbmcoJ2hleCcpO1xuICAgIGNvbnN0IGZpbmFsTWVzc2FnZSA9IGF3YWl0IHRoaXMuY3JlYXRlRXh0ZXJuYWxNZXNzYWdlKHNpZ25pbmdNZXNzYWdlLCB0aGlzLnNlcW5vLCBzaWduYXR1cmUpO1xuXG4gICAgdGhpcy5maW5hbE1lc3NhZ2UgPSBUb25XZWIudXRpbHMuYnl0ZXNUb0Jhc2U2NChhd2FpdCBmaW5hbE1lc3NhZ2UudG9Cb2MoZmFsc2UpKTtcblxuICAgIGNvbnN0IG9yaWdpbmFsVHhJZCA9IFRvbldlYi51dGlscy5ieXRlc1RvQmFzZTY0KGF3YWl0IGZpbmFsTWVzc2FnZS5oYXNoKCkpO1xuICAgIHRoaXMuX2lkID0gb3JpZ2luYWxUeElkLnJlcGxhY2UoL1xcLy9nLCAnXycpLnJlcGxhY2UoL1xcKy9nLCAnLScpO1xuICB9XG5cbiAgcHJvdGVjdGVkIGNyZWF0ZVNpZ25pbmdNZXNzYWdlKHdhbGxldElkLCBzZXFubywgZXhwaXJlQXQpIHtcbiAgICBjb25zdCBtZXNzYWdlID0gbmV3IFRvbldlYi5ib2MuQ2VsbCgpO1xuICAgIG1lc3NhZ2UuYml0cy53cml0ZVVpbnQod2FsbGV0SWQsIDMyKTtcbiAgICAvLyBleHBpcmVBdCBzaG91bGQgYmUgc2V0IGFzIHBlciB0aGUgcHJvdmlkZWQgYXJnIHZhbHVlLCByZWdhcmRsZXNzIG9mIHRoZSBzZXFub1xuICAgIG1lc3NhZ2UuYml0cy53cml0ZVVpbnQoZXhwaXJlQXQsIDMyKTtcbiAgICBtZXNzYWdlLmJpdHMud3JpdGVVaW50KHNlcW5vLCAzMik7XG4gICAgaWYgKCF0aGlzLmlzVjNDb250cmFjdE1lc3NhZ2UpIHtcbiAgICAgIG1lc3NhZ2UuYml0cy53cml0ZVVpbnQoMCwgOCk7IC8vIG9wXG4gICAgfVxuICAgIHJldHVybiBtZXNzYWdlO1xuICB9XG5cbiAgcHJvdGVjdGVkIGNyZWF0ZU91dE1zZyhhZGRyZXNzLCBhbW91bnQsIHBheWxvYWQpIHtcbiAgICBsZXQgcGF5bG9hZENlbGwgPSBuZXcgVG9uV2ViLmJvYy5DZWxsKCk7XG4gICAgaWYgKHBheWxvYWQpIHtcbiAgICAgIGlmIChwYXlsb2FkLnJlZnMpIHtcbiAgICAgICAgLy8gaXMgQ2VsbFxuICAgICAgICBwYXlsb2FkQ2VsbCA9IHBheWxvYWQ7XG4gICAgICB9IGVsc2UgaWYgKHR5cGVvZiBwYXlsb2FkID09PSAnc3RyaW5nJykge1xuICAgICAgICBpZiAocGF5bG9hZC5sZW5ndGggPiAwKSB7XG4gICAgICAgICAgaWYgKHBheWxvYWQubGVuZ3RoID4gMjQgJiYgcGF5bG9hZC5zdWJzdHJpbmcoMCwgOCkgPT09IFdJVEhEUkFXX09QQ09ERSkge1xuICAgICAgICAgICAgLy8gcGF5bG9hZCBpcyBhIHdpdGhkcmF3IHR4biBtZXNzYWdlXG4gICAgICAgICAgICBjb25zdCBxdWVyeUlkID0gcGF5bG9hZC5zdWJzdHJpbmcoOCwgMjQpO1xuICAgICAgICAgICAgY29uc3Qgd2l0aGRyYXdBbW91bnQgPSBwYXlsb2FkLnN1YnN0cmluZygyNCk7XG4gICAgICAgICAgICAvKiBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgbm8tY29uc29sZSAqL1xuICAgICAgICAgICAgY29uc29sZS5sb2coYHBheWxvYWQ6ICR7cGF5bG9hZH0sIHF1ZXJ5SWQ6ICR7cXVlcnlJZH0sIHdpdGhkcmF3QW1vdW50OiAke3dpdGhkcmF3QW1vdW50fWApO1xuICAgICAgICAgICAgcGF5bG9hZENlbGwuYml0cy53cml0ZVVpbnQocGFyc2VJbnQoV0lUSERSQVdfT1BDT0RFLCAxNiksIDMyKTtcbiAgICAgICAgICAgIHBheWxvYWRDZWxsLmJpdHMud3JpdGVVaW50KHBhcnNlSW50KHF1ZXJ5SWQsIDE2KSwgNjQpO1xuICAgICAgICAgICAgcGF5bG9hZENlbGwuYml0cy53cml0ZUNvaW5zKG5ldyBCTih3aXRoZHJhd0Ftb3VudCkpO1xuICAgICAgICAgIH0gZWxzZSBpZiAocGF5bG9hZC5sZW5ndGggPj0gMjYgJiYgcGF5bG9hZC5zdWJzdHJpbmcoMCwgMTApID09PSBUT05fV0hBTEVTX0RFUE9TSVRfT1BDT0RFKSB7XG4gICAgICAgICAgICBjb25zdCBxdWVyeUlkID0gcGF5bG9hZC5zdWJzdHJpbmcoMTAsIDI2KTtcbiAgICAgICAgICAgIHBheWxvYWRDZWxsLmJpdHMud3JpdGVVaW50KHBhcnNlSW50KFRPTl9XSEFMRVNfREVQT1NJVF9PUENPREUsIDEwKSwgMzIpO1xuICAgICAgICAgICAgcGF5bG9hZENlbGwuYml0cy53cml0ZVVpbnQocGFyc2VJbnQocXVlcnlJZCwgMTYpLCA2NCk7XG4gICAgICAgICAgICAvLyBUaGUgVG9uIFdoYWxlcyBwcm90b2NvbCByZXF1aXJlcyBhIHNwZWNpZmljICdnYXMgbGltaXQnIGZpZWxkIGluIHRoZSBwYXlsb2FkXG4gICAgICAgICAgICAvLyBzdHJ1Y3R1cmUgKE9wQ29kZSAtPiBRdWVyeUlkIC0+IEdhc0xpbWl0IC0+IEFtb3VudCkuXG4gICAgICAgICAgICBwYXlsb2FkQ2VsbC5iaXRzLndyaXRlQ29pbnMoVG9uV2ViLnV0aWxzLnRvTmFubygnMScpKTtcbiAgICAgICAgICB9IGVsc2UgaWYgKHBheWxvYWQubGVuZ3RoID49IDI2ICYmIHBheWxvYWQuc3Vic3RyaW5nKDAsIDEwKSA9PT0gVE9OX1dIQUxFU19XSVRIRFJBV19PUENPREUpIHtcbiAgICAgICAgICAgIGNvbnN0IHF1ZXJ5SWQgPSBwYXlsb2FkLnN1YnN0cmluZygxMCwgMjYpO1xuICAgICAgICAgICAgY29uc3QgYW1vdW50U3RyID0gcGF5bG9hZC5zdWJzdHJpbmcoMjYpO1xuXG4gICAgICAgICAgICBwYXlsb2FkQ2VsbC5iaXRzLndyaXRlVWludChwYXJzZUludChUT05fV0hBTEVTX1dJVEhEUkFXX09QQ09ERSwgMTApLCAzMik7XG4gICAgICAgICAgICBwYXlsb2FkQ2VsbC5iaXRzLndyaXRlVWludChuZXcgQk4ocXVlcnlJZCwgMTYpLCA2NCk7XG4gICAgICAgICAgICAvLyBUaGUgVG9uIFdoYWxlcyBwcm90b2NvbCByZXF1aXJlcyBhIHNwZWNpZmljICdnYXMgbGltaXQnIGZpZWxkIGluIHRoZSBwYXlsb2FkXG4gICAgICAgICAgICAvLyBzdHJ1Y3R1cmUgKE9wQ29kZSAtPiBRdWVyeUlkIC0+IEdhc0xpbWl0IC0+IEFtb3VudCkuXG4gICAgICAgICAgICAvLyBXZSBoYXJkY29kZSAxIFRPTiBoZXJlIHRvIG1hdGNoIHRoZSBEZXBvc2l0IGltcGxlbWVudGF0aW9uIGFuZCBlbnN1cmVcbiAgICAgICAgICAgIC8vIHN1ZmZpY2llbnQgZ2FzIGZvciB0aGUgcG9vbCB0byBwcm9jZXNzIHRoZSByZXF1ZXN0LlxuICAgICAgICAgICAgcGF5bG9hZENlbGwuYml0cy53cml0ZUNvaW5zKFRvbldlYi51dGlscy50b05hbm8oJzEnKSk7XG4gICAgICAgICAgICBwYXlsb2FkQ2VsbC5iaXRzLndyaXRlQ29pbnMobmV3IEJOKGFtb3VudFN0cikpO1xuICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICBwYXlsb2FkQ2VsbC5iaXRzLndyaXRlVWludCgwLCAzMik7XG4gICAgICAgICAgICBwYXlsb2FkQ2VsbC5iaXRzLndyaXRlU3RyaW5nKHBheWxvYWQpO1xuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfSBlbHNlIHtcbiAgICAgICAgcGF5bG9hZENlbGwuYml0cy53cml0ZUJ5dGVzKHBheWxvYWQpO1xuICAgICAgfVxuICAgIH1cblxuICAgIGNvbnN0IG9yZGVySGVhZGVyID0gVG9uV2ViLkNvbnRyYWN0LmNyZWF0ZUludGVybmFsTWVzc2FnZUhlYWRlcihcbiAgICAgIG5ldyBUb25XZWIuQWRkcmVzcyhhZGRyZXNzKSxcbiAgICAgIG5ldyBCTihhbW91bnQpLFxuICAgICAgdHJ1ZSxcbiAgICAgIHRoaXMuYm91bmNlYWJsZVxuICAgICk7XG4gICAgcmV0dXJuIFRvbldlYi5Db250cmFjdC5jcmVhdGVDb21tb25Nc2dJbmZvKG9yZGVySGVhZGVyLCB1bmRlZmluZWQsIHBheWxvYWRDZWxsKTtcbiAgfVxuXG4gIGFzeW5jIGNyZWF0ZUV4dGVybmFsTWVzc2FnZShzaWduaW5nTWVzc2FnZTogQ2VsbCwgc2Vxbm86IG51bWJlciwgc2lnbmF0dXJlOiBzdHJpbmcpOiBQcm9taXNlPENlbGw+IHtcbiAgICBjb25zdCBib2R5ID0gbmV3IFRvbldlYi5ib2MuQ2VsbCgpO1xuXG4gICAgYm9keS5iaXRzLndyaXRlQnl0ZXMoQnVmZmVyLmZyb20oc2lnbmF0dXJlLCAnaGV4JykpO1xuICAgIGJvZHkud3JpdGVDZWxsKHNpZ25pbmdNZXNzYWdlKTtcblxuICAgIGxldCBzdGF0ZUluaXQ7XG4gICAgaWYgKHNlcW5vID09PSAwICYmICF0aGlzLmlzVjNDb250cmFjdE1lc3NhZ2UpIHtcbiAgICAgIGNvbnN0IFdhbGxldENsYXNzID0gVG9uV2ViLldhbGxldHMuYWxsWyd2NFIyJ107XG4gICAgICBjb25zdCB3YWxsZXQgPSBuZXcgV2FsbGV0Q2xhc3MobmV3IFRvbldlYi5IdHRwUHJvdmlkZXIoKSwge1xuICAgICAgICBwdWJsaWNLZXk6IFRvbldlYi51dGlscy5oZXhUb0J5dGVzKHRoaXMucHVibGljS2V5KSxcbiAgICAgICAgd2M6IDAsXG4gICAgICB9KTtcbiAgICAgIGNvbnN0IGRlcGxveSA9IGF3YWl0IHdhbGxldC5jcmVhdGVTdGF0ZUluaXQoKTtcbiAgICAgIHN0YXRlSW5pdCA9IGRlcGxveS5zdGF0ZUluaXQ7XG4gICAgfVxuXG4gICAgY29uc3QgaGVhZGVyID0gVG9uV2ViLkNvbnRyYWN0LmNyZWF0ZUV4dGVybmFsTWVzc2FnZUhlYWRlcih0aGlzLnNlbmRlcik7XG4gICAgcmV0dXJuIFRvbldlYi5Db250cmFjdC5jcmVhdGVDb21tb25Nc2dJbmZvKGhlYWRlciwgc3RhdGVJbml0LCBib2R5KTtcbiAgfVxuXG4gIGxvYWRJbnB1dHNBbmRPdXRwdXRzKCk6IHZvaWQge1xuICAgIGNvbnN0IG91dHB1dHM6IEVudHJ5W10gPSBbXTtcbiAgICBjb25zdCBpbnB1dHM6IEVudHJ5W10gPSBbXTtcbiAgICBpbnB1dHMucHVzaCh7XG4gICAgICBhZGRyZXNzOiB0aGlzLnNlbmRlcixcbiAgICAgIHZhbHVlOiB0aGlzLnJlY2lwaWVudC5hbW91bnQsXG4gICAgICBjb2luOiB0aGlzLl9jb2luQ29uZmlnLm5hbWUsXG4gICAgfSk7XG4gICAgb3V0cHV0cy5wdXNoKHtcbiAgICAgIGFkZHJlc3M6IHRoaXMucmVjaXBpZW50LmFkZHJlc3MsXG4gICAgICB2YWx1ZTogdGhpcy5yZWNpcGllbnQuYW1vdW50LFxuICAgICAgY29pbjogdGhpcy5fY29pbkNvbmZpZy5uYW1lLFxuICAgIH0pO1xuICAgIHRoaXMuX291dHB1dHMgPSBvdXRwdXRzO1xuICAgIHRoaXMuX2lucHV0cyA9IGlucHV0cztcbiAgfVxuXG4gIGZyb21SYXdUcmFuc2FjdGlvbihyYXdUcmFuc2FjdGlvbjogc3RyaW5nKTogdm9pZCB7XG4gICAgdHJ5IHtcbiAgICAgIGNvbnN0IGNlbGwgPSBUb25XZWIuYm9jLkNlbGwub25lRnJvbUJvYyhUb25XZWIudXRpbHMuYmFzZTY0VG9CeXRlcyhyYXdUcmFuc2FjdGlvbikpO1xuICAgICAgY29uc3QgcGFyc2VkID0gdGhpcy5wYXJzZVRyYW5zYWN0aW9uKGNlbGwpO1xuXG4gICAgICB0aGlzLnNlbmRlciA9IHBhcnNlZC5mcm9tQWRkcmVzcztcbiAgICAgIHRoaXMucmVjaXBpZW50ID0geyBhZGRyZXNzOiBwYXJzZWQudG9BZGRyZXNzLCBhbW91bnQ6IHBhcnNlZC52YWx1ZSB9O1xuICAgICAgdGhpcy53aXRoZHJhd0Ftb3VudCA9IHBhcnNlZC53aXRoZHJhd0Ftb3VudDtcbiAgICAgIHRoaXMuc2Vxbm8gPSBwYXJzZWQuc2Vxbm87XG4gICAgICB0aGlzLnB1YmxpY0tleSA9IHBhcnNlZC5wdWJsaWNLZXkgYXMgc3RyaW5nO1xuICAgICAgdGhpcy5leHBpcmVUaW1lID0gcGFyc2VkLmV4cGlyZUF0O1xuICAgICAgdGhpcy5tZXNzYWdlID0gcGFyc2VkLnBheWxvYWQ7XG4gICAgICB0aGlzLl9zaWduYXR1cmVzLnB1c2gocGFyc2VkLnNpZ25hdHVyZSk7XG4gICAgICB0aGlzLmJvdW5jZWFibGUgPSBwYXJzZWQuYm91bmNlO1xuICAgICAgdGhpcy5zdWJfd2FsbGV0X2lkID0gcGFyc2VkLndhbGxldElkO1xuICAgIH0gY2F0Y2ggKGUpIHtcbiAgICAgIHRocm93IG5ldyBFcnJvcignaW52YWxpZCByYXcgdHJhbnNhY3Rpb24nKTtcbiAgICB9XG4gIH1cblxuICAvKiogQGluaGVyaXREb2MgKi9cbiAgZXhwbGFpblRyYW5zYWN0aW9uKCk6IFRyYW5zYWN0aW9uRXhwbGFuYXRpb24ge1xuICAgIGNvbnN0IGRpc3BsYXlPcmRlciA9IFsnaWQnLCAnb3V0cHV0cycsICdvdXRwdXRBbW91bnQnLCAnY2hhbmdlT3V0cHV0cycsICdjaGFuZ2VBbW91bnQnLCAnZmVlJywgJ3dpdGhkcmF3QW1vdW50J107XG5cbiAgICBjb25zdCBvdXRwdXRzOiBUcmFuc2FjdGlvblJlY2lwaWVudFtdID0gW3RoaXMucmVjaXBpZW50XTtcbiAgICBjb25zdCBvdXRwdXRBbW91bnQgPSB0aGlzLnJlY2lwaWVudC5hbW91bnQ7XG4gICAgY29uc3Qgd2l0aGRyYXdBbW91bnQgPSB0aGlzLndpdGhkcmF3QW1vdW50O1xuICAgIHJldHVybiB7XG4gICAgICBkaXNwbGF5T3JkZXIsXG4gICAgICBpZDogdGhpcy5pZCxcbiAgICAgIG91dHB1dHMsXG4gICAgICBvdXRwdXRBbW91bnQsXG4gICAgICBjaGFuZ2VPdXRwdXRzOiBbXSxcbiAgICAgIGNoYW5nZUFtb3VudDogJzAnLFxuICAgICAgZmVlOiB7IGZlZTogJ1VOS05PV04nIH0sXG4gICAgICB3aXRoZHJhd0Ftb3VudCxcbiAgICB9O1xuICB9XG5cbiAgcHJvdGVjdGVkIHBhcnNlVHJhbnNhY3Rpb24oY2VsbDogQ2VsbCk6IGFueSB7XG4gICAgY29uc3Qgc2xpY2UgPSAoY2VsbCBhcyBhbnkpLmJlZ2luUGFyc2UoKTtcblxuICAgIC8vIGhlYWRlclxuXG4gICAgaWYgKHNsaWNlLmxvYWRVaW50KDIpLnRvTnVtYmVyKCkgIT09IDIpIHRocm93IEVycm9yKCdpbnZhbGlkIGhlYWRlcicpO1xuXG4gICAgY29uc3QgZXh0ZXJuYWxTb3VyY2VBZGRyZXNzID0gc2xpY2UubG9hZEFkZHJlc3MoKTtcbiAgICBpZiAoZXh0ZXJuYWxTb3VyY2VBZGRyZXNzICE9PSBudWxsKSB0aHJvdyBFcnJvcignaW52YWxpZCBleHRlcm5hbFNvdXJjZUFkZHJlc3MnKTtcblxuICAgIGNvbnN0IGV4dGVybmFsRGVzdEFkZHJlc3MgPSBzbGljZS5sb2FkQWRkcmVzcygpO1xuXG4gICAgY29uc3QgZXh0ZXJuYWxJbXBvcnRGZWUgPSBzbGljZS5sb2FkQ29pbnMoKTtcbiAgICBpZiAoIWV4dGVybmFsSW1wb3J0RmVlLmVxKG5ldyBCTigwKSkpIHRocm93IG5ldyBFcnJvcignaW52YWxpZCBleHRlcm5hbEltcG9ydEZlZScpO1xuXG4gICAgLy8gc3RhdGVJbml0XG5cbiAgICBsZXQgcHVibGljS2V5O1xuICAgIGlmIChzbGljZS5sb2FkQml0KCkpIHtcbiAgICAgIGlmIChzbGljZS5sb2FkQml0KCkpIHtcbiAgICAgICAgY29uc3Qgc3RhdGVJbml0ID0gc2xpY2UubG9hZFJlZigpO1xuICAgICAgICBzdGF0ZUluaXQubG9hZFJlZigpO1xuICAgICAgICBjb25zdCBkYXRhID0gc3RhdGVJbml0LmxvYWRSZWYoKTtcbiAgICAgICAgY29uc3Qgc2Vxbm8gPSBkYXRhLmxvYWRVaW50KDMyKS50b051bWJlcigpO1xuICAgICAgICBpZiAoc2Vxbm8gIT09IDApIHRocm93IG5ldyBFcnJvcignaW52YWxpZCBzZXFubycpO1xuICAgICAgICBjb25zdCB3YWxsZXRJZCA9IGRhdGEubG9hZFVpbnQoMzIpLnRvTnVtYmVyKCk7XG4gICAgICAgIGlmICh3YWxsZXRJZCAhPT0gV0FMTEVUX0lEKSB0aHJvdyBuZXcgRXJyb3IoJ2ludmFsaWQgd2FsbGV0IGlkJyk7XG4gICAgICAgIGNvbnN0IHB1YmxpY0tleUJ1ZiA9IG5ldyBVaW50OEFycmF5KDMyKTtcbiAgICAgICAgZm9yIChsZXQgaSA9IDA7IGkgPCBwdWJsaWNLZXlCdWYubGVuZ3RoOyBpKyspIHtcbiAgICAgICAgICBwdWJsaWNLZXlCdWZbaV0gPSBkYXRhLmxvYWRVaW50KDgpO1xuICAgICAgICB9XG4gICAgICAgIHB1YmxpY0tleSA9IEJ1ZmZlci5mcm9tKHB1YmxpY0tleUJ1ZikudG9TdHJpbmcoJ2hleCcpO1xuICAgICAgfVxuICAgIH1cblxuICAgIC8vIGJvZHlcbiAgICBjb25zdCBib2R5U2xpY2UgPSBzbGljZS5sb2FkQml0KCkgPyBzbGljZS5sb2FkUmVmKCkgOiBzbGljZTtcblxuICAgIHJldHVybiB7XG4gICAgICBmcm9tQWRkcmVzczogZXh0ZXJuYWxEZXN0QWRkcmVzcy50b1N0cmluZyh0cnVlLCB0cnVlLCB0aGlzLmZyb21BZGRyZXNzQm91bmNlYWJsZSksXG4gICAgICBwdWJsaWNLZXksXG4gICAgICAuLi50aGlzLnBhcnNlVHJhbnNhY3Rpb25Cb2R5KGJvZHlTbGljZSksXG4gICAgfTtcbiAgfVxuXG4gIHByaXZhdGUgcGFyc2VUcmFuc2FjdGlvbkJvZHkoc2xpY2U6IGFueSk6IGFueSB7XG4gICAgY29uc3Qgc2lnbmF0dXJlID0gQnVmZmVyLmZyb20oc2xpY2UubG9hZEJpdHMoNTEyKSkudG9TdHJpbmcoJ2hleCcpO1xuICAgIC8vIHNpZ25pbmcgbWVzc2FnZVxuXG4gICAgY29uc3Qgd2FsbGV0SWQgPSBzbGljZS5sb2FkVWludCgzMikudG9OdW1iZXIoKTtcbiAgICBpZiAod2FsbGV0SWQgIT09IFdBTExFVF9JRCAmJiB3YWxsZXRJZCAhPT0gVkVTVElOR19DT05UUkFDVF9XQUxMRVRfSUQpIHRocm93IG5ldyBFcnJvcignaW52YWxpZCB3YWxsZXRJZCcpO1xuXG4gICAgY29uc3QgZXhwaXJlQXQgPSBzbGljZS5sb2FkVWludCgzMikudG9OdW1iZXIoKTtcblxuICAgIGNvbnN0IHNlcW5vID0gc2xpY2UubG9hZFVpbnQoMzIpLnRvTnVtYmVyKCk7XG5cbiAgICBjb25zdCBvcCA9IHNsaWNlLmxvYWRVaW50KDgpLnRvTnVtYmVyKCk7XG4gICAgaWYgKG9wICE9PSAzKSB7XG4gICAgICBpZiAob3AgIT09IDApIHRocm93IG5ldyBFcnJvcignaW52YWxpZCBvcCcpO1xuXG4gICAgICBjb25zdCBzZW5kTW9kZSA9IHNsaWNlLmxvYWRVaW50KDgpLnRvTnVtYmVyKCk7XG4gICAgICBpZiAoc2VuZE1vZGUgIT09IDMpIHRocm93IG5ldyBFcnJvcignaW52YWxpZCBzZW5kTW9kZScpO1xuICAgIH0gZWxzZSB7XG4gICAgICB0aGlzLmlzVjNDb250cmFjdE1lc3NhZ2UgPSB0cnVlO1xuICAgIH1cblxuICAgIGxldCBvcmRlciA9IHNsaWNlLmxvYWRSZWYoKTtcblxuICAgIGlmIChvcmRlci5sb2FkQml0KCkpIHRocm93IEVycm9yKCdpbnZhbGlkIGludGVybmFsIGhlYWRlcicpO1xuICAgIGlmICghb3JkZXIubG9hZEJpdCgpKSB0aHJvdyBFcnJvcignaW52YWxpZCBpaHJEaXNhYmxlZCcpO1xuICAgIGNvbnN0IGJvdW5jZSA9IG9yZGVyLmxvYWRCaXQoKTtcbiAgICBpZiAob3JkZXIubG9hZEJpdCgpKSB0aHJvdyBFcnJvcignaW52YWxpZCBib3VuY2VkJyk7XG4gICAgY29uc3Qgc291cmNlQWRkcmVzcyA9IG9yZGVyLmxvYWRBZGRyZXNzKCk7XG4gICAgaWYgKHNvdXJjZUFkZHJlc3MgIT09IG51bGwpIHRocm93IEVycm9yKCdpbnZhbGlkIGV4dGVybmFsU291cmNlQWRkcmVzcycpO1xuICAgIGNvbnN0IGRlc3RBZGRyZXNzID0gb3JkZXIubG9hZEFkZHJlc3MoKTtcbiAgICBjb25zdCB2YWx1ZSA9IG9yZGVyLmxvYWRDb2lucygpLnRvU3RyaW5nKCk7XG5cbiAgICBpZiAob3JkZXIubG9hZEJpdCgpKSB0aHJvdyBFcnJvcignaW52YWxpZCBjdXJyZW5jeUNvbGxlY3Rpb24nKTtcbiAgICBjb25zdCBpaHJGZWVzID0gb3JkZXIubG9hZENvaW5zKCk7XG4gICAgaWYgKCFpaHJGZWVzLmVxKG5ldyBCTigwKSkpIHRocm93IG5ldyBFcnJvcignaW52YWxpZCBpaHJGZWVzJyk7XG4gICAgY29uc3QgZndkRmVlcyA9IG9yZGVyLmxvYWRDb2lucygpO1xuICAgIGlmICghZndkRmVlcy5lcShuZXcgQk4oMCkpKSB0aHJvdyBuZXcgRXJyb3IoJ2ludmFsaWQgZndkRmVlcycpO1xuICAgIGNvbnN0IGNyZWF0ZWRMdCA9IG9yZGVyLmxvYWRVaW50KDY0KTtcbiAgICBpZiAoIWNyZWF0ZWRMdC5lcShuZXcgQk4oMCkpKSB0aHJvdyBuZXcgRXJyb3IoJ2ludmFsaWQgY3JlYXRlZEx0Jyk7XG4gICAgY29uc3QgY3JlYXRlZEF0ID0gb3JkZXIubG9hZFVpbnQoMzIpO1xuICAgIGlmICghY3JlYXRlZEF0LmVxKG5ldyBCTigwKSkpIHRocm93IG5ldyBFcnJvcignaW52YWxpZCBjcmVhdGVkQXQnKTtcblxuICAgIC8vIG9yZGVyIHN0YXRlSW5pdFxuICAgIGlmIChvcmRlci5sb2FkQml0KCkpIHtcbiAgICAgIG9yZGVyLmxvYWRSZWYoKTsgLy8gZG9uJ3QgcGFyc2Ugc3RhdGVJbml0XG4gICAgfVxuXG4gICAgLy8gb3JkZXIgYm9keVxuICAgIGxldCBwYXlsb2FkO1xuICAgIGxldCB3aXRoZHJhd0Ftb3VudDtcbiAgICB0aGlzLnRyYW5zYWN0aW9uVHlwZSA9IFRyYW5zYWN0aW9uVHlwZS5TZW5kO1xuICAgIGlmIChvcmRlci5nZXRGcmVlQml0cygpID4gMCkge1xuICAgICAgaWYgKG9yZGVyLmxvYWRCaXQoKSkge1xuICAgICAgICBvcmRlciA9IG9yZGVyLmxvYWRSZWYoKTtcbiAgICAgIH1cblxuICAgICAgaWYgKG9yZGVyLmdldEZyZWVCaXRzKCkgPiAzMikge1xuICAgICAgICBjb25zdCBvcGNvZGUgPSBvcmRlci5sb2FkVWludCgzMikudG9OdW1iZXIoKTtcbiAgICAgICAgaWYgKG9wY29kZSA9PT0gMCkge1xuICAgICAgICAgIGNvbnN0IHBheWxvYWRCeXRlcyA9IG9yZGVyLmxvYWRCaXRzKG9yZGVyLmdldEZyZWVCaXRzKCkpO1xuICAgICAgICAgIHBheWxvYWQgPSBuZXcgVGV4dERlY29kZXIoKS5kZWNvZGUocGF5bG9hZEJ5dGVzKTtcbiAgICAgICAgfSBlbHNlIGlmIChvcGNvZGUgPT09IDQwOTYpIHtcbiAgICAgICAgICBjb25zdCBxdWVyeUlkID0gb3JkZXIubG9hZFVpbnQoNjQpLnRvTnVtYmVyKCk7XG4gICAgICAgICAgd2l0aGRyYXdBbW91bnQgPSBvcmRlci5sb2FkQ29pbnMoKS50b051bWJlcigpLnRvU3RyaW5nKCk7XG4gICAgICAgICAgcGF5bG9hZCA9IFdJVEhEUkFXX09QQ09ERSArIHF1ZXJ5SWQudG9TdHJpbmcoMTYpLnBhZFN0YXJ0KDE2LCAnMCcpICsgd2l0aGRyYXdBbW91bnQ7XG4gICAgICAgICAgdGhpcy50cmFuc2FjdGlvblR5cGUgPSBUcmFuc2FjdGlvblR5cGUuU2luZ2xlTm9taW5hdG9yV2l0aGRyYXc7XG4gICAgICAgIH0gZWxzZSBpZiAob3Bjb2RlID09PSBKRVRUT05fVFJBTlNGRVJfT1BDT0RFKSB7XG4gICAgICAgICAgdGhpcy50cmFuc2FjdGlvblR5cGUgPSBUcmFuc2FjdGlvblR5cGUuU2VuZFRva2VuO1xuICAgICAgICAgIGNvbnN0IHF1ZXJ5SWQgPSBvcmRlci5sb2FkVWludCg2NCkudG9OdW1iZXIoKTtcbiAgICAgICAgICBpZiAocXVlcnlJZCAhPT0gMCkgdGhyb3cgbmV3IEVycm9yKCdpbnZhbGlkIHF1ZXJ5SWQgZm9yIGpldHRvbiB0cmFuc2ZlcicpO1xuXG4gICAgICAgICAgY29uc3QgamV0dG9uQW1vdW50ID0gb3JkZXIubG9hZENvaW5zKCk7XG4gICAgICAgICAgaWYgKCFqZXR0b25BbW91bnQuZ3QobmV3IEJOKDApKSkgdGhyb3cgbmV3IEVycm9yKCdpbnZhbGlkIGpldHRvbkFtb3VudCcpO1xuXG4gICAgICAgICAgY29uc3QgamV0dG9uUmVjaXBpZW50ID0gb3JkZXIubG9hZEFkZHJlc3MoKTtcbiAgICAgICAgICBpZiAoIWpldHRvblJlY2lwaWVudCkgdGhyb3cgbmV3IEVycm9yKCdpbnZhbGlkIGpldHRvblJlY2lwaWVudCcpO1xuXG4gICAgICAgICAgY29uc3QgZm9yd2FyZGVyQWRkcmVzcyA9IG9yZGVyLmxvYWRBZGRyZXNzKCk7XG4gICAgICAgICAgaWYgKCFmb3J3YXJkZXJBZGRyZXNzKSB0aHJvdyBuZXcgRXJyb3IoJ2ludmFsaWQgZm9yd2FyZGVyQWRkcmVzcycpO1xuXG4gICAgICAgICAgb3JkZXIubG9hZEJpdCgpOyAvLyBza2lwIGJpdFxuXG4gICAgICAgICAgY29uc3QgZm9yd2FyZFRvbkFtb3VudCA9IG9yZGVyLmxvYWRDb2lucygpO1xuICAgICAgICAgIGlmICghZm9yd2FyZFRvbkFtb3VudC5ndChuZXcgQk4oMCkpKSB0aHJvdyBuZXcgRXJyb3IoJ2ludmFsaWQgZm9yd2FyZFRvbkFtb3VudCcpO1xuXG4gICAgICAgICAgbGV0IG1lc3NhZ2UgPSAnJztcbiAgICAgICAgICBpZiAob3JkZXIubG9hZEJpdCgpKSB7XG4gICAgICAgICAgICBvcmRlciA9IG9yZGVyLmxvYWRSZWYoKTtcbiAgICAgICAgICAgIGNvbnN0IG1lc3NhZ2VPcGNvZGUgPSBvcmRlci5sb2FkVWludCgzMikudG9OdW1iZXIoKTtcbiAgICAgICAgICAgIGlmIChtZXNzYWdlT3Bjb2RlICE9PSAwKSB0aHJvdyBuZXcgRXJyb3IoJ2ludmFsaWQgbWVzc2FnZSBvcGNvZGUnKTtcbiAgICAgICAgICAgIGNvbnN0IG1lc3NhZ2VCeXRlcyA9IG9yZGVyLmxvYWRCaXRzKG9yZGVyLmdldEZyZWVCaXRzKCkpO1xuICAgICAgICAgICAgbWVzc2FnZSA9IG5ldyBUZXh0RGVjb2RlcigpLmRlY29kZShtZXNzYWdlQnl0ZXMpO1xuICAgICAgICAgIH1cblxuICAgICAgICAgIHBheWxvYWQgPSB7XG4gICAgICAgICAgICBqZXR0b25BbW91bnQ6IGpldHRvbkFtb3VudC50b1N0cmluZygpLFxuICAgICAgICAgICAgamV0dG9uUmVjaXBpZW50OiBqZXR0b25SZWNpcGllbnQudG9TdHJpbmcodHJ1ZSwgdHJ1ZSwgdGhpcy50b0FkZHJlc3NCb3VuY2VhYmxlKSxcbiAgICAgICAgICAgIGZvcndhcmRlckFkZHJlc3M6IGZvcndhcmRlckFkZHJlc3MudG9TdHJpbmcodHJ1ZSwgdHJ1ZSwgdGhpcy5mcm9tQWRkcmVzc0JvdW5jZWFibGUpLFxuICAgICAgICAgICAgZm9yd2FyZFRvbkFtb3VudDogZm9yd2FyZFRvbkFtb3VudC50b1N0cmluZygpLFxuICAgICAgICAgICAgbWVzc2FnZTogbWVzc2FnZSxcbiAgICAgICAgICB9O1xuICAgICAgICB9IGVsc2UgaWYgKG9wY29kZSA9PT0gcGFyc2VJbnQoVE9OX1dIQUxFU19ERVBPU0lUX09QQ09ERSwgMTApKSB7XG4gICAgICAgICAgdGhpcy50cmFuc2FjdGlvblR5cGUgPSBUcmFuc2FjdGlvblR5cGUuVG9uV2hhbGVzRGVwb3NpdDtcbiAgICAgICAgICBjb25zdCBxdWVyeUlkID0gb3JkZXIubG9hZFVpbnQoNjQpLnRvTnVtYmVyKCk7XG4gICAgICAgICAgLy8gVGhpcyBpcyB0aGUgZ2FzIGxpbWl0LCB3aGljaCBtdXN0IGJlIHJlYWQgdG8gYWR2YW5jZSB0aGUgY3Vyc29yXG4gICAgICAgICAgLy8gV2UgZG8gbm90IG5lZWQgdG8gc3RvcmUgaXRcbiAgICAgICAgICBvcmRlci5sb2FkQ29pbnMoKTtcbiAgICAgICAgICBwYXlsb2FkID0gVE9OX1dIQUxFU19ERVBPU0lUX09QQ09ERSArIHF1ZXJ5SWQudG9TdHJpbmcoMTYpLnBhZFN0YXJ0KDE2LCAnMCcpO1xuICAgICAgICB9IGVsc2UgaWYgKG9wY29kZSA9PT0gcGFyc2VJbnQoVE9OX1dIQUxFU19XSVRIRFJBV19PUENPREUsIDEwKSkge1xuICAgICAgICAgIHRoaXMudHJhbnNhY3Rpb25UeXBlID0gVHJhbnNhY3Rpb25UeXBlLlRvbldoYWxlc1dpdGhkcmF3YWw7XG5cbiAgICAgICAgICBjb25zdCBxdWVyeUlkID0gb3JkZXIubG9hZFVpbnQoNjQpLnRvTnVtYmVyKCk7XG4gICAgICAgICAgb3JkZXIubG9hZENvaW5zKCk7IC8vIFNraXAgR2FzIChIYXJkY29kZWQgaW4gYnVpbGRlcilcbiAgICAgICAgICBjb25zdCBhbW91bnQgPSBvcmRlci5sb2FkQ29pbnMoKTtcblxuICAgICAgICAgIHdpdGhkcmF3QW1vdW50ID0gYW1vdW50LnRvU3RyaW5nKCk7IC8vIERlY2ltYWwgU3RyaW5nXG5cbiAgICAgICAgICAvLyBSZWNvbnN0cnVjdCBQYXlsb2FkOiBEZWNpbWFsIE9wICsgSGV4IFF1ZXJ5ICsgRGVjaW1hbCBBbW91bnRcbiAgICAgICAgICBjb25zdCBxdWVyeUhleCA9IG5ldyBCTihxdWVyeUlkKS50b1N0cmluZygxNikucGFkU3RhcnQoMTYsICcwJyk7XG4gICAgICAgICAgcGF5bG9hZCA9IFRPTl9XSEFMRVNfV0lUSERSQVdfT1BDT0RFICsgcXVlcnlIZXggKyB3aXRoZHJhd0Ftb3VudDtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICBwYXlsb2FkID0gJyc7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG4gICAgcmV0dXJuIHtcbiAgICAgIHRvQWRkcmVzczogZGVzdEFkZHJlc3MudG9TdHJpbmcodHJ1ZSwgdHJ1ZSwgdGhpcy5mcm9tQWRkcmVzc0JvdW5jZWFibGUpLFxuICAgICAgdmFsdWUsXG4gICAgICBib3VuY2UsXG4gICAgICBzZXFubyxcbiAgICAgIHdpdGhkcmF3QW1vdW50LFxuICAgICAgZXhwaXJlQXQsXG4gICAgICBwYXlsb2FkLFxuICAgICAgc2lnbmF0dXJlLFxuICAgICAgd2FsbGV0SWQsXG4gICAgfTtcbiAgfVxuXG4gIHByaXZhdGUgcGFyc2VUcmFuc2ZlclN0YXRlSW5pdChzbGljZTogYW55KTogYW55IHtcbiAgICBpZiAoc2xpY2UgPT09IG51bGwpIHJldHVybiB7fTtcbiAgICBzbGljZS5sb2FkUmVmKCk7XG4gICAgY29uc3QgZGF0YSA9IHNsaWNlLmxvYWRSZWYoKTtcbiAgICBjb25zdCBzZXFubyA9IGRhdGEubG9hZFVpbnQoMzIpLnRvTnVtYmVyKCk7XG4gICAgaWYgKHNlcW5vICE9PSAwKSB0aHJvdyBuZXcgRXJyb3IoJ2ludmFsaWQgc2Vxbm8nKTtcbiAgICBjb25zdCB3YWxsZXRJZCA9IGRhdGEubG9hZFVpbnQoMzIpLnRvTnVtYmVyKCk7XG4gICAgaWYgKHdhbGxldElkICE9PSBXQUxMRVRfSUQpIHRocm93IG5ldyBFcnJvcignaW52YWxpZCB3YWxsZXQgaWQnKTtcbiAgICBjb25zdCBwdWJsaWNLZXkgPSBuZXcgVWludDhBcnJheSgzMik7XG4gICAgZm9yIChsZXQgaSA9IDA7IGkgPCBwdWJsaWNLZXkubGVuZ3RoOyBpKyspIHtcbiAgICAgIHB1YmxpY0tleVtpXSA9IGRhdGEubG9hZFVpbnQoOCk7XG4gICAgfVxuICAgIHJldHVybiB7XG4gICAgICBwdWJsaWNLZXk6IEJ1ZmZlci5mcm9tKHB1YmxpY0tleSkudG9TdHJpbmcoJ2hleCcpLFxuICAgIH07XG4gIH1cbn1cbiJdfQ==
|
|
@@ -4,6 +4,8 @@ import { TransactionBuilder } from './transactionBuilder';
|
|
|
4
4
|
import { TransferBuilder } from './transferBuilder';
|
|
5
5
|
import { SingleNominatorWithdrawBuilder } from './singleNominatorWithdrawBuilder';
|
|
6
6
|
import { TokenTransferBuilder } from './tokenTransferBuilder';
|
|
7
|
+
import { TonWhalesDepositBuilder } from './tonWhalesDepositBuilder';
|
|
8
|
+
import { TonWhalesWithdrawalBuilder } from './tonWhalesWithdrawalBuilder';
|
|
7
9
|
export declare class TransactionBuilderFactory extends BaseTransactionBuilderFactory {
|
|
8
10
|
constructor(_coinConfig: Readonly<CoinConfig>);
|
|
9
11
|
/** @inheritdoc */
|
|
@@ -20,5 +22,7 @@ export declare class TransactionBuilderFactory extends BaseTransactionBuilderFac
|
|
|
20
22
|
getTokenTransferBuilder(): TokenTransferBuilder;
|
|
21
23
|
/** @inheritdoc */
|
|
22
24
|
getWalletInitializationBuilder(): void;
|
|
25
|
+
getTonWhalesDepositBuilder(): TonWhalesDepositBuilder;
|
|
26
|
+
getTonWhalesWithdrawalBuilder(): TonWhalesWithdrawalBuilder;
|
|
23
27
|
}
|
|
24
28
|
//# sourceMappingURL=transactionBuilderFactory.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"transactionBuilderFactory.d.ts","sourceRoot":"","sources":["../../../src/lib/transactionBuilderFactory.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,6BAA6B,EAA4C,MAAM,iBAAiB,CAAC;AAC1G,OAAO,EAAE,QAAQ,IAAI,UAAU,EAAE,MAAM,gBAAgB,CAAC;AACxD,OAAO,EAAE,kBAAkB,EAAE,MAAM,sBAAsB,CAAC;AAC1D,OAAO,EAAE,eAAe,EAAE,MAAM,mBAAmB,CAAC;AACpD,OAAO,EAAE,8BAA8B,EAAE,MAAM,kCAAkC,CAAC;AAElF,OAAO,EAAE,oBAAoB,EAAE,MAAM,wBAAwB,CAAC;
|
|
1
|
+
{"version":3,"file":"transactionBuilderFactory.d.ts","sourceRoot":"","sources":["../../../src/lib/transactionBuilderFactory.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,6BAA6B,EAA4C,MAAM,iBAAiB,CAAC;AAC1G,OAAO,EAAE,QAAQ,IAAI,UAAU,EAAE,MAAM,gBAAgB,CAAC;AACxD,OAAO,EAAE,kBAAkB,EAAE,MAAM,sBAAsB,CAAC;AAC1D,OAAO,EAAE,eAAe,EAAE,MAAM,mBAAmB,CAAC;AACpD,OAAO,EAAE,8BAA8B,EAAE,MAAM,kCAAkC,CAAC;AAElF,OAAO,EAAE,oBAAoB,EAAE,MAAM,wBAAwB,CAAC;AAE9D,OAAO,EAAE,uBAAuB,EAAE,MAAM,2BAA2B,CAAC;AACpE,OAAO,EAAE,0BAA0B,EAAE,MAAM,8BAA8B,CAAC;AAE1E,qBAAa,yBAA0B,SAAQ,6BAA6B;gBAC9D,WAAW,EAAE,QAAQ,CAAC,UAAU,CAAC;IAG7C,kBAAkB;IAClB,IAAI,CAAC,GAAG,EAAE,MAAM,GAAG,kBAAkB;IAyCrC,kBAAkB;IAClB,kBAAkB,IAAI,eAAe;IAIrC;;OAEG;IACH,iCAAiC,IAAI,8BAA8B;IAInE;;OAEG;IACH,uBAAuB,IAAI,oBAAoB;IAI/C,kBAAkB;IAClB,8BAA8B,IAAI,IAAI;IAItC,0BAA0B,IAAI,uBAAuB;IAIrD,6BAA6B,IAAI,0BAA0B;CAG5D"}
|
|
@@ -7,6 +7,8 @@ const singleNominatorWithdrawBuilder_1 = require("./singleNominatorWithdrawBuild
|
|
|
7
7
|
const transaction_1 = require("./transaction");
|
|
8
8
|
const tokenTransferBuilder_1 = require("./tokenTransferBuilder");
|
|
9
9
|
const tokenTransaction_1 = require("./tokenTransaction");
|
|
10
|
+
const tonWhalesDepositBuilder_1 = require("./tonWhalesDepositBuilder");
|
|
11
|
+
const tonWhalesWithdrawalBuilder_1 = require("./tonWhalesWithdrawalBuilder");
|
|
10
12
|
class TransactionBuilderFactory extends sdk_core_1.BaseTransactionBuilderFactory {
|
|
11
13
|
constructor(_coinConfig) {
|
|
12
14
|
super(_coinConfig);
|
|
@@ -37,6 +39,12 @@ class TransactionBuilderFactory extends sdk_core_1.BaseTransactionBuilderFactory
|
|
|
37
39
|
case sdk_core_1.TransactionType.SendToken:
|
|
38
40
|
builder = this.getTokenTransferBuilder();
|
|
39
41
|
break;
|
|
42
|
+
case sdk_core_1.TransactionType.TonWhalesDeposit:
|
|
43
|
+
builder = this.getTonWhalesDepositBuilder();
|
|
44
|
+
break;
|
|
45
|
+
case sdk_core_1.TransactionType.TonWhalesWithdrawal:
|
|
46
|
+
builder = this.getTonWhalesWithdrawalBuilder();
|
|
47
|
+
break;
|
|
40
48
|
default:
|
|
41
49
|
throw new sdk_core_1.InvalidTransactionError('unsupported transaction');
|
|
42
50
|
}
|
|
@@ -67,6 +75,12 @@ class TransactionBuilderFactory extends sdk_core_1.BaseTransactionBuilderFactory
|
|
|
67
75
|
getWalletInitializationBuilder() {
|
|
68
76
|
throw new Error('Method not implemented.');
|
|
69
77
|
}
|
|
78
|
+
getTonWhalesDepositBuilder() {
|
|
79
|
+
return new tonWhalesDepositBuilder_1.TonWhalesDepositBuilder(this._coinConfig);
|
|
80
|
+
}
|
|
81
|
+
getTonWhalesWithdrawalBuilder() {
|
|
82
|
+
return new tonWhalesWithdrawalBuilder_1.TonWhalesWithdrawalBuilder(this._coinConfig);
|
|
83
|
+
}
|
|
70
84
|
}
|
|
71
85
|
exports.TransactionBuilderFactory = TransactionBuilderFactory;
|
|
72
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
86
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHJhbnNhY3Rpb25CdWlsZGVyRmFjdG9yeS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9saWIvdHJhbnNhY3Rpb25CdWlsZGVyRmFjdG9yeS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7QUFBQSw4Q0FBMEc7QUFHMUcsdURBQW9EO0FBQ3BELHFGQUFrRjtBQUNsRiwrQ0FBNEM7QUFDNUMsaUVBQThEO0FBQzlELHlEQUFzRDtBQUN0RCx1RUFBb0U7QUFDcEUsNkVBQTBFO0FBRTFFLE1BQWEseUJBQTBCLFNBQVEsd0NBQTZCO0lBQzFFLFlBQVksV0FBaUM7UUFDM0MsS0FBSyxDQUFDLFdBQVcsQ0FBQyxDQUFDO0lBQ3JCLENBQUM7SUFDRCxrQkFBa0I7SUFDbEIsSUFBSSxDQUFDLEdBQVc7UUFDZCxJQUFJLE9BQTJCLENBQUM7UUFDaEMsSUFBSSxDQUFDO1lBQ0gsTUFBTSxPQUFPLEdBQUcsSUFBSSx5QkFBVyxDQUFDLElBQUksQ0FBQyxXQUFXLENBQUMsQ0FBQztZQUNsRCxPQUFPLENBQUMsa0JBQWtCLENBQUMsR0FBRyxDQUFDLENBQUM7WUFFaEMsSUFBSSxFQUFlLENBQUM7WUFDcEIsSUFBSSxPQUFPLENBQUMsSUFBSSxLQUFLLDBCQUFlLENBQUMsU0FBUyxFQUFFLENBQUM7Z0JBQy9DLHVFQUF1RTtnQkFDdkUsRUFBRSxHQUFHLElBQUksbUNBQWdCLENBQUMsSUFBSSxDQUFDLFdBQVcsQ0FBQyxDQUFDO2dCQUM1QyxFQUFFLENBQUMsa0JBQWtCLENBQUMsR0FBRyxDQUFDLENBQUM7WUFDN0IsQ0FBQztpQkFBTSxDQUFDO2dCQUNOLHlEQUF5RDtnQkFDekQsRUFBRSxHQUFHLE9BQU8sQ0FBQztZQUNmLENBQUM7WUFDRCxRQUFRLEVBQUUsQ0FBQyxJQUFJLEVBQUUsQ0FBQztnQkFDaEIsS0FBSywwQkFBZSxDQUFDLElBQUk7b0JBQ3ZCLE9BQU8sR0FBRyxJQUFJLENBQUMsa0JBQWtCLEVBQUUsQ0FBQztvQkFDcEMsTUFBTTtnQkFDUixLQUFLLDBCQUFlLENBQUMsdUJBQXVCO29CQUMxQyxPQUFPLEdBQUcsSUFBSSxDQUFDLGlDQUFpQyxFQUFFLENBQUM7b0JBQ25ELE1BQU07Z0JBQ1IsS0FBSywwQkFBZSxDQUFDLFNBQVM7b0JBQzVCLE9BQU8sR0FBRyxJQUFJLENBQUMsdUJBQXVCLEVBQUUsQ0FBQztvQkFDekMsTUFBTTtnQkFDUixLQUFLLDBCQUFlLENBQUMsZ0JBQWdCO29CQUNuQyxPQUFPLEdBQUcsSUFBSSxDQUFDLDBCQUEwQixFQUFFLENBQUM7b0JBQzVDLE1BQU07Z0JBQ1IsS0FBSywwQkFBZSxDQUFDLG1CQUFtQjtvQkFDdEMsT0FBTyxHQUFHLElBQUksQ0FBQyw2QkFBNkIsRUFBRSxDQUFDO29CQUMvQyxNQUFNO2dCQUNSO29CQUNFLE1BQU0sSUFBSSxrQ0FBdUIsQ0FBQyx5QkFBeUIsQ0FBQyxDQUFDO1lBQ2pFLENBQUM7WUFDRCxPQUFPLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxDQUFDO1lBQ2xCLE9BQU8sT0FBTyxDQUFDO1FBQ2pCLENBQUM7UUFBQyxPQUFPLENBQUMsRUFBRSxDQUFDO1lBQ1gsTUFBTSxDQUFDLENBQUM7UUFDVixDQUFDO0lBQ0gsQ0FBQztJQUVELGtCQUFrQjtJQUNsQixrQkFBa0I7UUFDaEIsT0FBTyxJQUFJLGlDQUFlLENBQUMsSUFBSSxDQUFDLFdBQVcsQ0FBQyxDQUFDO0lBQy9DLENBQUM7SUFFRDs7T0FFRztJQUNILGlDQUFpQztRQUMvQixPQUFPLElBQUksK0RBQThCLENBQUMsSUFBSSxDQUFDLFdBQVcsQ0FBQyxDQUFDO0lBQzlELENBQUM7SUFFRDs7T0FFRztJQUNILHVCQUF1QjtRQUNyQixPQUFPLElBQUksMkNBQW9CLENBQUMsSUFBSSxDQUFDLFdBQVcsQ0FBQyxDQUFDO0lBQ3BELENBQUM7SUFFRCxrQkFBa0I7SUFDbEIsOEJBQThCO1FBQzVCLE1BQU0sSUFBSSxLQUFLLENBQUMseUJBQXlCLENBQUMsQ0FBQztJQUM3QyxDQUFDO0lBRUQsMEJBQTBCO1FBQ3hCLE9BQU8sSUFBSSxpREFBdUIsQ0FBQyxJQUFJLENBQUMsV0FBVyxDQUFDLENBQUM7SUFDdkQsQ0FBQztJQUVELDZCQUE2QjtRQUMzQixPQUFPLElBQUksdURBQTBCLENBQUMsSUFBSSxDQUFDLFdBQVcsQ0FBQyxDQUFDO0lBQzFELENBQUM7Q0FDRjtBQTdFRCw4REE2RUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBCYXNlVHJhbnNhY3Rpb25CdWlsZGVyRmFjdG9yeSwgSW52YWxpZFRyYW5zYWN0aW9uRXJyb3IsIFRyYW5zYWN0aW9uVHlwZSB9IGZyb20gJ0BiaXRnby9zZGstY29yZSc7XG5pbXBvcnQgeyBCYXNlQ29pbiBhcyBDb2luQ29uZmlnIH0gZnJvbSAnQGJpdGdvL3N0YXRpY3MnO1xuaW1wb3J0IHsgVHJhbnNhY3Rpb25CdWlsZGVyIH0gZnJvbSAnLi90cmFuc2FjdGlvbkJ1aWxkZXInO1xuaW1wb3J0IHsgVHJhbnNmZXJCdWlsZGVyIH0gZnJvbSAnLi90cmFuc2ZlckJ1aWxkZXInO1xuaW1wb3J0IHsgU2luZ2xlTm9taW5hdG9yV2l0aGRyYXdCdWlsZGVyIH0gZnJvbSAnLi9zaW5nbGVOb21pbmF0b3JXaXRoZHJhd0J1aWxkZXInO1xuaW1wb3J0IHsgVHJhbnNhY3Rpb24gfSBmcm9tICcuL3RyYW5zYWN0aW9uJztcbmltcG9ydCB7IFRva2VuVHJhbnNmZXJCdWlsZGVyIH0gZnJvbSAnLi90b2tlblRyYW5zZmVyQnVpbGRlcic7XG5pbXBvcnQgeyBUb2tlblRyYW5zYWN0aW9uIH0gZnJvbSAnLi90b2tlblRyYW5zYWN0aW9uJztcbmltcG9ydCB7IFRvbldoYWxlc0RlcG9zaXRCdWlsZGVyIH0gZnJvbSAnLi90b25XaGFsZXNEZXBvc2l0QnVpbGRlcic7XG5pbXBvcnQgeyBUb25XaGFsZXNXaXRoZHJhd2FsQnVpbGRlciB9IGZyb20gJy4vdG9uV2hhbGVzV2l0aGRyYXdhbEJ1aWxkZXInO1xuXG5leHBvcnQgY2xhc3MgVHJhbnNhY3Rpb25CdWlsZGVyRmFjdG9yeSBleHRlbmRzIEJhc2VUcmFuc2FjdGlvbkJ1aWxkZXJGYWN0b3J5IHtcbiAgY29uc3RydWN0b3IoX2NvaW5Db25maWc6IFJlYWRvbmx5PENvaW5Db25maWc+KSB7XG4gICAgc3VwZXIoX2NvaW5Db25maWcpO1xuICB9XG4gIC8qKiBAaW5oZXJpdGRvYyAqL1xuICBmcm9tKHJhdzogc3RyaW5nKTogVHJhbnNhY3Rpb25CdWlsZGVyIHtcbiAgICBsZXQgYnVpbGRlcjogVHJhbnNhY3Rpb25CdWlsZGVyO1xuICAgIHRyeSB7XG4gICAgICBjb25zdCBjaGVja1R4ID0gbmV3IFRyYW5zYWN0aW9uKHRoaXMuX2NvaW5Db25maWcpO1xuICAgICAgY2hlY2tUeC5mcm9tUmF3VHJhbnNhY3Rpb24ocmF3KTtcblxuICAgICAgbGV0IHR4OiBUcmFuc2FjdGlvbjtcbiAgICAgIGlmIChjaGVja1R4LnR5cGUgPT09IFRyYW5zYWN0aW9uVHlwZS5TZW5kVG9rZW4pIHtcbiAgICAgICAgLy8gSXQncyBhIHRva2VuIHRyYW5zYWN0aW9uLCBzbyB1c2UgVG9rZW5UcmFuc2FjdGlvbiBmb3IgcHJvcGVyIHBhcnNpbmdcbiAgICAgICAgdHggPSBuZXcgVG9rZW5UcmFuc2FjdGlvbih0aGlzLl9jb2luQ29uZmlnKTtcbiAgICAgICAgdHguZnJvbVJhd1RyYW5zYWN0aW9uKHJhdyk7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICAvLyBJdCdzIGEgcmVndWxhciB0cmFuc2FjdGlvbiwgdXNlIHRoZSBhbHJlYWR5IHBhcnNlZCBvbmVcbiAgICAgICAgdHggPSBjaGVja1R4O1xuICAgICAgfVxuICAgICAgc3dpdGNoICh0eC50eXBlKSB7XG4gICAgICAgIGNhc2UgVHJhbnNhY3Rpb25UeXBlLlNlbmQ6XG4gICAgICAgICAgYnVpbGRlciA9IHRoaXMuZ2V0VHJhbnNmZXJCdWlsZGVyKCk7XG4gICAgICAgICAgYnJlYWs7XG4gICAgICAgIGNhc2UgVHJhbnNhY3Rpb25UeXBlLlNpbmdsZU5vbWluYXRvcldpdGhkcmF3OlxuICAgICAgICAgIGJ1aWxkZXIgPSB0aGlzLmdldFNpbmdsZU5vbWluYXRvcldpdGhkcmF3QnVpbGRlcigpO1xuICAgICAgICAgIGJyZWFrO1xuICAgICAgICBjYXNlIFRyYW5zYWN0aW9uVHlwZS5TZW5kVG9rZW46XG4gICAgICAgICAgYnVpbGRlciA9IHRoaXMuZ2V0VG9rZW5UcmFuc2ZlckJ1aWxkZXIoKTtcbiAgICAgICAgICBicmVhaztcbiAgICAgICAgY2FzZSBUcmFuc2FjdGlvblR5cGUuVG9uV2hhbGVzRGVwb3NpdDpcbiAgICAgICAgICBidWlsZGVyID0gdGhpcy5nZXRUb25XaGFsZXNEZXBvc2l0QnVpbGRlcigpO1xuICAgICAgICAgIGJyZWFrO1xuICAgICAgICBjYXNlIFRyYW5zYWN0aW9uVHlwZS5Ub25XaGFsZXNXaXRoZHJhd2FsOlxuICAgICAgICAgIGJ1aWxkZXIgPSB0aGlzLmdldFRvbldoYWxlc1dpdGhkcmF3YWxCdWlsZGVyKCk7XG4gICAgICAgICAgYnJlYWs7XG4gICAgICAgIGRlZmF1bHQ6XG4gICAgICAgICAgdGhyb3cgbmV3IEludmFsaWRUcmFuc2FjdGlvbkVycm9yKCd1bnN1cHBvcnRlZCB0cmFuc2FjdGlvbicpO1xuICAgICAgfVxuICAgICAgYnVpbGRlci5mcm9tKHJhdyk7XG4gICAgICByZXR1cm4gYnVpbGRlcjtcbiAgICB9IGNhdGNoIChlKSB7XG4gICAgICB0aHJvdyBlO1xuICAgIH1cbiAgfVxuXG4gIC8qKiBAaW5oZXJpdGRvYyAqL1xuICBnZXRUcmFuc2ZlckJ1aWxkZXIoKTogVHJhbnNmZXJCdWlsZGVyIHtcbiAgICByZXR1cm4gbmV3IFRyYW5zZmVyQnVpbGRlcih0aGlzLl9jb2luQ29uZmlnKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBSZXR1cm5zIGEgc3BlY2lmaWMgYnVpbGRlciB0byBjcmVhdGUgYSBUT04gd2l0aGRyYXcgdHJhbnNhY3Rpb25cbiAgICovXG4gIGdldFNpbmdsZU5vbWluYXRvcldpdGhkcmF3QnVpbGRlcigpOiBTaW5nbGVOb21pbmF0b3JXaXRoZHJhd0J1aWxkZXIge1xuICAgIHJldHVybiBuZXcgU2luZ2xlTm9taW5hdG9yV2l0aGRyYXdCdWlsZGVyKHRoaXMuX2NvaW5Db25maWcpO1xuICB9XG5cbiAgLyoqXG4gICAqIFJldHVybnMgYSBzcGVjaWZpYyBidWlsZGVyIHRvIGNyZWF0ZSBhIFRPTiB0b2tlbiB0cmFuc2ZlciB0cmFuc2FjdGlvblxuICAgKi9cbiAgZ2V0VG9rZW5UcmFuc2ZlckJ1aWxkZXIoKTogVG9rZW5UcmFuc2ZlckJ1aWxkZXIge1xuICAgIHJldHVybiBuZXcgVG9rZW5UcmFuc2ZlckJ1aWxkZXIodGhpcy5fY29pbkNvbmZpZyk7XG4gIH1cblxuICAvKiogQGluaGVyaXRkb2MgKi9cbiAgZ2V0V2FsbGV0SW5pdGlhbGl6YXRpb25CdWlsZGVyKCk6IHZvaWQge1xuICAgIHRocm93IG5ldyBFcnJvcignTWV0aG9kIG5vdCBpbXBsZW1lbnRlZC4nKTtcbiAgfVxuXG4gIGdldFRvbldoYWxlc0RlcG9zaXRCdWlsZGVyKCk6IFRvbldoYWxlc0RlcG9zaXRCdWlsZGVyIHtcbiAgICByZXR1cm4gbmV3IFRvbldoYWxlc0RlcG9zaXRCdWlsZGVyKHRoaXMuX2NvaW5Db25maWcpO1xuICB9XG5cbiAgZ2V0VG9uV2hhbGVzV2l0aGRyYXdhbEJ1aWxkZXIoKTogVG9uV2hhbGVzV2l0aGRyYXdhbEJ1aWxkZXIge1xuICAgIHJldHVybiBuZXcgVG9uV2hhbGVzV2l0aGRyYXdhbEJ1aWxkZXIodGhpcy5fY29pbkNvbmZpZyk7XG4gIH1cbn1cbiJdfQ==
|
|
@@ -110,4 +110,48 @@ export declare const signedSingleNominatorWithdrawTransaction: {
|
|
|
110
110
|
amount: string;
|
|
111
111
|
};
|
|
112
112
|
};
|
|
113
|
+
export declare const signedTonWhalesDepositTransaction: {
|
|
114
|
+
recipient: {
|
|
115
|
+
address: string;
|
|
116
|
+
amount: string;
|
|
117
|
+
};
|
|
118
|
+
tx: string;
|
|
119
|
+
seqno: number;
|
|
120
|
+
queryId: string;
|
|
121
|
+
expireTime: number;
|
|
122
|
+
sender: string;
|
|
123
|
+
publicKey: string;
|
|
124
|
+
signature: string;
|
|
125
|
+
bounceable: boolean;
|
|
126
|
+
};
|
|
127
|
+
export declare const signedTonWhalesWithdrawalTransaction: {
|
|
128
|
+
recipient: {
|
|
129
|
+
address: string;
|
|
130
|
+
amount: string;
|
|
131
|
+
};
|
|
132
|
+
withdrawAmount: string;
|
|
133
|
+
tx: string;
|
|
134
|
+
seqno: number;
|
|
135
|
+
queryId: string;
|
|
136
|
+
expireTime: number;
|
|
137
|
+
sender: string;
|
|
138
|
+
publicKey: string;
|
|
139
|
+
signature: string;
|
|
140
|
+
bounceable: boolean;
|
|
141
|
+
};
|
|
142
|
+
export declare const signedTonWhalesFullWithdrawalTransaction: {
|
|
143
|
+
recipient: {
|
|
144
|
+
address: string;
|
|
145
|
+
amount: string;
|
|
146
|
+
};
|
|
147
|
+
withdrawAmount: string;
|
|
148
|
+
tx: string;
|
|
149
|
+
seqno: number;
|
|
150
|
+
queryId: string;
|
|
151
|
+
expireTime: number;
|
|
152
|
+
sender: string;
|
|
153
|
+
publicKey: string;
|
|
154
|
+
signature: string;
|
|
155
|
+
bounceable: boolean;
|
|
156
|
+
};
|
|
113
157
|
//# sourceMappingURL=ton.d.ts.map
|