@cardano-sdk/e2e 0.16.4 → 0.16.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/CHANGELOG.md
CHANGED
|
@@ -3,6 +3,12 @@
|
|
|
3
3
|
All notable changes to this project will be documented in this file.
|
|
4
4
|
See [Conventional Commits](https://conventionalcommits.org) for commit guidelines.
|
|
5
5
|
|
|
6
|
+
## [0.16.5](https://github.com/input-output-hk/cardano-js-sdk/compare/@cardano-sdk/e2e@0.16.4...@cardano-sdk/e2e@0.16.5) (2023-07-05)
|
|
7
|
+
|
|
8
|
+
### Bug Fixes
|
|
9
|
+
|
|
10
|
+
* **wallet:** discovery should search for 1/0 too ([cdf79cb](https://github.com/input-output-hk/cardano-js-sdk/commit/cdf79cbaf8925e72e52ad859ef78a0a112729b81))
|
|
11
|
+
|
|
6
12
|
## [0.16.4](https://github.com/input-output-hk/cardano-js-sdk/compare/@cardano-sdk/e2e@0.16.3...@cardano-sdk/e2e@0.16.4) (2023-07-04)
|
|
7
13
|
|
|
8
14
|
**Note:** Version bump only for package @cardano-sdk/e2e
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@cardano-sdk/e2e",
|
|
3
|
-
"version": "0.16.
|
|
3
|
+
"version": "0.16.5",
|
|
4
4
|
"description": "End to end tests for the cardano-js-sdk packages.",
|
|
5
5
|
"engines": {
|
|
6
6
|
"node": ">=16.0"
|
|
@@ -85,15 +85,15 @@
|
|
|
85
85
|
"@cardano-sdk/cardano-services-client": "~0.10.4",
|
|
86
86
|
"@cardano-sdk/core": "~0.15.3",
|
|
87
87
|
"@cardano-sdk/crypto": "~0.1.9",
|
|
88
|
-
"@cardano-sdk/hardware-ledger": "~0.2.
|
|
89
|
-
"@cardano-sdk/input-selection": "~0.11.
|
|
90
|
-
"@cardano-sdk/key-management": "~0.
|
|
88
|
+
"@cardano-sdk/hardware-ledger": "~0.2.14",
|
|
89
|
+
"@cardano-sdk/input-selection": "~0.11.1",
|
|
90
|
+
"@cardano-sdk/key-management": "~0.8.0",
|
|
91
91
|
"@cardano-sdk/ogmios": "~0.12.10",
|
|
92
|
-
"@cardano-sdk/tx-construction": "~0.9.
|
|
92
|
+
"@cardano-sdk/tx-construction": "~0.9.1",
|
|
93
93
|
"@cardano-sdk/util": "~0.13.0",
|
|
94
94
|
"@cardano-sdk/util-dev": "~0.13.7",
|
|
95
95
|
"@cardano-sdk/util-rxjs": "~0.5.3",
|
|
96
|
-
"@cardano-sdk/wallet": "~0.18.
|
|
96
|
+
"@cardano-sdk/wallet": "~0.18.1",
|
|
97
97
|
"@vespaiach/axios-fetch-adapter": "^0.3.0",
|
|
98
98
|
"axios": "^0.27.2",
|
|
99
99
|
"bunyan": "^1.8.15",
|
|
@@ -126,7 +126,7 @@
|
|
|
126
126
|
"@cardano-sdk/dapp-connector": "~0.9.10",
|
|
127
127
|
"@cardano-sdk/projection": "~0.6.14",
|
|
128
128
|
"@cardano-sdk/projection-typeorm": "~0.3.10",
|
|
129
|
-
"@cardano-sdk/web-extension": "~0.13.
|
|
129
|
+
"@cardano-sdk/web-extension": "~0.13.6",
|
|
130
130
|
"@dcspark/cardano-multiplatform-lib-browser": "^3.1.1",
|
|
131
131
|
"@emurgo/cardano-message-signing-asmjs": "^1.0.1",
|
|
132
132
|
"@types/bunyan": "^1.8.8",
|
|
@@ -150,6 +150,8 @@
|
|
|
150
150
|
"buffer": "^6.0.3",
|
|
151
151
|
"chromedriver": "114.0.1",
|
|
152
152
|
"copy-webpack-plugin": "^10.2.4",
|
|
153
|
+
"dockerode": "^3.3.1",
|
|
154
|
+
"dockerode-utils": "^0.0.7",
|
|
153
155
|
"eslint": "^7.32.0",
|
|
154
156
|
"events": "^3.3.0",
|
|
155
157
|
"expect-webdriverio": "^3.2.1",
|
|
@@ -175,5 +177,5 @@
|
|
|
175
177
|
"webpack-cli": "^4.9.2",
|
|
176
178
|
"webpack-merge": "^5.8.0"
|
|
177
179
|
},
|
|
178
|
-
"gitHead": "
|
|
180
|
+
"gitHead": "5e75bfbd24896ea0ac7a890466b56afb48857926"
|
|
179
181
|
}
|
|
@@ -1,4 +1,3 @@
|
|
|
1
|
-
/* eslint-disable max-statements */
|
|
2
1
|
import { AddressType, KeyRole } from '@cardano-sdk/key-management';
|
|
3
2
|
import { Cardano } from '@cardano-sdk/core';
|
|
4
3
|
import {
|
|
@@ -13,24 +12,72 @@ import {
|
|
|
13
12
|
walletReady,
|
|
14
13
|
walletVariables
|
|
15
14
|
} from '../../src';
|
|
15
|
+
import { containerExec } from 'dockerode-utils';
|
|
16
|
+
import { getRandomPort } from 'get-port-please';
|
|
16
17
|
import { logger } from '@cardano-sdk/util-dev';
|
|
18
|
+
import Docker from 'dockerode';
|
|
19
|
+
import path from 'path';
|
|
17
20
|
|
|
18
|
-
const env = getEnv(walletVariables);
|
|
19
21
|
const vrf = Cardano.VrfVkHex('2ee5a4c423224bb9c42107fc18a60556d6a83cec1d9dd37a71f56af7198fc759');
|
|
20
22
|
|
|
21
|
-
const wallet1Params: KeyAgentFactoryProps = {
|
|
22
|
-
accountIndex: 0,
|
|
23
|
-
chainId: env.KEY_MANAGEMENT_PARAMS.chainId,
|
|
24
|
-
mnemonic:
|
|
25
|
-
// eslint-disable-next-line max-len
|
|
26
|
-
'phrase raw learn suspect inmate powder combine apology regular hero gain chronic fruit ritual short screen goddess odor keen creek brand today kit machine',
|
|
27
|
-
passphrase: 'some_passphrase'
|
|
28
|
-
};
|
|
29
|
-
|
|
30
23
|
describe('cache invalidation', () => {
|
|
24
|
+
let testProviderServer: Docker.Container;
|
|
31
25
|
let wallet1: TestWallet;
|
|
32
26
|
|
|
33
27
|
beforeAll(async () => {
|
|
28
|
+
const port = await getRandomPort();
|
|
29
|
+
|
|
30
|
+
// Get environment from original provider server container
|
|
31
|
+
const docker = new Docker();
|
|
32
|
+
const originalProviderServer = docker.getContainer('local-network-e2e-provider-server-1');
|
|
33
|
+
const cmdOutput = await containerExec(originalProviderServer, [
|
|
34
|
+
'node',
|
|
35
|
+
'-e',
|
|
36
|
+
'console.log(`sdk_token${JSON.stringify(process.env)}sdk_token`)'
|
|
37
|
+
]);
|
|
38
|
+
const matchResult = cmdOutput[0].match(/sdk_token(.*)sdk_token/);
|
|
39
|
+
|
|
40
|
+
if (!matchResult) throw new Error('Error getting original container environment');
|
|
41
|
+
|
|
42
|
+
const [, encodedEnv] = matchResult;
|
|
43
|
+
|
|
44
|
+
const Env = Object.entries({
|
|
45
|
+
...JSON.parse(encodedEnv),
|
|
46
|
+
DISABLE_DB_CACHE: 'false',
|
|
47
|
+
LOGGER_MIN_SEVERITY: 'debug'
|
|
48
|
+
}).map(([key, value]) => `${key}=${value}`);
|
|
49
|
+
|
|
50
|
+
const network = docker.getNetwork('local-network-e2e_default');
|
|
51
|
+
|
|
52
|
+
// Test container
|
|
53
|
+
testProviderServer = await docker.createContainer({
|
|
54
|
+
Env,
|
|
55
|
+
HostConfig: {
|
|
56
|
+
Binds: [`${path.join(__dirname, '..', '..', '..', '..', 'compose', 'placeholder-secrets')}:/run/secrets`],
|
|
57
|
+
PortBindings: { '3000/tcp': [{ HostPort: port.toString() }] }
|
|
58
|
+
},
|
|
59
|
+
Image: 'local-network-e2e-provider-server',
|
|
60
|
+
name: 'local-network-e2e-provider-server-test'
|
|
61
|
+
});
|
|
62
|
+
|
|
63
|
+
await network.connect({ Container: testProviderServer.id });
|
|
64
|
+
await testProviderServer.start();
|
|
65
|
+
|
|
66
|
+
const override = Object.fromEntries(
|
|
67
|
+
Object.entries(process.env)
|
|
68
|
+
.filter(([key]) => walletVariables.includes(key as typeof walletVariables[number]))
|
|
69
|
+
.map(([key, value]) => [key, value?.replace('localhost:4000/', `localhost:${port}/`)])
|
|
70
|
+
);
|
|
71
|
+
const env = getEnv(walletVariables, { override });
|
|
72
|
+
const wallet1Params: KeyAgentFactoryProps = {
|
|
73
|
+
accountIndex: 0,
|
|
74
|
+
chainId: env.KEY_MANAGEMENT_PARAMS.chainId,
|
|
75
|
+
mnemonic:
|
|
76
|
+
// eslint-disable-next-line max-len
|
|
77
|
+
'phrase raw learn suspect inmate powder combine apology regular hero gain chronic fruit ritual short screen goddess odor keen creek brand today kit machine',
|
|
78
|
+
passphrase: 'some_passphrase'
|
|
79
|
+
};
|
|
80
|
+
|
|
34
81
|
jest.setTimeout(180_000);
|
|
35
82
|
|
|
36
83
|
wallet1 = await getWallet({
|
|
@@ -45,9 +92,13 @@ describe('cache invalidation', () => {
|
|
|
45
92
|
await waitForWalletStateSettle(wallet1.wallet);
|
|
46
93
|
});
|
|
47
94
|
|
|
48
|
-
afterAll(() =>
|
|
95
|
+
afterAll(async () => {
|
|
96
|
+
wallet1.wallet.shutdown();
|
|
97
|
+
await testProviderServer.stop();
|
|
98
|
+
await testProviderServer.remove();
|
|
99
|
+
});
|
|
49
100
|
|
|
50
|
-
test
|
|
101
|
+
test('cache is invalidated on epoch rollover', async () => {
|
|
51
102
|
const wallet = wallet1.wallet;
|
|
52
103
|
|
|
53
104
|
await walletReady(wallet);
|
|
@@ -17,7 +17,8 @@ import { isNotNil } from '@cardano-sdk/util';
|
|
|
17
17
|
|
|
18
18
|
const env = getEnv(walletVariables);
|
|
19
19
|
const logger = createLogger();
|
|
20
|
-
const
|
|
20
|
+
const PAYMENT_INDICES_TO_GENERATE = 30;
|
|
21
|
+
const PAYMENT_ADDRESSES_TO_GENERATE = PAYMENT_INDICES_TO_GENERATE * 2; // External + Internal address for each payment derivation index
|
|
21
22
|
const COINS_PER_ADDRESS = 3_000_000n;
|
|
22
23
|
|
|
23
24
|
describe('PersonalWallet/multiAddress', () => {
|
|
@@ -49,17 +50,28 @@ describe('PersonalWallet/multiAddress', () => {
|
|
|
49
50
|
const addressesToBeDiscovered = new Array<GroupedAddress>();
|
|
50
51
|
|
|
51
52
|
// Deposit some tADA at some generated addresses from the previously generated mnemonics.
|
|
52
|
-
for (let i = 0; i <
|
|
53
|
-
const
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
53
|
+
for (let i = 0; i < PAYMENT_INDICES_TO_GENERATE; ++i) {
|
|
54
|
+
const [addressExternal, addressInternal] = await Promise.all([
|
|
55
|
+
multiAddressKeyAgent.deriveAddress(
|
|
56
|
+
{
|
|
57
|
+
index: i,
|
|
58
|
+
type: AddressType.External
|
|
59
|
+
},
|
|
60
|
+
0
|
|
61
|
+
),
|
|
62
|
+
multiAddressKeyAgent.deriveAddress(
|
|
63
|
+
{
|
|
64
|
+
index: i,
|
|
65
|
+
type: AddressType.Internal
|
|
66
|
+
},
|
|
67
|
+
0
|
|
68
|
+
)
|
|
69
|
+
]);
|
|
70
|
+
|
|
71
|
+
addressesToBeDiscovered.push(addressExternal, addressInternal);
|
|
72
|
+
|
|
73
|
+
txBuilder.addOutput(txBuilder.buildOutput().address(addressExternal.address).coin(3_000_000n).toTxOut());
|
|
74
|
+
txBuilder.addOutput(txBuilder.buildOutput().address(addressInternal.address).coin(3_000_000n).toTxOut());
|
|
63
75
|
}
|
|
64
76
|
|
|
65
77
|
const { tx: signedTx } = await txBuilder.build().sign();
|