bitcoin/test/functional/test_framework
Sebastian Falbesoner 1a572ce7d6 test: refactor: introduce generate_keypair helper with WIF support
In functional tests it is a quite common scenario to generate fresh
elliptic curve keypairs, which is currently a bit cumbersome as it
involves multiple steps, e.g.:

    privkey = ECKey()
    privkey.generate()
    privkey_wif = bytes_to_wif(privkey.get_bytes())
    pubkey = privkey.get_pubkey().get_bytes()

Simplify this by providing a new `generate_keypair` helper function that
returns the private key either as `ECKey` object or as WIF-string
(depending on the boolean `wif` parameter) and the public key as
byte-string; these formats are what we mostly need (currently we don't
use `ECPubKey` objects from generated keypairs anywhere).

With this, most of the affected code blocks following the pattern above
can be replaced by one-liners, e.g.:

    privkey, pubkey = generate_keypair(wif=True)

Note that after this commit, the only direct uses of `ECKey` remain in
situations where we want to set the private key explicitly, e.g. in
MiniWallet (test/functional/test_framework/wallet.py) or the test for
the signet miner script (test/functional/tool_signet_miner.py).
2023-06-19 17:38:14 +02:00
..
__init__.py Rename rpc-tests directory to functional 2017-03-20 10:40:31 -04:00
address.py refactor: move address_to_scriptpubkey to address.py 2023-03-28 16:54:28 +01:00
authproxy.py test: Remove windows workaround in authproxy 2023-04-04 13:23:53 +02:00
bdb.py scripted-diff: Bump copyright headers 2021-11-10 11:10:24 +01:00
bip340_test_vectors.csv tests: add BIP340 Schnorr signature support to test framework 2020-10-12 17:18:47 -07:00
blockfilter.py test: add compact block filter (BIP158) helper routines 2022-10-20 01:33:17 +02:00
blocktools.py refactor: use address_to_scriptpubkey to retrieve addresses scriptpubkey 2023-03-28 16:58:16 +01:00
coverage.py scripted-diff: Bump copyright headers 2021-11-10 11:10:24 +01:00
descriptors.py Output a descriptor in createmultisig and addmultisigaddress 2020-01-30 23:55:36 -05:00
key.py test: remove modinv python util helper function 2023-04-28 14:19:18 +02:00
messages.py test: simplify uint256 (de)serialization routines 2023-04-23 02:47:20 +02:00
muhash.py test: remove modinv python util helper function 2023-04-28 14:19:18 +02:00
netutil.py scripted-diff: Bump copyright headers 2022-12-24 23:49:50 +00:00
p2p.py test: Use self.wait_until over wait_until_helper 2023-03-08 11:31:56 +01:00
psbt.py test: PSBT: eliminate magic numbers for global unsigned tx key (0) 2023-03-04 12:43:38 +01:00
ripemd160.py Add pure Python RIPEMD-160 2021-12-08 14:29:34 -05:00
script.py Merge bitcoin/bitcoin#26631: test: add coverage for dust mempool policy (-dustrelayfee setting) 2023-01-16 11:36:13 +01:00
script_util.py scripted-diff: Bump copyright headers 2022-12-24 23:49:50 +00:00
segwit_addr.py Use Bech32m encoding for v1+ segwit addresses 2021-03-16 10:48:36 -07:00
siphash.py script, test: fix python linter E275 errors with flake8 5.0.4 2023-01-03 10:59:56 -08:00
socks5.py scripted-diff: Update copyright in ./test 2019-03-02 10:58:35 -05:00
test_framework.py test: Treat bitcoin-wallet binary in the same way as others 2023-05-05 13:35:30 +01:00
test_node.py test: clean up is node stopped 2023-06-15 14:14:22 +02:00
test_shell.py scripted-diff: Bump copyright headers 2022-12-24 23:49:50 +00:00
util.py Merge bitcoin/bitcoin#27302: init: Error if ignored bitcoin.conf file is found 2023-05-26 13:33:42 +01:00
wallet.py test: refactor: introduce generate_keypair helper with WIF support 2023-06-19 17:38:14 +02:00
wallet_util.py test: refactor: introduce generate_keypair helper with WIF support 2023-06-19 17:38:14 +02:00