@cardano-sdk/e2e 0.35.0 → 0.36.1

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.
Files changed (110) hide show
  1. package/.env.example +9 -0
  2. package/CHANGELOG.md +30 -0
  3. package/dist/cjs/environment.d.ts +3 -2
  4. package/dist/cjs/environment.d.ts.map +1 -1
  5. package/dist/cjs/environment.js +3 -1
  6. package/dist/cjs/environment.js.map +1 -1
  7. package/dist/cjs/factories.d.ts.map +1 -1
  8. package/dist/cjs/factories.js +15 -6
  9. package/dist/cjs/factories.js.map +1 -1
  10. package/dist/cjs/scripts/is-local-network-ready.js +3 -5
  11. package/dist/cjs/scripts/is-local-network-ready.js.map +1 -1
  12. package/dist/cjs/tsconfig.tsbuildinfo +1 -1
  13. package/dist/cjs/util/createMockKeyAgent.d.ts.map +1 -1
  14. package/dist/cjs/util/createMockKeyAgent.js +3 -1
  15. package/dist/cjs/util/createMockKeyAgent.js.map +1 -1
  16. package/dist/cjs/util/util.d.ts +3 -3
  17. package/dist/cjs/util/util.d.ts.map +1 -1
  18. package/dist/cjs/util/util.js +12 -6
  19. package/dist/cjs/util/util.js.map +1 -1
  20. package/dist/esm/environment.d.ts +3 -2
  21. package/dist/esm/environment.d.ts.map +1 -1
  22. package/dist/esm/environment.js +3 -1
  23. package/dist/esm/environment.js.map +1 -1
  24. package/dist/esm/factories.d.ts.map +1 -1
  25. package/dist/esm/factories.js +16 -7
  26. package/dist/esm/factories.js.map +1 -1
  27. package/dist/esm/index.d.ts +6 -6
  28. package/dist/esm/index.js +6 -6
  29. package/dist/esm/scripts/is-local-network-ready.js +3 -5
  30. package/dist/esm/scripts/is-local-network-ready.js.map +1 -1
  31. package/dist/esm/scripts/mnemonic.js +1 -1
  32. package/dist/esm/tools/multi-delegation-data-gen/index.js +2 -2
  33. package/dist/esm/tools/multi-delegation-data-gen/utils/index.d.ts +4 -4
  34. package/dist/esm/tools/multi-delegation-data-gen/utils/index.js +4 -4
  35. package/dist/esm/tools/multi-delegation-data-gen/utils/utils.d.ts +2 -2
  36. package/dist/esm/tools/multi-delegation-data-gen/utils/utils.js +4 -4
  37. package/dist/esm/tsconfig.tsbuildinfo +1 -1
  38. package/dist/esm/util/createMockKeyAgent.d.ts.map +1 -1
  39. package/dist/esm/util/createMockKeyAgent.js +4 -2
  40. package/dist/esm/util/createMockKeyAgent.js.map +1 -1
  41. package/dist/esm/util/handle-util.js +1 -1
  42. package/dist/esm/util/index.d.ts +4 -4
  43. package/dist/esm/util/index.js +4 -4
  44. package/dist/esm/util/util.d.ts +4 -4
  45. package/dist/esm/util/util.d.ts.map +1 -1
  46. package/dist/esm/util/util.js +15 -9
  47. package/dist/esm/util/util.js.map +1 -1
  48. package/docker-compose.yml +2 -5
  49. package/jest.config.js +3 -2
  50. package/local-network/Dockerfile +8 -10
  51. package/local-network/scripts/clean.sh +1 -3
  52. package/local-network/scripts/install.sh +4 -4
  53. package/local-network/scripts/make-babbage.sh +60 -23
  54. package/local-network/scripts/mint-handles.sh +2 -4
  55. package/local-network/scripts/mint-tokens.sh +1 -2
  56. package/local-network/scripts/plutus-transaction.sh +5 -12
  57. package/local-network/scripts/pools/update-node-sp1.sh +1 -1
  58. package/local-network/scripts/pools/update-node-sp10.sh +1 -1
  59. package/local-network/scripts/pools/update-node-sp11.sh +1 -1
  60. package/local-network/scripts/pools/update-node-sp2.sh +1 -1
  61. package/local-network/scripts/pools/update-node-sp3.sh +1 -1
  62. package/local-network/scripts/pools/update-node-sp4.sh +1 -1
  63. package/local-network/scripts/pools/update-node-sp5.sh +1 -1
  64. package/local-network/scripts/pools/update-node-sp6.sh +1 -1
  65. package/local-network/scripts/pools/update-node-sp7.sh +1 -1
  66. package/local-network/scripts/pools/update-node-sp8.sh +1 -1
  67. package/local-network/scripts/pools/update-node-sp9.sh +1 -1
  68. package/local-network/scripts/pools/update-node-utils.sh +83 -78
  69. package/local-network/scripts/reference-input-transaction.sh +10 -23
  70. package/local-network/scripts/setup-new-delegator-keys.sh +184 -0
  71. package/local-network/scripts/setup-wallets.sh +2 -2
  72. package/local-network/scripts/start.sh +20 -5
  73. package/local-network/scripts/update-stake-pools.sh.sh +13 -0
  74. package/local-network/scripts/wait-local-network-init.sh +11 -0
  75. package/local-network/templates/babbage/byron-configuration.yaml +1 -0
  76. package/local-network/templates/babbage/conway-babbage-test-genesis.json +38 -0
  77. package/local-network/templates/babbage/node-config.json +12 -22
  78. package/local-network/templates/babbage/submit-api-config.json +9 -21
  79. package/package.json +31 -29
  80. package/src/environment.ts +3 -1
  81. package/src/factories.ts +22 -7
  82. package/src/scripts/is-local-network-ready.ts +4 -8
  83. package/src/util/createMockKeyAgent.ts +4 -2
  84. package/src/util/util.ts +19 -8
  85. package/test/local-network/register-pool.test.ts +3 -2
  86. package/test/long-running/multisig-wallet/MultiSigWallet.ts +5 -2
  87. package/test/long-running/shared-wallet-delegation-rewards.test.ts +2 -2
  88. package/test/long-running/simple-delegation-rewards.test.ts +1 -1
  89. package/test/projection/offline-fork.test.ts +2 -1
  90. package/test/{wallet → wallet_epoch_0}/PersonalWallet/byron.test.ts +1 -1
  91. package/test/wallet_epoch_0/PersonalWallet/conwayTransactions.test.ts +470 -0
  92. package/test/{wallet → wallet_epoch_0}/PersonalWallet/handle.test.ts +1 -1
  93. package/test/{wallet → wallet_epoch_0}/PersonalWallet/mint.test.ts +7 -6
  94. package/test/{wallet → wallet_epoch_0}/PersonalWallet/multiAddress.test.ts +1 -1
  95. package/test/{wallet → wallet_epoch_0}/PersonalWallet/multisignature.test.ts +19 -14
  96. package/test/{wallet → wallet_epoch_0}/PersonalWallet/nft.test.ts +1 -1
  97. package/test/{wallet → wallet_epoch_0}/PersonalWallet/phase2validation.test.ts +6 -2
  98. package/test/wallet_epoch_0/PersonalWallet/plutusTest.test.ts +347 -0
  99. package/test/{wallet → wallet_epoch_0}/PersonalWallet/txChainHistory.test.ts +1 -1
  100. package/test/{wallet → wallet_epoch_0}/PersonalWallet/unspendableUtxos.test.ts +2 -2
  101. package/test/{wallet → wallet_epoch_0}/SharedWallet/simpleTx.test.ts +2 -2
  102. package/test/{wallet/SharedWallet/ultils.ts → wallet_epoch_0/SharedWallet/utils.ts} +7 -1
  103. package/test/{wallet → wallet_epoch_3}/PersonalWallet/delegationDistribution.test.ts +11 -11
  104. package/test/{wallet → wallet_epoch_3}/SharedWallet/delegation.test.ts +2 -2
  105. package/test/web-extension/webpack.config.base.js +2 -1
  106. package/local-network/scripts/is-db-synced.sh +0 -24
  107. /package/test/{wallet → wallet_epoch_0}/PersonalWallet/metadata.test.ts +0 -0
  108. /package/test/{wallet → wallet_epoch_0}/PersonalWallet/pouchDbWalletStores.test.ts +0 -0
  109. /package/test/{wallet → wallet_epoch_0}/PersonalWallet/txChaining.test.ts +0 -0
  110. /package/test/{wallet → wallet_epoch_3}/PersonalWallet/delegation.test.ts +0 -0
