@ledgerhq/device-signer-kit-tron 0.2.0 → 0.3.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (183) hide show
  1. package/README.md +41 -0
  2. package/lib/cjs/api/SignerTrxBuilder.js +1 -1
  3. package/lib/cjs/api/SignerTrxBuilder.js.map +3 -3
  4. package/lib/cjs/api/SignerTrxBuilder.test.js +1 -1
  5. package/lib/cjs/api/SignerTrxBuilder.test.js.map +3 -3
  6. package/lib/cjs/api/app-binder/SignTransactionDeviceActionTypes.js +1 -1
  7. package/lib/cjs/api/app-binder/SignTransactionDeviceActionTypes.js.map +3 -3
  8. package/lib/cjs/api/index.js +1 -1
  9. package/lib/cjs/api/index.js.map +3 -3
  10. package/lib/cjs/api/model/TronAddressBook.js +1 -1
  11. package/lib/cjs/api/model/TronAddressBook.js.map +3 -3
  12. package/lib/cjs/internal/DefaultSignerTrx.js +1 -1
  13. package/lib/cjs/internal/DefaultSignerTrx.js.map +3 -3
  14. package/lib/cjs/internal/app-binder/TronAppBinder.js +1 -1
  15. package/lib/cjs/internal/app-binder/TronAppBinder.js.map +3 -3
  16. package/lib/cjs/internal/app-binder/TronAppBinder.test.js +1 -1
  17. package/lib/cjs/internal/app-binder/TronAppBinder.test.js.map +3 -3
  18. package/lib/cjs/internal/app-binder/TronApplicationResolver.js +2 -0
  19. package/lib/cjs/internal/app-binder/TronApplicationResolver.js.map +7 -0
  20. package/lib/cjs/internal/app-binder/TronApplicationResolver.test.js +2 -0
  21. package/lib/cjs/internal/app-binder/TronApplicationResolver.test.js.map +7 -0
  22. package/lib/cjs/internal/app-binder/constants.js +1 -1
  23. package/lib/cjs/internal/app-binder/constants.js.map +3 -3
  24. package/lib/cjs/internal/app-binder/device-action/SignTransaction/SignTransactionDeviceAction.js +2 -0
  25. package/lib/cjs/internal/app-binder/device-action/SignTransaction/SignTransactionDeviceAction.js.map +7 -0
  26. package/lib/cjs/internal/app-binder/device-action/SignTransaction/SignTransactionDeviceAction.test.js +2 -0
  27. package/lib/cjs/internal/app-binder/device-action/SignTransaction/SignTransactionDeviceAction.test.js.map +7 -0
  28. package/lib/cjs/internal/app-binder/device-action/__test-utils__/makeInternalApi.js +2 -0
  29. package/lib/cjs/internal/app-binder/device-action/__test-utils__/makeInternalApi.js.map +7 -0
  30. package/lib/cjs/internal/app-binder/device-action/__test-utils__/testDeviceActionStates.js +2 -0
  31. package/lib/cjs/internal/app-binder/device-action/__test-utils__/testDeviceActionStates.js.map +7 -0
  32. package/lib/cjs/internal/app-binder/services/TransactionSerializer.js +1 -1
  33. package/lib/cjs/internal/app-binder/services/TransactionSerializer.js.map +3 -3
  34. package/lib/cjs/internal/app-binder/services/TransactionSerializer.test.js +1 -1
  35. package/lib/cjs/internal/app-binder/services/TransactionSerializer.test.js.map +3 -3
  36. package/lib/cjs/internal/app-binder/task/GetTokenPayloadsTask.js +2 -0
  37. package/lib/cjs/internal/app-binder/task/GetTokenPayloadsTask.js.map +7 -0
  38. package/lib/cjs/internal/app-binder/task/GetTokenPayloadsTask.test.js +2 -0
  39. package/lib/cjs/internal/app-binder/task/GetTokenPayloadsTask.test.js.map +7 -0
  40. package/lib/cjs/internal/app-binder/task/ProvideContactTask.js +2 -0
  41. package/lib/cjs/internal/app-binder/task/ProvideContactTask.js.map +7 -0
  42. package/lib/cjs/internal/app-binder/task/ProvideContactTask.test.js +2 -0
  43. package/lib/cjs/internal/app-binder/task/ProvideContactTask.test.js.map +7 -0
  44. package/lib/cjs/internal/app-binder/task/SignTransactionTask.js +1 -1
  45. package/lib/cjs/internal/app-binder/task/SignTransactionTask.js.map +3 -3
  46. package/lib/cjs/internal/app-binder/task/SignTransactionTask.test.js +1 -1
  47. package/lib/cjs/internal/app-binder/task/SignTransactionTask.test.js.map +3 -3
  48. package/lib/cjs/internal/di.js +1 -1
  49. package/lib/cjs/internal/di.js.map +3 -3
  50. package/lib/cjs/internal/externalTypes.js +1 -1
  51. package/lib/cjs/internal/externalTypes.js.map +2 -2
  52. package/lib/cjs/internal/shared/utils/buildExternalContactPayload.js +2 -0
  53. package/lib/cjs/internal/shared/utils/buildExternalContactPayload.js.map +7 -0
  54. package/lib/cjs/internal/shared/utils/buildExternalContactPayload.test.js +2 -0
  55. package/lib/cjs/internal/shared/utils/buildExternalContactPayload.test.js.map +7 -0
  56. package/lib/cjs/internal/shared/utils/extractTransactionRecipient.js +2 -0
  57. package/lib/cjs/internal/shared/utils/extractTransactionRecipient.js.map +7 -0
  58. package/lib/cjs/internal/shared/utils/extractTransactionRecipient.test.js +2 -0
  59. package/lib/cjs/internal/shared/utils/extractTransactionRecipient.test.js.map +7 -0
  60. package/lib/cjs/internal/shared/utils/tronBase58Check.js +2 -0
  61. package/lib/cjs/internal/shared/utils/tronBase58Check.js.map +7 -0
  62. package/lib/cjs/internal/shared/utils/tronBase58Check.test.js +2 -0
  63. package/lib/cjs/internal/shared/utils/tronBase58Check.test.js.map +7 -0
  64. package/lib/cjs/package.json +6 -1
  65. package/lib/esm/api/SignerTrxBuilder.js +1 -1
  66. package/lib/esm/api/SignerTrxBuilder.js.map +3 -3
  67. package/lib/esm/api/SignerTrxBuilder.test.js +1 -1
  68. package/lib/esm/api/SignerTrxBuilder.test.js.map +3 -3
  69. package/lib/esm/api/app-binder/SignTransactionDeviceActionTypes.js +1 -0
  70. package/lib/esm/api/app-binder/SignTransactionDeviceActionTypes.js.map +4 -4
  71. package/lib/esm/api/index.js +1 -1
  72. package/lib/esm/api/index.js.map +3 -3
  73. package/lib/esm/api/model/TronAddressBook.js +1 -0
  74. package/lib/esm/api/model/TronAddressBook.js.map +4 -4
  75. package/lib/esm/internal/DefaultSignerTrx.js +1 -1
  76. package/lib/esm/internal/DefaultSignerTrx.js.map +3 -3
  77. package/lib/esm/internal/app-binder/TronAppBinder.js +1 -1
  78. package/lib/esm/internal/app-binder/TronAppBinder.js.map +3 -3
  79. package/lib/esm/internal/app-binder/TronAppBinder.test.js +1 -1
  80. package/lib/esm/internal/app-binder/TronAppBinder.test.js.map +3 -3
  81. package/lib/esm/internal/app-binder/TronApplicationResolver.js +2 -0
  82. package/lib/esm/internal/app-binder/TronApplicationResolver.js.map +7 -0
  83. package/lib/esm/internal/app-binder/TronApplicationResolver.test.js +2 -0
  84. package/lib/esm/internal/app-binder/TronApplicationResolver.test.js.map +7 -0
  85. package/lib/esm/internal/app-binder/constants.js +1 -1
  86. package/lib/esm/internal/app-binder/constants.js.map +3 -3
  87. package/lib/esm/internal/app-binder/device-action/SignTransaction/SignTransactionDeviceAction.js +2 -0
  88. package/lib/esm/internal/app-binder/device-action/SignTransaction/SignTransactionDeviceAction.js.map +7 -0
  89. package/lib/esm/internal/app-binder/device-action/SignTransaction/SignTransactionDeviceAction.test.js +2 -0
  90. package/lib/esm/internal/app-binder/device-action/SignTransaction/SignTransactionDeviceAction.test.js.map +7 -0
  91. package/lib/esm/internal/app-binder/device-action/__test-utils__/makeInternalApi.js +2 -0
  92. package/lib/esm/internal/app-binder/device-action/__test-utils__/makeInternalApi.js.map +7 -0
  93. package/lib/esm/internal/app-binder/device-action/__test-utils__/testDeviceActionStates.js +2 -0
  94. package/lib/esm/internal/app-binder/device-action/__test-utils__/testDeviceActionStates.js.map +7 -0
  95. package/lib/esm/internal/app-binder/services/TransactionSerializer.js +1 -1
  96. package/lib/esm/internal/app-binder/services/TransactionSerializer.js.map +3 -3
  97. package/lib/esm/internal/app-binder/services/TransactionSerializer.test.js +1 -1
  98. package/lib/esm/internal/app-binder/services/TransactionSerializer.test.js.map +3 -3
  99. package/lib/esm/internal/app-binder/task/GetTokenPayloadsTask.js +2 -0
  100. package/lib/esm/internal/app-binder/task/GetTokenPayloadsTask.js.map +7 -0
  101. package/lib/esm/internal/app-binder/task/GetTokenPayloadsTask.test.js +2 -0
  102. package/lib/esm/internal/app-binder/task/GetTokenPayloadsTask.test.js.map +7 -0
  103. package/lib/esm/internal/app-binder/task/ProvideContactTask.js +2 -0
  104. package/lib/esm/internal/app-binder/task/ProvideContactTask.js.map +7 -0
  105. package/lib/esm/internal/app-binder/task/ProvideContactTask.test.js +2 -0
  106. package/lib/esm/internal/app-binder/task/ProvideContactTask.test.js.map +7 -0
  107. package/lib/esm/internal/app-binder/task/SignTransactionTask.js +1 -1
  108. package/lib/esm/internal/app-binder/task/SignTransactionTask.js.map +3 -3
  109. package/lib/esm/internal/app-binder/task/SignTransactionTask.test.js +1 -1
  110. package/lib/esm/internal/app-binder/task/SignTransactionTask.test.js.map +3 -3
  111. package/lib/esm/internal/di.js +1 -1
  112. package/lib/esm/internal/di.js.map +3 -3
  113. package/lib/esm/internal/externalTypes.js +1 -1
  114. package/lib/esm/internal/externalTypes.js.map +2 -2
  115. package/lib/esm/internal/shared/utils/buildExternalContactPayload.js +2 -0
  116. package/lib/esm/internal/shared/utils/buildExternalContactPayload.js.map +7 -0
  117. package/lib/esm/internal/shared/utils/buildExternalContactPayload.test.js +2 -0
  118. package/lib/esm/internal/shared/utils/buildExternalContactPayload.test.js.map +7 -0
  119. package/lib/esm/internal/shared/utils/extractTransactionRecipient.js +2 -0
  120. package/lib/esm/internal/shared/utils/extractTransactionRecipient.js.map +7 -0
  121. package/lib/esm/internal/shared/utils/extractTransactionRecipient.test.js +2 -0
  122. package/lib/esm/internal/shared/utils/extractTransactionRecipient.test.js.map +7 -0
  123. package/lib/esm/internal/shared/utils/tronBase58Check.js +2 -0
  124. package/lib/esm/internal/shared/utils/tronBase58Check.js.map +7 -0
  125. package/lib/esm/internal/shared/utils/tronBase58Check.test.js +2 -0
  126. package/lib/esm/internal/shared/utils/tronBase58Check.test.js.map +7 -0
  127. package/lib/esm/package.json +6 -1
  128. package/lib/types/api/SignerTrxBuilder.d.ts +12 -1
  129. package/lib/types/api/SignerTrxBuilder.d.ts.map +1 -1
  130. package/lib/types/api/app-binder/SignTransactionDeviceActionTypes.d.ts +25 -1
  131. package/lib/types/api/app-binder/SignTransactionDeviceActionTypes.d.ts.map +1 -1
  132. package/lib/types/api/index.d.ts +2 -1
  133. package/lib/types/api/index.d.ts.map +1 -1
  134. package/lib/types/api/model/TronAddressBook.d.ts +8 -3
  135. package/lib/types/api/model/TronAddressBook.d.ts.map +1 -1
  136. package/lib/types/internal/DefaultSignerTrx.d.ts +3 -1
  137. package/lib/types/internal/DefaultSignerTrx.d.ts.map +1 -1
  138. package/lib/types/internal/app-binder/TronAppBinder.d.ts +5 -1
  139. package/lib/types/internal/app-binder/TronAppBinder.d.ts.map +1 -1
  140. package/lib/types/internal/app-binder/TronApplicationResolver.d.ts +5 -0
  141. package/lib/types/internal/app-binder/TronApplicationResolver.d.ts.map +1 -0
  142. package/lib/types/internal/app-binder/TronApplicationResolver.test.d.ts +2 -0
  143. package/lib/types/internal/app-binder/TronApplicationResolver.test.d.ts.map +1 -0
  144. package/lib/types/internal/app-binder/constants.d.ts +3 -0
  145. package/lib/types/internal/app-binder/constants.d.ts.map +1 -1
  146. package/lib/types/internal/app-binder/device-action/SignTransaction/SignTransactionDeviceAction.d.ts +35 -0
  147. package/lib/types/internal/app-binder/device-action/SignTransaction/SignTransactionDeviceAction.d.ts.map +1 -0
  148. package/lib/types/internal/app-binder/device-action/SignTransaction/SignTransactionDeviceAction.test.d.ts +2 -0
  149. package/lib/types/internal/app-binder/device-action/SignTransaction/SignTransactionDeviceAction.test.d.ts.map +1 -0
  150. package/lib/types/internal/app-binder/device-action/__test-utils__/makeInternalApi.d.ts +4 -0
  151. package/lib/types/internal/app-binder/device-action/__test-utils__/makeInternalApi.d.ts.map +1 -0
  152. package/lib/types/internal/app-binder/device-action/__test-utils__/testDeviceActionStates.d.ts +15 -0
  153. package/lib/types/internal/app-binder/device-action/__test-utils__/testDeviceActionStates.d.ts.map +1 -0
  154. package/lib/types/internal/app-binder/services/TransactionSerializer.d.ts +4 -1
  155. package/lib/types/internal/app-binder/services/TransactionSerializer.d.ts.map +1 -1
  156. package/lib/types/internal/app-binder/task/GetTokenPayloadsTask.d.ts +17 -0
  157. package/lib/types/internal/app-binder/task/GetTokenPayloadsTask.d.ts.map +1 -0
  158. package/lib/types/internal/app-binder/task/GetTokenPayloadsTask.test.d.ts +2 -0
  159. package/lib/types/internal/app-binder/task/GetTokenPayloadsTask.test.d.ts.map +1 -0
  160. package/lib/types/internal/app-binder/task/ProvideContactTask.d.ts +16 -0
  161. package/lib/types/internal/app-binder/task/ProvideContactTask.d.ts.map +1 -0
  162. package/lib/types/internal/app-binder/task/ProvideContactTask.test.d.ts +2 -0
  163. package/lib/types/internal/app-binder/task/ProvideContactTask.test.d.ts.map +1 -0
  164. package/lib/types/internal/app-binder/task/SignTransactionTask.d.ts +1 -0
  165. package/lib/types/internal/app-binder/task/SignTransactionTask.d.ts.map +1 -1
  166. package/lib/types/internal/di.d.ts +3 -1
  167. package/lib/types/internal/di.d.ts.map +1 -1
  168. package/lib/types/internal/externalTypes.d.ts +1 -0
  169. package/lib/types/internal/externalTypes.d.ts.map +1 -1
  170. package/lib/types/internal/shared/utils/buildExternalContactPayload.d.ts +11 -0
  171. package/lib/types/internal/shared/utils/buildExternalContactPayload.d.ts.map +1 -0
  172. package/lib/types/internal/shared/utils/buildExternalContactPayload.test.d.ts +2 -0
  173. package/lib/types/internal/shared/utils/buildExternalContactPayload.test.d.ts.map +1 -0
  174. package/lib/types/internal/shared/utils/extractTransactionRecipient.d.ts +2 -0
  175. package/lib/types/internal/shared/utils/extractTransactionRecipient.d.ts.map +1 -0
  176. package/lib/types/internal/shared/utils/extractTransactionRecipient.test.d.ts +2 -0
  177. package/lib/types/internal/shared/utils/extractTransactionRecipient.test.d.ts.map +1 -0
  178. package/lib/types/internal/shared/utils/tronBase58Check.d.ts +4 -0
  179. package/lib/types/internal/shared/utils/tronBase58Check.d.ts.map +1 -0
  180. package/lib/types/internal/shared/utils/tronBase58Check.test.d.ts +2 -0
  181. package/lib/types/internal/shared/utils/tronBase58Check.test.d.ts.map +1 -0
  182. package/lib/types/tsconfig.prod.tsbuildinfo +1 -1
  183. package/package.json +13 -8
