@ledgerhq/device-signer-kit-hyperliquid 0.0.0-develop-20260312001221 → 0.0.0-develop-20260314001417

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 (167) hide show
  1. package/lib/cjs/api/SignerHyperliquid.js +1 -1
  2. package/lib/cjs/api/SignerHyperliquid.js.map +1 -1
  3. package/lib/cjs/api/app-binder/SignActionsDeviceActionTypes.js +1 -1
  4. package/lib/cjs/api/app-binder/SignActionsDeviceActionTypes.js.map +3 -3
  5. package/lib/cjs/api/index.js +1 -1
  6. package/lib/cjs/api/index.js.map +3 -3
  7. package/lib/cjs/api/model/Signature.js.map +1 -1
  8. package/lib/cjs/internal/DefaultSignerHyperliquid.js +1 -1
  9. package/lib/cjs/internal/DefaultSignerHyperliquid.js.map +3 -3
  10. package/lib/cjs/internal/app-binder/HyperliquidAppBinder.js +1 -1
  11. package/lib/cjs/internal/app-binder/HyperliquidAppBinder.js.map +3 -3
  12. package/lib/cjs/internal/app-binder/command/SendActionCommand.js +2 -0
  13. package/lib/cjs/internal/app-binder/command/SendActionCommand.js.map +7 -0
  14. package/lib/cjs/internal/app-binder/command/SendActionCommand.test.js +2 -0
  15. package/lib/cjs/internal/app-binder/command/SendActionCommand.test.js.map +7 -0
  16. package/lib/cjs/internal/app-binder/command/SendMetadataCommand.js +2 -0
  17. package/lib/cjs/internal/app-binder/command/SendMetadataCommand.js.map +7 -0
  18. package/lib/cjs/internal/app-binder/command/SendMetadataCommand.test.js +2 -0
  19. package/lib/cjs/internal/app-binder/command/SendMetadataCommand.test.js.map +7 -0
  20. package/lib/cjs/internal/app-binder/command/SignActionsCommand.js +2 -0
  21. package/lib/cjs/internal/app-binder/command/SignActionsCommand.js.map +7 -0
  22. package/lib/cjs/internal/app-binder/command/SignActionsCommand.test.js +2 -0
  23. package/lib/cjs/internal/app-binder/command/SignActionsCommand.test.js.map +7 -0
  24. package/lib/cjs/internal/app-binder/command/utils/hyperliquidApplicationErrors.js +1 -1
  25. package/lib/cjs/internal/app-binder/command/utils/hyperliquidApplicationErrors.js.map +3 -3
  26. package/lib/cjs/internal/app-binder/device-action/SignActions/SignActionsDeviceAction.js +1 -1
  27. package/lib/cjs/internal/app-binder/device-action/SignActions/SignActionsDeviceAction.js.map +4 -4
  28. package/lib/cjs/internal/app-binder/device-action/SignActions/SignActionsDeviceAction.test.js +2 -0
  29. package/lib/cjs/internal/app-binder/device-action/SignActions/SignActionsDeviceAction.test.js.map +7 -0
  30. package/lib/cjs/internal/app-binder/device-action/__test-utils__/makeInternalApi.js +2 -0
  31. package/lib/cjs/internal/app-binder/device-action/__test-utils__/makeInternalApi.js.map +7 -0
  32. package/lib/cjs/internal/app-binder/device-action/__test-utils__/setupOpenAppDAMock.js +2 -0
  33. package/lib/cjs/internal/app-binder/device-action/__test-utils__/setupOpenAppDAMock.js.map +7 -0
  34. package/lib/cjs/internal/app-binder/device-action/__test-utils__/testDeviceActionStates.js +2 -0
  35. package/lib/cjs/internal/app-binder/device-action/__test-utils__/testDeviceActionStates.js.map +7 -0
  36. package/lib/cjs/internal/app-binder/di/appBinderTypes.js +1 -1
  37. package/lib/cjs/internal/app-binder/di/appBinderTypes.js.map +2 -2
  38. package/lib/cjs/internal/app-binder/task/SendActionsTask.js +2 -0
  39. package/lib/cjs/internal/app-binder/task/SendActionsTask.js.map +7 -0
  40. package/lib/cjs/internal/app-binder/task/SendActionsTask.test.js +2 -0
  41. package/lib/cjs/internal/app-binder/task/SendActionsTask.test.js.map +7 -0
  42. package/lib/cjs/internal/app-binder/task/SignActionsTask.js +1 -1
  43. package/lib/cjs/internal/app-binder/task/SignActionsTask.js.map +3 -3
  44. package/lib/cjs/internal/app-binder/task/SignActionsTask.test.js +2 -0
  45. package/lib/cjs/internal/app-binder/task/SignActionsTask.test.js.map +7 -0
  46. package/lib/cjs/internal/app-binder/utils/actionTlvSerializer.js +2 -0
  47. package/lib/cjs/internal/app-binder/utils/actionTlvSerializer.js.map +7 -0
  48. package/lib/cjs/internal/app-binder/utils/actionTlvSerializer.test.js +2 -0
  49. package/lib/cjs/internal/app-binder/utils/actionTlvSerializer.test.js.map +7 -0
  50. package/lib/cjs/internal/use-cases/actions/SignActionsUseCase.js +1 -1
  51. package/lib/cjs/internal/use-cases/actions/SignActionsUseCase.js.map +3 -3
  52. package/lib/cjs/package.json +3 -1
  53. package/lib/esm/api/app-binder/SignActionsDeviceActionTypes.js +1 -0
  54. package/lib/esm/api/app-binder/SignActionsDeviceActionTypes.js.map +4 -4
  55. package/lib/esm/api/index.js +1 -1
  56. package/lib/esm/api/index.js.map +3 -3
  57. package/lib/esm/internal/DefaultSignerHyperliquid.js +1 -1
  58. package/lib/esm/internal/DefaultSignerHyperliquid.js.map +3 -3
  59. package/lib/esm/internal/app-binder/HyperliquidAppBinder.js +1 -1
  60. package/lib/esm/internal/app-binder/HyperliquidAppBinder.js.map +3 -3
  61. package/lib/esm/internal/app-binder/command/SendActionCommand.js +2 -0
  62. package/lib/esm/internal/app-binder/command/SendActionCommand.js.map +7 -0
  63. package/lib/esm/internal/app-binder/command/SendActionCommand.test.js +2 -0
  64. package/lib/esm/internal/app-binder/command/SendActionCommand.test.js.map +7 -0
  65. package/lib/esm/internal/app-binder/command/SendMetadataCommand.js +2 -0
  66. package/lib/esm/internal/app-binder/command/SendMetadataCommand.js.map +7 -0
  67. package/lib/esm/internal/app-binder/command/SendMetadataCommand.test.js +2 -0
  68. package/lib/esm/internal/app-binder/command/SendMetadataCommand.test.js.map +7 -0
  69. package/lib/esm/internal/app-binder/command/SignActionsCommand.js +2 -0
  70. package/lib/esm/internal/app-binder/command/SignActionsCommand.js.map +7 -0
  71. package/lib/esm/internal/app-binder/command/SignActionsCommand.test.js +2 -0
  72. package/lib/esm/internal/app-binder/command/SignActionsCommand.test.js.map +7 -0
  73. package/lib/esm/internal/app-binder/command/utils/hyperliquidApplicationErrors.js +1 -1
  74. package/lib/esm/internal/app-binder/command/utils/hyperliquidApplicationErrors.js.map +3 -3
  75. package/lib/esm/internal/app-binder/device-action/SignActions/SignActionsDeviceAction.js +1 -0
  76. package/lib/esm/internal/app-binder/device-action/SignActions/SignActionsDeviceAction.js.map +4 -4
  77. package/lib/esm/internal/app-binder/device-action/SignActions/SignActionsDeviceAction.test.js +2 -0
  78. package/lib/esm/internal/app-binder/device-action/SignActions/SignActionsDeviceAction.test.js.map +7 -0
  79. package/lib/esm/internal/app-binder/device-action/__test-utils__/makeInternalApi.js +2 -0
  80. package/lib/esm/internal/app-binder/device-action/__test-utils__/makeInternalApi.js.map +7 -0
  81. package/lib/esm/internal/app-binder/device-action/__test-utils__/setupOpenAppDAMock.js +2 -0
  82. package/lib/esm/internal/app-binder/device-action/__test-utils__/setupOpenAppDAMock.js.map +7 -0
  83. package/lib/esm/internal/app-binder/device-action/__test-utils__/testDeviceActionStates.js +2 -0
  84. package/lib/esm/internal/app-binder/device-action/__test-utils__/testDeviceActionStates.js.map +7 -0
  85. package/lib/esm/internal/app-binder/di/appBinderTypes.js +1 -1
  86. package/lib/esm/internal/app-binder/di/appBinderTypes.js.map +2 -2
  87. package/lib/esm/internal/app-binder/task/SendActionsTask.js +2 -0
  88. package/lib/esm/internal/app-binder/task/SendActionsTask.js.map +7 -0
  89. package/lib/esm/internal/app-binder/task/SendActionsTask.test.js +2 -0
  90. package/lib/esm/internal/app-binder/task/SendActionsTask.test.js.map +7 -0
  91. package/lib/esm/internal/app-binder/task/SignActionsTask.js +1 -1
  92. package/lib/esm/internal/app-binder/task/SignActionsTask.js.map +3 -3
  93. package/lib/esm/internal/app-binder/task/SignActionsTask.test.js +2 -0
  94. package/lib/esm/internal/app-binder/task/SignActionsTask.test.js.map +7 -0
  95. package/lib/esm/internal/app-binder/utils/actionTlvSerializer.js +2 -0
  96. package/lib/esm/internal/app-binder/utils/actionTlvSerializer.js.map +7 -0
  97. package/lib/esm/internal/app-binder/utils/actionTlvSerializer.test.js +2 -0
  98. package/lib/esm/internal/app-binder/utils/actionTlvSerializer.test.js.map +7 -0
  99. package/lib/esm/internal/use-cases/actions/SignActionsUseCase.js +1 -1
  100. package/lib/esm/internal/use-cases/actions/SignActionsUseCase.js.map +3 -3
  101. package/lib/esm/package.json +3 -1
  102. package/lib/types/api/SignerHyperliquid.d.ts +2 -3
  103. package/lib/types/api/SignerHyperliquid.d.ts.map +1 -1
  104. package/lib/types/api/app-binder/SignActionsDeviceActionTypes.d.ts +28 -3
  105. package/lib/types/api/app-binder/SignActionsDeviceActionTypes.d.ts.map +1 -1
  106. package/lib/types/api/index.d.ts +3 -1
  107. package/lib/types/api/index.d.ts.map +1 -1
  108. package/lib/types/api/model/Signature.d.ts +1 -1
  109. package/lib/types/api/model/Signature.d.ts.map +1 -1
  110. package/lib/types/internal/DefaultSignerHyperliquid.d.ts +1 -2
  111. package/lib/types/internal/DefaultSignerHyperliquid.d.ts.map +1 -1
  112. package/lib/types/internal/app-binder/HyperliquidAppBinder.d.ts +5 -2
  113. package/lib/types/internal/app-binder/HyperliquidAppBinder.d.ts.map +1 -1
  114. package/lib/types/internal/app-binder/command/SendActionCommand.d.ts +16 -0
  115. package/lib/types/internal/app-binder/command/SendActionCommand.d.ts.map +1 -0
  116. package/lib/types/internal/app-binder/command/SendActionCommand.test.d.ts +2 -0
  117. package/lib/types/internal/app-binder/command/SendActionCommand.test.d.ts.map +1 -0
  118. package/lib/types/internal/app-binder/command/SendMetadataCommand.d.ts +14 -0
  119. package/lib/types/internal/app-binder/command/SendMetadataCommand.d.ts.map +1 -0
  120. package/lib/types/internal/app-binder/command/SendMetadataCommand.test.d.ts +2 -0
  121. package/lib/types/internal/app-binder/command/SendMetadataCommand.test.d.ts.map +1 -0
  122. package/lib/types/internal/app-binder/command/SignActionsCommand.d.ts +22 -0
  123. package/lib/types/internal/app-binder/command/SignActionsCommand.d.ts.map +1 -0
  124. package/lib/types/internal/app-binder/command/SignActionsCommand.test.d.ts +2 -0
  125. package/lib/types/internal/app-binder/command/SignActionsCommand.test.d.ts.map +1 -0
  126. package/lib/types/internal/app-binder/command/utils/hyperliquidApplicationErrors.d.ts +8 -2
  127. package/lib/types/internal/app-binder/command/utils/hyperliquidApplicationErrors.d.ts.map +1 -1
  128. package/lib/types/internal/app-binder/device-action/SignActions/SignActionsDeviceAction.d.ts +16 -0
  129. package/lib/types/internal/app-binder/device-action/SignActions/SignActionsDeviceAction.d.ts.map +1 -1
  130. package/lib/types/internal/app-binder/device-action/SignActions/SignActionsDeviceAction.test.d.ts +2 -0
  131. package/lib/types/internal/app-binder/device-action/SignActions/SignActionsDeviceAction.test.d.ts.map +1 -0
  132. package/lib/types/internal/app-binder/device-action/__test-utils__/makeInternalApi.d.ts +4 -0
  133. package/lib/types/internal/app-binder/device-action/__test-utils__/makeInternalApi.d.ts.map +1 -0
  134. package/lib/types/internal/app-binder/device-action/__test-utils__/setupOpenAppDAMock.d.ts +2 -0
  135. package/lib/types/internal/app-binder/device-action/__test-utils__/setupOpenAppDAMock.d.ts.map +1 -0
  136. package/lib/types/internal/app-binder/device-action/__test-utils__/testDeviceActionStates.d.ts +15 -0
  137. package/lib/types/internal/app-binder/device-action/__test-utils__/testDeviceActionStates.d.ts.map +1 -0
  138. package/lib/types/internal/app-binder/di/appBinderTypes.d.ts +75 -0
  139. package/lib/types/internal/app-binder/di/appBinderTypes.d.ts.map +1 -1
  140. package/lib/types/internal/app-binder/task/SendActionsTask.d.ts +17 -0
  141. package/lib/types/internal/app-binder/task/SendActionsTask.d.ts.map +1 -0
  142. package/lib/types/internal/app-binder/task/SendActionsTask.test.d.ts +2 -0
  143. package/lib/types/internal/app-binder/task/SendActionsTask.test.d.ts.map +1 -0
  144. package/lib/types/internal/app-binder/task/SignActionsTask.d.ts +3 -4
  145. package/lib/types/internal/app-binder/task/SignActionsTask.d.ts.map +1 -1
  146. package/lib/types/internal/app-binder/task/SignActionsTask.test.d.ts +2 -0
  147. package/lib/types/internal/app-binder/task/SignActionsTask.test.d.ts.map +1 -0
  148. package/lib/types/internal/app-binder/utils/actionTlvSerializer.d.ts +59 -0
  149. package/lib/types/internal/app-binder/utils/actionTlvSerializer.d.ts.map +1 -0
  150. package/lib/types/internal/app-binder/utils/actionTlvSerializer.test.d.ts +2 -0
  151. package/lib/types/internal/app-binder/utils/actionTlvSerializer.test.d.ts.map +1 -0
  152. package/lib/types/internal/use-cases/actions/SignActionsUseCase.d.ts +3 -2
  153. package/lib/types/internal/use-cases/actions/SignActionsUseCase.d.ts.map +1 -1
  154. package/lib/types/tsconfig.prod.tsbuildinfo +1 -1
  155. package/package.json +8 -6
  156. package/lib/cjs/internal/app-binder/command/SignActionCommand.js +0 -2
  157. package/lib/cjs/internal/app-binder/command/SignActionCommand.js.map +0 -7
  158. package/lib/cjs/internal/app-binder/command/SignActionCommand.test.js +0 -2
  159. package/lib/cjs/internal/app-binder/command/SignActionCommand.test.js.map +0 -7
  160. package/lib/esm/internal/app-binder/command/SignActionCommand.js +0 -2
  161. package/lib/esm/internal/app-binder/command/SignActionCommand.js.map +0 -7
  162. package/lib/esm/internal/app-binder/command/SignActionCommand.test.js +0 -2
  163. package/lib/esm/internal/app-binder/command/SignActionCommand.test.js.map +0 -7
  164. package/lib/types/internal/app-binder/command/SignActionCommand.d.ts +0 -21
  165. package/lib/types/internal/app-binder/command/SignActionCommand.d.ts.map +0 -1
  166. package/lib/types/internal/app-binder/command/SignActionCommand.test.d.ts +0 -2
  167. package/lib/types/internal/app-binder/command/SignActionCommand.test.d.ts.map +0 -1
@@ -1,2 +1,2 @@
1
- "use strict";var r=Object.defineProperty;var p=Object.getOwnPropertyDescriptor;var s=Object.getOwnPropertyNames;var A=Object.prototype.hasOwnProperty;var c=(t,i,e,o)=>{if(i&&typeof i=="object"||typeof i=="function")for(let n of s(i))!A.call(t,n)&&n!==e&&r(t,n,{get:()=>i[n],enumerable:!(o=p(i,n))||o.enumerable});return t};var a=t=>c(r({},"__esModule",{value:!0}),t);var y={};module.exports=a(y);
1
+ "use strict";var p=Object.defineProperty;var A=Object.getOwnPropertyDescriptor;var o=Object.getOwnPropertyNames;var s=Object.prototype.hasOwnProperty;var c=(i,n,r,e)=>{if(n&&typeof n=="object"||typeof n=="function")for(let t of o(n))!s.call(i,t)&&t!==r&&p(i,t,{get:()=>n[t],enumerable:!(e=A(n,t))||e.enumerable});return i};var g=i=>c(p({},"__esModule",{value:!0}),i);var u={};module.exports=g(u);
2
2
  //# sourceMappingURL=SignerHyperliquid.js.map
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "version": 3,
3
3
  "sources": ["../../../src/api/SignerHyperliquid.ts"],
4
- "sourcesContent": ["import { type SignActionsDAReturnType } from \"@api/app-binder/SignActionsDeviceActionTypes\";\nimport { type ActionsOptions } from \"@api/model/ActionsOptions\";\n\nexport interface SignerHyperliquid {\n signActions: (\n derivationPath: string,\n transaction: Uint8Array,\n options?: ActionsOptions,\n ) => SignActionsDAReturnType;\n}\n"],
4
+ "sourcesContent": ["import {\n type SignActionsDAInput,\n type SignActionsDAReturnType,\n} from \"@api/app-binder/SignActionsDeviceActionTypes\";\n\nexport interface SignerHyperliquid {\n signActions: (params: SignActionsDAInput) => SignActionsDAReturnType;\n}\n"],
5
5
  "mappings": "+WAAA,IAAAA,EAAA,kBAAAC,EAAAD",
6
6
  "names": ["SignerHyperliquid_exports", "__toCommonJS"]
7
7
  }
