@bitgo-beta/sdk-coin-stx 1.1.1-beta.2254 → 1.1.1-beta.2256

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.
@@ -1,9 +1,21 @@
1
1
  export declare const FUNCTION_NAME_SENDMANY = "send-many";
2
2
  export declare const CONTRACT_NAME_SENDMANY = "send-many-memo";
3
3
  export declare const CONTRACT_NAME_STAKING = "pox-4";
4
+ export declare const CONTRACT_NAME_POX5 = "pox-5";
5
+ export declare const VALID_STAKING_CONTRACT_NAMES: string[];
4
6
  export declare const FUNCTION_NAME_TRANSFER = "transfer";
5
7
  export declare const CONTRACT_NAME_SBTC_WITHDRAWAL = "sbtc-withdrawal";
6
8
  export declare const FUNCTION_NAME_INITIATE_WITHDRAWAL = "initiate-withdrawal-request";
9
+ export declare const FUNCTION_NAME_STAKE = "stake";
10
+ export declare const FUNCTION_NAME_STAKE_UPDATE = "stake-update";
11
+ export declare const FUNCTION_NAME_UNSTAKE = "unstake";
12
+ export declare const FUNCTION_NAME_REGISTER_FOR_BOND = "register-for-bond";
13
+ export declare const FUNCTION_NAME_ANNOUNCE_L1_EARLY_EXIT = "announce-l1-early-exit";
14
+ export declare const FUNCTION_NAME_UPDATE_BOND_REGISTRATION = "update-bond-registration";
15
+ export declare const FUNCTION_NAME_CLAIM_REWARDS = "claim-rewards";
16
+ export declare const FUNCTION_NAME_CLAIM_STAKER_REWARDS = "claim-staker-rewards-for-signer";
17
+ export declare const FUNCTION_NAME_CALCULATE_REWARDS = "calculate-rewards";
18
+ export declare const VALID_POX5_CONTRACT_FUNCTION_NAMES: string[];
7
19
  export declare const VALID_CONTRACT_FUNCTION_NAMES: string[];
8
20
  export declare const DEFAULT_SEED_SIZE_BYTES = 64;
9
21
  export declare const ANCHOR_MODE = 3;
@@ -1 +1 @@
1
- {"version":3,"file":"constants.d.ts","sourceRoot":"","sources":["../../../src/lib/constants.ts"],"names":[],"mappings":"AAAA,eAAO,MAAM,sBAAsB,cAAc,CAAC;AAClD,eAAO,MAAM,sBAAsB,mBAAmB,CAAC;AACvD,eAAO,MAAM,qBAAqB,UAAU,CAAC;AAC7C,eAAO,MAAM,sBAAsB,aAAa,CAAC;AACjD,eAAO,MAAM,6BAA6B,oBAAoB,CAAC;AAC/D,eAAO,MAAM,iCAAiC,gCAAgC,CAAC;AAE/E,eAAO,MAAM,6BAA6B,UASzC,CAAC;AAEF,eAAO,MAAM,uBAAuB,KAAK,CAAC;AAG1C,eAAO,MAAM,WAAW,IAAI,CAAC;AAC7B,eAAO,MAAM,2BAA2B,IAAI,CAAC"}
1
+ {"version":3,"file":"constants.d.ts","sourceRoot":"","sources":["../../../src/lib/constants.ts"],"names":[],"mappings":"AAAA,eAAO,MAAM,sBAAsB,cAAc,CAAC;AAClD,eAAO,MAAM,sBAAsB,mBAAmB,CAAC;AACvD,eAAO,MAAM,qBAAqB,UAAU,CAAC;AAC7C,eAAO,MAAM,kBAAkB,UAAU,CAAC;AAC1C,eAAO,MAAM,4BAA4B,UAA8C,CAAC;AACxF,eAAO,MAAM,sBAAsB,aAAa,CAAC;AACjD,eAAO,MAAM,6BAA6B,oBAAoB,CAAC;AAC/D,eAAO,MAAM,iCAAiC,gCAAgC,CAAC;AAE/E,eAAO,MAAM,mBAAmB,UAAU,CAAC;AAC3C,eAAO,MAAM,0BAA0B,iBAAiB,CAAC;AACzD,eAAO,MAAM,qBAAqB,YAAY,CAAC;AAC/C,eAAO,MAAM,+BAA+B,sBAAsB,CAAC;AACnE,eAAO,MAAM,oCAAoC,2BAA2B,CAAC;AAC7E,eAAO,MAAM,sCAAsC,6BAA6B,CAAC;AACjF,eAAO,MAAM,2BAA2B,kBAAkB,CAAC;AAC3D,eAAO,MAAM,kCAAkC,oCAAoC,CAAC;AACpF,eAAO,MAAM,+BAA+B,sBAAsB,CAAC;AAEnE,eAAO,MAAM,kCAAkC,UAU9C,CAAC;AAEF,eAAO,MAAM,6BAA6B,UASzC,CAAC;AAEF,eAAO,MAAM,uBAAuB,KAAK,CAAC;AAG1C,eAAO,MAAM,WAAW,IAAI,CAAC;AAC7B,eAAO,MAAM,2BAA2B,IAAI,CAAC"}
@@ -1,12 +1,34 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.DEFAULT_MULTISIG_SIG_NUMBER = exports.ANCHOR_MODE = exports.DEFAULT_SEED_SIZE_BYTES = exports.VALID_CONTRACT_FUNCTION_NAMES = exports.FUNCTION_NAME_INITIATE_WITHDRAWAL = exports.CONTRACT_NAME_SBTC_WITHDRAWAL = exports.FUNCTION_NAME_TRANSFER = exports.CONTRACT_NAME_STAKING = exports.CONTRACT_NAME_SENDMANY = exports.FUNCTION_NAME_SENDMANY = void 0;
3
+ exports.DEFAULT_MULTISIG_SIG_NUMBER = exports.ANCHOR_MODE = exports.DEFAULT_SEED_SIZE_BYTES = exports.VALID_CONTRACT_FUNCTION_NAMES = exports.VALID_POX5_CONTRACT_FUNCTION_NAMES = exports.FUNCTION_NAME_CALCULATE_REWARDS = exports.FUNCTION_NAME_CLAIM_STAKER_REWARDS = exports.FUNCTION_NAME_CLAIM_REWARDS = exports.FUNCTION_NAME_UPDATE_BOND_REGISTRATION = exports.FUNCTION_NAME_ANNOUNCE_L1_EARLY_EXIT = exports.FUNCTION_NAME_REGISTER_FOR_BOND = exports.FUNCTION_NAME_UNSTAKE = exports.FUNCTION_NAME_STAKE_UPDATE = exports.FUNCTION_NAME_STAKE = exports.FUNCTION_NAME_INITIATE_WITHDRAWAL = exports.CONTRACT_NAME_SBTC_WITHDRAWAL = exports.FUNCTION_NAME_TRANSFER = exports.VALID_STAKING_CONTRACT_NAMES = exports.CONTRACT_NAME_POX5 = exports.CONTRACT_NAME_STAKING = exports.CONTRACT_NAME_SENDMANY = exports.FUNCTION_NAME_SENDMANY = void 0;
4
4
  exports.FUNCTION_NAME_SENDMANY = 'send-many';
5
5
  exports.CONTRACT_NAME_SENDMANY = 'send-many-memo';
6
6
  exports.CONTRACT_NAME_STAKING = 'pox-4';
7
+ exports.CONTRACT_NAME_POX5 = 'pox-5';
8
+ exports.VALID_STAKING_CONTRACT_NAMES = [exports.CONTRACT_NAME_STAKING, exports.CONTRACT_NAME_POX5];
7
9
  exports.FUNCTION_NAME_TRANSFER = 'transfer';
8
10
  exports.CONTRACT_NAME_SBTC_WITHDRAWAL = 'sbtc-withdrawal';
9
11
  exports.FUNCTION_NAME_INITIATE_WITHDRAWAL = 'initiate-withdrawal-request';