@@ -0,0 +1,184 @@
1
+ #!/usr/bin/env bash
2
+
3
+ # mkfiles.sh
4
+ # This scripts uses set -x to show in terminal the commands executed by the script. Remove or comment set -x to disable this behavior
5
+ # The "exec 2>" below this comment helps the user to differenciate between the commands and its outputs by changing the color
6
+ # of the set -x output (the commands).
7
+
8
+ exec 2> >(while IFS= read -r line; do echo -e "\e[34m${line}\e[0m" >&2; done)
9
+
10
+ # Unofficial bash strict mode.
11
+ # See: http://redsymbol.net/articles/unofficial-bash-strict-mode/
12
+ set -x
13
+ set -euo pipefail
14
+
15
+ here="$(cd "$(dirname "$0")" >/dev/null 2>&1 && pwd)"
16
+ root="$(cd "$here/.." && pwd)"
17
+ cd "$root"
18
+
19
+ export PATH=$PWD/bin:$PATH
20
+
21
+ source ./scripts/nodes-configuration.sh
22
+
23
+ UNAME=$(uname -s) SED=
24
+ case $UNAME in
25
+ Darwin ) SED="gsed";;
26
+ Linux ) SED="sed";;
27
+ esac
28
+
29
+ sprocket() {
30
+ if [ "$UNAME" == "Windows_NT" ]; then
31
+ # Named pipes names on Windows must have the structure: "\\.\pipe\PipeName"
32
+ # See https://docs.microsoft.com/en-us/windows/win32/ipc/pipe-names
33
+ echo -n '\\.\pipe\'
34
+ echo "$1" | sed 's|/|\\|g'
35
+ else
36
+ echo "$1"
37
+ fi
38
+ }
39
+
40
+ getAddressBalance() {
41
+ cardano-cli query utxo \
42
+ --address "$1" \
43
+ --testnet-magic 888 >fullUtxo.out
44
+
45
+ tail -n +3 fullUtxo.out | sort -k3 -nr >balance.out
46
+
47
+ total_balance=0
48
+ while read -r utxo; do
49
+ utxo_balance=$(awk '{ print $3 }' <<<"${utxo}")
50
+ total_balance=$(("$total_balance" + "$utxo_balance"))
51
+ done <balance.out
52
+
53
+ echo ${total_balance}
54
+ }
55
+
56
+ NETWORK_MAGIC=888
57
+ UTXO_DIR=network-files/utxo-keys
58
+ TRANSACTIONS_DIR=network-files/transactions
59
+ DELEGATORS_DIR=network-files/stake-delegator-keys
60
+
61
+ AMOUNT_PER_DELEGATOR='500000000000' # 500K ADA
62
+
63
+ mkdir -p "$TRANSACTIONS_DIR"
64
+ mkdir -p "$DELEGATORS_DIR"
65
+
66
+ while [ ! -S "$CARDANO_NODE_SOCKET_PATH" ]; do
67
+ echo "setup-new-delegator-keys.sh: CARDANO_NODE_SOCKET_PATH: $CARDANO_NODE_SOCKET_PATH file doesn't exist, waiting..."
68
+ sleep 2
69
+ done
70
+
71
+ # ----------------------
72
+
73
+ # GENERATE NEW PAYMENT KEYS
74
+
75
+ for NODE_ID in ${SP_NODES_ID}; do
76
+ cardano-cli conway address key-gen \
77
+ --verification-key-file "${DELEGATORS_DIR}/payment${NODE_ID}.vkey" \
78
+ --signing-key-file "${DELEGATORS_DIR}/payment${NODE_ID}.skey"
79
+ done
80
+
81
+ # GENERATE NEW STAKE
82
+
83
+ for NODE_ID in ${SP_NODES_ID}; do
84
+ cardano-cli conway stake-address key-gen \
85
+ --verification-key-file "${DELEGATORS_DIR}/staking${NODE_ID}.vkey" \
86
+ --signing-key-file "${DELEGATORS_DIR}/staking${NODE_ID}.skey"
87
+ done
88
+
89
+ # BUILD ADDRESSES FOR OUR NEW KEYS
90
+
91
+ for NODE_ID in ${SP_NODES_ID}; do
92
+ cardano-cli conway address build \
93
+ --testnet-magic $NETWORK_MAGIC \
94
+ --payment-verification-key-file "${DELEGATORS_DIR}/payment${NODE_ID}.vkey" \
95
+ --stake-verification-key-file "${DELEGATORS_DIR}/staking${NODE_ID}.vkey" \
96
+ --out-file "${DELEGATORS_DIR}/payment${NODE_ID}.addr"
97
+ done
98
+
99
+ # BUILD ADDRESSES FOR THE EXISTING KEYS, WE WILL NEED THEM FOR OUR FUTURE TRANSACTIONS
100
+
101
+ for NODE_ID in ${SP_NODES_ID}; do
102
+ cardano-cli conway address build \
103
+ --testnet-magic $NETWORK_MAGIC \
104
+ --payment-verification-key-file "${UTXO_DIR}/utxo${NODE_ID}.vkey" \
105
+ --out-file "${UTXO_DIR}/utxo${NODE_ID}.addr"
106
+ done
107
+
108
+ # FUND OUR NEWLY CREATED ADDRESSES
109
+
110
+ stakeAddr="$(cat "${UTXO_DIR}/utxo1.addr")"
111
+ currentBalance=$(getAddressBalance "$stakeAddr")
112
+ echo "Funding stake addresses with ${AMOUNT_PER_DELEGATOR}"
113
+
114
+ for NODE_ID in ${SP_NODES_ID}; do
115
+ cardano-cli conway transaction build \
116
+ --testnet-magic $NETWORK_MAGIC \
117
+ --tx-in "$(cardano-cli query utxo --address "$(cat "${UTXO_DIR}/utxo${NODE_ID}.addr")" --testnet-magic $NETWORK_MAGIC --out-file /dev/stdout | jq -r 'keys[0]')" \
118
+ --tx-out "$(cat ${DELEGATORS_DIR}/payment${NODE_ID}.addr)+${AMOUNT_PER_DELEGATOR}" \
119
+ --change-address "$(cat ${UTXO_DIR}/utxo${NODE_ID}.addr)" \
120
+ --out-file "${TRANSACTIONS_DIR}/tx${NODE_ID}.raw"
121
+
122
+ cardano-cli conway transaction sign --testnet-magic $NETWORK_MAGIC \
123
+ --tx-body-file "${TRANSACTIONS_DIR}/tx${NODE_ID}.raw" \
124
+ --signing-key-file "${UTXO_DIR}/utxo${NODE_ID}.skey" \
125
+ --out-file "${TRANSACTIONS_DIR}/tx${NODE_ID}.signed"
126
+
127
+ cardano-cli conway transaction submit \
128
+ --testnet-magic $NETWORK_MAGIC \
129
+ --tx-file "${TRANSACTIONS_DIR}/tx${NODE_ID}.signed"
130
+ done
131
+
132
+ updatedBalance=$(getAddressBalance "$stakeAddr")
133
+
134
+ while [ "$currentBalance" -eq "$updatedBalance" ]; do
135
+ updatedBalance=$(getAddressBalance "$stakeAddr")
136
+ sleep 1
137
+ done
138
+
139
+ sleep 10
140
+
141
+ # SHOW THE UTXO DISTRIBUTION
142
+
143
+ cardano-cli conway query utxo --whole-utxo --testnet-magic $NETWORK_MAGIC
144
+
145
+ # REGISTER STAKE ADDRESSES
146
+
147
+ echo "Registering $(cat "${DELEGATORS_DIR}/payment${NODE_ID}.addr")"
148
+
149
+ stakeAddr="$(cat "${DELEGATORS_DIR}/payment1.addr")"
150
+ currentBalance=$(getAddressBalance "$stakeAddr")
151
+
152
+ for NODE_ID in ${SP_NODES_ID}; do
153
+ cardano-cli conway stake-address registration-certificate \
154
+ --stake-verification-key-file "${DELEGATORS_DIR}/staking${NODE_ID}.vkey" \
155
+ --key-reg-deposit-amt 0 \
156
+ --out-file "${TRANSACTIONS_DIR}/staking${NODE_ID}reg.cert"
157
+
158
+ cardano-cli conway transaction build \
159
+ --testnet-magic $NETWORK_MAGIC \
160
+ --tx-in "$(cardano-cli query utxo --address "$(cat "${DELEGATORS_DIR}/payment${NODE_ID}.addr")" --testnet-magic $NETWORK_MAGIC --out-file /dev/stdout | jq -r 'keys[0]')" \
161
+ --change-address "$(cat ${DELEGATORS_DIR}/payment${NODE_ID}.addr)" \
162
+ --certificate-file "${TRANSACTIONS_DIR}/staking${NODE_ID}reg.cert" \
163
+ --witness-override 2 \
164
+ --out-file "${TRANSACTIONS_DIR}/reg-stake-tx${NODE_ID}.raw"
165
+
166
+ cardano-cli conway transaction sign --testnet-magic $NETWORK_MAGIC \
167
+ --tx-body-file "${TRANSACTIONS_DIR}/reg-stake-tx${NODE_ID}.raw" \
168
+ --signing-key-file "${DELEGATORS_DIR}/payment${NODE_ID}.skey" \
169
+ --signing-key-file "${DELEGATORS_DIR}/staking${NODE_ID}.skey" \
170
+ --out-file "${TRANSACTIONS_DIR}/reg-stake-tx${NODE_ID}.signed"
171
+
172
+ cardano-cli conway transaction submit \
173
+ --testnet-magic $NETWORK_MAGIC \
174
+ --tx-file "${TRANSACTIONS_DIR}/reg-stake-tx${NODE_ID}.signed"
175
+ done
176
+
177
+ updatedBalance=$(getAddressBalance "$stakeAddr")
178
+
179
+ while [ "$currentBalance" -eq "$updatedBalance" ]; do
180
+ updatedBalance=$(getAddressBalance "$stakeAddr")
181
+ sleep 1
182
+ done
183
+
184
+ sleep 10
@@ -1,6 +1,7 @@
1
1
  #!/usr/bin/env bash