@@ -1,2 +1,2 @@
1
- "use strict";var i=Object.defineProperty;var p=Object.getOwnPropertyDescriptor;var A=Object.getOwnPropertyNames;var u=Object.prototype.hasOwnProperty;var c=(r,e,o,n)=>{if(e&&typeof e=="object"||typeof e=="function")for(let t of A(e))!u.call(r,t)&&t!==o&&i(r,t,{get:()=>e[t],enumerable:!(n=p(e,t))||n.enumerable});return r};var a=r=>c(i({},"__esModule",{value:!0}),r);var s={};module.exports=a(s);
1
+ "use strict";var i=Object.defineProperty;var p=Object.getOwnPropertyDescriptor;var A=Object.getOwnPropertyNames;var s=Object.prototype.hasOwnProperty;var a=(t,e)=>{for(var r in e)i(t,r,{get:e[r],enumerable:!0})},c=(t,e,r,o)=>{if(e&&typeof e=="object"||typeof e=="function")for(let n of A(e))!s.call(t,n)&&n!==r&&i(t,n,{get:()=>e[n],enumerable:!(o=p(e,n))||o.enumerable});return t};var S=t=>c(i({},"__esModule",{value:!0}),t);var y={};a(y,{signActionsDAStateSteps:()=>d});module.exports=S(y);const d=Object.freeze({OPEN_APP:"signer.hl.steps.openApp",SET_CERTIFICATE:"signer.hl.steps.setCertificate",SEND_METADATA:"signer.hl.steps.sendMetadata",SEND_ACTION:"signer.hl.steps.sendAction",SIGN_ACTIONS:"signer.hl.steps.signActions"});0&&(module.exports={signActionsDAStateSteps});
2
2
  //# sourceMappingURL=SignActionsDeviceActionTypes.js.map
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "version": 3,
3
3
  "sources": ["../../../../src/api/app-binder/SignActionsDeviceActionTypes.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 HyperliquidErrorCodes } from \"@internal/app-binder/command/utils/hyperliquidApplicationErrors\";\n\nexport type SignActionsDAOutput = Signature;\n\nexport type SignActionsDAError =\n | OpenAppDAError\n | CommandErrorResult<HyperliquidErrorCodes>[\"error\"];\n\ntype SignActionsDARequiredInteraction =\n | OpenAppDARequiredInteraction\n | UserInteractionRequired.SignTransaction;\n\nexport type SignActionsDAIntermediateValue = {\n requiredUserInteraction: SignActionsDARequiredInteraction;\n};\n\nexport type SignActionsDAReturnType = ExecuteDeviceActionReturnType<\n SignActionsDAOutput,\n SignActionsDAError,\n SignActionsDAIntermediateValue\n>;\n"],
5
- "mappings": "+WAAA,IAAAA,EAAA,kBAAAC,EAAAD",
6
- "names": ["SignActionsDeviceActionTypes_exports", "__toCommonJS"]
4
+ "sourcesContent": ["import {\n type CommandErrorResult,\n type DeviceActionState,\n type ExecuteDeviceActionReturnType,\n type LoadCertificateErrorCodes,\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 HyperliquidErrorCodes } from \"@internal/app-binder/command/utils/hyperliquidApplicationErrors\";\nimport type { HyperliquidAction } from \"@internal/app-binder/di/appBinderTypes\";\n\nexport const signActionsDAStateSteps = Object.freeze({\n OPEN_APP: \"signer.hl.steps.openApp\",\n SET_CERTIFICATE: \"signer.hl.steps.setCertificate\",\n SEND_METADATA: \"signer.hl.steps.sendMetadata\",\n SEND_ACTION: \"signer.hl.steps.sendAction\",\n SIGN_ACTIONS: \"signer.hl.steps.signActions\",\n} as const);\n\nexport type SignActionsDAStateStep =\n (typeof signActionsDAStateSteps)[keyof typeof signActionsDAStateSteps];\n\nexport type SignActionsDAOutput = Signature[];\n\n/** One action to sign (TLV format per specs \"Set action to sign\") */\nexport type SignActionsActionItem = HyperliquidAction;\n\nexport type SignActionsDAInput = {\n readonly derivationPath: string;\n readonly certificate: Uint8Array;\n readonly signedMetadata: Uint8Array;\n readonly actions: SignActionsActionItem[];\n readonly skipOpenApp?: boolean;\n};\n\nexport type SignActionsDAError =\n | OpenAppDAError\n | CommandErrorResult<HyperliquidErrorCodes>[\"error\"]\n | CommandErrorResult<LoadCertificateErrorCodes>[\"error\"];\n\ntype SignActionsDARequiredInteraction =\n | OpenAppDARequiredInteraction\n | UserInteractionRequired.SignTransaction;\n\nexport type SignActionsDAIntermediateValue = {\n requiredUserInteraction: SignActionsDARequiredInteraction;\n step: SignActionsDAStateStep;\n};\n\nexport type SignActionsDAState = DeviceActionState<\n SignActionsDAOutput,\n SignActionsDAError,\n SignActionsDAIntermediateValue\n>;\n\nexport type SignActionsDAInternalState = {\n readonly error: SignActionsDAError | null;\n readonly signature: SignActionsDAOutput | null;\n readonly actionIndex: number;\n};\n\nexport type SignActionsDAReturnType = ExecuteDeviceActionReturnType<\n SignActionsDAOutput,\n SignActionsDAError,\n SignActionsDAIntermediateValue\n>;\n"],
5
+ "mappings": "yaAAA,IAAAA,EAAA,GAAAC,EAAAD,EAAA,6BAAAE,IAAA,eAAAC,EAAAH,GAcO,MAAME,EAA0B,OAAO,OAAO,CACnD,SAAU,0BACV,gBAAiB,iCACjB,cAAe,+BACf,YAAa,6BACb,aAAc,6BAChB,CAAU",
6
+ "names": ["SignActionsDeviceActionTypes_exports", "__export", "signActionsDAStateSteps", "__toCommonJS"]
7
7
  }
@@ -1,2 +1,2 @@
1
- "use strict";var c=Object.defineProperty;var s=Object.getOwnPropertyDescriptor;var g=Object.getOwnPropertyNames;var m=Object.prototype.hasOwnProperty;var p=(o,t,r,A)=>{if(t&&typeof t=="object"||typeof t=="function")for(let n of g(t))!m.call(o,n)&&n!==r&&c(o,n,{get:()=>t[n],enumerable:!(A=s(t,n))||A.enumerable});return o},i=(o,t,r)=>(p(o,t,"default"),r&&p(r,t,"default"));var D=o=>p(c({},"__esModule",{value:!0}),o);var e={};module.exports=D(e);i(e,require("./SignerHyperliquid"),module.exports);i(e,require("./SignerHyperliquidBuilder"),module.exports);0&&(module.exports={...require("./SignerHyperliquid"),...require("./SignerHyperliquidBuilder")});
1
+ "use strict";var r=Object.defineProperty;var c=Object.getOwnPropertyDescriptor;var g=Object.getOwnPropertyNames;var y=Object.prototype.hasOwnProperty;var D=(o,n)=>{for(var i in n)r(o,i,{get:n[i],enumerable:!0})},A=(o,n,i,S)=>{if(n&&typeof n=="object"||typeof n=="function")for(let p of g(n))!y.call(o,p)&&p!==i&&r(o,p,{get:()=>n[p],enumerable:!(S=c(n,p))||S.enumerable});return o},e=(o,n,i)=>(A(o,n,"default"),i&&A(i,n,"default"));var m=o=>A(r({},"__esModule",{value:!0}),o);var t={};D(t,{signActionsDAStateSteps:()=>s.signActionsDAStateSteps});module.exports=m(t);var s=require("./app-binder/SignActionsDeviceActionTypes");e(t,require("./model/ActionsOptions"),module.exports);e(t,require("./model/Signature"),module.exports);e(t,require("./SignerHyperliquid"),module.exports);e(t,require("./SignerHyperliquidBuilder"),module.exports);0&&(module.exports={signActionsDAStateSteps,...require("./model/ActionsOptions"),...require("./model/Signature"),...require("./SignerHyperliquid"),...require("./SignerHyperliquidBuilder")});
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 type {\n SignActionsDAError,\n SignActionsDAIntermediateValue,\n SignActionsDAOutput,\n} from \"./app-binder/SignActionsDeviceActionTypes\";\nexport * from \"@api/SignerHyperliquid\";\nexport * from \"@api/SignerHyperliquidBuilder\";\n"],
5
- "mappings": "iaAAA,IAAAA,EAAA,kBAAAC,EAAAD,GAKAE,EAAAF,EAAc,kCALd,gBAMAE,EAAAF,EAAc,yCANd",
6
- "names": ["api_exports", "__toCommonJS", "__reExport"]
4
+ "sourcesContent": ["export {\n type SignActionsDAError,\n type SignActionsDAInput,\n type SignActionsDAIntermediateValue,\n type SignActionsDAOutput,\n type SignActionsDAReturnType,\n type SignActionsDAState,\n type SignActionsDAStateStep,\n signActionsDAStateSteps,\n} from \"./app-binder/SignActionsDeviceActionTypes\";\nexport * from \"@api/model/ActionsOptions\";\nexport * from \"@api/model/Signature\";\nexport * from \"@api/SignerHyperliquid\";\nexport * from \"@api/SignerHyperliquidBuilder\";\n"],
5
+ "mappings": "2dAAA,IAAAA,EAAA,GAAAC,EAAAD,EAAA,wEAAAE,EAAAF,GAAA,IAAAG,EASO,qDACPC,EAAAJ,EAAc,qCAVd,gBAWAI,EAAAJ,EAAc,gCAXd,gBAYAI,EAAAJ,EAAc,kCAZd,gBAaAI,EAAAJ,EAAc,yCAbd",
6
+ "names": ["api_exports", "__export", "__toCommonJS", "import_SignActionsDeviceActionTypes", "__reExport"]
7
7
  }
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "version": 3,
3
3
  "sources": ["../../../../src/api/model/Signature.ts"],
4
- "sourcesContent": ["export type Signature = {\n r: string;\n s: string;\n v?: number;\n // Adjust based on your blockchain's signature format\n};\n"],
4
+ "sourcesContent": ["export type Signature = {\n r: string;\n s: string;\n v: number;\n};\n"],
5
5
  "mappings": "+WAAA,IAAAA,EAAA,kBAAAC,EAAAD",
6
6
  "names": ["Signature_exports", "__toCommonJS"]
7
7
  }
@@ -1,2 +1,2 @@
1
- "use strict";var o=Object.defineProperty;var a=Object.getOwnPropertyDescriptor;var c=Object.getOwnPropertyNames;var m=Object.prototype.hasOwnProperty;var y=(i,e)=>{for(var t in e)o(i,t,{get:e[t],enumerable:!0})},g=(i,e,t,r)=>{if(e&&typeof e=="object"||typeof e=="function")for(let n of c(e))!m.call(i,n)&&n!==t&&o(i,n,{get:()=>e[n],enumerable:!(r=a(e,n))||r.enumerable});return i};var u=i=>g(o({},"__esModule",{value:!0}),i);var S={};y(S,{DefaultSignerHyperliquid:()=>A});module.exports=u(S);var s=require("./di"),p=require("./use-cases/actions/di/actionsTypes");class A{_container;constructor({dmk:e,sessionId:t}){this._container=(0,s.makeContainer)({dmk:e,sessionId:t})}signActions(e,t,r){return this._container.get(p.actionsTypes.SignActionsUseCase).execute(e,t,r)}}0&&(module.exports={DefaultSignerHyperliquid});
1
+ "use strict";var n=Object.defineProperty;var a=Object.getOwnPropertyDescriptor;var c=Object.getOwnPropertyNames;var m=Object.prototype.hasOwnProperty;var g=(i,e)=>{for(var t in e)n(i,t,{get:e[t],enumerable:!0})},y=(i,e,t,o)=>{if(e&&typeof e=="object"||typeof e=="function")for(let r of c(e))!m.call(i,r)&&r!==t&&n(i,r,{get:()=>e[r],enumerable:!(o=a(e,r))||o.enumerable});return i};var u=i=>y(n({},"__esModule",{value:!0}),i);var l={};g(l,{DefaultSignerHyperliquid:()=>S});module.exports=u(l);var s=require("./di"),p=require("./use-cases/actions/di/actionsTypes");class S{_container;constructor({dmk:e,sessionId:t}){this._container=(0,s.makeContainer)({dmk:e,sessionId:t})}signActions(e){return this._container.get(p.actionsTypes.SignActionsUseCase).execute(e)}}0&&(module.exports={DefaultSignerHyperliquid});
2
2
  //# sourceMappingURL=DefaultSignerHyperliquid.js.map
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "version": 3,
3
3
  "sources": ["../../../src/internal/DefaultSignerHyperliquid.ts"],
4
- "sourcesContent": ["import {\n type DeviceManagementKit,\n type DeviceSessionId,\n} from \"@ledgerhq/device-management-kit\";\nimport { type Container } from \"inversify\";\n\nimport { type SignActionsDAReturnType } from \"@api/app-binder/SignActionsDeviceActionTypes\";\nimport { type ActionsOptions } from \"@api/model/ActionsOptions\";\nimport { type SignerHyperliquid } from \"@api/SignerHyperliquid\";\nimport { makeContainer } from \"@internal/di\";\nimport { actionsTypes } from \"@internal/use-cases/actions/di/actionsTypes\";\nimport { type SignActionsUseCase } from \"@internal/use-cases/actions/SignActionsUseCase\";\n\ntype DefaultSignerHyperliquidConstructorArgs = {\n dmk: DeviceManagementKit;\n sessionId: DeviceSessionId;\n};\n\nexport class DefaultSignerHyperliquid implements SignerHyperliquid {\n private readonly _container: Container;\n\n constructor({ dmk, sessionId }: DefaultSignerHyperliquidConstructorArgs) {\n this._container = makeContainer({ dmk, sessionId });\n }\n\n signActions(\n derivationPath: string,\n Actions: Uint8Array,\n options?: ActionsOptions,\n ): SignActionsDAReturnType {\n return this._container\n .get<SignActionsUseCase>(actionsTypes.SignActionsUseCase)\n .execute(derivationPath, Actions, options);\n }\n}\n"],
5
- "mappings": "yaAAA,IAAAA,EAAA,GAAAC,EAAAD,EAAA,8BAAAE,IAAA,eAAAC,EAAAH,GASA,IAAAI,EAA8B,wBAC9BC,EAA6B,uDAQtB,MAAMH,CAAsD,CAChD,WAEjB,YAAY,CAAE,IAAAI,EAAK,UAAAC,CAAU,EAA4C,CACvE,KAAK,cAAa,iBAAc,CAAE,IAAAD,EAAK,UAAAC,CAAU,CAAC,CACpD,CAEA,YACEC,EACAC,EACAC,EACyB,CACzB,OAAO,KAAK,WACT,IAAwB,eAAa,kBAAkB,EACvD,QAAQF,EAAgBC,EAASC,CAAO,CAC7C,CACF",
6
- "names": ["DefaultSignerHyperliquid_exports", "__export", "DefaultSignerHyperliquid", "__toCommonJS", "import_di", "import_actionsTypes", "dmk", "sessionId", "derivationPath", "Actions", "options"]
4
+ "sourcesContent": ["import {\n type DeviceManagementKit,\n type DeviceSessionId,\n} from \"@ledgerhq/device-management-kit\";\nimport { type Container } from \"inversify\";\n\nimport { type SignActionsDAReturnType } from \"@api/app-binder/SignActionsDeviceActionTypes\";\nimport { type SignerHyperliquid } from \"@api/SignerHyperliquid\";\nimport { makeContainer } from \"@internal/di\";\nimport { actionsTypes } from \"@internal/use-cases/actions/di/actionsTypes\";\nimport { type SignActionsUseCase } from \"@internal/use-cases/actions/SignActionsUseCase\";\n\ntype DefaultSignerHyperliquidConstructorArgs = {\n dmk: DeviceManagementKit;\n sessionId: DeviceSessionId;\n};\n\nexport class DefaultSignerHyperliquid implements SignerHyperliquid {\n private readonly _container: Container;\n\n constructor({ dmk, sessionId }: DefaultSignerHyperliquidConstructorArgs) {\n this._container = makeContainer({ dmk, sessionId });\n }\n\n signActions(\n params: Parameters<SignerHyperliquid[\"signActions\"]>[0],\n ): SignActionsDAReturnType {\n return this._container\n .get<SignActionsUseCase>(actionsTypes.SignActionsUseCase)\n .execute(params);\n }\n}\n"],
5
+ "mappings": "yaAAA,IAAAA,EAAA,GAAAC,EAAAD,EAAA,8BAAAE,IAAA,eAAAC,EAAAH,GAQA,IAAAI,EAA8B,wBAC9BC,EAA6B,uDAQtB,MAAMH,CAAsD,CAChD,WAEjB,YAAY,CAAE,IAAAI,EAAK,UAAAC,CAAU,EAA4C,CACvE,KAAK,cAAa,iBAAc,CAAE,IAAAD,EAAK,UAAAC,CAAU,CAAC,CACpD,CAEA,YACEC,EACyB,CACzB,OAAO,KAAK,WACT,IAAwB,eAAa,kBAAkB,EACvD,QAAQA,CAAM,CACnB,CACF",
6
+ "names": ["DefaultSignerHyperliquid_exports", "__export", "DefaultSignerHyperliquid", "__toCommonJS", "import_di", "import_actionsTypes", "dmk", "sessionId", "params"]
7
7
  }
@@ -1,2 +1,2 @@
1
- "use strict";var c=Object.defineProperty;var k=Object.getOwnPropertyDescriptor;var d=Object.getOwnPropertyNames;var g=Object.prototype.hasOwnProperty;var u=(n,e)=>{for(var i in e)c(n,i,{get:e[i],enumerable:!0})},S=(n,e,i,s)=>{if(e&&typeof e=="object"||typeof e=="function")for(let t of d(e))!g.call(n,t)&&t!==i&&c(n,t,{get:()=>e[t],enumerable:!(s=k(e,t))||s.enumerable});return n};var f=n=>S(c({},"__esModule",{value:!0}),n),D=(n,e,i,s)=>{for(var t=s>1?void 0:s?k(e,i):e,p=n.length-1,m;p>=0;p--)(m=n[p])&&(t=(s?m(e,i,t):m(t))||t);return s&&t&&c(e,i,t),t},A=(n,e)=>(i,s)=>e(i,s,n);var y={};u(y,{HyperliquidAppBinder:()=>o});module.exports=f(y);var a=require("@ledgerhq/device-management-kit"),r=require("inversify"),v=require("../externalTypes"),I=require("./task/SignActionsTask");let o=class{constructor(e,i){this.dmk=e;this.sessionId=i}signActions(e){return this.dmk.executeDeviceAction({sessionId:this.sessionId,deviceAction:new a.CallTaskInAppDeviceAction({input:{task:async i=>new I.SignActionsTask(i,e).run(),appName:"Hyperliquid",requiredUserInteraction:a.UserInteractionRequired.SignTransaction,skipOpenApp:e.skipOpenApp??!1}})})}};o=D([(0,r.injectable)(),A(0,(0,r.inject)(v.externalTypes.Dmk)),A(1,(0,r.inject)(v.externalTypes.SessionId))],o);0&&(module.exports={HyperliquidAppBinder});
1
+ "use strict";var c=Object.defineProperty;var v=Object.getOwnPropertyDescriptor;var D=Object.getOwnPropertyNames;var g=Object.prototype.hasOwnProperty;var y=(i,e)=>{for(var n in e)c(i,n,{get:e[n],enumerable:!0})},k=(i,e,n,o)=>{if(e&&typeof e=="object"||typeof e=="function")for(let t of D(e))!g.call(i,t)&&t!==n&&c(i,t,{get:()=>e[t],enumerable:!(o=v(e,t))||o.enumerable});return i};var h=i=>k(c({},"__esModule",{value:!0}),i),A=(i,e,n,o)=>{for(var t=o>1?void 0:o?v(e,n):e,r=i.length-1,p;r>=0;r--)(p=i[r])&&(t=(o?p(e,n,t):p(t))||t);return o&&t&&c(e,n,t),t},m=(i,e)=>(n,o)=>e(n,o,i);var I={};y(I,{HyperliquidAppBinder:()=>s});module.exports=h(I);var a=require("inversify"),d=require("../externalTypes"),f=require("./device-action/SignActions/SignActionsDeviceAction");let s=class{constructor(e,n){this.dmk=e;this.sessionId=n}signActions(e){return this.dmk.executeDeviceAction({sessionId:this.sessionId,deviceAction:new f.SignActionsDeviceAction({input:{derivationPath:e.derivationPath,certificate:e.certificate,signedMetadata:e.signedMetadata,actions:e.actions,skipOpenApp:e.skipOpenApp??!1}})})}};s=A([(0,a.injectable)(),m(0,(0,a.inject)(d.externalTypes.Dmk)),m(1,(0,a.inject)(d.externalTypes.SessionId))],s);0&&(module.exports={HyperliquidAppBinder});
2
2
  //# sourceMappingURL=HyperliquidAppBinder.js.map
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "version": 3,
3
3
  "sources": ["../../../../src/internal/app-binder/HyperliquidAppBinder.ts"],
