@ledgerhq/device-signer-kit-ethereum 1.16.0 → 1.17.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (93) hide show
  1. package/lib/cjs/api/SignerEthBuilder.js +1 -1
  2. package/lib/cjs/api/SignerEthBuilder.js.map +3 -3
  3. package/lib/cjs/api/SignerEthBuilder.test.js +1 -1
  4. package/lib/cjs/api/SignerEthBuilder.test.js.map +3 -3
  5. package/lib/cjs/api/app-binder/SignTransactionDeviceActionFactory.js +2 -0
  6. package/lib/cjs/api/app-binder/SignTransactionDeviceActionFactory.js.map +7 -0
  7. package/lib/cjs/api/app-binder/SignTransactionDeviceActionFactory.test.js +2 -0
  8. package/lib/cjs/api/app-binder/SignTransactionDeviceActionFactory.test.js.map +7 -0
  9. package/lib/cjs/api/app-binder/SignTypedDataDeviceActionFactory.js +2 -0
  10. package/lib/cjs/api/app-binder/SignTypedDataDeviceActionFactory.js.map +7 -0
  11. package/lib/cjs/api/app-binder/SignTypedDataDeviceActionFactory.test.js +2 -0
  12. package/lib/cjs/api/app-binder/SignTypedDataDeviceActionFactory.test.js.map +7 -0
  13. package/lib/cjs/api/index.js +1 -1
  14. package/lib/cjs/api/index.js.map +3 -3
  15. package/lib/cjs/api/model/EvmAddressBook.js +2 -0
  16. package/lib/cjs/api/model/EvmAddressBook.js.map +7 -0
  17. package/lib/cjs/internal/DefaultSignerEth.js +1 -1
  18. package/lib/cjs/internal/DefaultSignerEth.js.map +3 -3
  19. package/lib/cjs/internal/app-binder/constants.js +1 -1
  20. package/lib/cjs/internal/app-binder/constants.js.map +3 -3
  21. package/lib/cjs/internal/app-binder/device-action/SignTransaction/SignTransactionDeviceAction.js +1 -1
  22. package/lib/cjs/internal/app-binder/device-action/SignTransaction/SignTransactionDeviceAction.js.map +2 -2
  23. package/lib/cjs/internal/app-binder/device-action/SignTransaction/SignTransactionDeviceAction.test.js +1 -1
  24. package/lib/cjs/internal/app-binder/device-action/SignTransaction/SignTransactionDeviceAction.test.js.map +3 -3
  25. package/lib/cjs/internal/app-binder/task/BlindSigningDetectionTask.js +1 -1
  26. package/lib/cjs/internal/app-binder/task/BlindSigningDetectionTask.js.map +3 -3
  27. package/lib/cjs/internal/app-binder/task/BlindSigningDetectionTask.test.js +1 -1
  28. package/lib/cjs/internal/app-binder/task/BlindSigningDetectionTask.test.js.map +3 -3
  29. package/lib/cjs/internal/di.js +1 -1
  30. package/lib/cjs/internal/di.js.map +3 -3
  31. package/lib/cjs/internal/externalTypes.js +1 -1
  32. package/lib/cjs/internal/externalTypes.js.map +2 -2
  33. package/lib/cjs/package.json +3 -3
  34. package/lib/esm/api/SignerEthBuilder.js +1 -1
  35. package/lib/esm/api/SignerEthBuilder.js.map +3 -3
  36. package/lib/esm/api/SignerEthBuilder.test.js +1 -1
  37. package/lib/esm/api/SignerEthBuilder.test.js.map +3 -3
  38. package/lib/esm/api/app-binder/SignTransactionDeviceActionFactory.js +2 -0
  39. package/lib/esm/api/app-binder/SignTransactionDeviceActionFactory.js.map +7 -0
  40. package/lib/esm/api/app-binder/SignTransactionDeviceActionFactory.test.js +2 -0
  41. package/lib/esm/api/app-binder/SignTransactionDeviceActionFactory.test.js.map +7 -0
  42. package/lib/esm/api/app-binder/SignTypedDataDeviceActionFactory.js +2 -0
  43. package/lib/esm/api/app-binder/SignTypedDataDeviceActionFactory.js.map +7 -0
  44. package/lib/esm/api/app-binder/SignTypedDataDeviceActionFactory.test.js +2 -0
  45. package/lib/esm/api/app-binder/SignTypedDataDeviceActionFactory.test.js.map +7 -0
  46. package/lib/esm/api/index.js +1 -1
  47. package/lib/esm/api/index.js.map +3 -3
  48. package/lib/esm/api/model/EvmAddressBook.js +1 -0
  49. package/lib/esm/api/model/EvmAddressBook.js.map +7 -0
  50. package/lib/esm/internal/DefaultSignerEth.js +1 -1
  51. package/lib/esm/internal/DefaultSignerEth.js.map +3 -3
  52. package/lib/esm/internal/app-binder/constants.js +1 -1
  53. package/lib/esm/internal/app-binder/constants.js.map +3 -3
  54. package/lib/esm/internal/app-binder/device-action/SignTransaction/SignTransactionDeviceAction.js +1 -1
  55. package/lib/esm/internal/app-binder/device-action/SignTransaction/SignTransactionDeviceAction.js.map +3 -3
  56. package/lib/esm/internal/app-binder/device-action/SignTransaction/SignTransactionDeviceAction.test.js +1 -1
  57. package/lib/esm/internal/app-binder/device-action/SignTransaction/SignTransactionDeviceAction.test.js.map +3 -3
  58. package/lib/esm/internal/app-binder/task/BlindSigningDetectionTask.js +1 -1
  59. package/lib/esm/internal/app-binder/task/BlindSigningDetectionTask.js.map +3 -3
  60. package/lib/esm/internal/app-binder/task/BlindSigningDetectionTask.test.js +1 -1
  61. package/lib/esm/internal/app-binder/task/BlindSigningDetectionTask.test.js.map +3 -3
  62. package/lib/esm/internal/di.js +1 -1
  63. package/lib/esm/internal/di.js.map +3 -3
  64. package/lib/esm/internal/externalTypes.js +1 -1
  65. package/lib/esm/internal/externalTypes.js.map +2 -2
  66. package/lib/esm/package.json +3 -3
  67. package/lib/types/api/SignerEthBuilder.d.ts +12 -0
  68. package/lib/types/api/SignerEthBuilder.d.ts.map +1 -1
  69. package/lib/types/api/app-binder/SignTransactionDeviceActionFactory.d.ts +13 -0
  70. package/lib/types/api/app-binder/SignTransactionDeviceActionFactory.d.ts.map +1 -0
  71. package/lib/types/api/app-binder/SignTransactionDeviceActionFactory.test.d.ts +2 -0
  72. package/lib/types/api/app-binder/SignTransactionDeviceActionFactory.test.d.ts.map +1 -0
  73. package/lib/types/api/app-binder/SignTypedDataDeviceActionFactory.d.ts +13 -0
  74. package/lib/types/api/app-binder/SignTypedDataDeviceActionFactory.d.ts.map +1 -0
  75. package/lib/types/api/app-binder/SignTypedDataDeviceActionFactory.test.d.ts +2 -0
  76. package/lib/types/api/app-binder/SignTypedDataDeviceActionFactory.test.d.ts.map +1 -0
  77. package/lib/types/api/index.d.ts +3 -0
  78. package/lib/types/api/index.d.ts.map +1 -1
  79. package/lib/types/api/model/EvmAddressBook.d.ts +51 -0
  80. package/lib/types/api/model/EvmAddressBook.d.ts.map +1 -0
  81. package/lib/types/internal/DefaultSignerEth.d.ts +3 -1
  82. package/lib/types/internal/DefaultSignerEth.d.ts.map +1 -1
  83. package/lib/types/internal/app-binder/constants.d.ts +1 -0
  84. package/lib/types/internal/app-binder/constants.d.ts.map +1 -1
  85. package/lib/types/internal/app-binder/device-action/SignTransaction/SignTransactionDeviceAction.d.ts.map +1 -1
  86. package/lib/types/internal/app-binder/task/BlindSigningDetectionTask.d.ts +8 -2
  87. package/lib/types/internal/app-binder/task/BlindSigningDetectionTask.d.ts.map +1 -1
  88. package/lib/types/internal/di.d.ts +3 -1
  89. package/lib/types/internal/di.d.ts.map +1 -1
  90. package/lib/types/internal/externalTypes.d.ts +1 -0
  91. package/lib/types/internal/externalTypes.d.ts.map +1 -1
  92. package/lib/types/tsconfig.prod.tsbuildinfo +1 -1
  93. package/package.json +8 -8
@@ -1,2 +1,2 @@
1
- "use strict";var r=Object.defineProperty;var u=Object.getOwnPropertyDescriptor;var g=Object.getOwnPropertyNames;var l=Object.prototype.hasOwnProperty;var c=(t,e)=>{for(var i in e)r(t,i,{get:e[i],enumerable:!0})},m=(t,e,i,n)=>{if(e&&typeof e=="object"||typeof e=="function")for(let o of g(e))!l.call(t,o)&&o!==i&&r(t,o,{get:()=>e[o],enumerable:!(n=u(e,o))||n.enumerable});return t};var h=t=>m(r({},"__esModule",{value:!0}),t);var C={};c(C,{SignerEthBuilder:()=>a});module.exports=h(C);var s=require("@ledgerhq/context-module"),d=require("../internal/DefaultSignerEth");class a{_dmk;_sessionId;_customContextModule;_originToken;constructor({dmk:e,sessionId:i,originToken:n}){this._dmk=e,this._sessionId=i,this._originToken=n}withContextModule(e){return this._customContextModule=e,this}build(){const e=this._customContextModule??new s.ContextModuleBuilder({originToken:this._originToken,loggerFactory:i=>this._dmk.getLoggerFactory()(["ContextModule",i])}).setChain(s.ContextModuleChainID.Ethereum).build();return new d.DefaultSignerEth({dmk:this._dmk,sessionId:this._sessionId,contextModule:e})}}0&&(module.exports={SignerEthBuilder});
1
+ "use strict";var r=Object.defineProperty;var u=Object.getOwnPropertyDescriptor;var m=Object.getOwnPropertyNames;var g=Object.prototype.hasOwnProperty;var h=(t,e)=>{for(var o in e)r(t,o,{get:e[o],enumerable:!0})},a=(t,e,o,s)=>{if(e&&typeof e=="object"||typeof e=="function")for(let i of m(e))!g.call(t,i)&&i!==o&&r(t,i,{get:()=>e[i],enumerable:!(s=u(e,i))||s.enumerable});return t};var l=t=>a(r({},"__esModule",{value:!0}),t);var k={};h(k,{SignerEthBuilder:()=>c});module.exports=l(k);var n=require("@ledgerhq/context-module"),d=require("../internal/DefaultSignerEth");class c{_dmk;_sessionId;_customContextModule;_originToken;_addressBook;constructor({dmk:e,sessionId:o,originToken:s}){this._dmk=e,this._sessionId=o,this._originToken=s}withContextModule(e){return this._customContextModule=e,this}withAddressBook(e){return this._addressBook=e,this}build(){const e=this._customContextModule??new n.ContextModuleBuilder({originToken:this._originToken,loggerFactory:o=>this._dmk.getLoggerFactory()(["ContextModule",o])}).setChain(n.ContextModuleChainID.Ethereum).build();return new d.DefaultSignerEth({dmk:this._dmk,sessionId:this._sessionId,contextModule:e,addressBook:this._addressBook})}}0&&(module.exports={SignerEthBuilder});
2
2
  //# sourceMappingURL=SignerEthBuilder.js.map
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "version": 3,
3
3
  "sources": ["../../../src/api/SignerEthBuilder.ts"],
4
- "sourcesContent": ["import {\n type ContextModule,\n ContextModuleBuilder,\n ContextModuleChainID,\n} from \"@ledgerhq/context-module\";\nimport {\n type DeviceManagementKit,\n type DeviceSessionId,\n} from \"@ledgerhq/device-management-kit\";\n\nimport { DefaultSignerEth } from \"@internal/DefaultSignerEth\";\n\ntype SignerEthBuilderConstructorArgs = {\n dmk: DeviceManagementKit;\n sessionId: DeviceSessionId;\n originToken?: string;\n};\n\n/**\n * Builder for the `SignerEth` class.\n *\n * @example\n * ```\n * const dmk = new SignerEthBuilder(dmk)\n * .build();\n * ```\n */\nexport class SignerEthBuilder {\n private _dmk: DeviceManagementKit;\n private _sessionId: DeviceSessionId;\n private _customContextModule: ContextModule | undefined;\n private _originToken: string | undefined;\n\n constructor({\n dmk,\n sessionId,\n originToken,\n }: SignerEthBuilderConstructorArgs) {\n this._dmk = dmk;\n this._sessionId = sessionId;\n this._originToken = originToken;\n }\n\n /**\n * Override the default context module\n *\n * @param contextModule\n * @returns this\n */\n withContextModule(contextModule: ContextModule) {\n this._customContextModule = contextModule;\n return this;\n }\n\n /**\n * Build the ethereum signer\n *\n * @returns the ethereum signer\n */\n public build() {\n const contextModule =\n this._customContextModule ??\n new ContextModuleBuilder({\n originToken: this._originToken,\n loggerFactory: (tag: string) =>\n this._dmk.getLoggerFactory()([\"ContextModule\", tag]),\n })\n .setChain(ContextModuleChainID.Ethereum)\n .build();\n\n return new DefaultSignerEth({\n dmk: this._dmk,\n sessionId: this._sessionId,\n contextModule,\n });\n }\n}\n"],
5
- "mappings": "yaAAA,IAAAA,EAAA,GAAAC,EAAAD,EAAA,sBAAAE,IAAA,eAAAC,EAAAH,GAAA,IAAAI,EAIO,oCAMPC,EAAiC,sCAiB1B,MAAMH,CAAiB,CACpB,KACA,WACA,qBACA,aAER,YAAY,CACV,IAAAI,EACA,UAAAC,EACA,YAAAC,CACF,EAAoC,CAClC,KAAK,KAAOF,EACZ,KAAK,WAAaC,EAClB,KAAK,aAAeC,CACtB,CAQA,kBAAkBC,EAA8B,CAC9C,YAAK,qBAAuBA,EACrB,IACT,CAOO,OAAQ,CACb,MAAMA,EACJ,KAAK,sBACL,IAAI,uBAAqB,CACvB,YAAa,KAAK,aAClB,cAAgBC,GACd,KAAK,KAAK,iBAAiB,EAAE,CAAC,gBAAiBA,CAAG,CAAC,CACvD,CAAC,EACE,SAAS,uBAAqB,QAAQ,EACtC,MAAM,EAEX,OAAO,IAAI,mBAAiB,CAC1B,IAAK,KAAK,KACV,UAAW,KAAK,WAChB,cAAAD,CACF,CAAC,CACH,CACF",
6
- "names": ["SignerEthBuilder_exports", "__export", "SignerEthBuilder", "__toCommonJS", "import_context_module", "import_DefaultSignerEth", "dmk", "sessionId", "originToken", "contextModule", "tag"]
4
+ "sourcesContent": ["import {\n type ContextModule,\n ContextModuleBuilder,\n ContextModuleChainID,\n} from \"@ledgerhq/context-module\";\nimport {\n type DeviceManagementKit,\n type DeviceSessionId,\n} from \"@ledgerhq/device-management-kit\";\n\nimport { type EvmAddressBook } from \"@api/model/EvmAddressBook\";\nimport { DefaultSignerEth } from \"@internal/DefaultSignerEth\";\n\ntype SignerEthBuilderConstructorArgs = {\n dmk: DeviceManagementKit;\n sessionId: DeviceSessionId;\n originToken?: string;\n};\n\n/**\n * Builder for the `SignerEth` class.\n *\n * @example\n * ```\n * const dmk = new SignerEthBuilder(dmk)\n * .build();\n * ```\n */\nexport class SignerEthBuilder {\n private _dmk: DeviceManagementKit;\n private _sessionId: DeviceSessionId;\n private _customContextModule: ContextModule | undefined;\n private _originToken: string | undefined;\n private _addressBook: EvmAddressBook | undefined;\n\n constructor({\n dmk,\n sessionId,\n originToken,\n }: SignerEthBuilderConstructorArgs) {\n this._dmk = dmk;\n this._sessionId = sessionId;\n this._originToken = originToken;\n }\n\n /**\n * Override the default context module\n *\n * @param contextModule\n * @returns this\n */\n withContextModule(contextModule: ContextModule) {\n this._customContextModule = contextModule;\n return this;\n }\n\n /**\n * Provide the EVM-compatible address book used to clear-sign contact names.\n *\n * The snapshot must be complete: the signer neither mutates nor persists it,\n * and reads it as-is. Rebuild the signer to pick up later changes.\n *\n * @param addressBook a complete EVM address-book snapshot\n * @returns this\n */\n withAddressBook(addressBook: EvmAddressBook) {\n this._addressBook = addressBook;\n return this;\n }\n\n /**\n * Build the ethereum signer\n *\n * @returns the ethereum signer\n */\n public build() {\n const contextModule =\n this._customContextModule ??\n new ContextModuleBuilder({\n originToken: this._originToken,\n loggerFactory: (tag: string) =>\n this._dmk.getLoggerFactory()([\"ContextModule\", tag]),\n })\n .setChain(ContextModuleChainID.Ethereum)\n .build();\n\n return new DefaultSignerEth({\n dmk: this._dmk,\n sessionId: this._sessionId,\n contextModule,\n addressBook: this._addressBook,\n });\n }\n}\n"],
5
+ "mappings": "yaAAA,IAAAA,EAAA,GAAAC,EAAAD,EAAA,sBAAAE,IAAA,eAAAC,EAAAH,GAAA,IAAAI,EAIO,oCAOPC,EAAiC,sCAiB1B,MAAMH,CAAiB,CACpB,KACA,WACA,qBACA,aACA,aAER,YAAY,CACV,IAAAI,EACA,UAAAC,EACA,YAAAC,CACF,EAAoC,CAClC,KAAK,KAAOF,EACZ,KAAK,WAAaC,EAClB,KAAK,aAAeC,CACtB,CAQA,kBAAkBC,EAA8B,CAC9C,YAAK,qBAAuBA,EACrB,IACT,CAWA,gBAAgBC,EAA6B,CAC3C,YAAK,aAAeA,EACb,IACT,CAOO,OAAQ,CACb,MAAMD,EACJ,KAAK,sBACL,IAAI,uBAAqB,CACvB,YAAa,KAAK,aAClB,cAAgBE,GACd,KAAK,KAAK,iBAAiB,EAAE,CAAC,gBAAiBA,CAAG,CAAC,CACvD,CAAC,EACE,SAAS,uBAAqB,QAAQ,EACtC,MAAM,EAEX,OAAO,IAAI,mBAAiB,CAC1B,IAAK,KAAK,KACV,UAAW,KAAK,WAChB,cAAAF,EACA,YAAa,KAAK,YACpB,CAAC,CACH,CACF",
6
+ "names": ["SignerEthBuilder_exports", "__export", "SignerEthBuilder", "__toCommonJS", "import_context_module", "import_DefaultSignerEth", "dmk", "sessionId", "originToken", "contextModule", "addressBook", "tag"]
7
7
  }
