@bitgo-beta/sdk-coin-canton 1.0.1-beta.72 → 1.0.1-beta.721

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 (172) hide show
  1. package/dist/src/canton.d.ts +22 -1
  2. package/dist/src/canton.d.ts.map +1 -1
  3. package/dist/src/canton.js +269 -10
  4. package/dist/src/cantonToken.d.ts +19 -0
  5. package/dist/src/cantonToken.d.ts.map +1 -0
  6. package/dist/src/cantonToken.js +52 -0
  7. package/dist/src/index.d.ts +1 -0
  8. package/dist/src/index.d.ts.map +1 -1
  9. package/dist/src/index.js +2 -1
  10. package/dist/src/lib/allocationAllocateBuilder.d.ts +126 -0
  11. package/dist/src/lib/allocationAllocateBuilder.d.ts.map +1 -0
  12. package/dist/src/lib/allocationAllocateBuilder.js +250 -0
  13. package/dist/src/lib/allocationAllocateWithdrawnBuilder.d.ts +67 -0
  14. package/dist/src/lib/allocationAllocateWithdrawnBuilder.d.ts.map +1 -0
  15. package/dist/src/lib/allocationAllocateWithdrawnBuilder.js +130 -0
  16. package/dist/src/lib/allocationRejectBuilder.d.ts +51 -0
  17. package/dist/src/lib/allocationRejectBuilder.d.ts.map +1 -0
  18. package/dist/src/lib/allocationRejectBuilder.js +107 -0
  19. package/dist/src/lib/allocationRequestBuilder.d.ts +116 -0
  20. package/dist/src/lib/allocationRequestBuilder.d.ts.map +1 -0
  21. package/dist/src/lib/allocationRequestBuilder.js +248 -0
  22. package/dist/src/lib/cantonCommandBuilder.d.ts +72 -0
  23. package/dist/src/lib/cantonCommandBuilder.d.ts.map +1 -0
  24. package/dist/src/lib/cantonCommandBuilder.js +173 -0
  25. package/dist/src/lib/clearSigning.d.ts +58 -0
  26. package/dist/src/lib/clearSigning.d.ts.map +1 -0
  27. package/dist/src/lib/clearSigning.js +66 -0
  28. package/dist/src/lib/cosignDelegationAcceptBuilder.d.ts +56 -0
  29. package/dist/src/lib/cosignDelegationAcceptBuilder.d.ts.map +1 -0
  30. package/dist/src/lib/cosignDelegationAcceptBuilder.js +112 -0
  31. package/dist/src/lib/cosignDelegationProposalBuilder.d.ts +60 -0
  32. package/dist/src/lib/cosignDelegationProposalBuilder.d.ts.map +1 -0
  33. package/dist/src/lib/cosignDelegationProposalBuilder.js +111 -0
  34. package/dist/src/lib/endInvestorOnboardingOfferBuilder.d.ts +58 -0
  35. package/dist/src/lib/endInvestorOnboardingOfferBuilder.d.ts.map +1 -0
  36. package/dist/src/lib/endInvestorOnboardingOfferBuilder.js +112 -0
  37. package/dist/src/lib/iface.d.ts +130 -2
  38. package/dist/src/lib/iface.d.ts.map +1 -1
  39. package/dist/src/lib/iface.js +3 -1
  40. package/dist/src/lib/index.d.ts +13 -0
  41. package/dist/src/lib/index.d.ts.map +1 -1
  42. package/dist/src/lib/index.js +29 -2
  43. package/dist/src/lib/messages/cantonBaseMessage.d.ts +16 -0
  44. package/dist/src/lib/messages/cantonBaseMessage.d.ts.map +1 -0
  45. package/dist/src/lib/messages/cantonBaseMessage.js +28 -0
  46. package/dist/src/lib/messages/cantonSignTopology/cantonSignTopologyMessage.d.ts +14 -0
  47. package/dist/src/lib/messages/cantonSignTopology/cantonSignTopologyMessage.d.ts.map +1 -0
  48. package/dist/src/lib/messages/cantonSignTopology/cantonSignTopologyMessage.js +23 -0
  49. package/dist/src/lib/messages/cantonSignTopology/cantonSignTopologyMessageBuilder.d.ts +17 -0
  50. package/dist/src/lib/messages/cantonSignTopology/cantonSignTopologyMessageBuilder.d.ts.map +1 -0
  51. package/dist/src/lib/messages/cantonSignTopology/cantonSignTopologyMessageBuilder.js +25 -0
  52. package/dist/src/lib/messages/cantonSignTopology/index.d.ts +3 -0
  53. package/dist/src/lib/messages/cantonSignTopology/index.d.ts.map +1 -0
  54. package/dist/src/lib/messages/cantonSignTopology/index.js +19 -0
  55. package/dist/src/lib/messages/cantonSignTransaction/cantonSignTransactionMessage.d.ts +13 -0
  56. package/dist/src/lib/messages/cantonSignTransaction/cantonSignTransactionMessage.d.ts.map +1 -0
  57. package/dist/src/lib/messages/cantonSignTransaction/cantonSignTransactionMessage.js +22 -0
  58. package/dist/src/lib/messages/cantonSignTransaction/cantonSignTransactionMessageBuilder.d.ts +14 -0
  59. package/dist/src/lib/messages/cantonSignTransaction/cantonSignTransactionMessageBuilder.d.ts.map +1 -0
  60. package/dist/src/lib/messages/cantonSignTransaction/cantonSignTransactionMessageBuilder.js +22 -0
  61. package/dist/src/lib/messages/cantonSignTransaction/index.d.ts +3 -0
  62. package/dist/src/lib/messages/cantonSignTransaction/index.d.ts.map +1 -0
  63. package/dist/src/lib/messages/cantonSignTransaction/index.js +19 -0
  64. package/dist/src/lib/messages/index.d.ts +5 -0
  65. package/dist/src/lib/messages/index.d.ts.map +1 -0
  66. package/dist/src/lib/messages/index.js +21 -0
  67. package/dist/src/lib/messages/messageBuilderFactory.d.ts +7 -0
  68. package/dist/src/lib/messages/messageBuilderFactory.d.ts.map +1 -0
  69. package/dist/src/lib/messages/messageBuilderFactory.js +23 -0
  70. package/dist/src/lib/oneStepPreApprovalBuilder.d.ts +8 -0
  71. package/dist/src/lib/oneStepPreApprovalBuilder.d.ts.map +1 -1
  72. package/dist/src/lib/oneStepPreApprovalBuilder.js +15 -1
  73. package/dist/src/lib/resourcesInterface.d.ts +1 -1
  74. package/dist/src/lib/resourcesInterface.d.ts.map +1 -1
  75. package/dist/src/lib/resourcesInterface.js +1 -1
  76. package/dist/src/lib/transaction/transaction.d.ts +17 -1
  77. package/dist/src/lib/transaction/transaction.d.ts.map +1 -1
  78. package/dist/src/lib/transaction/transaction.js +291 -16
  79. package/dist/src/lib/transactionBuilderFactory.d.ts +22 -0
  80. package/dist/src/lib/transactionBuilderFactory.d.ts.map +1 -1
  81. package/dist/src/lib/transactionBuilderFactory.js +78 -1
  82. package/dist/src/lib/transferAcceptanceBuilder.d.ts +4 -4
  83. package/dist/src/lib/transferAcceptanceBuilder.d.ts.map +1 -1
  84. package/dist/src/lib/transferAcceptanceBuilder.js +6 -6
  85. package/dist/src/lib/transferBuilder.d.ts +84 -2
  86. package/dist/src/lib/transferBuilder.d.ts.map +1 -1
  87. package/dist/src/lib/transferBuilder.js +166 -2
  88. package/dist/src/lib/transferOfferWithdrawnBuilder.d.ts +67 -0
  89. package/dist/src/lib/transferOfferWithdrawnBuilder.d.ts.map +1 -0
  90. package/dist/src/lib/transferOfferWithdrawnBuilder.js +130 -0
  91. package/dist/src/lib/transferRejectionBuilder.d.ts +59 -0
  92. package/dist/src/lib/transferRejectionBuilder.d.ts.map +1 -0
  93. package/dist/src/lib/transferRejectionBuilder.js +116 -0
  94. package/dist/src/lib/utils.d.ts +45 -3
  95. package/dist/src/lib/utils.d.ts.map +1 -1
  96. package/dist/src/lib/utils.js +742 -66
  97. package/dist/src/lib/walletInitBuilder.d.ts +2 -1
  98. package/dist/src/lib/walletInitBuilder.d.ts.map +1 -1
  99. package/dist/src/lib/walletInitBuilder.js +4 -1
  100. package/dist/src/lib/walletInitialization/walletInitTransaction.d.ts +2 -1
  101. package/dist/src/lib/walletInitialization/walletInitTransaction.d.ts.map +1 -1
  102. package/dist/src/lib/walletInitialization/walletInitTransaction.js +14 -1
  103. package/dist/src/register.d.ts.map +1 -1
  104. package/dist/src/register.js +5 -1
  105. package/dist/test/helper.d.ts +3 -0
  106. package/dist/test/helper.d.ts.map +1 -0
  107. package/dist/test/helper.js +9 -0
  108. package/dist/test/integration/canton.integration.d.ts +2 -0
  109. package/dist/test/integration/canton.integration.d.ts.map +1 -0
  110. package/dist/test/integration/canton.integration.js +157 -0
  111. package/dist/test/integration/canton.token.integration.d.ts +2 -0
  112. package/dist/test/integration/canton.token.integration.d.ts.map +1 -0
  113. package/dist/test/integration/canton.token.integration.js +51 -0
  114. package/dist/test/resources.d.ts +226 -2
  115. package/dist/test/resources.d.ts.map +1 -1
  116. package/dist/test/resources.js +231 -7
  117. package/dist/test/unit/builder/allocationAllocate/allocationAllocateBuilder.d.ts +2 -0
  118. package/dist/test/unit/builder/allocationAllocate/allocationAllocateBuilder.d.ts.map +1 -0
  119. package/dist/test/unit/builder/allocationAllocate/allocationAllocateBuilder.js +360 -0
  120. package/dist/test/unit/builder/allocationAllocateWithdrawn/allocationAllocateWithdrawnBuilder.d.ts +2 -0
  121. package/dist/test/unit/builder/allocationAllocateWithdrawn/allocationAllocateWithdrawnBuilder.d.ts.map +1 -0
  122. package/dist/test/unit/builder/allocationAllocateWithdrawn/allocationAllocateWithdrawnBuilder.js +133 -0
  123. package/dist/test/unit/builder/allocationReject/allocationRejectBuilder.d.ts +2 -0
  124. package/dist/test/unit/builder/allocationReject/allocationRejectBuilder.d.ts.map +1 -0
  125. package/dist/test/unit/builder/allocationReject/allocationRejectBuilder.js +121 -0
  126. package/dist/test/unit/builder/allocationRequest/allocationRequestBuilder.d.ts +2 -0
  127. package/dist/test/unit/builder/allocationRequest/allocationRequestBuilder.d.ts.map +1 -0
  128. package/dist/test/unit/builder/allocationRequest/allocationRequestBuilder.js +407 -0
  129. package/dist/test/unit/builder/cantonCommand/cantonCommandBuilder.d.ts +2 -0
  130. package/dist/test/unit/builder/cantonCommand/cantonCommandBuilder.d.ts.map +1 -0
  131. package/dist/test/unit/builder/cantonCommand/cantonCommandBuilder.js +340 -0
  132. package/dist/test/unit/builder/cosignDelegationAccept/cosignDelegationAcceptBuilder.d.ts +2 -0
  133. package/dist/test/unit/builder/cosignDelegationAccept/cosignDelegationAcceptBuilder.d.ts.map +1 -0
  134. package/dist/test/unit/builder/cosignDelegationAccept/cosignDelegationAcceptBuilder.js +104 -0
  135. package/dist/test/unit/builder/cosignDelegationProposal/cosignDelegationProposalBuilder.d.ts +2 -0
  136. package/dist/test/unit/builder/cosignDelegationProposal/cosignDelegationProposalBuilder.d.ts.map +1 -0
  137. package/dist/test/unit/builder/cosignDelegationProposal/cosignDelegationProposalBuilder.js +74 -0
  138. package/dist/test/unit/builder/endInvestorOnboardingOffer/endInvestorOnboardingOfferBuilder.d.ts +2 -0
  139. package/dist/test/unit/builder/endInvestorOnboardingOffer/endInvestorOnboardingOfferBuilder.d.ts.map +1 -0
  140. package/dist/test/unit/builder/endInvestorOnboardingOffer/endInvestorOnboardingOfferBuilder.js +116 -0
  141. package/dist/test/unit/builder/oneStepEnablement/oneStepEnablementBuilder.js +20 -1
  142. package/dist/test/unit/builder/transfer/transferBuilder.d.ts +2 -0
  143. package/dist/test/unit/builder/transfer/transferBuilder.d.ts.map +1 -0
  144. package/dist/test/unit/builder/transfer/transferBuilder.js +84 -0
  145. package/dist/test/unit/builder/transferAccept/transferAcceptBuilder.js +65 -15
  146. package/dist/test/unit/builder/transferOfferWithdrawn/transferOfferWithdrawnBuilder.d.ts +2 -0
  147. package/dist/test/unit/builder/transferOfferWithdrawn/transferOfferWithdrawnBuilder.d.ts.map +1 -0
  148. package/dist/test/unit/builder/transferOfferWithdrawn/transferOfferWithdrawnBuilder.js +64 -0
  149. package/dist/test/unit/builder/transferReject/transferRejectBuilder.d.ts +2 -0
  150. package/dist/test/unit/builder/transferReject/transferRejectBuilder.d.ts.map +1 -0
  151. package/dist/test/unit/builder/transferReject/transferRejectBuilder.js +96 -0
  152. package/dist/test/unit/canton.d.ts +2 -0
  153. package/dist/test/unit/canton.d.ts.map +1 -0
  154. package/dist/test/unit/canton.js +705 -0
  155. package/dist/test/unit/index.d.ts +5 -0
  156. package/dist/test/unit/index.d.ts.map +1 -1
  157. package/dist/test/unit/index.js +6 -1
  158. package/dist/test/unit/messages/cantonSignTopologyMessage.d.ts +2 -0
  159. package/dist/test/unit/messages/cantonSignTopologyMessage.d.ts.map +1 -0
  160. package/dist/test/unit/messages/cantonSignTopologyMessage.js +46 -0
  161. package/dist/test/unit/messages/cantonSignTransactionMessage.d.ts +2 -0
  162. package/dist/test/unit/messages/cantonSignTransactionMessage.d.ts.map +1 -0
  163. package/dist/test/unit/messages/cantonSignTransactionMessage.js +48 -0
  164. package/dist/test/unit/messages/clearSigning.d.ts +2 -0
  165. package/dist/test/unit/messages/clearSigning.d.ts.map +1 -0
  166. package/dist/test/unit/messages/clearSigning.js +72 -0
  167. package/dist/test/unit/messages/messageBuilderFactory.d.ts +2 -0
  168. package/dist/test/unit/messages/messageBuilderFactory.d.ts.map +1 -0
  169. package/dist/test/unit/messages/messageBuilderFactory.js +52 -0
  170. package/dist/test/unit/utils.js +366 -9
  171. package/dist/tsconfig.tsbuildinfo +1 -1
  172. package/package.json +8 -8