4
- "sourcesContent": ["import {\n CallTaskInAppDeviceAction,\n type DeviceManagementKit,\n type DeviceSessionId,\n UserInteractionRequired,\n} from \"@ledgerhq/device-management-kit\";\nimport { inject, injectable } from \"inversify\";\n\nimport { type SignActionsDAReturnType } from \"@api/app-binder/SignActionsDeviceActionTypes\";\nimport { externalTypes } from \"@internal/externalTypes\";\n\nimport { SignActionsTask } from \"./task/SignActionsTask\";\n\n@injectable()\nexport class HyperliquidAppBinder {\n constructor(\n @inject(externalTypes.Dmk) private dmk: DeviceManagementKit,\n @inject(externalTypes.SessionId) private sessionId: DeviceSessionId,\n ) {}\n\n signActions(args: {\n derivationPath: string;\n Actions: Uint8Array;\n skipOpenApp?: boolean;\n }): SignActionsDAReturnType {\n return this.dmk.executeDeviceAction({\n sessionId: this.sessionId,\n deviceAction: new CallTaskInAppDeviceAction({\n input: {\n task: async (internalApi) =>\n new SignActionsTask(internalApi, args).run(),\n appName: \"Hyperliquid\",\n requiredUserInteraction: UserInteractionRequired.SignTransaction,\n skipOpenApp: args.skipOpenApp ?? false,\n },\n }),\n });\n }\n}\n"],
5
- "mappings": "okBAAA,IAAAA,EAAA,GAAAC,EAAAD,EAAA,0BAAAE,IAAA,eAAAC,EAAAH,GAAA,IAAAI,EAKO,2CACPC,EAAmC,qBAGnCC,EAA8B,mCAE9BC,EAAgC,kCAGzB,IAAMC,EAAN,KAA2B,CAChC,YACqCC,EACMC,EACzC,CAFmC,SAAAD,EACM,eAAAC,CACxC,CAEH,YAAYC,EAIgB,CAC1B,OAAO,KAAK,IAAI,oBAAoB,CAClC,UAAW,KAAK,UAChB,aAAc,IAAI,4BAA0B,CAC1C,MAAO,CACL,KAAM,MAAOC,GACX,IAAI,kBAAgBA,EAAaD,CAAI,EAAE,IAAI,EAC7C,QAAS,cACT,wBAAyB,0BAAwB,gBACjD,YAAaA,EAAK,aAAe,EACnC,CACF,CAAC,CACH,CAAC,CACH,CACF,EAxBaH,EAANK,EAAA,IADN,cAAW,EAGPC,EAAA,eAAO,gBAAc,GAAG,GACxBA,EAAA,eAAO,gBAAc,SAAS,IAHtBN",
6
- "names": ["HyperliquidAppBinder_exports", "__export", "HyperliquidAppBinder", "__toCommonJS", "import_device_management_kit", "import_inversify", "import_externalTypes", "import_SignActionsTask", "HyperliquidAppBinder", "dmk", "sessionId", "args", "internalApi", "__decorateClass", "__decorateParam"]
4
+ "sourcesContent": ["import type {\n DeviceManagementKit,\n DeviceSessionId,\n} from \"@ledgerhq/device-management-kit\";\nimport { inject, injectable } from \"inversify\";\n\nimport { type SignActionsDAReturnType } from \"@api/app-binder/SignActionsDeviceActionTypes\";\nimport { externalTypes } from \"@internal/externalTypes\";\n\nimport { SignActionsDeviceAction } from \"./device-action/SignActions/SignActionsDeviceAction\";\nimport type { HyperliquidAction } from \"./di/appBinderTypes\";\n\n@injectable()\nexport class HyperliquidAppBinder {\n constructor(\n @inject(externalTypes.Dmk) private dmk: DeviceManagementKit,\n @inject(externalTypes.SessionId) private sessionId: DeviceSessionId,\n ) {}\n\n signActions(args: {\n derivationPath: string;\n certificate: Uint8Array;\n signedMetadata: Uint8Array;\n actions: HyperliquidAction[];\n skipOpenApp?: boolean;\n }): SignActionsDAReturnType {\n return this.dmk.executeDeviceAction({\n sessionId: this.sessionId,\n deviceAction: new SignActionsDeviceAction({\n input: {\n derivationPath: args.derivationPath,\n certificate: args.certificate,\n signedMetadata: args.signedMetadata,\n actions: args.actions,\n skipOpenApp: args.skipOpenApp ?? false,\n },\n }),\n });\n }\n}\n"],
5
+ "mappings": "okBAAA,IAAAA,EAAA,GAAAC,EAAAD,EAAA,0BAAAE,IAAA,eAAAC,EAAAH,GAIA,IAAAI,EAAmC,qBAGnCC,EAA8B,mCAE9BC,EAAwC,+DAIjC,IAAMC,EAAN,KAA2B,CAChC,YACqCC,EACMC,EACzC,CAFmC,SAAAD,EACM,eAAAC,CACxC,CAEH,YAAYC,EAMgB,CAC1B,OAAO,KAAK,IAAI,oBAAoB,CAClC,UAAW,KAAK,UAChB,aAAc,IAAI,0BAAwB,CACxC,MAAO,CACL,eAAgBA,EAAK,eACrB,YAAaA,EAAK,YAClB,eAAgBA,EAAK,eACrB,QAASA,EAAK,QACd,YAAaA,EAAK,aAAe,EACnC,CACF,CAAC,CACH,CAAC,CACH,CACF,EA1BaH,EAANI,EAAA,IADN,cAAW,EAGPC,EAAA,eAAO,gBAAc,GAAG,GACxBA,EAAA,eAAO,gBAAc,SAAS,IAHtBL",
6
+ "names": ["HyperliquidAppBinder_exports", "__export", "HyperliquidAppBinder", "__toCommonJS", "import_inversify", "import_externalTypes", "import_SignActionsDeviceAction", "HyperliquidAppBinder", "dmk", "sessionId", "args", "__decorateClass", "__decorateParam"]
7
7
  }