@@ -1,2 +1,2 @@
1
- "use strict";var n=require("./SignerEthBuilder"),r=require("../internal/DefaultSignerEth"),s=require("../internal/externalTypes");const c={debug:vi.fn(),info:vi.fn(),warn:vi.fn(),error:vi.fn(),subscribers:[]};describe("SignerEthBuilder",()=>{const i={dmk:{getLoggerFactory:()=>()=>c},sessionId:"",originToken:"test"};test("should be an instance of SignerEth",()=>{const e=new n.SignerEthBuilder(i);e.build(),expect(e).toBeInstanceOf(n.SignerEthBuilder)}),test("should instanciate with default context module",()=>{const t=new n.SignerEthBuilder(i).build(),o=t._container.get(s.externalTypes.ContextModule);expect(t).toBeInstanceOf(r.DefaultSignerEth),expect(o).toBeDefined()}),test("should instanciate with custom context module",()=>{const e=new n.SignerEthBuilder(i),t={},o=e.withContextModule(t).build();expect(o).toBeInstanceOf(r.DefaultSignerEth),expect(o._container.get(s.externalTypes.ContextModule)).toBe(t)})});
1
+ "use strict";var n=require("./SignerEthBuilder"),c=require("../internal/DefaultSignerEth"),r=require("../internal/externalTypes");const i={debug:vi.fn(),info:vi.fn(),warn:vi.fn(),error:vi.fn(),subscribers:[]};describe("SignerEthBuilder",()=>{const s={dmk:{getLoggerFactory:()=>()=>i},sessionId:"",originToken:"test"};test("should be an instance of SignerEth",()=>{const t=new n.SignerEthBuilder(s);t.build(),expect(t).toBeInstanceOf(n.SignerEthBuilder)}),test("should instanciate with default context module",()=>{const e=new n.SignerEthBuilder(s).build(),o=e._container.get(r.externalTypes.ContextModule);expect(e).toBeInstanceOf(c.DefaultSignerEth),expect(o).toBeDefined()}),test("should instanciate with custom context module",()=>{const t=new n.SignerEthBuilder(s),e={},o=t.withContextModule(e).build();expect(o).toBeInstanceOf(c.DefaultSignerEth),expect(o._container.get(r.externalTypes.ContextModule)).toBe(e)}),test("should instanciate with an empty address book by default",()=>{const e=new n.SignerEthBuilder(s).build();expect(e).toBeInstanceOf(c.DefaultSignerEth),expect(e._container.get(r.externalTypes.AddressBook)).toEqual({contactGroups:[],ledgerAccounts:[]})}),test("should instanciate with a custom address book",()=>{const t=new n.SignerEthBuilder(s),e={contactGroups:[{contactName:"Alice",groupHandle:Uint8Array.from([1,2]),hmacProof:Uint8Array.from([3,4]),externalAddresses:[{scope:"ETH",address:"0x1111111111111111111111111111111111111111",chainId:1n,hmacRest:Uint8Array.from([5])}]}],ledgerAccounts:[{accountName:"Main account",derivationPath:"44'/60'/0'/0/0",chainId:1n,hmacProof:Uint8Array.from([6])}]},o=t.withAddressBook(e).build();expect(o).toBeInstanceOf(c.DefaultSignerEth),expect(o._container.get(r.externalTypes.AddressBook)).toBe(e)}),test("should preserve a contact group holding several addresses across chains",()=>{const t=new n.SignerEthBuilder(s),e={contactGroups:[{contactName:"Bob",groupHandle:Uint8Array.from([10]),hmacProof:Uint8Array.from([11]),externalAddresses:[{scope:"ETH",address:"0x2222222222222222222222222222222222222222",chainId:1n,hmacRest:Uint8Array.from([12])},{scope:"POL",address:"0x2222222222222222222222222222222222222222",chainId:137n,hmacRest:Uint8Array.from([13])}]}],ledgerAccounts:[]},d=t.withAddressBook(e).build()._container.get(r.externalTypes.AddressBook);expect(d.contactGroups).toHaveLength(1),expect(d.contactGroups[0].externalAddresses).toHaveLength(2),expect(d.contactGroups[0].externalAddresses.map(a=>a.chainId)).toEqual([1n,137n])})});
2
2
  //# sourceMappingURL=SignerEthBuilder.test.js.map
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "version": 3,
3
3
  "sources": ["../../../src/api/SignerEthBuilder.test.ts"],
4
- "sourcesContent": ["import { type ContextModule } from \"@ledgerhq/context-module\";\nimport { type DeviceManagementKit } from \"@ledgerhq/device-management-kit\";\n\nimport { SignerEthBuilder } from \"@api/SignerEthBuilder\";\nimport { DefaultSignerEth } from \"@internal/DefaultSignerEth\";\nimport { externalTypes } from \"@internal/externalTypes\";\n\nconst mockLogger = {\n debug: vi.fn(),\n info: vi.fn(),\n warn: vi.fn(),\n error: vi.fn(),\n subscribers: [],\n};\n\ndescribe(\"SignerEthBuilder\", () => {\n const dmk: DeviceManagementKit = {\n getLoggerFactory: () => () => mockLogger,\n } as unknown as DeviceManagementKit;\n const defaultConstructorArgs = { dmk, sessionId: \"\", originToken: \"test\" };\n\n test(\"should be an instance of SignerEth\", () => {\n // GIVEN\n const builder = new SignerEthBuilder(defaultConstructorArgs);\n\n // WHEN\n builder.build();\n\n // THEN\n expect(builder).toBeInstanceOf(SignerEthBuilder);\n });\n\n test(\"should instanciate with default context module\", () => {\n // GIVEN\n const builder = new SignerEthBuilder(defaultConstructorArgs);\n\n // WHEN\n const signer = builder.build();\n const contextModule = signer[\"_container\"].get<ContextModule>(\n externalTypes.ContextModule,\n );\n\n // THEN\n expect(signer).toBeInstanceOf(DefaultSignerEth);\n expect(contextModule).toBeDefined();\n });\n\n test(\"should instanciate with custom context module\", () => {\n // GIVEN\n const builder = new SignerEthBuilder(defaultConstructorArgs);\n const contextModule = {} as ContextModule;\n\n // WHEN\n const signer = builder.withContextModule(contextModule).build();\n\n // THEN\n expect(signer).toBeInstanceOf(DefaultSignerEth);\n expect(\n signer[\"_container\"].get<ContextModule>(externalTypes.ContextModule),\n ).toBe(contextModule);\n });\n});\n"],
5
- "mappings": "aAGA,IAAAA,EAAiC,iCACjCC,EAAiC,sCACjCC,EAA8B,mCAE9B,MAAMC,EAAa,CACjB,MAAO,GAAG,GAAG,EACb,KAAM,GAAG,GAAG,EACZ,KAAM,GAAG,GAAG,EACZ,MAAO,GAAG,GAAG,EACb,YAAa,CAAC,CAChB,EAEA,SAAS,mBAAoB,IAAM,CAIjC,MAAMC,EAAyB,CAAE,IAHA,CAC/B,iBAAkB,IAAM,IAAMD,CAChC,EACsC,UAAW,GAAI,YAAa,MAAO,EAEzE,KAAK,qCAAsC,IAAM,CAE/C,MAAME,EAAU,IAAI,mBAAiBD,CAAsB,EAG3DC,EAAQ,MAAM,EAGd,OAAOA,CAAO,EAAE,eAAe,kBAAgB,CACjD,CAAC,EAED,KAAK,iDAAkD,IAAM,CAK3D,MAAMC,EAHU,IAAI,mBAAiBF,CAAsB,EAGpC,MAAM,EACvBG,EAAgBD,EAAO,WAAc,IACzC,gBAAc,aAChB,EAGA,OAAOA,CAAM,EAAE,eAAe,kBAAgB,EAC9C,OAAOC,CAAa,EAAE,YAAY,CACpC,CAAC,EAED,KAAK,gDAAiD,IAAM,CAE1D,MAAMF,EAAU,IAAI,mBAAiBD,CAAsB,EACrDG,EAAgB,CAAC,EAGjBD,EAASD,EAAQ,kBAAkBE,CAAa,EAAE,MAAM,EAG9D,OAAOD,CAAM,EAAE,eAAe,kBAAgB,EAC9C,OACEA,EAAO,WAAc,IAAmB,gBAAc,aAAa,CACrE,EAAE,KAAKC,CAAa,CACtB,CAAC,CACH,CAAC",
6
- "names": ["import_SignerEthBuilder", "import_DefaultSignerEth", "import_externalTypes", "mockLogger", "defaultConstructorArgs", "builder", "signer", "contextModule"]
4
+ "sourcesContent": ["import { type ContextModule } from \"@ledgerhq/context-module\";\nimport { type DeviceManagementKit } from \"@ledgerhq/device-management-kit\";\n\nimport { type EvmAddressBook } from \"@api/model/EvmAddressBook\";\nimport { SignerEthBuilder } from \"@api/SignerEthBuilder\";\nimport { DefaultSignerEth } from \"@internal/DefaultSignerEth\";\nimport { externalTypes } from \"@internal/externalTypes\";\n\nconst mockLogger = {\n debug: vi.fn(),\n info: vi.fn(),\n warn: vi.fn(),\n error: vi.fn(),\n subscribers: [],\n};\n\ndescribe(\"SignerEthBuilder\", () => {\n const dmk: DeviceManagementKit = {\n getLoggerFactory: () => () => mockLogger,\n } as unknown as DeviceManagementKit;\n const defaultConstructorArgs = { dmk, sessionId: \"\", originToken: \"test\" };\n\n test(\"should be an instance of SignerEth\", () => {\n // GIVEN\n const builder = new SignerEthBuilder(defaultConstructorArgs);\n\n // WHEN\n builder.build();\n\n // THEN\n expect(builder).toBeInstanceOf(SignerEthBuilder);\n });\n\n test(\"should instanciate with default context module\", () => {\n // GIVEN\n const builder = new SignerEthBuilder(defaultConstructorArgs);\n\n // WHEN\n const signer = builder.build();\n const contextModule = signer[\"_container\"].get<ContextModule>(\n externalTypes.ContextModule,\n );\n\n // THEN\n expect(signer).toBeInstanceOf(DefaultSignerEth);\n expect(contextModule).toBeDefined();\n });\n\n test(\"should instanciate with custom context module\", () => {\n // GIVEN\n const builder = new SignerEthBuilder(defaultConstructorArgs);\n const contextModule = {} as ContextModule;\n\n // WHEN\n const signer = builder.withContextModule(contextModule).build();\n\n // THEN\n expect(signer).toBeInstanceOf(DefaultSignerEth);\n expect(\n signer[\"_container\"].get<ContextModule>(externalTypes.ContextModule),\n ).toBe(contextModule);\n });\n\n test(\"should instanciate with an empty address book by default\", () => {\n // GIVEN\n const builder = new SignerEthBuilder(defaultConstructorArgs);\n\n // WHEN\n const signer = builder.build();\n\n // THEN\n expect(signer).toBeInstanceOf(DefaultSignerEth);\n expect(\n signer[\"_container\"].get<EvmAddressBook>(externalTypes.AddressBook),\n ).toEqual({\n contactGroups: [],\n ledgerAccounts: [],\n });\n });\n\n test(\"should instanciate with a custom address book\", () => {\n // GIVEN\n const builder = new SignerEthBuilder(defaultConstructorArgs);\n const addressBook: EvmAddressBook = {\n contactGroups: [\n {\n contactName: \"Alice\",\n groupHandle: Uint8Array.from([0x01, 0x02]),\n hmacProof: Uint8Array.from([0x03, 0x04]),\n externalAddresses: [\n {\n scope: \"ETH\",\n address: \"0x1111111111111111111111111111111111111111\",\n chainId: 1n,\n hmacRest: Uint8Array.from([0x05]),\n },\n ],\n },\n ],\n ledgerAccounts: [\n {\n accountName: \"Main account\",\n derivationPath: \"44'/60'/0'/0/0\",\n chainId: 1n,\n hmacProof: Uint8Array.from([0x06]),\n },\n ],\n };\n\n // WHEN\n const signer = builder.withAddressBook(addressBook).build();\n\n // THEN\n expect(signer).toBeInstanceOf(DefaultSignerEth);\n expect(\n signer[\"_container\"].get<EvmAddressBook>(externalTypes.AddressBook),\n ).toBe(addressBook);\n });\n\n test(\"should preserve a contact group holding several addresses across chains\", () => {\n // GIVEN\n const builder = new SignerEthBuilder(defaultConstructorArgs);\n const addressBook: EvmAddressBook = {\n contactGroups: [\n {\n contactName: \"Bob\",\n groupHandle: Uint8Array.from([0x0a]),\n hmacProof: Uint8Array.from([0x0b]),\n externalAddresses: [\n {\n scope: \"ETH\",\n address: \"0x2222222222222222222222222222222222222222\",\n chainId: 1n,\n hmacRest: Uint8Array.from([0x0c]),\n },\n {\n scope: \"POL\",\n address: \"0x2222222222222222222222222222222222222222\",\n chainId: 137n,\n hmacRest: Uint8Array.from([0x0d]),\n },\n ],\n },\n ],\n ledgerAccounts: [],\n };\n\n // WHEN\n const signer = builder.withAddressBook(addressBook).build();\n const bound = signer[\"_container\"].get<EvmAddressBook>(\n externalTypes.AddressBook,\n );\n\n // THEN\n expect(bound.contactGroups).toHaveLength(1);\n expect(bound.contactGroups[0]!.externalAddresses).toHaveLength(2);\n expect(\n bound.contactGroups[0]!.externalAddresses.map((a) => a.chainId),\n ).toEqual([1n, 137n]);\n });\n});\n"],
5
+ "mappings": "aAIA,IAAAA,EAAiC,iCACjCC,EAAiC,sCACjCC,EAA8B,mCAE9B,MAAMC,EAAa,CACjB,MAAO,GAAG,GAAG,EACb,KAAM,GAAG,GAAG,EACZ,KAAM,GAAG,GAAG,EACZ,MAAO,GAAG,GAAG,EACb,YAAa,CAAC,CAChB,EAEA,SAAS,mBAAoB,IAAM,CAIjC,MAAMC,EAAyB,CAAE,IAHA,CAC/B,iBAAkB,IAAM,IAAMD,CAChC,EACsC,UAAW,GAAI,YAAa,MAAO,EAEzE,KAAK,qCAAsC,IAAM,CAE/C,MAAME,EAAU,IAAI,mBAAiBD,CAAsB,EAG3DC,EAAQ,MAAM,EAGd,OAAOA,CAAO,EAAE,eAAe,kBAAgB,CACjD,CAAC,EAED,KAAK,iDAAkD,IAAM,CAK3D,MAAMC,EAHU,IAAI,mBAAiBF,CAAsB,EAGpC,MAAM,EACvBG,EAAgBD,EAAO,WAAc,IACzC,gBAAc,aAChB,EAGA,OAAOA,CAAM,EAAE,eAAe,kBAAgB,EAC9C,OAAOC,CAAa,EAAE,YAAY,CACpC,CAAC,EAED,KAAK,gDAAiD,IAAM,CAE1D,MAAMF,EAAU,IAAI,mBAAiBD,CAAsB,EACrDG,EAAgB,CAAC,EAGjBD,EAASD,EAAQ,kBAAkBE,CAAa,EAAE,MAAM,EAG9D,OAAOD,CAAM,EAAE,eAAe,kBAAgB,EAC9C,OACEA,EAAO,WAAc,IAAmB,gBAAc,aAAa,CACrE,EAAE,KAAKC,CAAa,CACtB,CAAC,EAED,KAAK,2DAA4D,IAAM,CAKrE,MAAMD,EAHU,IAAI,mBAAiBF,CAAsB,EAGpC,MAAM,EAG7B,OAAOE,CAAM,EAAE,eAAe,kBAAgB,EAC9C,OACEA,EAAO,WAAc,IAAoB,gBAAc,WAAW,CACpE,EAAE,QAAQ,CACR,cAAe,CAAC,EAChB,eAAgB,CAAC,CACnB,CAAC,CACH,CAAC,EAED,KAAK,gDAAiD,IAAM,CAE1D,MAAMD,EAAU,IAAI,mBAAiBD,CAAsB,EACrDI,EAA8B,CAClC,cAAe,CACb,CACE,YAAa,QACb,YAAa,WAAW,KAAK,CAAC,EAAM,CAAI,CAAC,EACzC,UAAW,WAAW,KAAK,CAAC,EAAM,CAAI,CAAC,EACvC,kBAAmB,CACjB,CACE,MAAO,MACP,QAAS,6CACT,QAAS,GACT,SAAU,WAAW,KAAK,CAAC,CAAI,CAAC,CAClC,CACF,CACF,CACF,EACA,eAAgB,CACd,CACE,YAAa,eACb,eAAgB,iBAChB,QAAS,GACT,UAAW,WAAW,KAAK,CAAC,CAAI,CAAC,CACnC,CACF,CACF,EAGMF,EAASD,EAAQ,gBAAgBG,CAAW,EAAE,MAAM,EAG1D,OAAOF,CAAM,EAAE,eAAe,kBAAgB,EAC9C,OACEA,EAAO,WAAc,IAAoB,gBAAc,WAAW,CACpE,EAAE,KAAKE,CAAW,CACpB,CAAC,EAED,KAAK,0EAA2E,IAAM,CAEpF,MAAMH,EAAU,IAAI,mBAAiBD,CAAsB,EACrDI,EAA8B,CAClC,cAAe,CACb,CACE,YAAa,MACb,YAAa,WAAW,KAAK,CAAC,EAAI,CAAC,EACnC,UAAW,WAAW,KAAK,CAAC,EAAI,CAAC,EACjC,kBAAmB,CACjB,CACE,MAAO,MACP,QAAS,6CACT,QAAS,GACT,SAAU,WAAW,KAAK,CAAC,EAAI,CAAC,CAClC,EACA,CACE,MAAO,MACP,QAAS,6CACT,QAAS,KACT,SAAU,WAAW,KAAK,CAAC,EAAI,CAAC,CAClC,CACF,CACF,CACF,EACA,eAAgB,CAAC,CACnB,EAIMC,EADSJ,EAAQ,gBAAgBG,CAAW,EAAE,MAAM,EACrC,WAAc,IACjC,gBAAc,WAChB,EAGA,OAAOC,EAAM,aAAa,EAAE,aAAa,CAAC,EAC1C,OAAOA,EAAM,cAAc,CAAC,EAAG,iBAAiB,EAAE,aAAa,CAAC,EAChE,OACEA,EAAM,cAAc,CAAC,EAAG,kBAAkB,IAAK,GAAM,EAAE,OAAO,CAChE,EAAE,QAAQ,CAAC,GAAI,IAAI,CAAC,CACtB,CAAC,CACH,CAAC",
6
+ "names": ["import_SignerEthBuilder", "import_DefaultSignerEth", "import_externalTypes", "mockLogger", "defaultConstructorArgs", "builder", "signer", "contextModule", "addressBook", "bound"]
7
7
  }