package/README.md CHANGED
@@ -48,6 +48,47 @@ const { observable: ecdhObservable } = signer.getECDHSecret(
48
48
  );
49
49
  ```
50
50
 
51
+ ### Address book
52
+
53
+ Give the signer the user's address book to have the device show a saved contact
54
+ name in place of the raw recipient address when it reviews a transaction:
55
+
56
+ ```typescript
57
+ const signer = new SignerTrxBuilder({ dmk, sessionId })
58
+ .withAddressBook({
59
+ contactGroups: [
60
+ {
61
+ contactName: "Alice",
62
+ groupHandle, // returned when the contact was registered on the device
63
+ hmacProof,
64
+ externalAddresses: [
65
+ {
66
+ scope: "Tron",
67
+ address: "T...",
68
+ hmacRest,
69
+ },
70
+ ],
71
+ },
72
+ ],
73
+ ledgerAccounts: [],
74
+ })
75
+ .build();
76
+ ```
77
+
78
+ Points to know:
79
+
80
+ - The snapshot must be complete, and it is read as-is: the signer neither
81
+ mutates nor persists it. Build a new signer to pick up later changes.
82
+ - Only Tron entries belong here. Filter by blockchain family before you build
83
+ the snapshot.
84
+ - A contact matches on the raw address only (Tron has no chain id). Only the
85
+ transaction recipient is matched: `to_address` on Transfer / TransferAsset,
86
+ `contract_address` on TriggerSmartContract.
87
+ - Nothing here can break a signature. An address book you do not supply, a
88
+ recipient that does not match, an app too old to support contacts, or a
89
+ contact the device rejects all leave the transaction signing as before,
90
+ against the raw address.
91
+
51
92
  ### Get address
52
93
 
53
94
  Derives the Tron address and public key for a BIP32 derivation path (Tron uses
@@ -1,2 +1,2 @@
1
- "use strict";var i=Object.defineProperty;var n=Object.getOwnPropertyDescriptor;var a=Object.getOwnPropertyNames;var m=Object.prototype.hasOwnProperty;var k=(s,e)=>{for(var r in e)i(s,r,{get:e[r],enumerable:!0})},c=(s,e,r,d)=>{if(e&&typeof e=="object"||typeof e=="function")for(let o of a(e))!m.call(s,o)&&o!==r&&i(s,o,{get:()=>e[o],enumerable:!(d=n(e,o))||d.enumerable});return s};var p=s=>c(i({},"__esModule",{value:!0}),s);var B={};k(B,{SignerTrxBuilder:()=>u});module.exports=p(B);var t=require("../internal/DefaultSignerTrx");class u{_dmk;_sessionId;_addressBook;constructor({dmk:e,sessionId:r}){this._dmk=e,this._sessionId=r}withAddressBook(e){return this._addressBook=e,this}build(){return new t.DefaultSignerTrx({dmk:this._dmk,sessionId:this._sessionId,addressBook:this._addressBook})}}0&&(module.exports={SignerTrxBuilder});
1
+ "use strict";var s=Object.defineProperty;var u=Object.getOwnPropertyDescriptor;var a=Object.getOwnPropertyNames;var l=Object.prototype.hasOwnProperty;var g=(o,e)=>{for(var t in e)s(o,t,{get:e[t],enumerable:!0})},m=(o,e,t,r)=>{if(e&&typeof e=="object"||typeof e=="function")for(let i of a(e))!l.call(o,i)&&i!==t&&s(o,i,{get:()=>e[i],enumerable:!(r=u(e,i))||r.enumerable});return o};var c=o=>m(s({},"__esModule",{value:!0}),o);var h={};g(h,{SignerTrxBuilder:()=>k});module.exports=c(h);var n=require("@ledgerhq/context-module"),d=require("../internal/DefaultSignerTrx");class k{_dmk;_sessionId;_originToken;_customContextModule;_addressBook;constructor({dmk:e,sessionId:t,originToken:r}){this._dmk=e,this._sessionId=t,this._originToken=r}withContextModule(e){return this._customContextModule=e,this}withAddressBook(e){return this._addressBook=e,this}build(){const e=this._customContextModule??new n.ContextModuleBuilder({originToken:this._originToken,loggerFactory:t=>this._dmk.getLoggerFactory()(["ContextModule",t])}).setChain(n.ContextModuleChainID.Tron).build();return new d.DefaultSignerTrx({dmk:this._dmk,sessionId:this._sessionId,contextModule:e,addressBook:this._addressBook})}}0&&(module.exports={SignerTrxBuilder});
2
2
  //# sourceMappingURL=SignerTrxBuilder.js.map
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "version": 3,
3
3
  "sources": ["../../../src/api/SignerTrxBuilder.ts"],
4
- "sourcesContent": ["import {\n type DeviceManagementKit,\n type DeviceSessionId,\n} from \"@ledgerhq/device-management-kit\";\n\nimport { type TronAddressBook } from \"@api/model/TronAddressBook\";\nimport { DefaultSignerTrx } from \"@internal/DefaultSignerTrx\";\n\ntype SignerTrxBuilderConstructorArgs = {\n dmk: DeviceManagementKit;\n sessionId: DeviceSessionId;\n};\n\n/**\n * Builder for the `SignerTrx` class.\n *\n * @example\n * ```\n * const signer = new SignerTrxBuilder({ dmk, sessionId })\n * .build();\n * ```\n */\nexport class SignerTrxBuilder {\n private readonly _dmk: DeviceManagementKit;\n private readonly _sessionId: DeviceSessionId;\n private _addressBook: TronAddressBook | undefined;\n\n constructor({ dmk, sessionId }: SignerTrxBuilderConstructorArgs) {\n this._dmk = dmk;\n this._sessionId = sessionId;\n }\n\n /**\n * Provide the Tron-compatible address book used to clear-sign contact names.\n *\n * The snapshot must be complete: the signer neither mutates nor persists it,\n * and reads it as-is. Rebuild the signer to pick up later changes.\n *\n * @param addressBook a complete Tron address-book snapshot\n * @returns this\n */\n withAddressBook(addressBook: TronAddressBook) {\n this._addressBook = addressBook;\n return this;\n }\n\n /**\n * Build the Tron signer instance\n *\n * @returns the Tron signer instance\n */\n\n public build() {\n return new DefaultSignerTrx({\n dmk: this._dmk,\n sessionId: this._sessionId,\n addressBook: this._addressBook,\n });\n }\n}\n"],
5
- "mappings": "yaAAA,IAAAA,EAAA,GAAAC,EAAAD,EAAA,sBAAAE,IAAA,eAAAC,EAAAH,GAMA,IAAAI,EAAiC,sCAgB1B,MAAMF,CAAiB,CACX,KACA,WACT,aAER,YAAY,CAAE,IAAAG,EAAK,UAAAC,CAAU,EAAoC,CAC/D,KAAK,KAAOD,EACZ,KAAK,WAAaC,CACpB,CAWA,gBAAgBC,EAA8B,CAC5C,YAAK,aAAeA,EACb,IACT,CAQO,OAAQ,CACb,OAAO,IAAI,mBAAiB,CAC1B,IAAK,KAAK,KACV,UAAW,KAAK,WAChB,YAAa,KAAK,YACpB,CAAC,CACH,CACF",
6
- "names": ["SignerTrxBuilder_exports", "__export", "SignerTrxBuilder", "__toCommonJS", "import_DefaultSignerTrx", "dmk", "sessionId", "addressBook"]
4
+ "sourcesContent": ["import {\n type ContextModule,\n ContextModuleBuilder,\n ContextModuleChainID,\n} from \"@ledgerhq/context-module\";\nimport {\n type DeviceManagementKit,\n type DeviceSessionId,\n} from \"@ledgerhq/device-management-kit\";\n\nimport { type TronAddressBook } from \"@api/model/TronAddressBook\";\nimport { DefaultSignerTrx } from \"@internal/DefaultSignerTrx\";\n\ntype SignerTrxBuilderConstructorArgs = {\n dmk: DeviceManagementKit;\n sessionId: DeviceSessionId;\n originToken?: string;\n};\n\n/**\n * Builder for the `SignerTrx` class.\n *\n * @example\n * ```\n * const signer = new SignerTrxBuilder({ dmk, sessionId })\n * .build();\n * ```\n */\nexport class SignerTrxBuilder {\n private readonly _dmk: DeviceManagementKit;\n private readonly _sessionId: DeviceSessionId;\n private readonly _originToken: string | undefined;\n private _customContextModule: ContextModule | undefined;\n private _addressBook: TronAddressBook | undefined;\n\n constructor({\n dmk,\n sessionId,\n originToken,\n }: SignerTrxBuilderConstructorArgs) {\n this._dmk = dmk;\n this._sessionId = sessionId;\n this._originToken = originToken;\n }\n\n /**\n * Override the default context module\n *\n * @param contextModule\n * @returns this\n */\n withContextModule(contextModule: ContextModule) {\n this._customContextModule = contextModule;\n return this;\n }\n\n /**\n * Provide the Tron-compatible address book used to clear-sign contact names.\n *\n * The snapshot must be complete: the signer neither mutates nor persists it,\n * and reads it as-is. Rebuild the signer to pick up later changes.\n *\n * @param addressBook a complete Tron address-book snapshot\n * @returns this\n */\n withAddressBook(addressBook: TronAddressBook) {\n this._addressBook = addressBook;\n return this;\n }\n\n /**\n * Build the Tron signer instance\n *\n * @returns the Tron signer instance\n */\n\n public build() {\n const contextModule =\n this._customContextModule ??\n new ContextModuleBuilder({\n originToken: this._originToken,\n loggerFactory: (tag: string) =>\n this._dmk.getLoggerFactory()([\"ContextModule\", tag]),\n })\n .setChain(ContextModuleChainID.Tron)\n .build();\n\n return new DefaultSignerTrx({\n dmk: this._dmk,\n sessionId: this._sessionId,\n contextModule,\n addressBook: this._addressBook,\n });\n }\n}\n"],
5
+ "mappings": "yaAAA,IAAAA,EAAA,GAAAC,EAAAD,EAAA,sBAAAE,IAAA,eAAAC,EAAAH,GAAA,IAAAI,EAIO,oCAOPC,EAAiC,sCAiB1B,MAAMH,CAAiB,CACX,KACA,WACA,aACT,qBACA,aAER,YAAY,CACV,IAAAI,EACA,UAAAC,EACA,YAAAC,CACF,EAAoC,CAClC,KAAK,KAAOF,EACZ,KAAK,WAAaC,EAClB,KAAK,aAAeC,CACtB,CAQA,kBAAkBC,EAA8B,CAC9C,YAAK,qBAAuBA,EACrB,IACT,CAWA,gBAAgBC,EAA8B,CAC5C,YAAK,aAAeA,EACb,IACT,CAQO,OAAQ,CACb,MAAMD,EACJ,KAAK,sBACL,IAAI,uBAAqB,CACvB,YAAa,KAAK,aAClB,cAAgBE,GACd,KAAK,KAAK,iBAAiB,EAAE,CAAC,gBAAiBA,CAAG,CAAC,CACvD,CAAC,EACE,SAAS,uBAAqB,IAAI,EAClC,MAAM,EAEX,OAAO,IAAI,mBAAiB,CAC1B,IAAK,KAAK,KACV,UAAW,KAAK,WAChB,cAAAF,EACA,YAAa,KAAK,YACpB,CAAC,CACH,CACF",
6
+ "names": ["SignerTrxBuilder_exports", "__export", "SignerTrxBuilder", "__toCommonJS", "import_context_module", "import_DefaultSignerTrx", "dmk", "sessionId", "originToken", "contextModule", "addressBook", "tag"]
7
7
  }
@@ -1,2 +1,2 @@
1
- "use strict";var r=require("./SignerTrxBuilder"),e=require("../internal/app-binder/constants"),a=require("../internal/DefaultSignerTrx"),n=require("../internal/externalTypes");describe("SignerTrxBuilder",()=>{const s={dmk:{},sessionId:""};test("should be an instance of SignerTrxBuilder",()=>{const t=new r.SignerTrxBuilder(s);expect(t).toBeInstanceOf(r.SignerTrxBuilder)}),test("should build a DefaultSignerTrx",()=>{const o=new r.SignerTrxBuilder(s).build();expect(o).toBeInstanceOf(a.DefaultSignerTrx)}),test("should build with an empty address book by default",()=>{const o=new r.SignerTrxBuilder(s).build();expect(o._container.get(n.externalTypes.AddressBook)).toEqual({contactGroups:[],ledgerAccounts:[]})}),test("should build with a custom address book",()=>{const t=new r.SignerTrxBuilder(s),o={contactGroups:[{contactName:"Alice",groupHandle:Uint8Array.from([1,2]),hmacProof:Uint8Array.from([3,4]),externalAddresses:[{scope:"TRX",address:"TQ3zvJoxUCS3PtcAJ8f1FhezAxrEDbjyKh",hmacRest:Uint8Array.from([5])}]}],ledgerAccounts:[{accountName:"Main account",derivationPath:"44'/195'/0'/0/0",hmacProof:Uint8Array.from([6])}]},d=t.withAddressBook(o).build();expect(d).toBeInstanceOf(a.DefaultSignerTrx),expect(d._container.get(n.externalTypes.AddressBook)).toBe(o)}),test("should preserve a contact group holding several addresses",()=>{const t=new r.SignerTrxBuilder(s),o={contactGroups:[{contactName:"Bob",groupHandle:Uint8Array.from([10]),hmacProof:Uint8Array.from([11]),externalAddresses:[{scope:"TRX",address:"TN3W4H6rK2ce4vX9YnFQHwKENnHjoxb3m9",hmacRest:Uint8Array.from([12])},{scope:"USDT",address:"TR7NHqjeKQxGTCi8q8ZY4pL8otSzgjLj6t",hmacRest:Uint8Array.from([13])}]}],ledgerAccounts:[]},c=t.withAddressBook(o).build()._container.get(n.externalTypes.AddressBook);expect(c.contactGroups).toHaveLength(1),expect(c.contactGroups[0].externalAddresses).toHaveLength(2),expect(c.contactGroups[0].externalAddresses.map(i=>i.scope)).toEqual(["TRX","USDT"])})});describe("Tron APDU constants",()=>{test("APP_NAME should be Tron",()=>{expect(e.APP_NAME).toBe("Tron")}),test("LEDGER_CLA should be 0xE0",()=>{expect(e.LEDGER_CLA).toBe(224)}),test("INS values should match the Tron app protocol",()=>{expect(e.INS.GET_ADDRESS).toBe(2),expect(e.INS.SIGN_TRANSACTION).toBe(4),expect(e.INS.GET_APP_CONFIGURATION).toBe(6),expect(e.INS.SIGN_PERSONAL_MESSAGE).toBe(8)})});
1
+ "use strict";var i=require("./model/TronAddressBook"),o=require("./SignerTrxBuilder"),r=require("../internal/app-binder/constants"),a=require("../internal/DefaultSignerTrx"),n=require("../internal/externalTypes");describe("SignerTrxBuilder",()=>{const s={dmk:{getLoggerFactory:vi.fn().mockReturnValue(vi.fn())},sessionId:""};test("should be an instance of SignerTrxBuilder",()=>{const e=new o.SignerTrxBuilder(s);expect(e).toBeInstanceOf(o.SignerTrxBuilder)}),test("should build a DefaultSignerTrx",()=>{const t=new o.SignerTrxBuilder(s).build();expect(t).toBeInstanceOf(a.DefaultSignerTrx)}),test("should build with a default Tron context module",()=>{const t=new o.SignerTrxBuilder(s).build();expect(t._container.get(n.externalTypes.ContextModule)).toBeDefined()}),test("should build with a custom context module",()=>{const e={getContexts:vi.fn()},d=new o.SignerTrxBuilder(s).withContextModule(e).build();expect(d._container.get(n.externalTypes.ContextModule)).toBe(e)}),test("should build with an empty address book by default",()=>{const t=new o.SignerTrxBuilder(s).build();expect(t._container.get(n.externalTypes.AddressBook)).toEqual(i.EMPTY_TRON_ADDRESS_BOOK)}),test("should build with a custom address book",()=>{const e=new o.SignerTrxBuilder(s),t={contactGroups:[{contactName:"Alice",groupHandle:Uint8Array.from([1,2]),hmacProof:Uint8Array.from([3,4]),externalAddresses:[{scope:"TRX",address:"TQ3zvJoxUCS3PtcAJ8f1FhezAxrEDbjyKh",hmacRest:Uint8Array.from([5])}]}],ledgerAccounts:[{accountName:"Main account",derivationPath:"44'/195'/0'/0/0",hmacProof:Uint8Array.from([6])}]},d=e.withAddressBook(t).build();expect(d).toBeInstanceOf(a.DefaultSignerTrx),expect(d._container.get(n.externalTypes.AddressBook)).toBe(t)}),test("should preserve a contact group holding several addresses",()=>{const e=new o.SignerTrxBuilder(s),t={contactGroups:[{contactName:"Bob",groupHandle:Uint8Array.from([10]),hmacProof:Uint8Array.from([11]),externalAddresses:[{scope:"TRX",address:"TN3W4H6rK2ce4vX9YnFQHwKENnHjoxb3m9",hmacRest:Uint8Array.from([12])},{scope:"USDT",address:"TR7NHqjeKQxGTCi8q8ZY4pL8otSzgjLj6t",hmacRest:Uint8Array.from([13])}]}],ledgerAccounts:[]},c=e.withAddressBook(t).build()._container.get(n.externalTypes.AddressBook);expect(c.contactGroups).toHaveLength(1),expect(c.contactGroups[0].externalAddresses).toHaveLength(2),expect(c.contactGroups[0].externalAddresses.map(u=>u.scope)).toEqual(["TRX","USDT"])})});describe("Tron APDU constants",()=>{test("APP_NAME should be Tron",()=>{expect(r.APP_NAME).toBe("Tron")}),test("LEDGER_CLA should be 0xE0",()=>{expect(r.LEDGER_CLA).toBe(224)}),test("INS values should match the Tron app protocol",()=>{expect(r.INS.GET_ADDRESS).toBe(2),expect(r.INS.SIGN_TRANSACTION).toBe(4),expect(r.INS.GET_APP_CONFIGURATION).toBe(6),expect(r.INS.SIGN_PERSONAL_MESSAGE).toBe(8)})});
2
2
  //# sourceMappingURL=SignerTrxBuilder.test.js.map
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "version": 3,
3
3
  "sources": ["../../../src/api/SignerTrxBuilder.test.ts"],
4
- "sourcesContent": ["import { type DeviceManagementKit } from \"@ledgerhq/device-management-kit\";\n\nimport { type TronAddressBook } from \"@api/model/TronAddressBook\";\nimport { SignerTrxBuilder } from \"@api/SignerTrxBuilder\";\nimport { APP_NAME, INS, LEDGER_CLA } from \"@internal/app-binder/constants\";\nimport { DefaultSignerTrx } from \"@internal/DefaultSignerTrx\";\nimport { externalTypes } from \"@internal/externalTypes\";\n\ndescribe(\"SignerTrxBuilder\", () => {\n const dmk = {} as DeviceManagementKit;\n const defaultConstructorArgs = { dmk, sessionId: \"\" };\n\n test(\"should be an instance of SignerTrxBuilder\", () => {\n const builder = new SignerTrxBuilder(defaultConstructorArgs);\n\n expect(builder).toBeInstanceOf(SignerTrxBuilder);\n });\n\n test(\"should build a DefaultSignerTrx\", () => {\n const builder = new SignerTrxBuilder(defaultConstructorArgs);\n\n const signer = builder.build();\n\n expect(signer).toBeInstanceOf(DefaultSignerTrx);\n });\n test(\"should build with an empty address book by default\", () => {\n const builder = new SignerTrxBuilder(defaultConstructorArgs);\n\n const signer = builder.build();\n\n expect(\n signer[\"_container\"].get<TronAddressBook>(externalTypes.AddressBook),\n ).toEqual({ contactGroups: [], ledgerAccounts: [] });\n });\n\n test(\"should build with a custom address book\", () => {\n const builder = new SignerTrxBuilder(defaultConstructorArgs);\n const addressBook: TronAddressBook = {\n contactGroups: [\n {\n contactName: \"Alice\",\n groupHandle: Uint8Array.from([0x01, 0x02]),\n hmacProof: Uint8Array.from([0x03, 0x04]),\n externalAddresses: [\n {\n scope: \"TRX\",\n address: \"TQ3zvJoxUCS3PtcAJ8f1FhezAxrEDbjyKh\",\n hmacRest: Uint8Array.from([0x05]),\n },\n ],\n },\n ],\n ledgerAccounts: [\n {\n accountName: \"Main account\",\n derivationPath: \"44'/195'/0'/0/0\",\n hmacProof: Uint8Array.from([0x06]),\n },\n ],\n };\n\n const signer = builder.withAddressBook(addressBook).build();\n\n expect(signer).toBeInstanceOf(DefaultSignerTrx);\n expect(\n signer[\"_container\"].get<TronAddressBook>(externalTypes.AddressBook),\n ).toBe(addressBook);\n });\n\n test(\"should preserve a contact group holding several addresses\", () => {\n const builder = new SignerTrxBuilder(defaultConstructorArgs);\n const addressBook: TronAddressBook = {\n contactGroups: [\n {\n contactName: \"Bob\",\n groupHandle: Uint8Array.from([0x0a]),\n hmacProof: Uint8Array.from([0x0b]),\n externalAddresses: [\n {\n scope: \"TRX\",\n address: \"TN3W4H6rK2ce4vX9YnFQHwKENnHjoxb3m9\",\n hmacRest: Uint8Array.from([0x0c]),\n },\n {\n scope: \"USDT\",\n address: \"TR7NHqjeKQxGTCi8q8ZY4pL8otSzgjLj6t\",\n hmacRest: Uint8Array.from([0x0d]),\n },\n ],\n },\n ],\n ledgerAccounts: [],\n };\n\n const signer = builder.withAddressBook(addressBook).build();\n const bound = signer[\"_container\"].get<TronAddressBook>(\n externalTypes.AddressBook,\n );\n\n expect(bound.contactGroups).toHaveLength(1);\n expect(bound.contactGroups[0]!.externalAddresses).toHaveLength(2);\n expect(\n bound.contactGroups[0]!.externalAddresses.map((a) => a.scope),\n ).toEqual([\"TRX\", \"USDT\"]);\n });\n});\n\ndescribe(\"Tron APDU constants\", () => {\n test(\"APP_NAME should be Tron\", () => {\n expect(APP_NAME).toBe(\"Tron\");\n });\n\n test(\"LEDGER_CLA should be 0xE0\", () => {\n expect(LEDGER_CLA).toBe(0xe0);\n });\n\n test(\"INS values should match the Tron app protocol\", () => {\n expect(INS.GET_ADDRESS).toBe(0x02);\n expect(INS.SIGN_TRANSACTION).toBe(0x04);\n expect(INS.GET_APP_CONFIGURATION).toBe(0x06);\n expect(INS.SIGN_PERSONAL_MESSAGE).toBe(0x08);\n });\n});\n"],
5
- "mappings": "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",
6
- "names": ["import_SignerTrxBuilder", "import_constants", "import_DefaultSignerTrx", "import_externalTypes", "defaultConstructorArgs", "builder", "signer", "addressBook", "bound", "a"]
4
+ "sourcesContent": ["import { type ContextModule } from \"@ledgerhq/context-module\";\nimport { type DeviceManagementKit } from \"@ledgerhq/device-management-kit\";\n\nimport {\n EMPTY_TRON_ADDRESS_BOOK,\n type TronAddressBook,\n} from \"@api/model/TronAddressBook\";\nimport { SignerTrxBuilder } from \"@api/SignerTrxBuilder\";\nimport { APP_NAME, INS, LEDGER_CLA } from \"@internal/app-binder/constants\";\nimport { DefaultSignerTrx } from \"@internal/DefaultSignerTrx\";\nimport { externalTypes } from \"@internal/externalTypes\";\n\ndescribe(\"SignerTrxBuilder\", () => {\n const dmk = {\n getLoggerFactory: vi.fn().mockReturnValue(vi.fn()),\n } as unknown as DeviceManagementKit;\n const defaultConstructorArgs = { dmk, sessionId: \"\" };\n\n test(\"should be an instance of SignerTrxBuilder\", () => {\n const builder = new SignerTrxBuilder(defaultConstructorArgs);\n\n expect(builder).toBeInstanceOf(SignerTrxBuilder);\n });\n\n test(\"should build a DefaultSignerTrx\", () => {\n const builder = new SignerTrxBuilder(defaultConstructorArgs);\n\n const signer = builder.build();\n\n expect(signer).toBeInstanceOf(DefaultSignerTrx);\n });\n test(\"should build with a default Tron context module\", () => {\n const builder = new SignerTrxBuilder(defaultConstructorArgs);\n\n const signer = builder.build();\n\n expect(\n signer[\"_container\"].get<ContextModule>(externalTypes.ContextModule),\n ).toBeDefined();\n });\n\n test(\"should build with a custom context module\", () => {\n const contextModule = { getContexts: vi.fn() } as unknown as ContextModule;\n const builder = new SignerTrxBuilder(defaultConstructorArgs);\n\n const signer = builder.withContextModule(contextModule).build();\n\n expect(\n signer[\"_container\"].get<ContextModule>(externalTypes.ContextModule),\n ).toBe(contextModule);\n });\n\n test(\"should build with an empty address book by default\", () => {\n const builder = new SignerTrxBuilder(defaultConstructorArgs);\n\n const signer = builder.build();\n\n expect(\n signer[\"_container\"].get<TronAddressBook>(externalTypes.AddressBook),\n ).toEqual(EMPTY_TRON_ADDRESS_BOOK);\n });\n\n test(\"should build with a custom address book\", () => {\n const builder = new SignerTrxBuilder(defaultConstructorArgs);\n const addressBook: TronAddressBook = {\n contactGroups: [\n {\n contactName: \"Alice\",\n groupHandle: Uint8Array.from([0x01, 0x02]),\n hmacProof: Uint8Array.from([0x03, 0x04]),\n externalAddresses: [\n {\n scope: \"TRX\",\n address: \"TQ3zvJoxUCS3PtcAJ8f1FhezAxrEDbjyKh\",\n hmacRest: Uint8Array.from([0x05]),\n },\n ],\n },\n ],\n ledgerAccounts: [\n {\n accountName: \"Main account\",\n derivationPath: \"44'/195'/0'/0/0\",\n hmacProof: Uint8Array.from([0x06]),\n },\n ],\n };\n\n const signer = builder.withAddressBook(addressBook).build();\n\n expect(signer).toBeInstanceOf(DefaultSignerTrx);\n expect(\n signer[\"_container\"].get<TronAddressBook>(externalTypes.AddressBook),\n ).toBe(addressBook);\n });\n\n test(\"should preserve a contact group holding several addresses\", () => {\n const builder = new SignerTrxBuilder(defaultConstructorArgs);\n const addressBook: TronAddressBook = {\n contactGroups: [\n {\n contactName: \"Bob\",\n groupHandle: Uint8Array.from([0x0a]),\n hmacProof: Uint8Array.from([0x0b]),\n externalAddresses: [\n {\n scope: \"TRX\",\n address: \"TN3W4H6rK2ce4vX9YnFQHwKENnHjoxb3m9\",\n hmacRest: Uint8Array.from([0x0c]),\n },\n {\n scope: \"USDT\",\n address: \"TR7NHqjeKQxGTCi8q8ZY4pL8otSzgjLj6t\",\n hmacRest: Uint8Array.from([0x0d]),\n },\n ],\n },\n ],\n ledgerAccounts: [],\n };\n\n const signer = builder.withAddressBook(addressBook).build();\n const bound = signer[\"_container\"].get<TronAddressBook>(\n externalTypes.AddressBook,\n );\n\n expect(bound.contactGroups).toHaveLength(1);\n expect(bound.contactGroups[0]!.externalAddresses).toHaveLength(2);\n expect(\n bound.contactGroups[0]!.externalAddresses.map((a) => a.scope),\n ).toEqual([\"TRX\", \"USDT\"]);\n });\n});\n\ndescribe(\"Tron APDU constants\", () => {\n test(\"APP_NAME should be Tron\", () => {\n expect(APP_NAME).toBe(\"Tron\");\n });\n\n test(\"LEDGER_CLA should be 0xE0\", () => {\n expect(LEDGER_CLA).toBe(0xe0);\n });\n\n test(\"INS values should match the Tron app protocol\", () => {\n expect(INS.GET_ADDRESS).toBe(0x02);\n expect(INS.SIGN_TRANSACTION).toBe(0x04);\n expect(INS.GET_APP_CONFIGURATION).toBe(0x06);\n expect(INS.SIGN_PERSONAL_MESSAGE).toBe(0x08);\n });\n});\n"],
5
+ "mappings": "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",
6
+ "names": ["import_TronAddressBook", "import_SignerTrxBuilder", "import_constants", "import_DefaultSignerTrx", "import_externalTypes", "defaultConstructorArgs", "builder", "signer", "contextModule", "addressBook", "bound", "a"]
7
7
  }
@@ -1,2 +1,2 @@
1
- "use strict";var i=Object.defineProperty;var p=Object.getOwnPropertyDescriptor;var a=Object.getOwnPropertyNames;var c=Object.prototype.hasOwnProperty;var u=(e,r,o,n)=>{if(r&&typeof r=="object"||typeof r=="function")for(let t of a(r))!c.call(e,t)&&t!==o&&i(e,t,{get:()=>r[t],enumerable:!(n=p(r,t))||n.enumerable});return e};var A=e=>u(i({},"__esModule",{value:!0}),e);var s={};module.exports=A(s);
1
+ "use strict";var i=Object.defineProperty;var s=Object.getOwnPropertyDescriptor;var u=Object.getOwnPropertyNames;var d=Object.prototype.hasOwnProperty;var A=(e,r)=>{for(var o in r)i(e,o,{get:r[o],enumerable:!0})},y=(e,r,o,p)=>{if(r&&typeof r=="object"||typeof r=="function")for(let n of u(r))!d.call(e,n)&&n!==o&&i(e,n,{get:()=>r[n],enumerable:!(p=s(r,n))||p.enumerable});return e};var l=e=>y(i({},"__esModule",{value:!0}),e);var c={};A(c,{SignTransactionDAStep:()=>a});module.exports=l(c);var a=(t=>(t.OPEN_APP="signer.trx.steps.openApp",t.GET_APP_CONFIG="signer.trx.steps.getAppConfig",t.BUILD_CONTEXT="signer.trx.steps.buildContext",t.PROVIDE_CONTACT="signer.trx.steps.provideContact",t.SIGN_TRANSACTION="signer.trx.steps.signTransaction",t))(a||{});0&&(module.exports={SignTransactionDAStep});
2
2
  //# sourceMappingURL=SignTransactionDeviceActionTypes.js.map
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "version": 3,
3
3
  "sources": ["../../../../src/api/app-binder/SignTransactionDeviceActionTypes.ts"],
4
- "sourcesContent": ["import {\n type CommandErrorResult,\n type ExecuteDeviceActionReturnType,\n type OpenAppDAError,\n type OpenAppDARequiredInteraction,\n type UserInteractionRequired,\n} from \"@ledgerhq/device-management-kit\";\n\nimport { type Signature } from \"@api/model/Signature\";\nimport { type TronAppErrorCodes } from \"@internal/app-binder/command/utils/tronApplicationErrors\";\n\nexport type SignTransactionDAOutput = Signature;\n\nexport type SignTransactionDAError =\n | OpenAppDAError\n | CommandErrorResult<TronAppErrorCodes>[\"error\"];\n\ntype SignTransactionDARequiredInteraction =\n | OpenAppDARequiredInteraction\n | UserInteractionRequired.SignTransaction;\n\nexport type SignTransactionDAIntermediateValue = {\n requiredUserInteraction: SignTransactionDARequiredInteraction;\n};\n\nexport type SignTransactionDAReturnType = ExecuteDeviceActionReturnType<\n SignTransactionDAOutput,\n SignTransactionDAError,\n SignTransactionDAIntermediateValue\n>;\n"],
5
- "mappings": "+WAAA,IAAAA,EAAA,kBAAAC,EAAAD",
6
- "names": ["SignTransactionDeviceActionTypes_exports", "__toCommonJS"]
4
+ "sourcesContent": ["import { type ContextModule } from \"@ledgerhq/context-module\";\nimport {\n type CommandErrorResult,\n type ExecuteDeviceActionReturnType,\n type OpenAppDAError,\n type OpenAppDARequiredInteraction,\n type UserInteractionRequired,\n} from \"@ledgerhq/device-management-kit\";\n\nimport { type AppConfiguration } from \"@api/model/AppConfiguration\";\nimport { type Signature } from \"@api/model/Signature\";\nimport { type TronAddressBook } from \"@api/model/TronAddressBook\";\nimport { type TronAppErrorCodes } from \"@internal/app-binder/command/utils/tronApplicationErrors\";\n\nexport type SignTransactionDAOutput = Signature;\n\nexport type SignTransactionDAInput = {\n readonly derivationPath: string;\n readonly transaction: Uint8Array;\n readonly contextModule: ContextModule;\n readonly addressBook: TronAddressBook;\n readonly skipOpenApp: boolean;\n};\n\nexport type SignTransactionDAError =\n | OpenAppDAError\n | CommandErrorResult<TronAppErrorCodes>[\"error\"];\n\ntype SignTransactionDARequiredInteraction =\n | OpenAppDARequiredInteraction\n | UserInteractionRequired.None\n | UserInteractionRequired.SignTransaction;\n\nexport enum SignTransactionDAStep {\n OPEN_APP = \"signer.trx.steps.openApp\",\n GET_APP_CONFIG = \"signer.trx.steps.getAppConfig\",\n BUILD_CONTEXT = \"signer.trx.steps.buildContext\",\n PROVIDE_CONTACT = \"signer.trx.steps.provideContact\",\n SIGN_TRANSACTION = \"signer.trx.steps.signTransaction\",\n}\n\nexport type SignTransactionDAIntermediateValue = {\n requiredUserInteraction: SignTransactionDARequiredInteraction;\n step: SignTransactionDAStep;\n};\n\nexport type SignTransactionDAInternalState = {\n readonly error: SignTransactionDAError | null;\n readonly appConfig: AppConfiguration | null;\n readonly tokenPayloads: Uint8Array[] | null;\n readonly signature: Signature | null;\n};\n\nexport type SignTransactionDAReturnType = ExecuteDeviceActionReturnType<\n SignTransactionDAOutput,\n SignTransactionDAError,\n SignTransactionDAIntermediateValue\n>;\n"],
5
+ "mappings": "yaAAA,IAAAA,EAAA,GAAAC,EAAAD,EAAA,2BAAAE,IAAA,eAAAC,EAAAH,GAiCO,IAAKE,OACVA,EAAA,SAAW,2BACXA,EAAA,eAAiB,gCACjBA,EAAA,cAAgB,gCAChBA,EAAA,gBAAkB,kCAClBA,EAAA,iBAAmB,mCALTA,OAAA",
6
+ "names": ["SignTransactionDeviceActionTypes_exports", "__export", "SignTransactionDAStep", "__toCommonJS"]
7
7
  }
@@ -1,2 +1,2 @@
1
- "use strict";var o=Object.defineProperty;var s=Object.getOwnPropertyDescriptor;var i=Object.getOwnPropertyNames;var y=Object.prototype.hasOwnProperty;var A=(t,e)=>{for(var p in e)o(t,p,{get:e[p],enumerable:!0})},u=(t,e,p,n)=>{if(e&&typeof e=="object"||typeof e=="function")for(let r of i(e))!y.call(t,r)&&r!==p&&o(t,r,{get:()=>e[r],enumerable:!(n=s(e,r))||n.enumerable});return t};var D=t=>u(o({},"__esModule",{value:!0}),t);var g={};A(g,{SignerTrxBuilder:()=>a.SignerTrxBuilder});module.exports=D(g);var a=require("./SignerTrxBuilder");0&&(module.exports={SignerTrxBuilder});
1
+ "use strict";var n=Object.defineProperty;var y=Object.getOwnPropertyDescriptor;var A=Object.getOwnPropertyNames;var u=Object.prototype.hasOwnProperty;var d=(t,e)=>{for(var o in e)n(t,o,{get:e[o],enumerable:!0})},D=(t,e,o,a)=>{if(e&&typeof e=="object"||typeof e=="function")for(let r of A(e))!u.call(t,r)&&r!==o&&n(t,r,{get:()=>e[r],enumerable:!(a=y(e,r))||a.enumerable});return t};var g=t=>D(n({},"__esModule",{value:!0}),t);var T={};d(T,{EMPTY_TRON_ADDRESS_BOOK:()=>s.EMPTY_TRON_ADDRESS_BOOK,SignerTrxBuilder:()=>i.SignerTrxBuilder,decodeTronAddress:()=>p.decodeTronAddress,encodeTronAddress:()=>p.encodeTronAddress});module.exports=g(T);var s=require("./model/TronAddressBook"),i=require("./SignerTrxBuilder"),p=require("../internal/shared/utils/tronBase58Check");0&&(module.exports={EMPTY_TRON_ADDRESS_BOOK,SignerTrxBuilder,decodeTronAddress,encodeTronAddress});
2
2
  //# sourceMappingURL=index.js.map
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "version": 3,
3
3
  "sources": ["../../../src/api/index.ts"],
4
- "sourcesContent": ["export {\n type GetAddressDAError,\n type GetAddressDAIntermediateValue,\n type GetAddressDAOutput,\n type GetAddressDAReturnType,\n} from \"@api/app-binder/GetAddressDeviceActionTypes\";\nexport {\n type GetAppConfigurationDAError,\n type GetAppConfigurationDAIntermediateValue,\n type GetAppConfigurationDAOutput,\n type GetAppConfigurationDAReturnType,\n} from \"@api/app-binder/GetAppConfigurationDeviceActionTypes\";\nexport {\n type GetECDHSecretDAError,\n type GetECDHSecretDAIntermediateValue,\n type GetECDHSecretDAOutput,\n type GetECDHSecretDAReturnType,\n} from \"@api/app-binder/GetECDHSecretDeviceActionTypes\";\nexport {\n type SignPersonalMessageDAError,\n type SignPersonalMessageDAIntermediateValue,\n type SignPersonalMessageDAOutput,\n type SignPersonalMessageDAReturnType,\n} from \"@api/app-binder/SignPersonalMessageDeviceActionTypes\";\nexport {\n type SignTransactionDAError,\n type SignTransactionDAIntermediateValue,\n type SignTransactionDAOutput,\n type SignTransactionDAReturnType,\n} from \"@api/app-binder/SignTransactionDeviceActionTypes\";\nexport {\n type SignTransactionHashDAError,\n type SignTransactionHashDAIntermediateValue,\n type SignTransactionHashDAOutput,\n type SignTransactionHashDAReturnType,\n} from \"@api/app-binder/SignTransactionHashDeviceActionTypes\";\nexport { type AddressOptions } from \"@api/model/AddressOptions\";\nexport { type AppConfiguration } from \"@api/model/AppConfiguration\";\nexport { type EcdhOptions } from \"@api/model/EcdhOptions\";\nexport { type MessageOptions } from \"@api/model/MessageOptions\";\nexport { type Signature } from \"@api/model/Signature\";\nexport { type TransactionOptions } from \"@api/model/TransactionOptions\";\nexport {\n type TronAddressBook,\n type TronContactGroup,\n type TronExternalAddress,\n type TronLedgerAccountContact,\n} from \"@api/model/TronAddressBook\";\nexport { type SignerTrx } from \"@api/SignerTrx\";\nexport { SignerTrxBuilder } from \"@api/SignerTrxBuilder\";\nexport { type TronAppErrorCodes } from \"@internal/app-binder/command/utils/tronApplicationErrors\";\n"],
5
- "mappings": "yaAAA,IAAAA,EAAA,GAAAC,EAAAD,EAAA,0DAAAE,EAAAF,GAiDA,IAAAG,EAAiC",
6
- "names": ["api_exports", "__export", "__toCommonJS", "import_SignerTrxBuilder"]
4
+ "sourcesContent": ["export {\n type GetAddressDAError,\n type GetAddressDAIntermediateValue,\n type GetAddressDAOutput,\n type GetAddressDAReturnType,\n} from \"@api/app-binder/GetAddressDeviceActionTypes\";\nexport {\n type GetAppConfigurationDAError,\n type GetAppConfigurationDAIntermediateValue,\n type GetAppConfigurationDAOutput,\n type GetAppConfigurationDAReturnType,\n} from \"@api/app-binder/GetAppConfigurationDeviceActionTypes\";\nexport {\n type GetECDHSecretDAError,\n type GetECDHSecretDAIntermediateValue,\n type GetECDHSecretDAOutput,\n type GetECDHSecretDAReturnType,\n} from \"@api/app-binder/GetECDHSecretDeviceActionTypes\";\nexport {\n type SignPersonalMessageDAError,\n type SignPersonalMessageDAIntermediateValue,\n type SignPersonalMessageDAOutput,\n type SignPersonalMessageDAReturnType,\n} from \"@api/app-binder/SignPersonalMessageDeviceActionTypes\";\nexport {\n type SignTransactionDAError,\n type SignTransactionDAIntermediateValue,\n type SignTransactionDAOutput,\n type SignTransactionDAReturnType,\n} from \"@api/app-binder/SignTransactionDeviceActionTypes\";\nexport {\n type SignTransactionHashDAError,\n type SignTransactionHashDAIntermediateValue,\n type SignTransactionHashDAOutput,\n type SignTransactionHashDAReturnType,\n} from \"@api/app-binder/SignTransactionHashDeviceActionTypes\";\nexport { type AddressOptions } from \"@api/model/AddressOptions\";\nexport { type AppConfiguration } from \"@api/model/AppConfiguration\";\nexport { type EcdhOptions } from \"@api/model/EcdhOptions\";\nexport { type MessageOptions } from \"@api/model/MessageOptions\";\nexport { type Signature } from \"@api/model/Signature\";\nexport { type TransactionOptions } from \"@api/model/TransactionOptions\";\nexport {\n EMPTY_TRON_ADDRESS_BOOK,\n type TronAddressBook,\n type TronContactGroup,\n type TronExternalAddress,\n type TronLedgerAccountContact,\n} from \"@api/model/TronAddressBook\";\nexport { type SignerTrx } from \"@api/SignerTrx\";\nexport { SignerTrxBuilder } from \"@api/SignerTrxBuilder\";\nexport { type TronAppErrorCodes } from \"@internal/app-binder/command/utils/tronApplicationErrors\";\nexport {\n decodeTronAddress,\n encodeTronAddress,\n} from \"@internal/shared/utils/tronBase58Check\";\n"],
5
+ "mappings": "yaAAA,IAAAA,EAAA,GAAAC,EAAAD,EAAA,oMAAAE,EAAAF,GA0CA,IAAAG,EAMO,sCAEPC,EAAiC,iCAEjCC,EAGO",
6
+ "names": ["api_exports", "__export", "__toCommonJS", "import_TronAddressBook", "import_SignerTrxBuilder", "import_tronBase58Check"]
7
7
  }
@@ -1,2 +1,2 @@
1
- "use strict";var e=Object.defineProperty;var c=Object.getOwnPropertyDescriptor;var s=Object.getOwnPropertyNames;var d=Object.prototype.hasOwnProperty;var p=(t,r,a,n)=>{if(r&&typeof r=="object"||typeof r=="function")for(let o of s(r))!d.call(t,o)&&o!==a&&e(t,o,{get:()=>r[o],enumerable:!(n=c(r,o))||n.enumerable});return t};var i=t=>p(e({},"__esModule",{value:!0}),t);var A={};module.exports=i(A);
1
+ "use strict";var n=Object.defineProperty;var a=Object.getOwnPropertyDescriptor;var s=Object.getOwnPropertyNames;var d=Object.prototype.hasOwnProperty;var p=(e,r)=>{for(var o in r)n(e,o,{get:r[o],enumerable:!0})},A=(e,r,o,c)=>{if(r&&typeof r=="object"||typeof r=="function")for(let t of s(r))!d.call(e,t)&&t!==o&&n(e,t,{get:()=>r[t],enumerable:!(c=a(r,t))||c.enumerable});return e};var i=e=>A(n({},"__esModule",{value:!0}),e);var g={};p(g,{EMPTY_TRON_ADDRESS_BOOK:()=>y});module.exports=i(g);const y=Object.freeze({contactGroups:Object.freeze([]),ledgerAccounts:Object.freeze([])});0&&(module.exports={EMPTY_TRON_ADDRESS_BOOK});
2
2
  //# sourceMappingURL=TronAddressBook.js.map
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "version": 3,
3
3
  "sources": ["../../../../src/api/model/TronAddressBook.ts"],
4
- "sourcesContent": ["/**\n * A complete snapshot of the Tron-compatible part of the address book.\n *\n * The signer never mutates this snapshot and never persists it: owning,\n * updating and persisting the address book remains the host's responsibility.\n *\n * Only Tron-family contacts and accounts belong here. The host filters by\n * blockchain family while building the snapshot, so the signer's in-flow\n * matching never needs a family discriminator and the models below do not\n * carry one.\n *\n * The Tron models carry no chain id: the firmware specification only includes\n * one for Ethereum.\n */\nexport type TronAddressBook = {\n contactGroups: TronContactGroup[];\n ledgerAccounts: TronLedgerAccountContact[];\n};\n\n/**\n * A named contact and the external addresses registered under it.\n *\n * The group carries the name-level proof material that every one of its\n * addresses reuses, so matching an address always yields its group without a\n * lookup.\n */\nexport type TronContactGroup = {\n contactName: string;\n groupHandle: Uint8Array;\n hmacProof: Uint8Array;\n externalAddresses: TronExternalAddress[];\n};\n\n/**\n * An external address registered under a contact group.\n *\n * The address is a base58 Tron address. The derivation path used at\n * registration time is deliberately absent: the signer never needs it to\n * provide the contact to the device.\n */\nexport type TronExternalAddress = {\n scope: string;\n address: string;\n hmacRest: Uint8Array;\n};\n\n/**\n * A named Ledger account contact, identified by its derivation path rather\n * than by an address string.\n */\nexport type TronLedgerAccountContact = {\n accountName: string;\n derivationPath: string;\n hmacProof: Uint8Array;\n};\n"],
5
- "mappings": "+WAAA,IAAAA,EAAA,kBAAAC,EAAAD",
6
- "names": ["TronAddressBook_exports", "__toCommonJS"]
4
+ "sourcesContent": ["/**\n * A complete snapshot of the Tron-compatible part of the address book.\n *\n * The signer never mutates this snapshot and never persists it: owning,\n * updating and persisting the address book remains the host's responsibility.\n *\n * Only Tron-family contacts and accounts belong here. The host filters by\n * blockchain family while building the snapshot, so the signer's in-flow\n * matching never needs a family discriminator and the models below do not\n * carry one.\n *\n * The Tron models carry no chain id: the firmware specification only includes\n * one for Ethereum.\n */\nexport type TronAddressBook = {\n contactGroups: readonly TronContactGroup[];\n ledgerAccounts: readonly TronLedgerAccountContact[];\n};\n\n/**\n * A named contact and the external addresses registered under it.\n *\n * The group carries the name-level proof material that every one of its\n * addresses reuses, so matching an address always yields its group without a\n * lookup.\n */\nexport type TronContactGroup = {\n contactName: string;\n groupHandle: Uint8Array;\n hmacProof: Uint8Array;\n externalAddresses: readonly TronExternalAddress[];\n};\n\n/**\n * An external address registered under a contact group.\n *\n * The address is a base58 Tron address. The derivation path used at\n * registration time is deliberately absent: the signer never needs it to\n * provide the contact to the device.\n */\nexport type TronExternalAddress = {\n scope: string;\n address: string;\n hmacRest: Uint8Array;\n};\n\n/**\n * A named Ledger account contact, identified by its derivation path rather\n * than by an address string.\n */\nexport type TronLedgerAccountContact = {\n accountName: string;\n derivationPath: string;\n hmacProof: Uint8Array;\n};\n\n/**\n * The book bound when the host supplies none. Matches nothing, and is frozen\n * because every signer in the process shares this one instance.\n */\nexport const EMPTY_TRON_ADDRESS_BOOK: TronAddressBook = Object.freeze({\n contactGroups: Object.freeze([]),\n ledgerAccounts: Object.freeze([]),\n});\n"],
5
+ "mappings": "yaAAA,IAAAA,EAAA,GAAAC,EAAAD,EAAA,6BAAAE,IAAA,eAAAC,EAAAH,GA4DO,MAAME,EAA2C,OAAO,OAAO,CACpE,cAAe,OAAO,OAAO,CAAC,CAAC,EAC/B,eAAgB,OAAO,OAAO,CAAC,CAAC,CAClC,CAAC",
6
+ "names": ["TronAddressBook_exports", "__export", "EMPTY_TRON_ADDRESS_BOOK", "__toCommonJS"]
7
7
  }
@@ -1,2 +1,2 @@
1
- "use strict";var i=Object.defineProperty;var y=Object.getOwnPropertyDescriptor;var T=Object.getOwnPropertyNames;var u=Object.prototype.hasOwnProperty;var f=(s,e)=>{for(var t in e)i(s,t,{get:e[t],enumerable:!0})},C=(s,e,t,r)=>{if(e&&typeof e=="object"||typeof e=="function")for(let n of T(e))!u.call(s,n)&&n!==t&&i(s,n,{get:()=>e[n],enumerable:!(r=y(e,n))||r.enumerable});return s};var A=s=>C(i({},"__esModule",{value:!0}),s);var S={};f(S,{DefaultSignerTrx:()=>d});module.exports=A(S);var a=require("./di"),p=require("./use-cases/address/di/addressTypes"),m=require("./use-cases/app-configuration/di/appConfigurationTypes"),g=require("./use-cases/ecdh/di/ecdhTypes"),c=require("./use-cases/message/di/messageTypes"),o=require("./use-cases/transaction/di/transactionTypes");class d{_container;constructor({dmk:e,sessionId:t,addressBook:r}){this._container=(0,a.makeContainer)({dmk:e,sessionId:t,addressBook:r})}getAddress(e,t){return this._container.get(p.addressTypes.GetAddressUseCase).execute(e,t)}signTransaction(e,t,r){return this._container.get(o.transactionTypes.SignTransactionUseCase).execute(e,t,r)}signTransactionHash(e,t,r){return this._container.get(o.transactionTypes.SignTransactionHashUseCase).execute(e,t,r)}signPersonalMessage(e,t,r){return this._container.get(c.messageTypes.SignPersonalMessageUseCase).execute(e,t,r)}getAppConfiguration(){return this._container.get(m.appConfigurationTypes.GetAppConfigurationUseCase).execute()}getECDHSecret(e,t,r){return this._container.get(g.ecdhTypes.GetECDHSecretUseCase).execute(e,t,r)}}0&&(module.exports={DefaultSignerTrx});
1
+ "use strict";var o=Object.defineProperty;var y=Object.getOwnPropertyDescriptor;var u=Object.getOwnPropertyNames;var T=Object.prototype.hasOwnProperty;var C=(n,e)=>{for(var t in e)o(n,t,{get:e[t],enumerable:!0})},f=(n,e,t,r)=>{if(e&&typeof e=="object"||typeof e=="function")for(let s of u(e))!T.call(n,s)&&s!==t&&o(n,s,{get:()=>e[s],enumerable:!(r=y(e,s))||r.enumerable});return n};var d=n=>f(o({},"__esModule",{value:!0}),n);var S={};C(S,{DefaultSignerTrx:()=>A});module.exports=d(S);var a=require("./di"),p=require("./use-cases/address/di/addressTypes"),m=require("./use-cases/app-configuration/di/appConfigurationTypes"),g=require("./use-cases/ecdh/di/ecdhTypes"),c=require("./use-cases/message/di/messageTypes"),i=require("./use-cases/transaction/di/transactionTypes");class A{_container;constructor({dmk:e,sessionId:t,contextModule:r,addressBook:s}){this._container=(0,a.makeContainer)({dmk:e,sessionId:t,contextModule:r,addressBook:s})}getAddress(e,t){return this._container.get(p.addressTypes.GetAddressUseCase).execute(e,t)}signTransaction(e,t,r){return this._container.get(i.transactionTypes.SignTransactionUseCase).execute(e,t,r)}signTransactionHash(e,t,r){return this._container.get(i.transactionTypes.SignTransactionHashUseCase).execute(e,t,r)}signPersonalMessage(e,t,r){return this._container.get(c.messageTypes.SignPersonalMessageUseCase).execute(e,t,r)}getAppConfiguration(){return this._container.get(m.appConfigurationTypes.GetAppConfigurationUseCase).execute()}getECDHSecret(e,t,r){return this._container.get(g.ecdhTypes.GetECDHSecretUseCase).execute(e,t,r)}}0&&(module.exports={DefaultSignerTrx});
2
2
  //# sourceMappingURL=DefaultSignerTrx.js.map
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "version": 3,
3
3
  "sources": ["../../../src/internal/DefaultSignerTrx.ts"],
4
- "sourcesContent": ["import {\n type DeviceManagementKit,\n type DeviceSessionId,\n} from \"@ledgerhq/device-management-kit\";\nimport { type Container } from \"inversify\";\n\nimport { type GetAddressDAReturnType } from \"@api/app-binder/GetAddressDeviceActionTypes\";\nimport { type GetAppConfigurationDAReturnType } from \"@api/app-binder/GetAppConfigurationDeviceActionTypes\";\nimport { type GetECDHSecretDAReturnType } from \"@api/app-binder/GetECDHSecretDeviceActionTypes\";\nimport { type SignPersonalMessageDAReturnType } from \"@api/app-binder/SignPersonalMessageDeviceActionTypes\";\nimport { type SignTransactionDAReturnType } from \"@api/app-binder/SignTransactionDeviceActionTypes\";\nimport { type SignTransactionHashDAReturnType } from \"@api/app-binder/SignTransactionHashDeviceActionTypes\";\nimport { type AddressOptions } from \"@api/model/AddressOptions\";\nimport { type EcdhOptions } from \"@api/model/EcdhOptions\";\nimport { type MessageOptions } from \"@api/model/MessageOptions\";\nimport { type TransactionOptions } from \"@api/model/TransactionOptions\";\nimport { type TronAddressBook } from \"@api/model/TronAddressBook\";\nimport { type SignerTrx } from \"@api/SignerTrx\";\nimport { makeContainer } from \"@internal/di\";\nimport { addressTypes } from \"@internal/use-cases/address/di/addressTypes\";\nimport { type GetAddressUseCase } from \"@internal/use-cases/address/GetAddressUseCase\";\nimport { appConfigurationTypes } from \"@internal/use-cases/app-configuration/di/appConfigurationTypes\";\nimport { type GetAppConfigurationUseCase } from \"@internal/use-cases/app-configuration/GetAppConfigurationUseCase\";\nimport { ecdhTypes } from \"@internal/use-cases/ecdh/di/ecdhTypes\";\nimport { type GetECDHSecretUseCase } from \"@internal/use-cases/ecdh/GetECDHSecretUseCase\";\nimport { messageTypes } from \"@internal/use-cases/message/di/messageTypes\";\nimport { type SignPersonalMessageUseCase } from \"@internal/use-cases/message/SignPersonalMessageUseCase\";\nimport { transactionTypes } from \"@internal/use-cases/transaction/di/transactionTypes\";\nimport { type SignTransactionHashUseCase } from \"@internal/use-cases/transaction/SignTransactionHashUseCase\";\nimport { type SignTransactionUseCase } from \"@internal/use-cases/transaction/SignTransactionUseCase\";\n\ntype DefaultSignerTrxConstructorArgs = {\n dmk: DeviceManagementKit;\n sessionId: DeviceSessionId;\n addressBook?: TronAddressBook;\n};\n\nexport class DefaultSignerTrx implements SignerTrx {\n private readonly _container: Container;\n\n constructor({\n dmk,\n sessionId,\n addressBook,\n }: DefaultSignerTrxConstructorArgs) {\n this._container = makeContainer({ dmk, sessionId, addressBook });\n }\n\n getAddress(\n derivationPath: string,\n options?: AddressOptions,\n ): GetAddressDAReturnType {\n return this._container\n .get<GetAddressUseCase>(addressTypes.GetAddressUseCase)\n .execute(derivationPath, options);\n }\n\n signTransaction(\n derivationPath: string,\n transaction: Uint8Array,\n options?: TransactionOptions,\n ): SignTransactionDAReturnType {\n return this._container\n .get<SignTransactionUseCase>(transactionTypes.SignTransactionUseCase)\n .execute(derivationPath, transaction, options);\n }\n\n signTransactionHash(\n derivationPath: string,\n transactionHash: Uint8Array,\n options?: TransactionOptions,\n ): SignTransactionHashDAReturnType {\n return this._container\n .get<SignTransactionHashUseCase>(\n transactionTypes.SignTransactionHashUseCase,\n )\n .execute(derivationPath, transactionHash, options);\n }\n\n signPersonalMessage(\n derivationPath: string,\n message: string | Uint8Array,\n options?: MessageOptions,\n ): SignPersonalMessageDAReturnType {\n return this._container\n .get<SignPersonalMessageUseCase>(messageTypes.SignPersonalMessageUseCase)\n .execute(derivationPath, message, options);\n }\n\n getAppConfiguration(): GetAppConfigurationDAReturnType {\n return this._container\n .get<GetAppConfigurationUseCase>(\n appConfigurationTypes.GetAppConfigurationUseCase,\n )\n .execute();\n }\n\n getECDHSecret(\n derivationPath: string,\n publicKey: Uint8Array,\n options?: EcdhOptions,\n ): GetECDHSecretDAReturnType {\n return this._container\n .get<GetECDHSecretUseCase>(ecdhTypes.GetECDHSecretUseCase)\n .execute(derivationPath, publicKey, options);\n }\n}\n"],
5
- "mappings": "yaAAA,IAAAA,EAAA,GAAAC,EAAAD,EAAA,sBAAAE,IAAA,eAAAC,EAAAH,GAkBA,IAAAI,EAA8B,wBAC9BC,EAA6B,uDAE7BC,EAAsC,0EAEtCC,EAA0B,iDAE1BC,EAA6B,uDAE7BC,EAAiC,+DAU1B,MAAMP,CAAsC,CAChC,WAEjB,YAAY,CACV,IAAAQ,EACA,UAAAC,EACA,YAAAC,CACF,EAAoC,CAClC,KAAK,cAAa,iBAAc,CAAE,IAAAF,EAAK,UAAAC,EAAW,YAAAC,CAAY,CAAC,CACjE,CAEA,WACEC,EACAC,EACwB,CACxB,OAAO,KAAK,WACT,IAAuB,eAAa,iBAAiB,EACrD,QAAQD,EAAgBC,CAAO,CACpC,CAEA,gBACED,EACAE,EACAD,EAC6B,CAC7B,OAAO,KAAK,WACT,IAA4B,mBAAiB,sBAAsB,EACnE,QAAQD,EAAgBE,EAAaD,CAAO,CACjD,CAEA,oBACED,EACAG,EACAF,EACiC,CACjC,OAAO,KAAK,WACT,IACC,mBAAiB,0BACnB,EACC,QAAQD,EAAgBG,EAAiBF,CAAO,CACrD,CAEA,oBACED,EACAI,EACAH,EACiC,CACjC,OAAO,KAAK,WACT,IAAgC,eAAa,0BAA0B,EACvE,QAAQD,EAAgBI,EAASH,CAAO,CAC7C,CAEA,qBAAuD,CACrD,OAAO,KAAK,WACT,IACC,wBAAsB,0BACxB,EACC,QAAQ,CACb,CAEA,cACED,EACAK,EACAJ,EAC2B,CAC3B,OAAO,KAAK,WACT,IAA0B,YAAU,oBAAoB,EACxD,QAAQD,EAAgBK,EAAWJ,CAAO,CAC/C,CACF",
6
- "names": ["DefaultSignerTrx_exports", "__export", "DefaultSignerTrx", "__toCommonJS", "import_di", "import_addressTypes", "import_appConfigurationTypes", "import_ecdhTypes", "import_messageTypes", "import_transactionTypes", "dmk", "sessionId", "addressBook", "derivationPath", "options", "transaction", "transactionHash", "message", "publicKey"]
4
+ "sourcesContent": ["import { type ContextModule } from \"@ledgerhq/context-module\";\nimport {\n type DeviceManagementKit,\n type DeviceSessionId,\n} from \"@ledgerhq/device-management-kit\";\nimport { type Container } from \"inversify\";\n\nimport { type GetAddressDAReturnType } from \"@api/app-binder/GetAddressDeviceActionTypes\";\nimport { type GetAppConfigurationDAReturnType } from \"@api/app-binder/GetAppConfigurationDeviceActionTypes\";\nimport { type GetECDHSecretDAReturnType } from \"@api/app-binder/GetECDHSecretDeviceActionTypes\";\nimport { type SignPersonalMessageDAReturnType } from \"@api/app-binder/SignPersonalMessageDeviceActionTypes\";\nimport { type SignTransactionDAReturnType } from \"@api/app-binder/SignTransactionDeviceActionTypes\";\nimport { type SignTransactionHashDAReturnType } from \"@api/app-binder/SignTransactionHashDeviceActionTypes\";\nimport { type AddressOptions } from \"@api/model/AddressOptions\";\nimport { type EcdhOptions } from \"@api/model/EcdhOptions\";\nimport { type MessageOptions } from \"@api/model/MessageOptions\";\nimport { type TransactionOptions } from \"@api/model/TransactionOptions\";\nimport { type TronAddressBook } from \"@api/model/TronAddressBook\";\nimport { type SignerTrx } from \"@api/SignerTrx\";\nimport { makeContainer } from \"@internal/di\";\nimport { addressTypes } from \"@internal/use-cases/address/di/addressTypes\";\nimport { type GetAddressUseCase } from \"@internal/use-cases/address/GetAddressUseCase\";\nimport { appConfigurationTypes } from \"@internal/use-cases/app-configuration/di/appConfigurationTypes\";\nimport { type GetAppConfigurationUseCase } from \"@internal/use-cases/app-configuration/GetAppConfigurationUseCase\";\nimport { ecdhTypes } from \"@internal/use-cases/ecdh/di/ecdhTypes\";\nimport { type GetECDHSecretUseCase } from \"@internal/use-cases/ecdh/GetECDHSecretUseCase\";\nimport { messageTypes } from \"@internal/use-cases/message/di/messageTypes\";\nimport { type SignPersonalMessageUseCase } from \"@internal/use-cases/message/SignPersonalMessageUseCase\";\nimport { transactionTypes } from \"@internal/use-cases/transaction/di/transactionTypes\";\nimport { type SignTransactionHashUseCase } from \"@internal/use-cases/transaction/SignTransactionHashUseCase\";\nimport { type SignTransactionUseCase } from \"@internal/use-cases/transaction/SignTransactionUseCase\";\n\ntype DefaultSignerTrxConstructorArgs = {\n dmk: DeviceManagementKit;\n sessionId: DeviceSessionId;\n contextModule: ContextModule;\n addressBook?: TronAddressBook;\n};\n\nexport class DefaultSignerTrx implements SignerTrx {\n private readonly _container: Container;\n\n constructor({\n dmk,\n sessionId,\n contextModule,\n addressBook,\n }: DefaultSignerTrxConstructorArgs) {\n this._container = makeContainer({\n dmk,\n sessionId,\n contextModule,\n addressBook,\n });\n }\n\n getAddress(\n derivationPath: string,\n options?: AddressOptions,\n ): GetAddressDAReturnType {\n return this._container\n .get<GetAddressUseCase>(addressTypes.GetAddressUseCase)\n .execute(derivationPath, options);\n }\n\n signTransaction(\n derivationPath: string,\n transaction: Uint8Array,\n options?: TransactionOptions,\n ): SignTransactionDAReturnType {\n return this._container\n .get<SignTransactionUseCase>(transactionTypes.SignTransactionUseCase)\n .execute(derivationPath, transaction, options);\n }\n\n signTransactionHash(\n derivationPath: string,\n transactionHash: Uint8Array,\n options?: TransactionOptions,\n ): SignTransactionHashDAReturnType {\n return this._container\n .get<SignTransactionHashUseCase>(\n transactionTypes.SignTransactionHashUseCase,\n )\n .execute(derivationPath, transactionHash, options);\n }\n\n signPersonalMessage(\n derivationPath: string,\n message: string | Uint8Array,\n options?: MessageOptions,\n ): SignPersonalMessageDAReturnType {\n return this._container\n .get<SignPersonalMessageUseCase>(messageTypes.SignPersonalMessageUseCase)\n .execute(derivationPath, message, options);\n }\n\n getAppConfiguration(): GetAppConfigurationDAReturnType {\n return this._container\n .get<GetAppConfigurationUseCase>(\n appConfigurationTypes.GetAppConfigurationUseCase,\n )\n .execute();\n }\n\n getECDHSecret(\n derivationPath: string,\n publicKey: Uint8Array,\n options?: EcdhOptions,\n ): GetECDHSecretDAReturnType {\n return this._container\n .get<GetECDHSecretUseCase>(ecdhTypes.GetECDHSecretUseCase)\n .execute(derivationPath, publicKey, options);\n }\n}\n"],
5
+ "mappings": "yaAAA,IAAAA,EAAA,GAAAC,EAAAD,EAAA,sBAAAE,IAAA,eAAAC,EAAAH,GAmBA,IAAAI,EAA8B,wBAC9BC,EAA6B,uDAE7BC,EAAsC,0EAEtCC,EAA0B,iDAE1BC,EAA6B,uDAE7BC,EAAiC,+DAW1B,MAAMP,CAAsC,CAChC,WAEjB,YAAY,CACV,IAAAQ,EACA,UAAAC,EACA,cAAAC,EACA,YAAAC,CACF,EAAoC,CAClC,KAAK,cAAa,iBAAc,CAC9B,IAAAH,EACA,UAAAC,EACA,cAAAC,EACA,YAAAC,CACF,CAAC,CACH,CAEA,WACEC,EACAC,EACwB,CACxB,OAAO,KAAK,WACT,IAAuB,eAAa,iBAAiB,EACrD,QAAQD,EAAgBC,CAAO,CACpC,CAEA,gBACED,EACAE,EACAD,EAC6B,CAC7B,OAAO,KAAK,WACT,IAA4B,mBAAiB,sBAAsB,EACnE,QAAQD,EAAgBE,EAAaD,CAAO,CACjD,CAEA,oBACED,EACAG,EACAF,EACiC,CACjC,OAAO,KAAK,WACT,IACC,mBAAiB,0BACnB,EACC,QAAQD,EAAgBG,EAAiBF,CAAO,CACrD,CAEA,oBACED,EACAI,EACAH,EACiC,CACjC,OAAO,KAAK,WACT,IAAgC,eAAa,0BAA0B,EACvE,QAAQD,EAAgBI,EAASH,CAAO,CAC7C,CAEA,qBAAuD,CACrD,OAAO,KAAK,WACT,IACC,wBAAsB,0BACxB,EACC,QAAQ,CACb,CAEA,cACED,EACAK,EACAJ,EAC2B,CAC3B,OAAO,KAAK,WACT,IAA0B,YAAU,oBAAoB,EACxD,QAAQD,EAAgBK,EAAWJ,CAAO,CAC/C,CACF",
6
+ "names": ["DefaultSignerTrx_exports", "__export", "DefaultSignerTrx", "__toCommonJS", "import_di", "import_addressTypes", "import_appConfigurationTypes", "import_ecdhTypes", "import_messageTypes", "import_transactionTypes", "dmk", "sessionId", "contextModule", "addressBook", "derivationPath", "options", "transaction", "transactionHash", "message", "publicKey"]
7
7
  }
@@ -1,2 +1,2 @@
1
- "use strict";var c=Object.defineProperty;var u=Object.getOwnPropertyDescriptor;var f=Object.getOwnPropertyNames;var S=Object.prototype.hasOwnProperty;var I=(t,e)=>{for(var i in e)c(t,i,{get:e[i],enumerable:!0})},P=(t,e,i,o)=>{if(e&&typeof e=="object"||typeof e=="function")for(let r of f(e))!S.call(t,r)&&r!==i&&c(t,r,{get:()=>e[r],enumerable:!(o=u(e,r))||o.enumerable});return t};var C=t=>P(c({},"__esModule",{value:!0}),t),h=(t,e,i,o)=>{for(var r=o>1?void 0:o?u(e,i):e,g=t.length-1,A;g>=0;g--)(A=t[g])&&(r=(o?A(e,i,r):A(r))||r);return o&&r&&c(e,i,r),r},m=(t,e)=>(i,o)=>e(i,o,t);var O={};I(O,{TronAppBinder:()=>p});module.exports=C(O);var n=require("@ledgerhq/device-management-kit"),a=require("inversify"),k=require("../app-binder/command/GetAddressCommand"),v=require("../app-binder/command/GetAppConfigurationCommand"),y=require("../app-binder/command/GetECDHSecretCommand"),D=require("../app-binder/command/SignTransactionHashCommand"),s=require("../app-binder/constants"),l=require("../app-binder/task/SignPersonalMessageTask"),T=require("../app-binder/task/SignTransactionTask"),d=require("../externalTypes");let p=class{constructor(e,i,o){this.dmk=e;this.sessionId=i;this.dmkLoggerFactory=o}getAddress(e){return this.dmk.executeDeviceAction({sessionId:this.sessionId,deviceAction:new n.SendCommandInAppDeviceAction({input:{command:new k.GetAddressCommand({derivationPath:e.derivationPath,checkOnDevice:e.checkOnDevice}),appName:s.APP_NAME,requiredUserInteraction:e.checkOnDevice?n.UserInteractionRequired.VerifyAddress:n.UserInteractionRequired.None,skipOpenApp:e.skipOpenApp},logger:this.dmkLoggerFactory("GetAddressCommand")})})}signTransaction(e){return this.dmk.executeDeviceAction({sessionId:this.sessionId,deviceAction:new n.CallTaskInAppDeviceAction({input:{task:async i=>new T.SignTransactionTask(i,{derivationPath:e.derivationPath,transaction:e.transaction}).run(),appName:s.APP_NAME,requiredUserInteraction:n.UserInteractionRequired.SignTransaction,skipOpenApp:e.skipOpenApp??!1},logger:this.dmkLoggerFactory("SignTransactionTask")})})}getECDHSecret(e){return this.dmk.executeDeviceAction({sessionId:this.sessionId,deviceAction:new n.SendCommandInAppDeviceAction({input:{command:new y.GetECDHSecretCommand({derivationPath:e.derivationPath,publicKey:e.publicKey}),appName:s.APP_NAME,requiredUserInteraction:n.UserInteractionRequired.SignTransaction,skipOpenApp:e.skipOpenApp??!1},logger:this.dmkLoggerFactory("GetECDHSecretCommand")})})}signTransactionHash(e){return this.dmk.executeDeviceAction({sessionId:this.sessionId,deviceAction:new n.SendCommandInAppDeviceAction({input:{command:new D.SignTransactionHashCommand({derivationPath:e.derivationPath,transactionHash:e.transactionHash}),appName:s.APP_NAME,requiredUserInteraction:n.UserInteractionRequired.SignTransaction,skipOpenApp:e.skipOpenApp??!1},logger:this.dmkLoggerFactory("SignTransactionHashCommand")})})}signPersonalMessage(e){return this.dmk.executeDeviceAction({sessionId:this.sessionId,deviceAction:new n.CallTaskInAppDeviceAction({input:{task:async i=>new l.SignPersonalMessageTask(i,{derivationPath:e.derivationPath,message:e.message}).run(),appName:s.APP_NAME,requiredUserInteraction:n.UserInteractionRequired.SignPersonalMessage,skipOpenApp:e.skipOpenApp??!1},logger:this.dmkLoggerFactory("SignPersonalMessageTask")})})}getAppConfiguration(){return this.dmk.executeDeviceAction({sessionId:this.sessionId,deviceAction:new n.SendCommandInAppDeviceAction({input:{command:new v.GetAppConfigurationCommand,appName:s.APP_NAME,requiredUserInteraction:n.UserInteractionRequired.None,skipOpenApp:!1},logger:this.dmkLoggerFactory("GetAppConfigurationCommand")})})}};p=h([(0,a.injectable)(),m(0,(0,a.inject)(d.externalTypes.Dmk)),m(1,(0,a.inject)(d.externalTypes.SessionId)),m(2,(0,a.inject)(d.externalTypes.DmkLoggerFactory))],p);0&&(module.exports={TronAppBinder});
1
+ "use strict";var g=Object.defineProperty;var u=Object.getOwnPropertyDescriptor;var S=Object.getOwnPropertyNames;var P=Object.prototype.hasOwnProperty;var I=(i,e)=>{for(var o in e)g(i,o,{get:e[o],enumerable:!0})},C=(i,e,o,r)=>{if(e&&typeof e=="object"||typeof e=="function")for(let t of S(e))!P.call(i,t)&&t!==o&&g(i,t,{get:()=>e[t],enumerable:!(r=u(e,t))||r.enumerable});return i};var O=i=>C(g({},"__esModule",{value:!0}),i),h=(i,e,o,r)=>{for(var t=r>1?void 0:r?u(e,o):e,m=i.length-1,A;m>=0;m--)(A=i[m])&&(t=(r?A(e,o,t):A(t))||t);return r&&t&&g(e,o,t),t},a=(i,e)=>(o,r)=>e(o,r,i);var M={};I(M,{TronAppBinder:()=>d});module.exports=O(M);var n=require("@ledgerhq/device-management-kit"),s=require("inversify"),k=require("../../api/model/TronAddressBook"),v=require("../app-binder/command/GetAddressCommand"),y=require("../app-binder/command/GetAppConfigurationCommand"),l=require("../app-binder/command/GetECDHSecretCommand"),D=require("../app-binder/command/SignTransactionHashCommand"),p=require("../app-binder/constants"),f=require("../app-binder/device-action/SignTransaction/SignTransactionDeviceAction"),T=require("../app-binder/task/SignPersonalMessageTask"),c=require("../externalTypes");let d=class{constructor(e,o,r,t,m=k.EMPTY_TRON_ADDRESS_BOOK){this.dmk=e;this.sessionId=o;this.dmkLoggerFactory=r;this.contextModule=t;this.addressBook=m}getAddress(e){return this.dmk.executeDeviceAction({sessionId:this.sessionId,deviceAction:new n.SendCommandInAppDeviceAction({input:{command:new v.GetAddressCommand({derivationPath:e.derivationPath,checkOnDevice:e.checkOnDevice}),appName:p.APP_NAME,requiredUserInteraction:e.checkOnDevice?n.UserInteractionRequired.VerifyAddress:n.UserInteractionRequired.None,skipOpenApp:e.skipOpenApp},logger:this.dmkLoggerFactory("GetAddressCommand")})})}signTransaction(e){return this.dmk.executeDeviceAction({sessionId:this.sessionId,deviceAction:new f.SignTransactionDeviceAction({input:{derivationPath:e.derivationPath,transaction:e.transaction,contextModule:this.contextModule,addressBook:this.addressBook,skipOpenApp:e.skipOpenApp??!1},logger:this.dmkLoggerFactory("SignTransactionDeviceAction")})})}getECDHSecret(e){return this.dmk.executeDeviceAction({sessionId:this.sessionId,deviceAction:new n.SendCommandInAppDeviceAction({input:{command:new l.GetECDHSecretCommand({derivationPath:e.derivationPath,publicKey:e.publicKey}),appName:p.APP_NAME,requiredUserInteraction:n.UserInteractionRequired.SignTransaction,skipOpenApp:e.skipOpenApp??!1},logger:this.dmkLoggerFactory("GetECDHSecretCommand")})})}signTransactionHash(e){return this.dmk.executeDeviceAction({sessionId:this.sessionId,deviceAction:new n.SendCommandInAppDeviceAction({input:{command:new D.SignTransactionHashCommand({derivationPath:e.derivationPath,transactionHash:e.transactionHash}),appName:p.APP_NAME,requiredUserInteraction:n.UserInteractionRequired.SignTransaction,skipOpenApp:e.skipOpenApp??!1},logger:this.dmkLoggerFactory("SignTransactionHashCommand")})})}signPersonalMessage(e){return this.dmk.executeDeviceAction({sessionId:this.sessionId,deviceAction:new n.CallTaskInAppDeviceAction({input:{task:async o=>new T.SignPersonalMessageTask(o,{derivationPath:e.derivationPath,message:e.message}).run(),appName:p.APP_NAME,requiredUserInteraction:n.UserInteractionRequired.SignPersonalMessage,skipOpenApp:e.skipOpenApp??!1},logger:this.dmkLoggerFactory("SignPersonalMessageTask")})})}getAppConfiguration(){return this.dmk.executeDeviceAction({sessionId:this.sessionId,deviceAction:new n.SendCommandInAppDeviceAction({input:{command:new y.GetAppConfigurationCommand,appName:p.APP_NAME,requiredUserInteraction:n.UserInteractionRequired.None,skipOpenApp:!1},logger:this.dmkLoggerFactory("GetAppConfigurationCommand")})})}};d=h([(0,s.injectable)(),a(0,(0,s.inject)(c.externalTypes.Dmk)),a(1,(0,s.inject)(c.externalTypes.SessionId)),a(2,(0,s.inject)(c.externalTypes.DmkLoggerFactory)),a(3,(0,s.inject)(c.externalTypes.ContextModule)),a(4,(0,s.inject)(c.externalTypes.AddressBook))],d);0&&(module.exports={TronAppBinder});
2
2
  //# sourceMappingURL=TronAppBinder.js.map
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "version": 3,
3
3
  "sources": ["../../../../src/internal/app-binder/TronAppBinder.ts"],
4
- "sourcesContent": ["import {\n CallTaskInAppDeviceAction,\n type DeviceManagementKit,\n type DeviceSessionId,\n LoggerPublisherService,\n SendCommandInAppDeviceAction,\n UserInteractionRequired,\n} from \"@ledgerhq/device-management-kit\";\nimport { inject, injectable } from \"inversify\";\n\nimport { type GetAddressDAReturnType } from \"@api/app-binder/GetAddressDeviceActionTypes\";\nimport { type GetAppConfigurationDAReturnType } from \"@api/app-binder/GetAppConfigurationDeviceActionTypes\";\nimport { type GetECDHSecretDAReturnType } from \"@api/app-binder/GetECDHSecretDeviceActionTypes\";\nimport { type SignPersonalMessageDAReturnType } from \"@api/app-binder/SignPersonalMessageDeviceActionTypes\";\nimport { type SignTransactionDAReturnType } from \"@api/app-binder/SignTransactionDeviceActionTypes\";\nimport { type SignTransactionHashDAReturnType } from \"@api/app-binder/SignTransactionHashDeviceActionTypes\";\nimport { GetAddressCommand } from \"@internal/app-binder/command/GetAddressCommand\";\nimport { GetAppConfigurationCommand } from \"@internal/app-binder/command/GetAppConfigurationCommand\";\nimport { GetECDHSecretCommand } from \"@internal/app-binder/command/GetECDHSecretCommand\";\nimport { SignTransactionHashCommand } from \"@internal/app-binder/command/SignTransactionHashCommand\";\nimport { APP_NAME } from \"@internal/app-binder/constants\";\nimport { SignPersonalMessageTask } from \"@internal/app-binder/task/SignPersonalMessageTask\";\nimport { SignTransactionTask } from \"@internal/app-binder/task/SignTransactionTask\";\nimport { externalTypes } from \"@internal/externalTypes\";\n\n@injectable()\nexport class TronAppBinder {\n constructor(\n @inject(externalTypes.Dmk) private dmk: DeviceManagementKit,\n @inject(externalTypes.SessionId) private sessionId: DeviceSessionId,\n @inject(externalTypes.DmkLoggerFactory)\n private dmkLoggerFactory: (tag: string) => LoggerPublisherService,\n ) {}\n\n getAddress(args: {\n derivationPath: string;\n checkOnDevice: boolean;\n skipOpenApp: boolean;\n }): GetAddressDAReturnType {\n return this.dmk.executeDeviceAction({\n sessionId: this.sessionId,\n deviceAction: new SendCommandInAppDeviceAction({\n input: {\n command: new GetAddressCommand({\n derivationPath: args.derivationPath,\n checkOnDevice: args.checkOnDevice,\n }),\n appName: APP_NAME,\n requiredUserInteraction: args.checkOnDevice\n ? UserInteractionRequired.VerifyAddress\n : UserInteractionRequired.None,\n skipOpenApp: args.skipOpenApp,\n },\n logger: this.dmkLoggerFactory(\"GetAddressCommand\"),\n }),\n });\n }\n\n signTransaction(args: {\n derivationPath: string;\n transaction: Uint8Array;\n skipOpenApp?: boolean;\n }): SignTransactionDAReturnType {\n return this.dmk.executeDeviceAction({\n sessionId: this.sessionId,\n deviceAction: new CallTaskInAppDeviceAction({\n input: {\n task: async (internalApi) =>\n new SignTransactionTask(internalApi, {\n derivationPath: args.derivationPath,\n transaction: args.transaction,\n }).run(),\n appName: APP_NAME,\n requiredUserInteraction: UserInteractionRequired.SignTransaction,\n skipOpenApp: args.skipOpenApp ?? false,\n },\n logger: this.dmkLoggerFactory(\"SignTransactionTask\"),\n }),\n });\n }\n\n getECDHSecret(args: {\n derivationPath: string;\n publicKey: Uint8Array;\n skipOpenApp?: boolean;\n }): GetECDHSecretDAReturnType {\n return this.dmk.executeDeviceAction({\n sessionId: this.sessionId,\n deviceAction: new SendCommandInAppDeviceAction({\n input: {\n command: new GetECDHSecretCommand({\n derivationPath: args.derivationPath,\n publicKey: args.publicKey,\n }),\n appName: APP_NAME,\n requiredUserInteraction: UserInteractionRequired.SignTransaction,\n skipOpenApp: args.skipOpenApp ?? false,\n },\n logger: this.dmkLoggerFactory(\"GetECDHSecretCommand\"),\n }),\n });\n }\n\n signTransactionHash(args: {\n derivationPath: string;\n transactionHash: Uint8Array;\n skipOpenApp?: boolean;\n }): SignTransactionHashDAReturnType {\n return this.dmk.executeDeviceAction({\n sessionId: this.sessionId,\n deviceAction: new SendCommandInAppDeviceAction({\n input: {\n command: new SignTransactionHashCommand({\n derivationPath: args.derivationPath,\n transactionHash: args.transactionHash,\n }),\n appName: APP_NAME,\n requiredUserInteraction: UserInteractionRequired.SignTransaction,\n skipOpenApp: args.skipOpenApp ?? false,\n },\n logger: this.dmkLoggerFactory(\"SignTransactionHashCommand\"),\n }),\n });\n }\n\n signPersonalMessage(args: {\n derivationPath: string;\n message: Uint8Array;\n skipOpenApp?: boolean;\n }): SignPersonalMessageDAReturnType {\n return this.dmk.executeDeviceAction({\n sessionId: this.sessionId,\n deviceAction: new CallTaskInAppDeviceAction({\n input: {\n task: async (internalApi) =>\n new SignPersonalMessageTask(internalApi, {\n derivationPath: args.derivationPath,\n message: args.message,\n }).run(),\n appName: APP_NAME,\n requiredUserInteraction: UserInteractionRequired.SignPersonalMessage,\n skipOpenApp: args.skipOpenApp ?? false,\n },\n logger: this.dmkLoggerFactory(\"SignPersonalMessageTask\"),\n }),\n });\n }\n\n getAppConfiguration(): GetAppConfigurationDAReturnType {\n return this.dmk.executeDeviceAction({\n sessionId: this.sessionId,\n deviceAction: new SendCommandInAppDeviceAction({\n input: {\n command: new GetAppConfigurationCommand(),\n appName: APP_NAME,\n requiredUserInteraction: UserInteractionRequired.None,\n skipOpenApp: false,\n },\n logger: this.dmkLoggerFactory(\"GetAppConfigurationCommand\"),\n }),\n });\n }\n}\n"],
5
- "mappings": "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",
6
- "names": ["TronAppBinder_exports", "__export", "TronAppBinder", "__toCommonJS", "import_device_management_kit", "import_inversify", "import_GetAddressCommand", "import_GetAppConfigurationCommand", "import_GetECDHSecretCommand", "import_SignTransactionHashCommand", "import_constants", "import_SignPersonalMessageTask", "import_SignTransactionTask", "import_externalTypes", "TronAppBinder", "dmk", "sessionId", "dmkLoggerFactory", "args", "internalApi", "__decorateClass", "__decorateParam"]
4
+ "sourcesContent": ["import { type ContextModule } from \"@ledgerhq/context-module\";\nimport {\n CallTaskInAppDeviceAction,\n type DeviceManagementKit,\n type DeviceSessionId,\n LoggerPublisherService,\n SendCommandInAppDeviceAction,\n UserInteractionRequired,\n} from \"@ledgerhq/device-management-kit\";\nimport { inject, injectable } from \"inversify\";\n\nimport { type GetAddressDAReturnType } from \"@api/app-binder/GetAddressDeviceActionTypes\";\nimport { type GetAppConfigurationDAReturnType } from \"@api/app-binder/GetAppConfigurationDeviceActionTypes\";\nimport { type GetECDHSecretDAReturnType } from \"@api/app-binder/GetECDHSecretDeviceActionTypes\";\nimport { type SignPersonalMessageDAReturnType } from \"@api/app-binder/SignPersonalMessageDeviceActionTypes\";\nimport { type SignTransactionDAReturnType } from \"@api/app-binder/SignTransactionDeviceActionTypes\";\nimport { type SignTransactionHashDAReturnType } from \"@api/app-binder/SignTransactionHashDeviceActionTypes\";\nimport {\n EMPTY_TRON_ADDRESS_BOOK,\n type TronAddressBook,\n} from \"@api/model/TronAddressBook\";\nimport { GetAddressCommand } from \"@internal/app-binder/command/GetAddressCommand\";\nimport { GetAppConfigurationCommand } from \"@internal/app-binder/command/GetAppConfigurationCommand\";\nimport { GetECDHSecretCommand } from \"@internal/app-binder/command/GetECDHSecretCommand\";\nimport { SignTransactionHashCommand } from \"@internal/app-binder/command/SignTransactionHashCommand\";\nimport { APP_NAME } from \"@internal/app-binder/constants\";\nimport { SignTransactionDeviceAction } from \"@internal/app-binder/device-action/SignTransaction/SignTransactionDeviceAction\";\nimport { SignPersonalMessageTask } from \"@internal/app-binder/task/SignPersonalMessageTask\";\nimport { externalTypes } from \"@internal/externalTypes\";\n\n@injectable()\nexport class TronAppBinder {\n constructor(\n @inject(externalTypes.Dmk) private dmk: DeviceManagementKit,\n @inject(externalTypes.SessionId) private sessionId: DeviceSessionId,\n @inject(externalTypes.DmkLoggerFactory)\n private dmkLoggerFactory: (tag: string) => LoggerPublisherService,\n @inject(externalTypes.ContextModule)\n private contextModule: ContextModule,\n @inject(externalTypes.AddressBook)\n private addressBook: TronAddressBook = EMPTY_TRON_ADDRESS_BOOK,\n ) {}\n\n getAddress(args: {\n derivationPath: string;\n checkOnDevice: boolean;\n skipOpenApp: boolean;\n }): GetAddressDAReturnType {\n return this.dmk.executeDeviceAction({\n sessionId: this.sessionId,\n deviceAction: new SendCommandInAppDeviceAction({\n input: {\n command: new GetAddressCommand({\n derivationPath: args.derivationPath,\n checkOnDevice: args.checkOnDevice,\n }),\n appName: APP_NAME,\n requiredUserInteraction: args.checkOnDevice\n ? UserInteractionRequired.VerifyAddress\n : UserInteractionRequired.None,\n skipOpenApp: args.skipOpenApp,\n },\n logger: this.dmkLoggerFactory(\"GetAddressCommand\"),\n }),\n });\n }\n\n signTransaction(args: {\n derivationPath: string;\n transaction: Uint8Array;\n skipOpenApp?: boolean;\n }): SignTransactionDAReturnType {\n return this.dmk.executeDeviceAction({\n sessionId: this.sessionId,\n deviceAction: new SignTransactionDeviceAction({\n input: {\n derivationPath: args.derivationPath,\n transaction: args.transaction,\n contextModule: this.contextModule,\n addressBook: this.addressBook,\n skipOpenApp: args.skipOpenApp ?? false,\n },\n logger: this.dmkLoggerFactory(\"SignTransactionDeviceAction\"),\n }),\n });\n }\n\n getECDHSecret(args: {\n derivationPath: string;\n publicKey: Uint8Array;\n skipOpenApp?: boolean;\n }): GetECDHSecretDAReturnType {\n return this.dmk.executeDeviceAction({\n sessionId: this.sessionId,\n deviceAction: new SendCommandInAppDeviceAction({\n input: {\n command: new GetECDHSecretCommand({\n derivationPath: args.derivationPath,\n publicKey: args.publicKey,\n }),\n appName: APP_NAME,\n requiredUserInteraction: UserInteractionRequired.SignTransaction,\n skipOpenApp: args.skipOpenApp ?? false,\n },\n logger: this.dmkLoggerFactory(\"GetECDHSecretCommand\"),\n }),\n });\n }\n\n signTransactionHash(args: {\n derivationPath: string;\n transactionHash: Uint8Array;\n skipOpenApp?: boolean;\n }): SignTransactionHashDAReturnType {\n return this.dmk.executeDeviceAction({\n sessionId: this.sessionId,\n deviceAction: new SendCommandInAppDeviceAction({\n input: {\n command: new SignTransactionHashCommand({\n derivationPath: args.derivationPath,\n transactionHash: args.transactionHash,\n }),\n appName: APP_NAME,\n requiredUserInteraction: UserInteractionRequired.SignTransaction,\n skipOpenApp: args.skipOpenApp ?? false,\n },\n logger: this.dmkLoggerFactory(\"SignTransactionHashCommand\"),\n }),\n });\n }\n\n signPersonalMessage(args: {\n derivationPath: string;\n message: Uint8Array;\n skipOpenApp?: boolean;\n }): SignPersonalMessageDAReturnType {\n return this.dmk.executeDeviceAction({\n sessionId: this.sessionId,\n deviceAction: new CallTaskInAppDeviceAction({\n input: {\n task: async (internalApi) =>\n new SignPersonalMessageTask(internalApi, {\n derivationPath: args.derivationPath,\n message: args.message,\n }).run(),\n appName: APP_NAME,\n requiredUserInteraction: UserInteractionRequired.SignPersonalMessage,\n skipOpenApp: args.skipOpenApp ?? false,\n },\n logger: this.dmkLoggerFactory(\"SignPersonalMessageTask\"),\n }),\n });\n }\n\n getAppConfiguration(): GetAppConfigurationDAReturnType {\n return this.dmk.executeDeviceAction({\n sessionId: this.sessionId,\n deviceAction: new SendCommandInAppDeviceAction({\n input: {\n command: new GetAppConfigurationCommand(),\n appName: APP_NAME,\n requiredUserInteraction: UserInteractionRequired.None,\n skipOpenApp: false,\n },\n logger: this.dmkLoggerFactory(\"GetAppConfigurationCommand\"),\n }),\n });\n }\n}\n"],
5
+ "mappings": "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",
6
+ "names": ["TronAppBinder_exports", "__export", "TronAppBinder", "__toCommonJS", "import_device_management_kit", "import_inversify", "import_TronAddressBook", "import_GetAddressCommand", "import_GetAppConfigurationCommand", "import_GetECDHSecretCommand", "import_SignTransactionHashCommand", "import_constants", "import_SignTransactionDeviceAction", "import_SignPersonalMessageTask", "import_externalTypes", "TronAppBinder", "dmk", "sessionId", "dmkLoggerFactory", "contextModule", "addressBook", "args", "internalApi", "__decorateClass", "__decorateParam"]
7
7
  }
@@ -1,2 +1,2 @@
1
- "use strict";var e=require("@ledgerhq/device-management-kit"),m=require("rxjs"),D=require("../app-binder/command/GetAddressCommand"),h=require("../app-binder/command/GetAppConfigurationCommand"),v=require("../app-binder/command/GetECDHSecretCommand"),b=require("../app-binder/command/SignTransactionHashCommand"),l=require("../app-binder/constants"),a=require("./TronAppBinder");describe("TronAppBinder",()=>{const t={sendCommand:vi.fn(),executeDeviceAction:vi.fn()},g={debug:vi.fn()},c=vi.fn().mockReturnValue(g);beforeEach(()=>{vi.clearAllMocks()}),it("should be defined",()=>{const n=new a.TronAppBinder({},{},c);expect(n).toBeDefined()}),describe("getAddress",()=>{it("should return the address",()=>new Promise((n,i)=>{const r={publicKey:"0401020304",address:"TWdnWBzFdBP1b8sqZ5RcFDbkV3sBmnxsYu"};vi.spyOn(t,"executeDeviceAction").mockReturnValue({observable:(0,m.from)([{status:e.DeviceActionStatus.Completed,output:r}]),cancel:vi.fn()});const s=new a.TronAppBinder(t,"sessionId",c),{observable:o}=s.getAddress({derivationPath:"44'/195'/0'/0/0",checkOnDevice:!1,skipOpenApp:!1}),d=[];o.subscribe({next:p=>d.push(p),error:i,complete:()=>{try{expect(d).toEqual([{status:e.DeviceActionStatus.Completed,output:r}]),n()}catch(p){i(p)}}})})),describe("calls executeDeviceAction with the correct params",()=>{const n="44'/195'/0'/0/0";it("requires no user interaction when checkOnDevice is false",()=>{new a.TronAppBinder(t,"sessionId",c).getAddress({derivationPath:n,checkOnDevice:!1,skipOpenApp:!1}),expect(t.executeDeviceAction).toHaveBeenCalledWith(expect.objectContaining({sessionId:"sessionId",deviceAction:new e.SendCommandInAppDeviceAction({input:{command:new D.GetAddressCommand({derivationPath:n,checkOnDevice:!1}),appName:l.APP_NAME,requiredUserInteraction:e.UserInteractionRequired.None,skipOpenApp:!1},logger:g})}))}),it("requires VerifyAddress interaction when checkOnDevice is true",()=>{new a.TronAppBinder(t,"sessionId",c).getAddress({derivationPath:n,checkOnDevice:!0,skipOpenApp:!0}),expect(t.executeDeviceAction).toHaveBeenCalledWith(expect.objectContaining({sessionId:"sessionId",deviceAction:new e.SendCommandInAppDeviceAction({input:{command:new D.GetAddressCommand({derivationPath:n,checkOnDevice:!0}),appName:l.APP_NAME,requiredUserInteraction:e.UserInteractionRequired.VerifyAddress,skipOpenApp:!0},logger:g})}))})})}),describe("signTransaction",()=>{const n="44'/195'/0'/0/0",i=Uint8Array.from([10,1,0]);it("should return the signature",()=>new Promise((r,s)=>{const o=new Uint8Array(65).fill(171);vi.spyOn(t,"executeDeviceAction").mockReturnValue({observable:(0,m.from)([{status:e.DeviceActionStatus.Completed,output:o}]),cancel:vi.fn()});const d=new a.TronAppBinder(t,"sessionId",c),{observable:p}=d.signTransaction({derivationPath:n,transaction:i}),A=[];p.subscribe({next:u=>A.push(u),error:s,complete:()=>{try{expect(A).toEqual([{status:e.DeviceActionStatus.Completed,output:o}]),r()}catch(u){s(u)}}})})),describe("calls executeDeviceAction with the correct params",()=>{const r=()=>{const s=vi.mocked(t.executeDeviceAction).mock.calls[0][0];return expect(s.sessionId).toBe("sessionId"),expect(s.deviceAction).toBeInstanceOf(e.CallTaskInAppDeviceAction),s.deviceAction};it("requires the SignTransaction interaction",()=>{new a.TronAppBinder(t,"sessionId",c).signTransaction({derivationPath:n,transaction:i,skipOpenApp:!0});const o=r();expect(o.input.appName).toBe(l.APP_NAME),expect(o.input.requiredUserInteraction).toBe(e.UserInteractionRequired.SignTransaction),expect(o.input.skipOpenApp).toBe(!0)}),it("defaults skipOpenApp to false",()=>{new a.TronAppBinder(t,"sessionId",c).signTransaction({derivationPath:n,transaction:i}),expect(r().input.skipOpenApp).toBe(!1)})})}),describe("signTransactionHash",()=>{const n="44'/195'/0'/0/0",i=new Uint8Array(32).fill(37);it("should return the signature",()=>new Promise((r,s)=>{const o=new Uint8Array(65).fill(171);vi.spyOn(t,"executeDeviceAction").mockReturnValue({observable:(0,m.from)([{status:e.DeviceActionStatus.Completed,output:o}]),cancel:vi.fn()});const d=new a.TronAppBinder(t,"sessionId",c),{observable:p}=d.signTransactionHash({derivationPath:n,transactionHash:i}),A=[];p.subscribe({next:u=>A.push(u),error:s,complete:()=>{try{expect(A).toEqual([{status:e.DeviceActionStatus.Completed,output:o}]),r()}catch(u){s(u)}}})})),describe("calls executeDeviceAction with the correct params",()=>{it("requires the SignTransaction interaction",()=>{new a.TronAppBinder(t,"sessionId",c).signTransactionHash({derivationPath:n,transactionHash:i,skipOpenApp:!0}),expect(t.executeDeviceAction).toHaveBeenCalledWith(expect.objectContaining({sessionId:"sessionId",deviceAction:new e.SendCommandInAppDeviceAction({input:{command:new b.SignTransactionHashCommand({derivationPath:n,transactionHash:i}),appName:l.APP_NAME,requiredUserInteraction:e.UserInteractionRequired.SignTransaction,skipOpenApp:!0},logger:g})}))}),it("defaults skipOpenApp to false",()=>{new a.TronAppBinder(t,"sessionId",c).signTransactionHash({derivationPath:n,transactionHash:i}),expect(t.executeDeviceAction).toHaveBeenCalledWith(expect.objectContaining({deviceAction:new e.SendCommandInAppDeviceAction({input:{command:new b.SignTransactionHashCommand({derivationPath:n,transactionHash:i}),appName:l.APP_NAME,requiredUserInteraction:e.UserInteractionRequired.SignTransaction,skipOpenApp:!1},logger:g})}))})})}),describe("signPersonalMessage",()=>{const n="44'/195'/0'/0/0",i=Uint8Array.from([104,101,108,108,111]);it("should return the signature",()=>new Promise((r,s)=>{const o=new Uint8Array(65).fill(171);vi.spyOn(t,"executeDeviceAction").mockReturnValue({observable:(0,m.from)([{status:e.DeviceActionStatus.Completed,output:o}]),cancel:vi.fn()});const d=new a.TronAppBinder(t,"sessionId",c),{observable:p}=d.signPersonalMessage({derivationPath:n,message:i}),A=[];p.subscribe({next:u=>A.push(u),error:s,complete:()=>{try{expect(A).toEqual([{status:e.DeviceActionStatus.Completed,output:o}]),r()}catch(u){s(u)}}})})),describe("calls executeDeviceAction with the correct params",()=>{const r=()=>{const s=vi.mocked(t.executeDeviceAction).mock.calls[0][0];return expect(s.sessionId).toBe("sessionId"),expect(s.deviceAction).toBeInstanceOf(e.CallTaskInAppDeviceAction),s.deviceAction};it("requires the SignPersonalMessage interaction",()=>{new a.TronAppBinder(t,"sessionId",c).signPersonalMessage({derivationPath:n,message:i,skipOpenApp:!0});const o=r();expect(o.input.appName).toBe(l.APP_NAME),expect(o.input.requiredUserInteraction).toBe(e.UserInteractionRequired.SignPersonalMessage),expect(o.input.skipOpenApp).toBe(!0)}),it("defaults skipOpenApp to false",()=>{new a.TronAppBinder(t,"sessionId",c).signPersonalMessage({derivationPath:n,message:i}),expect(r().input.skipOpenApp).toBe(!1)})})}),describe("getAppConfiguration",()=>{it("should return the app configuration",()=>new Promise((n,i)=>{const r={version:"0.5.0",versionN:500,allowData:!0,allowContract:!0,truncateAddress:!0,signByHash:!0};vi.spyOn(t,"executeDeviceAction").mockReturnValue({observable:(0,m.from)([{status:e.DeviceActionStatus.Completed,output:r}]),cancel:vi.fn()});const s=new a.TronAppBinder(t,"sessionId",c),{observable:o}=s.getAppConfiguration(),d=[];o.subscribe({next:p=>d.push(p),error:i,complete:()=>{try{expect(d).toEqual([{status:e.DeviceActionStatus.Completed,output:r}]),n()}catch(p){i(p)}}})})),it("should call executeDeviceAction with the correct params",()=>{new a.TronAppBinder(t,"sessionId",c).getAppConfiguration(),expect(t.executeDeviceAction).toHaveBeenCalledWith(expect.objectContaining({sessionId:"sessionId",deviceAction:new e.SendCommandInAppDeviceAction({input:{command:new h.GetAppConfigurationCommand,appName:l.APP_NAME,requiredUserInteraction:e.UserInteractionRequired.None,skipOpenApp:!1},logger:g})}))})}),describe("getECDHSecret",()=>{const n="44'/195'/0'/0/0",i=new Uint8Array(65).fill(4);it("should return the shared secret",()=>new Promise((r,s)=>{const o=new Uint8Array(65).fill(205);vi.spyOn(t,"executeDeviceAction").mockReturnValue({observable:(0,m.from)([{status:e.DeviceActionStatus.Completed,output:o}]),cancel:vi.fn()});const d=new a.TronAppBinder(t,"sessionId",c),{observable:p}=d.getECDHSecret({derivationPath:n,publicKey:i}),A=[];p.subscribe({next:u=>A.push(u),error:s,complete:()=>{try{expect(A).toEqual([{status:e.DeviceActionStatus.Completed,output:o}]),r()}catch(u){s(u)}}})})),describe("calls executeDeviceAction with the correct params",()=>{it("requires the SignTransaction interaction",()=>{new a.TronAppBinder(t,"sessionId",c).getECDHSecret({derivationPath:n,publicKey:i,skipOpenApp:!0}),expect(t.executeDeviceAction).toHaveBeenCalledWith(expect.objectContaining({sessionId:"sessionId",deviceAction:new e.SendCommandInAppDeviceAction({input:{command:new v.GetECDHSecretCommand({derivationPath:n,publicKey:i}),appName:l.APP_NAME,requiredUserInteraction:e.UserInteractionRequired.SignTransaction,skipOpenApp:!0},logger:g})}))}),it("defaults skipOpenApp to false",()=>{new a.TronAppBinder(t,"sessionId",c).getECDHSecret({derivationPath:n,publicKey:i}),expect(t.executeDeviceAction).toHaveBeenCalledWith(expect.objectContaining({deviceAction:new e.SendCommandInAppDeviceAction({input:{command:new v.GetECDHSecretCommand({derivationPath:n,publicKey:i}),appName:l.APP_NAME,requiredUserInteraction:e.UserInteractionRequired.SignTransaction,skipOpenApp:!1},logger:g})}))})})})});
1
+ "use strict";var n=require("@ledgerhq/device-management-kit"),D=require("rxjs"),f=require("../../api/model/TronAddressBook"),b=require("../app-binder/command/GetAddressCommand"),S=require("../app-binder/command/GetAppConfigurationCommand"),h=require("../app-binder/command/GetECDHSecretCommand"),x=require("../app-binder/command/SignTransactionHashCommand"),m=require("../app-binder/constants"),C=require("../app-binder/device-action/SignTransaction/SignTransactionDeviceAction"),p=require("./TronAppBinder");describe("TronAppBinder",()=>{const e={sendCommand:vi.fn(),executeDeviceAction:vi.fn()},g={debug:vi.fn()},u=vi.fn().mockReturnValue(g),c={getContexts:vi.fn().mockResolvedValue([])};beforeEach(()=>{vi.clearAllMocks()}),it("should be defined",()=>{const t=new p.TronAppBinder({},{},u,c);expect(t).toBeDefined()}),describe("getAddress",()=>{it("should return the address",()=>new Promise((t,i)=>{const o={publicKey:"0401020304",address:"TWdnWBzFdBP1b8sqZ5RcFDbkV3sBmnxsYu"};vi.spyOn(e,"executeDeviceAction").mockReturnValue({observable:(0,D.from)([{status:n.DeviceActionStatus.Completed,output:o}]),cancel:vi.fn()});const r=new p.TronAppBinder(e,"sessionId",u,c),{observable:s}=r.getAddress({derivationPath:"44'/195'/0'/0/0",checkOnDevice:!1,skipOpenApp:!1}),a=[];s.subscribe({next:d=>a.push(d),error:i,complete:()=>{try{expect(a).toEqual([{status:n.DeviceActionStatus.Completed,output:o}]),t()}catch(d){i(d)}}})})),describe("calls executeDeviceAction with the correct params",()=>{const t="44'/195'/0'/0/0";it("requires no user interaction when checkOnDevice is false",()=>{new p.TronAppBinder(e,"sessionId",u,c).getAddress({derivationPath:t,checkOnDevice:!1,skipOpenApp:!1}),expect(e.executeDeviceAction).toHaveBeenCalledWith(expect.objectContaining({sessionId:"sessionId",deviceAction:new n.SendCommandInAppDeviceAction({input:{command:new b.GetAddressCommand({derivationPath:t,checkOnDevice:!1}),appName:m.APP_NAME,requiredUserInteraction:n.UserInteractionRequired.None,skipOpenApp:!1},logger:g})}))}),it("requires VerifyAddress interaction when checkOnDevice is true",()=>{new p.TronAppBinder(e,"sessionId",u,c).getAddress({derivationPath:t,checkOnDevice:!0,skipOpenApp:!0}),expect(e.executeDeviceAction).toHaveBeenCalledWith(expect.objectContaining({sessionId:"sessionId",deviceAction:new n.SendCommandInAppDeviceAction({input:{command:new b.GetAddressCommand({derivationPath:t,checkOnDevice:!0}),appName:m.APP_NAME,requiredUserInteraction:n.UserInteractionRequired.VerifyAddress,skipOpenApp:!0},logger:g})}))})})}),describe("signTransaction",()=>{const t="44'/195'/0'/0/0",i=Uint8Array.from([10,1,0]),o=f.EMPTY_TRON_ADDRESS_BOOK;it("should return the signature",()=>new Promise((r,s)=>{const a=new Uint8Array(65).fill(171);vi.spyOn(e,"executeDeviceAction").mockReturnValue({observable:(0,D.from)([{status:n.DeviceActionStatus.Completed,output:a}]),cancel:vi.fn()});const d=new p.TronAppBinder(e,"sessionId",u,c,o),{observable:l}=d.signTransaction({derivationPath:t,transaction:i}),A=[];l.subscribe({next:v=>A.push(v),error:s,complete:()=>{try{expect(A).toEqual([{status:n.DeviceActionStatus.Completed,output:a}]),r()}catch(v){s(v)}}})})),describe("calls executeDeviceAction with the correct params",()=>{const r=()=>{const s=vi.mocked(e.executeDeviceAction).mock.calls[0][0];return expect(s.sessionId).toBe("sessionId"),expect(s.deviceAction).toBeInstanceOf(C.SignTransactionDeviceAction),s.deviceAction};it("passes the transaction and the context module resolving its tokens",()=>{new p.TronAppBinder(e,"sessionId",u,c,o).signTransaction({derivationPath:t,transaction:i,skipOpenApp:!0});const a=r();expect(a.input.derivationPath).toBe(t),expect(a.input.transaction).toBe(i),expect(a.input.contextModule).toBe(c),expect(a.input.addressBook).toBe(o),expect(a.input.skipOpenApp).toBe(!0)}),it("defaults skipOpenApp to false",()=>{new p.TronAppBinder(e,"sessionId",u,c).signTransaction({derivationPath:t,transaction:i}),expect(r().input.skipOpenApp).toBe(!1)})})}),describe("signTransactionHash",()=>{const t="44'/195'/0'/0/0",i=new Uint8Array(32).fill(37);it("should return the signature",()=>new Promise((o,r)=>{const s=new Uint8Array(65).fill(171);vi.spyOn(e,"executeDeviceAction").mockReturnValue({observable:(0,D.from)([{status:n.DeviceActionStatus.Completed,output:s}]),cancel:vi.fn()});const a=new p.TronAppBinder(e,"sessionId",u,c),{observable:d}=a.signTransactionHash({derivationPath:t,transactionHash:i}),l=[];d.subscribe({next:A=>l.push(A),error:r,complete:()=>{try{expect(l).toEqual([{status:n.DeviceActionStatus.Completed,output:s}]),o()}catch(A){r(A)}}})})),describe("calls executeDeviceAction with the correct params",()=>{it("requires the SignTransaction interaction",()=>{new p.TronAppBinder(e,"sessionId",u,c).signTransactionHash({derivationPath:t,transactionHash:i,skipOpenApp:!0}),expect(e.executeDeviceAction).toHaveBeenCalledWith(expect.objectContaining({sessionId:"sessionId",deviceAction:new n.SendCommandInAppDeviceAction({input:{command:new x.SignTransactionHashCommand({derivationPath:t,transactionHash:i}),appName:m.APP_NAME,requiredUserInteraction:n.UserInteractionRequired.SignTransaction,skipOpenApp:!0},logger:g})}))}),it("defaults skipOpenApp to false",()=>{new p.TronAppBinder(e,"sessionId",u,c).signTransactionHash({derivationPath:t,transactionHash:i}),expect(e.executeDeviceAction).toHaveBeenCalledWith(expect.objectContaining({deviceAction:new n.SendCommandInAppDeviceAction({input:{command:new x.SignTransactionHashCommand({derivationPath:t,transactionHash:i}),appName:m.APP_NAME,requiredUserInteraction:n.UserInteractionRequired.SignTransaction,skipOpenApp:!1},logger:g})}))})})}),describe("signPersonalMessage",()=>{const t="44'/195'/0'/0/0",i=Uint8Array.from([104,101,108,108,111]);it("should return the signature",()=>new Promise((o,r)=>{const s=new Uint8Array(65).fill(171);vi.spyOn(e,"executeDeviceAction").mockReturnValue({observable:(0,D.from)([{status:n.DeviceActionStatus.Completed,output:s}]),cancel:vi.fn()});const a=new p.TronAppBinder(e,"sessionId",u,c),{observable:d}=a.signPersonalMessage({derivationPath:t,message:i}),l=[];d.subscribe({next:A=>l.push(A),error:r,complete:()=>{try{expect(l).toEqual([{status:n.DeviceActionStatus.Completed,output:s}]),o()}catch(A){r(A)}}})})),describe("calls executeDeviceAction with the correct params",()=>{const o=()=>{const r=vi.mocked(e.executeDeviceAction).mock.calls[0][0];return expect(r.sessionId).toBe("sessionId"),expect(r.deviceAction).toBeInstanceOf(n.CallTaskInAppDeviceAction),r.deviceAction};it("requires the SignPersonalMessage interaction",()=>{new p.TronAppBinder(e,"sessionId",u,c).signPersonalMessage({derivationPath:t,message:i,skipOpenApp:!0});const s=o();expect(s.input.appName).toBe(m.APP_NAME),expect(s.input.requiredUserInteraction).toBe(n.UserInteractionRequired.SignPersonalMessage),expect(s.input.skipOpenApp).toBe(!0)}),it("defaults skipOpenApp to false",()=>{new p.TronAppBinder(e,"sessionId",u,c).signPersonalMessage({derivationPath:t,message:i}),expect(o().input.skipOpenApp).toBe(!1)})})}),describe("getAppConfiguration",()=>{it("should return the app configuration",()=>new Promise((t,i)=>{const o={version:"0.5.0",versionN:500,allowData:!0,allowContract:!0,truncateAddress:!0,signByHash:!0};vi.spyOn(e,"executeDeviceAction").mockReturnValue({observable:(0,D.from)([{status:n.DeviceActionStatus.Completed,output:o}]),cancel:vi.fn()});const r=new p.TronAppBinder(e,"sessionId",u,c),{observable:s}=r.getAppConfiguration(),a=[];s.subscribe({next:d=>a.push(d),error:i,complete:()=>{try{expect(a).toEqual([{status:n.DeviceActionStatus.Completed,output:o}]),t()}catch(d){i(d)}}})})),it("should call executeDeviceAction with the correct params",()=>{new p.TronAppBinder(e,"sessionId",u,c).getAppConfiguration(),expect(e.executeDeviceAction).toHaveBeenCalledWith(expect.objectContaining({sessionId:"sessionId",deviceAction:new n.SendCommandInAppDeviceAction({input:{command:new S.GetAppConfigurationCommand,appName:m.APP_NAME,requiredUserInteraction:n.UserInteractionRequired.None,skipOpenApp:!1},logger:g})}))})}),describe("getECDHSecret",()=>{const t="44'/195'/0'/0/0",i=new Uint8Array(65).fill(4);it("should return the shared secret",()=>new Promise((o,r)=>{const s=new Uint8Array(65).fill(205);vi.spyOn(e,"executeDeviceAction").mockReturnValue({observable:(0,D.from)([{status:n.DeviceActionStatus.Completed,output:s}]),cancel:vi.fn()});const a=new p.TronAppBinder(e,"sessionId",u,c),{observable:d}=a.getECDHSecret({derivationPath:t,publicKey:i}),l=[];d.subscribe({next:A=>l.push(A),error:r,complete:()=>{try{expect(l).toEqual([{status:n.DeviceActionStatus.Completed,output:s}]),o()}catch(A){r(A)}}})})),describe("calls executeDeviceAction with the correct params",()=>{it("requires the SignTransaction interaction",()=>{new p.TronAppBinder(e,"sessionId",u,c).getECDHSecret({derivationPath:t,publicKey:i,skipOpenApp:!0}),expect(e.executeDeviceAction).toHaveBeenCalledWith(expect.objectContaining({sessionId:"sessionId",deviceAction:new n.SendCommandInAppDeviceAction({input:{command:new h.GetECDHSecretCommand({derivationPath:t,publicKey:i}),appName:m.APP_NAME,requiredUserInteraction:n.UserInteractionRequired.SignTransaction,skipOpenApp:!0},logger:g})}))}),it("defaults skipOpenApp to false",()=>{new p.TronAppBinder(e,"sessionId",u,c).getECDHSecret({derivationPath:t,publicKey:i}),expect(e.executeDeviceAction).toHaveBeenCalledWith(expect.objectContaining({deviceAction:new n.SendCommandInAppDeviceAction({input:{command:new h.GetECDHSecretCommand({derivationPath:t,publicKey:i}),appName:m.APP_NAME,requiredUserInteraction:n.UserInteractionRequired.SignTransaction,skipOpenApp:!1},logger:g})}))})})})});
2
2
  //# sourceMappingURL=TronAppBinder.test.js.map