@cardano-sdk/key-management 0.2.0-nightly.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (224) hide show
  1. package/LICENSE +201 -0
  2. package/NOTICE +5 -0
  3. package/README.md +1 -0
  4. package/dist/cjs/InMemoryKeyAgent.d.ts +23 -0
  5. package/dist/cjs/InMemoryKeyAgent.d.ts.map +1 -0
  6. package/dist/cjs/InMemoryKeyAgent.js +136 -0
  7. package/dist/cjs/InMemoryKeyAgent.js.map +1 -0
  8. package/dist/cjs/KeyAgentBase.d.ts +20 -0
  9. package/dist/cjs/KeyAgentBase.d.ts.map +1 -0
  10. package/dist/cjs/KeyAgentBase.js +77 -0
  11. package/dist/cjs/KeyAgentBase.js.map +1 -0
  12. package/dist/cjs/LedgerKeyAgent.d.ts +42 -0
  13. package/dist/cjs/LedgerKeyAgent.d.ts.map +1 -0
  14. package/dist/cjs/LedgerKeyAgent.js +208 -0
  15. package/dist/cjs/LedgerKeyAgent.js.map +1 -0
  16. package/dist/cjs/TrezorKeyAgent.d.ts +29 -0
  17. package/dist/cjs/TrezorKeyAgent.d.ts.map +1 -0
  18. package/dist/cjs/TrezorKeyAgent.js +134 -0
  19. package/dist/cjs/TrezorKeyAgent.js.map +1 -0
  20. package/dist/cjs/cip8/cip30signData.d.ts +22 -0
  21. package/dist/cjs/cip8/cip30signData.d.ts.map +1 -0
  22. package/dist/cjs/cip8/cip30signData.js +81 -0
  23. package/dist/cjs/cip8/cip30signData.js.map +1 -0
  24. package/dist/cjs/cip8/index.d.ts +2 -0
  25. package/dist/cjs/cip8/index.d.ts.map +1 -0
  26. package/dist/cjs/cip8/index.js +18 -0
  27. package/dist/cjs/cip8/index.js.map +1 -0
  28. package/dist/cjs/cip8/types.d.ts +4 -0
  29. package/dist/cjs/cip8/types.d.ts.map +1 -0
  30. package/dist/cjs/cip8/types.js +3 -0
  31. package/dist/cjs/cip8/types.js.map +1 -0
  32. package/dist/cjs/cip8/util.d.ts +7 -0
  33. package/dist/cjs/cip8/util.d.ts.map +1 -0
  34. package/dist/cjs/cip8/util.js +10 -0
  35. package/dist/cjs/cip8/util.js.map +1 -0
  36. package/dist/cjs/emip3.d.ts +4 -0
  37. package/dist/cjs/emip3.d.ts.map +1 -0
  38. package/dist/cjs/emip3.js +48 -0
  39. package/dist/cjs/emip3.js.map +1 -0
  40. package/dist/cjs/errors/AuthenticationError.d.ts +6 -0
  41. package/dist/cjs/errors/AuthenticationError.d.ts.map +1 -0
  42. package/dist/cjs/errors/AuthenticationError.js +16 -0
  43. package/dist/cjs/errors/AuthenticationError.js.map +1 -0
  44. package/dist/cjs/errors/HwMappingError.d.ts +6 -0
  45. package/dist/cjs/errors/HwMappingError.d.ts.map +1 -0
  46. package/dist/cjs/errors/HwMappingError.js +16 -0
  47. package/dist/cjs/errors/HwMappingError.js.map +1 -0
  48. package/dist/cjs/errors/InvalidMnemonicError.d.ts +5 -0
  49. package/dist/cjs/errors/InvalidMnemonicError.d.ts.map +1 -0
  50. package/dist/cjs/errors/InvalidMnemonicError.js +13 -0
  51. package/dist/cjs/errors/InvalidMnemonicError.js.map +1 -0
  52. package/dist/cjs/errors/InvalidSerializableDataError.d.ts +5 -0
  53. package/dist/cjs/errors/InvalidSerializableDataError.d.ts.map +1 -0
  54. package/dist/cjs/errors/InvalidSerializableDataError.js +15 -0
  55. package/dist/cjs/errors/InvalidSerializableDataError.js.map +1 -0
  56. package/dist/cjs/errors/ProofGenerationError.d.ts +6 -0
  57. package/dist/cjs/errors/ProofGenerationError.d.ts.map +1 -0
  58. package/dist/cjs/errors/ProofGenerationError.js +16 -0
  59. package/dist/cjs/errors/ProofGenerationError.js.map +1 -0
  60. package/dist/cjs/errors/TransportError.d.ts +6 -0
  61. package/dist/cjs/errors/TransportError.d.ts.map +1 -0
  62. package/dist/cjs/errors/TransportError.js +16 -0
  63. package/dist/cjs/errors/TransportError.js.map +1 -0
  64. package/dist/cjs/errors/index.d.ts +7 -0
  65. package/dist/cjs/errors/index.d.ts.map +1 -0
  66. package/dist/cjs/errors/index.js +23 -0
  67. package/dist/cjs/errors/index.js.map +1 -0
  68. package/dist/cjs/index.d.ts +12 -0
  69. package/dist/cjs/index.d.ts.map +1 -0
  70. package/dist/cjs/index.js +42 -0
  71. package/dist/cjs/index.js.map +1 -0
  72. package/dist/cjs/package.json +3 -0
  73. package/dist/cjs/restoreKeyAgent.d.ts +9 -0
  74. package/dist/cjs/restoreKeyAgent.d.ts.map +1 -0
  75. package/dist/cjs/restoreKeyAgent.js +31 -0
  76. package/dist/cjs/restoreKeyAgent.js.map +1 -0
  77. package/dist/cjs/tsconfig.tsbuildinfo +1 -0
  78. package/dist/cjs/types.d.ts +127 -0
  79. package/dist/cjs/types.d.ts.map +1 -0
  80. package/dist/cjs/types.js +43 -0
  81. package/dist/cjs/types.js.map +1 -0
  82. package/dist/cjs/util/KeyAgentTransactionSigner.d.ts +8 -0
  83. package/dist/cjs/util/KeyAgentTransactionSigner.d.ts.map +1 -0
  84. package/dist/cjs/util/KeyAgentTransactionSigner.js +38 -0
  85. package/dist/cjs/util/KeyAgentTransactionSigner.js.map +1 -0
  86. package/dist/cjs/util/bip39.d.ts +8 -0
  87. package/dist/cjs/util/bip39.d.ts.map +1 -0
  88. package/dist/cjs/util/bip39.js +39 -0
  89. package/dist/cjs/util/bip39.js.map +1 -0
  90. package/dist/cjs/util/createAsyncKeyAgent.d.ts +3 -0
  91. package/dist/cjs/util/createAsyncKeyAgent.d.ts.map +1 -0
  92. package/dist/cjs/util/createAsyncKeyAgent.js +26 -0
  93. package/dist/cjs/util/createAsyncKeyAgent.js.map +1 -0
  94. package/dist/cjs/util/index.d.ts +8 -0
  95. package/dist/cjs/util/index.d.ts.map +1 -0
  96. package/dist/cjs/util/index.js +24 -0
  97. package/dist/cjs/util/index.js.map +1 -0
  98. package/dist/cjs/util/key.d.ts +11 -0
  99. package/dist/cjs/util/key.d.ts.map +1 -0
  100. package/dist/cjs/util/key.js +30 -0
  101. package/dist/cjs/util/key.js.map +1 -0
  102. package/dist/cjs/util/mapHardwareSigningData.d.ts +38 -0
  103. package/dist/cjs/util/mapHardwareSigningData.d.ts.map +1 -0
  104. package/dist/cjs/util/mapHardwareSigningData.js +864 -0
  105. package/dist/cjs/util/mapHardwareSigningData.js.map +1 -0
  106. package/dist/cjs/util/ownSignatureKeyPaths.d.ts +4 -0
  107. package/dist/cjs/util/ownSignatureKeyPaths.d.ts.map +1 -0
  108. package/dist/cjs/util/ownSignatureKeyPaths.js +24 -0
  109. package/dist/cjs/util/ownSignatureKeyPaths.js.map +1 -0
  110. package/dist/cjs/util/stubSignTransaction.d.ts +4 -0
  111. package/dist/cjs/util/stubSignTransaction.d.ts.map +1 -0
  112. package/dist/cjs/util/stubSignTransaction.js +23 -0
  113. package/dist/cjs/util/stubSignTransaction.js.map +1 -0
  114. package/dist/esm/InMemoryKeyAgent.d.ts +23 -0
  115. package/dist/esm/InMemoryKeyAgent.d.ts.map +1 -0
  116. package/dist/esm/InMemoryKeyAgent.js +106 -0
  117. package/dist/esm/InMemoryKeyAgent.js.map +1 -0
  118. package/dist/esm/KeyAgentBase.d.ts +20 -0
  119. package/dist/esm/KeyAgentBase.d.ts.map +1 -0
  120. package/dist/esm/KeyAgentBase.js +73 -0
  121. package/dist/esm/KeyAgentBase.js.map +1 -0
  122. package/dist/esm/LedgerKeyAgent.d.ts +42 -0
  123. package/dist/esm/LedgerKeyAgent.d.ts.map +1 -0
  124. package/dist/esm/LedgerKeyAgent.js +178 -0
  125. package/dist/esm/LedgerKeyAgent.js.map +1 -0
  126. package/dist/esm/TrezorKeyAgent.d.ts +29 -0
  127. package/dist/esm/TrezorKeyAgent.d.ts.map +1 -0
  128. package/dist/esm/TrezorKeyAgent.js +127 -0
  129. package/dist/esm/TrezorKeyAgent.js.map +1 -0
  130. package/dist/esm/cip8/cip30signData.d.ts +22 -0
  131. package/dist/esm/cip8/cip30signData.d.ts.map +1 -0
  132. package/dist/esm/cip8/cip30signData.js +76 -0
  133. package/dist/esm/cip8/cip30signData.js.map +1 -0
  134. package/dist/esm/cip8/index.d.ts +2 -0
  135. package/dist/esm/cip8/index.d.ts.map +1 -0
  136. package/dist/esm/cip8/index.js +2 -0
  137. package/dist/esm/cip8/index.js.map +1 -0
  138. package/dist/esm/cip8/types.d.ts +4 -0
  139. package/dist/esm/cip8/types.d.ts.map +1 -0
  140. package/dist/esm/cip8/types.js +2 -0
  141. package/dist/esm/cip8/types.js.map +1 -0
  142. package/dist/esm/cip8/util.d.ts +7 -0
  143. package/dist/esm/cip8/util.d.ts.map +1 -0
  144. package/dist/esm/cip8/util.js +7 -0
  145. package/dist/esm/cip8/util.js.map +1 -0
  146. package/dist/esm/emip3.d.ts +4 -0
  147. package/dist/esm/emip3.d.ts.map +1 -0
  148. package/dist/esm/emip3.js +39 -0
  149. package/dist/esm/emip3.js.map +1 -0
  150. package/dist/esm/errors/AuthenticationError.d.ts +6 -0
  151. package/dist/esm/errors/AuthenticationError.d.ts.map +1 -0
  152. package/dist/esm/errors/AuthenticationError.js +12 -0
  153. package/dist/esm/errors/AuthenticationError.js.map +1 -0
  154. package/dist/esm/errors/HwMappingError.d.ts +6 -0
  155. package/dist/esm/errors/HwMappingError.d.ts.map +1 -0
  156. package/dist/esm/errors/HwMappingError.js +12 -0
  157. package/dist/esm/errors/HwMappingError.js.map +1 -0
  158. package/dist/esm/errors/InvalidMnemonicError.d.ts +5 -0
  159. package/dist/esm/errors/InvalidMnemonicError.d.ts.map +1 -0
  160. package/dist/esm/errors/InvalidMnemonicError.js +9 -0
  161. package/dist/esm/errors/InvalidMnemonicError.js.map +1 -0
  162. package/dist/esm/errors/InvalidSerializableDataError.d.ts +5 -0
  163. package/dist/esm/errors/InvalidSerializableDataError.d.ts.map +1 -0
  164. package/dist/esm/errors/InvalidSerializableDataError.js +11 -0
  165. package/dist/esm/errors/InvalidSerializableDataError.js.map +1 -0
  166. package/dist/esm/errors/ProofGenerationError.d.ts +6 -0
  167. package/dist/esm/errors/ProofGenerationError.d.ts.map +1 -0
  168. package/dist/esm/errors/ProofGenerationError.js +12 -0
  169. package/dist/esm/errors/ProofGenerationError.js.map +1 -0
  170. package/dist/esm/errors/TransportError.d.ts +6 -0
  171. package/dist/esm/errors/TransportError.d.ts.map +1 -0
  172. package/dist/esm/errors/TransportError.js +12 -0
  173. package/dist/esm/errors/TransportError.js.map +1 -0
  174. package/dist/esm/errors/index.d.ts +7 -0
  175. package/dist/esm/errors/index.d.ts.map +1 -0
  176. package/dist/esm/errors/index.js +7 -0
  177. package/dist/esm/errors/index.js.map +1 -0
  178. package/dist/esm/index.d.ts +12 -0
  179. package/dist/esm/index.d.ts.map +1 -0
  180. package/dist/esm/index.js +12 -0
  181. package/dist/esm/index.js.map +1 -0
  182. package/dist/esm/package.json +3 -0
  183. package/dist/esm/restoreKeyAgent.d.ts +9 -0
  184. package/dist/esm/restoreKeyAgent.d.ts.map +1 -0
  185. package/dist/esm/restoreKeyAgent.js +27 -0
  186. package/dist/esm/restoreKeyAgent.js.map +1 -0
  187. package/dist/esm/tsconfig.tsbuildinfo +1 -0
  188. package/dist/esm/types.d.ts +127 -0
  189. package/dist/esm/types.d.ts.map +1 -0
  190. package/dist/esm/types.js +40 -0
  191. package/dist/esm/types.js.map +1 -0
  192. package/dist/esm/util/KeyAgentTransactionSigner.d.ts +8 -0
  193. package/dist/esm/util/KeyAgentTransactionSigner.d.ts.map +1 -0
  194. package/dist/esm/util/KeyAgentTransactionSigner.js +34 -0
  195. package/dist/esm/util/KeyAgentTransactionSigner.js.map +1 -0
  196. package/dist/esm/util/bip39.d.ts +8 -0
  197. package/dist/esm/util/bip39.d.ts.map +1 -0
  198. package/dist/esm/util/bip39.js +8 -0
  199. package/dist/esm/util/bip39.js.map +1 -0
  200. package/dist/esm/util/createAsyncKeyAgent.d.ts +3 -0
  201. package/dist/esm/util/createAsyncKeyAgent.d.ts.map +1 -0
  202. package/dist/esm/util/createAsyncKeyAgent.js +22 -0
  203. package/dist/esm/util/createAsyncKeyAgent.js.map +1 -0
  204. package/dist/esm/util/index.d.ts +8 -0
  205. package/dist/esm/util/index.d.ts.map +1 -0
  206. package/dist/esm/util/index.js +8 -0
  207. package/dist/esm/util/index.js.map +1 -0
  208. package/dist/esm/util/key.d.ts +11 -0
  209. package/dist/esm/util/key.d.ts.map +1 -0
  210. package/dist/esm/util/key.js +24 -0
  211. package/dist/esm/util/key.js.map +1 -0
  212. package/dist/esm/util/mapHardwareSigningData.d.ts +38 -0
  213. package/dist/esm/util/mapHardwareSigningData.d.ts.map +1 -0
  214. package/dist/esm/util/mapHardwareSigningData.js +833 -0
  215. package/dist/esm/util/mapHardwareSigningData.js.map +1 -0
  216. package/dist/esm/util/ownSignatureKeyPaths.d.ts +4 -0
  217. package/dist/esm/util/ownSignatureKeyPaths.d.ts.map +1 -0
  218. package/dist/esm/util/ownSignatureKeyPaths.js +17 -0
  219. package/dist/esm/util/ownSignatureKeyPaths.js.map +1 -0
  220. package/dist/esm/util/stubSignTransaction.d.ts +4 -0
  221. package/dist/esm/util/stubSignTransaction.d.ts.map +1 -0
  222. package/dist/esm/util/stubSignTransaction.js +16 -0
  223. package/dist/esm/util/stubSignTransaction.js.map +1 -0
  224. package/package.json +81 -0
