@cardano-sdk/e2e 0.16.2 → 0.16.4
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 -0
- package/dist/cjs/tools/multi-delegation-data-gen/index.js +14 -2
- 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 +1 -0
- 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 +12 -0
- 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 +2 -1
- 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 +6 -1
- 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 +14 -2
- 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 +1 -0
- 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 +12 -0
- 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 +2 -1
- 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 +6 -1
- package/dist/esm/tools/multi-delegation-data-gen/utils/utils.js.map +1 -1
- package/dist/esm/tsconfig.tsbuildinfo +1 -1
- package/package.json +20 -19
- package/src/tools/multi-delegation-data-gen/example.json +1 -0
- package/src/tools/multi-delegation-data-gen/index.ts +26 -4
- package/src/tools/multi-delegation-data-gen/utils/config.ts +13 -0
- package/src/tools/multi-delegation-data-gen/utils/utils.ts +11 -2
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@cardano-sdk/e2e",
|
|
3
|
-
"version": "0.16.
|
|
3
|
+
"version": "0.16.4",
|
|
4
4
|
"description": "End to end tests for the cardano-js-sdk packages.",
|
|
5
5
|
"engines": {
|
|
6
6
|
"node": ">=16.0"
|
|
@@ -81,18 +81,19 @@
|
|
|
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
|
|
94
|
-
"@cardano-sdk/util-
|
|
95
|
-
"@cardano-sdk/
|
|
84
|
+
"@cardano-sdk/cardano-services": "~0.14.4",
|
|
85
|
+
"@cardano-sdk/cardano-services-client": "~0.10.4",
|
|
86
|
+
"@cardano-sdk/core": "~0.15.3",
|
|
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",
|
|
91
|
+
"@cardano-sdk/ogmios": "~0.12.10",
|
|
92
|
+
"@cardano-sdk/tx-construction": "~0.9.0",
|
|
93
|
+
"@cardano-sdk/util": "~0.13.0",
|
|
94
|
+
"@cardano-sdk/util-dev": "~0.13.7",
|
|
95
|
+
"@cardano-sdk/util-rxjs": "~0.5.3",
|
|
96
|
+
"@cardano-sdk/wallet": "~0.18.0",
|
|
96
97
|
"@vespaiach/axios-fetch-adapter": "^0.3.0",
|
|
97
98
|
"axios": "^0.27.2",
|
|
98
99
|
"bunyan": "^1.8.15",
|
|
@@ -122,10 +123,10 @@
|
|
|
122
123
|
"@babel/core": "^7.18.2",
|
|
123
124
|
"@babel/preset-env": "^7.18.2",
|
|
124
125
|
"@babel/preset-typescript": "^7.17.12",
|
|
125
|
-
"@cardano-sdk/dapp-connector": "~0.9.
|
|
126
|
-
"@cardano-sdk/projection": "~0.6.
|
|
127
|
-
"@cardano-sdk/projection-typeorm": "~0.3.
|
|
128
|
-
"@cardano-sdk/web-extension": "~0.13.
|
|
126
|
+
"@cardano-sdk/dapp-connector": "~0.9.10",
|
|
127
|
+
"@cardano-sdk/projection": "~0.6.14",
|
|
128
|
+
"@cardano-sdk/projection-typeorm": "~0.3.10",
|
|
129
|
+
"@cardano-sdk/web-extension": "~0.13.5",
|
|
129
130
|
"@dcspark/cardano-multiplatform-lib-browser": "^3.1.1",
|
|
130
131
|
"@emurgo/cardano-message-signing-asmjs": "^1.0.1",
|
|
131
132
|
"@types/bunyan": "^1.8.8",
|
|
@@ -147,7 +148,7 @@
|
|
|
147
148
|
"babel-loader": "^8.2.5",
|
|
148
149
|
"blake2b-no-wasm": "2.1.4",
|
|
149
150
|
"buffer": "^6.0.3",
|
|
150
|
-
"chromedriver": "
|
|
151
|
+
"chromedriver": "114.0.1",
|
|
151
152
|
"copy-webpack-plugin": "^10.2.4",
|
|
152
153
|
"eslint": "^7.32.0",
|
|
153
154
|
"events": "^3.3.0",
|
|
@@ -174,5 +175,5 @@
|
|
|
174
175
|
"webpack-cli": "^4.9.2",
|
|
175
176
|
"webpack-merge": "^5.8.0"
|
|
176
177
|
},
|
|
177
|
-
"gitHead": "
|
|
178
|
+
"gitHead": "a036575fda25ab17463821ef0e22f480f273d66d"
|
|
178
179
|
}
|
|
@@ -18,7 +18,8 @@ import {
|
|
|
18
18
|
} from './utils';
|
|
19
19
|
|
|
20
20
|
import { Cardano } from '@cardano-sdk/core';
|
|
21
|
-
import { PersonalWallet } from '@cardano-sdk/wallet';
|
|
21
|
+
import { DynamicChangeAddressResolver, PersonalWallet } from '@cardano-sdk/wallet';
|
|
22
|
+
import { roundRobinRandomImprove } from '@cardano-sdk/input-selection';
|
|
22
23
|
import { walletReady } from '../../';
|
|
23
24
|
import chalk from 'chalk';
|
|
24
25
|
|
|
@@ -71,9 +72,15 @@ const monitor = new TerminalProgressMonitor();
|
|
|
71
72
|
|
|
72
73
|
const stakeAddresses = await generateStakeAddresses(delegationWallet, config.stakeDistribution.length, monitor);
|
|
73
74
|
|
|
74
|
-
await delegateToMultiplePools(delegationWallet, stakeAddresses, monitor);
|
|
75
|
-
|
|
76
|
-
|
|
75
|
+
const pools = await delegateToMultiplePools(delegationWallet, stakeAddresses, monitor);
|
|
76
|
+
const portfolio = await distributeStake(
|
|
77
|
+
delegationWallet,
|
|
78
|
+
config.startingFunds,
|
|
79
|
+
config.stakeDistribution,
|
|
80
|
+
stakeAddresses,
|
|
81
|
+
monitor,
|
|
82
|
+
pools
|
|
83
|
+
);
|
|
77
84
|
|
|
78
85
|
monitor.startTask('Waiting for delegation to be updated on the wallet.');
|
|
79
86
|
await rewardAccountStatuses(delegationWallet.delegation.rewardAccounts$, [
|
|
@@ -82,6 +89,21 @@ const monitor = new TerminalProgressMonitor();
|
|
|
82
89
|
]);
|
|
83
90
|
monitor.endTask('Delegation updated.', TaskResult.Success);
|
|
84
91
|
|
|
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
|
+
|
|
85
107
|
monitor.logInfo('Setup phase ended. Starting interactions...');
|
|
86
108
|
|
|
87
109
|
// Initial setup done, log starting state.
|
|
@@ -23,6 +23,14 @@ 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
|
+
|
|
26
34
|
export type ValueTransferConfig = {
|
|
27
35
|
amount: { max: number; min: number };
|
|
28
36
|
count: { max: number; min: number };
|
|
@@ -30,6 +38,11 @@ export type ValueTransferConfig = {
|
|
|
30
38
|
};
|
|
31
39
|
|
|
32
40
|
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
|
+
},
|
|
33
46
|
iterations: {
|
|
34
47
|
default: 10,
|
|
35
48
|
doc: 'How many iterations will be executed before stopping the test.',
|
|
@@ -263,14 +263,16 @@ 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.
|
|
266
267
|
*/
|
|
267
268
|
export const distributeStake = async (
|
|
268
269
|
delegationWallet: PersonalWallet,
|
|
269
270
|
startingFunds: number,
|
|
270
271
|
stakeDistribution: Array<number>,
|
|
271
272
|
stakeAddresses: Array<GroupedAddress>,
|
|
272
|
-
monitor: TerminalProgressMonitor
|
|
273
|
-
|
|
273
|
+
monitor: TerminalProgressMonitor,
|
|
274
|
+
pools: Array<Cardano.StakePool>
|
|
275
|
+
): Promise<Cardano.Cip17DelegationPortfolio> => {
|
|
274
276
|
// TODO: Replace with delegatePortfolio once LW-6702 is merged.
|
|
275
277
|
const totalWeight = stakeDistribution.reduce((sum, current) => sum + current, 0);
|
|
276
278
|
const stakeDistributionSsPercent = stakeDistribution.map((value) => value / totalWeight);
|
|
@@ -278,6 +280,11 @@ export const distributeStake = async (
|
|
|
278
280
|
|
|
279
281
|
const txBuilder = delegationWallet.createTxBuilder();
|
|
280
282
|
|
|
283
|
+
const portfolio: Cardano.Cip17DelegationPortfolio = {
|
|
284
|
+
name: 'Portfolio',
|
|
285
|
+
pools: stakeDistributionSsPercent.map((weight, index) => ({ id: pools[index].hexId, weight }))
|
|
286
|
+
};
|
|
287
|
+
|
|
281
288
|
let i = 0;
|
|
282
289
|
const startingFundsMinusFee = startingFunds - 5_000_000;
|
|
283
290
|
for (const { address } of stakeAddresses) {
|
|
@@ -291,6 +298,8 @@ export const distributeStake = async (
|
|
|
291
298
|
await submitAndConfirm(delegationWallet, signedTx);
|
|
292
299
|
|
|
293
300
|
monitor.endTask('Funds distributed', TaskResult.Success);
|
|
301
|
+
|
|
302
|
+
return portfolio;
|
|
294
303
|
};
|
|
295
304
|
|
|
296
305
|
/**
|