@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.
- package/LICENSE +201 -0
- package/NOTICE +5 -0
- package/README.md +1 -0
- package/dist/cjs/InMemoryKeyAgent.d.ts +23 -0
- package/dist/cjs/InMemoryKeyAgent.d.ts.map +1 -0
- package/dist/cjs/InMemoryKeyAgent.js +136 -0
- package/dist/cjs/InMemoryKeyAgent.js.map +1 -0
- package/dist/cjs/KeyAgentBase.d.ts +20 -0
- package/dist/cjs/KeyAgentBase.d.ts.map +1 -0
- package/dist/cjs/KeyAgentBase.js +77 -0
- package/dist/cjs/KeyAgentBase.js.map +1 -0
- package/dist/cjs/LedgerKeyAgent.d.ts +42 -0
- package/dist/cjs/LedgerKeyAgent.d.ts.map +1 -0
- package/dist/cjs/LedgerKeyAgent.js +208 -0
- package/dist/cjs/LedgerKeyAgent.js.map +1 -0
- package/dist/cjs/TrezorKeyAgent.d.ts +29 -0
- package/dist/cjs/TrezorKeyAgent.d.ts.map +1 -0
- package/dist/cjs/TrezorKeyAgent.js +134 -0
- package/dist/cjs/TrezorKeyAgent.js.map +1 -0
- package/dist/cjs/cip8/cip30signData.d.ts +22 -0
- package/dist/cjs/cip8/cip30signData.d.ts.map +1 -0
- package/dist/cjs/cip8/cip30signData.js +81 -0
- package/dist/cjs/cip8/cip30signData.js.map +1 -0
- package/dist/cjs/cip8/index.d.ts +2 -0
- package/dist/cjs/cip8/index.d.ts.map +1 -0
- package/dist/cjs/cip8/index.js +18 -0
- package/dist/cjs/cip8/index.js.map +1 -0
- package/dist/cjs/cip8/types.d.ts +4 -0
- package/dist/cjs/cip8/types.d.ts.map +1 -0
- package/dist/cjs/cip8/types.js +3 -0
- package/dist/cjs/cip8/types.js.map +1 -0
- package/dist/cjs/cip8/util.d.ts +7 -0
- package/dist/cjs/cip8/util.d.ts.map +1 -0
- package/dist/cjs/cip8/util.js +10 -0
- package/dist/cjs/cip8/util.js.map +1 -0
- package/dist/cjs/emip3.d.ts +4 -0
- package/dist/cjs/emip3.d.ts.map +1 -0
- package/dist/cjs/emip3.js +48 -0
- package/dist/cjs/emip3.js.map +1 -0
- package/dist/cjs/errors/AuthenticationError.d.ts +6 -0
- package/dist/cjs/errors/AuthenticationError.d.ts.map +1 -0
- package/dist/cjs/errors/AuthenticationError.js +16 -0
- package/dist/cjs/errors/AuthenticationError.js.map +1 -0
- package/dist/cjs/errors/HwMappingError.d.ts +6 -0
- package/dist/cjs/errors/HwMappingError.d.ts.map +1 -0
- package/dist/cjs/errors/HwMappingError.js +16 -0
- package/dist/cjs/errors/HwMappingError.js.map +1 -0
- package/dist/cjs/errors/InvalidMnemonicError.d.ts +5 -0
- package/dist/cjs/errors/InvalidMnemonicError.d.ts.map +1 -0
- package/dist/cjs/errors/InvalidMnemonicError.js +13 -0
- package/dist/cjs/errors/InvalidMnemonicError.js.map +1 -0
- package/dist/cjs/errors/InvalidSerializableDataError.d.ts +5 -0
- package/dist/cjs/errors/InvalidSerializableDataError.d.ts.map +1 -0
- package/dist/cjs/errors/InvalidSerializableDataError.js +15 -0
- package/dist/cjs/errors/InvalidSerializableDataError.js.map +1 -0
- package/dist/cjs/errors/ProofGenerationError.d.ts +6 -0
- package/dist/cjs/errors/ProofGenerationError.d.ts.map +1 -0
- package/dist/cjs/errors/ProofGenerationError.js +16 -0
- package/dist/cjs/errors/ProofGenerationError.js.map +1 -0
- package/dist/cjs/errors/TransportError.d.ts +6 -0
- package/dist/cjs/errors/TransportError.d.ts.map +1 -0
- package/dist/cjs/errors/TransportError.js +16 -0
- package/dist/cjs/errors/TransportError.js.map +1 -0
- package/dist/cjs/errors/index.d.ts +7 -0
- package/dist/cjs/errors/index.d.ts.map +1 -0
- package/dist/cjs/errors/index.js +23 -0
- package/dist/cjs/errors/index.js.map +1 -0
- package/dist/cjs/index.d.ts +12 -0
- package/dist/cjs/index.d.ts.map +1 -0
- package/dist/cjs/index.js +42 -0
- package/dist/cjs/index.js.map +1 -0
- package/dist/cjs/package.json +3 -0
- package/dist/cjs/restoreKeyAgent.d.ts +9 -0
- package/dist/cjs/restoreKeyAgent.d.ts.map +1 -0
- package/dist/cjs/restoreKeyAgent.js +31 -0
- package/dist/cjs/restoreKeyAgent.js.map +1 -0
- package/dist/cjs/tsconfig.tsbuildinfo +1 -0
- package/dist/cjs/types.d.ts +127 -0
- package/dist/cjs/types.d.ts.map +1 -0
- package/dist/cjs/types.js +43 -0
- package/dist/cjs/types.js.map +1 -0
- package/dist/cjs/util/KeyAgentTransactionSigner.d.ts +8 -0
- package/dist/cjs/util/KeyAgentTransactionSigner.d.ts.map +1 -0
- package/dist/cjs/util/KeyAgentTransactionSigner.js +38 -0
- package/dist/cjs/util/KeyAgentTransactionSigner.js.map +1 -0
- package/dist/cjs/util/bip39.d.ts +8 -0
- package/dist/cjs/util/bip39.d.ts.map +1 -0
- package/dist/cjs/util/bip39.js +39 -0
- package/dist/cjs/util/bip39.js.map +1 -0
- package/dist/cjs/util/createAsyncKeyAgent.d.ts +3 -0
- package/dist/cjs/util/createAsyncKeyAgent.d.ts.map +1 -0
- package/dist/cjs/util/createAsyncKeyAgent.js +26 -0
- package/dist/cjs/util/createAsyncKeyAgent.js.map +1 -0
- package/dist/cjs/util/index.d.ts +8 -0
- package/dist/cjs/util/index.d.ts.map +1 -0
- package/dist/cjs/util/index.js +24 -0
- package/dist/cjs/util/index.js.map +1 -0
- package/dist/cjs/util/key.d.ts +11 -0
- package/dist/cjs/util/key.d.ts.map +1 -0
- package/dist/cjs/util/key.js +30 -0
- package/dist/cjs/util/key.js.map +1 -0
- package/dist/cjs/util/mapHardwareSigningData.d.ts +38 -0
- package/dist/cjs/util/mapHardwareSigningData.d.ts.map +1 -0
- package/dist/cjs/util/mapHardwareSigningData.js +864 -0
- package/dist/cjs/util/mapHardwareSigningData.js.map +1 -0
- package/dist/cjs/util/ownSignatureKeyPaths.d.ts +4 -0
- package/dist/cjs/util/ownSignatureKeyPaths.d.ts.map +1 -0
- package/dist/cjs/util/ownSignatureKeyPaths.js +24 -0
- package/dist/cjs/util/ownSignatureKeyPaths.js.map +1 -0
- package/dist/cjs/util/stubSignTransaction.d.ts +4 -0
- package/dist/cjs/util/stubSignTransaction.d.ts.map +1 -0
- package/dist/cjs/util/stubSignTransaction.js +23 -0
- package/dist/cjs/util/stubSignTransaction.js.map +1 -0
- package/dist/esm/InMemoryKeyAgent.d.ts +23 -0
- package/dist/esm/InMemoryKeyAgent.d.ts.map +1 -0
- package/dist/esm/InMemoryKeyAgent.js +106 -0
- package/dist/esm/InMemoryKeyAgent.js.map +1 -0
- package/dist/esm/KeyAgentBase.d.ts +20 -0
- package/dist/esm/KeyAgentBase.d.ts.map +1 -0
- package/dist/esm/KeyAgentBase.js +73 -0
- package/dist/esm/KeyAgentBase.js.map +1 -0
- package/dist/esm/LedgerKeyAgent.d.ts +42 -0
- package/dist/esm/LedgerKeyAgent.d.ts.map +1 -0
- package/dist/esm/LedgerKeyAgent.js +178 -0
- package/dist/esm/LedgerKeyAgent.js.map +1 -0
- package/dist/esm/TrezorKeyAgent.d.ts +29 -0
- package/dist/esm/TrezorKeyAgent.d.ts.map +1 -0
- package/dist/esm/TrezorKeyAgent.js +127 -0
- package/dist/esm/TrezorKeyAgent.js.map +1 -0
- package/dist/esm/cip8/cip30signData.d.ts +22 -0
- package/dist/esm/cip8/cip30signData.d.ts.map +1 -0
- package/dist/esm/cip8/cip30signData.js +76 -0
- package/dist/esm/cip8/cip30signData.js.map +1 -0
- package/dist/esm/cip8/index.d.ts +2 -0
- package/dist/esm/cip8/index.d.ts.map +1 -0
- package/dist/esm/cip8/index.js +2 -0
- package/dist/esm/cip8/index.js.map +1 -0
- package/dist/esm/cip8/types.d.ts +4 -0
- package/dist/esm/cip8/types.d.ts.map +1 -0
- package/dist/esm/cip8/types.js +2 -0
- package/dist/esm/cip8/types.js.map +1 -0
- package/dist/esm/cip8/util.d.ts +7 -0
- package/dist/esm/cip8/util.d.ts.map +1 -0
- package/dist/esm/cip8/util.js +7 -0
- package/dist/esm/cip8/util.js.map +1 -0
- package/dist/esm/emip3.d.ts +4 -0
- package/dist/esm/emip3.d.ts.map +1 -0
- package/dist/esm/emip3.js +39 -0
- package/dist/esm/emip3.js.map +1 -0
- package/dist/esm/errors/AuthenticationError.d.ts +6 -0
- package/dist/esm/errors/AuthenticationError.d.ts.map +1 -0
- package/dist/esm/errors/AuthenticationError.js +12 -0
- package/dist/esm/errors/AuthenticationError.js.map +1 -0
- package/dist/esm/errors/HwMappingError.d.ts +6 -0
- package/dist/esm/errors/HwMappingError.d.ts.map +1 -0
- package/dist/esm/errors/HwMappingError.js +12 -0
- package/dist/esm/errors/HwMappingError.js.map +1 -0
- package/dist/esm/errors/InvalidMnemonicError.d.ts +5 -0
- package/dist/esm/errors/InvalidMnemonicError.d.ts.map +1 -0
- package/dist/esm/errors/InvalidMnemonicError.js +9 -0
- package/dist/esm/errors/InvalidMnemonicError.js.map +1 -0
- package/dist/esm/errors/InvalidSerializableDataError.d.ts +5 -0
- package/dist/esm/errors/InvalidSerializableDataError.d.ts.map +1 -0
- package/dist/esm/errors/InvalidSerializableDataError.js +11 -0
- package/dist/esm/errors/InvalidSerializableDataError.js.map +1 -0
- package/dist/esm/errors/ProofGenerationError.d.ts +6 -0
- package/dist/esm/errors/ProofGenerationError.d.ts.map +1 -0
- package/dist/esm/errors/ProofGenerationError.js +12 -0
- package/dist/esm/errors/ProofGenerationError.js.map +1 -0
- package/dist/esm/errors/TransportError.d.ts +6 -0
- package/dist/esm/errors/TransportError.d.ts.map +1 -0
- package/dist/esm/errors/TransportError.js +12 -0
- package/dist/esm/errors/TransportError.js.map +1 -0
- package/dist/esm/errors/index.d.ts +7 -0
- package/dist/esm/errors/index.d.ts.map +1 -0
- package/dist/esm/errors/index.js +7 -0
- package/dist/esm/errors/index.js.map +1 -0
- package/dist/esm/index.d.ts +12 -0
- package/dist/esm/index.d.ts.map +1 -0
- package/dist/esm/index.js +12 -0
- package/dist/esm/index.js.map +1 -0
- package/dist/esm/package.json +3 -0
- package/dist/esm/restoreKeyAgent.d.ts +9 -0
- package/dist/esm/restoreKeyAgent.d.ts.map +1 -0
- package/dist/esm/restoreKeyAgent.js +27 -0
- package/dist/esm/restoreKeyAgent.js.map +1 -0
- package/dist/esm/tsconfig.tsbuildinfo +1 -0
- package/dist/esm/types.d.ts +127 -0
- package/dist/esm/types.d.ts.map +1 -0
- package/dist/esm/types.js +40 -0
- package/dist/esm/types.js.map +1 -0
- package/dist/esm/util/KeyAgentTransactionSigner.d.ts +8 -0
- package/dist/esm/util/KeyAgentTransactionSigner.d.ts.map +1 -0
- package/dist/esm/util/KeyAgentTransactionSigner.js +34 -0
- package/dist/esm/util/KeyAgentTransactionSigner.js.map +1 -0
- package/dist/esm/util/bip39.d.ts +8 -0
- package/dist/esm/util/bip39.d.ts.map +1 -0
- package/dist/esm/util/bip39.js +8 -0
- package/dist/esm/util/bip39.js.map +1 -0
- package/dist/esm/util/createAsyncKeyAgent.d.ts +3 -0
- package/dist/esm/util/createAsyncKeyAgent.d.ts.map +1 -0
- package/dist/esm/util/createAsyncKeyAgent.js +22 -0
- package/dist/esm/util/createAsyncKeyAgent.js.map +1 -0
- package/dist/esm/util/index.d.ts +8 -0
- package/dist/esm/util/index.d.ts.map +1 -0
- package/dist/esm/util/index.js +8 -0
- package/dist/esm/util/index.js.map +1 -0
- package/dist/esm/util/key.d.ts +11 -0
- package/dist/esm/util/key.d.ts.map +1 -0
- package/dist/esm/util/key.js +24 -0
- package/dist/esm/util/key.js.map +1 -0
- package/dist/esm/util/mapHardwareSigningData.d.ts +38 -0
- package/dist/esm/util/mapHardwareSigningData.d.ts.map +1 -0
- package/dist/esm/util/mapHardwareSigningData.js +833 -0
- package/dist/esm/util/mapHardwareSigningData.js.map +1 -0
- package/dist/esm/util/ownSignatureKeyPaths.d.ts +4 -0
- package/dist/esm/util/ownSignatureKeyPaths.d.ts.map +1 -0
- package/dist/esm/util/ownSignatureKeyPaths.js +17 -0
- package/dist/esm/util/ownSignatureKeyPaths.js.map +1 -0
- package/dist/esm/util/stubSignTransaction.d.ts +4 -0
- package/dist/esm/util/stubSignTransaction.d.ts.map +1 -0
- package/dist/esm/util/stubSignTransaction.js +16 -0
- package/dist/esm/util/stubSignTransaction.js.map +1 -0
- 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"}
|