@@ -0,0 +1,2 @@
1
+ "use strict";var s=Object.defineProperty;var a=Object.getOwnPropertyDescriptor;var m=Object.getOwnPropertyNames;var A=Object.prototype.hasOwnProperty;var u=(r,e)=>{for(var o in e)s(r,o,{get:e[o],enumerable:!0})},c=(r,e,o,i)=>{if(e&&typeof e=="object"||typeof e=="function")for(let d of m(e))!A.call(r,d)&&d!==o&&s(r,d,{get:()=>e[d],enumerable:!(i=a(e,d))||i.enumerable});return r};var l=r=>c(s({},"__esModule",{value:!0}),r);var S={};u(S,{SendActionCommand:()=>E});module.exports=l(S);var n=require("@ledgerhq/device-management-kit"),p=require("@ledgerhq/signer-utils"),t=require("./utils/hyperliquidApplicationErrors");const C=224,y=3,R=1,g=0;class E{constructor(e){this.args=e}name="sendAction";errorHelper=new p.CommandErrorHelper(t.HYPERLIQUID_ERRORS,t.HyperliquidCommandErrorFactory);getApdu(){const e={cla:C,ins:y,p1:R,p2:g};return new n.ApduBuilder(e).add8BitUIntToData(0).encodeInLVFromBuffer(this.args.serializedAction).build()}parseResponse(e){const o=this.errorHelper.getError(e);return o||(e.data.length!==0?(0,n.CommandResultFactory)({error:new n.InvalidResponseFormatError("Unexpected data in response")}):(0,n.CommandResultFactory)({data:void 0}))}}0&&(module.exports={SendActionCommand});
2
+ //# sourceMappingURL=SendActionCommand.js.map
@@ -0,0 +1,7 @@
1
+ {
2
+ "version": 3,
3
+ "sources": ["../../../../../src/internal/app-binder/command/SendActionCommand.ts"],
4
+ "sourcesContent": ["import {\n type Apdu,\n ApduBuilder,\n type ApduBuilderArgs,\n type ApduResponse,\n type Command,\n type CommandResult,\n CommandResultFactory,\n InvalidResponseFormatError,\n} from \"@ledgerhq/device-management-kit\";\nimport { CommandErrorHelper } from \"@ledgerhq/signer-utils\";\n\nimport {\n HYPERLIQUID_ERRORS,\n HyperliquidCommandErrorFactory,\n type HyperliquidErrorCodes,\n} from \"./utils/hyperliquidApplicationErrors\";\n\n/** Set action to sign \u2014 APDU CLA/INS per specs.md */\nconst CLA = 0xe0;\nconst INS = 0x03;\nconst P1 = 0x01;\nconst P2 = 0x00;\n\nexport type SendActionCommandArgs = {\n /** TLV-serialized action (specs.md \"Set action to sign\" data format) */\n serializedAction: Uint8Array;\n};\n\nexport type SendActionCommandResponse = void;\n\nexport class SendActionCommand\n implements\n Command<\n SendActionCommandResponse,\n SendActionCommandArgs,\n HyperliquidErrorCodes\n >\n{\n readonly name = \"sendAction\";\n\n private readonly errorHelper = new CommandErrorHelper<\n SendActionCommandResponse,\n HyperliquidErrorCodes\n >(HYPERLIQUID_ERRORS, HyperliquidCommandErrorFactory);\n\n constructor(readonly args: SendActionCommandArgs) {}\n\n getApdu(): Apdu {\n const sendActionArgs: ApduBuilderArgs = {\n cla: CLA,\n ins: INS,\n p1: P1,\n p2: P2,\n };\n\n return new ApduBuilder(sendActionArgs)\n .add8BitUIntToData(0x00)\n .encodeInLVFromBuffer(this.args.serializedAction)\n .build();\n }\n\n parseResponse(\n response: ApduResponse,\n ): CommandResult<SendActionCommandResponse, HyperliquidErrorCodes> {\n const error = this.errorHelper.getError(response);\n if (error) {\n return error;\n }\n\n if (response.data.length !== 0) {\n return CommandResultFactory({\n error: new InvalidResponseFormatError(\"Unexpected data in response\"),\n });\n }\n\n return CommandResultFactory({ data: undefined });\n }\n}\n"],
5
+ "mappings": "yaAAA,IAAAA,EAAA,GAAAC,EAAAD,EAAA,uBAAAE,IAAA,eAAAC,EAAAH,GAAA,IAAAI,EASO,2CACPC,EAAmC,kCAEnCC,EAIO,gDAGP,MAAMC,EAAM,IACNC,EAAM,EACNC,EAAK,EACLC,EAAK,EASJ,MAAMR,CAOb,CAQE,YAAqBS,EAA6B,CAA7B,UAAAA,CAA8B,CAP1C,KAAO,aAEC,YAAc,IAAI,qBAGjC,qBAAoB,gCAA8B,EAIpD,SAAgB,CACd,MAAMC,EAAkC,CACtC,IAAKL,EACL,IAAKC,EACL,GAAIC,EACJ,GAAIC,CACN,EAEA,OAAO,IAAI,cAAYE,CAAc,EAClC,kBAAkB,CAAI,EACtB,qBAAqB,KAAK,KAAK,gBAAgB,EAC/C,MAAM,CACX,CAEA,cACEC,EACiE,CACjE,MAAMC,EAAQ,KAAK,YAAY,SAASD,CAAQ,EAChD,OAAIC,IAIAD,EAAS,KAAK,SAAW,KACpB,wBAAqB,CAC1B,MAAO,IAAI,6BAA2B,6BAA6B,CACrE,CAAC,KAGI,wBAAqB,CAAE,KAAM,MAAU,CAAC,EACjD,CACF",
6
+ "names": ["SendActionCommand_exports", "__export", "SendActionCommand", "__toCommonJS", "import_device_management_kit", "import_signer_utils", "import_hyperliquidApplicationErrors", "CLA", "INS", "P1", "P2", "args", "sendActionArgs", "response", "error"]
7
+ }
@@ -0,0 +1,2 @@
1
+ "use strict";var n=require("@ledgerhq/device-management-kit"),s=require("./SendActionCommand");describe("SendActionCommand",()=>{const r=new Uint8Array([1,1,44,2,1,1,208,1,0,218,8,0,0,0,0,0,0,0,42,219,3,221,1,0]),o={serializedAction:r};describe("name",()=>{it("should be 'sendAction'",()=>{const t=new s.SendActionCommand(o);expect(t.name).toBe("sendAction")})}),describe("getApdu",()=>{it("should return the correct APDU with cla 0x0E and ins 0x03 per specs",()=>{const e=new s.SendActionCommand(o).getApdu();expect(e.cla).toBe(224),expect(e.ins).toBe(3),expect(e.p1).toBe(1),expect(e.p2).toBe(0),expect(e.data).toStrictEqual(new Uint8Array([0,24,...r]))}),it("should use serializedAction as APDU data",()=>{const t=new Uint8Array([1,2,3]),a=new s.SendActionCommand({serializedAction:t}).getApdu();expect(a.data).toStrictEqual(new Uint8Array([0,3,...t]))})}),describe("parseResponse",()=>{it("should return success when status is 0x9000 and no data",()=>{const t={statusCode:Uint8Array.from([144,0]),data:new Uint8Array},e=new s.SendActionCommand(o).parseResponse(t);expect(e).toStrictEqual((0,n.CommandResultFactory)({data:void 0})),expect((0,n.isSuccessCommandResult)(e)).toBe(!0)}),it("should return an error if the status code is not 0x9000",()=>{const t={statusCode:Uint8Array.from([106,128]),data:new Uint8Array},e=new s.SendActionCommand(o).parseResponse(t);expect((0,n.isSuccessCommandResult)(e)).toBe(!1)}),it("should return an error if response contains unexpected data",()=>{const t={statusCode:Uint8Array.from([144,0]),data:Uint8Array.from([1])},e=new s.SendActionCommand(o).parseResponse(t);expect((0,n.isSuccessCommandResult)(e)).toBe(!1),expect(e.error).toBeInstanceOf(n.InvalidResponseFormatError)})})});
2
+ //# sourceMappingURL=SendActionCommand.test.js.map
@@ -0,0 +1,7 @@
1
+ {
2
+ "version": 3,
3
+ "sources": ["../../../../../src/internal/app-binder/command/SendActionCommand.test.ts"],
4
+ "sourcesContent": ["import {\n CommandResultFactory,\n InvalidResponseFormatError,\n isSuccessCommandResult,\n} from \"@ledgerhq/device-management-kit\";\n\nimport {\n SendActionCommand,\n type SendActionCommandArgs,\n} from \"./SendActionCommand\";\n\ndescribe(\"SendActionCommand\", () => {\n const serializedAction = new Uint8Array([\n 0x01, 0x01, 0x2c, 0x02, 0x01, 0x01, 0xd0, 0x01, 0x00, 0xda, 0x08, 0x00,\n 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x2a, 0xdb, 0x03, 0xdd, 0x01, 0x00,\n ]);\n\n const defaultArgs: SendActionCommandArgs = {\n serializedAction,\n };\n\n describe(\"name\", () => {\n it(\"should be 'sendAction'\", () => {\n const command = new SendActionCommand(defaultArgs);\n expect(command.name).toBe(\"sendAction\");\n });\n });\n\n describe(\"getApdu\", () => {\n it(\"should return the correct APDU with cla 0x0E and ins 0x03 per specs\", () => {\n const command = new SendActionCommand(defaultArgs);\n\n const apdu = command.getApdu();\n\n expect(apdu.cla).toBe(0xe0);\n expect(apdu.ins).toBe(0x03);\n expect(apdu.p1).toBe(0x01);\n expect(apdu.p2).toBe(0x00);\n expect(apdu.data).toStrictEqual(\n new Uint8Array([0x00, 0x18, ...serializedAction]),\n );\n });\n\n it(\"should use serializedAction as APDU data\", () => {\n const customTlv = new Uint8Array([0x01, 0x02, 0x03]);\n const command = new SendActionCommand({\n serializedAction: customTlv,\n });\n\n const apdu = command.getApdu();\n\n expect(apdu.data).toStrictEqual(\n new Uint8Array([0x00, 0x03, ...customTlv]),\n );\n });\n });\n\n describe(\"parseResponse\", () => {\n it(\"should return success when status is 0x9000 and no data\", () => {\n const response = {\n statusCode: Uint8Array.from([0x90, 0x00]),\n data: new Uint8Array(),\n };\n\n const parsed = new SendActionCommand(defaultArgs).parseResponse(response);\n expect(parsed).toStrictEqual(CommandResultFactory({ data: undefined }));\n expect(isSuccessCommandResult(parsed)).toBe(true);\n });\n\n it(\"should return an error if the status code is not 0x9000\", () => {\n const response = {\n statusCode: Uint8Array.from([0x6a, 0x80]),\n data: new Uint8Array(),\n };\n\n const result = new SendActionCommand(defaultArgs).parseResponse(response);\n expect(isSuccessCommandResult(result)).toBe(false);\n });\n\n it(\"should return an error if response contains unexpected data\", () => {\n const response = {\n statusCode: Uint8Array.from([0x90, 0x00]),\n data: Uint8Array.from([0x01]),\n };\n\n const result = new SendActionCommand(defaultArgs).parseResponse(response);\n expect(isSuccessCommandResult(result)).toBe(false);\n expect((result as { error: unknown }).error).toBeInstanceOf(\n InvalidResponseFormatError,\n );\n });\n });\n});\n"],
5
+ "mappings": "aAAA,IAAAA,EAIO,2CAEPC,EAGO,+BAEP,SAAS,oBAAqB,IAAM,CAClC,MAAMC,EAAmB,IAAI,WAAW,CACtC,EAAM,EAAM,GAAM,EAAM,EAAM,EAAM,IAAM,EAAM,EAAM,IAAM,EAAM,EAClE,EAAM,EAAM,EAAM,EAAM,EAAM,EAAM,GAAM,IAAM,EAAM,IAAM,EAAM,CACpE,CAAC,EAEKC,EAAqC,CACzC,iBAAAD,CACF,EAEA,SAAS,OAAQ,IAAM,CACrB,GAAG,yBAA0B,IAAM,CACjC,MAAME,EAAU,IAAI,oBAAkBD,CAAW,EACjD,OAAOC,EAAQ,IAAI,EAAE,KAAK,YAAY,CACxC,CAAC,CACH,CAAC,EAED,SAAS,UAAW,IAAM,CACxB,GAAG,sEAAuE,IAAM,CAG9E,MAAMC,EAFU,IAAI,oBAAkBF,CAAW,EAE5B,QAAQ,EAE7B,OAAOE,EAAK,GAAG,EAAE,KAAK,GAAI,EAC1B,OAAOA,EAAK,GAAG,EAAE,KAAK,CAAI,EAC1B,OAAOA,EAAK,EAAE,EAAE,KAAK,CAAI,EACzB,OAAOA,EAAK,EAAE,EAAE,KAAK,CAAI,EACzB,OAAOA,EAAK,IAAI,EAAE,cAChB,IAAI,WAAW,CAAC,EAAM,GAAM,GAAGH,CAAgB,CAAC,CAClD,CACF,CAAC,EAED,GAAG,2CAA4C,IAAM,CACnD,MAAMI,EAAY,IAAI,WAAW,CAAC,EAAM,EAAM,CAAI,CAAC,EAK7CD,EAJU,IAAI,oBAAkB,CACpC,iBAAkBC,CACpB,CAAC,EAEoB,QAAQ,EAE7B,OAAOD,EAAK,IAAI,EAAE,cAChB,IAAI,WAAW,CAAC,EAAM,EAAM,GAAGC,CAAS,CAAC,CAC3C,CACF,CAAC,CACH,CAAC,EAED,SAAS,gBAAiB,IAAM,CAC9B,GAAG,0DAA2D,IAAM,CAClE,MAAMC,EAAW,CACf,WAAY,WAAW,KAAK,CAAC,IAAM,CAAI,CAAC,EACxC,KAAM,IAAI,UACZ,EAEMC,EAAS,IAAI,oBAAkBL,CAAW,EAAE,cAAcI,CAAQ,EACxE,OAAOC,CAAM,EAAE,iBAAc,wBAAqB,CAAE,KAAM,MAAU,CAAC,CAAC,EACtE,UAAO,0BAAuBA,CAAM,CAAC,EAAE,KAAK,EAAI,CAClD,CAAC,EAED,GAAG,0DAA2D,IAAM,CAClE,MAAMD,EAAW,CACf,WAAY,WAAW,KAAK,CAAC,IAAM,GAAI,CAAC,EACxC,KAAM,IAAI,UACZ,EAEME,EAAS,IAAI,oBAAkBN,CAAW,EAAE,cAAcI,CAAQ,EACxE,UAAO,0BAAuBE,CAAM,CAAC,EAAE,KAAK,EAAK,CACnD,CAAC,EAED,GAAG,8DAA+D,IAAM,CACtE,MAAMF,EAAW,CACf,WAAY,WAAW,KAAK,CAAC,IAAM,CAAI,CAAC,EACxC,KAAM,WAAW,KAAK,CAAC,CAAI,CAAC,CAC9B,EAEME,EAAS,IAAI,oBAAkBN,CAAW,EAAE,cAAcI,CAAQ,EACxE,UAAO,0BAAuBE,CAAM,CAAC,EAAE,KAAK,EAAK,EACjD,OAAQA,EAA8B,KAAK,EAAE,eAC3C,4BACF,CACF,CAAC,CACH,CAAC,CACH,CAAC",
6
+ "names": ["import_device_management_kit", "import_SendActionCommand", "serializedAction", "defaultArgs", "command", "apdu", "customTlv", "response", "parsed", "result"]
7
+ }
@@ -0,0 +1,2 @@
1
+ "use strict";var n=Object.defineProperty;var i=Object.getOwnPropertyDescriptor;var m=Object.getOwnPropertyNames;var u=Object.prototype.hasOwnProperty;var l=(r,e)=>{for(var d in e)n(r,d,{get:e[d],enumerable:!0})},y=(r,e,d,s)=>{if(e&&typeof e=="object"||typeof e=="function")for(let a of m(e))!u.call(r,a)&&a!==d&&n(r,a,{get:()=>e[a],enumerable:!(s=i(e,a))||s.enumerable});return r};var A=r=>y(n({},"__esModule",{value:!0}),r);var H={};l(H,{SendMetadataCommand:()=>E});module.exports=A(H);var t=require("@ledgerhq/device-management-kit"),p=require("@ledgerhq/signer-utils"),o=require("./utils/hyperliquidApplicationErrors");const C=224,c=2,g=1,R=0;class E{constructor(e){this.args=e}name="sendMetadata";errorHelper=new p.CommandErrorHelper(o.HYPERLIQUID_ERRORS,o.HyperliquidCommandErrorFactory);getApdu(){const e={cla:C,ins:c,p1:g,p2:R};return new t.ApduBuilder(e).add8BitUIntToData(0).encodeInLVFromBuffer(this.args.signedMetadata).build()}parseResponse(e){const d=this.errorHelper.getError(e);return d||(e.data.length!==0?(0,t.CommandResultFactory)({error:new t.InvalidResponseFormatError("Unexpected data in response")}):(0,t.CommandResultFactory)({data:void 0}))}}0&&(module.exports={SendMetadataCommand});
2
+ //# sourceMappingURL=SendMetadataCommand.js.map
@@ -0,0 +1,7 @@
1
+ {
2
+ "version": 3,
3
+ "sources": ["../../../../../src/internal/app-binder/command/SendMetadataCommand.ts"],
4
+ "sourcesContent": ["import {\n type Apdu,\n ApduBuilder,\n type ApduBuilderArgs,\n type ApduResponse,\n type Command,\n type CommandResult,\n CommandResultFactory,\n InvalidResponseFormatError,\n} from \"@ledgerhq/device-management-kit\";\nimport { CommandErrorHelper } from \"@ledgerhq/signer-utils\";\n\nimport {\n HYPERLIQUID_ERRORS,\n HyperliquidCommandErrorFactory,\n type HyperliquidErrorCodes,\n} from \"./utils/hyperliquidApplicationErrors\";\n\nconst CLA = 0xe0;\nconst INS = 0x02;\nconst P1 = 0x01;\nconst P2 = 0x00;\n\nexport type SendMetadataCommandArgs = {\n signedMetadata: Uint8Array;\n};\n\nexport class SendMetadataCommand\n implements Command<void, SendMetadataCommandArgs, HyperliquidErrorCodes>\n{\n readonly name = \"sendMetadata\";\n private readonly errorHelper = new CommandErrorHelper<\n void,\n HyperliquidErrorCodes\n >(HYPERLIQUID_ERRORS, HyperliquidCommandErrorFactory);\n\n constructor(readonly args: SendMetadataCommandArgs) {}\n\n getApdu(): Apdu {\n const sendMetadataArgs: ApduBuilderArgs = {\n cla: CLA,\n ins: INS,\n p1: P1,\n p2: P2,\n };\n\n return new ApduBuilder(sendMetadataArgs)\n .add8BitUIntToData(0x00)\n .encodeInLVFromBuffer(this.args.signedMetadata)\n .build();\n }\n\n parseResponse(\n response: ApduResponse,\n ): CommandResult<void, HyperliquidErrorCodes> {\n const error = this.errorHelper.getError(response);\n if (error) {\n return error;\n }\n\n if (response.data.length !== 0) {\n return CommandResultFactory({\n error: new InvalidResponseFormatError(\"Unexpected data in response\"),\n });\n }\n\n return CommandResultFactory({ data: undefined });\n }\n}\n"],
5
+ "mappings": "yaAAA,IAAAA,EAAA,GAAAC,EAAAD,EAAA,yBAAAE,IAAA,eAAAC,EAAAH,GAAA,IAAAI,EASO,2CACPC,EAAmC,kCAEnCC,EAIO,gDAEP,MAAMC,EAAM,IACNC,EAAM,EACNC,EAAK,EACLC,EAAK,EAMJ,MAAMR,CAEb,CAOE,YAAqBS,EAA+B,CAA/B,UAAAA,CAAgC,CAN5C,KAAO,eACC,YAAc,IAAI,qBAGjC,qBAAoB,gCAA8B,EAIpD,SAAgB,CACd,MAAMC,EAAoC,CACxC,IAAKL,EACL,IAAKC,EACL,GAAIC,EACJ,GAAIC,CACN,EAEA,OAAO,IAAI,cAAYE,CAAgB,EACpC,kBAAkB,CAAI,EACtB,qBAAqB,KAAK,KAAK,cAAc,EAC7C,MAAM,CACX,CAEA,cACEC,EAC4C,CAC5C,MAAMC,EAAQ,KAAK,YAAY,SAASD,CAAQ,EAChD,OAAIC,IAIAD,EAAS,KAAK,SAAW,KACpB,wBAAqB,CAC1B,MAAO,IAAI,6BAA2B,6BAA6B,CACrE,CAAC,KAGI,wBAAqB,CAAE,KAAM,MAAU,CAAC,EACjD,CACF",
6
+ "names": ["SendMetadataCommand_exports", "__export", "SendMetadataCommand", "__toCommonJS", "import_device_management_kit", "import_signer_utils", "import_hyperliquidApplicationErrors", "CLA", "INS", "P1", "P2", "args", "sendMetadataArgs", "response", "error"]
7
+ }
@@ -0,0 +1,2 @@
1
+ "use strict";var a=require("@ledgerhq/device-management-kit"),n=require("./SendMetadataCommand");describe("SendMetadataCommand",()=>{const d={signedMetadata:(0,a.hexaStringToBuffer)("01012b02010181d0010081d10400000001240345544881d20100154730450220346b19f3cdae6aea7eb88c1afe416274f635dd494cf5a8add57856d2429a9f7d022100f4202dc04ed2ca3ab65b6518aa7dae1899191278cc7f97e28a2fd0a1aaf18d45")};let t;beforeEach(()=>{t=new n.SendMetadataCommand(d)}),describe("name",()=>{it("should be 'sendMetadata'",()=>{expect(t.name).toBe("sendMetadata")})}),describe("getApdu",()=>{it("should return the correct APDU with actionsCount in data",()=>{const e=t.getApdu();expect(e.data).toStrictEqual(new Uint8Array([0,99,...d.signedMetadata])),expect(e.cla).toBe(224),expect(e.ins).toBe(2),expect(e.p1).toBe(1),expect(e.p2).toBe(0),expect(e.getRawApdu()).toStrictEqual((0,a.hexaStringToBuffer)("e002010065006301012b02010181d0010081d10400000001240345544881d20100154730450220346b19f3cdae6aea7eb88c1afe416274f635dd494cf5a8add57856d2429a9f7d022100f4202dc04ed2ca3ab65b6518aa7dae1899191278cc7f97e28a2fd0a1aaf18d45"))})}),describe("parseResponse",()=>{it("should return success when status is 0x9000 and no data",()=>{const e={statusCode:Uint8Array.from([144,0]),data:new Uint8Array},c=t.parseResponse(e);expect(c).toStrictEqual((0,a.CommandResultFactory)({data:void 0})),expect((0,a.isSuccessCommandResult)(c)).toBe(!0)})})});
2
+ //# sourceMappingURL=SendMetadataCommand.test.js.map
@@ -0,0 +1,7 @@
1
+ {
2
+ "version": 3,
3
+ "sources": ["../../../../../src/internal/app-binder/command/SendMetadataCommand.test.ts"],
4
+ "sourcesContent": ["import {\n CommandResultFactory,\n hexaStringToBuffer,\n isSuccessCommandResult,\n} from \"@ledgerhq/device-management-kit\";\n\nimport {\n SendMetadataCommand,\n type SendMetadataCommandArgs,\n} from \"./SendMetadataCommand\";\n\ndescribe(\"SendMetadataCommand\", () => {\n const defaultArgs: SendMetadataCommandArgs = {\n // signedMetadata: new Uint8Array([0x01, 0x02, 0x03]),\n signedMetadata: hexaStringToBuffer(\n \"01012b02010181d0010081d10400000001240345544881d20100154730450220346b19f3cdae6aea7eb88c1afe416274f635dd494cf5a8add57856d2429a9f7d022100f4202dc04ed2ca3ab65b6518aa7dae1899191278cc7f97e28a2fd0a1aaf18d45\",\n )!,\n };\n let command: SendMetadataCommand;\n\n beforeEach(() => {\n command = new SendMetadataCommand(defaultArgs);\n });\n\n describe(\"name\", () => {\n it(\"should be 'sendMetadata'\", () => {\n expect(command.name).toBe(\"sendMetadata\");\n });\n });\n\n describe(\"getApdu\", () => {\n it(\"should return the correct APDU with actionsCount in data\", () => {\n // WHEN\n const apdu = command.getApdu();\n\n // THEN\n expect(apdu.data).toStrictEqual(\n new Uint8Array([0x00, 0x63, ...defaultArgs.signedMetadata]),\n );\n expect(apdu.cla).toBe(0xe0);\n expect(apdu.ins).toBe(0x02);\n expect(apdu.p1).toBe(0x01);\n expect(apdu.p2).toBe(0x00);\n expect(apdu.getRawApdu()).toStrictEqual(\n hexaStringToBuffer(\n \"e002010065006301012b02010181d0010081d10400000001240345544881d20100154730450220346b19f3cdae6aea7eb88c1afe416274f635dd494cf5a8add57856d2429a9f7d022100f4202dc04ed2ca3ab65b6518aa7dae1899191278cc7f97e28a2fd0a1aaf18d45\",\n )!,\n );\n });\n });\n\n describe(\"parseResponse\", () => {\n it(\"should return success when status is 0x9000 and no data\", () => {\n const LNX_RESPONSE_GOOD = {\n statusCode: Uint8Array.from([0x90, 0x00]),\n data: new Uint8Array(),\n };\n\n const parsed = command.parseResponse(LNX_RESPONSE_GOOD);\n expect(parsed).toStrictEqual(CommandResultFactory({ data: undefined }));\n expect(isSuccessCommandResult(parsed)).toBe(true);\n });\n });\n});\n"],
5
+ "mappings": "aAAA,IAAAA,EAIO,2CAEPC,EAGO,iCAEP,SAAS,sBAAuB,IAAM,CACpC,MAAMC,EAAuC,CAE3C,kBAAgB,sBACd,wMACF,CACF,EACA,IAAIC,EAEJ,WAAW,IAAM,CACfA,EAAU,IAAI,sBAAoBD,CAAW,CAC/C,CAAC,EAED,SAAS,OAAQ,IAAM,CACrB,GAAG,2BAA4B,IAAM,CACnC,OAAOC,EAAQ,IAAI,EAAE,KAAK,cAAc,CAC1C,CAAC,CACH,CAAC,EAED,SAAS,UAAW,IAAM,CACxB,GAAG,2DAA4D,IAAM,CAEnE,MAAMC,EAAOD,EAAQ,QAAQ,EAG7B,OAAOC,EAAK,IAAI,EAAE,cAChB,IAAI,WAAW,CAAC,EAAM,GAAM,GAAGF,EAAY,cAAc,CAAC,CAC5D,EACA,OAAOE,EAAK,GAAG,EAAE,KAAK,GAAI,EAC1B,OAAOA,EAAK,GAAG,EAAE,KAAK,CAAI,EAC1B,OAAOA,EAAK,EAAE,EAAE,KAAK,CAAI,EACzB,OAAOA,EAAK,EAAE,EAAE,KAAK,CAAI,EACzB,OAAOA,EAAK,WAAW,CAAC,EAAE,iBACxB,sBACE,sNACF,CACF,CACF,CAAC,CACH,CAAC,EAED,SAAS,gBAAiB,IAAM,CAC9B,GAAG,0DAA2D,IAAM,CAClE,MAAMC,EAAoB,CACxB,WAAY,WAAW,KAAK,CAAC,IAAM,CAAI,CAAC,EACxC,KAAM,IAAI,UACZ,EAEMC,EAASH,EAAQ,cAAcE,CAAiB,EACtD,OAAOC,CAAM,EAAE,iBAAc,wBAAqB,CAAE,KAAM,MAAU,CAAC,CAAC,EACtE,UAAO,0BAAuBA,CAAM,CAAC,EAAE,KAAK,EAAI,CAClD,CAAC,CACH,CAAC,CACH,CAAC",
6
+ "names": ["import_device_management_kit", "import_SendMetadataCommand", "defaultArgs", "command", "apdu", "LNX_RESPONSE_GOOD", "parsed"]
7
+ }
@@ -0,0 +1,2 @@
1
+ "use strict";var d=Object.defineProperty;var p=Object.getOwnPropertyDescriptor;var u=Object.getOwnPropertyNames;var l=Object.prototype.hasOwnProperty;var g=(n,r)=>{for(var t in r)d(n,t,{get:r[t],enumerable:!0})},c=(n,r,t,i)=>{if(r&&typeof r=="object"||typeof r=="function")for(let o of u(r))!l.call(n,o)&&o!==t&&d(n,o,{get:()=>r[o],enumerable:!(i=p(r,o))||i.enumerable});return n};var A=n=>c(d({},"__esModule",{value:!0}),n);var y={};g(y,{SignActionsCommand:()=>C});module.exports=A(y);var e=require("@ledgerhq/device-management-kit"),a=require("@ledgerhq/signer-utils"),s=require("./utils/hyperliquidApplicationErrors");const m=66;class C{constructor(r){this.args=r;this.args=r}name="signActions";errorHelper=new a.CommandErrorHelper(s.HYPERLIQUID_ERRORS,s.HyperliquidCommandErrorFactory);getApdu(){const r={cla:224,ins:4,p1:0,p2:0},t=new e.ApduBuilder(r),i=a.DerivationPathUtils.splitPath(this.args.derivationPath);return t.add8BitUIntToData(i.length),i.forEach(o=>{t.add32BitUIntToData(o)}),t.build()}parseResponse(r){const t=this.errorHelper.getError(r);return t||(r.data.length===0||r.data.length!==m?(0,e.CommandResultFactory)({error:new e.InvalidResponseFormatError("Unexpected data in response")}):(0,e.CommandResultFactory)({data:{signaturesLeft:r.data[0],signature:{v:r.data[1],r:(0,e.bufferToHexaString)(r.data.slice(2,34),!1),s:(0,e.bufferToHexaString)(r.data.slice(34,m),!1)}}}))}}0&&(module.exports={SignActionsCommand});
2
+ //# sourceMappingURL=SignActionsCommand.js.map
@@ -0,0 +1,7 @@
1
+ {
2
+ "version": 3,
3
+ "sources": ["../../../../../src/internal/app-binder/command/SignActionsCommand.ts"],
4
+ "sourcesContent": ["import {\n type Apdu,\n ApduBuilder,\n type ApduBuilderArgs,\n type ApduResponse,\n bufferToHexaString,\n type Command,\n type CommandResult,\n CommandResultFactory,\n InvalidResponseFormatError,\n} from \"@ledgerhq/device-management-kit\";\nimport {\n CommandErrorHelper,\n DerivationPathUtils,\n} from \"@ledgerhq/signer-utils\";\n\nimport {\n HYPERLIQUID_ERRORS,\n HyperliquidCommandErrorFactory,\n type HyperliquidErrorCodes,\n} from \"./utils/hyperliquidApplicationErrors\";\n\nexport type SignActionsCommandArgs = {\n derivationPath: string;\n};\n\nexport type SignActionsCommandResponse = {\n signaturesLeft: number;\n signature: {\n r: string;\n s: string;\n v: number;\n };\n};\n\nconst SIGNATURE_LENGTH = 66;\n\nexport class SignActionsCommand\n implements\n Command<\n SignActionsCommandResponse,\n SignActionsCommandArgs,\n HyperliquidErrorCodes\n >\n{\n readonly name = \"signActions\";\n private readonly errorHelper = new CommandErrorHelper<\n SignActionsCommandResponse,\n HyperliquidErrorCodes\n >(HYPERLIQUID_ERRORS, HyperliquidCommandErrorFactory);\n\n constructor(readonly args: SignActionsCommandArgs) {\n this.args = args;\n }\n\n getApdu(): Apdu {\n const signActionsArgs: ApduBuilderArgs = {\n cla: 0xe0,\n ins: 0x04,\n p1: 0x00,\n p2: 0x00,\n };\n\n const builder = new ApduBuilder(signActionsArgs);\n\n const path = DerivationPathUtils.splitPath(this.args.derivationPath);\n builder.add8BitUIntToData(path.length);\n path.forEach((element) => {\n builder.add32BitUIntToData(element);\n });\n\n return builder.build();\n }\n\n parseResponse(\n response: ApduResponse,\n ): CommandResult<SignActionsCommandResponse, HyperliquidErrorCodes> {\n const error = this.errorHelper.getError(response);\n if (error) {\n return error;\n }\n\n if (\n response.data.length === 0 ||\n response.data.length !== SIGNATURE_LENGTH\n ) {\n return CommandResultFactory({\n error: new InvalidResponseFormatError(\"Unexpected data in response\"),\n });\n }\n\n return CommandResultFactory({\n data: {\n signaturesLeft: response.data[0]!,\n signature: {\n v: response.data[1]!,\n r: bufferToHexaString(response.data.slice(2, 34), false),\n s: bufferToHexaString(\n response.data.slice(34, SIGNATURE_LENGTH),\n false,\n ),\n },\n },\n });\n }\n}\n"],
5
+ "mappings": "yaAAA,IAAAA,EAAA,GAAAC,EAAAD,EAAA,wBAAAE,IAAA,eAAAC,EAAAH,GAAA,IAAAI,EAUO,2CACPC,EAGO,kCAEPC,EAIO,gDAeP,MAAMC,EAAmB,GAElB,MAAML,CAOb,CAOE,YAAqBM,EAA8B,CAA9B,UAAAA,EACnB,KAAK,KAAOA,CACd,CARS,KAAO,cACC,YAAc,IAAI,qBAGjC,qBAAoB,gCAA8B,EAMpD,SAAgB,CACd,MAAMC,EAAmC,CACvC,IAAK,IACL,IAAK,EACL,GAAI,EACJ,GAAI,CACN,EAEMC,EAAU,IAAI,cAAYD,CAAe,EAEzCE,EAAO,sBAAoB,UAAU,KAAK,KAAK,cAAc,EACnE,OAAAD,EAAQ,kBAAkBC,EAAK,MAAM,EACrCA,EAAK,QAASC,GAAY,CACxBF,EAAQ,mBAAmBE,CAAO,CACpC,CAAC,EAEMF,EAAQ,MAAM,CACvB,CAEA,cACEG,EACkE,CAClE,MAAMC,EAAQ,KAAK,YAAY,SAASD,CAAQ,EAChD,OAAIC,IAKFD,EAAS,KAAK,SAAW,GACzBA,EAAS,KAAK,SAAWN,KAElB,wBAAqB,CAC1B,MAAO,IAAI,6BAA2B,6BAA6B,CACrE,CAAC,KAGI,wBAAqB,CAC1B,KAAM,CACJ,eAAgBM,EAAS,KAAK,CAAC,EAC/B,UAAW,CACT,EAAGA,EAAS,KAAK,CAAC,EAClB,KAAG,sBAAmBA,EAAS,KAAK,MAAM,EAAG,EAAE,EAAG,EAAK,EACvD,KAAG,sBACDA,EAAS,KAAK,MAAM,GAAIN,CAAgB,EACxC,EACF,CACF,CACF,CACF,CAAC,EACH,CACF",
6
+ "names": ["SignActionsCommand_exports", "__export", "SignActionsCommand", "__toCommonJS", "import_device_management_kit", "import_signer_utils", "import_hyperliquidApplicationErrors", "SIGNATURE_LENGTH", "args", "signActionsArgs", "builder", "path", "element", "response", "error"]
7
+ }
@@ -0,0 +1,2 @@
1
+ "use strict";var t=require("@ledgerhq/device-management-kit"),o=require("./SignActionsCommand");describe("SignActionsCommand",()=>{let s;beforeEach(()=>{s=new o.SignActionsCommand({derivationPath:"44'/637'/0'/0'"})}),describe("name",()=>{it("should be 'signActions'",()=>{expect(s.name).toBe("signActions")})}),describe("getApdu",()=>{it("should return the correct APDU",()=>{const e=s.getApdu();expect(e.cla).toBe(224),expect(e.ins).toBe(4),expect(e.p1).toBe(0),expect(e.p2).toBe(0),expect(e.data.length).toBe(17)})}),describe("parseResponse",()=>{it("should parse the response",()=>{const e={statusCode:Uint8Array.from([144,0]),data:(0,t.hexaStringToBuffer)("021c1a7718eede70393bbc640a649ee65401748953a1b671ffa15fea9cb7e209289837e2621d96135f05f54fe891bb5850a94003717dfe228c270fba5d8e7f35b590")},a=s.parseResponse(e);expect(a).toStrictEqual((0,t.CommandResultFactory)({data:{signaturesLeft:2,signature:{r:"1a7718eede70393bbc640a649ee65401748953a1b671ffa15fea9cb7e2092898",s:"37e2621d96135f05f54fe891bb5850a94003717dfe228c270fba5d8e7f35b590",v:28}}}))}),it("should return an error if the status code is not 0x9000",()=>{const e={statusCode:Uint8Array.from([106,128]),data:new Uint8Array},a=s.parseResponse(e);expect((0,t.isSuccessCommandResult)(a)).toBe(!1)}),it("should return an error if response contains unexpected data",()=>{const e={statusCode:Uint8Array.from([144,0]),data:Uint8Array.from([1])},a=s.parseResponse(e);expect((0,t.isSuccessCommandResult)(a)).toBe(!1),expect(a.error).toBeInstanceOf(t.InvalidResponseFormatError)})})});
2
+ //# sourceMappingURL=SignActionsCommand.test.js.map
@@ -0,0 +1,7 @@
1
+ {
2
+ "version": 3,
3
+ "sources": ["../../../../../src/internal/app-binder/command/SignActionsCommand.test.ts"],
4
+ "sourcesContent": ["import {\n CommandResultFactory,\n hexaStringToBuffer,\n InvalidResponseFormatError,\n isSuccessCommandResult,\n} from \"@ledgerhq/device-management-kit\";\n\nimport { SignActionsCommand } from \"./SignActionsCommand\";\n\ndescribe(\"SignActionsCommand\", () => {\n let command: SignActionsCommand;\n\n beforeEach(() => {\n command = new SignActionsCommand({ derivationPath: \"44'/637'/0'/0'\" });\n });\n\n describe(\"name\", () => {\n it(\"should be 'signActions'\", () => {\n expect(command.name).toBe(\"signActions\");\n });\n });\n\n describe(\"getApdu\", () => {\n it(\"should return the correct APDU\", () => {\n // WHEN\n const apdu = command.getApdu();\n\n // THEN\n expect(apdu.cla).toBe(0xe0);\n expect(apdu.ins).toBe(0x04);\n expect(apdu.p1).toBe(0x00);\n expect(apdu.p2).toBe(0x00);\n expect(apdu.data.length).toBe(0x11);\n });\n });\n\n describe(\"parseResponse\", () => {\n it(\"should parse the response\", () => {\n const LNX_RESPONSE_GOOD = {\n statusCode: Uint8Array.from([0x90, 0x00]),\n data: hexaStringToBuffer(\n \"021c1a7718eede70393bbc640a649ee65401748953a1b671ffa15fea9cb7e209289837e2621d96135f05f54fe891bb5850a94003717dfe228c270fba5d8e7f35b590\",\n )!,\n };\n\n const parsedResponse = command.parseResponse(LNX_RESPONSE_GOOD);\n expect(parsedResponse).toStrictEqual(\n CommandResultFactory({\n data: {\n signaturesLeft: 2,\n signature: {\n r: \"1a7718eede70393bbc640a649ee65401748953a1b671ffa15fea9cb7e2092898\",\n s: \"37e2621d96135f05f54fe891bb5850a94003717dfe228c270fba5d8e7f35b590\",\n v: 0x1c,\n },\n },\n }),\n );\n });\n\n it(\"should return an error if the status code is not 0x9000\", () => {\n const LNX_RESPONSE_ERROR = {\n statusCode: Uint8Array.from([0x6a, 0x80]),\n data: new Uint8Array(),\n };\n\n const result = command.parseResponse(LNX_RESPONSE_ERROR);\n expect(isSuccessCommandResult(result)).toBe(false);\n });\n\n it(\"should return an error if response contains unexpected data\", () => {\n const LNX_RESPONSE_EXTRA = {\n statusCode: Uint8Array.from([0x90, 0x00]),\n data: Uint8Array.from([0x01]),\n };\n\n const result = command.parseResponse(LNX_RESPONSE_EXTRA);\n expect(isSuccessCommandResult(result)).toBe(false);\n // @ts-expect-error response is not typed\n expect(result.error).toBeInstanceOf(InvalidResponseFormatError);\n });\n });\n});\n"],
5
+ "mappings": "aAAA,IAAAA,EAKO,2CAEPC,EAAmC,gCAEnC,SAAS,qBAAsB,IAAM,CACnC,IAAIC,EAEJ,WAAW,IAAM,CACfA,EAAU,IAAI,qBAAmB,CAAE,eAAgB,gBAAiB,CAAC,CACvE,CAAC,EAED,SAAS,OAAQ,IAAM,CACrB,GAAG,0BAA2B,IAAM,CAClC,OAAOA,EAAQ,IAAI,EAAE,KAAK,aAAa,CACzC,CAAC,CACH,CAAC,EAED,SAAS,UAAW,IAAM,CACxB,GAAG,iCAAkC,IAAM,CAEzC,MAAMC,EAAOD,EAAQ,QAAQ,EAG7B,OAAOC,EAAK,GAAG,EAAE,KAAK,GAAI,EAC1B,OAAOA,EAAK,GAAG,EAAE,KAAK,CAAI,EAC1B,OAAOA,EAAK,EAAE,EAAE,KAAK,CAAI,EACzB,OAAOA,EAAK,EAAE,EAAE,KAAK,CAAI,EACzB,OAAOA,EAAK,KAAK,MAAM,EAAE,KAAK,EAAI,CACpC,CAAC,CACH,CAAC,EAED,SAAS,gBAAiB,IAAM,CAC9B,GAAG,4BAA6B,IAAM,CACpC,MAAMC,EAAoB,CACxB,WAAY,WAAW,KAAK,CAAC,IAAM,CAAI,CAAC,EACxC,QAAM,sBACJ,sIACF,CACF,EAEMC,EAAiBH,EAAQ,cAAcE,CAAiB,EAC9D,OAAOC,CAAc,EAAE,iBACrB,wBAAqB,CACnB,KAAM,CACJ,eAAgB,EAChB,UAAW,CACT,EAAG,mEACH,EAAG,mEACH,EAAG,EACL,CACF,CACF,CAAC,CACH,CACF,CAAC,EAED,GAAG,0DAA2D,IAAM,CAClE,MAAMC,EAAqB,CACzB,WAAY,WAAW,KAAK,CAAC,IAAM,GAAI,CAAC,EACxC,KAAM,IAAI,UACZ,EAEMC,EAASL,EAAQ,cAAcI,CAAkB,EACvD,UAAO,0BAAuBC,CAAM,CAAC,EAAE,KAAK,EAAK,CACnD,CAAC,EAED,GAAG,8DAA+D,IAAM,CACtE,MAAMC,EAAqB,CACzB,WAAY,WAAW,KAAK,CAAC,IAAM,CAAI,CAAC,EACxC,KAAM,WAAW,KAAK,CAAC,CAAI,CAAC,CAC9B,EAEMD,EAASL,EAAQ,cAAcM,CAAkB,EACvD,UAAO,0BAAuBD,CAAM,CAAC,EAAE,KAAK,EAAK,EAEjD,OAAOA,EAAO,KAAK,EAAE,eAAe,4BAA0B,CAChE,CAAC,CACH,CAAC,CACH,CAAC",
6
+ "names": ["import_device_management_kit", "import_SignActionsCommand", "command", "apdu", "LNX_RESPONSE_GOOD", "parsedResponse", "LNX_RESPONSE_ERROR", "result", "LNX_RESPONSE_EXTRA"]
7
+ }
@@ -1,2 +1,2 @@
1
- "use strict";var _=Object.defineProperty;var T=Object.getOwnPropertyDescriptor;var a=Object.getOwnPropertyNames;var D=Object.prototype.hasOwnProperty;var P=(R,I)=>{for(var A in I)_(R,A,{get:I[A],enumerable:!0})},V=(R,I,A,x)=>{if(I&&typeof I=="object"||typeof I=="function")for(let N of a(I))!D.call(R,N)&&N!==A&&_(R,N,{get:()=>I[N],enumerable:!(x=T(I,N))||x.enumerable});return R};var m=R=>V(_({},"__esModule",{value:!0}),R);var n={};P(n,{HyperliquidErrorCodes:()=>O});module.exports=m(n);var O=(A=>(A[A.INVALID_DERIVATION_PATH=27264]="INVALID_DERIVATION_PATH",A[A.ACTION_PARSING_ERROR=27265]="ACTION_PARSING_ERROR",A))(O||{});0&&(module.exports={HyperliquidErrorCodes});
1
+ "use strict";var m=Object.defineProperty;var t=Object.getOwnPropertyDescriptor;var E=Object.getOwnPropertyNames;var p=Object.prototype.hasOwnProperty;var C=(o,r)=>{for(var e in r)m(o,e,{get:r[e],enumerable:!0})},c=(o,r,e,n)=>{if(r&&typeof r=="object"||typeof r=="function")for(let a of E(r))!p.call(o,a)&&a!==e&&m(o,a,{get:()=>r[a],enumerable:!(n=t(r,a))||n.enumerable});return o};var A=o=>c(m({},"__esModule",{value:!0}),o);var g={};C(g,{HYPERLIQUID_ERRORS:()=>I,HyperliquidCommandError:()=>i,HyperliquidCommandErrorFactory:()=>R,HyperliquidErrorCodes:()=>d});module.exports=A(g);var s=require("@ledgerhq/device-management-kit"),d=(e=>(e.INVALID_DERIVATION_PATH="6a80",e.ACTION_PARSING_ERROR="6a81",e))(d||{});const I={"6a80":{message:"Invalid derivation path"},"6a81":{message:"Action parsing error"}};class i extends s.DeviceExchangeError{constructor(r){super({tag:"HyperliquidCommandError",...r})}}const R=o=>new i(o);0&&(module.exports={HYPERLIQUID_ERRORS,HyperliquidCommandError,HyperliquidCommandErrorFactory,HyperliquidErrorCodes});
2
2
  //# sourceMappingURL=hyperliquidApplicationErrors.js.map
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "version": 3,
3
3
  "sources": ["../../../../../../src/internal/app-binder/command/utils/hyperliquidApplicationErrors.ts"],