@@ -0,0 +1,2 @@
1
+ "use strict";var i=Object.defineProperty;var s=Object.getOwnPropertyDescriptor;var g=Object.getOwnPropertyNames;var S=Object.prototype.hasOwnProperty;var m=(t,n)=>{for(var e in n)i(t,e,{get:n[e],enumerable:!0})},u=(t,n,e,r)=>{if(n&&typeof n=="object"||typeof n=="function")for(let o of g(n))!S.call(t,o)&&o!==e&&i(t,o,{get:()=>n[o],enumerable:!(r=s(n,o))||r.enumerable});return t};var T=t=>u(i({},"__esModule",{value:!0}),t);var A={};m(A,{SignTransactionDeviceActionFactory:()=>l});module.exports=T(A);var a=require("../../internal/app-binder/device-action/SignTransaction/SignTransactionDeviceAction"),c=require("../../internal/transaction/service/mapper/EthersTransactionMapperService"),p=require("../../internal/transaction/service/parser/TransactionParserService");const l=t=>new a.SignTransactionDeviceAction({input:{derivationPath:t.derivationPath,transaction:t.transaction,contextModule:t.contextModule,options:t.options??{},mapper:new c.EthersTransactionMapperService,parser:new p.TransactionParserService},inspect:t.inspect,loggerFactory:t.loggerFactory});0&&(module.exports={SignTransactionDeviceActionFactory});
2
+ //# sourceMappingURL=SignTransactionDeviceActionFactory.js.map
@@ -0,0 +1,7 @@
1
+ {
2
+ "version": 3,
3
+ "sources": ["../../../../src/api/app-binder/SignTransactionDeviceActionFactory.ts"],
4
+ "sourcesContent": ["import { type ContextModule } from \"@ledgerhq/context-module\";\nimport {\n type LoggerPublisherService,\n type XStateDeviceAction,\n} from \"@ledgerhq/device-management-kit\";\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 TransactionOptions } from \"@api/model/TransactionOptions\";\nimport { SignTransactionDeviceAction } from \"@internal/app-binder/device-action/SignTransaction/SignTransactionDeviceAction\";\nimport { EthersTransactionMapperService } from \"@internal/transaction/service/mapper/EthersTransactionMapperService\";\nimport { TransactionParserService } from \"@internal/transaction/service/parser/TransactionParserService\";\n\nexport const SignTransactionDeviceActionFactory = (args: {\n derivationPath: string;\n transaction: Uint8Array;\n contextModule: ContextModule;\n options?: TransactionOptions;\n inspect?: boolean;\n loggerFactory?: (tag: string) => LoggerPublisherService;\n}): XStateDeviceAction<\n SignTransactionDAOutput,\n SignTransactionDAInput,\n SignTransactionDAError,\n SignTransactionDAIntermediateValue,\n SignTransactionDAInternalState\n> =>\n new SignTransactionDeviceAction({\n input: {\n derivationPath: args.derivationPath,\n transaction: args.transaction,\n contextModule: args.contextModule,\n options: args.options ?? {},\n mapper: new EthersTransactionMapperService(),\n parser: new TransactionParserService(),\n },\n inspect: args.inspect,\n loggerFactory: args.loggerFactory,\n });\n"],
5
+ "mappings": "yaAAA,IAAAA,EAAA,GAAAC,EAAAD,EAAA,wCAAAE,IAAA,eAAAC,EAAAH,GAcA,IAAAI,EAA4C,0FAC5CC,EAA+C,+EAC/CC,EAAyC,yEAElC,MAAMJ,EAAsCK,GAcjD,IAAI,8BAA4B,CAC9B,MAAO,CACL,eAAgBA,EAAK,eACrB,YAAaA,EAAK,YAClB,cAAeA,EAAK,cACpB,QAASA,EAAK,SAAW,CAAC,EAC1B,OAAQ,IAAI,iCACZ,OAAQ,IAAI,0BACd,EACA,QAASA,EAAK,QACd,cAAeA,EAAK,aACtB,CAAC",
6
+ "names": ["SignTransactionDeviceActionFactory_exports", "__export", "SignTransactionDeviceActionFactory", "__toCommonJS", "import_SignTransactionDeviceAction", "import_EthersTransactionMapperService", "import_TransactionParserService", "args"]
7
+ }
@@ -0,0 +1,2 @@
1
+ "use strict";var e=require("vitest"),s=require("../../internal/app-binder/device-action/__test-utils__/makeInternalApi"),r=require("../../internal/app-binder/device-action/SignTransaction/SignTransactionDeviceAction"),d=require("../../internal/transaction/service/mapper/EthersTransactionMapperService"),p=require("../../internal/transaction/service/parser/TransactionParserService"),o=require("./SignTransactionDeviceActionFactory");e.vi.mock("@ledgerhq/device-management-kit",async n=>({...await n(),OpenAppDeviceAction:e.vi.fn(()=>({makeStateMachine:e.vi.fn()}))}));e.vi.mock("@internal/app-binder/device-action/SignTransaction/SignTransactionDeviceAction",async n=>{const i=await n(),t=e.vi.fn().mockImplementation((...g)=>new i.SignTransactionDeviceAction(...g));return t.prototype=i.SignTransactionDeviceAction.prototype,{...i,SignTransactionDeviceAction:t}});const a={getContexts:e.vi.fn()},c=e.vi.fn(n=>({debug:e.vi.fn(),info:e.vi.fn(),warn:e.vi.fn(),error:e.vi.fn(),subscribers:[]}));(0,e.describe)("SignTransactionDeviceActionFactory",()=>{(0,e.beforeEach)(()=>{e.vi.clearAllMocks()}),(0,e.it)("should create a SignTransactionDeviceAction from the given arguments",()=>{const n=(0,o.SignTransactionDeviceActionFactory)({derivationPath:"44'/60'/0'/0/0",transaction:new Uint8Array([222,173]),contextModule:a});(0,e.expect)(n).toBeInstanceOf(r.SignTransactionDeviceAction)}),(0,e.it)("should wire mapper and parser internally (not required from caller)",()=>{const n=(0,o.SignTransactionDeviceActionFactory)({derivationPath:"44'/60'/0'/0/0",transaction:new Uint8Array([222,173]),contextModule:a});(0,e.expect)(n.input.mapper).toBeInstanceOf(d.EthersTransactionMapperService),(0,e.expect)(n.input.parser).toBeInstanceOf(p.TransactionParserService)}),(0,e.it)("should forward inspect to the device action",()=>{const n=(0,o.SignTransactionDeviceActionFactory)({derivationPath:"44'/60'/0'/0/0",transaction:new Uint8Array([222,173]),contextModule:a,inspect:!0});(0,e.expect)(n.inspect).toBe(!0)}),(0,e.it)("should forward loggerFactory so it is used instead of internalApi.loggerFactory",()=>{(0,o.SignTransactionDeviceActionFactory)({derivationPath:"44'/60'/0'/0/0",transaction:new Uint8Array([222,173]),contextModule:a,loggerFactory:c}),(0,e.expect)(e.vi.mocked(r.SignTransactionDeviceAction)).toHaveBeenCalledWith(e.expect.objectContaining({loggerFactory:c}))}),(0,e.it)("should return a device action usable as an XState actor",()=>{const n=(0,s.makeDeviceActionInternalApiMock)(),t=(0,o.SignTransactionDeviceActionFactory)({derivationPath:"44'/60'/0'/0/0",transaction:new Uint8Array([222,173]),contextModule:a}).makeStateMachine(n);(0,e.expect)(t).toBeDefined(),(0,e.expect)(typeof t.provide).toBe("function"),(0,e.expect)(t.config).toBeDefined()})});
2
+ //# sourceMappingURL=SignTransactionDeviceActionFactory.test.js.map
@@ -0,0 +1,7 @@
1
+ {
2
+ "version": 3,
3
+ "sources": ["../../../../src/api/app-binder/SignTransactionDeviceActionFactory.test.ts"],
4
+ "sourcesContent": ["import { type ContextModule } from \"@ledgerhq/context-module\";\nimport { type LoggerPublisherService } from \"@ledgerhq/device-management-kit\";\nimport { beforeEach, describe, expect, it, vi } from \"vitest\";\n\nimport { makeDeviceActionInternalApiMock } from \"@internal/app-binder/device-action/__test-utils__/makeInternalApi\";\nimport { SignTransactionDeviceAction } from \"@internal/app-binder/device-action/SignTransaction/SignTransactionDeviceAction\";\nimport { EthersTransactionMapperService } from \"@internal/transaction/service/mapper/EthersTransactionMapperService\";\nimport { TransactionParserService } from \"@internal/transaction/service/parser/TransactionParserService\";\n\nimport { SignTransactionDeviceActionFactory } from \"./SignTransactionDeviceActionFactory\";\n\nvi.mock(\"@ledgerhq/device-management-kit\", async (importOriginal) => {\n const original =\n await importOriginal<typeof import(\"@ledgerhq/device-management-kit\")>();\n return {\n ...original,\n OpenAppDeviceAction: vi.fn(() => ({\n makeStateMachine: vi.fn(),\n })),\n };\n});\n\nvi.mock(\n \"@internal/app-binder/device-action/SignTransaction/SignTransactionDeviceAction\",\n async (importOriginal) => {\n const actual =\n await importOriginal<\n typeof import(\"@internal/app-binder/device-action/SignTransaction/SignTransactionDeviceAction\")\n >();\n const MockSignTransactionDeviceAction = vi\n .fn()\n .mockImplementation(\n (\n ...args: ConstructorParameters<\n typeof actual.SignTransactionDeviceAction\n >\n ) => new actual.SignTransactionDeviceAction(...args),\n );\n MockSignTransactionDeviceAction.prototype =\n actual.SignTransactionDeviceAction.prototype;\n return {\n ...actual,\n SignTransactionDeviceAction: MockSignTransactionDeviceAction,\n };\n },\n);\n\nconst contextModuleStub = {\n getContexts: vi.fn(),\n} as unknown as ContextModule;\n\nconst mockLoggerFactory = vi.fn(\n (_tag: string) =>\n ({\n debug: vi.fn(),\n info: vi.fn(),\n warn: vi.fn(),\n error: vi.fn(),\n subscribers: [],\n }) as unknown as LoggerPublisherService,\n);\n\ndescribe(\"SignTransactionDeviceActionFactory\", () => {\n beforeEach(() => {\n vi.clearAllMocks();\n });\n\n it(\"should create a SignTransactionDeviceAction from the given arguments\", () => {\n const deviceAction = SignTransactionDeviceActionFactory({\n derivationPath: \"44'/60'/0'/0/0\",\n transaction: new Uint8Array([0xde, 0xad]),\n contextModule: contextModuleStub,\n });\n\n expect(deviceAction).toBeInstanceOf(SignTransactionDeviceAction);\n });\n\n it(\"should wire mapper and parser internally (not required from caller)\", () => {\n const deviceAction = SignTransactionDeviceActionFactory({\n derivationPath: \"44'/60'/0'/0/0\",\n transaction: new Uint8Array([0xde, 0xad]),\n contextModule: contextModuleStub,\n });\n\n expect(deviceAction.input.mapper).toBeInstanceOf(\n EthersTransactionMapperService,\n );\n expect(deviceAction.input.parser).toBeInstanceOf(TransactionParserService);\n });\n\n it(\"should forward inspect to the device action\", () => {\n const deviceAction = SignTransactionDeviceActionFactory({\n derivationPath: \"44'/60'/0'/0/0\",\n transaction: new Uint8Array([0xde, 0xad]),\n contextModule: contextModuleStub,\n inspect: true,\n });\n\n expect(deviceAction.inspect).toBe(true);\n });\n\n it(\"should forward loggerFactory so it is used instead of internalApi.loggerFactory\", () => {\n SignTransactionDeviceActionFactory({\n derivationPath: \"44'/60'/0'/0/0\",\n transaction: new Uint8Array([0xde, 0xad]),\n contextModule: contextModuleStub,\n loggerFactory: mockLoggerFactory,\n });\n\n expect(vi.mocked(SignTransactionDeviceAction)).toHaveBeenCalledWith(\n expect.objectContaining({ loggerFactory: mockLoggerFactory }),\n );\n });\n\n it(\"should return a device action usable as an XState actor\", () => {\n const internalApi = makeDeviceActionInternalApiMock();\n const deviceAction = SignTransactionDeviceActionFactory({\n derivationPath: \"44'/60'/0'/0/0\",\n transaction: new Uint8Array([0xde, 0xad]),\n contextModule: contextModuleStub,\n });\n\n const stateMachine = (\n deviceAction as SignTransactionDeviceAction\n ).makeStateMachine(internalApi);\n\n expect(stateMachine).toBeDefined();\n expect(typeof stateMachine.provide).toBe(\"function\");\n expect(stateMachine.config).toBeDefined();\n });\n});\n"],
5
+ "mappings": "aAEA,IAAAA,EAAqD,kBAErDC,EAAgD,6EAChDC,EAA4C,0FAC5CC,EAA+C,+EAC/CC,EAAyC,yEAEzCC,EAAmD,gDAEnD,KAAG,KAAK,kCAAmC,MAAOC,IAGzC,CACL,GAFA,MAAMA,EAAiE,EAGvE,oBAAqB,KAAG,GAAG,KAAO,CAChC,iBAAkB,KAAG,GAAG,CAC1B,EAAE,CACJ,EACD,EAED,KAAG,KACD,iFACA,MAAOA,GAAmB,CACxB,MAAMC,EACJ,MAAMD,EAEJ,EACEE,EAAkC,KACrC,GAAG,EACH,mBACC,IACKC,IAGA,IAAIF,EAAO,4BAA4B,GAAGE,CAAI,CACrD,EACF,OAAAD,EAAgC,UAC9BD,EAAO,4BAA4B,UAC9B,CACL,GAAGA,EACH,4BAA6BC,CAC/B,CACF,CACF,EAEA,MAAME,EAAoB,CACxB,YAAa,KAAG,GAAG,CACrB,EAEMC,EAAoB,KAAG,GAC1BC,IACE,CACC,MAAO,KAAG,GAAG,EACb,KAAM,KAAG,GAAG,EACZ,KAAM,KAAG,GAAG,EACZ,MAAO,KAAG,GAAG,EACb,YAAa,CAAC,CAChB,EACJ,KAEA,YAAS,qCAAsC,IAAM,IACnD,cAAW,IAAM,CACf,KAAG,cAAc,CACnB,CAAC,KAED,MAAG,uEAAwE,IAAM,CAC/E,MAAMC,KAAe,sCAAmC,CACtD,eAAgB,iBAChB,YAAa,IAAI,WAAW,CAAC,IAAM,GAAI,CAAC,EACxC,cAAeH,CACjB,CAAC,KAED,UAAOG,CAAY,EAAE,eAAe,6BAA2B,CACjE,CAAC,KAED,MAAG,sEAAuE,IAAM,CAC9E,MAAMA,KAAe,sCAAmC,CACtD,eAAgB,iBAChB,YAAa,IAAI,WAAW,CAAC,IAAM,GAAI,CAAC,EACxC,cAAeH,CACjB,CAAC,KAED,UAAOG,EAAa,MAAM,MAAM,EAAE,eAChC,gCACF,KACA,UAAOA,EAAa,MAAM,MAAM,EAAE,eAAe,0BAAwB,CAC3E,CAAC,KAED,MAAG,8CAA+C,IAAM,CACtD,MAAMA,KAAe,sCAAmC,CACtD,eAAgB,iBAChB,YAAa,IAAI,WAAW,CAAC,IAAM,GAAI,CAAC,EACxC,cAAeH,EACf,QAAS,EACX,CAAC,KAED,UAAOG,EAAa,OAAO,EAAE,KAAK,EAAI,CACxC,CAAC,KAED,MAAG,kFAAmF,IAAM,IAC1F,sCAAmC,CACjC,eAAgB,iBAChB,YAAa,IAAI,WAAW,CAAC,IAAM,GAAI,CAAC,EACxC,cAAeH,EACf,cAAeC,CACjB,CAAC,KAED,UAAO,KAAG,OAAO,6BAA2B,CAAC,EAAE,qBAC7C,SAAO,iBAAiB,CAAE,cAAeA,CAAkB,CAAC,CAC9D,CACF,CAAC,KAED,MAAG,0DAA2D,IAAM,CAClE,MAAMG,KAAc,mCAAgC,EAO9CC,KANe,sCAAmC,CACtD,eAAgB,iBAChB,YAAa,IAAI,WAAW,CAAC,IAAM,GAAI,CAAC,EACxC,cAAeL,CACjB,CAAC,EAIC,iBAAiBI,CAAW,KAE9B,UAAOC,CAAY,EAAE,YAAY,KACjC,UAAO,OAAOA,EAAa,OAAO,EAAE,KAAK,UAAU,KACnD,UAAOA,EAAa,MAAM,EAAE,YAAY,CAC1C,CAAC,CACH,CAAC",
6
+ "names": ["import_vitest", "import_makeInternalApi", "import_SignTransactionDeviceAction", "import_EthersTransactionMapperService", "import_TransactionParserService", "import_SignTransactionDeviceActionFactory", "importOriginal", "actual", "MockSignTransactionDeviceAction", "args", "contextModuleStub", "mockLoggerFactory", "_tag", "deviceAction", "internalApi", "stateMachine"]
7
+ }
@@ -0,0 +1,2 @@
1
+ "use strict";var r=Object.defineProperty;var d=Object.getOwnPropertyDescriptor;var y=Object.getOwnPropertyNames;var S=Object.prototype.hasOwnProperty;var g=(e,t)=>{for(var p in t)r(e,p,{get:t[p],enumerable:!0})},m=(e,t,p,i)=>{if(t&&typeof t=="object"||typeof t=="function")for(let a of y(t))!S.call(e,a)&&a!==p&&r(e,a,{get:()=>t[a],enumerable:!(i=d(t,a))||i.enumerable});return e};var l=e=>m(r({},"__esModule",{value:!0}),e);var A={};g(A,{SignTypedDataDeviceActionFactory:()=>u});module.exports=l(A);var n=require("../../internal/app-binder/device-action/SignTypedData/SignTypedDataDeviceAction"),o=require("../../internal/transaction/service/mapper/EthersTransactionMapperService"),D=require("../../internal/transaction/service/parser/TransactionParserService"),c=require("../../internal/typed-data/service/DefaultTypedDataParserService");const u=e=>new n.SignTypedDataDeviceAction({input:{derivationPath:e.derivationPath,data:e.data,contextModule:e.contextModule,skipOpenApp:e.skipOpenApp,parser:new c.DefaultTypedDataParserService,transactionMapper:new o.EthersTransactionMapperService,transactionParser:new D.TransactionParserService},inspect:e.inspect,loggerFactory:e.loggerFactory});0&&(module.exports={SignTypedDataDeviceActionFactory});
2
+ //# sourceMappingURL=SignTypedDataDeviceActionFactory.js.map
@@ -0,0 +1,7 @@
1
+ {
2
+ "version": 3,
3
+ "sources": ["../../../../src/api/app-binder/SignTypedDataDeviceActionFactory.ts"],
4
+ "sourcesContent": ["import { type ContextModule } from \"@ledgerhq/context-module\";\nimport {\n type LoggerPublisherService,\n type XStateDeviceAction,\n} from \"@ledgerhq/device-management-kit\";\n\nimport {\n type SignTypedDataDAError,\n type SignTypedDataDAInput,\n type SignTypedDataDAIntermediateValue,\n type SignTypedDataDAInternalState,\n type SignTypedDataDAOutput,\n} from \"@api/app-binder/SignTypedDataDeviceActionTypes\";\nimport { type TypedData } from \"@api/model/TypedData\";\nimport { SignTypedDataDeviceAction } from \"@internal/app-binder/device-action/SignTypedData/SignTypedDataDeviceAction\";\nimport { EthersTransactionMapperService } from \"@internal/transaction/service/mapper/EthersTransactionMapperService\";\nimport { TransactionParserService } from \"@internal/transaction/service/parser/TransactionParserService\";\nimport { DefaultTypedDataParserService } from \"@internal/typed-data/service/DefaultTypedDataParserService\";\n\nexport const SignTypedDataDeviceActionFactory = (args: {\n derivationPath: string;\n data: TypedData;\n contextModule: ContextModule;\n skipOpenApp: boolean;\n inspect?: boolean;\n loggerFactory?: (tag: string) => LoggerPublisherService;\n}): XStateDeviceAction<\n SignTypedDataDAOutput,\n SignTypedDataDAInput,\n SignTypedDataDAError,\n SignTypedDataDAIntermediateValue,\n SignTypedDataDAInternalState\n> =>\n new SignTypedDataDeviceAction({\n input: {\n derivationPath: args.derivationPath,\n data: args.data,\n contextModule: args.contextModule,\n skipOpenApp: args.skipOpenApp,\n parser: new DefaultTypedDataParserService(),\n transactionMapper: new EthersTransactionMapperService(),\n transactionParser: new TransactionParserService(),\n },\n inspect: args.inspect,\n loggerFactory: args.loggerFactory,\n });\n"],
5
+ "mappings": "yaAAA,IAAAA,EAAA,GAAAC,EAAAD,EAAA,sCAAAE,IAAA,eAAAC,EAAAH,GAcA,IAAAI,EAA0C,sFAC1CC,EAA+C,+EAC/CC,EAAyC,yEACzCC,EAA8C,sEAEvC,MAAML,EAAoCM,GAc/C,IAAI,4BAA0B,CAC5B,MAAO,CACL,eAAgBA,EAAK,eACrB,KAAMA,EAAK,KACX,cAAeA,EAAK,cACpB,YAAaA,EAAK,YAClB,OAAQ,IAAI,gCACZ,kBAAmB,IAAI,iCACvB,kBAAmB,IAAI,0BACzB,EACA,QAASA,EAAK,QACd,cAAeA,EAAK,aACtB,CAAC",
6
+ "names": ["SignTypedDataDeviceActionFactory_exports", "__export", "SignTypedDataDeviceActionFactory", "__toCommonJS", "import_SignTypedDataDeviceAction", "import_EthersTransactionMapperService", "import_TransactionParserService", "import_DefaultTypedDataParserService", "args"]
7
+ }
@@ -0,0 +1,2 @@
1
+ "use strict";var e=require("vitest"),s=require("../../internal/app-binder/device-action/__test-utils__/makeInternalApi"),c=require("../../internal/app-binder/device-action/SignTypedData/SignTypedDataDeviceAction"),d=require("../../internal/transaction/service/mapper/EthersTransactionMapperService"),m=require("../../internal/transaction/service/parser/TransactionParserService"),l=require("../../internal/typed-data/service/DefaultTypedDataParserService"),n=require("./SignTypedDataDeviceActionFactory");e.vi.mock("@ledgerhq/device-management-kit",async t=>({...await t(),OpenAppDeviceAction:e.vi.fn(()=>({makeStateMachine:e.vi.fn()}))}));e.vi.mock("@internal/app-binder/device-action/SignTypedData/SignTypedDataDeviceAction",async t=>{const o=await t(),a=e.vi.fn().mockImplementation((...f)=>new o.SignTypedDataDeviceAction(...f));return a.prototype=o.SignTypedDataDeviceAction.prototype,{...o,SignTypedDataDeviceAction:a}});const i={getContexts:e.vi.fn()},r={domain:{name:"Test"},types:{EIP712Domain:[{name:"name",type:"string"}]},message:{},primaryType:"EIP712Domain"},p=e.vi.fn(t=>({debug:e.vi.fn(),info:e.vi.fn(),warn:e.vi.fn(),error:e.vi.fn(),subscribers:[]}));(0,e.describe)("SignTypedDataDeviceActionFactory",()=>{(0,e.beforeEach)(()=>{e.vi.clearAllMocks()}),(0,e.it)("should create a SignTypedDataDeviceAction from the given arguments",()=>{const t=(0,n.SignTypedDataDeviceActionFactory)({derivationPath:"44'/60'/0'/0/0",data:r,contextModule:i,skipOpenApp:!1});(0,e.expect)(t).toBeInstanceOf(c.SignTypedDataDeviceAction)}),(0,e.it)("should wire parser, transactionMapper, and transactionParser internally (not required from caller)",()=>{const t=(0,n.SignTypedDataDeviceActionFactory)({derivationPath:"44'/60'/0'/0/0",data:r,contextModule:i,skipOpenApp:!1});(0,e.expect)(t.input.parser).toBeInstanceOf(l.DefaultTypedDataParserService),(0,e.expect)(t.input.transactionMapper).toBeInstanceOf(d.EthersTransactionMapperService),(0,e.expect)(t.input.transactionParser).toBeInstanceOf(m.TransactionParserService)}),(0,e.it)("should forward inspect to the device action",()=>{const t=(0,n.SignTypedDataDeviceActionFactory)({derivationPath:"44'/60'/0'/0/0",data:r,contextModule:i,skipOpenApp:!1,inspect:!0});(0,e.expect)(t.inspect).toBe(!0)}),(0,e.it)("should forward loggerFactory so it is used instead of internalApi.loggerFactory",()=>{(0,n.SignTypedDataDeviceActionFactory)({derivationPath:"44'/60'/0'/0/0",data:r,contextModule:i,skipOpenApp:!1,loggerFactory:p}),(0,e.expect)(e.vi.mocked(c.SignTypedDataDeviceAction)).toHaveBeenCalledWith(e.expect.objectContaining({loggerFactory:p}))}),(0,e.it)("should return a device action usable as an XState actor",()=>{const t=(0,s.makeDeviceActionInternalApiMock)(),a=(0,n.SignTypedDataDeviceActionFactory)({derivationPath:"44'/60'/0'/0/0",data:r,contextModule:i,skipOpenApp:!1}).makeStateMachine(t);(0,e.expect)(a).toBeDefined(),(0,e.expect)(typeof a.provide).toBe("function"),(0,e.expect)(a.config).toBeDefined()})});
2
+ //# sourceMappingURL=SignTypedDataDeviceActionFactory.test.js.map
@@ -0,0 +1,7 @@
1
+ {
2
+ "version": 3,
3
+ "sources": ["../../../../src/api/app-binder/SignTypedDataDeviceActionFactory.test.ts"],
4
+ "sourcesContent": ["import { type ContextModule } from \"@ledgerhq/context-module\";\nimport { type LoggerPublisherService } from \"@ledgerhq/device-management-kit\";\nimport { beforeEach, describe, expect, it, vi } from \"vitest\";\n\nimport { type TypedData } from \"@api/model/TypedData\";\nimport { makeDeviceActionInternalApiMock } from \"@internal/app-binder/device-action/__test-utils__/makeInternalApi\";\nimport { SignTypedDataDeviceAction } from \"@internal/app-binder/device-action/SignTypedData/SignTypedDataDeviceAction\";\nimport { EthersTransactionMapperService } from \"@internal/transaction/service/mapper/EthersTransactionMapperService\";\nimport { TransactionParserService } from \"@internal/transaction/service/parser/TransactionParserService\";\nimport { DefaultTypedDataParserService } from \"@internal/typed-data/service/DefaultTypedDataParserService\";\n\nimport { SignTypedDataDeviceActionFactory } from \"./SignTypedDataDeviceActionFactory\";\n\nvi.mock(\"@ledgerhq/device-management-kit\", async (importOriginal) => {\n const original =\n await importOriginal<typeof import(\"@ledgerhq/device-management-kit\")>();\n return {\n ...original,\n OpenAppDeviceAction: vi.fn(() => ({\n makeStateMachine: vi.fn(),\n })),\n };\n});\n\nvi.mock(\n \"@internal/app-binder/device-action/SignTypedData/SignTypedDataDeviceAction\",\n async (importOriginal) => {\n const actual =\n await importOriginal<\n typeof import(\"@internal/app-binder/device-action/SignTypedData/SignTypedDataDeviceAction\")\n >();\n const MockSignTypedDataDeviceAction = vi\n .fn()\n .mockImplementation(\n (\n ...args: ConstructorParameters<\n typeof actual.SignTypedDataDeviceAction\n >\n ) => new actual.SignTypedDataDeviceAction(...args),\n );\n MockSignTypedDataDeviceAction.prototype =\n actual.SignTypedDataDeviceAction.prototype;\n return {\n ...actual,\n SignTypedDataDeviceAction: MockSignTypedDataDeviceAction,\n };\n },\n);\n\nconst contextModuleStub = {\n getContexts: vi.fn(),\n} as unknown as ContextModule;\n\nconst typedDataStub: TypedData = {\n domain: { name: \"Test\" },\n types: { EIP712Domain: [{ name: \"name\", type: \"string\" }] },\n message: {},\n primaryType: \"EIP712Domain\",\n};\n\nconst mockLoggerFactory = vi.fn(\n (_tag: string) =>\n ({\n debug: vi.fn(),\n info: vi.fn(),\n warn: vi.fn(),\n error: vi.fn(),\n subscribers: [],\n }) as unknown as LoggerPublisherService,\n);\n\ndescribe(\"SignTypedDataDeviceActionFactory\", () => {\n beforeEach(() => {\n vi.clearAllMocks();\n });\n\n it(\"should create a SignTypedDataDeviceAction from the given arguments\", () => {\n const deviceAction = SignTypedDataDeviceActionFactory({\n derivationPath: \"44'/60'/0'/0/0\",\n data: typedDataStub,\n contextModule: contextModuleStub,\n skipOpenApp: false,\n });\n\n expect(deviceAction).toBeInstanceOf(SignTypedDataDeviceAction);\n });\n\n it(\"should wire parser, transactionMapper, and transactionParser internally (not required from caller)\", () => {\n const deviceAction = SignTypedDataDeviceActionFactory({\n derivationPath: \"44'/60'/0'/0/0\",\n data: typedDataStub,\n contextModule: contextModuleStub,\n skipOpenApp: false,\n });\n\n expect(deviceAction.input.parser).toBeInstanceOf(\n DefaultTypedDataParserService,\n );\n expect(deviceAction.input.transactionMapper).toBeInstanceOf(\n EthersTransactionMapperService,\n );\n expect(deviceAction.input.transactionParser).toBeInstanceOf(\n TransactionParserService,\n );\n });\n\n it(\"should forward inspect to the device action\", () => {\n const deviceAction = SignTypedDataDeviceActionFactory({\n derivationPath: \"44'/60'/0'/0/0\",\n data: typedDataStub,\n contextModule: contextModuleStub,\n skipOpenApp: false,\n inspect: true,\n });\n\n expect(deviceAction.inspect).toBe(true);\n });\n\n it(\"should forward loggerFactory so it is used instead of internalApi.loggerFactory\", () => {\n SignTypedDataDeviceActionFactory({\n derivationPath: \"44'/60'/0'/0/0\",\n data: typedDataStub,\n contextModule: contextModuleStub,\n skipOpenApp: false,\n loggerFactory: mockLoggerFactory,\n });\n\n expect(vi.mocked(SignTypedDataDeviceAction)).toHaveBeenCalledWith(\n expect.objectContaining({ loggerFactory: mockLoggerFactory }),\n );\n });\n\n it(\"should return a device action usable as an XState actor\", () => {\n const internalApi = makeDeviceActionInternalApiMock();\n const deviceAction = SignTypedDataDeviceActionFactory({\n derivationPath: \"44'/60'/0'/0/0\",\n data: typedDataStub,\n contextModule: contextModuleStub,\n skipOpenApp: false,\n });\n\n const stateMachine = (\n deviceAction as SignTypedDataDeviceAction\n ).makeStateMachine(internalApi);\n\n expect(stateMachine).toBeDefined();\n expect(typeof stateMachine.provide).toBe(\"function\");\n expect(stateMachine.config).toBeDefined();\n });\n});\n"],
5
+ "mappings": "aAEA,IAAAA,EAAqD,kBAGrDC,EAAgD,6EAChDC,EAA0C,sFAC1CC,EAA+C,+EAC/CC,EAAyC,yEACzCC,EAA8C,sEAE9CC,EAAiD,8CAEjD,KAAG,KAAK,kCAAmC,MAAOC,IAGzC,CACL,GAFA,MAAMA,EAAiE,EAGvE,oBAAqB,KAAG,GAAG,KAAO,CAChC,iBAAkB,KAAG,GAAG,CAC1B,EAAE,CACJ,EACD,EAED,KAAG,KACD,6EACA,MAAOA,GAAmB,CACxB,MAAMC,EACJ,MAAMD,EAEJ,EACEE,EAAgC,KACnC,GAAG,EACH,mBACC,IACKC,IAGA,IAAIF,EAAO,0BAA0B,GAAGE,CAAI,CACnD,EACF,OAAAD,EAA8B,UAC5BD,EAAO,0BAA0B,UAC5B,CACL,GAAGA,EACH,0BAA2BC,CAC7B,CACF,CACF,EAEA,MAAME,EAAoB,CACxB,YAAa,KAAG,GAAG,CACrB,EAEMC,EAA2B,CAC/B,OAAQ,CAAE,KAAM,MAAO,EACvB,MAAO,CAAE,aAAc,CAAC,CAAE,KAAM,OAAQ,KAAM,QAAS,CAAC,CAAE,EAC1D,QAAS,CAAC,EACV,YAAa,cACf,EAEMC,EAAoB,KAAG,GAC1BC,IACE,CACC,MAAO,KAAG,GAAG,EACb,KAAM,KAAG,GAAG,EACZ,KAAM,KAAG,GAAG,EACZ,MAAO,KAAG,GAAG,EACb,YAAa,CAAC,CAChB,EACJ,KAEA,YAAS,mCAAoC,IAAM,IACjD,cAAW,IAAM,CACf,KAAG,cAAc,CACnB,CAAC,KAED,MAAG,qEAAsE,IAAM,CAC7E,MAAMC,KAAe,oCAAiC,CACpD,eAAgB,iBAChB,KAAMH,EACN,cAAeD,EACf,YAAa,EACf,CAAC,KAED,UAAOI,CAAY,EAAE,eAAe,2BAAyB,CAC/D,CAAC,KAED,MAAG,qGAAsG,IAAM,CAC7G,MAAMA,KAAe,oCAAiC,CACpD,eAAgB,iBAChB,KAAMH,EACN,cAAeD,EACf,YAAa,EACf,CAAC,KAED,UAAOI,EAAa,MAAM,MAAM,EAAE,eAChC,+BACF,KACA,UAAOA,EAAa,MAAM,iBAAiB,EAAE,eAC3C,gCACF,KACA,UAAOA,EAAa,MAAM,iBAAiB,EAAE,eAC3C,0BACF,CACF,CAAC,KAED,MAAG,8CAA+C,IAAM,CACtD,MAAMA,KAAe,oCAAiC,CACpD,eAAgB,iBAChB,KAAMH,EACN,cAAeD,EACf,YAAa,GACb,QAAS,EACX,CAAC,KAED,UAAOI,EAAa,OAAO,EAAE,KAAK,EAAI,CACxC,CAAC,KAED,MAAG,kFAAmF,IAAM,IAC1F,oCAAiC,CAC/B,eAAgB,iBAChB,KAAMH,EACN,cAAeD,EACf,YAAa,GACb,cAAeE,CACjB,CAAC,KAED,UAAO,KAAG,OAAO,2BAAyB,CAAC,EAAE,qBAC3C,SAAO,iBAAiB,CAAE,cAAeA,CAAkB,CAAC,CAC9D,CACF,CAAC,KAED,MAAG,0DAA2D,IAAM,CAClE,MAAMG,KAAc,mCAAgC,EAQ9CC,KAPe,oCAAiC,CACpD,eAAgB,iBAChB,KAAML,EACN,cAAeD,EACf,YAAa,EACf,CAAC,EAIC,iBAAiBK,CAAW,KAE9B,UAAOC,CAAY,EAAE,YAAY,KACjC,UAAO,OAAOA,EAAa,OAAO,EAAE,KAAK,UAAU,KACnD,UAAOA,EAAa,MAAM,EAAE,YAAY,CAC1C,CAAC,CACH,CAAC",
6
+ "names": ["import_vitest", "import_makeInternalApi", "import_SignTypedDataDeviceAction", "import_EthersTransactionMapperService", "import_TransactionParserService", "import_DefaultTypedDataParserService", "import_SignTypedDataDeviceActionFactory", "importOriginal", "actual", "MockSignTypedDataDeviceAction", "args", "contextModuleStub", "typedDataStub", "mockLoggerFactory", "_tag", "deviceAction", "internalApi", "stateMachine"]
7
+ }
@@ -1,2 +1,2 @@
1
- "use strict";var i=Object.defineProperty;var s=Object.getOwnPropertyDescriptor;var u=Object.getOwnPropertyNames;var d=Object.prototype.hasOwnProperty;var T=(n,r)=>{for(var a in r)i(n,a,{get:r[a],enumerable:!0})},p=(n,r,a,D)=>{if(r&&typeof r=="object"||typeof r=="function")for(let o of u(r))!d.call(n,o)&&o!==a&&i(n,o,{get:()=>r[o],enumerable:!(D=s(r,o))||D.enumerable});return n},t=(n,r,a)=>(p(n,r,"default"),a&&p(a,r,"default"));var m=n=>p(i({},"__esModule",{value:!0}),n);var e={};T(e,{GetAddressDeviceActionFactory:()=>y.GetAddressDeviceActionFactory,SignPersonalMessageDeviceActionFactory:()=>A.SignPersonalMessageDeviceActionFactory,SignTransactionDAStep:()=>g.SignTransactionDAStep,SignTypedDataDAStateStep:()=>S.SignTypedDataDAStateStep});module.exports=m(e);var y=require("./app-binder/GetAddressDeviceActionFactory"),A=require("./app-binder/SignPersonalMessageDeviceActionFactory"),g=require("./app-binder/SignTransactionDeviceActionTypes"),S=require("./app-binder/SignTypedDataDeviceActionTypes");t(e,require("./model/Address"),module.exports);t(e,require("./model/AddressOptions"),module.exports);t(e,require("./model/Signature"),module.exports);t(e,require("./model/TransactionOptions"),module.exports);t(e,require("./model/TransactionType"),module.exports);t(e,require("./model/TypedData"),module.exports);t(e,require("./SignerEth"),module.exports);t(e,require("./SignerEthBuilder"),module.exports);0&&(module.exports={GetAddressDeviceActionFactory,SignPersonalMessageDeviceActionFactory,SignTransactionDAStep,SignTypedDataDAStateStep,...require("./model/Address"),...require("./model/AddressOptions"),...require("./model/Signature"),...require("./model/TransactionOptions"),...require("./model/TransactionType"),...require("./model/TypedData"),...require("./SignerEth"),...require("./SignerEthBuilder")});
1
+ "use strict";var i=Object.defineProperty;var d=Object.getOwnPropertyDescriptor;var m=Object.getOwnPropertyNames;var T=Object.prototype.hasOwnProperty;var c=(n,r)=>{for(var o in r)i(n,o,{get:r[o],enumerable:!0})},p=(n,r,o,D)=>{if(r&&typeof r=="object"||typeof r=="function")for(let a of m(r))!T.call(n,a)&&a!==o&&i(n,a,{get:()=>r[a],enumerable:!(D=d(r,a))||D.enumerable});return n},t=(n,r,o)=>(p(n,r,"default"),o&&p(o,r,"default"));var f=n=>p(i({},"__esModule",{value:!0}),n);var e={};c(e,{GetAddressDeviceActionFactory:()=>y.GetAddressDeviceActionFactory,SignPersonalMessageDeviceActionFactory:()=>A.SignPersonalMessageDeviceActionFactory,SignTransactionDAStep:()=>S.SignTransactionDAStep,SignTransactionDeviceActionFactory:()=>g.SignTransactionDeviceActionFactory,SignTypedDataDAStateStep:()=>u.SignTypedDataDAStateStep,SignTypedDataDeviceActionFactory:()=>s.SignTypedDataDeviceActionFactory});module.exports=f(e);var y=require("./app-binder/GetAddressDeviceActionFactory"),A=require("./app-binder/SignPersonalMessageDeviceActionFactory"),g=require("./app-binder/SignTransactionDeviceActionFactory"),S=require("./app-binder/SignTransactionDeviceActionTypes"),s=require("./app-binder/SignTypedDataDeviceActionFactory"),u=require("./app-binder/SignTypedDataDeviceActionTypes");t(e,require("./model/Address"),module.exports);t(e,require("./model/AddressOptions"),module.exports);t(e,require("./model/EvmAddressBook"),module.exports);t(e,require("./model/Signature"),module.exports);t(e,require("./model/TransactionOptions"),module.exports);t(e,require("./model/TransactionType"),module.exports);t(e,require("./model/TypedData"),module.exports);t(e,require("./SignerEth"),module.exports);t(e,require("./SignerEthBuilder"),module.exports);0&&(module.exports={GetAddressDeviceActionFactory,SignPersonalMessageDeviceActionFactory,SignTransactionDAStep,SignTransactionDeviceActionFactory,SignTypedDataDAStateStep,SignTypedDataDeviceActionFactory,...require("./model/Address"),...require("./model/AddressOptions"),...require("./model/EvmAddressBook"),...require("./model/Signature"),...require("./model/TransactionOptions"),...require("./model/TransactionType"),...require("./model/TypedData"),...require("./SignerEth"),...require("./SignerEthBuilder")});
2
2
  //# sourceMappingURL=index.js.map
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "version": 3,
3
3
  "sources": ["../../../src/api/index.ts"],
