@ledgerhq/device-signer-kit-solana 1.4.1 → 1.5.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 (95) hide show
  1. package/README.md +3 -0
  2. package/lib/cjs/api/app-binder/SignTransactionDeviceActionTypes.js +1 -1
  3. package/lib/cjs/api/app-binder/SignTransactionDeviceActionTypes.js.map +3 -3
  4. package/lib/cjs/api/model/TransactionResolutionContext.js +1 -1
  5. package/lib/cjs/api/model/TransactionResolutionContext.js.map +1 -1
  6. package/lib/cjs/internal/DefaultSignerSolana.js.map +2 -2
  7. package/lib/cjs/internal/app-binder/command/ProvideTLVTransactionInstructionDescriptorCommand.js +2 -0
  8. package/lib/cjs/internal/app-binder/command/ProvideTLVTransactionInstructionDescriptorCommand.js.map +7 -0
  9. package/lib/cjs/internal/app-binder/command/ProvideTLVTransactionInstructionDescriptorCommand.test.js +2 -0
  10. package/lib/cjs/internal/app-binder/command/ProvideTLVTransactionInstructionDescriptorCommand.test.js.map +7 -0
  11. package/lib/cjs/internal/app-binder/device-action/SignTransactionDeviceAction.js +1 -1
  12. package/lib/cjs/internal/app-binder/device-action/SignTransactionDeviceAction.js.map +3 -3
  13. package/lib/cjs/internal/app-binder/device-action/SignTransactionDeviceAction.test.js +1 -1
  14. package/lib/cjs/internal/app-binder/device-action/SignTransactionDeviceAction.test.js.map +3 -3
  15. package/lib/cjs/internal/app-binder/services/TransactionInspector.js +1 -1
  16. package/lib/cjs/internal/app-binder/services/TransactionInspector.js.map +3 -3
  17. package/lib/cjs/internal/app-binder/services/TransactionInspector.test.js +1 -1
  18. package/lib/cjs/internal/app-binder/services/TransactionInspector.test.js.map +2 -2
  19. package/lib/cjs/internal/app-binder/services/utils/DefaultSolanaMessageNormaliser.js +2 -0
  20. package/lib/cjs/internal/app-binder/services/utils/DefaultSolanaMessageNormaliser.js.map +7 -0
  21. package/lib/cjs/internal/app-binder/services/utils/DefaultSolanaMessageNormaliser.test.js +2 -0
  22. package/lib/cjs/internal/app-binder/services/utils/DefaultSolanaMessageNormaliser.test.js.map +7 -0
  23. package/lib/cjs/internal/app-binder/task/BuildTransactionContextTask.js +1 -1
  24. package/lib/cjs/internal/app-binder/task/BuildTransactionContextTask.js.map +2 -2
  25. package/lib/cjs/internal/app-binder/task/BuildTransactionContextTask.test.js +1 -1
  26. package/lib/cjs/internal/app-binder/task/BuildTransactionContextTask.test.js.map +3 -3
  27. package/lib/cjs/internal/app-binder/task/ProvideTransactionContextTask.js +1 -1
  28. package/lib/cjs/internal/app-binder/task/ProvideTransactionContextTask.js.map +3 -3
  29. package/lib/cjs/internal/app-binder/task/ProvideTransactionContextTask.test.js +1 -1
  30. package/lib/cjs/internal/app-binder/task/ProvideTransactionContextTask.test.js.map +3 -3
  31. package/lib/cjs/package.json +44 -40
  32. package/lib/esm/api/app-binder/SignTransactionDeviceActionTypes.js +1 -0
  33. package/lib/esm/api/app-binder/SignTransactionDeviceActionTypes.js.map +4 -4
  34. package/lib/esm/internal/DefaultSignerSolana.js.map +2 -2
  35. package/lib/esm/internal/app-binder/command/ProvideTLVTransactionInstructionDescriptorCommand.js +2 -0
  36. package/lib/esm/internal/app-binder/command/ProvideTLVTransactionInstructionDescriptorCommand.js.map +7 -0
  37. package/lib/esm/internal/app-binder/command/ProvideTLVTransactionInstructionDescriptorCommand.test.js +2 -0
  38. package/lib/esm/internal/app-binder/command/ProvideTLVTransactionInstructionDescriptorCommand.test.js.map +7 -0
  39. package/lib/esm/internal/app-binder/device-action/SignTransactionDeviceAction.js +1 -1
  40. package/lib/esm/internal/app-binder/device-action/SignTransactionDeviceAction.js.map +3 -3
  41. package/lib/esm/internal/app-binder/device-action/SignTransactionDeviceAction.test.js +1 -1
  42. package/lib/esm/internal/app-binder/device-action/SignTransactionDeviceAction.test.js.map +3 -3
  43. package/lib/esm/internal/app-binder/services/TransactionInspector.js +1 -1
  44. package/lib/esm/internal/app-binder/services/TransactionInspector.js.map +3 -3
  45. package/lib/esm/internal/app-binder/services/TransactionInspector.test.js +1 -1
  46. package/lib/esm/internal/app-binder/services/TransactionInspector.test.js.map +2 -2
  47. package/lib/esm/internal/app-binder/services/utils/DefaultSolanaMessageNormaliser.js +2 -0
  48. package/lib/esm/internal/app-binder/services/utils/DefaultSolanaMessageNormaliser.js.map +7 -0
  49. package/lib/esm/internal/app-binder/services/utils/DefaultSolanaMessageNormaliser.test.js +2 -0
  50. package/lib/esm/internal/app-binder/services/utils/DefaultSolanaMessageNormaliser.test.js.map +7 -0
  51. package/lib/esm/internal/app-binder/task/BuildTransactionContextTask.js +1 -1
  52. package/lib/esm/internal/app-binder/task/BuildTransactionContextTask.js.map +2 -2
  53. package/lib/esm/internal/app-binder/task/BuildTransactionContextTask.test.js +1 -1
  54. package/lib/esm/internal/app-binder/task/BuildTransactionContextTask.test.js.map +3 -3
  55. package/lib/esm/internal/app-binder/task/ProvideTransactionContextTask.js +1 -1
  56. package/lib/esm/internal/app-binder/task/ProvideTransactionContextTask.js.map +3 -3
  57. package/lib/esm/internal/app-binder/task/ProvideTransactionContextTask.test.js +1 -1
  58. package/lib/esm/internal/app-binder/task/ProvideTransactionContextTask.test.js.map +3 -3
  59. package/lib/esm/package.json +44 -40
  60. package/lib/types/api/app-binder/SignTransactionDeviceActionTypes.d.ts +10 -0
  61. package/lib/types/api/app-binder/SignTransactionDeviceActionTypes.d.ts.map +1 -1
  62. package/lib/types/api/model/TransactionResolutionContext.d.ts +2 -0
  63. package/lib/types/api/model/TransactionResolutionContext.d.ts.map +1 -1
  64. package/lib/types/internal/DefaultSignerSolana.d.ts +3 -0
  65. package/lib/types/internal/DefaultSignerSolana.d.ts.map +1 -1
  66. package/lib/types/internal/app-binder/command/ProvideTLVTransactionInstructionDescriptorCommand.d.ts +29 -0
  67. package/lib/types/internal/app-binder/command/ProvideTLVTransactionInstructionDescriptorCommand.d.ts.map +1 -0
  68. package/lib/types/internal/app-binder/command/ProvideTLVTransactionInstructionDescriptorCommand.test.d.ts +2 -0
  69. package/lib/types/internal/app-binder/command/ProvideTLVTransactionInstructionDescriptorCommand.test.d.ts.map +1 -0
  70. package/lib/types/internal/app-binder/device-action/SignTransactionDeviceAction.d.ts +2 -2
  71. package/lib/types/internal/app-binder/device-action/SignTransactionDeviceAction.d.ts.map +1 -1
  72. package/lib/types/internal/app-binder/services/TransactionInspector.d.ts +7 -10
  73. package/lib/types/internal/app-binder/services/TransactionInspector.d.ts.map +1 -1
  74. package/lib/types/internal/app-binder/services/utils/DefaultSolanaMessageNormaliser.d.ts +8 -0
  75. package/lib/types/internal/app-binder/services/utils/DefaultSolanaMessageNormaliser.d.ts.map +1 -0
  76. package/lib/types/internal/app-binder/services/utils/DefaultSolanaMessageNormaliser.test.d.ts +2 -0
  77. package/lib/types/internal/app-binder/services/utils/DefaultSolanaMessageNormaliser.test.d.ts.map +1 -0
  78. package/lib/types/internal/app-binder/task/BuildTransactionContextTask.d.ts +4 -9
  79. package/lib/types/internal/app-binder/task/BuildTransactionContextTask.d.ts.map +1 -1
  80. package/lib/types/internal/app-binder/task/ProvideTransactionContextTask.d.ts +9 -5
  81. package/lib/types/internal/app-binder/task/ProvideTransactionContextTask.d.ts.map +1 -1
  82. package/lib/types/tsconfig.prod.tsbuildinfo +1 -1
  83. package/package.json +38 -34
  84. package/lib/cjs/internal/app-binder/command/ProvideTrustedNamePKICommand.js +0 -2
  85. package/lib/cjs/internal/app-binder/command/ProvideTrustedNamePKICommand.js.map +0 -7
  86. package/lib/cjs/internal/app-binder/command/ProvideTrustedNamePKICommand.test.js +0 -2
  87. package/lib/cjs/internal/app-binder/command/ProvideTrustedNamePKICommand.test.js.map +0 -7
  88. package/lib/esm/internal/app-binder/command/ProvideTrustedNamePKICommand.js +0 -2
  89. package/lib/esm/internal/app-binder/command/ProvideTrustedNamePKICommand.js.map +0 -7
  90. package/lib/esm/internal/app-binder/command/ProvideTrustedNamePKICommand.test.js +0 -2
  91. package/lib/esm/internal/app-binder/command/ProvideTrustedNamePKICommand.test.js.map +0 -7
  92. package/lib/types/internal/app-binder/command/ProvideTrustedNamePKICommand.d.ts +0 -14
  93. package/lib/types/internal/app-binder/command/ProvideTrustedNamePKICommand.d.ts.map +0 -1
  94. package/lib/types/internal/app-binder/command/ProvideTrustedNamePKICommand.test.d.ts +0 -2
  95. package/lib/types/internal/app-binder/command/ProvideTrustedNamePKICommand.test.d.ts.map +0 -1
