@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.4",
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.13",
89
- "@cardano-sdk/input-selection": "~0.11.0",
90
- "@cardano-sdk/key-management": "~0.7.11",
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.0",
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.0",
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.5",
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": "a036575fda25ab17463821ef0e22f480f273d66d"
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(() => wallet1.wallet.shutdown());
95
+ afterAll(async () => {
96
+ wallet1.wallet.shutdown();
97
+ await testProviderServer.stop();
98
+ await testProviderServer.remove();
99
+ });
49
100
 
50
- test.skip('cache is invalidated on epoch rollover', async () => {
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 PAYMENT_ADDRESSES_TO_GENERATE = 60;
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 < PAYMENT_ADDRESSES_TO_GENERATE; ++i) {
53
- const address = await multiAddressKeyAgent.deriveAddress(
54
- {
55
- index: i,
56
- type: AddressType.External
57
- },
58
- 0
59
- );
60
-
61
- addressesToBeDiscovered.push(address);
62
- txBuilder.addOutput(txBuilder.buildOutput().address(address.address).coin(3_000_000n).toTxOut());
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();