@ledgerhq/device-signer-kit-ethereum 1.2.0 → 1.3.1

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 (163) hide show
  1. package/lib/cjs/api/app-binder/GetConfigCommandTypes.js +2 -0
  2. package/lib/cjs/api/app-binder/GetConfigCommandTypes.js.map +7 -0
  3. package/lib/cjs/api/app-binder/SignTransactionDeviceActionTypes.js +1 -1
  4. package/lib/cjs/api/app-binder/SignTransactionDeviceActionTypes.js.map +1 -1
  5. package/lib/cjs/api/app-binder/SignTypedDataDeviceActionTypes.js +1 -1
  6. package/lib/cjs/api/app-binder/SignTypedDataDeviceActionTypes.js.map +1 -1
  7. package/lib/cjs/index.js.map +1 -1
  8. package/lib/cjs/internal/app-binder/EthAppBinder.test.js +1 -1
  9. package/lib/cjs/internal/app-binder/EthAppBinder.test.js.map +2 -2
  10. package/lib/cjs/internal/app-binder/command/GetAppConfigurationCommand.js +2 -0
  11. package/lib/cjs/internal/app-binder/command/GetAppConfigurationCommand.js.map +7 -0
  12. package/lib/cjs/internal/app-binder/command/GetAppConfigurationCommand.test.js +2 -0
  13. package/lib/cjs/internal/app-binder/command/GetAppConfigurationCommand.test.js.map +7 -0
  14. package/lib/cjs/internal/app-binder/command/ProvideWeb3CheckCommand.js +2 -0
  15. package/lib/cjs/internal/app-binder/command/ProvideWeb3CheckCommand.js.map +7 -0
  16. package/lib/cjs/internal/app-binder/command/ProvideWeb3CheckCommand.test.js +2 -0
  17. package/lib/cjs/internal/app-binder/command/ProvideWeb3CheckCommand.test.js.map +7 -0
  18. package/lib/cjs/internal/app-binder/command/Web3CheckOptInCommand.js +2 -0
  19. package/lib/cjs/internal/app-binder/command/Web3CheckOptInCommand.js.map +7 -0
  20. package/lib/cjs/internal/app-binder/command/Web3CheckOptInCommand.test.js +2 -0
  21. package/lib/cjs/internal/app-binder/command/Web3CheckOptInCommand.test.js.map +7 -0
  22. package/lib/cjs/internal/app-binder/device-action/SignTransaction/SignTransactionDeviceAction.js +1 -1
  23. package/lib/cjs/internal/app-binder/device-action/SignTransaction/SignTransactionDeviceAction.js.map +3 -3
  24. package/lib/cjs/internal/app-binder/device-action/SignTransaction/SignTransactionDeviceAction.test.js +1 -1
  25. package/lib/cjs/internal/app-binder/device-action/SignTransaction/SignTransactionDeviceAction.test.js.map +3 -3
  26. package/lib/cjs/internal/app-binder/device-action/SignTypedData/SignTypedDataDeviceAction.js +1 -1
  27. package/lib/cjs/internal/app-binder/device-action/SignTypedData/SignTypedDataDeviceAction.js.map +3 -3
  28. package/lib/cjs/internal/app-binder/device-action/SignTypedData/SignTypedDataDeviceAction.test.js +1 -1
  29. package/lib/cjs/internal/app-binder/device-action/SignTypedData/SignTypedDataDeviceAction.test.js.map +3 -3
  30. package/lib/cjs/internal/app-binder/device-action/__test-utils__/makeInternalApi.js +1 -1
  31. package/lib/cjs/internal/app-binder/device-action/__test-utils__/makeInternalApi.js.map +3 -3
  32. package/lib/cjs/internal/app-binder/task/BuildEIP712ContextTask.js +1 -1
  33. package/lib/cjs/internal/app-binder/task/BuildEIP712ContextTask.js.map +3 -3
  34. package/lib/cjs/internal/app-binder/task/BuildEIP712ContextTask.test.js +1 -1
  35. package/lib/cjs/internal/app-binder/task/BuildEIP712ContextTask.test.js.map +3 -3
  36. package/lib/cjs/internal/app-binder/task/BuildTransactionContextTask.js +1 -1
  37. package/lib/cjs/internal/app-binder/task/BuildTransactionContextTask.js.map +3 -3
  38. package/lib/cjs/internal/app-binder/task/BuildTransactionContextTask.test.js +1 -1
  39. package/lib/cjs/internal/app-binder/task/BuildTransactionContextTask.test.js.map +3 -3
  40. package/lib/cjs/internal/app-binder/task/GetWeb3CheckTask.js +2 -0
  41. package/lib/cjs/internal/app-binder/task/GetWeb3CheckTask.js.map +7 -0
  42. package/lib/cjs/internal/app-binder/task/GetWeb3CheckTask.test.js +2 -0
  43. package/lib/cjs/internal/app-binder/task/GetWeb3CheckTask.test.js.map +7 -0
  44. package/lib/cjs/internal/app-binder/task/ProvideEIP712ContextTask.js +1 -1
  45. package/lib/cjs/internal/app-binder/task/ProvideEIP712ContextTask.js.map +3 -3
  46. package/lib/cjs/internal/app-binder/task/ProvideEIP712ContextTask.test.js +1 -1
  47. package/lib/cjs/internal/app-binder/task/ProvideEIP712ContextTask.test.js.map +3 -3
  48. package/lib/cjs/internal/app-binder/task/ProvideTransactionContextTask.js +1 -1
  49. package/lib/cjs/internal/app-binder/task/ProvideTransactionContextTask.js.map +3 -3
  50. package/lib/cjs/internal/app-binder/task/ProvideTransactionContextTask.test.js +1 -1
  51. package/lib/cjs/internal/app-binder/task/ProvideTransactionContextTask.test.js.map +2 -2
  52. package/lib/cjs/internal/app-binder/task/ProvideTransactionFieldDescriptionTask.js +1 -1
  53. package/lib/cjs/internal/app-binder/task/ProvideTransactionFieldDescriptionTask.js.map +3 -3
  54. package/lib/cjs/internal/app-binder/task/ProvideTransactionGenericContextTask.js +1 -1
  55. package/lib/cjs/internal/app-binder/task/ProvideTransactionGenericContextTask.js.map +3 -3
  56. package/lib/cjs/internal/app-binder/task/ProvideTransactionGenericContextTask.test.js +1 -1
  57. package/lib/cjs/internal/app-binder/task/ProvideTransactionGenericContextTask.test.js.map +2 -2
  58. package/lib/cjs/internal/shared/utils/ApplicationChecker.js +2 -0
  59. package/lib/cjs/internal/shared/utils/ApplicationChecker.js.map +7 -0
  60. package/lib/cjs/internal/shared/utils/ApplicationChecker.test.js +2 -0
  61. package/lib/cjs/internal/shared/utils/ApplicationChecker.test.js.map +7 -0
  62. package/lib/cjs/package.json +4 -4
  63. package/lib/esm/api/app-binder/GetConfigCommandTypes.js +1 -0
  64. package/lib/esm/api/app-binder/GetConfigCommandTypes.js.map +7 -0
  65. package/lib/esm/internal/app-binder/EthAppBinder.test.js +1 -1
  66. package/lib/esm/internal/app-binder/EthAppBinder.test.js.map +2 -2
  67. package/lib/esm/internal/app-binder/command/GetAppConfigurationCommand.js +2 -0
  68. package/lib/esm/internal/app-binder/command/GetAppConfigurationCommand.js.map +7 -0
  69. package/lib/esm/internal/app-binder/command/GetAppConfigurationCommand.test.js +2 -0
  70. package/lib/esm/internal/app-binder/command/GetAppConfigurationCommand.test.js.map +7 -0
  71. package/lib/esm/internal/app-binder/command/ProvideWeb3CheckCommand.js +2 -0
  72. package/lib/esm/internal/app-binder/command/ProvideWeb3CheckCommand.js.map +7 -0
  73. package/lib/esm/internal/app-binder/command/ProvideWeb3CheckCommand.test.js +2 -0
  74. package/lib/esm/internal/app-binder/command/ProvideWeb3CheckCommand.test.js.map +7 -0
  75. package/lib/esm/internal/app-binder/command/Web3CheckOptInCommand.js +2 -0
  76. package/lib/esm/internal/app-binder/command/Web3CheckOptInCommand.js.map +7 -0
  77. package/lib/esm/internal/app-binder/command/Web3CheckOptInCommand.test.js +2 -0
  78. package/lib/esm/internal/app-binder/command/Web3CheckOptInCommand.test.js.map +7 -0
  79. package/lib/esm/internal/app-binder/device-action/SignTransaction/SignTransactionDeviceAction.js +1 -1
  80. package/lib/esm/internal/app-binder/device-action/SignTransaction/SignTransactionDeviceAction.js.map +3 -3
  81. package/lib/esm/internal/app-binder/device-action/SignTransaction/SignTransactionDeviceAction.test.js +1 -1
  82. package/lib/esm/internal/app-binder/device-action/SignTransaction/SignTransactionDeviceAction.test.js.map +3 -3
  83. package/lib/esm/internal/app-binder/device-action/SignTypedData/SignTypedDataDeviceAction.js +1 -1
  84. package/lib/esm/internal/app-binder/device-action/SignTypedData/SignTypedDataDeviceAction.js.map +3 -3
  85. package/lib/esm/internal/app-binder/device-action/SignTypedData/SignTypedDataDeviceAction.test.js +1 -1
  86. package/lib/esm/internal/app-binder/device-action/SignTypedData/SignTypedDataDeviceAction.test.js.map +3 -3
  87. package/lib/esm/internal/app-binder/device-action/__test-utils__/makeInternalApi.js +1 -1
  88. package/lib/esm/internal/app-binder/device-action/__test-utils__/makeInternalApi.js.map +3 -3
  89. package/lib/esm/internal/app-binder/task/BuildEIP712ContextTask.js +1 -1
  90. package/lib/esm/internal/app-binder/task/BuildEIP712ContextTask.js.map +3 -3
  91. package/lib/esm/internal/app-binder/task/BuildEIP712ContextTask.test.js +1 -1
  92. package/lib/esm/internal/app-binder/task/BuildEIP712ContextTask.test.js.map +3 -3
  93. package/lib/esm/internal/app-binder/task/BuildTransactionContextTask.js +1 -1
  94. package/lib/esm/internal/app-binder/task/BuildTransactionContextTask.js.map +3 -3
  95. package/lib/esm/internal/app-binder/task/BuildTransactionContextTask.test.js +1 -1
  96. package/lib/esm/internal/app-binder/task/BuildTransactionContextTask.test.js.map +3 -3
  97. package/lib/esm/internal/app-binder/task/GetWeb3CheckTask.js +2 -0
  98. package/lib/esm/internal/app-binder/task/GetWeb3CheckTask.js.map +7 -0
  99. package/lib/esm/internal/app-binder/task/GetWeb3CheckTask.test.js +2 -0
  100. package/lib/esm/internal/app-binder/task/GetWeb3CheckTask.test.js.map +7 -0
  101. package/lib/esm/internal/app-binder/task/ProvideEIP712ContextTask.js +1 -1
  102. package/lib/esm/internal/app-binder/task/ProvideEIP712ContextTask.js.map +3 -3
  103. package/lib/esm/internal/app-binder/task/ProvideEIP712ContextTask.test.js +1 -1
  104. package/lib/esm/internal/app-binder/task/ProvideEIP712ContextTask.test.js.map +3 -3
  105. package/lib/esm/internal/app-binder/task/ProvideTransactionContextTask.js +1 -1
  106. package/lib/esm/internal/app-binder/task/ProvideTransactionContextTask.js.map +3 -3
  107. package/lib/esm/internal/app-binder/task/ProvideTransactionContextTask.test.js +1 -1
  108. package/lib/esm/internal/app-binder/task/ProvideTransactionContextTask.test.js.map +2 -2
  109. package/lib/esm/internal/app-binder/task/ProvideTransactionFieldDescriptionTask.js +1 -1
  110. package/lib/esm/internal/app-binder/task/ProvideTransactionFieldDescriptionTask.js.map +3 -3
  111. package/lib/esm/internal/app-binder/task/ProvideTransactionGenericContextTask.js +1 -1
  112. package/lib/esm/internal/app-binder/task/ProvideTransactionGenericContextTask.js.map +3 -3
  113. package/lib/esm/internal/app-binder/task/ProvideTransactionGenericContextTask.test.js +1 -1
  114. package/lib/esm/internal/app-binder/task/ProvideTransactionGenericContextTask.test.js.map +2 -2
  115. package/lib/esm/internal/shared/utils/ApplicationChecker.js +2 -0
  116. package/lib/esm/internal/shared/utils/ApplicationChecker.js.map +7 -0
  117. package/lib/esm/internal/shared/utils/ApplicationChecker.test.js +2 -0
  118. package/lib/esm/internal/shared/utils/ApplicationChecker.test.js.map +7 -0
  119. package/lib/esm/package.json +4 -4
  120. package/lib/types/api/app-binder/GetConfigCommandTypes.d.ts +7 -0
  121. package/lib/types/api/app-binder/GetConfigCommandTypes.d.ts.map +1 -0
  122. package/lib/types/api/app-binder/SignTransactionDeviceActionTypes.d.ts +5 -3
  123. package/lib/types/api/app-binder/SignTransactionDeviceActionTypes.d.ts.map +1 -1
  124. package/lib/types/api/app-binder/SignTypedDataDeviceActionTypes.d.ts +3 -1
  125. package/lib/types/api/app-binder/SignTypedDataDeviceActionTypes.d.ts.map +1 -1
  126. package/lib/types/internal/app-binder/command/GetAppConfigurationCommand.d.ts +10 -0
  127. package/lib/types/internal/app-binder/command/GetAppConfigurationCommand.d.ts.map +1 -0
  128. package/lib/types/internal/app-binder/command/GetAppConfigurationCommand.test.d.ts +2 -0
  129. package/lib/types/internal/app-binder/command/GetAppConfigurationCommand.test.d.ts.map +1 -0
  130. package/lib/types/internal/app-binder/command/ProvideWeb3CheckCommand.d.ts +17 -0
  131. package/lib/types/internal/app-binder/command/ProvideWeb3CheckCommand.d.ts.map +1 -0
  132. package/lib/types/internal/app-binder/command/ProvideWeb3CheckCommand.test.d.ts +2 -0
  133. package/lib/types/internal/app-binder/command/ProvideWeb3CheckCommand.test.d.ts.map +1 -0
  134. package/lib/types/internal/app-binder/command/Web3CheckOptInCommand.d.ts +15 -0
  135. package/lib/types/internal/app-binder/command/Web3CheckOptInCommand.d.ts.map +1 -0
  136. package/lib/types/internal/app-binder/command/Web3CheckOptInCommand.test.d.ts +2 -0
  137. package/lib/types/internal/app-binder/command/Web3CheckOptInCommand.test.d.ts.map +1 -0
  138. package/lib/types/internal/app-binder/device-action/SignTransaction/SignTransactionDeviceAction.d.ts +9 -4
  139. package/lib/types/internal/app-binder/device-action/SignTransaction/SignTransactionDeviceAction.d.ts.map +1 -1
  140. package/lib/types/internal/app-binder/device-action/SignTypedData/SignTypedDataDeviceAction.d.ts +6 -0
  141. package/lib/types/internal/app-binder/device-action/SignTypedData/SignTypedDataDeviceAction.d.ts.map +1 -1
  142. package/lib/types/internal/app-binder/device-action/__test-utils__/makeInternalApi.d.ts.map +1 -1
  143. package/lib/types/internal/app-binder/task/BuildEIP712ContextTask.d.ts +9 -5
  144. package/lib/types/internal/app-binder/task/BuildEIP712ContextTask.d.ts.map +1 -1
  145. package/lib/types/internal/app-binder/task/BuildTransactionContextTask.d.ts +7 -3
  146. package/lib/types/internal/app-binder/task/BuildTransactionContextTask.d.ts.map +1 -1
  147. package/lib/types/internal/app-binder/task/GetWeb3CheckTask.d.ts +30 -0
  148. package/lib/types/internal/app-binder/task/GetWeb3CheckTask.d.ts.map +1 -0
  149. package/lib/types/internal/app-binder/task/GetWeb3CheckTask.test.d.ts +2 -0
  150. package/lib/types/internal/app-binder/task/GetWeb3CheckTask.test.d.ts.map +1 -0
  151. package/lib/types/internal/app-binder/task/ProvideEIP712ContextTask.d.ts +2 -0
  152. package/lib/types/internal/app-binder/task/ProvideEIP712ContextTask.d.ts.map +1 -1
  153. package/lib/types/internal/app-binder/task/ProvideTransactionContextTask.d.ts +3 -2
  154. package/lib/types/internal/app-binder/task/ProvideTransactionContextTask.d.ts.map +1 -1
  155. package/lib/types/internal/app-binder/task/ProvideTransactionFieldDescriptionTask.d.ts.map +1 -1
  156. package/lib/types/internal/app-binder/task/ProvideTransactionGenericContextTask.d.ts +1 -0
  157. package/lib/types/internal/app-binder/task/ProvideTransactionGenericContextTask.d.ts.map +1 -1
  158. package/lib/types/internal/shared/utils/ApplicationChecker.d.ts +12 -0
  159. package/lib/types/internal/shared/utils/ApplicationChecker.d.ts.map +1 -0
  160. package/lib/types/internal/shared/utils/ApplicationChecker.test.d.ts +2 -0
  161. package/lib/types/internal/shared/utils/ApplicationChecker.test.d.ts.map +1 -0
  162. package/lib/types/tsconfig.prod.tsbuildinfo +1 -1
  163. package/package.json +9 -9
@@ -0,0 +1,2 @@
1
+ "use strict";var l=Object.defineProperty;var d=Object.getOwnPropertyDescriptor;var r=Object.getOwnPropertyNames;var i=Object.prototype.hasOwnProperty;var s=(n,e,b,a)=>{if(e&&typeof e=="object"||typeof e=="function")for(let o of r(e))!i.call(n,o)&&o!==b&&l(n,o,{get:()=>e[o],enumerable:!(a=d(e,o))||a.enumerable});return n};var t=n=>s(l({},"__esModule",{value:!0}),n);var y={};module.exports=t(y);
2
+ //# sourceMappingURL=GetConfigCommandTypes.js.map
@@ -0,0 +1,7 @@
1
+ {
2
+ "version": 3,
3
+ "sources": ["../../../../src/api/app-binder/GetConfigCommandTypes.ts"],
4
+ "sourcesContent": ["export type GetConfigCommandResponse = {\n readonly blindSigningEnabled: boolean;\n readonly web3ChecksEnabled: boolean;\n readonly web3ChecksOptIn: boolean;\n readonly version: string;\n};\n"],
5
+ "mappings": "+WAAA,IAAAA,EAAA,kBAAAC,EAAAD",
6
+ "names": ["GetConfigCommandTypes_exports", "__toCommonJS"]
7
+ }
@@ -1,2 +1,2 @@
1
- "use strict";var a=Object.defineProperty;var i=Object.getOwnPropertyDescriptor;var p=Object.getOwnPropertyNames;var c=Object.prototype.hasOwnProperty;var s=(r,e,o,t)=>{if(e&&typeof e=="object"||typeof e=="function")for(let n of p(e))!c.call(r,n)&&n!==o&&a(r,n,{get:()=>e[n],enumerable:!(t=i(e,n))||t.enumerable});return r};var y=r=>s(a({},"__esModule",{value:!0}),r);var l={};module.exports=y(l);
1
+ "use strict";var o=Object.defineProperty;var i=Object.getOwnPropertyDescriptor;var p=Object.getOwnPropertyNames;var c=Object.prototype.hasOwnProperty;var s=(n,e,a,t)=>{if(e&&typeof e=="object"||typeof e=="function")for(let r of p(e))!c.call(n,r)&&r!==a&&o(n,r,{get:()=>e[r],enumerable:!(t=i(e,r))||t.enumerable});return n};var y=n=>s(o({},"__esModule",{value:!0}),n);var l={};module.exports=y(l);
2
2
  //# sourceMappingURL=SignTransactionDeviceActionTypes.js.map
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "version": 3,
3
3
  "sources": ["../../../../src/api/app-binder/SignTransactionDeviceActionTypes.ts"],
4
- "sourcesContent": ["import {\n type ClearSignContextSuccess,\n type ContextModule,\n} from \"@ledgerhq/context-module\";\nimport {\n type CommandErrorResult,\n type DeviceActionState,\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 TransactionOptions } from \"@api/model/TransactionOptions\";\nimport { type TransactionType } from \"@api/model/TransactionType\";\nimport { type EthErrorCodes } from \"@internal/app-binder/command/utils/ethAppErrors\";\nimport { type GenericContext } from \"@internal/app-binder/task/ProvideTransactionGenericContextTask\";\nimport { type TransactionMapperService } from \"@internal/transaction/service/mapper/TransactionMapperService\";\nimport { type TransactionParserService } from \"@internal/transaction/service/parser/TransactionParserService\";\n\nexport type SignTransactionDAOutput = Signature;\n\nexport type SignTransactionDAInput = {\n readonly derivationPath: string;\n readonly transaction: Uint8Array;\n readonly mapper: TransactionMapperService;\n readonly parser: TransactionParserService;\n readonly contextModule: ContextModule;\n readonly options: TransactionOptions;\n};\n\nexport type SignTransactionDAError =\n | OpenAppDAError\n | CommandErrorResult<EthErrorCodes>[\"error\"];\n\ntype SignTransactionDARequiredInteraction =\n | OpenAppDARequiredInteraction\n | UserInteractionRequired.SignTransaction;\n\nexport type SignTransactionDAIntermediateValue = {\n requiredUserInteraction: SignTransactionDARequiredInteraction;\n};\n\nexport type SignTransactionDAState = DeviceActionState<\n SignTransactionDAOutput,\n SignTransactionDAError,\n SignTransactionDAIntermediateValue\n>;\n\nexport type SignTransactionDAInternalState = {\n readonly error: SignTransactionDAError | null;\n readonly challenge: string | null;\n readonly clearSignContexts: ClearSignContextSuccess[] | GenericContext | null;\n readonly serializedTransaction: Uint8Array | null;\n readonly chainId: number | null;\n readonly transactionType: TransactionType | null;\n readonly isLegacy: boolean;\n readonly signature: Signature | null;\n};\n\nexport type SignTransactionDAReturnType = ExecuteDeviceActionReturnType<\n SignTransactionDAOutput,\n SignTransactionDAError,\n SignTransactionDAIntermediateValue\n>;\n"],
4
+ "sourcesContent": ["import {\n type ClearSignContextSuccess,\n type ClearSignContextType,\n type ContextModule,\n} from \"@ledgerhq/context-module\";\nimport {\n type CommandErrorResult,\n type DeviceActionState,\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 TransactionOptions } from \"@api/model/TransactionOptions\";\nimport { type TransactionType } from \"@api/model/TransactionType\";\nimport { type EthErrorCodes } from \"@internal/app-binder/command/utils/ethAppErrors\";\nimport { type GenericContext } from \"@internal/app-binder/task/ProvideTransactionGenericContextTask\";\nimport { type TransactionMapperService } from \"@internal/transaction/service/mapper/TransactionMapperService\";\nimport { type TransactionParserService } from \"@internal/transaction/service/parser/TransactionParserService\";\n\nexport type SignTransactionDAOutput = Signature;\n\nexport type SignTransactionDAInput = {\n readonly derivationPath: string;\n readonly transaction: Uint8Array;\n readonly mapper: TransactionMapperService;\n readonly parser: TransactionParserService;\n readonly contextModule: ContextModule;\n readonly options: TransactionOptions;\n};\n\nexport type SignTransactionDAError =\n | OpenAppDAError\n | CommandErrorResult<EthErrorCodes>[\"error\"];\n\ntype SignTransactionDARequiredInteraction =\n | OpenAppDARequiredInteraction\n | UserInteractionRequired.Web3ChecksOptIn\n | UserInteractionRequired.SignTransaction;\n\nexport type SignTransactionDAIntermediateValue = {\n requiredUserInteraction: SignTransactionDARequiredInteraction;\n};\n\nexport type SignTransactionDAState = DeviceActionState<\n SignTransactionDAOutput,\n SignTransactionDAError,\n SignTransactionDAIntermediateValue\n>;\n\nexport type SignTransactionDAInternalState = {\n readonly error: SignTransactionDAError | null;\n readonly clearSignContexts: ClearSignContextSuccess[] | GenericContext | null;\n readonly web3ChecksOptIn: boolean;\n readonly web3ChecksEnabled: boolean;\n readonly web3Check: ClearSignContextSuccess<ClearSignContextType.WEB3_CHECK> | null;\n readonly serializedTransaction: Uint8Array | null;\n readonly chainId: number | null;\n readonly transactionType: TransactionType | null;\n readonly isLegacy: boolean;\n readonly signature: Signature | null;\n};\n\nexport type SignTransactionDAReturnType = ExecuteDeviceActionReturnType<\n SignTransactionDAOutput,\n SignTransactionDAError,\n SignTransactionDAIntermediateValue\n>;\n"],
5
5
  "mappings": "+WAAA,IAAAA,EAAA,kBAAAC,EAAAD",
