@bitgo-beta/sdk-coin-canton 1.0.1-beta.9 → 1.0.1-beta.90

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 (106) hide show
  1. package/dist/resources/hash/hash.d.ts +5 -0
  2. package/dist/resources/hash/hash.js +298 -0
  3. package/dist/resources/proto/damlTransaction.js +100 -0
  4. package/dist/resources/proto/damlTransactionNode.js +71 -0
  5. package/dist/resources/proto/damlTransactionNodeSeed.js +56 -0
  6. package/dist/resources/proto/metadata/metadataGlobalKeyMappingEntry.js +53 -0
  7. package/dist/resources/proto/metadata/metadataInputContract.js +80 -0
  8. package/dist/resources/proto/metadata/metadataSubmitterInfo.js +62 -0
  9. package/dist/resources/proto/metadata.js +189 -0
  10. package/dist/resources/proto/node/empty.js +36 -0
  11. package/dist/resources/proto/node/globalKey.js +81 -0
  12. package/dist/resources/proto/node/identifier.js +73 -0
  13. package/dist/resources/proto/node/node.js +664 -0
  14. package/dist/resources/proto/node/timestamp.js +145 -0
  15. package/dist/resources/proto/node/value.js +838 -0
  16. package/dist/resources/proto/preparedTransaction.d.ts +8 -0
  17. package/dist/resources/proto/preparedTransaction.js +66 -0
  18. package/dist/src/canton.d.ts +15 -2
  19. package/dist/src/canton.d.ts.map +1 -1
  20. package/dist/src/canton.js +67 -6
  21. package/dist/src/index.d.ts +1 -0
  22. package/dist/src/index.d.ts.map +1 -1
  23. package/dist/src/index.js +2 -1
  24. package/dist/src/lib/constant.d.ts +16 -0
  25. package/dist/src/lib/constant.d.ts.map +1 -0
  26. package/dist/src/lib/constant.js +19 -0
  27. package/dist/src/lib/iface.d.ts +107 -0
  28. package/dist/src/lib/iface.d.ts.map +1 -1
  29. package/dist/src/lib/iface.js +1 -1
  30. package/dist/src/lib/index.d.ts +7 -1
  31. package/dist/src/lib/index.d.ts.map +1 -1
  32. package/dist/src/lib/index.js +15 -3
  33. package/dist/src/lib/keyPair.d.ts +7 -1
  34. package/dist/src/lib/keyPair.d.ts.map +1 -1
  35. package/dist/src/lib/keyPair.js +24 -4
  36. package/dist/src/lib/oneStepPreApprovalBuilder.d.ts +51 -0
  37. package/dist/src/lib/oneStepPreApprovalBuilder.d.ts.map +1 -0
  38. package/dist/src/lib/oneStepPreApprovalBuilder.js +101 -0
  39. package/dist/src/lib/resourcesInterface.d.ts +214 -0
  40. package/dist/src/lib/resourcesInterface.d.ts.map +1 -0
  41. package/dist/src/lib/resourcesInterface.js +3 -0
  42. package/dist/src/lib/transaction/transaction.d.ts +24 -0
  43. package/dist/src/lib/transaction/transaction.d.ts.map +1 -0
  44. package/dist/src/lib/transaction/transaction.js +206 -0
  45. package/dist/src/lib/transactionBuilder.d.ts +10 -17
  46. package/dist/src/lib/transactionBuilder.d.ts.map +1 -1
  47. package/dist/src/lib/transactionBuilder.js +31 -27
  48. package/dist/src/lib/transactionBuilderFactory.d.ts +15 -3
  49. package/dist/src/lib/transactionBuilderFactory.d.ts.map +1 -1
  50. package/dist/src/lib/transactionBuilderFactory.js +56 -6
  51. package/dist/src/lib/transferAcceptanceBuilder.d.ts +59 -0
  52. package/dist/src/lib/transferAcceptanceBuilder.d.ts.map +1 -0
  53. package/dist/src/lib/transferAcceptanceBuilder.js +116 -0
  54. package/dist/src/lib/transferAcknowledgeBuilder.d.ts +72 -0
  55. package/dist/src/lib/transferAcknowledgeBuilder.d.ts.map +1 -0
  56. package/dist/src/lib/transferAcknowledgeBuilder.js +133 -0
  57. package/dist/src/lib/transferBuilder.d.ts +5 -1
  58. package/dist/src/lib/transferBuilder.d.ts.map +1 -1
  59. package/dist/src/lib/transferBuilder.js +8 -1
  60. package/dist/src/lib/transferRejectionBuilder.d.ts +59 -0
  61. package/dist/src/lib/transferRejectionBuilder.d.ts.map +1 -0
  62. package/dist/src/lib/transferRejectionBuilder.js +116 -0
  63. package/dist/src/lib/utils.d.ts +101 -0
  64. package/dist/src/lib/utils.d.ts.map +1 -1
  65. package/dist/src/lib/utils.js +258 -3
  66. package/dist/src/lib/walletInitBuilder.d.ts +101 -0
  67. package/dist/src/lib/walletInitBuilder.d.ts.map +1 -0
  68. package/dist/src/lib/walletInitBuilder.js +232 -0
  69. package/dist/src/lib/walletInitialization/walletInitTransaction.d.ts +17 -0
  70. package/dist/src/lib/walletInitialization/walletInitTransaction.d.ts.map +1 -0
  71. package/dist/src/lib/walletInitialization/walletInitTransaction.js +100 -0
  72. package/dist/test/helper.d.ts +3 -0
  73. package/dist/test/helper.d.ts.map +1 -0
  74. package/dist/test/helper.js +9 -0
  75. package/dist/test/integration/canton.integration.d.ts +2 -0
  76. package/dist/test/integration/canton.integration.d.ts.map +1 -0
  77. package/dist/test/integration/canton.integration.js +40 -0
  78. package/dist/test/resources.d.ts +79 -0
  79. package/dist/test/resources.d.ts.map +1 -0
  80. package/dist/test/resources.js +94 -0
  81. package/dist/test/unit/builder/oneStepEnablement/oneStepEnablementBuilder.d.ts +2 -0
  82. package/dist/test/unit/builder/oneStepEnablement/oneStepEnablementBuilder.d.ts.map +1 -0
  83. package/dist/test/unit/builder/oneStepEnablement/oneStepEnablementBuilder.js +66 -0
  84. package/dist/test/unit/builder/transferAccept/transferAcceptBuilder.d.ts +2 -0
  85. package/dist/test/unit/builder/transferAccept/transferAcceptBuilder.d.ts.map +1 -0
  86. package/dist/test/unit/builder/transferAccept/transferAcceptBuilder.js +57 -0
  87. package/dist/test/unit/builder/transferAcknowledge/transferAcknowledgeBuilder.d.ts +2 -0
  88. package/dist/test/unit/builder/transferAcknowledge/transferAcknowledgeBuilder.d.ts.map +1 -0
  89. package/dist/test/unit/builder/transferAcknowledge/transferAcknowledgeBuilder.js +32 -0
  90. package/dist/test/unit/builder/transferReject/transferRejectBuilder.d.ts +2 -0
  91. package/dist/test/unit/builder/transferReject/transferRejectBuilder.d.ts.map +1 -0
  92. package/dist/test/unit/builder/transferReject/transferRejectBuilder.js +57 -0
  93. package/dist/test/unit/builder/walletInit/walletInitBuilder.d.ts +2 -0
  94. package/dist/test/unit/builder/walletInit/walletInitBuilder.d.ts.map +1 -0
  95. package/dist/test/unit/builder/walletInit/walletInitBuilder.js +65 -0
  96. package/dist/test/unit/keyPair.d.ts +2 -0
  97. package/dist/test/unit/keyPair.d.ts.map +1 -0
  98. package/dist/test/unit/keyPair.js +72 -0
  99. package/dist/test/unit/utils.d.ts +2 -0
  100. package/dist/test/unit/utils.d.ts.map +1 -0
  101. package/dist/test/unit/utils.js +76 -0
  102. package/dist/tsconfig.tsbuildinfo +1 -1
  103. package/package.json +29 -10
  104. package/dist/src/lib/transaction.d.ts +0 -8
  105. package/dist/src/lib/transaction.d.ts.map +0 -1
  106. package/dist/src/lib/transaction.js +0 -17
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=oneStepEnablementBuilder.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"oneStepEnablementBuilder.d.ts","sourceRoot":"","sources":["../../../../../test/unit/builder/oneStepEnablement/oneStepEnablementBuilder.ts"],"names":[],"mappings":""}
@@ -0,0 +1,66 @@
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-beta/statics");
9
+ const src_1 = require("../../../../src");
10
+ const resources_1 = require("../../../resources");
11
+ describe('Wallet Pre-approval Enablement Builder', () => {
12
+ it('should get the one step enablement request object', function () {
13
+ const txBuilder = new src_1.OneStepPreApprovalBuilder(statics_1.coins.get('tcanton'));
14
+ const oneStepEnablementTx = new src_1.Transaction(statics_1.coins.get('tcanton'));
15
+ txBuilder.initBuilder(oneStepEnablementTx);
16
+ const { commandId, partyId } = resources_1.OneStepEnablement;
17
+ txBuilder.commandId(commandId).receiverPartyId(partyId);
18
+ const requestObj = txBuilder.toRequestObject();
19
+ should_1.default.exist(requestObj);
20
+ assert_1.default.equal(requestObj.commandId, commandId);
21
+ assert_1.default.equal(requestObj.receiverId, partyId);
22
+ assert_1.default.equal(requestObj.actAs.length, 1);
23
+ const actAs = requestObj.actAs[0];
24
+ assert_1.default.equal(actAs, partyId);
25
+ });
26
+ it('should validate raw transaction', function () {
27
+ const txBuilder = new src_1.OneStepPreApprovalBuilder(statics_1.coins.get('tcanton'));
28
+ const oneStepEnablementTx = new src_1.Transaction(statics_1.coins.get('tcanton'));
29
+ txBuilder.initBuilder(oneStepEnablementTx);
30
+ txBuilder.setTransaction(resources_1.OneStepPreApprovalPrepareResponse);
31
+ txBuilder.validateRawTransaction(resources_1.OneStepPreApprovalPrepareResponse.preparedTransaction);
32
+ });
33
+ it('should validate the transaction', function () {
34
+ const txBuilder = new src_1.OneStepPreApprovalBuilder(statics_1.coins.get('tcanton'));
35
+ const oneStepEnablementTx = new src_1.Transaction(statics_1.coins.get('tcanton'));
36
+ oneStepEnablementTx.prepareCommand = resources_1.OneStepPreApprovalPrepareResponse;
37
+ txBuilder.initBuilder(oneStepEnablementTx);
38
+ txBuilder.setTransaction(resources_1.OneStepPreApprovalPrepareResponse);
39
+ txBuilder.validateTransaction(oneStepEnablementTx);
40
+ });
41
+ it('should throw error in validating raw transaction', function () {
42
+ const txBuilder = new src_1.OneStepPreApprovalBuilder(statics_1.coins.get('tcanton'));
43
+ const oneStepEnablementTx = new src_1.Transaction(statics_1.coins.get('tcanton'));
44
+ txBuilder.initBuilder(oneStepEnablementTx);
45
+ txBuilder.setTransaction(resources_1.InvalidOneStepPreApprovalPrepareResponse);
46
+ try {
47
+ txBuilder.validateRawTransaction(resources_1.InvalidOneStepPreApprovalPrepareResponse.preparedTransaction);
48
+ }
49
+ catch (e) {
50
+ assert_1.default.equal(e.message, 'invalid raw transaction, hash not matching');
51
+ }
52
+ });
53
+ it('should throw error in validating raw transaction', function () {
54
+ const txBuilder = new src_1.OneStepPreApprovalBuilder(statics_1.coins.get('tcanton'));
55
+ const oneStepEnablementTx = new src_1.Transaction(statics_1.coins.get('tcanton'));
56
+ txBuilder.initBuilder(oneStepEnablementTx);
57
+ oneStepEnablementTx.prepareCommand = resources_1.InvalidOneStepPreApprovalPrepareResponse;
58
+ try {
59
+ txBuilder.validateTransaction(oneStepEnablementTx);
60
+ }
61
+ catch (e) {
62
+ assert_1.default.equal(e.message, 'invalid transaction');
63
+ }
64
+ });
65
+ });
66
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoib25lU3RlcEVuYWJsZW1lbnRCdWlsZGVyLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vdGVzdC91bml0L2J1aWxkZXIvb25lU3RlcEVuYWJsZW1lbnQvb25lU3RlcEVuYWJsZW1lbnRCdWlsZGVyLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7O0FBQUEsb0RBQTRCO0FBQzVCLG9EQUE0QjtBQUU1QixpREFBNEM7QUFFNUMseUNBQXlFO0FBR3pFLGtEQUk0QjtBQUU1QixRQUFRLENBQUMsd0NBQXdDLEVBQUUsR0FBRyxFQUFFO0lBQ3RELEVBQUUsQ0FBQyxtREFBbUQsRUFBRTtRQUN0RCxNQUFNLFNBQVMsR0FBRyxJQUFJLCtCQUF5QixDQUFDLGVBQUssQ0FBQyxHQUFHLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBQztRQUN0RSxNQUFNLG1CQUFtQixHQUFHLElBQUksaUJBQVcsQ0FBQyxlQUFLLENBQUMsR0FBRyxDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUM7UUFDbEUsU0FBUyxDQUFDLFdBQVcsQ0FBQyxtQkFBbUIsQ0FBQyxDQUFDO1FBQzNDLE1BQU0sRUFBRSxTQUFTLEVBQUUsT0FBTyxFQUFFLEdBQUcsNkJBQWlCLENBQUM7UUFDakQsU0FBUyxDQUFDLFNBQVMsQ0FBQyxTQUFTLENBQUMsQ0FBQyxlQUFlLENBQUMsT0FBTyxDQUFDLENBQUM7UUFDeEQsTUFBTSxVQUFVLEdBQW1DLFNBQVMsQ0FBQyxlQUFlLEVBQUUsQ0FBQztRQUMvRSxnQkFBTSxDQUFDLEtBQUssQ0FBQyxVQUFVLENBQUMsQ0FBQztRQUN6QixnQkFBTSxDQUFDLEtBQUssQ0FBQyxVQUFVLENBQUMsU0FBUyxFQUFFLFNBQVMsQ0FBQyxDQUFDO1FBQzlDLGdCQUFNLENBQUMsS0FBSyxDQUFDLFVBQVUsQ0FBQyxVQUFVLEVBQUUsT0FBTyxDQUFDLENBQUM7UUFDN0MsZ0JBQU0sQ0FBQyxLQUFLLENBQUMsVUFBVSxDQUFDLEtBQUssQ0FBQyxNQUFNLEVBQUUsQ0FBQyxDQUFDLENBQUM7UUFDekMsTUFBTSxLQUFLLEdBQUcsVUFBVSxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsQ0FBQztRQUNsQyxnQkFBTSxDQUFDLEtBQUssQ0FBQyxLQUFLLEVBQUUsT0FBTyxDQUFDLENBQUM7SUFDL0IsQ0FBQyxDQUFDLENBQUM7SUFFSCxFQUFFLENBQUMsaUNBQWlDLEVBQUU7UUFDcEMsTUFBTSxTQUFTLEdBQUcsSUFBSSwrQkFBeUIsQ0FBQyxlQUFLLENBQUMsR0FBRyxDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUM7UUFDdEUsTUFBTSxtQkFBbUIsR0FBRyxJQUFJLGlCQUFXLENBQUMsZUFBSyxDQUFDLEdBQUcsQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFDO1FBQ2xFLFNBQVMsQ0FBQyxXQUFXLENBQUMsbUJBQW1CLENBQUMsQ0FBQztRQUMzQyxTQUFTLENBQUMsY0FBYyxDQUFDLDZDQUFpQyxDQUFDLENBQUM7UUFDNUQsU0FBUyxDQUFDLHNCQUFzQixDQUFDLDZDQUFpQyxDQUFDLG1CQUFtQixDQUFDLENBQUM7SUFDMUYsQ0FBQyxDQUFDLENBQUM7SUFFSCxFQUFFLENBQUMsaUNBQWlDLEVBQUU7UUFDcEMsTUFBTSxTQUFTLEdBQUcsSUFBSSwrQkFBeUIsQ0FBQyxlQUFLLENBQUMsR0FBRyxDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUM7UUFDdEUsTUFBTSxtQkFBbUIsR0FBRyxJQUFJLGlCQUFXLENBQUMsZUFBSyxDQUFDLEdBQUcsQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFDO1FBQ2xFLG1CQUFtQixDQUFDLGNBQWMsR0FBRyw2Q0FBaUMsQ0FBQztRQUN2RSxTQUFTLENBQUMsV0FBVyxDQUFDLG1CQUFtQixDQUFDLENBQUM7UUFDM0MsU0FBUyxDQUFDLGNBQWMsQ0FBQyw2Q0FBaUMsQ0FBQyxDQUFDO1FBQzVELFNBQVMsQ0FBQyxtQkFBbUIsQ0FBQyxtQkFBbUIsQ0FBQyxDQUFDO0lBQ3JELENBQUMsQ0FBQyxDQUFDO0lBRUgsRUFBRSxDQUFDLGtEQUFrRCxFQUFFO1FBQ3JELE1BQU0sU0FBUyxHQUFHLElBQUksK0JBQXlCLENBQUMsZUFBSyxDQUFDLEdBQUcsQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFDO1FBQ3RFLE1BQU0sbUJBQW1CLEdBQUcsSUFBSSxpQkFBVyxDQUFDLGVBQUssQ0FBQyxHQUFHLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBQztRQUNsRSxTQUFTLENBQUMsV0FBVyxDQUFDLG1CQUFtQixDQUFDLENBQUM7UUFDM0MsU0FBUyxDQUFDLGNBQWMsQ0FBQyxvREFBd0MsQ0FBQyxDQUFDO1FBQ25FLElBQUksQ0FBQztZQUNILFNBQVMsQ0FBQyxzQkFBc0IsQ0FBQyxvREFBd0MsQ0FBQyxtQkFBbUIsQ0FBQyxDQUFDO1FBQ2pHLENBQUM7UUFBQyxPQUFPLENBQUMsRUFBRSxDQUFDO1lBQ1gsZ0JBQU0sQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLE9BQU8sRUFBRSw0Q0FBNEMsQ0FBQyxDQUFDO1FBQ3hFLENBQUM7SUFDSCxDQUFDLENBQUMsQ0FBQztJQUVILEVBQUUsQ0FBQyxrREFBa0QsRUFBRTtRQUNyRCxNQUFNLFNBQVMsR0FBRyxJQUFJLCtCQUF5QixDQUFDLGVBQUssQ0FBQyxHQUFHLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBQztRQUN0RSxNQUFNLG1CQUFtQixHQUFHLElBQUksaUJBQVcsQ0FBQyxlQUFLLENBQUMsR0FBRyxDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUM7UUFDbEUsU0FBUyxDQUFDLFdBQVcsQ0FBQyxtQkFBbUIsQ0FBQyxDQUFDO1FBQzNDLG1CQUFtQixDQUFDLGNBQWMsR0FBRyxvREFBd0MsQ0FBQztRQUM5RSxJQUFJLENBQUM7WUFDSCxTQUFTLENBQUMsbUJBQW1CLENBQUMsbUJBQW1CLENBQUMsQ0FBQztRQUNyRCxDQUFDO1FBQUMsT0FBTyxDQUFDLEVBQUUsQ0FBQztZQUNYLGdCQUFNLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxPQUFPLEVBQUUscUJBQXFCLENBQUMsQ0FBQztRQUNqRCxDQUFDO0lBQ0gsQ0FBQyxDQUFDLENBQUM7QUFDTCxDQUFDLENBQUMsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCBhc3NlcnQgZnJvbSAnYXNzZXJ0JztcbmltcG9ydCBzaG91bGQgZnJvbSAnc2hvdWxkJztcblxuaW1wb3J0IHsgY29pbnMgfSBmcm9tICdAYml0Z28tYmV0YS9zdGF0aWNzJztcblxuaW1wb3J0IHsgT25lU3RlcFByZUFwcHJvdmFsQnVpbGRlciwgVHJhbnNhY3Rpb24gfSBmcm9tICcuLi8uLi8uLi8uLi9zcmMnO1xuaW1wb3J0IHsgQ2FudG9uT25lU3RlcEVuYWJsZW1lbnRSZXF1ZXN0IH0gZnJvbSAnLi4vLi4vLi4vLi4vc3JjL2xpYi9pZmFjZSc7XG5cbmltcG9ydCB7XG4gIEludmFsaWRPbmVTdGVwUHJlQXBwcm92YWxQcmVwYXJlUmVzcG9uc2UsXG4gIE9uZVN0ZXBFbmFibGVtZW50LFxuICBPbmVTdGVwUHJlQXBwcm92YWxQcmVwYXJlUmVzcG9uc2UsXG59IGZyb20gJy4uLy4uLy4uL3Jlc291cmNlcyc7XG5cbmRlc2NyaWJlKCdXYWxsZXQgUHJlLWFwcHJvdmFsIEVuYWJsZW1lbnQgQnVpbGRlcicsICgpID0+IHtcbiAgaXQoJ3Nob3VsZCBnZXQgdGhlIG9uZSBzdGVwIGVuYWJsZW1lbnQgcmVxdWVzdCBvYmplY3QnLCBmdW5jdGlvbiAoKSB7XG4gICAgY29uc3QgdHhCdWlsZGVyID0gbmV3IE9uZVN0ZXBQcmVBcHByb3ZhbEJ1aWxkZXIoY29pbnMuZ2V0KCd0Y2FudG9uJykpO1xuICAgIGNvbnN0IG9uZVN0ZXBFbmFibGVtZW50VHggPSBuZXcgVHJhbnNhY3Rpb24oY29pbnMuZ2V0KCd0Y2FudG9uJykpO1xuICAgIHR4QnVpbGRlci5pbml0QnVpbGRlcihvbmVTdGVwRW5hYmxlbWVudFR4KTtcbiAgICBjb25zdCB7IGNvbW1hbmRJZCwgcGFydHlJZCB9ID0gT25lU3RlcEVuYWJsZW1lbnQ7XG4gICAgdHhCdWlsZGVyLmNvbW1hbmRJZChjb21tYW5kSWQpLnJlY2VpdmVyUGFydHlJZChwYXJ0eUlkKTtcbiAgICBjb25zdCByZXF1ZXN0T2JqOiBDYW50b25PbmVTdGVwRW5hYmxlbWVudFJlcXVlc3QgPSB0eEJ1aWxkZXIudG9SZXF1ZXN0T2JqZWN0KCk7XG4gICAgc2hvdWxkLmV4aXN0KHJlcXVlc3RPYmopO1xuICAgIGFzc2VydC5lcXVhbChyZXF1ZXN0T2JqLmNvbW1hbmRJZCwgY29tbWFuZElkKTtcbiAgICBhc3NlcnQuZXF1YWwocmVxdWVzdE9iai5yZWNlaXZlcklkLCBwYXJ0eUlkKTtcbiAgICBhc3NlcnQuZXF1YWwocmVxdWVzdE9iai5hY3RBcy5sZW5ndGgsIDEpO1xuICAgIGNvbnN0IGFjdEFzID0gcmVxdWVzdE9iai5hY3RBc1swXTtcbiAgICBhc3NlcnQuZXF1YWwoYWN0QXMsIHBhcnR5SWQpO1xuICB9KTtcblxuICBpdCgnc2hvdWxkIHZhbGlkYXRlIHJhdyB0cmFuc2FjdGlvbicsIGZ1bmN0aW9uICgpIHtcbiAgICBjb25zdCB0eEJ1aWxkZXIgPSBuZXcgT25lU3RlcFByZUFwcHJvdmFsQnVpbGRlcihjb2lucy5nZXQoJ3RjYW50b24nKSk7XG4gICAgY29uc3Qgb25lU3RlcEVuYWJsZW1lbnRUeCA9IG5ldyBUcmFuc2FjdGlvbihjb2lucy5nZXQoJ3RjYW50b24nKSk7XG4gICAgdHhCdWlsZGVyLmluaXRCdWlsZGVyKG9uZVN0ZXBFbmFibGVtZW50VHgpO1xuICAgIHR4QnVpbGRlci5zZXRUcmFuc2FjdGlvbihPbmVTdGVwUHJlQXBwcm92YWxQcmVwYXJlUmVzcG9uc2UpO1xuICAgIHR4QnVpbGRlci52YWxpZGF0ZVJhd1RyYW5zYWN0aW9uKE9uZVN0ZXBQcmVBcHByb3ZhbFByZXBhcmVSZXNwb25zZS5wcmVwYXJlZFRyYW5zYWN0aW9uKTtcbiAgfSk7XG5cbiAgaXQoJ3Nob3VsZCB2YWxpZGF0ZSB0aGUgdHJhbnNhY3Rpb24nLCBmdW5jdGlvbiAoKSB7XG4gICAgY29uc3QgdHhCdWlsZGVyID0gbmV3IE9uZVN0ZXBQcmVBcHByb3ZhbEJ1aWxkZXIoY29pbnMuZ2V0KCd0Y2FudG9uJykpO1xuICAgIGNvbnN0IG9uZVN0ZXBFbmFibGVtZW50VHggPSBuZXcgVHJhbnNhY3Rpb24oY29pbnMuZ2V0KCd0Y2FudG9uJykpO1xuICAgIG9uZVN0ZXBFbmFibGVtZW50VHgucHJlcGFyZUNvbW1hbmQgPSBPbmVTdGVwUHJlQXBwcm92YWxQcmVwYXJlUmVzcG9uc2U7XG4gICAgdHhCdWlsZGVyLmluaXRCdWlsZGVyKG9uZVN0ZXBFbmFibGVtZW50VHgpO1xuICAgIHR4QnVpbGRlci5zZXRUcmFuc2FjdGlvbihPbmVTdGVwUHJlQXBwcm92YWxQcmVwYXJlUmVzcG9uc2UpO1xuICAgIHR4QnVpbGRlci52YWxpZGF0ZVRyYW5zYWN0aW9uKG9uZVN0ZXBFbmFibGVtZW50VHgpO1xuICB9KTtcblxuICBpdCgnc2hvdWxkIHRocm93IGVycm9yIGluIHZhbGlkYXRpbmcgcmF3IHRyYW5zYWN0aW9uJywgZnVuY3Rpb24gKCkge1xuICAgIGNvbnN0IHR4QnVpbGRlciA9IG5ldyBPbmVTdGVwUHJlQXBwcm92YWxCdWlsZGVyKGNvaW5zLmdldCgndGNhbnRvbicpKTtcbiAgICBjb25zdCBvbmVTdGVwRW5hYmxlbWVudFR4ID0gbmV3IFRyYW5zYWN0aW9uKGNvaW5zLmdldCgndGNhbnRvbicpKTtcbiAgICB0eEJ1aWxkZXIuaW5pdEJ1aWxkZXIob25lU3RlcEVuYWJsZW1lbnRUeCk7XG4gICAgdHhCdWlsZGVyLnNldFRyYW5zYWN0aW9uKEludmFsaWRPbmVTdGVwUHJlQXBwcm92YWxQcmVwYXJlUmVzcG9uc2UpO1xuICAgIHRyeSB7XG4gICAgICB0eEJ1aWxkZXIudmFsaWRhdGVSYXdUcmFuc2FjdGlvbihJbnZhbGlkT25lU3RlcFByZUFwcHJvdmFsUHJlcGFyZVJlc3BvbnNlLnByZXBhcmVkVHJhbnNhY3Rpb24pO1xuICAgIH0gY2F0Y2ggKGUpIHtcbiAgICAgIGFzc2VydC5lcXVhbChlLm1lc3NhZ2UsICdpbnZhbGlkIHJhdyB0cmFuc2FjdGlvbiwgaGFzaCBub3QgbWF0Y2hpbmcnKTtcbiAgICB9XG4gIH0pO1xuXG4gIGl0KCdzaG91bGQgdGhyb3cgZXJyb3IgaW4gdmFsaWRhdGluZyByYXcgdHJhbnNhY3Rpb24nLCBmdW5jdGlvbiAoKSB7XG4gICAgY29uc3QgdHhCdWlsZGVyID0gbmV3IE9uZVN0ZXBQcmVBcHByb3ZhbEJ1aWxkZXIoY29pbnMuZ2V0KCd0Y2FudG9uJykpO1xuICAgIGNvbnN0IG9uZVN0ZXBFbmFibGVtZW50VHggPSBuZXcgVHJhbnNhY3Rpb24oY29pbnMuZ2V0KCd0Y2FudG9uJykpO1xuICAgIHR4QnVpbGRlci5pbml0QnVpbGRlcihvbmVTdGVwRW5hYmxlbWVudFR4KTtcbiAgICBvbmVTdGVwRW5hYmxlbWVudFR4LnByZXBhcmVDb21tYW5kID0gSW52YWxpZE9uZVN0ZXBQcmVBcHByb3ZhbFByZXBhcmVSZXNwb25zZTtcbiAgICB0cnkge1xuICAgICAgdHhCdWlsZGVyLnZhbGlkYXRlVHJhbnNhY3Rpb24ob25lU3RlcEVuYWJsZW1lbnRUeCk7XG4gICAgfSBjYXRjaCAoZSkge1xuICAgICAgYXNzZXJ0LmVxdWFsKGUubWVzc2FnZSwgJ2ludmFsaWQgdHJhbnNhY3Rpb24nKTtcbiAgICB9XG4gIH0pO1xufSk7XG4iXX0=
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=transferAcceptBuilder.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"transferAcceptBuilder.d.ts","sourceRoot":"","sources":["../../../../../test/unit/builder/transferAccept/transferAcceptBuilder.ts"],"names":[],"mappings":""}
@@ -0,0 +1,57 @@
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-beta/statics");
9
+ const src_1 = require("../../../../src");
10
+ const resources_1 = require("../../../resources");
11
+ describe('Transfer Acceptance Builder', () => {
12
+ it('should get the transfer acceptance request object', function () {
13
+ const txBuilder = new src_1.TransferAcceptanceBuilder(statics_1.coins.get('tcanton'));
14
+ const transferAcceptanceTx = new src_1.Transaction(statics_1.coins.get('tcanton'));
15
+ txBuilder.initBuilder(transferAcceptanceTx);
16
+ txBuilder.setTransaction(resources_1.TransferAcceptancePrepareResponse);
17
+ const { commandId, contractId, partyId } = resources_1.TransferAcceptance;
18
+ txBuilder.commandId(commandId).contractId(contractId).actAs(partyId);
19
+ const requestObj = txBuilder.toRequestObject();
20
+ should_1.default.exist(requestObj);
21
+ assert_1.default.equal(requestObj.commandId, commandId);
22
+ assert_1.default.equal(requestObj.contractId, contractId);
23
+ assert_1.default.equal(requestObj.actAs.length, 1);
24
+ const actAs = requestObj.actAs[0];
25
+ assert_1.default.equal(actAs, partyId);
26
+ });
27
+ it('should validate raw transaction', function () {
28
+ const txBuilder = new src_1.TransferAcceptanceBuilder(statics_1.coins.get('tcanton'));
29
+ const transferAcceptanceTx = new src_1.Transaction(statics_1.coins.get('tcanton'));
30
+ txBuilder.initBuilder(transferAcceptanceTx);
31
+ txBuilder.setTransaction(resources_1.TransferAcceptancePrepareResponse);
32
+ txBuilder.validateRawTransaction(resources_1.TransferAcceptancePrepareResponse.preparedTransaction);
33
+ });
34
+ it('should validate the transaction', function () {
35
+ const txBuilder = new src_1.TransferAcceptanceBuilder(statics_1.coins.get('tcanton'));
36
+ const transferAcceptanceTx = new src_1.Transaction(statics_1.coins.get('tcanton'));
37
+ transferAcceptanceTx.prepareCommand = resources_1.TransferAcceptancePrepareResponse;
38
+ txBuilder.initBuilder(transferAcceptanceTx);
39
+ txBuilder.setTransaction(resources_1.TransferAcceptancePrepareResponse);
40
+ txBuilder.validateTransaction(transferAcceptanceTx);
41
+ });
42
+ it('should throw error in validating raw transaction', function () {
43
+ const txBuilder = new src_1.TransferAcceptanceBuilder(statics_1.coins.get('tcanton'));
44
+ const transferAcceptanceTx = new src_1.Transaction(statics_1.coins.get('tcanton'));
45
+ txBuilder.initBuilder(transferAcceptanceTx);
46
+ const invalidPrepareResponse = resources_1.TransferAcceptancePrepareResponse;
47
+ invalidPrepareResponse.preparedTransactionHash = '+vlIXv6Vgd2ypPXD0mrdn7RlcSH4c2hCRj2/tXqqUVs=';
48
+ txBuilder.setTransaction(invalidPrepareResponse);
49
+ try {
50
+ txBuilder.validateRawTransaction(invalidPrepareResponse.preparedTransaction);
51
+ }
52
+ catch (e) {
53
+ assert_1.default.equal(e.message, 'invalid raw transaction, hash not matching');
54
+ }
55
+ });
56
+ });
57
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHJhbnNmZXJBY2NlcHRCdWlsZGVyLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vdGVzdC91bml0L2J1aWxkZXIvdHJhbnNmZXJBY2NlcHQvdHJhbnNmZXJBY2NlcHRCdWlsZGVyLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7O0FBQUEsb0RBQTRCO0FBQzVCLG9EQUE0QjtBQUU1QixpREFBNEM7QUFFNUMseUNBQXlFO0FBR3pFLGtEQUEyRjtBQUUzRixRQUFRLENBQUMsNkJBQTZCLEVBQUUsR0FBRyxFQUFFO0lBQzNDLEVBQUUsQ0FBQyxtREFBbUQsRUFBRTtRQUN0RCxNQUFNLFNBQVMsR0FBRyxJQUFJLCtCQUF5QixDQUFDLGVBQUssQ0FBQyxHQUFHLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBQztRQUN0RSxNQUFNLG9CQUFvQixHQUFHLElBQUksaUJBQVcsQ0FBQyxlQUFLLENBQUMsR0FBRyxDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUM7UUFDbkUsU0FBUyxDQUFDLFdBQVcsQ0FBQyxvQkFBb0IsQ0FBQyxDQUFDO1FBQzVDLFNBQVMsQ0FBQyxjQUFjLENBQUMsNkNBQWlDLENBQUMsQ0FBQztRQUM1RCxNQUFNLEVBQUUsU0FBUyxFQUFFLFVBQVUsRUFBRSxPQUFPLEVBQUUsR0FBRyw4QkFBa0IsQ0FBQztRQUM5RCxTQUFTLENBQUMsU0FBUyxDQUFDLFNBQVMsQ0FBQyxDQUFDLFVBQVUsQ0FBQyxVQUFVLENBQUMsQ0FBQyxLQUFLLENBQUMsT0FBTyxDQUFDLENBQUM7UUFDckUsTUFBTSxVQUFVLEdBQXNDLFNBQVMsQ0FBQyxlQUFlLEVBQUUsQ0FBQztRQUNsRixnQkFBTSxDQUFDLEtBQUssQ0FBQyxVQUFVLENBQUMsQ0FBQztRQUN6QixnQkFBTSxDQUFDLEtBQUssQ0FBQyxVQUFVLENBQUMsU0FBUyxFQUFFLFNBQVMsQ0FBQyxDQUFDO1FBQzlDLGdCQUFNLENBQUMsS0FBSyxDQUFDLFVBQVUsQ0FBQyxVQUFVLEVBQUUsVUFBVSxDQUFDLENBQUM7UUFDaEQsZ0JBQU0sQ0FBQyxLQUFLLENBQUMsVUFBVSxDQUFDLEtBQUssQ0FBQyxNQUFNLEVBQUUsQ0FBQyxDQUFDLENBQUM7UUFDekMsTUFBTSxLQUFLLEdBQUcsVUFBVSxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsQ0FBQztRQUNsQyxnQkFBTSxDQUFDLEtBQUssQ0FBQyxLQUFLLEVBQUUsT0FBTyxDQUFDLENBQUM7SUFDL0IsQ0FBQyxDQUFDLENBQUM7SUFFSCxFQUFFLENBQUMsaUNBQWlDLEVBQUU7UUFDcEMsTUFBTSxTQUFTLEdBQUcsSUFBSSwrQkFBeUIsQ0FBQyxlQUFLLENBQUMsR0FBRyxDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUM7UUFDdEUsTUFBTSxvQkFBb0IsR0FBRyxJQUFJLGlCQUFXLENBQUMsZUFBSyxDQUFDLEdBQUcsQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFDO1FBQ25FLFNBQVMsQ0FBQyxXQUFXLENBQUMsb0JBQW9CLENBQUMsQ0FBQztRQUM1QyxTQUFTLENBQUMsY0FBYyxDQUFDLDZDQUFpQyxDQUFDLENBQUM7UUFDNUQsU0FBUyxDQUFDLHNCQUFzQixDQUFDLDZDQUFpQyxDQUFDLG1CQUFtQixDQUFDLENBQUM7SUFDMUYsQ0FBQyxDQUFDLENBQUM7SUFFSCxFQUFFLENBQUMsaUNBQWlDLEVBQUU7UUFDcEMsTUFBTSxTQUFTLEdBQUcsSUFBSSwrQkFBeUIsQ0FBQyxlQUFLLENBQUMsR0FBRyxDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUM7UUFDdEUsTUFBTSxvQkFBb0IsR0FBRyxJQUFJLGlCQUFXLENBQUMsZUFBSyxDQUFDLEdBQUcsQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFDO1FBQ25FLG9CQUFvQixDQUFDLGNBQWMsR0FBRyw2Q0FBaUMsQ0FBQztRQUN4RSxTQUFTLENBQUMsV0FBVyxDQUFDLG9CQUFvQixDQUFDLENBQUM7UUFDNUMsU0FBUyxDQUFDLGNBQWMsQ0FBQyw2Q0FBaUMsQ0FBQyxDQUFDO1FBQzVELFNBQVMsQ0FBQyxtQkFBbUIsQ0FBQyxvQkFBb0IsQ0FBQyxDQUFDO0lBQ3RELENBQUMsQ0FBQyxDQUFDO0lBRUgsRUFBRSxDQUFDLGtEQUFrRCxFQUFFO1FBQ3JELE1BQU0sU0FBUyxHQUFHLElBQUksK0JBQXlCLENBQUMsZUFBSyxDQUFDLEdBQUcsQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFDO1FBQ3RFLE1BQU0sb0JBQW9CLEdBQUcsSUFBSSxpQkFBVyxDQUFDLGVBQUssQ0FBQyxHQUFHLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBQztRQUNuRSxTQUFTLENBQUMsV0FBVyxDQUFDLG9CQUFvQixDQUFDLENBQUM7UUFDNUMsTUFBTSxzQkFBc0IsR0FBRyw2Q0FBaUMsQ0FBQztRQUNqRSxzQkFBc0IsQ0FBQyx1QkFBdUIsR0FBRyw4Q0FBOEMsQ0FBQztRQUNoRyxTQUFTLENBQUMsY0FBYyxDQUFDLHNCQUFzQixDQUFDLENBQUM7UUFDakQsSUFBSSxDQUFDO1lBQ0gsU0FBUyxDQUFDLHNCQUFzQixDQUFDLHNCQUFzQixDQUFDLG1CQUFtQixDQUFDLENBQUM7UUFDL0UsQ0FBQztRQUFDLE9BQU8sQ0FBQyxFQUFFLENBQUM7WUFDWCxnQkFBTSxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsT0FBTyxFQUFFLDRDQUE0QyxDQUFDLENBQUM7UUFDeEUsQ0FBQztJQUNILENBQUMsQ0FBQyxDQUFDO0FBQ0wsQ0FBQyxDQUFDLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgYXNzZXJ0IGZyb20gJ2Fzc2VydCc7XG5pbXBvcnQgc2hvdWxkIGZyb20gJ3Nob3VsZCc7XG5cbmltcG9ydCB7IGNvaW5zIH0gZnJvbSAnQGJpdGdvLWJldGEvc3RhdGljcyc7XG5cbmltcG9ydCB7IFRyYW5zZmVyQWNjZXB0YW5jZUJ1aWxkZXIsIFRyYW5zYWN0aW9uIH0gZnJvbSAnLi4vLi4vLi4vLi4vc3JjJztcbmltcG9ydCB7IENhbnRvblRyYW5zZmVyQWNjZXB0UmVqZWN0UmVxdWVzdCB9IGZyb20gJy4uLy4uLy4uLy4uL3NyYy9saWIvaWZhY2UnO1xuXG5pbXBvcnQgeyBUcmFuc2ZlckFjY2VwdGFuY2UsIFRyYW5zZmVyQWNjZXB0YW5jZVByZXBhcmVSZXNwb25zZSB9IGZyb20gJy4uLy4uLy4uL3Jlc291cmNlcyc7XG5cbmRlc2NyaWJlKCdUcmFuc2ZlciBBY2NlcHRhbmNlIEJ1aWxkZXInLCAoKSA9PiB7XG4gIGl0KCdzaG91bGQgZ2V0IHRoZSB0cmFuc2ZlciBhY2NlcHRhbmNlIHJlcXVlc3Qgb2JqZWN0JywgZnVuY3Rpb24gKCkge1xuICAgIGNvbnN0IHR4QnVpbGRlciA9IG5ldyBUcmFuc2ZlckFjY2VwdGFuY2VCdWlsZGVyKGNvaW5zLmdldCgndGNhbnRvbicpKTtcbiAgICBjb25zdCB0cmFuc2ZlckFjY2VwdGFuY2VUeCA9IG5ldyBUcmFuc2FjdGlvbihjb2lucy5nZXQoJ3RjYW50b24nKSk7XG4gICAgdHhCdWlsZGVyLmluaXRCdWlsZGVyKHRyYW5zZmVyQWNjZXB0YW5jZVR4KTtcbiAgICB0eEJ1aWxkZXIuc2V0VHJhbnNhY3Rpb24oVHJhbnNmZXJBY2NlcHRhbmNlUHJlcGFyZVJlc3BvbnNlKTtcbiAgICBjb25zdCB7IGNvbW1hbmRJZCwgY29udHJhY3RJZCwgcGFydHlJZCB9ID0gVHJhbnNmZXJBY2NlcHRhbmNlO1xuICAgIHR4QnVpbGRlci5jb21tYW5kSWQoY29tbWFuZElkKS5jb250cmFjdElkKGNvbnRyYWN0SWQpLmFjdEFzKHBhcnR5SWQpO1xuICAgIGNvbnN0IHJlcXVlc3RPYmo6IENhbnRvblRyYW5zZmVyQWNjZXB0UmVqZWN0UmVxdWVzdCA9IHR4QnVpbGRlci50b1JlcXVlc3RPYmplY3QoKTtcbiAgICBzaG91bGQuZXhpc3QocmVxdWVzdE9iaik7XG4gICAgYXNzZXJ0LmVxdWFsKHJlcXVlc3RPYmouY29tbWFuZElkLCBjb21tYW5kSWQpO1xuICAgIGFzc2VydC5lcXVhbChyZXF1ZXN0T2JqLmNvbnRyYWN0SWQsIGNvbnRyYWN0SWQpO1xuICAgIGFzc2VydC5lcXVhbChyZXF1ZXN0T2JqLmFjdEFzLmxlbmd0aCwgMSk7XG4gICAgY29uc3QgYWN0QXMgPSByZXF1ZXN0T2JqLmFjdEFzWzBdO1xuICAgIGFzc2VydC5lcXVhbChhY3RBcywgcGFydHlJZCk7XG4gIH0pO1xuXG4gIGl0KCdzaG91bGQgdmFsaWRhdGUgcmF3IHRyYW5zYWN0aW9uJywgZnVuY3Rpb24gKCkge1xuICAgIGNvbnN0IHR4QnVpbGRlciA9IG5ldyBUcmFuc2ZlckFjY2VwdGFuY2VCdWlsZGVyKGNvaW5zLmdldCgndGNhbnRvbicpKTtcbiAgICBjb25zdCB0cmFuc2ZlckFjY2VwdGFuY2VUeCA9IG5ldyBUcmFuc2FjdGlvbihjb2lucy5nZXQoJ3RjYW50b24nKSk7XG4gICAgdHhCdWlsZGVyLmluaXRCdWlsZGVyKHRyYW5zZmVyQWNjZXB0YW5jZVR4KTtcbiAgICB0eEJ1aWxkZXIuc2V0VHJhbnNhY3Rpb24oVHJhbnNmZXJBY2NlcHRhbmNlUHJlcGFyZVJlc3BvbnNlKTtcbiAgICB0eEJ1aWxkZXIudmFsaWRhdGVSYXdUcmFuc2FjdGlvbihUcmFuc2ZlckFjY2VwdGFuY2VQcmVwYXJlUmVzcG9uc2UucHJlcGFyZWRUcmFuc2FjdGlvbik7XG4gIH0pO1xuXG4gIGl0KCdzaG91bGQgdmFsaWRhdGUgdGhlIHRyYW5zYWN0aW9uJywgZnVuY3Rpb24gKCkge1xuICAgIGNvbnN0IHR4QnVpbGRlciA9IG5ldyBUcmFuc2ZlckFjY2VwdGFuY2VCdWlsZGVyKGNvaW5zLmdldCgndGNhbnRvbicpKTtcbiAgICBjb25zdCB0cmFuc2ZlckFjY2VwdGFuY2VUeCA9IG5ldyBUcmFuc2FjdGlvbihjb2lucy5nZXQoJ3RjYW50b24nKSk7XG4gICAgdHJhbnNmZXJBY2NlcHRhbmNlVHgucHJlcGFyZUNvbW1hbmQgPSBUcmFuc2ZlckFjY2VwdGFuY2VQcmVwYXJlUmVzcG9uc2U7XG4gICAgdHhCdWlsZGVyLmluaXRCdWlsZGVyKHRyYW5zZmVyQWNjZXB0YW5jZVR4KTtcbiAgICB0eEJ1aWxkZXIuc2V0VHJhbnNhY3Rpb24oVHJhbnNmZXJBY2NlcHRhbmNlUHJlcGFyZVJlc3BvbnNlKTtcbiAgICB0eEJ1aWxkZXIudmFsaWRhdGVUcmFuc2FjdGlvbih0cmFuc2ZlckFjY2VwdGFuY2VUeCk7XG4gIH0pO1xuXG4gIGl0KCdzaG91bGQgdGhyb3cgZXJyb3IgaW4gdmFsaWRhdGluZyByYXcgdHJhbnNhY3Rpb24nLCBmdW5jdGlvbiAoKSB7XG4gICAgY29uc3QgdHhCdWlsZGVyID0gbmV3IFRyYW5zZmVyQWNjZXB0YW5jZUJ1aWxkZXIoY29pbnMuZ2V0KCd0Y2FudG9uJykpO1xuICAgIGNvbnN0IHRyYW5zZmVyQWNjZXB0YW5jZVR4ID0gbmV3IFRyYW5zYWN0aW9uKGNvaW5zLmdldCgndGNhbnRvbicpKTtcbiAgICB0eEJ1aWxkZXIuaW5pdEJ1aWxkZXIodHJhbnNmZXJBY2NlcHRhbmNlVHgpO1xuICAgIGNvbnN0IGludmFsaWRQcmVwYXJlUmVzcG9uc2UgPSBUcmFuc2ZlckFjY2VwdGFuY2VQcmVwYXJlUmVzcG9uc2U7XG4gICAgaW52YWxpZFByZXBhcmVSZXNwb25zZS5wcmVwYXJlZFRyYW5zYWN0aW9uSGFzaCA9ICcrdmxJWHY2VmdkMnlwUFhEMG1yZG43UmxjU0g0YzJoQ1JqMi90WHFxVVZzPSc7XG4gICAgdHhCdWlsZGVyLnNldFRyYW5zYWN0aW9uKGludmFsaWRQcmVwYXJlUmVzcG9uc2UpO1xuICAgIHRyeSB7XG4gICAgICB0eEJ1aWxkZXIudmFsaWRhdGVSYXdUcmFuc2FjdGlvbihpbnZhbGlkUHJlcGFyZVJlc3BvbnNlLnByZXBhcmVkVHJhbnNhY3Rpb24pO1xuICAgIH0gY2F0Y2ggKGUpIHtcbiAgICAgIGFzc2VydC5lcXVhbChlLm1lc3NhZ2UsICdpbnZhbGlkIHJhdyB0cmFuc2FjdGlvbiwgaGFzaCBub3QgbWF0Y2hpbmcnKTtcbiAgICB9XG4gIH0pO1xufSk7XG4iXX0=
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=transferAcknowledgeBuilder.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"transferAcknowledgeBuilder.d.ts","sourceRoot":"","sources":["../../../../../test/unit/builder/transferAcknowledge/transferAcknowledgeBuilder.ts"],"names":[],"mappings":""}
@@ -0,0 +1,32 @@
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-beta/statics");
9
+ const src_1 = require("../../../../src");
10
+ const resources_1 = require("../../../resources");
11
+ describe('Transfer Acknowledge Builder', () => {
12
+ it('should get the transfer acknowledge request object', function () {
13
+ const txBuilder = new src_1.TransferAcknowledgeBuilder(statics_1.coins.get('tcanton'));
14
+ const tx = new src_1.Transaction(statics_1.coins.get('tcanton'));
15
+ txBuilder.initBuilder(tx);
16
+ const { contractId, updateId, senderPartyId, amount, expiryEpoch } = resources_1.TransferAcknowledgeRequest;
17
+ txBuilder
18
+ .contractId(contractId)
19
+ .senderPartyId(senderPartyId)
20
+ .updateId(updateId)
21
+ .amount(amount)
22
+ .expiryEpoch(expiryEpoch);
23
+ const requestObj = txBuilder.toRequestObject();
24
+ should_1.default.exist(requestObj);
25
+ assert_1.default.equal(requestObj.contractId, contractId);
26
+ assert_1.default.equal(requestObj.senderPartyId, senderPartyId);
27
+ assert_1.default.equal(requestObj.updateId, updateId);
28
+ assert_1.default.equal(requestObj.amount, amount);
29
+ assert_1.default.equal(requestObj.expiryEpoch, expiryEpoch);
30
+ });
31
+ });
32
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHJhbnNmZXJBY2tub3dsZWRnZUJ1aWxkZXIuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi90ZXN0L3VuaXQvYnVpbGRlci90cmFuc2ZlckFja25vd2xlZGdlL3RyYW5zZmVyQWNrbm93bGVkZ2VCdWlsZGVyLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7O0FBQUEsb0RBQTRCO0FBQzVCLG9EQUE0QjtBQUU1QixpREFBNEM7QUFFNUMseUNBQTBFO0FBRzFFLGtEQUFnRTtBQUVoRSxRQUFRLENBQUMsOEJBQThCLEVBQUUsR0FBRyxFQUFFO0lBQzVDLEVBQUUsQ0FBQyxvREFBb0QsRUFBRTtRQUN2RCxNQUFNLFNBQVMsR0FBRyxJQUFJLGdDQUEwQixDQUFDLGVBQUssQ0FBQyxHQUFHLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBQztRQUN2RSxNQUFNLEVBQUUsR0FBRyxJQUFJLGlCQUFXLENBQUMsZUFBSyxDQUFDLEdBQUcsQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFDO1FBQ2pELFNBQVMsQ0FBQyxXQUFXLENBQUMsRUFBRSxDQUFDLENBQUM7UUFDMUIsTUFBTSxFQUFFLFVBQVUsRUFBRSxRQUFRLEVBQUUsYUFBYSxFQUFFLE1BQU0sRUFBRSxXQUFXLEVBQUUsR0FBRyxzQ0FBMEIsQ0FBQztRQUNoRyxTQUFTO2FBQ04sVUFBVSxDQUFDLFVBQVUsQ0FBQzthQUN0QixhQUFhLENBQUMsYUFBYSxDQUFDO2FBQzVCLFFBQVEsQ0FBQyxRQUFRLENBQUM7YUFDbEIsTUFBTSxDQUFDLE1BQU0sQ0FBQzthQUNkLFdBQVcsQ0FBQyxXQUFXLENBQUMsQ0FBQztRQUM1QixNQUFNLFVBQVUsR0FBd0IsU0FBUyxDQUFDLGVBQWUsRUFBRSxDQUFDO1FBQ3BFLGdCQUFNLENBQUMsS0FBSyxDQUFDLFVBQVUsQ0FBQyxDQUFDO1FBQ3pCLGdCQUFNLENBQUMsS0FBSyxDQUFDLFVBQVUsQ0FBQyxVQUFVLEVBQUUsVUFBVSxDQUFDLENBQUM7UUFDaEQsZ0JBQU0sQ0FBQyxLQUFLLENBQUMsVUFBVSxDQUFDLGFBQWEsRUFBRSxhQUFhLENBQUMsQ0FBQztRQUN0RCxnQkFBTSxDQUFDLEtBQUssQ0FBQyxVQUFVLENBQUMsUUFBUSxFQUFFLFFBQVEsQ0FBQyxDQUFDO1FBQzVDLGdCQUFNLENBQUMsS0FBSyxDQUFDLFVBQVUsQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUM7UUFDeEMsZ0JBQU0sQ0FBQyxLQUFLLENBQUMsVUFBVSxDQUFDLFdBQVcsRUFBRSxXQUFXLENBQUMsQ0FBQztJQUNwRCxDQUFDLENBQUMsQ0FBQztBQUNMLENBQUMsQ0FBQyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IGFzc2VydCBmcm9tICdhc3NlcnQnO1xuaW1wb3J0IHNob3VsZCBmcm9tICdzaG91bGQnO1xuXG5pbXBvcnQgeyBjb2lucyB9IGZyb20gJ0BiaXRnby1iZXRhL3N0YXRpY3MnO1xuXG5pbXBvcnQgeyBUcmFuc2ZlckFja25vd2xlZGdlQnVpbGRlciwgVHJhbnNhY3Rpb24gfSBmcm9tICcuLi8uLi8uLi8uLi9zcmMnO1xuaW1wb3J0IHsgVHJhbnNmZXJBY2tub3dsZWRnZSB9IGZyb20gJy4uLy4uLy4uLy4uL3NyYy9saWIvaWZhY2UnO1xuXG5pbXBvcnQgeyBUcmFuc2ZlckFja25vd2xlZGdlUmVxdWVzdCB9IGZyb20gJy4uLy4uLy4uL3Jlc291cmNlcyc7XG5cbmRlc2NyaWJlKCdUcmFuc2ZlciBBY2tub3dsZWRnZSBCdWlsZGVyJywgKCkgPT4ge1xuICBpdCgnc2hvdWxkIGdldCB0aGUgdHJhbnNmZXIgYWNrbm93bGVkZ2UgcmVxdWVzdCBvYmplY3QnLCBmdW5jdGlvbiAoKSB7XG4gICAgY29uc3QgdHhCdWlsZGVyID0gbmV3IFRyYW5zZmVyQWNrbm93bGVkZ2VCdWlsZGVyKGNvaW5zLmdldCgndGNhbnRvbicpKTtcbiAgICBjb25zdCB0eCA9IG5ldyBUcmFuc2FjdGlvbihjb2lucy5nZXQoJ3RjYW50b24nKSk7XG4gICAgdHhCdWlsZGVyLmluaXRCdWlsZGVyKHR4KTtcbiAgICBjb25zdCB7IGNvbnRyYWN0SWQsIHVwZGF0ZUlkLCBzZW5kZXJQYXJ0eUlkLCBhbW91bnQsIGV4cGlyeUVwb2NoIH0gPSBUcmFuc2ZlckFja25vd2xlZGdlUmVxdWVzdDtcbiAgICB0eEJ1aWxkZXJcbiAgICAgIC5jb250cmFjdElkKGNvbnRyYWN0SWQpXG4gICAgICAuc2VuZGVyUGFydHlJZChzZW5kZXJQYXJ0eUlkKVxuICAgICAgLnVwZGF0ZUlkKHVwZGF0ZUlkKVxuICAgICAgLmFtb3VudChhbW91bnQpXG4gICAgICAuZXhwaXJ5RXBvY2goZXhwaXJ5RXBvY2gpO1xuICAgIGNvbnN0IHJlcXVlc3RPYmo6IFRyYW5zZmVyQWNrbm93bGVkZ2UgPSB0eEJ1aWxkZXIudG9SZXF1ZXN0T2JqZWN0KCk7XG4gICAgc2hvdWxkLmV4aXN0KHJlcXVlc3RPYmopO1xuICAgIGFzc2VydC5lcXVhbChyZXF1ZXN0T2JqLmNvbnRyYWN0SWQsIGNvbnRyYWN0SWQpO1xuICAgIGFzc2VydC5lcXVhbChyZXF1ZXN0T2JqLnNlbmRlclBhcnR5SWQsIHNlbmRlclBhcnR5SWQpO1xuICAgIGFzc2VydC5lcXVhbChyZXF1ZXN0T2JqLnVwZGF0ZUlkLCB1cGRhdGVJZCk7XG4gICAgYXNzZXJ0LmVxdWFsKHJlcXVlc3RPYmouYW1vdW50LCBhbW91bnQpO1xuICAgIGFzc2VydC5lcXVhbChyZXF1ZXN0T2JqLmV4cGlyeUVwb2NoLCBleHBpcnlFcG9jaCk7XG4gIH0pO1xufSk7XG4iXX0=
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=transferRejectBuilder.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"transferRejectBuilder.d.ts","sourceRoot":"","sources":["../../../../../test/unit/builder/transferReject/transferRejectBuilder.ts"],"names":[],"mappings":""}
@@ -0,0 +1,57 @@
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-beta/statics");
9
+ const src_1 = require("../../../../src");
10
+ const resources_1 = require("../../../resources");
11
+ describe('Transfer Rejection Builder', () => {
12
+ it('should get the transfer rejection request object', function () {
13
+ const txBuilder = new src_1.TransferRejectionBuilder(statics_1.coins.get('tcanton'));
14
+ const tx = new src_1.Transaction(statics_1.coins.get('tcanton'));
15
+ txBuilder.initBuilder(tx);
16
+ txBuilder.setTransaction(resources_1.TransferRejectionPrepareResponse);
17
+ const { commandId, contractId, partyId } = resources_1.TransferRejection;
18
+ txBuilder.commandId(commandId).contractId(contractId).actAs(partyId);
19
+ const requestObj = txBuilder.toRequestObject();
20
+ should_1.default.exist(requestObj);
21
+ assert_1.default.equal(requestObj.commandId, commandId);
22
+ assert_1.default.equal(requestObj.contractId, contractId);
23
+ assert_1.default.equal(requestObj.actAs.length, 1);
24
+ const actAs = requestObj.actAs[0];
25
+ assert_1.default.equal(actAs, partyId);
26
+ });
27
+ it('should validate raw transaction', function () {
28
+ const txBuilder = new src_1.TransferRejectionBuilder(statics_1.coins.get('tcanton'));
29
+ const tx = new src_1.Transaction(statics_1.coins.get('tcanton'));
30
+ txBuilder.initBuilder(tx);
31
+ txBuilder.setTransaction(resources_1.TransferRejectionPrepareResponse);
32
+ txBuilder.validateRawTransaction(resources_1.TransferRejectionPrepareResponse.preparedTransaction);
33
+ });
34
+ it('should validate the transaction', function () {
35
+ const txBuilder = new src_1.TransferRejectionBuilder(statics_1.coins.get('tcanton'));
36
+ const tx = new src_1.Transaction(statics_1.coins.get('tcanton'));
37
+ tx.prepareCommand = resources_1.TransferRejectionPrepareResponse;
38
+ txBuilder.initBuilder(tx);
39
+ txBuilder.setTransaction(resources_1.TransferRejectionPrepareResponse);
40
+ txBuilder.validateTransaction(tx);
41
+ });
42
+ it('should throw error in validating raw transaction', function () {
43
+ const txBuilder = new src_1.TransferRejectionBuilder(statics_1.coins.get('tcanton'));
44
+ const tx = new src_1.Transaction(statics_1.coins.get('tcanton'));
45
+ txBuilder.initBuilder(tx);
46
+ const invalidPrepareResponse = resources_1.TransferRejectionPrepareResponse;
47
+ invalidPrepareResponse.preparedTransactionHash = 'QFxX1WBdq7lZbSc45iKA3J/oOF9mrVLc3DeKphAjb15=';
48
+ txBuilder.setTransaction(invalidPrepareResponse);
49
+ try {
50
+ txBuilder.validateRawTransaction(invalidPrepareResponse.preparedTransaction);
51
+ }
52
+ catch (e) {
53
+ assert_1.default.equal(e.message, 'invalid raw transaction, hash not matching');
54
+ }
55
+ });
56
+ });
57
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHJhbnNmZXJSZWplY3RCdWlsZGVyLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vdGVzdC91bml0L2J1aWxkZXIvdHJhbnNmZXJSZWplY3QvdHJhbnNmZXJSZWplY3RCdWlsZGVyLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7O0FBQUEsb0RBQTRCO0FBQzVCLG9EQUE0QjtBQUU1QixpREFBNEM7QUFFNUMseUNBQXdFO0FBR3hFLGtEQUF5RjtBQUV6RixRQUFRLENBQUMsNEJBQTRCLEVBQUUsR0FBRyxFQUFFO0lBQzFDLEVBQUUsQ0FBQyxrREFBa0QsRUFBRTtRQUNyRCxNQUFNLFNBQVMsR0FBRyxJQUFJLDhCQUF3QixDQUFDLGVBQUssQ0FBQyxHQUFHLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBQztRQUNyRSxNQUFNLEVBQUUsR0FBRyxJQUFJLGlCQUFXLENBQUMsZUFBSyxDQUFDLEdBQUcsQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFDO1FBQ2pELFNBQVMsQ0FBQyxXQUFXLENBQUMsRUFBRSxDQUFDLENBQUM7UUFDMUIsU0FBUyxDQUFDLGNBQWMsQ0FBQyw0Q0FBZ0MsQ0FBQyxDQUFDO1FBQzNELE1BQU0sRUFBRSxTQUFTLEVBQUUsVUFBVSxFQUFFLE9BQU8sRUFBRSxHQUFHLDZCQUFpQixDQUFDO1FBQzdELFNBQVMsQ0FBQyxTQUFTLENBQUMsU0FBUyxDQUFDLENBQUMsVUFBVSxDQUFDLFVBQVUsQ0FBQyxDQUFDLEtBQUssQ0FBQyxPQUFPLENBQUMsQ0FBQztRQUNyRSxNQUFNLFVBQVUsR0FBc0MsU0FBUyxDQUFDLGVBQWUsRUFBRSxDQUFDO1FBQ2xGLGdCQUFNLENBQUMsS0FBSyxDQUFDLFVBQVUsQ0FBQyxDQUFDO1FBQ3pCLGdCQUFNLENBQUMsS0FBSyxDQUFDLFVBQVUsQ0FBQyxTQUFTLEVBQUUsU0FBUyxDQUFDLENBQUM7UUFDOUMsZ0JBQU0sQ0FBQyxLQUFLLENBQUMsVUFBVSxDQUFDLFVBQVUsRUFBRSxVQUFVLENBQUMsQ0FBQztRQUNoRCxnQkFBTSxDQUFDLEtBQUssQ0FBQyxVQUFVLENBQUMsS0FBSyxDQUFDLE1BQU0sRUFBRSxDQUFDLENBQUMsQ0FBQztRQUN6QyxNQUFNLEtBQUssR0FBRyxVQUFVLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxDQUFDO1FBQ2xDLGdCQUFNLENBQUMsS0FBSyxDQUFDLEtBQUssRUFBRSxPQUFPLENBQUMsQ0FBQztJQUMvQixDQUFDLENBQUMsQ0FBQztJQUVILEVBQUUsQ0FBQyxpQ0FBaUMsRUFBRTtRQUNwQyxNQUFNLFNBQVMsR0FBRyxJQUFJLDhCQUF3QixDQUFDLGVBQUssQ0FBQyxHQUFHLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBQztRQUNyRSxNQUFNLEVBQUUsR0FBRyxJQUFJLGlCQUFXLENBQUMsZUFBSyxDQUFDLEdBQUcsQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFDO1FBQ2pELFNBQVMsQ0FBQyxXQUFXLENBQUMsRUFBRSxDQUFDLENBQUM7UUFDMUIsU0FBUyxDQUFDLGNBQWMsQ0FBQyw0Q0FBZ0MsQ0FBQyxDQUFDO1FBQzNELFNBQVMsQ0FBQyxzQkFBc0IsQ0FBQyw0Q0FBZ0MsQ0FBQyxtQkFBbUIsQ0FBQyxDQUFDO0lBQ3pGLENBQUMsQ0FBQyxDQUFDO0lBRUgsRUFBRSxDQUFDLGlDQUFpQyxFQUFFO1FBQ3BDLE1BQU0sU0FBUyxHQUFHLElBQUksOEJBQXdCLENBQUMsZUFBSyxDQUFDLEdBQUcsQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFDO1FBQ3JFLE1BQU0sRUFBRSxHQUFHLElBQUksaUJBQVcsQ0FBQyxlQUFLLENBQUMsR0FBRyxDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUM7UUFDakQsRUFBRSxDQUFDLGNBQWMsR0FBRyw0Q0FBZ0MsQ0FBQztRQUNyRCxTQUFTLENBQUMsV0FBVyxDQUFDLEVBQUUsQ0FBQyxDQUFDO1FBQzFCLFNBQVMsQ0FBQyxjQUFjLENBQUMsNENBQWdDLENBQUMsQ0FBQztRQUMzRCxTQUFTLENBQUMsbUJBQW1CLENBQUMsRUFBRSxDQUFDLENBQUM7SUFDcEMsQ0FBQyxDQUFDLENBQUM7SUFFSCxFQUFFLENBQUMsa0RBQWtELEVBQUU7UUFDckQsTUFBTSxTQUFTLEdBQUcsSUFBSSw4QkFBd0IsQ0FBQyxlQUFLLENBQUMsR0FBRyxDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUM7UUFDckUsTUFBTSxFQUFFLEdBQUcsSUFBSSxpQkFBVyxDQUFDLGVBQUssQ0FBQyxHQUFHLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBQztRQUNqRCxTQUFTLENBQUMsV0FBVyxDQUFDLEVBQUUsQ0FBQyxDQUFDO1FBQzFCLE1BQU0sc0JBQXNCLEdBQUcsNENBQWdDLENBQUM7UUFDaEUsc0JBQXNCLENBQUMsdUJBQXVCLEdBQUcsOENBQThDLENBQUM7UUFDaEcsU0FBUyxDQUFDLGNBQWMsQ0FBQyxzQkFBc0IsQ0FBQyxDQUFDO1FBQ2pELElBQUksQ0FBQztZQUNILFNBQVMsQ0FBQyxzQkFBc0IsQ0FBQyxzQkFBc0IsQ0FBQyxtQkFBbUIsQ0FBQyxDQUFDO1FBQy9FLENBQUM7UUFBQyxPQUFPLENBQUMsRUFBRSxDQUFDO1lBQ1gsZ0JBQU0sQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLE9BQU8sRUFBRSw0Q0FBNEMsQ0FBQyxDQUFDO1FBQ3hFLENBQUM7SUFDSCxDQUFDLENBQUMsQ0FBQztBQUNMLENBQUMsQ0FBQyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IGFzc2VydCBmcm9tICdhc3NlcnQnO1xuaW1wb3J0IHNob3VsZCBmcm9tICdzaG91bGQnO1xuXG5pbXBvcnQgeyBjb2lucyB9IGZyb20gJ0BiaXRnby1iZXRhL3N0YXRpY3MnO1xuXG5pbXBvcnQgeyBUcmFuc2FjdGlvbiwgVHJhbnNmZXJSZWplY3Rpb25CdWlsZGVyIH0gZnJvbSAnLi4vLi4vLi4vLi4vc3JjJztcbmltcG9ydCB7IENhbnRvblRyYW5zZmVyQWNjZXB0UmVqZWN0UmVxdWVzdCB9IGZyb20gJy4uLy4uLy4uLy4uL3NyYy9saWIvaWZhY2UnO1xuXG5pbXBvcnQgeyBUcmFuc2ZlclJlamVjdGlvbiwgVHJhbnNmZXJSZWplY3Rpb25QcmVwYXJlUmVzcG9uc2UgfSBmcm9tICcuLi8uLi8uLi9yZXNvdXJjZXMnO1xuXG5kZXNjcmliZSgnVHJhbnNmZXIgUmVqZWN0aW9uIEJ1aWxkZXInLCAoKSA9PiB7XG4gIGl0KCdzaG91bGQgZ2V0IHRoZSB0cmFuc2ZlciByZWplY3Rpb24gcmVxdWVzdCBvYmplY3QnLCBmdW5jdGlvbiAoKSB7XG4gICAgY29uc3QgdHhCdWlsZGVyID0gbmV3IFRyYW5zZmVyUmVqZWN0aW9uQnVpbGRlcihjb2lucy5nZXQoJ3RjYW50b24nKSk7XG4gICAgY29uc3QgdHggPSBuZXcgVHJhbnNhY3Rpb24oY29pbnMuZ2V0KCd0Y2FudG9uJykpO1xuICAgIHR4QnVpbGRlci5pbml0QnVpbGRlcih0eCk7XG4gICAgdHhCdWlsZGVyLnNldFRyYW5zYWN0aW9uKFRyYW5zZmVyUmVqZWN0aW9uUHJlcGFyZVJlc3BvbnNlKTtcbiAgICBjb25zdCB7IGNvbW1hbmRJZCwgY29udHJhY3RJZCwgcGFydHlJZCB9ID0gVHJhbnNmZXJSZWplY3Rpb247XG4gICAgdHhCdWlsZGVyLmNvbW1hbmRJZChjb21tYW5kSWQpLmNvbnRyYWN0SWQoY29udHJhY3RJZCkuYWN0QXMocGFydHlJZCk7XG4gICAgY29uc3QgcmVxdWVzdE9iajogQ2FudG9uVHJhbnNmZXJBY2NlcHRSZWplY3RSZXF1ZXN0ID0gdHhCdWlsZGVyLnRvUmVxdWVzdE9iamVjdCgpO1xuICAgIHNob3VsZC5leGlzdChyZXF1ZXN0T2JqKTtcbiAgICBhc3NlcnQuZXF1YWwocmVxdWVzdE9iai5jb21tYW5kSWQsIGNvbW1hbmRJZCk7XG4gICAgYXNzZXJ0LmVxdWFsKHJlcXVlc3RPYmouY29udHJhY3RJZCwgY29udHJhY3RJZCk7XG4gICAgYXNzZXJ0LmVxdWFsKHJlcXVlc3RPYmouYWN0QXMubGVuZ3RoLCAxKTtcbiAgICBjb25zdCBhY3RBcyA9IHJlcXVlc3RPYmouYWN0QXNbMF07XG4gICAgYXNzZXJ0LmVxdWFsKGFjdEFzLCBwYXJ0eUlkKTtcbiAgfSk7XG5cbiAgaXQoJ3Nob3VsZCB2YWxpZGF0ZSByYXcgdHJhbnNhY3Rpb24nLCBmdW5jdGlvbiAoKSB7XG4gICAgY29uc3QgdHhCdWlsZGVyID0gbmV3IFRyYW5zZmVyUmVqZWN0aW9uQnVpbGRlcihjb2lucy5nZXQoJ3RjYW50b24nKSk7XG4gICAgY29uc3QgdHggPSBuZXcgVHJhbnNhY3Rpb24oY29pbnMuZ2V0KCd0Y2FudG9uJykpO1xuICAgIHR4QnVpbGRlci5pbml0QnVpbGRlcih0eCk7XG4gICAgdHhCdWlsZGVyLnNldFRyYW5zYWN0aW9uKFRyYW5zZmVyUmVqZWN0aW9uUHJlcGFyZVJlc3BvbnNlKTtcbiAgICB0eEJ1aWxkZXIudmFsaWRhdGVSYXdUcmFuc2FjdGlvbihUcmFuc2ZlclJlamVjdGlvblByZXBhcmVSZXNwb25zZS5wcmVwYXJlZFRyYW5zYWN0aW9uKTtcbiAgfSk7XG5cbiAgaXQoJ3Nob3VsZCB2YWxpZGF0ZSB0aGUgdHJhbnNhY3Rpb24nLCBmdW5jdGlvbiAoKSB7XG4gICAgY29uc3QgdHhCdWlsZGVyID0gbmV3IFRyYW5zZmVyUmVqZWN0aW9uQnVpbGRlcihjb2lucy5nZXQoJ3RjYW50b24nKSk7XG4gICAgY29uc3QgdHggPSBuZXcgVHJhbnNhY3Rpb24oY29pbnMuZ2V0KCd0Y2FudG9uJykpO1xuICAgIHR4LnByZXBhcmVDb21tYW5kID0gVHJhbnNmZXJSZWplY3Rpb25QcmVwYXJlUmVzcG9uc2U7XG4gICAgdHhCdWlsZGVyLmluaXRCdWlsZGVyKHR4KTtcbiAgICB0eEJ1aWxkZXIuc2V0VHJhbnNhY3Rpb24oVHJhbnNmZXJSZWplY3Rpb25QcmVwYXJlUmVzcG9uc2UpO1xuICAgIHR4QnVpbGRlci52YWxpZGF0ZVRyYW5zYWN0aW9uKHR4KTtcbiAgfSk7XG5cbiAgaXQoJ3Nob3VsZCB0aHJvdyBlcnJvciBpbiB2YWxpZGF0aW5nIHJhdyB0cmFuc2FjdGlvbicsIGZ1bmN0aW9uICgpIHtcbiAgICBjb25zdCB0eEJ1aWxkZXIgPSBuZXcgVHJhbnNmZXJSZWplY3Rpb25CdWlsZGVyKGNvaW5zLmdldCgndGNhbnRvbicpKTtcbiAgICBjb25zdCB0eCA9IG5ldyBUcmFuc2FjdGlvbihjb2lucy5nZXQoJ3RjYW50b24nKSk7XG4gICAgdHhCdWlsZGVyLmluaXRCdWlsZGVyKHR4KTtcbiAgICBjb25zdCBpbnZhbGlkUHJlcGFyZVJlc3BvbnNlID0gVHJhbnNmZXJSZWplY3Rpb25QcmVwYXJlUmVzcG9uc2U7XG4gICAgaW52YWxpZFByZXBhcmVSZXNwb25zZS5wcmVwYXJlZFRyYW5zYWN0aW9uSGFzaCA9ICdRRnhYMVdCZHE3bFpiU2M0NWlLQTNKL29PRjltclZMYzNEZUtwaEFqYjE1PSc7XG4gICAgdHhCdWlsZGVyLnNldFRyYW5zYWN0aW9uKGludmFsaWRQcmVwYXJlUmVzcG9uc2UpO1xuICAgIHRyeSB7XG4gICAgICB0eEJ1aWxkZXIudmFsaWRhdGVSYXdUcmFuc2FjdGlvbihpbnZhbGlkUHJlcGFyZVJlc3BvbnNlLnByZXBhcmVkVHJhbnNhY3Rpb24pO1xuICAgIH0gY2F0Y2ggKGUpIHtcbiAgICAgIGFzc2VydC5lcXVhbChlLm1lc3NhZ2UsICdpbnZhbGlkIHJhdyB0cmFuc2FjdGlvbiwgaGFzaCBub3QgbWF0Y2hpbmcnKTtcbiAgICB9XG4gIH0pO1xufSk7XG4iXX0=
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=walletInitBuilder.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"walletInitBuilder.d.ts","sourceRoot":"","sources":["../../../../../test/unit/builder/walletInit/walletInitBuilder.ts"],"names":[],"mappings":""}
@@ -0,0 +1,65 @@
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-beta/statics");
9
+ const src_1 = require("../../../../src");
10
+ const resources_1 = require("../../../resources");
11
+ describe('Wallet Initialization Builder', () => {
12
+ it('should get the wallet init request object', function () {
13
+ const txBuilder = new src_1.WalletInitBuilder(statics_1.coins.get('tcanton'));
14
+ const { publicKey, partyHint } = resources_1.WalletInitRequestData;
15
+ txBuilder.publicKey(publicKey);
16
+ txBuilder.partyHint(partyHint);
17
+ const requestObj = txBuilder.toRequestObject();
18
+ should_1.default.exist(requestObj);
19
+ assert_1.default.equal(requestObj.partyHint, partyHint);
20
+ assert_1.default.equal(requestObj.localParticipantObservationOnly, false);
21
+ assert_1.default.equal(requestObj.confirmationThreshold, 1);
22
+ assert_1.default.equal(requestObj.observingParticipantUids.length, 0);
23
+ assert_1.default.equal(requestObj.otherConfirmingParticipantUids.length, 0);
24
+ should_1.default.exist(requestObj.publicKey);
25
+ assert_1.default.equal(requestObj.publicKey.keyData, publicKey);
26
+ should_1.default.exist(requestObj.publicKey.format);
27
+ should_1.default.exist(requestObj.publicKey.format);
28
+ should_1.default.exist(requestObj.publicKey.keySpec);
29
+ });
30
+ it('should validate raw transaction', function () {
31
+ const txBuilder = new src_1.WalletInitBuilder(statics_1.coins.get('tcanton'));
32
+ txBuilder.transaction = resources_1.GenerateTopologyResponse;
33
+ txBuilder.validateRawTransaction(resources_1.GenerateTopologyResponse.topologyTransactions);
34
+ });
35
+ it('should validate the transaction', function () {
36
+ const txBuilder = new src_1.WalletInitBuilder(statics_1.coins.get('tcanton'));
37
+ txBuilder.transaction = resources_1.GenerateTopologyResponse;
38
+ const walletInitTxn = new src_1.WalletInitTransaction(statics_1.coins.get('tcanton'));
39
+ walletInitTxn.preparedParty = resources_1.GenerateTopologyResponse;
40
+ txBuilder.validateTransaction(walletInitTxn);
41
+ });
42
+ it('should throw error in validating raw transaction', function () {
43
+ const txBuilder = new src_1.WalletInitBuilder(statics_1.coins.get('tcanton'));
44
+ txBuilder.transaction = resources_1.InvalidGenerateTopologyResponse;
45
+ try {
46
+ txBuilder.validateRawTransaction(resources_1.InvalidGenerateTopologyResponse.topologyTransactions);
47
+ }
48
+ catch (e) {
49
+ assert_1.default.equal(e.message, 'invalid raw transaction, hash not matching');
50
+ }
51
+ });
52
+ it('should throw error in validating raw transaction', function () {
53
+ const txBuilder = new src_1.WalletInitBuilder(statics_1.coins.get('tcanton'));
54
+ txBuilder.transaction = resources_1.InvalidGenerateTopologyResponse;
55
+ const walletInitTxn = new src_1.WalletInitTransaction(statics_1.coins.get('tcanton'));
56
+ walletInitTxn.preparedParty = resources_1.InvalidGenerateTopologyResponse;
57
+ try {
58
+ txBuilder.validateTransaction(walletInitTxn);
59
+ }
60
+ catch (e) {
61
+ assert_1.default.equal(e.message, 'invalid transaction');
62
+ }
63
+ });
64
+ });
65
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoid2FsbGV0SW5pdEJ1aWxkZXIuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi90ZXN0L3VuaXQvYnVpbGRlci93YWxsZXRJbml0L3dhbGxldEluaXRCdWlsZGVyLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7O0FBQUEsb0RBQTRCO0FBQzVCLG9EQUE0QjtBQUU1QixpREFBNEM7QUFFNUMseUNBQTJFO0FBRzNFLGtEQUFzSDtBQUV0SCxRQUFRLENBQUMsK0JBQStCLEVBQUUsR0FBRyxFQUFFO0lBQzdDLEVBQUUsQ0FBQywyQ0FBMkMsRUFBRTtRQUM5QyxNQUFNLFNBQVMsR0FBRyxJQUFJLHVCQUFpQixDQUFDLGVBQUssQ0FBQyxHQUFHLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBQztRQUM5RCxNQUFNLEVBQUUsU0FBUyxFQUFFLFNBQVMsRUFBRSxHQUFHLGlDQUFxQixDQUFDO1FBQ3ZELFNBQVMsQ0FBQyxTQUFTLENBQUMsU0FBUyxDQUFDLENBQUM7UUFDL0IsU0FBUyxDQUFDLFNBQVMsQ0FBQyxTQUFTLENBQUMsQ0FBQztRQUMvQixNQUFNLFVBQVUsR0FBc0IsU0FBUyxDQUFDLGVBQWUsRUFBRSxDQUFDO1FBQ2xFLGdCQUFNLENBQUMsS0FBSyxDQUFDLFVBQVUsQ0FBQyxDQUFDO1FBQ3pCLGdCQUFNLENBQUMsS0FBSyxDQUFDLFVBQVUsQ0FBQyxTQUFTLEVBQUUsU0FBUyxDQUFDLENBQUM7UUFDOUMsZ0JBQU0sQ0FBQyxLQUFLLENBQUMsVUFBVSxDQUFDLCtCQUErQixFQUFFLEtBQUssQ0FBQyxDQUFDO1FBQ2hFLGdCQUFNLENBQUMsS0FBSyxDQUFDLFVBQVUsQ0FBQyxxQkFBcUIsRUFBRSxDQUFDLENBQUMsQ0FBQztRQUNsRCxnQkFBTSxDQUFDLEtBQUssQ0FBQyxVQUFVLENBQUMsd0JBQXdCLENBQUMsTUFBTSxFQUFFLENBQUMsQ0FBQyxDQUFDO1FBQzVELGdCQUFNLENBQUMsS0FBSyxDQUFDLFVBQVUsQ0FBQyw4QkFBOEIsQ0FBQyxNQUFNLEVBQUUsQ0FBQyxDQUFDLENBQUM7UUFDbEUsZ0JBQU0sQ0FBQyxLQUFLLENBQUMsVUFBVSxDQUFDLFNBQVMsQ0FBQyxDQUFDO1FBQ25DLGdCQUFNLENBQUMsS0FBSyxDQUFDLFVBQVUsQ0FBQyxTQUFTLENBQUMsT0FBTyxFQUFFLFNBQVMsQ0FBQyxDQUFDO1FBQ3RELGdCQUFNLENBQUMsS0FBSyxDQUFDLFVBQVUsQ0FBQyxTQUFTLENBQUMsTUFBTSxDQUFDLENBQUM7UUFDMUMsZ0JBQU0sQ0FBQyxLQUFLLENBQUMsVUFBVSxDQUFDLFNBQVMsQ0FBQyxNQUFNLENBQUMsQ0FBQztRQUMxQyxnQkFBTSxDQUFDLEtBQUssQ0FBQyxVQUFVLENBQUMsU0FBUyxDQUFDLE9BQU8sQ0FBQyxDQUFDO0lBQzdDLENBQUMsQ0FBQyxDQUFDO0lBRUgsRUFBRSxDQUFDLGlDQUFpQyxFQUFFO1FBQ3BDLE1BQU0sU0FBUyxHQUFHLElBQUksdUJBQWlCLENBQUMsZUFBSyxDQUFDLEdBQUcsQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFDO1FBQzlELFNBQVMsQ0FBQyxXQUFXLEdBQUcsb0NBQXdCLENBQUM7UUFDakQsU0FBUyxDQUFDLHNCQUFzQixDQUFDLG9DQUF3QixDQUFDLG9CQUFvQixDQUFDLENBQUM7SUFDbEYsQ0FBQyxDQUFDLENBQUM7SUFFSCxFQUFFLENBQUMsaUNBQWlDLEVBQUU7UUFDcEMsTUFBTSxTQUFTLEdBQUcsSUFBSSx1QkFBaUIsQ0FBQyxlQUFLLENBQUMsR0FBRyxDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUM7UUFDOUQsU0FBUyxDQUFDLFdBQVcsR0FBRyxvQ0FBd0IsQ0FBQztRQUNqRCxNQUFNLGFBQWEsR0FBRyxJQUFJLDJCQUFxQixDQUFDLGVBQUssQ0FBQyxHQUFHLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBQztRQUN0RSxhQUFhLENBQUMsYUFBYSxHQUFHLG9DQUF3QixDQUFDO1FBQ3ZELFNBQVMsQ0FBQyxtQkFBbUIsQ0FBQyxhQUFhLENBQUMsQ0FBQztJQUMvQyxDQUFDLENBQUMsQ0FBQztJQUVILEVBQUUsQ0FBQyxrREFBa0QsRUFBRTtRQUNyRCxNQUFNLFNBQVMsR0FBRyxJQUFJLHVCQUFpQixDQUFDLGVBQUssQ0FBQyxHQUFHLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBQztRQUM5RCxTQUFTLENBQUMsV0FBVyxHQUFHLDJDQUErQixDQUFDO1FBQ3hELElBQUksQ0FBQztZQUNILFNBQVMsQ0FBQyxzQkFBc0IsQ0FBQywyQ0FBK0IsQ0FBQyxvQkFBb0IsQ0FBQyxDQUFDO1FBQ3pGLENBQUM7UUFBQyxPQUFPLENBQUMsRUFBRSxDQUFDO1lBQ1gsZ0JBQU0sQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLE9BQU8sRUFBRSw0Q0FBNEMsQ0FBQyxDQUFDO1FBQ3hFLENBQUM7SUFDSCxDQUFDLENBQUMsQ0FBQztJQUVILEVBQUUsQ0FBQyxrREFBa0QsRUFBRTtRQUNyRCxNQUFNLFNBQVMsR0FBRyxJQUFJLHVCQUFpQixDQUFDLGVBQUssQ0FBQyxHQUFHLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBQztRQUM5RCxTQUFTLENBQUMsV0FBVyxHQUFHLDJDQUErQixDQUFDO1FBQ3hELE1BQU0sYUFBYSxHQUFHLElBQUksMkJBQXFCLENBQUMsZUFBSyxDQUFDLEdBQUcsQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFDO1FBQ3RFLGFBQWEsQ0FBQyxhQUFhLEdBQUcsMkNBQStCLENBQUM7UUFDOUQsSUFBSSxDQUFDO1lBQ0gsU0FBUyxDQUFDLG1CQUFtQixDQUFDLGFBQWEsQ0FBQyxDQUFDO1FBQy9DLENBQUM7UUFBQyxPQUFPLENBQUMsRUFBRSxDQUFDO1lBQ1gsZ0JBQU0sQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLE9BQU8sRUFBRSxxQkFBcUIsQ0FBQyxDQUFDO1FBQ2pELENBQUM7SUFDSCxDQUFDLENBQUMsQ0FBQztBQUNMLENBQUMsQ0FBQyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IGFzc2VydCBmcm9tICdhc3NlcnQnO1xuaW1wb3J0IHNob3VsZCBmcm9tICdzaG91bGQnO1xuXG5pbXBvcnQgeyBjb2lucyB9IGZyb20gJ0BiaXRnby1iZXRhL3N0YXRpY3MnO1xuXG5pbXBvcnQgeyBXYWxsZXRJbml0QnVpbGRlciwgV2FsbGV0SW5pdFRyYW5zYWN0aW9uIH0gZnJvbSAnLi4vLi4vLi4vLi4vc3JjJztcbmltcG9ydCB7IFdhbGxldEluaXRSZXF1ZXN0IH0gZnJvbSAnLi4vLi4vLi4vLi4vc3JjL2xpYi9pZmFjZSc7XG5cbmltcG9ydCB7IEdlbmVyYXRlVG9wb2xvZ3lSZXNwb25zZSwgSW52YWxpZEdlbmVyYXRlVG9wb2xvZ3lSZXNwb25zZSwgV2FsbGV0SW5pdFJlcXVlc3REYXRhIH0gZnJvbSAnLi4vLi4vLi4vcmVzb3VyY2VzJztcblxuZGVzY3JpYmUoJ1dhbGxldCBJbml0aWFsaXphdGlvbiBCdWlsZGVyJywgKCkgPT4ge1xuICBpdCgnc2hvdWxkIGdldCB0aGUgd2FsbGV0IGluaXQgcmVxdWVzdCBvYmplY3QnLCBmdW5jdGlvbiAoKSB7XG4gICAgY29uc3QgdHhCdWlsZGVyID0gbmV3IFdhbGxldEluaXRCdWlsZGVyKGNvaW5zLmdldCgndGNhbnRvbicpKTtcbiAgICBjb25zdCB7IHB1YmxpY0tleSwgcGFydHlIaW50IH0gPSBXYWxsZXRJbml0UmVxdWVzdERhdGE7XG4gICAgdHhCdWlsZGVyLnB1YmxpY0tleShwdWJsaWNLZXkpO1xuICAgIHR4QnVpbGRlci5wYXJ0eUhpbnQocGFydHlIaW50KTtcbiAgICBjb25zdCByZXF1ZXN0T2JqOiBXYWxsZXRJbml0UmVxdWVzdCA9IHR4QnVpbGRlci50b1JlcXVlc3RPYmplY3QoKTtcbiAgICBzaG91bGQuZXhpc3QocmVxdWVzdE9iaik7XG4gICAgYXNzZXJ0LmVxdWFsKHJlcXVlc3RPYmoucGFydHlIaW50LCBwYXJ0eUhpbnQpO1xuICAgIGFzc2VydC5lcXVhbChyZXF1ZXN0T2JqLmxvY2FsUGFydGljaXBhbnRPYnNlcnZhdGlvbk9ubHksIGZhbHNlKTtcbiAgICBhc3NlcnQuZXF1YWwocmVxdWVzdE9iai5jb25maXJtYXRpb25UaHJlc2hvbGQsIDEpO1xuICAgIGFzc2VydC5lcXVhbChyZXF1ZXN0T2JqLm9ic2VydmluZ1BhcnRpY2lwYW50VWlkcy5sZW5ndGgsIDApO1xuICAgIGFzc2VydC5lcXVhbChyZXF1ZXN0T2JqLm90aGVyQ29uZmlybWluZ1BhcnRpY2lwYW50VWlkcy5sZW5ndGgsIDApO1xuICAgIHNob3VsZC5leGlzdChyZXF1ZXN0T2JqLnB1YmxpY0tleSk7XG4gICAgYXNzZXJ0LmVxdWFsKHJlcXVlc3RPYmoucHVibGljS2V5LmtleURhdGEsIHB1YmxpY0tleSk7XG4gICAgc2hvdWxkLmV4aXN0KHJlcXVlc3RPYmoucHVibGljS2V5LmZvcm1hdCk7XG4gICAgc2hvdWxkLmV4aXN0KHJlcXVlc3RPYmoucHVibGljS2V5LmZvcm1hdCk7XG4gICAgc2hvdWxkLmV4aXN0KHJlcXVlc3RPYmoucHVibGljS2V5LmtleVNwZWMpO1xuICB9KTtcblxuICBpdCgnc2hvdWxkIHZhbGlkYXRlIHJhdyB0cmFuc2FjdGlvbicsIGZ1bmN0aW9uICgpIHtcbiAgICBjb25zdCB0eEJ1aWxkZXIgPSBuZXcgV2FsbGV0SW5pdEJ1aWxkZXIoY29pbnMuZ2V0KCd0Y2FudG9uJykpO1xuICAgIHR4QnVpbGRlci50cmFuc2FjdGlvbiA9IEdlbmVyYXRlVG9wb2xvZ3lSZXNwb25zZTtcbiAgICB0eEJ1aWxkZXIudmFsaWRhdGVSYXdUcmFuc2FjdGlvbihHZW5lcmF0ZVRvcG9sb2d5UmVzcG9uc2UudG9wb2xvZ3lUcmFuc2FjdGlvbnMpO1xuICB9KTtcblxuICBpdCgnc2hvdWxkIHZhbGlkYXRlIHRoZSB0cmFuc2FjdGlvbicsIGZ1bmN0aW9uICgpIHtcbiAgICBjb25zdCB0eEJ1aWxkZXIgPSBuZXcgV2FsbGV0SW5pdEJ1aWxkZXIoY29pbnMuZ2V0KCd0Y2FudG9uJykpO1xuICAgIHR4QnVpbGRlci50cmFuc2FjdGlvbiA9IEdlbmVyYXRlVG9wb2xvZ3lSZXNwb25zZTtcbiAgICBjb25zdCB3YWxsZXRJbml0VHhuID0gbmV3IFdhbGxldEluaXRUcmFuc2FjdGlvbihjb2lucy5nZXQoJ3RjYW50b24nKSk7XG4gICAgd2FsbGV0SW5pdFR4bi5wcmVwYXJlZFBhcnR5ID0gR2VuZXJhdGVUb3BvbG9neVJlc3BvbnNlO1xuICAgIHR4QnVpbGRlci52YWxpZGF0ZVRyYW5zYWN0aW9uKHdhbGxldEluaXRUeG4pO1xuICB9KTtcblxuICBpdCgnc2hvdWxkIHRocm93IGVycm9yIGluIHZhbGlkYXRpbmcgcmF3IHRyYW5zYWN0aW9uJywgZnVuY3Rpb24gKCkge1xuICAgIGNvbnN0IHR4QnVpbGRlciA9IG5ldyBXYWxsZXRJbml0QnVpbGRlcihjb2lucy5nZXQoJ3RjYW50b24nKSk7XG4gICAgdHhCdWlsZGVyLnRyYW5zYWN0aW9uID0gSW52YWxpZEdlbmVyYXRlVG9wb2xvZ3lSZXNwb25zZTtcbiAgICB0cnkge1xuICAgICAgdHhCdWlsZGVyLnZhbGlkYXRlUmF3VHJhbnNhY3Rpb24oSW52YWxpZEdlbmVyYXRlVG9wb2xvZ3lSZXNwb25zZS50b3BvbG9neVRyYW5zYWN0aW9ucyk7XG4gICAgfSBjYXRjaCAoZSkge1xuICAgICAgYXNzZXJ0LmVxdWFsKGUubWVzc2FnZSwgJ2ludmFsaWQgcmF3IHRyYW5zYWN0aW9uLCBoYXNoIG5vdCBtYXRjaGluZycpO1xuICAgIH1cbiAgfSk7XG5cbiAgaXQoJ3Nob3VsZCB0aHJvdyBlcnJvciBpbiB2YWxpZGF0aW5nIHJhdyB0cmFuc2FjdGlvbicsIGZ1bmN0aW9uICgpIHtcbiAgICBjb25zdCB0eEJ1aWxkZXIgPSBuZXcgV2FsbGV0SW5pdEJ1aWxkZXIoY29pbnMuZ2V0KCd0Y2FudG9uJykpO1xuICAgIHR4QnVpbGRlci50cmFuc2FjdGlvbiA9IEludmFsaWRHZW5lcmF0ZVRvcG9sb2d5UmVzcG9uc2U7XG4gICAgY29uc3Qgd2FsbGV0SW5pdFR4biA9IG5ldyBXYWxsZXRJbml0VHJhbnNhY3Rpb24oY29pbnMuZ2V0KCd0Y2FudG9uJykpO1xuICAgIHdhbGxldEluaXRUeG4ucHJlcGFyZWRQYXJ0eSA9IEludmFsaWRHZW5lcmF0ZVRvcG9sb2d5UmVzcG9uc2U7XG4gICAgdHJ5IHtcbiAgICAgIHR4QnVpbGRlci52YWxpZGF0ZVRyYW5zYWN0aW9uKHdhbGxldEluaXRUeG4pO1xuICAgIH0gY2F0Y2ggKGUpIHtcbiAgICAgIGFzc2VydC5lcXVhbChlLm1lc3NhZ2UsICdpbnZhbGlkIHRyYW5zYWN0aW9uJyk7XG4gICAgfVxuICB9KTtcbn0pO1xuIl19
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=keyPair.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"keyPair.d.ts","sourceRoot":"","sources":["../../../test/unit/keyPair.ts"],"names":[],"mappings":""}
@@ -0,0 +1,72 @@
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 sdk_api_1 = require("@bitgo-beta/sdk-api");
7
+ const sdk_core_1 = require("@bitgo-beta/sdk-core");
8
+ const sdk_lib_mpc_1 = require("@bitgo-beta/sdk-lib-mpc");
9
+ const sdk_test_1 = require("@bitgo-beta/sdk-test");
10
+ const assert_1 = __importDefault(require("assert"));
11
+ const should_1 = __importDefault(require("should"));
12
+ const src_1 = require("../../src");
13
+ const utils_1 = __importDefault(require("../../src/lib/utils"));
14
+ describe('Canton KeyPair', function () {
15
+ let rootKeychain;
16
+ let rootPublicKey;
17
+ let MPC;
18
+ let hdTree;
19
+ let bitgo;
20
+ let basecoin;
21
+ before(async () => {
22
+ hdTree = await sdk_lib_mpc_1.Ed25519Bip32HdTree.initialize();
23
+ MPC = await sdk_core_1.Eddsa.initialize(hdTree);
24
+ const A = MPC.keyShare(1, 2, 3);
25
+ const B = MPC.keyShare(2, 2, 3);
26
+ const C = MPC.keyShare(3, 2, 3);
27
+ const A_combine = MPC.keyCombine(A.uShare, [B.yShares[1], C.yShares[1]]);
28
+ const commonKeychain = A_combine.pShare.y + A_combine.pShare.chaincode;
29
+ rootKeychain = MPC.deriveUnhardened(commonKeychain, 'm/0');
30
+ rootPublicKey = Buffer.from(rootKeychain.slice(0, 64), 'hex').toString('hex');
31
+ bitgo = sdk_test_1.TestBitGo.decorate(sdk_api_1.BitGoAPI, { env: 'mock' });
32
+ bitgo.safeRegister('tcanton', src_1.Tcanton.createInstance);
33
+ basecoin = bitgo.coin('tcanton');
34
+ });
35
+ describe('should create a valid KeyPair', () => {
36
+ it('from an empty value', async () => {
37
+ const keyPair = new src_1.KeyPair();
38
+ should_1.default.exists(keyPair.getKeys().prv);
39
+ should_1.default.exists(keyPair.getKeys().pub);
40
+ const address = utils_1.default.getAddressFromPublicKey(keyPair.getKeys().pub);
41
+ should_1.default.exists(address);
42
+ });
43
+ });
44
+ describe('Keypair from derived Public Key', () => {
45
+ it('should create keypair with just derived public key', () => {
46
+ const keyPair = new src_1.KeyPair({ pub: rootPublicKey });
47
+ keyPair.getKeys().pub.should.equal(rootPublicKey);
48
+ });
49
+ it('should derived ed25519 public key should be valid', () => {
50
+ utils_1.default.isValidPublicKey(rootPublicKey).should.be.true();
51
+ });
52
+ });
53
+ describe('Keypair from random seed', () => {
54
+ it('should generate a keypair from random seed', function () {
55
+ const keyPair = basecoin.generateKeyPair();
56
+ keyPair.should.have.property('pub');
57
+ keyPair.should.have.property('prv');
58
+ if (keyPair.pub) {
59
+ basecoin.isValidPub(keyPair.pub).should.equal(true);
60
+ }
61
+ });
62
+ });
63
+ describe('should fail to create a KeyPair', function () {
64
+ it('from an invalid public key', () => {
65
+ const source = {
66
+ pub: '01D63D',
67
+ };
68
+ assert_1.default.throws(() => new src_1.KeyPair(source));
69
+ });
70
+ });
71
+ });
72
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoia2V5UGFpci5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3Rlc3QvdW5pdC9rZXlQYWlyLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7O0FBQUEsaURBQStDO0FBQy9DLG1EQUE2QztBQUM3Qyx5REFBcUU7QUFDckUsbURBQStEO0FBQy9ELG9EQUE0QjtBQUM1QixvREFBNEI7QUFFNUIsbUNBQTZDO0FBQzdDLGdFQUF3QztBQUV4QyxRQUFRLENBQUMsZ0JBQWdCLEVBQUU7SUFDekIsSUFBSSxZQUFvQixDQUFDO0lBQ3pCLElBQUksYUFBcUIsQ0FBQztJQUMxQixJQUFJLEdBQVUsQ0FBQztJQUNmLElBQUksTUFBYyxDQUFDO0lBQ25CLElBQUksS0FBbUIsQ0FBQztJQUN4QixJQUFJLFFBQWlCLENBQUM7SUFFdEIsTUFBTSxDQUFDLEtBQUssSUFBSSxFQUFFO1FBQ2hCLE1BQU0sR0FBRyxNQUFNLGdDQUFrQixDQUFDLFVBQVUsRUFBRSxDQUFDO1FBQy9DLEdBQUcsR0FBRyxNQUFNLGdCQUFLLENBQUMsVUFBVSxDQUFDLE1BQU0sQ0FBQyxDQUFDO1FBQ3JDLE1BQU0sQ0FBQyxHQUFHLEdBQUcsQ0FBQyxRQUFRLENBQUMsQ0FBQyxFQUFFLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQztRQUNoQyxNQUFNLENBQUMsR0FBRyxHQUFHLENBQUMsUUFBUSxDQUFDLENBQUMsRUFBRSxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUM7UUFDaEMsTUFBTSxDQUFDLEdBQUcsR0FBRyxDQUFDLFFBQVEsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDO1FBRWhDLE1BQU0sU0FBUyxHQUFHLEdBQUcsQ0FBQyxVQUFVLENBQUMsQ0FBQyxDQUFDLE1BQU0sRUFBRSxDQUFDLENBQUMsQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUM7UUFFekUsTUFBTSxjQUFjLEdBQUcsU0FBUyxDQUFDLE1BQU0sQ0FBQyxDQUFDLEdBQUcsU0FBUyxDQUFDLE1BQU0sQ0FBQyxTQUFTLENBQUM7UUFDdkUsWUFBWSxHQUFHLEdBQUcsQ0FBQyxnQkFBZ0IsQ0FBQyxjQUFjLEVBQUUsS0FBSyxDQUFDLENBQUM7UUFDM0QsYUFBYSxHQUFHLE1BQU0sQ0FBQyxJQUFJLENBQUMsWUFBWSxDQUFDLEtBQUssQ0FBQyxDQUFDLEVBQUUsRUFBRSxDQUFDLEVBQUUsS0FBSyxDQUFDLENBQUMsUUFBUSxDQUFDLEtBQUssQ0FBQyxDQUFDO1FBQzlFLEtBQUssR0FBRyxvQkFBUyxDQUFDLFFBQVEsQ0FBQyxrQkFBUSxFQUFFLEVBQUUsR0FBRyxFQUFFLE1BQU0sRUFBRSxDQUFDLENBQUM7UUFDdEQsS0FBSyxDQUFDLFlBQVksQ0FBQyxTQUFTLEVBQUUsYUFBTyxDQUFDLGNBQWMsQ0FBQyxDQUFDO1FBQ3RELFFBQVEsR0FBRyxLQUFLLENBQUMsSUFBSSxDQUFDLFNBQVMsQ0FBWSxDQUFDO0lBQzlDLENBQUMsQ0FBQyxDQUFDO0lBRUgsUUFBUSxDQUFDLCtCQUErQixFQUFFLEdBQUcsRUFBRTtRQUM3QyxFQUFFLENBQUMscUJBQXFCLEVBQUUsS0FBSyxJQUFJLEVBQUU7WUFDbkMsTUFBTSxPQUFPLEdBQUcsSUFBSSxhQUFPLEVBQUUsQ0FBQztZQUM5QixnQkFBTSxDQUFDLE1BQU0sQ0FBQyxPQUFPLENBQUMsT0FBTyxFQUFFLENBQUMsR0FBRyxDQUFDLENBQUM7WUFDckMsZ0JBQU0sQ0FBQyxNQUFNLENBQUMsT0FBTyxDQUFDLE9BQU8sRUFBRSxDQUFDLEdBQUcsQ0FBQyxDQUFDO1lBQ3JDLE1BQU0sT0FBTyxHQUFHLGVBQUssQ0FBQyx1QkFBdUIsQ0FBQyxPQUFPLENBQUMsT0FBTyxFQUFFLENBQUMsR0FBRyxDQUFDLENBQUM7WUFDckUsZ0JBQU0sQ0FBQyxNQUFNLENBQUMsT0FBTyxDQUFDLENBQUM7UUFDekIsQ0FBQyxDQUFDLENBQUM7SUFDTCxDQUFDLENBQUMsQ0FBQztJQUVILFFBQVEsQ0FBQyxpQ0FBaUMsRUFBRSxHQUFHLEVBQUU7UUFDL0MsRUFBRSxDQUFDLG9EQUFvRCxFQUFFLEdBQUcsRUFBRTtZQUM1RCxNQUFNLE9BQU8sR0FBRyxJQUFJLGFBQU8sQ0FBQyxFQUFFLEdBQUcsRUFBRSxhQUFhLEVBQUUsQ0FBQyxDQUFDO1lBQ3BELE9BQU8sQ0FBQyxPQUFPLEVBQUUsQ0FBQyxHQUFHLENBQUMsTUFBTSxDQUFDLEtBQUssQ0FBQyxhQUFhLENBQUMsQ0FBQztRQUNwRCxDQUFDLENBQUMsQ0FBQztRQUVILEVBQUUsQ0FBQyxtREFBbUQsRUFBRSxHQUFHLEVBQUU7WUFDM0QsZUFBSyxDQUFDLGdCQUFnQixDQUFDLGFBQWEsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxFQUFFLENBQUMsSUFBSSxFQUFFLENBQUM7UUFDekQsQ0FBQyxDQUFDLENBQUM7SUFDTCxDQUFDLENBQUMsQ0FBQztJQUVILFFBQVEsQ0FBQywwQkFBMEIsRUFBRSxHQUFHLEVBQUU7UUFDeEMsRUFBRSxDQUFDLDRDQUE0QyxFQUFFO1lBQy9DLE1BQU0sT0FBTyxHQUFHLFFBQVEsQ0FBQyxlQUFlLEVBQUUsQ0FBQztZQUMzQyxPQUFPLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxRQUFRLENBQUMsS0FBSyxDQUFDLENBQUM7WUFDcEMsT0FBTyxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsUUFBUSxDQUFDLEtBQUssQ0FBQyxDQUFDO1lBQ3BDLElBQUksT0FBTyxDQUFDLEdBQUcsRUFBRSxDQUFDO2dCQUNoQixRQUFRLENBQUMsVUFBVSxDQUFDLE9BQU8sQ0FBQyxHQUFHLENBQUMsQ0FBQyxNQUFNLENBQUMsS0FBSyxDQUFDLElBQUksQ0FBQyxDQUFDO1lBQ3RELENBQUM7UUFDSCxDQUFDLENBQUMsQ0FBQztJQUNMLENBQUMsQ0FBQyxDQUFDO0lBRUgsUUFBUSxDQUFDLGlDQUFpQyxFQUFFO1FBQzFDLEVBQUUsQ0FBQyw0QkFBNEIsRUFBRSxHQUFHLEVBQUU7WUFDcEMsTUFBTSxNQUFNLEdBQUc7Z0JBQ2IsR0FBRyxFQUFFLFFBQVE7YUFDZCxDQUFDO1lBRUYsZ0JBQU0sQ0FBQyxNQUFNLENBQUMsR0FBRyxFQUFFLENBQUMsSUFBSSxhQUFPLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQztRQUMzQyxDQUFDLENBQUMsQ0FBQztJQUNMLENBQUMsQ0FBQyxDQUFDO0FBQ0wsQ0FBQyxDQUFDLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBCaXRHb0FQSSB9IGZyb20gJ0BiaXRnby1iZXRhL3Nkay1hcGknO1xuaW1wb3J0IHsgRWRkc2EgfSBmcm9tICdAYml0Z28tYmV0YS9zZGstY29yZSc7XG5pbXBvcnQgeyBFZDI1NTE5QmlwMzJIZFRyZWUsIEhEVHJlZSB9IGZyb20gJ0BiaXRnby1iZXRhL3Nkay1saWItbXBjJztcbmltcG9ydCB7IFRlc3RCaXRHbywgVGVzdEJpdEdvQVBJIH0gZnJvbSAnQGJpdGdvLWJldGEvc2RrLXRlc3QnO1xuaW1wb3J0IGFzc2VydCBmcm9tICdhc3NlcnQnO1xuaW1wb3J0IHNob3VsZCBmcm9tICdzaG91bGQnO1xuXG5pbXBvcnQgeyBLZXlQYWlyLCBUY2FudG9uIH0gZnJvbSAnLi4vLi4vc3JjJztcbmltcG9ydCB1dGlscyBmcm9tICcuLi8uLi9zcmMvbGliL3V0aWxzJztcblxuZGVzY3JpYmUoJ0NhbnRvbiBLZXlQYWlyJywgZnVuY3Rpb24gKCkge1xuICBsZXQgcm9vdEtleWNoYWluOiBzdHJpbmc7XG4gIGxldCByb290UHVibGljS2V5OiBzdHJpbmc7XG4gIGxldCBNUEM6IEVkZHNhO1xuICBsZXQgaGRUcmVlOiBIRFRyZWU7XG4gIGxldCBiaXRnbzogVGVzdEJpdEdvQVBJO1xuICBsZXQgYmFzZWNvaW46IFRjYW50b247XG5cbiAgYmVmb3JlKGFzeW5jICgpID0+IHtcbiAgICBoZFRyZWUgPSBhd2FpdCBFZDI1NTE5QmlwMzJIZFRyZWUuaW5pdGlhbGl6ZSgpO1xuICAgIE1QQyA9IGF3YWl0IEVkZHNhLmluaXRpYWxpemUoaGRUcmVlKTtcbiAgICBjb25zdCBBID0gTVBDLmtleVNoYXJlKDEsIDIsIDMpO1xuICAgIGNvbnN0IEIgPSBNUEMua2V5U2hhcmUoMiwgMiwgMyk7XG4gICAgY29uc3QgQyA9IE1QQy5rZXlTaGFyZSgzLCAyLCAzKTtcblxuICAgIGNvbnN0IEFfY29tYmluZSA9IE1QQy5rZXlDb21iaW5lKEEudVNoYXJlLCBbQi55U2hhcmVzWzFdLCBDLnlTaGFyZXNbMV1dKTtcblxuICAgIGNvbnN0IGNvbW1vbktleWNoYWluID0gQV9jb21iaW5lLnBTaGFyZS55ICsgQV9jb21iaW5lLnBTaGFyZS5jaGFpbmNvZGU7XG4gICAgcm9vdEtleWNoYWluID0gTVBDLmRlcml2ZVVuaGFyZGVuZWQoY29tbW9uS2V5Y2hhaW4sICdtLzAnKTtcbiAgICByb290UHVibGljS2V5ID0gQnVmZmVyLmZyb20ocm9vdEtleWNoYWluLnNsaWNlKDAsIDY0KSwgJ2hleCcpLnRvU3RyaW5nKCdoZXgnKTtcbiAgICBiaXRnbyA9IFRlc3RCaXRHby5kZWNvcmF0ZShCaXRHb0FQSSwgeyBlbnY6ICdtb2NrJyB9KTtcbiAgICBiaXRnby5zYWZlUmVnaXN0ZXIoJ3RjYW50b24nLCBUY2FudG9uLmNyZWF0ZUluc3RhbmNlKTtcbiAgICBiYXNlY29pbiA9IGJpdGdvLmNvaW4oJ3RjYW50b24nKSBhcyBUY2FudG9uO1xuICB9KTtcblxuICBkZXNjcmliZSgnc2hvdWxkIGNyZWF0ZSBhIHZhbGlkIEtleVBhaXInLCAoKSA9PiB7XG4gICAgaXQoJ2Zyb20gYW4gZW1wdHkgdmFsdWUnLCBhc3luYyAoKSA9PiB7XG4gICAgICBjb25zdCBrZXlQYWlyID0gbmV3IEtleVBhaXIoKTtcbiAgICAgIHNob3VsZC5leGlzdHMoa2V5UGFpci5nZXRLZXlzKCkucHJ2KTtcbiAgICAgIHNob3VsZC5leGlzdHMoa2V5UGFpci5nZXRLZXlzKCkucHViKTtcbiAgICAgIGNvbnN0IGFkZHJlc3MgPSB1dGlscy5nZXRBZGRyZXNzRnJvbVB1YmxpY0tleShrZXlQYWlyLmdldEtleXMoKS5wdWIpO1xuICAgICAgc2hvdWxkLmV4aXN0cyhhZGRyZXNzKTtcbiAgICB9KTtcbiAgfSk7XG5cbiAgZGVzY3JpYmUoJ0tleXBhaXIgZnJvbSBkZXJpdmVkIFB1YmxpYyBLZXknLCAoKSA9PiB7XG4gICAgaXQoJ3Nob3VsZCBjcmVhdGUga2V5cGFpciB3aXRoIGp1c3QgZGVyaXZlZCBwdWJsaWMga2V5JywgKCkgPT4ge1xuICAgICAgY29uc3Qga2V5UGFpciA9IG5ldyBLZXlQYWlyKHsgcHViOiByb290UHVibGljS2V5IH0pO1xuICAgICAga2V5UGFpci5nZXRLZXlzKCkucHViLnNob3VsZC5lcXVhbChyb290UHVibGljS2V5KTtcbiAgICB9KTtcblxuICAgIGl0KCdzaG91bGQgZGVyaXZlZCBlZDI1NTE5IHB1YmxpYyBrZXkgc2hvdWxkIGJlIHZhbGlkJywgKCkgPT4ge1xuICAgICAgdXRpbHMuaXNWYWxpZFB1YmxpY0tleShyb290UHVibGljS2V5KS5zaG91bGQuYmUudHJ1ZSgpO1xuICAgIH0pO1xuICB9KTtcblxuICBkZXNjcmliZSgnS2V5cGFpciBmcm9tIHJhbmRvbSBzZWVkJywgKCkgPT4ge1xuICAgIGl0KCdzaG91bGQgZ2VuZXJhdGUgYSBrZXlwYWlyIGZyb20gcmFuZG9tIHNlZWQnLCBmdW5jdGlvbiAoKSB7XG4gICAgICBjb25zdCBrZXlQYWlyID0gYmFzZWNvaW4uZ2VuZXJhdGVLZXlQYWlyKCk7XG4gICAgICBrZXlQYWlyLnNob3VsZC5oYXZlLnByb3BlcnR5KCdwdWInKTtcbiAgICAgIGtleVBhaXIuc2hvdWxkLmhhdmUucHJvcGVydHkoJ3BydicpO1xuICAgICAgaWYgKGtleVBhaXIucHViKSB7XG4gICAgICAgIGJhc2Vjb2luLmlzVmFsaWRQdWIoa2V5UGFpci5wdWIpLnNob3VsZC5lcXVhbCh0cnVlKTtcbiAgICAgIH1cbiAgICB9KTtcbiAgfSk7XG5cbiAgZGVzY3JpYmUoJ3Nob3VsZCBmYWlsIHRvIGNyZWF0ZSBhIEtleVBhaXInLCBmdW5jdGlvbiAoKSB7XG4gICAgaXQoJ2Zyb20gYW4gaW52YWxpZCBwdWJsaWMga2V5JywgKCkgPT4ge1xuICAgICAgY29uc3Qgc291cmNlID0ge1xuICAgICAgICBwdWI6ICcwMUQ2M0QnLFxuICAgICAgfTtcblxuICAgICAgYXNzZXJ0LnRocm93cygoKSA9PiBuZXcgS2V5UGFpcihzb3VyY2UpKTtcbiAgICB9KTtcbiAgfSk7XG59KTtcbiJdfQ==
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=utils.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"utils.d.ts","sourceRoot":"","sources":["../../../test/unit/utils.ts"],"names":[],"mappings":""}
@@ -0,0 +1,76 @@
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 utils_1 = __importDefault(require("../../src/lib/utils"));
9
+ const resources_1 = require("../resources");
10
+ describe('Canton Util', function () {
11
+ describe('Raw transaction parser', function () {
12
+ it('should parse the prepared transaction', () => {
13
+ const parsedData = utils_1.default.parseRawCantonTransactionData(resources_1.PreparedTransactionRawData);
14
+ should_1.default.exist(parsedData);
15
+ assert_1.default.equal(parsedData.sender, 'abc-1::12200c1ee226fbdf9fba3461c2c0c73331b69d3c6fd8cfce28cdf864141141cc656d');
16
+ assert_1.default.equal(parsedData.receiver, 'abc-2::12207e96ada18a845adf4dc01410265633d5266dca9bb280c98e35c3692db87d3e35');
17
+ assert_1.default.equal(parsedData.amount, '20.0000000000');
18
+ });
19
+ it('should parse the acceptance prepared transaction', () => {
20
+ const parsedData = utils_1.default.parseRawCantonTransactionData(resources_1.TransferAcceptancePrepareResponse.preparedTransaction);
21
+ should_1.default.exist(parsedData);
22
+ 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');
25
+ });
26
+ it('should parse the one-step preapproval prepared transaction', () => {
27
+ const parsedData = utils_1.default.parseRawCantonTransactionData(resources_1.OneStepPreApprovalPrepareResponse.preparedTransaction);
28
+ should_1.default.exist(parsedData);
29
+ assert_1.default.equal(parsedData.sender, 'Bitgo-devnet-validator-1::1220a0a0f60b0e62b5d750c484b18c091dba23080c133d944614ba75a5858cba3045');
30
+ assert_1.default.equal(parsedData.receiver, 'ravi-test-party-1::12205b4e3537a95126d90604592344d8ad3c3ddccda4f79901954280ee19c576714d');
31
+ assert_1.default.equal(parsedData.amount, '0');
32
+ });
33
+ });
34
+ describe('Wallet init transaction', function () {
35
+ it('should locally generate and validate the hash for topology transaction', function () {
36
+ const computedHash = utils_1.default.computeHashFromCreatePartyResponse(resources_1.GenerateTopologyResponse.topologyTransactions);
37
+ should_1.default.exist(computedHash);
38
+ assert_1.default.strictEqual(computedHash, resources_1.GenerateTopologyResponse.multiHash);
39
+ });
40
+ });
41
+ describe('Prepare submission response validation', function () {
42
+ it('should locally generate and validate the hash for prepare submission response', async function () {
43
+ const computedHash = await utils_1.default.computeHashFromPrepareSubmissionResponse(resources_1.PrepareSubmissionResponse.preparedTransaction);
44
+ should_1.default.exist(computedHash);
45
+ assert_1.default.strictEqual(computedHash, resources_1.PrepareSubmissionResponse.preparedTransactionHash);
46
+ });
47
+ });
48
+ describe('Check if the address is valid', function () {
49
+ it('should return true when the address is valid', function () {
50
+ const isValid = utils_1.default.isValidAddress(resources_1.CANTON_ADDRESSES.VALID_ADDRESS);
51
+ should_1.default.exist(isValid);
52
+ assert_1.default.strictEqual(isValid, true);
53
+ });
54
+ it('should return false when party hint is invalid', function () {
55
+ const isValid = utils_1.default.isValidAddress(resources_1.CANTON_ADDRESSES.INVALID_PARTY_HINT);
56
+ should_1.default.exist(isValid);
57
+ assert_1.default.strictEqual(isValid, false);
58
+ });
59
+ it('should return false when fingerprint is invalid', function () {
60
+ const isValid = utils_1.default.isValidAddress(resources_1.CANTON_ADDRESSES.INVALID_FINGERPRINT);
61
+ should_1.default.exist(isValid);
62
+ assert_1.default.strictEqual(isValid, false);
63
+ });
64
+ it('should return false when party hint is missing', function () {
65
+ const isValid = utils_1.default.isValidAddress(resources_1.CANTON_ADDRESSES.MISSING_PARTY_HINT);
66
+ should_1.default.exist(isValid);
67
+ assert_1.default.strictEqual(isValid, false);
68
+ });
69
+ it('should return false when fingerprint is missing', function () {
70
+ const isValid = utils_1.default.isValidAddress(resources_1.CANTON_ADDRESSES.MISSING_FINGERPRINT);
71
+ should_1.default.exist(isValid);
72
+ assert_1.default.strictEqual(isValid, false);
73
+ });
74
+ });
75
+ });
76
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidXRpbHMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi90ZXN0L3VuaXQvdXRpbHMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7QUFBQSxvREFBNEI7QUFDNUIsb0RBQTRCO0FBQzVCLGdFQUF3QztBQUN4Qyw0Q0FPc0I7QUFFdEIsUUFBUSxDQUFDLGFBQWEsRUFBRTtJQUN0QixRQUFRLENBQUMsd0JBQXdCLEVBQUU7UUFDakMsRUFBRSxDQUFDLHVDQUF1QyxFQUFFLEdBQUcsRUFBRTtZQUMvQyxNQUFNLFVBQVUsR0FBRyxlQUFLLENBQUMsNkJBQTZCLENBQUMsc0NBQTBCLENBQUMsQ0FBQztZQUNuRixnQkFBTSxDQUFDLEtBQUssQ0FBQyxVQUFVLENBQUMsQ0FBQztZQUN6QixnQkFBTSxDQUFDLEtBQUssQ0FBQyxVQUFVLENBQUMsTUFBTSxFQUFFLDZFQUE2RSxDQUFDLENBQUM7WUFDL0csZ0JBQU0sQ0FBQyxLQUFLLENBQUMsVUFBVSxDQUFDLFFBQVEsRUFBRSw2RUFBNkUsQ0FBQyxDQUFDO1lBQ2pILGdCQUFNLENBQUMsS0FBSyxDQUFDLFVBQVUsQ0FBQyxNQUFNLEVBQUUsZUFBZSxDQUFDLENBQUM7UUFDbkQsQ0FBQyxDQUFDLENBQUM7UUFFSCxFQUFFLENBQUMsa0RBQWtELEVBQUUsR0FBRyxFQUFFO1lBQzFELE1BQU0sVUFBVSxHQUFHLGVBQUssQ0FBQyw2QkFBNkIsQ0FBQyw2Q0FBaUMsQ0FBQyxtQkFBbUIsQ0FBQyxDQUFDO1lBQzlHLGdCQUFNLENBQUMsS0FBSyxDQUFDLFVBQVUsQ0FBQyxDQUFDO1lBQ3pCLGdCQUFNLENBQUMsS0FBSyxDQUFDLFVBQVUsQ0FBQyxNQUFNLEVBQUUsMkVBQTJFLENBQUMsQ0FBQztZQUM3RyxnQkFBTSxDQUFDLEtBQUssQ0FDVixVQUFVLENBQUMsUUFBUSxFQUNuQixxR0FBcUcsQ0FDdEcsQ0FBQztZQUNGLGdCQUFNLENBQUMsS0FBSyxDQUFDLFVBQVUsQ0FBQyxNQUFNLEVBQUUs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QUFXLENBQUMsT0FBTyxFQUFFLEtBQUssQ0FBQyxDQUFDO1FBQ3JDLENBQUMsQ0FBQyxDQUFDO1FBRUgsRUFBRSxDQUFDLGlEQUFpRCxFQUFFO1lBQ3BELE1BQU0sT0FBTyxHQUFHLGVBQUssQ0FBQyxjQUFjLENBQUMsNEJBQWdCLENBQUMsbUJBQW1CLENBQUMsQ0FBQztZQUMzRSxnQkFBTSxDQUFDLEtBQUssQ0FBQyxPQUFPLENBQUMsQ0FBQztZQUN0QixnQkFBTSxDQUFDLFdBQVcsQ0FBQyxPQUFPLEVBQUUsS0FBSyxDQUFDLENBQUM7UUFDckMsQ0FBQyxDQUFDLENBQUM7SUFDTCxDQUFDLENBQUMsQ0FBQztBQUNMLENBQUMsQ0FBQyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IGFzc2VydCBmcm9tICdhc3NlcnQnO1xuaW1wb3J0IHNob3VsZCBmcm9tICdzaG91bGQnO1xuaW1wb3J0IHV0aWxzIGZyb20gJy4uLy4uL3NyYy9saWIvdXRpbHMnO1xuaW1wb3J0IHtcbiAgQ0FOVE9OX0FERFJFU1NFUyxcbiAgR2VuZXJhdGVUb3BvbG9neVJlc3BvbnNlLFxuICBPbmVTdGVwUHJlQXBwcm92YWxQcmVwYXJlUmVzcG9uc2UsXG4gIFByZXBhcmVkVHJhbnNhY3Rpb25SYXdEYXRhLFxuICBQcmVwYXJlU3VibWlzc2lvblJlc3BvbnNlLFxuICBUcmFuc2ZlckFjY2VwdGFuY2VQcmVwYXJlUmVzcG9uc2UsXG59IGZyb20gJy4uL3Jlc291cmNlcyc7XG5cbmRlc2NyaWJlKCdDYW50b24gVXRpbCcsIGZ1bmN0aW9uICgpIHtcbiAgZGVzY3JpYmUoJ1JhdyB0cmFuc2FjdGlvbiBwYXJzZXInLCBmdW5jdGlvbiAoKSB7XG4gICAgaXQoJ3Nob3VsZCBwYXJzZSB0aGUgcHJlcGFyZWQgdHJhbnNhY3Rpb24nLCAoKSA9PiB7XG4gICAgICBjb25zdCBwYXJzZWREYXRhID0gdXRpbHMucGFyc2VSYXdDYW50b25UcmFuc2FjdGlvbkRhdGEoUHJlcGFyZWRUcmFuc2FjdGlvblJhd0RhdGEpO1xuICAgICAgc2hvdWxkLmV4aXN0KHBhcnNlZERhdGEpO1xuICAgICAgYXNzZXJ0LmVxdWFsKHBhcnNlZERhdGEuc2VuZGVyLCAnYWJjLTE6OjEyMjAwYzFlZTIyNmZiZGY5ZmJhMzQ2MWMyYzBjNzMzMzFiNjlkM2M2ZmQ4Y2ZjZTI4Y2RmODY0MTQxMTQxY2M2NTZkJyk7XG4gICAgICBhc3NlcnQuZXF1YWwocGFyc2VkRGF0YS5yZWNlaXZlciwgJ2FiYy0yOjoxMjIwN2U5NmFkYTE4YTg0NWFkZjRkYzAxNDEwMjY1NjMzZDUyNjZkY2E5YmIyODBjOThlMzVjMzY5MmRiODdkM2UzNScpO1xuICAgICAgYXNzZXJ0LmVxdWFsKHBhcnNlZERhdGEuYW1vdW50LCAnMjAuMDAwMDAwMDAwMCcpO1xuICAgIH0pO1xuXG4gICAgaXQoJ3Nob3VsZCBwYXJzZSB0aGUgYWNjZXB0YW5jZSBwcmVwYXJlZCB0cmFuc2FjdGlvbicsICgpID0+IHtcbiAgICAgIGNvbnN0IHBhcnNlZERhdGEgPSB1dGlscy5wYXJzZVJhd0NhbnRvblRyYW5zYWN0aW9uRGF0YShUcmFuc2ZlckFjY2VwdGFuY2VQcmVwYXJlUmVzcG9uc2UucHJlcGFyZWRUcmFuc2FjdGlvbik7XG4gICAgICBzaG91bGQuZXhpc3QocGFyc2VkRGF0YSk7XG4gICAgICBhc3NlcnQuZXF1YWwocGFyc2VkRGF0YS5zZW5kZXIsICdEU086OjEyMjBiZTU4YzI5ZTY1ZGU0MGJmMjczYmUxZGMyYjI2NmQ0M2E5YTAwMmVhNWIxODk1NWFlZWY3YWFjODgxYmI0NzFhJyk7XG4gICAgICBhc3NlcnQuZXF1YWwoXG4gICAgICAgIHBhcnNlZERhdGEucmVjZWl2ZXIsXG4gICAgICAgICdyYXZpLWRlbW8tcGFydHktdHhuLTAxLXRhcHBlcjo6MTIyMGVhN2FiNWE3MjNmOGE2YjIwNzhlNjE3ZTZjNThjYjdlNzhlNDk5NDdkZGMyMzllMWE5NDFhYTU2ZTZiYTA4YjQnXG4gICAgICApO1xuICAgICAgYXNzZXJ0LmVxdWFsKHBhcnNlZERhdGEuYW1vdW50LCAnNS4wMDAwMDAwMDAwJyk7XG4gICAgfSk7XG5cbiAgICBpdCgnc2hvdWxkIHBhcnNlIHRoZSBvbmUtc3RlcCBwcmVhcHByb3ZhbCBwcmVwYXJlZCB0cmFuc2FjdGlvbicsICgpID0+IHtcbiAgICAgIGNvbnN0IHBhcnNlZERhdGEgPSB1dGlscy5wYXJzZVJhd0NhbnRvblRyYW5zYWN0aW9uRGF0YShPbmVTdGVwUHJlQXBwcm92YWxQcmVwYXJlUmVzcG9uc2UucHJlcGFyZWRUcmFuc2FjdGlvbik7XG4gICAgICBzaG91bGQuZXhpc3QocGFyc2VkRGF0YSk7XG4gICAgICBhc3NlcnQuZXF1YWwoXG4gICAgICAgIHBhcnNlZERhdGEuc2VuZGVyLFxuICAgICAgICAnQml0Z28tZGV2bmV0LXZhbGlkYXRvci0xOjoxMjIwYTBhMGY2MGIwZTYyYjVkNzUwYzQ4NGIxOGMwOTFkYmEyMzA4MGMxMzNkOTQ0NjE0YmE3NWE1ODU4Y2JhMzA0NSdcbiAgICAgICk7XG4gICAgICBhc3NlcnQuZXF1YWwoXG4gICAgICAgIHBhcnNlZERhdGEucmVjZWl2ZXIsXG4gICAgICAgICdyYXZpLXRlc3QtcGFydHktMTo6MTIyMDViNGUzNTM3YTk1MTI2ZDkwNjA0NTkyMzQ0ZDhhZDNjM2RkY2NkYTRmNzk5MDE5NTQyODBlZTE5YzU3NjcxNGQnXG4gICAgICApO1xuICAgICAgYXNzZXJ0LmVxdWFsKHBhcnNlZERhdGEuYW1vdW50LCAnMCcpO1xuICAgIH0pO1xuICB9KTtcblxuICBkZXNjcmliZSgnV2FsbGV0IGluaXQgdHJhbnNhY3Rpb24nLCBmdW5jdGlvbiAoKSB7XG4gICAgaXQoJ3Nob3VsZCBsb2NhbGx5IGdlbmVyYXRlIGFuZCB2YWxpZGF0ZSB0aGUgaGFzaCBmb3IgdG9wb2xvZ3kgdHJhbnNhY3Rpb24nLCBmdW5jdGlvbiAoKSB7XG4gICAgICBjb25zdCBjb21wdXRlZEhhc2ggPSB1dGlscy5jb21wdXRlSGFzaEZyb21DcmVhdGVQYXJ0eVJlc3BvbnNlKEdlbmVyYXRlVG9wb2xvZ3lSZXNwb25zZS50b3BvbG9neVRyYW5zYWN0aW9ucyk7XG4gICAgICBzaG91bGQuZXhpc3QoY29tcHV0ZWRIYXNoKTtcbiAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChjb21wdXRlZEhhc2gsIEdlbmVyYXRlVG9wb2xvZ3lSZXNwb25zZS5tdWx0aUhhc2gpO1xuICAgIH0pO1xuICB9KTtcblxuICBkZXNjcmliZSgnUHJlcGFyZSBzdWJtaXNzaW9uIHJlc3BvbnNlIHZhbGlkYXRpb24nLCBmdW5jdGlvbiAoKSB7XG4gICAgaXQoJ3Nob3VsZCBsb2NhbGx5IGdlbmVyYXRlIGFuZCB2YWxpZGF0ZSB0aGUgaGFzaCBmb3IgcHJlcGFyZSBzdWJtaXNzaW9uIHJlc3BvbnNlJywgYXN5bmMgZnVuY3Rpb24gKCkge1xuICAgICAgY29uc3QgY29tcHV0ZWRIYXNoID0gYXdhaXQgdXRpbHMuY29tcHV0ZUhhc2hGcm9tUHJlcGFyZVN1Ym1pc3Npb25SZXNwb25zZShcbiAgICAgICAgUHJlcGFyZVN1Ym1pc3Npb25SZXNwb25zZS5wcmVwYXJlZFRyYW5zYWN0aW9uXG4gICAgICApO1xuICAgICAgc2hvdWxkLmV4aXN0KGNvbXB1dGVkSGFzaCk7XG4gICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoY29tcHV0ZWRIYXNoLCBQcmVwYXJlU3VibWlzc2lvblJlc3BvbnNlLnByZXBhcmVkVHJhbnNhY3Rpb25IYXNoKTtcbiAgICB9KTtcbiAgfSk7XG5cbiAgZGVzY3JpYmUoJ0NoZWNrIGlmIHRoZSBhZGRyZXNzIGlzIHZhbGlkJywgZnVuY3Rpb24gKCkge1xuICAgIGl0KCdzaG91bGQgcmV0dXJuIHRydWUgd2hlbiB0aGUgYWRkcmVzcyBpcyB2YWxpZCcsIGZ1bmN0aW9uICgpIHtcbiAgICAgIGNvbnN0IGlzVmFsaWQgPSB1dGlscy5pc1ZhbGlkQWRkcmVzcyhDQU5UT05fQUREUkVTU0VTLlZBTElEX0FERFJFU1MpO1xuICAgICAgc2hvdWxkLmV4aXN0KGlzVmFsaWQpO1xuICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKGlzVmFsaWQsIHRydWUpO1xuICAgIH0pO1xuXG4gICAgaXQoJ3Nob3VsZCByZXR1cm4gZmFsc2Ugd2hlbiBwYXJ0eSBoaW50IGlzIGludmFsaWQnLCBmdW5jdGlvbiAoKSB7XG4gICAgICBjb25zdCBpc1ZhbGlkID0gdXRpbHMuaXNWYWxpZEFkZHJlc3MoQ0FOVE9OX0FERFJFU1NFUy5JTlZBTElEX1BBUlRZX0hJTlQpO1xuICAgICAgc2hvdWxkLmV4aXN0KGlzVmFsaWQpO1xuICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKGlzVmFsaWQsIGZhbHNlKTtcbiAgICB9KTtcblxuICAgIGl0KCdzaG91bGQgcmV0dXJuIGZhbHNlIHdoZW4gZmluZ2VycHJpbnQgaXMgaW52YWxpZCcsIGZ1bmN0aW9uICgpIHtcbiAgICAgIGNvbnN0IGlzVmFsaWQgPSB1dGlscy5pc1ZhbGlkQWRkcmVzcyhDQU5UT05fQUREUkVTU0VTLklOVkFMSURfRklOR0VSUFJJTlQpO1xuICAgICAgc2hvdWxkLmV4aXN0KGlzVmFsaWQpO1xuICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKGlzVmFsaWQsIGZhbHNlKTtcbiAgICB9KTtcblxuICAgIGl0KCdzaG91bGQgcmV0dXJuIGZhbHNlIHdoZW4gcGFydHkgaGludCBpcyBtaXNzaW5nJywgZnVuY3Rpb24gKCkge1xuICAgICAgY29uc3QgaXNWYWxpZCA9IHV0aWxzLmlzVmFsaWRBZGRyZXNzKENBTlRPTl9BRERSRVNTRVMuTUlTU0lOR19QQVJUWV9ISU5UKTtcbiAgICAgIHNob3VsZC5leGlzdChpc1ZhbGlkKTtcbiAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChpc1ZhbGlkLCBmYWxzZSk7XG4gICAgfSk7XG5cbiAgICBpdCgnc2hvdWxkIHJldHVybiBmYWxzZSB3aGVuIGZpbmdlcnByaW50IGlzIG1pc3NpbmcnLCBmdW5jdGlvbiAoKSB7XG4gICAgICBjb25zdCBpc1ZhbGlkID0gdXRpbHMuaXNWYWxpZEFkZHJlc3MoQ0FOVE9OX0FERFJFU1NFUy5NSVNTSU5HX0ZJTkdFUlBSSU5UKTtcbiAgICAgIHNob3VsZC5leGlzdChpc1ZhbGlkKTtcbiAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChpc1ZhbGlkLCBmYWxzZSk7XG4gICAgfSk7XG4gIH0pO1xufSk7XG4iXX0=