@bitgo/sdk-coin-canton 1.9.0 → 1.10.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.
Files changed (32) hide show
  1. package/dist/src/canton.d.ts +3 -1
  2. package/dist/src/canton.d.ts.map +1 -1
  3. package/dist/src/canton.js +26 -3
  4. package/dist/src/lib/iface.d.ts +14 -0
  5. package/dist/src/lib/iface.d.ts.map +1 -1
  6. package/dist/src/lib/iface.js +1 -1
  7. package/dist/src/lib/index.d.ts +1 -0
  8. package/dist/src/lib/index.d.ts.map +1 -1
  9. package/dist/src/lib/index.js +4 -2
  10. package/dist/src/lib/transaction/transaction.d.ts +5 -0
  11. package/dist/src/lib/transaction/transaction.d.ts.map +1 -1
  12. package/dist/src/lib/transaction/transaction.js +38 -6
  13. package/dist/src/lib/transactionBuilderFactory.d.ts +2 -0
  14. package/dist/src/lib/transactionBuilderFactory.d.ts.map +1 -1
  15. package/dist/src/lib/transactionBuilderFactory.js +8 -1
  16. package/dist/src/lib/transferBuilder.d.ts +76 -2
  17. package/dist/src/lib/transferBuilder.d.ts.map +1 -1
  18. package/dist/src/lib/transferBuilder.js +150 -2
  19. package/dist/src/lib/utils.d.ts +10 -2
  20. package/dist/src/lib/utils.d.ts.map +1 -1
  21. package/dist/src/lib/utils.js +93 -48
  22. package/dist/test/integration/canton.integration.js +33 -3
  23. package/dist/test/resources.d.ts +21 -0
  24. package/dist/test/resources.d.ts.map +1 -1
  25. package/dist/test/resources.js +25 -4
  26. package/dist/test/unit/builder/oneStepEnablement/oneStepEnablementBuilder.js +2 -1
  27. package/dist/test/unit/builder/transfer/transferBuilder.d.ts +2 -0
  28. package/dist/test/unit/builder/transfer/transferBuilder.d.ts.map +1 -0
  29. package/dist/test/unit/builder/transfer/transferBuilder.js +63 -0
  30. package/dist/test/unit/utils.js +29 -7
  31. package/dist/tsconfig.tsbuildinfo +1 -1
  32. package/package.json +6 -6
@@ -13,6 +13,7 @@ describe('Wallet Pre-approval Enablement Builder', () => {
13
13
  const txBuilder = new src_1.OneStepPreApprovalBuilder(statics_1.coins.get('tcanton'));
14
14
  const oneStepEnablementTx = new src_1.Transaction(statics_1.coins.get('tcanton'));
15
15
  txBuilder.initBuilder(oneStepEnablementTx);
16
+ txBuilder.setTransaction(resources_1.OneStepPreApprovalPrepareResponse);
16
17
  const { commandId, partyId } = resources_1.OneStepEnablement;
17
18
  txBuilder.commandId(commandId).receiverPartyId(partyId);
18
19
  const requestObj = txBuilder.toRequestObject();
@@ -63,4 +64,4 @@ describe('Wallet Pre-approval Enablement Builder', () => {
63
64
  }
64
65
  });
65
66
  });