6
6
  "names": ["SignTransactionDeviceActionTypes_exports", "__toCommonJS"]
7
7
  }
@@ -1,2 +1,2 @@
1
- "use strict";var p=Object.defineProperty;var o=Object.getOwnPropertyDescriptor;var i=Object.getOwnPropertyNames;var d=Object.prototype.hasOwnProperty;var y=(t,e,n,a)=>{if(e&&typeof e=="object"||typeof e=="function")for(let r of i(e))!d.call(t,r)&&r!==n&&p(t,r,{get:()=>e[r],enumerable:!(a=o(e,r))||a.enumerable});return t};var D=t=>y(p({},"__esModule",{value:!0}),t);var u={};module.exports=D(u);
1
+ "use strict";var n=Object.defineProperty;var o=Object.getOwnPropertyDescriptor;var i=Object.getOwnPropertyNames;var d=Object.prototype.hasOwnProperty;var y=(t,e,p,a)=>{if(e&&typeof e=="object"||typeof e=="function")for(let r of i(e))!d.call(t,r)&&r!==p&&n(t,r,{get:()=>e[r],enumerable:!(a=o(e,r))||a.enumerable});return t};var D=t=>y(n({},"__esModule",{value:!0}),t);var u={};module.exports=D(u);
2
2
  //# sourceMappingURL=SignTypedDataDeviceActionTypes.js.map
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "version": 3,
3
3
  "sources": ["../../../../src/api/app-binder/SignTypedDataDeviceActionTypes.ts"],
4
- "sourcesContent": ["import { type ContextModule } from \"@ledgerhq/context-module\";\nimport {\n type CommandErrorResult,\n type DeviceActionState,\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 TypedData } from \"@api/model/TypedData\";\nimport { type EthErrorCodes } from \"@internal/app-binder/command/utils/ethAppErrors\";\nimport type { ProvideEIP712ContextTaskArgs } from \"@internal/app-binder/task/ProvideEIP712ContextTask\";\nimport { type TypedDataParserService } from \"@internal/typed-data/service/TypedDataParserService\";\n\nexport type SignTypedDataDAOutput = Signature;\n\nexport type SignTypedDataDAInput = {\n readonly derivationPath: string;\n readonly data: TypedData;\n readonly parser: TypedDataParserService;\n readonly contextModule: ContextModule;\n};\n\nexport type SignTypedDataDAError =\n | OpenAppDAError\n | CommandErrorResult<EthErrorCodes>[\"error\"];\n\ntype SignTypedDataDARequiredInteraction =\n | OpenAppDARequiredInteraction\n | UserInteractionRequired.SignTypedData;\n\nexport type SignTypedDataDAIntermediateValue = {\n requiredUserInteraction: SignTypedDataDARequiredInteraction;\n};\n\nexport type SignTypedDataDAState = DeviceActionState<\n SignTypedDataDAOutput,\n SignTypedDataDAError,\n SignTypedDataDAIntermediateValue\n>;\n\nexport type SignTypedDataDAInternalState = {\n readonly error: SignTypedDataDAError | null;\n readonly typedDataContext: ProvideEIP712ContextTaskArgs | null;\n readonly signature: Signature | null;\n};\n\nexport type SignTypedDataDAReturnType = ExecuteDeviceActionReturnType<\n SignTypedDataDAOutput,\n SignTypedDataDAError,\n SignTypedDataDAIntermediateValue\n>;\n"],
4
+ "sourcesContent": ["import { type ContextModule } from \"@ledgerhq/context-module\";\nimport {\n type CommandErrorResult,\n type DeviceActionState,\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 TypedData } from \"@api/model/TypedData\";\nimport { type EthErrorCodes } from \"@internal/app-binder/command/utils/ethAppErrors\";\nimport type { ProvideEIP712ContextTaskArgs } from \"@internal/app-binder/task/ProvideEIP712ContextTask\";\nimport { type TypedDataParserService } from \"@internal/typed-data/service/TypedDataParserService\";\n\nexport type SignTypedDataDAOutput = Signature;\n\nexport type SignTypedDataDAInput = {\n readonly derivationPath: string;\n readonly data: TypedData;\n readonly parser: TypedDataParserService;\n readonly contextModule: ContextModule;\n};\n\nexport type SignTypedDataDAError =\n | OpenAppDAError\n | CommandErrorResult<EthErrorCodes>[\"error\"];\n\ntype SignTypedDataDARequiredInteraction =\n | OpenAppDARequiredInteraction\n | UserInteractionRequired.Web3ChecksOptIn\n | UserInteractionRequired.SignTypedData;\n\nexport type SignTypedDataDAIntermediateValue = {\n requiredUserInteraction: SignTypedDataDARequiredInteraction;\n};\n\nexport type SignTypedDataDAState = DeviceActionState<\n SignTypedDataDAOutput,\n SignTypedDataDAError,\n SignTypedDataDAIntermediateValue\n>;\n\nexport type SignTypedDataDAInternalState = {\n readonly error: SignTypedDataDAError | null;\n web3ChecksOptIn: boolean;\n web3ChecksEnabled: boolean;\n readonly typedDataContext: ProvideEIP712ContextTaskArgs | null;\n readonly signature: Signature | null;\n};\n\nexport type SignTypedDataDAReturnType = ExecuteDeviceActionReturnType<\n SignTypedDataDAOutput,\n SignTypedDataDAError,\n SignTypedDataDAIntermediateValue\n>;\n"],
5
5
  "mappings": "+WAAA,IAAAA,EAAA,kBAAAC,EAAAD",
6
6
  "names": ["SignTypedDataDeviceActionTypes_exports", "__toCommonJS"]
7
7
  }
@@ -3,5 +3,5 @@
3
3
  "sources": ["../../src/index.ts"],
4
4
  "sourcesContent": ["// inversify requirement\nimport \"reflect-metadata\";\n\nexport * from \"@api/index\";\n"],
5
5
  "mappings": "iaAAA,IAAAA,EAAA,kBAAAC,EAAAD,GACA,IAAAE,EAAO,4BAEPC,EAAAH,EAAc,sBAHd",
6
- "names": ["src_exports", "__toCommonJS", "import_reflect_metadata", "__reExport"]
6
+ "names": ["index_exports", "__toCommonJS", "import_reflect_metadata", "__reExport"]
7
7
  }
@@ -1,2 +1,2 @@
1
- "use strict";var v=require("@ledgerhq/device-management-kit"),c=require("@ledgerhq/device-management-kit"),g=require("@ledgerhq/device-management-kit"),S=require("@ledgerhq/device-management-kit"),y=require("ethers"),A=require("rxjs"),h=require("./command/GetAddressCommand"),f=require("./constant/plugins"),u=require("./EthAppBinder");describe("EthAppBinder",()=>{const a={sendCommand:vi.fn(),executeDeviceAction:vi.fn()},m={getContext:vi.fn(),getContexts:vi.fn(),getTypedDataFilters:vi.fn()},D={mapTransactionToSubset:vi.fn()},l={extractValue:vi.fn()};beforeEach(()=>{vi.clearAllMocks()}),describe("getAddress",()=>{it("should return the address, publicKey, and chainCode",()=>new Promise((s,r)=>{const e="0xF7C69BedB292Dd3fC2cA4103989B5BD705164c43",i="04e3785ca";vi.spyOn(a,"executeDeviceAction").mockReturnValue({observable:(0,A.from)([{status:c.DeviceActionStatus.Completed,output:{address:e,publicKey:i,chainCode:void 0}}]),cancel:vi.fn()});const p=new u.EthAppBinder(a,m,D,l,"sessionId"),{observable:o}=p.getAddress({derivationPath:"44'/60'/3'/2/1"}),t=[];o.subscribe({next:n=>{t.push(n)},error:n=>{r(n)},complete:()=>{try{expect(t).toEqual([{status:c.DeviceActionStatus.Completed,output:{address:e,publicKey:i,chainCode:void 0}}]),s()}catch(n){r(n)}}})})),describe("calls of executeDeviceAction with the correct params",()=>{const s={derivationPath:"44'/60'/3'/2/1",returnChainCode:!1};test("when checkOnDevice is true: UserInteractionRequired.VerifyAddress",()=>{const e={...s,checkOnDevice:!0};new u.EthAppBinder(a,m,D,l,"sessionId").getAddress(e),expect(a.executeDeviceAction).toHaveBeenCalledWith({sessionId:"sessionId",deviceAction:new g.SendCommandInAppDeviceAction({input:{command:new h.GetAddressCommand(e),appName:"Ethereum",requiredUserInteraction:S.UserInteractionRequired.VerifyAddress,compatibleAppNames:f.ETHEREUM_PLUGINS}})})}),test("when checkOnDevice is false: UserInteractionRequired.None",()=>{const e={...s,checkOnDevice:!1};new u.EthAppBinder(a,m,D,l,"sessionId").getAddress(e),expect(a.executeDeviceAction).toHaveBeenCalledWith({sessionId:"sessionId",deviceAction:new g.SendCommandInAppDeviceAction({input:{command:new h.GetAddressCommand(e),appName:"Ethereum",requiredUserInteraction:S.UserInteractionRequired.None,compatibleAppNames:f.ETHEREUM_PLUGINS}})})})})}),describe("signTransaction",()=>{it("should return the signature",()=>new Promise((s,r)=>{const e={r:"0xDEAD",s:"0xBEEF",v:0},i=(0,v.hexaStringToBuffer)(y.Transaction.from({to:"0x1234567890123456789012345678901234567890",value:0n}).unsignedSerialized),d={};vi.spyOn(a,"executeDeviceAction").mockReturnValue({observable:(0,A.from)([{status:c.DeviceActionStatus.Completed,output:e}]),cancel:vi.fn()});const p=new u.EthAppBinder(a,m,D,l,"sessionId"),{observable:o}=p.signTransaction({derivationPath:"44'/60'/3'/2/1",transaction:i,options:d}),t=[];o.subscribe({next:n=>{t.push(n)},error:n=>{r(n)},complete:()=>{try{expect(t).toEqual([{status:c.DeviceActionStatus.Completed,output:e}]),s()}catch(n){r(n)}}})})),it("should return the signature without options",()=>new Promise((s,r)=>{const e={r:"0xDEAD",s:"0xBEEF",v:0},i=(0,v.hexaStringToBuffer)(y.Transaction.from({to:"0x1234567890123456789012345678901234567890",value:0n}).unsignedSerialized);vi.spyOn(a,"executeDeviceAction").mockReturnValue({observable:(0,A.from)([{status:c.DeviceActionStatus.Completed,output:e}]),cancel:vi.fn()});const d=new u.EthAppBinder(a,m,D,l,"sessionId"),{observable:p}=d.signTransaction({derivationPath:"44'/60'/3'/2/1",transaction:i,options:void 0}),o=[];p.subscribe({next:t=>{o.push(t)},error:t=>{r(t)},complete:()=>{try{expect(o).toEqual([{status:c.DeviceActionStatus.Completed,output:e}]),s()}catch(t){r(t)}}})}))}),describe("signMessage",()=>{it("should return the signature",()=>new Promise((s,r)=>{const e={r:"0xDEAD",s:"0xBEEF",v:0},i="Hello, World!";vi.spyOn(a,"executeDeviceAction").mockReturnValue({observable:(0,A.from)([{status:c.DeviceActionStatus.Completed,output:e}]),cancel:vi.fn()});const d=new u.EthAppBinder(a,m,D,l,"sessionId"),{observable:p}=d.signPersonalMessage({derivationPath:"44'/60'/3'/2/1",message:i}),o=[];p.subscribe({next:t=>{o.push(t)},error:t=>{r(t)},complete:()=>{try{expect(o).toEqual([{status:c.DeviceActionStatus.Completed,output:e}]),s()}catch(t){r(t)}}})}))}),describe("signTypedData",()=>{it("should return the signature",()=>new Promise((s,r)=>{const e={r:"0xDEAD",s:"0xBEEF",v:0},i={domain:{},types:{},primaryType:"test",message:{}},d={parse:vi.fn()};vi.spyOn(a,"executeDeviceAction").mockReturnValue({observable:(0,A.from)([{status:c.DeviceActionStatus.Completed,output:e}]),cancel:vi.fn()});const p=new u.EthAppBinder(a,m,D,l,"sessionId"),{observable:o}=p.signTypedData({derivationPath:"44'/60'/3'/2/1",parser:d,data:i}),t=[];o.subscribe({next:n=>{t.push(n)},error:n=>{r(n)},complete:()=>{try{expect(t).toEqual([{status:c.DeviceActionStatus.Completed,output:e}]),s()}catch(n){r(n)}}})}))})});
1
+ "use strict";var v=require("@ledgerhq/device-management-kit"),c=require("@ledgerhq/device-management-kit"),g=require("@ledgerhq/device-management-kit"),S=require("@ledgerhq/device-management-kit"),y=require("ethers"),A=require("rxjs"),h=require("./command/GetAddressCommand"),f=require("./constant/plugins"),u=require("./EthAppBinder");describe("EthAppBinder",()=>{const a={sendCommand:vi.fn(),executeDeviceAction:vi.fn()},m={getContext:vi.fn(),getContexts:vi.fn(),getTypedDataFilters:vi.fn(),getWeb3Checks:vi.fn()},D={mapTransactionToSubset:vi.fn()},l={extractValue:vi.fn()};beforeEach(()=>{vi.clearAllMocks()}),describe("getAddress",()=>{it("should return the address, publicKey, and chainCode",()=>new Promise((s,r)=>{const e="0xF7C69BedB292Dd3fC2cA4103989B5BD705164c43",i="04e3785ca";vi.spyOn(a,"executeDeviceAction").mockReturnValue({observable:(0,A.from)([{status:c.DeviceActionStatus.Completed,output:{address:e,publicKey:i,chainCode:void 0}}]),cancel:vi.fn()});const p=new u.EthAppBinder(a,m,D,l,"sessionId"),{observable:o}=p.getAddress({derivationPath:"44'/60'/3'/2/1"}),t=[];o.subscribe({next:n=>{t.push(n)},error:n=>{r(n)},complete:()=>{try{expect(t).toEqual([{status:c.DeviceActionStatus.Completed,output:{address:e,publicKey:i,chainCode:void 0}}]),s()}catch(n){r(n)}}})})),describe("calls of executeDeviceAction with the correct params",()=>{const s={derivationPath:"44'/60'/3'/2/1",returnChainCode:!1};test("when checkOnDevice is true: UserInteractionRequired.VerifyAddress",()=>{const e={...s,checkOnDevice:!0};new u.EthAppBinder(a,m,D,l,"sessionId").getAddress(e),expect(a.executeDeviceAction).toHaveBeenCalledWith({sessionId:"sessionId",deviceAction:new g.SendCommandInAppDeviceAction({input:{command:new h.GetAddressCommand(e),appName:"Ethereum",requiredUserInteraction:S.UserInteractionRequired.VerifyAddress,compatibleAppNames:f.ETHEREUM_PLUGINS}})})}),test("when checkOnDevice is false: UserInteractionRequired.None",()=>{const e={...s,checkOnDevice:!1};new u.EthAppBinder(a,m,D,l,"sessionId").getAddress(e),expect(a.executeDeviceAction).toHaveBeenCalledWith({sessionId:"sessionId",deviceAction:new g.SendCommandInAppDeviceAction({input:{command:new h.GetAddressCommand(e),appName:"Ethereum",requiredUserInteraction:S.UserInteractionRequired.None,compatibleAppNames:f.ETHEREUM_PLUGINS}})})})})}),describe("signTransaction",()=>{it("should return the signature",()=>new Promise((s,r)=>{const e={r:"0xDEAD",s:"0xBEEF",v:0},i=(0,v.hexaStringToBuffer)(y.Transaction.from({to:"0x1234567890123456789012345678901234567890",value:0n}).unsignedSerialized),d={};vi.spyOn(a,"executeDeviceAction").mockReturnValue({observable:(0,A.from)([{status:c.DeviceActionStatus.Completed,output:e}]),cancel:vi.fn()});const p=new u.EthAppBinder(a,m,D,l,"sessionId"),{observable:o}=p.signTransaction({derivationPath:"44'/60'/3'/2/1",transaction:i,options:d}),t=[];o.subscribe({next:n=>{t.push(n)},error:n=>{r(n)},complete:()=>{try{expect(t).toEqual([{status:c.DeviceActionStatus.Completed,output:e}]),s()}catch(n){r(n)}}})})),it("should return the signature without options",()=>new Promise((s,r)=>{const e={r:"0xDEAD",s:"0xBEEF",v:0},i=(0,v.hexaStringToBuffer)(y.Transaction.from({to:"0x1234567890123456789012345678901234567890",value:0n}).unsignedSerialized);vi.spyOn(a,"executeDeviceAction").mockReturnValue({observable:(0,A.from)([{status:c.DeviceActionStatus.Completed,output:e}]),cancel:vi.fn()});const d=new u.EthAppBinder(a,m,D,l,"sessionId"),{observable:p}=d.signTransaction({derivationPath:"44'/60'/3'/2/1",transaction:i,options:void 0}),o=[];p.subscribe({next:t=>{o.push(t)},error:t=>{r(t)},complete:()=>{try{expect(o).toEqual([{status:c.DeviceActionStatus.Completed,output:e}]),s()}catch(t){r(t)}}})}))}),describe("signMessage",()=>{it("should return the signature",()=>new Promise((s,r)=>{const e={r:"0xDEAD",s:"0xBEEF",v:0},i="Hello, World!";vi.spyOn(a,"executeDeviceAction").mockReturnValue({observable:(0,A.from)([{status:c.DeviceActionStatus.Completed,output:e}]),cancel:vi.fn()});const d=new u.EthAppBinder(a,m,D,l,"sessionId"),{observable:p}=d.signPersonalMessage({derivationPath:"44'/60'/3'/2/1",message:i}),o=[];p.subscribe({next:t=>{o.push(t)},error:t=>{r(t)},complete:()=>{try{expect(o).toEqual([{status:c.DeviceActionStatus.Completed,output:e}]),s()}catch(t){r(t)}}})}))}),describe("signTypedData",()=>{it("should return the signature",()=>new Promise((s,r)=>{const e={r:"0xDEAD",s:"0xBEEF",v:0},i={domain:{},types:{},primaryType:"test",message:{}},d={parse:vi.fn()};vi.spyOn(a,"executeDeviceAction").mockReturnValue({observable:(0,A.from)([{status:c.DeviceActionStatus.Completed,output:e}]),cancel:vi.fn()});const p=new u.EthAppBinder(a,m,D,l,"sessionId"),{observable:o}=p.signTypedData({derivationPath:"44'/60'/3'/2/1",parser:d,data:i}),t=[];o.subscribe({next:n=>{t.push(n)},error:n=>{r(n)},complete:()=>{try{expect(t).toEqual([{status:c.DeviceActionStatus.Completed,output:e}]),s()}catch(n){r(n)}}})}))})});
2
2
  //# sourceMappingURL=EthAppBinder.test.js.map
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "version": 3,
3
3
  "sources": ["../../../../src/internal/app-binder/EthAppBinder.test.ts"],