2
2
 
3
3
  # This funds a set of fixed addresses to be used during testing.
4
+
4
5
  set -euo pipefail
5
6
 
6
7
  source $(dirname $0)/common.sh
@@ -36,8 +37,7 @@ walletAddr5="addr_test1qr0c3frkem9cqn5f73dnvqpena27k2fgqew6wct9eaka03agfwkvzr0zy
36
37
  # Spend the first UTxO
37
38
  utxo=$(cardano-cli query utxo --address "$genesisAddr" --testnet-magic 888 | awk 'NR == 3 {printf("%s#%s", $1, $2)}')
38
39
 
39
- cardano-cli transaction build \
40
- --babbage-era \
40
+ cardano-cli conway transaction build \
41
41
  --change-address "$genesisAddr" \
42
42
  --tx-in "$utxo" \
43
43
  --tx-out "$walletAddr1"+"$AMOUNT_PER_WALLET" \
@@ -8,6 +8,18 @@ here="$(cd "$(dirname "$0")" >/dev/null 2>&1 && pwd)"
8
8
  root="$(cd "$here/.." && pwd)"
9
9
  cd "$root"
10
10
 
11
+ waitForEpoch1() {
12
+ while [ `CARDANO_NODE_SOCKET_PATH=$PWD/network-files/node-sp1/node.sock cardano-cli query tip --testnet-magic 888 | jq -r .epoch` == "0" ] ; do
13
+ sleep 5
14
+ done
15
+ }
16
+
17
+ healthy() {
18
+ sleep 20
19
+ waitForEpoch1
20
+ touch ./network-files/run/healthy
21
+ }
22
+
11
23
  export PATH=$PWD/bin:$PATH