4
- "sourcesContent": ["export enum HyperliquidErrorCodes {\n INVALID_DERIVATION_PATH = 0x6a80,\n ACTION_PARSING_ERROR = 0x6a81,\n}\n"],
5
- "mappings": "yaAAA,IAAAA,EAAA,GAAAC,EAAAD,EAAA,2BAAAE,IAAA,eAAAC,EAAAH,GAAO,IAAKE,OACVA,IAAA,wBAA0B,OAA1B,0BACAA,IAAA,qBAAuB,OAAvB,uBAFUA,OAAA",
6
- "names": ["hyperliquidApplicationErrors_exports", "__export", "HyperliquidErrorCodes", "__toCommonJS"]
4
+ "sourcesContent": ["import {\n type CommandErrorArgs,\n type CommandErrors,\n DeviceExchangeError,\n} from \"@ledgerhq/device-management-kit\";\n\nexport enum HyperliquidErrorCodes {\n INVALID_DERIVATION_PATH = \"6a80\",\n ACTION_PARSING_ERROR = \"6a81\",\n}\n\nexport const HYPERLIQUID_ERRORS: CommandErrors<`${HyperliquidErrorCodes}`> = {\n \"6a80\": { message: \"Invalid derivation path\" },\n \"6a81\": { message: \"Action parsing error\" },\n};\n\nexport class HyperliquidCommandError extends DeviceExchangeError<HyperliquidErrorCodes> {\n constructor(args: CommandErrorArgs<HyperliquidErrorCodes>) {\n super({ tag: \"HyperliquidCommandError\", ...args });\n }\n}\n\nexport const HyperliquidCommandErrorFactory = (\n args: CommandErrorArgs<HyperliquidErrorCodes>,\n) => new HyperliquidCommandError(args);\n"],
5
+ "mappings": "yaAAA,IAAAA,EAAA,GAAAC,EAAAD,EAAA,wBAAAE,EAAA,4BAAAC,EAAA,mCAAAC,EAAA,0BAAAC,IAAA,eAAAC,EAAAN,GAAA,IAAAO,EAIO,2CAEKF,OACVA,EAAA,wBAA0B,OAC1BA,EAAA,qBAAuB,OAFbA,OAAA,IAKL,MAAMH,EAAgE,CAC3E,OAAQ,CAAE,QAAS,yBAA0B,EAC7C,OAAQ,CAAE,QAAS,sBAAuB,CAC5C,EAEO,MAAMC,UAAgC,qBAA2C,CACtF,YAAYK,EAA+C,CACzD,MAAM,CAAE,IAAK,0BAA2B,GAAGA,CAAK,CAAC,CACnD,CACF,CAEO,MAAMJ,EACXI,GACG,IAAIL,EAAwBK,CAAI",
6
+ "names": ["hyperliquidApplicationErrors_exports", "__export", "HYPERLIQUID_ERRORS", "HyperliquidCommandError", "HyperliquidCommandErrorFactory", "HyperliquidErrorCodes", "__toCommonJS", "import_device_management_kit", "args"]
7
7
  }