4
- "sourcesContent": ["export { GetAddressDeviceActionFactory } from \"@api/app-binder/GetAddressDeviceActionFactory\";\nexport {\n type GetAddressDAError,\n type GetAddressDAIntermediateValue,\n type GetAddressDAOutput,\n type GetAddressDAReturnType,\n} from \"@api/app-binder/GetAddressDeviceActionTypes\";\nexport {\n type SignDelegationAuthorizationDAError,\n type SignDelegationAuthorizationDAInput,\n type SignDelegationAuthorizationDAIntermediateValue,\n type SignDelegationAuthorizationDAOutput,\n type SignDelegationAuthorizationDAReturnType,\n type SignDelegationAuthorizationDAState,\n} from \"@api/app-binder/SignDelegationAuthorizationTypes\";\nexport { SignPersonalMessageDeviceActionFactory } from \"@api/app-binder/SignPersonalMessageDeviceActionFactory\";\nexport {\n type SignPersonalMessageDAError,\n type SignPersonalMessageDAIntermediateValue,\n type SignPersonalMessageDAOutput,\n type SignPersonalMessageDAReturnType,\n} from \"@api/app-binder/SignPersonalMessageDeviceActionTypes\";\nexport {\n type SignTransactionDAError,\n type SignTransactionDAInput,\n type SignTransactionDAIntermediateValue,\n type SignTransactionDAInternalState,\n type SignTransactionDAOutput,\n type SignTransactionDAReturnType,\n type SignTransactionDAState,\n SignTransactionDAStep,\n} from \"@api/app-binder/SignTransactionDeviceActionTypes\";\nexport {\n type SignTypedDataDAError,\n type SignTypedDataDAInput,\n type SignTypedDataDAIntermediateValue,\n type SignTypedDataDAInternalState,\n type SignTypedDataDAOutput,\n type SignTypedDataDAReturnType,\n type SignTypedDataDAState,\n SignTypedDataDAStateStep,\n} from \"@api/app-binder/SignTypedDataDeviceActionTypes\";\nexport * from \"@api/model/Address\";\nexport * from \"@api/model/AddressOptions\";\nexport * from \"@api/model/Signature\";\nexport * from \"@api/model/TransactionOptions\";\nexport * from \"@api/model/TransactionType\";\nexport * from \"@api/model/TypedData\";\nexport * from \"@api/SignerEth\";\nexport * from \"@api/SignerEthBuilder\";\n"],
5
- "mappings": "2dAAA,IAAAA,EAAA,GAAAC,EAAAD,EAAA,kRAAAE,EAAAF,GAAA,IAAAG,EAA8C,yDAe9CC,EAAuD,kEAOvDC,EASO,4DACPC,EASO,0DACPC,EAAAP,EAAc,8BA1Cd,gBA2CAO,EAAAP,EAAc,qCA3Cd,gBA4CAO,EAAAP,EAAc,gCA5Cd,gBA6CAO,EAAAP,EAAc,yCA7Cd,gBA8CAO,EAAAP,EAAc,sCA9Cd,gBA+CAO,EAAAP,EAAc,gCA/Cd,gBAgDAO,EAAAP,EAAc,0BAhDd,gBAiDAO,EAAAP,EAAc,iCAjDd",
6
- "names": ["api_exports", "__export", "__toCommonJS", "import_GetAddressDeviceActionFactory", "import_SignPersonalMessageDeviceActionFactory", "import_SignTransactionDeviceActionTypes", "import_SignTypedDataDeviceActionTypes", "__reExport"]
4
+ "sourcesContent": ["export { GetAddressDeviceActionFactory } from \"@api/app-binder/GetAddressDeviceActionFactory\";\nexport {\n type GetAddressDAError,\n type GetAddressDAIntermediateValue,\n type GetAddressDAOutput,\n type GetAddressDAReturnType,\n} from \"@api/app-binder/GetAddressDeviceActionTypes\";\nexport {\n type SignDelegationAuthorizationDAError,\n type SignDelegationAuthorizationDAInput,\n type SignDelegationAuthorizationDAIntermediateValue,\n type SignDelegationAuthorizationDAOutput,\n type SignDelegationAuthorizationDAReturnType,\n type SignDelegationAuthorizationDAState,\n} from \"@api/app-binder/SignDelegationAuthorizationTypes\";\nexport { SignPersonalMessageDeviceActionFactory } from \"@api/app-binder/SignPersonalMessageDeviceActionFactory\";\nexport {\n type SignPersonalMessageDAError,\n type SignPersonalMessageDAIntermediateValue,\n type SignPersonalMessageDAOutput,\n type SignPersonalMessageDAReturnType,\n} from \"@api/app-binder/SignPersonalMessageDeviceActionTypes\";\nexport { SignTransactionDeviceActionFactory } from \"@api/app-binder/SignTransactionDeviceActionFactory\";\nexport {\n type SignTransactionDAError,\n type SignTransactionDAInput,\n type SignTransactionDAIntermediateValue,\n type SignTransactionDAInternalState,\n type SignTransactionDAOutput,\n type SignTransactionDAReturnType,\n type SignTransactionDAState,\n SignTransactionDAStep,\n} from \"@api/app-binder/SignTransactionDeviceActionTypes\";\nexport { SignTypedDataDeviceActionFactory } from \"@api/app-binder/SignTypedDataDeviceActionFactory\";\nexport {\n type SignTypedDataDAError,\n type SignTypedDataDAInput,\n type SignTypedDataDAIntermediateValue,\n type SignTypedDataDAInternalState,\n type SignTypedDataDAOutput,\n type SignTypedDataDAReturnType,\n type SignTypedDataDAState,\n SignTypedDataDAStateStep,\n} from \"@api/app-binder/SignTypedDataDeviceActionTypes\";\nexport * from \"@api/model/Address\";\nexport * from \"@api/model/AddressOptions\";\nexport * from \"@api/model/EvmAddressBook\";\nexport * from \"@api/model/Signature\";\nexport * from \"@api/model/TransactionOptions\";\nexport * from \"@api/model/TransactionType\";\nexport * from \"@api/model/TypedData\";\nexport * from \"@api/SignerEth\";\nexport * from \"@api/SignerEthBuilder\";\n"],
5
+ "mappings": "2dAAA,IAAAA,EAAA,GAAAC,EAAAD,EAAA,saAAAE,EAAAF,GAAA,IAAAG,EAA8C,yDAe9CC,EAAuD,kEAOvDC,EAAmD,8DACnDC,EASO,4DACPC,EAAiD,4DACjDC,EASO,0DACPC,EAAAT,EAAc,8BA5Cd,gBA6CAS,EAAAT,EAAc,qCA7Cd,gBA8CAS,EAAAT,EAAc,qCA9Cd,gBA+CAS,EAAAT,EAAc,gCA/Cd,gBAgDAS,EAAAT,EAAc,yCAhDd,gBAiDAS,EAAAT,EAAc,sCAjDd,gBAkDAS,EAAAT,EAAc,gCAlDd,gBAmDAS,EAAAT,EAAc,0BAnDd,gBAoDAS,EAAAT,EAAc,iCApDd",
6
+ "names": ["api_exports", "__export", "__toCommonJS", "import_GetAddressDeviceActionFactory", "import_SignPersonalMessageDeviceActionFactory", "import_SignTransactionDeviceActionFactory", "import_SignTransactionDeviceActionTypes", "import_SignTypedDataDeviceActionFactory", "import_SignTypedDataDeviceActionTypes", "__reExport"]
7
7
  }