12
24
 
13
25
  source ./scripts/nodes-configuration.sh
@@ -21,12 +33,10 @@ trap 'kill 0' INT
21
33
  echo "Run"
22
34
  ./scripts/make-babbage.sh
23
35
  ./network-files/run/all.sh &
36
+ CARDANO_NODE_SOCKET_PATH=$PWD/network-files/node-sp1/node.sock ./scripts/setup-new-delegator-keys.sh
37
+ healthy &
24
38
 
25
- for ID in ${SP_NODES_ID}; do
26
- if [ -f "./scripts/pools/update-node-sp$ID.sh" ]; then # Only update the pool if a script exists for that pool.
27
- CARDANO_NODE_SOCKET_PATH=$PWD/network-files/node-sp"$ID"/node.sock ./scripts/pools/update-node-sp"$ID".sh
28
- fi
29
- done
39
+ ./scripts/update-stake-pools.sh.sh "$SP_NODES_ID"
30
40
 
31
41
  CARDANO_NODE_SOCKET_PATH=$PWD/network-files/node-sp1/node.sock ./scripts/plutus-transaction.sh
32
42
  CARDANO_NODE_SOCKET_PATH=$PWD/network-files/node-sp1/node.sock ./scripts/reference-input-transaction.sh
@@ -34,4 +44,9 @@ CARDANO_NODE_SOCKET_PATH=$PWD/network-files/node-sp1/node.sock ./scripts/mint-to
34
44
  CARDANO_NODE_SOCKET_PATH=$PWD/network-files/node-sp1/node.sock ./scripts/setup-wallets.sh
35
45
  CARDANO_NODE_SOCKET_PATH=$PWD/network-files/node-sp1/node.sock ./scripts/mint-handles.sh
36
46
 
47
+ waitForEpoch1
48
+ sleep 50
49
+
50
+ touch ./network-files/run/done
51
+
37
52
  wait
@@ -0,0 +1,13 @@
1
+ #!/usr/bin/env bash
2
+
3
+ set -euo pipefail
4
+
5
+ SP_NODES_ID="$1"
6
+
7
+ for ID in ${SP_NODES_ID}; do
8
+ if [ -f "./scripts/pools/update-node-sp$ID.sh" ]; then # Only update the pool if a script exists for that pool.
9
+ CARDANO_NODE_SOCKET_PATH=$PWD/network-files/node-sp"$ID"/node.sock ./scripts/pools/update-node-sp"$ID".sh &
10
+ fi
11
+ done
12
+
13
+ wait
@@ -0,0 +1,11 @@
1
+ #!/usr/bin/env bash
2
+
3
+ set -euo pipefail
4
+
5
+ while ! docker exec -i local-network-e2e-local-testnet-1 test -e /root/network-files/run/done 2> /dev/null ; do
6
+ echo Waiting...
7
+ sleep 10
8
+ done
9
+
10
+ echo Local network init completed
11
+ sleep 10
@@ -12,6 +12,7 @@ GenesisFile: genesis.json
12
12
  ByronGenesisHash: '576a1b4687c7668b2f1d734fecaa7ca994b597f37177606d4942d339875009d6'
13
13
  ShelleyGenesisHash: '4315428096763404ae322ce69eea7323c94dead3281cd306b5be7e80288626ce'
14
14
  AlonzoGenesisHash: 'eaa32942a4f2b3028928cb47be679bb36fa128f6d7dddc04ae592d27f2818c16'