@@ -1,2 +1,2 @@
1
- "use strict";
1
+ "use strict";var d=Object.defineProperty;var y=Object.getOwnPropertyDescriptor;var C=Object.getOwnPropertyNames;var D=Object.prototype.hasOwnProperty;var f=(a,r)=>{for(var c in r)d(a,c,{get:r[c],enumerable:!0})},I=(a,r,c,p)=>{if(r&&typeof r=="object"||typeof r=="function")for(let o of C(r))!D.call(a,o)&&o!==c&&d(a,o,{get:()=>r[o],enumerable:!(p=y(r,o))||p.enumerable});return a};var _=a=>I(d({},"__esModule",{value:!0}),a);var M={};f(M,{SignActionsDeviceAction:()=>h});module.exports=_(M);var e=require("@ledgerhq/device-management-kit"),u=require("purify-ts"),n=require("xstate"),s=require("../../../../api/app-binder/SignActionsDeviceActionTypes"),g=require("../../../app-binder/command/SendMetadataCommand"),l=require("../../../app-binder/task/SendActionsTask"),m=require("../../../app-binder/task/SignActionsTask");const S="Hyperliquid",k=17;class h extends e.XStateDeviceAction{makeStateMachine(r){const{setCertificate:c,sendMetadata:p,sendActions:o,signActions:A}=this.extractDependencies(r);return(0,n.setup)({types:{input:{},context:{},output:{}},actors:{openAppStateMachine:new e.OpenAppDeviceAction({input:{appName:S}}).makeStateMachine(r),setCertificate:(0,n.fromPromise)(({input:t})=>c(t)),sendMetadata:(0,n.fromPromise)(({input:t})=>p(t)),sendActions:(0,n.fromPromise)(({input:t})=>o(t)),signActions:(0,n.fromPromise)(({input:t})=>A(t))},guards:{noInternalError:({context:t})=>t._internalState.error===null,skipOpenApp:({context:t})=>t.input.skipOpenApp===!0},actions:{assignErrorFromEvent:(0,n.assign)({_internalState:({event:t})=>({error:new e.UnknownDAError(t.error instanceof Error?t.error.message:String(t.error)),signature:null,actionIndex:0})})}}).createMachine({id:"SignActionsDeviceAction",initial:"InitialState",context:({input:t})=>({input:t,intermediateValue:{requiredUserInteraction:e.UserInteractionRequired.None,step:s.signActionsDAStateSteps.OPEN_APP},_internalState:{error:null,signature:null,actionIndex:0}}),states:{InitialState:{always:[{target:"SetCertificate",guard:"skipOpenApp"},{target:"OpenAppDeviceAction"}]},OpenAppDeviceAction:{entry:(0,n.assign)({intermediateValue:()=>({requiredUserInteraction:e.UserInteractionRequired.None,step:s.signActionsDAStateSteps.OPEN_APP})}),invoke:{id:"openAppStateMachine",src:"openAppStateMachine",input:()=>({appName:S}),onSnapshot:{actions:(0,n.assign)({intermediateValue:({event:t})=>({...t.snapshot.context.intermediateValue,step:s.signActionsDAStateSteps.OPEN_APP})})},onDone:{target:"CheckOpenAppResult",actions:(0,n.assign)({_internalState:({event:t,context:i})=>t.output.caseOf({Right:()=>i._internalState,Left:E=>({...i._internalState,error:E})})})}}},CheckOpenAppResult:{always:[{target:"SetCertificate",guard:"noInternalError"},{target:"Error"}]},SetCertificate:{entry:(0,n.assign)({intermediateValue:()=>({requiredUserInteraction:e.UserInteractionRequired.None,step:s.signActionsDAStateSteps.SET_CERTIFICATE})}),invoke:{id:"setCertificate",src:"setCertificate",input:({context:t})=>({payload:t.input.certificate,keyUsageNumber:k}),onDone:{target:"SetCertificateResultCheck",actions:(0,n.assign)({_internalState:({event:t,context:i})=>(0,e.isSuccessCommandResult)(t.output)?i._internalState:{...i._internalState,error:t.output.error}})},onError:{target:"Error",actions:"assignErrorFromEvent"}}},SetCertificateResultCheck:{always:[{target:"SendMetadata",guard:"noInternalError"},{target:"Error"}]},SendMetadata:{entry:(0,n.assign)({intermediateValue:()=>({requiredUserInteraction:e.UserInteractionRequired.None,step:s.signActionsDAStateSteps.SEND_METADATA})}),invoke:{id:"sendMetadata",src:"sendMetadata",input:({context:t})=>t.input.signedMetadata,onDone:{target:"SendMetadataResultCheck",actions:(0,n.assign)({_internalState:({event:t,context:i})=>(0,e.isSuccessCommandResult)(t.output)?i._internalState:{...i._internalState,error:t.output.error}})},onError:{target:"Error",actions:"assignErrorFromEvent"}}},SendMetadataResultCheck:{always:[{target:"SendActions",guard:"noInternalError"},{target:"Error"}]},SendActions:{entry:(0,n.assign)({intermediateValue:()=>({requiredUserInteraction:e.UserInteractionRequired.None,step:s.signActionsDAStateSteps.SEND_ACTION})}),invoke:{id:"sendActions",src:"sendActions",input:({context:t})=>t.input.actions,onDone:{target:"SendActionsResultCheck",actions:(0,n.assign)({_internalState:({event:t,context:i})=>(0,e.isSuccessCommandResult)(t.output)?i._internalState:{...i._internalState,error:t.output.error}})},onError:{target:"Error",actions:"assignErrorFromEvent"}}},SendActionsResultCheck:{always:[{target:"SignActions",guard:"noInternalError"},{target:"Error"}]},SignActions:{entry:(0,n.assign)({intermediateValue:()=>({requiredUserInteraction:e.UserInteractionRequired.SignTransaction,step:s.signActionsDAStateSteps.SIGN_ACTIONS})}),invoke:{id:"signActions",src:"signActions",input:({context:t})=>t.input.derivationPath,onDone:{target:"SignActionsResultCheck",actions:(0,n.assign)({_internalState:({event:t,context:i})=>(0,e.isSuccessCommandResult)(t.output)?{...i._internalState,signature:t.output.data}:{...i._internalState,error:t.output.error}})},onError:{target:"Error",actions:"assignErrorFromEvent"}}},SignActionsResultCheck:{always:[{target:"Success",guard:"noInternalError"},{target:"Error"}]},Success:{type:"final"},Error:{type:"final"}},output:({context:t})=>t._internalState.signature?(0,u.Right)(t._internalState.signature):(0,u.Left)(t._internalState.error??new e.UnknownDAError("No error or signature available"))})}extractDependencies(r){return{setCertificate:t=>r.sendCommand(new e.LoadCertificateCommand({certificate:t.payload,keyUsage:t.keyUsageNumber})),sendMetadata:t=>r.sendCommand(new g.SendMetadataCommand({signedMetadata:t})),sendActions:t=>new l.SendActionsTask(r,{actions:t}).run(),signActions:t=>new m.SignActionsTask(r,{derivationPath:t}).run()}}}0&&(module.exports={SignActionsDeviceAction});
2
2
  //# sourceMappingURL=SignActionsDeviceAction.js.map
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "version": 3,
3
- "sources": [],
4
- "sourcesContent": [],
5
- "mappings": "",
6
- "names": []
3
+ "sources": ["../../../../../../src/internal/app-binder/device-action/SignActions/SignActionsDeviceAction.ts"],
4
+ "sourcesContent": ["import { type PkiCertificate } from \"@ledgerhq/context-module\";\nimport {\n type CommandResult,\n type DeviceActionStateMachine,\n type InternalApi,\n isSuccessCommandResult,\n LoadCertificateCommand,\n type LoadCertificateErrorCodes,\n OpenAppDeviceAction,\n type StateMachineTypes,\n UnknownDAError,\n UserInteractionRequired,\n XStateDeviceAction,\n} from \"@ledgerhq/device-management-kit\";\nimport { Left, Right } from \"purify-ts\";\nimport { assign, fromPromise, setup } from \"xstate\";\n\nimport {\n type SignActionsDAError,\n type SignActionsDAInput,\n type SignActionsDAIntermediateValue,\n type SignActionsDAInternalState,\n type SignActionsDAOutput,\n signActionsDAStateSteps,\n} from \"@api/app-binder/SignActionsDeviceActionTypes\";\nimport { type Signature } from \"@api/model/Signature\";\nimport { SendMetadataCommand } from \"@internal/app-binder/command/SendMetadataCommand\";\nimport { type HyperliquidErrorCodes } from \"@internal/app-binder/command/utils/hyperliquidApplicationErrors\";\nimport type { HyperliquidAction } from \"@internal/app-binder/di/appBinderTypes\";\nimport { SendActionsTask } from \"@internal/app-binder/task/SendActionsTask\";\nimport { SignActionsTask } from \"@internal/app-binder/task/SignActionsTask\";\n\nconst APP_NAME = \"Hyperliquid\";\nconst PERPS_DATA_KEY_USAGE = 0x11;\n\nexport type SignActionsMachineDependencies = {\n readonly setCertificate: (\n certificate: PkiCertificate,\n ) => Promise<CommandResult<void, LoadCertificateErrorCodes>>;\n readonly sendMetadata: (\n signedMetadata: Uint8Array,\n ) => Promise<CommandResult<void, HyperliquidErrorCodes>>;\n readonly sendActions: (\n actions: HyperliquidAction[],\n ) => Promise<CommandResult<void, HyperliquidErrorCodes>>;\n readonly signActions: (\n derivationPath: string,\n ) => Promise<CommandResult<Signature[], HyperliquidErrorCodes>>;\n};\n\nexport class SignActionsDeviceAction extends XStateDeviceAction<\n SignActionsDAOutput,\n SignActionsDAInput,\n SignActionsDAError,\n SignActionsDAIntermediateValue,\n SignActionsDAInternalState\n> {\n makeStateMachine(\n internalApi: InternalApi,\n ): DeviceActionStateMachine<\n SignActionsDAOutput,\n SignActionsDAInput,\n SignActionsDAError,\n SignActionsDAIntermediateValue,\n SignActionsDAInternalState\n > {\n type types = StateMachineTypes<\n SignActionsDAOutput,\n SignActionsDAInput,\n SignActionsDAError,\n SignActionsDAIntermediateValue,\n SignActionsDAInternalState\n >;\n\n const { setCertificate, sendMetadata, sendActions, signActions } =\n this.extractDependencies(internalApi);\n\n return setup({\n types: {\n input: {} as types[\"input\"],\n context: {} as types[\"context\"],\n output: {} as types[\"output\"],\n },\n actors: {\n openAppStateMachine: new OpenAppDeviceAction({\n input: { appName: APP_NAME },\n }).makeStateMachine(internalApi),\n setCertificate: fromPromise(({ input }: { input: PkiCertificate }) =>\n setCertificate(input),\n ),\n sendMetadata: fromPromise(({ input }: { input: Uint8Array }) =>\n sendMetadata(input),\n ),\n sendActions: fromPromise(({ input }: { input: HyperliquidAction[] }) =>\n sendActions(input),\n ),\n signActions: fromPromise(({ input }: { input: string }) =>\n signActions(input),\n ),\n },\n guards: {\n noInternalError: ({ context }) => context._internalState.error === null,\n skipOpenApp: ({ context }) => context.input.skipOpenApp === true,\n },\n actions: {\n assignErrorFromEvent: assign({\n _internalState: ({ event }) => ({\n error: new UnknownDAError(\n event[\"error\"] instanceof Error\n ? event[\"error\"].message\n : String(event[\"error\"]),\n ) as SignActionsDAError,\n signature: null,\n actionIndex: 0,\n }),\n }),\n },\n }).createMachine({\n id: \"SignActionsDeviceAction\",\n initial: \"InitialState\",\n context: ({ input }) => ({\n input,\n intermediateValue: {\n requiredUserInteraction: UserInteractionRequired.None,\n step: signActionsDAStateSteps.OPEN_APP,\n },\n _internalState: {\n error: null,\n signature: null,\n actionIndex: 0,\n },\n }),\n states: {\n InitialState: {\n always: [\n { target: \"SetCertificate\", guard: \"skipOpenApp\" },\n { target: \"OpenAppDeviceAction\" },\n ],\n },\n OpenAppDeviceAction: {\n entry: assign({\n intermediateValue: () => ({\n requiredUserInteraction: UserInteractionRequired.None,\n step: signActionsDAStateSteps.OPEN_APP,\n }),\n }),\n invoke: {\n id: \"openAppStateMachine\",\n src: \"openAppStateMachine\",\n input: () => ({ appName: APP_NAME }),\n onSnapshot: {\n actions: assign({\n intermediateValue: ({ event }) => ({\n ...event.snapshot.context.intermediateValue,\n step: signActionsDAStateSteps.OPEN_APP,\n }),\n }),\n },\n onDone: {\n target: \"CheckOpenAppResult\",\n actions: assign({\n _internalState: ({ event, context }) =>\n event.output.caseOf({\n Right: () => context._internalState,\n Left: (error) => ({\n ...context._internalState,\n error,\n }),\n }),\n }),\n },\n },\n },\n CheckOpenAppResult: {\n always: [\n { target: \"SetCertificate\", guard: \"noInternalError\" },\n { target: \"Error\" },\n ],\n },\n SetCertificate: {\n entry: assign({\n intermediateValue: () => ({\n requiredUserInteraction: UserInteractionRequired.None,\n step: signActionsDAStateSteps.SET_CERTIFICATE,\n }),\n }),\n invoke: {\n id: \"setCertificate\",\n src: \"setCertificate\",\n input: ({ context }) => ({\n payload: context.input.certificate,\n keyUsageNumber: PERPS_DATA_KEY_USAGE,\n }),\n onDone: {\n target: \"SetCertificateResultCheck\",\n actions: assign({\n _internalState: ({ event, context }) =>\n isSuccessCommandResult(event.output)\n ? context._internalState\n : {\n ...context._internalState,\n error: event.output.error as SignActionsDAError,\n },\n }),\n },\n onError: {\n target: \"Error\",\n actions: \"assignErrorFromEvent\",\n },\n },\n },\n SetCertificateResultCheck: {\n always: [\n { target: \"SendMetadata\", guard: \"noInternalError\" },\n { target: \"Error\" },\n ],\n },\n SendMetadata: {\n entry: assign({\n intermediateValue: () => ({\n requiredUserInteraction: UserInteractionRequired.None,\n step: signActionsDAStateSteps.SEND_METADATA,\n }),\n }),\n invoke: {\n id: \"sendMetadata\",\n src: \"sendMetadata\",\n input: ({ context }) => context.input.signedMetadata,\n onDone: {\n target: \"SendMetadataResultCheck\",\n actions: assign({\n _internalState: ({ event, context }) =>\n isSuccessCommandResult(event.output)\n ? context._internalState\n : {\n ...context._internalState,\n error: event.output.error as SignActionsDAError,\n },\n }),\n },\n onError: {\n target: \"Error\",\n actions: \"assignErrorFromEvent\",\n },\n },\n },\n SendMetadataResultCheck: {\n always: [\n { target: \"SendActions\", guard: \"noInternalError\" },\n { target: \"Error\" },\n ],\n },\n SendActions: {\n entry: assign({\n intermediateValue: () => ({\n requiredUserInteraction: UserInteractionRequired.None,\n step: signActionsDAStateSteps.SEND_ACTION,\n }),\n }),\n invoke: {\n id: \"sendActions\",\n src: \"sendActions\",\n input: ({ context }) => context.input.actions,\n onDone: {\n target: \"SendActionsResultCheck\",\n actions: assign({\n _internalState: ({ event, context }) =>\n isSuccessCommandResult(event.output)\n ? context._internalState\n : {\n ...context._internalState,\n error: event.output.error as SignActionsDAError,\n },\n }),\n },\n onError: {\n target: \"Error\",\n actions: \"assignErrorFromEvent\",\n },\n },\n },\n SendActionsResultCheck: {\n always: [\n { target: \"SignActions\", guard: \"noInternalError\" },\n { target: \"Error\" },\n ],\n },\n SignActions: {\n entry: assign({\n intermediateValue: () => ({\n requiredUserInteraction: UserInteractionRequired.SignTransaction,\n step: signActionsDAStateSteps.SIGN_ACTIONS,\n }),\n }),\n invoke: {\n id: \"signActions\",\n src: \"signActions\",\n input: ({ context }) => context.input.derivationPath,\n onDone: {\n target: \"SignActionsResultCheck\",\n actions: assign({\n _internalState: ({ event, context }) =>\n isSuccessCommandResult(event.output)\n ? {\n ...context._internalState,\n signature: event.output.data,\n }\n : {\n ...context._internalState,\n error: event.output.error as SignActionsDAError,\n },\n }),\n },\n onError: {\n target: \"Error\",\n actions: \"assignErrorFromEvent\",\n },\n },\n },\n SignActionsResultCheck: {\n always: [\n { target: \"Success\", guard: \"noInternalError\" },\n { target: \"Error\" },\n ],\n },\n Success: { type: \"final\" },\n Error: { type: \"final\" },\n },\n output: ({ context }) =>\n context._internalState.signature\n ? Right(context._internalState.signature)\n : Left(\n context._internalState.error ??\n new UnknownDAError(\"No error or signature available\"),\n ),\n });\n }\n\n extractDependencies(\n internalApi: InternalApi,\n ): SignActionsMachineDependencies {\n const setCertificate = (certificate: PkiCertificate) =>\n internalApi.sendCommand(\n new LoadCertificateCommand({\n certificate: certificate.payload,\n keyUsage: certificate.keyUsageNumber,\n }),\n );\n\n const sendMetadata = (signedMetadata: Uint8Array) =>\n internalApi.sendCommand(new SendMetadataCommand({ signedMetadata }));\n\n const sendActions = (actions: HyperliquidAction[]) =>\n new SendActionsTask(internalApi, { actions }).run();\n\n const signActions = (derivationPath: string) =>\n new SignActionsTask(internalApi, {\n derivationPath,\n }).run();\n\n return {\n setCertificate,\n sendMetadata,\n sendActions,\n signActions,\n };\n }\n}\n"],
5
+ "mappings": "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",
6
+ "names": ["SignActionsDeviceAction_exports", "__export", "SignActionsDeviceAction", "__toCommonJS", "import_device_management_kit", "import_purify_ts", "import_xstate", "import_SignActionsDeviceActionTypes", "import_SendMetadataCommand", "import_SendActionsTask", "import_SignActionsTask", "APP_NAME", "PERPS_DATA_KEY_USAGE", "internalApi", "setCertificate", "sendMetadata", "sendActions", "signActions", "input", "context", "event", "error", "certificate", "signedMetadata", "actions", "derivationPath"]
7
7
  }
