@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,208 @@
1
+ "use strict";
2
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
+ if (k2 === undefined) k2 = k;
4
+ var desc = Object.getOwnPropertyDescriptor(m, k);
5
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
6
+ desc = { enumerable: true, get: function() { return m[k]; } };
7
+ }
8
+ Object.defineProperty(o, k2, desc);
9
+ }) : (function(o, m, k, k2) {
10
+ if (k2 === undefined) k2 = k;
11
+ o[k2] = m[k];
12
+ }));
13
+ var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
14
+ Object.defineProperty(o, "default", { enumerable: true, value: v });
15
+ }) : function(o, v) {
16
+ o["default"] = v;
17
+ });
18
+ var __importStar = (this && this.__importStar) || function (mod) {
19
+ if (mod && mod.__esModule) return mod;
20
+ var result = {};
21
+ if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
22
+ __setModuleDefault(result, mod);
23
+ return result;
24
+ };
25
+ var __classPrivateFieldSet = (this && this.__classPrivateFieldSet) || function (receiver, state, value, kind, f) {
26
+ if (kind === "m") throw new TypeError("Private method is not writable");
27
+ if (kind === "a" && !f) throw new TypeError("Private accessor was defined without a setter");
28
+ 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");
29
+ return (kind === "a" ? f.call(receiver, value) : f ? f.value = value : state.set(receiver, value)), value;
30
+ };
31
+ var __classPrivateFieldGet = (this && this.__classPrivateFieldGet) || function (receiver, state, kind, f) {
32
+ if (kind === "a" && !f) throw new TypeError("Private accessor was defined without a getter");
33
+ 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");
34
+ return kind === "m" ? f : kind === "a" ? f.call(receiver) : f ? f.value : state.get(receiver);
35
+ };
36
+ var __importDefault = (this && this.__importDefault) || function (mod) {
37
+ return (mod && mod.__esModule) ? mod : { "default": mod };
38
+ };
39
+ var _LedgerKeyAgent_communicationType, _LedgerKeyAgent_protocolMagic;
40
+ Object.defineProperty(exports, "__esModule", { value: true });
41
+ exports.LedgerKeyAgent = void 0;
42
+ const errors_1 = require("./errors");
43
+ const core_1 = require("@cardano-sdk/core");
44
+ const types_1 = require("./types");
45
+ const KeyAgentBase_1 = require("./KeyAgentBase");
46
+ const util_1 = require("./util");
47
+ const ledgerjs_hw_app_cardano_1 = __importStar(require("@cardano-foundation/ledgerjs-hw-app-cardano"));
48
+ const hw_transport_node_hid_noevents_1 = __importDefault(require("@ledgerhq/hw-transport-node-hid-noevents"));
49
+ const hw_transport_webhid_1 = __importDefault(require("@ledgerhq/hw-transport-webhid"));
50
+ const transportTypedError = (error) => new errors_1.AuthenticationError('Ledger transport failed', new errors_1.TransportError('Ledger transport failed', error));
51
+ class LedgerKeyAgent extends KeyAgentBase_1.KeyAgentBase {
52
+ constructor({ deviceConnection, ...serializableData }, dependencies) {
53
+ super({ ...serializableData, __typename: types_1.KeyAgentType.Ledger }, dependencies);
54
+ _LedgerKeyAgent_communicationType.set(this, void 0);
55
+ _LedgerKeyAgent_protocolMagic.set(this, void 0);
56
+ this.deviceConnection = deviceConnection;
57
+ __classPrivateFieldSet(this, _LedgerKeyAgent_communicationType, serializableData.communicationType, "f");
58
+ __classPrivateFieldSet(this, _LedgerKeyAgent_protocolMagic, serializableData.protocolMagic, "f");
59
+ }
60
+ static async getHidDeviceList(communicationType) {
61
+ try {
62
+ return communicationType === types_1.CommunicationType.Node ? hw_transport_node_hid_noevents_1.default.list() : hw_transport_webhid_1.default.list();
63
+ }
64
+ catch (error) {
65
+ throw new errors_1.TransportError('Cannot fetch device list', error);
66
+ }
67
+ }
68
+ static async createTransport({ communicationType, activeTransport, devicePath = '' }) {
69
+ try {
70
+ if (communicationType === types_1.CommunicationType.Node) {
71
+ return await hw_transport_node_hid_noevents_1.default.open(devicePath);
72
+ }
73
+ return await (activeTransport && activeTransport instanceof hw_transport_webhid_1.default
74
+ ? hw_transport_webhid_1.default.open(activeTransport.device)
75
+ : hw_transport_webhid_1.default.request());
76
+ }
77
+ catch (error) {
78
+ throw new errors_1.TransportError('Creating transport failed', error);
79
+ }
80
+ }
81
+ static async createDeviceConnection(activeTransport) {
82
+ try {
83
+ const deviceConnection = new ledgerjs_hw_app_cardano_1.default(activeTransport);
84
+ await deviceConnection.getVersion();
85
+ return deviceConnection;
86
+ }
87
+ catch (error) {
88
+ throw new errors_1.TransportError('Cannot communicate with Ledger Cardano App', error);
89
+ }
90
+ }
91
+ static async establishDeviceConnection(communicationType, devicePath) {
92
+ let transport;
93
+ try {
94
+ transport = await LedgerKeyAgent.createTransport({ communicationType, devicePath });
95
+ if (!transport || !transport.deviceModel) {
96
+ throw new errors_1.TransportError('Missing transport');
97
+ }
98
+ const isSupportedLedgerModel = transport.deviceModel.id === 'nanoS' ||
99
+ transport.deviceModel.id === 'nanoX' ||
100
+ transport.deviceModel.id === 'nanoSP';
101
+ if (!isSupportedLedgerModel) {
102
+ throw new errors_1.TransportError(`Ledger device model: "${transport.deviceModel.id}" is not supported`);
103
+ }
104
+ return await LedgerKeyAgent.createDeviceConnection(transport);
105
+ }
106
+ catch (error) {
107
+ if (error.innerError.message.includes('cannot open device with path')) {
108
+ throw new errors_1.TransportError('Connection already established', error);
109
+ }
110
+ if (transport) {
111
+ transport.close();
112
+ }
113
+ throw new errors_1.TransportError('Establishing device connection failed', error);
114
+ }
115
+ }
116
+ static async checkDeviceConnection(communicationType, deviceConnection) {
117
+ try {
118
+ if (!deviceConnection) {
119
+ return await LedgerKeyAgent.establishDeviceConnection(communicationType);
120
+ }
121
+ return await LedgerKeyAgent.createDeviceConnection(deviceConnection.transport);
122
+ }
123
+ catch (error) {
124
+ if (error.name === 'DisconnectedDeviceDuringOperation') {
125
+ return await LedgerKeyAgent.establishDeviceConnection(communicationType);
126
+ }
127
+ throw error;
128
+ }
129
+ }
130
+ static async getXpub({ deviceConnection, communicationType, accountIndex }) {
131
+ try {
132
+ const recoveredDeviceConnection = await LedgerKeyAgent.checkDeviceConnection(communicationType, deviceConnection);
133
+ const derivationPath = `${types_1.CardanoKeyConst.PURPOSE}'/${types_1.CardanoKeyConst.COIN_TYPE}'/${accountIndex}'`;
134
+ const extendedPublicKey = await recoveredDeviceConnection.getExtendedPublicKey({
135
+ path: ledgerjs_hw_app_cardano_1.utils.str_to_path(derivationPath)
136
+ });
137
+ const xPubHex = `${extendedPublicKey.publicKeyHex}${extendedPublicKey.chainCodeHex}`;
138
+ return core_1.Cardano.Bip32PublicKey(xPubHex);
139
+ }
140
+ catch (error) {
141
+ if (error.code === 28169) {
142
+ throw new errors_1.AuthenticationError('Failed to export extended account public key', error);
143
+ }
144
+ throw transportTypedError(error);
145
+ }
146
+ }
147
+ static async getAppVersion(communicationType, deviceConnection) {
148
+ const recoveredDeviceConnection = await LedgerKeyAgent.checkDeviceConnection(communicationType, deviceConnection);
149
+ return await recoveredDeviceConnection.getVersion();
150
+ }
151
+ static async createWithDevice({ networkId, protocolMagic, accountIndex = 0, communicationType, deviceConnection }, dependencies) {
152
+ const deviceListPaths = await LedgerKeyAgent.getHidDeviceList(communicationType);
153
+ const activeDeviceConnection = await (deviceConnection
154
+ ? LedgerKeyAgent.checkDeviceConnection(communicationType, deviceConnection)
155
+ : LedgerKeyAgent.establishDeviceConnection(communicationType, deviceListPaths[0]));
156
+ const extendedAccountPublicKey = await LedgerKeyAgent.getXpub({
157
+ accountIndex,
158
+ communicationType,
159
+ deviceConnection: activeDeviceConnection
160
+ });
161
+ return new LedgerKeyAgent({
162
+ accountIndex,
163
+ communicationType,
164
+ deviceConnection: activeDeviceConnection,
165
+ extendedAccountPublicKey,
166
+ knownAddresses: [],
167
+ networkId,
168
+ protocolMagic
169
+ }, dependencies);
170
+ }
171
+ async signTransaction({ body }) {
172
+ try {
173
+ const cslTxBody = core_1.coreToCsl.txBody(body);
174
+ const ledgerTxData = await (0, util_1.txToLedger)({
175
+ cslTxBody,
176
+ inputResolver: this.inputResolver,
177
+ knownAddresses: this.knownAddresses,
178
+ networkId: this.networkId,
179
+ protocolMagic: __classPrivateFieldGet(this, _LedgerKeyAgent_protocolMagic, "f")
180
+ });
181
+ const deviceConnection = await LedgerKeyAgent.checkDeviceConnection(__classPrivateFieldGet(this, _LedgerKeyAgent_communicationType, "f"), this.deviceConnection);
182
+ const result = await deviceConnection.signTransaction(ledgerTxData);
183
+ return new Map(await Promise.all(result.witnesses.map(async (witness) => {
184
+ const publicKey = await this.derivePublicKey({
185
+ index: witness.path[types_1.Cip1852PathLevelIndexes.INDEX],
186
+ role: witness.path[types_1.Cip1852PathLevelIndexes.ROLE]
187
+ });
188
+ const signature = core_1.Cardano.Ed25519Signature(witness.witnessSignatureHex);
189
+ return [publicKey, signature];
190
+ })));
191
+ }
192
+ catch (error) {
193
+ if (error.code === 28169) {
194
+ throw new errors_1.AuthenticationError('Transaction signing aborted', error);
195
+ }
196
+ throw transportTypedError(error);
197
+ }
198
+ }
199
+ async signBlob() {
200
+ throw new core_1.NotImplementedError('signBlob');
201
+ }
202
+ async exportRootPrivateKey() {
203
+ throw new core_1.NotImplementedError('Operation not supported!');
204
+ }
205
+ }
206
+ exports.LedgerKeyAgent = LedgerKeyAgent;
207
+ _LedgerKeyAgent_communicationType = new WeakMap(), _LedgerKeyAgent_protocolMagic = new WeakMap();
208
+ //# sourceMappingURL=LedgerKeyAgent.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"LedgerKeyAgent.js","sourceRoot":"","sources":["../../src/LedgerKeyAgent.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,29 @@
1
+ import { Cardano } from '@cardano-sdk/core';
2
+ import { KeyAgentDependencies, SerializableTrezorKeyAgentData, SignBlobResult, TrezorConfig } from './types';
3
+ import { KeyAgentBase } from './KeyAgentBase';
4
+ import { Features } from 'trezor-connect';
5
+ export interface TrezorKeyAgentProps extends Omit<SerializableTrezorKeyAgentData, '__typename'> {
6
+ isTrezorInitialized?: boolean;
7
+ }
8
+ export interface GetTrezorXpubProps {
9
+ accountIndex: number;
10
+ }
11
+ export interface CreateTrezorKeyAgentProps {
12
+ networkId: Cardano.NetworkId;
13
+ accountIndex?: number;
14
+ protocolMagic: Cardano.NetworkMagic;
15
+ trezorConfig: TrezorConfig;
16
+ }
17
+ export declare class TrezorKeyAgent extends KeyAgentBase {
18
+ #private;
19
+ readonly isTrezorInitialized: Promise<boolean>;
20
+ constructor({ isTrezorInitialized, ...serializableData }: TrezorKeyAgentProps, dependencies: KeyAgentDependencies);
21
+ static initializeTrezorTransport({ manifest, communicationType, silentMode, lazyLoad }: TrezorConfig): Promise<boolean>;
22
+ static checkDeviceConnection(): Promise<Features>;
23
+ static getXpub({ accountIndex }: GetTrezorXpubProps): Promise<Cardano.Bip32PublicKey>;
24
+ static createWithDevice({ networkId, accountIndex, protocolMagic, trezorConfig }: CreateTrezorKeyAgentProps, dependencies: KeyAgentDependencies): Promise<TrezorKeyAgent>;
25
+ signTransaction({ body }: Cardano.TxBodyWithHash): Promise<Cardano.Signatures>;
26
+ signBlob(): Promise<SignBlobResult>;
27
+ exportRootPrivateKey(): Promise<Cardano.Bip32PrivateKey>;
28
+ }
29
+ //# sourceMappingURL=TrezorKeyAgent.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"TrezorKeyAgent.d.ts","sourceRoot":"","sources":["../../src/TrezorKeyAgent.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,OAAO,EAAkC,MAAM,mBAAmB,CAAC;AAC5E,OAAO,EAGL,oBAAoB,EAEpB,8BAA8B,EAC9B,cAAc,EACd,YAAY,EACb,MAAM,SAAS,CAAC;AACjB,OAAO,EAAE,YAAY,EAAE,MAAM,gBAAgB,CAAC;AAE9C,OAAsB,EAAE,QAAQ,EAAE,MAAM,gBAAgB,CAAC;AAEzD,MAAM,WAAW,mBAAoB,SAAQ,IAAI,CAAC,8BAA8B,EAAE,YAAY,CAAC;IAC7F,mBAAmB,CAAC,EAAE,OAAO,CAAC;CAC/B;AAED,MAAM,WAAW,kBAAkB;IACjC,YAAY,EAAE,MAAM,CAAC;CACtB;AAED,MAAM,WAAW,yBAAyB;IACxC,SAAS,EAAE,OAAO,CAAC,SAAS,CAAC;IAC7B,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,aAAa,EAAE,OAAO,CAAC,YAAY,CAAC;IACpC,YAAY,EAAE,YAAY,CAAC;CAC5B;AAKD,qBAAa,cAAe,SAAQ,YAAY;;IAC9C,QAAQ,CAAC,mBAAmB,EAAE,OAAO,CAAC,OAAO,CAAC,CAAC;gBAGnC,EAAE,mBAAmB,EAAE,GAAG,gBAAgB,EAAE,EAAE,mBAAmB,EAAE,YAAY,EAAE,oBAAoB;WAWpG,yBAAyB,CAAC,EACrC,QAAQ,EACR,iBAAiB,EACjB,UAAkB,EAClB,QAAgB,EACjB,EAAE,YAAY,GAAG,OAAO,CAAC,OAAO,CAAC;WAwBrB,qBAAqB,IAAI,OAAO,CAAC,QAAQ,CAAC;WAkB1C,OAAO,CAAC,EAAE,YAAY,EAAE,EAAE,kBAAkB,GAAG,OAAO,CAAC,OAAO,CAAC,cAAc,CAAC;WAoB9E,gBAAgB,CAC3B,EAAE,SAAS,EAAE,YAAgB,EAAE,aAAa,EAAE,YAAY,EAAE,EAAE,yBAAyB,EACvF,YAAY,EAAE,oBAAoB;IAkB9B,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"}
@@ -0,0 +1,134 @@
1
+ "use strict";
2
+ var __classPrivateFieldSet = (this && this.__classPrivateFieldSet) || function (receiver, state, value, kind, f) {
3
+ if (kind === "m") throw new TypeError("Private method is not writable");
4
+ if (kind === "a" && !f) throw new TypeError("Private accessor was defined without a setter");
5
+ 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");
6
+ return (kind === "a" ? f.call(receiver, value) : f ? f.value = value : state.set(receiver, value)), value;
7
+ };
8
+ var __classPrivateFieldGet = (this && this.__classPrivateFieldGet) || function (receiver, state, kind, f) {
9
+ if (kind === "a" && !f) throw new TypeError("Private accessor was defined without a getter");
10
+ 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");
11
+ return kind === "m" ? f : kind === "a" ? f.call(receiver) : f ? f.value : state.get(receiver);
12
+ };
13
+ var __importDefault = (this && this.__importDefault) || function (mod) {
14
+ return (mod && mod.__esModule) ? mod : { "default": mod };
15
+ };
16
+ var _TrezorKeyAgent_protocolMagic;
17
+ Object.defineProperty(exports, "__esModule", { value: true });
18
+ exports.TrezorKeyAgent = void 0;
19
+ const errors_1 = require("./errors");
20
+ const core_1 = require("@cardano-sdk/core");
21
+ const types_1 = require("./types");
22
+ const KeyAgentBase_1 = require("./KeyAgentBase");
23
+ const util_1 = require("./util");
24
+ const trezor_connect_1 = __importDefault(require("trezor-connect"));
25
+ const transportTypedError = (error) => new errors_1.AuthenticationError('Trezor transport failed', new errors_1.TransportError('Trezor transport failed', error));
26
+ class TrezorKeyAgent extends KeyAgentBase_1.KeyAgentBase {
27
+ constructor({ isTrezorInitialized, ...serializableData }, dependencies) {
28
+ super({ ...serializableData, __typename: types_1.KeyAgentType.Trezor }, dependencies);
29
+ _TrezorKeyAgent_protocolMagic.set(this, void 0);
30
+ __classPrivateFieldSet(this, _TrezorKeyAgent_protocolMagic, serializableData.protocolMagic, "f");
31
+ if (!isTrezorInitialized) {
32
+ this.isTrezorInitialized = TrezorKeyAgent.initializeTrezorTransport(serializableData.trezorConfig);
33
+ }
34
+ }
35
+ static async initializeTrezorTransport({ manifest, communicationType, silentMode = false, lazyLoad = false }) {
36
+ try {
37
+ await trezor_connect_1.default.init({
38
+ lazyLoad: communicationType !== types_1.CommunicationType.Node && lazyLoad,
39
+ manifest,
40
+ popup: communicationType !== types_1.CommunicationType.Node && !silentMode
41
+ });
42
+ return true;
43
+ }
44
+ catch (error) {
45
+ if (error.code === 'Init_AlreadyInitialized')
46
+ return true;
47
+ throw transportTypedError(error);
48
+ }
49
+ }
50
+ static async checkDeviceConnection() {
51
+ try {
52
+ const deviceFeatures = await trezor_connect_1.default.getFeatures();
53
+ if (!deviceFeatures.success) {
54
+ throw new errors_1.TransportError('Failed to get device', deviceFeatures.payload);
55
+ }
56
+ if (deviceFeatures.payload.model !== 'T') {
57
+ throw new errors_1.TransportError(`Trezor device model "${deviceFeatures.payload.model}" is not supported.`);
58
+ }
59
+ return deviceFeatures.payload;
60
+ }
61
+ catch (error) {
62
+ throw transportTypedError(error);
63
+ }
64
+ }
65
+ static async getXpub({ accountIndex }) {
66
+ try {
67
+ await TrezorKeyAgent.checkDeviceConnection();
68
+ const derivationPath = `m/${types_1.CardanoKeyConst.PURPOSE}'/${types_1.CardanoKeyConst.COIN_TYPE}'/${accountIndex}'`;
69
+ const extendedPublicKey = await trezor_connect_1.default.cardanoGetPublicKey({
70
+ path: derivationPath,
71
+ showOnTrezor: true
72
+ });
73
+ if (!extendedPublicKey.success) {
74
+ throw new errors_1.TransportError('Failed to export extended account public key', extendedPublicKey.payload);
75
+ }
76
+ return core_1.Cardano.Bip32PublicKey(extendedPublicKey.payload.publicKey);
77
+ }
78
+ catch (error) {
79
+ throw transportTypedError(error);
80
+ }
81
+ }
82
+ static async createWithDevice({ networkId, accountIndex = 0, protocolMagic, trezorConfig }, dependencies) {
83
+ const isTrezorInitialized = await TrezorKeyAgent.initializeTrezorTransport(trezorConfig);
84
+ const extendedAccountPublicKey = await TrezorKeyAgent.getXpub({ accountIndex });
85
+ return new TrezorKeyAgent({
86
+ accountIndex,
87
+ extendedAccountPublicKey,
88
+ isTrezorInitialized,
89
+ knownAddresses: [],
90
+ networkId,
91
+ protocolMagic,
92
+ trezorConfig
93
+ }, dependencies);
94
+ }
95
+ async signTransaction({ body }) {
96
+ try {
97
+ await this.isTrezorInitialized;
98
+ const cslTxBody = core_1.coreToCsl.txBody(body);
99
+ const trezorTxData = await (0, util_1.txToTrezor)({
100
+ accountIndex: this.accountIndex,
101
+ cslTxBody,
102
+ inputResolver: this.inputResolver,
103
+ knownAddresses: this.knownAddresses,
104
+ networkId: this.networkId,
105
+ protocolMagic: __classPrivateFieldGet(this, _TrezorKeyAgent_protocolMagic, "f")
106
+ });
107
+ const result = await trezor_connect_1.default.cardanoSignTransaction(trezorTxData);
108
+ if (!result.success) {
109
+ throw new errors_1.TransportError('Failed to export extended account public key', result.payload);
110
+ }
111
+ const signedData = result.payload;
112
+ return new Map(await Promise.all(signedData.witnesses.map(async (witness) => {
113
+ const publicKey = core_1.Cardano.Ed25519PublicKey(witness.pubKey);
114
+ const signature = core_1.Cardano.Ed25519Signature(witness.signature);
115
+ return [publicKey, signature];
116
+ })));
117
+ }
118
+ catch (error) {
119
+ if (error.innerError.code === 'Failure_ActionCancelled') {
120
+ throw new errors_1.AuthenticationError('Transaction signing aborted', error);
121
+ }
122
+ throw transportTypedError(error);
123
+ }
124
+ }
125
+ async signBlob() {
126
+ throw new core_1.NotImplementedError('signBlob');
127
+ }
128
+ async exportRootPrivateKey() {
129
+ throw new core_1.NotImplementedError('Operation not supported!');
130
+ }
131
+ }
132
+ exports.TrezorKeyAgent = TrezorKeyAgent;
133
+ _TrezorKeyAgent_protocolMagic = new WeakMap();
134
+ //# sourceMappingURL=TrezorKeyAgent.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"TrezorKeyAgent.js","sourceRoot":"","sources":["../../src/TrezorKeyAgent.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,22 @@
1
+ import { AsyncKeyAgent } from '../types';
2
+ import { Cardano } from '@cardano-sdk/core';
3
+ import { Cip30DataSignature } from '@cardano-sdk/cip30';
4
+ import { CustomError } from 'ts-custom-error';
5
+ export interface Cip30SignDataRequest {
6
+ keyAgent: AsyncKeyAgent;
7
+ signWith: Cardano.Address | Cardano.RewardAccount;
8
+ payload: Cardano.util.HexBlob;
9
+ }
10
+ export declare enum Cip30DataSignErrorCode {
11
+ ProofGeneration = 1,
12
+ AddressNotPK = 2,
13
+ UserDeclined = 3
14
+ }
15
+ export declare class Cip30DataSignError extends CustomError {
16
+ readonly code: Cip30DataSignErrorCode;
17
+ readonly info: string;
18
+ readonly innerError: unknown;
19
+ constructor(code: Cip30DataSignErrorCode, info: string, innerError?: unknown);
20
+ }
21
+ export declare const cip30signData: ({ keyAgent, signWith, payload }: Cip30SignDataRequest) => Promise<Cip30DataSignature>;
22
+ //# sourceMappingURL=cip30signData.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"cip30signData.d.ts","sourceRoot":"","sources":["../../../src/cip8/cip30signData.ts"],"names":[],"mappings":"AAcA,OAAO,EAAE,aAAa,EAAW,MAAM,UAAU,CAAC;AAClD,OAAO,EAAE,OAAO,EAAyB,MAAM,mBAAmB,CAAC;AACnE,OAAO,EAAE,kBAAkB,EAAE,MAAM,oBAAoB,CAAC;AAExD,OAAO,EAAE,WAAW,EAAE,MAAM,iBAAiB,CAAC;AAI9C,MAAM,WAAW,oBAAoB;IACnC,QAAQ,EAAE,aAAa,CAAC;IACxB,QAAQ,EAAE,OAAO,CAAC,OAAO,GAAG,OAAO,CAAC,aAAa,CAAC;IAClD,OAAO,EAAE,OAAO,CAAC,IAAI,CAAC,OAAO,CAAC;CAC/B;AAED,oBAAY,sBAAsB;IAChC,eAAe,IAAI;IACnB,YAAY,IAAI;IAChB,YAAY,IAAI;CACjB;AAED,qBAAa,kBAAmB,SAAQ,WAAW;aAE/B,IAAI,EAAE,sBAAsB;aAC5B,IAAI,EAAE,MAAM;aACZ,UAAU,EAAE,OAAO;gBAFnB,IAAI,EAAE,sBAAsB,EAC5B,IAAI,EAAE,MAAM,EACZ,UAAU,GAAE,OAAc;CAI7C;AA0DD,eAAO,MAAM,aAAa,oCAIvB,oBAAoB,KAAG,QAAQ,kBAAkB,CAmBnD,CAAC"}
@@ -0,0 +1,81 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.cip30signData = exports.Cip30DataSignError = exports.Cip30DataSignErrorCode = void 0;
4
+ const cardano_message_signing_nodejs_1 = require("@emurgo/cardano-message-signing-nodejs");
5
+ const core_1 = require("@cardano-sdk/core");
6
+ const util_1 = require("./util");
7
+ const ts_custom_error_1 = require("ts-custom-error");
8
+ const util_2 = require("../util");
9
+ const rxjs_1 = require("rxjs");
10
+ var Cip30DataSignErrorCode;
11
+ (function (Cip30DataSignErrorCode) {
12
+ Cip30DataSignErrorCode[Cip30DataSignErrorCode["ProofGeneration"] = 1] = "ProofGeneration";
13
+ Cip30DataSignErrorCode[Cip30DataSignErrorCode["AddressNotPK"] = 2] = "AddressNotPK";
14
+ Cip30DataSignErrorCode[Cip30DataSignErrorCode["UserDeclined"] = 3] = "UserDeclined";
15
+ })(Cip30DataSignErrorCode = exports.Cip30DataSignErrorCode || (exports.Cip30DataSignErrorCode = {}));
16
+ class Cip30DataSignError extends ts_custom_error_1.CustomError {
17
+ constructor(code, info, innerError = null) {
18
+ super(`DataSignError code: ${code}`);
19
+ this.code = code;
20
+ this.info = info;
21
+ this.innerError = innerError;
22
+ }
23
+ }
24
+ exports.Cip30DataSignError = Cip30DataSignError;
25
+ const getAddressBytes = (signWith) => {
26
+ const cslAddress = (0, core_1.parseCslAddress)(signWith.toString());
27
+ if (!cslAddress) {
28
+ throw new Cip30DataSignError(Cip30DataSignErrorCode.AddressNotPK, 'Invalid address');
29
+ }
30
+ return cslAddress.to_bytes();
31
+ };
32
+ const getDerivationPath = async (signWith, keyAgent) => {
33
+ const isRewardAccount = signWith.startsWith('stake');
34
+ if (isRewardAccount) {
35
+ return util_2.STAKE_KEY_DERIVATION_PATH;
36
+ }
37
+ const knownAddresses = await (0, rxjs_1.firstValueFrom)(keyAgent.knownAddresses$);
38
+ const knownAddress = knownAddresses.find(({ address }) => address === signWith);
39
+ if (!knownAddress) {
40
+ throw new Cip30DataSignError(Cip30DataSignErrorCode.ProofGeneration, 'Unknown address');
41
+ }
42
+ return { index: knownAddress.index, role: knownAddress.type };
43
+ };
44
+ const createSigStructureHeaders = (addressBytes) => {
45
+ const protectedHeaders = cardano_message_signing_nodejs_1.HeaderMap.new();
46
+ protectedHeaders.set_key_id(addressBytes);
47
+ protectedHeaders.set_header(util_1.CoseLabel.address, cardano_message_signing_nodejs_1.CBORValue.new_bytes(addressBytes));
48
+ protectedHeaders.set_algorithm_id(cardano_message_signing_nodejs_1.Label.from_algorithm_id(cardano_message_signing_nodejs_1.AlgorithmId.EdDSA));
49
+ return protectedHeaders;
50
+ };
51
+ const signSigStructure = (keyAgent, derivationPath, sigStructure) => {
52
+ try {
53
+ return keyAgent.signBlob(derivationPath, core_1.util.bytesToHex(sigStructure.to_bytes()));
54
+ }
55
+ catch (error) {
56
+ throw new Cip30DataSignError(Cip30DataSignErrorCode.UserDeclined, 'Failed to sign', error);
57
+ }
58
+ };
59
+ const createCoseKey = (addressBytes, publicKey) => {
60
+ const coseKey = cardano_message_signing_nodejs_1.COSEKey.new(cardano_message_signing_nodejs_1.Label.from_key_type(cardano_message_signing_nodejs_1.KeyType.OKP));
61
+ coseKey.set_key_id(addressBytes);
62
+ coseKey.set_algorithm_id(cardano_message_signing_nodejs_1.Label.from_algorithm_id(cardano_message_signing_nodejs_1.AlgorithmId.EdDSA));
63
+ coseKey.set_header(util_1.CoseLabel.crv, cardano_message_signing_nodejs_1.CBORValue.from_label(cardano_message_signing_nodejs_1.Label.from_curve_type(cardano_message_signing_nodejs_1.CurveType.Ed25519)));
64
+ coseKey.set_header(util_1.CoseLabel.x, cardano_message_signing_nodejs_1.CBORValue.new_bytes(Buffer.from(publicKey, 'hex')));
65
+ return coseKey;
66
+ };
67
+ const cip30signData = async ({ keyAgent, signWith, payload }) => {
68
+ const addressBytes = getAddressBytes(signWith);
69
+ const derivationPath = await getDerivationPath(signWith, keyAgent);
70
+ const builder = cardano_message_signing_nodejs_1.COSESign1Builder.new(cardano_message_signing_nodejs_1.Headers.new(cardano_message_signing_nodejs_1.ProtectedHeaderMap.new(createSigStructureHeaders(addressBytes)), cardano_message_signing_nodejs_1.HeaderMap.new()), Buffer.from(payload, 'hex'), false);
71
+ const sigStructure = builder.make_data_to_sign();
72
+ const { signature, publicKey } = await signSigStructure(keyAgent, derivationPath, sigStructure);
73
+ const coseSign1 = builder.build(Buffer.from(signature, 'hex'));
74
+ const coseKey = createCoseKey(addressBytes, publicKey);
75
+ return {
76
+ key: core_1.util.bytesToHex(coseKey.to_bytes()),
77
+ signature: core_1.util.bytesToHex(coseSign1.to_bytes())
78
+ };
79
+ };
80
+ exports.cip30signData = cip30signData;
81
+ //# sourceMappingURL=cip30signData.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"cip30signData.js","sourceRoot":"","sources":["../../../src/cip8/cip30signData.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,2 @@
1
+ export * from './cip30signData';
2
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/cip8/index.ts"],"names":[],"mappings":"AAAA,cAAc,iBAAiB,CAAC"}
@@ -0,0 +1,18 @@
1
+ "use strict";
2
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
+ if (k2 === undefined) k2 = k;
4
+ var desc = Object.getOwnPropertyDescriptor(m, k);
5
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
6
+ desc = { enumerable: true, get: function() { return m[k]; } };
7
+ }
8
+ Object.defineProperty(o, k2, desc);
9
+ }) : (function(o, m, k, k2) {
10
+ if (k2 === undefined) k2 = k;
11
+ o[k2] = m[k];
12
+ }));
13
+ var __exportStar = (this && this.__exportStar) || function(m, exports) {
14
+ for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
15
+ };
16
+ Object.defineProperty(exports, "__esModule", { value: true });
17
+ __exportStar(require("./cip30signData"), exports);
18
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/cip8/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA,kDAAgC"}
@@ -0,0 +1,4 @@
1
+ import { Cardano } from '@cardano-sdk/core';
2
+ export declare type CoseSign1CborHex = Cardano.util.HexBlob;
3
+ export declare type CoseKeyCborHex = Cardano.util.HexBlob;
4
+ //# sourceMappingURL=types.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../src/cip8/types.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,mBAAmB,CAAC;AAE5C,oBAAY,gBAAgB,GAAG,OAAO,CAAC,IAAI,CAAC,OAAO,CAAC;AACpD,oBAAY,cAAc,GAAG,OAAO,CAAC,IAAI,CAAC,OAAO,CAAC"}
@@ -0,0 +1,3 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ //# sourceMappingURL=types.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.js","sourceRoot":"","sources":["../../../src/cip8/types.ts"],"names":[],"mappings":""}
@@ -0,0 +1,7 @@
1
+ import { Label } from '@emurgo/cardano-message-signing-nodejs';
2
+ export declare const CoseLabel: {
3
+ address: Label;
4
+ crv: Label;
5
+ x: Label;
6
+ };
7
+ //# sourceMappingURL=util.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"util.d.ts","sourceRoot":"","sources":["../../../src/cip8/util.ts"],"names":[],"mappings":"AAAA,OAAO,EAAO,KAAK,EAAE,MAAM,wCAAwC,CAAC;AAEpE,eAAO,MAAM,SAAS;;;;CAIrB,CAAC"}
@@ -0,0 +1,10 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.CoseLabel = void 0;
4
+ const cardano_message_signing_nodejs_1 = require("@emurgo/cardano-message-signing-nodejs");
5
+ exports.CoseLabel = {
6
+ address: cardano_message_signing_nodejs_1.Label.new_text('address'),
7
+ crv: cardano_message_signing_nodejs_1.Label.new_int(cardano_message_signing_nodejs_1.Int.new_i32(-1)),
8
+ x: cardano_message_signing_nodejs_1.Label.new_int(cardano_message_signing_nodejs_1.Int.new_i32(-2))
9
+ };
10
+ //# sourceMappingURL=util.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"util.js","sourceRoot":"","sources":["../../../src/cip8/util.ts"],"names":[],"mappings":";;;AAAA,2FAAoE;AAEvD,QAAA,SAAS,GAAG;IACvB,OAAO,EAAE,sCAAK,CAAC,QAAQ,CAAC,SAAS,CAAC;IAClC,GAAG,EAAE,sCAAK,CAAC,OAAO,CAAC,oCAAG,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC;IACnC,CAAC,EAAE,sCAAK,CAAC,OAAO,CAAC,oCAAG,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC;CAClC,CAAC"}
@@ -0,0 +1,4 @@
1
+ export declare const createPbkdf2Key: (password: Uint8Array, salt: Uint8Array | Uint16Array) => Promise<Buffer>;
2
+ export declare const emip3encrypt: (data: Uint8Array, password: Uint8Array) => Promise<Uint8Array>;
3
+ export declare const emip3decrypt: (encrypted: Uint8Array, password: Uint8Array) => Promise<Uint8Array>;
4
+ //# sourceMappingURL=emip3.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"emip3.d.ts","sourceRoot":"","sources":["../../src/emip3.ts"],"names":[],"mappings":"AAWA,eAAO,MAAM,eAAe,aAAoB,UAAU,QAAQ,UAAU,GAAG,WAAW,oBAMvF,CAAC;AAKJ,eAAO,MAAM,YAAY,SAAgB,UAAU,YAAY,UAAU,KAAG,QAAQ,UAAU,CAY7F,CAAC;AAKF,eAAO,MAAM,YAAY,cAAqB,UAAU,YAAY,UAAU,KAAG,QAAQ,UAAU,CAUlG,CAAC"}