@@ -0,0 +1,2 @@
1
+ "use strict";var o=Object.defineProperty;var c=Object.getOwnPropertyDescriptor;var s=Object.getOwnPropertyNames;var d=Object.prototype.hasOwnProperty;var i=(r,t,a,n)=>{if(t&&typeof t=="object"||typeof t=="function")for(let e of s(t))!d.call(r,e)&&e!==a&&o(r,e,{get:()=>t[e],enumerable:!(n=c(t,e))||n.enumerable});return r};var p=r=>i(o({},"__esModule",{value:!0}),r);var m={};module.exports=p(m);
2
+ //# sourceMappingURL=EvmAddressBook.js.map
@@ -0,0 +1,7 @@
1
+ {
2
+ "version": 3,
3
+ "sources": ["../../../../src/api/model/EvmAddressBook.ts"],
4
+ "sourcesContent": ["/**\n * A complete snapshot of the EVM-compatible part of the address book.\n *\n * The signer never mutates this snapshot and never persists it: owning,\n * updating and persisting the address book remains the host's responsibility.\n *\n * Only EVM-family contacts and accounts belong here. The host filters by\n * blockchain family while building the snapshot, so the signer's in-flow\n * matching never needs a family discriminator and the models below do not\n * carry one.\n */\nexport type EvmAddressBook = {\n contactGroups: EvmContactGroup[];\n ledgerAccounts: EvmLedgerAccountContact[];\n};\n\n/**\n * A named contact and the external addresses registered under it.\n *\n * The group carries the name-level proof material that every one of its\n * addresses reuses, so matching an address always yields its group without a\n * lookup.\n */\nexport type EvmContactGroup = {\n contactName: string;\n groupHandle: Uint8Array;\n hmacProof: Uint8Array;\n externalAddresses: EvmExternalAddress[];\n};\n\n/**\n * An external address registered under a contact group, for one chain.\n *\n * The derivation path used at registration time is deliberately absent: the\n * signer never needs it to provide the contact to the device.\n */\nexport type EvmExternalAddress = {\n scope: string;\n address: `0x${string}`;\n chainId: bigint;\n hmacRest: Uint8Array;\n};\n\n/**\n * A named Ledger account contact, identified by its derivation path and chain\n * rather than by an address string.\n */\nexport type EvmLedgerAccountContact = {\n accountName: string;\n derivationPath: string;\n chainId: bigint;\n hmacProof: Uint8Array;\n};\n"],
5
+ "mappings": "+WAAA,IAAAA,EAAA,kBAAAC,EAAAD",
6
+ "names": ["EvmAddressBook_exports", "__toCommonJS"]
7
+ }
@@ -1,2 +1,2 @@
1
- "use strict";var n=Object.defineProperty;var f=Object.getOwnPropertyDescriptor;var u=Object.getOwnPropertyNames;var A=Object.prototype.hasOwnProperty;var D=(s,e)=>{for(var t in e)n(s,t,{get:e[t],enumerable:!0})},T=(s,e,t,r)=>{if(e&&typeof e=="object"||typeof e=="function")for(let i of u(e))!A.call(s,i)&&i!==t&&n(s,i,{get:()=>e[i],enumerable:!(r=f(e,i))||r.enumerable});return s};var S=s=>T(n({},"__esModule",{value:!0}),s);var C={};D(C,{DefaultSignerEth:()=>c});module.exports=S(C);var o=require("./address/di/addressTypes"),a=require("./di"),p=require("./message/di/messageTypes"),m=require("./safe/di/safeTypes"),g=require("./transaction/di/transactionTypes"),y=require("./typed-data/di/typedDataTypes"),d=require("./eip7702/di/eip7702Types");class c{_container;constructor({dmk:e,sessionId:t,contextModule:r}){this._container=(0,a.makeContainer)({dmk:e,sessionId:t,contextModule:r})}signTransaction(e,t,r){return this._container.get(g.transactionTypes.SignTransactionUseCase).execute(e,t,r)}signMessage(e,t,r){return this._container.get(p.messageTypes.SignMessageUseCase).execute(e,t,r)}signTypedData(e,t,r){return this._container.get(y.typedDataTypes.SignTypedDataUseCase).execute(e,t,r)}getAddress(e,t){return this._container.get(o.addressTypes.GetAddressUseCase).execute(e,t)}verifySafeAddress(e,t){return this._container.get(m.safeTypes.VerifySafeAddressUseCase).execute(e,t)}signDelegationAuthorization(e,t,r,i){return this._container.get(d.eip7702Types.SignDelegationAuthorizationUseCase).execute(e,i,r,t)}}0&&(module.exports={DefaultSignerEth});
1
+ "use strict";var n=Object.defineProperty;var f=Object.getOwnPropertyDescriptor;var u=Object.getOwnPropertyNames;var A=Object.prototype.hasOwnProperty;var D=(i,e)=>{for(var t in e)n(i,t,{get:e[t],enumerable:!0})},T=(i,e,t,r)=>{if(e&&typeof e=="object"||typeof e=="function")for(let s of u(e))!A.call(i,s)&&s!==t&&n(i,s,{get:()=>e[s],enumerable:!(r=f(e,s))||r.enumerable});return i};var S=i=>T(n({},"__esModule",{value:!0}),i);var C={};D(C,{DefaultSignerEth:()=>c});module.exports=S(C);var o=require("./address/di/addressTypes"),a=require("./di"),p=require("./message/di/messageTypes"),m=require("./safe/di/safeTypes"),g=require("./transaction/di/transactionTypes"),y=require("./typed-data/di/typedDataTypes"),d=require("./eip7702/di/eip7702Types");class c{_container;constructor({dmk:e,sessionId:t,contextModule:r,addressBook:s}){this._container=(0,a.makeContainer)({dmk:e,sessionId:t,contextModule:r,addressBook:s})}signTransaction(e,t,r){return this._container.get(g.transactionTypes.SignTransactionUseCase).execute(e,t,r)}signMessage(e,t,r){return this._container.get(p.messageTypes.SignMessageUseCase).execute(e,t,r)}signTypedData(e,t,r){return this._container.get(y.typedDataTypes.SignTypedDataUseCase).execute(e,t,r)}getAddress(e,t){return this._container.get(o.addressTypes.GetAddressUseCase).execute(e,t)}verifySafeAddress(e,t){return this._container.get(m.safeTypes.VerifySafeAddressUseCase).execute(e,t)}signDelegationAuthorization(e,t,r,s){return this._container.get(d.eip7702Types.SignDelegationAuthorizationUseCase).execute(e,s,r,t)}}0&&(module.exports={DefaultSignerEth});
2
2
  //# sourceMappingURL=DefaultSignerEth.js.map
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "version": 3,
3
3
  "sources": ["../../../src/internal/DefaultSignerEth.ts"],