12
+ exports.FUNCTION_NAME_STAKE = 'stake';
13
+ exports.FUNCTION_NAME_STAKE_UPDATE = 'stake-update';
14
+ exports.FUNCTION_NAME_UNSTAKE = 'unstake';
15
+ exports.FUNCTION_NAME_REGISTER_FOR_BOND = 'register-for-bond';
16
+ exports.FUNCTION_NAME_ANNOUNCE_L1_EARLY_EXIT = 'announce-l1-early-exit';
17
+ exports.FUNCTION_NAME_UPDATE_BOND_REGISTRATION = 'update-bond-registration';
18
+ exports.FUNCTION_NAME_CLAIM_REWARDS = 'claim-rewards';
19
+ exports.FUNCTION_NAME_CLAIM_STAKER_REWARDS = 'claim-staker-rewards-for-signer';
20
+ exports.FUNCTION_NAME_CALCULATE_REWARDS = 'calculate-rewards';
21
+ exports.VALID_POX5_CONTRACT_FUNCTION_NAMES = [
22
+ exports.FUNCTION_NAME_STAKE,
23
+ exports.FUNCTION_NAME_STAKE_UPDATE,
24
+ exports.FUNCTION_NAME_UNSTAKE,
25
+ exports.FUNCTION_NAME_REGISTER_FOR_BOND,
26
+ exports.FUNCTION_NAME_UPDATE_BOND_REGISTRATION,
27
+ exports.FUNCTION_NAME_ANNOUNCE_L1_EARLY_EXIT,
28
+ exports.FUNCTION_NAME_CLAIM_REWARDS,
29
+ exports.FUNCTION_NAME_CLAIM_STAKER_REWARDS,
30
+ exports.FUNCTION_NAME_CALCULATE_REWARDS,
31
+ ];
10
32
  exports.VALID_CONTRACT_FUNCTION_NAMES = [
11
33
  'stack-stx',
12
34
  'delegate-stx',
@@ -21,4 +43,4 @@ exports.DEFAULT_SEED_SIZE_BYTES = 64;
21
43
  // https://github.com/stacksgov/sips/blob/main/sips/sip-005/sip-005-blocks-and-transactions.md#transaction-encoding
22
44
  exports.ANCHOR_MODE = 3;
23
45
  exports.DEFAULT_MULTISIG_SIG_NUMBER = 2;
24
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29uc3RhbnRzLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL2xpYi9jb25zdGFudHMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7O0FBQWEsUUFBQSxzQkFBc0IsR0FBRyxXQUFXLENBQUM7QUFDckMsUUFBQSxzQkFBc0IsR0FBRyxnQkFBZ0IsQ0FBQztBQUMxQyxRQUFBLHFCQUFxQixHQUFHLE9BQU8sQ0FBQztBQUNoQyxRQUFBLHNCQUFzQixHQUFHLFVBQVUsQ0FBQztBQUNwQyxRQUFBLDZCQUE2QixHQUFHLGlCQUFpQixDQUFDO0FBQ2xELFFBQUEsaUNBQWlDLEdBQUcsNkJBQTZCLENBQUM7QUFFbEUsUUFBQSw2QkFBNkIsR0FBRztJQUMzQyxXQUFXO0lBQ1gsY0FBYztJQUNkLG9CQUFvQjtJQUNwQiwwQkFBMEI7SUFDMUIscUJBQXFCO0lBQ3JCLFdBQVc7SUFDWCxVQUFVO0lBQ1YsNkJBQTZCO0NBQzlCLENBQUM7QUFFVyxRQUFBLHVCQUF1QixHQUFHLEVBQUUsQ0FBQztBQUUxQyxtSEFBbUg7QUFDdEcsUUFBQSxXQUFXLEdBQUcsQ0FBQyxDQUFDO0FBQ2hCLFFBQUEsMkJBQTJCLEdBQUcsQ0FBQyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0IGNvbnN0IEZVTkNUSU9OX05BTUVfU0VORE1BTlkgPSAnc2VuZC1tYW55JztcbmV4cG9ydCBjb25zdCBDT05UUkFDVF9OQU1FX1NFTkRNQU5ZID0gJ3NlbmQtbWFueS1tZW1vJztcbmV4cG9ydCBjb25zdCBDT05UUkFDVF9OQU1FX1NUQUtJTkcgPSAncG94LTQnO1xuZXhwb3J0IGNvbnN0IEZVTkNUSU9OX05BTUVfVFJBTlNGRVIgPSAndHJhbnNmZXInO1xuZXhwb3J0IGNvbnN0IENPTlRSQUNUX05BTUVfU0JUQ19XSVRIRFJBV0FMID0gJ3NidGMtd2l0aGRyYXdhbCc7XG5leHBvcnQgY29uc3QgRlVOQ1RJT05fTkFNRV9JTklUSUFURV9XSVRIRFJBV0FMID0gJ2luaXRpYXRlLXdpdGhkcmF3YWwtcmVxdWVzdCc7XG5cbmV4cG9ydCBjb25zdCBWQUxJRF9DT05UUkFDVF9GVU5DVElPTl9OQU1FUyA9IFtcbiAgJ3N0YWNrLXN0eCcsXG4gICdkZWxlZ2F0ZS1zdHgnLFxuICAnZGVsZWdhdGUtc3RhY2stc3R4JyxcbiAgJ3N0YWNrLWFnZ3JlZ2F0aW9uLWNvbW1pdCcsXG4gICdyZXZva2UtZGVsZWdhdGUtc3R4JyxcbiAgJ3NlbmQtbWFueScsXG4gICd0cmFuc2ZlcicsXG4gICdpbml0aWF0ZS13aXRoZHJhd2FsLXJlcXVlc3QnLFxuXTtcblxuZXhwb3J0IGNvbnN0IERFRkFVTFRfU0VFRF9TSVpFX0JZVEVTID0gNjQ7XG5cbi8vIGh0dHBzOi8vZ2l0aHViLmNvbS9zdGFja3Nnb3Yvc2lwcy9ibG9iL21haW4vc2lwcy9zaXAtMDA1L3NpcC0wMDUtYmxvY2tzLWFuZC10cmFuc2FjdGlvbnMubWQjdHJhbnNhY3Rpb24tZW5jb2RpbmdcbmV4cG9ydCBjb25zdCBBTkNIT1JfTU9ERSA9IDM7XG5leHBvcnQgY29uc3QgREVGQVVMVF9NVUxUSVNJR19TSUdfTlVNQkVSID0gMjtcbiJdfQ==
46
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29uc3RhbnRzLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL2xpYi9jb25zdGFudHMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7O0FBQWEsUUFBQSxzQkFBc0IsR0FBRyxXQUFXLENBQUM7QUFDckMsUUFBQSxzQkFBc0IsR0FBRyxnQkFBZ0IsQ0FBQztBQUMxQyxRQUFBLHFCQUFxQixHQUFHLE9BQU8sQ0FBQztBQUNoQyxRQUFBLGtCQUFrQixHQUFHLE9BQU8sQ0FBQztBQUM3QixRQUFBLDRCQUE0QixHQUFHLENBQUMsNkJBQXFCLEVBQUUsMEJBQWtCLENBQUMsQ0FBQztBQUMzRSxRQUFBLHNCQUFzQixHQUFHLFVBQVUsQ0FBQztBQUNwQyxRQUFBLDZCQUE2QixHQUFHLGlCQUFpQixDQUFDO0FBQ2xELFFBQUEsaUNBQWlDLEdBQUcsNkJBQTZCLENBQUM7QUFFbEUsUUFBQSxtQkFBbUIsR0FBRyxPQUFPLENBQUM7QUFDOUIsUUFBQSwwQkFBMEIsR0FBRyxjQUFjLENBQUM7QUFDNUMsUUFBQSxxQkFBcUIsR0FBRyxTQUFTLENBQUM7QUFDbEMsUUFBQSwrQkFBK0IsR0FBRyxtQkFBbUIsQ0FBQztBQUN0RCxRQUFBLG9DQUFvQyxHQUFHLHdCQUF3QixDQUFDO0FBQ2hFLFFBQUEsc0NBQXNDLEdBQUcsMEJBQTBCLENBQUM7QUFDcEUsUUFBQSwyQkFBMkIsR0FBRyxlQUFlLENBQUM7QUFDOUMsUUFBQSxrQ0FBa0MsR0FBRyxpQ0FBaUMsQ0FBQztBQUN2RSxRQUFBLCtCQUErQixHQUFHLG1CQUFtQixDQUFDO0FBRXRELFFBQUEsa0NBQWtDLEdBQUc7SUFDaEQsMkJBQW1CO0lBQ25CLGtDQUEwQjtJQUMxQiw2QkFBcUI7SUFDckIsdUNBQStCO0lBQy9CLDhDQUFzQztJQUN0Qyw0Q0FBb0M7SUFDcEMsbUNBQTJCO0lBQzNCLDBDQUFrQztJQUNsQyx1Q0FBK0I7Q0FDaEMsQ0FBQztBQUVXLFFBQUEsNkJBQTZCLEdBQUc7SUFDM0MsV0FBVztJQUNYLGNBQWM7SUFDZCxvQkFBb0I7SUFDcEIsMEJBQTBCO0lBQzFCLHFCQUFxQjtJQUNyQixXQUFXO0lBQ1gsVUFBVTtJQUNWLDZCQUE2QjtDQUM5QixDQUFDO0FBRVcsUUFBQSx1QkFBdUIsR0FBRyxFQUFFLENBQUM7QUFFMUMsbUhBQW1IO0FBQ3RHLFFBQUEsV0FBVyxHQUFHLENBQUMsQ0FBQztBQUNoQixRQUFBLDJCQUEyQixHQUFHLENBQUMsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCBjb25zdCBGVU5DVElPTl9OQU1FX1NFTkRNQU5ZID0gJ3NlbmQtbWFueSc7XG5leHBvcnQgY29uc3QgQ09OVFJBQ1RfTkFNRV9TRU5ETUFOWSA9ICdzZW5kLW1hbnktbWVtbyc7XG5leHBvcnQgY29uc3QgQ09OVFJBQ1RfTkFNRV9TVEFLSU5HID0gJ3BveC00JztcbmV4cG9ydCBjb25zdCBDT05UUkFDVF9OQU1FX1BPWDUgPSAncG94LTUnO1xuZXhwb3J0IGNvbnN0IFZBTElEX1NUQUtJTkdfQ09OVFJBQ1RfTkFNRVMgPSBbQ09OVFJBQ1RfTkFNRV9TVEFLSU5HLCBDT05UUkFDVF9OQU1FX1BPWDVdO1xuZXhwb3J0IGNvbnN0IEZVTkNUSU9OX05BTUVfVFJBTlNGRVIgPSAndHJhbnNmZXInO1xuZXhwb3J0IGNvbnN0IENPTlRSQUNUX05BTUVfU0JUQ19XSVRIRFJBV0FMID0gJ3NidGMtd2l0aGRyYXdhbCc7XG5leHBvcnQgY29uc3QgRlVOQ1RJT05fTkFNRV9JTklUSUFURV9XSVRIRFJBV0FMID0gJ2luaXRpYXRlLXdpdGhkcmF3YWwtcmVxdWVzdCc7XG5cbmV4cG9ydCBjb25zdCBGVU5DVElPTl9OQU1FX1NUQUtFID0gJ3N0YWtlJztcbmV4cG9ydCBjb25zdCBGVU5DVElPTl9OQU1FX1NUQUtFX1VQREFURSA9ICdzdGFrZS11cGRhdGUnO1xuZXhwb3J0IGNvbnN0IEZVTkNUSU9OX05BTUVfVU5TVEFLRSA9ICd1bnN0YWtlJztcbmV4cG9ydCBjb25zdCBGVU5DVElPTl9OQU1FX1JFR0lTVEVSX0ZPUl9CT05EID0gJ3JlZ2lzdGVyLWZvci1ib25kJztcbmV4cG9ydCBjb25zdCBGVU5DVElPTl9OQU1FX0FOTk9VTkNFX0wxX0VBUkxZX0VYSVQgPSAnYW5ub3VuY2UtbDEtZWFybHktZXhpdCc7XG5leHBvcnQgY29uc3QgRlVOQ1RJT05fTkFNRV9VUERBVEVfQk9ORF9SRUdJU1RSQVRJT04gPSAndXBkYXRlLWJvbmQtcmVnaXN0cmF0aW9uJztcbmV4cG9ydCBjb25zdCBGVU5DVElPTl9OQU1FX0NMQUlNX1JFV0FSRFMgPSAnY2xhaW0tcmV3YXJkcyc7XG5leHBvcnQgY29uc3QgRlVOQ1RJT05fTkFNRV9DTEFJTV9TVEFLRVJfUkVXQVJEUyA9ICdjbGFpbS1zdGFrZXItcmV3YXJkcy1mb3Itc2lnbmVyJztcbmV4cG9ydCBjb25zdCBGVU5DVElPTl9OQU1FX0NBTENVTEFURV9SRVdBUkRTID0gJ2NhbGN1bGF0ZS1yZXdhcmRzJztcblxuZXhwb3J0IGNvbnN0IFZBTElEX1BPWDVfQ09OVFJBQ1RfRlVOQ1RJT05fTkFNRVMgPSBbXG4gIEZVTkNUSU9OX05BTUVfU1RBS0UsXG4gIEZVTkNUSU9OX05BTUVfU1RBS0VfVVBEQVRFLFxuICBGVU5DVElPTl9OQU1FX1VOU1RBS0UsXG4gIEZVTkNUSU9OX05BTUVfUkVHSVNURVJfRk9SX0JPTkQsXG4gIEZVTkNUSU9OX05BTUVfVVBEQVRFX0JPTkRfUkVHSVNUUkFUSU9OLFxuICBGVU5DVElPTl9OQU1FX0FOTk9VTkNFX0wxX0VBUkxZX0VYSVQsXG4gIEZVTkNUSU9OX05BTUVfQ0xBSU1fUkVXQVJEUyxcbiAgRlVOQ1RJT05fTkFNRV9DTEFJTV9TVEFLRVJfUkVXQVJEUyxcbiAgRlVOQ1RJT05fTkFNRV9DQUxDVUxBVEVfUkVXQVJEUyxcbl07XG5cbmV4cG9ydCBjb25zdCBWQUxJRF9DT05UUkFDVF9GVU5DVElPTl9OQU1FUyA9IFtcbiAgJ3N0YWNrLXN0eCcsXG4gICdkZWxlZ2F0ZS1zdHgnLFxuICAnZGVsZWdhdGUtc3RhY2stc3R4JyxcbiAgJ3N0YWNrLWFnZ3JlZ2F0aW9uLWNvbW1pdCcsXG4gICdyZXZva2UtZGVsZWdhdGUtc3R4JyxcbiAgJ3NlbmQtbWFueScsXG4gICd0cmFuc2ZlcicsXG4gICdpbml0aWF0ZS13aXRoZHJhd2FsLXJlcXVlc3QnLFxuXTtcblxuZXhwb3J0IGNvbnN0IERFRkFVTFRfU0VFRF9TSVpFX0JZVEVTID0gNjQ7XG5cbi8vIGh0dHBzOi8vZ2l0aHViLmNvbS9zdGFja3Nnb3Yvc2lwcy9ibG9iL21haW4vc2lwcy9zaXAtMDA1L3NpcC0wMDUtYmxvY2tzLWFuZC10cmFuc2FjdGlvbnMubWQjdHJhbnNhY3Rpb24tZW5jb2RpbmdcbmV4cG9ydCBjb25zdCBBTkNIT1JfTU9ERSA9IDM7XG5leHBvcnQgY29uc3QgREVGQVVMVF9NVUxUSVNJR19TSUdfTlVNQkVSID0gMjtcbiJdfQ==
@@ -1 +1 @@
1
- {"version":3,"file":"contractBuilder.d.ts","sourceRoot":"","sources":["../../../src/lib/contractBuilder.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,IAAI,UAAU,EAAuC,MAAM,qBAAqB,CAAC;AAClG,OAAO,EAKL,YAAY,EAKb,MAAM,sBAAsB,CAAC;AAE9B,OAAO,EAAE,WAAW,EAAE,MAAM,eAAe,CAAC;AAE5C,OAAO,EAAE,gBAAgB,EAAE,MAAM,SAAS,CAAC;AAG3C,OAAO,EAAE,uBAAuB,EAAE,MAAM,2BAA2B,CAAC;AAEpE,qBAAa,eAAgB,SAAQ,uBAAuB;gBAC9C,WAAW,EAAE,QAAQ,CAAC,UAAU,CAAC;IAI7C,WAAW,CAAC,EAAE,EAAE,WAAW,GAAG,IAAI;IAUlC;;;;;OAKG;IACH,eAAe,CAAC,OAAO,EAAE,MAAM,GAAG,IAAI;IAWtC;;;;;OAKG;IACH,YAAY,CAAC,IAAI,EAAE,MAAM,GAAG,IAAI;IAWhC;;;;;OAKG;IACH,YAAY,CAAC,IAAI,EAAE,MAAM,GAAG,IAAI;IAWhC,YAAY,CAAC,IAAI,EAAE,gBAAgB,EAAE,GAAG,YAAY,EAAE,GAAG,IAAI;IAY7D,OAAO,CAAC,OAAO;CA8BhB"}
1
+ {"version":3,"file":"contractBuilder.d.ts","sourceRoot":"","sources":["../../../src/lib/contractBuilder.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,IAAI,UAAU,EAAuC,MAAM,qBAAqB,CAAC;AAClG,OAAO,EAKL,YAAY,EAQb,MAAM,sBAAsB,CAAC;AAE9B,OAAO,EAAE,WAAW,EAAE,MAAM,eAAe,CAAC;AAE5C,OAAO,EAAE,gBAAgB,EAAE,MAAM,SAAS,CAAC;AAG3C,OAAO,EAAE,uBAAuB,EAAE,MAAM,2BAA2B,CAAC;AAEpE,qBAAa,eAAgB,SAAQ,uBAAuB;gBAC9C,WAAW,EAAE,QAAQ,CAAC,UAAU,CAAC;IAI7C,WAAW,CAAC,EAAE,EAAE,WAAW,GAAG,IAAI;IAUlC;;;;;OAKG;IACH,eAAe,CAAC,OAAO,EAAE,MAAM,GAAG,IAAI;IAWtC;;;;;OAKG;IACH,YAAY,CAAC,IAAI,EAAE,MAAM,GAAG,IAAI;IAchC;;;;;OAKG;IACH,YAAY,CAAC,IAAI,EAAE,MAAM,GAAG,IAAI;IAWhC,YAAY,CAAC,IAAI,EAAE,gBAAgB,EAAE,GAAG,YAAY,EAAE,GAAG,IAAI;IAY7D,OAAO,CAAC,OAAO;CA2DhB"}
@@ -46,8 +46,11 @@ class ContractBuilder extends abstractContractBuilder_1.AbstractContractBuilder
46
46
  if (name.length === 0) {
47
47
  throw new sdk_core_1.InvalidParameterValueError('Invalid name');
48
48
  }
49
- if (name !== constants_1.CONTRACT_NAME_STAKING && name !== constants_1.CONTRACT_NAME_SENDMANY) {
50
- throw new sdk_core_1.InvalidParameterValueError('Only pox-4 and send-many-memo contracts supported');
49
+ if (!constants_1.VALID_STAKING_CONTRACT_NAMES.includes(name) && name !== constants_1.CONTRACT_NAME_SENDMANY) {
50
+ throw new sdk_core_1.InvalidParameterValueError('Only pox-4, pox-5, and send-many-memo contracts supported');
51
+ }
52
+ if (this._functionName && !_1.Utils.isValidContractFunctionName(this._functionName, name)) {
53
+ throw new sdk_core_1.InvalidParameterValueError(`${this._functionName} is not supported contract function name`);
51
54
  }
52
55
  this._contractName = name;
53
56
  return this;
@@ -62,7 +65,7 @@ class ContractBuilder extends abstractContractBuilder_1.AbstractContractBuilder
62
65
  if (name.length === 0) {
63
66
  throw new sdk_core_1.InvalidParameterValueError('Invalid name');
64
67
  }
65
- if (!_1.Utils.isValidContractFunctionName(name)) {
68
+ if (!_1.Utils.isValidContractFunctionName(name, this._contractName)) {
66
69
  throw new sdk_core_1.InvalidParameterValueError(`${name} is not supported contract function name`);
67
70
  }
68
71
  this._functionName = name;
@@ -89,6 +92,22 @@ class ContractBuilder extends abstractContractBuilder_1.AbstractContractBuilder
89
92
  else {
90
93
  return (0, transactions_1.someCV)(this.parseCv(arg.val));
91
94
  }
95
+ case 'list':
96
+ if (arg.val instanceof Array) {
97
+ return (0, transactions_1.listCV)(arg.val.map((value) => this.parseCv(value)));
98
+ }
99
+ throw new sdk_core_1.InvalidParameterValueError('list requires Array val');
100
+ case 'response':
101
+ if (arg.val && typeof arg.val === 'object' && !Array.isArray(arg.val)) {
102
+ const response = arg.val;
103
+ if (response.type === 'ok' && response.val !== undefined) {
104
+ return (0, transactions_1.responseOkCV)(this.parseCv(response.val));
105
+ }
106
+ if (response.type === 'err' && response.val !== undefined) {
107
+ return (0, transactions_1.responseErrorCV)(this.parseCv(response.val));
108
+ }
109
+ }
110
+ throw new sdk_core_1.InvalidParameterValueError('response requires { type: ok|err, val }');
92
111
  case 'tuple':
93
112
  if (arg.val instanceof Array) {
94
113
  const data = {};
@@ -98,6 +117,19 @@ class ContractBuilder extends abstractContractBuilder_1.AbstractContractBuilder
98
117
  return (0, transactions_1.tupleCV)(data);
99
118
  }
100
119
  throw new sdk_core_1.InvalidParameterValueError('tuple require Array val');
120
+ case 'contractPrincipal':
121
+ case 'contract-principal': {
122
+ if (typeof arg.val !== 'string') {
123
+ throw new sdk_core_1.InvalidParameterValueError('contract principal requires string val');
124
+ }
125
+ return (0, utils_1.contractPrincipalCVFromString)(arg.val);
126
+ }
127
+ case 'standardPrincipal':
128
+ case 'standard-principal':
129
+ if (typeof arg.val !== 'string') {
130
+ throw new sdk_core_1.InvalidParameterValueError('standard principal requires string val');
131
+ }
132
+ return (0, utils_1.standardPrincipalCVFromString)(arg.val);
101
133
  case 'buffer':
102
134
  if (arg.val instanceof Buffer) {
103
135
  return (0, transactions_1.bufferCV)(arg.val);
@@ -113,4 +145,4 @@ class ContractBuilder extends abstractContractBuilder_1.AbstractContractBuilder
113
145
  }
114
146
  }
115
147
  exports.ContractBuilder = ContractBuilder;
116
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29udHJhY3RCdWlsZGVyLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL2xpYi9jb250cmFjdEJ1aWxkZXIudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7O0FBQ0EsdURBVThCO0FBQzlCLG1EQUFrRTtBQUVsRSxtQ0FBeUM7QUFFekMsd0JBQTBCO0FBQzFCLDJDQUE0RTtBQUM1RSx1RUFBb0U7QUFFcEUsTUFBYSxlQUFnQixTQUFRLGlEQUF1QjtJQUMxRCxZQUFZLFdBQWlDO1FBQzNDLEtBQUssQ0FBQyxXQUFXLENBQUMsQ0FBQztJQUNyQixDQUFDO0lBRUQsV0FBVyxDQUFDLEVBQWU7UUFDekIsS0FBSyxDQUFDLFdBQVcsQ0FBQyxFQUFFLENBQUMsQ0FBQztRQUN0QiwwQ0FBMEM7UUFDMUMsSUFBSSxDQUFDLGVBQWUsQ0FBQyxJQUFJLENBQUMsZ0JBQWdCLENBQUMsQ0FBQztRQUM1QyxJQUFJLENBQUMsWUFBWSxDQUFDLElBQUksQ0FBQyxhQUFhLENBQUMsQ0FBQztRQUN0QyxJQUFJLENBQUMsWUFBWSxDQUFDLElBQUksQ0FBQyxhQUFhLENBQUMsQ0FBQztRQUN0QyxJQUFJLENBQUMsWUFBWSxDQUFDLElBQUksQ0FBQyxhQUFhLENBQUMsQ0FBQztJQUN4QyxDQUFDO0lBRUQseUJBQXlCO0lBQ3pCOzs7OztPQUtHO0lBQ0gsZUFBZSxDQUFDLE9BQWU7UUFDN0IsSUFBSSxDQUFDLElBQUEsc0JBQWMsRUFBQyxPQUFPLENBQUMsRUFBRSxDQUFDO1lBQzdCLE1BQU0sSUFBSSxxQ0FBMEIsQ0FBQyxpQkFBaUIsQ0FBQyxDQUFDO1FBQzFELENBQUM7UUFDRCxJQUFJLENBQUMsUUFBSyxDQUFDLHNCQUFzQixDQUFDLE9BQU8sRUFBRSxJQUFJLENBQUMsV0FBVyxDQUFDLE9BQTZCLENBQUMsRUFBRSxDQUFDO1lBQzNGLE1BQU0sSUFBSSxxQ0FBMEIsQ0FBQywwQkFBMEIsQ0FBQyxDQUFDO1FBQ25FLENBQUM7UUFDRCxJQUFJLENB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O2dCQUNELE1BQU0sSUFBSSxHQUFHLE1BQU0sQ0FBQyxHQUFHLENBQUMsR0FBRyxDQUFDLENBQUM7Z0JBQzdCLElBQUksSUFBSSxFQUFFLENBQUM7b0JBQ1QsT0FBTyxJQUFBLHVCQUFRLEVBQUMsTUFBTSxDQUFDLEVBQUUsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDO2dCQUNuQyxDQUFDO2dCQUNELE9BQU8sSUFBQSxpQ0FBa0IsRUFBQyxHQUFHLENBQUMsR0FBRyxDQUFDLENBQUM7WUFDckM7Z0JBQ0UsT0FBTyxJQUFBLGlDQUFrQixFQUFDLEdBQUcsQ0FBQyxJQUFzQixFQUFFLEdBQUcsQ0FBQyxHQUFHLENBQUMsQ0FBQztRQUNuRSxDQUFDO0lBQ0gsQ0FBQztDQUNGO0FBNUdELDBDQTRHQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEJhc2VDb2luIGFzIENvaW5Db25maWcsIFN0YWNrc05ldHdvcmsgYXMgQml0Z29TdGFja3NOZXR3b3JrIH0gZnJvbSAnQGJpdGdvLWJldGEvc3RhdGljcyc7XG5pbXBvcnQge1xuICBidWZmZXJDVixcbiAgYnVmZmVyQ1ZGcm9tU3RyaW5nLFxuICBDbGFyaXR5QWJpVHlwZSxcbiAgQ2xhcml0eVR5cGUsXG4gIENsYXJpdHlWYWx1ZSxcbiAgZW5jb2RlQ2xhcml0eVZhbHVlLFxuICBub25lQ1YsXG4gIHNvbWVDVixcbiAgdHVwbGVDVixcbn0gZnJvbSAnQHN0YWNrcy90cmFuc2FjdGlvbnMnO1xuaW1wb3J0IHsgSW52YWxpZFBhcmFtZXRlclZhbHVlRXJyb3IgfSBmcm9tICdAYml0Z28tYmV0YS9zZGstY29yZSc7XG5pbXBvcnQgeyBUcmFuc2FjdGlvbiB9IGZyb20gJy4vdHJhbnNhY3Rpb24nO1xuaW1wb3J0IHsgaXNWYWxpZEFkZHJlc3MgfSBmcm9tICcuL3V0aWxzJztcbmltcG9ydCB7IENsYXJpdHlWYWx1ZUpzb24gfSBmcm9tICcuL2lmYWNlJztcbmltcG9ydCB7IFV0aWxzIH0gZnJvbSAnLic7XG5pbXBvcnQgeyBDT05UUkFDVF9OQU1FX1NFTkRNQU5ZLCBDT05UUkFDVF9OQU1FX1NUQUtJTkcgfSBmcm9tICcuL2NvbnN0YW50cyc7XG5pbXBvcnQgeyBBYnN0cmFjdENvbnRyYWN0QnVpbGRlciB9IGZyb20gJy4vYWJzdHJhY3RDb250cmFjdEJ1aWxkZXInO1xuXG5leHBvcnQgY2xhc3MgQ29udHJhY3RCdWlsZGVyIGV4dGVuZHMgQWJzdHJhY3RDb250cmFjdEJ1aWxkZXIge1xuICBjb25zdHJ1Y3RvcihfY29pbkNvbmZpZzogUmVhZG9ubHk8Q29pbkNvbmZpZz4pIHtcbiAgICBzdXBlcihfY29pbkNvbmZpZyk7XG4gIH1cblxuICBpbml0QnVpbGRlcih0eDogVHJhbnNhY3Rpb24pOiB2b2lkIHtcbiAgICBzdXBlci5pbml0QnVpbGRlcih0eCk7XG4gICAgLy8gUmV0cm8gY29tcGF0aWJpbGl0eSwgY2hlY2tzIHBhcmFtZXRlcnMuXG4gICAgdGhpcy5jb250cmFjdEFkZHJlc3ModGhpcy5fY29udHJhY3RBZGRyZXNzKTtcbiAgICB0aGlzLmNvbnRyYWN0TmFtZSh0aGlzLl9jb250cmFjdE5hbWUpO1xuICAgIHRoaXMuZnVuY3Rpb25OYW1lKHRoaXMuX2Z1bmN0aW9uTmFtZSk7XG4gICAgdGhpcy5mdW5jdGlvbkFyZ3ModGhpcy5fZnVuY3Rpb25BcmdzKTtcbiAgfVxuXG4gIC8vIHJlZ2lvbiBDb250cmFjdCBmaWVsZHNcbiAgLyoqXG4gICAqIFNldCB0aGUgY29udHJhY3QgYWRkcmVzc1xuICAgKlxuICAgKiBAcGFyYW0ge3N0cmluZ30gYWRkcmVzcyB0aGUgYWRkcmVzcyBkZXBsb3llZCB0aGUgY29udHJhY3RcbiAgICogQHJldHVybnMge0NvbnRyYWN0QnVpbGRlcn0gdGhlIGJ1aWxkZXIgd2l0aCB0aGUgbmV3IHBhcmFtZXRlciBzZXRcbiAgICovXG4gIGNvbnRyYWN0QWRkcmVzcyhhZGRyZXNzOiBzdHJpbmcpOiB0aGlzIHtcbiAgICBpZiAoIWlzVmFsaWRBZGRyZXNzKGFkZHJlc3MpKSB7XG4gICAgICB0aHJvdyBuZXcgSW52YWxpZFBhcmFtZXRlclZhbHVlRXJyb3IoJ0ludmFsaWQgYWRkcmVzcycpO1xuICAgIH1cbiAgICBpZiAoIVV0aWxzLmlzVmFsaWRDb250cmFjdEFkZHJlc3MoYWRkcmVzcywgdGhpcy5fY29pbkNvbmZpZy5uZXR3b3JrIGFzIEJpdGdvU3RhY2tzTmV0d29yaykpIHtcbiAgICAgIHRocm93IG5ldyBJbnZhbGlkUGFyYW1ldGVyVmFsdWVFcnJvcignSW52YWxpZCBjb250cmFjdCBhZGRyZXNzJyk7XG4gICAgfVxuICAgIHRoaXMuX2NvbnRyYWN0QWRkcmVzcyA9IGFkZHJlc3M7XG4gICAgcmV0dXJuIHRoaXM7XG4gIH1cblxuICAvKipcbiAgICogU2V0IHRoZSBjb250cmFjdCBuYW1lXG4gICAqXG4gICAqIEBwYXJhbSB7c3RyaW5nfSBuYW1lIG5hbWUgb2YgY29udHJhY3RcbiAgICogQHJldHVybnMge0NvbnRyYWN0QnVpbGRlcn0gdGhlIGJ1aWxkZXIgd2l0aCB0aGUgbmV3IHBhcmFtZXRlciBzZXRcbiAgICovXG4gIGNvbnRyYWN0TmFtZShuYW1lOiBzdHJpbmcpOiB0aGlzIHtcbiAgICBpZiAobmFtZS5sZW5ndGggPT09IDApIHtcbiAgICAgIHRocm93IG5ldyBJbnZhbGlkUGFyYW1ldGVyVmFsdWVFcnJvcignSW52YWxpZCBuYW1lJyk7XG4gICAgfVxuICAgIGlmIChuYW1lICE9PSBDT05UUkFDVF9OQU1FX1NUQUtJTkcgJiYgbmFtZSAhPT0gQ09OVFJBQ1RfTkFNRV9TRU5ETUFOWSkge1xuICAgICAgdGhyb3cgbmV3IEludmFsaWRQYXJhbWV0ZXJWYWx1ZUVycm9yKCdPbmx5IHBveC00IGFuZCBzZW5kLW1hbnktbWVtbyBjb250cmFjdHMgc3VwcG9ydGVkJyk7XG4gICAgfVxuICAgIHRoaXMuX2NvbnRyYWN0TmFtZSA9IG5hbWU7XG4gICAgcmV0dXJuIHRoaXM7XG4gIH1cblxuICAvKipcbiAgICogU2V0IHRoZSBmdW5jdGlvbiBuYW1lIGluIGNvbnRyYWN0XG4gICAqXG4gICAqIEBwYXJhbSB7c3RyaW5nfSBuYW1lIG5hbWUgb2YgZnVuY3Rpb25cbiAgICogQHJldHVybnMge0NvbnRyYWN0QnVpbGRlcn0gdGhlIGJ1aWxkZXIgd2l0aCB0aGUgbmV3IHBhcmFtZXRlciBzZXRcbiAgICovXG4gIGZ1bmN0aW9uTmFtZShuYW1lOiBzdHJpbmcpOiB0aGlzIHtcbiAgICBpZiAobmFtZS5sZW5ndGggPT09IDApIHtcbiAgICAgIHRocm93IG5ldyBJbnZhbGlkUGFyYW1ldGVyVmFsdWVFcnJvcignSW52YWxpZCBuYW1lJyk7XG4gICAgfVxuICAgIGlmICghVXRpbHMuaXNWYWxpZENvbnRyYWN0RnVuY3Rpb25OYW1lKG5hbWUpKSB7XG4gICAgICB0aHJvdyBuZXcgSW52YWxpZFBhcmFtZXRlclZhbHVlRXJyb3IoYCR7bmFtZX0gaXMgbm90IHN1cHBvcnRlZCBjb250cmFjdCBmdW5jdGlvbiBuYW1lYCk7XG4gICAgfVxuICAgIHRoaXMuX2Z1bmN0aW9uTmFtZSA9IG5hbWU7XG4gICAgcmV0dXJuIHRoaXM7XG4gIH1cblxuICBmdW5jdGlvbkFyZ3MoYXJnczogQ2xhcml0eVZhbHVlSnNvbltdIHwgQ2xhcml0eVZhbHVlW10pOiB0aGlzIHtcbiAgICB0aGlzLl9mdW5jdGlvbkFyZ3MgPSBhcmdzLm1hcCgoYXJnKSA9PiB7XG4gICAgICBpZiAoIUNsYXJpdHlUeXBlW2FyZy50eXBlXSkge1xuICAgICAgICByZXR1cm4gdGhpcy5wYXJzZUN2KGFyZyk7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICAvLyBnb3QgZGlyZWN0IGNsYXJpdHkgdmFsdWUgYWZ0ZXIgZGVzZXJpYWxpemF0aW9uIGluIGZyb21JbXBsZW1lbnRhdGlvblxuICAgICAgICByZXR1cm4gYXJnO1xuICAgICAgfVxuICAgIH0pO1xuICAgIHJldHVybiB0aGlzO1xuICB9XG5cbiAgcHJpdmF0ZSBwYXJzZUN2KGFyZzogQ2xhcml0eVZhbHVlSnNvbik6IENsYXJpdHlWYWx1ZSB7XG4gICAgc3dpdGNoIChhcmcudHlwZSkge1xuICAgICAgY2FzZSAnb3B0aW9uYWwnOlxuICAgICAgICBpZiAoYXJnLnZhbCA9PT0gdW5kZWZpbmVkKSB7XG4gICAgICAgICAgcmV0dXJuIG5vbmVDVigpO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgIHJldHVybiBzb21lQ1YodGhpcy5wYXJzZUN2KGFyZy52YWwpKTtcbiAgICAgICAgfVxuICAgICAgY2FzZSAndHVwbGUnOlxuICAgICAgICBpZiAoYXJnLnZhbCBpbnN0YW5jZW9mIEFycmF5KSB7XG4gICAgICAgICAgY29uc3QgZGF0YSA9IHt9O1xuICAgICAgICAgIGFyZy52YWwuZm9yRWFjaCgoYSkgPT4ge1xuICAgICAgICAgICAgZGF0YVthLmtleV0gPSB0aGlzLnBhcnNlQ3YoeyB0eXBlOiBhLnR5cGUsIHZhbDogYS52YWwgfSk7XG4gICAgICAgICAgfSk7XG4gICAgICAgICAgcmV0dXJuIHR1cGxlQ1YoZGF0YSk7XG4gICAgICAgIH1cbiAgICAgICAgdGhyb3cgbmV3IEludmFsaWRQYXJhbWV0ZXJWYWx1ZUVycm9yKCd0dXBsZSByZXF1aXJlIEFycmF5IHZhbCcpO1xuICAgICAgY2FzZSAnYnVmZmVyJzpcbiAgICAgICAgaWYgKGFyZy52YWwgaW5zdGFuY2VvZiBCdWZmZXIpIHtcbiAgICAgICAgICByZXR1cm4gYnVmZmVyQ1YoYXJnLnZhbCk7XG4gICAgICAgIH1cbiAgICAgICAgY29uc3QgbnZhbCA9IE51bWJlcihhcmcudmFsKTtcbiAgICAgICAgaWYgKG52YWwpIHtcbiAgICAgICAgICByZXR1cm4gYnVmZmVyQ1YoQnVmZmVyLm9mKG52YWwpKTtcbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gYnVmZmVyQ1ZGcm9tU3RyaW5nKGFyZy52YWwpO1xuICAgICAgZGVmYXVsdDpcbiAgICAgICAgcmV0dXJuIGVuY29kZUNsYXJpdHlWYWx1ZShhcmcudHlwZSBhcyBDbGFyaXR5QWJpVHlwZSwgYXJnLnZhbCk7XG4gICAgfVxuICB9XG59XG4iXX0=
148
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29udHJhY3RCdWlsZGVyLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL2xpYi9jb250cmFjdEJ1aWxkZXIudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7O0FBQ0EsdURBYThCO0FBQzlCLG1EQUFrRTtBQUVsRSxtQ0FBdUc7QUFFdkcsd0JBQTBCO0FBQzFCLDJDQUFtRjtBQUNuRix1RUFBb0U7QUFFcEUsTUFBYSxlQUFnQixTQUFRLGlEQUF1QjtJQUMxRCxZQUFZLFdBQWlDO1FBQzNDLEtBQUssQ0FBQyxXQUFXLENBQUMsQ0FBQztJQUNyQixDQUFDO0lBRUQsV0FBVyxDQUFDLEVBQWU7UUFDekIsS0FBSyxDQUFDLFdBQVcsQ0FBQyxFQUFFLENBQUMsQ0FBQztRQUN0QiwwQ0FBMEM7UUFDMUMsSUFBSSxDQUFDLGVBQWUsQ0FBQyxJQUFJLENBQUMsZ0JBQWdCLENBQUMsQ0FBQztRQUM1QyxJQUFJLENBQUMsWUFBWSxDQUFDLElBQUksQ0FBQyxhQUFhLENBQUMsQ0FBQztRQUN0QyxJQUFJLENBQUMsWUFBWSxDQUFDLElBQUksQ0FBQyxhQUFhLENBQUMsQ0FBQztRQUN0QyxJQUFJLENBQUMsWUFBWSxDQUFDLElBQUksQ0FBQyxhQUFhLENBQUMsQ0FBQztJQUN4QyxDQUFDO0lBRUQseUJBQXlCO0lBQ3pCOzs7OztPQUtHO0lBQ0gsZUFBZSxDQUFDLE9BQWU7UUFDN0IsSUFBSSxDQUFDLElBQUEsc0JBQWMsRUFBQyxPQUFPLENBQUMsRUFBRSxDQUFDO1lBQzdCLE1BQU0sSUFBSSxxQ0FBMEIsQ0FBQyxpQkFBaUIsQ0FBQyxDQUFDO1FBQzFELENBQUM7UUFDRCxJQUFJLENBQUMsUUFBSyxDQUFDLHNCQUFzQixDQUFDLE9BQU8sRUFBRSxJQUFJLENBQUMsV0FBVyxDQUFDLE9BQTZCLENBQUMsRUFBRSxDQUFDO1lBQzNGLE1BQU0sSUFBSSxxQ0FBMEIsQ0FBQywwQkFBMEIsQ0FBQyxDQUFDO1FBQ25FLENBQUM7UUFDRCxJQUFJLENB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b3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBCYXNlQ29pbiBhcyBDb2luQ29uZmlnLCBTdGFja3NOZXR3b3JrIGFzIEJpdGdvU3RhY2tzTmV0d29yayB9IGZyb20gJ0BiaXRnby1iZXRhL3N0YXRpY3MnO1xuaW1wb3J0IHtcbiAgYnVmZmVyQ1YsXG4gIGJ1ZmZlckNWRnJvbVN0cmluZyxcbiAgQ2xhcml0eUFiaVR5cGUsXG4gIENsYXJpdHlUeXBlLFxuICBDbGFyaXR5VmFsdWUsXG4gIGVuY29kZUNsYXJpdHlWYWx1ZSxcbiAgbm9uZUNWLFxuICBsaXN0Q1YsXG4gIHJlc3BvbnNlRXJyb3JDVixcbiAgcmVzcG9uc2VPa0NWLFxuICBzb21lQ1YsXG4gIHR1cGxlQ1YsXG59IGZyb20gJ0BzdGFja3MvdHJhbnNhY3Rpb25zJztcbmltcG9ydCB7IEludmFsaWRQYXJhbWV0ZXJWYWx1ZUVycm9yIH0gZnJvbSAnQGJpdGdvLWJldGEvc2RrLWNvcmUnO1xuaW1wb3J0IHsgVHJhbnNhY3Rpb24gfSBmcm9tICcuL3RyYW5zYWN0aW9uJztcbmltcG9ydCB7IGNvbnRyYWN0UHJpbmNpcGFsQ1ZGcm9tU3RyaW5nLCBpc1ZhbGlkQWRkcmVzcywgc3RhbmRhcmRQcmluY2lwYWxDVkZyb21TdHJpbmcgfSBmcm9tICcuL3V0aWxzJztcbmltcG9ydCB7IENsYXJpdHlWYWx1ZUpzb24gfSBmcm9tICcuL2lmYWNlJztcbmltcG9ydCB7IFV0aWxzIH0gZnJvbSAnLic7XG5pbXBvcnQgeyBDT05UUkFDVF9OQU1FX1NFTkRNQU5ZLCBWQUxJRF9TVEFLSU5HX0NPTlRSQUNUX05BTUVTIH0gZnJvbSAnLi9jb25zdGFudHMnO1xuaW1wb3J0IHsgQWJzdHJhY3RDb250cmFjdEJ1aWxkZXIgfSBmcm9tICcuL2Fic3RyYWN0Q29udHJhY3RCdWlsZGVyJztcblxuZXhwb3J0IGNsYXNzIENvbnRyYWN0QnVpbGRlciBleHRlbmRzIEFic3RyYWN0Q29udHJhY3RCdWlsZGVyIHtcbiAgY29uc3RydWN0b3IoX2NvaW5Db25maWc6IFJlYWRvbmx5PENvaW5Db25maWc+KSB7XG4gICAgc3VwZXIoX2NvaW5Db25maWcpO1xuICB9XG5cbiAgaW5pdEJ1aWxkZXIodHg6IFRyYW5zYWN0aW9uKTogdm9pZCB7XG4gICAgc3VwZXIuaW5pdEJ1aWxkZXIodHgpO1xuICAgIC8vIFJldHJvIGNvbXBhdGliaWxpdHksIGNoZWNrcyBwYXJhbWV0ZXJzLlxuICAgIHRoaXMuY29udHJhY3RBZGRyZXNzKHRoaXMuX2NvbnRyYWN0QWRkcmVzcyk7XG4gICAgdGhpcy5jb250cmFjdE5hbWUodGhpcy5fY29udHJhY3ROYW1lKTtcbiAgICB0aGlzLmZ1bmN0aW9uTmFtZSh0aGlzLl9mdW5jdGlvbk5hbWUpO1xuICAgIHRoaXMuZnVuY3Rpb25BcmdzKHRoaXMuX2Z1bmN0aW9uQXJncyk7XG4gIH1cblxuICAvLyByZWdpb24gQ29udHJhY3QgZmllbGRzXG4gIC8qKlxuICAgKiBTZXQgdGhlIGNvbnRyYWN0IGFkZHJlc3NcbiAgICpcbiAgICogQHBhcmFtIHtzdHJpbmd9IGFkZHJlc3MgdGhlIGFkZHJlc3MgZGVwbG95ZWQgdGhlIGNvbnRyYWN0XG4gICAqIEByZXR1cm5zIHtDb250cmFjdEJ1aWxkZXJ9IHRoZSBidWlsZGVyIHdpdGggdGhlIG5ldyBwYXJhbWV0ZXIgc2V0XG4gICAqL1xuICBjb250cmFjdEFkZHJlc3MoYWRkcmVzczogc3RyaW5nKTogdGhpcyB7XG4gICAgaWYgKCFpc1ZhbGlkQWRkcmVzcyhhZGRyZXNzKSkge1xuICAgICAgdGhyb3cgbmV3IEludmFsaWRQYXJhbWV0ZXJWYWx1ZUVycm9yKCdJbnZhbGlkIGFkZHJlc3MnKTtcbiAgICB9XG4gICAgaWYgKCFVdGlscy5pc1ZhbGlkQ29udHJhY3RBZGRyZXNzKGFkZHJlc3MsIHRoaXMuX2NvaW5Db25maWcubmV0d29yayBhcyBCaXRnb1N0YWNrc05ldHdvcmspKSB7XG4gICAgICB0aHJvdyBuZXcgSW52YWxpZFBhcmFtZXRlclZhbHVlRXJyb3IoJ0ludmFsaWQgY29udHJhY3QgYWRkcmVzcycpO1xuICAgIH1cbiAgICB0aGlzLl9jb250cmFjdEFkZHJlc3MgPSBhZGRyZXNzO1xuICAgIHJldHVybiB0aGlzO1xuICB9XG5cbiAgLyoqXG4gICAqIFNldCB0aGUgY29udHJhY3QgbmFtZVxuICAgKlxuICAgKiBAcGFyYW0ge3N0cmluZ30gbmFtZSBuYW1lIG9mIGNvbnRyYWN0XG4gICAqIEByZXR1cm5zIHtDb250cmFjdEJ1aWxkZXJ9IHRoZSBidWlsZGVyIHdpdGggdGhlIG5ldyBwYXJhbWV0ZXIgc2V0XG4gICAqL1xuICBjb250cmFjdE5hbWUobmFtZTogc3RyaW5nKTogdGhpcyB7XG4gICAgaWYgKG5hbWUubGVuZ3RoID09PSAwKSB7XG4gICAgICB0aHJvdyBuZXcgSW52YWxpZFBhcmFtZXRlclZhbHVlRXJyb3IoJ0ludmFsaWQgbmFtZScpO1xuICAgIH1cbiAgICBpZiAoIVZBTElEX1NUQUtJTkdfQ09OVFJBQ1RfTkFNRVMuaW5jbHVkZXMobmFtZSkgJiYgbmFtZSAhPT0gQ09OVFJBQ1RfTkFNRV9TRU5ETUFOWSkge1xuICAgICAgdGhyb3cgbmV3IEludmFsaWRQYXJhbWV0ZXJWYWx1ZUVycm9yKCdPbmx5IHBveC00LCBwb3gtNSwgYW5kIHNlbmQtbWFueS1tZW1vIGNvbnRyYWN0cyBzdXBwb3J0ZWQnKTtcbiAgICB9XG4gICAgaWYgKHRoaXMuX2Z1bmN0aW9uTmFtZSAmJiAhVXRpbHMuaXNWYWxpZENvbnRyYWN0RnVuY3Rpb25OYW1lKHRoaXMuX2Z1bmN0aW9uTmFtZSwgbmFtZSkpIHtcbiAgICAgIHRocm93IG5ldyBJbnZhbGlkUGFyYW1ldGVyVmFsdWVFcnJvcihgJHt0aGlzLl9mdW5jdGlvbk5hbWV9IGlzIG5vdCBzdXBwb3J0ZWQgY29udHJhY3QgZnVuY3Rpb24gbmFtZWApO1xuICAgIH1cbiAgICB0aGlzLl9jb250cmFjdE5hbWUgPSBuYW1lO1xuICAgIHJldHVybiB0aGlzO1xuICB9XG5cbiAgLyoqXG4gICAqIFNldCB0aGUgZnVuY3Rpb24gbmFtZSBpbiBjb250cmFjdFxuICAgKlxuICAgKiBAcGFyYW0ge3N0cmluZ30gbmFtZSBuYW1lIG9mIGZ1bmN0aW9uXG4gICAqIEByZXR1cm5zIHtDb250cmFjdEJ1aWxkZXJ9IHRoZSBidWlsZGVyIHdpdGggdGhlIG5ldyBwYXJhbWV0ZXIgc2V0XG4gICAqL1xuICBmdW5jdGlvbk5hbWUobmFtZTogc3RyaW5nKTogdGhpcyB7XG4gICAgaWYgKG5hbWUubGVuZ3RoID09PSAwKSB7XG4gICAgICB0aHJvdyBuZXcgSW52YWxpZFBhcmFtZXRlclZhbHVlRXJyb3IoJ0ludmFsaWQgbmFtZScpO1xuICAgIH1cbiAgICBpZiAoIVV0aWxzLmlzVmFsaWRDb250cmFjdEZ1bmN0aW9uTmFtZShuYW1lLCB0aGlzLl9jb250cmFjdE5hbWUpKSB7XG4gICAgICB0aHJvdyBuZXcgSW52YWxpZFBhcmFtZXRlclZhbHVlRXJyb3IoYCR7bmFtZX0gaXMgbm90IHN1cHBvcnRlZCBjb250cmFjdCBmdW5jdGlvbiBuYW1lYCk7XG4gICAgfVxuICAgIHRoaXMuX2Z1bmN0aW9uTmFtZSA9IG5hbWU7XG4gICAgcmV0dXJuIHRoaXM7XG4gIH1cblxuICBmdW5jdGlvbkFyZ3MoYXJnczogQ2xhcml0eVZhbHVlSnNvbltdIHwgQ2xhcml0eVZhbHVlW10pOiB0aGlzIHtcbiAgICB0aGlzLl9mdW5jdGlvbkFyZ3MgPSBhcmdzLm1hcCgoYXJnKSA9PiB7XG4gICAgICBpZiAoIUNsYXJpdHlUeXBlW2FyZy50eXBlXSkge1xuICAgICAgICByZXR1cm4gdGhpcy5wYXJzZUN2KGFyZyk7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICAvLyBnb3QgZGlyZWN0IGNsYXJpdHkgdmFsdWUgYWZ0ZXIgZGVzZXJpYWxpemF0aW9uIGluIGZyb21JbXBsZW1lbnRhdGlvblxuICAgICAgICByZXR1cm4gYXJnO1xuICAgICAgfVxuICAgIH0pO1xuICAgIHJldHVybiB0aGlzO1xuICB9XG5cbiAgcHJpdmF0ZSBwYXJzZUN2KGFyZzogQ2xhcml0eVZhbHVlSnNvbik6IENsYXJpdHlWYWx1ZSB7XG4gICAgc3dpdGNoIChhcmcudHlwZSkge1xuICAgICAgY2FzZSAnb3B0aW9uYWwnOlxuICAgICAgICBpZiAoYXJnLnZhbCA9PT0gdW5kZWZpbmVkKSB7XG4gICAgICAgICAgcmV0dXJuIG5vbmVDVigpO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgIHJldHVybiBzb21lQ1YodGhpcy5wYXJzZUN2KGFyZy52YWwpKTtcbiAgICAgICAgfVxuICAgICAgY2FzZSAnbGlzdCc6XG4gICAgICAgIGlmIChhcmcudmFsIGluc3RhbmNlb2YgQXJyYXkpIHtcbiAgICAgICAgICByZXR1cm4gbGlzdENWKGFyZy52YWwubWFwKCh2YWx1ZSkgPT4gdGhpcy5wYXJzZUN2KHZhbHVlKSkpO1xuICAgICAgICB9XG4gICAgICAgIHRocm93IG5ldyBJbnZhbGlkUGFyYW1ldGVyVmFsdWVFcnJvcignbGlzdCByZXF1aXJlcyBBcnJheSB2YWwnKTtcbiAgICAgIGNhc2UgJ3Jlc3BvbnNlJzpcbiAgICAgICAgaWYgKGFyZy52YWwgJiYgdHlwZW9mIGFyZy52YWwgPT09ICdvYmplY3QnICYmICFBcnJheS5pc0FycmF5KGFyZy52YWwpKSB7XG4gICAgICAgICAgY29uc3QgcmVzcG9uc2UgPSBhcmcudmFsIGFzIHsgdHlwZT86IHN0cmluZzsgdmFsPzogQ2xhcml0eVZhbHVlSnNvbiB9O1xuICAgICAgICAgIGlmIChyZXNwb25zZS50eXBlID09PSAnb2snICYmIHJlc3BvbnNlLnZhbCAhPT0gdW5kZWZpbmVkKSB7XG4gICAgICAgICAgICByZXR1cm4gcmVzcG9uc2VPa0NWKHRoaXMucGFyc2VDdihyZXNwb25zZS52YWwpKTtcbiAgICAgICAgICB9XG4gICAgICAgICAgaWYgKHJlc3BvbnNlLnR5cGUgPT09ICdlcnInICYmIHJlc3BvbnNlLnZhbCAhPT0gdW5kZWZpbmVkKSB7XG4gICAgICAgICAgICByZXR1cm4gcmVzcG9uc2VFcnJvckNWKHRoaXMucGFyc2VDdihyZXNwb25zZS52YWwpKTtcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgICAgdGhyb3cgbmV3IEludmFsaWRQYXJhbWV0ZXJWYWx1ZUVycm9yKCdyZXNwb25zZSByZXF1aXJlcyB7IHR5cGU6IG9rfGVyciwgdmFsIH0nKTtcbiAgICAgIGNhc2UgJ3R1cGxlJzpcbiAgICAgICAgaWYgKGFyZy52YWwgaW5zdGFuY2VvZiBBcnJheSkge1xuICAgICAgICAgIGNvbnN0IGRhdGEgPSB7fTtcbiAgICAgICAgICBhcmcudmFsLmZvckVhY2goKGEpID0+IHtcbiAgICAgICAgICAgIGRhdGFbYS5rZXldID0gdGhpcy5wYXJzZUN2KHsgdHlwZTogYS50eXBlLCB2YWw6IGEudmFsIH0pO1xuICAgICAgICAgIH0pO1xuICAgICAgICAgIHJldHVybiB0dXBsZUNWKGRhdGEpO1xuICAgICAgICB9XG4gICAgICAgIHRocm93IG5ldyBJbnZhbGlkUGFyYW1ldGVyVmFsdWVFcnJvcigndHVwbGUgcmVxdWlyZSBBcnJheSB2YWwnKTtcbiAgICAgIGNhc2UgJ2NvbnRyYWN0UHJpbmNpcGFsJzpcbiAgICAgIGNhc2UgJ2NvbnRyYWN0LXByaW5jaXBhbCc6IHtcbiAgICAgICAgaWYgKHR5cGVvZiBhcmcudmFsICE9PSAnc3RyaW5nJykge1xuICAgICAgICAgIHRocm93IG5ldyBJbnZhbGlkUGFyYW1ldGVyVmFsdWVFcnJvcignY29udHJhY3QgcHJpbmNpcGFsIHJlcXVpcmVzIHN0cmluZyB2YWwnKTtcbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gY29udHJhY3RQcmluY2lwYWxDVkZyb21TdHJpbmcoYXJnLnZhbCk7XG4gICAgICB9XG4gICAgICBjYXNlICdzdGFuZGFyZFByaW5jaXBhbCc6XG4gICAgICBjYXNlICdzdGFuZGFyZC1wcmluY2lwYWwnOlxuICAgICAgICBpZiAodHlwZW9mIGFyZy52YWwgIT09ICdzdHJpbmcnKSB7XG4gICAgICAgICAgdGhyb3cgbmV3IEludmFsaWRQYXJhbWV0ZXJWYWx1ZUVycm9yKCdzdGFuZGFyZCBwcmluY2lwYWwgcmVxdWlyZXMgc3RyaW5nIHZhbCcpO1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiBzdGFuZGFyZFByaW5jaXBhbENWRnJvbVN0cmluZyhhcmcudmFsKTtcbiAgICAgIGNhc2UgJ2J1ZmZlcic6XG4gICAgICAgIGlmIChhcmcudmFsIGluc3RhbmNlb2YgQnVmZmVyKSB7XG4gICAgICAgICAgcmV0dXJuIGJ1ZmZlckNWKGFyZy52YWwpO1xuICAgICAgICB9XG4gICAgICAgIGNvbnN0IG52YWwgPSBOdW1iZXIoYXJnLnZhbCk7XG4gICAgICAgIGlmIChudmFsKSB7XG4gICAgICAgICAgcmV0dXJuIGJ1ZmZlckNWKEJ1ZmZlci5vZihudmFsKSk7XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIGJ1ZmZlckNWRnJvbVN0cmluZyhhcmcudmFsKTtcbiAgICAgIGRlZmF1bHQ6XG4gICAgICAgIHJldHVybiBlbmNvZGVDbGFyaXR5VmFsdWUoYXJnLnR5cGUgYXMgQ2xhcml0eUFiaVR5cGUsIGFyZy52YWwpO1xuICAgIH1cbiAgfVxufVxuIl19
@@ -4,6 +4,7 @@ export * from './transaction';
4
4
  export * from './transactionBuilderFactory';
5
5
  export * from './sbtcWithdrawBuilder';
6
6
  export * from './btcAddressUtils';
7
+ export * from './pox5Builder';
7
8
  export * from './iface';
8
9
  export * as Utils from './utils';
9
10
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/lib/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,cAAc,EAAE,eAAe,EAAE,MAAM,sBAAsB,CAAC;AACvE,cAAc,WAAW,CAAC;AAC1B,cAAc,eAAe,CAAC;AAC9B,cAAc,6BAA6B,CAAC;AAC5C,cAAc,uBAAuB,CAAC;AACtC,cAAc,mBAAmB,CAAC;AAClC,cAAc,SAAS,CAAC;AACxB,OAAO,KAAK,KAAK,MAAM,SAAS,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/lib/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,cAAc,EAAE,eAAe,EAAE,MAAM,sBAAsB,CAAC;AACvE,cAAc,WAAW,CAAC;AAC1B,cAAc,eAAe,CAAC;AAC9B,cAAc,6BAA6B,CAAC;AAC5C,cAAc,uBAAuB,CAAC;AACtC,cAAc,mBAAmB,CAAC;AAClC,cAAc,eAAe,CAAC;AAC9B,cAAc,SAAS,CAAC;AACxB,OAAO,KAAK,KAAK,MAAM,SAAS,CAAC"}
@@ -45,6 +45,7 @@ __exportStar(require("./transaction"), exports);
45
45
  __exportStar(require("./transactionBuilderFactory"), exports);
46
46
  __exportStar(require("./sbtcWithdrawBuilder"), exports);
47
47
  __exportStar(require("./btcAddressUtils"), exports);
48
+ __exportStar(require("./pox5Builder"), exports);
48
49
  __exportStar(require("./iface"), exports);
49
50
  exports.Utils = __importStar(require("./utils"));
50
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvbGliL2luZGV4LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQUFBLHFEQUF1RTtBQUE5RCw4R0FBQSxjQUFjLE9BQUE7QUFBRSwrR0FBQSxlQUFlLE9BQUE7QUFDeEMsNENBQTBCO0FBQzFCLGdEQUE4QjtBQUM5Qiw4REFBNEM7QUFDNUMsd0RBQXNDO0FBQ3RDLG9EQUFrQztBQUNsQywwQ0FBd0I7QUFDeEIsaURBQWlDIiwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0IHsgQWRkcmVzc1ZlcnNpb24sIEFkZHJlc3NIYXNoTW9kZSB9IGZyb20gJ0BzdGFja3MvdHJhbnNhY3Rpb25zJztcbmV4cG9ydCAqIGZyb20gJy4va2V5UGFpcic7XG5leHBvcnQgKiBmcm9tICcuL3RyYW5zYWN0aW9uJztcbmV4cG9ydCAqIGZyb20gJy4vdHJhbnNhY3Rpb25CdWlsZGVyRmFjdG9yeSc7XG5leHBvcnQgKiBmcm9tICcuL3NidGNXaXRoZHJhd0J1aWxkZXInO1xuZXhwb3J0ICogZnJvbSAnLi9idGNBZGRyZXNzVXRpbHMnO1xuZXhwb3J0ICogZnJvbSAnLi9pZmFjZSc7XG5leHBvcnQgKiBhcyBVdGlscyBmcm9tICcuL3V0aWxzJztcbiJdfQ==
51
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvbGliL2luZGV4LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQUFBLHFEQUF1RTtBQUE5RCw4R0FBQSxjQUFjLE9BQUE7QUFBRSwrR0FBQSxlQUFlLE9BQUE7QUFDeEMsNENBQTBCO0FBQzFCLGdEQUE4QjtBQUM5Qiw4REFBNEM7QUFDNUMsd0RBQXNDO0FBQ3RDLG9EQUFrQztBQUNsQyxnREFBOEI7QUFDOUIsMENBQXdCO0FBQ3hCLGlEQUFpQyIsInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCB7IEFkZHJlc3NWZXJzaW9uLCBBZGRyZXNzSGFzaE1vZGUgfSBmcm9tICdAc3RhY2tzL3RyYW5zYWN0aW9ucyc7XG5leHBvcnQgKiBmcm9tICcuL2tleVBhaXInO1xuZXhwb3J0ICogZnJvbSAnLi90cmFuc2FjdGlvbic7XG5leHBvcnQgKiBmcm9tICcuL3RyYW5zYWN0aW9uQnVpbGRlckZhY3RvcnknO1xuZXhwb3J0ICogZnJvbSAnLi9zYnRjV2l0aGRyYXdCdWlsZGVyJztcbmV4cG9ydCAqIGZyb20gJy4vYnRjQWRkcmVzc1V0aWxzJztcbmV4cG9ydCAqIGZyb20gJy4vcG94NUJ1aWxkZXInO1xuZXhwb3J0ICogZnJvbSAnLi9pZmFjZSc7XG5leHBvcnQgKiBhcyBVdGlscyBmcm9tICcuL3V0aWxzJztcbiJdfQ==
@@ -0,0 +1,78 @@
1
+ import { BaseCoin as CoinConfig } from '@bitgo-beta/statics';
2
+ import { ContractCallPayload } from '@stacks/transactions';
3
+ import { ContractBuilder } from './contractBuilder';
4
+ type Integer = bigint | number | string;
5
+ type ByteValue = Buffer | Uint8Array | string;
6
+ export interface Pox5LockupOutput {
7
+ height: number;
8
+ tx: ByteValue;
9
+ outputIndex: number;
10
+ header: ByteValue;
11
+ leafHashes: ByteValue[];
12
+ txCount: number;
13
+ txIndex: number;
14
+ amount: Integer;
15
+ unlockBurnHeight: number;
16
+ }
17
+ export type Pox5Lockup = {
18
+ kind: 'btc';
19
+ outputs: Pox5LockupOutput[];
20
+ unlockBytes: ByteValue;
21
+ } | {
22
+ kind: 'sbtc';
23
+ sbtcSats: Integer;
24
+ };
25
+ export interface Pox5RegisterForBondParams {
26
+ bondIndex: Integer;
27
+ signerManager: string;
28
+ amountUstx: Integer;
29
+ lockup: Pox5Lockup;
30
+ signerCalldata?: ByteValue;
31
+ }
32
+ export interface Pox5UpdateBondRegistrationParams {
33
+ signerManager: string;
34
+ oldSignerManager: string;
35
+ signerCalldata?: ByteValue;
36
+ }
37
+ export interface Pox5AnnounceL1EarlyExitParams {
38
+ staker: string;
39
+ oldSignerManager: string;
40
+ }
41
+ export interface Pox5StakeParams {
42
+ signerManager: string;
43
+ amountUstx: Integer;
44
+ numCycles: Integer;
45
+ startBurnHt: Integer;
46
+ signerCalldata?: ByteValue;
47
+ }
48
+ export interface Pox5StakeUpdateParams {
49
+ signerManager: string;
50
+ oldSignerManager: string;
51
+ cyclesToExtend?: Integer;
52
+ amountIncrease?: Integer;
53
+ signerCalldata?: ByteValue;
54
+ }
55
+ export interface Pox5ClaimRewardsParams {
56
+ bondIndices: Integer[];
57
+ rewardCycle: Integer;
58
+ }
59
+ export interface Pox5ClaimStakerRewardsParams {
60
+ staker: string;
61
+ rewardCycle: Integer;
62
+ bondIndex?: Integer;
63
+ }
64
+ export declare class Pox5Builder extends ContractBuilder {
65
+ constructor(coinConfig: Readonly<CoinConfig>);
66
+ static isValidContractCall(coinConfig: Readonly<CoinConfig>, payload: ContractCallPayload): boolean;
67
+ registerForBond(params: Pox5RegisterForBondParams): this;
68
+ updateBondRegistration(params: Pox5UpdateBondRegistrationParams): this;
69
+ announceL1EarlyExit(params: Pox5AnnounceL1EarlyExitParams): this;
70
+ stake(params: Pox5StakeParams): this;
71
+ stakeUpdate(params: Pox5StakeUpdateParams): this;
72
+ unstake(oldSignerManager: string): this;
73
+ calculateRewards(bondIndices: Integer[]): this;
74
+ claimRewards(params: Pox5ClaimRewardsParams): this;
75
+ claimStakerRewardsForSigner(params: Pox5ClaimStakerRewardsParams): this;
76
+ }
77
+ export {};
78
+ //# sourceMappingURL=pox5Builder.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"pox5Builder.d.ts","sourceRoot":"","sources":["../../../src/lib/pox5Builder.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,148 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.Pox5Builder = void 0;
4
+ const transactions_1 = require("@stacks/transactions");
5
+ const sdk_core_1 = require("@bitgo-beta/sdk-core");
6
+ const contractBuilder_1 = require("./contractBuilder");
7
+ const constants_1 = require("./constants");
8
+ const utils_1 = require("./utils");
9
+ function byteBuffer(value, field, expectedLength) {
10
+ // String inputs are hexadecimal, with an optional 0x prefix; use Buffer for text bytes.
11
+ let buffer;
12
+ if (Buffer.isBuffer(value)) {
13
+ buffer = value;
14
+ }
15
+ else if (value instanceof Uint8Array) {
16
+ buffer = Buffer.from(value);
17
+ }
18
+ else {
19
+ const hex = value.startsWith('0x') ? value.slice(2) : value;
20
+ if (hex.length % 2 !== 0 || !/^[0-9a-f]*$/i.test(hex)) {
21
+ throw new sdk_core_1.InvalidParameterValueError(`${field} must be an even-length hexadecimal string`);
22
+ }
23
+ buffer = Buffer.from(hex, 'hex');
24
+ }
25
+ if (expectedLength !== undefined && buffer.length !== expectedLength) {
26
+ throw new sdk_core_1.InvalidParameterValueError(`${field} must be exactly ${expectedLength} bytes`);
27
+ }
28
+ return buffer;
29
+ }
30
+ function optionalBuffer(value) {
31
+ return value === undefined ? (0, transactions_1.noneCV)() : (0, transactions_1.someCV)((0, transactions_1.bufferCV)(byteBuffer(value, 'signerCalldata')));
32
+ }
33
+ function lockupValue(lockup) {
34
+ if (lockup.kind === 'sbtc') {
35
+ // PoX-5 ABI represents an sBTC lockup as err uint and an L1 BTC lockup as ok tuple.
36
+ return (0, transactions_1.responseErrorCV)((0, transactions_1.uintCV)(lockup.sbtcSats));
37
+ }
38
+ if (lockup.outputs.length === 0 || lockup.outputs.length > 10) {
39
+ throw new sdk_core_1.InvalidParameterValueError('btc lockup outputs must contain between 1 and 10 outputs');
40
+ }
41
+ for (const [index, output] of lockup.outputs.entries()) {
42
+ if (output.leafHashes.length > 14) {
43
+ throw new sdk_core_1.InvalidParameterValueError(`btc lockup output ${index} has more than 14 merkle siblings`);
44
+ }
45
+ }
46
+ return (0, transactions_1.responseOkCV)((0, transactions_1.tupleCV)({
47
+ outputs: (0, transactions_1.listCV)(lockup.outputs.map((output) => (0, transactions_1.tupleCV)({
48
+ height: (0, transactions_1.uintCV)(output.height),
49
+ tx: (0, transactions_1.bufferCV)(byteBuffer(output.tx, 'tx')),
50
+ 'output-index': (0, transactions_1.uintCV)(output.outputIndex),
51
+ header: (0, transactions_1.bufferCV)(byteBuffer(output.header, 'header', 80)),
52
+ 'leaf-hashes': (0, transactions_1.listCV)(output.leafHashes.map((hash) => (0, transactions_1.bufferCV)(byteBuffer(hash, 'leafHash', 32)))),
53
+ 'tx-count': (0, transactions_1.uintCV)(output.txCount),
54
+ 'tx-index': (0, transactions_1.uintCV)(output.txIndex),
55
+ amount: (0, transactions_1.uintCV)(output.amount),
56
+ 'unlock-burn-height': (0, transactions_1.uintCV)(output.unlockBurnHeight),
57
+ }))),
58
+ 'staker-unlock-bytes': (0, transactions_1.bufferCV)(byteBuffer(lockup.unlockBytes, 'unlockBytes')),
59
+ }));
60
+ }
61
+ class Pox5Builder extends contractBuilder_1.ContractBuilder {
62
+ constructor(coinConfig) {
63
+ super(coinConfig);
64
+ this._contractAddress = coinConfig.network.stakingContractAddress;
65
+ this._contractName = constants_1.CONTRACT_NAME_POX5;
66
+ }
67
+ static isValidContractCall(coinConfig, payload) {
68
+ return (coinConfig.network.stakingContractAddress === (0, transactions_1.addressToString)(payload.contractAddress) &&
69
+ payload.contractName.content === constants_1.CONTRACT_NAME_POX5);
70
+ }
71
+ registerForBond(params) {
72
+ this.functionName(constants_1.FUNCTION_NAME_REGISTER_FOR_BOND);
73
+ this.functionArgs([
74
+ (0, transactions_1.uintCV)(params.bondIndex),
75
+ (0, utils_1.contractPrincipalCVFromString)(params.signerManager),
76
+ (0, transactions_1.uintCV)(params.amountUstx),
77
+ lockupValue(params.lockup),
78
+ optionalBuffer(params.signerCalldata),
79
+ ]);
80
+ return this;
81
+ }
82
+ updateBondRegistration(params) {
83
+ this.functionName(constants_1.FUNCTION_NAME_UPDATE_BOND_REGISTRATION);
84
+ this.functionArgs([
85
+ (0, utils_1.contractPrincipalCVFromString)(params.signerManager),
86
+ (0, utils_1.contractPrincipalCVFromString)(params.oldSignerManager),
87
+ optionalBuffer(params.signerCalldata),
88
+ ]);
89
+ return this;
90
+ }
91
+ announceL1EarlyExit(params) {
92
+ this.functionName(constants_1.FUNCTION_NAME_ANNOUNCE_L1_EARLY_EXIT);
93
+ this.functionArgs([
94
+ (0, utils_1.standardPrincipalCVFromString)(params.staker),
95
+ (0, utils_1.contractPrincipalCVFromString)(params.oldSignerManager),
96
+ ]);
97
+ return this;
98
+ }
99
+ stake(params) {
100
+ this.functionName(constants_1.FUNCTION_NAME_STAKE);
101
+ this.functionArgs([
102
+ (0, utils_1.contractPrincipalCVFromString)(params.signerManager),
103
+ (0, transactions_1.uintCV)(params.amountUstx),
104
+ (0, transactions_1.uintCV)(params.numCycles),
105
+ (0, transactions_1.uintCV)(params.startBurnHt),
106
+ optionalBuffer(params.signerCalldata),
107
+ ]);
108
+ return this;
109
+ }
110
+ stakeUpdate(params) {
111
+ this.functionName(constants_1.FUNCTION_NAME_STAKE_UPDATE);
112
+ this.functionArgs([
113
+ (0, utils_1.contractPrincipalCVFromString)(params.signerManager),
114
+ (0, utils_1.contractPrincipalCVFromString)(params.oldSignerManager),
115
+ // The PoX-5 ABI uses uint values; omitted values intentionally encode zero.
116
+ (0, transactions_1.uintCV)(params.cyclesToExtend ?? 0),
117
+ (0, transactions_1.uintCV)(params.amountIncrease ?? 0),
118
+ optionalBuffer(params.signerCalldata),
119
+ ]);
120
+ return this;
121
+ }
122
+ unstake(oldSignerManager) {
123
+ this.functionName(constants_1.FUNCTION_NAME_UNSTAKE);
124
+ this.functionArgs([(0, utils_1.contractPrincipalCVFromString)(oldSignerManager)]);
125
+ return this;
126
+ }
127
+ calculateRewards(bondIndices) {
128
+ this.functionName(constants_1.FUNCTION_NAME_CALCULATE_REWARDS);
129
+ this.functionArgs([(0, transactions_1.listCV)(bondIndices.map((bondIndex) => (0, transactions_1.uintCV)(bondIndex)))]);
130
+ return this;
131
+ }
132
+ claimRewards(params) {
133
+ this.functionName(constants_1.FUNCTION_NAME_CLAIM_REWARDS);
134
+ this.functionArgs([(0, transactions_1.listCV)(params.bondIndices.map((bondIndex) => (0, transactions_1.uintCV)(bondIndex))), (0, transactions_1.uintCV)(params.rewardCycle)]);
135
+ return this;
136
+ }
137
+ claimStakerRewardsForSigner(params) {
138
+ this.functionName(constants_1.FUNCTION_NAME_CLAIM_STAKER_REWARDS);
139
+ this.functionArgs([
140
+ (0, utils_1.standardPrincipalCVFromString)(params.staker),
141
+ (0, transactions_1.uintCV)(params.rewardCycle),
142
+ params.bondIndex === undefined ? (0, transactions_1.noneCV)() : (0, transactions_1.someCV)((0, transactions_1.uintCV)(params.bondIndex)),
143
+ ]);
144
+ return this;
145
+ }
146
+ }
147
+ exports.Pox5Builder = Pox5Builder;
148
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicG94NUJ1aWxkZXIuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvbGliL3BveDVCdWlsZGVyLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7OztBQUNBLHVEQVk4QjtBQUM5QixtREFBa0U7QUFDbEUsdURBQW9EO0FBQ3BELDJDQVdxQjtBQUNyQixtQ0FBdUY7QUEwRXZGLFNBQVMsVUFBVSxDQUFDLEtBQWdCLEVBQUUsS0FBYSxFQUFFLGNBQXVCO0lBQzFFLHdGQUF3RjtJQUN4RixJQUFJLE1BQWMsQ0FBQztJQUNuQixJQUFJLE1BQU0sQ0FBQyxRQUFRLENBQUMsS0FBSyxDQUFDLEVBQUUsQ0FBQztRQUMzQixNQUFNLEdBQUcsS0FBSyxDQUFDO0lBQ2pCLENBQUM7U0FBTSxJQUFJLEtBQUssWUFBWSxVQUFVLEVBQUUsQ0FBQztRQUN2QyxNQUFNLEdBQUcsTUFBTSxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQztJQUM5QixDQUFDO1NBQU0sQ0FBQztRQUNOLE1BQU0sR0FBRyxHQUFHLEtBQUssQ0FBQyxVQUFVLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDLEtBQUssQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEtBQUssQ0FBQztRQUM1RCxJQUFJLEdBQUcsQ0FBQyxNQUFNLEdBQUcsQ0FBQyxLQUFLLENBQUMsSUFBSSxDQUFDLGNBQWMsQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLEVBQUUsQ0FBQztZQUN0RCxNQUFNLElBQUkscUNBQTBCLENBQUMsR0FBRyxLQUFLLDRDQUE0QyxDQUFDLENBQUM7UUFDN0YsQ0FBQztRQUNELE1BQU0sR0FBRyxNQUFNLENBQUMsSUFBSSxDQUFDLEdBQUcsRUFBRSxLQUFLLENBQUMsQ0FBQztJQUNuQyxDQUFDO0lBQ0QsSUFBSSxjQUFjLEtBQUssU0FBUyxJQUFJLE1BQU0sQ0FBQyxNQUFNLEtBQUssY0FBYyxFQUFFLENBQUM7UUFDckUsTUFBTSxJQUFJLHFDQUEwQixDQUFDLEdBQUcsS0FBSyxvQkFBb0IsY0FBYyxRQUFRLENBQUMsQ0FBQztJQUMzRixDQUFDO0lBQ0QsT0FBTyxNQUFNLENBQUM7QUFDaEIsQ0FBQztBQUVELFNBQVMsY0FBYyxDQUFDLEtBQTRCO0lBQ2xELE9BQU8sS0FBSyxLQUFLLFNBQVMsQ0FBQyxDQUFDLENBQUMsSUFBQSxxQkFBTSxHQUFFLENBQUMsQ0FBQyxDQUFDLElBQUEscUJBQU0sRUFBQyxJQUFBLHVCQUFRLEVBQUMsVUFBVSxDQUFDLEtBQUssRUFBRSxnQkFBZ0IsQ0FBQyxDQUFDLENBQUMsQ0FBQztBQUNoRyxDQUFDO0FBRUQsU0FBUyxXQUFXLENBQUMsTUFBa0I7SUFDckMsSUFBSSxNQUFNLENBQUMsSUFBSSxLQUFLLE1BQU0sRUFBRSxDQUFDO1FBQzNCLG9GQUFvRjtRQUNwRixPQUFPLElBQUEsOEJBQWUsRUFBQyxJQUFBLHFCQUFNLEVBQUMsTUFBTSxDQUFDLFFBQVEsQ0FBQyxDQUFDLENBQUM7SUFDbEQsQ0FBQztJQUNELElBQUksTUFBTSxDQUFDLE9BQU8sQ0FBQyxNQUFNLEtBQUssQ0FBQyxJQUFJLE1BQU0sQ0FBQyxPQUFPLENBQUMsTUFBTSxHQUFHLEVBQUUsRUFBRSxDQUFDO1FBQzlELE1BQU0sSUFBSSxxQ0FBMEIsQ0FBQywwREFBMEQsQ0FBQyxDQUFDO0lBQ25HLENBQUM7SUFDRCxLQUFLLE1BQU0sQ0FBQyxLQUFLLEVBQUUsTUFBTSxDQUFDLElBQUksTUFBTSxDQUFDLE9BQU8sQ0FBQyxPQUFPLEVBQUUsRUFBRSxDQUFDO1FBQ3ZELElBQUksTUFBTSxDQUFDLFVBQVUsQ0FBQyxNQUFNLEdBQUcsRUFBRSxFQUFFLENBQUM7WUFDbEMsTUFBTSxJQUFJLHFDQUEwQixDQUFDLHFCQUFxQixLQUFLLG1DQUFtQyxDQUFDLENBQUM7UUFDdEcsQ0FBQztJQUNILENBQUM7SUFDRCxPQUFPLElBQUEsMkJBQVksRUFDakIsSUFBQSxzQkFBTyxFQUFDO1FBQ04sT0FBTyxFQUFFLElBQUEscUJBQU0sRUFDYixNQUFNLENBQUMsT0FBTyxDQUFDLEdBQUcsQ0FBQyxDQUFDLE1BQU0sRUFBRSxFQUFFLENBQzVCLElBQUEsc0JBQU8sRUFBQztZQUNOLE1BQU0sRUFBRSxJQUFBLHFCQUFNLEVBQUMsTUFBTSxDQUFDLE1BQU0sQ0FBQztZQUM3QixFQUFFLEVBQUUsSUFBQSx1QkFBUSxFQUFDLFVBQVUsQ0FBQyxNQUFNLENBQUMsRUFBRSxFQUFFLElBQUksQ0FBQyxDQUFDO1lBQ3pDLGNBQWMsRUFBRSxJQUFBLHFCQUFNLEVBQUMsTUFBTSxDQUFDLFdBQVcsQ0FBQztZQUMxQyxNQUFNLEVBQUUsSUFBQSx1QkFBUSxFQUFDLFVBQVUsQ0FBQyxNQUFNLENBQUMsTUFBTSxFQUFFLFFBQVEsRUFBRSxFQUFFLENBQUMsQ0FBQztZQUN6RCxhQUFhLEVBQUUsSUFBQSxxQkFBTSxFQUFDLE1BQU0sQ0FBQyxVQUFVLENBQUMsR0FBRyxDQUFDLENBQUMsSUFBSSxFQUFFLEVBQUUsQ0FBQyxJQUFBLHVCQUFRLEVBQUMsVUFBVSxDQUFDLElBQUksRUFBRSxVQUFVLEVBQUUsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDO1lBQ2xHLFVBQVUsRUFBRSxJQUFBLHFCQUFNLEVBQUMsTUFBTSxDQUFDLE9BQU8sQ0FBQztZQUNsQyxVQUFVLEVBQUUsSUFBQSxxQkFBTSxFQUFDLE1BQU0sQ0FBQyxPQUFPLENBQUM7WUFDbEMsTUFBTSxFQUFFLElBQUEscUJBQU0sRUFBQyxNQUFNLENBQUMsTUFBTSxDQUFDO1lBQzdCLG9CQUFvQixFQUFFLElBQUEscUJBQU0sRUFBQyxNQUFNLENBQUMsZ0JBQWdCLENBQUM7U0FDdEQsQ0FBQyxDQUNILENBQ0Y7UUFDRCxxQkFBcUIsRUFBRSxJQUFBLHVCQUFRLEVBQUMsVUFBVSxDQUFDLE1BQU0sQ0FBQyxXQUFXLEVBQUUsYUFBYSxDQUFDLENBQUM7S0FDL0UsQ0FBQyxDQUNILENBQUM7QUFDSixDQUFDO0FBRUQsTUFBYSxXQUFZLFNBQVEsaUNBQWU7SUFDOUMsWUFBWSxVQUFnQztRQUMxQyxLQUFLLENBQUMsVUFBVSxDQUFDLENBQUM7UUFDbEIsSUFBSSxDQUFDLGdCQUFnQixHQUFJLFVBQVUsQ0FBQyxPQUE4QixDQUFDLHNCQUFzQixDQUFDO1FBQzFGLElBQUksQ0FBQyxhQUFhLEdBQUcsOEJBQWtCLENBQUM7SUFDMUMsQ0FBQztJQUVNLE1BQU0sQ0FBQyxtQkFBbUIsQ0FBQyxVQUFnQyxFQUFFLE9BQTRCO1FBQzlGLE9BQU8sQ0FDSixVQUFVLENBQUMsT0FBOEIsQ0FBQyxzQkFBc0IsS0FBSyxJQUFBLDhCQUFlLEVBQUMsT0FBTyxDQUFDLGVBQWUsQ0FBQztZQUM5RyxPQUFPLENBQUMsWUFBWSxDQUFDLE9BQU8sS0FBSyw4QkFBa0IsQ0FDcEQsQ0FBQztJQUNKLENBQUM7SUFFRCxlQUFlLENBQUMsTUFBaUM7UUFDL0MsSUFBSSxDQUFDLFlBQVksQ0FBQywyQ0FBK0IsQ0FBQyxDQUFDO1FBQ25ELElBQUksQ0FBQyxZQUFZLENBQUM7WUFDaEIsSUFBQSxxQkFBTSxFQUFDLE1BQU0sQ0FBQyxTQUFTLENBQUM7WUFDeEIsSUFBQSxxQ0FBNkIsRUFBQyxNQUFNLENBQUMsYUFBYSxDQUFDO1lBQ25ELElBQUEscUJBQU0sRUFBQyxNQUFNLENBQUMsVUFBVSxDQUFDO1lBQ3pCLFdBQVcsQ0FBQyxNQUFNLENBQUMsTUFBTSxDQUFDO1lBQzFCLGNBQWMsQ0FBQyxNQUFNLENBQUMsY0FBYyxDQUFDO1NBQ3RDLENBQUMsQ0FBQztRQUNILE9BQU8sSUFBSSxDQUFDO0lBQ2QsQ0FBQztJQUVELHNCQUFzQixDQUFDLE1BQXdDO1FBQzdELElBQUksQ0FBQyxZQUFZLENBQUMsa0RBQXNDLENBQUMsQ0FBQztRQUMxRCxJQUFJLENBQUMsWUFBWSxDQUFDO1lBQ2hCLElBQUEscUNBQTZCLEVBQUMsTUFBTSxDQUFDLGFBQWEsQ0FBQztZQUNuRCxJQUFBLHFDQUE2QixFQUFDLE1BQU0sQ0FBQyxnQkFBZ0IsQ0FBQztZQUN0RCxjQUFjLENBQUMsTUFBTSxDQUFDLGNBQWMsQ0FBQztTQUN0QyxDQUFDLENBQUM7UUFDSCxPQUFPLElBQUksQ0FBQztJQUNkLENBQUM7SUFFRCxtQkFBbUIsQ0FBQyxNQUFxQztRQUN2RCxJQUFJLENBQUMsWUFBWSxDQUFDLGdEQUFvQyxDQUFDLENBQUM7UUFDeEQsSUFBSSxDQUFDLFlBQVksQ0FBQztZQUNoQixJQUFBLHFDQUE2QixFQUFDLE1BQU0sQ0FBQyxNQUFNLENBQUM7WUFDNUMsSUFBQSxxQ0FBNkIsRUFBQyxNQUFNLENBQUMsZ0JBQWdCLENBQUM7U0FDdkQsQ0FBQyxDQUFDO1FBQ0gsT0FBTyxJQUFJLENBQUM7SUFDZCxDQUFDO0lBRUQsS0FBSyxDQUFDLE1BQXVCO1FBQzNCLElBQUksQ0FBQyxZQUFZLENBQUMsK0JBQW1CLENBQUMsQ0FBQztRQUN2QyxJQUFJLENBQUMsWUFBWSxDQUFDO1lBQ2hCLElBQUEscUNBQTZCLEVBQUMsTUFBTSxDQUFDLGFBQWEsQ0FBQztZQUNuRCxJQUFBLHFCQUFNLEVBQUMsTUFBTSxDQUFDLFVBQVUsQ0FBQztZQUN6QixJQUFBLHFCQUFNLEVBQUMsTUFBTSxDQUFDLFNBQVMsQ0FBQztZQUN4QixJQUFBLHFCQUFNLEVBQUMsTUFBTSxDQUFDLFdBQVcsQ0FBQztZQUMxQixjQUFjLENBQUMsTUFBTSxDQUFDLGNBQWMsQ0FBQztTQUN0QyxDQUFDLENBQUM7UUFDSCxPQUFPLElBQUksQ0FBQztJQUNkLENBQUM7SUFFRCxXQUFXLENBQUMsTUFBNkI7UUFDdkMsSUFBSSxDQUFDLFlBQVksQ0FBQyxzQ0FBMEIsQ0FBQyxDQUFDO1FBQzlDLElBQUksQ0FBQyxZQUFZLENBQUM7WUFDaEIsSUFBQSxxQ0FBNkIsRUFBQyxNQUFNLENBQUMsYUFBYSxDQUFDO1lBQ25ELElBQUEscUNBQTZCLEVBQUMsTUFBTSxDQUFDLGdCQUFnQixDQUFDO1lBQ3RELDRFQUE0RTtZQUM1RSxJQUFBLHFCQUFNLEVBQUMsTUFBTSxDQUFDLGNBQWMsSUFBSSxDQUFDLENBQUM7WUFDbEMsSUFBQSxxQkFBTSxFQUFDLE1BQU0sQ0FBQyxjQUFjLElBQUksQ0FBQyxDQUFDO1lBQ2xDLGNBQWMsQ0FBQyxNQUFNLENBQUMsY0FBYyxDQUFDO1NBQ3RDLENBQUMsQ0FBQztRQUNILE9BQU8sSUFBSSxDQUFDO0lBQ2QsQ0FBQztJQUVELE9BQU8sQ0FBQyxnQkFBd0I7UUFDOUIsSUFBSSxDQUFDLFlBQVksQ0FBQyxpQ0FBcUIsQ0FBQyxDQUFDO1FBQ3pDLElBQUksQ0FBQyxZQUFZLENBQUMsQ0FBQyxJQUFBLHFDQUE2QixFQUFDLGdCQUFnQixDQUFDLENBQUMsQ0FBQyxDQUFDO1FBQ3JFLE9BQU8sSUFBSSxDQUFDO0lBQ2QsQ0FBQztJQUVELGdCQUFnQixDQUFDLFdBQXNCO1FBQ3JDLElBQUksQ0FBQyxZQUFZLENBQUMsMkNBQStCLENBQUMsQ0FBQztRQUNuRCxJQUFJLENBQUMsWUFBWSxDQUFDLENBQUMsSUFBQSxxQkFBTSxFQUFDLFdBQVcsQ0FBQyxHQUFHLENBQUMsQ0FBQyxTQUFTLEVBQUUsRUFBRSxDQUFDLElBQUEscUJBQU0sRUFBQyxTQUFTLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDO1FBQy9FLE9BQU8sSUFBSSxDQUFDO0lBQ2QsQ0FBQztJQUVELFlBQVksQ0FBQyxNQUE4QjtRQUN6QyxJQUFJLENBQUMsWUFBWSxDQUFDLHVDQUEyQixDQUFDLENBQUM7UUFDL0MsSUFBSSxDQUFDLFlBQVksQ0FBQyxDQUFDLElBQUEscUJBQU0sRUFBQyxNQUFNLENBQUMsV0FBVyxDQUFDLEdBQUcsQ0FBQyxDQUFDLFNBQVMsRUFBRSxFQUFFLENBQUMsSUFBQSxxQkFBTSxFQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUMsRUFBRSxJQUFBLHFCQUFNLEVBQUMsTUFBTSxDQUFDLFdBQVcsQ0FBQyxDQUFDLENBQUMsQ0FBQztRQUNsSCxPQUFPLElBQUksQ0FBQztJQUNkLENBQUM7SUFFRCwyQkFBMkIsQ0FBQyxNQUFvQztRQUM5RCxJQUFJLENBQUMsWUFBWSxDQUFDLDhDQUFrQyxDQUFDLENBQUM7UUFDdEQsSUFBSSxDQUFDLFlBQVksQ0FBQztZQUNoQixJQUFBLHFDQUE2QixFQUFDLE1BQU0sQ0FBQyxNQUFNLENBQUM7WUFDNUMsSUFBQSxxQkFBTSxFQUFDLE1BQU0sQ0FBQyxXQUFXLENBQUM7WUFDMUIsTUFBTSxDQUFDLFNBQVMsS0FBSyxTQUFTLENBQUMsQ0FBQyxDQUFDLElBQUEscUJBQU0sR0FBRSxDQUFDLENBQUMsQ0FBQyxJQUFBLHFCQUFNLEVBQUMsSUFBQSxxQkFBTSxFQUFDLE1BQU0sQ0FBQyxTQUFTLENBQUMsQ0FBQztTQUM3RSxDQUFDLENBQUM7UUFDSCxPQUFPLElBQUksQ0FBQztJQUNkLENBQUM7Q0FDRjtBQWpHRCxrQ0FpR0MiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBCYXNlQ29pbiBhcyBDb2luQ29uZmlnLCBTdGFja3NOZXR3b3JrIGFzIEJpdGdvU3RhY2tzTmV0d29yayB9IGZyb20gJ0BiaXRnby1iZXRhL3N0YXRpY3MnO1xuaW1wb3J0IHtcbiAgYnVmZmVyQ1YsXG4gIENvbnRyYWN0Q2FsbFBheWxvYWQsXG4gIENsYXJpdHlWYWx1ZSxcbiAgbGlzdENWLFxuICBub25lQ1YsXG4gIHJlc3BvbnNlRXJyb3JDVixcbiAgcmVzcG9uc2VPa0NWLFxuICBzb21lQ1YsXG4gIHR1cGxlQ1YsXG4gIHVpbnRDVixcbiAgYWRkcmVzc1RvU3RyaW5nLFxufSBmcm9tICdAc3RhY2tzL3RyYW5zYWN0aW9ucyc7XG5pbXBvcnQgeyBJbnZhbGlkUGFyYW1ldGVyVmFsdWVFcnJvciB9IGZyb20gJ0BiaXRnby1iZXRhL3Nkay1jb3JlJztcbmltcG9ydCB7IENvbnRyYWN0QnVpbGRlciB9IGZyb20gJy4vY29udHJhY3RCdWlsZGVyJztcbmltcG9ydCB7XG4gIENPTlRSQUNUX05BTUVfUE9YNSxcbiAgRlVOQ1RJT05fTkFNRV9BTk5PVU5DRV9MMV9FQVJMWV9FWElULFxuICBGVU5DVElPTl9OQU1FX0NBTENVTEFURV9SRVdBUkRTLFxuICBGVU5DVElPTl9OQU1FX0NMQUlNX1JFV0FSRFMsXG4gIEZVTkNUSU9OX05BTUVfQ0xBSU1fU1RBS0VSX1JFV0FSRFMsXG4gIEZVTkNUSU9OX05BTUVfUkVHSVNURVJfRk9SX0JPTkQsXG4gIEZVTkNUSU9OX05BTUVfU1RBS0UsXG4gIEZVTkNUSU9OX05BTUVfU1RBS0VfVVBEQVRFLFxuICBGVU5DVElPTl9OQU1FX1VOU1RBS0UsXG4gIEZVTkNUSU9OX05BTUVfVVBEQVRFX0JPTkRfUkVHSVNUUkFUSU9OLFxufSBmcm9tICcuL2NvbnN0YW50cyc7XG5pbXBvcnQgeyBjb250cmFjdFByaW5jaXBhbENWRnJvbVN0cmluZywgc3RhbmRhcmRQcmluY2lwYWxDVkZyb21TdHJpbmcgfSBmcm9tICcuL3V0aWxzJztcblxudHlwZSBJbnRlZ2VyID0gYmlnaW50IHwgbnVtYmVyIHwgc3RyaW5nO1xudHlwZSBCeXRlVmFsdWUgPSBCdWZmZXIgfCBVaW50OEFycmF5IHwgc3RyaW5nO1xuXG5leHBvcnQgaW50ZXJmYWNlIFBveDVMb2NrdXBPdXRwdXQge1xuICBoZWlnaHQ6IG51bWJlcjtcbiAgdHg6IEJ5dGVWYWx1ZTtcbiAgb3V0cHV0SW5kZXg6IG51bWJlcjtcbiAgaGVhZGVyOiBCeXRlVmFsdWU7XG4gIGxlYWZIYXNoZXM6IEJ5dGVWYWx1ZVtdO1xuICB0eENvdW50OiBudW1iZXI7XG4gIHR4SW5kZXg6IG51bWJlcjtcbiAgYW1vdW50OiBJbnRlZ2VyO1xuICB1bmxvY2tCdXJuSGVpZ2h0OiBudW1iZXI7XG59XG5cbmV4cG9ydCB0eXBlIFBveDVMb2NrdXAgPVxuICB8IHtcbiAgICAgIGtpbmQ6ICdidGMnO1xuICAgICAgb3V0cHV0czogUG94NUxvY2t1cE91dHB1dFtdO1xuICAgICAgdW5sb2NrQnl0ZXM6IEJ5dGVWYWx1ZTtcbiAgICB9XG4gIHwge1xuICAgICAga2luZDogJ3NidGMnO1xuICAgICAgc2J0Y1NhdHM6IEludGVnZXI7XG4gICAgfTtcblxuZXhwb3J0IGludGVyZmFjZSBQb3g1UmVnaXN0ZXJGb3JCb25kUGFyYW1zIHtcbiAgYm9uZEluZGV4OiBJbnRlZ2VyO1xuICBzaWduZXJNYW5hZ2VyOiBzdHJpbmc7XG4gIGFtb3VudFVzdHg6IEludGVnZXI7XG4gIGxvY2t1cDogUG94NUxvY2t1cDtcbiAgc2lnbmVyQ2FsbGRhdGE/OiBCeXRlVmFsdWU7XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgUG94NVVwZGF0ZUJvbmRSZWdpc3RyYXRpb25QYXJhbXMge1xuICBzaWduZXJNYW5hZ2VyOiBzdHJpbmc7XG4gIG9sZFNpZ25lck1hbmFnZXI6IHN0cmluZztcbiAgc2lnbmVyQ2FsbGRhdGE/OiBCeXRlVmFsdWU7XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgUG94NUFubm91bmNlTDFFYXJseUV4aXRQYXJhbXMge1xuICBzdGFrZXI6IHN0cmluZztcbiAgb2xkU2lnbmVyTWFuYWdlcjogc3RyaW5nO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIFBveDVTdGFrZVBhcmFtcyB7XG4gIHNpZ25lck1hbmFnZXI6IHN0cmluZztcbiAgYW1vdW50VXN0eDogSW50ZWdlcjtcbiAgbnVtQ3ljbGVzOiBJbnRlZ2VyO1xuICBzdGFydEJ1cm5IdDogSW50ZWdlcjtcbiAgc2lnbmVyQ2FsbGRhdGE/OiBCeXRlVmFsdWU7XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgUG94NVN0YWtlVXBkYXRlUGFyYW1zIHtcbiAgc2lnbmVyTWFuYWdlcjogc3RyaW5nO1xuICBvbGRTaWduZXJNYW5hZ2VyOiBzdHJpbmc7XG4gIGN5Y2xlc1RvRXh0ZW5kPzogSW50ZWdlcjtcbiAgYW1vdW50SW5jcmVhc2U/OiBJbnRlZ2VyO1xuICBzaWduZXJDYWxsZGF0YT86IEJ5dGVWYWx1ZTtcbn1cblxuZXhwb3J0IGludGVyZmFjZSBQb3g1Q2xhaW1SZXdhcmRzUGFyYW1zIHtcbiAgYm9uZEluZGljZXM6IEludGVnZXJbXTtcbiAgcmV3YXJkQ3ljbGU6IEludGVnZXI7XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgUG94NUNsYWltU3Rha2VyUmV3YXJkc1BhcmFtcyB7XG4gIHN0YWtlcjogc3RyaW5nO1xuICByZXdhcmRDeWNsZTogSW50ZWdlcjtcbiAgYm9uZEluZGV4PzogSW50ZWdlcjtcbn1cblxuZnVuY3Rpb24gYnl0ZUJ1ZmZlcih2YWx1ZTogQnl0ZVZhbHVlLCBmaWVsZDogc3RyaW5nLCBleHBlY3RlZExlbmd0aD86IG51bWJlcik6IEJ1ZmZlciB7XG4gIC8vIFN0cmluZyBpbnB1dHMgYXJlIGhleGFkZWNpbWFsLCB3aXRoIGFuIG9wdGlvbmFsIDB4IHByZWZpeDsgdXNlIEJ1ZmZlciBmb3IgdGV4dCBieXRlcy5cbiAgbGV0IGJ1ZmZlcjogQnVmZmVyO1xuICBpZiAoQnVmZmVyLmlzQnVmZmVyKHZhbHVlKSkge1xuICAgIGJ1ZmZlciA9IHZhbHVlO1xuICB9IGVsc2UgaWYgKHZhbHVlIGluc3RhbmNlb2YgVWludDhBcnJheSkge1xuICAgIGJ1ZmZlciA9IEJ1ZmZlci5mcm9tKHZhbHVlKTtcbiAgfSBlbHNlIHtcbiAgICBjb25zdCBoZXggPSB2YWx1ZS5zdGFydHNXaXRoKCcweCcpID8gdmFsdWUuc2xpY2UoMikgOiB2YWx1ZTtcbiAgICBpZiAoaGV4Lmxlbmd0aCAlIDIgIT09IDAgfHwgIS9eWzAtOWEtZl0qJC9pLnRlc3QoaGV4KSkge1xuICAgICAgdGhyb3cgbmV3IEludmFsaWRQYXJhbWV0ZXJWYWx1ZUVycm9yKGAke2ZpZWxkfSBtdXN0IGJlIGFuIGV2ZW4tbGVuZ3RoIGhleGFkZWNpbWFsIHN0cmluZ2ApO1xuICAgIH1cbiAgICBidWZmZXIgPSBCdWZmZXIuZnJvbShoZXgsICdoZXgnKTtcbiAgfVxuICBpZiAoZXhwZWN0ZWRMZW5ndGggIT09IHVuZGVmaW5lZCAmJiBidWZmZXIubGVuZ3RoICE9PSBleHBlY3RlZExlbmd0aCkge1xuICAgIHRocm93IG5ldyBJbnZhbGlkUGFyYW1ldGVyVmFsdWVFcnJvcihgJHtmaWVsZH0gbXVzdCBiZSBleGFjdGx5ICR7ZXhwZWN0ZWRMZW5ndGh9IGJ5dGVzYCk7XG4gIH1cbiAgcmV0dXJuIGJ1ZmZlcjtcbn1cblxuZnVuY3Rpb24gb3B0aW9uYWxCdWZmZXIodmFsdWU6IEJ5dGVWYWx1ZSB8IHVuZGVmaW5lZCk6IENsYXJpdHlWYWx1ZSB7XG4gIHJldHVybiB2YWx1ZSA9PT0gdW5kZWZpbmVkID8gbm9uZUNWKCkgOiBzb21lQ1YoYnVmZmVyQ1YoYnl0ZUJ1ZmZlcih2YWx1ZSwgJ3NpZ25lckNhbGxkYXRhJykpKTtcbn1cblxuZnVuY3Rpb24gbG9ja3VwVmFsdWUobG9ja3VwOiBQb3g1TG9ja3VwKTogQ2xhcml0eVZhbHVlIHtcbiAgaWYgKGxvY2t1cC5raW5kID09PSAnc2J0YycpIHtcbiAgICAvLyBQb1gtNSBBQkkgcmVwcmVzZW50cyBhbiBzQlRDIGxvY2t1cCBhcyBlcnIgdWludCBhbmQgYW4gTDEgQlRDIGxvY2t1cCBhcyBvayB0dXBsZS5cbiAgICByZXR1cm4gcmVzcG9uc2VFcnJvckNWKHVpbnRDVihsb2NrdXAuc2J0Y1NhdHMpKTtcbiAgfVxuICBpZiAobG9ja3VwLm91dHB1dHMubGVuZ3RoID09PSAwIHx8IGxvY2t1cC5vdXRwdXRzLmxlbmd0aCA+IDEwKSB7XG4gICAgdGhyb3cgbmV3IEludmFsaWRQYXJhbWV0ZXJWYWx1ZUVycm9yKCdidGMgbG9ja3VwIG91dHB1dHMgbXVzdCBjb250YWluIGJldHdlZW4gMSBhbmQgMTAgb3V0cHV0cycpO1xuICB9XG4gIGZvciAoY29uc3QgW2luZGV4LCBvdXRwdXRdIG9mIGxvY2t1cC5vdXRwdXRzLmVudHJpZXMoKSkge1xuICAgIGlmIChvdXRwdXQubGVhZkhhc2hlcy5sZW5ndGggPiAxNCkge1xuICAgICAgdGhyb3cgbmV3IEludmFsaWRQYXJhbWV0ZXJWYWx1ZUVycm9yKGBidGMgbG9ja3VwIG91dHB1dCAke2luZGV4fSBoYXMgbW9yZSB0aGFuIDE0IG1lcmtsZSBzaWJsaW5nc2ApO1xuICAgIH1cbiAgfVxuICByZXR1cm4gcmVzcG9uc2VPa0NWKFxuICAgIHR1cGxlQ1Yoe1xuICAgICAgb3V0cHV0czogbGlzdENWKFxuICAgICAgICBsb2NrdXAub3V0cHV0cy5tYXAoKG91dHB1dCkgPT5cbiAgICAgICAgICB0dXBsZUNWKHtcbiAgICAgICAgICAgIGhlaWdodDogdWludENWKG91dHB1dC5oZWlnaHQpLFxuICAgICAgICAgICAgdHg6IGJ1ZmZlckNWKGJ5dGVCdWZmZXIob3V0cHV0LnR4LCAndHgnKSksXG4gICAgICAgICAgICAnb3V0cHV0LWluZGV4JzogdWludENWKG91dHB1dC5vdXRwdXRJbmRleCksXG4gICAgICAgICAgICBoZWFkZXI6IGJ1ZmZlckNWKGJ5dGVCdWZmZXIob3V0cHV0LmhlYWRlciwgJ2hlYWRlcicsIDgwKSksXG4gICAgICAgICAgICAnbGVhZi1oYXNoZXMnOiBsaXN0Q1Yob3V0cHV0LmxlYWZIYXNoZXMubWFwKChoYXNoKSA9PiBidWZmZXJDVihieXRlQnVmZmVyKGhhc2gsICdsZWFmSGFzaCcsIDMyKSkpKSxcbiAgICAgICAgICAgICd0eC1jb3VudCc6IHVpbnRDVihvdXRwdXQudHhDb3VudCksXG4gICAgICAgICAgICAndHgtaW5kZXgnOiB1aW50Q1Yob3V0cHV0LnR4SW5kZXgpLFxuICAgICAgICAgICAgYW1vdW50OiB1aW50Q1Yob3V0cHV0LmFtb3VudCksXG4gICAgICAgICAgICAndW5sb2NrLWJ1cm4taGVpZ2h0JzogdWludENWKG91dHB1dC51bmxvY2tCdXJuSGVpZ2h0KSxcbiAgICAgICAgICB9KVxuICAgICAgICApXG4gICAgICApLFxuICAgICAgJ3N0YWtlci11bmxvY2stYnl0ZXMnOiBidWZmZXJDVihieXRlQnVmZmVyKGxvY2t1cC51bmxvY2tCeXRlcywgJ3VubG9ja0J5dGVzJykpLFxuICAgIH0pXG4gICk7XG59XG5cbmV4cG9ydCBjbGFzcyBQb3g1QnVpbGRlciBleHRlbmRzIENvbnRyYWN0QnVpbGRlciB7XG4gIGNvbnN0cnVjdG9yKGNvaW5Db25maWc6IFJlYWRvbmx5PENvaW5Db25maWc+KSB7XG4gICAgc3VwZXIoY29pbkNvbmZpZyk7XG4gICAgdGhpcy5fY29udHJhY3RBZGRyZXNzID0gKGNvaW5Db25maWcubmV0d29yayBhcyBCaXRnb1N0YWNrc05ldHdvcmspLnN0YWtpbmdDb250cmFjdEFkZHJlc3M7XG4gICAgdGhpcy5fY29udHJhY3ROYW1lID0gQ09OVFJBQ1RfTkFNRV9QT1g1O1xuICB9XG5cbiAgcHVibGljIHN0YXRpYyBpc1ZhbGlkQ29udHJhY3RDYWxsKGNvaW5Db25maWc6IFJlYWRvbmx5PENvaW5Db25maWc+LCBwYXlsb2FkOiBDb250cmFjdENhbGxQYXlsb2FkKTogYm9vbGVhbiB7XG4gICAgcmV0dXJuIChcbiAgICAgIChjb2luQ29uZmlnLm5ldHdvcmsgYXMgQml0Z29TdGFja3NOZXR3b3JrKS5zdGFraW5nQ29udHJhY3RBZGRyZXNzID09PSBhZGRyZXNzVG9TdHJpbmcocGF5bG9hZC5jb250cmFjdEFkZHJlc3MpICYmXG4gICAgICBwYXlsb2FkLmNvbnRyYWN0TmFtZS5jb250ZW50ID09PSBDT05UUkFDVF9OQU1FX1BPWDVcbiAgICApO1xuICB9XG5cbiAgcmVnaXN0ZXJGb3JCb25kKHBhcmFtczogUG94NVJlZ2lzdGVyRm9yQm9uZFBhcmFtcyk6IHRoaXMge1xuICAgIHRoaXMuZnVuY3Rpb25OYW1lKEZVTkNUSU9OX05BTUVfUkVHSVNURVJfRk9SX0JPTkQpO1xuICAgIHRoaXMuZnVuY3Rpb25BcmdzKFtcbiAgICAgIHVpbnRDVihwYXJhbXMuYm9uZEluZGV4KSxcbiAgICAgIGNvbnRyYWN0UHJpbmNpcGFsQ1ZGcm9tU3RyaW5nKHBhcmFtcy5zaWduZXJNYW5hZ2VyKSxcbiAgICAgIHVpbnRDVihwYXJhbXMuYW1vdW50VXN0eCksXG4gICAgICBsb2NrdXBWYWx1ZShwYXJhbXMubG9ja3VwKSxcbiAgICAgIG9wdGlvbmFsQnVmZmVyKHBhcmFtcy5zaWduZXJDYWxsZGF0YSksXG4gICAgXSk7XG4gICAgcmV0dXJuIHRoaXM7XG4gIH1cblxuICB1cGRhdGVCb25kUmVnaXN0cmF0aW9uKHBhcmFtczogUG94NVVwZGF0ZUJvbmRSZWdpc3RyYXRpb25QYXJhbXMpOiB0aGlzIHtcbiAgICB0aGlzLmZ1bmN0aW9uTmFtZShGVU5DVElPTl9OQU1FX1VQREFURV9CT05EX1JFR0lTVFJBVElPTik7XG4gICAgdGhpcy5mdW5jdGlvbkFyZ3MoW1xuICAgICAgY29udHJhY3RQcmluY2lwYWxDVkZyb21TdHJpbmcocGFyYW1zLnNpZ25lck1hbmFnZXIpLFxuICAgICAgY29udHJhY3RQcmluY2lwYWxDVkZyb21TdHJpbmcocGFyYW1zLm9sZFNpZ25lck1hbmFnZXIpLFxuICAgICAgb3B0aW9uYWxCdWZmZXIocGFyYW1zLnNpZ25lckNhbGxkYXRhKSxcbiAgICBdKTtcbiAgICByZXR1cm4gdGhpcztcbiAgfVxuXG4gIGFubm91bmNlTDFFYXJseUV4aXQocGFyYW1zOiBQb3g1QW5ub3VuY2VMMUVhcmx5RXhpdFBhcmFtcyk6IHRoaXMge1xuICAgIHRoaXMuZnVuY3Rpb25OYW1lKEZVTkNUSU9OX05BTUVfQU5OT1VOQ0VfTDFfRUFSTFlfRVhJVCk7XG4gICAgdGhpcy5mdW5jdGlvbkFyZ3MoW1xuICAgICAgc3RhbmRhcmRQcmluY2lwYWxDVkZyb21TdHJpbmcocGFyYW1zLnN0YWtlciksXG4gICAgICBjb250cmFjdFByaW5jaXBhbENWRnJvbVN0cmluZyhwYXJhbXMub2xkU2lnbmVyTWFuYWdlciksXG4gICAgXSk7XG4gICAgcmV0dXJuIHRoaXM7XG4gIH1cblxuICBzdGFrZShwYXJhbXM6IFBveDVTdGFrZVBhcmFtcyk6IHRoaXMge1xuICAgIHRoaXMuZnVuY3Rpb25OYW1lKEZVTkNUSU9OX05BTUVfU1RBS0UpO1xuICAgIHRoaXMuZnVuY3Rpb25BcmdzKFtcbiAgICAgIGNvbnRyYWN0UHJpbmNpcGFsQ1ZGcm9tU3RyaW5nKHBhcmFtcy5zaWduZXJNYW5hZ2VyKSxcbiAgICAgIHVpbnRDVihwYXJhbXMuYW1vdW50VXN0eCksXG4gICAgICB1aW50Q1YocGFyYW1zLm51bUN5Y2xlcyksXG4gICAgICB1aW50Q1YocGFyYW1zLnN0YXJ0QnVybkh0KSxcbiAgICAgIG9wdGlvbmFsQnVmZmVyKHBhcmFtcy5zaWduZXJDYWxsZGF0YSksXG4gICAgXSk7XG4gICAgcmV0dXJuIHRoaXM7XG4gIH1cblxuICBzdGFrZVVwZGF0ZShwYXJhbXM6IFBveDVTdGFrZVVwZGF0ZVBhcmFtcyk6IHRoaXMge1xuICAgIHRoaXMuZnVuY3Rpb25OYW1lKEZVTkNUSU9OX05BTUVfU1RBS0VfVVBEQVRFKTtcbiAgICB0aGlzLmZ1bmN0aW9uQXJncyhbXG4gICAgICBjb250cmFjdFByaW5jaXBhbENWRnJvbVN0cmluZyhwYXJhbXMuc2lnbmVyTWFuYWdlciksXG4gICAgICBjb250cmFjdFByaW5jaXBhbENWRnJvbVN0cmluZyhwYXJhbXMub2xkU2lnbmVyTWFuYWdlciksXG4gICAgICAvLyBUaGUgUG9YLTUgQUJJIHVzZXMgdWludCB2YWx1ZXM7IG9taXR0ZWQgdmFsdWVzIGludGVudGlvbmFsbHkgZW5jb2RlIHplcm8uXG4gICAgICB1aW50Q1YocGFyYW1zLmN5Y2xlc1RvRXh0ZW5kID8/IDApLFxuICAgICAgdWludENWKHBhcmFtcy5hbW91bnRJbmNyZWFzZSA/PyAwKSxcbiAgICAgIG9wdGlvbmFsQnVmZmVyKHBhcmFtcy5zaWduZXJDYWxsZGF0YSksXG4gICAgXSk7XG4gICAgcmV0dXJuIHRoaXM7XG4gIH1cblxuICB1bnN0YWtlKG9sZFNpZ25lck1hbmFnZXI6IHN0cmluZyk6IHRoaXMge1xuICAgIHRoaXMuZnVuY3Rpb25OYW1lKEZVTkNUSU9OX05BTUVfVU5TVEFLRSk7XG4gICAgdGhpcy5mdW5jdGlvbkFyZ3MoW2NvbnRyYWN0UHJpbmNpcGFsQ1ZGcm9tU3RyaW5nKG9sZFNpZ25lck1hbmFnZXIpXSk7XG4gICAgcmV0dXJuIHRoaXM7XG4gIH1cblxuICBjYWxjdWxhdGVSZXdhcmRzKGJvbmRJbmRpY2VzOiBJbnRlZ2VyW10pOiB0aGlzIHtcbiAgICB0aGlzLmZ1bmN0aW9uTmFtZShGVU5DVElPTl9OQU1FX0NBTENVTEFURV9SRVdBUkRTKTtcbiAgICB0aGlzLmZ1bmN0aW9uQXJncyhbbGlzdENWKGJvbmRJbmRpY2VzLm1hcCgoYm9uZEluZGV4KSA9PiB1aW50Q1YoYm9uZEluZGV4KSkpXSk7XG4gICAgcmV0dXJuIHRoaXM7XG4gIH1cblxuICBjbGFpbVJld2FyZHMocGFyYW1zOiBQb3g1Q2xhaW1SZXdhcmRzUGFyYW1zKTogdGhpcyB7XG4gICAgdGhpcy5mdW5jdGlvbk5hbWUoRlVOQ1RJT05fTkFNRV9DTEFJTV9SRVdBUkRTKTtcbiAgICB0aGlzLmZ1bmN0aW9uQXJncyhbbGlzdENWKHBhcmFtcy5ib25kSW5kaWNlcy5tYXAoKGJvbmRJbmRleCkgPT4gdWludENWKGJvbmRJbmRleCkpKSwgdWludENWKHBhcmFtcy5yZXdhcmRDeWNsZSldKTtcbiAgICByZXR1cm4gdGhpcztcbiAgfVxuXG4gIGNsYWltU3Rha2VyUmV3YXJkc0ZvclNpZ25lcihwYXJhbXM6IFBveDVDbGFpbVN0YWtlclJld2FyZHNQYXJhbXMpOiB0aGlzIHtcbiAgICB0aGlzLmZ1bmN0aW9uTmFtZShGVU5DVElPTl9OQU1FX0NMQUlNX1NUQUtFUl9SRVdBUkRTKTtcbiAgICB0aGlzLmZ1bmN0aW9uQXJncyhbXG4gICAgICBzdGFuZGFyZFByaW5jaXBhbENWRnJvbVN0cmluZyhwYXJhbXMuc3Rha2VyKSxcbiAgICAgIHVpbnRDVihwYXJhbXMucmV3YXJkQ3ljbGUpLFxuICAgICAgcGFyYW1zLmJvbmRJbmRleCA9PT0gdW5kZWZpbmVkID8gbm9uZUNWKCkgOiBzb21lQ1YodWludENWKHBhcmFtcy5ib25kSW5kZXgpKSxcbiAgICBdKTtcbiAgICByZXR1cm4gdGhpcztcbiAgfVxufVxuIl19
@@ -7,6 +7,7 @@ import { ContractBuilder } from './contractBuilder';
7
7
  import { SendmanyBuilder } from './sendmanyBuilder';
8
8
  import { SbtcWithdrawBuilder } from './sbtcWithdrawBuilder';
9
9
  import { FungibleTokenTransferBuilder } from './fungibleTokenTransferBuilder';
10
+ import { Pox5Builder } from './pox5Builder';
10
11
  export declare class TransactionBuilderFactory extends BaseTransactionBuilderFactory {
11
12
  constructor(_coinConfig: Readonly<CoinConfig>);
12
13
  /** @inheritdoc */
@@ -20,6 +21,7 @@ export declare class TransactionBuilderFactory extends BaseTransactionBuilderFac
20
21
  getSendmanyBuilder(tx?: Transaction): SendmanyBuilder;
21
22
  getSbtcWithdrawBuilder(tx?: Transaction): SbtcWithdrawBuilder;
22
23
  getFungibleTokenTransferBuilder(tx?: Transaction): FungibleTokenTransferBuilder;
24
+ getPox5Builder(tx?: Transaction): Pox5Builder;
23
25
  /**
24
26
  * Initialize the builder with the given transaction
25
27
  *
@@ -1 +1 @@
1
- {"version":3,"file":"transactionBuilderFactory.d.ts","sourceRoot":"","sources":["../../../src/lib/transactionBuilderFactory.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,IAAI,UAAU,EAAE,MAAM,qBAAqB,CAAC;AAE7D,OAAO,EACL,6BAA6B,EAI9B,MAAM,sBAAsB,CAAC;AAC9B,OAAO,EAAE,eAAe,EAAE,MAAM,mBAAmB,CAAC;AACpD,OAAO,EAAE,kBAAkB,EAAE,MAAM,sBAAsB,CAAC;AAC1D,OAAO,EAAE,WAAW,EAAE,MAAM,eAAe,CAAC;AAC5C,OAAO,EAAE,eAAe,EAAE,MAAM,mBAAmB,CAAC;AAEpD,OAAO,EAAE,eAAe,EAAE,MAAM,mBAAmB,CAAC;AACpD,OAAO,EAAE,mBAAmB,EAAE,MAAM,uBAAuB,CAAC;AAC5D,OAAO,EAAE,4BAA4B,EAAE,MAAM,gCAAgC,CAAC;AAE9E,qBAAa,yBAA0B,SAAQ,6BAA6B;gBAC9D,WAAW,EAAE,QAAQ,CAAC,UAAU,CAAC;IAI7C,kBAAkB;IAClB,IAAI,CAAC,GAAG,EAAE,MAAM,GAAG,kBAAkB;IA2BrC,OAAO,CAAC,gBAAgB;IASxB,kBAAkB;IAClB,8BAA8B,CAAC,EAAE,CAAC,EAAE,WAAW,GAAG,IAAI;IAItD,kBAAkB;IAClB,kBAAkB,CAAC,EAAE,CAAC,EAAE,WAAW,GAAG,eAAe;IAIrD,kBAAkB,CAAC,EAAE,CAAC,EAAE,WAAW,GAAG,eAAe;IAIrD,kBAAkB,CAAC,EAAE,CAAC,EAAE,WAAW,GAAG,eAAe;IAIrD,sBAAsB,CAAC,EAAE,CAAC,EAAE,WAAW,GAAG,mBAAmB;IAI7D,+BAA+B,CAAC,EAAE,CAAC,EAAE,WAAW,GAAG,4BAA4B;IAI/E;;;;;;OAMG;IACH,OAAO,CAAC,MAAM,CAAC,iBAAiB;IAOhC,kBAAkB;IAClB,sBAAsB,CAAC,cAAc,EAAE,OAAO,GAAG,IAAI;CAQtD"}
1
+ {"version":3,"file":"transactionBuilderFactory.d.ts","sourceRoot":"","sources":["../../../src/lib/transactionBuilderFactory.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,IAAI,UAAU,EAAE,MAAM,qBAAqB,CAAC;AAE7D,OAAO,EACL,6BAA6B,EAI9B,MAAM,sBAAsB,CAAC;AAC9B,OAAO,EAAE,eAAe,EAAE,MAAM,mBAAmB,CAAC;AACpD,OAAO,EAAE,kBAAkB,EAAE,MAAM,sBAAsB,CAAC;AAC1D,OAAO,EAAE,WAAW,EAAE,MAAM,eAAe,CAAC;AAC5C,OAAO,EAAE,eAAe,EAAE,MAAM,mBAAmB,CAAC;AAEpD,OAAO,EAAE,eAAe,EAAE,MAAM,mBAAmB,CAAC;AACpD,OAAO,EAAE,mBAAmB,EAAE,MAAM,uBAAuB,CAAC;AAC5D,OAAO,EAAE,4BAA4B,EAAE,MAAM,gCAAgC,CAAC;AAC9E,OAAO,EAAE,WAAW,EAAE,MAAM,eAAe,CAAC;AAE5C,qBAAa,yBAA0B,SAAQ,6BAA6B;gBAC9D,WAAW,EAAE,QAAQ,CAAC,UAAU,CAAC;IAI7C,kBAAkB;IAClB,IAAI,CAAC,GAAG,EAAE,MAAM,GAAG,kBAAkB;IA8BrC,OAAO,CAAC,gBAAgB;IASxB,kBAAkB;IAClB,8BAA8B,CAAC,EAAE,CAAC,EAAE,WAAW,GAAG,IAAI;IAItD,kBAAkB;IAClB,kBAAkB,CAAC,EAAE,CAAC,EAAE,WAAW,GAAG,eAAe;IAIrD,kBAAkB,CAAC,EAAE,CAAC,EAAE,WAAW,GAAG,eAAe;IAIrD,kBAAkB,CAAC,EAAE,CAAC,EAAE,WAAW,GAAG,eAAe;IAIrD,sBAAsB,CAAC,EAAE,CAAC,EAAE,WAAW,GAAG,mBAAmB;IAI7D,+BAA+B,CAAC,EAAE,CAAC,EAAE,WAAW,GAAG,4BAA4B;IAI/E,cAAc,CAAC,EAAE,CAAC,EAAE,WAAW,GAAG,WAAW;IAI7C;;;;;;OAMG;IACH,OAAO,CAAC,MAAM,CAAC,iBAAiB;IAOhC,kBAAkB;IAClB,sBAAsB,CAAC,cAAc,EAAE,OAAO,GAAG,IAAI;CAQtD"}
@@ -10,6 +10,7 @@ const _1 = require(".");
10
10
  const sendmanyBuilder_1 = require("./sendmanyBuilder");
11
11
  const sbtcWithdrawBuilder_1 = require("./sbtcWithdrawBuilder");
12
12
  const fungibleTokenTransferBuilder_1 = require("./fungibleTokenTransferBuilder");
13
+ const pox5Builder_1 = require("./pox5Builder");
13
14
  class TransactionBuilderFactory extends sdk_core_1.BaseTransactionBuilderFactory {
14
15
  constructor(_coinConfig) {
15
16
  super(_coinConfig);
@@ -32,6 +33,9 @@ class TransactionBuilderFactory extends sdk_core_1.BaseTransactionBuilderFactory
32
33
  if (fungibleTokenTransferBuilder_1.FungibleTokenTransferBuilder.isFungibleTokenTransferContractCall(tx.stxTransaction.payload)) {
33
34
  return this.getFungibleTokenTransferBuilder(tx);
34
35
  }
36
+ if (pox5Builder_1.Pox5Builder.isValidContractCall(this._coinConfig, tx.stxTransaction.payload)) {
37
+ return this.getPox5Builder(tx);
38
+ }
35
39
  return this.getContractBuilder(tx);
36
40
  default:
37
41
  throw new sdk_core_1.InvalidTransactionError('Invalid transaction');
@@ -68,6 +72,9 @@ class TransactionBuilderFactory extends sdk_core_1.BaseTransactionBuilderFactory
68
72
  getFungibleTokenTransferBuilder(tx) {
69
73
  return TransactionBuilderFactory.initializeBuilder(new fungibleTokenTransferBuilder_1.FungibleTokenTransferBuilder(this._coinConfig), tx);
70
74
  }
75
+ getPox5Builder(tx) {
76
+ return TransactionBuilderFactory.initializeBuilder(new pox5Builder_1.Pox5Builder(this._coinConfig), tx);
77
+ }
71
78
  /**
72
79
  * Initialize the builder with the given transaction
73
80
  *
@@ -92,4 +99,4 @@ class TransactionBuilderFactory extends sdk_core_1.BaseTransactionBuilderFactory
92
99
  }
93
100
  }
94
101
  exports.TransactionBuilderFactory = TransactionBuilderFactory;
95
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHJhbnNhY3Rpb25CdWlsZGVyRmFjdG9yeS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9saWIvdHJhbnNhY3Rpb25CdWlsZGVyRmFjdG9yeS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7QUFDQSx1REFBeUY7QUFDekYsbURBSzhCO0FBQzlCLHVEQUFvRDtBQUVwRCwrQ0FBNEM7QUFDNUMsdURBQW9EO0FBQ3BELHdCQUEwQjtBQUMxQix1REFBb0Q7QUFDcEQsK0RBQTREO0FBQzVELGlGQUE4RTtBQUU5RSxNQUFhLHlCQUEwQixTQUFRLHdDQUE2QjtJQUMxRSxZQUFZLFdBQWlDO1FBQzNDLEtBQUssQ0FBQyxXQUFXLENBQUMsQ0FBQztJQUNyQixDQUFDO0lBRUQsa0JBQWtCO0lBQ2xCLElBQUksQ0FBQyxHQUFXO1FBQ2QsSUFBSSxDQUFDLHNCQUFzQixDQUFDLEdBQUcsQ0FBQyxDQUFDO1FBQ2pDLElBQUksQ0FBQztZQUNILE1BQU0sRUFBRSxHQUFHLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxHQUFHLENBQUMsQ0FBQztZQUN0QyxRQUFRLEVBQUUsQ0FBQyxjQUFjLENBQUMsT0FBTyxDQUFDLFdBQVcsRUFBRSxDQUFDO2dCQUM5QyxLQUFLLDBCQUFXLENBQUMsYUFBYTtvQkFDNUIsT0FBTyxJQUFJLENBQUMsa0JBQWtCLENBQUMsRUFBRSxDQUFDLENBQUM7Z0JBQ3JDLEtBQUssMEJBQVcsQ0FBQyxZQUFZO29CQUMzQixJQUFJLGlDQUFlLENBQUMsbUJBQW1CLENBQUMsSUFBSSxDQUFDLFdBQVcsRUFBRSxFQUFFLENBQUMsY0FBYyxDQUFDLE9BQU8sQ0FBQyxFQUFFLENBQUM7d0JBQ3JGLE9BQU8sSUFBSSxDQUFDLGtCQUFrQixDQUFDLEVBQUUsQ0FBQyxDQUFDO29CQUNyQyxDQUFDO29CQUNELElBQUkseUNBQW1CLENBQUMsbUJBQW1CLENBQUMsSUFBSSxDQUFDLFdBQVcsRUFBRSxFQUFFLENBQUMsY0FBYyxDQUFDLE9B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UUFBSyxDQUFDLHFCQUFxQixDQUFDLGNBQWMsQ0FBQyxFQUFFLENBQUM7WUFDakQsTUFBTSxJQUFJLGdDQUFxQixDQUFDLHlCQUF5QixDQUFDLENBQUM7UUFDN0QsQ0FBQztJQUNILENBQUM7Q0FDRjtBQTNGRCw4REEyRkMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBCYXNlQ29pbiBhcyBDb2luQ29uZmlnIH0gZnJvbSAnQGJpdGdvLWJldGEvc3RhdGljcyc7XG5pbXBvcnQgeyBCdWZmZXJSZWFkZXIsIGRlc2VyaWFsaXplVHJhbnNhY3Rpb24sIFBheWxvYWRUeXBlIH0gZnJvbSAnQHN0YWNrcy90cmFuc2FjdGlvbnMnO1xuaW1wb3J0IHtcbiAgQmFzZVRyYW5zYWN0aW9uQnVpbGRlckZhY3RvcnksXG4gIEludmFsaWRUcmFuc2FjdGlvbkVycm9yLFxuICBOb3RJbXBsZW1lbnRlZEVycm9yLFxuICBQYXJzZVRyYW5zYWN0aW9uRXJyb3IsXG59IGZyb20gJ0BiaXRnby1iZXRhL3Nkay1jb3JlJztcbmltcG9ydCB7IFRyYW5zZmVyQnVpbGRlciB9IGZyb20gJy4vdHJhbnNmZXJCdWlsZGVyJztcbmltcG9ydCB7IFRyYW5zYWN0aW9uQnVpbGRlciB9IGZyb20gJy4vdHJhbnNhY3Rpb25CdWlsZGVyJztcbmltcG9ydCB7IFRyYW5zYWN0aW9uIH0gZnJvbSAnLi90cmFuc2FjdGlvbic7XG5pbXBvcnQgeyBDb250cmFjdEJ1aWxkZXIgfSBmcm9tICcuL2NvbnRyYWN0QnVpbGRlcic7XG5pbXBvcnQgeyBVdGlscyB9IGZyb20gJy4nO1xuaW1wb3J0IHsgU2VuZG1hbnlCdWlsZGVyIH0gZnJvbSAnLi9zZW5kbWFueUJ1aWxkZXInO1xuaW1wb3J0IHsgU2J0Y1dpdGhkcmF3QnVpbGRlciB9IGZyb20gJy4vc2J0Y1dpdGhkcmF3QnVpbGRlcic7XG5pbXBvcnQgeyBGdW5naWJsZVRva2VuVHJhbnNmZXJCdWlsZGVyIH0gZnJvbSAnLi9mdW5naWJsZVRva2VuVHJhbnNmZXJCdWlsZGVyJztcblxuZXhwb3J0IGNsYXNzIFRyYW5zYWN0aW9uQnVpbGRlckZhY3RvcnkgZXh0ZW5kcyBCYXNlVHJhbnNhY3Rpb25CdWlsZGVyRmFjdG9yeSB7XG4gIGNvbnN0cnVjdG9yKF9jb2luQ29uZmlnOiBSZWFkb25seTxDb2luQ29uZmlnPikge1xuICAgIHN1cGVyKF9jb2luQ29uZmlnKTtcbiAgfVxuXG4gIC8qKiBAaW5oZXJpdGRvYyAqL1xuICBmcm9tKHJhdzogc3RyaW5nKTogVHJhbnNhY3Rpb25CdWlsZGVyIHtcbiAgICB0aGlzLnZhbGlkYXRlUmF3VHJhbnNhY3Rpb24ocmF3KTtcbiAgICB0cnkge1xuICAgICAgY29uc3QgdHggPSB0aGlzLnBhcnNlVHJhbnNhY3Rpb24ocmF3KTtcbiAgICAgIHN3aXRjaCAodHguc3R4VHJhbnNhY3Rpb24ucGF5bG9hZC5wYXlsb2FkVHlwZSkge1xuICAgICAgICBjYXNlIFBheWxvYWRUeXBlLlRva2VuVHJhbnNmZXI6XG4gICAgICAgICAgcmV0dXJuIHRoaXMuZ2V0VHJhbnNmZXJCdWlsZGVyKHR4KTtcbiAgICAgICAgY2FzZSBQYXlsb2FkVHlwZS5Db250cmFjdENhbGw6XG4gICAgICAgICAgaWYgKFNlbmRtYW55QnVpbGRlci5pc1ZhbGlkQ29udHJhY3RDYWxsKHRoaXMuX2NvaW5Db25maWcsIHR4LnN0eFRyYW5zYWN0aW9uLnBheWxvYWQpKSB7XG4gICAgICAgICAgICByZXR1cm4gdGhpcy5nZXRTZW5kbWFueUJ1aWxkZXIodHgpO1xuICAgICAgICAgIH1cbiAgICAgICAgICBpZiAoU2J0Y1dpdGhkcmF3QnVpbGRlci5pc1ZhbGlkQ29udHJhY3RDYWxsKHRoaXMuX2NvaW5Db25maWcsIHR4LnN0eFRyYW5zYWN0aW9uLnBheWxvYWQpKSB7XG4gICAgICAgICAgICByZXR1cm4gdGhpcy5nZXRTYnRjV2l0aGRyYXdCdWlsZGVyKHR4KTtcbiAgICAgICAgICB9XG4gICAgICAgICAgaWYgKEZ1bmdpYmxlVG9rZW5UcmFuc2ZlckJ1aWxkZXIuaXNGdW5naWJsZVRva2VuVHJhbnNmZXJDb250cmFjdENhbGwodHguc3R4VHJhbnNhY3Rpb24ucGF5bG9hZCkpIHtcbiAgICAgICAgICAgIHJldHVybiB0aGlzLmdldEZ1bmdpYmxlVG9rZW5UcmFuc2ZlckJ1aWxkZXIodHgpO1xuICAgICAgICAgIH1cbiAgICAgICAgICByZXR1cm4gdGhpcy5nZXRDb250cmFjdEJ1aWxkZXIodHgpO1xuICAgICAgICBkZWZhdWx0OlxuICAgICAgICAgIHRocm93IG5ldyBJbnZhbGlkVHJhbnNhY3Rpb25FcnJvcignSW52YWxpZCB0cmFuc2FjdGlvbicpO1xuICAgICAgfVxuICAgIH0gY2F0Y2ggKGUpIHtcbiAgICAgIGNvbnNvbGUuZXJyb3IoZSk7XG4gICAgICB0aHJvdyBuZXcgUGFyc2VUcmFuc2FjdGlvbkVycm9yKCdUaGVyZSB3YXMgYW4gZXJyb3IgcGFyc2luZyB0aGUgcmF3IHRyYW5zYWN0aW9uJyk7XG4gICAgfVxuICB9XG5cbiAgcHJpdmF0ZSBwYXJzZVRyYW5zYWN0aW9uKHJhd1RyYW5zYWN0aW9uOiBzdHJpbmcpOiBUcmFuc2FjdGlvbiB7XG4gICAgY29uc3QgdHggPSBuZXcgVHJhbnNhY3Rpb24odGhpcy5fY29pbkNvbmZpZyk7XG4gICAgY29uc3Qgc3RhY2tzdHJhbnNhY3Rpb24gPSBkZXNlcmlhbGl6ZVRyYW5zYWN0aW9uKFxuICAgICAgQnVmZmVyUmVhZGVyLmZyb21CdWZmZXIoQnVmZmVyLmZyb20oVXRpbHMucmVtb3ZlSGV4UHJlZml4KHJhd1RyYW5zYWN0aW9uKSwgJ2hleCcpKVxuICAgICk7XG4gICAgdHguc3R4VHJhbnNhY3Rpb24gPSBzdGFja3N0cmFuc2FjdGlvbjtcbiAgICByZXR1cm4gdHg7XG4gIH1cblxuICAvKiogQGluaGVyaXRkb2MgKi9cbiAgZ2V0V2FsbGV0SW5pdGlhbGl6YXRpb25CdWlsZGVyKHR4PzogVHJhbnNhY3Rpb24pOiB2b2lkIHtcbiAgICB0aHJvdyBuZXcgTm90SW1wbGVtZW50ZWRFcnJvcignbWV0aG9kIG5vdCBpbXBsZW1lbnRlZCcpO1xuICB9XG5cbiAgLyoqIEBpbmhlcml0ZG9jICovXG4gIGdldFRyYW5zZmVyQnVpbGRlcih0eD86IFRyYW5zYWN0aW9uKTogVHJhbnNmZXJCdWlsZGVyIHtcbiAgICByZXR1cm4gVHJhbnNhY3Rpb25CdWlsZGVyRmFjdG9yeS5pbml0aWFsaXplQnVpbGRlcihuZXcgVHJhbnNmZXJCdWlsZGVyKHRoaXMuX2NvaW5Db25maWcpLCB0eCk7XG4gIH1cblxuICBnZXRDb250cmFjdEJ1aWxkZXIodHg/OiBUcmFuc2FjdGlvbik6IENvbnRyYWN0QnVpbGRlciB7XG4gICAgcmV0dXJuIFRyYW5zYWN0aW9uQnVpbGRlckZhY3RvcnkuaW5pdGlhbGl6ZUJ1aWxkZXIobmV3IENvbnRyYWN0QnVpbGRlcih0aGlzLl9jb2luQ29uZmlnKSwgdHgpO1xuICB9XG5cbiAgZ2V0U2VuZG1hbnlCdWlsZGVyKHR4PzogVHJhbnNhY3Rpb24pOiBTZW5kbWFueUJ1aWxkZXIge1xuICAgIHJldHVybiBUcmFuc2FjdGlvbkJ1aWxkZXJGYWN0b3J5LmluaXRpYWxpemVCdWlsZGVyKG5ldyBTZW5kbWFueUJ1aWxkZXIodGhpcy5fY29pbkNvbmZpZyksIHR4KTtcbiAgfVxuXG4gIGdldFNidGNXaXRoZHJhd0J1aWxkZXIodHg/OiBUcmFuc2FjdGlvbik6IFNidGNXaXRoZHJhd0J1aWxkZXIge1xuICAgIHJldHVybiBUcmFuc2FjdGlvbkJ1aWxkZXJGYWN0b3J5LmluaXRpYWxpemVCdWlsZGVyKG5ldyBTYnRjV2l0aGRyYXdCdWlsZGVyKHRoaXMuX2NvaW5Db25maWcpLCB0eCk7XG4gIH1cblxuICBnZXRGdW5naWJsZVRva2VuVHJhbnNmZXJCdWlsZGVyKHR4PzogVHJhbnNhY3Rpb24pOiBGdW5naWJsZVRva2VuVHJhbnNmZXJCdWlsZGVyIHtcbiAgICByZXR1cm4gVHJhbnNhY3Rpb25CdWlsZGVyRmFjdG9yeS5pbml0aWFsaXplQnVpbGRlcihuZXcgRnVuZ2libGVUb2tlblRyYW5zZmVyQnVpbGRlcih0aGlzLl9jb2luQ29uZmlnKSwgdHgpO1xuICB9XG5cbiAgLyoqXG4gICAqIEluaXRpYWxpemUgdGhlIGJ1aWxkZXIgd2l0aCB0aGUgZ2l2ZW4gdHJhbnNhY3Rpb25cbiAgICpcbiAgICogQHBhcmFtIHtUcmFuc2FjdGlvbiB8IHVuZGVmaW5lZH0gdHggLSB0aGUgdHJhbnNhY3Rpb24gdXNlZCB0byBpbml0aWFsaXplIHRoZSBidWlsZGVyXG4gICAqIEBwYXJhbSB7VHJhbnNhY3Rpb25CdWlsZGVyfSBidWlsZGVyIC0gdGhlIGJ1aWxkZXIgdG8gYmUgaW5pdGlhbGl6ZWRcbiAgICogQHJldHVybnMge1RyYW5zYWN0aW9uQnVpbGRlcn0gdGhlIGJ1aWxkZXIgaW5pdGlhbGl6ZWRcbiAgICovXG4gIHByaXZhdGUgc3RhdGljIGluaXRpYWxpemVCdWlsZGVyPFQgZXh0ZW5kcyBUcmFuc2FjdGlvbkJ1aWxkZXI+KGJ1aWxkZXI6IFQsIHR4OiBUcmFuc2FjdGlvbiB8IHVuZGVmaW5lZCk6IFQge1xuICAgIGlmICh0eCkge1xuICAgICAgYnVpbGRlci5pbml0QnVpbGRlcih0eCk7XG4gICAgfVxuICAgIHJldHVybiBidWlsZGVyO1xuICB9XG5cbiAgLyoqIEBpbmhlcml0ZG9jICovXG4gIHZhbGlkYXRlUmF3VHJhbnNhY3Rpb24ocmF3VHJhbnNhY3Rpb246IHVua25vd24pOiB2b2lkIHtcbiAgICBpZiAoIXJhd1RyYW5zYWN0aW9uKSB7XG4gICAgICB0aHJvdyBuZXcgSW52YWxpZFRyYW5zYWN0aW9uRXJyb3IoJ1JhdyB0cmFuc2FjdGlvbiBpcyBlbXB0eScpO1xuICAgIH1cbiAgICBpZiAoIVV0aWxzLmlzVmFsaWRSYXdUcmFuc2FjdGlvbihyYXdUcmFuc2FjdGlvbikpIHtcbiAgICAgIHRocm93IG5ldyBQYXJzZVRyYW5zYWN0aW9uRXJyb3IoJ0ludmFsaWQgcmF3IHRyYW5zYWN0aW9uJyk7XG4gICAgfVxuICB9XG59XG4iXX0=
102
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHJhbnNhY3Rpb25CdWlsZGVyRmFjdG9yeS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9saWIvdHJhbnNhY3Rpb25CdWlsZGVyRmFjdG9yeS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7QUFDQSx1REFBeUY7QUFDekYsbURBSzhCO0FBQzlCLHVEQUFvRDtBQUVwRCwrQ0FBNEM7QUFDNUMsdURBQW9EO0FBQ3BELHdCQUEwQjtBQUMxQix1REFBb0Q7QUFDcEQsK0RBQTREO0FBQzVELGlGQUE4RTtBQUM5RSwrQ0FBNEM7QUFFNUMsTUFBYSx5QkFBMEIsU0FBUSx3Q0FBNkI7SUFDMUUsWUFBWSxXQUFpQztRQUMzQyxLQUFLLENBQUMsV0FBVyxDQUFDLENBQUM7SUFDckIsQ0FBQztJQUVELGtCQUFrQjtJQUNsQixJQUFJLENBQUMsR0FBVztRQUNkLElBQUksQ0FBQyxzQkFBc0IsQ0FBQyxHQUFHLENBQUMsQ0FBQztRQUNqQyxJQUFJLENBQUM7WUFDSCxNQUFNLEVBQUUsR0FBRyxJQUFJLENBQUMsZ0JBQWdCLENBQUMsR0FBRyxDQUFDLENBQUM7WUFDdEMsUUFBUSxFQUFFLENBQUMsY0FBYyxDQUFDLE9BQU8sQ0FBQyxXQUFXLEVBQUUsQ0FBQztnQkFDOUMsS0FBSywwQkFBVyxDQUFDLGFBQWE7b0JBQzVCLE9BQU8sSUFBSSxDQUFDLGtCQUFrQixDQUFDLEVBQUUsQ0FBQyxDQUFDO2dCQUNyQyxLQUFLLDBCQUFXLENBQUMsWUFBWTtvQkFDM0IsSUFBSSxpQ0FBZSxDQUFDLG1CQUFtQixDQUFDLElBQUksQ0FBQyxXQUFXLEVBQUUsRUFBRSxDQUFDLGNBQWMsQ0FBQyxPQUFPLENBQUMsRUFBRSxDQUFDO3dCQUNyRixPQUFPLElBQUksQ0FBQyxrQkFBa0IsQ0FBQyxFQUFFLENBQUMsQ0FBQztvQkFDckMsQ0FBQztvQkFDRCxJQUFJLHlDQUFtQixDQUFDLG1CQUFtQixDQUFDLElBQUksQ0FBQyxXQUFXLEVBQUUsRUFBRSxDQUFD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QUNLLE1BQU0sQ0FBQyxpQkFBaUIsQ0FBK0IsT0FBVSxFQUFFLEVBQTJCO1FBQ3BHLElBQUksRUFBRSxFQUFFLENBQUM7WUFDUCxPQUFPLENBQUMsV0FBVyxDQUFDLEVBQUUsQ0FBQyxDQUFDO1FBQzFCLENBQUM7UUFDRCxPQUFPLE9BQU8sQ0FBQztJQUNqQixDQUFDO0lBRUQsa0JBQWtCO0lBQ2xCLHNCQUFzQixDQUFDLGNBQXVCO1FBQzVDLElBQUksQ0FBQyxjQUFjLEVBQUUsQ0FBQztZQUNwQixNQUFNLElBQUksa0NBQXVCLENBQUMsMEJBQTBCLENBQUMsQ0FBQztRQUNoRSxDQUFDO1FBQ0QsSUFBSSxDQUFDLFFBQUssQ0FBQyxxQkFBcUIsQ0FBQyxjQUFjLENBQUMsRUFBRSxDQUFDO1lBQ2pELE1BQU0sSUFBSSxnQ0FBcUIsQ0FBQyx5QkFBeUIsQ0FBQyxDQUFDO1FBQzdELENBQUM7SUFDSCxDQUFDO0NBQ0Y7QUFsR0QsOERBa0dDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQmFzZUNvaW4gYXMgQ29pbkNvbmZpZyB9IGZyb20gJ0BiaXRnby1iZXRhL3N0YXRpY3MnO1xuaW1wb3J0IHsgQnVmZmVyUmVhZGVyLCBkZXNlcmlhbGl6ZVRyYW5zYWN0aW9uLCBQYXlsb2FkVHlwZSB9IGZyb20gJ0BzdGFja3MvdHJhbnNhY3Rpb25zJztcbmltcG9ydCB7XG4gIEJhc2VUcmFuc2FjdGlvbkJ1aWxkZXJGYWN0b3J5LFxuICBJbnZhbGlkVHJhbnNhY3Rpb25FcnJvcixcbiAgTm90SW1wbGVtZW50ZWRFcnJvcixcbiAgUGFyc2VUcmFuc2FjdGlvbkVycm9yLFxufSBmcm9tICdAYml0Z28tYmV0YS9zZGstY29yZSc7XG5pbXBvcnQgeyBUcmFuc2ZlckJ1aWxkZXIgfSBmcm9tICcuL3RyYW5zZmVyQnVpbGRlcic7XG5pbXBvcnQgeyBUcmFuc2FjdGlvbkJ1aWxkZXIgfSBmcm9tICcuL3RyYW5zYWN0aW9uQnVpbGRlcic7XG5pbXBvcnQgeyBUcmFuc2FjdGlvbiB9IGZyb20gJy4vdHJhbnNhY3Rpb24nO1xuaW1wb3J0IHsgQ29udHJhY3RCdWlsZGVyIH0gZnJvbSAnLi9jb250cmFjdEJ1aWxkZXInO1xuaW1wb3J0IHsgVXRpbHMgfSBmcm9tICcuJztcbmltcG9ydCB7IFNlbmRtYW55QnVpbGRlciB9IGZyb20gJy4vc2VuZG1hbnlCdWlsZGVyJztcbmltcG9ydCB7IFNidGNXaXRoZHJhd0J1aWxkZXIgfSBmcm9tICcuL3NidGNXaXRoZHJhd0J1aWxkZXInO1xuaW1wb3J0IHsgRnVuZ2libGVUb2tlblRyYW5zZmVyQnVpbGRlciB9IGZyb20gJy4vZnVuZ2libGVUb2tlblRyYW5zZmVyQnVpbGRlcic7XG5pbXBvcnQgeyBQb3g1QnVpbGRlciB9IGZyb20gJy4vcG94NUJ1aWxkZXInO1xuXG5leHBvcnQgY2xhc3MgVHJhbnNhY3Rpb25CdWlsZGVyRmFjdG9yeSBleHRlbmRzIEJhc2VUcmFuc2FjdGlvbkJ1aWxkZXJGYWN0b3J5IHtcbiAgY29uc3RydWN0b3IoX2NvaW5Db25maWc6IFJlYWRvbmx5PENvaW5Db25maWc+KSB7XG4gICAgc3VwZXIoX2NvaW5Db25maWcpO1xuICB9XG5cbiAgLyoqIEBpbmhlcml0ZG9jICovXG4gIGZyb20ocmF3OiBzdHJpbmcpOiBUcmFuc2FjdGlvbkJ1aWxkZXIge1xuICAgIHRoaXMudmFsaWRhdGVSYXdUcmFuc2FjdGlvbihyYXcpO1xuICAgIHRyeSB7XG4gICAgICBjb25zdCB0eCA9IHRoaXMucGFyc2VUcmFuc2FjdGlvbihyYXcpO1xuICAgICAgc3dpdGNoICh0eC5zdHhUcmFuc2FjdGlvbi5wYXlsb2FkLnBheWxvYWRUeXBlKSB7XG4gICAgICAgIGNhc2UgUGF5bG9hZFR5cGUuVG9rZW5UcmFuc2ZlcjpcbiAgICAgICAgICByZXR1cm4gdGhpcy5nZXRUcmFuc2ZlckJ1aWxkZXIodHgpO1xuICAgICAgICBjYXNlIFBheWxvYWRUeXBlLkNvbnRyYWN0Q2FsbDpcbiAgICAgICAgICBpZiAoU2VuZG1hbnlCdWlsZGVyLmlzVmFsaWRDb250cmFjdENhbGwodGhpcy5fY29pbkNvbmZpZywgdHguc3R4VHJhbnNhY3Rpb24ucGF5bG9hZCkpIHtcbiAgICAgICAgICAgIHJldHVybiB0aGlzLmdldFNlbmRtYW55QnVpbGRlcih0eCk7XG4gICAgICAgICAgfVxuICAgICAgICAgIGlmIChTYnRjV2l0aGRyYXdCdWlsZGVyLmlzVmFsaWRDb250cmFjdENhbGwodGhpcy5fY29pbkNvbmZpZywgdHguc3R4VHJhbnNhY3Rpb24ucGF5bG9hZCkpIHtcbiAgICAgICAgICAgIHJldHVybiB0aGlzLmdldFNidGNXaXRoZHJhd0J1aWxkZXIodHgpO1xuICAgICAgICAgIH1cbiAgICAgICAgICBpZiAoRnVuZ2libGVUb2tlblRyYW5zZmVyQnVpbGRlci5pc0Z1bmdpYmxlVG9rZW5UcmFuc2ZlckNvbnRyYWN0Q2FsbCh0eC5zdHhUcmFuc2FjdGlvbi5wYXlsb2FkKSkge1xuICAgICAgICAgICAgcmV0dXJuIHRoaXMuZ2V0RnVuZ2libGVUb2tlblRyYW5zZmVyQnVpbGRlcih0eCk7XG4gICAgICAgICAgfVxuICAgICAgICAgIGlmIChQb3g1QnVpbGRlci5pc1ZhbGlkQ29udHJhY3RDYWxsKHRoaXMuX2NvaW5Db25maWcsIHR4LnN0eFRyYW5zYWN0aW9uLnBheWxvYWQpKSB7XG4gICAgICAgICAgICByZXR1cm4gdGhpcy5nZXRQb3g1QnVpbGRlcih0eCk7XG4gICAgICAgICAgfVxuICAgICAgICAgIHJldHVybiB0aGlzLmdldENvbnRyYWN0QnVpbGRlcih0eCk7XG4gICAgICAgIGRlZmF1bHQ6XG4gICAgICAgICAgdGhyb3cgbmV3IEludmFsaWRUcmFuc2FjdGlvbkVycm9yKCdJbnZhbGlkIHRyYW5zYWN0aW9uJyk7XG4gICAgICB9XG4gICAgfSBjYXRjaCAoZSkge1xuICAgICAgY29uc29sZS5lcnJvcihlKTtcbiAgICAgIHRocm93IG5ldyBQYXJzZVRyYW5zYWN0aW9uRXJyb3IoJ1RoZXJlIHdhcyBhbiBlcnJvciBwYXJzaW5nIHRoZSByYXcgdHJhbnNhY3Rpb24nKTtcbiAgICB9XG4gIH1cblxuICBwcml2YXRlIHBhcnNlVHJhbnNhY3Rpb24ocmF3VHJhbnNhY3Rpb246IHN0cmluZyk6IFRyYW5zYWN0aW9uIHtcbiAgICBjb25zdCB0eCA9IG5ldyBUcmFuc2FjdGlvbih0aGlzLl9jb2luQ29uZmlnKTtcbiAgICBjb25zdCBzdGFja3N0cmFuc2FjdGlvbiA9IGRlc2VyaWFsaXplVHJhbnNhY3Rpb24oXG4gICAgICBCdWZmZXJSZWFkZXIuZnJvbUJ1ZmZlcihCdWZmZXIuZnJvbShVdGlscy5yZW1vdmVIZXhQcmVmaXgocmF3VHJhbnNhY3Rpb24pLCAnaGV4JykpXG4gICAgKTtcbiAgICB0eC5zdHhUcmFuc2FjdGlvbiA9IHN0YWNrc3RyYW5zYWN0aW9uO1xuICAgIHJldHVybiB0eDtcbiAgfVxuXG4gIC8qKiBAaW5oZXJpdGRvYyAqL1xuICBnZXRXYWxsZXRJbml0aWFsaXphdGlvbkJ1aWxkZXIodHg/OiBUcmFuc2FjdGlvbik6IHZvaWQge1xuICAgIHRocm93IG5ldyBOb3RJbXBsZW1lbnRlZEVycm9yKCdtZXRob2Qgbm90IGltcGxlbWVudGVkJyk7XG4gIH1cblxuICAvKiogQGluaGVyaXRkb2MgKi9cbiAgZ2V0VHJhbnNmZXJCdWlsZGVyKHR4PzogVHJhbnNhY3Rpb24pOiBUcmFuc2ZlckJ1aWxkZXIge1xuICAgIHJldHVybiBUcmFuc2FjdGlvbkJ1aWxkZXJGYWN0b3J5LmluaXRpYWxpemVCdWlsZGVyKG5ldyBUcmFuc2ZlckJ1aWxkZXIodGhpcy5fY29pbkNvbmZpZyksIHR4KTtcbiAgfVxuXG4gIGdldENvbnRyYWN0QnVpbGRlcih0eD86IFRyYW5zYWN0aW9uKTogQ29udHJhY3RCdWlsZGVyIHtcbiAgICByZXR1cm4gVHJhbnNhY3Rpb25CdWlsZGVyRmFjdG9yeS5pbml0aWFsaXplQnVpbGRlcihuZXcgQ29udHJhY3RCdWlsZGVyKHRoaXMuX2NvaW5Db25maWcpLCB0eCk7XG4gIH1cblxuICBnZXRTZW5kbWFueUJ1aWxkZXIodHg/OiBUcmFuc2FjdGlvbik6IFNlbmRtYW55QnVpbGRlciB7XG4gICAgcmV0dXJuIFRyYW5zYWN0aW9uQnVpbGRlckZhY3RvcnkuaW5pdGlhbGl6ZUJ1aWxkZXIobmV3IFNlbmRtYW55QnVpbGRlcih0aGlzLl9jb2luQ29uZmlnKSwgdHgpO1xuICB9XG5cbiAgZ2V0U2J0Y1dpdGhkcmF3QnVpbGRlcih0eD86IFRyYW5zYWN0aW9uKTogU2J0Y1dpdGhkcmF3QnVpbGRlciB7XG4gICAgcmV0dXJuIFRyYW5zYWN0aW9uQnVpbGRlckZhY3RvcnkuaW5pdGlhbGl6ZUJ1aWxkZXIobmV3IFNidGNXaXRoZHJhd0J1aWxkZXIodGhpcy5fY29pbkNvbmZpZyksIHR4KTtcbiAgfVxuXG4gIGdldEZ1bmdpYmxlVG9rZW5UcmFuc2ZlckJ1aWxkZXIodHg/OiBUcmFuc2FjdGlvbik6IEZ1bmdpYmxlVG9rZW5UcmFuc2ZlckJ1aWxkZXIge1xuICAgIHJldHVybiBUcmFuc2FjdGlvbkJ1aWxkZXJGYWN0b3J5LmluaXRpYWxpemVCdWlsZGVyKG5ldyBGdW5naWJsZVRva2VuVHJhbnNmZXJCdWlsZGVyKHRoaXMuX2NvaW5Db25maWcpLCB0eCk7XG4gIH1cblxuICBnZXRQb3g1QnVpbGRlcih0eD86IFRyYW5zYWN0aW9uKTogUG94NUJ1aWxkZXIge1xuICAgIHJldHVybiBUcmFuc2FjdGlvbkJ1aWxkZXJGYWN0b3J5LmluaXRpYWxpemVCdWlsZGVyKG5ldyBQb3g1QnVpbGRlcih0aGlzLl9jb2luQ29uZmlnKSwgdHgpO1xuICB9XG5cbiAgLyoqXG4gICAqIEluaXRpYWxpemUgdGhlIGJ1aWxkZXIgd2l0aCB0aGUgZ2l2ZW4gdHJhbnNhY3Rpb25cbiAgICpcbiAgICogQHBhcmFtIHtUcmFuc2FjdGlvbiB8IHVuZGVmaW5lZH0gdHggLSB0aGUgdHJhbnNhY3Rpb24gdXNlZCB0byBpbml0aWFsaXplIHRoZSBidWlsZGVyXG4gICAqIEBwYXJhbSB7VHJhbnNhY3Rpb25CdWlsZGVyfSBidWlsZGVyIC0gdGhlIGJ1aWxkZXIgdG8gYmUgaW5pdGlhbGl6ZWRcbiAgICogQHJldHVybnMge1RyYW5zYWN0aW9uQnVpbGRlcn0gdGhlIGJ1aWxkZXIgaW5pdGlhbGl6ZWRcbiAgICovXG4gIHByaXZhdGUgc3RhdGljIGluaXRpYWxpemVCdWlsZGVyPFQgZXh0ZW5kcyBUcmFuc2FjdGlvbkJ1aWxkZXI+KGJ1aWxkZXI6IFQsIHR4OiBUcmFuc2FjdGlvbiB8IHVuZGVmaW5lZCk6IFQge1xuICAgIGlmICh0eCkge1xuICAgICAgYnVpbGRlci5pbml0QnVpbGRlcih0eCk7XG4gICAgfVxuICAgIHJldHVybiBidWlsZGVyO1xuICB9XG5cbiAgLyoqIEBpbmhlcml0ZG9jICovXG4gIHZhbGlkYXRlUmF3VHJhbnNhY3Rpb24ocmF3VHJhbnNhY3Rpb246IHVua25vd24pOiB2b2lkIHtcbiAgICBpZiAoIXJhd1RyYW5zYWN0aW9uKSB7XG4gICAgICB0aHJvdyBuZXcgSW52YWxpZFRyYW5zYWN0aW9uRXJyb3IoJ1JhdyB0cmFuc2FjdGlvbiBpcyBlbXB0eScpO1xuICAgIH1cbiAgICBpZiAoIVV0aWxzLmlzVmFsaWRSYXdUcmFuc2FjdGlvbihyYXdUcmFuc2FjdGlvbikpIHtcbiAgICAgIHRocm93IG5ldyBQYXJzZVRyYW5zYWN0aW9uRXJyb3IoJ0ludmFsaWQgcmF3IHRyYW5zYWN0aW9uJyk7XG4gICAgfVxuICB9XG59XG4iXX0=