66
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoib25lU3RlcEVuYWJsZW1lbnRCdWlsZGVyLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vdGVzdC91bml0L2J1aWxkZXIvb25lU3RlcEVuYWJsZW1lbnQvb25lU3RlcEVuYWJsZW1lbnRCdWlsZGVyLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7O0FBQUEsb0RBQTRCO0FBQzVCLG9EQUE0QjtBQUU1Qiw0Q0FBdUM7QUFFdkMseUNBQXlFO0FBR3pFLGtEQUk0QjtBQUU1QixRQUFRLENBQUMsd0NBQXdDLEVBQUUsR0FBRyxFQUFFO0lBQ3RELEVBQUUsQ0FBQyxtREFBbUQsRUFBRTtRQUN0RCxNQUFNLFNBQVMsR0FBRyxJQUFJLCtCQUF5QixDQUFDLGVBQUssQ0FBQyxHQUFHLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBQztRQUN0RSxNQUFNLG1CQUFtQixHQUFHLElBQUksaUJBQVcsQ0FBQyxlQUFLLENBQUMsR0FBRyxDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUM7UUFDbEUsU0FBUyxDQUFDLFdBQVcsQ0FBQyxtQkFBbUIsQ0FBQyxDQUFDO1FBQzNDLE1BQU0sRUFBRSxTQUFTLEVBQUUsT0FBTyxFQUFFLEdBQUcsNkJBQWlCLENBQUM7UUFDakQsU0FBUyxDQUFDLFNBQVMsQ0FBQyxTQUFTLENBQUMsQ0FBQyxlQUFlLENBQUMsT0FBTyxDQUFDLENBQUM7UUFDeEQsTUFBTSxVQUFVLEdBQW1DLFNBQVMsQ0FBQyxlQUFlLEVBQUUsQ0FBQztRQUMvRSxnQkFBTSxDQUFDLEtBQUssQ0FBQyxVQUFVLENBQUMsQ0FBQztRQUN6QixnQkFBTSxDQUFDLEtBQUssQ0FBQyxVQUFVLENBQUMsU0FBUyxFQUFFLFNBQVMsQ0FBQyxDQUFDO1FBQzlDLGdCQUFNLENBQUMsS0FBSyxDQUFDLFVBQVUsQ0FBQyxVQUFVLEVBQUUsT0FBTyxDQUFDLENBQUM7UUFDN0MsZ0JBQU0sQ0FBQyxLQUFLLENBQUMsVUFBVSxDQUFDLEtBQUssQ0FBQyxNQUFN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QUM7QUFDTCxDQUFDLENBQUMsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCBhc3NlcnQgZnJvbSAnYXNzZXJ0JztcbmltcG9ydCBzaG91bGQgZnJvbSAnc2hvdWxkJztcblxuaW1wb3J0IHsgY29pbnMgfSBmcm9tICdAYml0Z28vc3RhdGljcyc7XG5cbmltcG9ydCB7IE9uZVN0ZXBQcmVBcHByb3ZhbEJ1aWxkZXIsIFRyYW5zYWN0aW9uIH0gZnJvbSAnLi4vLi4vLi4vLi4vc3JjJztcbmltcG9ydCB7IENhbnRvbk9uZVN0ZXBFbmFibGVtZW50UmVxdWVzdCB9IGZyb20gJy4uLy4uLy4uLy4uL3NyYy9saWIvaWZhY2UnO1xuXG5pbXBvcnQge1xuICBJbnZhbGlkT25lU3RlcFByZUFwcHJvdmFsUHJlcGFyZVJlc3BvbnNlLFxuICBPbmVTdGVwRW5hYmxlbWVudCxcbiAgT25lU3RlcFByZUFwcHJvdmFsUHJlcGFyZVJlc3BvbnNlLFxufSBmcm9tICcuLi8uLi8uLi9yZXNvdXJjZXMnO1xuXG5kZXNjcmliZSgnV2FsbGV0IFByZS1hcHByb3ZhbCBFbmFibGVtZW50IEJ1aWxkZXInLCAoKSA9PiB7XG4gIGl0KCdzaG91bGQgZ2V0IHRoZSBvbmUgc3RlcCBlbmFibGVtZW50IHJlcXVlc3Qgb2JqZWN0JywgZnVuY3Rpb24gKCkge1xuICAgIGNvbnN0IHR4QnVpbGRlciA9IG5ldyBPbmVTdGVwUHJlQXBwcm92YWxCdWlsZGVyKGNvaW5zLmdldCgndGNhbnRvbicpKTtcbiAgICBjb25zdCBvbmVTdGVwRW5hYmxlbWVudFR4ID0gbmV3IFRyYW5zYWN0aW9uKGNvaW5zLmdldCgndGNhbnRvbicpKTtcbiAgICB0eEJ1aWxkZXIuaW5pdEJ1aWxkZXIob25lU3RlcEVuYWJsZW1lbnRUeCk7XG4gICAgY29uc3QgeyBjb21tYW5kSWQsIHBhcnR5SWQgfSA9IE9uZVN0ZXBFbmFibGVtZW50O1xuICAgIHR4QnVpbGRlci5jb21tYW5kSWQoY29tbWFuZElkKS5yZWNlaXZlclBhcnR5SWQocGFydHlJZCk7XG4gICAgY29uc3QgcmVxdWVzdE9iajogQ2FudG9uT25lU3RlcEVuYWJsZW1lbnRSZXF1ZXN0ID0gdHhCdWlsZGVyLnRvUmVxdWVzdE9iamVjdCgpO1xuICAgIHNob3VsZC5leGlzdChyZXF1ZXN0T2JqKTtcbiAgICBhc3NlcnQuZXF1YWwocmVxdWVzdE9iai5jb21tYW5kSWQsIGNvbW1hbmRJZCk7XG4gICAgYXNzZXJ0LmVxdWFsKHJlcXVlc3RPYmoucmVjZWl2ZXJJZCwgcGFydHlJZCk7XG4gICAgYXNzZXJ0LmVxdWFsKHJlcXVlc3RPYmouYWN0QXMubGVuZ3RoLCAxKTtcbiAgICBjb25zdCBhY3RBcyA9IHJlcXVlc3RPYmouYWN0QXNbMF07XG4gICAgYXNzZXJ0LmVxdWFsKGFjdEFzLCBwYXJ0eUlkKTtcbiAgfSk7XG5cbiAgaXQoJ3Nob3VsZCB2YWxpZGF0ZSByYXcgdHJhbnNhY3Rpb24nLCBmdW5jdGlvbiAoKSB7XG4gICAgY29uc3QgdHhCdWlsZGVyID0gbmV3IE9uZVN0ZXBQcmVBcHByb3ZhbEJ1aWxkZXIoY29pbnMuZ2V0KCd0Y2FudG9uJykpO1xuICAgIGNvbnN0IG9uZVN0ZXBFbmFibGVtZW50VHggPSBuZXcgVHJhbnNhY3Rpb24oY29pbnMuZ2V0KCd0Y2FudG9uJykpO1xuICAgIHR4QnVpbGRlci5pbml0QnVpbGRlcihvbmVTdGVwRW5hYmxlbWVudFR4KTtcbiAgICB0eEJ1aWxkZXIuc2V0VHJhbnNhY3Rpb24oT25lU3RlcFByZUFwcHJvdmFsUHJlcGFyZVJlc3BvbnNlKTtcbiAgICB0eEJ1aWxkZXIudmFsaWRhdGVSYXdUcmFuc2FjdGlvbihPbmVTdGVwUHJlQXBwcm92YWxQcmVwYXJlUmVzcG9uc2UucHJlcGFyZWRUcmFuc2FjdGlvbik7XG4gIH0pO1xuXG4gIGl0KCdzaG91bGQgdmFsaWRhdGUgdGhlIHRyYW5zYWN0aW9uJywgZnVuY3Rpb24gKCkge1xuICAgIGNvbnN0IHR4QnVpbGRlciA9IG5ldyBPbmVTdGVwUHJlQXBwcm92YWxCdWlsZGVyKGNvaW5zLmdldCgndGNhbnRvbicpKTtcbiAgICBjb25zdCBvbmVTdGVwRW5hYmxlbWVudFR4ID0gbmV3IFRyYW5zYWN0aW9uKGNvaW5zLmdldCgndGNhbnRvbicpKTtcbiAgICBvbmVTdGVwRW5hYmxlbWVudFR4LnByZXBhcmVDb21tYW5kID0gT25lU3RlcFByZUFwcHJvdmFsUHJlcGFyZVJlc3BvbnNlO1xuICAgIHR4QnVpbGRlci5pbml0QnVpbGRlcihvbmVTdGVwRW5hYmxlbWVudFR4KTtcbiAgICB0eEJ1aWxkZXIuc2V0VHJhbnNhY3Rpb24oT25lU3RlcFByZUFwcHJvdmFsUHJlcGFyZVJlc3BvbnNlKTtcbiAgICB0eEJ1aWxkZXIudmFsaWRhdGVUcmFuc2FjdGlvbihvbmVTdGVwRW5hYmxlbWVudFR4KTtcbiAgfSk7XG5cbiAgaXQoJ3Nob3VsZCB0aHJvdyBlcnJvciBpbiB2YWxpZGF0aW5nIHJhdyB0cmFuc2FjdGlvbicsIGZ1bmN0aW9uICgpIHtcbiAgICBjb25zdCB0eEJ1aWxkZXIgPSBuZXcgT25lU3RlcFByZUFwcHJvdmFsQnVpbGRlcihjb2lucy5nZXQoJ3RjYW50b24nKSk7XG4gICAgY29uc3Qgb25lU3RlcEVuYWJsZW1lbnRUeCA9IG5ldyBUcmFuc2FjdGlvbihjb2lucy5nZXQoJ3RjYW50b24nKSk7XG4gICAgdHhCdWlsZGVyLmluaXRCdWlsZGVyKG9uZVN0ZXBFbmFibGVtZW50VHgpO1xuICAgIHR4QnVpbGRlci5zZXRUcmFuc2FjdGlvbihJbnZhbGlkT25lU3RlcFByZUFwcHJvdmFsUHJlcGFyZVJlc3BvbnNlKTtcbiAgICB0cnkge1xuICAgICAgdHhCdWlsZGVyLnZhbGlkYXRlUmF3VHJhbnNhY3Rpb24oSW52YWxpZE9uZVN0ZXBQcmVBcHByb3ZhbFByZXBhcmVSZXNwb25zZS5wcmVwYXJlZFRyYW5zYWN0aW9uKTtcbiAgICB9IGNhdGNoIChlKSB7XG4gICAgICBhc3NlcnQuZXF1YWwoZS5tZXNzYWdlLCAnaW52YWxpZCByYXcgdHJhbnNhY3Rpb24sIGhhc2ggbm90IG1hdGNoaW5nJyk7XG4gICAgfVxuICB9KTtcblxuICBpdCgnc2hvdWxkIHRocm93IGVycm9yIGluIHZhbGlkYXRpbmcgcmF3IHRyYW5zYWN0aW9uJywgZnVuY3Rpb24gKCkge1xuICAgIGNvbnN0IHR4QnVpbGRlciA9IG5ldyBPbmVTdGVwUHJlQXBwcm92YWxCdWlsZGVyKGNvaW5zLmdldCgndGNhbnRvbicpKTtcbiAgICBjb25zdCBvbmVTdGVwRW5hYmxlbWVudFR4ID0gbmV3IFRyYW5zYWN0aW9uKGNvaW5zLmdldCgndGNhbnRvbicpKTtcbiAgICB0eEJ1aWxkZXIuaW5pdEJ1aWxkZXIob25lU3RlcEVuYWJsZW1lbnRUeCk7XG4gICAgb25lU3RlcEVuYWJsZW1lbnRUeC5wcmVwYXJlQ29tbWFuZCA9IEludmFsaWRPbmVTdGVwUHJlQXBwcm92YWxQcmVwYXJlUmVzcG9uc2U7XG4gICAgdHJ5IHtcbiAgICAgIHR4QnVpbGRlci52YWxpZGF0ZVRyYW5zYWN0aW9uKG9uZVN0ZXBFbmFibGVtZW50VHgpO1xuICAgIH0gY2F0Y2ggKGUpIHtcbiAgICAgIGFzc2VydC5lcXVhbChlLm1lc3NhZ2UsICdpbnZhbGlkIHRyYW5zYWN0aW9uJyk7XG4gICAgfVxuICB9KTtcbn0pO1xuIl19
67
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoib25lU3RlcEVuYWJsZW1lbnRCdWlsZGVyLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vdGVzdC91bml0L2J1aWxkZXIvb25lU3RlcEVuYWJsZW1lbnQvb25lU3RlcEVuYWJsZW1lbnRCdWlsZGVyLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7O0FBQUEsb0RBQTRCO0FBQzVCLG9EQUE0QjtBQUU1Qiw0Q0FBdUM7QUFFdkMseUNBQXlFO0FBR3pFLGtEQUk0QjtBQUU1QixRQUFRLENBQUMsd0NBQXdDLEVBQUUsR0FBRyxFQUFFO0lBQ3RELEVBQUUsQ0FBQyxtREFBbUQsRUFBRTtRQUN0RCxNQUFNLFNBQVMsR0FBRyxJQUFJLCtCQUF5QixDQUFDLGVBQUssQ0FBQyxHQUFHLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBQztRQUN0RSxNQUFNLG1CQUFtQixHQUFHLElBQUksaUJBQVcsQ0FBQyxlQUFLLENBQUMsR0FBRyxDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUM7UUFDbEUsU0FBUyxDQUFDLFdBQVcsQ0FBQyxtQkFBbUIsQ0FBQyxDQUFDO1FBQzNDLFNBQVMsQ0FBQyxjQUFjLENBQUMsNkNBQWlDLENBQUMsQ0FBQztRQUM1RCxNQUFNLEVBQUUsU0FBUyxFQUFFLE9BQU8sRUFBRSxHQUFHLDZCQUFpQixDQUFDO1FBQ2pELFNBQVMsQ0FBQyxTQUFTLENBQUMsU0FBUyxDQUFDLENBQUMsZUFBZSxDQUFDLE9BQU8sQ0FBQyxDQUFDO1FBQ3hELE1BQU0sVUFBVSxHQUFtQyxTQUFTLENBQUMsZUFBZSxFQUFFLENBQUM7UUFDL0UsZ0JBQU0sQ0FBQyxLQUFLLENBQUMsVUFBVSxDQUFDLENBQUM7UUFDekIsZ0JBQU0sQ0FBQyxLQUFLLENBQUMsVUFBVSxDQUFDLFNBQVMsRUFBRSxTQUFTLENBQUMsQ0FBQztRQUM5QyxnQkFBTSxDQUFDLEtBQUssQ0FBQyxVQUFVLENBQUMsVUFBVSxFQUFFLE9BQU8sQ0FBQyxDQUFDO1FBQzdDLGdCQUFNLENBQUMsS0FBSyxDQUFDLFVBQVUsQ0FBQyxLQUFLLENBQUMsTUFBTSxFQUFFLENBQUMsQ0FBQyxDQUFDO1FBQ3pDLE1BQU0sS0FBSyxHQUFHLFVBQVUsQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLENBQUM7UUFDbEMsZ0JBQU0sQ0FBQyxLQUFLLENBQUMsS0FBSyxFQUFFLE9BQU8sQ0FBQyxDQUFDO0lBQy9CLENBQUMsQ0FBQyxDQUFDO0lBRUgsRUFBRSxDQUFDLGlDQUFpQyxFQUFFO1FBQ3BDLE1BQU0sU0FBUyxHQUFHLElBQUksK0JBQXlCLENBQUMsZUFBSyxDQUFDLEdBQUcsQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFDO1FBQ3RFLE1BQU0sbUJBQW1CLEdBQUcsSUFBSSxpQkFBVyxDQUFDLGVBQUssQ0FBQyxHQUFHLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBQztRQUNsRSxTQUFTLENBQUMsV0FBVyxDQUFDLG1CQUFtQixDQUFDLENBQUM7UUFDM0MsU0FBUyxDQUFDLGNBQWMsQ0FBQyw2Q0FBaUMsQ0FBQyxDQUFDO1FBQzVELFNBQVMsQ0FBQyxzQkFBc0IsQ0FBQyw2Q0FBaUMsQ0FBQyxtQkFBbUIsQ0FBQyxDQUFDO0lBQzFGLENBQUMsQ0FBQyxDQUFDO0lBRUgsRUFBRSxDQUFDLGlDQUFpQyxFQUFFO1FBQ3BDLE1BQU0sU0FBUyxHQUFHLElBQUksK0JBQXlCLENBQUMsZUFBSyxDQUFDLEdBQUcsQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFDO1FBQ3RFLE1BQU0sbUJBQW1CLEdBQUcsSUFBSSxpQkFBVyxDQUFDLGVBQUssQ0FBQyxHQUFHLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBQztRQUNsRSxtQkFBbUIsQ0FBQyxjQUFjLEdBQUcsNkNBQWlDLENBQUM7UUFDdkUsU0FBUyxDQUFDLFdBQVcsQ0FBQyxtQkFBbUIsQ0FBQyxDQUFDO1FBQzNDLFNBQVMsQ0FBQyxjQUFjLENBQUMsNkNBQWlDLENBQUMsQ0FBQztRQUM1RCxTQUFTLENBQUMsbUJBQW1CLENBQUMsbUJBQW1CLENBQUMsQ0FBQztJQUNyRCxDQUFDLENBQUMsQ0FBQztJQUVILEVBQUUsQ0FBQyxrREFBa0QsRUFBRTtRQUNyRCxNQUFNLFNBQVMsR0FBRyxJQUFJLCtCQUF5QixDQUFDLGVBQUssQ0FBQyxHQUFHLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBQztRQUN0RSxNQUFNLG1CQUFtQixHQUFHLElBQUksaUJBQVcsQ0FBQyxlQUFLLENBQUMsR0FBRyxDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUM7UUFDbEUsU0FBUyxDQUFDLFdBQVcsQ0FBQyxtQkFBbUIsQ0FBQyxDQUFDO1FBQzNDLFNBQVMsQ0FBQyxjQUFjLENBQUMsb0RBQXdDLENBQUMsQ0FBQztRQUNuRSxJQUFJLENBQUM7WUFDSCxTQUFTLENBQUMsc0JBQXNCLENBQUMsb0RBQXdDLENBQUMsbUJBQW1CLENBQUMsQ0FBQztRQUNqRyxDQUFDO1FBQUMsT0FBTyxDQUFDLEVBQUUsQ0FBQztZQUNYLGdCQUFNLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxPQUFPLEVBQUUsNENBQTRDLENBQUMsQ0FBQztRQUN4RSxDQUFDO0lBQ0gsQ0FBQyxDQUFDLENBQUM7SUFFSCxFQUFFLENBQUMsa0RBQWtELEVBQUU7UUFDckQsTUFBTSxTQUFTLEdBQUcsSUFBSSwrQkFBeUIsQ0FBQyxlQUFLLENBQUMsR0FBRyxDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUM7UUFDdEUsTUFBTSxtQkFBbUIsR0FBRyxJQUFJLGlCQUFXLENBQUMsZUFBSyxDQUFDLEdBQUcsQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFDO1FBQ2xFLFNBQVMsQ0FBQyxXQUFXLENBQUMsbUJBQW1CLENBQUMsQ0FBQztRQUMzQyxtQkFBbUIsQ0FBQyxjQUFjLEdBQUcsb0RBQXdDLENBQUM7UUFDOUUsSUFBSSxDQUFDO1lBQ0gsU0FBUyxDQUFDLG1CQUFtQixDQUFDLG1CQUFtQixDQUFDLENBQUM7UUFDckQsQ0FBQztRQUFDLE9BQU8sQ0FBQyxFQUFFLENBQUM7WUFDWCxnQkFBTSxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsT0FBTyxFQUFFLHFCQUFxQixDQUFDLENBQUM7UUFDakQsQ0FBQztJQUNILENBQUMsQ0FBQyxDQUFDO0FBQ0wsQ0FBQyxDQUFDLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgYXNzZXJ0IGZyb20gJ2Fzc2VydCc7XG5pbXBvcnQgc2hvdWxkIGZyb20gJ3Nob3VsZCc7XG5cbmltcG9ydCB7IGNvaW5zIH0gZnJvbSAnQGJpdGdvL3N0YXRpY3MnO1xuXG5pbXBvcnQgeyBPbmVTdGVwUHJlQXBwcm92YWxCdWlsZGVyLCBUcmFuc2FjdGlvbiB9IGZyb20gJy4uLy4uLy4uLy4uL3NyYyc7XG5pbXBvcnQgeyBDYW50b25PbmVTdGVwRW5hYmxlbWVudFJlcXVlc3QgfSBmcm9tICcuLi8uLi8uLi8uLi9zcmMvbGliL2lmYWNlJztcblxuaW1wb3J0IHtcbiAgSW52YWxpZE9uZVN0ZXBQcmVBcHByb3ZhbFByZXBhcmVSZXNwb25zZSxcbiAgT25lU3RlcEVuYWJsZW1lbnQsXG4gIE9uZVN0ZXBQcmVBcHByb3ZhbFByZXBhcmVSZXNwb25zZSxcbn0gZnJvbSAnLi4vLi4vLi4vcmVzb3VyY2VzJztcblxuZGVzY3JpYmUoJ1dhbGxldCBQcmUtYXBwcm92YWwgRW5hYmxlbWVudCBCdWlsZGVyJywgKCkgPT4ge1xuICBpdCgnc2hvdWxkIGdldCB0aGUgb25lIHN0ZXAgZW5hYmxlbWVudCByZXF1ZXN0IG9iamVjdCcsIGZ1bmN0aW9uICgpIHtcbiAgICBjb25zdCB0eEJ1aWxkZXIgPSBuZXcgT25lU3RlcFByZUFwcHJvdmFsQnVpbGRlcihjb2lucy5nZXQoJ3RjYW50b24nKSk7XG4gICAgY29uc3Qgb25lU3RlcEVuYWJsZW1lbnRUeCA9IG5ldyBUcmFuc2FjdGlvbihjb2lucy5nZXQoJ3RjYW50b24nKSk7XG4gICAgdHhCdWlsZGVyLmluaXRCdWlsZGVyKG9uZVN0ZXBFbmFibGVtZW50VHgpO1xuICAgIHR4QnVpbGRlci5zZXRUcmFuc2FjdGlvbihPbmVTdGVwUHJlQXBwcm92YWxQcmVwYXJlUmVzcG9uc2UpO1xuICAgIGNvbnN0IHsgY29tbWFuZElkLCBwYXJ0eUlkIH0gPSBPbmVTdGVwRW5hYmxlbWVudDtcbiAgICB0eEJ1aWxkZXIuY29tbWFuZElkKGNvbW1hbmRJZCkucmVjZWl2ZXJQYXJ0eUlkKHBhcnR5SWQpO1xuICAgIGNvbnN0IHJlcXVlc3RPYmo6IENhbnRvbk9uZVN0ZXBFbmFibGVtZW50UmVxdWVzdCA9IHR4QnVpbGRlci50b1JlcXVlc3RPYmplY3QoKTtcbiAgICBzaG91bGQuZXhpc3QocmVxdWVzdE9iaik7XG4gICAgYXNzZXJ0LmVxdWFsKHJlcXVlc3RPYmouY29tbWFuZElkLCBjb21tYW5kSWQpO1xuICAgIGFzc2VydC5lcXVhbChyZXF1ZXN0T2JqLnJlY2VpdmVySWQsIHBhcnR5SWQpO1xuICAgIGFzc2VydC5lcXVhbChyZXF1ZXN0T2JqLmFjdEFzLmxlbmd0aCwgMSk7XG4gICAgY29uc3QgYWN0QXMgPSByZXF1ZXN0T2JqLmFjdEFzWzBdO1xuICAgIGFzc2VydC5lcXVhbChhY3RBcywgcGFydHlJZCk7XG4gIH0pO1xuXG4gIGl0KCdzaG91bGQgdmFsaWRhdGUgcmF3IHRyYW5zYWN0aW9uJywgZnVuY3Rpb24gKCkge1xuICAgIGNvbnN0IHR4QnVpbGRlciA9IG5ldyBPbmVTdGVwUHJlQXBwcm92YWxCdWlsZGVyKGNvaW5zLmdldCgndGNhbnRvbicpKTtcbiAgICBjb25zdCBvbmVTdGVwRW5hYmxlbWVudFR4ID0gbmV3IFRyYW5zYWN0aW9uKGNvaW5zLmdldCgndGNhbnRvbicpKTtcbiAgICB0eEJ1aWxkZXIuaW5pdEJ1aWxkZXIob25lU3RlcEVuYWJsZW1lbnRUeCk7XG4gICAgdHhCdWlsZGVyLnNldFRyYW5zYWN0aW9uKE9uZVN0ZXBQcmVBcHByb3ZhbFByZXBhcmVSZXNwb25zZSk7XG4gICAgdHhCdWlsZGVyLnZhbGlkYXRlUmF3VHJhbnNhY3Rpb24oT25lU3RlcFByZUFwcHJvdmFsUHJlcGFyZVJlc3BvbnNlLnByZXBhcmVkVHJhbnNhY3Rpb24pO1xuICB9KTtcblxuICBpdCgnc2hvdWxkIHZhbGlkYXRlIHRoZSB0cmFuc2FjdGlvbicsIGZ1bmN0aW9uICgpIHtcbiAgICBjb25zdCB0eEJ1aWxkZXIgPSBuZXcgT25lU3RlcFByZUFwcHJvdmFsQnVpbGRlcihjb2lucy5nZXQoJ3RjYW50b24nKSk7XG4gICAgY29uc3Qgb25lU3RlcEVuYWJsZW1lbnRUeCA9IG5ldyBUcmFuc2FjdGlvbihjb2lucy5nZXQoJ3RjYW50b24nKSk7XG4gICAgb25lU3RlcEVuYWJsZW1lbnRUeC5wcmVwYXJlQ29tbWFuZCA9IE9uZVN0ZXBQcmVBcHByb3ZhbFByZXBhcmVSZXNwb25zZTtcbiAgICB0eEJ1aWxkZXIuaW5pdEJ1aWxkZXIob25lU3RlcEVuYWJsZW1lbnRUeCk7XG4gICAgdHhCdWlsZGVyLnNldFRyYW5zYWN0aW9uKE9uZVN0ZXBQcmVBcHByb3ZhbFByZXBhcmVSZXNwb25zZSk7XG4gICAgdHhCdWlsZGVyLnZhbGlkYXRlVHJhbnNhY3Rpb24ob25lU3RlcEVuYWJsZW1lbnRUeCk7XG4gIH0pO1xuXG4gIGl0KCdzaG91bGQgdGhyb3cgZXJyb3IgaW4gdmFsaWRhdGluZyByYXcgdHJhbnNhY3Rpb24nLCBmdW5jdGlvbiAoKSB7XG4gICAgY29uc3QgdHhCdWlsZGVyID0gbmV3IE9uZVN0ZXBQcmVBcHByb3ZhbEJ1aWxkZXIoY29pbnMuZ2V0KCd0Y2FudG9uJykpO1xuICAgIGNvbnN0IG9uZVN0ZXBFbmFibGVtZW50VHggPSBuZXcgVHJhbnNhY3Rpb24oY29pbnMuZ2V0KCd0Y2FudG9uJykpO1xuICAgIHR4QnVpbGRlci5pbml0QnVpbGRlcihvbmVTdGVwRW5hYmxlbWVudFR4KTtcbiAgICB0eEJ1aWxkZXIuc2V0VHJhbnNhY3Rpb24oSW52YWxpZE9uZVN0ZXBQcmVBcHByb3ZhbFByZXBhcmVSZXNwb25zZSk7XG4gICAgdHJ5IHtcbiAgICAgIHR4QnVpbGRlci52YWxpZGF0ZVJhd1RyYW5zYWN0aW9uKEludmFsaWRPbmVTdGVwUHJlQXBwcm92YWxQcmVwYXJlUmVzcG9uc2UucHJlcGFyZWRUcmFuc2FjdGlvbik7XG4gICAgfSBjYXRjaCAoZSkge1xuICAgICAgYXNzZXJ0LmVxdWFsKGUubWVzc2FnZSwgJ2ludmFsaWQgcmF3IHRyYW5zYWN0aW9uLCBoYXNoIG5vdCBtYXRjaGluZycpO1xuICAgIH1cbiAgfSk7XG5cbiAgaXQoJ3Nob3VsZCB0aHJvdyBlcnJvciBpbiB2YWxpZGF0aW5nIHJhdyB0cmFuc2FjdGlvbicsIGZ1bmN0aW9uICgpIHtcbiAgICBjb25zdCB0eEJ1aWxkZXIgPSBuZXcgT25lU3RlcFByZUFwcHJvdmFsQnVpbGRlcihjb2lucy5nZXQoJ3RjYW50b24nKSk7XG4gICAgY29uc3Qgb25lU3RlcEVuYWJsZW1lbnRUeCA9IG5ldyBUcmFuc2FjdGlvbihjb2lucy5nZXQoJ3RjYW50b24nKSk7XG4gICAgdHhCdWlsZGVyLmluaXRCdWlsZGVyKG9uZVN0ZXBFbmFibGVtZW50VHgpO1xuICAgIG9uZVN0ZXBFbmFibGVtZW50VHgucHJlcGFyZUNvbW1hbmQgPSBJbnZhbGlkT25lU3RlcFByZUFwcHJvdmFsUHJlcGFyZVJlc3BvbnNlO1xuICAgIHRyeSB7XG4gICAgICB0eEJ1aWxkZXIudmFsaWRhdGVUcmFuc2FjdGlvbihvbmVTdGVwRW5hYmxlbWVudFR4KTtcbiAgICB9IGNhdGNoIChlKSB7XG4gICAgICBhc3NlcnQuZXF1YWwoZS5tZXNzYWdlLCAnaW52YWxpZCB0cmFuc2FjdGlvbicpO1xuICAgIH1cbiAgfSk7XG59KTtcbiJdfQ==
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=transferBuilder.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"transferBuilder.d.ts","sourceRoot":"","sources":["../../../../../test/unit/builder/transfer/transferBuilder.ts"],"names":[],"mappings":""}
@@ -0,0 +1,63 @@
1
+ "use strict";
2
+ var __importDefault = (this && this.__importDefault) || function (mod) {
3
+ return (mod && mod.__esModule) ? mod : { "default": mod };
4
+ };
5
+ Object.defineProperty(exports, "__esModule", { value: true });
6
+ const assert_1 = __importDefault(require("assert"));
7
+ const should_1 = __importDefault(require("should"));
8
+ const statics_1 = require("@bitgo/statics");
9
+ const src_1 = require("../../../../src");
10
+ const resources_1 = require("../../../resources");
11
+ describe('Transfer Builder', () => {
12
+ it('should get the transfer request object', function () {
13
+ const txBuilder = new src_1.TransferBuilder(statics_1.coins.get('tcanton'));
14
+ const transferTx = new src_1.Transaction(statics_1.coins.get('tcanton'));
15
+ txBuilder.initBuilder(transferTx);
16
+ txBuilder.setTransaction(resources_1.TrasferPrepareResponse);
17
+ const { commandId, senderPartyId, receiverPartyId, amount, sendOneStep, expiryEpoch } = resources_1.TransferObj;
18
+ txBuilder
19
+ .commandId(commandId)
20
+ .senderId(senderPartyId)
21
+ .receiverId(receiverPartyId)
22
+ .amount(amount)
23
+ .sendOneStep(sendOneStep)
24
+ .expiryEpoch(expiryEpoch);
25
+ const requestObj = txBuilder.toRequestObject();
26
+ should_1.default.exist(requestObj);
27
+ assert_1.default.equal(requestObj.commandId, commandId);
28
+ assert_1.default.equal(requestObj.senderPartyId, senderPartyId);
29
+ assert_1.default.equal(requestObj.receiverPartyId, receiverPartyId);
30
+ assert_1.default.equal(requestObj.amount, amount);
31
+ assert_1.default.equal(requestObj.expiryEpoch, expiryEpoch);
32
+ });
33
+ it('should validate raw transaction', function () {
34
+ const txBuilder = new src_1.TransferBuilder(statics_1.coins.get('tcanton'));
35
+ const transferTx = new src_1.Transaction(statics_1.coins.get('tcanton'));
36
+ txBuilder.initBuilder(transferTx);
37
+ txBuilder.setTransaction(resources_1.TrasferPrepareResponse);
38
+ txBuilder.validateRawTransaction(resources_1.TrasferPrepareResponse.preparedTransaction);
39
+ });
40
+ it('should validate the transaction', function () {
41
+ const txBuilder = new src_1.TransferBuilder(statics_1.coins.get('tcanton'));
42
+ const transferTx = new src_1.Transaction(statics_1.coins.get('tcanton'));
43
+ transferTx.prepareCommand = resources_1.TrasferPrepareResponse;
44
+ txBuilder.initBuilder(transferTx);
45
+ txBuilder.setTransaction(resources_1.TrasferPrepareResponse);
46
+ txBuilder.validateTransaction(transferTx);
47
+ });
48
+ it('should throw error in validating raw transaction', function () {
49
+ const txBuilder = new src_1.TransferBuilder(statics_1.coins.get('tcanton'));
50
+ const transferAcceptanceTx = new src_1.Transaction(statics_1.coins.get('tcanton'));
51
+ txBuilder.initBuilder(transferAcceptanceTx);
52
+ const invalidPrepareResponse = resources_1.TrasferPrepareResponse;
53
+ invalidPrepareResponse.preparedTransactionHash = 'y12u05viQ8euhNh9c21KK8lbn/7wM4aeG5U4ouanTWZ=';
54
+ txBuilder.setTransaction(invalidPrepareResponse);
55
+ try {
56
+ txBuilder.validateRawTransaction(invalidPrepareResponse.preparedTransaction);
57
+ }
58
+ catch (e) {
59
+ assert_1.default.equal(e.message, 'invalid raw transaction, hash not matching');
60
+ }
61
+ });
62
+ });
63
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHJhbnNmZXJCdWlsZGVyLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vdGVzdC91bml0L2J1aWxkZXIvdHJhbnNmZXIvdHJhbnNmZXJCdWlsZGVyLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7O0FBQUEsb0RBQTRCO0FBQzVCLG9EQUE0QjtBQUU1Qiw0Q0FBdUM7QUFFdkMseUNBQStEO0FBRy9ELGtEQUF5RTtBQUV6RSxRQUFRLENBQUMsa0JBQWtCLEVBQUUsR0FBRyxFQUFFO0lBQ2hDLEVBQUUsQ0FBQyx3Q0FBd0MsRUFBRTtRQUMzQyxNQUFNLFNBQVMsR0FBRyxJQUFJLHFCQUFlLENBQUMsZUFBSyxDQUFDLEdBQUcsQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFDO1FBQzVELE1BQU0sVUFBVSxHQUFHLElBQUksaUJBQVcsQ0FBQyxlQUFLLENBQUMsR0FBRyxDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUM7UUFDekQsU0FBUyxDQUFDLFdBQVcsQ0FBQyxVQUFVLENBQUMsQ0FBQztRQUNsQyxTQUFTLENBQUMsY0FBYyxDQUFDLGtDQUFzQixDQUFDLENBQUM7UUFDakQsTUFBTSxFQUFFLFNBQVMsRUFBRSxhQUFhLEVBQUUsZUFBZSxFQUFFLE1BQU0sRUFBRSxXQUFXLEVBQUUsV0FBVyxFQUFFLEdBQUcsdUJBQVcsQ0FBQztRQUNwRyxTQUFTO2FBQ04sU0FBUyxDQUFDLFNBQVMsQ0FBQzthQUNwQixRQUFRLENBQUMsYUFBYSxDQUFDO2FBQ3ZCLFVBQVUsQ0FBQyxlQUFlLENBQUM7YUFDM0IsTUFBTSxDQUFDLE1BQU0sQ0FBQzthQUNkLFdBQVcsQ0FBQyxXQUFXLENBQUM7YUFDeEIsV0FBVyxDQUFDLFdBQVcsQ0FBQyxDQUFDO1FBQzVCLE1BQU0sVUFBVSxHQUEwQixTQUFTLENBQUMsZUFBZSxFQUFFLENBQUM7UUFDdEUsZ0JBQU0sQ0FBQyxLQUFLLENBQUMsVUFBVSxDQUFDLENBQUM7UUFDekIsZ0JBQU0sQ0FBQyxLQUFLLENBQUMsVUFBVSxDQUFDLFNBQVMsRUFBRSxTQUFTLENBQUMsQ0FBQztRQUM5QyxnQkFBTSxDQUFDLEtBQUssQ0FBQyxVQUFVLENBQUMsYUFBYSxFQUFFLGFBQWEsQ0FBQyxDQUFDO1FBQ3RELGdCQUFNLENBQUMsS0FBSyxDQUFDLFVBQVUsQ0FBQyxlQUFlLEVBQUUsZUFBZSxDQUFDLENBQUM7UUFDMUQsZ0JBQU0sQ0FBQyxLQUFLLENBQUMsVUFBVSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQztRQUN4QyxnQkFBTSxDQUFDLEtBQUssQ0FBQyxVQUFVLENBQUMsV0FBVyxFQUFFLFdBQVcsQ0FBQyxDQUFDO0lBQ3BELENBQUMsQ0FBQyxDQUFDO0lBRUgsRUFBRSxDQUFDLGlDQUFpQyxFQUFFO1FBQ3BDLE1BQU0sU0FBUyxHQUFHLElBQUkscUJBQWUsQ0FBQyxlQUFLLENBQUMsR0FBRyxDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUM7UUFDNUQsTUFBTSxVQUFVLEdBQUcsSUFBSSxpQkFBVyxDQUFDLGVBQUssQ0FBQyxHQUFHLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBQztRQUN6RCxTQUFTLENBQUMsV0FBVyxDQUFDLFVBQVUsQ0FBQyxDQUFDO1FBQ2xDLFNBQVMsQ0FBQyxjQUFjLENBQUMsa0NBQXNCLENBQUMsQ0FBQztRQUNqRCxTQUFTLENBQUMsc0JBQXNCLENBQUMsa0NBQXNCLENBQUMsbUJBQW1CLENBQUMsQ0FBQztJQUMvRSxDQUFDLENBQUMsQ0FBQztJQUVILEVBQUUsQ0FBQyxpQ0FBaUMsRUFBRTtRQUNwQyxNQUFNLFNBQVMsR0FBRyxJQUFJLHFCQUFlLENBQUMsZUFBSyxDQUFDLEdBQUcsQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFDO1FBQzVELE1BQU0sVUFBVSxHQUFHLElBQUksaUJBQVcsQ0FBQyxlQUFLLENBQUMsR0FBRyxDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUM7UUFDekQsVUFBVSxDQUFDLGNBQWMsR0FBRyxrQ0FBc0IsQ0FBQztRQUNuRCxTQUFTLENBQUMsV0FBVyxDQUFDLFVBQVUsQ0FBQyxDQUFDO1FBQ2xDLFNBQVMsQ0FBQyxjQUFjLENBQUMsa0NBQXNCLENBQUMsQ0FBQztRQUNqRCxTQUFTLENBQUMsbUJBQW1CLENBQUMsVUFBVSxDQUFDLENBQUM7SUFDNUMsQ0FBQyxDQUFDLENBQUM7SUFFSCxFQUFFLENBQUMsa0RBQWtELEVBQUU7UUFDckQsTUFBTSxTQUFTLEdBQUcsSUFBSSxxQkFBZSxDQUFDLGVBQUssQ0FBQyxHQUFHLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBQztRQUM1RCxNQUFNLG9CQUFvQixHQUFHLElBQUksaUJBQVcsQ0FBQyxlQUFLLENBQUMsR0FBRyxDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUM7UUFDbkUsU0FBUyxDQUFDLFdBQVcsQ0FBQyxvQkFBb0IsQ0FBQyxDQUFDO1FBQzVDLE1BQU0sc0JBQXNCLEdBQUcsa0NBQXNCLENBQUM7UUFDdEQsc0JBQXNCLENBQUMsdUJBQXVCLEdBQUcsOENBQThDLENBQUM7UUFDaEcsU0FBUyxDQUFDLGNBQWMsQ0FBQyxzQkFBc0IsQ0FBQyxDQUFDO1FBQ2pELElBQUksQ0FBQztZQUNILFNBQVMsQ0FBQyxzQkFBc0IsQ0FBQyxzQkFBc0IsQ0FBQyxtQkFBbUIsQ0FBQyxDQUFDO1FBQy9FLENBQUM7UUFBQyxPQUFPLENBQUMsRUFBRSxDQUFDO1lBQ1gsZ0JBQU0sQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLE9BQU8sRUFBRSw0Q0FBNEMsQ0FBQyxDQUFDO1FBQ3hFLENBQUM7SUFDSCxDQUFDLENBQUMsQ0FBQztBQUNMLENBQUMsQ0FBQyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IGFzc2VydCBmcm9tICdhc3NlcnQnO1xuaW1wb3J0IHNob3VsZCBmcm9tICdzaG91bGQnO1xuXG5pbXBvcnQgeyBjb2lucyB9IGZyb20gJ0BiaXRnby9zdGF0aWNzJztcblxuaW1wb3J0IHsgVHJhbnNmZXJCdWlsZGVyLCBUcmFuc2FjdGlvbiB9IGZyb20gJy4uLy4uLy4uLy4uL3NyYyc7XG5pbXBvcnQgeyBDYW50b25UcmFuc2ZlclJlcXVlc3QgfSBmcm9tICcuLi8uLi8uLi8uLi9zcmMvbGliL2lmYWNlJztcblxuaW1wb3J0IHsgVHJhbnNmZXJPYmosIFRyYXNmZXJQcmVwYXJlUmVzcG9uc2UgfSBmcm9tICcuLi8uLi8uLi9yZXNvdXJjZXMnO1xuXG5kZXNjcmliZSgnVHJhbnNmZXIgQnVpbGRlcicsICgpID0+IHtcbiAgaXQoJ3Nob3VsZCBnZXQgdGhlIHRyYW5zZmVyIHJlcXVlc3Qgb2JqZWN0JywgZnVuY3Rpb24gKCkge1xuICAgIGNvbnN0IHR4QnVpbGRlciA9IG5ldyBUcmFuc2ZlckJ1aWxkZXIoY29pbnMuZ2V0KCd0Y2FudG9uJykpO1xuICAgIGNvbnN0IHRyYW5zZmVyVHggPSBuZXcgVHJhbnNhY3Rpb24oY29pbnMuZ2V0KCd0Y2FudG9uJykpO1xuICAgIHR4QnVpbGRlci5pbml0QnVpbGRlcih0cmFuc2ZlclR4KTtcbiAgICB0eEJ1aWxkZXIuc2V0VHJhbnNhY3Rpb24oVHJhc2ZlclByZXBhcmVSZXNwb25zZSk7XG4gICAgY29uc3QgeyBjb21tYW5kSWQsIHNlbmRlclBhcnR5SWQsIHJlY2VpdmVyUGFydHlJZCwgYW1vdW50LCBzZW5kT25lU3RlcCwgZXhwaXJ5RXBvY2ggfSA9IFRyYW5zZmVyT2JqO1xuICAgIHR4QnVpbGRlclxuICAgICAgLmNvbW1hbmRJZChjb21tYW5kSWQpXG4gICAgICAuc2VuZGVySWQoc2VuZGVyUGFydHlJZClcbiAgICAgIC5yZWNlaXZlcklkKHJlY2VpdmVyUGFydHlJZClcbiAgICAgIC5hbW91bnQoYW1vdW50KVxuICAgICAgLnNlbmRPbmVTdGVwKHNlbmRPbmVTdGVwKVxuICAgICAgLmV4cGlyeUVwb2NoKGV4cGlyeUVwb2NoKTtcbiAgICBjb25zdCByZXF1ZXN0T2JqOiBDYW50b25UcmFuc2ZlclJlcXVlc3QgPSB0eEJ1aWxkZXIudG9SZXF1ZXN0T2JqZWN0KCk7XG4gICAgc2hvdWxkLmV4aXN0KHJlcXVlc3RPYmopO1xuICAgIGFzc2VydC5lcXVhbChyZXF1ZXN0T2JqLmNvbW1hbmRJZCwgY29tbWFuZElkKTtcbiAgICBhc3NlcnQuZXF1YWwocmVxdWVzdE9iai5zZW5kZXJQYXJ0eUlkLCBzZW5kZXJQYXJ0eUlkKTtcbiAgICBhc3NlcnQuZXF1YWwocmVxdWVzdE9iai5yZWNlaXZlclBhcnR5SWQsIHJlY2VpdmVyUGFydHlJZCk7XG4gICAgYXNzZXJ0LmVxdWFsKHJlcXVlc3RPYmouYW1vdW50LCBhbW91bnQpO1xuICAgIGFzc2VydC5lcXVhbChyZXF1ZXN0T2JqLmV4cGlyeUVwb2NoLCBleHBpcnlFcG9jaCk7XG4gIH0pO1xuXG4gIGl0KCdzaG91bGQgdmFsaWRhdGUgcmF3IHRyYW5zYWN0aW9uJywgZnVuY3Rpb24gKCkge1xuICAgIGNvbnN0IHR4QnVpbGRlciA9IG5ldyBUcmFuc2ZlckJ1aWxkZXIoY29pbnMuZ2V0KCd0Y2FudG9uJykpO1xuICAgIGNvbnN0IHRyYW5zZmVyVHggPSBuZXcgVHJhbnNhY3Rpb24oY29pbnMuZ2V0KCd0Y2FudG9uJykpO1xuICAgIHR4QnVpbGRlci5pbml0QnVpbGRlcih0cmFuc2ZlclR4KTtcbiAgICB0eEJ1aWxkZXIuc2V0VHJhbnNhY3Rpb24oVHJhc2ZlclByZXBhcmVSZXNwb25zZSk7XG4gICAgdHhCdWlsZGVyLnZhbGlkYXRlUmF3VHJhbnNhY3Rpb24oVHJhc2ZlclByZXBhcmVSZXNwb25zZS5wcmVwYXJlZFRyYW5zYWN0aW9uKTtcbiAgfSk7XG5cbiAgaXQoJ3Nob3VsZCB2YWxpZGF0ZSB0aGUgdHJhbnNhY3Rpb24nLCBmdW5jdGlvbiAoKSB7XG4gICAgY29uc3QgdHhCdWlsZGVyID0gbmV3IFRyYW5zZmVyQnVpbGRlcihjb2lucy5nZXQoJ3RjYW50b24nKSk7XG4gICAgY29uc3QgdHJhbnNmZXJUeCA9IG5ldyBUcmFuc2FjdGlvbihjb2lucy5nZXQoJ3RjYW50b24nKSk7XG4gICAgdHJhbnNmZXJUeC5wcmVwYXJlQ29tbWFuZCA9IFRyYXNmZXJQcmVwYXJlUmVzcG9uc2U7XG4gICAgdHhCdWlsZGVyLmluaXRCdWlsZGVyKHRyYW5zZmVyVHgpO1xuICAgIHR4QnVpbGRlci5zZXRUcmFuc2FjdGlvbihUcmFzZmVyUHJlcGFyZVJlc3BvbnNlKTtcbiAgICB0eEJ1aWxkZXIudmFsaWRhdGVUcmFuc2FjdGlvbih0cmFuc2ZlclR4KTtcbiAgfSk7XG5cbiAgaXQoJ3Nob3VsZCB0aHJvdyBlcnJvciBpbiB2YWxpZGF0aW5nIHJhdyB0cmFuc2FjdGlvbicsIGZ1bmN0aW9uICgpIHtcbiAgICBjb25zdCB0eEJ1aWxkZXIgPSBuZXcgVHJhbnNmZXJCdWlsZGVyKGNvaW5zLmdldCgndGNhbnRvbicpKTtcbiAgICBjb25zdCB0cmFuc2ZlckFjY2VwdGFuY2VUeCA9IG5ldyBUcmFuc2FjdGlvbihjb2lucy5nZXQoJ3RjYW50b24nKSk7XG4gICAgdHhCdWlsZGVyLmluaXRCdWlsZGVyKHRyYW5zZmVyQWNjZXB0YW5jZVR4KTtcbiAgICBjb25zdCBpbnZhbGlkUHJlcGFyZVJlc3BvbnNlID0gVHJhc2ZlclByZXBhcmVSZXNwb25zZTtcbiAgICBpbnZhbGlkUHJlcGFyZVJlc3BvbnNlLnByZXBhcmVkVHJhbnNhY3Rpb25IYXNoID0gJ3kxMnUwNXZpUThldWhOaDljMjFLSzhsYm4vN3dNNGFlRzVVNG91YW5UV1o9JztcbiAgICB0eEJ1aWxkZXIuc2V0VHJhbnNhY3Rpb24oaW52YWxpZFByZXBhcmVSZXNwb25zZSk7XG4gICAgdHJ5IHtcbiAgICAgIHR4QnVpbGRlci52YWxpZGF0ZVJhd1RyYW5zYWN0aW9uKGludmFsaWRQcmVwYXJlUmVzcG9uc2UucHJlcGFyZWRUcmFuc2FjdGlvbik7XG4gICAgfSBjYXRjaCAoZSkge1xuICAgICAgYXNzZXJ0LmVxdWFsKGUubWVzc2FnZSwgJ2ludmFsaWQgcmF3IHRyYW5zYWN0aW9uLCBoYXNoIG5vdCBtYXRjaGluZycpO1xuICAgIH1cbiAgfSk7XG59KTtcbiJdfQ==
@@ -5,26 +5,48 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
5
5
  Object.defineProperty(exports, "__esModule", { value: true });