4
- "sourcesContent": ["import { type ContextModule } from \"@ledgerhq/context-module\";\nimport {\n type DeviceActionState,\n type DeviceManagementKit,\n hexaStringToBuffer,\n} from \"@ledgerhq/device-management-kit\";\nimport { DeviceActionStatus } from \"@ledgerhq/device-management-kit\";\nimport { SendCommandInAppDeviceAction } from \"@ledgerhq/device-management-kit\";\nimport { UserInteractionRequired } from \"@ledgerhq/device-management-kit\";\nimport { Transaction } from \"ethers\";\nimport { from } from \"rxjs\";\n\nimport {\n type GetAddressDAError,\n type GetAddressDAIntermediateValue,\n type GetAddressDAOutput,\n} from \"@api/app-binder/GetAddressDeviceActionTypes\";\nimport {\n type SignPersonalMessageDAError,\n type SignPersonalMessageDAIntermediateValue,\n type SignPersonalMessageDAOutput,\n} from \"@api/app-binder/SignPersonalMessageDeviceActionTypes\";\nimport {\n type SignTransactionDAError,\n type SignTransactionDAIntermediateValue,\n type SignTransactionDAOutput,\n} from \"@api/app-binder/SignTransactionDeviceActionTypes\";\nimport {\n type SignTypedDataDAError,\n type SignTypedDataDAIntermediateValue,\n type SignTypedDataDAOutput,\n} from \"@api/app-binder/SignTypedDataDeviceActionTypes\";\nimport { type Signature } from \"@api/model/Signature\";\nimport { type TypedData } from \"@api/model/TypedData\";\nimport { type TransactionMapperService } from \"@internal/transaction/service/mapper/TransactionMapperService\";\nimport { type TransactionParserService } from \"@internal/transaction/service/parser/TransactionParserService\";\nimport { type TypedDataParserService } from \"@internal/typed-data/service/TypedDataParserService\";\n\nimport { GetAddressCommand } from \"./command/GetAddressCommand\";\nimport { ETHEREUM_PLUGINS } from \"./constant/plugins\";\nimport { EthAppBinder } from \"./EthAppBinder\";\n\ndescribe(\"EthAppBinder\", () => {\n const mockedDmk: DeviceManagementKit = {\n sendCommand: vi.fn(),\n executeDeviceAction: vi.fn(),\n } as unknown as DeviceManagementKit;\n const mockedContextModule: ContextModule = {\n getContext: vi.fn(),\n getContexts: vi.fn(),\n getTypedDataFilters: vi.fn(),\n };\n const mockedMapper: TransactionMapperService = {\n mapTransactionToSubset: vi.fn(),\n } as unknown as TransactionMapperService;\n const mockedParser: TransactionParserService = {\n extractValue: vi.fn(),\n } as unknown as TransactionParserService;\n\n beforeEach(() => {\n vi.clearAllMocks();\n });\n\n describe(\"getAddress\", () => {\n it(\"should return the address, publicKey, and chainCode\", () =>\n new Promise<void>((resolve, reject) => {\n // GIVEN\n const address = \"0xF7C69BedB292Dd3fC2cA4103989B5BD705164c43\";\n const publicKey = \"04e3785ca\";\n const chainCode = undefined;\n\n vi.spyOn(mockedDmk, \"executeDeviceAction\").mockReturnValue({\n observable: from([\n {\n status: DeviceActionStatus.Completed,\n output: { address, publicKey, chainCode },\n } as DeviceActionState<\n GetAddressDAOutput,\n GetAddressDAError,\n GetAddressDAIntermediateValue\n >,\n ]),\n cancel: vi.fn(),\n });\n\n // WHEN\n const appBinder = new EthAppBinder(\n mockedDmk,\n mockedContextModule,\n mockedMapper,\n mockedParser,\n \"sessionId\",\n );\n const { observable } = appBinder.getAddress({\n derivationPath: \"44'/60'/3'/2/1\",\n });\n\n // THEN\n const states: DeviceActionState<\n GetAddressDAOutput,\n GetAddressDAError,\n GetAddressDAIntermediateValue\n >[] = [];\n observable.subscribe({\n next: (state) => {\n states.push(state);\n },\n error: (err) => {\n reject(err);\n },\n complete: () => {\n try {\n expect(states).toEqual([\n {\n status: DeviceActionStatus.Completed,\n output: { address, publicKey, chainCode },\n },\n ]);\n resolve();\n } catch (err) {\n reject(err as Error);\n }\n },\n });\n }));\n\n describe(\"calls of executeDeviceAction with the correct params\", () => {\n const baseParams = {\n derivationPath: \"44'/60'/3'/2/1\",\n returnChainCode: false,\n };\n\n test(\"when checkOnDevice is true: UserInteractionRequired.VerifyAddress\", () => {\n // GIVEN\n const checkOnDevice = true;\n const params = {\n ...baseParams,\n checkOnDevice,\n };\n\n // WHEN\n const appBinder = new EthAppBinder(\n mockedDmk,\n mockedContextModule,\n mockedMapper,\n mockedParser,\n \"sessionId\",\n );\n appBinder.getAddress(params);\n\n // THEN\n expect(mockedDmk.executeDeviceAction).toHaveBeenCalledWith({\n sessionId: \"sessionId\",\n deviceAction: new SendCommandInAppDeviceAction({\n input: {\n command: new GetAddressCommand(params),\n appName: \"Ethereum\",\n requiredUserInteraction: UserInteractionRequired.VerifyAddress,\n compatibleAppNames: ETHEREUM_PLUGINS,\n },\n }),\n });\n });\n\n test(\"when checkOnDevice is false: UserInteractionRequired.None\", () => {\n // GIVEN\n const checkOnDevice = false;\n const params = {\n ...baseParams,\n checkOnDevice,\n };\n\n // WHEN\n const appBinder = new EthAppBinder(\n mockedDmk,\n mockedContextModule,\n mockedMapper,\n mockedParser,\n \"sessionId\",\n );\n appBinder.getAddress(params);\n\n // THEN\n expect(mockedDmk.executeDeviceAction).toHaveBeenCalledWith({\n sessionId: \"sessionId\",\n deviceAction: new SendCommandInAppDeviceAction({\n input: {\n command: new GetAddressCommand(params),\n appName: \"Ethereum\",\n requiredUserInteraction: UserInteractionRequired.None,\n compatibleAppNames: ETHEREUM_PLUGINS,\n },\n }),\n });\n });\n });\n });\n\n describe(\"signTransaction\", () => {\n it(\"should return the signature\", () =>\n new Promise<void>((resolve, reject) => {\n // GIVEN\n const signature: Signature = {\n r: `0xDEAD`,\n s: `0xBEEF`,\n v: 0,\n };\n const transaction: Uint8Array = hexaStringToBuffer(\n Transaction.from({\n to: \"0x1234567890123456789012345678901234567890\",\n value: 0n,\n }).unsignedSerialized,\n )!;\n const options = {};\n\n vi.spyOn(mockedDmk, \"executeDeviceAction\").mockReturnValue({\n observable: from([\n {\n status: DeviceActionStatus.Completed,\n output: signature,\n } as DeviceActionState<\n SignTypedDataDAOutput,\n SignTypedDataDAError,\n SignTypedDataDAIntermediateValue\n >,\n ]),\n cancel: vi.fn(),\n });\n\n // WHEN\n const appBinder = new EthAppBinder(\n mockedDmk,\n mockedContextModule,\n mockedMapper,\n mockedParser,\n \"sessionId\",\n );\n const { observable } = appBinder.signTransaction({\n derivationPath: \"44'/60'/3'/2/1\",\n transaction,\n options,\n });\n\n // THEN\n const states: DeviceActionState<\n SignTransactionDAOutput,\n SignTransactionDAError,\n SignTransactionDAIntermediateValue\n >[] = [];\n observable.subscribe({\n next: (state) => {\n states.push(state);\n },\n error: (err) => {\n reject(err);\n },\n complete: () => {\n try {\n expect(states).toEqual([\n {\n status: DeviceActionStatus.Completed,\n output: signature,\n },\n ]);\n resolve();\n } catch (err) {\n reject(err as Error);\n }\n },\n });\n }));\n\n it(\"should return the signature without options\", () =>\n new Promise<void>((resolve, reject) => {\n // GIVEN\n const signature: Signature = {\n r: `0xDEAD`,\n s: `0xBEEF`,\n v: 0,\n };\n const transaction: Uint8Array = hexaStringToBuffer(\n Transaction.from({\n to: \"0x1234567890123456789012345678901234567890\",\n value: 0n,\n }).unsignedSerialized,\n )!;\n\n vi.spyOn(mockedDmk, \"executeDeviceAction\").mockReturnValue({\n observable: from([\n {\n status: DeviceActionStatus.Completed,\n output: signature,\n } as DeviceActionState<\n SignTypedDataDAOutput,\n SignTypedDataDAError,\n SignTypedDataDAIntermediateValue\n >,\n ]),\n cancel: vi.fn(),\n });\n\n // WHEN\n const appBinder = new EthAppBinder(\n mockedDmk,\n mockedContextModule,\n mockedMapper,\n mockedParser,\n \"sessionId\",\n );\n const { observable } = appBinder.signTransaction({\n derivationPath: \"44'/60'/3'/2/1\",\n transaction,\n options: undefined,\n });\n\n // THEN\n const states: DeviceActionState<\n SignTransactionDAOutput,\n SignTransactionDAError,\n SignTransactionDAIntermediateValue\n >[] = [];\n observable.subscribe({\n next: (state) => {\n states.push(state);\n },\n error: (err) => {\n reject(err);\n },\n complete: () => {\n try {\n expect(states).toEqual([\n {\n status: DeviceActionStatus.Completed,\n output: signature,\n },\n ]);\n resolve();\n } catch (err) {\n reject(err as Error);\n }\n },\n });\n }));\n });\n\n describe(\"signMessage\", () => {\n it(\"should return the signature\", () =>\n new Promise<void>((resolve, reject) => {\n // GIVEN\n const signature: Signature = {\n r: `0xDEAD`,\n s: `0xBEEF`,\n v: 0,\n };\n const message = \"Hello, World!\";\n\n vi.spyOn(mockedDmk, \"executeDeviceAction\").mockReturnValue({\n observable: from([\n {\n status: DeviceActionStatus.Completed,\n output: signature,\n } as DeviceActionState<\n SignPersonalMessageDAOutput,\n SignPersonalMessageDAError,\n SignPersonalMessageDAIntermediateValue\n >,\n ]),\n cancel: vi.fn(),\n });\n\n // WHEN\n const appBinder = new EthAppBinder(\n mockedDmk,\n mockedContextModule,\n mockedMapper,\n mockedParser,\n \"sessionId\",\n );\n const { observable } = appBinder.signPersonalMessage({\n derivationPath: \"44'/60'/3'/2/1\",\n message,\n });\n\n // THEN\n const states: DeviceActionState<\n SignPersonalMessageDAOutput,\n SignPersonalMessageDAError,\n SignPersonalMessageDAIntermediateValue\n >[] = [];\n observable.subscribe({\n next: (state) => {\n states.push(state);\n },\n error: (err) => {\n reject(err);\n },\n complete: () => {\n try {\n expect(states).toEqual([\n {\n status: DeviceActionStatus.Completed,\n output: signature,\n },\n ]);\n resolve();\n } catch (err) {\n reject(err as Error);\n }\n },\n });\n }));\n });\n\n describe(\"signTypedData\", () => {\n it(\"should return the signature\", () =>\n new Promise<void>((resolve, reject) => {\n // GIVEN\n const signature: Signature = {\n r: `0xDEAD`,\n s: `0xBEEF`,\n v: 0,\n };\n const typedData: TypedData = {\n domain: {},\n types: {},\n primaryType: \"test\",\n message: {},\n };\n const parser: TypedDataParserService = {\n parse: vi.fn(),\n };\n\n vi.spyOn(mockedDmk, \"executeDeviceAction\").mockReturnValue({\n observable: from([\n {\n status: DeviceActionStatus.Completed,\n output: signature,\n } as DeviceActionState<\n SignTypedDataDAOutput,\n SignTypedDataDAError,\n SignTypedDataDAIntermediateValue\n >,\n ]),\n cancel: vi.fn(),\n });\n\n // WHEN\n const appBinder = new EthAppBinder(\n mockedDmk,\n mockedContextModule,\n mockedMapper,\n mockedParser,\n \"sessionId\",\n );\n const { observable } = appBinder.signTypedData({\n derivationPath: \"44'/60'/3'/2/1\",\n parser,\n data: typedData,\n });\n\n // THEN\n const states: DeviceActionState<\n SignTypedDataDAOutput,\n SignTypedDataDAError,\n SignTypedDataDAIntermediateValue\n >[] = [];\n observable.subscribe({\n next: (state) => {\n states.push(state);\n },\n error: (err) => {\n reject(err);\n },\n complete: () => {\n try {\n expect(states).toEqual([\n {\n status: DeviceActionStatus.Completed,\n output: signature,\n },\n ]);\n resolve();\n } catch (err) {\n reject(err as Error);\n }\n },\n });\n }));\n });\n});\n"],
5
- "mappings": "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",
4
+ "sourcesContent": ["import { type ContextModule } from \"@ledgerhq/context-module\";\nimport {\n type DeviceActionState,\n type DeviceManagementKit,\n hexaStringToBuffer,\n} from \"@ledgerhq/device-management-kit\";\nimport { DeviceActionStatus } from \"@ledgerhq/device-management-kit\";\nimport { SendCommandInAppDeviceAction } from \"@ledgerhq/device-management-kit\";\nimport { UserInteractionRequired } from \"@ledgerhq/device-management-kit\";\nimport { Transaction } from \"ethers\";\nimport { from } from \"rxjs\";\n\nimport {\n type GetAddressDAError,\n type GetAddressDAIntermediateValue,\n type GetAddressDAOutput,\n} from \"@api/app-binder/GetAddressDeviceActionTypes\";\nimport {\n type SignPersonalMessageDAError,\n type SignPersonalMessageDAIntermediateValue,\n type SignPersonalMessageDAOutput,\n} from \"@api/app-binder/SignPersonalMessageDeviceActionTypes\";\nimport {\n type SignTransactionDAError,\n type SignTransactionDAIntermediateValue,\n type SignTransactionDAOutput,\n} from \"@api/app-binder/SignTransactionDeviceActionTypes\";\nimport {\n type SignTypedDataDAError,\n type SignTypedDataDAIntermediateValue,\n type SignTypedDataDAOutput,\n} from \"@api/app-binder/SignTypedDataDeviceActionTypes\";\nimport { type Signature } from \"@api/model/Signature\";\nimport { type TypedData } from \"@api/model/TypedData\";\nimport { type TransactionMapperService } from \"@internal/transaction/service/mapper/TransactionMapperService\";\nimport { type TransactionParserService } from \"@internal/transaction/service/parser/TransactionParserService\";\nimport { type TypedDataParserService } from \"@internal/typed-data/service/TypedDataParserService\";\n\nimport { GetAddressCommand } from \"./command/GetAddressCommand\";\nimport { ETHEREUM_PLUGINS } from \"./constant/plugins\";\nimport { EthAppBinder } from \"./EthAppBinder\";\n\ndescribe(\"EthAppBinder\", () => {\n const mockedDmk: DeviceManagementKit = {\n sendCommand: vi.fn(),\n executeDeviceAction: vi.fn(),\n } as unknown as DeviceManagementKit;\n const mockedContextModule: ContextModule = {\n getContext: vi.fn(),\n getContexts: vi.fn(),\n getTypedDataFilters: vi.fn(),\n getWeb3Checks: vi.fn(),\n };\n const mockedMapper: TransactionMapperService = {\n mapTransactionToSubset: vi.fn(),\n } as unknown as TransactionMapperService;\n const mockedParser: TransactionParserService = {\n extractValue: vi.fn(),\n } as unknown as TransactionParserService;\n\n beforeEach(() => {\n vi.clearAllMocks();\n });\n\n describe(\"getAddress\", () => {\n it(\"should return the address, publicKey, and chainCode\", () =>\n new Promise<void>((resolve, reject) => {\n // GIVEN\n const address = \"0xF7C69BedB292Dd3fC2cA4103989B5BD705164c43\";\n const publicKey = \"04e3785ca\";\n const chainCode = undefined;\n\n vi.spyOn(mockedDmk, \"executeDeviceAction\").mockReturnValue({\n observable: from([\n {\n status: DeviceActionStatus.Completed,\n output: { address, publicKey, chainCode },\n } as DeviceActionState<\n GetAddressDAOutput,\n GetAddressDAError,\n GetAddressDAIntermediateValue\n >,\n ]),\n cancel: vi.fn(),\n });\n\n // WHEN\n const appBinder = new EthAppBinder(\n mockedDmk,\n mockedContextModule,\n mockedMapper,\n mockedParser,\n \"sessionId\",\n );\n const { observable } = appBinder.getAddress({\n derivationPath: \"44'/60'/3'/2/1\",\n });\n\n // THEN\n const states: DeviceActionState<\n GetAddressDAOutput,\n GetAddressDAError,\n GetAddressDAIntermediateValue\n >[] = [];\n observable.subscribe({\n next: (state) => {\n states.push(state);\n },\n error: (err) => {\n reject(err);\n },\n complete: () => {\n try {\n expect(states).toEqual([\n {\n status: DeviceActionStatus.Completed,\n output: { address, publicKey, chainCode },\n },\n ]);\n resolve();\n } catch (err) {\n reject(err as Error);\n }\n },\n });\n }));\n\n describe(\"calls of executeDeviceAction with the correct params\", () => {\n const baseParams = {\n derivationPath: \"44'/60'/3'/2/1\",\n returnChainCode: false,\n };\n\n test(\"when checkOnDevice is true: UserInteractionRequired.VerifyAddress\", () => {\n // GIVEN\n const checkOnDevice = true;\n const params = {\n ...baseParams,\n checkOnDevice,\n };\n\n // WHEN\n const appBinder = new EthAppBinder(\n mockedDmk,\n mockedContextModule,\n mockedMapper,\n mockedParser,\n \"sessionId\",\n );\n appBinder.getAddress(params);\n\n // THEN\n expect(mockedDmk.executeDeviceAction).toHaveBeenCalledWith({\n sessionId: \"sessionId\",\n deviceAction: new SendCommandInAppDeviceAction({\n input: {\n command: new GetAddressCommand(params),\n appName: \"Ethereum\",\n requiredUserInteraction: UserInteractionRequired.VerifyAddress,\n compatibleAppNames: ETHEREUM_PLUGINS,\n },\n }),\n });\n });\n\n test(\"when checkOnDevice is false: UserInteractionRequired.None\", () => {\n // GIVEN\n const checkOnDevice = false;\n const params = {\n ...baseParams,\n checkOnDevice,\n };\n\n // WHEN\n const appBinder = new EthAppBinder(\n mockedDmk,\n mockedContextModule,\n mockedMapper,\n mockedParser,\n \"sessionId\",\n );\n appBinder.getAddress(params);\n\n // THEN\n expect(mockedDmk.executeDeviceAction).toHaveBeenCalledWith({\n sessionId: \"sessionId\",\n deviceAction: new SendCommandInAppDeviceAction({\n input: {\n command: new GetAddressCommand(params),\n appName: \"Ethereum\",\n requiredUserInteraction: UserInteractionRequired.None,\n compatibleAppNames: ETHEREUM_PLUGINS,\n },\n }),\n });\n });\n });\n });\n\n describe(\"signTransaction\", () => {\n it(\"should return the signature\", () =>\n new Promise<void>((resolve, reject) => {\n // GIVEN\n const signature: Signature = {\n r: `0xDEAD`,\n s: `0xBEEF`,\n v: 0,\n };\n const transaction: Uint8Array = hexaStringToBuffer(\n Transaction.from({\n to: \"0x1234567890123456789012345678901234567890\",\n value: 0n,\n }).unsignedSerialized,\n )!;\n const options = {};\n\n vi.spyOn(mockedDmk, \"executeDeviceAction\").mockReturnValue({\n observable: from([\n {\n status: DeviceActionStatus.Completed,\n output: signature,\n } as DeviceActionState<\n SignTypedDataDAOutput,\n SignTypedDataDAError,\n SignTypedDataDAIntermediateValue\n >,\n ]),\n cancel: vi.fn(),\n });\n\n // WHEN\n const appBinder = new EthAppBinder(\n mockedDmk,\n mockedContextModule,\n mockedMapper,\n mockedParser,\n \"sessionId\",\n );\n const { observable } = appBinder.signTransaction({\n derivationPath: \"44'/60'/3'/2/1\",\n transaction,\n options,\n });\n\n // THEN\n const states: DeviceActionState<\n SignTransactionDAOutput,\n SignTransactionDAError,\n SignTransactionDAIntermediateValue\n >[] = [];\n observable.subscribe({\n next: (state) => {\n states.push(state);\n },\n error: (err) => {\n reject(err);\n },\n complete: () => {\n try {\n expect(states).toEqual([\n {\n status: DeviceActionStatus.Completed,\n output: signature,\n },\n ]);\n resolve();\n } catch (err) {\n reject(err as Error);\n }\n },\n });\n }));\n\n it(\"should return the signature without options\", () =>\n new Promise<void>((resolve, reject) => {\n // GIVEN\n const signature: Signature = {\n r: `0xDEAD`,\n s: `0xBEEF`,\n v: 0,\n };\n const transaction: Uint8Array = hexaStringToBuffer(\n Transaction.from({\n to: \"0x1234567890123456789012345678901234567890\",\n value: 0n,\n }).unsignedSerialized,\n )!;\n\n vi.spyOn(mockedDmk, \"executeDeviceAction\").mockReturnValue({\n observable: from([\n {\n status: DeviceActionStatus.Completed,\n output: signature,\n } as DeviceActionState<\n SignTypedDataDAOutput,\n SignTypedDataDAError,\n SignTypedDataDAIntermediateValue\n >,\n ]),\n cancel: vi.fn(),\n });\n\n // WHEN\n const appBinder = new EthAppBinder(\n mockedDmk,\n mockedContextModule,\n mockedMapper,\n mockedParser,\n \"sessionId\",\n );\n const { observable } = appBinder.signTransaction({\n derivationPath: \"44'/60'/3'/2/1\",\n transaction,\n options: undefined,\n });\n\n // THEN\n const states: DeviceActionState<\n SignTransactionDAOutput,\n SignTransactionDAError,\n SignTransactionDAIntermediateValue\n >[] = [];\n observable.subscribe({\n next: (state) => {\n states.push(state);\n },\n error: (err) => {\n reject(err);\n },\n complete: () => {\n try {\n expect(states).toEqual([\n {\n status: DeviceActionStatus.Completed,\n output: signature,\n },\n ]);\n resolve();\n } catch (err) {\n reject(err as Error);\n }\n },\n });\n }));\n });\n\n describe(\"signMessage\", () => {\n it(\"should return the signature\", () =>\n new Promise<void>((resolve, reject) => {\n // GIVEN\n const signature: Signature = {\n r: `0xDEAD`,\n s: `0xBEEF`,\n v: 0,\n };\n const message = \"Hello, World!\";\n\n vi.spyOn(mockedDmk, \"executeDeviceAction\").mockReturnValue({\n observable: from([\n {\n status: DeviceActionStatus.Completed,\n output: signature,\n } as DeviceActionState<\n SignPersonalMessageDAOutput,\n SignPersonalMessageDAError,\n SignPersonalMessageDAIntermediateValue\n >,\n ]),\n cancel: vi.fn(),\n });\n\n // WHEN\n const appBinder = new EthAppBinder(\n mockedDmk,\n mockedContextModule,\n mockedMapper,\n mockedParser,\n \"sessionId\",\n );\n const { observable } = appBinder.signPersonalMessage({\n derivationPath: \"44'/60'/3'/2/1\",\n message,\n });\n\n // THEN\n const states: DeviceActionState<\n SignPersonalMessageDAOutput,\n SignPersonalMessageDAError,\n SignPersonalMessageDAIntermediateValue\n >[] = [];\n observable.subscribe({\n next: (state) => {\n states.push(state);\n },\n error: (err) => {\n reject(err);\n },\n complete: () => {\n try {\n expect(states).toEqual([\n {\n status: DeviceActionStatus.Completed,\n output: signature,\n },\n ]);\n resolve();\n } catch (err) {\n reject(err as Error);\n }\n },\n });\n }));\n });\n\n describe(\"signTypedData\", () => {\n it(\"should return the signature\", () =>\n new Promise<void>((resolve, reject) => {\n // GIVEN\n const signature: Signature = {\n r: `0xDEAD`,\n s: `0xBEEF`,\n v: 0,\n };\n const typedData: TypedData = {\n domain: {},\n types: {},\n primaryType: \"test\",\n message: {},\n };\n const parser: TypedDataParserService = {\n parse: vi.fn(),\n };\n\n vi.spyOn(mockedDmk, \"executeDeviceAction\").mockReturnValue({\n observable: from([\n {\n status: DeviceActionStatus.Completed,\n output: signature,\n } as DeviceActionState<\n SignTypedDataDAOutput,\n SignTypedDataDAError,\n SignTypedDataDAIntermediateValue\n >,\n ]),\n cancel: vi.fn(),\n });\n\n // WHEN\n const appBinder = new EthAppBinder(\n mockedDmk,\n mockedContextModule,\n mockedMapper,\n mockedParser,\n \"sessionId\",\n );\n const { observable } = appBinder.signTypedData({\n derivationPath: \"44'/60'/3'/2/1\",\n parser,\n data: typedData,\n });\n\n // THEN\n const states: DeviceActionState<\n SignTypedDataDAOutput,\n SignTypedDataDAError,\n SignTypedDataDAIntermediateValue\n >[] = [];\n observable.subscribe({\n next: (state) => {\n states.push(state);\n },\n error: (err) => {\n reject(err);\n },\n complete: () => {\n try {\n expect(states).toEqual([\n {\n status: DeviceActionStatus.Completed,\n output: signature,\n },\n ]);\n resolve();\n } catch (err) {\n reject(err as Error);\n }\n },\n });\n }));\n });\n});\n"],
5
+ "mappings": "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",
6
6
  "names": ["import_device_management_kit", "import_ethers", "import_rxjs", "import_GetAddressCommand", "import_plugins", "import_EthAppBinder", "mockedDmk", "mockedContextModule", "mockedMapper", "mockedParser", "resolve", "reject", "address", "publicKey", "appBinder", "observable", "states", "state", "err", "baseParams", "params", "signature", "transaction", "options", "message", "typedData", "parser"]