@@ -0,0 +1 @@
1
+ {"version":3,"file":"mapHardwareSigningData.js","sourceRoot":"","sources":["../../../src/util/mapHardwareSigningData.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,4 @@
1
+ import { AccountKeyDerivationPath, GroupedAddress } from '../types';
2
+ import { Address, Cardano } from '@cardano-sdk/core';
3
+ export declare const ownSignatureKeyPaths: (txBody: Cardano.NewTxBodyAlonzo, knownAddresses: GroupedAddress[], inputResolver: Address.util.InputResolver) => Promise<AccountKeyDerivationPath[]>;
4
+ //# sourceMappingURL=ownSignatureKeyPaths.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ownSignatureKeyPaths.d.ts","sourceRoot":"","sources":["../../../src/util/ownSignatureKeyPaths.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,wBAAwB,EAAE,cAAc,EAAW,MAAM,UAAU,CAAC;AAC7E,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,MAAM,mBAAmB,CAAC;AASrD,eAAO,MAAM,oBAAoB,WACvB,QAAQ,eAAe,kBACf,cAAc,EAAE,iBACjB,QAAQ,IAAI,CAAC,aAAa,KACxC,QAAQ,wBAAwB,EAAE,CAkBpC,CAAC"}
@@ -0,0 +1,24 @@
1
+ "use strict";
2
+ var __importDefault = (this && this.__importDefault) || function (mod) {
3
+ return (mod && mod.__esModule) ? mod : { "default": mod };
4
+ };
5
+ Object.defineProperty(exports, "__esModule", { value: true });
6
+ exports.ownSignatureKeyPaths = void 0;
7
+ const types_1 = require("../types");
8
+ const util_1 = require("@cardano-sdk/util");
9
+ const uniq_1 = __importDefault(require("lodash/uniq"));
10
+ const ownSignatureKeyPaths = async (txBody, knownAddresses, inputResolver) => {
11
+ const paymentKeyPaths = (0, uniq_1.default)((await Promise.all(txBody.inputs.map(async (input) => {
12
+ const ownAddress = await inputResolver.resolveInputAddress(input);
13
+ if (!ownAddress)
14
+ return null;
15
+ return knownAddresses.find(({ address }) => address === ownAddress);
16
+ }))).filter(util_1.isNotNil)).map(({ type, index }) => ({ index, role: Number(type) }));
17
+ const isStakingKeySignatureRequired = txBody.certificates?.length;
18
+ if (isStakingKeySignatureRequired) {
19
+ return [...paymentKeyPaths, { index: 0, role: types_1.KeyRole.Stake }];
20
+ }
21
+ return paymentKeyPaths;
22
+ };
23
+ exports.ownSignatureKeyPaths = ownSignatureKeyPaths;
24
+ //# sourceMappingURL=ownSignatureKeyPaths.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ownSignatureKeyPaths.js","sourceRoot":"","sources":["../../../src/util/ownSignatureKeyPaths.ts"],"names":[],"mappings":";;;;;;AAAA,oCAA6E;AAE7E,4CAA6C;AAC7C,uDAA+B;AAOxB,MAAM,oBAAoB,GAAG,KAAK,EACvC,MAA+B,EAC/B,cAAgC,EAChC,aAAyC,EACJ,EAAE;IACvC,MAAM,eAAe,GAAG,IAAA,cAAI,EAC1B,CACE,MAAM,OAAO,CAAC,GAAG,CACf,MAAM,CAAC,MAAM,CAAC,GAAG,CAAC,KAAK,EAAE,KAAK,EAAE,EAAE;QAChC,MAAM,UAAU,GAAG,MAAM,aAAa,CAAC,mBAAmB,CAAC,KAAK,CAAC,CAAC;QAClE,IAAI,CAAC,UAAU;YAAE,OAAO,IAAI,CAAC;QAC7B,OAAO,cAAc,CAAC,IAAI,CAAC,CAAC,EAAE,OAAO,EAAE,EAAE,EAAE,CAAC,OAAO,KAAK,UAAU,CAAC,CAAC;IACtE,CAAC,CAAC,CACH,CACF,CAAC,MAAM,CAAC,eAAQ,CAAC,CACnB,CAAC,GAAG,CAAC,CAAC,EAAE,IAAI,EAAE,KAAK,EAAE,EAAE,EAAE,CAAC,CAAC,EAAE,KAAK,EAAE,IAAI,EAAE,MAAM,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,CAAC;IAE5D,MAAM,6BAA6B,GAAG,MAAM,CAAC,YAAY,EAAE,MAAM,CAAC;IAClE,IAAI,6BAA6B,EAAE;QACjC,OAAO,CAAC,GAAG,eAAe,EAAE,EAAE,KAAK,EAAE,CAAC,EAAE,IAAI,EAAE,eAAO,CAAC,KAAK,EAAE,CAAC,CAAC;KAChE;IACD,OAAO,eAAe,CAAC;AACzB,CAAC,CAAC;AAtBW,QAAA,oBAAoB,wBAsB/B"}
@@ -0,0 +1,4 @@
1
+ import { Address, Cardano } from '@cardano-sdk/core';
2
+ import { GroupedAddress, SignTransactionOptions, TransactionSigner } from '../types';
3
+ export declare const stubSignTransaction: (txBody: Cardano.NewTxBodyAlonzo, knownAddresses: GroupedAddress[], inputResolver: Address.util.InputResolver, extraSigners?: TransactionSigner[], { additionalKeyPaths }?: SignTransactionOptions) => Promise<Cardano.Signatures>;
4
+ //# sourceMappingURL=stubSignTransaction.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"stubSignTransaction.d.ts","sourceRoot":"","sources":["../../../src/util/stubSignTransaction.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,MAAM,mBAAmB,CAAC;AACrD,OAAO,EAAE,cAAc,EAAE,sBAAsB,EAAE,iBAAiB,EAAE,MAAM,UAAU,CAAC;AAQrF,eAAO,MAAM,mBAAmB,WACtB,QAAQ,eAAe,kBACf,cAAc,EAAE,iBACjB,QAAQ,IAAI,CAAC,aAAa,iBAC1B,iBAAiB,EAAE,2BACL,sBAAsB,KAClD,QAAQ,QAAQ,UAAU,CAgB5B,CAAC"}
@@ -0,0 +1,23 @@
1
+ "use strict";
2
+ var __importDefault = (this && this.__importDefault) || function (mod) {
3
+ return (mod && mod.__esModule) ? mod : { "default": mod };
4
+ };
5
+ Object.defineProperty(exports, "__esModule", { value: true });
6
+ exports.stubSignTransaction = void 0;
7
+ const core_1 = require("@cardano-sdk/core");
8
+ const util_1 = require("@cardano-sdk/util");
9
+ const ownSignatureKeyPaths_1 = require("./ownSignatureKeyPaths");
10
+ const uniqWith_1 = __importDefault(require("lodash/uniqWith"));
11
+ const randomHexChar = () => Math.floor(Math.random() * 16).toString(16);
12
+ const randomPublicKey = () => core_1.Cardano.Ed25519PublicKey(Array.from({ length: 64 }).map(randomHexChar).join(''));
13
+ const stubSignTransaction = async (txBody, knownAddresses, inputResolver, extraSigners, { additionalKeyPaths = [] } = {}) => {
14
+ const mockSignature = core_1.Cardano.Ed25519Signature('ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff');
15
+ const signatureKeyPaths = (0, uniqWith_1.default)([...(await (0, ownSignatureKeyPaths_1.ownSignatureKeyPaths)(txBody, knownAddresses, inputResolver)), ...additionalKeyPaths], util_1.deepEquals);
16
+ const totalSignature = signatureKeyPaths.length + (extraSigners?.length || 0);
17
+ const signatureMap = new Map();
18
+ for (let i = 0; i < totalSignature; ++i)
19
+ signatureMap.set(randomPublicKey(), mockSignature);
20
+ return signatureMap;
21
+ };
22
+ exports.stubSignTransaction = stubSignTransaction;
23
+ //# sourceMappingURL=stubSignTransaction.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"stubSignTransaction.js","sourceRoot":"","sources":["../../../src/util/stubSignTransaction.ts"],"names":[],"mappings":";;;;;;AAAA,4CAAqD;AAErD,4CAA+C;AAC/C,iEAA8D;AAC9D,+DAAuC;AAEvC,MAAM,aAAa,GAAG,GAAG,EAAE,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,MAAM,EAAE,GAAG,EAAE,CAAC,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC;AACxE,MAAM,eAAe,GAAG,GAAG,EAAE,CAAC,cAAO,CAAC,gBAAgB,CAAC,KAAK,CAAC,IAAI,CAAC,EAAE,MAAM,EAAE,EAAE,EAAE,CAAC,CAAC,GAAG,CAAC,aAAa,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,CAAC;AAExG,MAAM,mBAAmB,GAAG,KAAK,EACtC,MAA+B,EAC/B,cAAgC,EAChC,aAAyC,EACzC,YAAkC,EAClC,EAAE,kBAAkB,GAAG,EAAE,KAA6B,EAAE,EAC3B,EAAE;IAC/B,MAAM,aAAa,GAAG,cAAO,CAAC,gBAAgB,CAE5C,kIAAkI,CACnI,CAAC;IACF,MAAM,iBAAiB,GAAG,IAAA,kBAAQ,EAChC,CAAC,GAAG,CAAC,MAAM,IAAA,2CAAoB,EAAC,MAAM,EAAE,cAAc,EAAE,aAAa,CAAC,CAAC,EAAE,GAAG,kBAAkB,CAAC,EAC/F,iBAAU,CACX,CAAC;IAEF,MAAM,cAAc,GAAG,iBAAiB,CAAC,MAAM,GAAG,CAAC,YAAY,EAAE,MAAM,IAAI,CAAC,CAAC,CAAC;IAC9E,MAAM,YAAY,GAAG,IAAI,GAAG,EAAE,CAAC;IAE/B,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,cAAc,EAAE,EAAE,CAAC;QAAE,YAAY,CAAC,GAAG,CAAC,eAAe,EAAE,EAAE,aAAa,CAAC,CAAC;IAE5F,OAAO,YAAY,CAAC;AACtB,CAAC,CAAC;AAtBW,QAAA,mBAAmB,uBAsB9B"}
@@ -0,0 +1,23 @@
1
+ import { AccountKeyDerivationPath, GetPassword, KeyAgent, KeyAgentDependencies, KeyPair, SerializableInMemoryKeyAgentData, SignBlobResult, SignTransactionOptions } from './types';
2
+ import { Cardano } from '@cardano-sdk/core';
3
+ import { KeyAgentBase } from './KeyAgentBase';
4
+ export interface InMemoryKeyAgentProps extends Omit<SerializableInMemoryKeyAgentData, '__typename'> {
5
+ getPassword: GetPassword;
6
+ }
7
+ export interface FromBip39MnemonicWordsProps {
8
+ networkId: Cardano.NetworkId;
9
+ mnemonicWords: string[];
10
+ mnemonic2ndFactorPassphrase?: Uint8Array;
11
+ getPassword: GetPassword;
12
+ accountIndex?: number;
13
+ }
14
+ export declare class InMemoryKeyAgent extends KeyAgentBase implements KeyAgent {
15
+ #private;
16
+ constructor({ getPassword, ...serializableData }: InMemoryKeyAgentProps, dependencies: KeyAgentDependencies);
17
+ signBlob({ index, role: type }: AccountKeyDerivationPath, blob: Cardano.util.HexBlob): Promise<SignBlobResult>;
18
+ exportRootPrivateKey(): Promise<Cardano.Bip32PrivateKey>;
19
+ static fromBip39MnemonicWords({ networkId, getPassword, mnemonicWords, mnemonic2ndFactorPassphrase, accountIndex }: FromBip39MnemonicWordsProps, dependencies: KeyAgentDependencies): Promise<InMemoryKeyAgent>;
20
+ signTransaction({ body, hash }: Cardano.TxBodyWithHash, { additionalKeyPaths }?: SignTransactionOptions | undefined): Promise<Cardano.Signatures>;
21
+ exportExtendedKeyPair(derivationPath: number[]): Promise<KeyPair>;
22
+ }
23
+ //# sourceMappingURL=InMemoryKeyAgent.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"InMemoryKeyAgent.d.ts","sourceRoot":"","sources":["../../src/InMemoryKeyAgent.ts"],"names":[],"mappings":"AACA,OAAO,EACL,wBAAwB,EACxB,WAAW,EACX,QAAQ,EACR,oBAAoB,EAEpB,OAAO,EACP,gCAAgC,EAChC,cAAc,EACd,sBAAsB,EACvB,MAAM,SAAS,CAAC;AACjB,OAAO,EAAO,OAAO,EAAQ,MAAM,mBAAmB,CAAC;AACvD,OAAO,EAAE,YAAY,EAAE,MAAM,gBAAgB,CAAC;AAY9C,MAAM,WAAW,qBAAsB,SAAQ,IAAI,CAAC,gCAAgC,EAAE,YAAY,CAAC;IACjG,WAAW,EAAE,WAAW,CAAC;CAC1B;AAED,MAAM,WAAW,2BAA2B;IAC1C,SAAS,EAAE,OAAO,CAAC,SAAS,CAAC;IAC7B,aAAa,EAAE,MAAM,EAAE,CAAC;IACxB,2BAA2B,CAAC,EAAE,UAAU,CAAC;IACzC,WAAW,EAAE,WAAW,CAAC;IACzB,YAAY,CAAC,EAAE,MAAM,CAAC;CACvB;AAUD,qBAAa,gBAAiB,SAAQ,YAAa,YAAW,QAAQ;;gBAGxD,EAAE,WAAW,EAAE,GAAG,gBAAgB,EAAE,EAAE,qBAAqB,EAAE,YAAY,EAAE,oBAAoB;IAKrG,QAAQ,CAAC,EAAE,KAAK,EAAE,IAAI,EAAE,IAAI,EAAE,EAAE,wBAAwB,EAAE,IAAI,EAAE,OAAO,CAAC,IAAI,CAAC,OAAO,GAAG,OAAO,CAAC,cAAc,CAAC;IAgB9G,oBAAoB,IAAI,OAAO,CAAC,OAAO,CAAC,eAAe,CAAC;WAQjD,sBAAsB,CACjC,EACE,SAAS,EACT,WAAW,EACX,aAAa,EACb,2BAA6C,EAC7C,YAAgB,EACjB,EAAE,2BAA2B,EAC9B,YAAY,EAAE,oBAAoB,GACjC,OAAO,CAAC,gBAAgB,CAAC;IA4BtB,eAAe,CACnB,EAAE,IAAI,EAAE,IAAI,EAAE,EAAE,OAAO,CAAC,cAAc,EACtC,EAAE,kBAAuB,EAAE,GAAE,sBAAsB,GAAG,SAAc,GACnE,OAAO,CAAC,OAAO,CAAC,UAAU,CAAC;IAsBxB,qBAAqB,CAAC,cAAc,EAAE,MAAM,EAAE,GAAG,OAAO,CAAC,OAAO,CAAC;CA0BxE"}
@@ -0,0 +1,106 @@
1
+ var __classPrivateFieldSet = (this && this.__classPrivateFieldSet) || function (receiver, state, value, kind, f) {
2
+ if (kind === "m") throw new TypeError("Private method is not writable");
3
+ if (kind === "a" && !f) throw new TypeError("Private accessor was defined without a setter");
4
+ if (typeof state === "function" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError("Cannot write private member to an object whose class did not declare it");
5
+ return (kind === "a" ? f.call(receiver, value) : f ? f.value = value : state.set(receiver, value)), value;
6
+ };
7
+ var __classPrivateFieldGet = (this && this.__classPrivateFieldGet) || function (receiver, state, kind, f) {
8
+ if (kind === "a" && !f) throw new TypeError("Private accessor was defined without a getter");
9
+ if (typeof state === "function" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError("Cannot read private member from an object whose class did not declare it");
10
+ return kind === "m" ? f : kind === "a" ? f.call(receiver) : f ? f.value : state.get(receiver);
11
+ };
12
+ var _InMemoryKeyAgent_instances, _InMemoryKeyAgent_getPassword, _InMemoryKeyAgent_decryptRootPrivateKey;
13
+ import * as errors from './errors';
14
+ import { KeyAgentType } from './types';
15
+ import { CSL, Cardano, util } from '@cardano-sdk/core';
16
+ import { KeyAgentBase } from './KeyAgentBase';
17
+ import { deriveAccountPrivateKey, harden, joinMnemonicWords, mnemonicWordsToEntropy, ownSignatureKeyPaths, validateMnemonic } from './util';
18
+ import { emip3decrypt, emip3encrypt } from './emip3';
19
+ import uniqBy from 'lodash/uniqBy';
20
+ const getPasswordRethrowTypedError = async (getPassword) => {
21
+ try {
22
+ return await getPassword();
23
+ }
24
+ catch (error) {
25
+ throw new errors.AuthenticationError('Failed to enter password', error);
26
+ }
27
+ };
28
+ export class InMemoryKeyAgent extends KeyAgentBase {
29
+ constructor({ getPassword, ...serializableData }, dependencies) {
30
+ super({ ...serializableData, __typename: KeyAgentType.InMemory }, dependencies);
31
+ _InMemoryKeyAgent_instances.add(this);
32
+ _InMemoryKeyAgent_getPassword.set(this, void 0);
33
+ __classPrivateFieldSet(this, _InMemoryKeyAgent_getPassword, getPassword, "f");
34
+ }
35
+ async signBlob({ index, role: type }, blob) {
36
+ const rootPrivateKey = await __classPrivateFieldGet(this, _InMemoryKeyAgent_instances, "m", _InMemoryKeyAgent_decryptRootPrivateKey).call(this);
37
+ const accountKey = deriveAccountPrivateKey({
38
+ accountIndex: this.accountIndex,
39
+ rootPrivateKey
40
+ });
41
+ const signingKey = accountKey.derive(type).derive(index).to_raw_key();
42
+ const signature = Cardano.Ed25519Signature(signingKey.sign(Buffer.from(blob, 'hex')).to_hex());
43
+ const publicKey = Cardano.Ed25519PublicKey.fromHexBlob(util.bytesToHex(signingKey.to_public().as_bytes()));
44
+ return { publicKey, signature };
45
+ }
46
+ async exportRootPrivateKey() {
47
+ const rootPrivateKey = await __classPrivateFieldGet(this, _InMemoryKeyAgent_instances, "m", _InMemoryKeyAgent_decryptRootPrivateKey).call(this, true);
48
+ return Cardano.Bip32PrivateKey.fromHexBlob(util.bytesToHex(rootPrivateKey.as_bytes()));
49
+ }
50
+ static async fromBip39MnemonicWords({ networkId, getPassword, mnemonicWords, mnemonic2ndFactorPassphrase = Buffer.from(''), accountIndex = 0 }, dependencies) {
51
+ const mnemonic = joinMnemonicWords(mnemonicWords);
52
+ const validMnemonic = validateMnemonic(mnemonic);
53
+ if (!validMnemonic)
54
+ throw new errors.InvalidMnemonicError();
55
+ const entropy = Buffer.from(mnemonicWordsToEntropy(mnemonicWords), 'hex');
56
+ const rootPrivateKey = CSL.Bip32PrivateKey.from_bip39_entropy(entropy, mnemonic2ndFactorPassphrase);
57
+ const password = await getPasswordRethrowTypedError(getPassword);
58
+ const encryptedRootPrivateKey = await emip3encrypt(rootPrivateKey.as_bytes(), password);
59
+ const accountPrivateKey = deriveAccountPrivateKey({
60
+ accountIndex,
61
+ rootPrivateKey
62
+ });
63
+ const extendedAccountPublicKey = Cardano.Bip32PublicKey(Buffer.from(accountPrivateKey.to_public().as_bytes()).toString('hex'));
64
+ return new InMemoryKeyAgent({
65
+ accountIndex,
66
+ encryptedRootPrivateKeyBytes: [...encryptedRootPrivateKey],
67
+ extendedAccountPublicKey,
68
+ getPassword,
69
+ knownAddresses: [],
70
+ networkId
71
+ }, dependencies);
72
+ }
73
+ async signTransaction({ body, hash }, { additionalKeyPaths = [] } = {}) {
74
+ const blob = Cardano.util.HexBlob(hash.toString());
75
+ const derivationPaths = await ownSignatureKeyPaths(body, this.knownAddresses, this.inputResolver);
76
+ const keyPaths = uniqBy([...derivationPaths, ...additionalKeyPaths], ({ role, index }) => `${role}.${index}`);
77
+ return new Map(await Promise.all(keyPaths.map(async ({ role, index }) => {
78
+ const { publicKey, signature } = await this.signBlob({ index, role }, blob);
79
+ return [publicKey, signature];
80
+ })));
81
+ }
82
+ async exportExtendedKeyPair(derivationPath) {
83
+ const rootPrivateKey = await this.exportRootPrivateKey();
84
+ const cslRootPrivateKey = CSL.Bip32PrivateKey.from_bytes(Buffer.from(rootPrivateKey, 'hex'));
85
+ let cslPrivateKey = cslRootPrivateKey;
86
+ for (const val of derivationPath) {
87
+ cslPrivateKey = cslPrivateKey.derive(harden(val));
88
+ }
89
+ return {
90
+ skey: Cardano.Bip32PrivateKey(Buffer.from(cslPrivateKey.as_bytes()).toString('hex')),
91
+ vkey: Cardano.Bip32PublicKey(Buffer.from(cslPrivateKey.to_public().as_bytes()).toString('hex'))
92
+ };
93
+ }
94
+ }
95
+ _InMemoryKeyAgent_getPassword = new WeakMap(), _InMemoryKeyAgent_instances = new WeakSet(), _InMemoryKeyAgent_decryptRootPrivateKey = async function _InMemoryKeyAgent_decryptRootPrivateKey(noCache) {
96
+ const password = await getPasswordRethrowTypedError(() => __classPrivateFieldGet(this, _InMemoryKeyAgent_getPassword, "f").call(this, noCache));
97
+ let decryptedRootKeyBytes;
98
+ try {
99
+ decryptedRootKeyBytes = await emip3decrypt(new Uint8Array(this.serializableData.encryptedRootPrivateKeyBytes), password);
100
+ }
101
+ catch (error) {
102
+ throw new errors.AuthenticationError('Failed to decrypt root private key', error);
103
+ }
104
+ return CSL.Bip32PrivateKey.from_bytes(decryptedRootKeyBytes);
105
+ };
106
+ //# sourceMappingURL=InMemoryKeyAgent.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"InMemoryKeyAgent.js","sourceRoot":"","sources":["../../src/InMemoryKeyAgent.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,20 @@
1
+ import { AccountAddressDerivationPath, AccountKeyDerivationPath, GroupedAddress, KeyAgent, KeyAgentDependencies, SerializableKeyAgentData, SignBlobResult, SignTransactionOptions } from './types';
2
+ import { Address, CSL, Cardano } from '@cardano-sdk/core';
3
+ export declare abstract class KeyAgentBase implements KeyAgent {
4
+ #private;
5
+ protected readonly inputResolver: Address.util.InputResolver;
6
+ get knownAddresses(): GroupedAddress[];
7
+ set knownAddresses(addresses: GroupedAddress[]);
8
+ get serializableData(): SerializableKeyAgentData;
9
+ get extendedAccountPublicKey(): Cardano.Bip32PublicKey;
10
+ get networkId(): Cardano.NetworkId;
11
+ get accountIndex(): number;
12
+ abstract signBlob(derivationPath: AccountKeyDerivationPath, blob: Cardano.util.HexBlob): Promise<SignBlobResult>;
13
+ abstract exportRootPrivateKey(): Promise<Cardano.Bip32PrivateKey>;
14
+ abstract signTransaction(txInternals: Cardano.TxBodyWithHash, signTransactionOptions?: SignTransactionOptions): Promise<Cardano.Signatures>;
15
+ constructor(serializableData: SerializableKeyAgentData, { inputResolver }: KeyAgentDependencies);
16
+ deriveAddress({ index, type }: AccountAddressDerivationPath): Promise<GroupedAddress>;
17
+ derivePublicKey(derivationPath: AccountKeyDerivationPath): Promise<Cardano.Ed25519PublicKey>;
18
+ protected deriveCslPublicKey({ index, role: type }: AccountKeyDerivationPath): Promise<CSL.PublicKey>;
19
+ }
20
+ //# sourceMappingURL=KeyAgentBase.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"KeyAgentBase.d.ts","sourceRoot":"","sources":["../../src/KeyAgentBase.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,4BAA4B,EAC5B,wBAAwB,EACxB,cAAc,EACd,QAAQ,EACR,oBAAoB,EAEpB,wBAAwB,EACxB,cAAc,EACd,sBAAsB,EACvB,MAAM,SAAS,CAAC;AACjB,OAAO,EAAE,OAAO,EAAE,GAAG,EAAE,OAAO,EAAQ,MAAM,mBAAmB,CAAC;AAGhE,8BAAsB,YAAa,YAAW,QAAQ;;IAEpD,SAAS,CAAC,QAAQ,CAAC,aAAa,EAAE,OAAO,CAAC,IAAI,CAAC,aAAa,CAAC;IAE7D,IAAI,cAAc,IAAI,cAAc,EAAE,CAErC;IACD,IAAI,cAAc,CAAC,SAAS,EAAE,cAAc,EAAE,EAE7C;IACD,IAAI,gBAAgB,IAAI,wBAAwB,CAE/C;IACD,IAAI,wBAAwB,IAAI,OAAO,CAAC,cAAc,CAErD;IACD,IAAI,SAAS,IAAI,OAAO,CAAC,SAAS,CAEjC;IACD,IAAI,YAAY,IAAI,MAAM,CAEzB;IACD,QAAQ,CAAC,QAAQ,CAAC,cAAc,EAAE,wBAAwB,EAAE,IAAI,EAAE,OAAO,CAAC,IAAI,CAAC,OAAO,GAAG,OAAO,CAAC,cAAc,CAAC;IAChH,QAAQ,CAAC,oBAAoB,IAAI,OAAO,CAAC,OAAO,CAAC,eAAe,CAAC;IACjE,QAAQ,CAAC,eAAe,CACtB,WAAW,EAAE,OAAO,CAAC,cAAc,EACnC,sBAAsB,CAAC,EAAE,sBAAsB,GAC9C,OAAO,CAAC,OAAO,CAAC,UAAU,CAAC;gBAElB,gBAAgB,EAAE,wBAAwB,EAAE,EAAE,aAAa,EAAE,EAAE,oBAAoB;IAQzF,aAAa,CAAC,EAAE,KAAK,EAAE,IAAI,EAAE,EAAE,4BAA4B,GAAG,OAAO,CAAC,cAAc,CAAC;IA+BrF,eAAe,CAAC,cAAc,EAAE,wBAAwB,GAAG,OAAO,CAAC,OAAO,CAAC,gBAAgB,CAAC;cAKlF,kBAAkB,CAAC,EAAE,KAAK,EAAE,IAAI,EAAE,IAAI,EAAE,EAAE,wBAAwB,GAAG,OAAO,CAAC,GAAG,CAAC,SAAS,CAAC;CAK5G"}
@@ -0,0 +1,73 @@
1
+ var __classPrivateFieldSet = (this && this.__classPrivateFieldSet) || function (receiver, state, value, kind, f) {
2
+ if (kind === "m") throw new TypeError("Private method is not writable");
3
+ if (kind === "a" && !f) throw new TypeError("Private accessor was defined without a setter");
4
+ if (typeof state === "function" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError("Cannot write private member to an object whose class did not declare it");
5
+ return (kind === "a" ? f.call(receiver, value) : f ? f.value = value : state.set(receiver, value)), value;
6
+ };
7
+ var __classPrivateFieldGet = (this && this.__classPrivateFieldGet) || function (receiver, state, kind, f) {
8
+ if (kind === "a" && !f) throw new TypeError("Private accessor was defined without a getter");
9
+ if (typeof state === "function" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError("Cannot read private member from an object whose class did not declare it");
10
+ return kind === "m" ? f : kind === "a" ? f.call(receiver) : f ? f.value : state.get(receiver);
11
+ };
12
+ var _KeyAgentBase_serializableData;
13
+ import { CSL, Cardano, util } from '@cardano-sdk/core';
14
+ import { STAKE_KEY_DERIVATION_PATH } from './util';
15
+ export class KeyAgentBase {
16
+ constructor(serializableData, { inputResolver }) {
17
+ _KeyAgentBase_serializableData.set(this, void 0);
18
+ __classPrivateFieldSet(this, _KeyAgentBase_serializableData, serializableData, "f");
19
+ this.inputResolver = inputResolver;
20
+ }
21
+ get knownAddresses() {
22
+ return __classPrivateFieldGet(this, _KeyAgentBase_serializableData, "f").knownAddresses;
23
+ }
24
+ set knownAddresses(addresses) {
25
+ __classPrivateFieldGet(this, _KeyAgentBase_serializableData, "f").knownAddresses = addresses;
26
+ }
27
+ get serializableData() {
28
+ return __classPrivateFieldGet(this, _KeyAgentBase_serializableData, "f");
29
+ }
30
+ get extendedAccountPublicKey() {
31
+ return this.serializableData.extendedAccountPublicKey;
32
+ }
33
+ get networkId() {
34
+ return this.serializableData.networkId;
35
+ }
36
+ get accountIndex() {
37
+ return this.serializableData.accountIndex;
38
+ }
39
+ async deriveAddress({ index, type }) {
40
+ const knownAddress = this.knownAddresses.find((addr) => addr.type === type && addr.index === index);
41
+ if (knownAddress)
42
+ return knownAddress;
43
+ const derivedPublicPaymentKey = await this.deriveCslPublicKey({
44
+ index,
45
+ role: type
46
+ });
47
+ const publicStakeKey = await this.deriveCslPublicKey(STAKE_KEY_DERIVATION_PATH);
48
+ const stakeKeyCredential = CSL.StakeCredential.from_keyhash(publicStakeKey.hash());
49
+ const address = CSL.BaseAddress.new(this.networkId, CSL.StakeCredential.from_keyhash(derivedPublicPaymentKey.hash()), stakeKeyCredential).to_address();
50
+ const rewardAccount = CSL.RewardAddress.new(this.networkId, stakeKeyCredential).to_address();
51
+ const groupedAddress = {
52
+ accountIndex: this.accountIndex,
53
+ address: Cardano.Address(address.to_bech32()),
54
+ index,
55
+ networkId: this.networkId,
56
+ rewardAccount: Cardano.RewardAccount(rewardAccount.to_bech32()),
57
+ type
58
+ };
59
+ this.knownAddresses = [...this.knownAddresses, groupedAddress];
60
+ return groupedAddress;
61
+ }
62
+ async derivePublicKey(derivationPath) {
63
+ const cslPublicKey = await this.deriveCslPublicKey(derivationPath);
64
+ return Cardano.Ed25519PublicKey.fromHexBlob(util.bytesToHex(cslPublicKey.as_bytes()));
65
+ }
66
+ async deriveCslPublicKey({ index, role: type }) {
67
+ const accountPublicKeyBytes = Buffer.from(this.extendedAccountPublicKey, 'hex');
68
+ const accountPublicKey = CSL.Bip32PublicKey.from_bytes(accountPublicKeyBytes);
69
+ return accountPublicKey.derive(type).derive(index).to_raw_key();
70
+ }
71
+ }
72
+ _KeyAgentBase_serializableData = new WeakMap();
73
+ //# sourceMappingURL=KeyAgentBase.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"KeyAgentBase.js","sourceRoot":"","sources":["../../src/KeyAgentBase.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,42 @@
1
+ import { Cardano } from '@cardano-sdk/core';
2
+ import { CommunicationType, KeyAgentDependencies, LedgerTransportType, SerializableLedgerKeyAgentData, SignBlobResult } from './types';
3
+ import { KeyAgentBase } from './KeyAgentBase';
4
+ import LedgerConnection, { GetVersionResponse } from '@cardano-foundation/ledgerjs-hw-app-cardano';
5
+ import type LedgerTransport from '@ledgerhq/hw-transport';
6
+ export interface LedgerKeyAgentProps extends Omit<SerializableLedgerKeyAgentData, '__typename'> {
7
+ deviceConnection?: LedgerConnection;
8
+ }
9
+ export interface CreateLedgerKeyAgentProps {
10
+ networkId: Cardano.NetworkId;
11
+ protocolMagic: Cardano.NetworkMagic;
12
+ accountIndex?: number;
13
+ communicationType: CommunicationType;
14
+ deviceConnection?: LedgerConnection | null;
15
+ }
16
+ export interface GetLedgerXpubProps {
17
+ deviceConnection?: LedgerConnection;
18
+ communicationType: CommunicationType;
19
+ accountIndex: number;
20
+ }
21
+ export interface CreateLedgerTransportProps {
22
+ communicationType: CommunicationType;
23
+ activeTransport?: LedgerTransportType;
24
+ devicePath?: string;
25
+ }
26
+ export declare class LedgerKeyAgent extends KeyAgentBase {
27
+ #private;
28
+ readonly deviceConnection?: LedgerConnection;
29
+ constructor({ deviceConnection, ...serializableData }: LedgerKeyAgentProps, dependencies: KeyAgentDependencies);
30
+ static getHidDeviceList(communicationType: CommunicationType): Promise<string[]>;
31
+ static createTransport({ communicationType, activeTransport, devicePath }: CreateLedgerTransportProps): Promise<LedgerTransportType>;
32
+ static createDeviceConnection(activeTransport: LedgerTransport): Promise<LedgerConnection>;
33
+ static establishDeviceConnection(communicationType: CommunicationType, devicePath?: string): Promise<LedgerConnection>;
34
+ static checkDeviceConnection(communicationType: CommunicationType, deviceConnection?: LedgerConnection): Promise<LedgerConnection>;
35
+ static getXpub({ deviceConnection, communicationType, accountIndex }: GetLedgerXpubProps): Promise<Cardano.Bip32PublicKey>;
36
+ static getAppVersion(communicationType: CommunicationType, deviceConnection?: LedgerConnection): Promise<GetVersionResponse>;
37
+ static createWithDevice({ networkId, protocolMagic, accountIndex, communicationType, deviceConnection }: CreateLedgerKeyAgentProps, dependencies: KeyAgentDependencies): Promise<LedgerKeyAgent>;
38
+ signTransaction({ body }: Cardano.TxBodyWithHash): Promise<Cardano.Signatures>;
39
+ signBlob(): Promise<SignBlobResult>;
40
+ exportRootPrivateKey(): Promise<Cardano.Bip32PrivateKey>;
41
+ }
42
+ //# sourceMappingURL=LedgerKeyAgent.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"LedgerKeyAgent.d.ts","sourceRoot":"","sources":["../../src/LedgerKeyAgent.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,OAAO,EAAkC,MAAM,mBAAmB,CAAC;AAC5E,OAAO,EAGL,iBAAiB,EACjB,oBAAoB,EAEpB,mBAAmB,EACnB,8BAA8B,EAC9B,cAAc,EACf,MAAM,SAAS,CAAC;AACjB,OAAO,EAAE,YAAY,EAAE,MAAM,gBAAgB,CAAC;AAE9C,OAAO,gBAAgB,EAAE,EAAE,kBAAkB,EAAS,MAAM,6CAA6C,CAAC;AAG1G,OAAO,KAAK,eAAe,MAAM,wBAAwB,CAAC;AAE1D,MAAM,WAAW,mBAAoB,SAAQ,IAAI,CAAC,8BAA8B,EAAE,YAAY,CAAC;IAC7F,gBAAgB,CAAC,EAAE,gBAAgB,CAAC;CACrC;AAED,MAAM,WAAW,yBAAyB;IACxC,SAAS,EAAE,OAAO,CAAC,SAAS,CAAC;IAC7B,aAAa,EAAE,OAAO,CAAC,YAAY,CAAC;IACpC,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,iBAAiB,EAAE,iBAAiB,CAAC;IACrC,gBAAgB,CAAC,EAAE,gBAAgB,GAAG,IAAI,CAAC;CAC5C;AAED,MAAM,WAAW,kBAAkB;IACjC,gBAAgB,CAAC,EAAE,gBAAgB,CAAC;IACpC,iBAAiB,EAAE,iBAAiB,CAAC;IACrC,YAAY,EAAE,MAAM,CAAC;CACtB;AAED,MAAM,WAAW,0BAA0B;IACzC,iBAAiB,EAAE,iBAAiB,CAAC;IACrC,eAAe,CAAC,EAAE,mBAAmB,CAAC;IACtC,UAAU,CAAC,EAAE,MAAM,CAAC;CACrB;AAKD,qBAAa,cAAe,SAAQ,YAAY;;IAC9C,QAAQ,CAAC,gBAAgB,CAAC,EAAE,gBAAgB,CAAC;gBAIjC,EAAE,gBAAgB,EAAE,GAAG,gBAAgB,EAAE,EAAE,mBAAmB,EAAE,YAAY,EAAE,oBAAoB;WAUjG,gBAAgB,CAAC,iBAAiB,EAAE,iBAAiB,GAAG,OAAO,CAAC,MAAM,EAAE,CAAC;WAWzE,eAAe,CAAC,EAC3B,iBAAiB,EACjB,eAAe,EACf,UAAe,EAChB,EAAE,0BAA0B,GAAG,OAAO,CAAC,mBAAmB,CAAC;WAgB/C,sBAAsB,CAAC,eAAe,EAAE,eAAe,GAAG,OAAO,CAAC,gBAAgB,CAAC;WAcnF,yBAAyB,CACpC,iBAAiB,EAAE,iBAAiB,EACpC,UAAU,CAAC,EAAE,MAAM,GAClB,OAAO,CAAC,gBAAgB,CAAC;WA+Bf,qBAAqB,CAChC,iBAAiB,EAAE,iBAAiB,EACpC,gBAAgB,CAAC,EAAE,gBAAgB,GAClC,OAAO,CAAC,gBAAgB,CAAC;WAmBf,OAAO,CAAC,EACnB,gBAAgB,EAChB,iBAAiB,EACjB,YAAY,EACb,EAAE,kBAAkB,GAAG,OAAO,CAAC,OAAO,CAAC,cAAc,CAAC;WAoB1C,aAAa,CACxB,iBAAiB,EAAE,iBAAiB,EACpC,gBAAgB,CAAC,EAAE,gBAAgB,GAClC,OAAO,CAAC,kBAAkB,CAAC;WASjB,gBAAgB,CAC3B,EAAE,SAAS,EAAE,aAAa,EAAE,YAAgB,EAAE,iBAAiB,EAAE,gBAAgB,EAAE,EAAE,yBAAyB,EAC9G,YAAY,EAAE,oBAAoB;IA2B9B,eAAe,CAAC,EAAE,IAAI,EAAE,EAAE,OAAO,CAAC,cAAc,GAAG,OAAO,CAAC,OAAO,CAAC,UAAU,CAAC;IAoC9E,QAAQ,IAAI,OAAO,CAAC,cAAc,CAAC;IAInC,oBAAoB,IAAI,OAAO,CAAC,OAAO,CAAC,eAAe,CAAC;CAG/D"}