-
Notifications
You must be signed in to change notification settings - Fork 54
/
transactionTime.test.ts
42 lines (38 loc) · 1.76 KB
/
transactionTime.test.ts
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
import { Cardano, createSlotTimeCalc, testnetTimeSettings } from '@cardano-sdk/core';
import { KeyManagement, SingleAddressWallet, SingleAddressWalletProps } from '../../src';
import { createStubStakePoolSearchProvider, createStubTimeSettingsProvider } from '@cardano-sdk/util-dev';
import { firstValueFrom } from 'rxjs';
import { mockAssetProvider, mockWalletProvider } from '../mocks';
const walletProps: SingleAddressWalletProps = { name: 'some-wallet' };
const networkId = Cardano.NetworkId.mainnet;
const mnemonicWords = KeyManagement.util.generateMnemonicWords();
const getPassword = async () => Buffer.from('your_password');
describe('integration/transactionTime', () => {
let keyAgent: KeyManagement.KeyAgent;
let wallet: SingleAddressWallet;
beforeAll(async () => {
keyAgent = await KeyManagement.InMemoryKeyAgent.fromBip39MnemonicWords({
getPassword,
mnemonicWords,
networkId
});
const walletProvider = mockWalletProvider();
const stakePoolSearchProvider = createStubStakePoolSearchProvider();
const timeSettingsProvider = createStubTimeSettingsProvider(testnetTimeSettings);
const assetProvider = mockAssetProvider();
wallet = new SingleAddressWallet(walletProps, {
assetProvider,
keyAgent,
stakePoolSearchProvider,
timeSettingsProvider,
walletProvider
});
});
it('provides utils necessary for computing transaction time', async () => {
const transactions = await firstValueFrom(wallet.transactions.history.incoming$);
const timeSettings = await firstValueFrom(wallet.timeSettings$);
const slotTimeCalc = createSlotTimeCalc(timeSettings);
const transactionTime = slotTimeCalc(transactions[0].blockHeader.slot);
expect(typeof transactionTime.getTime()).toBe('number');
});
});