7
7
  }
@@ -0,0 +1,2 @@
1
+ "use strict";var a=Object.defineProperty;var g=Object.getOwnPropertyDescriptor;var A=Object.getOwnPropertyNames;var E=Object.prototype.hasOwnProperty;var R=(t,e)=>{for(var o in e)a(t,o,{get:e[o],enumerable:!0})},x=(t,e,o,p)=>{if(e&&typeof e=="object"||typeof e=="function")for(let n of A(e))!E.call(t,n)&&n!==o&&a(t,n,{get:()=>e[n],enumerable:!(p=g(e,n))||p.enumerable});return t};var y=t=>x(a({},"__esModule",{value:!0}),t);var h={};R(h,{GetAppConfiguration:()=>b});module.exports=y(h);var r=require("@ledgerhq/device-management-kit"),m=require("@ledgerhq/signer-utils"),u=require("purify-ts"),s=require("./utils/ethAppErrors");class b{errorHelper=new m.CommandErrorHelper(s.ETH_APP_ERRORS,s.EthAppCommandErrorFactory);constructor(){}getApdu(){const e={cla:224,ins:6,p1:0,p2:0};return new r.ApduBuilder(e).build()}parseResponse(e){return u.Maybe.fromNullable(this.errorHelper.getError(e)).orDefaultLazy(()=>{const o=new r.ApduParser(e),p=o.extract8BitUInt();if(p===void 0)return(0,r.CommandResultFactory)({error:new r.InvalidStatusWordError("Cannot extract config flags")});const n=o.extract8BitUInt(),i=o.extract8BitUInt(),d=o.extract8BitUInt();if(n===void 0||i===void 0||d===void 0)return(0,r.CommandResultFactory)({error:new r.InvalidStatusWordError("Cannot extract version")});const C=!!(p&1),c=!!(p&16),l=!!(p&32),f={blindSigningEnabled:C,web3ChecksEnabled:c,web3ChecksOptIn:l,version:`${n}.${i}.${d}`};return(0,r.CommandResultFactory)({data:f})})}}0&&(module.exports={GetAppConfiguration});
2
+ //# sourceMappingURL=GetAppConfigurationCommand.js.map
@@ -0,0 +1,7 @@
1
+ {
2
+ "version": 3,
3
+ "sources": ["../../../../../src/internal/app-binder/command/GetAppConfigurationCommand.ts"],
4
+ "sourcesContent": ["import {\n type Apdu,\n ApduBuilder,\n type ApduBuilderArgs,\n ApduParser,\n type ApduResponse,\n type Command,\n type CommandResult,\n CommandResultFactory,\n InvalidStatusWordError,\n} from \"@ledgerhq/device-management-kit\";\nimport { CommandErrorHelper } from \"@ledgerhq/signer-utils\";\nimport { Maybe } from \"purify-ts\";\n\nimport { type GetConfigCommandResponse as GetAppConfigurationCommandResponse } from \"@api/app-binder/GetConfigCommandTypes\";\n\nimport {\n ETH_APP_ERRORS,\n EthAppCommandErrorFactory,\n type EthErrorCodes,\n} from \"./utils/ethAppErrors\";\n\nexport class GetAppConfiguration\n implements Command<GetAppConfigurationCommandResponse, void, EthErrorCodes>\n{\n private readonly errorHelper = new CommandErrorHelper<\n GetAppConfigurationCommandResponse,\n EthErrorCodes\n >(ETH_APP_ERRORS, EthAppCommandErrorFactory);\n\n constructor() {}\n\n getApdu(): Apdu {\n const getEthConfigArgs: ApduBuilderArgs = {\n cla: 0xe0,\n ins: 0x06,\n p1: 0x00,\n p2: 0x00,\n };\n const builder = new ApduBuilder(getEthConfigArgs);\n return builder.build();\n }\n\n parseResponse(\n response: ApduResponse,\n ): CommandResult<GetAppConfigurationCommandResponse, EthErrorCodes> {\n return Maybe.fromNullable(\n this.errorHelper.getError(response),\n ).orDefaultLazy(() => {\n const parser = new ApduParser(response);\n\n const configFlags = parser.extract8BitUInt();\n if (configFlags === undefined) {\n return CommandResultFactory({\n error: new InvalidStatusWordError(\"Cannot extract config flags\"),\n });\n }\n\n const major = parser.extract8BitUInt();\n const minor = parser.extract8BitUInt();\n const patch = parser.extract8BitUInt();\n\n if (major === undefined || minor === undefined || patch === undefined) {\n return CommandResultFactory({\n error: new InvalidStatusWordError(\"Cannot extract version\"),\n });\n }\n\n const blindSigningEnabled = !!(configFlags & 0x00000001);\n const web3ChecksEnabled = !!(configFlags & 0x00000010);\n const web3ChecksOptIn = !!(configFlags & 0x00000020);\n\n const data: GetAppConfigurationCommandResponse = {\n blindSigningEnabled,\n web3ChecksEnabled,\n web3ChecksOptIn,\n version: `${major}.${minor}.${patch}`,\n };\n\n return CommandResultFactory({\n data,\n });\n });\n }\n}\n"],
5
+ "mappings": "yaAAA,IAAAA,EAAA,GAAAC,EAAAD,EAAA,yBAAAE,IAAA,eAAAC,EAAAH,GAAA,IAAAI,EAUO,2CACPC,EAAmC,kCACnCC,EAAsB,qBAItBC,EAIO,gCAEA,MAAML,CAEb,CACmB,YAAc,IAAI,qBAGjC,iBAAgB,2BAAyB,EAE3C,aAAc,CAAC,CAEf,SAAgB,CACd,MAAMM,EAAoC,CACxC,IAAK,IACL,IAAK,EACL,GAAI,EACJ,GAAI,CACN,EAEA,OADgB,IAAI,cAAYA,CAAgB,EACjC,MAAM,CACvB,CAEA,cACEC,EACkE,CAClE,OAAO,QAAM,aACX,KAAK,YAAY,SAASA,CAAQ,CACpC,EAAE,cAAc,IAAM,CACpB,MAAMC,EAAS,IAAI,aAAWD,CAAQ,EAEhCE,EAAcD,EAAO,gBAAgB,EAC3C,GAAIC,IAAgB,OAClB,SAAO,wBAAqB,CAC1B,MAAO,IAAI,yBAAuB,6BAA6B,CACjE,CAAC,EAGH,MAAMC,EAAQF,EAAO,gBAAgB,EAC/BG,EAAQH,EAAO,gBAAgB,EAC/BI,EAAQJ,EAAO,gBAAgB,EAErC,GAAIE,IAAU,QAAaC,IAAU,QAAaC,IAAU,OAC1D,SAAO,wBAAqB,CAC1B,MAAO,IAAI,yBAAuB,wBAAwB,CAC5D,CAAC,EAGH,MAAMC,EAAsB,CAAC,EAAEJ,EAAc,GACvCK,EAAoB,CAAC,EAAEL,EAAc,IACrCM,EAAkB,CAAC,EAAEN,EAAc,IAEnCO,EAA2C,CAC/C,oBAAAH,EACA,kBAAAC,EACA,gBAAAC,EACA,QAAS,GAAGL,CAAK,IAAIC,CAAK,IAAIC,CAAK,EACrC,EAEA,SAAO,wBAAqB,CAC1B,KAAAI,CACF,CAAC,CACH,CAAC,CACH,CACF",
6
+ "names": ["GetAppConfigurationCommand_exports", "__export", "GetAppConfiguration", "__toCommonJS", "import_device_management_kit", "import_signer_utils", "import_purify_ts", "import_ethAppErrors", "getEthConfigArgs", "response", "parser", "configFlags", "major", "minor", "patch", "blindSigningEnabled", "web3ChecksEnabled", "web3ChecksOptIn", "data"]
7
+ }
@@ -0,0 +1,2 @@
1
+ "use strict";var t=require("@ledgerhq/device-management-kit"),a=require("./GetAppConfigurationCommand");describe("GetConfigCommand",()=>{let s;beforeEach(()=>{s=new a.GetAppConfiguration}),describe("getApdu",()=>{it("should return the raw APDU",()=>{const r=s.getApdu();expect(r.getRawApdu()).toStrictEqual(Uint8Array.from([224,6,0,0,0]))})}),describe("parseResponse",()=>{it("should return the app configuration",()=>{const r={statusCode:Uint8Array.from([144,0]),data:new Uint8Array([49,1,2,3])},e=s.parseResponse(r);(0,t.isSuccessCommandResult)(e)?expect(e.data).toEqual({blindSigningEnabled:!0,web3ChecksEnabled:!0,web3ChecksOptIn:!0,version:"1.2.3"}):assert.fail("Expected a success")}),it("should return the app configuration with flags disabled",()=>{const r={statusCode:Uint8Array.from([144,0]),data:new Uint8Array([0,1,2,3])},e=s.parseResponse(r);(0,t.isSuccessCommandResult)(e)?expect(e.data).toEqual({blindSigningEnabled:!1,web3ChecksEnabled:!1,web3ChecksOptIn:!1,version:"1.2.3"}):assert.fail("Expected a success")}),it("should return an error if the device is locked",()=>{const r={statusCode:Uint8Array.from([85,21]),data:new Uint8Array},e=s.parseResponse(r);(0,t.isSuccessCommandResult)(e)?assert.fail("Expected an error"):expect(e.error).toEqual(expect.objectContaining({errorCode:"5515",message:"Device is locked."}))}),it("should return an error if data is invalid",()=>{const r={statusCode:Uint8Array.from([106,128]),data:new Uint8Array},e=s.parseResponse(r);(0,t.isSuccessCommandResult)(e)?assert.fail("Expected an error"):expect(e.error).toEqual(expect.objectContaining({errorCode:"6a80",message:"Invalid data"}))}),it("should return an error if no flags are extracted",()=>{const r={statusCode:Uint8Array.from([144,0]),data:new Uint8Array},e=s.parseResponse(r);(0,t.isSuccessCommandResult)(e)?assert.fail("Expected an error"):(expect(e.error).toBeInstanceOf(t.InvalidStatusWordError),expect(e.error).toEqual(expect.objectContaining({originalError:new Error("Cannot extract config flags")})))}),it("should return an error if no version is extracted",()=>{const r={statusCode:Uint8Array.from([144,0]),data:new Uint8Array([1])},e=s.parseResponse(r);(0,t.isSuccessCommandResult)(e)?assert.fail("Expected an error"):(expect(e.error).toBeInstanceOf(t.InvalidStatusWordError),expect(e.error).toEqual(expect.objectContaining({originalError:new Error("Cannot extract version")})))})})});
2
+ //# sourceMappingURL=GetAppConfigurationCommand.test.js.map
@@ -0,0 +1,7 @@
1
+ {
2
+ "version": 3,
3
+ "sources": ["../../../../../src/internal/app-binder/command/GetAppConfigurationCommand.test.ts"],
4
+ "sourcesContent": ["import {\n InvalidStatusWordError,\n isSuccessCommandResult,\n} from \"@ledgerhq/device-management-kit\";\n\nimport { GetAppConfiguration } from \"./GetAppConfigurationCommand\";\n\ndescribe(\"GetConfigCommand\", () => {\n let command: GetAppConfiguration;\n\n beforeEach(() => {\n command = new GetAppConfiguration();\n });\n\n describe(\"getApdu\", () => {\n it(\"should return the raw APDU\", () => {\n // WHEN\n const apdu = command.getApdu();\n\n // THEN\n expect(apdu.getRawApdu()).toStrictEqual(\n Uint8Array.from([0xe0, 0x06, 0x00, 0x00, 0x00]),\n );\n });\n });\n\n describe(\"parseResponse\", () => {\n it(\"should return the app configuration\", () => {\n // GIVEN\n const response = {\n statusCode: Uint8Array.from([0x90, 0x00]),\n data: new Uint8Array([0x31, 0x01, 0x02, 0x03]),\n };\n\n // WHEN\n const result = command.parseResponse(response);\n\n // THEN\n if (isSuccessCommandResult(result)) {\n expect(result.data).toEqual({\n blindSigningEnabled: true,\n web3ChecksEnabled: true,\n web3ChecksOptIn: true,\n version: \"1.2.3\",\n });\n } else {\n assert.fail(\"Expected a success\");\n }\n });\n\n it(\"should return the app configuration with flags disabled\", () => {\n // GIVEN\n const response = {\n statusCode: Uint8Array.from([0x90, 0x00]),\n data: new Uint8Array([0x00, 0x01, 0x02, 0x03]),\n };\n\n // WHEN\n const result = command.parseResponse(response);\n\n // THEN\n if (isSuccessCommandResult(result)) {\n expect(result.data).toEqual({\n blindSigningEnabled: false,\n web3ChecksEnabled: false,\n web3ChecksOptIn: false,\n version: \"1.2.3\",\n });\n } else {\n assert.fail(\"Expected a success\");\n }\n });\n\n it(\"should return an error if the device is locked\", () => {\n // GIVEN\n const response = {\n statusCode: Uint8Array.from([0x55, 0x15]),\n data: new Uint8Array(),\n };\n\n // WHEN\n const result = command.parseResponse(response);\n\n // THEN\n if (isSuccessCommandResult(result)) {\n assert.fail(\"Expected an error\");\n } else {\n expect(result.error).toEqual(\n expect.objectContaining({\n errorCode: \"5515\",\n message: \"Device is locked.\",\n }),\n );\n }\n });\n\n it(\"should return an error if data is invalid\", () => {\n // GIVEN\n const response = {\n statusCode: Uint8Array.from([0x6a, 0x80]),\n data: new Uint8Array(),\n };\n\n // WHEN\n const result = command.parseResponse(response);\n\n // THEN\n if (isSuccessCommandResult(result)) {\n assert.fail(\"Expected an error\");\n } else {\n expect(result.error).toEqual(\n expect.objectContaining({\n errorCode: \"6a80\",\n message: \"Invalid data\",\n }),\n );\n }\n });\n\n it(\"should return an error if no flags are extracted\", () => {\n // GIVEN\n const response = {\n statusCode: Uint8Array.from([0x90, 0x00]),\n data: new Uint8Array(),\n };\n\n // WHEN\n const result = command.parseResponse(response);\n\n // THEN\n if (isSuccessCommandResult(result)) {\n assert.fail(\"Expected an error\");\n } else {\n expect(result.error).toBeInstanceOf(InvalidStatusWordError);\n expect(result.error).toEqual(\n expect.objectContaining({\n originalError: new Error(\"Cannot extract config flags\"),\n }),\n );\n }\n });\n\n it(\"should return an error if no version is extracted\", () => {\n // GIVEN\n const response = {\n statusCode: Uint8Array.from([0x90, 0x00]),\n data: new Uint8Array([0x01]),\n };\n\n // WHEN\n const result = command.parseResponse(response);\n\n // THEN\n if (isSuccessCommandResult(result)) {\n assert.fail(\"Expected an error\");\n } else {\n expect(result.error).toBeInstanceOf(InvalidStatusWordError);\n expect(result.error).toEqual(\n expect.objectContaining({\n originalError: new Error(\"Cannot extract version\"),\n }),\n );\n }\n });\n });\n});\n"],
5
+ "mappings": "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",
6
+ "names": ["import_device_management_kit", "import_GetAppConfigurationCommand", "command", "apdu", "response", "result"]
7
+ }
@@ -0,0 +1,2 @@
1
+ "use strict";var p=Object.defineProperty;var i=Object.getOwnPropertyDescriptor;var u=Object.getOwnPropertyNames;var l=Object.prototype.hasOwnProperty;var C=(e,r)=>{for(var d in r)p(e,d,{get:r[d],enumerable:!0})},y=(e,r,d,s)=>{if(r&&typeof r=="object"||typeof r=="function")for(let o of u(r))!l.call(e,o)&&o!==d&&p(e,o,{get:()=>r[o],enumerable:!(s=i(r,o))||s.enumerable});return e};var A=e=>y(p({},"__esModule",{value:!0}),e);var E={};C(E,{ProvideWeb3CheckCommand:()=>h});module.exports=A(E);var t=require("@ledgerhq/device-management-kit"),m=require("@ledgerhq/signer-utils"),n=require("purify-ts"),a=require("../../app-binder/command/utils/ethAppErrors");class h{constructor(r){this.args=r}errorHelper=new m.CommandErrorHelper(a.ETH_APP_ERRORS,a.EthAppCommandErrorFactory);getApdu(){const r={cla:224,ins:50,p1:0,p2:this.args.isFirstChunk?1:0};return new t.ApduBuilder(r).addBufferToData(this.args.payload).build()}parseResponse(r){return n.Maybe.fromNullable(this.errorHelper.getError(r)).orDefault((0,t.CommandResultFactory)({data:void 0}))}}0&&(module.exports={ProvideWeb3CheckCommand});
2
+ //# sourceMappingURL=ProvideWeb3CheckCommand.js.map
@@ -0,0 +1,7 @@
1
+ {
2
+ "version": 3,
3
+ "sources": ["../../../../../src/internal/app-binder/command/ProvideWeb3CheckCommand.ts"],
4
+ "sourcesContent": ["import {\n type Apdu,\n ApduBuilder,\n type ApduBuilderArgs,\n type ApduResponse,\n type Command,\n type CommandResult,\n CommandResultFactory,\n} from \"@ledgerhq/device-management-kit\";\nimport { CommandErrorHelper } from \"@ledgerhq/signer-utils\";\nimport { Maybe } from \"purify-ts\";\n\nimport {\n ETH_APP_ERRORS,\n EthAppCommandErrorFactory,\n type EthErrorCodes,\n} from \"@internal/app-binder/command/utils/ethAppErrors\";\n\nexport type ProvideWeb3CheckCommandArgs = {\n readonly payload: Uint8Array;\n readonly isFirstChunk: boolean;\n};\n\n/**\n * The command that provides a chunk of the trusted name to the device.\n */\nexport class ProvideWeb3CheckCommand\n implements Command<void, ProvideWeb3CheckCommandArgs, EthErrorCodes>\n{\n private readonly errorHelper = new CommandErrorHelper<void, EthErrorCodes>(\n ETH_APP_ERRORS,\n EthAppCommandErrorFactory,\n );\n\n constructor(private readonly args: ProvideWeb3CheckCommandArgs) {}\n\n getApdu(): Apdu {\n const apduBuilderArgs: ApduBuilderArgs = {\n cla: 0xe0,\n ins: 0x32,\n p1: 0x00,\n p2: this.args.isFirstChunk ? 0x01 : 0x00,\n };\n\n return new ApduBuilder(apduBuilderArgs)\n .addBufferToData(this.args.payload)\n .build();\n }\n\n parseResponse(response: ApduResponse): CommandResult<void, EthErrorCodes> {\n return Maybe.fromNullable(this.errorHelper.getError(response)).orDefault(\n CommandResultFactory({ data: undefined }),\n );\n }\n}\n"],
5
+ "mappings": "yaAAA,IAAAA,EAAA,GAAAC,EAAAD,EAAA,6BAAAE,IAAA,eAAAC,EAAAH,GAAA,IAAAI,EAQO,2CACPC,EAAmC,kCACnCC,EAAsB,qBAEtBC,EAIO,2DAUA,MAAML,CAEb,CAME,YAA6BM,EAAmC,CAAnC,UAAAA,CAAoC,CALhD,YAAc,IAAI,qBACjC,iBACA,2BACF,EAIA,SAAgB,CACd,MAAMC,EAAmC,CACvC,IAAK,IACL,IAAK,GACL,GAAI,EACJ,GAAI,KAAK,KAAK,aAAe,EAAO,CACtC,EAEA,OAAO,IAAI,cAAYA,CAAe,EACnC,gBAAgB,KAAK,KAAK,OAAO,EACjC,MAAM,CACX,CAEA,cAAcC,EAA4D,CACxE,OAAO,QAAM,aAAa,KAAK,YAAY,SAASA,CAAQ,CAAC,EAAE,aAC7D,wBAAqB,CAAE,KAAM,MAAU,CAAC,CAC1C,CACF,CACF",
6
+ "names": ["ProvideWeb3CheckCommand_exports", "__export", "ProvideWeb3CheckCommand", "__toCommonJS", "import_device_management_kit", "import_signer_utils", "import_purify_ts", "import_ethAppErrors", "args", "apduBuilderArgs", "response"]
7
+ }
@@ -0,0 +1,2 @@
1
+ "use strict";var r=require("@ledgerhq/device-management-kit"),a=require("../../app-binder/command/ProvideWeb3CheckCommand");describe("ProvideWeb3CheckCommand",()=>{describe("getApdu",()=>{it("should return the raw APDU",()=>{const t={payload:(0,r.hexaStringToBuffer)("0x010203"),isFirstChunk:!0},e=new a.ProvideWeb3CheckCommand(t).getApdu();expect(e.getRawApdu()).toStrictEqual(Uint8Array.from([224,50,0,1,3,1,2,3]))}),it("should return the raw APDU for next chunk",()=>{const t={payload:(0,r.hexaStringToBuffer)("0x010203"),isFirstChunk:!1},e=new a.ProvideWeb3CheckCommand(t).getApdu();expect(e.getRawApdu()).toStrictEqual(Uint8Array.from([224,50,0,0,3,1,2,3]))})}),describe("parseResponse",()=>{it("should return undefined",()=>{const t={payload:(0,r.hexaStringToBuffer)("0x010203"),isFirstChunk:!0},s={statusCode:Uint8Array.from([144,0]),data:new Uint8Array([])},e=new a.ProvideWeb3CheckCommand(t).parseResponse(s);(0,r.isSuccessCommandResult)(e)?expect(e.data).toBeUndefined():assert.fail("Expected a success")}),it("should return an error if the device is locked",()=>{const t={payload:(0,r.hexaStringToBuffer)("0x010203"),isFirstChunk:!0},s={statusCode:Uint8Array.from([85,21]),data:new Uint8Array},e=new a.ProvideWeb3CheckCommand(t).parseResponse(s);(0,r.isSuccessCommandResult)(e)?assert.fail("Expected an error"):expect(e.error).toEqual(expect.objectContaining({errorCode:"5515",message:"Device is locked."}))}),it("should return an error if data is invalid",()=>{const t={payload:(0,r.hexaStringToBuffer)("0x010203"),isFirstChunk:!0},s={statusCode:Uint8Array.from([106,128]),data:new Uint8Array},e=new a.ProvideWeb3CheckCommand(t).parseResponse(s);(0,r.isSuccessCommandResult)(e)?assert.fail("Expected an error"):expect(e.error).toEqual(expect.objectContaining({errorCode:"6a80",message:"Invalid data"}))})})});
2
+ //# sourceMappingURL=ProvideWeb3CheckCommand.test.js.map
@@ -0,0 +1,7 @@
1
+ {
2
+ "version": 3,
3
+ "sources": ["../../../../../src/internal/app-binder/command/ProvideWeb3CheckCommand.test.ts"],
4
+ "sourcesContent": ["import {\n hexaStringToBuffer,\n isSuccessCommandResult,\n} from \"@ledgerhq/device-management-kit\";\n\nimport { ProvideWeb3CheckCommand } from \"@internal/app-binder/command/ProvideWeb3CheckCommand\";\n\ndescribe(\"ProvideWeb3CheckCommand\", () => {\n describe(\"getApdu\", () => {\n it(\"should return the raw APDU\", () => {\n // GIVEN\n const args = {\n payload: hexaStringToBuffer(\"0x010203\")!,\n isFirstChunk: true,\n };\n const command = new ProvideWeb3CheckCommand(args);\n\n // WHEN\n const apdu = command.getApdu();\n\n // THEN\n expect(apdu.getRawApdu()).toStrictEqual(\n Uint8Array.from([0xe0, 0x32, 0x00, 0x01, 0x03, 0x01, 0x02, 0x03]),\n );\n });\n\n it(\"should return the raw APDU for next chunk\", () => {\n // GIVEN\n const args = {\n payload: hexaStringToBuffer(\"0x010203\")!,\n isFirstChunk: false,\n };\n const command = new ProvideWeb3CheckCommand(args);\n\n // WHEN\n const apdu = command.getApdu();\n\n // THEN\n expect(apdu.getRawApdu()).toStrictEqual(\n Uint8Array.from([0xe0, 0x32, 0x00, 0x00, 0x03, 0x01, 0x02, 0x03]),\n );\n });\n });\n\n describe(\"parseResponse\", () => {\n it(\"should return undefined\", () => {\n // GIVEN\n const args = {\n payload: hexaStringToBuffer(\"0x010203\")!,\n isFirstChunk: true,\n };\n const response = {\n statusCode: Uint8Array.from([0x90, 0x00]),\n data: new Uint8Array([]),\n };\n\n // WHEN\n const result = new ProvideWeb3CheckCommand(args).parseResponse(response);\n\n // THEN\n if (isSuccessCommandResult(result)) {\n expect(result.data).toBeUndefined();\n } else {\n assert.fail(\"Expected a success\");\n }\n });\n\n it(\"should return an error if the device is locked\", () => {\n // GIVEN\n const args = {\n payload: hexaStringToBuffer(\"0x010203\")!,\n isFirstChunk: true,\n };\n const response = {\n statusCode: Uint8Array.from([0x55, 0x15]),\n data: new Uint8Array(),\n };\n\n // WHEN\n const result = new ProvideWeb3CheckCommand(args).parseResponse(response);\n\n // THEN\n if (isSuccessCommandResult(result)) {\n assert.fail(\"Expected an error\");\n } else {\n expect(result.error).toEqual(\n expect.objectContaining({\n errorCode: \"5515\",\n message: \"Device is locked.\",\n }),\n );\n }\n });\n\n it(\"should return an error if data is invalid\", () => {\n // GIVEN\n const args = {\n payload: hexaStringToBuffer(\"0x010203\")!,\n isFirstChunk: true,\n };\n const response = {\n statusCode: Uint8Array.from([0x6a, 0x80]),\n data: new Uint8Array(),\n };\n\n // WHEN\n const result = new ProvideWeb3CheckCommand(args).parseResponse(response);\n\n // THEN\n if (isSuccessCommandResult(result)) {\n assert.fail(\"Expected an error\");\n } else {\n expect(result.error).toEqual(\n expect.objectContaining({\n errorCode: \"6a80\",\n message: \"Invalid data\",\n }),\n );\n }\n });\n });\n});\n"],
5
+ "mappings": "aAAA,IAAAA,EAGO,2CAEPC,EAAwC,gEAExC,SAAS,0BAA2B,IAAM,CACxC,SAAS,UAAW,IAAM,CACxB,GAAG,6BAA8B,IAAM,CAErC,MAAMC,EAAO,CACX,WAAS,sBAAmB,UAAU,EACtC,aAAc,EAChB,EAIMC,EAHU,IAAI,0BAAwBD,CAAI,EAG3B,QAAQ,EAG7B,OAAOC,EAAK,WAAW,CAAC,EAAE,cACxB,WAAW,KAAK,CAAC,IAAM,GAAM,EAAM,EAAM,EAAM,EAAM,EAAM,CAAI,CAAC,CAClE,CACF,CAAC,EAED,GAAG,4CAA6C,IAAM,CAEpD,MAAMD,EAAO,CACX,WAAS,sBAAmB,UAAU,EACtC,aAAc,EAChB,EAIMC,EAHU,IAAI,0BAAwBD,CAAI,EAG3B,QAAQ,EAG7B,OAAOC,EAAK,WAAW,CAAC,EAAE,cACxB,WAAW,KAAK,CAAC,IAAM,GAAM,EAAM,EAAM,EAAM,EAAM,EAAM,CAAI,CAAC,CAClE,CACF,CAAC,CACH,CAAC,EAED,SAAS,gBAAiB,IAAM,CAC9B,GAAG,0BAA2B,IAAM,CAElC,MAAMD,EAAO,CACX,WAAS,sBAAmB,UAAU,EACtC,aAAc,EAChB,EACME,EAAW,CACf,WAAY,WAAW,KAAK,CAAC,IAAM,CAAI,CAAC,EACxC,KAAM,IAAI,WAAW,CAAC,CAAC,CACzB,EAGMC,EAAS,IAAI,0BAAwBH,CAAI,EAAE,cAAcE,CAAQ,KAGnE,0BAAuBC,CAAM,EAC/B,OAAOA,EAAO,IAAI,EAAE,cAAc,EAElC,OAAO,KAAK,oBAAoB,CAEpC,CAAC,EAED,GAAG,iDAAkD,IAAM,CAEzD,MAAMH,EAAO,CACX,WAAS,sBAAmB,UAAU,EACtC,aAAc,EAChB,EACME,EAAW,CACf,WAAY,WAAW,KAAK,CAAC,GAAM,EAAI,CAAC,EACxC,KAAM,IAAI,UACZ,EAGMC,EAAS,IAAI,0BAAwBH,CAAI,EAAE,cAAcE,CAAQ,KAGnE,0BAAuBC,CAAM,EAC/B,OAAO,KAAK,mBAAmB,EAE/B,OAAOA,EAAO,KAAK,EAAE,QACnB,OAAO,iBAAiB,CACtB,UAAW,OACX,QAAS,mBACX,CAAC,CACH,CAEJ,CAAC,EAED,GAAG,4CAA6C,IAAM,CAEpD,MAAMH,EAAO,CACX,WAAS,sBAAmB,UAAU,EACtC,aAAc,EAChB,EACME,EAAW,CACf,WAAY,WAAW,KAAK,CAAC,IAAM,GAAI,CAAC,EACxC,KAAM,IAAI,UACZ,EAGMC,EAAS,IAAI,0BAAwBH,CAAI,EAAE,cAAcE,CAAQ,KAGnE,0BAAuBC,CAAM,EAC/B,OAAO,KAAK,mBAAmB,EAE/B,OAAOA,EAAO,KAAK,EAAE,QACnB,OAAO,iBAAiB,CACtB,UAAW,OACX,QAAS,cACX,CAAC,CACH,CAEJ,CAAC,CACH,CAAC,CACH,CAAC",
6
+ "names": ["import_device_management_kit", "import_ProvideWeb3CheckCommand", "args", "apdu", "response", "result"]
7
+ }
@@ -0,0 +1,2 @@
1
+ "use strict";var d=Object.defineProperty;var u=Object.getOwnPropertyDescriptor;var l=Object.getOwnPropertyNames;var C=Object.prototype.hasOwnProperty;var i=(r,e)=>{for(var o in e)d(r,o,{get:e[o],enumerable:!0})},c=(r,e,o,a)=>{if(e&&typeof e=="object"||typeof e=="function")for(let n of l(e))!C.call(r,n)&&n!==o&&d(r,n,{get:()=>e[n],enumerable:!(a=u(e,n))||a.enumerable});return r};var A=r=>c(d({},"__esModule",{value:!0}),r);var b={};i(b,{Web3CheckOptInCommand:()=>E});module.exports=A(b);var t=require("@ledgerhq/device-management-kit"),m=require("@ledgerhq/signer-utils"),s=require("purify-ts"),p=require("../../app-binder/command/utils/ethAppErrors");class E{errorHelper=new m.CommandErrorHelper(p.ETH_APP_ERRORS,p.EthAppCommandErrorFactory);constructor(){}getApdu(){const e={cla:224,ins:50,p1:1,p2:0};return new t.ApduBuilder(e).build()}parseResponse(e){return s.Maybe.fromNullable(this.errorHelper.getError(e)).orDefaultLazy(()=>{const o=new t.ApduParser(e).extract8BitUInt();return o===void 0?(0,t.CommandResultFactory)({data:{enabled:!1}}):(0,t.CommandResultFactory)({data:{enabled:o!==0}})})}}0&&(module.exports={Web3CheckOptInCommand});
2
+ //# sourceMappingURL=Web3CheckOptInCommand.js.map
@@ -0,0 +1,7 @@
1
+ {
2
+ "version": 3,
3
+ "sources": ["../../../../../src/internal/app-binder/command/Web3CheckOptInCommand.ts"],
4
+ "sourcesContent": ["import {\n type Apdu,\n ApduBuilder,\n type ApduBuilderArgs,\n ApduParser,\n type ApduResponse,\n type Command,\n type CommandResult,\n CommandResultFactory,\n} from \"@ledgerhq/device-management-kit\";\nimport { CommandErrorHelper } from \"@ledgerhq/signer-utils\";\nimport { Maybe } from \"purify-ts\";\n\nimport {\n ETH_APP_ERRORS,\n EthAppCommandErrorFactory,\n type EthErrorCodes,\n} from \"@internal/app-binder/command/utils/ethAppErrors\";\n\nexport type Web3CheckOptInCommandResponse = {\n enabled: boolean;\n};\n\n/**\n * The command that trigger web3check opt-in on device.\n */\nexport class Web3CheckOptInCommand\n implements Command<Web3CheckOptInCommandResponse, void, EthErrorCodes>\n{\n private readonly errorHelper = new CommandErrorHelper<\n Web3CheckOptInCommandResponse,\n EthErrorCodes\n >(ETH_APP_ERRORS, EthAppCommandErrorFactory);\n\n constructor() {}\n\n getApdu(): Apdu {\n const apduBuilderArgs: ApduBuilderArgs = {\n cla: 0xe0,\n ins: 0x32,\n p1: 0x01,\n p2: 0x00,\n };\n\n return new ApduBuilder(apduBuilderArgs).build();\n }\n\n parseResponse(\n response: ApduResponse,\n ): CommandResult<Web3CheckOptInCommandResponse, EthErrorCodes> {\n return Maybe.fromNullable(\n this.errorHelper.getError(response),\n ).orDefaultLazy(() => {\n const enabled = new ApduParser(response).extract8BitUInt();\n if (enabled === undefined) {\n return CommandResultFactory({ data: { enabled: false } });\n }\n return CommandResultFactory({ data: { enabled: enabled !== 0 } });\n });\n }\n}\n"],
5
+ "mappings": "yaAAA,IAAAA,EAAA,GAAAC,EAAAD,EAAA,2BAAAE,IAAA,eAAAC,EAAAH,GAAA,IAAAI,EASO,2CACPC,EAAmC,kCACnCC,EAAsB,qBAEtBC,EAIO,2DASA,MAAML,CAEb,CACmB,YAAc,IAAI,qBAGjC,iBAAgB,2BAAyB,EAE3C,aAAc,CAAC,CAEf,SAAgB,CACd,MAAMM,EAAmC,CACvC,IAAK,IACL,IAAK,GACL,GAAI,EACJ,GAAI,CACN,EAEA,OAAO,IAAI,cAAYA,CAAe,EAAE,MAAM,CAChD,CAEA,cACEC,EAC6D,CAC7D,OAAO,QAAM,aACX,KAAK,YAAY,SAASA,CAAQ,CACpC,EAAE,cAAc,IAAM,CACpB,MAAMC,EAAU,IAAI,aAAWD,CAAQ,EAAE,gBAAgB,EACzD,OAAIC,IAAY,UACP,wBAAqB,CAAE,KAAM,CAAE,QAAS,EAAM,CAAE,CAAC,KAEnD,wBAAqB,CAAE,KAAM,CAAE,QAASA,IAAY,CAAE,CAAE,CAAC,CAClE,CAAC,CACH,CACF",
6
+ "names": ["Web3CheckOptInCommand_exports", "__export", "Web3CheckOptInCommand", "__toCommonJS", "import_device_management_kit", "import_signer_utils", "import_purify_ts", "import_ethAppErrors", "apduBuilderArgs", "response", "enabled"]
7
+ }
@@ -0,0 +1,2 @@
1
+ "use strict";var r=require("@ledgerhq/device-management-kit"),s=require("../../app-binder/command/Web3CheckOptInCommand");describe("Web3CheckOptInCommand",()=>{describe("getApdu",()=>{it("should return the raw APDU",()=>{const e=new s.Web3CheckOptInCommand().getApdu();expect(e.getRawApdu()).toStrictEqual(Uint8Array.from([224,50,1,0,0]))})}),describe("parseResponse",()=>{it("should return true",()=>{const t={statusCode:Uint8Array.from([144,0]),data:new Uint8Array([1])},e=new s.Web3CheckOptInCommand().parseResponse(t);(0,r.isSuccessCommandResult)(e)?expect(e.data).toStrictEqual({enabled:!0}):assert.fail("Expected a success")}),it("should return false",()=>{const t={statusCode:Uint8Array.from([144,0]),data:new Uint8Array([0])},e=new s.Web3CheckOptInCommand().parseResponse(t);(0,r.isSuccessCommandResult)(e)?expect(e.data).toStrictEqual({enabled:!1}):assert.fail("Expected a success")}),it("should return false if missing",()=>{const t={statusCode:Uint8Array.from([144,0]),data:new Uint8Array([])},e=new s.Web3CheckOptInCommand().parseResponse(t);(0,r.isSuccessCommandResult)(e)?expect(e.data).toStrictEqual({enabled:!1}):assert.fail("Expected a success")}),it("should return an error if the device is locked",()=>{const t={statusCode:Uint8Array.from([85,21]),data:new Uint8Array},e=new s.Web3CheckOptInCommand().parseResponse(t);(0,r.isSuccessCommandResult)(e)?assert.fail("Expected an error"):expect(e.error).toEqual(expect.objectContaining({errorCode:"5515",message:"Device is locked."}))})})});
2
+ //# sourceMappingURL=Web3CheckOptInCommand.test.js.map
@@ -0,0 +1,7 @@
1
+ {
2
+ "version": 3,
3
+ "sources": ["../../../../../src/internal/app-binder/command/Web3CheckOptInCommand.test.ts"],
4
+ "sourcesContent": ["import { isSuccessCommandResult } from \"@ledgerhq/device-management-kit\";\n\nimport { Web3CheckOptInCommand } from \"@internal/app-binder/command/Web3CheckOptInCommand\";\n\ndescribe(\"Web3CheckOptInCommand\", () => {\n describe(\"getApdu\", () => {\n it(\"should return the raw APDU\", () => {\n // GIVEN\n const command = new Web3CheckOptInCommand();\n\n // WHEN\n const apdu = command.getApdu();\n\n // THEN\n expect(apdu.getRawApdu()).toStrictEqual(\n Uint8Array.from([0xe0, 0x32, 0x01, 0x00, 0x00]),\n );\n });\n });\n\n describe(\"parseResponse\", () => {\n it(\"should return true\", () => {\n // GIVEN\n const response = {\n statusCode: Uint8Array.from([0x90, 0x00]),\n data: new Uint8Array([0x01]),\n };\n\n // WHEN\n const result = new Web3CheckOptInCommand().parseResponse(response);\n\n // THEN\n if (isSuccessCommandResult(result)) {\n expect(result.data).toStrictEqual({ enabled: true });\n } else {\n assert.fail(\"Expected a success\");\n }\n });\n\n it(\"should return false\", () => {\n // GIVEN\n const response = {\n statusCode: Uint8Array.from([0x90, 0x00]),\n data: new Uint8Array([0x00]),\n };\n\n // WHEN\n const result = new Web3CheckOptInCommand().parseResponse(response);\n\n // THEN\n if (isSuccessCommandResult(result)) {\n expect(result.data).toStrictEqual({ enabled: false });\n } else {\n assert.fail(\"Expected a success\");\n }\n });\n\n it(\"should return false if missing\", () => {\n // GIVEN\n const response = {\n statusCode: Uint8Array.from([0x90, 0x00]),\n data: new Uint8Array([]),\n };\n\n // WHEN\n const result = new Web3CheckOptInCommand().parseResponse(response);\n\n // THEN\n if (isSuccessCommandResult(result)) {\n expect(result.data).toStrictEqual({ enabled: false });\n } else {\n assert.fail(\"Expected a success\");\n }\n });\n\n it(\"should return an error if the device is locked\", () => {\n // GIVEN\n const response = {\n statusCode: Uint8Array.from([0x55, 0x15]),\n data: new Uint8Array(),\n };\n\n // WHEN\n const result = new Web3CheckOptInCommand().parseResponse(response);\n\n // THEN\n if (isSuccessCommandResult(result)) {\n assert.fail(\"Expected an error\");\n } else {\n expect(result.error).toEqual(\n expect.objectContaining({\n errorCode: \"5515\",\n message: \"Device is locked.\",\n }),\n );\n }\n });\n });\n});\n"],
5
+ "mappings": "aAAA,IAAAA,EAAuC,2CAEvCC,EAAsC,8DAEtC,SAAS,wBAAyB,IAAM,CACtC,SAAS,UAAW,IAAM,CACxB,GAAG,6BAA8B,IAAM,CAKrC,MAAMC,EAHU,IAAI,wBAAsB,EAGrB,QAAQ,EAG7B,OAAOA,EAAK,WAAW,CAAC,EAAE,cACxB,WAAW,KAAK,CAAC,IAAM,GAAM,EAAM,EAAM,CAAI,CAAC,CAChD,CACF,CAAC,CACH,CAAC,EAED,SAAS,gBAAiB,IAAM,CAC9B,GAAG,qBAAsB,IAAM,CAE7B,MAAMC,EAAW,CACf,WAAY,WAAW,KAAK,CAAC,IAAM,CAAI,CAAC,EACxC,KAAM,IAAI,WAAW,CAAC,CAAI,CAAC,CAC7B,EAGMC,EAAS,IAAI,wBAAsB,EAAE,cAAcD,CAAQ,KAG7D,0BAAuBC,CAAM,EAC/B,OAAOA,EAAO,IAAI,EAAE,cAAc,CAAE,QAAS,EAAK,CAAC,EAEnD,OAAO,KAAK,oBAAoB,CAEpC,CAAC,EAED,GAAG,sBAAuB,IAAM,CAE9B,MAAMD,EAAW,CACf,WAAY,WAAW,KAAK,CAAC,IAAM,CAAI,CAAC,EACxC,KAAM,IAAI,WAAW,CAAC,CAAI,CAAC,CAC7B,EAGMC,EAAS,IAAI,wBAAsB,EAAE,cAAcD,CAAQ,KAG7D,0BAAuBC,CAAM,EAC/B,OAAOA,EAAO,IAAI,EAAE,cAAc,CAAE,QAAS,EAAM,CAAC,EAEpD,OAAO,KAAK,oBAAoB,CAEpC,CAAC,EAED,GAAG,iCAAkC,IAAM,CAEzC,MAAMD,EAAW,CACf,WAAY,WAAW,KAAK,CAAC,IAAM,CAAI,CAAC,EACxC,KAAM,IAAI,WAAW,CAAC,CAAC,CACzB,EAGMC,EAAS,IAAI,wBAAsB,EAAE,cAAcD,CAAQ,KAG7D,0BAAuBC,CAAM,EAC/B,OAAOA,EAAO,IAAI,EAAE,cAAc,CAAE,QAAS,EAAM,CAAC,EAEpD,OAAO,KAAK,oBAAoB,CAEpC,CAAC,EAED,GAAG,iDAAkD,IAAM,CAEzD,MAAMD,EAAW,CACf,WAAY,WAAW,KAAK,CAAC,GAAM,EAAI,CAAC,EACxC,KAAM,IAAI,UACZ,EAGMC,EAAS,IAAI,wBAAsB,EAAE,cAAcD,CAAQ,KAG7D,0BAAuBC,CAAM,EAC/B,OAAO,KAAK,mBAAmB,EAE/B,OAAOA,EAAO,KAAK,EAAE,QACnB,OAAO,iBAAiB,CACtB,UAAW,OACX,QAAS,mBACX,CAAC,CACH,CAEJ,CAAC,CACH,CAAC,CACH,CAAC",
6
+ "names": ["import_device_management_kit", "import_Web3CheckOptInCommand", "apdu", "response", "result"]
7
+ }
@@ -1,2 +1,2 @@
1
- "use strict";var u=Object.defineProperty;var x=Object.getOwnPropertyDescriptor;var E=Object.getOwnPropertyNames;var v=Object.prototype.hasOwnProperty;var A=(i,n)=>{for(var s in n)u(i,s,{get:n[s],enumerable:!0})},D=(i,n,s,c)=>{if(n&&typeof n=="object"||typeof n=="function")for(let o of E(n))!v.call(i,o)&&o!==s&&u(i,o,{get:()=>n[o],enumerable:!(c=x(n,o))||c.enumerable});return i};var I=i=>D(u({},"__esModule",{value:!0}),i);var P={};A(P,{SignTransactionDeviceAction:()=>f});module.exports=I(P);var r=require("@ledgerhq/device-management-kit"),l=require("purify-ts"),e=require("xstate"),S=require("../../../app-binder/command/GetChallengeCommand"),C=require("../../../app-binder/constant/plugins"),m=require("../../../app-binder/task/BuildTransactionContextTask"),T=require("../../../app-binder/task/ProvideTransactionContextTask"),y=require("../../../app-binder/task/ProvideTransactionGenericContextTask"),h=require("../../../app-binder/task/SendSignTransactionTask");class f extends r.XStateDeviceAction{makeStateMachine(n){const{getChallenge:s,buildContext:c,provideContext:o,provideGenericContext:p,signTransaction:d}=this.extractDependencies(n);return(0,e.setup)({types:{input:{},context:{},output:{}},actors:{openAppStateMachine:new r.OpenAppDeviceAction({input:{appName:"Ethereum"}}).makeStateMachine(n),getChallenge:(0,e.fromPromise)(s),buildContext:(0,e.fromPromise)(c),provideContext:(0,e.fromPromise)(o),provideGenericContext:(0,e.fromPromise)(p),signTransaction:(0,e.fromPromise)(d)},guards:{noInternalError:({context:t})=>t._internalState.error===null,isGenericContext:({context:t})=>t._internalState.clearSignContexts!==null&&typeof t._internalState.clearSignContexts.transactionInfo=="string"},actions:{assignErrorFromEvent:(0,e.assign)({_internalState:t=>({...t.context._internalState,error:t.event.error})})}}).createMachine({id:"SignTransactionDeviceAction",initial:"OpenAppDeviceAction",context:({input:t})=>({input:t,intermediateValue:{requiredUserInteraction:r.UserInteractionRequired.None},_internalState:{error:null,clearSignContexts:null,serializedTransaction:null,chainId:null,transactionType:null,challenge:null,isLegacy:!0,signature:null}}),states:{OpenAppDeviceAction:{exit:(0,e.assign)({intermediateValue:{requiredUserInteraction:r.UserInteractionRequired.None}}),invoke:{id:"openAppStateMachine",input:{appName:"Ethereum",compatibleAppNames:C.ETHEREUM_PLUGINS},src:"openAppStateMachine",onSnapshot:{actions:(0,e.assign)({intermediateValue:t=>t.event.snapshot.context.intermediateValue})},onDone:{actions:(0,e.assign)({_internalState:t=>t.event.output.caseOf({Right:()=>t.context._internalState,Left:a=>({...t.context._internalState,error:a})})}),target:"CheckOpenAppDeviceActionResult"}}},CheckOpenAppDeviceActionResult:{always:[{target:"GetChallenge",guard:"noInternalError"},"Error"]},GetChallenge:{invoke:{id:"getChallenge",src:"getChallenge",onDone:{target:"GetChallengeResultCheck",actions:[(0,e.assign)({_internalState:({event:t,context:a})=>(0,r.isSuccessCommandResult)(t.output)?{...a._internalState,challenge:t.output.data.challenge}:typeof t.output.error.originalError=="object"&&t.output.error.originalError!==null&&"errorCode"in t.output.error.originalError&&t.output.error.originalError.errorCode==="6d00"?a._internalState:{...a._internalState,error:t.output.error}})]},onError:{target:"Error",actions:"assignErrorFromEvent"}}},GetChallengeResultCheck:{always:[{target:"BuildContext",guard:"noInternalError"},"Error"]},BuildContext:{invoke:{id:"buildContext",src:"buildContext",input:({context:t})=>({contextModule:t.input.contextModule,mapper:t.input.mapper,transaction:t.input.transaction,options:t.input.options,challenge:t._internalState.challenge}),onDone:{target:"BuildContextResultCheck",actions:[(0,e.assign)({_internalState:({event:t,context:a})=>({...a._internalState,clearSignContexts:t.output.clearSignContexts,serializedTransaction:t.output.serializedTransaction,chainId:t.output.chainId,transactionType:t.output.transactionType})})]},onError:{target:"Error",actions:"assignErrorFromEvent"}}},BuildContextResultCheck:{always:[{target:"ProvideGenericContext",guard:"isGenericContext"},{target:"ProvideContext"}]},ProvideContext:{invoke:{id:"provideContext",src:"provideContext",input:({context:t})=>({clearSignContexts:t._internalState.clearSignContexts}),onDone:{target:"SignTransaction"},onError:{target:"Error",actions:"assignErrorFromEvent"}}},ProvideGenericContext:{invoke:{id:"provideGenericContext",src:"provideGenericContext",input:({context:t})=>({contextModule:t.input.contextModule,transactionParser:t.input.parser,chainId:t._internalState.chainId,derivationPath:t.input.derivationPath,serializedTransaction:t._internalState.serializedTransaction,context:t._internalState.clearSignContexts}),onDone:{actions:(0,e.assign)({_internalState:({event:t,context:a})=>{const{isLegacy:M,...g}=a._internalState;return t.output.caseOf({Just:()=>({...g,isLegacy:!1}),Nothing:()=>({...g,isLegacy:!1})})}}),target:"SignTransaction"},onError:{target:"Error",actions:"assignErrorFromEvent"}}},SignTransaction:{entry:(0,e.assign)({intermediateValue:{requiredUserInteraction:r.UserInteractionRequired.SignTransaction}}),exit:(0,e.assign)({intermediateValue:{requiredUserInteraction:r.UserInteractionRequired.None}}),invoke:{id:"signTransaction",src:"signTransaction",input:({context:t})=>({derivationPath:t.input.derivationPath,serializedTransaction:t._internalState.serializedTransaction,chainId:t._internalState.chainId,transactionType:t._internalState.transactionType,isLegacy:t._internalState.isLegacy}),onDone:{target:"SignTransactionResultCheck",actions:[(0,e.assign)({_internalState:({event:t,context:a})=>(0,r.isSuccessCommandResult)(t.output)?{...a._internalState,signature:t.output.data}:{...a._internalState,error:t.output.error}})]},onError:{target:"Error",actions:"assignErrorFromEvent"}}},SignTransactionResultCheck:{always:[{guard:"noInternalError",target:"Success"},{target:"Error"}]},Success:{type:"final"},Error:{type:"final"}},output:({context:t})=>t._internalState.signature?(0,l.Right)(t._internalState.signature):(0,l.Left)(t._internalState.error||new r.UnknownDAError("No error in final state"))})}extractDependencies(n){return{getChallenge:async()=>n.sendCommand(new S.GetChallengeCommand),buildContext:async t=>new m.BuildTransactionContextTask(n,t.input).run(),provideContext:async t=>new T.ProvideTransactionContextTask(n,{clearSignContexts:t.input.clearSignContexts}).run(),provideGenericContext:async t=>new y.ProvideTransactionGenericContextTask(n,{contextModule:t.input.contextModule,transactionParser:t.input.transactionParser,chainId:t.input.chainId,derivationPath:t.input.derivationPath,serializedTransaction:t.input.serializedTransaction,context:t.input.context}).run(),signTransaction:async t=>new h.SendSignTransactionTask(n,t.input).run()}}}0&&(module.exports={SignTransactionDeviceAction});
1
+ "use strict";var u=Object.defineProperty;var b=Object.getOwnPropertyDescriptor;var v=Object.getOwnPropertyNames;var I=Object.prototype.hasOwnProperty;var A=(i,n)=>{for(var s in n)u(i,s,{get:n[s],enumerable:!0})},f=(i,n,s,c)=>{if(n&&typeof n=="object"||typeof n=="function")for(let o of v(n))!I.call(i,o)&&o!==s&&u(i,o,{get:()=>n[o],enumerable:!(c=b(n,o))||c.enumerable});return i};var w=i=>f(u({},"__esModule",{value:!0}),i);var _={};A(_,{SignTransactionDeviceAction:()=>D});module.exports=w(_);var r=require("@ledgerhq/device-management-kit"),p=require("purify-ts"),t=require("xstate"),S=require("../../../app-binder/command/GetAppConfigurationCommand"),m=require("../../../app-binder/command/Web3CheckOptInCommand"),h=require("../../../app-binder/constant/plugins"),T=require("../../../app-binder/task/BuildTransactionContextTask"),y=require("../../../app-binder/task/ProvideTransactionContextTask"),x=require("../../../app-binder/task/ProvideTransactionGenericContextTask"),E=require("../../../app-binder/task/SendSignTransactionTask"),k=require("../../../shared/utils/ApplicationChecker");class D extends r.XStateDeviceAction{makeStateMachine(n){const{getAppConfig:s,web3CheckOptIn:c,buildContext:o,provideContext:l,provideGenericContext:d,signTransaction:C}=this.extractDependencies(n);return(0,t.setup)({types:{input:{},context:{},output:{}},actors:{openAppStateMachine:new r.OpenAppDeviceAction({input:{appName:"Ethereum"}}).makeStateMachine(n),getAppConfig:(0,t.fromPromise)(s),web3CheckOptIn:(0,t.fromPromise)(c),buildContext:(0,t.fromPromise)(o),provideContext:(0,t.fromPromise)(l),provideGenericContext:(0,t.fromPromise)(d),signTransaction:(0,t.fromPromise)(C)},guards:{noInternalError:({context:e})=>e._internalState.error===null,isGenericContext:({context:e})=>e._internalState.clearSignContexts!==null&&typeof e._internalState.clearSignContexts.transactionInfo=="string",isWeb3ChecksSupported:()=>new k.ApplicationChecker(n.getDeviceSessionState()).withMinVersionExclusive("1.15.0").excludeDeviceModel(r.DeviceModelId.NANO_S).check(),shouldOptIn:({context:e})=>!e._internalState.web3ChecksEnabled&&!e._internalState.web3ChecksOptIn},actions:{assignErrorFromEvent:(0,t.assign)({_internalState:e=>({...e.context._internalState,error:e.event.error})})}}).createMachine({id:"SignTransactionDeviceAction",initial:"OpenAppDeviceAction",context:({input:e})=>({input:e,intermediateValue:{requiredUserInteraction:r.UserInteractionRequired.None},_internalState:{error:null,clearSignContexts:null,serializedTransaction:null,chainId:null,web3ChecksOptIn:!1,web3ChecksEnabled:!1,web3Check:null,transactionType:null,isLegacy:!0,signature:null}}),states:{OpenAppDeviceAction:{exit:(0,t.assign)({intermediateValue:{requiredUserInteraction:r.UserInteractionRequired.None}}),invoke:{id:"openAppStateMachine",input:{appName:"Ethereum",compatibleAppNames:h.ETHEREUM_PLUGINS},src:"openAppStateMachine",onSnapshot:{actions:(0,t.assign)({intermediateValue:e=>e.event.snapshot.context.intermediateValue})},onDone:{actions:(0,t.assign)({_internalState:e=>e.event.output.caseOf({Right:()=>e.context._internalState,Left:a=>({...e.context._internalState,error:a})})}),target:"CheckOpenAppDeviceActionResult"}}},CheckOpenAppDeviceActionResult:{always:[{target:"GetAppConfig",guard:(0,t.and)(["noInternalError","isWeb3ChecksSupported"])},{target:"BuildContext",guard:"noInternalError"},"Error"]},GetAppConfig:{invoke:{id:"getAppConfig",src:"getAppConfig",onDone:{target:"GetAppConfigResultCheck",actions:[(0,t.assign)({_internalState:({event:e,context:a})=>(0,r.isSuccessCommandResult)(e.output)?{...a._internalState,web3ChecksOptIn:e.output.data.web3ChecksOptIn,web3ChecksEnabled:e.output.data.web3ChecksEnabled}:a._internalState})]},onError:{target:"Error",actions:"assignErrorFromEvent"}}},GetAppConfigResultCheck:{always:[{target:"Web3ChecksOptIn",guard:"shouldOptIn"},{target:"BuildContext"}]},Web3ChecksOptIn:{entry:(0,t.assign)({intermediateValue:{requiredUserInteraction:r.UserInteractionRequired.Web3ChecksOptIn}}),exit:(0,t.assign)({intermediateValue:{requiredUserInteraction:r.UserInteractionRequired.None}}),invoke:{id:"web3CheckOptIn",src:"web3CheckOptIn",onDone:{target:"BuildContext",actions:[(0,t.assign)({_internalState:({event:e,context:a})=>(0,r.isSuccessCommandResult)(e.output)?{...a._internalState,web3ChecksEnabled:e.output.data.enabled}:a._internalState})]},onError:{target:"Error",actions:"assignErrorFromEvent"}}},BuildContext:{invoke:{id:"buildContext",src:"buildContext",input:({context:e})=>({contextModule:e.input.contextModule,mapper:e.input.mapper,transaction:e.input.transaction,options:e.input.options,web3ChecksEnabled:e._internalState.web3ChecksEnabled,derivationPath:e.input.derivationPath}),onDone:{target:"BuildContextResultCheck",actions:[(0,t.assign)({_internalState:({event:e,context:a})=>({...a._internalState,clearSignContexts:e.output.clearSignContexts,web3Check:e.output.web3Check,serializedTransaction:e.output.serializedTransaction,chainId:e.output.chainId,transactionType:e.output.transactionType})})]},onError:{target:"Error",actions:"assignErrorFromEvent"}}},BuildContextResultCheck:{always:[{target:"ProvideGenericContext",guard:"isGenericContext"},{target:"ProvideContext"}]},ProvideContext:{invoke:{id:"provideContext",src:"provideContext",input:({context:e})=>({clearSignContexts:e._internalState.clearSignContexts,web3Check:e._internalState.web3Check}),onDone:{target:"SignTransaction"},onError:{target:"Error",actions:"assignErrorFromEvent"}}},ProvideGenericContext:{invoke:{id:"provideGenericContext",src:"provideGenericContext",input:({context:e})=>({contextModule:e.input.contextModule,transactionParser:e.input.parser,chainId:e._internalState.chainId,derivationPath:e.input.derivationPath,serializedTransaction:e._internalState.serializedTransaction,context:e._internalState.clearSignContexts,web3Check:e._internalState.web3Check}),onDone:{actions:(0,t.assign)({_internalState:({event:e,context:a})=>{const{isLegacy:P,...g}=a._internalState;return e.output.caseOf({Just:()=>({...g,isLegacy:!1}),Nothing:()=>({...g,isLegacy:!1})})}}),target:"SignTransaction"},onError:{target:"Error",actions:"assignErrorFromEvent"}}},SignTransaction:{entry:(0,t.assign)({intermediateValue:{requiredUserInteraction:r.UserInteractionRequired.SignTransaction}}),exit:(0,t.assign)({intermediateValue:{requiredUserInteraction:r.UserInteractionRequired.None}}),invoke:{id:"signTransaction",src:"signTransaction",input:({context:e})=>({derivationPath:e.input.derivationPath,serializedTransaction:e._internalState.serializedTransaction,chainId:e._internalState.chainId,transactionType:e._internalState.transactionType,isLegacy:e._internalState.isLegacy}),onDone:{target:"SignTransactionResultCheck",actions:[(0,t.assign)({_internalState:({event:e,context:a})=>(0,r.isSuccessCommandResult)(e.output)?{...a._internalState,signature:e.output.data}:{...a._internalState,error:e.output.error}})]},onError:{target:"Error",actions:"assignErrorFromEvent"}}},SignTransactionResultCheck:{always:[{guard:"noInternalError",target:"Success"},{target:"Error"}]},Success:{type:"final"},Error:{type:"final"}},output:({context:e})=>e._internalState.signature?(0,p.Right)(e._internalState.signature):(0,p.Left)(e._internalState.error||new r.UnknownDAError("No error in final state"))})}extractDependencies(n){return{getAppConfig:async()=>n.sendCommand(new S.GetAppConfiguration),web3CheckOptIn:async()=>n.sendCommand(new m.Web3CheckOptInCommand),buildContext:async e=>new T.BuildTransactionContextTask(n,e.input).run(),provideContext:async e=>new y.ProvideTransactionContextTask(n,{clearSignContexts:e.input.clearSignContexts,web3Check:e.input.web3Check}).run(),provideGenericContext:async e=>new x.ProvideTransactionGenericContextTask(n,{contextModule:e.input.contextModule,transactionParser:e.input.transactionParser,chainId:e.input.chainId,derivationPath:e.input.derivationPath,serializedTransaction:e.input.serializedTransaction,context:e.input.context,web3Check:e.input.web3Check}).run(),signTransaction:async e=>new E.SendSignTransactionTask(n,e.input).run()}}}0&&(module.exports={SignTransactionDeviceAction});
2
2
  //# sourceMappingURL=SignTransactionDeviceAction.js.map
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "version": 3,
3
3
  "sources": ["../../../../../../src/internal/app-binder/device-action/SignTransaction/SignTransactionDeviceAction.ts"],