15
+ ConwayGenesisHash: 'eaa32942a4f2b3028928cb47be679bb36fa128f6d7dddc04ae592d27f2818c16'
15
16
 
16
17
  ##### Blockfetch Protocol
17
18
 
@@ -0,0 +1,38 @@
1
+ {
2
+ "poolVotingThresholds": {
3
+ "committeeNormal": 0.51,
4
+ "committeeNoConfidence": 0.51,
5
+ "hardForkInitiation": 0.51,
6
+ "motionNoConfidence": 0.51,
7
+ "ppSecurityGroup": 0.51
8
+ },
9
+ "dRepVotingThresholds": {
10
+ "motionNoConfidence": 0.51,
11
+ "committeeNormal": 0.51,
12
+ "committeeNoConfidence": 0.51,
13
+ "updateToConstitution": 0.51,
14
+ "hardForkInitiation": 0.51,
15
+ "ppNetworkGroup": 0.51,
16
+ "ppEconomicGroup": 0.51,
17
+ "ppTechnicalGroup": 0.51,
18
+ "ppGovGroup": 0.51,
19
+ "treasuryWithdrawal": 0.51
20
+ },
21
+ "committeeMinSize": 0,
22
+ "committeeMaxTermLength": 200,
23
+ "govActionLifetime": 10,
24
+ "govActionDeposit": 1000000000,
25
+ "dRepDeposit": 2000000,
26
+ "dRepActivity": 20,
27
+ "constitution": {
28
+ "anchor": {
29
+ "url": "",
30
+ "dataHash": "0000000000000000000000000000000000000000000000000000000000000000"
31
+ }
32
+ },
33
+ "committee": {
34
+ "members": {
35
+ },
36
+ "quorum": 0
37
+ }
38
+ }
@@ -2,9 +2,11 @@
2
2
  "ByronGenesisFile": "genesis/byron.json",
3
3
  "ShelleyGenesisFile": "genesis/shelley.json",
4
4
  "AlonzoGenesisFile": "genesis/alonzo.json",
5
+ "ConwayGenesisFile": "genesis/conway.json",
5
6
  "ByronGenesisHash": "a300c7ae1b124f53a80d86c6e43ff28c8d0369d7aa5512d5a3328a668b0e15e8",
6
7
  "ShelleyGenesisHash": "6baf33f913dffe311033bd7a7199060cb421234bf12cb99ef448bfd4fe47e305",
7
8
  "AlonzoGenesisHash": "eaa32942a4f2b3028928cb47be679bb36fa128f6d7dddc04ae592d27f2818c16",
9
+ "ConwayGenesisHash": "eaa32942a4f2b3028928cb47be679bb36fa128f6d7dddc04ae592d27f2818c16",
8
10
  "MaxConcurrencyBulkSync": 1,
9
11
  "MaxConcurrencyDeadline": 2,
10
12
  "Protocol": "Cardano",
@@ -18,12 +20,8 @@
18
20
  "TurnOnLogMetrics": true,
19
21
  "minSeverity": "Info",
20
22
  "TracingVerbosity": "MinimalVerbosity",
21
- "setupBackends": [
22
- "KatipBK"
23
- ],
24
- "defaultBackends": [
25
- "KatipBK"
26
- ],
23
+ "setupBackends": ["KatipBK"],
24
+ "defaultBackends": ["KatipBK"],
27
25
  "setupScribes": [
28
26
  {
29
27
  "scKind": "FileSK",
@@ -37,14 +35,8 @@
37
35
  }
38
36
  ],
39
37
  "defaultScribes": [
40
- [
41
- "FileSK",
42
- "logs/testnet.log"
43
- ],
44
- [
45
- "StdoutSK",
46
- "stdout"
47
- ]
38
+ ["FileSK", "logs/testnet.log"],
39
+ ["StdoutSK", "stdout"]
48
40
  ],