@@ -0,0 +1,2 @@
1
+ "use strict";var e=require("@ledgerhq/device-management-kit"),t=require("vitest"),n=require("../../../../api/app-binder/SignActionsDeviceActionTypes"),y=require("../../../app-binder/device-action/__test-utils__/makeInternalApi"),f=require("../../../app-binder/device-action/__test-utils__/setupOpenAppDAMock"),D=require("../../../app-binder/device-action/__test-utils__/testDeviceActionStates"),v=require("./SignActionsDeviceAction");t.vi.mock("@ledgerhq/device-management-kit",async a=>({...await a(),OpenAppDeviceAction:t.vi.fn(()=>({makeStateMachine:t.vi.fn()}))}));const m=new Uint8Array([1,2,3]),S=new Uint8Array([4,5,6]),g={r:"0xaa",s:"0xbb",v:27};let s,r,c,d,A;function I(){return{setCertificate:r,sendMetadata:c,sendActions:d,signActions:A}}(0,t.describe)("SignActionsDeviceAction (Hyperliquid)",()=>{(0,t.beforeEach)(()=>{s=(0,y.makeDeviceActionInternalApiMock)(),r=t.vi.fn(),c=t.vi.fn(),d=t.vi.fn(),A=t.vi.fn()}),(0,t.it)("happy path (skip open): SetCertificate -> SendMetadata -> SignActions (no actions)",()=>new Promise((a,u)=>{(0,f.setupOpenAppDAMock)(),s.getDeviceSessionState.mockReturnValue({sessionStateType:e.DeviceSessionStateType.ReadyWithoutSecureChannel,deviceStatus:e.DeviceStatus.CONNECTED,installedApps:[],currentApp:{name:"Hyperliquid",version:"1.0.0"},deviceModelId:e.DeviceModelId.NANO_X,isSecureConnectionAllowed:!0}),r.mockResolvedValue((0,e.CommandResultFactory)({data:void 0})),c.mockResolvedValue((0,e.CommandResultFactory)({data:void 0})),d.mockResolvedValue((0,e.CommandResultFactory)({data:void 0})),A.mockResolvedValue((0,e.CommandResultFactory)({data:[g]}));const i={derivationPath:"44'/637'/0'/0'",certificate:m,signedMetadata:S,actions:[],skipOpenApp:!0},o=new v.SignActionsDeviceAction({input:i});t.vi.spyOn(o,"extractDependencies").mockReturnValue(I());const p=[{intermediateValue:{requiredUserInteraction:e.UserInteractionRequired.None,step:n.signActionsDAStateSteps.SET_CERTIFICATE},status:e.DeviceActionStatus.Pending},{intermediateValue:{requiredUserInteraction:e.UserInteractionRequired.None,step:n.signActionsDAStateSteps.SEND_METADATA},status:e.DeviceActionStatus.Pending},{intermediateValue:{requiredUserInteraction:e.UserInteractionRequired.None,step:n.signActionsDAStateSteps.SEND_ACTION},status:e.DeviceActionStatus.Pending},{intermediateValue:{requiredUserInteraction:e.UserInteractionRequired.SignTransaction,step:n.signActionsDAStateSteps.SIGN_ACTIONS},status:e.DeviceActionStatus.Pending},{output:[g],status:e.DeviceActionStatus.Completed}];(0,D.testDeviceActionStates)(o,p,s,{onDone:a,onError:u})})),(0,t.it)("happy path: SetCertificate -> SendMetadata -> SendAction -> SignActions",()=>new Promise((a,u)=>{s.getDeviceSessionState.mockReturnValue({sessionStateType:e.DeviceSessionStateType.ReadyWithoutSecureChannel,deviceStatus:e.DeviceStatus.CONNECTED,installedApps:[],currentApp:{name:"Hyperliquid",version:"1.0.0"},deviceModelId:e.DeviceModelId.NANO_X,isSecureConnectionAllowed:!0}),r.mockResolvedValue((0,e.CommandResultFactory)({data:void 0})),c.mockResolvedValue((0,e.CommandResultFactory)({data:void 0})),d.mockResolvedValue((0,e.CommandResultFactory)({data:void 0}));const i=[{r:"0xcc",s:"0xdd",v:27},{r:"0xcc",s:"0xdd",v:27}];A.mockResolvedValue((0,e.CommandResultFactory)({data:i}));const o=[{type:"order",orders:[{a:0,b:!0,p:"100",s:"100",t:{limit:{tif:"Gtc"}},r:!1}],grouping:"na",builder:{b:"0x1234567890123456789012345678901234567890",f:1},nonce:1},{type:"updateLeverage",asset:0,isCross:!1,leverage:10,nonce:2}],p={derivationPath:"44'/637'/0'/0'",certificate:m,signedMetadata:S,actions:o,skipOpenApp:!0},l=new v.SignActionsDeviceAction({input:p});t.vi.spyOn(l,"extractDependencies").mockReturnValue(I());const C=[{intermediateValue:{requiredUserInteraction:e.UserInteractionRequired.None,step:n.signActionsDAStateSteps.SET_CERTIFICATE},status:e.DeviceActionStatus.Pending},{intermediateValue:{requiredUserInteraction:e.UserInteractionRequired.None,step:n.signActionsDAStateSteps.SEND_METADATA},status:e.DeviceActionStatus.Pending},{intermediateValue:{requiredUserInteraction:e.UserInteractionRequired.None,step:n.signActionsDAStateSteps.SEND_ACTION},status:e.DeviceActionStatus.Pending},{intermediateValue:{requiredUserInteraction:e.UserInteractionRequired.SignTransaction,step:n.signActionsDAStateSteps.SIGN_ACTIONS},status:e.DeviceActionStatus.Pending},{output:i,status:e.DeviceActionStatus.Completed}];(0,D.testDeviceActionStates)(l,C,s,{onDone:()=>{expect(r).toHaveBeenCalledTimes(1),expect(r).toHaveBeenCalledWith({payload:m,keyUsageNumber:17}),expect(c).toHaveBeenCalledTimes(1),expect(c).toHaveBeenCalledWith(S),expect(d).toHaveBeenCalledTimes(1),expect(d).toHaveBeenCalledWith(o),expect(A).toHaveBeenCalledTimes(1),a()},onError:u})})),(0,t.it)("calls SetCertificate then SendMetadata then SendActions then SignActions in order (no actions)",()=>new Promise((a,u)=>{(0,f.setupOpenAppDAMock)(),s.getDeviceSessionState.mockReturnValue({sessionStateType:e.DeviceSessionStateType.ReadyWithoutSecureChannel,deviceStatus:e.DeviceStatus.CONNECTED,installedApps:[],currentApp:{name:"Hyperliquid",version:"1.0.0"},deviceModelId:e.DeviceModelId.NANO_X,isSecureConnectionAllowed:!0});const i=[];r.mockImplementation(()=>(i.push("setCertificate"),Promise.resolve((0,e.CommandResultFactory)({data:void 0})))),c.mockImplementation(()=>(i.push("sendMetadata"),Promise.resolve((0,e.CommandResultFactory)({data:void 0})))),d.mockImplementation(()=>(i.push("sendActions"),Promise.resolve((0,e.CommandResultFactory)({data:void 0})))),A.mockImplementation(()=>(i.push("signActions"),Promise.resolve((0,e.CommandResultFactory)({data:[g]}))));const o={derivationPath:"44'/637'/0'/0'",certificate:m,signedMetadata:S,actions:[],skipOpenApp:!0},p=new v.SignActionsDeviceAction({input:o});t.vi.spyOn(p,"extractDependencies").mockReturnValue(I());const l=[{intermediateValue:{requiredUserInteraction:e.UserInteractionRequired.None,step:n.signActionsDAStateSteps.SET_CERTIFICATE},status:e.DeviceActionStatus.Pending},{intermediateValue:{requiredUserInteraction:e.UserInteractionRequired.None,step:n.signActionsDAStateSteps.SEND_METADATA},status:e.DeviceActionStatus.Pending},{intermediateValue:{requiredUserInteraction:e.UserInteractionRequired.None,step:n.signActionsDAStateSteps.SEND_ACTION},status:e.DeviceActionStatus.Pending},{intermediateValue:{requiredUserInteraction:e.UserInteractionRequired.SignTransaction,step:n.signActionsDAStateSteps.SIGN_ACTIONS},status:e.DeviceActionStatus.Pending},{output:[g],status:e.DeviceActionStatus.Completed}];(0,D.testDeviceActionStates)(p,l,s,{onDone:()=>{expect(i).toEqual(["setCertificate","sendMetadata","sendActions","signActions"]),a()},onError:u})}))});
2
+ //# sourceMappingURL=SignActionsDeviceAction.test.js.map
@@ -0,0 +1,7 @@
1
+ {
2
+ "version": 3,
3
+ "sources": ["../../../../../../src/internal/app-binder/device-action/SignActions/SignActionsDeviceAction.test.ts"],
4
+ "sourcesContent": ["import {\n CommandResultFactory,\n type DeviceActionState,\n DeviceActionStatus,\n DeviceModelId,\n DeviceSessionStateType,\n DeviceStatus,\n UserInteractionRequired,\n} from \"@ledgerhq/device-management-kit\";\nimport { beforeEach, describe, it, vi } from \"vitest\";\n\nimport {\n type SignActionsDAError,\n type SignActionsDAInput,\n type SignActionsDAIntermediateValue,\n type SignActionsDAOutput,\n signActionsDAStateSteps,\n} from \"@api/app-binder/SignActionsDeviceActionTypes\";\nimport { makeDeviceActionInternalApiMock } from \"@internal/app-binder/device-action/__test-utils__/makeInternalApi\";\nimport { setupOpenAppDAMock } from \"@internal/app-binder/device-action/__test-utils__/setupOpenAppDAMock\";\nimport { testDeviceActionStates } from \"@internal/app-binder/device-action/__test-utils__/testDeviceActionStates\";\nimport type { HyperliquidAction } from \"@internal/app-binder/di/appBinderTypes\";\n\nimport { SignActionsDeviceAction } from \"./SignActionsDeviceAction\";\n\nvi.mock(\"@ledgerhq/device-management-kit\", async (importOriginal) => {\n const original =\n // eslint-disable-next-line @typescript-eslint/consistent-type-imports\n await importOriginal<typeof import(\"@ledgerhq/device-management-kit\")>();\n return {\n ...original,\n OpenAppDeviceAction: vi.fn(() => ({\n makeStateMachine: vi.fn(),\n })),\n };\n});\n\nconst exampleCertificate = new Uint8Array([0x01, 0x02, 0x03]);\nconst exampleMetadata = new Uint8Array([0x04, 0x05, 0x06]);\n\nconst exampleSignature = {\n r: \"0xaa\",\n s: \"0xbb\",\n v: 27,\n};\n\nlet apiMock: ReturnType<typeof makeDeviceActionInternalApiMock>;\nlet setCertificateMock: ReturnType<typeof vi.fn>;\nlet sendMetadataMock: ReturnType<typeof vi.fn>;\nlet sendActionsMock: ReturnType<typeof vi.fn>;\nlet signActionsMock: ReturnType<typeof vi.fn>;\n\nfunction extractDeps() {\n return {\n setCertificate: setCertificateMock,\n sendMetadata: sendMetadataMock,\n sendActions: sendActionsMock,\n signActions: signActionsMock,\n };\n}\n\ndescribe(\"SignActionsDeviceAction (Hyperliquid)\", () => {\n beforeEach(() => {\n apiMock = makeDeviceActionInternalApiMock();\n setCertificateMock = vi.fn();\n sendMetadataMock = vi.fn();\n sendActionsMock = vi.fn();\n signActionsMock = vi.fn();\n });\n\n it(\"happy path (skip open): SetCertificate -> SendMetadata -> SignActions (no actions)\", () =>\n new Promise<void>((resolve, reject) => {\n setupOpenAppDAMock();\n apiMock.getDeviceSessionState.mockReturnValue({\n sessionStateType: DeviceSessionStateType.ReadyWithoutSecureChannel,\n deviceStatus: DeviceStatus.CONNECTED,\n installedApps: [],\n currentApp: { name: \"Hyperliquid\", version: \"1.0.0\" },\n deviceModelId: DeviceModelId.NANO_X,\n isSecureConnectionAllowed: true,\n });\n\n setCertificateMock.mockResolvedValue(\n CommandResultFactory({ data: undefined }),\n );\n sendMetadataMock.mockResolvedValue(\n CommandResultFactory({ data: undefined }),\n );\n sendActionsMock.mockResolvedValue(\n CommandResultFactory({ data: undefined }),\n );\n signActionsMock.mockResolvedValue(\n CommandResultFactory({ data: [exampleSignature] }),\n );\n\n const input: SignActionsDAInput = {\n derivationPath: \"44'/637'/0'/0'\",\n certificate: exampleCertificate,\n signedMetadata: exampleMetadata,\n actions: [],\n skipOpenApp: true,\n };\n\n const action = new SignActionsDeviceAction({ input });\n vi.spyOn(action, \"extractDependencies\").mockReturnValue(extractDeps());\n\n const expected = [\n {\n intermediateValue: {\n requiredUserInteraction: UserInteractionRequired.None,\n step: signActionsDAStateSteps.SET_CERTIFICATE,\n },\n status: DeviceActionStatus.Pending,\n },\n {\n intermediateValue: {\n requiredUserInteraction: UserInteractionRequired.None,\n step: signActionsDAStateSteps.SEND_METADATA,\n },\n status: DeviceActionStatus.Pending,\n },\n {\n intermediateValue: {\n requiredUserInteraction: UserInteractionRequired.None,\n step: signActionsDAStateSteps.SEND_ACTION,\n },\n status: DeviceActionStatus.Pending,\n },\n {\n intermediateValue: {\n requiredUserInteraction: UserInteractionRequired.SignTransaction,\n step: signActionsDAStateSteps.SIGN_ACTIONS,\n },\n status: DeviceActionStatus.Pending,\n },\n {\n output: [exampleSignature],\n status: DeviceActionStatus.Completed,\n },\n ] as DeviceActionState<\n SignActionsDAOutput,\n SignActionsDAError,\n SignActionsDAIntermediateValue\n >[];\n\n testDeviceActionStates<\n SignActionsDAOutput,\n SignActionsDAInput,\n SignActionsDAError,\n SignActionsDAIntermediateValue\n >(action, expected, apiMock, { onDone: resolve, onError: reject });\n }));\n\n it(\"happy path: SetCertificate -> SendMetadata -> SendAction -> SignActions\", () =>\n new Promise<void>((resolve, reject) => {\n // GIVEN\n apiMock.getDeviceSessionState.mockReturnValue({\n sessionStateType: DeviceSessionStateType.ReadyWithoutSecureChannel,\n deviceStatus: DeviceStatus.CONNECTED,\n installedApps: [],\n currentApp: { name: \"Hyperliquid\", version: \"1.0.0\" },\n deviceModelId: DeviceModelId.NANO_X,\n isSecureConnectionAllowed: true,\n });\n\n setCertificateMock.mockResolvedValue(\n CommandResultFactory({ data: undefined }),\n );\n sendMetadataMock.mockResolvedValue(\n CommandResultFactory({ data: undefined }),\n );\n sendActionsMock.mockResolvedValue(\n CommandResultFactory({ data: undefined }),\n );\n const exampleSignature2 = [\n {\n r: \"0xcc\",\n s: \"0xdd\",\n v: 27,\n },\n {\n r: \"0xcc\",\n s: \"0xdd\",\n v: 27,\n },\n ];\n signActionsMock.mockResolvedValue(\n CommandResultFactory({ data: exampleSignature2 }),\n );\n\n const actions: HyperliquidAction[] = [\n {\n type: \"order\",\n orders: [\n {\n a: 0,\n b: true,\n p: \"100\",\n s: \"100\",\n t: {\n limit: {\n tif: \"Gtc\",\n },\n },\n r: false,\n },\n ],\n grouping: \"na\",\n builder: {\n b: \"0x1234567890123456789012345678901234567890\",\n f: 1,\n },\n nonce: 1,\n },\n {\n type: \"updateLeverage\",\n asset: 0,\n isCross: false,\n leverage: 10,\n nonce: 2,\n },\n ];\n const input: SignActionsDAInput = {\n derivationPath: \"44'/637'/0'/0'\",\n certificate: exampleCertificate,\n signedMetadata: exampleMetadata,\n actions,\n skipOpenApp: true,\n };\n\n // WHEN\n const action = new SignActionsDeviceAction({ input });\n vi.spyOn(action, \"extractDependencies\").mockReturnValue(extractDeps());\n\n // THEN\n const expected = [\n {\n intermediateValue: {\n requiredUserInteraction: UserInteractionRequired.None,\n step: signActionsDAStateSteps.SET_CERTIFICATE,\n },\n status: DeviceActionStatus.Pending,\n },\n {\n intermediateValue: {\n requiredUserInteraction: UserInteractionRequired.None,\n step: signActionsDAStateSteps.SEND_METADATA,\n },\n status: DeviceActionStatus.Pending,\n },\n {\n intermediateValue: {\n requiredUserInteraction: UserInteractionRequired.None,\n step: signActionsDAStateSteps.SEND_ACTION,\n },\n status: DeviceActionStatus.Pending,\n },\n {\n intermediateValue: {\n requiredUserInteraction: UserInteractionRequired.SignTransaction,\n step: signActionsDAStateSteps.SIGN_ACTIONS,\n },\n status: DeviceActionStatus.Pending,\n },\n {\n output: exampleSignature2,\n status: DeviceActionStatus.Completed,\n },\n ] as DeviceActionState<\n SignActionsDAOutput,\n SignActionsDAError,\n SignActionsDAIntermediateValue\n >[];\n\n testDeviceActionStates<\n SignActionsDAOutput,\n SignActionsDAInput,\n SignActionsDAError,\n SignActionsDAIntermediateValue\n >(action, expected, apiMock, {\n onDone: () => {\n expect(setCertificateMock).toHaveBeenCalledTimes(1);\n expect(setCertificateMock).toHaveBeenCalledWith({\n payload: exampleCertificate,\n keyUsageNumber: 0x11,\n });\n expect(sendMetadataMock).toHaveBeenCalledTimes(1);\n expect(sendMetadataMock).toHaveBeenCalledWith(exampleMetadata);\n expect(sendActionsMock).toHaveBeenCalledTimes(1);\n expect(sendActionsMock).toHaveBeenCalledWith(actions);\n expect(signActionsMock).toHaveBeenCalledTimes(1);\n resolve();\n },\n onError: reject,\n });\n }));\n\n it(\"calls SetCertificate then SendMetadata then SendActions then SignActions in order (no actions)\", () =>\n new Promise<void>((resolve, reject) => {\n setupOpenAppDAMock();\n apiMock.getDeviceSessionState.mockReturnValue({\n sessionStateType: DeviceSessionStateType.ReadyWithoutSecureChannel,\n deviceStatus: DeviceStatus.CONNECTED,\n installedApps: [],\n currentApp: { name: \"Hyperliquid\", version: \"1.0.0\" },\n deviceModelId: DeviceModelId.NANO_X,\n isSecureConnectionAllowed: true,\n });\n\n const callOrder: string[] = [];\n setCertificateMock.mockImplementation(() => {\n callOrder.push(\"setCertificate\");\n return Promise.resolve(CommandResultFactory({ data: undefined }));\n });\n sendMetadataMock.mockImplementation(() => {\n callOrder.push(\"sendMetadata\");\n return Promise.resolve(CommandResultFactory({ data: undefined }));\n });\n sendActionsMock.mockImplementation(() => {\n callOrder.push(\"sendActions\");\n return Promise.resolve(CommandResultFactory({ data: undefined }));\n });\n signActionsMock.mockImplementation(() => {\n callOrder.push(\"signActions\");\n return Promise.resolve(\n CommandResultFactory({ data: [exampleSignature] }),\n );\n });\n\n const input: SignActionsDAInput = {\n derivationPath: \"44'/637'/0'/0'\",\n certificate: exampleCertificate,\n signedMetadata: exampleMetadata,\n actions: [],\n skipOpenApp: true,\n };\n\n const action = new SignActionsDeviceAction({ input });\n vi.spyOn(action, \"extractDependencies\").mockReturnValue(extractDeps());\n\n const expected = [\n {\n intermediateValue: {\n requiredUserInteraction: UserInteractionRequired.None,\n step: signActionsDAStateSteps.SET_CERTIFICATE,\n },\n status: DeviceActionStatus.Pending,\n },\n {\n intermediateValue: {\n requiredUserInteraction: UserInteractionRequired.None,\n step: signActionsDAStateSteps.SEND_METADATA,\n },\n status: DeviceActionStatus.Pending,\n },\n {\n intermediateValue: {\n requiredUserInteraction: UserInteractionRequired.None,\n step: signActionsDAStateSteps.SEND_ACTION,\n },\n status: DeviceActionStatus.Pending,\n },\n {\n intermediateValue: {\n requiredUserInteraction: UserInteractionRequired.SignTransaction,\n step: signActionsDAStateSteps.SIGN_ACTIONS,\n },\n status: DeviceActionStatus.Pending,\n },\n {\n output: [exampleSignature],\n status: DeviceActionStatus.Completed,\n },\n ] as DeviceActionState<\n SignActionsDAOutput,\n SignActionsDAError,\n SignActionsDAIntermediateValue\n >[];\n\n testDeviceActionStates<\n SignActionsDAOutput,\n SignActionsDAInput,\n SignActionsDAError,\n SignActionsDAIntermediateValue\n >(action, expected, apiMock, {\n onDone: () => {\n expect(callOrder).toEqual([\n \"setCertificate\",\n \"sendMetadata\",\n \"sendActions\",\n \"signActions\",\n ]);\n resolve();\n },\n onError: reject,\n });\n }));\n});\n"],
5
+ "mappings": "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",
6
+ "names": ["import_device_management_kit", "import_vitest", "import_SignActionsDeviceActionTypes", "import_makeInternalApi", "import_setupOpenAppDAMock", "import_testDeviceActionStates", "import_SignActionsDeviceAction", "importOriginal", "exampleCertificate", "exampleMetadata", "exampleSignature", "apiMock", "setCertificateMock", "sendMetadataMock", "sendActionsMock", "signActionsMock", "extractDeps", "resolve", "reject", "input", "action", "expected", "exampleSignature2", "actions", "callOrder"]
7
+ }
@@ -0,0 +1,2 @@
1
+ "use strict";var o=Object.defineProperty;var a=Object.getOwnPropertyDescriptor;var c=Object.getOwnPropertyNames;var s=Object.prototype.hasOwnProperty;var d=(t,n)=>{for(var i in n)o(t,i,{get:n[i],enumerable:!0})},g=(t,n,i,f)=>{if(n&&typeof n=="object"||typeof n=="function")for(let r of c(n))!s.call(t,r)&&r!==i&&o(t,r,{get:()=>n[r],enumerable:!(f=a(n,r))||f.enumerable});return t};var p=t=>g(o({},"__esModule",{value:!0}),t);var v={};d(v,{makeDeviceActionInternalApiMock:()=>m});module.exports=p(v);var e=require("vitest");function m(){return{sendApdu:e.vi.fn(),sendCommand:e.vi.fn().mockResolvedValue(void 0),getDeviceModel:e.vi.fn(),getDeviceSessionState:e.vi.fn(),getDeviceSessionStateObservable:e.vi.fn(),setDeviceSessionState:e.vi.fn(),getManagerApiService:e.vi.fn(),getSecureChannelService:e.vi.fn(),loggerFactory:e.vi.fn(t=>({debug:e.vi.fn(),info:e.vi.fn(),warn:e.vi.fn(),error:e.vi.fn(),subscribers:[]}))}}0&&(module.exports={makeDeviceActionInternalApiMock});
2
+ //# sourceMappingURL=makeInternalApi.js.map
@@ -0,0 +1,7 @@
1
+ {
2
+ "version": 3,
3
+ "sources": ["../../../../../../src/internal/app-binder/device-action/__test-utils__/makeInternalApi.ts"],
4
+ "sourcesContent": ["import { type InternalApi } from \"@ledgerhq/device-management-kit\";\nimport { type Mocked } from \"vitest\";\nimport { vi } from \"vitest\";\n\nexport function makeDeviceActionInternalApiMock(): Mocked<InternalApi> {\n return {\n sendApdu: vi.fn(),\n sendCommand: vi.fn().mockResolvedValue(undefined),\n getDeviceModel: vi.fn(),\n getDeviceSessionState: vi.fn(),\n getDeviceSessionStateObservable: vi.fn(),\n setDeviceSessionState: vi.fn(),\n getManagerApiService: vi.fn(),\n getSecureChannelService: vi.fn(),\n loggerFactory: vi.fn((_tag: string) => ({\n debug: vi.fn(),\n info: vi.fn(),\n warn: vi.fn(),\n error: vi.fn(),\n subscribers: [],\n })),\n };\n}\n"],
5
+ "mappings": "yaAAA,IAAAA,EAAA,GAAAC,EAAAD,EAAA,qCAAAE,IAAA,eAAAC,EAAAH,GAEA,IAAAI,EAAmB,kBAEZ,SAASF,GAAuD,CACrE,MAAO,CACL,SAAU,KAAG,GAAG,EAChB,YAAa,KAAG,GAAG,EAAE,kBAAkB,MAAS,EAChD,eAAgB,KAAG,GAAG,EACtB,sBAAuB,KAAG,GAAG,EAC7B,gCAAiC,KAAG,GAAG,EACvC,sBAAuB,KAAG,GAAG,EAC7B,qBAAsB,KAAG,GAAG,EAC5B,wBAAyB,KAAG,GAAG,EAC/B,cAAe,KAAG,GAAIG,IAAkB,CACtC,MAAO,KAAG,GAAG,EACb,KAAM,KAAG,GAAG,EACZ,KAAM,KAAG,GAAG,EACZ,MAAO,KAAG,GAAG,EACb,YAAa,CAAC,CAChB,EAAE,CACJ,CACF",
6
+ "names": ["makeInternalApi_exports", "__export", "makeDeviceActionInternalApiMock", "__toCommonJS", "import_vitest", "_tag"]
7
+ }
@@ -0,0 +1,2 @@
1
+ "use strict";var a=Object.defineProperty;var c=Object.getOwnPropertyDescriptor;var f=Object.getOwnPropertyNames;var d=Object.prototype.hasOwnProperty;var s=(e,n)=>{for(var i in n)a(e,i,{get:n[i],enumerable:!0})},u=(e,n,i,m)=>{if(n&&typeof n=="object"||typeof n=="function")for(let t of f(n))!d.call(e,t)&&t!==i&&a(e,t,{get:()=>n[t],enumerable:!(m=c(n,t))||m.enumerable});return e};var k=e=>u(a({},"__esModule",{value:!0}),e);var A={};s(A,{setupOpenAppDAMock:()=>l});module.exports=k(A);var o=require("@ledgerhq/device-management-kit"),p=require("purify-ts"),r=require("xstate");const l=e=>{o.OpenAppDeviceAction.mockImplementation(()=>({makeStateMachine:vi.fn().mockImplementation(()=>(0,r.createMachine)({initial:"pending",states:{pending:{entry:(0,r.assign)({intermediateValue:{requiredUserInteraction:o.UserInteractionRequired.ConfirmOpenApp}}),after:{0:"done"}},done:{type:"final"}},output:()=>e?(0,p.Left)(e):(0,p.Right)(void 0)}))}))};0&&(module.exports={setupOpenAppDAMock});
2
+ //# sourceMappingURL=setupOpenAppDAMock.js.map
@@ -0,0 +1,7 @@
1
+ {
2
+ "version": 3,
3
+ "sources": ["../../../../../../src/internal/app-binder/device-action/__test-utils__/setupOpenAppDAMock.ts"],
4
+ "sourcesContent": ["import {\n OpenAppDeviceAction,\n UserInteractionRequired,\n} from \"@ledgerhq/device-management-kit\";\nimport { Left, Right } from \"purify-ts\";\nimport { type Mock } from \"vitest\";\nimport { assign, createMachine } from \"xstate\";\n\nexport const setupOpenAppDAMock = (error?: unknown) => {\n (OpenAppDeviceAction as Mock).mockImplementation(() => ({\n makeStateMachine: vi.fn().mockImplementation(() =>\n createMachine({\n initial: \"pending\",\n states: {\n pending: {\n entry: assign({\n intermediateValue: {\n requiredUserInteraction: UserInteractionRequired.ConfirmOpenApp,\n },\n }),\n after: {\n 0: \"done\",\n },\n },\n done: {\n type: \"final\",\n },\n },\n output: () => (error ? Left(error) : Right(undefined)),\n }),\n ),\n }));\n};\n"],
5
+ "mappings": "yaAAA,IAAAA,EAAA,GAAAC,EAAAD,EAAA,wBAAAE,IAAA,eAAAC,EAAAH,GAAA,IAAAI,EAGO,2CACPC,EAA4B,qBAE5BC,EAAsC,kBAE/B,MAAMJ,EAAsBK,GAAoB,CACpD,sBAA6B,mBAAmB,KAAO,CACtD,iBAAkB,GAAG,GAAG,EAAE,mBAAmB,OAC3C,iBAAc,CACZ,QAAS,UACT,OAAQ,CACN,QAAS,CACP,SAAO,UAAO,CACZ,kBAAmB,CACjB,wBAAyB,0BAAwB,cACnD,CACF,CAAC,EACD,MAAO,CACL,EAAG,MACL,CACF,EACA,KAAM,CACJ,KAAM,OACR,CACF,EACA,OAAQ,IAAOA,KAAQ,QAAKA,CAAK,KAAI,SAAM,MAAS,CACtD,CAAC,CACH,CACF,EAAE,CACJ",
6
+ "names": ["setupOpenAppDAMock_exports", "__export", "setupOpenAppDAMock", "__toCommonJS", "import_device_management_kit", "import_purify_ts", "import_xstate", "error"]
7
+ }
@@ -0,0 +1,2 @@
1
+ "use strict";var c=Object.defineProperty;var s=Object.getOwnPropertyDescriptor;var l=Object.getOwnPropertyNames;var v=Object.prototype.hasOwnProperty;var A=(t,e)=>{for(var o in e)c(t,o,{get:e[o],enumerable:!0})},d=(t,e,o,i)=>{if(e&&typeof e=="object"||typeof e=="function")for(let r of l(e))!v.call(t,r)&&r!==o&&c(t,r,{get:()=>e[r],enumerable:!(i=s(e,r))||i.enumerable});return t};var m=t=>d(c({},"__esModule",{value:!0}),t);var I={};A(I,{testDeviceActionStates:()=>D});module.exports=m(I);function D(t,e,o,{onDone:i,onError:r}){const a=[],{observable:u,cancel:p}=t._execute(o);return u.subscribe({next:n=>{a.push(n)},error:n=>{r(n)},complete:()=>{try{expect(a).toEqual(e),i()}catch(n){r(n)}}}),{observable:u,cancel:p}}0&&(module.exports={testDeviceActionStates});
2
+ //# sourceMappingURL=testDeviceActionStates.js.map
@@ -0,0 +1,7 @@
1
+ {
2
+ "version": 3,
3
+ "sources": ["../../../../../../src/internal/app-binder/device-action/__test-utils__/testDeviceActionStates.ts"],
4
+ "sourcesContent": ["import {\n type DeviceAction,\n type DeviceActionIntermediateValue,\n type DeviceActionState,\n type DmkError,\n type InternalApi,\n} from \"@ledgerhq/device-management-kit\";\n\n/**\n * Test that the states emitted by a device action match the expected states.\n * @param deviceAction The device action to test.\n * @param expectedStates The expected states.\n * @param callbacks { onDone, onError } The callbacks to call when the test is done or an error occurs.\n */\nexport function testDeviceActionStates<\n Output,\n Input,\n Error extends DmkError,\n IntermediateValue extends DeviceActionIntermediateValue,\n>(\n deviceAction: DeviceAction<Output, Input, Error, IntermediateValue>,\n expectedStates: Array<DeviceActionState<Output, Error, IntermediateValue>>,\n internalApi: InternalApi,\n {\n onDone,\n onError,\n }: {\n onDone: () => void;\n onError: (error: Error) => void;\n },\n) {\n const observedStates: Array<\n DeviceActionState<Output, Error, IntermediateValue>\n > = [];\n\n const { observable, cancel } = deviceAction._execute(internalApi);\n observable.subscribe({\n next: (state) => {\n observedStates.push(state);\n },\n error: (error) => {\n onError(error);\n },\n complete: () => {\n try {\n expect(observedStates).toEqual(expectedStates);\n onDone();\n } catch (e) {\n onError(e as Error);\n }\n },\n });\n return { observable, cancel };\n}\n"],
5
+ "mappings": "yaAAA,IAAAA,EAAA,GAAAC,EAAAD,EAAA,4BAAAE,IAAA,eAAAC,EAAAH,GAcO,SAASE,EAMdE,EACAC,EACAC,EACA,CACE,OAAAC,EACA,QAAAC,CACF,EAIA,CACA,MAAMC,EAEF,CAAC,EAEC,CAAE,WAAAC,EAAY,OAAAC,CAAO,EAAIP,EAAa,SAASE,CAAW,EAChE,OAAAI,EAAW,UAAU,CACnB,KAAOE,GAAU,CACfH,EAAe,KAAKG,CAAK,CAC3B,EACA,MAAQC,GAAU,CAChBL,EAAQK,CAAK,CACf,EACA,SAAU,IAAM,CACd,GAAI,CACF,OAAOJ,CAAc,EAAE,QAAQJ,CAAc,EAC7CE,EAAO,CACT,OAASO,EAAG,CACVN,EAAQM,CAAU,CACpB,CACF,CACF,CAAC,EACM,CAAE,WAAAJ,EAAY,OAAAC,CAAO,CAC9B",
6
+ "names": ["testDeviceActionStates_exports", "__export", "testDeviceActionStates", "__toCommonJS", "deviceAction", "expectedStates", "internalApi", "onDone", "onError", "observedStates", "observable", "cancel", "state", "error", "e"]
7
+ }
@@ -1,2 +1,2 @@
1
- "use strict";var s=Object.defineProperty;var e=Object.getOwnPropertyDescriptor;var r=Object.getOwnPropertyNames;var t=Object.prototype.hasOwnProperty;var B=(n,p)=>{for(var o in p)s(n,o,{get:p[o],enumerable:!0})},a=(n,p,o,d)=>{if(p&&typeof p=="object"||typeof p=="function")for(let i of r(p))!t.call(n,i)&&i!==o&&s(n,i,{get:()=>p[i],enumerable:!(d=e(p,i))||d.enumerable});return n};var c=n=>a(s({},"__esModule",{value:!0}),n);var y={};B(y,{appBinderTypes:()=>g});module.exports=c(y);const g={AppBinding:Symbol.for("AppBinding")};0&&(module.exports={appBinderTypes});
1
+ "use strict";var t=Object.defineProperty;var a=Object.getOwnPropertyDescriptor;var p=Object.getOwnPropertyNames;var s=Object.prototype.hasOwnProperty;var d=(n,e)=>{for(var i in e)t(n,i,{get:e[i],enumerable:!0})},b=(n,e,i,o)=>{if(e&&typeof e=="object"||typeof e=="function")for(let r of p(e))!s.call(n,r)&&r!==i&&t(n,r,{get:()=>e[r],enumerable:!(o=a(e,r))||o.enumerable});return n};var m=n=>b(t({},"__esModule",{value:!0}),n);var l={};d(l,{appBinderTypes:()=>u});module.exports=m(l);const u={AppBinding:Symbol.for("AppBinding")};0&&(module.exports={appBinderTypes});
2
2
  //# sourceMappingURL=appBinderTypes.js.map
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "version": 3,
3
3
  "sources": ["../../../../../src/internal/app-binder/di/appBinderTypes.ts"],