4
- "sourcesContent": ["import {\n type ClearSignContextSuccess,\n type ContextModule,\n} from \"@ledgerhq/context-module\";\nimport {\n type CommandErrorResult,\n type CommandResult,\n type DeviceActionStateMachine,\n type InternalApi,\n isSuccessCommandResult,\n OpenAppDeviceAction,\n type StateMachineTypes,\n UnknownDAError,\n UserInteractionRequired,\n XStateDeviceAction,\n} from \"@ledgerhq/device-management-kit\";\nimport { Left, type Maybe, Right } from \"purify-ts\";\nimport { assign, fromPromise, setup } from \"xstate\";\n\nimport {\n type SignTransactionDAError,\n type SignTransactionDAInput,\n type SignTransactionDAIntermediateValue,\n type SignTransactionDAInternalState,\n type SignTransactionDAOutput,\n} from \"@api/app-binder/SignTransactionDeviceActionTypes\";\nimport { type Signature } from \"@api/model/Signature\";\nimport { type TransactionOptions } from \"@api/model/TransactionOptions\";\nimport { type TransactionType } from \"@api/model/TransactionType\";\nimport {\n GetChallengeCommand,\n type GetChallengeCommandResponse,\n} from \"@internal/app-binder/command/GetChallengeCommand\";\nimport { type EthErrorCodes } from \"@internal/app-binder/command/utils/ethAppErrors\";\nimport { ETHEREUM_PLUGINS } from \"@internal/app-binder/constant/plugins\";\nimport {\n BuildTransactionContextTask,\n type BuildTransactionContextTaskArgs,\n type BuildTransactionTaskResult,\n} from \"@internal/app-binder/task/BuildTransactionContextTask\";\nimport { ProvideTransactionContextTask } from \"@internal/app-binder/task/ProvideTransactionContextTask\";\nimport {\n type GenericContext,\n ProvideTransactionGenericContextTask,\n type ProvideTransactionGenericContextTaskErrorCodes,\n} from \"@internal/app-binder/task/ProvideTransactionGenericContextTask\";\nimport { SendSignTransactionTask } from \"@internal/app-binder/task/SendSignTransactionTask\";\nimport { type TransactionMapperService } from \"@internal/transaction/service/mapper/TransactionMapperService\";\nimport { type TransactionParserService } from \"@internal/transaction/service/parser/TransactionParserService\";\n\nexport type MachineDependencies = {\n readonly getChallenge: () => Promise<\n CommandResult<GetChallengeCommandResponse, EthErrorCodes>\n >;\n readonly buildContext: (arg0: {\n input: {\n contextModule: ContextModule;\n mapper: TransactionMapperService;\n transaction: Uint8Array;\n options: TransactionOptions;\n challenge: string | null;\n };\n }) => Promise<BuildTransactionTaskResult>;\n readonly provideContext: (arg0: {\n input: {\n clearSignContexts: ClearSignContextSuccess[];\n };\n }) => Promise<Maybe<CommandErrorResult<EthErrorCodes>>>;\n readonly provideGenericContext: (arg0: {\n input: {\n contextModule: ContextModule;\n transactionParser: TransactionParserService;\n chainId: number;\n derivationPath: string;\n serializedTransaction: Uint8Array;\n context: GenericContext;\n };\n }) => Promise<\n Maybe<CommandErrorResult<ProvideTransactionGenericContextTaskErrorCodes>>\n >;\n readonly signTransaction: (arg0: {\n input: {\n derivationPath: string;\n serializedTransaction: Uint8Array;\n chainId: number;\n transactionType: TransactionType;\n isLegacy: boolean;\n };\n }) => Promise<CommandResult<Signature, EthErrorCodes>>;\n};\n\nexport class SignTransactionDeviceAction extends XStateDeviceAction<\n SignTransactionDAOutput,\n SignTransactionDAInput,\n SignTransactionDAError,\n SignTransactionDAIntermediateValue,\n SignTransactionDAInternalState\n> {\n makeStateMachine(\n internalApi: InternalApi,\n ): DeviceActionStateMachine<\n SignTransactionDAOutput,\n SignTransactionDAInput,\n SignTransactionDAError,\n SignTransactionDAIntermediateValue,\n SignTransactionDAInternalState\n > {\n type types = StateMachineTypes<\n SignTransactionDAOutput,\n SignTransactionDAInput,\n SignTransactionDAError,\n SignTransactionDAIntermediateValue,\n SignTransactionDAInternalState\n >;\n\n const {\n getChallenge,\n buildContext,\n provideContext,\n provideGenericContext,\n signTransaction,\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: \"Ethereum\" },\n }).makeStateMachine(internalApi),\n getChallenge: fromPromise(getChallenge),\n buildContext: fromPromise(buildContext),\n provideContext: fromPromise(provideContext),\n provideGenericContext: fromPromise(provideGenericContext),\n signTransaction: fromPromise(signTransaction),\n },\n guards: {\n noInternalError: ({ context }) => context._internalState.error === null,\n isGenericContext: ({ context }) =>\n context._internalState.clearSignContexts !== null &&\n typeof (context._internalState.clearSignContexts as GenericContext)\n .transactionInfo === \"string\",\n },\n actions: {\n assignErrorFromEvent: assign({\n _internalState: (_) => ({\n ..._.context._internalState,\n error: _.event[\"error\"], // NOTE: it should never happen, the error is not typed anymore here\n }),\n }),\n },\n }).createMachine({\n /** @xstate-layout N4IgpgJg5mDOIC5QGUCWUB2AVATgQw1jwGMAXVAewwBEwA3VYsAQTMowDoB5ABzA2Y8etBk1bkqAYghUwHVBjoUA1nIp8BQ5KTykwAWRIALBWADaABgC6iUDwqxUEjLZAAPRABYAzAHYOAJwAHACMAb4ArBYWAEw+FkHeADQgAJ6IwRYcAGwRQUG52TF5EcUAvmUpaJi4BERsVCKMLA2cAMJGYMTKvPyCwvTN4uwASnAArgA2pJKWNkgg9o7Orh4IAcEcpRYhvonZAd4byWmIITtZESEhBTHeEVH33hVV6Nj4hCTOTWKtHB1dHoafo-FrOMawKYzMwheZ2BxOdirDKbba7faHY4pdIIUIcG6+bwWbKeXwxIKeTzkl4garvOpfdig4ZUDgAcTApA6eEmk34MGksnkihUchgXKMPL5GBgc1cS0RVGRCBCngC2Q4aqCewCEWyQUyJxx5x2HBiByCsV8AQsaoinhpdNqn1azL+HIlUv5YEkYBwOAoOA4PEmugAZoGALYccXc3neuULBUrBZrVXqzXBHV6g2Wo1nDaasIWXxkwkxW0xXyOt7O+rfQa-Zzszlx6UwCFQgHdWbWeUIlOgNMBTxBDiJby3MkmiK+bFnCzeEL4mLm4m5aLeB2VWm1j71pmNsHsFue+MysCd6bd5SzWH95ZI1MF0fj7yTorT6Kz+cILfLhJEgiDZslVXwLACGsan3RlGiPFlOAAIXGVBJggNoqD0NwZhkDA5AUJRVA4AAjFC0IwjAsNIRN4UfJVnwQOJPCyIJyWLHYqV1bJf3OGJl3yYlfFA0dsiOZ4dydGDXXgv5kNQ9DMLAbDfX9QNg1DUgIxwaNSPkiiqJoxYByfIdECYli2JtDiYi439PGAjhvArVdrT4skDm3V5oIZaTRGPVk5PIxTsKvCVAV7OEjLolwGPJfJMwrUkjkiNUeIsK4OEJLdLWiUI9ig+kXQbPyEI4QKFMopTSFCm870i5MTPcMz8jHNVEsJcJ7QCX88pySJSlKPw7jCAq61gmgZObAAFAMGAgMB9KqwU8OFQi5B4WbUHmxbsMMhr6NMv9RzHFK8kiLdBu405cQSTV32Ym5slAw4YlGqTiqGP4ZooOaFuCmY-QDIMQ3DKNg027b-r24yDqao74tO7UIguu4rpxbJokCA0rmJCDjk83dvKKw8Sq+iGwA5PCcEYHacKFAjRXBn6top-g-RpqG+yTGGYsO7KTvtM7kfs1HfyszLfDCbIySpdzxK8wqDzg0npvJyn2eIWmVKB9TQe0pnfvV6nNc5+qeeVfnMsFpGUe8NGF3snI8liViQlEolIIkvcfI+psT0kn32GW-CRSIxwiaVjBoei5VmL2M1SSCB4KyTykIh6wtDgKcJJbyAIRq9iPxrdZsA+JqRAbUkHNLB8PFfG6PFV5uG47HOI9mThJ7Xs39fCpJ3tRe4JzTewPlc+0vvfLjAas6HtG8HFuuo4YldiXOJQgpdProCGzMvz-VOOYuPR+nkv-anyPZ-CmEzZjhj7LVFfQMJEIN5uHvrvyTxHPJEtgIKKUXIFQdwYAoPNeACwy6R3PrDfazc1gAFp7YIGQSvaIGDMEYNnKfGBk0Ty9E0AMFWjV4GxxiGLPUCc9SlGCKBSsuDi74NZDeQhIJmEzwmNMB8TdlT6n8HxEIeoP5kichQ66JoYgrzytjDBk5qyF3rr5CeJ4PRtm9DwxeaYbhjkHtla0dtRJzh3knfEs53wbHztaHwjDlF+1ZGoyU54OxcLCt0TRjU0zgW8IECCrF872Q2PaNKq4ci7yeuSPINxqSKLGnY-ySEyIVSoh42Gaw+JHHxIcaIGxOIlnzCqb8mV9QZK3McJOtjfYJLKkk2m193Hc3vodc0r47i7xssBEIS40o+EcouZGRQ3ZOSepUkmKjWTfV+rTVJCDEBLicpqAoeYUqLm6tdVyv9JHaiOPnUZ497GcEmSzI2HNKrYRmRbCCUjSzmjfsjCshw0pu3HK5aWfdbSeBGbE96YyDkcGgeNC5DE-DMRXl080fdKShDWTiCkAR8QHDCLsG05JyjfLHhNEhrIAWtHqcoIFh0qSmNyPkEcHc9Riz4o5UCDx3ZbiXBEPZmLxmcGQOMYgTBYCQNorwh+Ql4VUgSD4J6uRPAhEpRqWhYRjoXCCEy2BnAACiqkcAEpbvyzUKdhVPXtOK66oExwY3VEI1Ffhd4gLKEAA */\n id: \"SignTransactionDeviceAction\",\n initial: \"OpenAppDeviceAction\",\n context: ({ input }) => {\n return {\n input,\n intermediateValue: {\n requiredUserInteraction: UserInteractionRequired.None,\n },\n _internalState: {\n error: null,\n clearSignContexts: null,\n serializedTransaction: null,\n chainId: null,\n transactionType: null,\n challenge: null,\n isLegacy: true,\n signature: null,\n },\n };\n },\n states: {\n OpenAppDeviceAction: {\n exit: assign({\n intermediateValue: {\n requiredUserInteraction: UserInteractionRequired.None,\n },\n }),\n invoke: {\n id: \"openAppStateMachine\",\n input: {\n appName: \"Ethereum\",\n compatibleAppNames: ETHEREUM_PLUGINS,\n },\n src: \"openAppStateMachine\",\n onSnapshot: {\n actions: assign({\n intermediateValue: (_) =>\n _.event.snapshot.context.intermediateValue,\n }),\n },\n onDone: {\n actions: assign({\n _internalState: (_) => {\n return _.event.output.caseOf<SignTransactionDAInternalState>({\n Right: () => _.context._internalState,\n Left: (error) => ({\n ..._.context._internalState,\n error,\n }),\n });\n },\n }),\n target: \"CheckOpenAppDeviceActionResult\",\n },\n },\n },\n CheckOpenAppDeviceActionResult: {\n always: [\n {\n target: \"GetChallenge\",\n guard: \"noInternalError\",\n },\n \"Error\",\n ],\n },\n GetChallenge: {\n invoke: {\n id: \"getChallenge\",\n src: \"getChallenge\",\n onDone: {\n target: \"GetChallengeResultCheck\",\n actions: [\n assign({\n _internalState: ({ event, context }) => {\n if (isSuccessCommandResult(event.output)) {\n return {\n ...context._internalState,\n challenge: event.output.data.challenge,\n };\n }\n\n // if the command is not supported, we can skip the error\n if (\n typeof event.output.error.originalError === \"object\" &&\n event.output.error.originalError !== null &&\n \"errorCode\" in event.output.error.originalError &&\n event.output.error.originalError.errorCode === \"6d00\"\n ) {\n return context._internalState;\n }\n\n return {\n ...context._internalState,\n error: event.output.error,\n };\n },\n }),\n ],\n },\n onError: {\n target: \"Error\",\n actions: \"assignErrorFromEvent\",\n },\n },\n },\n GetChallengeResultCheck: {\n always: [\n {\n target: \"BuildContext\",\n guard: \"noInternalError\",\n },\n \"Error\",\n ],\n },\n BuildContext: {\n invoke: {\n id: \"buildContext\",\n src: \"buildContext\",\n input: ({ context }) => ({\n contextModule: context.input.contextModule,\n mapper: context.input.mapper,\n transaction: context.input.transaction,\n options: context.input.options,\n challenge: context._internalState.challenge,\n }),\n onDone: {\n target: \"BuildContextResultCheck\",\n actions: [\n assign({\n _internalState: ({ event, context }) => ({\n ...context._internalState,\n clearSignContexts: event.output.clearSignContexts!,\n serializedTransaction: event.output.serializedTransaction,\n chainId: event.output.chainId,\n transactionType: event.output.transactionType,\n }),\n }),\n ],\n },\n onError: {\n target: \"Error\",\n actions: \"assignErrorFromEvent\",\n },\n },\n },\n BuildContextResultCheck: {\n always: [\n {\n target: \"ProvideGenericContext\",\n guard: \"isGenericContext\",\n },\n {\n target: \"ProvideContext\",\n },\n ],\n },\n ProvideContext: {\n invoke: {\n id: \"provideContext\",\n src: \"provideContext\",\n input: ({ context }) => ({\n clearSignContexts: context._internalState\n .clearSignContexts as ClearSignContextSuccess[],\n }),\n onDone: {\n target: \"SignTransaction\",\n },\n onError: {\n target: \"Error\",\n actions: \"assignErrorFromEvent\",\n },\n },\n },\n ProvideGenericContext: {\n invoke: {\n id: \"provideGenericContext\",\n src: \"provideGenericContext\",\n input: ({ context }) => ({\n contextModule: context.input.contextModule,\n transactionParser: context.input.parser,\n chainId: context._internalState.chainId!,\n derivationPath: context.input.derivationPath,\n serializedTransaction:\n context._internalState.serializedTransaction!,\n context: context._internalState\n .clearSignContexts as GenericContext,\n }),\n onDone: {\n actions: assign({\n _internalState: ({ event, context }) => {\n const { isLegacy: _, ...rest } = context._internalState;\n return event.output.caseOf({\n Just: () => ({\n ...rest,\n isLegacy: false,\n }),\n Nothing: () => ({\n ...rest,\n isLegacy: false,\n }),\n });\n },\n }),\n // NOTE: don't check errors to fallback to blind signing\n target: \"SignTransaction\",\n },\n onError: {\n target: \"Error\",\n actions: \"assignErrorFromEvent\",\n },\n },\n },\n SignTransaction: {\n entry: assign({\n intermediateValue: {\n requiredUserInteraction: UserInteractionRequired.SignTransaction,\n },\n }),\n exit: assign({\n intermediateValue: {\n requiredUserInteraction: UserInteractionRequired.None,\n },\n }),\n invoke: {\n id: \"signTransaction\",\n src: \"signTransaction\",\n input: ({ context }) => ({\n derivationPath: context.input.derivationPath,\n serializedTransaction:\n context._internalState.serializedTransaction!,\n chainId: context._internalState.chainId!,\n transactionType: context._internalState.transactionType!,\n isLegacy: context._internalState.isLegacy,\n }),\n onDone: {\n target: \"SignTransactionResultCheck\",\n actions: [\n assign({\n _internalState: ({ event, context }) => {\n if (isSuccessCommandResult(event.output)) {\n return {\n ...context._internalState,\n signature: event.output.data,\n };\n }\n return {\n ...context._internalState,\n error: event.output.error,\n };\n },\n }),\n ],\n },\n onError: {\n target: \"Error\",\n actions: \"assignErrorFromEvent\",\n },\n },\n },\n SignTransactionResultCheck: {\n always: [\n { guard: \"noInternalError\", target: \"Success\" },\n { target: \"Error\" },\n ],\n },\n Success: {\n type: \"final\",\n },\n Error: {\n type: \"final\",\n },\n },\n output: ({ context }) =>\n context._internalState.signature\n ? Right(context._internalState.signature)\n : Left(\n context._internalState.error ||\n new UnknownDAError(\"No error in final state\"),\n ),\n });\n }\n\n extractDependencies(internalApi: InternalApi): MachineDependencies {\n const getChallenge = async () =>\n internalApi.sendCommand(new GetChallengeCommand());\n const buildContext = async (arg0: {\n input: BuildTransactionContextTaskArgs;\n }) => new BuildTransactionContextTask(internalApi, arg0.input).run();\n\n const provideContext = async (arg0: {\n input: {\n clearSignContexts: ClearSignContextSuccess[];\n };\n }) =>\n new ProvideTransactionContextTask(internalApi, {\n clearSignContexts: arg0.input.clearSignContexts,\n }).run();\n\n const provideGenericContext = async (arg0: {\n input: {\n contextModule: ContextModule;\n transactionParser: TransactionParserService;\n chainId: number;\n derivationPath: string;\n serializedTransaction: Uint8Array;\n context: GenericContext;\n };\n }) =>\n new ProvideTransactionGenericContextTask(internalApi, {\n contextModule: arg0.input.contextModule,\n transactionParser: arg0.input.transactionParser,\n chainId: arg0.input.chainId,\n derivationPath: arg0.input.derivationPath,\n serializedTransaction: arg0.input.serializedTransaction,\n context: arg0.input.context,\n }).run();\n\n const signTransaction = async (arg0: {\n input: {\n derivationPath: string;\n serializedTransaction: Uint8Array;\n chainId: number;\n transactionType: TransactionType;\n isLegacy: boolean;\n };\n }) => new SendSignTransactionTask(internalApi, arg0.input).run();\n\n return {\n getChallenge,\n buildContext,\n provideContext,\n provideGenericContext,\n signTransaction,\n };\n }\n}\n"],
5
- "mappings": "yaAAA,IAAAA,EAAA,GAAAC,EAAAD,EAAA,iCAAAE,IAAA,eAAAC,EAAAH,GAIA,IAAAI,EAWO,2CACPC,EAAwC,qBACxCC,EAA2C,kBAY3CC,EAGO,4DAEPC,EAAiC,iDACjCC,EAIO,iEACPC,EAA8C,mEAC9CC,EAIO,0EACPC,EAAwC,6DA6CjC,MAAMV,UAAoC,oBAM/C,CACA,iBACEW,EAOA,CASA,KAAM,CACJ,aAAAC,EACA,aAAAC,EACA,eAAAC,EACA,sBAAAC,EACA,gBAAAC,CACF,EAAI,KAAK,oBAAoBL,CAAW,EAExC,SAAO,SAAM,CACX,MAAO,CACL,MAAO,CAAC,EACR,QAAS,CAAC,EACV,OAAQ,CAAC,CACX,EACA,OAAQ,CACN,oBAAqB,IAAI,sBAAoB,CAC3C,MAAO,CAAE,QAAS,UAAW,CAC/B,CAAC,EAAE,iBAAiBA,CAAW,EAC/B,gBAAc,eAAYC,CAAY,EACtC,gBAAc,eAAYC,CAAY,EACtC,kBAAgB,eAAYC,CAAc,EAC1C,yBAAuB,eAAYC,CAAqB,EACxD,mBAAiB,eAAYC,CAAe,CAC9C,EACA,OAAQ,CACN,gBAAiB,CAAC,CAAE,QAAAC,CAAQ,IAAMA,EAAQ,eAAe,QAAU,KACnE,iBAAkB,CAAC,CAAE,QAAAA,CAAQ,IAC3BA,EAAQ,eAAe,oBAAsB,MAC7C,OAAQA,EAAQ,eAAe,kBAC5B,iBAAoB,QAC3B,EACA,QAAS,CACP,wBAAsB,UAAO,CAC3B,eAAiBC,IAAO,CACtB,GAAGA,EAAE,QAAQ,eACb,MAAOA,EAAE,MAAM,KACjB,EACF,CAAC,CACH,CACF,CAAC,EAAE,cAAc,CAEf,GAAI,8BACJ,QAAS,sBACT,QAAS,CAAC,CAAE,MAAAC,CAAM,KACT,CACL,MAAAA,EACA,kBAAmB,CACjB,wBAAyB,0BAAwB,IACnD,EACA,eAAgB,CACd,MAAO,KACP,kBAAmB,KACnB,sBAAuB,KACvB,QAAS,KACT,gBAAiB,KACjB,UAAW,KACX,SAAU,GACV,UAAW,IACb,CACF,GAEF,OAAQ,CACN,oBAAqB,CACnB,QAAM,UAAO,CACX,kBAAmB,CACjB,wBAAyB,0BAAwB,IACnD,CACF,CAAC,EACD,OAAQ,CACN,GAAI,sBACJ,MAAO,CACL,QAAS,WACT,mBAAoB,kBACtB,EACA,IAAK,sBACL,WAAY,CACV,WAAS,UAAO,CACd,kBAAoBD,GAClBA,EAAE,MAAM,SAAS,QAAQ,iBAC7B,CAAC,CACH,EACA,OAAQ,CACN,WAAS,UAAO,CACd,eAAiBA,GACRA,EAAE,MAAM,OAAO,OAAuC,CAC3D,MAAO,IAAMA,EAAE,QAAQ,eACvB,KAAOE,IAAW,CAChB,GAAGF,EAAE,QAAQ,eACb,MAAAE,CACF,EACF,CAAC,CAEL,CAAC,EACD,OAAQ,gCACV,CACF,CACF,EACA,+BAAgC,CAC9B,OAAQ,CACN,CACE,OAAQ,eACR,MAAO,iBACT,EACA,OACF,CACF,EACA,aAAc,CACZ,OAAQ,CACN,GAAI,eACJ,IAAK,eACL,OAAQ,CACN,OAAQ,0BACR,QAAS,IACP,UAAO,CACL,eAAgB,CAAC,CAAE,MAAAC,EAAO,QAAAJ,CAAQ,OAC5B,0BAAuBI,EAAM,MAAM,EAC9B,CACL,GAAGJ,EAAQ,eACX,UAAWI,EAAM,OAAO,KAAK,SAC/B,EAKA,OAAOA,EAAM,OAAO,MAAM,eAAkB,UAC5CA,EAAM,OAAO,MAAM,gBAAkB,MACrC,cAAeA,EAAM,OAAO,MAAM,eAClCA,EAAM,OAAO,MAAM,cAAc,YAAc,OAExCJ,EAAQ,eAGV,CACL,GAAGA,EAAQ,eACX,MAAOI,EAAM,OAAO,KACtB,CAEJ,CAAC,CACH,CACF,EACA,QAAS,CACP,OAAQ,QACR,QAAS,sBACX,CACF,CACF,EACA,wBAAyB,CACvB,OAAQ,CACN,CACE,OAAQ,eACR,MAAO,iBACT,EACA,OACF,CACF,EACA,aAAc,CACZ,OAAQ,CACN,GAAI,eACJ,IAAK,eACL,MAAO,CAAC,CAAE,QAAAJ,CAAQ,KAAO,CACvB,cAAeA,EAAQ,MAAM,cAC7B,OAAQA,EAAQ,MAAM,OACtB,YAAaA,EAAQ,MAAM,YAC3B,QAASA,EAAQ,MAAM,QACvB,UAAWA,EAAQ,eAAe,SACpC,GACA,OAAQ,CACN,OAAQ,0BACR,QAAS,IACP,UAAO,CACL,eAAgB,CAAC,CAAE,MAAAI,EAAO,QAAAJ,CAAQ,KAAO,CACvC,GAAGA,EAAQ,eACX,kBAAmBI,EAAM,OAAO,kBAChC,sBAAuBA,EAAM,OAAO,sBACpC,QAASA,EAAM,OAAO,QACtB,gBAAiBA,EAAM,OAAO,eAChC,EACF,CAAC,CACH,CACF,EACA,QAAS,CACP,OAAQ,QACR,QAAS,sBACX,CACF,CACF,EACA,wBAAyB,CACvB,OAAQ,CACN,CACE,OAAQ,wBACR,MAAO,kBACT,EACA,CACE,OAAQ,gBACV,CACF,CACF,EACA,eAAgB,CACd,OAAQ,CACN,GAAI,iBACJ,IAAK,iBACL,MAAO,CAAC,CAAE,QAAAJ,CAAQ,KAAO,CACvB,kBAAmBA,EAAQ,eACxB,iBACL,GACA,OAAQ,CACN,OAAQ,iBACV,EACA,QAAS,CACP,OAAQ,QACR,QAAS,sBACX,CACF,CACF,EACA,sBAAuB,CACrB,OAAQ,CACN,GAAI,wBACJ,IAAK,wBACL,MAAO,CAAC,CAAE,QAAAA,CAAQ,KAAO,CACvB,cAAeA,EAAQ,MAAM,cAC7B,kBAAmBA,EAAQ,MAAM,OACjC,QAASA,EAAQ,eAAe,QAChC,eAAgBA,EAAQ,MAAM,eAC9B,sBACEA,EAAQ,eAAe,sBACzB,QAASA,EAAQ,eACd,iBACL,GACA,OAAQ,CACN,WAAS,UAAO,CACd,eAAgB,CAAC,CAAE,MAAAI,EAAO,QAAAJ,CAAQ,IAAM,CACtC,KAAM,CAAE,SAAUC,EAAG,GAAGI,CAAK,EAAIL,EAAQ,eACzC,OAAOI,EAAM,OAAO,OAAO,CACzB,KAAM,KAAO,CACX,GAAGC,EACH,SAAU,EACZ,GACA,QAAS,KAAO,CACd,GAAGA,EACH,SAAU,EACZ,EACF,CAAC,CACH,CACF,CAAC,EAED,OAAQ,iBACV,EACA,QAAS,CACP,OAAQ,QACR,QAAS,sBACX,CACF,CACF,EACA,gBAAiB,CACf,SAAO,UAAO,CACZ,kBAAmB,CACjB,wBAAyB,0BAAwB,eACnD,CACF,CAAC,EACD,QAAM,UAAO,CACX,kBAAmB,CACjB,wBAAyB,0BAAwB,IACnD,CACF,CAAC,EACD,OAAQ,CACN,GAAI,kBACJ,IAAK,kBACL,MAAO,CAAC,CAAE,QAAAL,CAAQ,KAAO,CACvB,eAAgBA,EAAQ,MAAM,eAC9B,sBACEA,EAAQ,eAAe,sBACzB,QAASA,EAAQ,eAAe,QAChC,gBAAiBA,EAAQ,eAAe,gBACxC,SAAUA,EAAQ,eAAe,QACnC,GACA,OAAQ,CACN,OAAQ,6BACR,QAAS,IACP,UAAO,CACL,eAAgB,CAAC,CAAE,MAAAI,EAAO,QAAAJ,CAAQ,OAC5B,0BAAuBI,EAAM,MAAM,EAC9B,CACL,GAAGJ,EAAQ,eACX,UAAWI,EAAM,OAAO,IAC1B,EAEK,CACL,GAAGJ,EAAQ,eACX,MAAOI,EAAM,OAAO,KACtB,CAEJ,CAAC,CACH,CACF,EACA,QAAS,CACP,OAAQ,QACR,QAAS,sBACX,CACF,CACF,EACA,2BAA4B,CAC1B,OAAQ,CACN,CAAE,MAAO,kBAAmB,OAAQ,SAAU,EAC9C,CAAE,OAAQ,OAAQ,CACpB,CACF,EACA,QAAS,CACP,KAAM,OACR,EACA,MAAO,CACL,KAAM,OACR,CACF,EACA,OAAQ,CAAC,CAAE,QAAAJ,CAAQ,IACjBA,EAAQ,eAAe,aACnB,SAAMA,EAAQ,eAAe,SAAS,KACtC,QACEA,EAAQ,eAAe,OACrB,IAAI,iBAAe,yBAAyB,CAChD,CACR,CAAC,CACH,CAEA,oBAAoBN,EAA+C,CA6CjE,MAAO,CACL,aA7CmB,SACnBA,EAAY,YAAY,IAAI,qBAAqB,EA6CjD,aA5CmB,MAAOY,GAEtB,IAAI,8BAA4BZ,EAAaY,EAAK,KAAK,EAAE,IAAI,EA2CjE,eAzCqB,MAAOA,GAK5B,IAAI,gCAA8BZ,EAAa,CAC7C,kBAAmBY,EAAK,MAAM,iBAChC,CAAC,EAAE,IAAI,EAmCP,sBAjC4B,MAAOA,GAUnC,IAAI,uCAAqCZ,EAAa,CACpD,cAAeY,EAAK,MAAM,cAC1B,kBAAmBA,EAAK,MAAM,kBAC9B,QAASA,EAAK,MAAM,QACpB,eAAgBA,EAAK,MAAM,eAC3B,sBAAuBA,EAAK,MAAM,sBAClC,QAASA,EAAK,MAAM,OACtB,CAAC,EAAE,IAAI,EAiBP,gBAfsB,MAAOA,GAQzB,IAAI,0BAAwBZ,EAAaY,EAAK,KAAK,EAAE,IAAI,CAQ/D,CACF,CACF",
6
- "names": ["SignTransactionDeviceAction_exports", "__export", "SignTransactionDeviceAction", "__toCommonJS", "import_device_management_kit", "import_purify_ts", "import_xstate", "import_GetChallengeCommand", "import_plugins", "import_BuildTransactionContextTask", "import_ProvideTransactionContextTask", "import_ProvideTransactionGenericContextTask", "import_SendSignTransactionTask", "internalApi", "getChallenge", "buildContext", "provideContext", "provideGenericContext", "signTransaction", "context", "_", "input", "error", "event", "rest", "arg0"]
4
+ "sourcesContent": ["import {\n type ClearSignContextSuccess,\n type ClearSignContextType,\n type ContextModule,\n} from \"@ledgerhq/context-module\";\nimport {\n type CommandErrorResult,\n type CommandResult,\n type DeviceActionStateMachine,\n DeviceModelId,\n type InternalApi,\n isSuccessCommandResult,\n OpenAppDeviceAction,\n type StateMachineTypes,\n UnknownDAError,\n UserInteractionRequired,\n XStateDeviceAction,\n} from \"@ledgerhq/device-management-kit\";\nimport { Left, type Maybe, Right } from \"purify-ts\";\nimport { and, assign, fromPromise, setup } from \"xstate\";\n\nimport { type GetConfigCommandResponse } from \"@api/app-binder/GetConfigCommandTypes\";\nimport {\n type SignTransactionDAError,\n type SignTransactionDAInput,\n type SignTransactionDAIntermediateValue,\n type SignTransactionDAInternalState,\n type SignTransactionDAOutput,\n} from \"@api/app-binder/SignTransactionDeviceActionTypes\";\nimport { type Signature } from \"@api/model/Signature\";\nimport { type TransactionOptions } from \"@api/model/TransactionOptions\";\nimport { type TransactionType } from \"@api/model/TransactionType\";\nimport { GetAppConfiguration } from \"@internal/app-binder/command/GetAppConfigurationCommand\";\nimport { type EthErrorCodes } from \"@internal/app-binder/command/utils/ethAppErrors\";\nimport {\n Web3CheckOptInCommand,\n type Web3CheckOptInCommandResponse,\n} from \"@internal/app-binder/command/Web3CheckOptInCommand\";\nimport { ETHEREUM_PLUGINS } from \"@internal/app-binder/constant/plugins\";\nimport {\n BuildTransactionContextTask,\n type BuildTransactionContextTaskArgs,\n type BuildTransactionTaskResult,\n} from \"@internal/app-binder/task/BuildTransactionContextTask\";\nimport { ProvideTransactionContextTask } from \"@internal/app-binder/task/ProvideTransactionContextTask\";\nimport {\n type GenericContext,\n ProvideTransactionGenericContextTask,\n type ProvideTransactionGenericContextTaskErrorCodes,\n} from \"@internal/app-binder/task/ProvideTransactionGenericContextTask\";\nimport { SendSignTransactionTask } from \"@internal/app-binder/task/SendSignTransactionTask\";\nimport { ApplicationChecker } from \"@internal/shared/utils/ApplicationChecker\";\nimport { type TransactionMapperService } from \"@internal/transaction/service/mapper/TransactionMapperService\";\nimport { type TransactionParserService } from \"@internal/transaction/service/parser/TransactionParserService\";\n\nexport type MachineDependencies = {\n readonly getAppConfig: () => Promise<\n CommandResult<GetConfigCommandResponse, EthErrorCodes>\n >;\n readonly web3CheckOptIn: () => Promise<\n CommandResult<Web3CheckOptInCommandResponse, EthErrorCodes>\n >;\n readonly buildContext: (arg0: {\n input: {\n contextModule: ContextModule;\n mapper: TransactionMapperService;\n transaction: Uint8Array;\n options: TransactionOptions;\n web3ChecksEnabled: boolean;\n derivationPath: string;\n };\n }) => Promise<BuildTransactionTaskResult>;\n readonly provideContext: (arg0: {\n input: {\n clearSignContexts: ClearSignContextSuccess[];\n web3Check: ClearSignContextSuccess<ClearSignContextType.WEB3_CHECK> | null;\n };\n }) => Promise<Maybe<CommandErrorResult<EthErrorCodes>>>;\n readonly provideGenericContext: (arg0: {\n input: {\n contextModule: ContextModule;\n transactionParser: TransactionParserService;\n chainId: number;\n derivationPath: string;\n serializedTransaction: Uint8Array;\n context: GenericContext;\n web3Check: ClearSignContextSuccess<ClearSignContextType.WEB3_CHECK> | null;\n };\n }) => Promise<\n Maybe<CommandErrorResult<ProvideTransactionGenericContextTaskErrorCodes>>\n >;\n readonly signTransaction: (arg0: {\n input: {\n derivationPath: string;\n serializedTransaction: Uint8Array;\n chainId: number;\n transactionType: TransactionType;\n isLegacy: boolean;\n };\n }) => Promise<CommandResult<Signature, EthErrorCodes>>;\n};\n\nexport class SignTransactionDeviceAction extends XStateDeviceAction<\n SignTransactionDAOutput,\n SignTransactionDAInput,\n SignTransactionDAError,\n SignTransactionDAIntermediateValue,\n SignTransactionDAInternalState\n> {\n makeStateMachine(\n internalApi: InternalApi,\n ): DeviceActionStateMachine<\n SignTransactionDAOutput,\n SignTransactionDAInput,\n SignTransactionDAError,\n SignTransactionDAIntermediateValue,\n SignTransactionDAInternalState\n > {\n type types = StateMachineTypes<\n SignTransactionDAOutput,\n SignTransactionDAInput,\n SignTransactionDAError,\n SignTransactionDAIntermediateValue,\n SignTransactionDAInternalState\n >;\n\n const {\n getAppConfig,\n web3CheckOptIn,\n buildContext,\n provideContext,\n provideGenericContext,\n signTransaction,\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: \"Ethereum\" },\n }).makeStateMachine(internalApi),\n getAppConfig: fromPromise(getAppConfig),\n web3CheckOptIn: fromPromise(web3CheckOptIn),\n buildContext: fromPromise(buildContext),\n provideContext: fromPromise(provideContext),\n provideGenericContext: fromPromise(provideGenericContext),\n signTransaction: fromPromise(signTransaction),\n },\n guards: {\n noInternalError: ({ context }) => context._internalState.error === null,\n isGenericContext: ({ context }) =>\n context._internalState.clearSignContexts !== null &&\n typeof (context._internalState.clearSignContexts as GenericContext)\n .transactionInfo === \"string\",\n isWeb3ChecksSupported: () =>\n new ApplicationChecker(internalApi.getDeviceSessionState())\n .withMinVersionExclusive(\"1.15.0\")\n .excludeDeviceModel(DeviceModelId.NANO_S)\n .check(),\n shouldOptIn: ({ context }) =>\n !context._internalState.web3ChecksEnabled &&\n !context._internalState.web3ChecksOptIn,\n },\n actions: {\n assignErrorFromEvent: assign({\n _internalState: (_) => ({\n ..._.context._internalState,\n error: _.event[\"error\"], // NOTE: it should never happen, the error is not typed anymore here\n }),\n }),\n },\n }).createMachine({\n /** @xstate-layout N4IgpgJg5mDOIC5QGUCWUB2AVATgQw1jwGMAXVAewwBEwA3VYsAQTMowDoB5ABzA2Y8etBk1bkqAYghUwHVBjoUA1nIp8BQ5KTykwAWRIALBWADaABgC6iUDwqxUEjLZAAPRABYAzAHYOAJwAHACMAb4ArBYWAEw+FkHeADQgAJ6IwRYcAGwRQUG52TF5EcUAvmUpaJi4BERsVCKMLA2cAMJGYMTKvPyCwvTN4uwASnAArgA2pJKWNkgg9o7Orh4IAcEcpRYhvonZAd4byWmIITtZESEhBTHeEVH33hVV6Nj4hCTOTWKtHB1dHoafo-FrOMawKYzMwheZ2BxOdirDKbba7faHY4pdIIUIcG6+bwWbKeXwxIKeTzkl4garvOpfdig4ZUDgAcTApA6eEmk34MGksnkihUchgXKMPL5GBgc1cS0RVGRCBCngC2Q4aqCewCEWyQUyJxx5x2HBiByCsV8AQsaoinhpdNqn1azL+HIlUv5YEkYBwOAoOA4PEmugAZoGALYccXc3neuULBUrBZrVXqzXBHV6g2Wo1nDaasIWXxkwkxW0xXyOt7O+rfQa-Zzszlx6UwCFQgHdWbWeUIlOgNMBTxBDiJby3MkmiK+bFnCzeEL4mLm4m5aLeB2VWm1j71pmNsHsFue+MysCd6bd5SzWH95ZI1MF0fj7yTorT6Kz+cILfLhJEgiDZslVXwLACGsan3RlGiPFlOAAIXGVBJggNoqD0NwZhkDA5AUJRVA4AAjFC0IwjAsNIRN4UfJVnwQOJPCyIJyWLHYqV1bJf3OGJl3yYlfFA0dsiOZ4dydGDXXgv5kNQ9DMLAbDfX9QNg1DUgIxwaNSPkiiqJoxYByfIdECYli2JtDiYi439PGAjhvArVdrT4skDm3V5oIZaTRGPVk5PIxTsKvCVAV7OEjLolwGPJfJMwrUkjkiNUeIsK4OEJLdLWiUI9ig+kXQbPyEI4QKFMopTSFCm870i5MTPcMz8jHNVEsJcJ7QCX88pySJSlKPw7jCAq61gmgZObAAFAMGAgMB9KqwU8OFQi5B4WbUHmxbsMMhr6NMv9RzHFK8kiLdBu405cQSTV32Ym5slAw4YlGqTiqGP4ZooOaFuCmY-QDIMQ3DKNg027b-r24yDqao74tO7UIguu4rpxbJokCA0rmJCDjk83dvKKw8Sq+iGwA5PCcEYHacKFAjRXBn6top-g-RpqG+yTGGYsO7KTvtM7kfs1HfyszLfDCbIySpdzxK8wqDzg0npvJyn2eIWmVKB9TQe0pnfvV6nNc5+qeeVfnMsFpGUe8NGF3snI8liViQlEolIIkvcfI+psT0kn32GW-CRSIxwiaVjBoei5VmL2M1SSCB4KyTykIh6wtDgKcJJbyAIRq9iPxrdZsA+JqRAbUkHNLB8PFfG6PFV5uG47HOI9mThJ7Xs39fCpJ3tRe4JzTewPlc+0vvfLjAas6HtG8HFuuo4YldiXOJQgpdProCGzMvz-VOOYuPR+nkv-anyPZ-CmEzZjhj7LVFfQMJEIN5uHvrvyTxHPJEtgIKKUXIFQdwYAoPNeACwy6R3PrDfazc1gAFp7YIGQSvaIGDMEYNnKfGBk0Ty9E0AMFWjV4GxxiGLPUCc9SlGCKBSsuDi74NZDeQhIJmEzwmNMB8TdlT6n8HxEIeoP5kichQ66JoYgrzytjDBk5qyF3rr5CeJ4PRtm9DwxeaYbhjkHtla0dtRJzh3knfEs53wbHztaHwjDlF+1ZGoyU54OxcLCt0TRjU0zgW8IECCrF872Q2PaNKq4ci7yeuSPINxqSKLGnY-ySEyIVSoh42Gaw+JHHxIcaIGxOIlnzCqb8mV9QZK3McJOtjfYJLKkk2m193Hc3vodc0r47i7xssBEIS40o+EcouZGRQ3ZOSepUkmKjWTfV+rTVJCDEBLicpqAoeYUqLm6tdVyv9JHaiOPnUZ497GcEmSzI2HNKrYRmRbCCUjSzmjfsjCshw0pu3HK5aWfdbSeBGbE96YyDkcGgeNC5DE-DMRXl080fdKShDWTiCkAR8QHDCLsG05JyjfLHhNEhrIAWtHqcoIFh0qSmNyPkEcHc9Riz4o5UCDx3ZbiXBEPZmLxmcGQOMYgTBYCQNorwh+Ql4VUgSD4J6uRPAhEpRqWhYRjoXCCEy2BnAACiqkcAEpbvyzUKdhVPXtOK66oExwY3VEI1Ffhd4gLKEAA */\n id: \"SignTransactionDeviceAction\",\n initial: \"OpenAppDeviceAction\",\n context: ({ input }) => {\n return {\n input,\n intermediateValue: {\n requiredUserInteraction: UserInteractionRequired.None,\n },\n _internalState: {\n error: null,\n clearSignContexts: null,\n serializedTransaction: null,\n chainId: null,\n web3ChecksOptIn: false,\n web3ChecksEnabled: false,\n web3Check: null,\n transactionType: null,\n isLegacy: true,\n signature: null,\n },\n };\n },\n states: {\n OpenAppDeviceAction: {\n exit: assign({\n intermediateValue: {\n requiredUserInteraction: UserInteractionRequired.None,\n },\n }),\n invoke: {\n id: \"openAppStateMachine\",\n input: {\n appName: \"Ethereum\",\n compatibleAppNames: ETHEREUM_PLUGINS,\n },\n src: \"openAppStateMachine\",\n onSnapshot: {\n actions: assign({\n intermediateValue: (_) =>\n _.event.snapshot.context.intermediateValue,\n }),\n },\n onDone: {\n actions: assign({\n _internalState: (_) => {\n return _.event.output.caseOf<SignTransactionDAInternalState>({\n Right: () => _.context._internalState,\n Left: (error) => ({\n ..._.context._internalState,\n error,\n }),\n });\n },\n }),\n target: \"CheckOpenAppDeviceActionResult\",\n },\n },\n },\n CheckOpenAppDeviceActionResult: {\n always: [\n {\n target: \"GetAppConfig\",\n guard: and([\"noInternalError\", \"isWeb3ChecksSupported\"]),\n },\n {\n target: \"BuildContext\",\n guard: \"noInternalError\",\n },\n \"Error\",\n ],\n },\n GetAppConfig: {\n invoke: {\n id: \"getAppConfig\",\n src: \"getAppConfig\",\n onDone: {\n target: \"GetAppConfigResultCheck\",\n actions: [\n assign({\n _internalState: ({ event, context }) => {\n if (isSuccessCommandResult(event.output)) {\n return {\n ...context._internalState,\n web3ChecksOptIn: event.output.data.web3ChecksOptIn,\n web3ChecksEnabled: event.output.data.web3ChecksEnabled,\n };\n } else {\n return context._internalState;\n }\n },\n }),\n ],\n },\n onError: {\n target: \"Error\",\n actions: \"assignErrorFromEvent\",\n },\n },\n },\n GetAppConfigResultCheck: {\n always: [\n {\n target: \"Web3ChecksOptIn\",\n guard: \"shouldOptIn\",\n },\n {\n target: \"BuildContext\",\n },\n ],\n },\n Web3ChecksOptIn: {\n entry: assign({\n intermediateValue: {\n requiredUserInteraction: UserInteractionRequired.Web3ChecksOptIn,\n },\n }),\n exit: assign({\n intermediateValue: {\n requiredUserInteraction: UserInteractionRequired.None,\n },\n }),\n invoke: {\n id: \"web3CheckOptIn\",\n src: \"web3CheckOptIn\",\n onDone: {\n target: \"BuildContext\",\n actions: [\n assign({\n _internalState: ({ event, context }) => {\n if (isSuccessCommandResult(event.output)) {\n return {\n ...context._internalState,\n web3ChecksEnabled: event.output.data.enabled,\n };\n } else {\n return context._internalState;\n }\n },\n }),\n ],\n },\n onError: {\n target: \"Error\",\n actions: \"assignErrorFromEvent\",\n },\n },\n },\n BuildContext: {\n invoke: {\n id: \"buildContext\",\n src: \"buildContext\",\n input: ({ context }) => ({\n contextModule: context.input.contextModule,\n mapper: context.input.mapper,\n transaction: context.input.transaction,\n options: context.input.options,\n web3ChecksEnabled: context._internalState.web3ChecksEnabled,\n derivationPath: context.input.derivationPath,\n }),\n onDone: {\n target: \"BuildContextResultCheck\",\n actions: [\n assign({\n _internalState: ({ event, context }) => ({\n ...context._internalState,\n clearSignContexts: event.output.clearSignContexts!,\n web3Check: event.output.web3Check,\n serializedTransaction: event.output.serializedTransaction,\n chainId: event.output.chainId,\n transactionType: event.output.transactionType,\n }),\n }),\n ],\n },\n onError: {\n target: \"Error\",\n actions: \"assignErrorFromEvent\",\n },\n },\n },\n BuildContextResultCheck: {\n always: [\n {\n target: \"ProvideGenericContext\",\n guard: \"isGenericContext\",\n },\n {\n target: \"ProvideContext\",\n },\n ],\n },\n ProvideContext: {\n invoke: {\n id: \"provideContext\",\n src: \"provideContext\",\n input: ({ context }) => ({\n clearSignContexts: context._internalState\n .clearSignContexts as ClearSignContextSuccess[],\n web3Check: context._internalState.web3Check,\n }),\n onDone: {\n target: \"SignTransaction\",\n },\n onError: {\n target: \"Error\",\n actions: \"assignErrorFromEvent\",\n },\n },\n },\n ProvideGenericContext: {\n invoke: {\n id: \"provideGenericContext\",\n src: \"provideGenericContext\",\n input: ({ context }) => ({\n contextModule: context.input.contextModule,\n transactionParser: context.input.parser,\n chainId: context._internalState.chainId!,\n derivationPath: context.input.derivationPath,\n serializedTransaction:\n context._internalState.serializedTransaction!,\n context: context._internalState\n .clearSignContexts as GenericContext,\n web3Check: context._internalState.web3Check,\n }),\n onDone: {\n actions: assign({\n _internalState: ({ event, context }) => {\n const { isLegacy: _, ...rest } = context._internalState;\n return event.output.caseOf({\n Just: () => ({\n ...rest,\n isLegacy: false,\n }),\n Nothing: () => ({\n ...rest,\n isLegacy: false,\n }),\n });\n },\n }),\n // NOTE: don't check errors to fallback to blind signing\n target: \"SignTransaction\",\n },\n onError: {\n target: \"Error\",\n actions: \"assignErrorFromEvent\",\n },\n },\n },\n SignTransaction: {\n entry: assign({\n intermediateValue: {\n requiredUserInteraction: UserInteractionRequired.SignTransaction,\n },\n }),\n exit: assign({\n intermediateValue: {\n requiredUserInteraction: UserInteractionRequired.None,\n },\n }),\n invoke: {\n id: \"signTransaction\",\n src: \"signTransaction\",\n input: ({ context }) => ({\n derivationPath: context.input.derivationPath,\n serializedTransaction:\n context._internalState.serializedTransaction!,\n chainId: context._internalState.chainId!,\n transactionType: context._internalState.transactionType!,\n isLegacy: context._internalState.isLegacy,\n }),\n onDone: {\n target: \"SignTransactionResultCheck\",\n actions: [\n assign({\n _internalState: ({ event, context }) => {\n if (isSuccessCommandResult(event.output)) {\n return {\n ...context._internalState,\n signature: event.output.data,\n };\n }\n return {\n ...context._internalState,\n error: event.output.error,\n };\n },\n }),\n ],\n },\n onError: {\n target: \"Error\",\n actions: \"assignErrorFromEvent\",\n },\n },\n },\n SignTransactionResultCheck: {\n always: [\n { guard: \"noInternalError\", target: \"Success\" },\n { target: \"Error\" },\n ],\n },\n Success: {\n type: \"final\",\n },\n Error: {\n type: \"final\",\n },\n },\n output: ({ context }) =>\n context._internalState.signature\n ? Right(context._internalState.signature)\n : Left(\n context._internalState.error ||\n new UnknownDAError(\"No error in final state\"),\n ),\n });\n }\n\n extractDependencies(internalApi: InternalApi): MachineDependencies {\n const getAppConfig = async () =>\n internalApi.sendCommand(new GetAppConfiguration());\n const web3CheckOptIn = async () =>\n internalApi.sendCommand(new Web3CheckOptInCommand());\n const buildContext = async (arg0: {\n input: BuildTransactionContextTaskArgs;\n }) => new BuildTransactionContextTask(internalApi, arg0.input).run();\n\n const provideContext = async (arg0: {\n input: {\n clearSignContexts: ClearSignContextSuccess[];\n web3Check: ClearSignContextSuccess<ClearSignContextType.WEB3_CHECK> | null;\n };\n }) =>\n new ProvideTransactionContextTask(internalApi, {\n clearSignContexts: arg0.input.clearSignContexts,\n web3Check: arg0.input.web3Check,\n }).run();\n\n const provideGenericContext = async (arg0: {\n input: {\n contextModule: ContextModule;\n transactionParser: TransactionParserService;\n chainId: number;\n derivationPath: string;\n serializedTransaction: Uint8Array;\n context: GenericContext;\n web3Check: ClearSignContextSuccess<ClearSignContextType.WEB3_CHECK> | null;\n };\n }) =>\n new ProvideTransactionGenericContextTask(internalApi, {\n contextModule: arg0.input.contextModule,\n transactionParser: arg0.input.transactionParser,\n chainId: arg0.input.chainId,\n derivationPath: arg0.input.derivationPath,\n serializedTransaction: arg0.input.serializedTransaction,\n context: arg0.input.context,\n web3Check: arg0.input.web3Check,\n }).run();\n\n const signTransaction = async (arg0: {\n input: {\n derivationPath: string;\n serializedTransaction: Uint8Array;\n chainId: number;\n transactionType: TransactionType;\n isLegacy: boolean;\n };\n }) => new SendSignTransactionTask(internalApi, arg0.input).run();\n\n return {\n getAppConfig,\n web3CheckOptIn,\n buildContext,\n provideContext,\n provideGenericContext,\n signTransaction,\n };\n }\n}\n"],
5
+ "mappings": "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",
6
+ "names": ["SignTransactionDeviceAction_exports", "__export", "SignTransactionDeviceAction", "__toCommonJS", "import_device_management_kit", "import_purify_ts", "import_xstate", "import_GetAppConfigurationCommand", "import_Web3CheckOptInCommand", "import_plugins", "import_BuildTransactionContextTask", "import_ProvideTransactionContextTask", "import_ProvideTransactionGenericContextTask", "import_SendSignTransactionTask", "import_ApplicationChecker", "internalApi", "getAppConfig", "web3CheckOptIn", "buildContext", "provideContext", "provideGenericContext", "signTransaction", "context", "_", "input", "error", "event", "rest", "arg0"]
7
7
  }