4
- "sourcesContent": ["import { type ContextModule } from \"@ledgerhq/context-module\";\nimport {\n type DeviceManagementKit,\n type DeviceSessionId,\n} from \"@ledgerhq/device-management-kit\";\nimport { type Container } from \"inversify\";\n\nimport { type GetAddressDAReturnType } from \"@api/app-binder/GetAddressDeviceActionTypes\";\nimport { type SignDelegationAuthorizationDAReturnType } from \"@api/app-binder/SignDelegationAuthorizationTypes\";\nimport { type SignPersonalMessageDAReturnType } from \"@api/app-binder/SignPersonalMessageDeviceActionTypes\";\nimport { type SignTransactionDAReturnType } from \"@api/app-binder/SignTransactionDeviceActionTypes\";\nimport { type SignTypedDataDAReturnType } from \"@api/app-binder/SignTypedDataDeviceActionTypes\";\nimport { type VerifySafeAddressDAReturnType } from \"@api/app-binder/VerifySafeAddressDeviceActionTypes\";\nimport { type AddressOptions } from \"@api/model/AddressOptions\";\nimport { type MessageOptions } from \"@api/model/MessageOptions\";\nimport { type SafeAddressOptions } from \"@api/model/SafeAddressOptions\";\nimport { type TransactionOptions } from \"@api/model/TransactionOptions\";\nimport { type TypedData } from \"@api/model/TypedData\";\nimport { type TypedDataOptions } from \"@api/model/TypedDataOptions\";\nimport { type SignerEth } from \"@api/SignerEth\";\nimport { addressTypes } from \"@internal/address/di/addressTypes\";\nimport { type GetAddressUseCase } from \"@internal/address/use-case/GetAddressUseCase\";\nimport { makeContainer } from \"@internal/di\";\nimport { messageTypes } from \"@internal/message/di/messageTypes\";\nimport { type SignMessageUseCase } from \"@internal/message/use-case/SignMessageUseCase\";\nimport { safeTypes } from \"@internal/safe/di/safeTypes\";\nimport { type VerifySafeAddressUseCase } from \"@internal/safe/use-case/VerifySafeAddressUseCase\";\nimport { transactionTypes } from \"@internal/transaction/di/transactionTypes\";\nimport { type SignTransactionUseCase } from \"@internal/transaction/use-case/SignTransactionUseCase\";\nimport { typedDataTypes } from \"@internal/typed-data/di/typedDataTypes\";\nimport { type SignTypedDataUseCase } from \"@internal/typed-data/use-case/SignTypedDataUseCase\";\n\nimport { eip7702Types } from \"./eip7702/di/eip7702Types\";\nimport { type SignDelegationAuthorizationUseCase } from \"./eip7702/use-case/SignDelegationAuthorizationUseCase\";\n\ntype DefaultSignerConstructorArgs = {\n dmk: DeviceManagementKit;\n sessionId: DeviceSessionId;\n contextModule: ContextModule;\n};\n\nexport class DefaultSignerEth implements SignerEth {\n private _container: Container;\n\n constructor({ dmk, sessionId, contextModule }: DefaultSignerConstructorArgs) {\n this._container = makeContainer({ dmk, sessionId, contextModule });\n }\n\n signTransaction(\n derivationPath: string,\n transaction: Uint8Array,\n options?: TransactionOptions,\n ): SignTransactionDAReturnType {\n return this._container\n .get<SignTransactionUseCase>(transactionTypes.SignTransactionUseCase)\n .execute(derivationPath, transaction, options);\n }\n\n signMessage(\n derivationPath: string,\n message: string | Uint8Array,\n options?: MessageOptions,\n ): SignPersonalMessageDAReturnType {\n return this._container\n .get<SignMessageUseCase>(messageTypes.SignMessageUseCase)\n .execute(derivationPath, message, options);\n }\n\n signTypedData(\n derivationPath: string,\n typedData: TypedData,\n options?: TypedDataOptions,\n ): SignTypedDataDAReturnType {\n return this._container\n .get<SignTypedDataUseCase>(typedDataTypes.SignTypedDataUseCase)\n .execute(derivationPath, typedData, options);\n }\n\n getAddress(\n derivationPath: string,\n options?: AddressOptions,\n ): GetAddressDAReturnType {\n return this._container\n .get<GetAddressUseCase>(addressTypes.GetAddressUseCase)\n .execute(derivationPath, options);\n }\n\n verifySafeAddress(\n safeContractAddress: string,\n options?: SafeAddressOptions,\n ): VerifySafeAddressDAReturnType {\n return this._container\n .get<VerifySafeAddressUseCase>(safeTypes.VerifySafeAddressUseCase)\n .execute(safeContractAddress, options);\n }\n\n signDelegationAuthorization(\n derivationPath: string,\n chainId: number,\n contractAddress: string,\n nonce: number,\n ): SignDelegationAuthorizationDAReturnType {\n return this._container\n .get<SignDelegationAuthorizationUseCase>(\n eip7702Types.SignDelegationAuthorizationUseCase,\n )\n .execute(derivationPath, nonce, contractAddress, chainId);\n }\n}\n"],
5
- "mappings": "yaAAA,IAAAA,EAAA,GAAAC,EAAAD,EAAA,sBAAAE,IAAA,eAAAC,EAAAH,GAoBA,IAAAI,EAA6B,6CAE7BC,EAA8B,wBAC9BC,EAA6B,6CAE7BC,EAA0B,uCAE1BC,EAAiC,qDAEjCC,EAA+B,kDAG/BC,EAA6B,qCAStB,MAAMR,CAAsC,CACzC,WAER,YAAY,CAAE,IAAAS,EAAK,UAAAC,EAAW,cAAAC,CAAc,EAAiC,CAC3E,KAAK,cAAa,iBAAc,CAAE,IAAAF,EAAK,UAAAC,EAAW,cAAAC,CAAc,CAAC,CACnE,CAEA,gBACEC,EACAC,EACAC,EAC6B,CAC7B,OAAO,KAAK,WACT,IAA4B,mBAAiB,sBAAsB,EACnE,QAAQF,EAAgBC,EAAaC,CAAO,CACjD,CAEA,YACEF,EACAG,EACAD,EACiC,CACjC,OAAO,KAAK,WACT,IAAwB,eAAa,kBAAkB,EACvD,QAAQF,EAAgBG,EAASD,CAAO,CAC7C,CAEA,cACEF,EACAI,EACAF,EAC2B,CAC3B,OAAO,KAAK,WACT,IAA0B,iBAAe,oBAAoB,EAC7D,QAAQF,EAAgBI,EAAWF,CAAO,CAC/C,CAEA,WACEF,EACAE,EACwB,CACxB,OAAO,KAAK,WACT,IAAuB,eAAa,iBAAiB,EACrD,QAAQF,EAAgBE,CAAO,CACpC,CAEA,kBACEG,EACAH,EAC+B,CAC/B,OAAO,KAAK,WACT,IAA8B,YAAU,wBAAwB,EAChE,QAAQG,EAAqBH,CAAO,CACzC,CAEA,4BACEF,EACAM,EACAC,EACAC,EACyC,CACzC,OAAO,KAAK,WACT,IACC,eAAa,kCACf,EACC,QAAQR,EAAgBQ,EAAOD,EAAiBD,CAAO,CAC5D,CACF",
6
- "names": ["DefaultSignerEth_exports", "__export", "DefaultSignerEth", "__toCommonJS", "import_addressTypes", "import_di", "import_messageTypes", "import_safeTypes", "import_transactionTypes", "import_typedDataTypes", "import_eip7702Types", "dmk", "sessionId", "contextModule", "derivationPath", "transaction", "options", "message", "typedData", "safeContractAddress", "chainId", "contractAddress", "nonce"]
4
+ "sourcesContent": ["import { type ContextModule } from \"@ledgerhq/context-module\";\nimport {\n type DeviceManagementKit,\n type DeviceSessionId,\n} from \"@ledgerhq/device-management-kit\";\nimport { type Container } from \"inversify\";\n\nimport { type GetAddressDAReturnType } from \"@api/app-binder/GetAddressDeviceActionTypes\";\nimport { type SignDelegationAuthorizationDAReturnType } from \"@api/app-binder/SignDelegationAuthorizationTypes\";\nimport { type SignPersonalMessageDAReturnType } from \"@api/app-binder/SignPersonalMessageDeviceActionTypes\";\nimport { type SignTransactionDAReturnType } from \"@api/app-binder/SignTransactionDeviceActionTypes\";\nimport { type SignTypedDataDAReturnType } from \"@api/app-binder/SignTypedDataDeviceActionTypes\";\nimport { type VerifySafeAddressDAReturnType } from \"@api/app-binder/VerifySafeAddressDeviceActionTypes\";\nimport { type AddressOptions } from \"@api/model/AddressOptions\";\nimport { type EvmAddressBook } from \"@api/model/EvmAddressBook\";\nimport { type MessageOptions } from \"@api/model/MessageOptions\";\nimport { type SafeAddressOptions } from \"@api/model/SafeAddressOptions\";\nimport { type TransactionOptions } from \"@api/model/TransactionOptions\";\nimport { type TypedData } from \"@api/model/TypedData\";\nimport { type TypedDataOptions } from \"@api/model/TypedDataOptions\";\nimport { type SignerEth } from \"@api/SignerEth\";\nimport { addressTypes } from \"@internal/address/di/addressTypes\";\nimport { type GetAddressUseCase } from \"@internal/address/use-case/GetAddressUseCase\";\nimport { makeContainer } from \"@internal/di\";\nimport { messageTypes } from \"@internal/message/di/messageTypes\";\nimport { type SignMessageUseCase } from \"@internal/message/use-case/SignMessageUseCase\";\nimport { safeTypes } from \"@internal/safe/di/safeTypes\";\nimport { type VerifySafeAddressUseCase } from \"@internal/safe/use-case/VerifySafeAddressUseCase\";\nimport { transactionTypes } from \"@internal/transaction/di/transactionTypes\";\nimport { type SignTransactionUseCase } from \"@internal/transaction/use-case/SignTransactionUseCase\";\nimport { typedDataTypes } from \"@internal/typed-data/di/typedDataTypes\";\nimport { type SignTypedDataUseCase } from \"@internal/typed-data/use-case/SignTypedDataUseCase\";\n\nimport { eip7702Types } from \"./eip7702/di/eip7702Types\";\nimport { type SignDelegationAuthorizationUseCase } from \"./eip7702/use-case/SignDelegationAuthorizationUseCase\";\n\ntype DefaultSignerConstructorArgs = {\n dmk: DeviceManagementKit;\n sessionId: DeviceSessionId;\n contextModule: ContextModule;\n addressBook?: EvmAddressBook;\n};\n\nexport class DefaultSignerEth implements SignerEth {\n private _container: Container;\n\n constructor({\n dmk,\n sessionId,\n contextModule,\n addressBook,\n }: DefaultSignerConstructorArgs) {\n this._container = makeContainer({\n dmk,\n sessionId,\n contextModule,\n addressBook,\n });\n }\n\n signTransaction(\n derivationPath: string,\n transaction: Uint8Array,\n options?: TransactionOptions,\n ): SignTransactionDAReturnType {\n return this._container\n .get<SignTransactionUseCase>(transactionTypes.SignTransactionUseCase)\n .execute(derivationPath, transaction, options);\n }\n\n signMessage(\n derivationPath: string,\n message: string | Uint8Array,\n options?: MessageOptions,\n ): SignPersonalMessageDAReturnType {\n return this._container\n .get<SignMessageUseCase>(messageTypes.SignMessageUseCase)\n .execute(derivationPath, message, options);\n }\n\n signTypedData(\n derivationPath: string,\n typedData: TypedData,\n options?: TypedDataOptions,\n ): SignTypedDataDAReturnType {\n return this._container\n .get<SignTypedDataUseCase>(typedDataTypes.SignTypedDataUseCase)\n .execute(derivationPath, typedData, options);\n }\n\n getAddress(\n derivationPath: string,\n options?: AddressOptions,\n ): GetAddressDAReturnType {\n return this._container\n .get<GetAddressUseCase>(addressTypes.GetAddressUseCase)\n .execute(derivationPath, options);\n }\n\n verifySafeAddress(\n safeContractAddress: string,\n options?: SafeAddressOptions,\n ): VerifySafeAddressDAReturnType {\n return this._container\n .get<VerifySafeAddressUseCase>(safeTypes.VerifySafeAddressUseCase)\n .execute(safeContractAddress, options);\n }\n\n signDelegationAuthorization(\n derivationPath: string,\n chainId: number,\n contractAddress: string,\n nonce: number,\n ): SignDelegationAuthorizationDAReturnType {\n return this._container\n .get<SignDelegationAuthorizationUseCase>(\n eip7702Types.SignDelegationAuthorizationUseCase,\n )\n .execute(derivationPath, nonce, contractAddress, chainId);\n }\n}\n"],
5
+ "mappings": "yaAAA,IAAAA,EAAA,GAAAC,EAAAD,EAAA,sBAAAE,IAAA,eAAAC,EAAAH,GAqBA,IAAAI,EAA6B,6CAE7BC,EAA8B,wBAC9BC,EAA6B,6CAE7BC,EAA0B,uCAE1BC,EAAiC,qDAEjCC,EAA+B,kDAG/BC,EAA6B,qCAUtB,MAAMR,CAAsC,CACzC,WAER,YAAY,CACV,IAAAS,EACA,UAAAC,EACA,cAAAC,EACA,YAAAC,CACF,EAAiC,CAC/B,KAAK,cAAa,iBAAc,CAC9B,IAAAH,EACA,UAAAC,EACA,cAAAC,EACA,YAAAC,CACF,CAAC,CACH,CAEA,gBACEC,EACAC,EACAC,EAC6B,CAC7B,OAAO,KAAK,WACT,IAA4B,mBAAiB,sBAAsB,EACnE,QAAQF,EAAgBC,EAAaC,CAAO,CACjD,CAEA,YACEF,EACAG,EACAD,EACiC,CACjC,OAAO,KAAK,WACT,IAAwB,eAAa,kBAAkB,EACvD,QAAQF,EAAgBG,EAASD,CAAO,CAC7C,CAEA,cACEF,EACAI,EACAF,EAC2B,CAC3B,OAAO,KAAK,WACT,IAA0B,iBAAe,oBAAoB,EAC7D,QAAQF,EAAgBI,EAAWF,CAAO,CAC/C,CAEA,WACEF,EACAE,EACwB,CACxB,OAAO,KAAK,WACT,IAAuB,eAAa,iBAAiB,EACrD,QAAQF,EAAgBE,CAAO,CACpC,CAEA,kBACEG,EACAH,EAC+B,CAC/B,OAAO,KAAK,WACT,IAA8B,YAAU,wBAAwB,EAChE,QAAQG,EAAqBH,CAAO,CACzC,CAEA,4BACEF,EACAM,EACAC,EACAC,EACyC,CACzC,OAAO,KAAK,WACT,IACC,eAAa,kCACf,EACC,QAAQR,EAAgBQ,EAAOD,EAAiBD,CAAO,CAC5D,CACF",
6
+ "names": ["DefaultSignerEth_exports", "__export", "DefaultSignerEth", "__toCommonJS", "import_addressTypes", "import_di", "import_messageTypes", "import_safeTypes", "import_transactionTypes", "import_typedDataTypes", "import_eip7702Types", "dmk", "sessionId", "contextModule", "addressBook", "derivationPath", "transaction", "options", "message", "typedData", "safeContractAddress", "chainId", "contractAddress", "nonce"]
7
7
  }