4
- "sourcesContent": ["export const appBinderTypes = {\n AppBinding: Symbol.for(\"AppBinding\"),\n} as const;\n"],
5
- "mappings": "yaAAA,IAAAA,EAAA,GAAAC,EAAAD,EAAA,oBAAAE,IAAA,eAAAC,EAAAH,GAAO,MAAME,EAAiB,CAC5B,WAAY,OAAO,IAAI,YAAY,CACrC",
4
+ "sourcesContent": ["import type { HexaString } from \"@ledgerhq/device-management-kit\";\n\nexport const appBinderTypes = {\n AppBinding: Symbol.for(\"AppBinding\"),\n} as const;\n\n/** Order structure used in Hyperliquid actions (create_order / update_order). */\nexport type Order = {\n a: number; // Asset\n b: boolean; // buy: true, sell: false\n p: string; // Price in USDC\n s: string; // Size is the price in coin/token unit\n r: boolean; // reduceOnly\n t:\n | {\n limit: {\n tif: \"Alo\" | \"Ioc\" | \"Gtc\";\n };\n }\n | {\n trigger: {\n isMarket: boolean;\n triggerPx: string;\n tpsl: \"tp\" | \"sl\";\n };\n }; // Type\n};\n\n/**\n * One action to send to the device. The task will serialize it to TLV\n * and send it via SendActionCommand.\n * Serialization follows specs.md \"Set action to sign\" (create_order / update_order / cancel_order / leverage / approveBuilderFee).\n */\nexport type HyperliquidAction =\n | {\n readonly type: \"order\";\n orders: Order[];\n grouping: \"na\" | \"normalTpsl\" | \"positionTpsl\";\n builder?: {\n b: HexaString;\n f: number;\n };\n nonce: number;\n }\n | {\n type: \"modify\";\n modifies: {\n oid: number;\n order: Order;\n }[];\n nonce: number;\n }\n | {\n type: \"batchModify\";\n modifies: {\n oid: number;\n order: Order;\n }[];\n nonce: number;\n }\n | {\n type: \"cancel\";\n cancels: {\n a: number; // asset id\n o: number; // oid\n }[];\n nonce: number;\n }\n | {\n type: \"updateLeverage\";\n asset: number; // index of coin\n isCross: boolean; // cross-leverage\n leverage: number;\n nonce: number;\n }\n | {\n type: \"approveBuilderFee\";\n hyperliquidChain: \"Mainnet\" | \"Testnet\";\n signatureChainId: string; // chainId in hex format. Ex: 0xa4b1 for Arbitrum\n maxFeeRate: string;\n builder: HexaString;\n nonce: number;\n }\n | {\n type: \"updateIsolatedMargin\";\n asset: number; // index of coin\n isBuy: boolean; // cross-leverage\n ntli: number;\n nonce: number;\n };\n"],
5
+ "mappings": "yaAAA,IAAAA,EAAA,GAAAC,EAAAD,EAAA,oBAAAE,IAAA,eAAAC,EAAAH,GAEO,MAAME,EAAiB,CAC5B,WAAY,OAAO,IAAI,YAAY,CACrC",
6
6
  "names": ["appBinderTypes_exports", "__export", "appBinderTypes", "__toCommonJS"]
7
7
  }
@@ -0,0 +1,2 @@
1
+ "use strict";var s=Object.defineProperty;var d=Object.getOwnPropertyDescriptor;var m=Object.getOwnPropertyNames;var c=Object.prototype.hasOwnProperty;var l=(r,i)=>{for(var o in i)s(r,o,{get:i[o],enumerable:!0})},u=(r,i,o,e)=>{if(i&&typeof i=="object"||typeof i=="function")for(let t of m(i))!c.call(r,t)&&t!==o&&s(r,t,{get:()=>i[t],enumerable:!(e=d(i,t))||e.enumerable});return r};var y=r=>u(s({},"__esModule",{value:!0}),r);var f={};l(f,{SendActionsTask:()=>A});module.exports=y(f);var n=require("@ledgerhq/device-management-kit"),a=require("../../app-binder/command/SendActionCommand"),p=require("../../app-binder/utils/actionTlvSerializer");class A{constructor(i,o){this.api=i;this.args=o}async run(){const{actions:i}=this.args;for(const o of i){const e=(0,p.serializeActionToTlv)(o),t=await this.api.sendCommand(new a.SendActionCommand({serializedAction:e}));if(!(0,n.isSuccessCommandResult)(t))return t}return(0,n.CommandResultFactory)({data:void 0})}}0&&(module.exports={SendActionsTask});
2
+ //# sourceMappingURL=SendActionsTask.js.map