@cardano-sdk/wallet 0.1.4 → 0.1.8
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 +8 -0
- package/dist/KeyManagement/InMemoryKeyManager.d.ts +9 -0
- package/dist/KeyManagement/InMemoryKeyManager.d.ts.map +1 -0
- package/dist/KeyManagement/InMemoryKeyManager.js +94 -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 +30 -0
- package/dist/KeyManagement/types.d.ts.map +1 -0
- package/dist/KeyManagement/types.js +15 -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 +45 -0
- package/dist/SingleAddressWallet.d.ts.map +1 -0
- package/dist/SingleAddressWallet.js +158 -0
- package/dist/SingleAddressWallet.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 +28 -0
- package/dist/Transaction/createTransactionInternals.js.map +1 -0
- package/dist/Transaction/ensureValidityInterval.d.ts +3 -0
- package/dist/Transaction/ensureValidityInterval.d.ts.map +1 -0
- package/dist/Transaction/ensureValidityInterval.js +6 -0
- package/dist/Transaction/ensureValidityInterval.js.map +1 -0
- package/dist/Transaction/index.d.ts +4 -0
- package/dist/Transaction/index.d.ts.map +1 -0
- package/dist/Transaction/index.js +16 -0
- package/dist/Transaction/index.js.map +1 -0
- package/dist/index.d.ts +6 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +31 -0
- package/dist/index.js.map +1 -0
- package/dist/services/AssetsTracker.d.ts +16 -0
- package/dist/services/AssetsTracker.d.ts.map +1 -0
- package/dist/services/AssetsTracker.js +13 -0
- package/dist/services/AssetsTracker.js.map +1 -0
- package/dist/services/BalanceTracker.d.ts +5 -0
- package/dist/services/BalanceTracker.d.ts.map +1 -0
- package/dist/services/BalanceTracker.js +43 -0
- package/dist/services/BalanceTracker.js.map +1 -0
- package/dist/services/DelegationTracker/DelegationTracker.d.ts +26 -0
- package/dist/services/DelegationTracker/DelegationTracker.d.ts.map +1 -0
- package/dist/services/DelegationTracker/DelegationTracker.js +39 -0
- package/dist/services/DelegationTracker/DelegationTracker.js.map +1 -0
- package/dist/services/DelegationTracker/RewardAccounts.d.ts +36 -0
- package/dist/services/DelegationTracker/RewardAccounts.d.ts.map +1 -0
- package/dist/services/DelegationTracker/RewardAccounts.js +86 -0
- package/dist/services/DelegationTracker/RewardAccounts.js.map +1 -0
- package/dist/services/DelegationTracker/RewardsHistory.d.ts +14 -0
- package/dist/services/DelegationTracker/RewardsHistory.d.ts.map +1 -0
- package/dist/services/DelegationTracker/RewardsHistory.js +27 -0
- package/dist/services/DelegationTracker/RewardsHistory.js.map +1 -0
- package/dist/services/DelegationTracker/index.d.ts +5 -0
- package/dist/services/DelegationTracker/index.d.ts.map +1 -0
- package/dist/services/DelegationTracker/index.js +17 -0
- package/dist/services/DelegationTracker/index.js.map +1 -0
- package/dist/services/DelegationTracker/transactionCertificates.d.ts +9 -0
- package/dist/services/DelegationTracker/transactionCertificates.d.ts.map +1 -0
- package/dist/services/DelegationTracker/transactionCertificates.js +33 -0
- package/dist/services/DelegationTracker/transactionCertificates.js.map +1 -0
- package/dist/services/DelegationTracker/types.d.ts +6 -0
- package/dist/services/DelegationTracker/types.d.ts.map +1 -0
- package/dist/services/DelegationTracker/types.js +3 -0
- package/dist/services/DelegationTracker/types.js.map +1 -0
- package/dist/services/TransactionError.d.ts +15 -0
- package/dist/services/TransactionError.d.ts.map +1 -0
- package/dist/services/TransactionError.js +23 -0
- package/dist/services/TransactionError.js.map +1 -0
- package/dist/services/TransactionsTracker.d.ts +22 -0
- package/dist/services/TransactionsTracker.d.ts.map +1 -0
- package/dist/services/TransactionsTracker.js +75 -0
- package/dist/services/TransactionsTracker.js.map +1 -0
- package/dist/services/UtxoTracker.d.ts +18 -0
- package/dist/services/UtxoTracker.d.ts.map +1 -0
- package/dist/services/UtxoTracker.js +20 -0
- package/dist/services/UtxoTracker.js.map +1 -0
- package/dist/services/index.d.ts +9 -0
- package/dist/services/index.d.ts.map +1 -0
- package/dist/services/index.js +21 -0
- package/dist/services/index.js.map +1 -0
- package/dist/services/types.d.ts +81 -0
- package/dist/services/types.d.ts.map +1 -0
- package/dist/services/types.js +16 -0
- package/dist/services/types.js.map +1 -0
- package/dist/services/util/SyncableIntervalTrackerSubject.d.ts +19 -0
- package/dist/services/util/SyncableIntervalTrackerSubject.d.ts.map +1 -0
- package/dist/services/util/SyncableIntervalTrackerSubject.js +30 -0
- package/dist/services/util/SyncableIntervalTrackerSubject.js.map +1 -0
- package/dist/services/util/TrackerSubject.d.ts +14 -0
- package/dist/services/util/TrackerSubject.d.ts.map +1 -0
- package/dist/services/util/TrackerSubject.js +46 -0
- package/dist/services/util/TrackerSubject.js.map +1 -0
- package/dist/services/util/coldObservableProvider.d.ts +4 -0
- package/dist/services/util/coldObservableProvider.d.ts.map +1 -0
- package/dist/services/util/coldObservableProvider.js +14 -0
- package/dist/services/util/coldObservableProvider.js.map +1 -0
- package/dist/services/util/equals.d.ts +9 -0
- package/dist/services/util/equals.d.ts.map +1 -0
- package/dist/services/util/equals.js +19 -0
- package/dist/services/util/equals.js.map +1 -0
- package/dist/services/util/index.d.ts +6 -0
- package/dist/services/util/index.d.ts.map +1 -0
- package/dist/services/util/index.js +18 -0
- package/dist/services/util/index.js.map +1 -0
- package/dist/services/util/trigger.d.ts +5 -0
- package/dist/services/util/trigger.d.ts.map +1 -0
- package/dist/services/util/trigger.js +9 -0
- package/dist/services/util/trigger.js.map +1 -0
- package/dist/types.d.ts +35 -0
- package/dist/types.d.ts.map +1 -0
- package/dist/types.js +3 -0
- package/dist/types.js.map +1 -0
- package/package.json +17 -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/index.ts +0 -5
- package/src/Transaction/types.ts +0 -12
- package/src/Transaction/withdrawal.ts +0 -17
- package/src/TransactionError.ts +0 -17
- package/src/index.ts +0 -9
- 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":"types.d.ts","sourceRoot":"","sources":["../../src/services/types.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.StakeKeyStatus = exports.TransactionDirection = void 0;
|
|
4
|
+
var TransactionDirection;
|
|
5
|
+
(function (TransactionDirection) {
|
|
6
|
+
TransactionDirection["Incoming"] = "Incoming";
|
|
7
|
+
TransactionDirection["Outgoing"] = "Outgoing";
|
|
8
|
+
})(TransactionDirection = exports.TransactionDirection || (exports.TransactionDirection = {}));
|
|
9
|
+
var StakeKeyStatus;
|
|
10
|
+
(function (StakeKeyStatus) {
|
|
11
|
+
StakeKeyStatus["Registering"] = "REGISTERING";
|
|
12
|
+
StakeKeyStatus["Registered"] = "REGISTERED";
|
|
13
|
+
StakeKeyStatus["Unregistering"] = "UNREGISTERING";
|
|
14
|
+
StakeKeyStatus["Unregistered"] = "UNREGISTERED";
|
|
15
|
+
})(StakeKeyStatus = exports.StakeKeyStatus || (exports.StakeKeyStatus = {}));
|
|
16
|
+
//# sourceMappingURL=types.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"types.js","sourceRoot":"","sources":["../../src/services/types.ts"],"names":[],"mappings":";;;AA6BA,IAAY,oBAGX;AAHD,WAAY,oBAAoB;IAC9B,6CAAqB,CAAA;IACrB,6CAAqB,CAAA;AACvB,CAAC,EAHW,oBAAoB,GAApB,4BAAoB,KAApB,4BAAoB,QAG/B;AA8CD,IAAY,cAKX;AALD,WAAY,cAAc;IACxB,6CAA2B,CAAA;IAC3B,2CAAyB,CAAA;IACzB,iDAA+B,CAAA;IAC/B,+CAA6B,CAAA;AAC/B,CAAC,EALW,cAAc,GAAd,sBAAc,KAAd,sBAAc,QAKzB"}
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
import { Milliseconds } from '../types';
|
|
2
|
+
import { Observable, Subject } from 'rxjs';
|
|
3
|
+
import { TrackerSubject } from './TrackerSubject';
|
|
4
|
+
import { retryBackoff } from 'backoff-rxjs';
|
|
5
|
+
export declare type RetryOperator = () => ReturnType<typeof retryBackoff>;
|
|
6
|
+
export interface SourceTrackerProps<T> {
|
|
7
|
+
provider$: Observable<T>;
|
|
8
|
+
pollInterval: Milliseconds;
|
|
9
|
+
}
|
|
10
|
+
export interface ProviderTrackerSubjectInternals {
|
|
11
|
+
externalTrigger$?: Subject<void>;
|
|
12
|
+
interval$?: Observable<unknown>;
|
|
13
|
+
}
|
|
14
|
+
export declare class SyncableIntervalTrackerSubject<T> extends TrackerSubject<T> {
|
|
15
|
+
#private;
|
|
16
|
+
constructor({ provider$, pollInterval }: SourceTrackerProps<T>, { externalTrigger$, interval$ }?: ProviderTrackerSubjectInternals);
|
|
17
|
+
sync(): void;
|
|
18
|
+
}
|
|
19
|
+
//# sourceMappingURL=SyncableIntervalTrackerSubject.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"SyncableIntervalTrackerSubject.d.ts","sourceRoot":"","sources":["../../../src/services/util/SyncableIntervalTrackerSubject.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,UAAU,CAAC;AACxC,OAAO,EAAE,UAAU,EAAE,OAAO,EAAgE,MAAM,MAAM,CAAC;AACzG,OAAO,EAAE,cAAc,EAAE,MAAM,kBAAkB,CAAC;AAClD,OAAO,EAAE,YAAY,EAAE,MAAM,cAAc,CAAC;AAE5C,oBAAY,aAAa,GAAG,MAAM,UAAU,CAAC,OAAO,YAAY,CAAC,CAAC;AAElE,MAAM,WAAW,kBAAkB,CAAC,CAAC;IACnC,SAAS,EAAE,UAAU,CAAC,CAAC,CAAC,CAAC;IACzB,YAAY,EAAE,YAAY,CAAC;CAC5B;AAED,MAAM,WAAW,+BAA+B;IAC9C,gBAAgB,CAAC,EAAE,OAAO,CAAC,IAAI,CAAC,CAAC;IACjC,SAAS,CAAC,EAAE,UAAU,CAAC,OAAO,CAAC,CAAC;CACjC;AAED,qBAAa,8BAA8B,CAAC,CAAC,CAAE,SAAQ,cAAc,CAAC,CAAC,CAAC;;gBAIpE,EAAE,SAAS,EAAE,YAAY,EAAE,EAAE,kBAAkB,CAAC,CAAC,CAAC,EAClD,EAAE,gBAAgC,EAAE,SAAkC,EAAE,GAAE,+BAAoC;IAiBhH,IAAI;CAGL"}
|
|
@@ -0,0 +1,30 @@
|
|
|
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 _SyncableIntervalTrackerSubject_externalTrigger$;
|
|
14
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
15
|
+
exports.SyncableIntervalTrackerSubject = void 0;
|
|
16
|
+
const rxjs_1 = require("rxjs");
|
|
17
|
+
const TrackerSubject_1 = require("./TrackerSubject");
|
|
18
|
+
class SyncableIntervalTrackerSubject extends TrackerSubject_1.TrackerSubject {
|
|
19
|
+
constructor({ provider$, pollInterval }, { externalTrigger$ = new rxjs_1.Subject(), interval$ = rxjs_1.interval(pollInterval) } = {}) {
|
|
20
|
+
super(rxjs_1.merge(interval$.pipe(rxjs_1.startWith(null), rxjs_1.exhaustMap(() => provider$.pipe(rxjs_1.takeUntil(externalTrigger$)))), externalTrigger$.pipe(rxjs_1.switchMap(() => provider$))));
|
|
21
|
+
_SyncableIntervalTrackerSubject_externalTrigger$.set(this, new rxjs_1.Subject());
|
|
22
|
+
__classPrivateFieldSet(this, _SyncableIntervalTrackerSubject_externalTrigger$, externalTrigger$, "f");
|
|
23
|
+
}
|
|
24
|
+
sync() {
|
|
25
|
+
__classPrivateFieldGet(this, _SyncableIntervalTrackerSubject_externalTrigger$, "f").next();
|
|
26
|
+
}
|
|
27
|
+
}
|
|
28
|
+
exports.SyncableIntervalTrackerSubject = SyncableIntervalTrackerSubject;
|
|
29
|
+
_SyncableIntervalTrackerSubject_externalTrigger$ = new WeakMap();
|
|
30
|
+
//# sourceMappingURL=SyncableIntervalTrackerSubject.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"SyncableIntervalTrackerSubject.js","sourceRoot":"","sources":["../../../src/services/util/SyncableIntervalTrackerSubject.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;AACA,+BAAyG;AACzG,qDAAkD;AAelD,MAAa,8BAAkC,SAAQ,+BAAiB;IAGtE,YACE,EAAE,SAAS,EAAE,YAAY,EAAyB,EAClD,EAAE,gBAAgB,GAAG,IAAI,cAAO,EAAE,EAAE,SAAS,GAAG,eAAQ,CAAC,YAAY,CAAC,KAAsC,EAAE;QAE9G,KAAK,CACH,YAAK,CAEH,SAAS,CAAC,IAAI,CACZ,gBAAS,CAAC,IAAI,CAAC,EAEf,iBAAU,CAAC,GAAG,EAAE,CAAC,SAAS,CAAC,IAAI,CAAC,gBAAS,CAAC,gBAAgB,CAAC,CAAC,CAAC,CAC9D,EAED,gBAAgB,CAAC,IAAI,CAAC,gBAAS,CAAC,GAAG,EAAE,CAAC,SAAS,CAAC,CAAC,CAClD,CACF,CAAC;QAjBJ,2DAAoB,IAAI,cAAO,EAAQ,EAAC;QAkBtC,uBAAA,IAAI,oDAAqB,gBAAgB,MAAA,CAAC;IAC5C,CAAC;IAED,IAAI;QACF,uBAAA,IAAI,wDAAkB,CAAC,IAAI,EAAE,CAAC;IAChC,CAAC;CACF;AAzBD,wEAyBC"}
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
import { Observable, ReplaySubject } from 'rxjs';
|
|
2
|
+
export interface BehaviorObservable<T> extends Observable<T> {
|
|
3
|
+
get value(): T | null;
|
|
4
|
+
}
|
|
5
|
+
export declare class TrackerSubject<T> extends ReplaySubject<T> implements BehaviorObservable<T> {
|
|
6
|
+
#private;
|
|
7
|
+
get value(): T | null;
|
|
8
|
+
constructor(source$: Observable<T>);
|
|
9
|
+
next(value: T): void;
|
|
10
|
+
complete(): void;
|
|
11
|
+
error(err: unknown): void;
|
|
12
|
+
unsubscribe(): void;
|
|
13
|
+
}
|
|
14
|
+
//# sourceMappingURL=TrackerSubject.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"TrackerSubject.d.ts","sourceRoot":"","sources":["../../../src/services/util/TrackerSubject.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,aAAa,EAAgB,MAAM,MAAM,CAAC;AAE/D,MAAM,WAAW,kBAAkB,CAAC,CAAC,CAAE,SAAQ,UAAU,CAAC,CAAC,CAAC;IAC1D,IAAI,KAAK,IAAI,CAAC,GAAG,IAAI,CAAC;CACvB;AAED,qBAAa,cAAc,CAAC,CAAC,CAAE,SAAQ,aAAa,CAAC,CAAC,CAAE,YAAW,kBAAkB,CAAC,CAAC,CAAC;;IAGtF,IAAI,KAAK,IAAI,CAAC,GAAG,IAAI,CAEpB;gBACW,OAAO,EAAE,UAAU,CAAC,CAAC,CAAC;IAIlC,IAAI,CAAC,KAAK,EAAE,CAAC;IAIb,QAAQ;IAIR,KAAK,CAAC,GAAG,EAAE,OAAO;IAIlB,WAAW;CAIZ"}
|
|
@@ -0,0 +1,46 @@
|
|
|
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 _TrackerSubject_sourceSubscription$, _TrackerSubject_value;
|
|
14
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
15
|
+
exports.TrackerSubject = void 0;
|
|
16
|
+
const rxjs_1 = require("rxjs");
|
|
17
|
+
class TrackerSubject extends rxjs_1.ReplaySubject {
|
|
18
|
+
constructor(source$) {
|
|
19
|
+
super(1);
|
|
20
|
+
_TrackerSubject_sourceSubscription$.set(this, void 0);
|
|
21
|
+
_TrackerSubject_value.set(this, null);
|
|
22
|
+
__classPrivateFieldSet(this, _TrackerSubject_sourceSubscription$, source$.subscribe(this), "f");
|
|
23
|
+
}
|
|
24
|
+
get value() {
|
|
25
|
+
return __classPrivateFieldGet(this, _TrackerSubject_value, "f");
|
|
26
|
+
}
|
|
27
|
+
next(value) {
|
|
28
|
+
__classPrivateFieldSet(this, _TrackerSubject_value, value, "f");
|
|
29
|
+
super.next(value);
|
|
30
|
+
}
|
|
31
|
+
complete() {
|
|
32
|
+
__classPrivateFieldGet(this, _TrackerSubject_sourceSubscription$, "f").unsubscribe();
|
|
33
|
+
super.complete();
|
|
34
|
+
}
|
|
35
|
+
error(err) {
|
|
36
|
+
__classPrivateFieldGet(this, _TrackerSubject_sourceSubscription$, "f").unsubscribe();
|
|
37
|
+
super.error(err);
|
|
38
|
+
}
|
|
39
|
+
unsubscribe() {
|
|
40
|
+
__classPrivateFieldGet(this, _TrackerSubject_sourceSubscription$, "f").unsubscribe();
|
|
41
|
+
super.unsubscribe();
|
|
42
|
+
}
|
|
43
|
+
}
|
|
44
|
+
exports.TrackerSubject = TrackerSubject;
|
|
45
|
+
_TrackerSubject_sourceSubscription$ = new WeakMap(), _TrackerSubject_value = new WeakMap();
|
|
46
|
+
//# sourceMappingURL=TrackerSubject.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"TrackerSubject.js","sourceRoot":"","sources":["../../../src/services/util/TrackerSubject.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;AAAA,+BAA+D;AAM/D,MAAa,cAAkB,SAAQ,oBAAgB;IAMrD,YAAY,OAAsB;QAChC,KAAK,CAAC,CAAC,CAAC,CAAC;QANX,sDAAmC;QACnC,gCAAmB,IAAI,EAAC;QAMtB,uBAAA,IAAI,uCAAwB,OAAO,CAAC,SAAS,CAAC,IAAI,CAAC,MAAA,CAAC;IACtD,CAAC;IAND,IAAI,KAAK;QACP,OAAO,uBAAA,IAAI,6BAAO,CAAC;IACrB,CAAC;IAKD,IAAI,CAAC,KAAQ;QACX,uBAAA,IAAI,yBAAU,KAAK,MAAA,CAAC;QACpB,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;IACpB,CAAC;IACD,QAAQ;QACN,uBAAA,IAAI,2CAAqB,CAAC,WAAW,EAAE,CAAC;QACxC,KAAK,CAAC,QAAQ,EAAE,CAAC;IACnB,CAAC;IACD,KAAK,CAAC,GAAY;QAChB,uBAAA,IAAI,2CAAqB,CAAC,WAAW,EAAE,CAAC;QACxC,KAAK,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;IACnB,CAAC;IACD,WAAW;QACT,uBAAA,IAAI,2CAAqB,CAAC,WAAW,EAAE,CAAC;QACxC,KAAK,CAAC,WAAW,EAAE,CAAC;IACtB,CAAC;CACF;AA1BD,wCA0BC"}
|
|
@@ -0,0 +1,4 @@
|
|
|
1
|
+
import { Observable } from 'rxjs';
|
|
2
|
+
import { RetryBackoffConfig } from 'backoff-rxjs';
|
|
3
|
+
export declare const coldObservableProvider: <T>(provider: () => Promise<T>, retryBackoffConfig: RetryBackoffConfig, trigger$?: Observable<unknown>, equals?: (t1: T, t2: T) => boolean) => Observable<T>;
|
|
4
|
+
//# sourceMappingURL=coldObservableProvider.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"coldObservableProvider.d.ts","sourceRoot":"","sources":["../../../src/services/util/coldObservableProvider.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAA6C,MAAM,MAAM,CAAC;AAC7E,OAAO,EAAE,kBAAkB,EAAgB,MAAM,cAAc,CAAC;AAGhE,eAAO,MAAM,sBAAsB,sDAEb,kBAAkB,aAC5B,WAAW,OAAO,CAAC,6BACH,OAAO,kBAU/B,CAAC"}
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.coldObservableProvider = void 0;
|
|
4
|
+
const rxjs_1 = require("rxjs");
|
|
5
|
+
const backoff_rxjs_1 = require("backoff-rxjs");
|
|
6
|
+
const equals_1 = require("./equals");
|
|
7
|
+
const coldObservableProvider = (provider, retryBackoffConfig, trigger$ = rxjs_1.of(true), equals = equals_1.strictEquals) => new rxjs_1.Observable((subscriber) => {
|
|
8
|
+
const sub = trigger$
|
|
9
|
+
.pipe(rxjs_1.switchMap(() => rxjs_1.from(provider()).pipe(backoff_rxjs_1.retryBackoff(retryBackoffConfig))), rxjs_1.distinctUntilChanged(equals))
|
|
10
|
+
.subscribe(subscriber);
|
|
11
|
+
return () => sub.unsubscribe();
|
|
12
|
+
});
|
|
13
|
+
exports.coldObservableProvider = coldObservableProvider;
|
|
14
|
+
//# sourceMappingURL=coldObservableProvider.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"coldObservableProvider.js","sourceRoot":"","sources":["../../../src/services/util/coldObservableProvider.ts"],"names":[],"mappings":";;;AAAA,+BAA6E;AAC7E,+CAAgE;AAChE,qCAAwC;AAEjC,MAAM,sBAAsB,GAAG,CACpC,QAA0B,EAC1B,kBAAsC,EACtC,WAAgC,SAAE,CAAC,IAAI,CAAC,EACxC,SAAoC,qBAAY,EAChD,EAAE,CACF,IAAI,iBAAU,CAAI,CAAC,UAAU,EAAE,EAAE;IAC/B,MAAM,GAAG,GAAG,QAAQ;SACjB,IAAI,CACH,gBAAS,CAAC,GAAG,EAAE,CAAC,WAAI,CAAC,QAAQ,EAAE,CAAC,CAAC,IAAI,CAAC,2BAAY,CAAC,kBAAkB,CAAC,CAAC,CAAC,EACxE,2BAAoB,CAAC,MAAM,CAAC,CAC7B;SACA,SAAS,CAAC,UAAU,CAAC,CAAC;IACzB,OAAO,GAAG,EAAE,CAAC,GAAG,CAAC,WAAW,EAAE,CAAC;AACjC,CAAC,CAAC,CAAC;AAdQ,QAAA,sBAAsB,0BAc9B"}
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
import { Cardano } from '@cardano-sdk/core';
|
|
2
|
+
export declare const strictEquals: <T>(a: T, b: T) => boolean;
|
|
3
|
+
export declare const deepEquals: <T>(a: T, b: T) => boolean;
|
|
4
|
+
export declare const arrayEquals: <T>(arrayA: T[], arrayB: T[], itemEquals: (a: T, b: T) => boolean) => boolean;
|
|
5
|
+
export declare const shallowArrayEquals: <T>(a: T[], b: T[]) => boolean;
|
|
6
|
+
export declare const txEquals: (a: Cardano.TxAlonzo, b: Cardano.TxAlonzo) => boolean;
|
|
7
|
+
export declare const transactionsEquals: (a: Cardano.TxAlonzo[], b: Cardano.TxAlonzo[]) => boolean;
|
|
8
|
+
export declare const utxoEquals: (a: Cardano.Utxo[], b: Cardano.Utxo[]) => boolean;
|
|
9
|
+
//# sourceMappingURL=equals.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"equals.d.ts","sourceRoot":"","sources":["../../../src/services/util/equals.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,mBAAmB,CAAC;AAG5C,eAAO,MAAM,YAAY,4BAA6B,CAAC;AAEvD,eAAO,MAAM,UAAU,4BAAmC,CAAC;AAE3D,eAAO,MAAM,WAAW,4DAA6D,OAAO,YACE,CAAC;AAE/F,eAAO,MAAM,kBAAkB,gCAAyD,CAAC;AAEzF,eAAO,MAAM,QAAQ,MAAO,QAAQ,QAAQ,KAAK,QAAQ,QAAQ,YAAkB,CAAC;AAEpF,eAAO,MAAM,kBAAkB,MAAO,QAAQ,QAAQ,EAAE,KAAK,QAAQ,QAAQ,EAAE,YAAgC,CAAC;AAEhH,eAAO,MAAM,UAAU,MAAO,QAAQ,IAAI,EAAE,KAAK,QAAQ,IAAI,EAAE,YACoC,CAAC"}
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.utxoEquals = exports.transactionsEquals = exports.txEquals = exports.shallowArrayEquals = exports.arrayEquals = exports.deepEquals = exports.strictEquals = void 0;
|
|
4
|
+
const lodash_es_1 = require("lodash-es");
|
|
5
|
+
const strictEquals = (a, b) => a === b;
|
|
6
|
+
exports.strictEquals = strictEquals;
|
|
7
|
+
const deepEquals = (a, b) => lodash_es_1.isEqual(a, b);
|
|
8
|
+
exports.deepEquals = deepEquals;
|
|
9
|
+
const arrayEquals = (arrayA, arrayB, itemEquals) => arrayA.length === arrayB.length && arrayA.every((a) => arrayB.some((b) => itemEquals(a, b)));
|
|
10
|
+
exports.arrayEquals = arrayEquals;
|
|
11
|
+
const shallowArrayEquals = (a, b) => exports.arrayEquals(a, b, exports.strictEquals);
|
|
12
|
+
exports.shallowArrayEquals = shallowArrayEquals;
|
|
13
|
+
const txEquals = (a, b) => a.id === b.id;
|
|
14
|
+
exports.txEquals = txEquals;
|
|
15
|
+
const transactionsEquals = (a, b) => exports.arrayEquals(a, b, exports.txEquals);
|
|
16
|
+
exports.transactionsEquals = transactionsEquals;
|
|
17
|
+
const utxoEquals = (a, b) => exports.arrayEquals(a, b, ([aTxIn], [bTxIn]) => aTxIn.txId === bTxIn.txId && aTxIn.index === bTxIn.index);
|
|
18
|
+
exports.utxoEquals = utxoEquals;
|
|
19
|
+
//# sourceMappingURL=equals.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"equals.js","sourceRoot":"","sources":["../../../src/services/util/equals.ts"],"names":[],"mappings":";;;AACA,yCAAoC;AAE7B,MAAM,YAAY,GAAG,CAAI,CAAI,EAAE,CAAI,EAAE,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC;AAA1C,QAAA,YAAY,gBAA8B;AAEhD,MAAM,UAAU,GAAG,CAAI,CAAI,EAAE,CAAI,EAAE,EAAE,CAAC,mBAAO,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;AAA9C,QAAA,UAAU,cAAoC;AAEpD,MAAM,WAAW,GAAG,CAAI,MAAW,EAAE,MAAW,EAAE,UAAmC,EAAE,EAAE,CAC9F,MAAM,CAAC,MAAM,KAAK,MAAM,CAAC,MAAM,IAAI,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,UAAU,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC;AADlF,QAAA,WAAW,eACuE;AAExF,MAAM,kBAAkB,GAAG,CAAI,CAAM,EAAE,CAAM,EAAE,EAAE,CAAC,mBAAW,CAAC,CAAC,EAAE,CAAC,EAAE,oBAAY,CAAC,CAAC;AAA5E,QAAA,kBAAkB,sBAA0D;AAElF,MAAM,QAAQ,GAAG,CAAC,CAAmB,EAAE,CAAmB,EAAE,EAAE,CAAC,CAAC,CAAC,EAAE,KAAK,CAAC,CAAC,EAAE,CAAC;AAAvE,QAAA,QAAQ,YAA+D;AAE7E,MAAM,kBAAkB,GAAG,CAAC,CAAqB,EAAE,CAAqB,EAAE,EAAE,CAAC,mBAAW,CAAC,CAAC,EAAE,CAAC,EAAE,gBAAQ,CAAC,CAAC;AAAnG,QAAA,kBAAkB,sBAAiF;AAEzG,MAAM,UAAU,GAAG,CAAC,CAAiB,EAAE,CAAiB,EAAE,EAAE,CACjE,mBAAW,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,KAAK,CAAC,EAAE,CAAC,KAAK,CAAC,EAAE,EAAE,CAAC,KAAK,CAAC,IAAI,KAAK,KAAK,CAAC,IAAI,IAAI,KAAK,CAAC,KAAK,KAAK,KAAK,CAAC,KAAK,CAAC,CAAC;AADvF,QAAA,UAAU,cAC6E"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/services/util/index.ts"],"names":[],"mappings":"AAAA,cAAc,kBAAkB,CAAC;AACjC,cAAc,kCAAkC,CAAC;AACjD,cAAc,UAAU,CAAC;AACzB,cAAc,WAAW,CAAC;AAC1B,cAAc,0BAA0B,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
|
+
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 __exportStar = (this && this.__exportStar) || function(m, exports) {
|
|
10
|
+
for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
|
|
11
|
+
};
|
|
12
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
13
|
+
__exportStar(require("./TrackerSubject"), exports);
|
|
14
|
+
__exportStar(require("./SyncableIntervalTrackerSubject"), exports);
|
|
15
|
+
__exportStar(require("./equals"), exports);
|
|
16
|
+
__exportStar(require("./trigger"), exports);
|
|
17
|
+
__exportStar(require("./coldObservableProvider"), exports);
|
|
18
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/services/util/index.ts"],"names":[],"mappings":";;;;;;;;;;;;AAAA,mDAAiC;AACjC,mEAAiD;AACjD,2CAAyB;AACzB,4CAA0B;AAC1B,2DAAyC"}
|
|
@@ -0,0 +1,5 @@
|
|
|
1
|
+
import { Cardano, NetworkInfo } from '@cardano-sdk/core';
|
|
2
|
+
import { Observable } from 'rxjs';
|
|
3
|
+
export declare const sharedDistinctBlock: (tip$: Observable<Cardano.Tip>) => Observable<number>;
|
|
4
|
+
export declare const sharedDistinctEpoch: (networkInfo$: Observable<NetworkInfo>) => Observable<number>;
|
|
5
|
+
//# sourceMappingURL=trigger.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"trigger.d.ts","sourceRoot":"","sources":["../../../src/services/util/trigger.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAC;AACzD,OAAO,EAAE,UAAU,EAAoC,MAAM,MAAM,CAAC;AAEpE,eAAO,MAAM,mBAAmB,SAAU,WAAW,QAAQ,GAAG,CAAC,uBAK9D,CAAC;AAEJ,eAAO,MAAM,mBAAmB,iBAAkB,WAAW,WAAW,CAAC,uBAKtE,CAAC"}
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.sharedDistinctEpoch = exports.sharedDistinctBlock = void 0;
|
|
4
|
+
const rxjs_1 = require("rxjs");
|
|
5
|
+
const sharedDistinctBlock = (tip$) => tip$.pipe(rxjs_1.map(({ blockNo }) => blockNo), rxjs_1.distinctUntilChanged(), rxjs_1.share());
|
|
6
|
+
exports.sharedDistinctBlock = sharedDistinctBlock;
|
|
7
|
+
const sharedDistinctEpoch = (networkInfo$) => networkInfo$.pipe(rxjs_1.map(({ currentEpoch: { number } }) => number), rxjs_1.distinctUntilChanged(), rxjs_1.share());
|
|
8
|
+
exports.sharedDistinctEpoch = sharedDistinctEpoch;
|
|
9
|
+
//# sourceMappingURL=trigger.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"trigger.js","sourceRoot":"","sources":["../../../src/services/util/trigger.ts"],"names":[],"mappings":";;;AACA,+BAAoE;AAE7D,MAAM,mBAAmB,GAAG,CAAC,IAA6B,EAAE,EAAE,CACnE,IAAI,CAAC,IAAI,CACP,UAAG,CAAC,CAAC,EAAE,OAAO,EAAE,EAAE,EAAE,CAAC,OAAO,CAAC,EAC7B,2BAAoB,EAAE,EACtB,YAAK,EAAE,CACR,CAAC;AALS,QAAA,mBAAmB,uBAK5B;AAEG,MAAM,mBAAmB,GAAG,CAAC,YAAqC,EAAE,EAAE,CAC3E,YAAY,CAAC,IAAI,CACf,UAAG,CAAC,CAAC,EAAE,YAAY,EAAE,EAAE,MAAM,EAAE,EAAE,EAAE,EAAE,CAAC,MAAM,CAAC,EAC7C,2BAAoB,EAAE,EACtB,YAAK,EAAE,CACR,CAAC;AALS,QAAA,mBAAmB,uBAK5B"}
|
package/dist/types.d.ts
ADDED
|
@@ -0,0 +1,35 @@
|
|
|
1
|
+
import { Balance, BehaviorObservable, DelegationTracker, TransactionalTracker, TransactionsTracker } from './services';
|
|
2
|
+
import { Cardano, NetworkInfo, ProtocolParametersRequiredByWallet } from '@cardano-sdk/core';
|
|
3
|
+
import { GroupedAddress } from './KeyManagement';
|
|
4
|
+
import { TxInternals } from './Transaction';
|
|
5
|
+
export declare type InitializeTxProps = {
|
|
6
|
+
outputs?: Set<Cardano.TxOut>;
|
|
7
|
+
certificates?: Cardano.Certificate[];
|
|
8
|
+
withdrawals?: Cardano.Withdrawal[];
|
|
9
|
+
options?: {
|
|
10
|
+
validityInterval?: Cardano.ValidityInterval;
|
|
11
|
+
};
|
|
12
|
+
};
|
|
13
|
+
export interface FinalizeTxProps {
|
|
14
|
+
readonly body: Cardano.TxBodyAlonzo;
|
|
15
|
+
}
|
|
16
|
+
export declare type Assets = Partial<Record<Cardano.AssetId, Cardano.Asset>>;
|
|
17
|
+
export interface Wallet {
|
|
18
|
+
name: string;
|
|
19
|
+
readonly balance: TransactionalTracker<Balance>;
|
|
20
|
+
readonly delegation: DelegationTracker;
|
|
21
|
+
readonly utxo: TransactionalTracker<Cardano.Utxo[]>;
|
|
22
|
+
readonly transactions: TransactionsTracker;
|
|
23
|
+
readonly tip$: BehaviorObservable<Cardano.Tip>;
|
|
24
|
+
readonly genesisParameters$: BehaviorObservable<Cardano.CompactGenesis>;
|
|
25
|
+
readonly networkInfo$: BehaviorObservable<NetworkInfo>;
|
|
26
|
+
readonly protocolParameters$: BehaviorObservable<ProtocolParametersRequiredByWallet>;
|
|
27
|
+
readonly addresses$: BehaviorObservable<GroupedAddress[]>;
|
|
28
|
+
readonly assets$: BehaviorObservable<Assets>;
|
|
29
|
+
initializeTx(props: InitializeTxProps): Promise<TxInternals>;
|
|
30
|
+
finalizeTx(props: TxInternals): Promise<Cardano.NewTxAlonzo>;
|
|
31
|
+
submitTx(tx: Cardano.NewTxAlonzo): Promise<void>;
|
|
32
|
+
sync(): void;
|
|
33
|
+
shutdown(): void;
|
|
34
|
+
}
|
|
35
|
+
//# sourceMappingURL=types.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,kBAAkB,EAAE,iBAAiB,EAAE,oBAAoB,EAAE,mBAAmB,EAAE,MAAM,YAAY,CAAC;AACvH,OAAO,EAAE,OAAO,EAAE,WAAW,EAAE,kCAAkC,EAAE,MAAM,mBAAmB,CAAC;AAC7F,OAAO,EAAE,cAAc,EAAE,MAAM,iBAAiB,CAAC;AACjD,OAAO,EAAE,WAAW,EAAE,MAAM,eAAe,CAAC;AAE5C,oBAAY,iBAAiB,GAAG;IAC9B,OAAO,CAAC,EAAE,GAAG,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC;IAC7B,YAAY,CAAC,EAAE,OAAO,CAAC,WAAW,EAAE,CAAC;IACrC,WAAW,CAAC,EAAE,OAAO,CAAC,UAAU,EAAE,CAAC;IACnC,OAAO,CAAC,EAAE;QACR,gBAAgB,CAAC,EAAE,OAAO,CAAC,gBAAgB,CAAC;KAC7C,CAAC;CACH,CAAC;AAEF,MAAM,WAAW,eAAe;IAC9B,QAAQ,CAAC,IAAI,EAAE,OAAO,CAAC,YAAY,CAAC;CACrC;AAED,oBAAY,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC,OAAO,CAAC,OAAO,EAAE,OAAO,CAAC,KAAK,CAAC,CAAC,CAAC;AAErE,MAAM,WAAW,MAAM;IACrB,IAAI,EAAE,MAAM,CAAC;IACb,QAAQ,CAAC,OAAO,EAAE,oBAAoB,CAAC,OAAO,CAAC,CAAC;IAChD,QAAQ,CAAC,UAAU,EAAE,iBAAiB,CAAC;IACvC,QAAQ,CAAC,IAAI,EAAE,oBAAoB,CAAC,OAAO,CAAC,IAAI,EAAE,CAAC,CAAC;IACpD,QAAQ,CAAC,YAAY,EAAE,mBAAmB,CAAC;IAC3C,QAAQ,CAAC,IAAI,EAAE,kBAAkB,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC;IAC/C,QAAQ,CAAC,kBAAkB,EAAE,kBAAkB,CAAC,OAAO,CAAC,cAAc,CAAC,CAAC;IACxE,QAAQ,CAAC,YAAY,EAAE,kBAAkB,CAAC,WAAW,CAAC,CAAC;IACvD,QAAQ,CAAC,mBAAmB,EAAE,kBAAkB,CAAC,kCAAkC,CAAC,CAAC;IACrF,QAAQ,CAAC,UAAU,EAAE,kBAAkB,CAAC,cAAc,EAAE,CAAC,CAAC;IAC1D,QAAQ,CAAC,OAAO,EAAE,kBAAkB,CAAC,MAAM,CAAC,CAAC;IAC7C,YAAY,CAAC,KAAK,EAAE,iBAAiB,GAAG,OAAO,CAAC,WAAW,CAAC,CAAC;IAC7D,UAAU,CAAC,KAAK,EAAE,WAAW,GAAG,OAAO,CAAC,OAAO,CAAC,WAAW,CAAC,CAAC;IAC7D,QAAQ,CAAC,EAAE,EAAE,OAAO,CAAC,WAAW,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IACjD,IAAI,IAAI,IAAI,CAAC;IACb,QAAQ,IAAI,IAAI,CAAC;CAClB"}
|
package/dist/types.js
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"types.js","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":""}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@cardano-sdk/wallet",
|
|
3
|
-
"version": "0.1.
|
|
3
|
+
"version": "0.1.8",
|
|
4
4
|
"description": "Wallet modules",
|
|
5
5
|
"engines": {
|
|
6
6
|
"node": "^14"
|
|
@@ -19,23 +19,32 @@
|
|
|
19
19
|
"cleanup": "shx rm -rf dist node_modules",
|
|
20
20
|
"coverage": "yarn test --coverage",
|
|
21
21
|
"lint": "eslint --ignore-path ../../.eslintignore \"**/*.ts\"",
|
|
22
|
+
"lint:fix": "eslint --fix --ignore-path ../../.eslintignore \"**/*.ts\"",
|
|
23
|
+
"prepack": "yarn build",
|
|
22
24
|
"test": "jest -c ./jest.config.js",
|
|
25
|
+
"test:e2e": "jest -c ./e2e.jest.config.js",
|
|
23
26
|
"test:debug": "DEBUG=true yarn test"
|
|
24
27
|
},
|
|
25
28
|
"devDependencies": {
|
|
26
|
-
"@cardano-sdk/util-dev": "0.1.
|
|
29
|
+
"@cardano-sdk/util-dev": " 0.1.8",
|
|
27
30
|
"shx": "^0.3.3"
|
|
28
31
|
},
|
|
29
32
|
"dependencies": {
|
|
30
|
-
"@cardano-
|
|
31
|
-
"@cardano-sdk/
|
|
32
|
-
"
|
|
33
|
-
"
|
|
33
|
+
"@cardano-sdk/cip2": " 0.1.8",
|
|
34
|
+
"@cardano-sdk/core": " 0.1.8",
|
|
35
|
+
"backoff-rxjs": "^6.5.7",
|
|
36
|
+
"bip39": "^3.0.4",
|
|
34
37
|
"delay": "^5.0.0",
|
|
35
38
|
"emittery": "^0.10.0",
|
|
36
|
-
"isomorphic-bip39": "^3.0.5",
|
|
37
39
|
"lodash-es": "^4.17.21",
|
|
40
|
+
"rxjs": "^7.4.0",
|
|
38
41
|
"ts-custom-error": "^3.2.0",
|
|
39
42
|
"ts-log": "^2.2.3"
|
|
40
|
-
}
|
|
43
|
+
},
|
|
44
|
+
"files": [
|
|
45
|
+
"dist/*",
|
|
46
|
+
"!dist/tsconfig.tsbuildinfo",
|
|
47
|
+
"LICENSE",
|
|
48
|
+
"NOTICE"
|
|
49
|
+
]
|
|
41
50
|
}
|
package/jest.config.js
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
module.exports = require('../../test/jest.config');
|
package/src/Address.ts
DELETED
|
@@ -1,12 +0,0 @@
|
|
|
1
|
-
/** internal = change address & external = receipt address */
|
|
2
|
-
export enum AddressType {
|
|
3
|
-
internal = 'Internal',
|
|
4
|
-
external = 'External'
|
|
5
|
-
}
|
|
6
|
-
|
|
7
|
-
export interface Address {
|
|
8
|
-
address: string;
|
|
9
|
-
index: number;
|
|
10
|
-
type: AddressType;
|
|
11
|
-
accountIndex: number;
|
|
12
|
-
}
|
package/src/BalanceTracker.ts
DELETED
|
@@ -1,62 +0,0 @@
|
|
|
1
|
-
import { Utxo } from '@cardano-ogmios/schema';
|
|
2
|
-
import { Ogmios } from '@cardano-sdk/core';
|
|
3
|
-
import Emittery from 'emittery';
|
|
4
|
-
import { dummyLogger } from 'ts-log';
|
|
5
|
-
import { UtxoRepository, UtxoRepositoryEvent, UtxoRepositoryFields } from './types';
|
|
6
|
-
|
|
7
|
-
export interface Balance extends Ogmios.Value {
|
|
8
|
-
rewards: Ogmios.Lovelace;
|
|
9
|
-
}
|
|
10
|
-
|
|
11
|
-
export interface Balances {
|
|
12
|
-
total: Balance;
|
|
13
|
-
available: Balance;
|
|
14
|
-
}
|
|
15
|
-
|
|
16
|
-
export enum BalanceTrackerEvent {
|
|
17
|
-
Changed = 'changed'
|
|
18
|
-
}
|
|
19
|
-
|
|
20
|
-
export interface BalanceTrackerEvents {
|
|
21
|
-
changed: Balances;
|
|
22
|
-
}
|
|
23
|
-
|
|
24
|
-
export class BalanceTracker extends Emittery<BalanceTrackerEvents> implements Balances {
|
|
25
|
-
total!: Balance;
|
|
26
|
-
available!: Balance;
|
|
27
|
-
|
|
28
|
-
constructor(utxoRepository: UtxoRepository, logger = dummyLogger) {
|
|
29
|
-
super();
|
|
30
|
-
this.#updateBalances(utxoRepository);
|
|
31
|
-
utxoRepository.on(UtxoRepositoryEvent.Changed, (fields) => {
|
|
32
|
-
this.#updateBalances(fields);
|
|
33
|
-
this.emit(BalanceTrackerEvent.Changed, {
|
|
34
|
-
available: this.available,
|
|
35
|
-
total: this.total
|
|
36
|
-
}).catch(logger.error);
|
|
37
|
-
});
|
|
38
|
-
}
|
|
39
|
-
|
|
40
|
-
#updateBalances(utxoRepository: UtxoRepositoryFields) {
|
|
41
|
-
this.total = {
|
|
42
|
-
...this.#getBalance(utxoRepository.allUtxos),
|
|
43
|
-
rewards: utxoRepository.allRewards || 0n
|
|
44
|
-
};
|
|
45
|
-
this.available = {
|
|
46
|
-
...this.#getBalance(utxoRepository.availableUtxos),
|
|
47
|
-
rewards: utxoRepository.availableRewards || 0n
|
|
48
|
-
};
|
|
49
|
-
}
|
|
50
|
-
|
|
51
|
-
#getBalance(utxo: Utxo): Ogmios.Value {
|
|
52
|
-
return Ogmios.util.coalesceValueQuantities(
|
|
53
|
-
utxo.map(([_, txOut]) => {
|
|
54
|
-
const { coins, assets } = txOut.value;
|
|
55
|
-
return {
|
|
56
|
-
coins: BigInt(coins),
|
|
57
|
-
assets
|
|
58
|
-
};
|
|
59
|
-
})
|
|
60
|
-
);
|
|
61
|
-
}
|
|
62
|
-
}
|
|
@@ -1,87 +0,0 @@
|
|
|
1
|
-
import { TransactionTracker, TransactionTrackerEvents } from './types';
|
|
2
|
-
import Emittery from 'emittery';
|
|
3
|
-
import { Hash16, Slot, Tip } from '@cardano-ogmios/schema';
|
|
4
|
-
import { CardanoProvider, ProviderError, CardanoSerializationLib, CSL, ProviderFailure } from '@cardano-sdk/core';
|
|
5
|
-
import { TransactionError, TransactionFailure } from './TransactionError';
|
|
6
|
-
import { dummyLogger, Logger } from 'ts-log';
|
|
7
|
-
import delay from 'delay';
|
|
8
|
-
import { TransactionTrackerEvent } from '.';
|
|
9
|
-
|
|
10
|
-
export type Milliseconds = number;
|
|
11
|
-
|
|
12
|
-
export interface InMemoryTransactionTrackerProps {
|
|
13
|
-
provider: CardanoProvider;
|
|
14
|
-
csl: CardanoSerializationLib;
|
|
15
|
-
logger?: Logger;
|
|
16
|
-
pollInterval?: Milliseconds;
|
|
17
|
-
}
|
|
18
|
-
|
|
19
|
-
export class InMemoryTransactionTracker extends Emittery<TransactionTrackerEvents> implements TransactionTracker {
|
|
20
|
-
readonly #provider: CardanoProvider;
|
|
21
|
-
readonly #pendingTransactions = new Map<string, Promise<void>>();
|
|
22
|
-
readonly #csl: CardanoSerializationLib;
|
|
23
|
-
readonly #logger: Logger;
|
|
24
|
-
readonly #pollInterval: number;
|
|
25
|
-
|
|
26
|
-
constructor({ provider, csl, logger = dummyLogger, pollInterval = 2000 }: InMemoryTransactionTrackerProps) {
|
|
27
|
-
super();
|
|
28
|
-
this.#provider = provider;
|
|
29
|
-
this.#csl = csl;
|
|
30
|
-
this.#logger = logger;
|
|
31
|
-
this.#pollInterval = pollInterval;
|
|
32
|
-
}
|
|
33
|
-
|
|
34
|
-
async track(transaction: CSL.Transaction, submitted: Promise<void> = Promise.resolve()): Promise<void> {
|
|
35
|
-
await submitted;
|
|
36
|
-
const body = transaction.body();
|
|
37
|
-
const hash = Buffer.from(this.#csl.hash_transaction(body).to_bytes()).toString('hex');
|
|
38
|
-
this.#logger.debug('InMemoryTransactionTracker.trackTransaction', hash);
|
|
39
|
-
|
|
40
|
-
if (this.#pendingTransactions.has(hash)) {
|
|
41
|
-
return this.#pendingTransactions.get(hash)!;
|
|
42
|
-
}
|
|
43
|
-
|
|
44
|
-
const invalidHereafter = body.ttl();
|
|
45
|
-
if (!invalidHereafter) {
|
|
46
|
-
throw new TransactionError(TransactionFailure.CannotTrack, undefined, 'no TTL');
|
|
47
|
-
}
|
|
48
|
-
|
|
49
|
-
const promise = this.#checkTransactionViaProvider(hash, invalidHereafter);
|
|
50
|
-
this.#pendingTransactions.set(hash, promise);
|
|
51
|
-
this.emit(TransactionTrackerEvent.NewTransaction, { transaction, confirmed: promise }).catch(this.#logger.error);
|
|
52
|
-
void promise.catch(() => void 0).then(() => this.#pendingTransactions.delete(hash));
|
|
53
|
-
|
|
54
|
-
return promise;
|
|
55
|
-
}
|
|
56
|
-
|
|
57
|
-
async #checkTransactionViaProvider(hash: Hash16, invalidHereafter: Slot): Promise<void> {
|
|
58
|
-
await delay(this.#pollInterval);
|
|
59
|
-
try {
|
|
60
|
-
const tx = await this.#provider.queryTransactionsByHashes([hash]);
|
|
61
|
-
if (tx.length > 0) return; // done
|
|
62
|
-
return this.#onTransactionNotFound(hash, invalidHereafter);
|
|
63
|
-
} catch (error: unknown) {
|
|
64
|
-
if (error instanceof ProviderError && error.reason === ProviderFailure.NotFound) {
|
|
65
|
-
return this.#onTransactionNotFound(hash, invalidHereafter);
|
|
66
|
-
}
|
|
67
|
-
throw new TransactionError(TransactionFailure.CannotTrack, error);
|
|
68
|
-
}
|
|
69
|
-
}
|
|
70
|
-
|
|
71
|
-
async #onTransactionNotFound(hash: string, invalidHereafter: number) {
|
|
72
|
-
let tip: Tip | undefined;
|
|
73
|
-
try {
|
|
74
|
-
tip = await this.#provider.ledgerTip();
|
|
75
|
-
} catch (error: unknown) {
|
|
76
|
-
throw new TransactionError(
|
|
77
|
-
TransactionFailure.CannotTrack,
|
|
78
|
-
error,
|
|
79
|
-
"can't query tip to check for transaction timeout"
|
|
80
|
-
);
|
|
81
|
-
}
|
|
82
|
-
if (tip && tip.slot > invalidHereafter) {
|
|
83
|
-
throw new TransactionError(TransactionFailure.Timeout);
|
|
84
|
-
}
|
|
85
|
-
return this.#checkTransactionViaProvider(hash, invalidHereafter);
|
|
86
|
-
}
|
|
87
|
-
}
|