6
6
  const assert_1 = __importDefault(require("assert"));
7
7
  const should_1 = __importDefault(require("should"));
8
+ const sdk_core_1 = require("@bitgo/sdk-core");
8
9
  const utils_1 = __importDefault(require("../../src/lib/utils"));
9
10
  const resources_1 = require("../resources");
10
11
  describe('Canton Util', function () {
11
12
  describe('Raw transaction parser', function () {
12
13
  it('should parse the prepared transaction', () => {
13
- const parsedData = utils_1.default.parseRawCantonTransactionData(resources_1.PreparedTransactionRawData);
14
+ const parsedData = utils_1.default.parseRawCantonTransactionData(resources_1.PreparedTransactionRawData, sdk_core_1.TransactionType.Send);
14
15
  should_1.default.exist(parsedData);
15
16
  assert_1.default.equal(parsedData.sender, 'abc-1::12200c1ee226fbdf9fba3461c2c0c73331b69d3c6fd8cfce28cdf864141141cc656d');
16
17
  assert_1.default.equal(parsedData.receiver, 'abc-2::12207e96ada18a845adf4dc01410265633d5266dca9bb280c98e35c3692db87d3e35');
17
- assert_1.default.equal(parsedData.amount, '20.0000000000');
18
+ assert_1.default.equal(parsedData.amount, '200000000000');
19
+ });
20
+ it('should parse correctly when receiver is on 2-step', () => {
21
+ const parsedData = utils_1.default.parseRawCantonTransactionData(resources_1.PreparedTxn2StepReceiver, sdk_core_1.TransactionType.Send);
22
+ should_1.default.exist(parsedData);
23
+ assert_1.default.equal(parsedData.sender, '1220a::1220ade60300cf7d0b18ffaa2ffe4f492ad1ad601cfc162b20f77ec99d16c2c2f158');
24
+ assert_1.default.equal(parsedData.receiver, 'ravi-test-party-1::122092e7d33ac10c0f3d55976342f37555df05da5b742956d56a62ae2367769079d2');
25
+ assert_1.default.equal(parsedData.amount, '20000000000');
26
+ });
27
+ it('should parse correctly 1', () => {
28
+ const parsedData = utils_1.default.parseRawCantonTransactionData(resources_1.PreparedTxn1StepReceiver, sdk_core_1.TransactionType.Send);
29
+ should_1.default.exist(parsedData);
30
+ assert_1.default.equal(parsedData.sender, '1220a::1220ade60300cf7d0b18ffaa2ffe4f492ad1ad601cfc162b20f77ec99d16c2c2f158');
31
+ assert_1.default.equal(parsedData.receiver, 'ravi-demo-party-txn-01-tapper::1220ea7ab5a723f8a6b2078e617e6c58cb7e78e49947ddc239e1a941aa56e6ba08b4');
32
+ assert_1.default.equal(parsedData.amount, '20000000000');
18
33
  });
19
34
  it('should parse the acceptance prepared transaction', () => {
20
- const parsedData = utils_1.default.parseRawCantonTransactionData(resources_1.TransferAcceptancePrepareResponse.preparedTransaction);
35
+ const parsedData = utils_1.default.parseRawCantonTransactionData(resources_1.TransferAcceptancePrepareResponse.preparedTransaction, sdk_core_1.TransactionType.TransferAccept);
21
36
  should_1.default.exist(parsedData);
22
37
  assert_1.default.equal(parsedData.sender, 'DSO::1220be58c29e65de40bf273be1dc2b266d43a9a002ea5b18955aeef7aac881bb471a');
23
- assert_1.default.equal(parsedData.receiver, 'ravi-demo-party-txn-01-tapper::1220ea7ab5a723f8a6b2078e617e6c58cb7e78e49947ddc239e1a941aa56e6ba08b4');
24
- assert_1.default.equal(parsedData.amount, '5.0000000000');
38
+ assert_1.default.equal(parsedData.receiver, 'abcde::12205b4e3537a95126d90604592344d8ad3c3ddccda4f79901954280ee19c576714d');
39
+ assert_1.default.equal(parsedData.amount, '50000000000');
40
+ });
41
+ it('should parse the rejection prepared transaction', () => {
42
+ const parsedData = utils_1.default.parseRawCantonTransactionData(resources_1.TransferRejectionPrepareResponse.preparedTransaction, sdk_core_1.TransactionType.TransferReject);
43
+ should_1.default.exist(parsedData);
44
+ assert_1.default.equal(parsedData.sender, 'DSO::1220be58c29e65de40bf273be1dc2b266d43a9a002ea5b18955aeef7aac881bb471a');
45
+ assert_1.default.equal(parsedData.receiver, '12201::122038402cf1650876d2920d6047b11a4aaf0de7b428e9916009cba2a22b1ae22c1a');
46
+ assert_1.default.equal(parsedData.amount, '50000000000');
25
47
  });
26
48
  it('should parse the one-step preapproval prepared transaction', () => {
27
- const parsedData = utils_1.default.parseRawCantonTransactionData(resources_1.OneStepPreApprovalPrepareResponse.preparedTransaction);
49
+ const parsedData = utils_1.default.parseRawCantonTransactionData(resources_1.OneStepPreApprovalPrepareResponse.preparedTransaction, sdk_core_1.TransactionType.OneStepPreApproval);
28
50
  should_1.default.exist(parsedData);
29
51
  assert_1.default.equal(parsedData.sender, 'Bitgo-devnet-validator-1::1220a0a0f60b0e62b5d750c484b18c091dba23080c133d944614ba75a5858cba3045');
30
52
  assert_1.default.equal(parsedData.receiver, 'ravi-test-party-1::12205b4e3537a95126d90604592344d8ad3c3ddccda4f79901954280ee19c576714d');
@@ -90,4 +112,4 @@ describe('Canton Util', function () {
90
112
  });
91
113
  });
92
114
  });
93
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidXRpbHMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi90ZXN0L3VuaXQvdXRpbHMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7QUFBQSxvREFBNEI7QUFDNUIsb0RBQTRCO0FBQzVCLGdFQUF3QztBQUN4Qyw0Q0FRc0I7QUFFdEIsUUFBUSxDQUFDLGFBQWEsRUFBRTtJQUN0QixRQUFRLENBQUMsd0JBQXdCLEVBQUU7UUFDakMsRUFBRSxDQUFDLHVDQUF1QyxFQUFFLEdBQUcsRUFBRTtZQUMvQyxNQUFNLFVBQVUsR0FBRyxlQUFLLENBQUMsNkJBQTZCLENBQUMsc0NBQTBCLENBQUMsQ0FBQztZQUNuRixnQkFBTSxDQUFDLEtBQUssQ0FBQyxVQUFVLENBQUMsQ0FBQztZQUN6QixnQkFBTSxDQUFDLEtBQUssQ0FBQyxVQUFVLENBQUMsTUFBTSxFQUFFLDZFQUE2RSxDQUFDLENBQUM7WUFDL0csZ0JBQU0sQ0FBQyxLQUFLLENBQUMsVUFBVSxDQUFDLFFBQVEsRUFBRSw2RUFBNkUsQ0FBQyxDQUFDO1lBQ2pILGdCQUFNLENBQUMsS0FBSyxDQUFDLFVBQVUsQ0FBQyxNQUFNLEVBQUUsZUFBZSxDQUFDLENBQUM7UUFDbkQsQ0FBQyxDQUFDLENBQUM7UUFFSCxFQUFFLENBQUMsa0RBQWtELEVBQUUsR0FBRyxFQUFFO1lBQzFELE1BQU0sVUFBVSxHQUFHLGVBQUssQ0FBQyw2QkFBNkIsQ0FBQyw2Q0FBaUMsQ0FBQyxtQkFBbUIsQ0FBQyxDQUFDO1lBQzlHLGdCQUFNLENBQUMsS0FBSyxDQUFDLFVBQVUsQ0FBQyxDQUFDO1lBQ3pCLGdCQUFNLENBQUMsS0FBSyxDQUFDLFVBQVUsQ0FBQyxNQUFNLEVBQUUsMkVBQTJFLENBQUMsQ0FBQztZQUM3RyxnQkFBTSxDQUFDLEtBQUssQ0FDVixVQUFVLENBQUMsUUFBUSxFQUNuQixxR0FBcUcsQ0FDdEcsQ0FBQztZQUNGLGdCQUFNLENBQUMsS0FBSyxDQUFDLFVBQVUsQ0FBQyxNQUFNLEVBQUUs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QUMsT0FBTyxFQUFFLEtBQUssQ0FBQyxDQUFDO1FBQ3JDLENBQUMsQ0FBQyxDQUFDO0lBQ0wsQ0FBQyxDQUFDLENBQUM7QUFDTCxDQUFDLENBQUMsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCBhc3NlcnQgZnJvbSAnYXNzZXJ0JztcbmltcG9ydCBzaG91bGQgZnJvbSAnc2hvdWxkJztcbmltcG9ydCB1dGlscyBmcm9tICcuLi8uLi9zcmMvbGliL3V0aWxzJztcbmltcG9ydCB7XG4gIENBTlRPTl9BRERSRVNTRVMsXG4gIENBTlRPTl9CTE9DS19IRUlHSFQsXG4gIEdlbmVyYXRlVG9wb2xvZ3lSZXNwb25zZSxcbiAgT25lU3RlcFByZUFwcHJvdmFsUHJlcGFyZVJlc3BvbnNlLFxuICBQcmVwYXJlZFRyYW5zYWN0aW9uUmF3RGF0YSxcbiAgUHJlcGFyZVN1Ym1pc3Npb25SZXNwb25zZSxcbiAgVHJhbnNmZXJBY2NlcHRhbmNlUHJlcGFyZVJlc3BvbnNlLFxufSBmcm9tICcuLi9yZXNvdXJjZXMnO1xuXG5kZXNjcmliZSgnQ2FudG9uIFV0aWwnLCBmdW5jdGlvbiAoKSB7XG4gIGRlc2NyaWJlKCdSYXcgdHJhbnNhY3Rpb24gcGFyc2VyJywgZnVuY3Rpb24gKCkge1xuICAgIGl0KCdzaG91bGQgcGFyc2UgdGhlIHByZXBhcmVkIHRyYW5zYWN0aW9uJywgKCkgPT4ge1xuICAgICAgY29uc3QgcGFyc2VkRGF0YSA9IHV0aWxzLnBhcnNlUmF3Q2FudG9uVHJhbnNhY3Rpb25EYXRhKFByZXBhcmVkVHJhbnNhY3Rpb25SYXdEYXRhKTtcbiAgICAgIHNob3VsZC5leGlzdChwYXJzZWREYXRhKTtcbiAgICAgIGFzc2VydC5lcXVhbChwYXJzZWREYXRhLnNlbmRlciwgJ2FiYy0xOjoxMjIwMGMxZWUyMjZmYmRmOWZiYTM0NjFjMmMwYzczMzMxYjY5ZDNjNmZkOGNmY2UyOGNkZjg2NDE0MTE0MWNjNjU2ZCcpO1xuICAgICAgYXNzZXJ0LmVxdWFsKHBhcnNlZERhdGEucmVjZWl2ZXIsICdhYmMtMjo6MTIyMDdlOTZhZGExOGE4NDVhZGY0ZGMwMTQxMDI2NTYzM2Q1MjY2ZGNhOWJiMjgwYzk4ZTM1YzM2OTJkYjg3ZDNlMzUnKTtcbiAgICAgIGFzc2VydC5lcXVhbChwYXJzZWREYXRhLmFtb3VudCwgJzIwLjAwMDAwMDAwMDAnKTtcbiAgICB9KTtcblxuICAgIGl0KCdzaG91bGQgcGFyc2UgdGhlIGFjY2VwdGFuY2UgcHJlcGFyZWQgdHJhbnNhY3Rpb24nLCAoKSA9PiB7XG4gICAgICBjb25zdCBwYXJzZWREYXRhID0gdXRpbHMucGFyc2VSYXdDYW50b25UcmFuc2FjdGlvbkRhdGEoVHJhbnNmZXJBY2NlcHRhbmNlUHJlcGFyZVJlc3BvbnNlLnByZXBhcmVkVHJhbnNhY3Rpb24pO1xuICAgICAgc2hvdWxkLmV4aXN0KHBhcnNlZERhdGEpO1xuICAgICAgYXNzZXJ0LmVxdWFsKHBhcnNlZERhdGEuc2VuZGVyLCAnRFNPOjoxMjIwYmU1OGMyOWU2NWRlNDBiZjI3M2JlMWRjMmIyNjZkNDNhOWEwMDJlYTViMTg5NTVhZWVmN2FhYzg4MWJiNDcxYScpO1xuICAgICAgYXNzZXJ0LmVxdWFsKFxuICAgICAgICBwYXJzZWREYXRhLnJlY2VpdmVyLFxuICAgICAgICAncmF2aS1kZW1vLXBhcnR5LXR4bi0wMS10YXBwZXI6OjEyMjBlYTdhYjVhNzIzZjhhNmIyMDc4ZTYxN2U2YzU4Y2I3ZTc4ZTQ5OTQ3ZGRjMjM5ZTFhOTQxYWE1NmU2YmEwOGI0J1xuICAgICAgKTtcbiAgICAgIGFzc2VydC5lcXVhbChwYXJzZWREYXRhLmFtb3VudCwgJzUuMDAwMDAwMDAwMCcpO1xuICAgIH0pO1xuXG4gICAgaXQoJ3Nob3VsZCBwYXJzZSB0aGUgb25lLXN0ZXAgcHJlYXBwcm92YWwgcHJlcGFyZWQgdHJhbnNhY3Rpb24nLCAoKSA9PiB7XG4gICAgICBjb25zdCBwYXJzZWREYXRhID0gdXRpbHMucGFyc2VSYXdDYW50b25UcmFuc2FjdGlvbkRhdGEoT25lU3RlcFByZUFwcHJvdmFsUHJlcGFyZVJlc3BvbnNlLnByZXBhcmVkVHJhbnNhY3Rpb24pO1xuICAgICAgc2hvdWxkLmV4aXN0KHBhcnNlZERhdGEpO1xuICAgICAgYXNzZXJ0LmVxdWFsKFxuICAgICAgICBwYXJzZWREYXRhLnNlbmRlcixcbiAgICAgICAgJ0JpdGdvLWRldm5ldC12YWxpZGF0b3ItMTo6MTIyMGEwYTBmNjBiMGU2MmI1ZDc1MGM0ODRiMThjMDkxZGJhMjMwODBjMTMzZDk0NDYxNGJhNzVhNTg1OGNiYTMwNDUnXG4gICAgICApO1xuICAgICAgYXNzZXJ0LmVxdWFsKFxuICAgICAgICBwYXJzZWREYXRhLnJlY2VpdmVyLFxuICAgICAgICAncmF2aS10ZXN0LXBhcnR5LTE6OjEyMjA1YjRlMzUzN2E5NTEyNmQ5MDYwNDU5MjM0NGQ4YWQzYzNkZGNjZGE0Zjc5OTAxOTU0MjgwZWUxOWM1NzY3MTRkJ1xuICAgICAgKTtcbiAgICAgIGFzc2VydC5lcXVhbChwYXJzZWREYXRhLmFtb3VudCwgJzAnKTtcbiAgICB9KTtcbiAgfSk7XG5cbiAgZGVzY3JpYmUoJ1dhbGxldCBpbml0IHRyYW5zYWN0aW9uJywgZnVuY3Rpb24gKCkge1xuICAgIGl0KCdzaG91bGQgbG9jYWxseSBnZW5lcmF0ZSBhbmQgdmFsaWRhdGUgdGhlIGhhc2ggZm9yIHRvcG9sb2d5IHRyYW5zYWN0aW9uJywgZnVuY3Rpb24gKCkge1xuICAgICAgY29uc3QgY29tcHV0ZWRIYXNoID0gdXRpbHMuY29tcHV0ZUhhc2hGcm9tQ3JlYXRlUGFydHlSZXNwb25zZShHZW5lcmF0ZVRvcG9sb2d5UmVzcG9uc2UudG9wb2xvZ3lUcmFuc2FjdGlvbnMpO1xuICAgICAgc2hvdWxkLmV4aXN0KGNvbXB1dGVkSGFzaCk7XG4gICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoY29tcHV0ZWRIYXNoLCBHZW5lcmF0ZVRvcG9sb2d5UmVzcG9uc2UubXVsdGlIYXNoKTtcbiAgICB9KTtcbiAgfSk7XG5cbiAgZGVzY3JpYmUoJ1ByZXBhcmUgc3VibWlzc2lvbiByZXNwb25zZSB2YWxpZGF0aW9uJywgZnVuY3Rpb24gKCkge1xuICAgIGl0KCdzaG91bGQgbG9jYWxseSBnZW5lcmF0ZSBhbmQgdmFsaWRhdGUgdGhlIGhhc2ggZm9yIHByZXBhcmUgc3VibWlzc2lvbiByZXNwb25zZScsIGFzeW5jIGZ1bmN0aW9uICgpIHtcbiAgICAgIGNvbnN0IGNvbXB1dGVkSGFzaCA9IGF3YWl0IHV0aWxzLmNvbXB1dGVIYXNoRnJvbVByZXBhcmVTdWJtaXNzaW9uUmVzcG9uc2UoXG4gICAgICAgIFByZXBhcmVTdWJtaXNzaW9uUmVzcG9uc2UucHJlcGFyZWRUcmFuc2FjdGlvblxuICAgICAgKTtcbiAgICAgIHNob3VsZC5leGlzdChjb21wdXRlZEhhc2gpO1xuICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKGNvbXB1dGVkSGFzaCwgUHJlcGFyZVN1Ym1pc3Npb25SZXNwb25zZS5wcmVwYXJlZFRyYW5zYWN0aW9uSGFzaCk7XG4gICAgfSk7XG4gIH0pO1xuXG4gIGRlc2NyaWJlKCdDaGVjayBpZiB0aGUgYWRkcmVzcyBpcyB2YWxpZCcsIGZ1bmN0aW9uICgpIHtcbiAgICBpdCgnc2hvdWxkIHJldHVybiB0cnVlIHdoZW4gdGhlIGFkZHJlc3MgaXMgdmFsaWQnLCBmdW5jdGlvbiAoKSB7XG4gICAgICBjb25zdCBpc1ZhbGlkID0gdXRpbHMuaXNWYWxpZEFkZHJlc3MoQ0FOVE9OX0FERFJFU1NFUy5WQUxJRF9BRERSRVNTKTtcbiAgICAgIHNob3VsZC5leGlzdChpc1ZhbGlkKTtcbiAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChpc1ZhbGlkLCB0cnVlKTtcbiAgICB9KTtcblxuICAgIGl0KCdzaG91bGQgcmV0dXJuIGZhbHNlIHdoZW4gcGFydHkgaGludCBpcyBpbnZhbGlkJywgZnVuY3Rpb24gKCkge1xuICAgICAgY29uc3QgaXNWYWxpZCA9IHV0aWxzLmlzVmFsaWRBZGRyZXNzKENBTlRPTl9BRERSRVNTRVMuSU5WQUxJRF9QQVJUWV9ISU5UKTtcbiAgICAgIHNob3VsZC5leGlzdChpc1ZhbGlkKTtcbiAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChpc1ZhbGlkLCBmYWxzZSk7XG4gICAgfSk7XG5cbiAgICBpdCgnc2hvdWxkIHJldHVybiBmYWxzZSB3aGVuIGZpbmdlcnByaW50IGlzIGludmFsaWQnLCBmdW5jdGlvbiAoKSB7XG4gICAgICBjb25zdCBpc1ZhbGlkID0gdXRpbHMuaXNWYWxpZEFkZHJlc3MoQ0FOVE9OX0FERFJFU1NFUy5JTlZBTElEX0ZJTkdFUlBSSU5UKTtcbiAgICAgIHNob3VsZC5leGlzdChpc1ZhbGlkKTtcbiAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChpc1ZhbGlkLCBmYWxzZSk7XG4gICAgfSk7XG5cbiAgICBpdCgnc2hvdWxkIHJldHVybiBmYWxzZSB3aGVuIHBhcnR5IGhpbnQgaXMgbWlzc2luZycsIGZ1bmN0aW9uICgpIHtcbiAgICAgIGNvbnN0IGlzVmFsaWQgPSB1dGlscy5pc1ZhbGlkQWRkcmVzcyhDQU5UT05fQUREUkVTU0VTLk1JU1NJTkdfUEFSVFlfSElOVCk7XG4gICAgICBzaG91bGQuZXhpc3QoaXNWYWxpZCk7XG4gICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoaXNWYWxpZCwgZmFsc2UpO1xuICAgIH0pO1xuXG4gICAgaXQoJ3Nob3VsZCByZXR1cm4gZmFsc2Ugd2hlbiBmaW5nZXJwcmludCBpcyBtaXNzaW5nJywgZnVuY3Rpb24gKCkge1xuICAgICAgY29uc3QgaXNWYWxpZCA9IHV0aWxzLmlzVmFsaWRBZGRyZXNzKENBTlRPTl9BRERSRVNTRVMuTUlTU0lOR19GSU5HRVJQUklOVCk7XG4gICAgICBzaG91bGQuZXhpc3QoaXNWYWxpZCk7XG4gICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoaXNWYWxpZCwgZmFsc2UpO1xuICAgIH0pO1xuICB9KTtcblxuICBkZXNjcmliZSgnQ2hlY2sgaWYgYmxvY2sgaGFzaCBpcyB2YWxpZCcsIGZ1bmN0aW9uICgpIHtcbiAgICBpdCgnc2hvdWxkIHJldHVybiB0cnVlIHdoZW4gdGhlIGJsb2NrIGhhc2ggaXMgdmFsaWQnLCBmdW5jdGlvbiAoKSB7XG4gICAgICBjb25zdCBpc1ZhbGlkID0gdXRpbHMuaXNWYWxpZEJsb2NrSWQoQ0FOVE9OX0JMT0NLX0hFSUdIVC5WQUxJRF9IQVNIKTtcbiAgICAgIHNob3VsZC5leGlzdChpc1ZhbGlkKTtcbiAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChpc1ZhbGlkLCB0cnVlKTtcbiAgICB9KTtcblxuICAgIGl0KCdzaG91bGQgcmV0dXJuIGZhbHNlIHdoZW4gdGhlIGJsb2NrIGhhc2ggaXMgbm90IGEgbnVtYmVyJywgZnVuY3Rpb24gKCkge1xuICAgICAgY29uc3QgaXNWYWxpZCA9IHV0aWxzLmlzVmFsaWRCbG9ja0lkKENBTlRPTl9CTE9DS19IRUlHSFQuSU5WQUxJRF9CTE9DS19IQVNIKTtcbiAgICAgIHNob3VsZC5leGlzdChpc1ZhbGlkKTtcbiAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChpc1ZhbGlkLCBmYWxzZSk7XG4gICAgfSk7XG5cbiAgICBpdCgnc2hvdWxkIHJldHVybiBmYWxzZSB3aGVuIHRoZSBibG9jayBoYXNoIGlzIG5lZ2F0aXZlJywgZnVuY3Rpb24gKCkge1xuICAgICAgY29uc3QgaXNWYWxpZCA9IHV0aWxzLmlzVmFsaWRCbG9ja0lkKENBTlRPTl9CTE9DS19IRUlHSFQuTkVHQVRJVkVfQkxPQ0tfSEFTSCk7XG4gICAgICBzaG91bGQuZXhpc3QoaXNWYWxpZCk7XG4gICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoaXNWYWxpZCwgZmFsc2UpO1xuICAgIH0pO1xuICB9KTtcbn0pO1xuIl19
115
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidXRpbHMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi90ZXN0L3VuaXQvdXRpbHMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7QUFBQSxvREFBNEI7QUFDNUIsb0RBQTRCO0FBRTVCLDhDQUFrRDtBQUVsRCxnRUFBd0M7QUFDeEMsNENBV3NCO0FBRXRCLFFBQVEsQ0FBQyxhQUFhLEVBQUU7SUFDdEIsUUFBUSxDQUFDLHdCQUF3QixFQUFFO1FBQ2pDLEVBQUUsQ0FBQyx1Q0FBdUMsRUFBRSxHQUFHLEVBQUU7WUFDL0MsTUFBTSxVQUFVLEdBQUcsZUFBSyxDQUFDLDZCQUE2QixDQUFDLHNDQUEwQixFQUFFLDBCQUFlLENBQUMsSUFBSSxDQUFDLENBQUM7WUFDekcsZ0JBQU0sQ0FBQyxLQUFLLENBQUMsVUFBVSxDQUFDLENBQUM7WUFDekIsZ0JBQU0sQ0FBQyxLQUFLLENBQUMsVUFBVSxDQUFDLE1BQU0sRUFBRSw2RUFBNkUsQ0FBQyxDQUFDO1lBQy9HLGdCQUFNLENBQUMsS0FBSyxDQUFDLFVBQVUsQ0FBQyxRQUFRLEVBQUUsNkVBQTZFLENBQUMsQ0FBQztZQUNqSCxnQkFBTSxDQUFDLEtBQUssQ0FBQyxVQUFVLENBQUMsTUFBTSxFQUFFLGNBQWMsQ0FBQyxDQUFDO1FBQ2xELENBQUMsQ0FBQyxDQUFDO1FBRUgsRUFBRSxDQUFDLG1EQUFtRCxFQUFFLEdBQUcsRUFBRTtZQUMzRCxNQUFNLFVBQVUsR0FBRyxlQUFLLENBQUMsNkJBQTZCLENBQUMsb0NBQXdCLEVBQUUsMEJBQWUsQ0FBQyxJQUFJLENBQUMsQ0FBQztZQUN2RyxnQkFBTSxDQUFDLEtBQUssQ0FBQyxVQUFVLENBQUMsQ0FBQztZQUN6QixnQkFBTSxDQUFDLEtBQUssQ0FBQyxVQUFVLENBQUMsTUFBTSxFQUFFLDZFQUE2RSxDQUFDLENBQUM7WUFDL0csZ0JBQU0sQ0FBQyxLQUFLLENBQ1YsVUFBVSxDQUFDLFFBQVEsRUFDbkIseUZBQXlGLENBQzFGLENBQUM7WUFD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QUMsK0JBQW1CLENBQUMsa0JBQWtCLENBQUMsQ0FBQztZQUM3RSxnQkFBTSxDQUFDLEtBQUssQ0FBQyxPQUFPLENBQUMsQ0FBQztZQUN0QixnQkFBTSxDQUFDLFdBQVcsQ0FBQyxPQUFPLEVBQUUsS0FBSyxDQUFDLENBQUM7UUFDckMsQ0FBQyxDQUFDLENBQUM7UUFFSCxFQUFFLENBQUMscURBQXFELEVBQUU7WUFDeEQsTUFBTSxPQUFPLEdBQUcsZUFBSyxDQUFDLGNBQWMsQ0FBQywrQkFBbUIsQ0FBQyxtQkFBbUIsQ0FBQyxDQUFDO1lBQzlFLGdCQUFNLENBQUMsS0FBSyxDQUFDLE9BQU8sQ0FBQyxDQUFDO1lBQ3RCLGdCQUFNLENBQUMsV0FBVyxDQUFDLE9BQU8sRUFBRSxLQUFLLENBQUMsQ0FBQztRQUNyQyxDQUFDLENBQUMsQ0FBQztJQUNMLENBQUMsQ0FBQyxDQUFDO0FBQ0wsQ0FBQyxDQUFDLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgYXNzZXJ0IGZyb20gJ2Fzc2VydCc7XG5pbXBvcnQgc2hvdWxkIGZyb20gJ3Nob3VsZCc7XG5cbmltcG9ydCB7IFRyYW5zYWN0aW9uVHlwZSB9IGZyb20gJ0BiaXRnby9zZGstY29yZSc7XG5cbmltcG9ydCB1dGlscyBmcm9tICcuLi8uLi9zcmMvbGliL3V0aWxzJztcbmltcG9ydCB7XG4gIENBTlRPTl9BRERSRVNTRVMsXG4gIENBTlRPTl9CTE9DS19IRUlHSFQsXG4gIEdlbmVyYXRlVG9wb2xvZ3lSZXNwb25zZSxcbiAgT25lU3RlcFByZUFwcHJvdmFsUHJlcGFyZVJlc3BvbnNlLFxuICBQcmVwYXJlZFRyYW5zYWN0aW9uUmF3RGF0YSxcbiAgUHJlcGFyZWRUeG4xU3RlcFJlY2VpdmVyLFxuICBQcmVwYXJlZFR4bjJTdGVwUmVjZWl2ZXIsXG4gIFByZXBhcmVTdWJtaXNzaW9uUmVzcG9uc2UsXG4gIFRyYW5zZmVyQWNjZXB0YW5jZVByZXBhcmVSZXNwb25zZSxcbiAgVHJhbnNmZXJSZWplY3Rpb25QcmVwYXJlUmVzcG9uc2UsXG59IGZyb20gJy4uL3Jlc291cmNlcyc7XG5cbmRlc2NyaWJlKCdDYW50b24gVXRpbCcsIGZ1bmN0aW9uICgpIHtcbiAgZGVzY3JpYmUoJ1JhdyB0cmFuc2FjdGlvbiBwYXJzZXInLCBmdW5jdGlvbiAoKSB7XG4gICAgaXQoJ3Nob3VsZCBwYXJzZSB0aGUgcHJlcGFyZWQgdHJhbnNhY3Rpb24nLCAoKSA9PiB7XG4gICAgICBjb25zdCBwYXJzZWREYXRhID0gdXRpbHMucGFyc2VSYXdDYW50b25UcmFuc2FjdGlvbkRhdGEoUHJlcGFyZWRUcmFuc2FjdGlvblJhd0RhdGEsIFRyYW5zYWN0aW9uVHlwZS5TZW5kKTtcbiAgICAgIHNob3VsZC5leGlzdChwYXJzZWREYXRhKTtcbiAgICAgIGFzc2VydC5lcXVhbChwYXJzZWREYXRhLnNlbmRlciwgJ2FiYy0xOjoxMjIwMGMxZWUyMjZmYmRmOWZiYTM0NjFjMmMwYzczMzMxYjY5ZDNjNmZkOGNmY2UyOGNkZjg2NDE0MTE0MWNjNjU2ZCcpO1xuICAgICAgYXNzZXJ0LmVxdWFsKHBhcnNlZERhdGEucmVjZWl2ZXIsICdhYmMtMjo6MTIyMDdlOTZhZGExOGE4NDVhZGY0ZGMwMTQxMDI2NTYzM2Q1MjY2ZGNhOWJiMjgwYzk4ZTM1YzM2OTJkYjg3ZDNlMzUnKTtcbiAgICAgIGFzc2VydC5lcXVhbChwYXJzZWREYXRhLmFtb3VudCwgJzIwMDAwMDAwMDAwMCcpO1xuICAgIH0pO1xuXG4gICAgaXQoJ3Nob3VsZCBwYXJzZSBjb3JyZWN0bHkgd2hlbiByZWNlaXZlciBpcyBvbiAyLXN0ZXAnLCAoKSA9PiB7XG4gICAgICBjb25zdCBwYXJzZWREYXRhID0gdXRpbHMucGFyc2VSYXdDYW50b25UcmFuc2FjdGlvbkRhdGEoUHJlcGFyZWRUeG4yU3RlcFJlY2VpdmVyLCBUcmFuc2FjdGlvblR5cGUuU2VuZCk7XG4gICAgICBzaG91bGQuZXhpc3QocGFyc2VkRGF0YSk7XG4gICAgICBhc3NlcnQuZXF1YWwocGFyc2VkRGF0YS5zZW5kZXIsICcxMjIwYTo6MTIyMGFkZTYwMzAwY2Y3ZDBiMThmZmFhMmZmZTRmNDkyYWQxYWQ2MDFjZmMxNjJiMjBmNzdlYzk5ZDE2YzJjMmYxNTgnKTtcbiAgICAgIGFzc2VydC5lcXVhbChcbiAgICAgICAgcGFyc2VkRGF0YS5yZWNlaXZlcixcbiAgICAgICAgJ3JhdmktdGVzdC1wYXJ0eS0xOjoxMjIwOTJlN2QzM2FjMTBjMGYzZDU1OTc2MzQyZjM3NTU1ZGYwNWRhNWI3NDI5NTZkNTZhNjJhZTIzNjc3NjkwNzlkMidcbiAgICAgICk7XG4gICAgICBhc3NlcnQuZXF1YWwocGFyc2VkRGF0YS5hbW91bnQsICcyMDAwMDAwMDAwMCcpO1xuICAgIH0pO1xuXG4gICAgaXQoJ3Nob3VsZCBwYXJzZSBjb3JyZWN0bHkgMScsICgpID0+IHtcbiAgICAgIGNvbnN0IHBhcnNlZERhdGEgPSB1dGlscy5wYXJzZVJhd0NhbnRvblRyYW5zYWN0aW9uRGF0YShQcmVwYXJlZFR4bjFTdGVwUmVjZWl2ZXIsIFRyYW5zYWN0aW9uVHlwZS5TZW5kKTtcbiAgICAgIHNob3VsZC5leGlzdChwYXJzZWREYXRhKTtcbiAgICAgIGFzc2VydC5lcXVhbChwYXJzZWREYXRhLnNlbmRlciwgJzEyMjBhOjoxMjIwYWRlNjAzMDBjZjdkMGIxOGZmYWEyZmZlNGY0OTJhZDFhZDYwMWNmYzE2MmIyMGY3N2VjOTlkMTZjMmMyZjE1OCcpO1xuICAgICAgYXNzZXJ0LmVxdWFsKFxuICAgICAgICBwYXJzZWREYXRhLnJlY2VpdmVyLFxuICAgICAgICAncmF2aS1kZW1vLXBhcnR5LXR4bi0wMS10YXBwZXI6OjEyMjBlYTdhYjVhNzIzZjhhNmIyMDc4ZTYxN2U2YzU4Y2I3ZTc4ZTQ5OTQ3ZGRjMjM5ZTFhOTQxYWE1NmU2YmEwOGI0J1xuICAgICAgKTtcbiAgICAgIGFzc2VydC5lcXVhbChwYXJzZWREYXRhLmFtb3VudCwgJzIwMDAwMDAwMDAwJyk7XG4gICAgfSk7XG5cbiAgICBpdCgnc2hvdWxkIHBhcnNlIHRoZSBhY2NlcHRhbmNlIHByZXBhcmVkIHRyYW5zYWN0aW9uJywgKCkgPT4ge1xuICAgICAgY29uc3QgcGFyc2VkRGF0YSA9IHV0aWxzLnBhcnNlUmF3Q2FudG9uVHJhbnNhY3Rpb25EYXRhKFxuICAgICAgICBUcmFuc2ZlckFjY2VwdGFuY2VQcmVwYXJlUmVzcG9uc2UucHJlcGFyZWRUcmFuc2FjdGlvbixcbiAgICAgICAgVHJhbnNhY3Rpb25UeXBlLlRyYW5zZmVyQWNjZXB0XG4gICAgICApO1xuICAgICAgc2hvdWxkLmV4aXN0KHBhcnNlZERhdGEpO1xuICAgICAgYXNzZXJ0LmVxdWFsKHBhcnNlZERhdGEuc2VuZGVyLCAnRFNPOjoxMjIwYmU1OGMyOWU2NWRlNDBiZjI3M2JlMWRjMmIyNjZkNDNhOWEwMDJlYTViMTg5NTVhZWVmN2FhYzg4MWJiNDcxYScpO1xuICAgICAgYXNzZXJ0LmVxdWFsKHBhcnNlZERhdGEucmVjZWl2ZXIsICdhYmNkZTo6MTIyMDViNGUzNTM3YTk1MTI2ZDkwNjA0NTkyMzQ0ZDhhZDNjM2RkY2NkYTRmNzk5MDE5NTQyODBlZTE5YzU3NjcxNGQnKTtcbiAgICAgIGFzc2VydC5lcXVhbChwYXJzZWREYXRhLmFtb3VudCwgJzUwMDAwMDAwMDAwJyk7XG4gICAgfSk7XG5cbiAgICBpdCgnc2hvdWxkIHBhcnNlIHRoZSByZWplY3Rpb24gcHJlcGFyZWQgdHJhbnNhY3Rpb24nLCAoKSA9PiB7XG4gICAgICBjb25zdCBwYXJzZWREYXRhID0gdXRpbHMucGFyc2VSYXdDYW50b25UcmFuc2FjdGlvbkRhdGEoXG4gICAgICAgIFRyYW5zZmVyUmVqZWN0aW9uUHJlcGFyZVJlc3BvbnNlLnByZXBhcmVkVHJhbnNhY3Rpb24sXG4gICAgICAgIFRyYW5zYWN0aW9uVHlwZS5UcmFuc2ZlclJlamVjdFxuICAgICAgKTtcbiAgICAgIHNob3VsZC5leGlzdChwYXJzZWREYXRhKTtcbiAgICAgIGFzc2VydC5lcXVhbChwYXJzZWREYXRhLnNlbmRlciwgJ0RTTzo6MTIyMGJlNThjMjllNjVkZTQwYmYyNzNiZTFkYzJiMjY2ZDQzYTlhMDAyZWE1YjE4OTU1YWVlZjdhYWM4ODFiYjQ3MWEnKTtcbiAgICAgIGFzc2VydC5lcXVhbChwYXJzZWREYXRhLnJlY2VpdmVyLCAnMTIyMDE6OjEyMjAzODQwMmNmMTY1MDg3NmQyOTIwZDYwNDdiMTFhNGFhZjBkZTdiNDI4ZTk5MTYwMDljYmEyYTIyYjFhZTIyYzFhJyk7XG4gICAgICBhc3NlcnQuZXF1YWwocGFyc2VkRGF0YS5hbW91bnQsICc1MDAwMDAwMDAwMCcpO1xuICAgIH0pO1xuXG4gICAgaXQoJ3Nob3VsZCBwYXJzZSB0aGUgb25lLXN0ZXAgcHJlYXBwcm92YWwgcHJlcGFyZWQgdHJhbnNhY3Rpb24nLCAoKSA9PiB7XG4gICAgICBjb25zdCBwYXJzZWREYXRhID0gdXRpbHMucGFyc2VSYXdDYW50b25UcmFuc2FjdGlvbkRhdGEoXG4gICAgICAgIE9uZVN0ZXBQcmVBcHByb3ZhbFByZXBhcmVSZXNwb25zZS5wcmVwYXJlZFRyYW5zYWN0aW9uLFxuICAgICAgICBUcmFuc2FjdGlvblR5cGUuT25lU3RlcFByZUFwcHJvdmFsXG4gICAgICApO1xuICAgICAgc2hvdWxkLmV4aXN0KHBhcnNlZERhdGEpO1xuICAgICAgYXNzZXJ0LmVxdWFsKFxuICAgICAgICBwYXJzZWREYXRhLnNlbmRlcixcbiAgICAgICAgJ0JpdGdvLWRldm5ldC12YWxpZGF0b3ItMTo6MTIyMGEwYTBmNjBiMGU2MmI1ZDc1MGM0ODRiMThjMDkxZGJhMjMwODBjMTMzZDk0NDYxNGJhNzVhNTg1OGNiYTMwNDUnXG4gICAgICApO1xuICAgICAgYXNzZXJ0LmVxdWFsKFxuICAgICAgICBwYXJzZWREYXRhLnJlY2VpdmVyLFxuICAgICAgICAncmF2aS10ZXN0LXBhcnR5LTE6OjEyMjA1YjRlMzUzN2E5NTEyNmQ5MDYwNDU5MjM0NGQ4YWQzYzNkZGNjZGE0Zjc5OTAxOTU0MjgwZWUxOWM1NzY3MTRkJ1xuICAgICAgKTtcbiAgICAgIGFzc2VydC5lcXVhbChwYXJzZWREYXRhLmFtb3VudCwgJzAnKTtcbiAgICB9KTtcbiAgfSk7XG5cbiAgZGVzY3JpYmUoJ1dhbGxldCBpbml0IHRyYW5zYWN0aW9uJywgZnVuY3Rpb24gKCkge1xuICAgIGl0KCdzaG91bGQgbG9jYWxseSBnZW5lcmF0ZSBhbmQgdmFsaWRhdGUgdGhlIGhhc2ggZm9yIHRvcG9sb2d5IHRyYW5zYWN0aW9uJywgZnVuY3Rpb24gKCkge1xuICAgICAgY29uc3QgY29tcHV0ZWRIYXNoID0gdXRpbHMuY29tcHV0ZUhhc2hGcm9tQ3JlYXRlUGFydHlSZXNwb25zZShHZW5lcmF0ZVRvcG9sb2d5UmVzcG9uc2UudG9wb2xvZ3lUcmFuc2FjdGlvbnMpO1xuICAgICAgc2hvdWxkLmV4aXN0KGNvbXB1dGVkSGFzaCk7XG4gICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoY29tcHV0ZWRIYXNoLCBHZW5lcmF0ZVRvcG9sb2d5UmVzcG9uc2UubXVsdGlIYXNoKTtcbiAgICB9KTtcbiAgfSk7XG5cbiAgZGVzY3JpYmUoJ1ByZXBhcmUgc3VibWlzc2lvbiByZXNwb25zZSB2YWxpZGF0aW9uJywgZnVuY3Rpb24gKCkge1xuICAgIGl0KCdzaG91bGQgbG9jYWxseSBnZW5lcmF0ZSBhbmQgdmFsaWRhdGUgdGhlIGhhc2ggZm9yIHByZXBhcmUgc3VibWlzc2lvbiByZXNwb25zZScsIGFzeW5jIGZ1bmN0aW9uICgpIHtcbiAgICAgIGNvbnN0IGNvbXB1dGVkSGFzaCA9IGF3YWl0IHV0aWxzLmNvbXB1dGVIYXNoRnJvbVByZXBhcmVTdWJtaXNzaW9uUmVzcG9uc2UoXG4gICAgICAgIFByZXBhcmVTdWJtaXNzaW9uUmVzcG9uc2UucHJlcGFyZWRUcmFuc2FjdGlvblxuICAgICAgKTtcbiAgICAgIHNob3VsZC5leGlzdChjb21wdXRlZEhhc2gpO1xuICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKGNvbXB1dGVkSGFzaCwgUHJlcGFyZVN1Ym1pc3Npb25SZXNwb25zZS5wcmVwYXJlZFRyYW5zYWN0aW9uSGFzaCk7XG4gICAgfSk7XG4gIH0pO1xuXG4gIGRlc2NyaWJlKCdDaGVjayBpZiB0aGUgYWRkcmVzcyBpcyB2YWxpZCcsIGZ1bmN0aW9uICgpIHtcbiAgICBpdCgnc2hvdWxkIHJldHVybiB0cnVlIHdoZW4gdGhlIGFkZHJlc3MgaXMgdmFsaWQnLCBmdW5jdGlvbiAoKSB7XG4gICAgICBjb25zdCBpc1ZhbGlkID0gdXRpbHMuaXNWYWxpZEFkZHJlc3MoQ0FOVE9OX0FERFJFU1NFUy5WQUxJRF9BRERSRVNTKTtcbiAgICAgIHNob3VsZC5leGlzdChpc1ZhbGlkKTtcbiAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChpc1ZhbGlkLCB0cnVlKTtcbiAgICB9KTtcblxuICAgIGl0KCdzaG91bGQgcmV0dXJuIGZhbHNlIHdoZW4gcGFydHkgaGludCBpcyBpbnZhbGlkJywgZnVuY3Rpb24gKCkge1xuICAgICAgY29uc3QgaXNWYWxpZCA9IHV0aWxzLmlzVmFsaWRBZGRyZXNzKENBTlRPTl9BRERSRVNTRVMuSU5WQUxJRF9QQVJUWV9ISU5UKTtcbiAgICAgIHNob3VsZC5leGlzdChpc1ZhbGlkKTtcbiAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChpc1ZhbGlkLCBmYWxzZSk7XG4gICAgfSk7XG5cbiAgICBpdCgnc2hvdWxkIHJldHVybiBmYWxzZSB3aGVuIGZpbmdlcnByaW50IGlzIGludmFsaWQnLCBmdW5jdGlvbiAoKSB7XG4gICAgICBjb25zdCBpc1ZhbGlkID0gdXRpbHMuaXNWYWxpZEFkZHJlc3MoQ0FOVE9OX0FERFJFU1NFUy5JTlZBTElEX0ZJTkdFUlBSSU5UKTtcbiAgICAgIHNob3VsZC5leGlzdChpc1ZhbGlkKTtcbiAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChpc1ZhbGlkLCBmYWxzZSk7XG4gICAgfSk7XG5cbiAgICBpdCgnc2hvdWxkIHJldHVybiBmYWxzZSB3aGVuIHBhcnR5IGhpbnQgaXMgbWlzc2luZycsIGZ1bmN0aW9uICgpIHtcbiAgICAgIGNvbnN0IGlzVmFsaWQgPSB1dGlscy5pc1ZhbGlkQWRkcmVzcyhDQU5UT05fQUREUkVTU0VTLk1JU1NJTkdfUEFSVFlfSElOVCk7XG4gICAgICBzaG91bGQuZXhpc3QoaXNWYWxpZCk7XG4gICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoaXNWYWxpZCwgZmFsc2UpO1xuICAgIH0pO1xuXG4gICAgaXQoJ3Nob3VsZCByZXR1cm4gZmFsc2Ugd2hlbiBmaW5nZXJwcmludCBpcyBtaXNzaW5nJywgZnVuY3Rpb24gKCkge1xuICAgICAgY29uc3QgaXNWYWxpZCA9IHV0aWxzLmlzVmFsaWRBZGRyZXNzKENBTlRPTl9BRERSRVNTRVMuTUlTU0lOR19GSU5HRVJQUklOVCk7XG4gICAgICBzaG91bGQuZXhpc3QoaXNWYWxpZCk7XG4gICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoaXNWYWxpZCwgZmFsc2UpO1xuICAgIH0pO1xuICB9KTtcblxuICBkZXNjcmliZSgnQ2hlY2sgaWYgYmxvY2sgaGFzaCBpcyB2YWxpZCcsIGZ1bmN0aW9uICgpIHtcbiAgICBpdCgnc2hvdWxkIHJldHVybiB0cnVlIHdoZW4gdGhlIGJsb2NrIGhhc2ggaXMgdmFsaWQnLCBmdW5jdGlvbiAoKSB7XG4gICAgICBjb25zdCBpc1ZhbGlkID0gdXRpbHMuaXNWYWxpZEJsb2NrSWQoQ0FOVE9OX0JMT0NLX0hFSUdIVC5WQUxJRF9IQVNIKTtcbiAgICAgIHNob3VsZC5leGlzdChpc1ZhbGlkKTtcbiAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChpc1ZhbGlkLCB0cnVlKTtcbiAgICB9KTtcblxuICAgIGl0KCdzaG91bGQgcmV0dXJuIGZhbHNlIHdoZW4gdGhlIGJsb2NrIGhhc2ggaXMgbm90IGEgbnVtYmVyJywgZnVuY3Rpb24gKCkge1xuICAgICAgY29uc3QgaXNWYWxpZCA9IHV0aWxzLmlzVmFsaWRCbG9ja0lkKENBTlRPTl9CTE9DS19IRUlHSFQuSU5WQUxJRF9CTE9DS19IQVNIKTtcbiAgICAgIHNob3VsZC5leGlzdChpc1ZhbGlkKTtcbiAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChpc1ZhbGlkLCBmYWxzZSk7XG4gICAgfSk7XG5cbiAgICBpdCgnc2hvdWxkIHJldHVybiBmYWxzZSB3aGVuIHRoZSBibG9jayBoYXNoIGlzIG5lZ2F0aXZlJywgZnVuY3Rpb24gKCkge1xuICAgICAgY29uc3QgaXNWYWxpZCA9IHV0aWxzLmlzVmFsaWRCbG9ja0lkKENBTlRPTl9CTE9DS19IRUlHSFQuTkVHQVRJVkVfQkxPQ0tfSEFTSCk7XG4gICAgICBzaG91bGQuZXhpc3QoaXNWYWxpZCk7XG4gICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoaXNWYWxpZCwgZmFsc2UpO1xuICAgIH0pO1xuICB9KTtcbn0pO1xuIl19