@cardano-sdk/wallet 0.1.4 → 0.1.5
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/dist/Address.d.ts +11 -0
- package/dist/Address.d.ts.map +1 -0
- package/dist/Address.js +9 -0
- package/dist/Address.js.map +1 -0
- package/dist/BalanceTracker.d.ts +23 -0
- package/dist/BalanceTracker.d.ts.map +1 -0
- package/dist/BalanceTracker.js +48 -0
- package/dist/BalanceTracker.js.map +1 -0
- package/dist/InMemoryTransactionTracker.d.ts +16 -0
- package/dist/InMemoryTransactionTracker.d.ts.map +1 -0
- package/dist/InMemoryTransactionTracker.js +84 -0
- package/dist/InMemoryTransactionTracker.js.map +1 -0
- package/dist/InMemoryUtxoRepository.d.ts +25 -0
- package/dist/InMemoryUtxoRepository.d.ts.map +1 -0
- package/dist/InMemoryUtxoRepository.js +154 -0
- package/dist/InMemoryUtxoRepository.js.map +1 -0
- package/dist/KeyManagement/InMemoryKeyManager.d.ts +9 -0
- package/dist/KeyManagement/InMemoryKeyManager.d.ts.map +1 -0
- package/dist/KeyManagement/InMemoryKeyManager.js +68 -0
- package/dist/KeyManagement/InMemoryKeyManager.js.map +1 -0
- package/dist/KeyManagement/errors/InvalidMnemonic.d.ts +5 -0
- package/dist/KeyManagement/errors/InvalidMnemonic.d.ts.map +1 -0
- package/dist/KeyManagement/errors/InvalidMnemonic.js +13 -0
- package/dist/KeyManagement/errors/InvalidMnemonic.js.map +1 -0
- package/{src/KeyManagement/errors/index.ts → dist/KeyManagement/errors/index.d.ts} +1 -0
- package/dist/KeyManagement/errors/index.d.ts.map +1 -0
- package/dist/KeyManagement/errors/index.js +6 -0
- package/dist/KeyManagement/errors/index.js.map +1 -0
- package/{src/KeyManagement/index.ts → dist/KeyManagement/index.d.ts} +1 -0
- package/dist/KeyManagement/index.d.ts.map +1 -0
- package/dist/KeyManagement/index.js +30 -0
- package/dist/KeyManagement/index.js.map +1 -0
- package/dist/KeyManagement/types.d.ts +14 -0
- package/dist/KeyManagement/types.d.ts.map +1 -0
- package/dist/KeyManagement/types.js +3 -0
- package/dist/KeyManagement/types.js.map +1 -0
- package/dist/KeyManagement/util.d.ts +6 -0
- package/dist/KeyManagement/util.d.ts.map +1 -0
- package/dist/KeyManagement/util.js +31 -0
- package/dist/KeyManagement/util.js.map +1 -0
- package/dist/SingleAddressWallet.d.ts +30 -0
- package/dist/SingleAddressWallet.d.ts.map +1 -0
- package/dist/SingleAddressWallet.js +62 -0
- package/dist/SingleAddressWallet.js.map +1 -0
- package/dist/Transaction/CertificateFactory.d.ts +50 -0
- package/dist/Transaction/CertificateFactory.d.ts.map +1 -0
- package/dist/Transaction/CertificateFactory.js +72 -0
- package/dist/Transaction/CertificateFactory.js.map +1 -0
- package/dist/Transaction/computeImplicitCoin.d.ts +4 -0
- package/dist/Transaction/computeImplicitCoin.d.ts.map +1 -0
- package/dist/Transaction/computeImplicitCoin.js +21 -0
- package/dist/Transaction/computeImplicitCoin.js.map +1 -0
- package/dist/Transaction/createTransactionInternals.d.ts +16 -0
- package/dist/Transaction/createTransactionInternals.d.ts.map +1 -0
- package/dist/Transaction/createTransactionInternals.js +41 -0
- package/dist/Transaction/createTransactionInternals.js.map +1 -0
- package/{src/Transaction/index.ts → dist/Transaction/index.d.ts} +1 -0
- package/dist/Transaction/index.d.ts.map +1 -0
- package/dist/Transaction/index.js +18 -0
- package/dist/Transaction/index.js.map +1 -0
- package/dist/Transaction/types.d.ts +11 -0
- package/dist/Transaction/types.d.ts.map +1 -0
- package/dist/Transaction/types.js +3 -0
- package/dist/Transaction/types.js.map +1 -0
- package/dist/Transaction/withdrawal.d.ts +8 -0
- package/dist/Transaction/withdrawal.d.ts.map +1 -0
- package/dist/Transaction/withdrawal.js +10 -0
- package/dist/Transaction/withdrawal.js.map +1 -0
- package/dist/TransactionError.d.ts +15 -0
- package/dist/TransactionError.d.ts.map +1 -0
- package/dist/TransactionError.js +23 -0
- package/dist/TransactionError.js.map +1 -0
- package/{src/index.ts → dist/index.d.ts} +1 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +35 -0
- package/dist/index.js.map +1 -0
- package/dist/types.d.ts +37 -0
- package/dist/types.d.ts.map +1 -0
- package/dist/types.js +13 -0
- package/dist/types.js.map +1 -0
- package/package.json +13 -8
- package/jest.config.js +0 -1
- package/src/Address.ts +0 -12
- package/src/BalanceTracker.ts +0 -62
- package/src/InMemoryTransactionTracker.ts +0 -87
- package/src/InMemoryUtxoRepository.ts +0 -192
- package/src/KeyManagement/InMemoryKeyManager.ts +0 -67
- package/src/KeyManagement/errors/InvalidMnemonic.ts +0 -9
- package/src/KeyManagement/types.ts +0 -15
- package/src/KeyManagement/util.ts +0 -14
- package/src/SingleAddressWallet.ts +0 -120
- package/src/Transaction/CertificateFactory.ts +0 -154
- package/src/Transaction/computeImplicitCoin.ts +0 -36
- package/src/Transaction/createTransactionInternals.ts +0 -60
- package/src/Transaction/types.ts +0 -12
- package/src/Transaction/withdrawal.ts +0 -17
- package/src/TransactionError.ts +0 -17
- package/src/tsconfig.json +0 -11
- package/src/types.ts +0 -56
- package/test/.eslintrc.js +0 -7
- package/test/BalanceTracker.test.ts +0 -44
- package/test/InMemoryTransactionTracker.test.ts +0 -108
- package/test/InMemoryUtxoRepository.test.ts +0 -242
- package/test/KeyManagement/InMemoryKeyManager.test.ts +0 -39
- package/test/SingleAddressWallet.test.ts +0 -87
- package/test/Transaction/CertificateFactory.test.ts +0 -89
- package/test/Transaction/computeImplicitCoin.test.ts +0 -26
- package/test/Transaction/createTransactionInternals.test.ts +0 -84
- package/test/Transaction/withdrawal.test.ts +0 -13
- package/test/integration/withdrawal.test.ts +0 -108
- package/test/mocks/MockTransactionTracker.ts +0 -8
- package/test/mocks/MockUtxoRepository.ts +0 -13
- package/test/mocks/ProviderStub.ts +0 -151
- package/test/mocks/index.ts +0 -4
- package/test/mocks/testKeyManager.ts +0 -10
- package/test/tsconfig.json +0 -12
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"InMemoryUtxoRepository.js","sourceRoot":"","sources":["../src/InMemoryUtxoRepository.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
import { Cardano } from '@cardano-sdk/core';
|
|
2
|
+
import { KeyManager } from './types';
|
|
3
|
+
export declare const createInMemoryKeyManager: ({ password, accountIndex, mnemonicWords, networkId }: {
|
|
4
|
+
password: string;
|
|
5
|
+
accountIndex?: number | undefined;
|
|
6
|
+
mnemonicWords: string[];
|
|
7
|
+
networkId: Cardano.NetworkId;
|
|
8
|
+
}) => KeyManager;
|
|
9
|
+
//# sourceMappingURL=InMemoryKeyManager.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"InMemoryKeyManager.d.ts","sourceRoot":"","sources":["../../src/KeyManagement/InMemoryKeyManager.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,OAAO,EAAO,MAAM,mBAAmB,CAAC;AAEjD,OAAO,EAAE,UAAU,EAAE,MAAM,SAAS,CAAC;AAGrC,eAAO,MAAM,wBAAwB;cAMzB,MAAM;;mBAED,MAAM,EAAE;eACZ,QAAQ,SAAS;MAC1B,UA+CH,CAAC"}
|
|
@@ -0,0 +1,68 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
|
3
|
+
if (k2 === undefined) k2 = k;
|
|
4
|
+
Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } });
|
|
5
|
+
}) : (function(o, m, k, k2) {
|
|
6
|
+
if (k2 === undefined) k2 = k;
|
|
7
|
+
o[k2] = m[k];
|
|
8
|
+
}));
|
|
9
|
+
var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
|
|
10
|
+
Object.defineProperty(o, "default", { enumerable: true, value: v });
|
|
11
|
+
}) : function(o, v) {
|
|
12
|
+
o["default"] = v;
|
|
13
|
+
});
|
|
14
|
+
var __importStar = (this && this.__importStar) || function (mod) {
|
|
15
|
+
if (mod && mod.__esModule) return mod;
|
|
16
|
+
var result = {};
|
|
17
|
+
if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
|
|
18
|
+
__setModuleDefault(result, mod);
|
|
19
|
+
return result;
|
|
20
|
+
};
|
|
21
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
22
|
+
exports.createInMemoryKeyManager = void 0;
|
|
23
|
+
const bip39 = __importStar(require("bip39"));
|
|
24
|
+
const core_1 = require("@cardano-sdk/core");
|
|
25
|
+
const errors = __importStar(require("./errors"));
|
|
26
|
+
const util_1 = require("./util");
|
|
27
|
+
const createInMemoryKeyManager = ({ password, accountIndex, mnemonicWords, networkId }) => {
|
|
28
|
+
if (!accountIndex) {
|
|
29
|
+
accountIndex = 0;
|
|
30
|
+
}
|
|
31
|
+
const mnemonic = util_1.joinMnemonicWords(mnemonicWords);
|
|
32
|
+
const validMnemonic = bip39.validateMnemonic(mnemonic);
|
|
33
|
+
if (!validMnemonic)
|
|
34
|
+
throw new errors.InvalidMnemonic();
|
|
35
|
+
const entropy = bip39.mnemonicToEntropy(mnemonic);
|
|
36
|
+
const accountPrivateKey = core_1.CSL.Bip32PrivateKey.from_bip39_entropy(Buffer.from(entropy, 'hex'), Buffer.from(password))
|
|
37
|
+
.derive(util_1.harden(1852))
|
|
38
|
+
.derive(util_1.harden(1815))
|
|
39
|
+
.derive(util_1.harden(accountIndex));
|
|
40
|
+
const privateParentKey = accountPrivateKey.derive(0).derive(0);
|
|
41
|
+
const publicParentKey = privateParentKey.to_public();
|
|
42
|
+
const publicKey = accountPrivateKey.to_public();
|
|
43
|
+
const stakeKey = publicKey.derive(2).derive(0);
|
|
44
|
+
return {
|
|
45
|
+
deriveAddress: (addressIndex, index) => {
|
|
46
|
+
const utxoPubKey = publicKey.derive(index).derive(addressIndex);
|
|
47
|
+
const baseAddr = core_1.CSL.BaseAddress.new(networkId, core_1.CSL.StakeCredential.from_keyhash(utxoPubKey.to_raw_key().hash()), core_1.CSL.StakeCredential.from_keyhash(stakeKey.to_raw_key().hash()));
|
|
48
|
+
return baseAddr.to_address().to_bech32();
|
|
49
|
+
},
|
|
50
|
+
signMessage: async (_addressType, _signingIndex, message) => ({
|
|
51
|
+
publicKey: publicParentKey.toString(),
|
|
52
|
+
signature: `Signature for ${message} is not implemented yet`
|
|
53
|
+
}),
|
|
54
|
+
signTransaction: async (txHash) => {
|
|
55
|
+
const witnessSet = core_1.CSL.TransactionWitnessSet.new();
|
|
56
|
+
const vkeyWitnesses = core_1.CSL.Vkeywitnesses.new();
|
|
57
|
+
const vkeyWitness = core_1.CSL.make_vkey_witness(txHash, privateParentKey.to_raw_key());
|
|
58
|
+
vkeyWitnesses.add(vkeyWitness);
|
|
59
|
+
witnessSet.set_vkeys(vkeyWitnesses);
|
|
60
|
+
return witnessSet;
|
|
61
|
+
},
|
|
62
|
+
stakeKey: stakeKey.to_raw_key(),
|
|
63
|
+
publicKey: publicKey.to_raw_key(),
|
|
64
|
+
publicParentKey: publicParentKey.to_raw_key()
|
|
65
|
+
};
|
|
66
|
+
};
|
|
67
|
+
exports.createInMemoryKeyManager = createInMemoryKeyManager;
|
|
68
|
+
//# sourceMappingURL=InMemoryKeyManager.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"InMemoryKeyManager.js","sourceRoot":"","sources":["../../src/KeyManagement/InMemoryKeyManager.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"InvalidMnemonic.d.ts","sourceRoot":"","sources":["../../../src/KeyManagement/errors/InvalidMnemonic.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,MAAM,iBAAiB,CAAC;AAE9C,qBAAa,eAAgB,SAAQ,WAAW;;CAM/C"}
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.InvalidMnemonic = void 0;
|
|
4
|
+
const ts_custom_error_1 = require("ts-custom-error");
|
|
5
|
+
class InvalidMnemonic extends ts_custom_error_1.CustomError {
|
|
6
|
+
constructor() {
|
|
7
|
+
super();
|
|
8
|
+
this.message = 'Invalid Mnemonic';
|
|
9
|
+
this.name = 'InvalidMnemonic';
|
|
10
|
+
}
|
|
11
|
+
}
|
|
12
|
+
exports.InvalidMnemonic = InvalidMnemonic;
|
|
13
|
+
//# sourceMappingURL=InvalidMnemonic.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"InvalidMnemonic.js","sourceRoot":"","sources":["../../../src/KeyManagement/errors/InvalidMnemonic.ts"],"names":[],"mappings":";;;AAAA,qDAA8C;AAE9C,MAAa,eAAgB,SAAQ,6BAAW;IAC9C;QACE,KAAK,EAAE,CAAC;QACR,IAAI,CAAC,OAAO,GAAG,kBAAkB,CAAC;QAClC,IAAI,CAAC,IAAI,GAAG,iBAAiB,CAAC;IAChC,CAAC;CACF;AAND,0CAMC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/KeyManagement/errors/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,eAAe,EAAE,MAAM,mBAAmB,CAAC"}
|
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.InvalidMnemonic = void 0;
|
|
4
|
+
var InvalidMnemonic_1 = require("./InvalidMnemonic");
|
|
5
|
+
Object.defineProperty(exports, "InvalidMnemonic", { enumerable: true, get: function () { return InvalidMnemonic_1.InvalidMnemonic; } });
|
|
6
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/KeyManagement/errors/index.ts"],"names":[],"mappings":";;;AAAA,qDAAoD;AAA3C,kHAAA,eAAe,OAAA"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/KeyManagement/index.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,MAAM,UAAU,CAAC;AACnC,cAAc,SAAS,CAAC;AACxB,cAAc,sBAAsB,CAAC;AACrC,OAAO,KAAK,IAAI,MAAM,QAAQ,CAAC"}
|
|
@@ -0,0 +1,30 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
|
3
|
+
if (k2 === undefined) k2 = k;
|
|
4
|
+
Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } });
|
|
5
|
+
}) : (function(o, m, k, k2) {
|
|
6
|
+
if (k2 === undefined) k2 = k;
|
|
7
|
+
o[k2] = m[k];
|
|
8
|
+
}));
|
|
9
|
+
var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
|
|
10
|
+
Object.defineProperty(o, "default", { enumerable: true, value: v });
|
|
11
|
+
}) : function(o, v) {
|
|
12
|
+
o["default"] = v;
|
|
13
|
+
});
|
|
14
|
+
var __importStar = (this && this.__importStar) || function (mod) {
|
|
15
|
+
if (mod && mod.__esModule) return mod;
|
|
16
|
+
var result = {};
|
|
17
|
+
if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
|
|
18
|
+
__setModuleDefault(result, mod);
|
|
19
|
+
return result;
|
|
20
|
+
};
|
|
21
|
+
var __exportStar = (this && this.__exportStar) || function(m, exports) {
|
|
22
|
+
for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
|
|
23
|
+
};
|
|
24
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
25
|
+
exports.util = exports.errors = void 0;
|
|
26
|
+
exports.errors = __importStar(require("./errors"));
|
|
27
|
+
__exportStar(require("./types"), exports);
|
|
28
|
+
__exportStar(require("./InMemoryKeyManager"), exports);
|
|
29
|
+
exports.util = __importStar(require("./util"));
|
|
30
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/KeyManagement/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;AAAA,mDAAmC;AACnC,0CAAwB;AACxB,uDAAqC;AACrC,+CAA+B"}
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
import { CSL } from '@cardano-sdk/core';
|
|
2
|
+
import { Address } from '..';
|
|
3
|
+
export interface KeyManager {
|
|
4
|
+
deriveAddress: (addressIndex: number, index: 0 | 1) => string;
|
|
5
|
+
signMessage: (addressType: Address.AddressType, signingIndex: number, message: string) => Promise<{
|
|
6
|
+
publicKey: string;
|
|
7
|
+
signature: string;
|
|
8
|
+
}>;
|
|
9
|
+
publicKey: CSL.PublicKey;
|
|
10
|
+
publicParentKey: CSL.PublicKey;
|
|
11
|
+
signTransaction: (txHash: CSL.TransactionHash) => Promise<CSL.TransactionWitnessSet>;
|
|
12
|
+
stakeKey: CSL.PublicKey;
|
|
13
|
+
}
|
|
14
|
+
//# sourceMappingURL=types.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/KeyManagement/types.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,GAAG,EAAE,MAAM,mBAAmB,CAAC;AACxC,OAAO,EAAE,OAAO,EAAE,MAAM,IAAI,CAAC;AAE7B,MAAM,WAAW,UAAU;IACzB,aAAa,EAAE,CAAC,YAAY,EAAE,MAAM,EAAE,KAAK,EAAE,CAAC,GAAG,CAAC,KAAK,MAAM,CAAC;IAC9D,WAAW,EAAE,CACX,WAAW,EAAE,OAAO,CAAC,WAAW,EAChC,YAAY,EAAE,MAAM,EACpB,OAAO,EAAE,MAAM,KACZ,OAAO,CAAC;QAAE,SAAS,EAAE,MAAM,CAAC;QAAC,SAAS,EAAE,MAAM,CAAA;KAAE,CAAC,CAAC;IACvD,SAAS,EAAE,GAAG,CAAC,SAAS,CAAC;IACzB,eAAe,EAAE,GAAG,CAAC,SAAS,CAAC;IAC/B,eAAe,EAAE,CAAC,MAAM,EAAE,GAAG,CAAC,eAAe,KAAK,OAAO,CAAC,GAAG,CAAC,qBAAqB,CAAC,CAAC;IACrF,QAAQ,EAAE,GAAG,CAAC,SAAS,CAAC;CACzB"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"types.js","sourceRoot":"","sources":["../../src/KeyManagement/types.ts"],"names":[],"mappings":""}
|
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
import * as bip39 from 'bip39';
|
|
2
|
+
export declare const generateMnemonicWords: (strength?: number) => string[];
|
|
3
|
+
export declare const joinMnemonicWords: (mnenomic: string[]) => string;
|
|
4
|
+
export declare const validateMnemonic: typeof bip39.validateMnemonic;
|
|
5
|
+
export declare const harden: (num: number) => number;
|
|
6
|
+
//# sourceMappingURL=util.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"util.d.ts","sourceRoot":"","sources":["../../src/KeyManagement/util.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAK/B,eAAO,MAAM,qBAAqB,iCAAkE,CAAC;AACrG,eAAO,MAAM,iBAAiB,aAAc,MAAM,EAAE,WAAuB,CAAC;AAK5E,eAAO,MAAM,gBAAgB,+BAAyB,CAAC;AAEvD,eAAO,MAAM,MAAM,QAAS,MAAM,KAAG,MAA6B,CAAC"}
|
|
@@ -0,0 +1,31 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
|
3
|
+
if (k2 === undefined) k2 = k;
|
|
4
|
+
Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } });
|
|
5
|
+
}) : (function(o, m, k, k2) {
|
|
6
|
+
if (k2 === undefined) k2 = k;
|
|
7
|
+
o[k2] = m[k];
|
|
8
|
+
}));
|
|
9
|
+
var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
|
|
10
|
+
Object.defineProperty(o, "default", { enumerable: true, value: v });
|
|
11
|
+
}) : function(o, v) {
|
|
12
|
+
o["default"] = v;
|
|
13
|
+
});
|
|
14
|
+
var __importStar = (this && this.__importStar) || function (mod) {
|
|
15
|
+
if (mod && mod.__esModule) return mod;
|
|
16
|
+
var result = {};
|
|
17
|
+
if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
|
|
18
|
+
__setModuleDefault(result, mod);
|
|
19
|
+
return result;
|
|
20
|
+
};
|
|
21
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
22
|
+
exports.harden = exports.validateMnemonic = exports.joinMnemonicWords = exports.generateMnemonicWords = void 0;
|
|
23
|
+
const bip39 = __importStar(require("bip39"));
|
|
24
|
+
const generateMnemonicWords = (strength = 256) => bip39.generateMnemonic(strength).split(' ');
|
|
25
|
+
exports.generateMnemonicWords = generateMnemonicWords;
|
|
26
|
+
const joinMnemonicWords = (mnenomic) => mnenomic.join(' ');
|
|
27
|
+
exports.joinMnemonicWords = joinMnemonicWords;
|
|
28
|
+
exports.validateMnemonic = bip39.validateMnemonic;
|
|
29
|
+
const harden = (num) => 2147483648 + num;
|
|
30
|
+
exports.harden = harden;
|
|
31
|
+
//# sourceMappingURL=util.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"util.js","sourceRoot":"","sources":["../../src/KeyManagement/util.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;AAAA,6CAA+B;AAKxB,MAAM,qBAAqB,GAAG,CAAC,QAAQ,GAAG,GAAG,EAAE,EAAE,CAAC,KAAK,CAAC,gBAAgB,CAAC,QAAQ,CAAC,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;AAAxF,QAAA,qBAAqB,yBAAmE;AAC9F,MAAM,iBAAiB,GAAG,CAAC,QAAkB,EAAE,EAAE,CAAC,QAAQ,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;AAA/D,QAAA,iBAAiB,qBAA8C;AAK/D,QAAA,gBAAgB,GAAG,KAAK,CAAC,gBAAgB,CAAC;AAEhD,MAAM,MAAM,GAAG,CAAC,GAAW,EAAU,EAAE,CAAC,UAAa,GAAG,GAAG,CAAC;AAAtD,QAAA,MAAM,UAAgD"}
|
|
@@ -0,0 +1,30 @@
|
|
|
1
|
+
import { WalletProvider, CSL, Cardano } from '@cardano-sdk/core';
|
|
2
|
+
import { UtxoRepository } from './types';
|
|
3
|
+
import { Logger } from 'ts-log';
|
|
4
|
+
import { InitializeTxProps, TxInternals } from './Transaction';
|
|
5
|
+
import { BalanceTracker, KeyManagement, TransactionTracker } from '.';
|
|
6
|
+
export interface SubmitTxResult {
|
|
7
|
+
submitted: Promise<void>;
|
|
8
|
+
confirmed: Promise<void>;
|
|
9
|
+
}
|
|
10
|
+
export interface SingleAddressWallet {
|
|
11
|
+
address: Cardano.Address;
|
|
12
|
+
balance: BalanceTracker;
|
|
13
|
+
initializeTx: (props: InitializeTxProps) => Promise<TxInternals>;
|
|
14
|
+
name: string;
|
|
15
|
+
signTx: (body: CSL.TransactionBody, hash: CSL.TransactionHash) => Promise<CSL.Transaction>;
|
|
16
|
+
submitTx: (tx: CSL.Transaction) => SubmitTxResult;
|
|
17
|
+
}
|
|
18
|
+
export interface SingleAddressWalletDependencies {
|
|
19
|
+
keyManager: KeyManagement.KeyManager;
|
|
20
|
+
logger?: Logger;
|
|
21
|
+
provider: WalletProvider;
|
|
22
|
+
utxoRepository: UtxoRepository;
|
|
23
|
+
txTracker: TransactionTracker;
|
|
24
|
+
balanceTracker?: BalanceTracker;
|
|
25
|
+
}
|
|
26
|
+
export interface SingleAddressWalletProps {
|
|
27
|
+
name: string;
|
|
28
|
+
}
|
|
29
|
+
export declare const createSingleAddressWallet: ({ name }: SingleAddressWalletProps, { provider, keyManager, utxoRepository, txTracker, balanceTracker, logger }: SingleAddressWalletDependencies) => Promise<SingleAddressWallet>;
|
|
30
|
+
//# sourceMappingURL=SingleAddressWallet.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"SingleAddressWallet.d.ts","sourceRoot":"","sources":["../src/SingleAddressWallet.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,cAAc,EAAiB,GAAG,EAAa,OAAO,EAAE,MAAM,mBAAmB,CAAC;AAC3F,OAAO,EAAE,cAAc,EAAE,MAAM,SAAS,CAAC;AACzC,OAAO,EAAe,MAAM,EAAE,MAAM,QAAQ,CAAC;AAE7C,OAAO,EAAmD,iBAAiB,EAAE,WAAW,EAAE,MAAM,eAAe,CAAC;AAChH,OAAO,EAAE,cAAc,EAAE,aAAa,EAAwC,kBAAkB,EAAE,MAAM,GAAG,CAAC;AAE5G,MAAM,WAAW,cAAc;IAK7B,SAAS,EAAE,OAAO,CAAC,IAAI,CAAC,CAAC;IAKzB,SAAS,EAAE,OAAO,CAAC,IAAI,CAAC,CAAC;CAC1B;AACD,MAAM,WAAW,mBAAmB;IAClC,OAAO,EAAE,OAAO,CAAC,OAAO,CAAC;IACzB,OAAO,EAAE,cAAc,CAAC;IACxB,YAAY,EAAE,CAAC,KAAK,EAAE,iBAAiB,KAAK,OAAO,CAAC,WAAW,CAAC,CAAC;IACjE,IAAI,EAAE,MAAM,CAAC;IACb,MAAM,EAAE,CAAC,IAAI,EAAE,GAAG,CAAC,eAAe,EAAE,IAAI,EAAE,GAAG,CAAC,eAAe,KAAK,OAAO,CAAC,GAAG,CAAC,WAAW,CAAC,CAAC;IAC3F,QAAQ,EAAE,CAAC,EAAE,EAAE,GAAG,CAAC,WAAW,KAAK,cAAc,CAAC;CACnD;AAED,MAAM,WAAW,+BAA+B;IAC9C,UAAU,EAAE,aAAa,CAAC,UAAU,CAAC;IACrC,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,QAAQ,EAAE,cAAc,CAAC;IACzB,cAAc,EAAE,cAAc,CAAC;IAC/B,SAAS,EAAE,kBAAkB,CAAC;IAC9B,cAAc,CAAC,EAAE,cAAc,CAAC;CACjC;AAED,MAAM,WAAW,wBAAwB;IACvC,IAAI,EAAE,MAAM,CAAC;CACd;AASD,eAAO,MAAM,yBAAyB,aAC1B,wBAAwB,+EAQ/B,+BAA+B,KACjC,QAAQ,mBAAmB,CAkD7B,CAAC"}
|
|
@@ -0,0 +1,62 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.createSingleAddressWallet = void 0;
|
|
4
|
+
const core_1 = require("@cardano-sdk/core");
|
|
5
|
+
const ts_log_1 = require("ts-log");
|
|
6
|
+
const cip2_1 = require("@cardano-sdk/cip2");
|
|
7
|
+
const Transaction_1 = require("./Transaction");
|
|
8
|
+
const _1 = require(".");
|
|
9
|
+
const ensureValidityInterval = (currentSlot, validityInterval) => ({ invalidHereafter: currentSlot + 3600, ...validityInterval });
|
|
10
|
+
const createSingleAddressWallet = async ({ name }, { provider, keyManager, utxoRepository, txTracker, balanceTracker = new _1.BalanceTracker(utxoRepository), logger = ts_log_1.dummyLogger }) => {
|
|
11
|
+
const address = keyManager.deriveAddress(0, 0);
|
|
12
|
+
const protocolParameters = await provider.currentWalletProtocolParameters();
|
|
13
|
+
const signTx = async (body, hash) => {
|
|
14
|
+
const witnessSet = await keyManager.signTransaction(hash);
|
|
15
|
+
return core_1.CSL.Transaction.new(body, witnessSet);
|
|
16
|
+
};
|
|
17
|
+
return {
|
|
18
|
+
address,
|
|
19
|
+
balance: balanceTracker,
|
|
20
|
+
initializeTx: async (props) => {
|
|
21
|
+
const tip = await provider.ledgerTip();
|
|
22
|
+
const validityInterval = ensureValidityInterval(tip.slot, props.options?.validityInterval);
|
|
23
|
+
const txOutputs = new Set([...props.outputs].map((output) => core_1.coreToCsl.txOut(output)));
|
|
24
|
+
const constraints = cip2_1.defaultSelectionConstraints({
|
|
25
|
+
protocolParameters,
|
|
26
|
+
buildTx: async (inputSelection) => {
|
|
27
|
+
logger.debug('Building TX for selection constraints', inputSelection);
|
|
28
|
+
const { body, hash } = await Transaction_1.createTransactionInternals({
|
|
29
|
+
changeAddress: address,
|
|
30
|
+
inputSelection,
|
|
31
|
+
validityInterval
|
|
32
|
+
});
|
|
33
|
+
return signTx(body, hash);
|
|
34
|
+
}
|
|
35
|
+
});
|
|
36
|
+
const implicitCoin = Transaction_1.computeImplicitCoin(protocolParameters, props);
|
|
37
|
+
const inputSelectionResult = await utxoRepository.selectInputs(txOutputs, constraints, implicitCoin);
|
|
38
|
+
return Transaction_1.createTransactionInternals({
|
|
39
|
+
changeAddress: address,
|
|
40
|
+
inputSelection: inputSelectionResult.selection,
|
|
41
|
+
validityInterval
|
|
42
|
+
});
|
|
43
|
+
},
|
|
44
|
+
name,
|
|
45
|
+
signTx,
|
|
46
|
+
submitTx: (tx) => {
|
|
47
|
+
const submitted = provider.submitTx(tx).catch((error) => {
|
|
48
|
+
if (error instanceof core_1.ProviderError) {
|
|
49
|
+
throw new _1.TransactionError(_1.TransactionFailure.FailedToSubmit, error, error.detail);
|
|
50
|
+
}
|
|
51
|
+
throw new _1.TransactionError(_1.TransactionFailure.FailedToSubmit, error);
|
|
52
|
+
});
|
|
53
|
+
const confirmed = txTracker.track(tx, submitted);
|
|
54
|
+
return {
|
|
55
|
+
submitted,
|
|
56
|
+
confirmed
|
|
57
|
+
};
|
|
58
|
+
}
|
|
59
|
+
};
|
|
60
|
+
};
|
|
61
|
+
exports.createSingleAddressWallet = createSingleAddressWallet;
|
|
62
|
+
//# sourceMappingURL=SingleAddressWallet.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"SingleAddressWallet.js","sourceRoot":"","sources":["../src/SingleAddressWallet.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,50 @@
|
|
|
1
|
+
import { Cardano, CSL } from '@cardano-sdk/core';
|
|
2
|
+
import { KeyManager } from '../KeyManagement';
|
|
3
|
+
export declare type Ed25519KeyHashBech32 = string;
|
|
4
|
+
export declare type VrfKeyHashBech32 = string;
|
|
5
|
+
export declare type AddressBech32 = string;
|
|
6
|
+
export declare type PoolMetadataHashBech32 = string;
|
|
7
|
+
interface Ratio {
|
|
8
|
+
numerator: number;
|
|
9
|
+
denominator: number;
|
|
10
|
+
}
|
|
11
|
+
interface MultiHostNameRelay {
|
|
12
|
+
relayType: 'multihost-name';
|
|
13
|
+
dnsName: string;
|
|
14
|
+
}
|
|
15
|
+
declare type SingleHostAddrRelay = {
|
|
16
|
+
relayType: 'singlehost-addr';
|
|
17
|
+
ipv4?: string;
|
|
18
|
+
ipv6?: string;
|
|
19
|
+
port?: number;
|
|
20
|
+
};
|
|
21
|
+
declare type SingleHostNameRelay = {
|
|
22
|
+
relayType: 'singlehost-name';
|
|
23
|
+
} & Cardano.ByName;
|
|
24
|
+
declare type Relay = MultiHostNameRelay | SingleHostAddrRelay | SingleHostNameRelay;
|
|
25
|
+
interface PoolMetadata {
|
|
26
|
+
hash: PoolMetadataHashBech32;
|
|
27
|
+
url: string;
|
|
28
|
+
}
|
|
29
|
+
interface PoolParameters {
|
|
30
|
+
poolKeyHash: Ed25519KeyHashBech32;
|
|
31
|
+
vrfKeyHash: VrfKeyHashBech32;
|
|
32
|
+
pledge: Cardano.Lovelace;
|
|
33
|
+
cost: Cardano.Lovelace;
|
|
34
|
+
margin: Ratio;
|
|
35
|
+
rewardAddress: AddressBech32;
|
|
36
|
+
owners: Ed25519KeyHashBech32[];
|
|
37
|
+
relays: Relay[];
|
|
38
|
+
poolMetadata?: PoolMetadata;
|
|
39
|
+
}
|
|
40
|
+
export declare class CertificateFactory {
|
|
41
|
+
#private;
|
|
42
|
+
constructor(keyManager: KeyManager);
|
|
43
|
+
stakeKeyRegistration(): CSL.Certificate;
|
|
44
|
+
stakeKeyDeregistration(): CSL.Certificate;
|
|
45
|
+
poolRegistration({ poolKeyHash, vrfKeyHash, pledge, cost, margin, rewardAddress, owners, relays, poolMetadata }: PoolParameters): CSL.Certificate;
|
|
46
|
+
poolRetirement(poolKeyHash: Ed25519KeyHashBech32, epoch: number): CSL.Certificate;
|
|
47
|
+
stakeDelegation(delegatee: Ed25519KeyHashBech32): CSL.Certificate;
|
|
48
|
+
}
|
|
49
|
+
export {};
|
|
50
|
+
//# sourceMappingURL=CertificateFactory.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"CertificateFactory.d.ts","sourceRoot":"","sources":["../../src/Transaction/CertificateFactory.ts"],"names":[],"mappings":"AAAA,OAAO,EAAuB,OAAO,EAAE,GAAG,EAAE,MAAM,mBAAmB,CAAC;AACtE,OAAO,EAAE,UAAU,EAAE,MAAM,kBAAkB,CAAC;AAE9C,oBAAY,oBAAoB,GAAG,MAAM,CAAC;AAC1C,oBAAY,gBAAgB,GAAG,MAAM,CAAC;AACtC,oBAAY,aAAa,GAAG,MAAM,CAAC;AACnC,oBAAY,sBAAsB,GAAG,MAAM,CAAC;AAE5C,UAAU,KAAK;IACb,SAAS,EAAE,MAAM,CAAC;IAClB,WAAW,EAAE,MAAM,CAAC;CACrB;AAED,UAAU,kBAAkB;IAC1B,SAAS,EAAE,gBAAgB,CAAC;IAC5B,OAAO,EAAE,MAAM,CAAC;CACjB;AAED,aAAK,mBAAmB,GAAG;IACzB,SAAS,EAAE,iBAAiB,CAAC;IAC7B,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,IAAI,CAAC,EAAE,MAAM,CAAC;CACf,CAAC;AAEF,aAAK,mBAAmB,GAAG;IACzB,SAAS,EAAE,iBAAiB,CAAC;CAC9B,GAAG,OAAO,CAAC,MAAM,CAAC;AAEnB,aAAK,KAAK,GAAG,kBAAkB,GAAG,mBAAmB,GAAG,mBAAmB,CAAC;AAE5E,UAAU,YAAY;IACpB,IAAI,EAAE,sBAAsB,CAAC;IAC7B,GAAG,EAAE,MAAM,CAAC;CACb;AAED,UAAU,cAAc;IACtB,WAAW,EAAE,oBAAoB,CAAC;IAClC,UAAU,EAAE,gBAAgB,CAAC;IAC7B,MAAM,EAAE,OAAO,CAAC,QAAQ,CAAC;IACzB,IAAI,EAAE,OAAO,CAAC,QAAQ,CAAC;IACvB,MAAM,EAAE,KAAK,CAAC;IACd,aAAa,EAAE,aAAa,CAAC;IAC7B,MAAM,EAAE,oBAAoB,EAAE,CAAC;IAC/B,MAAM,EAAE,KAAK,EAAE,CAAC;IAChB,YAAY,CAAC,EAAE,YAAY,CAAC;CAC7B;AAED,qBAAa,kBAAkB;;gBAGjB,UAAU,EAAE,UAAU;IAIlC,oBAAoB;IAIpB,sBAAsB;IAItB,gBAAgB,CAAC,EACf,WAAW,EACX,UAAU,EACV,MAAM,EACN,IAAI,EACJ,MAAM,EACN,aAAa,EACb,MAAM,EACN,MAAM,EACN,YAAY,EACb,EAAE,cAAc;IAyBjB,cAAc,CAAC,WAAW,EAAE,oBAAoB,EAAE,KAAK,EAAE,MAAM;IAM/D,eAAe,CAAC,SAAS,EAAE,oBAAoB;CAyChD"}
|
|
@@ -0,0 +1,72 @@
|
|
|
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 _CertificateFactory_instances, _CertificateFactory_stakeCredential, _CertificateFactory_createCslRelays;
|
|
14
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
15
|
+
exports.CertificateFactory = void 0;
|
|
16
|
+
const core_1 = require("@cardano-sdk/core");
|
|
17
|
+
class CertificateFactory {
|
|
18
|
+
constructor(keyManager) {
|
|
19
|
+
_CertificateFactory_instances.add(this);
|
|
20
|
+
_CertificateFactory_stakeCredential.set(this, void 0);
|
|
21
|
+
__classPrivateFieldSet(this, _CertificateFactory_stakeCredential, core_1.CSL.StakeCredential.from_keyhash(keyManager.stakeKey.hash()), "f");
|
|
22
|
+
}
|
|
23
|
+
stakeKeyRegistration() {
|
|
24
|
+
return core_1.CSL.Certificate.new_stake_registration(core_1.CSL.StakeRegistration.new(__classPrivateFieldGet(this, _CertificateFactory_stakeCredential, "f")));
|
|
25
|
+
}
|
|
26
|
+
stakeKeyDeregistration() {
|
|
27
|
+
return core_1.CSL.Certificate.new_stake_deregistration(core_1.CSL.StakeDeregistration.new(__classPrivateFieldGet(this, _CertificateFactory_stakeCredential, "f")));
|
|
28
|
+
}
|
|
29
|
+
poolRegistration({ poolKeyHash, vrfKeyHash, pledge, cost, margin, rewardAddress, owners, relays, poolMetadata }) {
|
|
30
|
+
const cslOwners = core_1.CSL.Ed25519KeyHashes.new();
|
|
31
|
+
for (const owner of owners) {
|
|
32
|
+
cslOwners.add(core_1.CSL.Ed25519KeyHash.from_bech32(owner));
|
|
33
|
+
}
|
|
34
|
+
const cslRelays = __classPrivateFieldGet(this, _CertificateFactory_instances, "m", _CertificateFactory_createCslRelays).call(this, relays);
|
|
35
|
+
const poolParams = core_1.CSL.PoolParams.new(core_1.CSL.Ed25519KeyHash.from_bech32(poolKeyHash), core_1.CSL.VRFKeyHash.from_bech32(vrfKeyHash), core_1.CSL.BigNum.from_str(pledge.toString()), core_1.CSL.BigNum.from_str(cost.toString()), core_1.CSL.UnitInterval.new(core_1.CSL.BigNum.from_str(margin.numerator.toString()), core_1.CSL.BigNum.from_str(margin.denominator.toString())), core_1.CSL.RewardAddress.from_address(core_1.CSL.Address.from_bech32(rewardAddress)), cslOwners, cslRelays, poolMetadata
|
|
36
|
+
? core_1.CSL.PoolMetadata.new(core_1.CSL.URL.new(poolMetadata.url), core_1.CSL.PoolMetadataHash.from_bech32(poolMetadata.hash))
|
|
37
|
+
: undefined);
|
|
38
|
+
return core_1.CSL.Certificate.new_pool_registration(core_1.CSL.PoolRegistration.new(poolParams));
|
|
39
|
+
}
|
|
40
|
+
poolRetirement(poolKeyHash, epoch) {
|
|
41
|
+
return core_1.CSL.Certificate.new_pool_retirement(core_1.CSL.PoolRetirement.new(core_1.CSL.Ed25519KeyHash.from_bech32(poolKeyHash), epoch));
|
|
42
|
+
}
|
|
43
|
+
stakeDelegation(delegatee) {
|
|
44
|
+
return core_1.CSL.Certificate.new_stake_delegation(core_1.CSL.StakeDelegation.new(__classPrivateFieldGet(this, _CertificateFactory_stakeCredential, "f"), core_1.CSL.Ed25519KeyHash.from_bech32(delegatee)));
|
|
45
|
+
}
|
|
46
|
+
}
|
|
47
|
+
exports.CertificateFactory = CertificateFactory;
|
|
48
|
+
_CertificateFactory_stakeCredential = new WeakMap(), _CertificateFactory_instances = new WeakSet(), _CertificateFactory_createCslRelays = function _CertificateFactory_createCslRelays(relays) {
|
|
49
|
+
const cslRelays = core_1.CSL.Relays.new();
|
|
50
|
+
for (const relay of relays) {
|
|
51
|
+
switch (relay.relayType) {
|
|
52
|
+
case 'singlehost-addr':
|
|
53
|
+
if (relay.ipv6) {
|
|
54
|
+
throw new core_1.NotImplementedError('Parse IPv6 to byte array');
|
|
55
|
+
}
|
|
56
|
+
cslRelays.add(core_1.CSL.Relay.new_single_host_addr(core_1.CSL.SingleHostAddr.new(relay.port, relay.ipv4
|
|
57
|
+
? core_1.CSL.Ipv4.new(new Uint8Array(relay.ipv4.split('.').map((segment) => Number.parseInt(segment))))
|
|
58
|
+
: undefined)));
|
|
59
|
+
break;
|
|
60
|
+
case 'singlehost-name':
|
|
61
|
+
cslRelays.add(core_1.CSL.Relay.new_single_host_name(core_1.CSL.SingleHostName.new(relay.port || undefined, core_1.CSL.DNSRecordAorAAAA.new(relay.hostname))));
|
|
62
|
+
break;
|
|
63
|
+
case 'multihost-name':
|
|
64
|
+
cslRelays.add(core_1.CSL.Relay.new_multi_host_name(core_1.CSL.MultiHostName.new(core_1.CSL.DNSRecordSRV.new(relay.dnsName))));
|
|
65
|
+
break;
|
|
66
|
+
default:
|
|
67
|
+
throw new core_1.NotImplementedError('Relay type');
|
|
68
|
+
}
|
|
69
|
+
}
|
|
70
|
+
return cslRelays;
|
|
71
|
+
};
|
|
72
|
+
//# sourceMappingURL=CertificateFactory.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"CertificateFactory.js","sourceRoot":"","sources":["../../src/Transaction/CertificateFactory.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;AAAA,4CAAsE;AAgDtE,MAAa,kBAAkB;IAG7B,YAAY,UAAsB;;QAFlC,sDAA+C;QAG7C,uBAAA,IAAI,uCAAoB,UAAG,CAAC,eAAe,CAAC,YAAY,CAAC,UAAU,CAAC,QAAQ,CAAC,IAAI,EAAE,CAAC,MAAA,CAAC;IACvF,CAAC;IAED,oBAAoB;QAClB,OAAO,UAAG,CAAC,WAAW,CAAC,sBAAsB,CAAC,UAAG,CAAC,iBAAiB,CAAC,GAAG,CAAC,uBAAA,IAAI,2CAAiB,CAAC,CAAC,CAAC;IAClG,CAAC;IAED,sBAAsB;QACpB,OAAO,UAAG,CAAC,WAAW,CAAC,wBAAwB,CAAC,UAAG,CAAC,mBAAmB,CAAC,GAAG,CAAC,uBAAA,IAAI,2CAAiB,CAAC,CAAC,CAAC;IACtG,CAAC;IAED,gBAAgB,CAAC,EACf,WAAW,EACX,UAAU,EACV,MAAM,EACN,IAAI,EACJ,MAAM,EACN,aAAa,EACb,MAAM,EACN,MAAM,EACN,YAAY,EACG;QACf,MAAM,SAAS,GAAG,UAAG,CAAC,gBAAgB,CAAC,GAAG,EAAE,CAAC;QAC7C,KAAK,MAAM,KAAK,IAAI,MAAM,EAAE;YAC1B,SAAS,CAAC,GAAG,CAAC,UAAG,CAAC,cAAc,CAAC,WAAW,CAAC,KAAK,CAAC,CAAC,CAAC;SACtD;QACD,MAAM,SAAS,GAAG,uBAAA,IAAI,0EAAiB,MAArB,IAAI,EAAkB,MAAM,CAAC,CAAC;QAChD,MAAM,UAAU,GAAG,UAAG,CAAC,UAAU,CAAC,GAAG,CACnC,UAAG,CAAC,cAAc,CAAC,WAAW,CAAC,WAAW,CAAC,EAC3C,UAAG,CAAC,UAAU,CAAC,WAAW,CAAC,UAAU,CAAC,EACtC,UAAG,CAAC,MAAM,CAAC,QAAQ,CAAC,MAAM,CAAC,QAAQ,EAAE,CAAC,EACtC,UAAG,CAAC,MAAM,CAAC,QAAQ,CAAC,IAAI,CAAC,QAAQ,EAAE,CAAC,EACpC,UAAG,CAAC,YAAY,CAAC,GAAG,CAClB,UAAG,CAAC,MAAM,CAAC,QAAQ,CAAC,MAAM,CAAC,SAAS,CAAC,QAAQ,EAAE,CAAC,EAChD,UAAG,CAAC,MAAM,CAAC,QAAQ,CAAC,MAAM,CAAC,WAAW,CAAC,QAAQ,EAAE,CAAC,CACnD,EACD,UAAG,CAAC,aAAa,CAAC,YAAY,CAAC,UAAG,CAAC,OAAO,CAAC,WAAW,CAAC,aAAa,CAAC,CAAE,EACvE,SAAS,EACT,SAAS,EACT,YAAY;YACV,CAAC,CAAC,UAAG,CAAC,YAAY,CAAC,GAAG,CAAC,UAAG,CAAC,GAAG,CAAC,GAAG,CAAC,YAAY,CAAC,GAAG,CAAC,EAAE,UAAG,CAAC,gBAAgB,CAAC,WAAW,CAAC,YAAY,CAAC,IAAI,CAAC,CAAC;YAC1G,CAAC,CAAC,SAAS,CACd,CAAC;QACF,OAAO,UAAG,CAAC,WAAW,CAAC,qBAAqB,CAAC,UAAG,CAAC,gBAAgB,CAAC,GAAG,CAAC,UAAU,CAAC,CAAC,CAAC;IACrF,CAAC;IAED,cAAc,CAAC,WAAiC,EAAE,KAAa;QAC7D,OAAO,UAAG,CAAC,WAAW,CAAC,mBAAmB,CACxC,UAAG,CAAC,cAAc,CAAC,GAAG,CAAC,UAAG,CAAC,cAAc,CAAC,WAAW,CAAC,WAAW,CAAC,EAAE,KAAK,CAAC,CAC3E,CAAC;IACJ,CAAC;IAED,eAAe,CAAC,SAA+B;QAC7C,OAAO,UAAG,CAAC,WAAW,CAAC,oBAAoB,CACzC,UAAG,CAAC,eAAe,CAAC,GAAG,CAAC,uBAAA,IAAI,2CAAiB,EAAE,UAAG,CAAC,cAAc,CAAC,WAAW,CAAC,SAAS,CAAC,CAAC,CAC1F,CAAC;IACJ,CAAC;CAqCF;AAjGD,gDAiGC;uLAnCkB,MAAe;IAC9B,MAAM,SAAS,GAAG,UAAG,CAAC,MAAM,CAAC,GAAG,EAAE,CAAC;IACnC,KAAK,MAAM,KAAK,IAAI,MAAM,EAAE;QAC1B,QAAQ,KAAK,CAAC,SAAS,EAAE;YACvB,KAAK,iBAAiB;gBACpB,IAAI,KAAK,CAAC,IAAI,EAAE;oBACd,MAAM,IAAI,0BAAmB,CAAC,0BAA0B,CAAC,CAAC;iBAC3D;gBACD,SAAS,CAAC,GAAG,CACX,UAAG,CAAC,KAAK,CAAC,oBAAoB,CAC5B,UAAG,CAAC,cAAc,CAAC,GAAG,CACpB,KAAK,CAAC,IAAI,EACV,KAAK,CAAC,IAAI;oBACR,CAAC,CAAC,UAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,UAAU,CAAC,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,OAAO,EAAE,EAAE,CAAC,MAAM,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC;oBAChG,CAAC,CAAC,SAAS,CACd,CACF,CACF,CAAC;gBACF,MAAM;YACR,KAAK,iBAAiB;gBACpB,SAAS,CAAC,GAAG,CACX,UAAG,CAAC,KAAK,CAAC,oBAAoB,CAC5B,UAAG,CAAC,cAAc,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,IAAI,SAAS,EAAE,UAAG,CAAC,gBAAgB,CAAC,GAAG,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC,CAC1F,CACF,CAAC;gBACF,MAAM;YACR,KAAK,gBAAgB;gBACnB,SAAS,CAAC,GAAG,CAAC,UAAG,CAAC,KAAK,CAAC,mBAAmB,CAAC,UAAG,CAAC,aAAa,CAAC,GAAG,CAAC,UAAG,CAAC,YAAY,CAAC,GAAG,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC;gBACzG,MAAM;YACR;gBACE,MAAM,IAAI,0BAAmB,CAAC,YAAY,CAAC,CAAC;SAC/C;KACF;IACD,OAAO,SAAS,CAAC;AACnB,CAAC"}
|
|
@@ -0,0 +1,4 @@
|
|
|
1
|
+
import { Cardano, ProtocolParametersRequiredByWallet } from '@cardano-sdk/core';
|
|
2
|
+
import { InitializeTxProps } from './types';
|
|
3
|
+
export declare const computeImplicitCoin: ({ stakeKeyDeposit, poolDeposit }: ProtocolParametersRequiredByWallet, { certificates, withdrawals }: InitializeTxProps) => Cardano.ImplicitCoin;
|
|
4
|
+
//# sourceMappingURL=computeImplicitCoin.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"computeImplicitCoin.d.ts","sourceRoot":"","sources":["../../src/Transaction/computeImplicitCoin.ts"],"names":[],"mappings":"AAAA,OAAO,EAAc,OAAO,EAAE,kCAAkC,EAAE,MAAM,mBAAmB,CAAC;AAC5F,OAAO,EAAE,iBAAiB,EAAE,MAAM,SAAS,CAAC;AAK5C,eAAO,MAAM,mBAAmB,qCACI,kCAAkC,iCACrC,iBAAiB,KAC/C,QAAQ,YAyBV,CAAC"}
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.computeImplicitCoin = void 0;
|
|
4
|
+
const core_1 = require("@cardano-sdk/core");
|
|
5
|
+
const computeImplicitCoin = ({ stakeKeyDeposit, poolDeposit }, { certificates, withdrawals }) => {
|
|
6
|
+
const stakeKeyDepositBigint = stakeKeyDeposit && BigInt(stakeKeyDeposit);
|
|
7
|
+
const poolDepositBigint = poolDeposit && BigInt(poolDeposit);
|
|
8
|
+
const deposit = core_1.BigIntMath.sum(certificates?.map((cert) => (cert.as_stake_registration() && stakeKeyDepositBigint) ||
|
|
9
|
+
(cert.as_pool_registration() && poolDepositBigint) ||
|
|
10
|
+
0n) || []);
|
|
11
|
+
const withdrawalsTotal = (withdrawals && core_1.BigIntMath.sum(withdrawals.map(({ quantity }) => BigInt(quantity.to_str())))) || 0n;
|
|
12
|
+
const reclaimTotal = core_1.BigIntMath.sum(certificates?.map((cert) => (cert.as_stake_deregistration() && stakeKeyDepositBigint) ||
|
|
13
|
+
(cert.as_pool_retirement() && poolDepositBigint) ||
|
|
14
|
+
0n) || []);
|
|
15
|
+
return {
|
|
16
|
+
deposit,
|
|
17
|
+
input: withdrawalsTotal + reclaimTotal
|
|
18
|
+
};
|
|
19
|
+
};
|
|
20
|
+
exports.computeImplicitCoin = computeImplicitCoin;
|
|
21
|
+
//# sourceMappingURL=computeImplicitCoin.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"computeImplicitCoin.js","sourceRoot":"","sources":["../../src/Transaction/computeImplicitCoin.ts"],"names":[],"mappings":";;;AAAA,4CAA4F;AAMrF,MAAM,mBAAmB,GAAG,CACjC,EAAE,eAAe,EAAE,WAAW,EAAsC,EACpE,EAAE,YAAY,EAAE,WAAW,EAAqB,EAC1B,EAAE;IACxB,MAAM,qBAAqB,GAAG,eAAe,IAAI,MAAM,CAAC,eAAe,CAAC,CAAC;IACzE,MAAM,iBAAiB,GAAG,WAAW,IAAI,MAAM,CAAC,WAAW,CAAC,CAAC;IAC7D,MAAM,OAAO,GAAG,iBAAU,CAAC,GAAG,CAC5B,YAAY,EAAE,GAAG,CACf,CAAC,IAAI,EAAE,EAAE,CACP,CAAC,IAAI,CAAC,qBAAqB,EAAE,IAAI,qBAAqB,CAAC;QACvD,CAAC,IAAI,CAAC,oBAAoB,EAAE,IAAI,iBAAiB,CAAC;QAClD,EAAE,CACL,IAAI,EAAE,CACR,CAAC;IACF,MAAM,gBAAgB,GACpB,CAAC,WAAW,IAAI,iBAAU,CAAC,GAAG,CAAC,WAAW,CAAC,GAAG,CAAC,CAAC,EAAE,QAAQ,EAAE,EAAE,EAAE,CAAC,MAAM,CAAC,QAAQ,CAAC,MAAM,EAAE,CAAC,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC;IACtG,MAAM,YAAY,GAAG,iBAAU,CAAC,GAAG,CACjC,YAAY,EAAE,GAAG,CACf,CAAC,IAAI,EAAE,EAAE,CACP,CAAC,IAAI,CAAC,uBAAuB,EAAE,IAAI,qBAAqB,CAAC;QACzD,CAAC,IAAI,CAAC,kBAAkB,EAAE,IAAI,iBAAiB,CAAC;QAChD,EAAE,CACL,IAAI,EAAE,CACR,CAAC;IACF,OAAO;QACL,OAAO;QACP,KAAK,EAAE,gBAAgB,GAAG,YAAY;KACvC,CAAC;AACJ,CAAC,CAAC;AA5BW,QAAA,mBAAmB,uBA4B9B"}
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
import { SelectionResult } from '@cardano-sdk/cip2';
|
|
2
|
+
import { CSL, Cardano } from '@cardano-sdk/core';
|
|
3
|
+
import { Withdrawal } from './withdrawal';
|
|
4
|
+
export declare type TxInternals = {
|
|
5
|
+
hash: CSL.TransactionHash;
|
|
6
|
+
body: CSL.TransactionBody;
|
|
7
|
+
};
|
|
8
|
+
export declare type CreateTxInternalsProps = {
|
|
9
|
+
changeAddress: string;
|
|
10
|
+
inputSelection: SelectionResult['selection'];
|
|
11
|
+
validityInterval: Cardano.ValidityInterval;
|
|
12
|
+
certificates?: CSL.Certificate[];
|
|
13
|
+
withdrawals?: Withdrawal[];
|
|
14
|
+
};
|
|
15
|
+
export declare const createTransactionInternals: (props: CreateTxInternalsProps) => Promise<TxInternals>;
|
|
16
|
+
//# sourceMappingURL=createTransactionInternals.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"createTransactionInternals.d.ts","sourceRoot":"","sources":["../../src/Transaction/createTransactionInternals.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,eAAe,EAAE,MAAM,mBAAmB,CAAC;AACpD,OAAO,EAAE,GAAG,EAAE,OAAO,EAAE,MAAM,mBAAmB,CAAC;AACjD,OAAO,EAAE,UAAU,EAAE,MAAM,cAAc,CAAC;AAE1C,oBAAY,WAAW,GAAG;IACxB,IAAI,EAAE,GAAG,CAAC,eAAe,CAAC;IAC1B,IAAI,EAAE,GAAG,CAAC,eAAe,CAAC;CAC3B,CAAC;AAEF,oBAAY,sBAAsB,GAAG;IACnC,aAAa,EAAE,MAAM,CAAC;IACtB,cAAc,EAAE,eAAe,CAAC,WAAW,CAAC,CAAC;IAC7C,gBAAgB,EAAE,OAAO,CAAC,gBAAgB,CAAC;IAC3C,YAAY,CAAC,EAAE,GAAG,CAAC,WAAW,EAAE,CAAC;IACjC,WAAW,CAAC,EAAE,UAAU,EAAE,CAAC;CAC5B,CAAC;AAEF,eAAO,MAAM,0BAA0B,UAAiB,sBAAsB,KAAG,QAAQ,WAAW,CAuCnG,CAAC"}
|
|
@@ -0,0 +1,41 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.createTransactionInternals = void 0;
|
|
4
|
+
const core_1 = require("@cardano-sdk/core");
|
|
5
|
+
const createTransactionInternals = async (props) => {
|
|
6
|
+
const inputs = core_1.CSL.TransactionInputs.new();
|
|
7
|
+
for (const utxo of props.inputSelection.inputs) {
|
|
8
|
+
inputs.add(utxo.input());
|
|
9
|
+
}
|
|
10
|
+
const outputs = core_1.CSL.TransactionOutputs.new();
|
|
11
|
+
for (const output of props.inputSelection.outputs) {
|
|
12
|
+
outputs.add(output);
|
|
13
|
+
}
|
|
14
|
+
for (const value of props.inputSelection.change) {
|
|
15
|
+
outputs.add(core_1.CSL.TransactionOutput.new(core_1.CSL.Address.from_bech32(props.changeAddress), value));
|
|
16
|
+
}
|
|
17
|
+
const body = core_1.CSL.TransactionBody.new(inputs, outputs, props.inputSelection.fee, props.validityInterval.invalidHereafter || undefined);
|
|
18
|
+
if (props.validityInterval.invalidBefore) {
|
|
19
|
+
body.set_validity_start_interval(props.validityInterval.invalidBefore);
|
|
20
|
+
}
|
|
21
|
+
if (props.certificates?.length) {
|
|
22
|
+
const certs = core_1.CSL.Certificates.new();
|
|
23
|
+
for (const cert of props.certificates) {
|
|
24
|
+
certs.add(cert);
|
|
25
|
+
}
|
|
26
|
+
body.set_certs(certs);
|
|
27
|
+
}
|
|
28
|
+
if (props.withdrawals?.length) {
|
|
29
|
+
const withdrawals = core_1.CSL.Withdrawals.new();
|
|
30
|
+
for (const { address, quantity } of props.withdrawals) {
|
|
31
|
+
withdrawals.insert(address, quantity);
|
|
32
|
+
}
|
|
33
|
+
body.set_withdrawals(withdrawals);
|
|
34
|
+
}
|
|
35
|
+
return {
|
|
36
|
+
body,
|
|
37
|
+
hash: core_1.CSL.hash_transaction(body)
|
|
38
|
+
};
|
|
39
|
+
};
|
|
40
|
+
exports.createTransactionInternals = createTransactionInternals;
|
|
41
|
+
//# sourceMappingURL=createTransactionInternals.js.map
|