@@ -1,2 +1,2 @@
1
- "use strict";var A=Object.defineProperty;var P=Object.getOwnPropertyDescriptor;var c=Object.getOwnPropertyNames;var h=Object.prototype.hasOwnProperty;var m=(t,e)=>{for(var r in e)A(t,r,{get:e[r],enumerable:!0})},n=(t,e,r,E)=>{if(e&&typeof e=="object"||typeof e=="function")for(let o of c(e))!h.call(t,o)&&o!==r&&A(t,o,{get:()=>e[o],enumerable:!(E=P(e,o))||E.enumerable});return t};var p=t=>n(A({},"__esModule",{value:!0}),t);var u={};m(u,{APP_NAME:()=>s});module.exports=p(u);const s="Ethereum";0&&(module.exports={APP_NAME});
1
+ "use strict";var r=Object.defineProperty;var c=Object.getOwnPropertyDescriptor;var n=Object.getOwnPropertyNames;var p=Object.prototype.hasOwnProperty;var s=(E,t)=>{for(var o in t)r(E,o,{get:t[o],enumerable:!0})},x=(E,t,o,_)=>{if(t&&typeof t=="object"||typeof t=="function")for(let e of n(t))!p.call(E,e)&&e!==o&&r(E,e,{get:()=>t[e],enumerable:!(_=c(t,e))||_.enumerable});return E};var A=E=>x(r({},"__esModule",{value:!0}),E);var P={};s(P,{APP_NAME:()=>L,SELECTOR_ID_LENGTH:()=>N});module.exports=A(P);const L="Ethereum",N=10;0&&(module.exports={APP_NAME,SELECTOR_ID_LENGTH});
2
2
  //# sourceMappingURL=constants.js.map
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "version": 3,
3
3
  "sources": ["../../../../src/internal/app-binder/constants.ts"],
4
- "sourcesContent": ["export const APP_NAME = \"Ethereum\";\n"],
5
- "mappings": "yaAAA,IAAAA,EAAA,GAAAC,EAAAD,EAAA,cAAAE,IAAA,eAAAC,EAAAH,GAAO,MAAME,EAAW",
6
- "names": ["constants_exports", "__export", "APP_NAME", "__toCommonJS"]
4
+ "sourcesContent": ["export const APP_NAME = \"Ethereum\";\nexport const SELECTOR_ID_LENGTH = 10;\n"],
5
+ "mappings": "yaAAA,IAAAA,EAAA,GAAAC,EAAAD,EAAA,cAAAE,EAAA,uBAAAC,IAAA,eAAAC,EAAAJ,GAAO,MAAME,EAAW,WACXC,EAAqB",
6
+ "names": ["constants_exports", "__export", "APP_NAME", "SELECTOR_ID_LENGTH", "__toCommonJS"]
7
7
  }