package/package.json CHANGED
@@ -1,26 +1,5 @@
1
1
  {
2
- "name": "@ledgerhq/device-signer-kit-solana",
3
- "version": "1.4.1",
4
- "private": false,
5
- "license": "Apache-2.0",
6
- "exports": {
7
- ".": {
8
- "types": "./lib/types/index.d.ts",
9
- "import": "./lib/esm/index.js",
10
- "require": "./lib/cjs/index.js"
11
- },
12
- "./*": {
13
- "types": "./lib/types/*",
14
- "import": "./lib/esm/*",
15
- "require": "./lib/cjs/*"
16
- }
17
- },
18
- "files": [
19
- "./lib"
20
- ],
21
2
  "dependencies": {
22
- "@ledgerhq/context-module": "^1.10.0",
23
- "@ledgerhq/signer-utils": "^1.1.0",
24
3
  "@solana/spl-token": "^0.4.13",
25
4
  "@solana/web3.js": "^1.98.2",
26
5
  "bs58": "^6.0.0",
@@ -29,35 +8,60 @@
29
8
  "purify-ts": "2.1.0",
30
9
  "reflect-metadata": "0.2.2",
31
10
  "semver": "7.7.2",
32
- "xstate": "5.19.2"
11
+ "xstate": "5.19.2",
12
+ "@ledgerhq/context-module": "^1.11.1",
13
+ "@ledgerhq/signer-utils": "^1.1.1"
33
14
  },
34
15
  "devDependencies": {
35
16
  "@types/semver": "7.7.0",
36
17
  "rxjs": "7.8.2",
37
18
  "ts-node": "10.9.2",
38
- "@ledgerhq/device-management-kit": "0.11.0",
39
- "@ledgerhq/eslint-config-dsdk": "0.0.2",
40
- "@ledgerhq/ldmk-tool": "0.0.1",
41
- "@ledgerhq/tsconfig-dsdk": "1.0.1",
42
- "@ledgerhq/prettier-config-dsdk": "0.0.2",
43
- "@ledgerhq/vitest-config-dmk": "0.0.0"
19
+ "@ledgerhq/eslint-config-dsdk": "^0.0.2",
20
+ "@ledgerhq/device-management-kit": "^0.13.0",
21
+ "@ledgerhq/ldmk-tool": "^0.0.1",
22
+ "@ledgerhq/prettier-config-dsdk": "^0.0.2",
23
+ "@ledgerhq/tsconfig-dsdk": "^1.0.1",
24
+ "@ledgerhq/vitest-config-dmk": "^0.0.0"
44
25
  },
26
+ "exports": {
27
+ ".": {
28
+ "import": "./lib/esm/index.js",
29
+ "require": "./lib/cjs/index.js",
30
+ "types": "./lib/types/index.d.ts"
31
+ },
32
+ "./*": {
33
+ "import": "./lib/esm/*",
34
+ "require": "./lib/cjs/*",
35
+ "types": "./lib/types/*"
36
+ }
37
+ },
38
+ "files": [
39
+ "./lib"
40
+ ],
41
+ "license": "Apache-2.0",
42
+ "name": "@ledgerhq/device-signer-kit-solana",
45
43
  "peerDependencies": {
46
- "@ledgerhq/device-management-kit": "0.11.0"
44
+ "@ledgerhq/device-management-kit": "^0.13.0"
47
45
  },
46
+ "private": false,
47
+ "repository": {
48
+ "type": "git",
49
+ "url": "https://github.com/LedgerHQ/device-sdk-ts.git"
50
+ },
51
+ "version": "1.5.1",
48
52
  "scripts": {
49
- "prebuild": "rimraf lib",
50
53
  "build": "pnpm ldmk-tool build --entryPoints src/index.ts,src/**/*.ts --tsconfig tsconfig.prod.json",
51
54
  "dev": "concurrently \"pnpm watch:builds\" \"pnpm watch:types\"",
52
- "watch:builds": "pnpm ldmk-tool watch --entryPoints src/index.ts,src/**/*.ts --tsconfig tsconfig.prod.json",
53
- "watch:types": "concurrently \"tsc --watch -p tsconfig.prod.json\" \"tsc-alias --watch -p tsconfig.prod.json\"",
54
55
  "lint": "eslint",
55
56
  "lint:fix": "pnpm lint --fix",
57
+ "prebuild": "rimraf lib",
56
58
  "prettier": "prettier . --check",
57
59
  "prettier:fix": "prettier . --write",
58
- "typecheck": "tsc --noEmit",
59
60
  "test": "vitest run",
61
+ "test:coverage": "vitest run --coverage",
60
62
  "test:watch": "vitest",
61
- "test:coverage": "vitest run --coverage"
63
+ "typecheck": "tsc --noEmit",
64
+ "watch:builds": "pnpm ldmk-tool watch --entryPoints src/index.ts,src/**/*.ts --tsconfig tsconfig.prod.json",
65
+ "watch:types": "concurrently \"tsc --watch -p tsconfig.prod.json\" \"tsc-alias --watch -p tsconfig.prod.json\""
62
66
  }
63
67
  }
