@cardano-sdk/e2e 0.16.4 → 0.16.5-patch.0
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 +8 -2
- package/dist/cjs/tools/multi-delegation-data-gen/index.js +2 -14
- package/dist/cjs/tools/multi-delegation-data-gen/index.js.map +1 -1
- package/dist/cjs/tools/multi-delegation-data-gen/utils/config.d.ts +0 -1
- package/dist/cjs/tools/multi-delegation-data-gen/utils/config.d.ts.map +1 -1
- package/dist/cjs/tools/multi-delegation-data-gen/utils/config.js +0 -12
- package/dist/cjs/tools/multi-delegation-data-gen/utils/config.js.map +1 -1
- package/dist/cjs/tools/multi-delegation-data-gen/utils/utils.d.ts +1 -2
- package/dist/cjs/tools/multi-delegation-data-gen/utils/utils.d.ts.map +1 -1
- package/dist/cjs/tools/multi-delegation-data-gen/utils/utils.js +1 -6
- package/dist/cjs/tools/multi-delegation-data-gen/utils/utils.js.map +1 -1
- package/dist/cjs/tsconfig.tsbuildinfo +1 -1
- package/dist/esm/tools/multi-delegation-data-gen/index.js +2 -14
- package/dist/esm/tools/multi-delegation-data-gen/index.js.map +1 -1
- package/dist/esm/tools/multi-delegation-data-gen/utils/config.d.ts +0 -1
- package/dist/esm/tools/multi-delegation-data-gen/utils/config.d.ts.map +1 -1
- package/dist/esm/tools/multi-delegation-data-gen/utils/config.js +0 -12
- package/dist/esm/tools/multi-delegation-data-gen/utils/config.js.map +1 -1
- package/dist/esm/tools/multi-delegation-data-gen/utils/utils.d.ts +1 -2
- package/dist/esm/tools/multi-delegation-data-gen/utils/utils.d.ts.map +1 -1
- package/dist/esm/tools/multi-delegation-data-gen/utils/utils.js +1 -6
- package/dist/esm/tools/multi-delegation-data-gen/utils/utils.js.map +1 -1
- package/dist/esm/tsconfig.tsbuildinfo +1 -1
- package/package.json +19 -20
- package/src/tools/multi-delegation-data-gen/example.json +0 -1
- package/src/tools/multi-delegation-data-gen/index.ts +4 -26
- package/src/tools/multi-delegation-data-gen/utils/config.ts +0 -13
- package/src/tools/multi-delegation-data-gen/utils/utils.ts +2 -11
- package/test/wallet/PersonalWallet/multiAddress.test.ts +24 -12
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-patch.0",
|
|
4
4
|
"description": "End to end tests for the cardano-js-sdk packages.",
|
|
5
5
|
"engines": {
|
|
6
6
|
"node": ">=16.0"
|
|
@@ -81,19 +81,18 @@
|
|
|
81
81
|
"dependencies": {
|
|
82
82
|
"@cardano-foundation/ledgerjs-hw-app-cardano": "^6.0.0",
|
|
83
83
|
"@cardano-ogmios/client": "5.6.0",
|
|
84
|
-
"@cardano-sdk/cardano-services": "~0.14.
|
|
85
|
-
"@cardano-sdk/cardano-services-client": "~0.10.
|
|
86
|
-
"@cardano-sdk/core": "~0.15.
|
|
87
|
-
"@cardano-sdk/crypto": "~0.1.
|
|
88
|
-
"@cardano-sdk/hardware-ledger": "~0.2.
|
|
89
|
-
"@cardano-sdk/
|
|
90
|
-
"@cardano-sdk/
|
|
91
|
-
"@cardano-sdk/
|
|
92
|
-
"@cardano-sdk/
|
|
93
|
-
"@cardano-sdk/util": "~0.13.
|
|
94
|
-
"@cardano-sdk/util-
|
|
95
|
-
"@cardano-sdk/
|
|
96
|
-
"@cardano-sdk/wallet": "~0.18.0",
|
|
84
|
+
"@cardano-sdk/cardano-services": "~0.14.2",
|
|
85
|
+
"@cardano-sdk/cardano-services-client": "~0.10.2",
|
|
86
|
+
"@cardano-sdk/core": "~0.15.2",
|
|
87
|
+
"@cardano-sdk/crypto": "~0.1.8",
|
|
88
|
+
"@cardano-sdk/hardware-ledger": "~0.2.14-patch.0",
|
|
89
|
+
"@cardano-sdk/key-management": "~0.7.11-patch.0",
|
|
90
|
+
"@cardano-sdk/ogmios": "~0.12.8",
|
|
91
|
+
"@cardano-sdk/tx-construction": "~0.8.6-patch.0",
|
|
92
|
+
"@cardano-sdk/util": "~0.12.1",
|
|
93
|
+
"@cardano-sdk/util-dev": "~0.13.6",
|
|
94
|
+
"@cardano-sdk/util-rxjs": "~0.5.2",
|
|
95
|
+
"@cardano-sdk/wallet": "~0.17.5-patch.0",
|
|
97
96
|
"@vespaiach/axios-fetch-adapter": "^0.3.0",
|
|
98
97
|
"axios": "^0.27.2",
|
|
99
98
|
"bunyan": "^1.8.15",
|
|
@@ -123,10 +122,10 @@
|
|
|
123
122
|
"@babel/core": "^7.18.2",
|
|
124
123
|
"@babel/preset-env": "^7.18.2",
|
|
125
124
|
"@babel/preset-typescript": "^7.17.12",
|
|
126
|
-
"@cardano-sdk/dapp-connector": "~0.9.
|
|
127
|
-
"@cardano-sdk/projection": "~0.6.
|
|
128
|
-
"@cardano-sdk/projection-typeorm": "~0.3.
|
|
129
|
-
"@cardano-sdk/web-extension": "~0.13.
|
|
125
|
+
"@cardano-sdk/dapp-connector": "~0.9.9",
|
|
126
|
+
"@cardano-sdk/projection": "~0.6.12",
|
|
127
|
+
"@cardano-sdk/projection-typeorm": "~0.3.8",
|
|
128
|
+
"@cardano-sdk/web-extension": "~0.13.6-patch.0",
|
|
130
129
|
"@dcspark/cardano-multiplatform-lib-browser": "^3.1.1",
|
|
131
130
|
"@emurgo/cardano-message-signing-asmjs": "^1.0.1",
|
|
132
131
|
"@types/bunyan": "^1.8.8",
|
|
@@ -148,7 +147,7 @@
|
|
|
148
147
|
"babel-loader": "^8.2.5",
|
|
149
148
|
"blake2b-no-wasm": "2.1.4",
|
|
150
149
|
"buffer": "^6.0.3",
|
|
151
|
-
"chromedriver": "114.0.
|
|
150
|
+
"chromedriver": "^114.0.0",
|
|
152
151
|
"copy-webpack-plugin": "^10.2.4",
|
|
153
152
|
"eslint": "^7.32.0",
|
|
154
153
|
"events": "^3.3.0",
|
|
@@ -175,5 +174,5 @@
|
|
|
175
174
|
"webpack-cli": "^4.9.2",
|
|
176
175
|
"webpack-merge": "^5.8.0"
|
|
177
176
|
},
|
|
178
|
-
"gitHead": "
|
|
177
|
+
"gitHead": "beb492c9438e51263926b3ea07e1f1f99d7dc856"
|
|
179
178
|
}
|
|
@@ -18,8 +18,7 @@ import {
|
|
|
18
18
|
} from './utils';
|
|
19
19
|
|
|
20
20
|
import { Cardano } from '@cardano-sdk/core';
|
|
21
|
-
import {
|
|
22
|
-
import { roundRobinRandomImprove } from '@cardano-sdk/input-selection';
|
|
21
|
+
import { PersonalWallet } from '@cardano-sdk/wallet';
|
|
23
22
|
import { walletReady } from '../../';
|
|
24
23
|
import chalk from 'chalk';
|
|
25
24
|
|
|
@@ -72,15 +71,9 @@ const monitor = new TerminalProgressMonitor();
|
|
|
72
71
|
|
|
73
72
|
const stakeAddresses = await generateStakeAddresses(delegationWallet, config.stakeDistribution.length, monitor);
|
|
74
73
|
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
config.startingFunds,
|
|
79
|
-
config.stakeDistribution,
|
|
80
|
-
stakeAddresses,
|
|
81
|
-
monitor,
|
|
82
|
-
pools
|
|
83
|
-
);
|
|
74
|
+
await delegateToMultiplePools(delegationWallet, stakeAddresses, monitor);
|
|
75
|
+
|
|
76
|
+
await distributeStake(delegationWallet, config.startingFunds, config.stakeDistribution, stakeAddresses, monitor);
|
|
84
77
|
|
|
85
78
|
monitor.startTask('Waiting for delegation to be updated on the wallet.');
|
|
86
79
|
await rewardAccountStatuses(delegationWallet.delegation.rewardAccounts$, [
|
|
@@ -89,21 +82,6 @@ const monitor = new TerminalProgressMonitor();
|
|
|
89
82
|
]);
|
|
90
83
|
monitor.endTask('Delegation updated.', TaskResult.Success);
|
|
91
84
|
|
|
92
|
-
if (config.changeAddressResolver === 'dynamic') {
|
|
93
|
-
monitor.logInfo(`Using dynamic change address resolution: Portfolio: ${JSON.stringify(portfolio)}`);
|
|
94
|
-
const selector = roundRobinRandomImprove({
|
|
95
|
-
changeAddressResolver: new DynamicChangeAddressResolver(
|
|
96
|
-
delegationWallet.addresses$,
|
|
97
|
-
delegationWallet.delegation.distribution$,
|
|
98
|
-
async () => portfolio,
|
|
99
|
-
console
|
|
100
|
-
)
|
|
101
|
-
});
|
|
102
|
-
delegationWallet.setInputSelector(selector);
|
|
103
|
-
} else {
|
|
104
|
-
monitor.logInfo('Using static change address resolution');
|
|
105
|
-
}
|
|
106
|
-
|
|
107
85
|
monitor.logInfo('Setup phase ended. Starting interactions...');
|
|
108
86
|
|
|
109
87
|
// Initial setup done, log starting state.
|
|
@@ -23,14 +23,6 @@ convict.addFormat({
|
|
|
23
23
|
}
|
|
24
24
|
});
|
|
25
25
|
|
|
26
|
-
convict.addFormat({
|
|
27
|
-
name: 'changeAddressResolver',
|
|
28
|
-
validate(val) {
|
|
29
|
-
if (val !== 'static' && val !== 'dynamic')
|
|
30
|
-
throw new TypeError('changeAddressResolver must be set to either static or dynamic');
|
|
31
|
-
}
|
|
32
|
-
});
|
|
33
|
-
|
|
34
26
|
export type ValueTransferConfig = {
|
|
35
27
|
amount: { max: number; min: number };
|
|
36
28
|
count: { max: number; min: number };
|
|
@@ -38,11 +30,6 @@ export type ValueTransferConfig = {
|
|
|
38
30
|
};
|
|
39
31
|
|
|
40
32
|
export const configLoader = convict({
|
|
41
|
-
changeAddressResolver: {
|
|
42
|
-
default: 'static',
|
|
43
|
-
doc: 'Whether to use the static or dynamic strategy to resolve change addresses.',
|
|
44
|
-
format: 'changeAddressResolver'
|
|
45
|
-
},
|
|
46
33
|
iterations: {
|
|
47
34
|
default: 10,
|
|
48
35
|
doc: 'How many iterations will be executed before stopping the test.',
|
|
@@ -263,16 +263,14 @@ export const generateStakeAddresses = async (
|
|
|
263
263
|
* @param stakeDistribution The stake distribution to be followed.
|
|
264
264
|
* @param stakeAddresses The list of stake addresses.
|
|
265
265
|
* @param monitor The progress monitor.
|
|
266
|
-
* @param pools The pools we are delegating to.
|
|
267
266
|
*/
|
|
268
267
|
export const distributeStake = async (
|
|
269
268
|
delegationWallet: PersonalWallet,
|
|
270
269
|
startingFunds: number,
|
|
271
270
|
stakeDistribution: Array<number>,
|
|
272
271
|
stakeAddresses: Array<GroupedAddress>,
|
|
273
|
-
monitor: TerminalProgressMonitor
|
|
274
|
-
|
|
275
|
-
): Promise<Cardano.Cip17DelegationPortfolio> => {
|
|
272
|
+
monitor: TerminalProgressMonitor
|
|
273
|
+
) => {
|
|
276
274
|
// TODO: Replace with delegatePortfolio once LW-6702 is merged.
|
|
277
275
|
const totalWeight = stakeDistribution.reduce((sum, current) => sum + current, 0);
|
|
278
276
|
const stakeDistributionSsPercent = stakeDistribution.map((value) => value / totalWeight);
|
|
@@ -280,11 +278,6 @@ export const distributeStake = async (
|
|
|
280
278
|
|
|
281
279
|
const txBuilder = delegationWallet.createTxBuilder();
|
|
282
280
|
|
|
283
|
-
const portfolio: Cardano.Cip17DelegationPortfolio = {
|
|
284
|
-
name: 'Portfolio',
|
|
285
|
-
pools: stakeDistributionSsPercent.map((weight, index) => ({ id: pools[index].hexId, weight }))
|
|
286
|
-
};
|
|
287
|
-
|
|
288
281
|
let i = 0;
|
|
289
282
|
const startingFundsMinusFee = startingFunds - 5_000_000;
|
|
290
283
|
for (const { address } of stakeAddresses) {
|
|
@@ -298,8 +291,6 @@ export const distributeStake = async (
|
|
|
298
291
|
await submitAndConfirm(delegationWallet, signedTx);
|
|
299
292
|
|
|
300
293
|
monitor.endTask('Funds distributed', TaskResult.Success);
|
|
301
|
-
|
|
302
|
-
return portfolio;
|
|
303
294
|
};
|
|
304
295
|
|
|
305
296
|
/**
|
|
@@ -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();
|