@@ -1,2 +1,2 @@
1
- "use strict";var g=Object.defineProperty;var w=Object.getOwnPropertyDescriptor;var M=Object.getOwnPropertyNames;var G=Object.prototype.hasOwnProperty;var V=(o,a)=>{for(var p in a)g(o,p,{get:a[p],enumerable:!0})},U=(o,a,p,c)=>{if(a&&typeof a=="object"||typeof a=="function")for(let s of M(a))!G.call(o,s)&&s!==p&&g(o,s,{get:()=>a[s],enumerable:!(c=w(a,s))||c.enumerable});return o};var W=o=>U(g({},"__esModule",{value:!0}),o);var L={};V(L,{SignTransactionDeviceAction:()=>q});module.exports=W(L);var n=require("@ledgerhq/device-management-kit"),l=require("purify-ts"),e=require("xstate"),i=require("../../../../api/app-binder/SignTransactionDeviceActionTypes"),E=require("../../../../api/model/ClearSigningType"),_=require("../../../app-binder/command/GetAddressCommand"),k=require("../../../app-binder/command/GetAppConfigurationCommand"),I=require("../../../app-binder/command/Web3CheckOptInCommand"),S=require("../../../app-binder/constants"),D=require("../../../app-binder/EthereumApplicationResolver"),f=require("../../../app-binder/task/BlindSigningDetectionTask"),v=require("../../../app-binder/task/BuildFullContextsTask"),P=require("../../../app-binder/task/ParseTransactionTask"),b=require("../../../app-binder/task/ProvideTransactionContextsTask"),O=require("../../../app-binder/task/SendSignTransactionTask"),R=require("../../../shared/EthAppVersions");class q extends n.XStateDeviceAction{makeStateMachine(a){const{getAddress:p,getAppConfig:c,web3CheckOptIn:s,parseTransaction:T,buildContexts:C,signTransaction:m,provideContexts:y,detectBlindSigning:A}=this.extractDependencies(a);return(0,e.setup)({types:{input:{},context:{},output:{}},actors:{openAppStateMachine:new n.OpenAppDeviceAction({input:{appName:S.APP_NAME}}).makeStateMachine(a),getAddress:(0,e.fromPromise)(p),getAppConfig:(0,e.fromPromise)(c),web3CheckOptIn:(0,e.fromPromise)(s),parseTransaction:(0,e.fromPromise)(T),buildContexts:(0,e.fromPromise)(C),provideContexts:(0,e.fromPromise)(y),signTransaction:(0,e.fromPromise)(m),detectBlindSigning:(0,e.fromPromise)(A)},guards:{noInternalError:({context:t})=>t._internalState.error===null,notRefusedByUser:({context:t})=>t._internalState.error!==null&&(!("errorCode"in t._internalState.error)||t._internalState.error.errorCode!=="6985"),isWeb3ChecksSupported:({context:t})=>new n.ApplicationChecker(a.getDeviceSessionState(),t._internalState.appConfig,new D.EthereumApplicationResolver).withMinVersionExclusive(R.MIN_ETH_APP_VERSION_FOR_WEB3_CHECKS).excludeDeviceModel(n.DeviceModelId.NANO_S).excludeDeviceModel(n.DeviceModelId.NANO_SP).excludeDeviceModel(n.DeviceModelId.NANO_X).check(),shouldOptIn:({context:t})=>!t._internalState.appConfig.web3ChecksEnabled&&!t._internalState.appConfig.web3ChecksOptIn,skipOpenApp:({context:t})=>!!t.input.options.skipOpenApp,hasSignature:({context:t})=>t._internalState.signature!==null},actions:{assignErrorFromEvent:(0,e.assign)({_internalState:t=>({...t.context._internalState,error:t.event.error})})}}).createMachine({id:"SignTransactionDeviceAction",initial:"InitialState",context:({input:t})=>({input:t,intermediateValue:{requiredUserInteraction:n.UserInteractionRequired.None,step:i.SignTransactionDAStep.OPEN_APP},_internalState:{error:null,appConfig:null,subset:null,contexts:[],clearSigningType:null,contextErrorCount:0,transactionType:null,signature:null,isBlindSign:null,usedFallback:!1}}),states:{InitialState:{always:[{target:"GetAppConfig",guard:"skipOpenApp"},"OpenAppDeviceAction"]},OpenAppDeviceAction:{invoke:{id:"openAppStateMachine",input:{appName:S.APP_NAME},src:"openAppStateMachine",onSnapshot:{actions:(0,e.assign)({intermediateValue:t=>({...t.event.snapshot.context.intermediateValue,step:i.SignTransactionDAStep.OPEN_APP})})},onDone:{actions:(0,e.assign)({_internalState:t=>t.event.output.caseOf({Right:()=>t.context._internalState,Left:r=>({...t.context._internalState,error:r})})}),target:"CheckOpenAppDeviceActionResult"}}},CheckOpenAppDeviceActionResult:{always:[{target:"GetAppConfig",guard:"noInternalError"},"Error"]},GetAppConfig:{entry:(0,e.assign)({intermediateValue:{requiredUserInteraction:n.UserInteractionRequired.None,step:i.SignTransactionDAStep.GET_APP_CONFIG}}),invoke:{id:"getAppConfig",src:"getAppConfig",onDone:{target:"GetAppConfigResultCheck",actions:[(0,e.assign)({_internalState:({event:t,context:r})=>(0,n.isSuccessCommandResult)(t.output)?{...r._internalState,appConfig:t.output.data}:{...r._internalState,error:t.output.error}})]},onError:{target:"Error",actions:"assignErrorFromEvent"}}},GetAppConfigResultCheck:{always:[{target:"Web3ChecksOptIn",guard:(0,e.and)(["noInternalError","isWeb3ChecksSupported","shouldOptIn"])},{target:"ParseTransaction",guard:"noInternalError"},{target:"Error"}]},Web3ChecksOptIn:{entry:(0,e.assign)({intermediateValue:{requiredUserInteraction:n.UserInteractionRequired.Web3ChecksOptIn,step:i.SignTransactionDAStep.WEB3_CHECKS_OPT_IN}}),invoke:{id:"web3CheckOptIn",src:"web3CheckOptIn",onDone:{target:"Web3ChecksOptInResult",actions:[(0,e.assign)({_internalState:({event:t,context:r})=>(0,n.isSuccessCommandResult)(t.output)?{...r._internalState,appConfig:{...r._internalState.appConfig,web3ChecksEnabled:t.output.data.enabled}}:r._internalState})]},onError:{target:"Error",actions:"assignErrorFromEvent"}}},Web3ChecksOptInResult:{entry:(0,e.assign)(({context:t})=>({intermediateValue:{requiredUserInteraction:n.UserInteractionRequired.None,step:i.SignTransactionDAStep.WEB3_CHECKS_OPT_IN_RESULT,result:t._internalState.appConfig.web3ChecksEnabled}})),after:{0:{target:"ParseTransaction"}}},ParseTransaction:{entry:(0,e.assign)({intermediateValue:{requiredUserInteraction:n.UserInteractionRequired.None,step:i.SignTransactionDAStep.PARSE_TRANSACTION}}),invoke:{id:"parseTransaction",src:"parseTransaction",input:({context:t})=>({mapper:t.input.mapper,transaction:t.input.transaction}),onDone:{target:"GetAddress",actions:(0,e.assign)({_internalState:({event:t,context:r})=>({...r._internalState,subset:t.output.subset,transactionType:t.output.type})})},onError:{target:"Error",actions:"assignErrorFromEvent"}}},GetAddress:{entry:(0,e.assign)({intermediateValue:{requiredUserInteraction:n.UserInteractionRequired.None,step:i.SignTransactionDAStep.GET_ADDRESS}}),invoke:{id:"getAddress",src:"getAddress",input:({context:t})=>({derivationPath:t.input.derivationPath,checkOnDevice:!1,returnChainCode:!1}),onDone:{target:"BuildContexts",actions:(0,e.assign)({_internalState:({event:t,context:r})=>{if((0,n.isSuccessCommandResult)(t.output)){const d={...r._internalState.subset,from:t.output.data.address};return{...r._internalState,subset:d}}return{...r._internalState}}})},onError:{target:"Error"}}},BuildContexts:{entry:(0,e.assign)({intermediateValue:{requiredUserInteraction:n.UserInteractionRequired.None,step:i.SignTransactionDAStep.BUILD_CONTEXTS}}),invoke:{id:"buildContexts",src:"buildContexts",input:({context:t})=>({contextModule:t.input.contextModule,mapper:t.input.mapper,parser:t.input.parser,options:t.input.options,appConfig:t._internalState.appConfig,derivationPath:t.input.derivationPath,subset:t._internalState.subset,transaction:t.input.transaction,deviceModelId:a.getDeviceModel().id,loggerFactory:this.getLoggerFactory(a)}),onDone:{target:"ProvideContexts",actions:[(0,e.assign)({_internalState:({event:t,context:r})=>({...r._internalState,contexts:t.output.clearSignContexts,clearSigningType:t.output.clearSigningType,contextErrorCount:t.output.contextErrorCount})})]},onError:{target:"Error",actions:"assignErrorFromEvent"}}},ProvideContexts:{entry:(0,e.assign)({intermediateValue:{requiredUserInteraction:n.UserInteractionRequired.None,step:i.SignTransactionDAStep.PROVIDE_CONTEXTS}}),invoke:{id:"provideContexts",src:"provideContexts",input:({context:t})=>({contexts:t._internalState.contexts,derivationPath:t.input.derivationPath,serializedTransaction:t.input.transaction,loggerFactory:this.getLoggerFactory(a)}),onDone:{target:"SignTransaction"},onError:{target:"Error",actions:"assignErrorFromEvent"}}},SignTransaction:{entry:(0,e.assign)({intermediateValue:{requiredUserInteraction:n.UserInteractionRequired.SignTransaction,step:i.SignTransactionDAStep.SIGN_TRANSACTION}}),invoke:{id:"signTransaction",src:"signTransaction",input:({context:t})=>({derivationPath:t.input.derivationPath,serializedTransaction:t.input.transaction,chainId:t._internalState.subset.chainId,transactionType:t._internalState.transactionType,clearSigningType:t._internalState.clearSigningType}),onDone:{target:"SignTransactionResultCheck",actions:[(0,e.assign)({_internalState:({event:t,context:r})=>(0,n.isSuccessCommandResult)(t.output)?{...r._internalState,signature:t.output.data}:{...r._internalState,error:t.output.error}})]},onError:{target:"SignTransactionResultCheck",actions:"assignErrorFromEvent"}}},SignTransactionResultCheck:{always:[{guard:"noInternalError",target:"DetectBlindSigning"},{guard:"notRefusedByUser",target:"BlindSignTransactionFallback"},{target:"DetectBlindSigning"}]},BlindSignTransactionFallback:{entry:(0,e.assign)({intermediateValue:{requiredUserInteraction:n.UserInteractionRequired.None,step:i.SignTransactionDAStep.BLIND_SIGN_TRANSACTION_FALLBACK},_internalState:({context:t})=>({...t._internalState,usedFallback:!0})}),invoke:{id:"blindSignTransactionFallback",src:"signTransaction",input:({context:t})=>({derivationPath:t.input.derivationPath,serializedTransaction:t.input.transaction,chainId:t._internalState.subset.chainId,transactionType:t._internalState.transactionType,clearSigningType:E.ClearSigningType.BASIC}),onDone:{target:"BlindSignTransactionFallbackResultCheck",actions:[(0,e.assign)({_internalState:({event:t,context:r})=>(0,n.isSuccessCommandResult)(t.output)?{...r._internalState,signature:t.output.data}:{...r._internalState,error:t.output.error}})]},onError:{target:"DetectBlindSigning",actions:"assignErrorFromEvent"}}},BlindSignTransactionFallbackResultCheck:{always:"DetectBlindSigning"},DetectBlindSigning:{entry:(0,e.assign)({intermediateValue:{requiredUserInteraction:n.UserInteractionRequired.None,step:i.SignTransactionDAStep.DETECT_BLIND_SIGNING}}),invoke:{id:"detectBlindSigning",src:"detectBlindSigning",input:({context:t})=>{const r=a.getDeviceSessionState(),d=r.sessionStateType!==n.DeviceSessionStateType.Connected?r.firmwareVersion?.os??null:null,{subset:u,contexts:h,usedFallback:B,clearSigningType:N,contextErrorCount:x}=t._internalState;return{input:{type:"transaction",hasContext:!(!!u?.data&&u.data.length>2)||h.length>0,contextTypes:h.map(F=>F.context.type),usedFallback:B,chainId:u?.chainId??null,targetAddress:u?.to??null,deviceModelId:a.getDeviceModel().id,signerAppVersion:t._internalState.appConfig?.version??"",deviceVersion:d,clearSigningType:N,partialContextErrors:x},contextModule:t.input.contextModule,loggerFactory:this.getLoggerFactory(a)}},onDone:[{guard:"hasSignature",target:"Success",actions:(0,e.assign)({_internalState:({event:t,context:r})=>({...r._internalState,isBlindSign:t.output.isBlindSign})})},{target:"Error",actions:(0,e.assign)({_internalState:({event:t,context:r})=>({...r._internalState,isBlindSign:t.output.isBlindSign})})}],onError:[{guard:"hasSignature",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 n.UnknownDAError("No error in final state"))})}extractDependencies(a){return{getAddress:async t=>a.sendCommand(new _.GetAddressCommand(t.input)),getAppConfig:async()=>a.sendCommand(new k.GetAppConfiguration),web3CheckOptIn:async()=>a.sendCommand(new I.Web3CheckOptInCommand),parseTransaction:async t=>Promise.resolve(new P.ParseTransactionTask({mapper:t.input.mapper,transaction:t.input.transaction}).run()),buildContexts:async t=>new v.BuildFullContextsTask(a,t.input).run(),provideContexts:async t=>new b.ProvideTransactionContextsTask(a,t.input).run(),signTransaction:async t=>new O.SendSignTransactionTask(a,{...t.input,loggerFactory:this.getLoggerFactory(a)}).run(),detectBlindSigning:async t=>new f.BlindSigningDetectionTask(t.input).run()}}}0&&(module.exports={SignTransactionDeviceAction});
1
+ "use strict";var S=Object.defineProperty;var w=Object.getOwnPropertyDescriptor;var M=Object.getOwnPropertyNames;var G=Object.prototype.hasOwnProperty;var V=(o,a)=>{for(var p in a)S(o,p,{get:a[p],enumerable:!0})},U=(o,a,p,l)=>{if(a&&typeof a=="object"||typeof a=="function")for(let s of M(a))!G.call(o,s)&&s!==p&&S(o,s,{get:()=>a[s],enumerable:!(l=w(a,s))||l.enumerable});return o};var L=o=>U(S({},"__esModule",{value:!0}),o);var q={};V(q,{SignTransactionDeviceAction:()=>W});module.exports=L(q);var n=require("@ledgerhq/device-management-kit"),d=require("purify-ts"),e=require("xstate"),i=require("../../../../api/app-binder/SignTransactionDeviceActionTypes"),E=require("../../../../api/model/ClearSigningType"),_=require("../../../app-binder/command/GetAddressCommand"),I=require("../../../app-binder/command/GetAppConfigurationCommand"),k=require("../../../app-binder/command/Web3CheckOptInCommand"),u=require("../../../app-binder/constants"),D=require("../../../app-binder/EthereumApplicationResolver"),f=require("../../../app-binder/task/BlindSigningDetectionTask"),v=require("../../../app-binder/task/BuildFullContextsTask"),P=require("../../../app-binder/task/ParseTransactionTask"),b=require("../../../app-binder/task/ProvideTransactionContextsTask"),O=require("../../../app-binder/task/SendSignTransactionTask"),R=require("../../../shared/EthAppVersions");class W extends n.XStateDeviceAction{makeStateMachine(a){const{getAddress:p,getAppConfig:l,web3CheckOptIn:s,parseTransaction:T,buildContexts:C,signTransaction:m,provideContexts:y,detectBlindSigning:A}=this.extractDependencies(a);return(0,e.setup)({types:{input:{},context:{},output:{}},actors:{openAppStateMachine:new n.OpenAppDeviceAction({input:{appName:u.APP_NAME}}).makeStateMachine(a),getAddress:(0,e.fromPromise)(p),getAppConfig:(0,e.fromPromise)(l),web3CheckOptIn:(0,e.fromPromise)(s),parseTransaction:(0,e.fromPromise)(T),buildContexts:(0,e.fromPromise)(C),provideContexts:(0,e.fromPromise)(y),signTransaction:(0,e.fromPromise)(m),detectBlindSigning:(0,e.fromPromise)(A)},guards:{noInternalError:({context:t})=>t._internalState.error===null,notRefusedByUser:({context:t})=>t._internalState.error!==null&&(!("errorCode"in t._internalState.error)||t._internalState.error.errorCode!=="6985"),isWeb3ChecksSupported:({context:t})=>new n.ApplicationChecker(a.getDeviceSessionState(),t._internalState.appConfig,new D.EthereumApplicationResolver).withMinVersionExclusive(R.MIN_ETH_APP_VERSION_FOR_WEB3_CHECKS).excludeDeviceModel(n.DeviceModelId.NANO_S).excludeDeviceModel(n.DeviceModelId.NANO_SP).excludeDeviceModel(n.DeviceModelId.NANO_X).check(),shouldOptIn:({context:t})=>!t._internalState.appConfig.web3ChecksEnabled&&!t._internalState.appConfig.web3ChecksOptIn,skipOpenApp:({context:t})=>!!t.input.options.skipOpenApp,hasSignature:({context:t})=>t._internalState.signature!==null},actions:{assignErrorFromEvent:(0,e.assign)({_internalState:t=>({...t.context._internalState,error:t.event.error})})}}).createMachine({id:"SignTransactionDeviceAction",initial:"InitialState",context:({input:t})=>({input:t,intermediateValue:{requiredUserInteraction:n.UserInteractionRequired.None,step:i.SignTransactionDAStep.OPEN_APP},_internalState:{error:null,appConfig:null,subset:null,contexts:[],clearSigningType:null,contextErrorCount:0,transactionType:null,signature:null,isBlindSign:null,usedFallback:!1}}),states:{InitialState:{always:[{target:"GetAppConfig",guard:"skipOpenApp"},"OpenAppDeviceAction"]},OpenAppDeviceAction:{invoke:{id:"openAppStateMachine",input:{appName:u.APP_NAME},src:"openAppStateMachine",onSnapshot:{actions:(0,e.assign)({intermediateValue:t=>({...t.event.snapshot.context.intermediateValue,step:i.SignTransactionDAStep.OPEN_APP})})},onDone:{actions:(0,e.assign)({_internalState:t=>t.event.output.caseOf({Right:()=>t.context._internalState,Left:r=>({...t.context._internalState,error:r})})}),target:"CheckOpenAppDeviceActionResult"}}},CheckOpenAppDeviceActionResult:{always:[{target:"GetAppConfig",guard:"noInternalError"},"Error"]},GetAppConfig:{entry:(0,e.assign)({intermediateValue:{requiredUserInteraction:n.UserInteractionRequired.None,step:i.SignTransactionDAStep.GET_APP_CONFIG}}),invoke:{id:"getAppConfig",src:"getAppConfig",onDone:{target:"GetAppConfigResultCheck",actions:[(0,e.assign)({_internalState:({event:t,context:r})=>(0,n.isSuccessCommandResult)(t.output)?{...r._internalState,appConfig:t.output.data}:{...r._internalState,error:t.output.error}})]},onError:{target:"Error",actions:"assignErrorFromEvent"}}},GetAppConfigResultCheck:{always:[{target:"Web3ChecksOptIn",guard:(0,e.and)(["noInternalError","isWeb3ChecksSupported","shouldOptIn"])},{target:"ParseTransaction",guard:"noInternalError"},{target:"Error"}]},Web3ChecksOptIn:{entry:(0,e.assign)({intermediateValue:{requiredUserInteraction:n.UserInteractionRequired.Web3ChecksOptIn,step:i.SignTransactionDAStep.WEB3_CHECKS_OPT_IN}}),invoke:{id:"web3CheckOptIn",src:"web3CheckOptIn",onDone:{target:"Web3ChecksOptInResult",actions:[(0,e.assign)({_internalState:({event:t,context:r})=>(0,n.isSuccessCommandResult)(t.output)?{...r._internalState,appConfig:{...r._internalState.appConfig,web3ChecksEnabled:t.output.data.enabled}}:r._internalState})]},onError:{target:"Error",actions:"assignErrorFromEvent"}}},Web3ChecksOptInResult:{entry:(0,e.assign)(({context:t})=>({intermediateValue:{requiredUserInteraction:n.UserInteractionRequired.None,step:i.SignTransactionDAStep.WEB3_CHECKS_OPT_IN_RESULT,result:t._internalState.appConfig.web3ChecksEnabled}})),after:{0:{target:"ParseTransaction"}}},ParseTransaction:{entry:(0,e.assign)({intermediateValue:{requiredUserInteraction:n.UserInteractionRequired.None,step:i.SignTransactionDAStep.PARSE_TRANSACTION}}),invoke:{id:"parseTransaction",src:"parseTransaction",input:({context:t})=>({mapper:t.input.mapper,transaction:t.input.transaction}),onDone:{target:"GetAddress",actions:(0,e.assign)({_internalState:({event:t,context:r})=>({...r._internalState,subset:t.output.subset,transactionType:t.output.type})})},onError:{target:"Error",actions:"assignErrorFromEvent"}}},GetAddress:{entry:(0,e.assign)({intermediateValue:{requiredUserInteraction:n.UserInteractionRequired.None,step:i.SignTransactionDAStep.GET_ADDRESS}}),invoke:{id:"getAddress",src:"getAddress",input:({context:t})=>({derivationPath:t.input.derivationPath,checkOnDevice:!1,returnChainCode:!1}),onDone:{target:"BuildContexts",actions:(0,e.assign)({_internalState:({event:t,context:r})=>{if((0,n.isSuccessCommandResult)(t.output)){const g={...r._internalState.subset,from:t.output.data.address};return{...r._internalState,subset:g}}return{...r._internalState}}})},onError:{target:"Error"}}},BuildContexts:{entry:(0,e.assign)({intermediateValue:{requiredUserInteraction:n.UserInteractionRequired.None,step:i.SignTransactionDAStep.BUILD_CONTEXTS}}),invoke:{id:"buildContexts",src:"buildContexts",input:({context:t})=>({contextModule:t.input.contextModule,mapper:t.input.mapper,parser:t.input.parser,options:t.input.options,appConfig:t._internalState.appConfig,derivationPath:t.input.derivationPath,subset:t._internalState.subset,transaction:t.input.transaction,deviceModelId:a.getDeviceModel().id,loggerFactory:this.getLoggerFactory(a)}),onDone:{target:"ProvideContexts",actions:[(0,e.assign)({_internalState:({event:t,context:r})=>({...r._internalState,contexts:t.output.clearSignContexts,clearSigningType:t.output.clearSigningType,contextErrorCount:t.output.contextErrorCount})})]},onError:{target:"Error",actions:"assignErrorFromEvent"}}},ProvideContexts:{entry:(0,e.assign)({intermediateValue:{requiredUserInteraction:n.UserInteractionRequired.None,step:i.SignTransactionDAStep.PROVIDE_CONTEXTS}}),invoke:{id:"provideContexts",src:"provideContexts",input:({context:t})=>({contexts:t._internalState.contexts,derivationPath:t.input.derivationPath,serializedTransaction:t.input.transaction,loggerFactory:this.getLoggerFactory(a)}),onDone:{target:"SignTransaction"},onError:{target:"Error",actions:"assignErrorFromEvent"}}},SignTransaction:{entry:(0,e.assign)({intermediateValue:{requiredUserInteraction:n.UserInteractionRequired.SignTransaction,step:i.SignTransactionDAStep.SIGN_TRANSACTION}}),invoke:{id:"signTransaction",src:"signTransaction",input:({context:t})=>({derivationPath:t.input.derivationPath,serializedTransaction:t.input.transaction,chainId:t._internalState.subset.chainId,transactionType:t._internalState.transactionType,clearSigningType:t._internalState.clearSigningType}),onDone:{target:"SignTransactionResultCheck",actions:[(0,e.assign)({_internalState:({event:t,context:r})=>(0,n.isSuccessCommandResult)(t.output)?{...r._internalState,signature:t.output.data}:{...r._internalState,error:t.output.error}})]},onError:{target:"SignTransactionResultCheck",actions:"assignErrorFromEvent"}}},SignTransactionResultCheck:{always:[{guard:"noInternalError",target:"DetectBlindSigning"},{guard:"notRefusedByUser",target:"BlindSignTransactionFallback"},{target:"DetectBlindSigning"}]},BlindSignTransactionFallback:{entry:(0,e.assign)({intermediateValue:{requiredUserInteraction:n.UserInteractionRequired.None,step:i.SignTransactionDAStep.BLIND_SIGN_TRANSACTION_FALLBACK},_internalState:({context:t})=>({...t._internalState,usedFallback:!0})}),invoke:{id:"blindSignTransactionFallback",src:"signTransaction",input:({context:t})=>({derivationPath:t.input.derivationPath,serializedTransaction:t.input.transaction,chainId:t._internalState.subset.chainId,transactionType:t._internalState.transactionType,clearSigningType:E.ClearSigningType.BASIC}),onDone:{target:"BlindSignTransactionFallbackResultCheck",actions:[(0,e.assign)({_internalState:({event:t,context:r})=>(0,n.isSuccessCommandResult)(t.output)?{...r._internalState,signature:t.output.data}:{...r._internalState,error:t.output.error}})]},onError:{target:"DetectBlindSigning",actions:"assignErrorFromEvent"}}},BlindSignTransactionFallbackResultCheck:{always:"DetectBlindSigning"},DetectBlindSigning:{entry:(0,e.assign)({intermediateValue:{requiredUserInteraction:n.UserInteractionRequired.None,step:i.SignTransactionDAStep.DETECT_BLIND_SIGNING}}),invoke:{id:"detectBlindSigning",src:"detectBlindSigning",input:({context:t})=>{const r=a.getDeviceSessionState(),g=r.sessionStateType!==n.DeviceSessionStateType.Connected?r.firmwareVersion?.os??null:null,{subset:c,contexts:h,usedFallback:B,clearSigningType:N,contextErrorCount:x}=t._internalState;return{input:{type:"transaction",hasContext:!(!!c?.data&&c.data.length>2)||h.length>0,contextTypes:h.map(F=>F.context.type),usedFallback:B,chainId:c?.chainId??null,targetAddress:c?.to??null,selectorId:c?.selector&&c.selector.length===u.SELECTOR_ID_LENGTH?c.selector:null,deviceModelId:a.getDeviceModel().id,signerAppVersion:t._internalState.appConfig?.version??"",deviceVersion:g,clearSigningType:N,partialContextErrors:x},contextModule:t.input.contextModule,loggerFactory:this.getLoggerFactory(a)}},onDone:[{guard:"hasSignature",target:"Success",actions:(0,e.assign)({_internalState:({event:t,context:r})=>({...r._internalState,isBlindSign:t.output.isBlindSign})})},{target:"Error",actions:(0,e.assign)({_internalState:({event:t,context:r})=>({...r._internalState,isBlindSign:t.output.isBlindSign})})}],onError:[{guard:"hasSignature",target:"Success"},{target:"Error"}]}},Success:{type:"final"},Error:{type:"final"}},output:({context:t})=>t._internalState.signature?(0,d.Right)(t._internalState.signature):(0,d.Left)(t._internalState.error||new n.UnknownDAError("No error in final state"))})}extractDependencies(a){return{getAddress:async t=>a.sendCommand(new _.GetAddressCommand(t.input)),getAppConfig:async()=>a.sendCommand(new I.GetAppConfiguration),web3CheckOptIn:async()=>a.sendCommand(new k.Web3CheckOptInCommand),parseTransaction:async t=>Promise.resolve(new P.ParseTransactionTask({mapper:t.input.mapper,transaction:t.input.transaction}).run()),buildContexts:async t=>new v.BuildFullContextsTask(a,t.input).run(),provideContexts:async t=>new b.ProvideTransactionContextsTask(a,t.input).run(),signTransaction:async t=>new O.SendSignTransactionTask(a,{...t.input,loggerFactory:this.getLoggerFactory(a)}).run(),detectBlindSigning:async t=>new f.BlindSigningDetectionTask(t.input).run()}}}0&&(module.exports={SignTransactionDeviceAction});
2
2
  //# sourceMappingURL=SignTransactionDeviceAction.js.map