49
41
  "rotation": {
50
42
  "rpLogLimitBytes": 5000000,
@@ -89,14 +81,10 @@
89
81
  "TraceTxSubmissionProtocol": false,
90
82
  "options": {
91
83
  "mapBackends": {
92
- "cardano.node.metrics": [
93
- "EKGViewBK"
94
- ]
84
+ "cardano.node.metrics": ["EKGViewBK"]
95
85
  },
96
86
  "mapScribes": {
97
- "cardano.node.metrics": [
98
- "FileSK::logs/testnet.log"
99
- ]
87
+ "cardano.node.metrics": ["FileSK::logs/testnet.log"]
100
88
  },
101
89
  "mapSeverity": {
102
90
  "cardano.node.ChainDB": "Notice",
@@ -109,5 +97,7 @@
109
97
  "TestMaryHardForkAtEpoch": 0,
110
98
  "TestAlonzoHardForkAtEpoch": 0,
111
99
  "TestBabbageHardForkAtEpoch": 0,
112
- "TestEnableDevelopmentNetworkProtocols": true
113
- }
100
+ "TestConwayHardForkAtEpoch": 0,
101
+ "ExperimentalHardForksEnabled": true,
102
+ "ExperimentalProtocolsEnabled": true
103
+ }
@@ -2,9 +2,11 @@
2
2
  "ByronGenesisFile": "genesis/byron.json",
3
3
  "ShelleyGenesisFile": "genesis/shelley.json",
4
4
  "AlonzoGenesisFile": "genesis/alonzo.json",
5
+ "ConwayGenesisFile": "genesis/alonzo.json",
5
6
  "ByronGenesisHash": "a300c7ae1b124f53a80d86c6e43ff28c8d0369d7aa5512d5a3328a668b0e15e8",
6
7
  "ShelleyGenesisHash": "6baf33f913dffe311033bd7a7199060cb421234bf12cb99ef448bfd4fe47e305",
7
8
  "AlonzoGenesisHash": "eaa32942a4f2b3028928cb47be679bb36fa128f6d7dddc04ae592d27f2818c16",
9
+ "ConwayGenesisHash": "eaa32942a4f2b3028928cb47be679bb36fa128f6d7dddc04ae592d27f2818c16",
8
10
  "MaxConcurrencyBulkSync": 1,
9
11
  "MaxConcurrencyDeadline": 2,
10
12
  "Protocol": "Cardano",
@@ -18,12 +20,8 @@
18
20
  "TurnOnLogMetrics": true,
19
21
  "minSeverity": "Info",
20
22
  "TracingVerbosity": "MinimalVerbosity",
21
- "setupBackends": [
22
- "KatipBK"
23
- ],
24
- "defaultBackends": [
25
- "KatipBK"
26
- ],
23
+ "setupBackends": ["KatipBK"],
24
+ "defaultBackends": ["KatipBK"],
27
25
  "setupScribes": [
28
26
  {
29
27
  "scKind": "FileSK",
@@ -37,14 +35,8 @@
37
35
  }
38
36
  ],
39
37
  "defaultScribes": [
40
- [
41
- "FileSK",
42
- "logs/testnet.log"
43
- ],
44
- [
45
- "StdoutSK",
46
- "stdout"
47
- ]
38
+ ["FileSK", "logs/testnet.log"],
39
+ ["StdoutSK", "stdout"]
48
40
  ],
49
41
  "rotation": {
50
42
  "rpLogLimitBytes": 5000000,
@@ -89,14 +81,10 @@
89
81
  "TraceTxSubmissionProtocol": false,
90
82
  "options": {
91
83
  "mapBackends": {
92
- "cardano.node.metrics": [
93
- "EKGViewBK"
94
- ]
84
+ "cardano.node.metrics": ["EKGViewBK"]
95
85
  },
96
86
  "mapScribes": {
97
- "cardano.node.metrics": [
98
- "FileSK::logs/testnet.log"
99
- ]
87
+ "cardano.node.metrics": ["FileSK::logs/testnet.log"]
100
88
  },
101
89
  "mapSeverity": {
102
90
  "cardano.node.ChainDB": "Notice",
@@ -109,7 +97,7 @@
109
97
  "TestMaryHardForkAtEpoch": 0,
110
98
  "TestAlonzoHardForkAtEpoch": 0,
111
99
  "TestBabbageHardForkAtEpoch": 0,
112
- "TestEnableDevelopmentNetworkProtocols": true,
100
+ "ExperimentalProtocolsEnabled": true,
113
101
  "EnableLogMetrics": false,
114
102
  "EnableLogging": true
115
103
  }
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@cardano-sdk/e2e",
3
- "version": "0.35.0",
3
+ "version": "0.36.1",
4
4
  "description": "End to end tests for the cardano-js-sdk packages.",
5
5
  "engines": {
6
6
  "node": ">=16.20.2"
@@ -31,8 +31,10 @@
31
31
  "test:ogmios": "jest -c jest.config.js --forceExit --selectProjects ogmios --runInBand --verbose",
32
32
  "test:pg-boss": "jest -c jest.config.js --forceExit --selectProjects pg-boss --runInBand --verbose",
33
33
  "test:providers": "jest -c jest.config.js --forceExit --selectProjects providers --runInBand --verbose",
34
- "test:wallet": "jest -c jest.config.js --forceExit --selectProjects wallet --runInBand --verbose",
35
- "test:wallet-real-ada": "jest -c jest.config.js --forceExit --selectProjects wallet-real-ada --runInBand --verbose",
34
+ "test:wallet": "yarn wait-for-network-init ; yarn test:wallet:epoch0 && { yarn wait-for-network-epoch-3 ; yarn test:wallet:epoch3 ; }",
35
+ "test:wallet:epoch0": "jest -c jest.config.js --forceExit --selectProjects wallet_epoch_0 --runInBand --verbose",
36
+ "test:wallet:epoch3": "jest -c jest.config.js --forceExit --selectProjects wallet_epoch_3 --runInBand --verbose",
37
+ "test:wallet-real-ada": "NETWORK_SPEED=slow jest -c jest.config.js --forceExit --selectProjects wallet-real-ada --runInBand --verbose",
36
38
  "test:web-extension:build:sw": "tsc --build ./test && tsc --build ./test/web-extension && webpack -c test/web-extension/webpack.config.sw.js",
37
39
  "test:web-extension:build:other": "tsc --build ./test && tsc --build ./test/web-extension && webpack -c test/web-extension/webpack.config.js",
38
40
  "test:web-extension:build:sw:watch": "yarn test:web-extension:build:sw --watch",
@@ -44,7 +46,7 @@
44
46
  "test:web-extension:watch:run": "yarn test:web-extension:run --watch",
45
47
  "test:web-extension:watch": "run-s test:web-extension:build test:web-extension:watch:bg",
46
48
  "test:web-extension:watch:bg": "run-p test:web-extension:watch:build test:web-extension:watch:run",
47
- "local-network:common": "DISABLE_DB_CACHE=${DISABLE_DB_CACHE:-true} SUBMIT_API_ARGS='--testnet-magic 888' USE_BLOCKFROST=false __FIX_UMASK__=$(chmod -R a+r ../../compose/placeholder-secrets) docker compose --env-file ../cardano-services/environments/.env.local -p local-network-e2e -f docker-compose.yml -f ../../compose/common.yml -f ../../compose/$(uname -m).yml $FILES up",
49
+ "local-network:common": "PRE_CONWAY=${PRE_CONWAY:-stable} DISABLE_DB_CACHE=${DISABLE_DB_CACHE:-true} SUBMIT_API_ARGS='--testnet-magic 888' USE_BLOCKFROST=false __FIX_UMASK__=$(chmod -R a+r ../../compose/placeholder-secrets) docker compose --env-file ../cardano-services/environments/.env.local -p local-network-e2e -f docker-compose.yml -f ../../compose/common.yml -f ../../compose/$(uname -m).yml $FILES up",
48
50
  "local-network:up": "FILES='' yarn local-network:common",
49
51
  "local-network:dev": "FILES='-f ../../compose/dev.yml' yarn local-network:common",
50
52
  "local-network:profile:up": "FILES='-f ../../compose/pg-agent.yml' yarn local-network:common",
@@ -53,10 +55,8 @@
53
55
  "cardano-services:up": "ts-node --transpile-only ../cardano-services/src/cli.ts start-provider-server",
54
56
  "cardano-services:up:debug": "npx nodemon --legacy-watch --exec 'node -r ts-node/register --inspect=0.0.0.0:9229 ../cardano-services/src/cli.ts start-provider-server'",
55
57
  "circular-deps:check": "madge --circular dist/cjs",
56
- "build:esm": "tsc -p src/tsconfig.json --outDir ./dist/esm --module es2020",
57
- "build:cjs": "tsc --build src",
58
- "build": "run-s build:cjs build:esm module-fixup",
59
- "module-fixup": "cp ../../build/cjs-package.json ./dist/cjs/package.json && cp ../../build/esm-package.json ./dist/esm/package.json",
58
+ "build": "yarn build:cjs && tsc -p src/tsconfig.json --outDir ./dist/esm --module es2020 && tsc-alias -p src/tsconfig.json --outDir ./dist/esm && cp ../../build/esm-package.json ./dist/esm/package.json",
59
+ "build:cjs": "tsc --build src && cp ../../build/cjs-package.json ./dist/cjs/package.json",
60
60
  "tscNoEmit": "echo typescript --noEmit command not implemented yet",
61
61
  "cleanup:dist": "rm -rf dist",
62
62
  "cleanup:nm": "rm -rf node_modules",
@@ -70,7 +70,8 @@
70
70
  "test:debug": "DEBUG=true yarn test",
71
71
  "generate-mnemonics": "ts-node src/scripts/mnemonic.ts",
72
72
  "multi-delegation-data-gen": "ts-node src/tools/multi-delegation-data-gen/index.ts",
73
- "wait-for-network": "ts-node src/scripts/is-local-network-ready.ts"
73
+ "wait-for-network-epoch-3": "DB_SYNC_CONNECTION_STRING='postgresql://postgres:doNoUseThisSecret!@localhost:5435/cexplorer' ts-node src/scripts/is-local-network-ready.ts",
74
+ "wait-for-network-init": "local-network/scripts/wait-local-network-init.sh"
74
75
  },
75
76
  "repository": "https://github.com/input-output-hk/cardano-js-sdk",
76
77
  "license": "Apache-2.0",
@@ -79,21 +80,21 @@
79
80
  },
80
81
  "dependencies": {
81
82
  "@cardano-foundation/ledgerjs-hw-app-cardano": "^7.1.2",
82
- "@cardano-ogmios/client": "5.6.0",
83
- "@cardano-sdk/cardano-services": "~0.28.4",
84
- "@cardano-sdk/cardano-services-client": "~0.19.4",
85
- "@cardano-sdk/core": "~0.32.0",
86
- "@cardano-sdk/crypto": "~0.1.23",
87
- "@cardano-sdk/hardware-ledger": "~0.9.5",
88
- "@cardano-sdk/hardware-trezor": "~0.4.25",
89
- "@cardano-sdk/input-selection": "~0.12.31",
90
- "@cardano-sdk/key-management": "~0.20.5",
91
- "@cardano-sdk/ogmios": "~0.15.25",
92
- "@cardano-sdk/tx-construction": "~0.18.7",
93
- "@cardano-sdk/util": "~0.15.1",
94
- "@cardano-sdk/util-dev": "~0.20.4",
95
- "@cardano-sdk/util-rxjs": "~0.7.14",
96
- "@cardano-sdk/wallet": "~0.37.5",
83
+ "@cardano-ogmios/client": "6.3.0",
84
+ "@cardano-sdk/cardano-services": "~0.28.6",
85
+ "@cardano-sdk/cardano-services-client": "~0.19.6",
86
+ "@cardano-sdk/core": "~0.33.1",
87
+ "@cardano-sdk/crypto": "~0.1.24",
88
+ "@cardano-sdk/hardware-ledger": "~0.9.7",
89
+ "@cardano-sdk/hardware-trezor": "~0.4.27",
90
+ "@cardano-sdk/input-selection": "~0.13.1",
91
+ "@cardano-sdk/key-management": "~0.20.7",
92
+ "@cardano-sdk/ogmios": "~0.15.27",
93
+ "@cardano-sdk/tx-construction": "~0.19.1",
94
+ "@cardano-sdk/util": "~0.15.2",
95
+ "@cardano-sdk/util-dev": "~0.21.1",
96
+ "@cardano-sdk/util-rxjs": "~0.7.16",
97
+ "@cardano-sdk/wallet": "~0.38.1",
97
98
  "@dcspark/cardano-multiplatform-lib-nodejs": "^3.1.1",
98
99
  "@vespaiach/axios-fetch-adapter": "^0.3.0",
99
100
  "axios": "^0.28.0",
@@ -123,10 +124,10 @@
123
124
  "@babel/core": "^7.18.2",
124
125
  "@babel/preset-env": "^7.18.2",
125
126
  "@babel/preset-typescript": "^7.17.12",
126
- "@cardano-sdk/dapp-connector": "~0.12.18",
127
- "@cardano-sdk/projection": "~0.11.15",
128
- "@cardano-sdk/projection-typeorm": "~0.8.17",
129
- "@cardano-sdk/web-extension": "~0.28.0",
127
+ "@cardano-sdk/dapp-connector": "~0.12.20",
128
+ "@cardano-sdk/projection": "~0.11.17",
129
+ "@cardano-sdk/projection-typeorm": "~0.8.19",
130
+ "@cardano-sdk/web-extension": "~0.29.1",
130
131
  "@dcspark/cardano-multiplatform-lib-browser": "^3.1.1",
131
132
  "@emurgo/cardano-message-signing-asmjs": "^1.0.1",
132
133
  "@types/bunyan": "^1.8.8",
@@ -168,6 +169,7 @@
168
169
  "readable-stream": "^3.6.0",
169
170
  "source-map-loader": "^4.0.1",
170
171
  "ts-jest": "^28.0.7",
172
+ "tsc-alias": "^1.8.10",
171
173
  "typeorm": "^0.3.15",
172
174
  "typeorm-extension": "^2.7.0",
173
175
  "typescript": "^4.7.4",
@@ -179,5 +181,5 @@
179
181
  "webpack-cli": "^4.9.2",
180
182
  "webpack-merge": "^5.8.0"
181
183
  },
182
- "gitHead": "6fb60f7638bb0d08ad7ba9ad2135669e86849ddb"
184
+ "gitHead": "e7f49924d7e3fb2fc5870cf1153ad23f09bc99cc"
183
185
  }
@@ -91,6 +91,7 @@ const validators = {
91
91
  LOGGER_MIN_SEVERITY: str({ default: 'info' }),
92
92
  NETWORK_INFO_PROVIDER: str(),
93
93
  NETWORK_INFO_PROVIDER_PARAMS: providerParams(),
94
+ NETWORK_SPEED: str({ choices: ['fast', 'slow'], default: 'fast' }),
94
95
  OGMIOS_URL: str(),
95
96
  REWARDS_PROVIDER: str(),
96
97
  REWARDS_PROVIDER_PARAMS: providerParams(),
@@ -158,5 +159,6 @@ export const walletVariables = [
158
159
  'TX_SUBMIT_PROVIDER_PARAMS',
159
160
  'UTXO_PROVIDER',
160
161
  'UTXO_PROVIDER_PARAMS',
161
- 'ADDRESS_DISCOVERY'
162
+ 'ADDRESS_DISCOVERY',
163
+ 'NETWORK_SPEED'
162
164
  ] as const;
package/src/factories.ts CHANGED
@@ -36,7 +36,8 @@ import {
36
36
  } from '@cardano-sdk/key-management';
37
37
  import { LedgerKeyAgent } from '@cardano-sdk/hardware-ledger';
38
38
  import { Logger } from 'ts-log';
39
- import { OgmiosTxSubmitProvider } from '@cardano-sdk/ogmios';
39
+ import { NodeTxSubmitProvider } from '@cardano-sdk/cardano-services';
40
+ import { OgmiosObservableCardanoNode } from '@cardano-sdk/ogmios';
40
41
  import { TrezorKeyAgent } from '@cardano-sdk/hardware-trezor';
41
42
  import {
42
43
  assetInfoHttpProvider,
@@ -48,11 +49,10 @@ import {
48
49
  txSubmitHttpProvider,
49
50
  utxoHttpProvider
50
51
  } from '@cardano-sdk/cardano-services-client';
51
- import { createConnectionObject } from '@cardano-ogmios/client';
52
52
  import { createStubStakePoolProvider } from '@cardano-sdk/util-dev';
53
- import { filter, firstValueFrom } from 'rxjs';
53
+ import { filter, firstValueFrom, of } from 'rxjs';
54
54
  import DeviceConnection from '@cardano-foundation/ledgerjs-hw-app-cardano';
55
- import memoize from 'lodash/memoize';
55
+ import memoize from 'lodash/memoize.js';
56
56
 
57
57
  const isNodeJs = typeof process !== 'undefined' && process.release?.name === 'node';
58
58
  // tsc doesn't like the 'import' of this package, works with webpack
@@ -137,7 +137,7 @@ rewardsProviderFactory.register(HTTP_PROVIDER, async (params: any, logger: Logge
137
137
  });
138
138
 
139
139
  txSubmitProviderFactory.register(OGMIOS_PROVIDER, async (params: any, logger: Logger): Promise<TxSubmitProvider> => {
140
- if (params.baseUrl === undefined) throw new Error(`${OgmiosTxSubmitProvider.name}: ${MISSING_URL_PARAM}`);
140
+ if (params.baseUrl === undefined) throw new Error(`${NodeTxSubmitProvider.name}: ${MISSING_URL_PARAM}`);
141
141
 
142
142
  const connectionConfig = {
143
143
  host: params.baseUrl.hostname,
@@ -146,7 +146,17 @@ txSubmitProviderFactory.register(OGMIOS_PROVIDER, async (params: any, logger: Lo
146
146
  };
147
147
 
148
148
  return new Promise<TxSubmitProvider>(async (resolve) => {
149
- resolve(new OgmiosTxSubmitProvider(createConnectionObject(connectionConfig), { logger }));
149
+ resolve(
150
+ new NodeTxSubmitProvider({
151
+ cardanoNode: new OgmiosObservableCardanoNode(
152
+ {
153
+ connectionConfig$: of(connectionConfig)
154
+ },
155
+ { logger }
156
+ ),
157
+ logger
158
+ })
159
+ );
150
160
  });
151
161
  });
152
162
 
@@ -321,7 +331,8 @@ const patchInitializeTxToRespectEpochBoundary = <T extends ObservableWallet>(
321
331
  * @returns an object containing the wallet and providers passed to it
322
332
  */
323
333
  export const getWallet = async (props: GetWalletProps) => {
324
- const { env, idx, logger, name, polling, stores, customKeyParams, keyAgent, witnesser } = props;
334
+ const { env, idx, logger, name, stores, customKeyParams, keyAgent, witnesser } = props;
335
+ let polling = props.polling;
325
336
  const providers = {
326
337
  addressDiscovery: await addressDiscoveryFactory.create(
327
338
  env.ADDRESS_DISCOVERY,
@@ -372,6 +383,10 @@ export const getWallet = async (props: GetWalletProps) => {
372
383
  logger
373
384
  }));
374
385
  const bip32Account = await Bip32Account.fromAsyncKeyAgent(asyncKeyAgent);
386
+ if (!polling?.interval && env.NETWORK_SPEED === 'fast') {
387
+ polling = { ...polling, interval: 50 };
388
+ }
389
+
375
390
  const wallet = createPersonalWallet(
376
391
  { name, polling },
377
392
  {