@@ -1,2 +1,7 @@
1
1
  import 'should';
2
+ import './canton';
3
+ import './messages/clearSigning';
4
+ import './messages/cantonSignTransactionMessage';
5
+ import './messages/cantonSignTopologyMessage';
6
+ import './messages/messageBuilderFactory';
2
7
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../test/unit/index.ts"],"names":[],"mappings":"AAAA,OAAO,QAAQ,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../test/unit/index.ts"],"names":[],"mappings":"AAAA,OAAO,QAAQ,CAAC;AAKhB,OAAO,UAAU,CAAC;AAClB,OAAO,yBAAyB,CAAC;AACjC,OAAO,yCAAyC,CAAC;AACjD,OAAO,sCAAsC,CAAC;AAC9C,OAAO,kCAAkC,CAAC"}
@@ -4,6 +4,11 @@ require("should");
4
4
  const sdk_api_1 = require("@bitgo-beta/sdk-api");
5
5
  const sdk_test_1 = require("@bitgo-beta/sdk-test");
6
6
  const src_1 = require("../../src");
7
+ require("./canton");
8
+ require("./messages/clearSigning");
9
+ require("./messages/cantonSignTransactionMessage");
10
+ require("./messages/cantonSignTopologyMessage");
11
+ require("./messages/messageBuilderFactory");
7
12
  describe('Canton:', function () {
8
13
  let bitgo;
9
14
  before(function () {
@@ -13,4 +18,4 @@ describe('Canton:', function () {
13
18
  bitgo.initializeTestVars();
14
19
  });
15
20
  });
16
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi90ZXN0L3VuaXQvaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7QUFBQSxrQkFBZ0I7QUFDaEIsaURBQStDO0FBQy9DLG1EQUErRDtBQUMvRCxtQ0FBNEM7QUFFNUMsUUFBUSxDQUFDLFNBQVMsRUFBRTtJQUNsQixJQUFJLEtBQW1CLENBQUM7SUFFeEIsTUFBTSxDQUFDO1FBQ0wsS0FBSyxHQUFHLG9CQUFTLENBQUMsUUFBUSxDQUFDLGtCQUFRLEVBQUUsRUFBRSxHQUFHLEVBQUUsTUFBTSxFQUFFLENBQUMsQ0FBQztRQUN0RCxLQUFLLENBQUMsWUFBWSxDQUFDLFFBQVEsRUFBRSxZQUFNLENBQUMsY0FBYyxDQUFDLENBQUM7UUFDcEQsS0FBSyxDQUFDLFlBQVksQ0FBQyxTQUFTLEVBQUUsYUFBTyxDQUFDLGNBQWMsQ0FBQyxDQUFDO1FBQ3RELEtBQUssQ0FBQyxrQkFBa0IsRUFBRSxDQUFDO0lBQzdCLENBQUMsQ0FBQyxDQUFDO0FBQ0wsQ0FBQyxDQUFDLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgJ3Nob3VsZCc7XG5pbXBvcnQgeyBCaXRHb0FQSSB9IGZyb20gJ0BiaXRnby1iZXRhL3Nkay1hcGknO1xuaW1wb3J0IHsgVGVzdEJpdEdvLCBUZXN0Qml0R29BUEkgfSBmcm9tICdAYml0Z28tYmV0YS9zZGstdGVzdCc7XG5pbXBvcnQgeyBDYW50b24sIFRjYW50b24gfSBmcm9tICcuLi8uLi9zcmMnO1xuXG5kZXNjcmliZSgnQ2FudG9uOicsIGZ1bmN0aW9uICgpIHtcbiAgbGV0IGJpdGdvOiBUZXN0Qml0R29BUEk7XG5cbiAgYmVmb3JlKGZ1bmN0aW9uICgpIHtcbiAgICBiaXRnbyA9IFRlc3RCaXRHby5kZWNvcmF0ZShCaXRHb0FQSSwgeyBlbnY6ICdtb2NrJyB9KTtcbiAgICBiaXRnby5zYWZlUmVnaXN0ZXIoJ2NhbnRvbicsIENhbnRvbi5jcmVhdGVJbnN0YW5jZSk7XG4gICAgYml0Z28uc2FmZVJlZ2lzdGVyKCd0Y2FudG9uJywgVGNhbnRvbi5jcmVhdGVJbnN0YW5jZSk7XG4gICAgYml0Z28uaW5pdGlhbGl6ZVRlc3RWYXJzKCk7XG4gIH0pO1xufSk7XG4iXX0=
21
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi90ZXN0L3VuaXQvaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7QUFBQSxrQkFBZ0I7QUFDaEIsaURBQStDO0FBQy9DLG1EQUErRDtBQUMvRCxtQ0FBNEM7QUFFNUMsb0JBQWtCO0FBQ2xCLG1DQUFpQztBQUNqQyxtREFBaUQ7QUFDakQsZ0RBQThDO0FBQzlDLDRDQUEwQztBQUUxQyxRQUFRLENBQUMsU0FBUyxFQUFFO0lBQ2xCLElBQUksS0FBbUIsQ0FBQztJQUV4QixNQUFNLENBQUM7UUFDTCxLQUFLLEdBQUcsb0JBQVMsQ0FBQyxRQUFRLENBQUMsa0JBQVEsRUFBRSxFQUFFLEdBQUcsRUFBRSxNQUFNLEVBQUUsQ0FBQyxDQUFDO1FBQ3RELEtBQUssQ0FBQyxZQUFZLENBQUMsUUFBUSxFQUFFLFlBQU0sQ0FBQyxjQUFjLENBQUMsQ0FBQztRQUNwRCxLQUFLLENBQUMsWUFBWSxDQUFDLFNBQVMsRUFBRSxhQUFPLENBQUMsY0FBYyxDQUFDLENBQUM7UUFDdEQsS0FBSyxDQUFDLGtCQUFrQixFQUFFLENBQUM7SUFDN0IsQ0FBQyxDQUFDLENBQUM7QUFDTCxDQUFDLENBQUMsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCAnc2hvdWxkJztcbmltcG9ydCB7IEJpdEdvQVBJIH0gZnJvbSAnQGJpdGdvLWJldGEvc2RrLWFwaSc7XG5pbXBvcnQgeyBUZXN0Qml0R28sIFRlc3RCaXRHb0FQSSB9IGZyb20gJ0BiaXRnby1iZXRhL3Nkay10ZXN0JztcbmltcG9ydCB7IENhbnRvbiwgVGNhbnRvbiB9IGZyb20gJy4uLy4uL3NyYyc7XG5cbmltcG9ydCAnLi9jYW50b24nO1xuaW1wb3J0ICcuL21lc3NhZ2VzL2NsZWFyU2lnbmluZyc7XG5pbXBvcnQgJy4vbWVzc2FnZXMvY2FudG9uU2lnblRyYW5zYWN0aW9uTWVzc2FnZSc7XG5pbXBvcnQgJy4vbWVzc2FnZXMvY2FudG9uU2lnblRvcG9sb2d5TWVzc2FnZSc7XG5pbXBvcnQgJy4vbWVzc2FnZXMvbWVzc2FnZUJ1aWxkZXJGYWN0b3J5JztcblxuZGVzY3JpYmUoJ0NhbnRvbjonLCBmdW5jdGlvbiAoKSB7XG4gIGxldCBiaXRnbzogVGVzdEJpdEdvQVBJO1xuXG4gIGJlZm9yZShmdW5jdGlvbiAoKSB7XG4gICAgYml0Z28gPSBUZXN0Qml0R28uZGVjb3JhdGUoQml0R29BUEksIHsgZW52OiAnbW9jaycgfSk7XG4gICAgYml0Z28uc2FmZVJlZ2lzdGVyKCdjYW50b24nLCBDYW50b24uY3JlYXRlSW5zdGFuY2UpO1xuICAgIGJpdGdvLnNhZmVSZWdpc3RlcigndGNhbnRvbicsIFRjYW50b24uY3JlYXRlSW5zdGFuY2UpO1xuICAgIGJpdGdvLmluaXRpYWxpemVUZXN0VmFycygpO1xuICB9KTtcbn0pO1xuIl19
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=cantonSignTopologyMessage.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"cantonSignTopologyMessage.d.ts","sourceRoot":"","sources":["../../../../test/unit/messages/cantonSignTopologyMessage.ts"],"names":[],"mappings":""}
@@ -0,0 +1,46 @@
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 sdk_core_1 = require("@bitgo-beta/sdk-core");
9
+ const cantonSignTopologyMessage_1 = require("../../../src/lib/messages/cantonSignTopology/cantonSignTopologyMessage");
10
+ // A real base64-encoded topology hash (multiHash from GenerateTopologyResponse).
11
+ const SAMPLE_TOPOLOGY_HASH = 'EiDQky+Uxo2zEwFp+JabeazILMMd7QR639/B/u+OGR+npg==';
12
+ function makeOptions(payload = SAMPLE_TOPOLOGY_HASH) {
13
+ return { coinConfig: {}, payload };
14
+ }
15
+ describe('CantonSignTopologyMessage', function () {
16
+ describe('constructor', function () {
17
+ it('should set type to CANTON_SIGN_TOPOLOGY', function () {
18
+ const msg = new cantonSignTopologyMessage_1.CantonSignTopologyMessage(makeOptions());
19
+ msg.getType().should.equal(sdk_core_1.MessageStandardType.CANTON_SIGN_TOPOLOGY);
20
+ });
21
+ it('should store the payload', function () {
22
+ const msg = new cantonSignTopologyMessage_1.CantonSignTopologyMessage(makeOptions());
23
+ msg.getPayload().should.equal(SAMPLE_TOPOLOGY_HASH);
24
+ });
25
+ });
26
+ describe('getSignablePayload', function () {
27
+ it('should decode base64 topology hash to raw bytes', async function () {
28
+ const msg = new cantonSignTopologyMessage_1.CantonSignTopologyMessage(makeOptions());
29
+ const signable = await msg.getSignablePayload();
30
+ should_1.default.ok(Buffer.isBuffer(signable));
31
+ assert_1.default.deepStrictEqual(signable, Buffer.from(SAMPLE_TOPOLOGY_HASH, 'base64'));
32
+ });
33
+ it('should produce same byte structure as CANTON_SIGN_TRANSACTION for equivalent hash', async function () {
34
+ // Both message types decode base64 → raw bytes identically; the type is the HSM format discriminator
35
+ const hash = 'EiDQky+Uxo2zEwFp+JabeazILMMd7QR639/B/u+OGR+npg==';
36
+ const msg = new cantonSignTopologyMessage_1.CantonSignTopologyMessage({ coinConfig: {}, payload: hash });
37
+ const signable = await msg.getSignablePayload();
38
+ assert_1.default.deepStrictEqual(signable, Buffer.from(hash, 'base64'));
39
+ });
40
+ it('should throw when payload is missing', async function () {
41
+ const msg = new cantonSignTopologyMessage_1.CantonSignTopologyMessage({ ...makeOptions(), payload: '' });
42
+ await msg.getSignablePayload().should.be.rejectedWith('Message payload is missing');
43
+ });
44
+ });
45
+ });
46
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2FudG9uU2lnblRvcG9sb2d5TWVzc2FnZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3Rlc3QvdW5pdC9tZXNzYWdlcy9jYW50b25TaWduVG9wb2xvZ3lNZXNzYWdlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7O0FBQUEsb0RBQTRCO0FBQzVCLG9EQUE0QjtBQUM1QixtREFBMkU7QUFDM0Usc0hBQW1IO0FBRW5ILGlGQUFpRjtBQUNqRixNQUFNLG9CQUFvQixHQUFHLGtEQUFrRCxDQUFDO0FBRWhGLFNBQVMsV0FBVyxDQUFDLE9BQU8sR0FBRyxvQkFBb0I7SUFDakQsT0FBTyxFQUFFLFVBQVUsRUFBRSxFQUFTLEVBQUUsT0FBTyxFQUFFLENBQUM7QUFDNUMsQ0FBQztBQUVELFFBQVEsQ0FBQywyQkFBMkIsRUFBRTtJQUNwQyxRQUFRLENBQUMsYUFBYSxFQUFFO1FBQ3RCLEVBQUUsQ0FBQyx5Q0FBeUMsRUFBRTtZQUM1QyxNQUFNLEdBQUcsR0FBRyxJQUFJLHFEQUF5QixDQUFDLFdBQVcsRUFBRSxDQUFDLENBQUM7WUFDekQsR0FBRyxDQUFDLE9BQU8sRUFBRSxDQUFDLE1BQU0sQ0FBQyxLQUFLLENBQUMsOEJBQW1CLENBQUMsb0JBQW9CLENBQUMsQ0FBQztRQUN2RSxDQUFDLENBQUMsQ0FBQztRQUVILEVBQUUsQ0FBQywwQkFBMEIsRUFBRTtZQUM3QixNQUFNLEdBQUcsR0FBRyxJQUFJLHFEQUF5QixDQUFDLFdBQVcsRUFBRSxDQUFDLENBQUM7WUFDekQsR0FBRyxDQUFDLFVBQVUsRUFBRSxDQUFDLE1BQU0sQ0FBQyxLQUFLLENBQUMsb0JBQW9CLENBQUMsQ0FBQztRQUN0RCxDQUFDLENBQUMsQ0FBQztJQUNMLENBQUMsQ0FBQyxDQUFDO0lBRUgsUUFBUSxDQUFDLG9CQUFvQixFQUFFO1FBQzdCLEVBQUUsQ0FBQyxpREFBaUQsRUFBRSxLQUFLO1lBQ3pELE1BQU0sR0FBRyxHQUFHLElBQUkscURBQXlCLENBQUMsV0FBVyxFQUFFLENBQUMsQ0FBQztZQUN6RCxNQUFNLFFBQVEsR0FBRyxNQUFNLEdBQUcsQ0FBQyxrQkFBa0IsRUFBRSxDQUFDO1lBQ2hELGdCQUFNLENBQUMsRUFBRSxDQUFDLE1BQU0sQ0FBQyxRQUFRLENBQUMsUUFBUSxDQUFDLENBQUMsQ0FBQztZQUNyQyxnQkFBTSxDQUFDLGVBQWUsQ0FBQyxRQUFrQixFQUFFLE1BQU0sQ0FBQyxJQUFJLENBQUMsb0JBQW9CLEVBQUUsUUFBUSxDQUFDLENBQUMsQ0FBQztRQUMxRixDQUFDLENBQUMsQ0FBQztRQUVILEVBQUUsQ0FBQyxtRkFBbUYsRUFBRSxLQUFLO1lBQzNGLHFHQUFxRztZQUNyRyxNQUFNLElBQUksR0FBRyxrREFBa0QsQ0FBQztZQUNoRSxNQUFNLEdBQUcsR0FBRyxJQUFJLHFEQUF5QixDQUFDLEVBQUUsVUFBVSxFQUFFLEVBQVMsRUFBRSxPQUFPLEVBQUUsSUFBSSxFQUFFLENBQUMsQ0FBQztZQUNwRixNQUFNLFFBQVEsR0FBRyxNQUFNLEdBQUcsQ0FBQyxrQkFBa0IsRUFBRSxDQUFDO1lBQ2hELGdCQUFNLENBQUMsZUFBZSxDQUFDLFFBQWtCLEVBQUUsTUFBTSxDQUFDLElBQUksQ0FBQyxJQUFJLEVBQUUsUUFBUSxDQUFDLENBQUMsQ0FBQztRQUMxRSxDQUFDLENBQUMsQ0FBQztRQUVILEVBQUUsQ0FBQyxzQ0FBc0MsRUFBRSxLQUFLO1lBQzlDLE1BQU0sR0FBRyxHQUFHLElBQUkscURBQXlCLENBQUMsRUFBRSxHQUFHLFdBQVcsRUFBRSxFQUFFLE9BQU8sRUFBRSxFQUFFLEVBQUUsQ0FBQyxDQUFDO1lBQzdFLE1BQU0sR0FBRyxDQUFDLGtCQUFrQixFQUFFLENBQUMsTUFBTSxDQUFDLEVBQUUsQ0FBQyxZQUFZLENBQUMsNEJBQTRCLENBQUMsQ0FBQztRQUN0RixDQUFDLENBQUMsQ0FBQztJQUNMLENBQUMsQ0FBQyxDQUFDO0FBQ0wsQ0FBQyxDQUFDLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgYXNzZXJ0IGZyb20gJ2Fzc2VydCc7XG5pbXBvcnQgc2hvdWxkIGZyb20gJ3Nob3VsZCc7XG5pbXBvcnQgeyBNZXNzYWdlT3B0aW9ucywgTWVzc2FnZVN0YW5kYXJkVHlwZSB9IGZyb20gJ0BiaXRnby1iZXRhL3Nkay1jb3JlJztcbmltcG9ydCB7IENhbnRvblNpZ25Ub3BvbG9neU1lc3NhZ2UgfSBmcm9tICcuLi8uLi8uLi9zcmMvbGliL21lc3NhZ2VzL2NhbnRvblNpZ25Ub3BvbG9neS9jYW50b25TaWduVG9wb2xvZ3lNZXNzYWdlJztcblxuLy8gQSByZWFsIGJhc2U2NC1lbmNvZGVkIHRvcG9sb2d5IGhhc2ggKG11bHRpSGFzaCBmcm9tIEdlbmVyYXRlVG9wb2xvZ3lSZXNwb25zZSkuXG5jb25zdCBTQU1QTEVfVE9QT0xPR1lfSEFTSCA9ICdFaURRa3krVXhvMnpFd0ZwK0phYmVheklMTU1kN1FSNjM5L0IvdStPR1IrbnBnPT0nO1xuXG5mdW5jdGlvbiBtYWtlT3B0aW9ucyhwYXlsb2FkID0gU0FNUExFX1RPUE9MT0dZX0hBU0gpOiBNZXNzYWdlT3B0aW9ucyB7XG4gIHJldHVybiB7IGNvaW5Db25maWc6IHt9IGFzIGFueSwgcGF5bG9hZCB9O1xufVxuXG5kZXNjcmliZSgnQ2FudG9uU2lnblRvcG9sb2d5TWVzc2FnZScsIGZ1bmN0aW9uICgpIHtcbiAgZGVzY3JpYmUoJ2NvbnN0cnVjdG9yJywgZnVuY3Rpb24gKCkge1xuICAgIGl0KCdzaG91bGQgc2V0IHR5cGUgdG8gQ0FOVE9OX1NJR05fVE9QT0xPR1knLCBmdW5jdGlvbiAoKSB7XG4gICAgICBjb25zdCBtc2cgPSBuZXcgQ2FudG9uU2lnblRvcG9sb2d5TWVzc2FnZShtYWtlT3B0aW9ucygpKTtcbiAgICAgIG1zZy5nZXRUeXBlKCkuc2hvdWxkLmVxdWFsKE1lc3NhZ2VTdGFuZGFyZFR5cGUuQ0FOVE9OX1NJR05fVE9QT0xPR1kpO1xuICAgIH0pO1xuXG4gICAgaXQoJ3Nob3VsZCBzdG9yZSB0aGUgcGF5bG9hZCcsIGZ1bmN0aW9uICgpIHtcbiAgICAgIGNvbnN0IG1zZyA9IG5ldyBDYW50b25TaWduVG9wb2xvZ3lNZXNzYWdlKG1ha2VPcHRpb25zKCkpO1xuICAgICAgbXNnLmdldFBheWxvYWQoKS5zaG91bGQuZXF1YWwoU0FNUExFX1RPUE9MT0dZX0hBU0gpO1xuICAgIH0pO1xuICB9KTtcblxuICBkZXNjcmliZSgnZ2V0U2lnbmFibGVQYXlsb2FkJywgZnVuY3Rpb24gKCkge1xuICAgIGl0KCdzaG91bGQgZGVjb2RlIGJhc2U2NCB0b3BvbG9neSBoYXNoIHRvIHJhdyBieXRlcycsIGFzeW5jIGZ1bmN0aW9uICgpIHtcbiAgICAgIGNvbnN0IG1zZyA9IG5ldyBDYW50b25TaWduVG9wb2xvZ3lNZXNzYWdlKG1ha2VPcHRpb25zKCkpO1xuICAgICAgY29uc3Qgc2lnbmFibGUgPSBhd2FpdCBtc2cuZ2V0U2lnbmFibGVQYXlsb2FkKCk7XG4gICAgICBzaG91bGQub2soQnVmZmVyLmlzQnVmZmVyKHNpZ25hYmxlKSk7XG4gICAgICBhc3NlcnQuZGVlcFN0cmljdEVxdWFsKHNpZ25hYmxlIGFzIEJ1ZmZlciwgQnVmZmVyLmZyb20oU0FNUExFX1RPUE9MT0dZX0hBU0gsICdiYXNlNjQnKSk7XG4gICAgfSk7XG5cbiAgICBpdCgnc2hvdWxkIHByb2R1Y2Ugc2FtZSBieXRlIHN0cnVjdHVyZSBhcyBDQU5UT05fU0lHTl9UUkFOU0FDVElPTiBmb3IgZXF1aXZhbGVudCBoYXNoJywgYXN5bmMgZnVuY3Rpb24gKCkge1xuICAgICAgLy8gQm90aCBtZXNzYWdlIHR5cGVzIGRlY29kZSBiYXNlNjQg4oaSIHJhdyBieXRlcyBpZGVudGljYWxseTsgdGhlIHR5cGUgaXMgdGhlIEhTTSBmb3JtYXQgZGlzY3JpbWluYXRvclxuICAgICAgY29uc3QgaGFzaCA9ICdFaURRa3krVXhvMnpFd0ZwK0phYmVheklMTU1kN1FSNjM5L0IvdStPR1IrbnBnPT0nO1xuICAgICAgY29uc3QgbXNnID0gbmV3IENhbnRvblNpZ25Ub3BvbG9neU1lc3NhZ2UoeyBjb2luQ29uZmlnOiB7fSBhcyBhbnksIHBheWxvYWQ6IGhhc2ggfSk7XG4gICAgICBjb25zdCBzaWduYWJsZSA9IGF3YWl0IG1zZy5nZXRTaWduYWJsZVBheWxvYWQoKTtcbiAgICAgIGFzc2VydC5kZWVwU3RyaWN0RXF1YWwoc2lnbmFibGUgYXMgQnVmZmVyLCBCdWZmZXIuZnJvbShoYXNoLCAnYmFzZTY0JykpO1xuICAgIH0pO1xuXG4gICAgaXQoJ3Nob3VsZCB0aHJvdyB3aGVuIHBheWxvYWQgaXMgbWlzc2luZycsIGFzeW5jIGZ1bmN0aW9uICgpIHtcbiAgICAgIGNvbnN0IG1zZyA9IG5ldyBDYW50b25TaWduVG9wb2xvZ3lNZXNzYWdlKHsgLi4ubWFrZU9wdGlvbnMoKSwgcGF5bG9hZDogJycgfSk7XG4gICAgICBhd2FpdCBtc2cuZ2V0U2lnbmFibGVQYXlsb2FkKCkuc2hvdWxkLmJlLnJlamVjdGVkV2l0aCgnTWVzc2FnZSBwYXlsb2FkIGlzIG1pc3NpbmcnKTtcbiAgICB9KTtcbiAgfSk7XG59KTtcbiJdfQ==
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=cantonSignTransactionMessage.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"cantonSignTransactionMessage.d.ts","sourceRoot":"","sources":["../../../../test/unit/messages/cantonSignTransactionMessage.ts"],"names":[],"mappings":""}
@@ -0,0 +1,48 @@
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 sdk_core_1 = require("@bitgo-beta/sdk-core");
9
+ const cantonSignTransactionMessage_1 = require("../../../src/lib/messages/cantonSignTransaction/cantonSignTransactionMessage");
10
+ // A real base64-encoded preparedTransactionHash from Canton's prepareSubmission response.
11
+ // This is exactly what Canton's signTransaction sends as txHash.
12
+ const SAMPLE_TX_HASH = '7Ey4Q2TqWQcK1eAl6p15UT02M4mx92Tvo9ifvtzlm5o=';
13
+ function makeOptions(payload = SAMPLE_TX_HASH) {
14
+ return { coinConfig: {}, payload };
15
+ }
16
+ describe('CantonSignTransactionMessage', function () {
17
+ describe('constructor', function () {
18
+ it('should set type to CANTON_SIGN_TRANSACTION', function () {
19
+ const msg = new cantonSignTransactionMessage_1.CantonSignTransactionMessage(makeOptions());
20
+ msg.getType().should.equal(sdk_core_1.MessageStandardType.CANTON_SIGN_TRANSACTION);
21
+ });
22
+ it('should store the payload', function () {
23
+ const msg = new cantonSignTransactionMessage_1.CantonSignTransactionMessage(makeOptions());
24
+ msg.getPayload().should.equal(SAMPLE_TX_HASH);
25
+ });
26
+ });
27
+ describe('getSignablePayload', function () {
28
+ it('should decode base64 txHash to raw bytes', async function () {
29
+ const msg = new cantonSignTransactionMessage_1.CantonSignTransactionMessage(makeOptions());
30
+ const signable = await msg.getSignablePayload();
31
+ should_1.default.ok(Buffer.isBuffer(signable));
32
+ // Decoding the base64 txHash and re-encoding should round-trip
33
+ assert_1.default.deepStrictEqual(signable, Buffer.from(SAMPLE_TX_HASH, 'base64'));
34
+ });
35
+ it('should produce the same bytes as the transaction signablePayload in normal tx flow', async function () {
36
+ // In the normal tx flow: Buffer.from(preparedTransactionHash, 'base64')
37
+ // txHash IS the preparedTransactionHash — they must be identical
38
+ const msg = new cantonSignTransactionMessage_1.CantonSignTransactionMessage(makeOptions());
39
+ const signable = await msg.getSignablePayload();
40
+ assert_1.default.deepStrictEqual(signable, Buffer.from(SAMPLE_TX_HASH, 'base64'));
41
+ });
42
+ it('should throw when payload is missing', async function () {
43
+ const msg = new cantonSignTransactionMessage_1.CantonSignTransactionMessage({ ...makeOptions(), payload: '' });
44
+ await msg.getSignablePayload().should.be.rejectedWith('Message payload is missing');
45
+ });
46
+ });
47
+ });
48
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2FudG9uU2lnblRyYW5zYWN0aW9uTWVzc2FnZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3Rlc3QvdW5pdC9tZXNzYWdlcy9jYW50b25TaWduVHJhbnNhY3Rpb25NZXNzYWdlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7O0FBQUEsb0RBQTRCO0FBQzVCLG9EQUE0QjtBQUM1QixtREFBMkU7QUFDM0UsK0hBQTRIO0FBRTVILDBGQUEwRjtBQUMxRixpRUFBaUU7QUFDakUsTUFBTSxjQUFjLEdBQUcsOENBQThDLENBQUM7QUFFdEUsU0FBUyxXQUFXLENBQUMsT0FBTyxHQUFHLGNBQWM7SUFDM0MsT0FBTyxFQUFFLFVBQVUsRUFBRSxFQUFTLEVBQUUsT0FBTyxFQUFFLENBQUM7QUFDNUMsQ0FBQztBQUVELFFBQVEsQ0FBQyw4QkFBOEIsRUFBRTtJQUN2QyxRQUFRLENBQUMsYUFBYSxFQUFFO1FBQ3RCLEVBQUUsQ0FBQyw0Q0FBNEMsRUFBRTtZQUMvQyxNQUFNLEdBQUcsR0FBRyxJQUFJLDJEQUE0QixDQUFDLFdBQVcsRUFBRSxDQUFDLENBQUM7WUFDNUQsR0FBRyxDQUFDLE9BQU8sRUFBRSxDQUFDLE1BQU0sQ0FBQyxLQUFLLENBQUMsOEJBQW1CLENBQUMsdUJBQXVCLENBQUMsQ0FBQztRQUMxRSxDQUFDLENBQUMsQ0FBQztRQUVILEVBQUUsQ0FBQywwQkFBMEIsRUFBRTtZQUM3QixNQUFNLEdBQUcsR0FBRyxJQUFJLDJEQUE0QixDQUFDLFdBQVcsRUFBRSxDQUFDLENBQUM7WUFDNUQsR0FBRyxDQUFDLFVBQVUsRUFBRSxDQUFDLE1BQU0sQ0FBQyxLQUFLLENBQUMsY0FBYyxDQUFDLENBQUM7UUFDaEQsQ0FBQyxDQUFDLENBQUM7SUFDTCxDQUFDLENBQUMsQ0FBQztJQUVILFFBQVEsQ0FBQyxvQkFBb0IsRUFBRTtRQUM3QixFQUFFLENBQUMsMENBQTBDLEVBQUUsS0FBSztZQUNsRCxNQUFNLEdBQUcsR0FBRyxJQUFJLDJEQUE0QixDQUFDLFdBQVcsRUFBRSxDQUFDLENBQUM7WUFDNUQsTUFBTSxRQUFRLEdBQUcsTUFBTSxHQUFHLENBQUMsa0JBQWtCLEVBQUUsQ0FBQztZQUNoRCxnQkFBTSxDQUFDLEVBQUUsQ0FBQyxNQUFNLENBQUMsUUFBUSxDQUFDLFFBQVEsQ0FBQyxDQUFDLENBQUM7WUFDckMsK0RBQStEO1lBQy9ELGdCQUFNLENBQUMsZUFBZSxDQUFDLFFBQWtCLEVBQUUsTUFBTSxDQUFDLElBQUksQ0FBQyxjQUFjLEVBQUUsUUFBUSxDQUFDLENBQUMsQ0FBQztRQUNwRixDQUFDLENBQUMsQ0FBQztRQUVILEVBQUUsQ0FBQyxvRkFBb0YsRUFBRSxLQUFLO1lBQzVGLHdFQUF3RTtZQUN4RSxpRUFBaUU7WUFDakUsTUFBTSxHQUFHLEdBQUcsSUFBSSwyREFBNEIsQ0FBQyxXQUFXLEVBQUUsQ0FBQyxDQUFDO1lBQzVELE1BQU0sUUFBUSxHQUFHLE1BQU0sR0FBRyxDQUFDLGtCQUFrQixFQUFFLENBQUM7WUFDaEQsZ0JBQU0sQ0FBQyxlQUFlLENBQUMsUUFBa0IsRUFBRSxNQUFNLENBQUMsSUFBSSxDQUFDLGNBQWMsRUFBRSxRQUFRLENBQUMsQ0FBQyxDQUFDO1FBQ3BGLENBQUMsQ0FBQyxDQUFDO1FBRUgsRUFBRSxDQUFDLHNDQUFzQyxFQUFFLEtBQUs7WUFDOUMsTUFBTSxHQUFHLEdBQUcsSUFBSSwyREFBNEIsQ0FBQyxFQUFFLEdBQUcsV0FBVyxFQUFFLEVBQUUsT0FBTyxFQUFFLEVBQUUsRUFBRSxDQUFDLENBQUM7WUFDaEYsTUFBTSxHQUFHLENBQUMsa0JBQWtCLEVBQUUsQ0FBQyxNQUFNLENBQUMsRUFBRSxDQUFDLFlBQVksQ0FBQyw0QkFBNEIsQ0FBQyxDQUFDO1FBQ3RGLENBQUMsQ0FBQyxDQUFDO0lBQ0wsQ0FBQyxDQUFDLENBQUM7QUFDTCxDQUFDLENBQUMsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCBhc3NlcnQgZnJvbSAnYXNzZXJ0JztcbmltcG9ydCBzaG91bGQgZnJvbSAnc2hvdWxkJztcbmltcG9ydCB7IE1lc3NhZ2VPcHRpb25zLCBNZXNzYWdlU3RhbmRhcmRUeXBlIH0gZnJvbSAnQGJpdGdvLWJldGEvc2RrLWNvcmUnO1xuaW1wb3J0IHsgQ2FudG9uU2lnblRyYW5zYWN0aW9uTWVzc2FnZSB9IGZyb20gJy4uLy4uLy4uL3NyYy9saWIvbWVzc2FnZXMvY2FudG9uU2lnblRyYW5zYWN0aW9uL2NhbnRvblNpZ25UcmFuc2FjdGlvbk1lc3NhZ2UnO1xuXG4vLyBBIHJlYWwgYmFzZTY0LWVuY29kZWQgcHJlcGFyZWRUcmFuc2FjdGlvbkhhc2ggZnJvbSBDYW50b24ncyBwcmVwYXJlU3VibWlzc2lvbiByZXNwb25zZS5cbi8vIFRoaXMgaXMgZXhhY3RseSB3aGF0IENhbnRvbidzIHNpZ25UcmFuc2FjdGlvbiBzZW5kcyBhcyB0eEhhc2guXG5jb25zdCBTQU1QTEVfVFhfSEFTSCA9ICc3RXk0UTJUcVdRY0sxZUFsNnAxNVVUMDJNNG14OTJUdm85aWZ2dHpsbTVvPSc7XG5cbmZ1bmN0aW9uIG1ha2VPcHRpb25zKHBheWxvYWQgPSBTQU1QTEVfVFhfSEFTSCk6IE1lc3NhZ2VPcHRpb25zIHtcbiAgcmV0dXJuIHsgY29pbkNvbmZpZzoge30gYXMgYW55LCBwYXlsb2FkIH07XG59XG5cbmRlc2NyaWJlKCdDYW50b25TaWduVHJhbnNhY3Rpb25NZXNzYWdlJywgZnVuY3Rpb24gKCkge1xuICBkZXNjcmliZSgnY29uc3RydWN0b3InLCBmdW5jdGlvbiAoKSB7XG4gICAgaXQoJ3Nob3VsZCBzZXQgdHlwZSB0byBDQU5UT05fU0lHTl9UUkFOU0FDVElPTicsIGZ1bmN0aW9uICgpIHtcbiAgICAgIGNvbnN0IG1zZyA9IG5ldyBDYW50b25TaWduVHJhbnNhY3Rpb25NZXNzYWdlKG1ha2VPcHRpb25zKCkpO1xuICAgICAgbXNnLmdldFR5cGUoKS5zaG91bGQuZXF1YWwoTWVzc2FnZVN0YW5kYXJkVHlwZS5DQU5UT05fU0lHTl9UUkFOU0FDVElPTik7XG4gICAgfSk7XG5cbiAgICBpdCgnc2hvdWxkIHN0b3JlIHRoZSBwYXlsb2FkJywgZnVuY3Rpb24gKCkge1xuICAgICAgY29uc3QgbXNnID0gbmV3IENhbnRvblNpZ25UcmFuc2FjdGlvbk1lc3NhZ2UobWFrZU9wdGlvbnMoKSk7XG4gICAgICBtc2cuZ2V0UGF5bG9hZCgpLnNob3VsZC5lcXVhbChTQU1QTEVfVFhfSEFTSCk7XG4gICAgfSk7XG4gIH0pO1xuXG4gIGRlc2NyaWJlKCdnZXRTaWduYWJsZVBheWxvYWQnLCBmdW5jdGlvbiAoKSB7XG4gICAgaXQoJ3Nob3VsZCBkZWNvZGUgYmFzZTY0IHR4SGFzaCB0byByYXcgYnl0ZXMnLCBhc3luYyBmdW5jdGlvbiAoKSB7XG4gICAgICBjb25zdCBtc2cgPSBuZXcgQ2FudG9uU2lnblRyYW5zYWN0aW9uTWVzc2FnZShtYWtlT3B0aW9ucygpKTtcbiAgICAgIGNvbnN0IHNpZ25hYmxlID0gYXdhaXQgbXNnLmdldFNpZ25hYmxlUGF5bG9hZCgpO1xuICAgICAgc2hvdWxkLm9rKEJ1ZmZlci5pc0J1ZmZlcihzaWduYWJsZSkpO1xuICAgICAgLy8gRGVjb2RpbmcgdGhlIGJhc2U2NCB0eEhhc2ggYW5kIHJlLWVuY29kaW5nIHNob3VsZCByb3VuZC10cmlwXG4gICAgICBhc3NlcnQuZGVlcFN0cmljdEVxdWFsKHNpZ25hYmxlIGFzIEJ1ZmZlciwgQnVmZmVyLmZyb20oU0FNUExFX1RYX0hBU0gsICdiYXNlNjQnKSk7XG4gICAgfSk7XG5cbiAgICBpdCgnc2hvdWxkIHByb2R1Y2UgdGhlIHNhbWUgYnl0ZXMgYXMgdGhlIHRyYW5zYWN0aW9uIHNpZ25hYmxlUGF5bG9hZCBpbiBub3JtYWwgdHggZmxvdycsIGFzeW5jIGZ1bmN0aW9uICgpIHtcbiAgICAgIC8vIEluIHRoZSBub3JtYWwgdHggZmxvdzogQnVmZmVyLmZyb20ocHJlcGFyZWRUcmFuc2FjdGlvbkhhc2gsICdiYXNlNjQnKVxuICAgICAgLy8gdHhIYXNoIElTIHRoZSBwcmVwYXJlZFRyYW5zYWN0aW9uSGFzaCDigJQgdGhleSBtdXN0IGJlIGlkZW50aWNhbFxuICAgICAgY29uc3QgbXNnID0gbmV3IENhbnRvblNpZ25UcmFuc2FjdGlvbk1lc3NhZ2UobWFrZU9wdGlvbnMoKSk7XG4gICAgICBjb25zdCBzaWduYWJsZSA9IGF3YWl0IG1zZy5nZXRTaWduYWJsZVBheWxvYWQoKTtcbiAgICAgIGFzc2VydC5kZWVwU3RyaWN0RXF1YWwoc2lnbmFibGUgYXMgQnVmZmVyLCBCdWZmZXIuZnJvbShTQU1QTEVfVFhfSEFTSCwgJ2Jhc2U2NCcpKTtcbiAgICB9KTtcblxuICAgIGl0KCdzaG91bGQgdGhyb3cgd2hlbiBwYXlsb2FkIGlzIG1pc3NpbmcnLCBhc3luYyBmdW5jdGlvbiAoKSB7XG4gICAgICBjb25zdCBtc2cgPSBuZXcgQ2FudG9uU2lnblRyYW5zYWN0aW9uTWVzc2FnZSh7IC4uLm1ha2VPcHRpb25zKCksIHBheWxvYWQ6ICcnIH0pO1xuICAgICAgYXdhaXQgbXNnLmdldFNpZ25hYmxlUGF5bG9hZCgpLnNob3VsZC5iZS5yZWplY3RlZFdpdGgoJ01lc3NhZ2UgcGF5bG9hZCBpcyBtaXNzaW5nJyk7XG4gICAgfSk7XG4gIH0pO1xufSk7XG4iXX0=
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=clearSigning.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"clearSigning.d.ts","sourceRoot":"","sources":["../../../../test/unit/messages/clearSigning.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 assert_1 = __importDefault(require("assert"));
7
+ const should_1 = __importDefault(require("should"));
8
+ const sdk_core_1 = require("@bitgo-beta/sdk-core");
9
+ const clearSigning_1 = require("../../../src/lib/clearSigning");
10
+ const resources_1 = require("../../resources");
11
+ // A single topology transaction byte string — not a PreparedTransaction proto
12
+ const TOPOLOGY_TX = resources_1.GenerateTopologyResponse.topologyTransactions[0];
13
+ describe('Canton clearSigning', function () {
14
+ describe('detectCantonSigningPayloadType', function () {
15
+ it('should detect a Daml prepared transaction as CANTON_SIGN_TRANSACTION', function () {
16
+ const type = (0, clearSigning_1.detectCantonSigningPayloadType)(resources_1.PreparedTransactionRawData);
17
+ type.should.equal(sdk_core_1.MessageStandardType.CANTON_SIGN_TRANSACTION);
18
+ });
19
+ it('should detect a topology transaction as CANTON_SIGN_TOPOLOGY', function () {
20
+ const type = (0, clearSigning_1.detectCantonSigningPayloadType)(TOPOLOGY_TX);
21
+ type.should.equal(sdk_core_1.MessageStandardType.CANTON_SIGN_TOPOLOGY);
22
+ });
23
+ it('should return CANTON_SIGN_TOPOLOGY for bytes that fail proto parsing', function () {
24
+ // Random base64 that is not a valid PreparedTransaction proto
25
+ const randomBytes = Buffer.from('not-a-valid-proto-payload').toString('base64');
26
+ const type = (0, clearSigning_1.detectCantonSigningPayloadType)(randomBytes);
27
+ type.should.equal(sdk_core_1.MessageStandardType.CANTON_SIGN_TOPOLOGY);
28
+ });
29
+ it('should return CANTON_SIGN_TOPOLOGY for empty bytes', function () {
30
+ const type = (0, clearSigning_1.detectCantonSigningPayloadType)(Buffer.alloc(0).toString('base64'));
31
+ type.should.equal(sdk_core_1.MessageStandardType.CANTON_SIGN_TOPOLOGY);
32
+ });
33
+ });
34
+ describe('decodePreparedTransaction — invalid input', function () {
35
+ it('should throw a descriptive error when called with topology bytes', function () {
36
+ should_1.default.throws(() => (0, clearSigning_1.decodePreparedTransaction)(TOPOLOGY_TX), /not a Daml PreparedTransaction.*detectCantonSigningPayloadType/);
37
+ });
38
+ it('should throw a descriptive error when called with random bytes', function () {
39
+ const randomBytes = Buffer.from('not-a-valid-proto-payload').toString('base64');
40
+ should_1.default.throws(() => (0, clearSigning_1.decodePreparedTransaction)(randomBytes), /not a Daml PreparedTransaction.*detectCantonSigningPayloadType/);
41
+ });
42
+ });
43
+ describe('decodePreparedTransaction', function () {
44
+ it('should decode a prepared transaction and return structured command info', function () {
45
+ const decoded = (0, clearSigning_1.decodePreparedTransaction)(resources_1.PreparedTransactionRawData);
46
+ should_1.default.exist(decoded);
47
+ should_1.default.exist(decoded.kind);
48
+ should_1.default.exist(decoded.templateId);
49
+ should_1.default.exist(decoded.templateId.moduleName);
50
+ should_1.default.exist(decoded.templateId.entityName);
51
+ should_1.default.exist(decoded.argument);
52
+ });
53
+ it('decoded templateId should have module and entity name fields', function () {
54
+ const decoded = (0, clearSigning_1.decodePreparedTransaction)(resources_1.PreparedTransactionRawData);
55
+ decoded.templateId.moduleName.should.be.a.String().and.not.empty();
56
+ decoded.templateId.entityName.should.be.a.String().and.not.empty();
57
+ });
58
+ it('decoded kind should be CreateCommand or ExerciseCommand', function () {
59
+ const decoded = (0, clearSigning_1.decodePreparedTransaction)(resources_1.PreparedTransactionRawData);
60
+ assert_1.default.ok(decoded.kind === 'CreateCommand' || decoded.kind === 'ExerciseCommand', `expected CreateCommand or ExerciseCommand, got: ${decoded.kind}`);
61
+ });
62
+ it('ExerciseCommand should include choice and actingParties', function () {
63
+ const decoded = (0, clearSigning_1.decodePreparedTransaction)(resources_1.PreparedTransactionRawData);
64
+ if (decoded.kind === 'ExerciseCommand') {
65
+ should_1.default.exist(decoded.choice);
66
+ should_1.default.exist(decoded.actingParties);
67
+ decoded.actingParties.should.be.an.Array();
68
+ }
69
+ });
70
+ });
71
+ });
72
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2xlYXJTaWduaW5nLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vdGVzdC91bml0L21lc3NhZ2VzL2NsZWFyU2lnbmluZy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7OztBQUFBLG9EQUE0QjtBQUM1QixvREFBNEI7QUFDNUIsbURBQTJEO0FBQzNELGdFQUEwRztBQUMxRywrQ0FBdUY7QUFFdkYsOEVBQThFO0FBQzlFLE1BQU0sV0FBVyxHQUFHLG9DQUF3QixDQUFDLG9CQUFvQixDQUFDLENBQUMsQ0FBQyxDQUFDO0FBRXJFLFFBQVEsQ0FBQyxxQkFBcUIsRUFBRTtJQUM5QixRQUFRLENBQUMsZ0NBQWdDLEVBQUU7UUFDekMsRUFBRSxDQUFDLHNFQUFzRSxFQUFFO1lBQ3pFLE1BQU0sSUFBSSxHQUFHLElBQUEsNkNBQThCLEVBQUMsc0NBQTBCLENBQUMsQ0FBQztZQUN4RSxJQUFJLENBQUMsTUFBTSxDQUFDLEtBQUssQ0FBQyw4QkFBbUIsQ0FBQyx1QkFBdUIsQ0FBQyxDQUFDO1FBQ2pFLENBQUMsQ0FBQyxDQUFDO1FBRUgsRUFBRSxDQUFDLDhEQUE4RCxFQUFFO1lBQ2pFLE1BQU0sSUFBSSxHQUFHLElBQUEsNkNBQThCLEVBQUMsV0FBVyxDQUFDLENBQUM7WUFDekQsSUFBSSxDQUFDLE1BQU0sQ0FBQyxLQUFLLENBQUMsOEJBQW1CLENBQUMsb0JBQW9CLENBQUMsQ0FBQztRQUM5RCxDQUFDLENBQUMsQ0FBQztRQUVILEVBQUUsQ0FBQyxzRUFBc0UsRUFBRTtZQUN6RSw4REFBOEQ7WUFDOUQsTUFBTSxXQUFXLEdBQUcsTUFBTSxDQUFDLElBQUksQ0FBQywyQkFBMkIsQ0FBQyxDQUFDLFFBQVEsQ0FBQyxRQUFRLENBQUMsQ0FBQztZQUNoRixNQUFNLElBQUksR0FBRyxJQUFBLDZDQUE4QixFQUFDLFdBQVcsQ0FBQyxDQUFDO1lBQ3pELElBQUksQ0FBQyxNQUFNLENBQUMsS0FBSyxDQUFDLDhCQUFtQixDQUFDLG9CQUFv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LElBQUksS0FBSyxpQkFBaUIsRUFBRSxDQUFDO2dCQUN2QyxnQkFBTSxDQUFDLEtBQUssQ0FBQyxPQUFPLENBQUMsTUFBTSxDQUFDLENBQUM7Z0JBQzdCLGdCQUFNLENBQUMsS0FBSyxDQUFDLE9BQU8sQ0FBQyxhQUFhLENBQUMsQ0FBQztnQkFDcEMsT0FBTyxDQUFDLGFBQWMsQ0FBQyxNQUFNLENBQUMsRUFBRSxDQUFDLEVBQUUsQ0FBQyxLQUFLLEVBQUUsQ0FBQztZQUM5QyxDQUFDO1FBQ0gsQ0FBQyxDQUFDLENBQUM7SUFDTCxDQUFDLENBQUMsQ0FBQztBQUNMLENBQUMsQ0FBQyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IGFzc2VydCBmcm9tICdhc3NlcnQnO1xuaW1wb3J0IHNob3VsZCBmcm9tICdzaG91bGQnO1xuaW1wb3J0IHsgTWVzc2FnZVN0YW5kYXJkVHlwZSB9IGZyb20gJ0BiaXRnby1iZXRhL3Nkay1jb3JlJztcbmltcG9ydCB7IGRldGVjdENhbnRvblNpZ25pbmdQYXlsb2FkVHlwZSwgZGVjb2RlUHJlcGFyZWRUcmFuc2FjdGlvbiB9IGZyb20gJy4uLy4uLy4uL3NyYy9saWIvY2xlYXJTaWduaW5nJztcbmltcG9ydCB7IFByZXBhcmVkVHJhbnNhY3Rpb25SYXdEYXRhLCBHZW5lcmF0ZVRvcG9sb2d5UmVzcG9uc2UgfSBmcm9tICcuLi8uLi9yZXNvdXJjZXMnO1xuXG4vLyBBIHNpbmdsZSB0b3BvbG9neSB0cmFuc2FjdGlvbiBieXRlIHN0cmluZyDigJQgbm90IGEgUHJlcGFyZWRUcmFuc2FjdGlvbiBwcm90b1xuY29uc3QgVE9QT0xPR1lfVFggPSBHZW5lcmF0ZVRvcG9sb2d5UmVzcG9uc2UudG9wb2xvZ3lUcmFuc2FjdGlvbnNbMF07XG5cbmRlc2NyaWJlKCdDYW50b24gY2xlYXJTaWduaW5nJywgZnVuY3Rpb24gKCkge1xuICBkZXNjcmliZSgnZGV0ZWN0Q2FudG9uU2lnbmluZ1BheWxvYWRUeXBlJywgZnVuY3Rpb24gKCkge1xuICAgIGl0KCdzaG91bGQgZGV0ZWN0IGEgRGFtbCBwcmVwYXJlZCB0cmFuc2FjdGlvbiBhcyBDQU5UT05fU0lHTl9UUkFOU0FDVElPTicsIGZ1bmN0aW9uICgpIHtcbiAgICAgIGNvbnN0IHR5cGUgPSBkZXRlY3RDYW50b25TaWduaW5nUGF5bG9hZFR5cGUoUHJlcGFyZWRUcmFuc2FjdGlvblJhd0RhdGEpO1xuICAgICAgdHlwZS5zaG91bGQuZXF1YWwoTWVzc2FnZVN0YW5kYXJkVHlwZS5DQU5UT05fU0lHTl9UUkFOU0FDVElPTik7XG4gICAgfSk7XG5cbiAgICBpdCgnc2hvdWxkIGRldGVjdCBhIHRvcG9sb2d5IHRyYW5zYWN0aW9uIGFzIENBTlRPTl9TSUdOX1RPUE9MT0dZJywgZnVuY3Rpb24gKCkge1xuICAgICAgY29uc3QgdHlwZSA9IGRldGVjdENhbnRvblNpZ25pbmdQYXlsb2FkVHlwZShUT1BPTE9HWV9UWCk7XG4gICAgICB0eXBlLnNob3VsZC5lcXVhbChNZXNzYWdlU3RhbmRhcmRUeXBlLkNBTlRPTl9TSUdOX1RPUE9MT0dZKTtcbiAgICB9KTtcblxuICAgIGl0KCdzaG91bGQgcmV0dXJuIENBTlRPTl9TSUdOX1RPUE9MT0dZIGZvciBieXRlcyB0aGF0IGZhaWwgcHJvdG8gcGFyc2luZycsIGZ1bmN0aW9uICgpIHtcbiAgICAgIC8vIFJhbmRvbSBiYXNlNjQgdGhhdCBpcyBub3QgYSB2YWxpZCBQcmVwYXJlZFRyYW5zYWN0aW9uIHByb3RvXG4gICAgICBjb25zdCByYW5kb21CeXRlcyA9IEJ1ZmZlci5mcm9tKCdub3QtYS12YWxpZC1wcm90by1wYXlsb2FkJykudG9TdHJpbmcoJ2Jhc2U2NCcpO1xuICAgICAgY29uc3QgdHlwZSA9IGRldGVjdENhbnRvblNpZ25pbmdQYXlsb2FkVHlwZShyYW5kb21CeXRlcyk7XG4gICAgICB0eXBlLnNob3VsZC5lcXVhbChNZXNzYWdlU3RhbmRhcmRUeXBlLkNBTlRPTl9TSUdOX1RPUE9MT0dZKTtcbiAgICB9KTtcblxuICAgIGl0KCdzaG91bGQgcmV0dXJuIENBTlRPTl9TSUdOX1RPUE9MT0dZIGZvciBlbXB0eSBieXRlcycsIGZ1bmN0aW9uICgpIHtcbiAgICAgIGNvbnN0IHR5cGUgPSBkZXRlY3RDYW50b25TaWduaW5nUGF5bG9hZFR5cGUoQnVmZmVyLmFsbG9jKDApLnRvU3RyaW5nKCdiYXNlNjQnKSk7XG4gICAgICB0eXBlLnNob3VsZC5lcXVhbChNZXNzYWdlU3RhbmRhcmRUeXBlLkNBTlRPTl9TSUdOX1RPUE9MT0dZKTtcbiAgICB9KTtcbiAgfSk7XG5cbiAgZGVzY3JpYmUoJ2RlY29kZVByZXBhcmVkVHJhbnNhY3Rpb24g4oCUIGludmFsaWQgaW5wdXQnLCBmdW5jdGlvbiAoKSB7XG4gICAgaXQoJ3Nob3VsZCB0aHJvdyBhIGRlc2NyaXB0aXZlIGVycm9yIHdoZW4gY2FsbGVkIHdpdGggdG9wb2xvZ3kgYnl0ZXMnLCBmdW5jdGlvbiAoKSB7XG4gICAgICBzaG91bGQudGhyb3dzKFxuICAgICAgICAoKSA9PiBkZWNvZGVQcmVwYXJlZFRyYW5zYWN0aW9uKFRPUE9MT0dZX1RYKSxcbiAgICAgICAgL25vdCBhIERhbWwgUHJlcGFyZWRUcmFuc2FjdGlvbi4qZGV0ZWN0Q2FudG9uU2lnbmluZ1BheWxvYWRUeXBlL1xuICAgICAgKTtcbiAgICB9KTtcblxuICAgIGl0KCdzaG91bGQgdGhyb3cgYSBkZXNjcmlwdGl2ZSBlcnJvciB3aGVuIGNhbGxlZCB3aXRoIHJhbmRvbSBieXRlcycsIGZ1bmN0aW9uICgpIHtcbiAgICAgIGNvbnN0IHJhbmRvbUJ5dGVzID0gQnVmZmVyLmZyb20oJ25vdC1hLXZhbGlkLXByb3RvLXBheWxvYWQnKS50b1N0cmluZygnYmFzZTY0Jyk7XG4gICAgICBzaG91bGQudGhyb3dzKFxuICAgICAgICAoKSA9PiBkZWNvZGVQcmVwYXJlZFRyYW5zYWN0aW9uKHJhbmRvbUJ5dGVzKSxcbiAgICAgICAgL25vdCBhIERhbWwgUHJlcGFyZWRUcmFuc2FjdGlvbi4qZGV0ZWN0Q2FudG9uU2lnbmluZ1BheWxvYWRUeXBlL1xuICAgICAgKTtcbiAgICB9KTtcbiAgfSk7XG5cbiAgZGVzY3JpYmUoJ2RlY29kZVByZXBhcmVkVHJhbnNhY3Rpb24nLCBmdW5jdGlvbiAoKSB7XG4gICAgaXQoJ3Nob3VsZCBkZWNvZGUgYSBwcmVwYXJlZCB0cmFuc2FjdGlvbiBhbmQgcmV0dXJuIHN0cnVjdHVyZWQgY29tbWFuZCBpbmZvJywgZnVuY3Rpb24gKCkge1xuICAgICAgY29uc3QgZGVjb2RlZCA9IGRlY29kZVByZXBhcmVkVHJhbnNhY3Rpb24oUHJlcGFyZWRUcmFuc2FjdGlvblJhd0RhdGEpO1xuICAgICAgc2hvdWxkLmV4aXN0KGRlY29kZWQpO1xuICAgICAgc2hvdWxkLmV4aXN0KGRlY29kZWQua2luZCk7XG4gICAgICBzaG91bGQuZXhpc3QoZGVjb2RlZC50ZW1wbGF0ZUlkKTtcbiAgICAgIHNob3VsZC5leGlzdChkZWNvZGVkLnRlbXBsYXRlSWQubW9kdWxlTmFtZSk7XG4gICAgICBzaG91bGQuZXhpc3QoZGVjb2RlZC50ZW1wbGF0ZUlkLmVudGl0eU5hbWUpO1xuICAgICAgc2hvdWxkLmV4aXN0KGRlY29kZWQuYXJndW1lbnQpO1xuICAgIH0pO1xuXG4gICAgaXQoJ2RlY29kZWQgdGVtcGxhdGVJZCBzaG91bGQgaGF2ZSBtb2R1bGUgYW5kIGVudGl0eSBuYW1lIGZpZWxkcycsIGZ1bmN0aW9uICgpIHtcbiAgICAgIGNvbnN0IGRlY29kZWQgPSBkZWNvZGVQcmVwYXJlZFRyYW5zYWN0aW9uKFByZXBhcmVkVHJhbnNhY3Rpb25SYXdEYXRhKTtcbiAgICAgIGRlY29kZWQudGVtcGxhdGVJZC5tb2R1bGVOYW1lLnNob3VsZC5iZS5hLlN0cmluZygpLmFuZC5ub3QuZW1wdHkoKTtcbiAgICAgIGRlY29kZWQudGVtcGxhdGVJZC5lbnRpdHlOYW1lLnNob3VsZC5iZS5hLlN0cmluZygpLmFuZC5ub3QuZW1wdHkoKTtcbiAgICB9KTtcblxuICAgIGl0KCdkZWNvZGVkIGtpbmQgc2hvdWxkIGJlIENyZWF0ZUNvbW1hbmQgb3IgRXhlcmNpc2VDb21tYW5kJywgZnVuY3Rpb24gKCkge1xuICAgICAgY29uc3QgZGVjb2RlZCA9IGRlY29kZVByZXBhcmVkVHJhbnNhY3Rpb24oUHJlcGFyZWRUcmFuc2FjdGlvblJhd0RhdGEpO1xuICAgICAgYXNzZXJ0Lm9rKFxuICAgICAgICBkZWNvZGVkLmtpbmQgPT09ICdDcmVhdGVDb21tYW5kJyB8fCBkZWNvZGVkLmtpbmQgPT09ICdFeGVyY2lzZUNvbW1hbmQnLFxuICAgICAgICBgZXhwZWN0ZWQgQ3JlYXRlQ29tbWFuZCBvciBFeGVyY2lzZUNvbW1hbmQsIGdvdDogJHtkZWNvZGVkLmtpbmR9YFxuICAgICAgKTtcbiAgICB9KTtcblxuICAgIGl0KCdFeGVyY2lzZUNvbW1hbmQgc2hvdWxkIGluY2x1ZGUgY2hvaWNlIGFuZCBhY3RpbmdQYXJ0aWVzJywgZnVuY3Rpb24gKCkge1xuICAgICAgY29uc3QgZGVjb2RlZCA9IGRlY29kZVByZXBhcmVkVHJhbnNhY3Rpb24oUHJlcGFyZWRUcmFuc2FjdGlvblJhd0RhdGEpO1xuICAgICAgaWYgKGRlY29kZWQua2luZCA9PT0gJ0V4ZXJjaXNlQ29tbWFuZCcpIHtcbiAgICAgICAgc2hvdWxkLmV4aXN0KGRlY29kZWQuY2hvaWNlKTtcbiAgICAgICAgc2hvdWxkLmV4aXN0KGRlY29kZWQuYWN0aW5nUGFydGllcyk7XG4gICAgICAgIGRlY29kZWQuYWN0aW5nUGFydGllcyEuc2hvdWxkLmJlLmFuLkFycmF5KCk7XG4gICAgICB9XG4gICAgfSk7XG4gIH0pO1xufSk7XG4iXX0=
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=messageBuilderFactory.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"messageBuilderFactory.d.ts","sourceRoot":"","sources":["../../../../test/unit/messages/messageBuilderFactory.ts"],"names":[],"mappings":""}
@@ -0,0 +1,52 @@
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 should_1 = __importDefault(require("should"));
7
+ const sdk_core_1 = require("@bitgo-beta/sdk-core");
8
+ const messageBuilderFactory_1 = require("../../../src/lib/messages/messageBuilderFactory");
9
+ const cantonSignTransactionMessageBuilder_1 = require("../../../src/lib/messages/cantonSignTransaction/cantonSignTransactionMessageBuilder");
10
+ const cantonSignTopologyMessageBuilder_1 = require("../../../src/lib/messages/cantonSignTopology/cantonSignTopologyMessageBuilder");
11
+ describe('Canton MessageBuilderFactory', function () {
12
+ let factory;
13
+ beforeEach(function () {
14
+ factory = new messageBuilderFactory_1.MessageBuilderFactory({ name: 'canton' });
15
+ });
16
+ describe('getMessageBuilder', function () {
17
+ it('should return CantonSignTransactionMessageBuilder for CANTON_SIGN_TRANSACTION', function () {
18
+ const builder = factory.getMessageBuilder(sdk_core_1.MessageStandardType.CANTON_SIGN_TRANSACTION);
19
+ should_1.default.exist(builder);
20
+ builder.should.be.instanceof(cantonSignTransactionMessageBuilder_1.CantonSignTransactionMessageBuilder);
21
+ });
22
+ it('should return CantonSignTopologyMessageBuilder for CANTON_SIGN_TOPOLOGY', function () {
23
+ const builder = factory.getMessageBuilder(sdk_core_1.MessageStandardType.CANTON_SIGN_TOPOLOGY);
24
+ should_1.default.exist(builder);
25
+ builder.should.be.instanceof(cantonSignTopologyMessageBuilder_1.CantonSignTopologyMessageBuilder);
26
+ });
27
+ it('should throw for unsupported message standard types', function () {
28
+ should_1.default.throws(() => factory.getMessageBuilder(sdk_core_1.MessageStandardType.SIMPLE), /Invalid message standard SIMPLE/);
29
+ should_1.default.throws(() => factory.getMessageBuilder(sdk_core_1.MessageStandardType.EIP191), /Invalid message standard EIP191/);
30
+ should_1.default.throws(() => factory.getMessageBuilder('UNSUPPORTED'), /Invalid message standard UNSUPPORTED/);
31
+ });
32
+ it('should build a message with CANTON_SIGN_TRANSACTION that returns correct signable payload', async function () {
33
+ const txHash = '7Ey4Q2TqWQcK1eAl6p15UT02M4mx92Tvo9ifvtzlm5o=';
34
+ const builder = factory.getMessageBuilder(sdk_core_1.MessageStandardType.CANTON_SIGN_TRANSACTION);
35
+ builder.setPayload(txHash);
36
+ const message = await builder.build();
37
+ const signable = await message.getSignablePayload();
38
+ should_1.default.ok(Buffer.isBuffer(signable));
39
+ signable.should.deepEqual(Buffer.from(txHash, 'base64'));
40
+ });
41
+ it('should build a message with CANTON_SIGN_TOPOLOGY that returns correct signable payload', async function () {
42
+ const topoHash = 'EiDQky+Uxo2zEwFp+JabeazILMMd7QR639/B/u+OGR+npg==';
43
+ const builder = factory.getMessageBuilder(sdk_core_1.MessageStandardType.CANTON_SIGN_TOPOLOGY);
44
+ builder.setPayload(topoHash);
45
+ const message = await builder.build();
46
+ const signable = await message.getSignablePayload();
47
+ should_1.default.ok(Buffer.isBuffer(signable));
48
+ signable.should.deepEqual(Buffer.from(topoHash, 'base64'));
49
+ });
50
+ });
51
+ });
52
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibWVzc2FnZUJ1aWxkZXJGYWN0b3J5LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vdGVzdC91bml0L21lc3NhZ2VzL21lc3NhZ2VCdWlsZGVyRmFjdG9yeS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7OztBQUFBLG9EQUE0QjtBQUU1QixtREFBMkQ7QUFDM0QsMkZBQXdGO0FBQ3hGLDZJQUEwSTtBQUMxSSxvSUFBaUk7QUFFakksUUFBUSxDQUFDLDhCQUE4QixFQUFFO0lBQ3ZDLElBQUksT0FBOEIsQ0FBQztJQUVuQyxVQUFVLENBQUM7UUFDVCxPQUFPLEdBQUcsSUFBSSw2Q0FBcUIsQ0FBQyxFQUFFLElBQUksRUFBRSxRQUFRLEVBQWMsQ0FBQyxDQUFDO0lBQ3RFLENBQUMsQ0FBQyxDQUFDO0lBRUgsUUFBUSxDQUFDLG1CQUFtQixFQUFFO1FBQzVCLEVBQUUsQ0FBQywrRUFBK0UsRUFBRTtZQUNsRixNQUFNLE9BQU8sR0FBRyxPQUFPLENBQUMsaUJBQWlCLENBQUMsOEJBQW1CLENBQUMsdUJBQXVCLENBQUMsQ0FBQztZQUN2RixnQkFBTSxDQUFDLEtBQUssQ0FBQyxPQUFPLENBQUMsQ0FBQztZQUN0QixPQUFPLENBQUMsTUFBTSxDQUFDLEVBQUUsQ0FBQyxVQUFVLENBQUMseUVBQW1DLENBQUMsQ0FBQztRQUNwRSxDQUFDLENBQUMsQ0FBQztRQUVILEVBQUUsQ0FBQyx5RUFBeUUsRUFBRTtZQUM1RSxNQUFNLE9BQU8sR0FBRyxPQUFPLENBQUMsaUJBQWlCLENBQUMsOEJBQW1CLENBQUMsb0JBQW9CLENBQUMsQ0FBQztZQUNwRixnQkFBTSxDQUFDLEtBQUssQ0FBQyxPQUFPLENBQUMsQ0FBQztZQUN0QixPQUFPLENBQUMsTUFBTSxDQUFDLEVBQUUsQ0FBQyxVQUFVLENBQUMsbUVBQWdDLENBQUMsQ0FBQztRQUNqRSxDQUFDLENBQUMsQ0FBQztRQUVILEVBQUUsQ0FBQyxxREFBcUQsRUFBRTtZQUN4RCxnQkFBTSxDQUFDLE1BQU0sQ0FBQyxHQUFHLEVBQUUsQ0FBQyxPQUFPLENBQUMsaUJBQWlCLENBQUMsOEJBQW1CLENBQUMsTUFBTSxDQUFDLEVBQUUsaUNBQWlDLENBQUMsQ0FBQztZQUM5RyxnQkFBTSxDQUFDLE1BQU0sQ0FBQyxHQUFHLEVBQUUsQ0FBQyxPQUFPLENBQUMsaUJBQWlCLENBQUMsOEJBQW1CLENBQUMsTUFBTSxDQUFDLEVBQUUsaUNBQWlDLENBQUMsQ0FBQztZQUM5RyxnQkFBTSxDQUFDLE1BQU0sQ0FDWCxHQUFHLEVBQUUsQ0FBQyxPQUFPLENBQUMsaUJBQWlCLENBQUMsYUFBb0MsQ0FBQyxFQUNyRSxzQ0FBc0MsQ0FDdkMsQ0FBQztRQUNKLENBQUMsQ0FBQyxDQUFDO1FBRUgsRUFBRSxDQUFDLDJGQUEyRixFQUFFLEtBQUs7WUFDbkcsTUFBTSxNQUFNLEdBQUcsOENBQThDLENBQUM7WUFDOUQsTUFBTSxPQUFPLEdBQUcsT0FBTyxDQUFDLGlCQUFpQixDQUFDLDhCQUFtQixDQUFDLHVCQUF1QixDQUFDLENBQUM7WUFDdkYsT0FBTyxDQUFDLFVBQVUsQ0FBQyxNQUFNLENBQUMsQ0FBQztZQUMzQixNQUFNLE9BQU8sR0FBRyxNQUFNLE9BQU8sQ0FBQyxLQUFLLEVBQUUsQ0FBQztZQUN0QyxNQUFNLFFBQVEsR0FBRyxNQUFNLE9BQU8sQ0FBQyxrQkFBa0IsRUFBRSxDQUFDO1lBQ3BELGdCQUFNLENBQUMsRUFBRSxDQUFDLE1BQU0sQ0FBQyxRQUFRLENBQUMsUUFBUSxDQUFDLENBQUMsQ0FBQztZQUNwQyxRQUFtQixDQUFDLE1BQU0sQ0FBQyxTQUFTLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxNQUFNLEVBQUUsUUFBUSxDQUFDLENBQUMsQ0FBQztRQUN2RSxDQUFDLENBQUMsQ0FBQztRQUVILEVBQUUsQ0FBQyx3RkFBd0YsRUFBRSxLQUFLO1lBQ2hHLE1BQU0sUUFBUSxHQUFHLGtEQUFrRCxDQUFDO1lBQ3BFLE1BQU0sT0FBTyxHQUFHLE9BQU8sQ0FBQyxpQkFBaUIsQ0FBQyw4QkFBbUIsQ0FBQyxvQkFBb0IsQ0FBQyxDQUFDO1lBQ3BGLE9BQU8sQ0FBQyxVQUFVLENBQUMsUUFBUSxDQUFDLENBQUM7WUFDN0IsTUFBTSxPQUFPLEdBQUcsTUFBTSxPQUFPLENBQUMsS0FBSyxFQUFFLENBQUM7WUFDdEMsTUFBTSxRQUFRLEdBQUcsTUFBTSxPQUFPLENBQUMsa0JBQWtCLEVBQUUsQ0FBQztZQUNwRCxnQkFBTSxDQUFDLEVBQUUsQ0FBQyxNQUFNLENBQUMsUUFBUSxDQUFDLFFBQVEsQ0FBQyxDQUFDLENBQUM7WUFDcEMsUUFBbUIsQ0FBQyxNQUFNLENBQUMsU0FBUyxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsUUFBUSxFQUFFLFFBQVEsQ0FBQyxDQUFDLENBQUM7UUFDekUsQ0FBQyxDQUFDLENBQUM7SUFDTCxDQUFDLENBQUMsQ0FBQztBQUNMLENBQUMsQ0FBQyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHNob3VsZCBmcm9tICdzaG91bGQnO1xuaW1wb3J0IHsgQmFzZUNvaW4gfSBmcm9tICdAYml0Z28tYmV0YS9zdGF0aWNzJztcbmltcG9ydCB7IE1lc3NhZ2VTdGFuZGFyZFR5cGUgfSBmcm9tICdAYml0Z28tYmV0YS9zZGstY29yZSc7XG5pbXBvcnQgeyBNZXNzYWdlQnVpbGRlckZhY3RvcnkgfSBmcm9tICcuLi8uLi8uLi9zcmMvbGliL21lc3NhZ2VzL21lc3NhZ2VCdWlsZGVyRmFjdG9yeSc7XG5pbXBvcnQgeyBDYW50b25TaWduVHJhbnNhY3Rpb25NZXNzYWdlQnVpbGRlciB9IGZyb20gJy4uLy4uLy4uL3NyYy9saWIvbWVzc2FnZXMvY2FudG9uU2lnblRyYW5zYWN0aW9uL2NhbnRvblNpZ25UcmFuc2FjdGlvbk1lc3NhZ2VCdWlsZGVyJztcbmltcG9ydCB7IENhbnRvblNpZ25Ub3BvbG9neU1lc3NhZ2VCdWlsZGVyIH0gZnJvbSAnLi4vLi4vLi4vc3JjL2xpYi9tZXNzYWdlcy9jYW50b25TaWduVG9wb2xvZ3kvY2FudG9uU2lnblRvcG9sb2d5TWVzc2FnZUJ1aWxkZXInO1xuXG5kZXNjcmliZSgnQ2FudG9uIE1lc3NhZ2VCdWlsZGVyRmFjdG9yeScsIGZ1bmN0aW9uICgpIHtcbiAgbGV0IGZhY3Rvcnk6IE1lc3NhZ2VCdWlsZGVyRmFjdG9yeTtcblxuICBiZWZvcmVFYWNoKGZ1bmN0aW9uICgpIHtcbiAgICBmYWN0b3J5ID0gbmV3IE1lc3NhZ2VCdWlsZGVyRmFjdG9yeSh7IG5hbWU6ICdjYW50b24nIH0gYXMgQmFzZUNvaW4pO1xuICB9KTtcblxuICBkZXNjcmliZSgnZ2V0TWVzc2FnZUJ1aWxkZXInLCBmdW5jdGlvbiAoKSB7XG4gICAgaXQoJ3Nob3VsZCByZXR1cm4gQ2FudG9uU2lnblRyYW5zYWN0aW9uTWVzc2FnZUJ1aWxkZXIgZm9yIENBTlRPTl9TSUdOX1RSQU5TQUNUSU9OJywgZnVuY3Rpb24gKCkge1xuICAgICAgY29uc3QgYnVpbGRlciA9IGZhY3RvcnkuZ2V0TWVzc2FnZUJ1aWxkZXIoTWVzc2FnZVN0YW5kYXJkVHlwZS5DQU5UT05fU0lHTl9UUkFOU0FDVElPTik7XG4gICAgICBzaG91bGQuZXhpc3QoYnVpbGRlcik7XG4gICAgICBidWlsZGVyLnNob3VsZC5iZS5pbnN0YW5jZW9mKENhbnRvblNpZ25UcmFuc2FjdGlvbk1lc3NhZ2VCdWlsZGVyKTtcbiAgICB9KTtcblxuICAgIGl0KCdzaG91bGQgcmV0dXJuIENhbnRvblNpZ25Ub3BvbG9neU1lc3NhZ2VCdWlsZGVyIGZvciBDQU5UT05fU0lHTl9UT1BPTE9HWScsIGZ1bmN0aW9uICgpIHtcbiAgICAgIGNvbnN0IGJ1aWxkZXIgPSBmYWN0b3J5LmdldE1lc3NhZ2VCdWlsZGVyKE1lc3NhZ2VTdGFuZGFyZFR5cGUuQ0FOVE9OX1NJR05fVE9QT0xPR1kpO1xuICAgICAgc2hvdWxkLmV4aXN0KGJ1aWxkZXIpO1xuICAgICAgYnVpbGRlci5zaG91bGQuYmUuaW5zdGFuY2VvZihDYW50b25TaWduVG9wb2xvZ3lNZXNzYWdlQnVpbGRlcik7XG4gICAgfSk7XG5cbiAgICBpdCgnc2hvdWxkIHRocm93IGZvciB1bnN1cHBvcnRlZCBtZXNzYWdlIHN0YW5kYXJkIHR5cGVzJywgZnVuY3Rpb24gKCkge1xuICAgICAgc2hvdWxkLnRocm93cygoKSA9PiBmYWN0b3J5LmdldE1lc3NhZ2VCdWlsZGVyKE1lc3NhZ2VTdGFuZGFyZFR5cGUuU0lNUExFKSwgL0ludmFsaWQgbWVzc2FnZSBzdGFuZGFyZCBTSU1QTEUvKTtcbiAgICAgIHNob3VsZC50aHJvd3MoKCkgPT4gZmFjdG9yeS5nZXRNZXNzYWdlQnVpbGRlcihNZXNzYWdlU3RhbmRhcmRUeXBlLkVJUDE5MSksIC9JbnZhbGlkIG1lc3NhZ2Ugc3RhbmRhcmQgRUlQMTkxLyk7XG4gICAgICBzaG91bGQudGhyb3dzKFxuICAgICAgICAoKSA9PiBmYWN0b3J5LmdldE1lc3NhZ2VCdWlsZGVyKCdVTlNVUFBPUlRFRCcgYXMgTWVzc2FnZVN0YW5kYXJkVHlwZSksXG4gICAgICAgIC9JbnZhbGlkIG1lc3NhZ2Ugc3RhbmRhcmQgVU5TVVBQT1JURUQvXG4gICAgICApO1xuICAgIH0pO1xuXG4gICAgaXQoJ3Nob3VsZCBidWlsZCBhIG1lc3NhZ2Ugd2l0aCBDQU5UT05fU0lHTl9UUkFOU0FDVElPTiB0aGF0IHJldHVybnMgY29ycmVjdCBzaWduYWJsZSBwYXlsb2FkJywgYXN5bmMgZnVuY3Rpb24gKCkge1xuICAgICAgY29uc3QgdHhIYXNoID0gJzdFeTRRMlRxV1FjSzFlQWw2cDE1VVQwMk00bXg5MlR2bzlpZnZ0emxtNW89JztcbiAgICAgIGNvbnN0IGJ1aWxkZXIgPSBmYWN0b3J5LmdldE1lc3NhZ2VCdWlsZGVyKE1lc3NhZ2VTdGFuZGFyZFR5cGUuQ0FOVE9OX1NJR05fVFJBTlNBQ1RJT04pO1xuICAgICAgYnVpbGRlci5zZXRQYXlsb2FkKHR4SGFzaCk7XG4gICAgICBjb25zdCBtZXNzYWdlID0gYXdhaXQgYnVpbGRlci5idWlsZCgpO1xuICAgICAgY29uc3Qgc2lnbmFibGUgPSBhd2FpdCBtZXNzYWdlLmdldFNpZ25hYmxlUGF5bG9hZCgpO1xuICAgICAgc2hvdWxkLm9rKEJ1ZmZlci5pc0J1ZmZlcihzaWduYWJsZSkpO1xuICAgICAgKHNpZ25hYmxlIGFzIEJ1ZmZlcikuc2hvdWxkLmRlZXBFcXVhbChCdWZmZXIuZnJvbSh0eEhhc2gsICdiYXNlNjQnKSk7XG4gICAgfSk7XG5cbiAgICBpdCgnc2hvdWxkIGJ1aWxkIGEgbWVzc2FnZSB3aXRoIENBTlRPTl9TSUdOX1RPUE9MT0dZIHRoYXQgcmV0dXJucyBjb3JyZWN0IHNpZ25hYmxlIHBheWxvYWQnLCBhc3luYyBmdW5jdGlvbiAoKSB7XG4gICAgICBjb25zdCB0b3BvSGFzaCA9ICdFaURRa3krVXhvMnpFd0ZwK0phYmVheklMTU1kN1FSNjM5L0IvdStPR1IrbnBnPT0nO1xuICAgICAgY29uc3QgYnVpbGRlciA9IGZhY3RvcnkuZ2V0TWVzc2FnZUJ1aWxkZXIoTWVzc2FnZVN0YW5kYXJkVHlwZS5DQU5UT05fU0lHTl9UT1BPTE9HWSk7XG4gICAgICBidWlsZGVyLnNldFBheWxvYWQodG9wb0hhc2gpO1xuICAgICAgY29uc3QgbWVzc2FnZSA9IGF3YWl0IGJ1aWxkZXIuYnVpbGQoKTtcbiAgICAgIGNvbnN0IHNpZ25hYmxlID0gYXdhaXQgbWVzc2FnZS5nZXRTaWduYWJsZVBheWxvYWQoKTtcbiAgICAgIHNob3VsZC5vayhCdWZmZXIuaXNCdWZmZXIoc2lnbmFibGUpKTtcbiAgICAgIChzaWduYWJsZSBhcyBCdWZmZXIpLnNob3VsZC5kZWVwRXF1YWwoQnVmZmVyLmZyb20odG9wb0hhc2gsICdiYXNlNjQnKSk7XG4gICAgfSk7XG4gIH0pO1xufSk7XG4iXX0=