@@ -1,2 +0,0 @@
1
- "use strict";var n=Object.defineProperty;var m=Object.getOwnPropertyDescriptor;var u=Object.getOwnPropertyNames;var i=Object.prototype.hasOwnProperty;var l=(e,r)=>{for(var o in r)n(e,o,{get:r[o],enumerable:!0})},A=(e,r,o,p)=>{if(r&&typeof r=="object"||typeof r=="function")for(let a of u(r))!i.call(e,a)&&a!==o&&n(e,a,{get:()=>r[a],enumerable:!(p=m(r,a))||p.enumerable});return e};var C=e=>A(n({},"__esModule",{value:!0}),e);var E={};l(E,{ProvideTrustedNamePKICommand:()=>v});module.exports=C(E);var d=require("@ledgerhq/device-management-kit"),s=require("@ledgerhq/signer-utils"),t=require("./utils/SolanaApplicationErrors");const c=176,y=6,P=4,g=0;class v{constructor(r){this.args=r}name="provideTrustedNamePKI";errorHelper=new s.CommandErrorHelper(t.SOLANA_APP_ERRORS,t.SolanaAppCommandErrorFactory);getApdu(){const r={cla:c,ins:y,p1:P,p2:g};return new d.ApduBuilder(r).addBufferToData(this.args.pkiBlob).build()}parseResponse(r){const o=this.errorHelper.getError(r);return o||(r.data.length!==0?(0,d.CommandResultFactory)({error:new d.InvalidStatusWordError("Unexpected data in response")}):(0,d.CommandResultFactory)({data:void 0}))}}0&&(module.exports={ProvideTrustedNamePKICommand});
2
- //# sourceMappingURL=ProvideTrustedNamePKICommand.js.map
@@ -1,7 +0,0 @@
1
- {
2
- "version": 3,
3
- "sources": ["../../../../../src/internal/app-binder/command/ProvideTrustedNamePKICommand.ts"],
4
- "sourcesContent": ["import {\n type Apdu,\n ApduBuilder,\n type ApduBuilderArgs,\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\";\n\nimport {\n SOLANA_APP_ERRORS,\n SolanaAppCommandErrorFactory,\n type SolanaAppErrorCodes,\n} from \"./utils/SolanaApplicationErrors\";\n\nconst CLA = 0xb0;\nconst INS = 0x06;\nconst P1 = 0x04;\nconst P2 = 0x00;\n\nexport type ProvideTrustedNamePKICommandArgs = {\n pkiBlob: Uint8Array;\n};\n\nexport class ProvideTrustedNamePKICommand\n implements\n Command<void, ProvideTrustedNamePKICommandArgs, SolanaAppErrorCodes>\n{\n readonly name = \"provideTrustedNamePKI\";\n private readonly errorHelper = new CommandErrorHelper<\n void,\n SolanaAppErrorCodes\n >(SOLANA_APP_ERRORS, SolanaAppCommandErrorFactory);\n\n constructor(readonly args: ProvideTrustedNamePKICommandArgs) {}\n\n getApdu(): Apdu {\n const apduBuilderArgs: ApduBuilderArgs = {\n cla: CLA,\n ins: INS,\n p1: P1,\n p2: P2,\n };\n return new ApduBuilder(apduBuilderArgs)\n .addBufferToData(this.args.pkiBlob)\n .build();\n }\n\n parseResponse(\n response: ApduResponse,\n ): CommandResult<void, SolanaAppErrorCodes> {\n const error = this.errorHelper.getError(response);\n if (error) {\n return error;\n }\n\n if (response.data.length !== 0) {\n return CommandResultFactory({\n error: new InvalidStatusWordError(\"Unexpected data in response\"),\n });\n }\n\n return CommandResultFactory({ data: undefined });\n }\n}\n"],
5
- "mappings": "yaAAA,IAAAA,EAAA,GAAAC,EAAAD,EAAA,kCAAAE,IAAA,eAAAC,EAAAH,GAAA,IAAAI,EASO,2CACPC,EAAmC,kCAEnCC,EAIO,2CAEP,MAAMC,EAAM,IACNC,EAAM,EACNC,EAAK,EACLC,EAAK,EAMJ,MAAMR,CAGb,CAOE,YAAqBS,EAAwC,CAAxC,UAAAA,CAAyC,CANrD,KAAO,wBACC,YAAc,IAAI,qBAGjC,oBAAmB,8BAA4B,EAIjD,SAAgB,CACd,MAAMC,EAAmC,CACvC,IAAKL,EACL,IAAKC,EACL,GAAIC,EACJ,GAAIC,CACN,EACA,OAAO,IAAI,cAAYE,CAAe,EACnC,gBAAgB,KAAK,KAAK,OAAO,EACjC,MAAM,CACX,CAEA,cACEC,EAC0C,CAC1C,MAAMC,EAAQ,KAAK,YAAY,SAASD,CAAQ,EAChD,OAAIC,IAIAD,EAAS,KAAK,SAAW,KACpB,wBAAqB,CAC1B,MAAO,IAAI,yBAAuB,6BAA6B,CACjE,CAAC,KAGI,wBAAqB,CAAE,KAAM,MAAU,CAAC,EACjD,CACF",
6
- "names": ["ProvideTrustedNamePKICommand_exports", "__export", "ProvideTrustedNamePKICommand", "__toCommonJS", "import_device_management_kit", "import_signer_utils", "import_SolanaApplicationErrors", "CLA", "INS", "P1", "P2", "args", "apduBuilderArgs", "response", "error"]
7
- }
@@ -1,2 +0,0 @@
1
- "use strict";var e=require("@ledgerhq/device-management-kit"),o=require("./ProvideTrustedNamePKICommand");const a=176,n=6,d=4,c=0,x=Uint8Array.from([222,173,190,239,21,2,1,2]),i=Uint8Array.from([a,n,d,c,8,222,173,190,239,21,2,1,2]);describe("ProvideTrustedNamePKICommand",()=>{let s;beforeEach(()=>{s=new o.ProvideTrustedNamePKICommand({pkiBlob:x})}),describe("name",()=>{it("should be 'provideTrustedNamePKI'",()=>{expect(s.name).toBe("provideTrustedNamePKI")})}),describe("getApdu",()=>{it("should construct the correct APDU",()=>{const t=s.getApdu();expect(t.getRawApdu()).toStrictEqual(i)})}),describe("parseResponse",()=>{it("should return success when status is 0x9000 and no data",()=>{const t={statusCode:Uint8Array.from([144,0]),data:new Uint8Array},r=s.parseResponse(t);expect(r).toStrictEqual((0,e.CommandResultFactory)({data:void 0})),expect((0,e.isSuccessCommandResult)(r)).toBe(!0)}),it("should return an error if the status code is not 0x9000",()=>{const t={statusCode:Uint8Array.from([85,21]),data:new Uint8Array},r=s.parseResponse(t);expect((0,e.isSuccessCommandResult)(r)).toBe(!1)}),it("should return an error if response contains unexpected data",()=>{const t={statusCode:Uint8Array.from([144,0]),data:Uint8Array.from([0])},r=s.parseResponse(t);expect((0,e.isSuccessCommandResult)(r)).toBe(!1),expect(r.error).toBeInstanceOf(e.InvalidStatusWordError)})})});
2
- //# sourceMappingURL=ProvideTrustedNamePKICommand.test.js.map
@@ -1,7 +0,0 @@
1
- {
2
- "version": 3,
3
- "sources": ["../../../../../src/internal/app-binder/command/ProvideTrustedNamePKICommand.test.ts"],
4
- "sourcesContent": ["import {\n CommandResultFactory,\n InvalidStatusWordError,\n isSuccessCommandResult,\n} from \"@ledgerhq/device-management-kit\";\n\nimport { ProvideTrustedNamePKICommand } from \"./ProvideTrustedNamePKICommand\";\n\nconst CLA = 0xb0;\nconst INS = 0x06;\nconst P1 = 0x04;\nconst P2 = 0x00;\n\nconst pkiBlob = Uint8Array.from([\n 0xde, 0xad, 0xbe, 0xef, 0x15, 0x02, 0x01, 0x02,\n]);\n\nconst EXPECTED_APDU = Uint8Array.from([\n CLA,\n INS,\n P1,\n P2,\n 0x08,\n 0xde,\n 0xad,\n 0xbe,\n 0xef,\n 0x15,\n 0x02,\n 0x01,\n 0x02,\n]);\n\ndescribe(\"ProvideTrustedNamePKICommand\", () => {\n let command: ProvideTrustedNamePKICommand;\n\n beforeEach(() => {\n command = new ProvideTrustedNamePKICommand({ pkiBlob });\n });\n\n describe(\"name\", () => {\n it(\"should be 'provideTrustedNamePKI'\", () => {\n expect(command.name).toBe(\"provideTrustedNamePKI\");\n });\n });\n\n describe(\"getApdu\", () => {\n it(\"should construct the correct APDU\", () => {\n const apdu = command.getApdu();\n expect(apdu.getRawApdu()).toStrictEqual(EXPECTED_APDU);\n });\n });\n\n describe(\"parseResponse\", () => {\n it(\"should return success when status is 0x9000 and no data\", () => {\n const LNX_RESPONSE_GOOD = {\n statusCode: Uint8Array.from([0x90, 0x00]),\n data: new Uint8Array(),\n };\n\n const parsed = command.parseResponse(LNX_RESPONSE_GOOD);\n expect(parsed).toStrictEqual(CommandResultFactory({ data: undefined }));\n expect(isSuccessCommandResult(parsed)).toBe(true);\n });\n\n it(\"should return an error if the status code is not 0x9000\", () => {\n const LNX_RESPONSE_ERROR = {\n statusCode: Uint8Array.from([0x55, 0x15]),\n data: new Uint8Array(),\n };\n\n const result = command.parseResponse(LNX_RESPONSE_ERROR);\n expect(isSuccessCommandResult(result)).toBe(false);\n });\n\n it(\"should return an error if response contains unexpected data\", () => {\n const LNX_RESPONSE_EXTRA = {\n statusCode: Uint8Array.from([0x90, 0x00]),\n data: Uint8Array.from([0x00]), // extra byte\n };\n\n const result = command.parseResponse(LNX_RESPONSE_EXTRA);\n expect(isSuccessCommandResult(result)).toBe(false);\n // @ts-ignore\n expect(result.error).toBeInstanceOf(InvalidStatusWordError);\n });\n });\n});\n"],
5
- "mappings": "aAAA,IAAAA,EAIO,2CAEPC,EAA6C,0CAE7C,MAAMC,EAAM,IACNC,EAAM,EACNC,EAAK,EACLC,EAAK,EAELC,EAAU,WAAW,KAAK,CAC9B,IAAM,IAAM,IAAM,IAAM,GAAM,EAAM,EAAM,CAC5C,CAAC,EAEKC,EAAgB,WAAW,KAAK,CACpCL,EACAC,EACAC,EACAC,EACA,EACA,IACA,IACA,IACA,IACA,GACA,EACA,EACA,CACF,CAAC,EAED,SAAS,+BAAgC,IAAM,CAC7C,IAAIG,EAEJ,WAAW,IAAM,CACfA,EAAU,IAAI,+BAA6B,CAAE,QAAAF,CAAQ,CAAC,CACxD,CAAC,EAED,SAAS,OAAQ,IAAM,CACrB,GAAG,oCAAqC,IAAM,CAC5C,OAAOE,EAAQ,IAAI,EAAE,KAAK,uBAAuB,CACnD,CAAC,CACH,CAAC,EAED,SAAS,UAAW,IAAM,CACxB,GAAG,oCAAqC,IAAM,CAC5C,MAAMC,EAAOD,EAAQ,QAAQ,EAC7B,OAAOC,EAAK,WAAW,CAAC,EAAE,cAAcF,CAAa,CACvD,CAAC,CACH,CAAC,EAED,SAAS,gBAAiB,IAAM,CAC9B,GAAG,0DAA2D,IAAM,CAClE,MAAMG,EAAoB,CACxB,WAAY,WAAW,KAAK,CAAC,IAAM,CAAI,CAAC,EACxC,KAAM,IAAI,UACZ,EAEMC,EAASH,EAAQ,cAAcE,CAAiB,EACtD,OAAOC,CAAM,EAAE,iBAAc,wBAAqB,CAAE,KAAM,MAAU,CAAC,CAAC,EACtE,UAAO,0BAAuBA,CAAM,CAAC,EAAE,KAAK,EAAI,CAClD,CAAC,EAED,GAAG,0DAA2D,IAAM,CAClE,MAAMC,EAAqB,CACzB,WAAY,WAAW,KAAK,CAAC,GAAM,EAAI,CAAC,EACxC,KAAM,IAAI,UACZ,EAEMC,EAASL,EAAQ,cAAcI,CAAkB,EACvD,UAAO,0BAAuBC,CAAM,CAAC,EAAE,KAAK,EAAK,CACnD,CAAC,EAED,GAAG,8DAA+D,IAAM,CACtE,MAAMC,EAAqB,CACzB,WAAY,WAAW,KAAK,CAAC,IAAM,CAAI,CAAC,EACxC,KAAM,WAAW,KAAK,CAAC,CAAI,CAAC,CAC9B,EAEMD,EAASL,EAAQ,cAAcM,CAAkB,EACvD,UAAO,0BAAuBD,CAAM,CAAC,EAAE,KAAK,EAAK,EAEjD,OAAOA,EAAO,KAAK,EAAE,eAAe,wBAAsB,CAC5D,CAAC,CACH,CAAC,CACH,CAAC",
6
- "names": ["import_device_management_kit", "import_ProvideTrustedNamePKICommand", "CLA", "INS", "P1", "P2", "pkiBlob", "EXPECTED_APDU", "command", "apdu", "LNX_RESPONSE_GOOD", "parsed", "LNX_RESPONSE_ERROR", "result", "LNX_RESPONSE_EXTRA"]
7
- }
@@ -1,2 +0,0 @@
1
- import{ApduBuilder as d,CommandResultFactory as o,InvalidStatusWordError as a}from"@ledgerhq/device-management-kit";import{CommandErrorHelper as t}from"@ledgerhq/signer-utils";import{SOLANA_APP_ERRORS as n,SolanaAppCommandErrorFactory as p}from"./utils/SolanaApplicationErrors";const s=176,m=6,u=4,i=0;class y{constructor(r){this.args=r}name="provideTrustedNamePKI";errorHelper=new t(n,p);getApdu(){const r={cla:s,ins:m,p1:u,p2:i};return new d(r).addBufferToData(this.args.pkiBlob).build()}parseResponse(r){const e=this.errorHelper.getError(r);return e||(r.data.length!==0?o({error:new a("Unexpected data in response")}):o({data:void 0}))}}export{y as ProvideTrustedNamePKICommand};
2
- //# sourceMappingURL=ProvideTrustedNamePKICommand.js.map
@@ -1,7 +0,0 @@
1
- {
2
- "version": 3,
3
- "sources": ["../../../../../src/internal/app-binder/command/ProvideTrustedNamePKICommand.ts"],
4
- "sourcesContent": ["import {\n type Apdu,\n ApduBuilder,\n type ApduBuilderArgs,\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\";\n\nimport {\n SOLANA_APP_ERRORS,\n SolanaAppCommandErrorFactory,\n type SolanaAppErrorCodes,\n} from \"./utils/SolanaApplicationErrors\";\n\nconst CLA = 0xb0;\nconst INS = 0x06;\nconst P1 = 0x04;\nconst P2 = 0x00;\n\nexport type ProvideTrustedNamePKICommandArgs = {\n pkiBlob: Uint8Array;\n};\n\nexport class ProvideTrustedNamePKICommand\n implements\n Command<void, ProvideTrustedNamePKICommandArgs, SolanaAppErrorCodes>\n{\n readonly name = \"provideTrustedNamePKI\";\n private readonly errorHelper = new CommandErrorHelper<\n void,\n SolanaAppErrorCodes\n >(SOLANA_APP_ERRORS, SolanaAppCommandErrorFactory);\n\n constructor(readonly args: ProvideTrustedNamePKICommandArgs) {}\n\n getApdu(): Apdu {\n const apduBuilderArgs: ApduBuilderArgs = {\n cla: CLA,\n ins: INS,\n p1: P1,\n p2: P2,\n };\n return new ApduBuilder(apduBuilderArgs)\n .addBufferToData(this.args.pkiBlob)\n .build();\n }\n\n parseResponse(\n response: ApduResponse,\n ): CommandResult<void, SolanaAppErrorCodes> {\n const error = this.errorHelper.getError(response);\n if (error) {\n return error;\n }\n\n if (response.data.length !== 0) {\n return CommandResultFactory({\n error: new InvalidStatusWordError(\"Unexpected data in response\"),\n });\n }\n\n return CommandResultFactory({ data: undefined });\n }\n}\n"],
5
- "mappings": "AAAA,OAEE,eAAAA,EAKA,wBAAAC,EACA,0BAAAC,MACK,kCACP,OAAS,sBAAAC,MAA0B,yBAEnC,OACE,qBAAAC,EACA,gCAAAC,MAEK,kCAEP,MAAMC,EAAM,IACNC,EAAM,EACNC,EAAK,EACLC,EAAK,EAMJ,MAAMC,CAGb,CAOE,YAAqBC,EAAwC,CAAxC,UAAAA,CAAyC,CANrD,KAAO,wBACC,YAAc,IAAIR,EAGjCC,EAAmBC,CAA4B,EAIjD,SAAgB,CACd,MAAMO,EAAmC,CACvC,IAAKN,EACL,IAAKC,EACL,GAAIC,EACJ,GAAIC,CACN,EACA,OAAO,IAAIT,EAAYY,CAAe,EACnC,gBAAgB,KAAK,KAAK,OAAO,EACjC,MAAM,CACX,CAEA,cACEC,EAC0C,CAC1C,MAAMC,EAAQ,KAAK,YAAY,SAASD,CAAQ,EAChD,OAAIC,IAIAD,EAAS,KAAK,SAAW,EACpBZ,EAAqB,CAC1B,MAAO,IAAIC,EAAuB,6BAA6B,CACjE,CAAC,EAGID,EAAqB,CAAE,KAAM,MAAU,CAAC,EACjD,CACF",
6
- "names": ["ApduBuilder", "CommandResultFactory", "InvalidStatusWordError", "CommandErrorHelper", "SOLANA_APP_ERRORS", "SolanaAppCommandErrorFactory", "CLA", "INS", "P1", "P2", "ProvideTrustedNamePKICommand", "args", "apduBuilderArgs", "response", "error"]
7
- }
@@ -1,2 +0,0 @@
1
- import{CommandResultFactory as o,InvalidStatusWordError as a,isSuccessCommandResult as s}from"@ledgerhq/device-management-kit";import{ProvideTrustedNamePKICommand as n}from"./ProvideTrustedNamePKICommand";const d=176,c=6,x=4,i=0,u=Uint8Array.from([222,173,190,239,21,2,1,2]),m=Uint8Array.from([d,c,x,i,8,222,173,190,239,21,2,1,2]);describe("ProvideTrustedNamePKICommand",()=>{let r;beforeEach(()=>{r=new n({pkiBlob:u})}),describe("name",()=>{it("should be 'provideTrustedNamePKI'",()=>{expect(r.name).toBe("provideTrustedNamePKI")})}),describe("getApdu",()=>{it("should construct the correct APDU",()=>{const e=r.getApdu();expect(e.getRawApdu()).toStrictEqual(m)})}),describe("parseResponse",()=>{it("should return success when status is 0x9000 and no data",()=>{const e={statusCode:Uint8Array.from([144,0]),data:new Uint8Array},t=r.parseResponse(e);expect(t).toStrictEqual(o({data:void 0})),expect(s(t)).toBe(!0)}),it("should return an error if the status code is not 0x9000",()=>{const e={statusCode:Uint8Array.from([85,21]),data:new Uint8Array},t=r.parseResponse(e);expect(s(t)).toBe(!1)}),it("should return an error if response contains unexpected data",()=>{const e={statusCode:Uint8Array.from([144,0]),data:Uint8Array.from([0])},t=r.parseResponse(e);expect(s(t)).toBe(!1),expect(t.error).toBeInstanceOf(a)})})});
2
- //# sourceMappingURL=ProvideTrustedNamePKICommand.test.js.map
@@ -1,7 +0,0 @@
1
- {
2
- "version": 3,
3
- "sources": ["../../../../../src/internal/app-binder/command/ProvideTrustedNamePKICommand.test.ts"],
4
- "sourcesContent": ["import {\n CommandResultFactory,\n InvalidStatusWordError,\n isSuccessCommandResult,\n} from \"@ledgerhq/device-management-kit\";\n\nimport { ProvideTrustedNamePKICommand } from \"./ProvideTrustedNamePKICommand\";\n\nconst CLA = 0xb0;\nconst INS = 0x06;\nconst P1 = 0x04;\nconst P2 = 0x00;\n\nconst pkiBlob = Uint8Array.from([\n 0xde, 0xad, 0xbe, 0xef, 0x15, 0x02, 0x01, 0x02,\n]);\n\nconst EXPECTED_APDU = Uint8Array.from([\n CLA,\n INS,\n P1,\n P2,\n 0x08,\n 0xde,\n 0xad,\n 0xbe,\n 0xef,\n 0x15,\n 0x02,\n 0x01,\n 0x02,\n]);\n\ndescribe(\"ProvideTrustedNamePKICommand\", () => {\n let command: ProvideTrustedNamePKICommand;\n\n beforeEach(() => {\n command = new ProvideTrustedNamePKICommand({ pkiBlob });\n });\n\n describe(\"name\", () => {\n it(\"should be 'provideTrustedNamePKI'\", () => {\n expect(command.name).toBe(\"provideTrustedNamePKI\");\n });\n });\n\n describe(\"getApdu\", () => {\n it(\"should construct the correct APDU\", () => {\n const apdu = command.getApdu();\n expect(apdu.getRawApdu()).toStrictEqual(EXPECTED_APDU);\n });\n });\n\n describe(\"parseResponse\", () => {\n it(\"should return success when status is 0x9000 and no data\", () => {\n const LNX_RESPONSE_GOOD = {\n statusCode: Uint8Array.from([0x90, 0x00]),\n data: new Uint8Array(),\n };\n\n const parsed = command.parseResponse(LNX_RESPONSE_GOOD);\n expect(parsed).toStrictEqual(CommandResultFactory({ data: undefined }));\n expect(isSuccessCommandResult(parsed)).toBe(true);\n });\n\n it(\"should return an error if the status code is not 0x9000\", () => {\n const LNX_RESPONSE_ERROR = {\n statusCode: Uint8Array.from([0x55, 0x15]),\n data: new Uint8Array(),\n };\n\n const result = command.parseResponse(LNX_RESPONSE_ERROR);\n expect(isSuccessCommandResult(result)).toBe(false);\n });\n\n it(\"should return an error if response contains unexpected data\", () => {\n const LNX_RESPONSE_EXTRA = {\n statusCode: Uint8Array.from([0x90, 0x00]),\n data: Uint8Array.from([0x00]), // extra byte\n };\n\n const result = command.parseResponse(LNX_RESPONSE_EXTRA);\n expect(isSuccessCommandResult(result)).toBe(false);\n // @ts-ignore\n expect(result.error).toBeInstanceOf(InvalidStatusWordError);\n });\n });\n});\n"],
5
- "mappings": "AAAA,OACE,wBAAAA,EACA,0BAAAC,EACA,0BAAAC,MACK,kCAEP,OAAS,gCAAAC,MAAoC,iCAE7C,MAAMC,EAAM,IACNC,EAAM,EACNC,EAAK,EACLC,EAAK,EAELC,EAAU,WAAW,KAAK,CAC9B,IAAM,IAAM,IAAM,IAAM,GAAM,EAAM,EAAM,CAC5C,CAAC,EAEKC,EAAgB,WAAW,KAAK,CACpCL,EACAC,EACAC,EACAC,EACA,EACA,IACA,IACA,IACA,IACA,GACA,EACA,EACA,CACF,CAAC,EAED,SAAS,+BAAgC,IAAM,CAC7C,IAAIG,EAEJ,WAAW,IAAM,CACfA,EAAU,IAAIP,EAA6B,CAAE,QAAAK,CAAQ,CAAC,CACxD,CAAC,EAED,SAAS,OAAQ,IAAM,CACrB,GAAG,oCAAqC,IAAM,CAC5C,OAAOE,EAAQ,IAAI,EAAE,KAAK,uBAAuB,CACnD,CAAC,CACH,CAAC,EAED,SAAS,UAAW,IAAM,CACxB,GAAG,oCAAqC,IAAM,CAC5C,MAAMC,EAAOD,EAAQ,QAAQ,EAC7B,OAAOC,EAAK,WAAW,CAAC,EAAE,cAAcF,CAAa,CACvD,CAAC,CACH,CAAC,EAED,SAAS,gBAAiB,IAAM,CAC9B,GAAG,0DAA2D,IAAM,CAClE,MAAMG,EAAoB,CACxB,WAAY,WAAW,KAAK,CAAC,IAAM,CAAI,CAAC,EACxC,KAAM,IAAI,UACZ,EAEMC,EAASH,EAAQ,cAAcE,CAAiB,EACtD,OAAOC,CAAM,EAAE,cAAcb,EAAqB,CAAE,KAAM,MAAU,CAAC,CAAC,EACtE,OAAOE,EAAuBW,CAAM,CAAC,EAAE,KAAK,EAAI,CAClD,CAAC,EAED,GAAG,0DAA2D,IAAM,CAClE,MAAMC,EAAqB,CACzB,WAAY,WAAW,KAAK,CAAC,GAAM,EAAI,CAAC,EACxC,KAAM,IAAI,UACZ,EAEMC,EAASL,EAAQ,cAAcI,CAAkB,EACvD,OAAOZ,EAAuBa,CAAM,CAAC,EAAE,KAAK,EAAK,CACnD,CAAC,EAED,GAAG,8DAA+D,IAAM,CACtE,MAAMC,EAAqB,CACzB,WAAY,WAAW,KAAK,CAAC,IAAM,CAAI,CAAC,EACxC,KAAM,WAAW,KAAK,CAAC,CAAI,CAAC,CAC9B,EAEMD,EAASL,EAAQ,cAAcM,CAAkB,EACvD,OAAOd,EAAuBa,CAAM,CAAC,EAAE,KAAK,EAAK,EAEjD,OAAOA,EAAO,KAAK,EAAE,eAAed,CAAsB,CAC5D,CAAC,CACH,CAAC,CACH,CAAC",
6
- "names": ["CommandResultFactory", "InvalidStatusWordError", "isSuccessCommandResult", "ProvideTrustedNamePKICommand", "CLA", "INS", "P1", "P2", "pkiBlob", "EXPECTED_APDU", "command", "apdu", "LNX_RESPONSE_GOOD", "parsed", "LNX_RESPONSE_ERROR", "result", "LNX_RESPONSE_EXTRA"]
7
- }
@@ -1,14 +0,0 @@
1
- import { type Apdu, type ApduResponse, type Command, type CommandResult } from "@ledgerhq/device-management-kit";
2
- import { type SolanaAppErrorCodes } from "./utils/SolanaApplicationErrors";
3
- export type ProvideTrustedNamePKICommandArgs = {
4
- pkiBlob: Uint8Array;
5
- };
6
- export declare class ProvideTrustedNamePKICommand implements Command<void, ProvideTrustedNamePKICommandArgs, SolanaAppErrorCodes> {
7
- readonly args: ProvideTrustedNamePKICommandArgs;
8
- readonly name = "provideTrustedNamePKI";
9
- private readonly errorHelper;
10
- constructor(args: ProvideTrustedNamePKICommandArgs);
11
- getApdu(): Apdu;
12
- parseResponse(response: ApduResponse): CommandResult<void, SolanaAppErrorCodes>;
13
- }
14
- //# sourceMappingURL=ProvideTrustedNamePKICommand.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"ProvideTrustedNamePKICommand.d.ts","sourceRoot":"","sources":["../../../../../src/internal/app-binder/command/ProvideTrustedNamePKICommand.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,KAAK,IAAI,EAGT,KAAK,YAAY,EACjB,KAAK,OAAO,EACZ,KAAK,aAAa,EAGnB,MAAM,iCAAiC,CAAC;AAGzC,OAAO,EAGL,KAAK,mBAAmB,EACzB,MAAM,iCAAiC,CAAC;AAOzC,MAAM,MAAM,gCAAgC,GAAG;IAC7C,OAAO,EAAE,UAAU,CAAC;CACrB,CAAC;AAEF,qBAAa,4BACX,YACE,OAAO,CAAC,IAAI,EAAE,gCAAgC,EAAE,mBAAmB,CAAC;IAQ1D,QAAQ,CAAC,IAAI,EAAE,gCAAgC;IAN3D,QAAQ,CAAC,IAAI,2BAA2B;IACxC,OAAO,CAAC,QAAQ,CAAC,WAAW,CAGuB;gBAE9B,IAAI,EAAE,gCAAgC;IAE3D,OAAO,IAAI,IAAI;IAYf,aAAa,CACX,QAAQ,EAAE,YAAY,GACrB,aAAa,CAAC,IAAI,EAAE,mBAAmB,CAAC;CAc5C"}
@@ -1,2 +0,0 @@
1
- export {};
2
- //# sourceMappingURL=ProvideTrustedNamePKICommand.test.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"ProvideTrustedNamePKICommand.test.d.ts","sourceRoot":"","sources":["../../../../../src/internal/app-binder/command/ProvideTrustedNamePKICommand.test.ts"],"names":[],"mappings":""}