diff --git a/src/electrumx/lib/coins.py b/src/electrumx/lib/coins.py index 46702b2..1763ab5 100644 --- a/src/electrumx/lib/coins.py +++ b/src/electrumx/lib/coins.py @@ -3810,3 +3810,57 @@ class FerriteTestnet(Ferrite): 'enode2.ferritecoin.org s t', 'enode3.ferritecoin.org s t', ] + + +class Palladium(Bitcoin): + """Palladium (PLM), a Bitcoin Core 0.19-based chain. Standard 80-byte headers, sha256d PoW, segwit. + + Its daemon predates 'txospenderindex', 'getindexinfo' and 'submitpackage', so + 'blockchain.outpoint.subscribe' and 'blockchain.transaction.broadcast_package' will + return daemon errors to clients. The daemon needs 'txindex=1'. + """ + NAME = "Palladium" + SHORTNAME = "PLM" + NET = "mainnet" + P2PKH_VERBYTE = bytes.fromhex("37") + P2SH_VERBYTES = (bytes.fromhex("05"),) + # same genesis block as Bitcoin mainnet + GENESIS_HASH = ('000000000019d6689c085ae165831e93' + '4ff763ae46a2a6c172b3f1b60a8ce26f') + CRASH_CLIENT_VER = None + MIN_REQUIRED_DAEMON_VERSION = None + REQUIRED_DAEMON_INDEXES = tuple() + RPC_PORT = 2332 + # snapshot (UpdateTip tx= count), only used for sync ETAs + TX_COUNT = 661_421 + TX_COUNT_HEIGHT = 542_032 + TX_PER_BLOCK = 2 + PEERS = [] + + @classmethod + def warn_old_client_on_tx_broadcast(cls, client_ver): + return False + + +class PalladiumTestnet(Palladium): + SHORTNAME = "TPLM" + NET = "testnet" + P2PKH_VERBYTE = bytes.fromhex("7f") + P2SH_VERBYTES = (bytes.fromhex("73"),) + # same genesis block as Bitcoin testnet3 + GENESIS_HASH = ('000000000933ea01ad0ee984209779ba' + 'aec3ced90fa3f408719526f8d77f4943') + RPC_PORT = 12332 + REORG_LIMIT = 8000 + TX_COUNT = 1 + TX_COUNT_HEIGHT = 1 + TX_PER_BLOCK = 2 + PEER_DEFAULT_PORTS = {'t': '51001', 's': '51002'} + + +class PalladiumRegtest(PalladiumTestnet): + NET = "regtest" + # same genesis block as Bitcoin regtest + GENESIS_HASH = ('0f9188f13cb7b2c71f2a335e3a4fc328' + 'bf5beb436012afca590b1a11466e2206') + RPC_PORT = 28443 diff --git a/tests/blocks/palladium_mainnet_450000.json b/tests/blocks/palladium_mainnet_450000.json new file mode 100644 index 0000000..65a84c8 --- /dev/null +++ b/tests/blocks/palladium_mainnet_450000.json @@ -0,0 +1,23 @@ +{ + "hash": "000000000000041b393897d944c11636b28cb1c4933143c97cbfaf5227235fb7", + "strippedsize": 526, + "size": 672, + "weight": 2250, + "height": 450000, + "version": 1073733632, + "versionHex": "3fffe000", + "merkleroot": "c69abb430ad768666e2c3eb1bb2f040d2d0bb32fe85308f28e391a6b65467c54", + "tx": [ + "d2cdb9571a488ffd044d79b9a81d0fe1806351ebc19b0363ee15693272aeeb51", + "76a67a014d7a8b8e0c7829f7a2b5a584ab1907535dca7dd14f4d93497e00b01d" + ], + "time": 1781018177, + "mediantime": 1781017748, + "nonce": 2378580021, + "bits": "1a0541a4", + "difficulty": 3191715.29174069, + "chainwork": "0000000000000000000000000000000000000000000001a917d2c6d5c8f098fd", + "nTx": 2, + "previousblockhash": "000000000000136d6c577c9bf6ff84c478400c6e2bade53df1237ea7b794bed1", + "block": "00e0ff3fd1be94b7a77e23f13de5ad2b6e0c4078c484fff69b7c576c6d13000000000000547c46656b1a398ef20853e82fb30b2d0d042fbbb13e2c6e6668d70a43bb9ac6412e286aa441051a3540c68d02010000000001010000000000000000000000000000000000000000000000000000000000000000ffffffff3703d0dd0600044e2e286a04ad8ab9380caf3a236a3b4e0000000000000a636b706f6f6c132f6d696e6564206279206d636d61736c6f772fffffffff0208ed814a0000000017a9143e844aff35fbfad2e2793b178bae5b2341d176d0870000000000000000266a24aa21a9ed5dd4c3cb96de3d43a9ff83e6f04c44c140ce0ab27208fe4eeb7169f9c1e40a1601200000000000000000000000000000000000000000000000000000000000000000000000000200000000010220da83616fb8afe32228f19f7959845a38e307dd50ef19b4274712658a463f54010000006a47304402202a786624c7382f45f03dae704e7796ffe58deaac1a008fe267ef7807a8b43aeb02200dc6ce4491ff45eab364b3b6922a3f02109c7bdc8d680bf3310b41726c7b7f5b0121025c8d18f87300a667321eb1cfc5f111f37a411d02ae9da3717082d4a336549e22feffffff61bd5a74d2b508a40e0a4b15d4e9148360aadf86c68d03f13140ed077ff9d3410000000000feffffff020a600f0000000000160014f69f71b85e21037f8537e2460d2bcdb5a2878dd1807c814a00000000160014d8bb09f35e0636e3fa99cac7437f02decaa43d5a00024730440220262480556cd44bf002756bef59d43972b7447197931f96b1c45842cd500bf8cf02203d1338fe04a6b8cb4be3d0f6c2da3f7b748d79b7452b0ca5e8cbc7c92511a84b012102d2462a7b359c20e93413a3f6eee3caf4faec826a0910b41dfa9c2ee13f24531acfdd0600" +} diff --git a/tests/lib/test_addresses.py b/tests/lib/test_addresses.py index ea79299..f7eff5c 100644 --- a/tests/lib/test_addresses.py +++ b/tests/lib/test_addresses.py @@ -75,6 +75,15 @@ addresses = [ "8687b01c03f47615226bdf54443f172d8eb523c6", "318a000ccf626685c8c213"), (coins.GravityZeroCoin, "GJPaFtL7ffbFPQKbPoLn2PvgajQ48QGo67", "05fc7b8c8ba198dedb4d14223aeb709436373d6b", "bd8fa7f0c7b50b023ac0c6"), + # addresses and scripts from palladiumcore src/test/data/key_io_valid.json + (coins.Palladium, "PHrYiyUQTSekTWvVBNMEnSzV1DCB9TGR2P", + "65a16059864a2fdbc7c99a4723a8395bc6f188eb", "0fae27c959f6b69f711a9e"), + (coins.Palladium, "3CMNFxN1oHBc4R1EpboAL5yzHGgE611Xou", + "74f209f6ea907e2ea48f74fae05782ae8a665257", "0ec76b02c1f59dcc3d8b6c"), + (coins.PalladiumTestnet, "tEZSNGVUiXapct4zsnZcfz9CfqKhmUqguv", + "53c0307d6851aa0ce7825ba883c6bd9ad242b486", "bec4c9c9872501d067633d"), + (coins.PalladiumTestnet, "oRvMM9SjaZ8LpnNkN7R8MLj5ZtADdTxKan", + "6349a418fc4578d10a372b54b45c280cc8c4382f", "272f0d99c753fb3af434aa"), ] diff --git a/tests/lib/test_palladium.py b/tests/lib/test_palladium.py new file mode 100644 index 0000000..d2dd11b --- /dev/null +++ b/tests/lib/test_palladium.py @@ -0,0 +1,41 @@ +# Tests of the Palladium coin classes (parameters from palladiumcore src/chainparams.cpp) + +import pytest + +from electrumx.lib import tx as lib_tx +from electrumx.lib.coins import Coin, Palladium, PalladiumTestnet, PalladiumRegtest + +# (class, net, rpc port, P2PKH verbyte, P2SH verbyte, genesis hash) +PARAMS = [ + (Palladium, "mainnet", 2332, "37", "05", + "000000000019d6689c085ae165831e934ff763ae46a2a6c172b3f1b60a8ce26f"), + (PalladiumTestnet, "testnet", 12332, "7f", "73", + "000000000933ea01ad0ee984209779baaec3ced90fa3f408719526f8d77f4943"), + (PalladiumRegtest, "regtest", 28443, "7f", "73", + "0f9188f13cb7b2c71f2a335e3a4fc328bf5beb436012afca590b1a11466e2206"), +] + + +@pytest.mark.parametrize("coin,net,rpc_port,p2pkh,p2sh,genesis", PARAMS) +def test_chain_params(coin, net, rpc_port, p2pkh, p2sh, genesis): + assert coin.NAME == "Palladium" + assert coin.NET == net + assert coin.RPC_PORT == rpc_port + assert coin.P2PKH_VERBYTE == bytes.fromhex(p2pkh) + assert coin.P2SH_VERBYTES == (bytes.fromhex(p2sh),) + assert coin.GENESIS_HASH == genesis + assert coin.BASIC_HEADER_SIZE == 80 + assert coin.DESERIALIZER is lib_tx.DeserializerSegWit + + +@pytest.mark.parametrize("coin,net", [(c, n) for c, n, *_ in PARAMS]) +def test_lookup_coin_class(coin, net): + assert Coin.lookup_coin_class("Palladium", net) is coin + assert Coin.lookup_coin_class("palladium", net.upper()) is coin + + +def test_daemon_requirements_disabled(): + # Palladium Core (Bitcoin Core 0.19 based) has no getindexinfo/txospenderindex + for coin, *_ in PARAMS: + assert coin.MIN_REQUIRED_DAEMON_VERSION is None + assert not coin.REQUIRED_DAEMON_INDEXES diff --git a/tests/test_transactions.py b/tests/test_transactions.py index b57904d..d4c4618 100644 --- a/tests/test_transactions.py +++ b/tests/test_transactions.py @@ -101,6 +101,8 @@ def test_transaction_alts(transaction_details_altcoin): address = spk["addresses"][0] else: address = spk["address"] + if spk.get("type", "").startswith("witness_"): + continue # bech32 addresses are not supported by Coin.address_to_hashX assert coin.address_to_hashX(address) == coin.hashX_from_script(tx_pks) if issubclass(coin, Namecoin): if "nameOp" not in spk or "name" not in spk["nameOp"]: diff --git a/tests/transactions/palladium_mainnet_080f69.json b/tests/transactions/palladium_mainnet_080f69.json new file mode 100644 index 0000000..5a2e8f6 --- /dev/null +++ b/tests/transactions/palladium_mainnet_080f69.json @@ -0,0 +1,59 @@ +{ + "in_active_chain": true, + "txid": "080f69098eb021f74566a143a052d73531b8ba9636906d7e0c49910015937013", + "hash": "080f69098eb021f74566a143a052d73531b8ba9636906d7e0c49910015937013", + "version": 2, + "size": 369, + "vsize": 369, + "weight": 1476, + "locktime": 34934, + "vin": [ + { + "txid": "a2e95e9c34ddd665a1c50ff1eaf6bb5dfa96e7ac7174afcd4a4888a80f3bba4f", + "vout": 0, + "scriptSig": { + "asm": "30440220355ce4c4760181f3f8b9827b2877b909e9d9daf7099e9e03765898150e4cf9b802204134022429a919fe9691c20cc263aea37c8530864f416de40d15a7ad079536c8[ALL] 03cbf858505557e220d95de61340318d2f5a7aa4f84c277c91c5a26997a5a28338", + "hex": "4730440220355ce4c4760181f3f8b9827b2877b909e9d9daf7099e9e03765898150e4cf9b802204134022429a919fe9691c20cc263aea37c8530864f416de40d15a7ad079536c8012103cbf858505557e220d95de61340318d2f5a7aa4f84c277c91c5a26997a5a28338" + }, + "sequence": 4294967294 + }, + { + "txid": "07bf172de98295dc5613c267c02b34ee0bb17e34d3a3a65abe7786bbf936c2fb", + "vout": 0, + "scriptSig": { + "asm": "3044022029a82ac9cd16b24d63323859203a23d44c45d3c42e2b4446d384fd2c96425b84022048c610abf1351de7ee6738e8feffcada3f393b8272488f84ce3c5638c3f47c8d[ALL] 03cbf858505557e220d95de61340318d2f5a7aa4f84c277c91c5a26997a5a28338", + "hex": "473044022029a82ac9cd16b24d63323859203a23d44c45d3c42e2b4446d384fd2c96425b84022048c610abf1351de7ee6738e8feffcada3f393b8272488f84ce3c5638c3f47c8d012103cbf858505557e220d95de61340318d2f5a7aa4f84c277c91c5a26997a5a28338" + }, + "sequence": 4294967294 + } + ], + "vout": [ + { + "value": 5870217700, + "n": 0, + "scriptPubKey": { + "asm": "0 a3448843d8dae40213329925c490815c4a8d4b13", + "hex": "0014a3448843d8dae40213329925c490815c4a8d4b13", + "reqSigs": 1, + "type": "witness_v0_keyhash", + "addresses": [ + "plm1q5dzgss7cmtjqyyejnyjufyypt39g6jcn5pqryf" + ] + } + }, + { + "value": 4129778610, + "n": 1, + "scriptPubKey": { + "asm": "OP_DUP OP_HASH160 5b9929c6f34ba49a95bd313aa786970419f24e9a OP_EQUALVERIFY OP_CHECKSIG", + "hex": "76a9145b9929c6f34ba49a95bd313aa786970419f24e9a88ac", + "reqSigs": 1, + "type": "pubkeyhash", + "addresses": [ + "PGwW8PrVWEAQZSgCDZZm1njxhJXVv7vhdj" + ] + } + } + ], + "hex": "02000000024fba3b0fa888484acdaf7471ace796fa5dbbf6eaf10fc5a165d6dd349c5ee9a2000000006a4730440220355ce4c4760181f3f8b9827b2877b909e9d9daf7099e9e03765898150e4cf9b802204134022429a919fe9691c20cc263aea37c8530864f416de40d15a7ad079536c8012103cbf858505557e220d95de61340318d2f5a7aa4f84c277c91c5a26997a5a28338fefffffffbc236f9bb8677be5aa6a3d3347eb10bee342bc067c21356dc9582e92d17bf07000000006a473044022029a82ac9cd16b24d63323859203a23d44c45d3c42e2b4446d384fd2c96425b84022048c610abf1351de7ee6738e8feffcada3f393b8272488f84ce3c5638c3f47c8d012103cbf858505557e220d95de61340318d2f5a7aa4f84c277c91c5a26997a5a28338feffffff02e469e45d01000000160014a3448843d8dae40213329925c490815c4a8d4b13b26b27f6000000001976a9145b9929c6f34ba49a95bd313aa786970419f24e9a88ac76880000" +} diff --git a/tests/transactions/palladium_mainnet_5a5000.json b/tests/transactions/palladium_mainnet_5a5000.json new file mode 100644 index 0000000..1bfa8ac --- /dev/null +++ b/tests/transactions/palladium_mainnet_5a5000.json @@ -0,0 +1,89 @@ +{ + "in_active_chain": true, + "txid": "5a5000b7097e4d5356c085c5602ac46f73d11584b3a2b4dfba6d6a9bff1e032f", + "hash": "b1952b8beee939f99edf01bcb431ff7599b2e42846638515b083e4ed8dacfcca", + "version": 2, + "size": 552, + "vsize": 390, + "weight": 1557, + "locktime": 55199, + "vin": [ + { + "txid": "8ecf5bbfef25bdb5e0b4d3623782cbbbfba0df9edb4746847dd16dc92033ff53", + "vout": 2, + "scriptSig": { + "asm": "", + "hex": "" + }, + "txinwitness": [ + "3044022059073626fb19003e4f22d87d5b2cc791c348d8bfc5a92a67037fe286642efa790220570bcd5b891e617a610c9527c4c81d833ab72ba826a5ee4835afe297d4d73df001", + "02963c426a629c9af95dff8d8ba1291b9a42c9f49cd6cc0f1ab918b37ef99e3e18" + ], + "sequence": 4294967294 + }, + { + "txid": "22f9aa7c9de2ea6dcee5d58b48dcd4ce4d5b8009d8d1fb558aab7a92c88a7478", + "vout": 0, + "scriptSig": { + "asm": "", + "hex": "" + }, + "txinwitness": [ + "30440220785e9bdf9baa882831d72c3dc2c5b3de73c6df3f3e75612b2ddb0d7dd14195f90220235dc696a50dca3474b124c0ae701958a93587c5aefcafc17aeea0784e5b967401", + "0295336f3fdfecfa45e60780629a44eaf9fa45d909a0be70923f71b20e674e2047" + ], + "sequence": 4294967294 + }, + { + "txid": "e56a178401cafe76b54f1d895f6190d4c093c245b71ebd01a34cd82400774b13", + "vout": 1, + "scriptSig": { + "asm": "3044022068c6698b1edbd4500664d017547a0108247ddd9043bb0b95dd6e9a5e75aeb48202201808fdf5352bf36cc7f184589265f6dbfb7821e75db341bf4ae6705d6c552674[ALL] 0206c04b0f16f7b91261351ba6284af5aad1e4bc5ba6cdc87296b57acb52066ee8", + "hex": "473044022068c6698b1edbd4500664d017547a0108247ddd9043bb0b95dd6e9a5e75aeb48202201808fdf5352bf36cc7f184589265f6dbfb7821e75db341bf4ae6705d6c55267401210206c04b0f16f7b91261351ba6284af5aad1e4bc5ba6cdc87296b57acb52066ee8" + }, + "sequence": 4294967294 + } + ], + "vout": [ + { + "value": 4950000000, + "n": 0, + "scriptPubKey": { + "asm": "0 8e164c9e617b3feecb20e8a2549f77ea366c99ac", + "hex": "00148e164c9e617b3feecb20e8a2549f77ea366c99ac", + "reqSigs": 1, + "type": "witness_v0_keyhash", + "addresses": [ + "plm1q3ctye8np0vl7ajeqaz39f8mhagmxexdv3epzn5" + ] + } + }, + { + "value": 100000000, + "n": 1, + "scriptPubKey": { + "asm": "OP_DUP OP_HASH160 05d230d91166fa0e82b9142e66172846855e469a OP_EQUALVERIFY OP_CHECKSIG", + "hex": "76a91405d230d91166fa0e82b9142e66172846855e469a88ac", + "reqSigs": 1, + "type": "pubkeyhash", + "addresses": [ + "P97xLFDbNb5aDXHRW8UcXncKAQP9RhKVU1" + ] + } + }, + { + "value": 25696929, + "n": 2, + "scriptPubKey": { + "asm": "0 a4e3ca0a4ce809bf92b28cbb46f48706d45e1ab8", + "hex": "0014a4e3ca0a4ce809bf92b28cbb46f48706d45e1ab8", + "reqSigs": 1, + "type": "witness_v0_keyhash", + "addresses": [ + "plm1q5n3u5zjvaqymly4j3ja5day8qm29ux4cfhndny" + ] + } + } + ], + "hex": "0200000000010353ff3320c96dd17d844647db9edfa0fbbbcb823762d3b4e0b5bd25efbf5bcf8e0200000000feffffff78748ac8927aab8a55fbd1d809805b4dced4dc488bd5e5ce6deae29d7caaf9220000000000feffffff134b770024d84ca301bd1eb745c293c0d490615f891d4fb576feca0184176ae5010000006a473044022068c6698b1edbd4500664d017547a0108247ddd9043bb0b95dd6e9a5e75aeb48202201808fdf5352bf36cc7f184589265f6dbfb7821e75db341bf4ae6705d6c55267401210206c04b0f16f7b91261351ba6284af5aad1e4bc5ba6cdc87296b57acb52066ee8feffffff0380010b27010000001600148e164c9e617b3feecb20e8a2549f77ea366c99ac00e1f505000000001976a91405d230d91166fa0e82b9142e66172846855e469a88aca11a880100000000160014a4e3ca0a4ce809bf92b28cbb46f48706d45e1ab802473044022059073626fb19003e4f22d87d5b2cc791c348d8bfc5a92a67037fe286642efa790220570bcd5b891e617a610c9527c4c81d833ab72ba826a5ee4835afe297d4d73df0012102963c426a629c9af95dff8d8ba1291b9a42c9f49cd6cc0f1ab918b37ef99e3e18024730440220785e9bdf9baa882831d72c3dc2c5b3de73c6df3f3e75612b2ddb0d7dd14195f90220235dc696a50dca3474b124c0ae701958a93587c5aefcafc17aeea0784e5b967401210295336f3fdfecfa45e60780629a44eaf9fa45d909a0be70923f71b20e674e2047009fd70000" +} diff --git a/tests/transactions/palladium_mainnet_7cc30e.json b/tests/transactions/palladium_mainnet_7cc30e.json new file mode 100644 index 0000000..ba087b3 --- /dev/null +++ b/tests/transactions/palladium_mainnet_7cc30e.json @@ -0,0 +1,104 @@ +{ + "in_active_chain": true, + "txid": "7cc30e4e40d93d9cc685b5fdfbbb705629cbf64817ce7eff25980696bf8ddf02", + "hash": "7cc30e4e40d93d9cc685b5fdfbbb705629cbf64817ce7eff25980696bf8ddf02", + "version": 2, + "size": 1102, + "vsize": 1102, + "weight": 4408, + "locktime": 152598, + "vin": [ + { + "txid": "5e0d0d94516ea2efc8d401d3afa791a7364d62da7a6e30cb1f14d3d568d24897", + "vout": 1, + "scriptSig": { + "asm": "304402203b96f6352b253847cc0e8e29aff02ee476e41693c7d7ebd176524b9a9d1b86d802206b3a78c84c5d40e5e6634f7ad6e6a6fad182ed65b4ca25897d6e9392bfd05cd1[ALL] 034c8719707d8d19a8c685569ddb91f8ab30a5e7414736b74a9a4c8595b5c03647", + "hex": "47304402203b96f6352b253847cc0e8e29aff02ee476e41693c7d7ebd176524b9a9d1b86d802206b3a78c84c5d40e5e6634f7ad6e6a6fad182ed65b4ca25897d6e9392bfd05cd10121034c8719707d8d19a8c685569ddb91f8ab30a5e7414736b74a9a4c8595b5c03647" + }, + "sequence": 4294967294 + }, + { + "txid": "d3e6acf57a83eccc177b4c41e9e6a4dd07413a1bd3eea60cba6b369cc727208c", + "vout": 1, + "scriptSig": { + "asm": "30440220269aa14249876756c92d0cf13f756ca7740555ad39eae8eaf41ae421137dcb64022028f71b08037ad7a18a39a040bcfef056476fbd4b50834664e40adff366254814[ALL] 034c8719707d8d19a8c685569ddb91f8ab30a5e7414736b74a9a4c8595b5c03647", + "hex": "4730440220269aa14249876756c92d0cf13f756ca7740555ad39eae8eaf41ae421137dcb64022028f71b08037ad7a18a39a040bcfef056476fbd4b50834664e40adff3662548140121034c8719707d8d19a8c685569ddb91f8ab30a5e7414736b74a9a4c8595b5c03647" + }, + "sequence": 4294967294 + }, + { + "txid": "822bc024e20741691030cbc9b6b1feb3ddacf6b12badbd039b5bb18719e203e1", + "vout": 1, + "scriptSig": { + "asm": "304402202198070e1ae372ca43ec75b743fa6e8543bd17a379a481126c62648d543ae6b90220635c3109a3759b003bd45d6498ca5ae9be6b4682d6c03b28a212cae8fd550cbd[ALL] 034c8719707d8d19a8c685569ddb91f8ab30a5e7414736b74a9a4c8595b5c03647", + "hex": "47304402202198070e1ae372ca43ec75b743fa6e8543bd17a379a481126c62648d543ae6b90220635c3109a3759b003bd45d6498ca5ae9be6b4682d6c03b28a212cae8fd550cbd0121034c8719707d8d19a8c685569ddb91f8ab30a5e7414736b74a9a4c8595b5c03647" + }, + "sequence": 4294967294 + }, + { + "txid": "c2d2dc6c067efdaf0c043611e9f60c053816f7ef73ec17cd9cd0d97cd0c40e98", + "vout": 1, + "scriptSig": { + "asm": "3044022020d9caf68b95cf430fa23e13758c7f1898b79b82a28a765f642ab99f92d13fd6022051188686a8fe8205f5a72ca9f4f729486546dd8ad552f809fe7380596b04b900[ALL] 034c8719707d8d19a8c685569ddb91f8ab30a5e7414736b74a9a4c8595b5c03647", + "hex": "473044022020d9caf68b95cf430fa23e13758c7f1898b79b82a28a765f642ab99f92d13fd6022051188686a8fe8205f5a72ca9f4f729486546dd8ad552f809fe7380596b04b9000121034c8719707d8d19a8c685569ddb91f8ab30a5e7414736b74a9a4c8595b5c03647" + }, + "sequence": 4294967294 + }, + { + "txid": "e6f9f6e677929e6bc4b98bd19d198d836b7e4cf9ff12206e7ae77351dd1a7daa", + "vout": 1, + "scriptSig": { + "asm": "3044022002ab73811459e216f118d23820b18545a041ca1e64ce460ca0c741a2acfaa219022034864f76b425dedf66d2ef18f2cc7803010465a1cb11b7a9726a5c8ac46fe0e0[ALL] 034c8719707d8d19a8c685569ddb91f8ab30a5e7414736b74a9a4c8595b5c03647", + "hex": "473044022002ab73811459e216f118d23820b18545a041ca1e64ce460ca0c741a2acfaa219022034864f76b425dedf66d2ef18f2cc7803010465a1cb11b7a9726a5c8ac46fe0e00121034c8719707d8d19a8c685569ddb91f8ab30a5e7414736b74a9a4c8595b5c03647" + }, + "sequence": 4294967294 + }, + { + "txid": "5df801451164d3c771e5750b24ebb30d7743e216b997e3ded10241c307b64690", + "vout": 1, + "scriptSig": { + "asm": "304402202ab4ef1e0728451a10d881f19b72ae3c01302ce060da7f3eb90527433d7b6a3c022076122e66fe6dc9b0c164c934a394281960c9c54c356c0991ee1d35832c8fd001[ALL] 034c8719707d8d19a8c685569ddb91f8ab30a5e7414736b74a9a4c8595b5c03647", + "hex": "47304402202ab4ef1e0728451a10d881f19b72ae3c01302ce060da7f3eb90527433d7b6a3c022076122e66fe6dc9b0c164c934a394281960c9c54c356c0991ee1d35832c8fd0010121034c8719707d8d19a8c685569ddb91f8ab30a5e7414736b74a9a4c8595b5c03647" + }, + "sequence": 4294967294 + }, + { + "txid": "e92f1e6871f680d923f074f2495863463aca5ca2cf45cf19124f9fb78d466698", + "vout": 1, + "scriptSig": { + "asm": "304402201f00ccae526041911fad3b49bf26645cb383ff10c5cc0b528de928340b613a4a0220025d1fafdc2a4ff219025e502038e5fb3b73bda68877f714479190270ef1c18d[ALL] 034c8719707d8d19a8c685569ddb91f8ab30a5e7414736b74a9a4c8595b5c03647", + "hex": "47304402201f00ccae526041911fad3b49bf26645cb383ff10c5cc0b528de928340b613a4a0220025d1fafdc2a4ff219025e502038e5fb3b73bda68877f714479190270ef1c18d0121034c8719707d8d19a8c685569ddb91f8ab30a5e7414736b74a9a4c8595b5c03647" + }, + "sequence": 4294967294 + } + ], + "vout": [ + { + "value": 15000010000, + "n": 0, + "scriptPubKey": { + "asm": "OP_HASH160 b7906fdc62689077a0e7e7761c21b4be592b0ce3 OP_EQUAL", + "hex": "a914b7906fdc62689077a0e7e7761c21b4be592b0ce387", + "reqSigs": 1, + "type": "scripthash", + "addresses": [ + "3JRccJcFTY7vgvevzEVuCmSFDNS7NBvkcH" + ] + } + }, + { + "value": 20000000000, + "n": 1, + "scriptPubKey": { + "asm": "0 9840974b403ccf2b82d9c73dfe1b3c603b41d7a7", + "hex": "00149840974b403ccf2b82d9c73dfe1b3c603b41d7a7", + "reqSigs": 1, + "type": "witness_v0_keyhash", + "addresses": [ + "plm1qnpqfwj6q8n8jhqkecu7luxeuvqa5r4a8mqlprs" + ] + } + } + ], + "hex": "02000000079748d268d5d3141fcb306e7ada624d36a791a7afd301d4c8efa26e51940d0d5e010000006a47304402203b96f6352b253847cc0e8e29aff02ee476e41693c7d7ebd176524b9a9d1b86d802206b3a78c84c5d40e5e6634f7ad6e6a6fad182ed65b4ca25897d6e9392bfd05cd10121034c8719707d8d19a8c685569ddb91f8ab30a5e7414736b74a9a4c8595b5c03647feffffff8c2027c79c366bba0ca6eed31b3a4107dda4e6e9414c7b17ccec837af5ace6d3010000006a4730440220269aa14249876756c92d0cf13f756ca7740555ad39eae8eaf41ae421137dcb64022028f71b08037ad7a18a39a040bcfef056476fbd4b50834664e40adff3662548140121034c8719707d8d19a8c685569ddb91f8ab30a5e7414736b74a9a4c8595b5c03647feffffffe103e21987b15b9b03bdad2bb1f6acddb3feb1b6c9cb3010694107e224c02b82010000006a47304402202198070e1ae372ca43ec75b743fa6e8543bd17a379a481126c62648d543ae6b90220635c3109a3759b003bd45d6498ca5ae9be6b4682d6c03b28a212cae8fd550cbd0121034c8719707d8d19a8c685569ddb91f8ab30a5e7414736b74a9a4c8595b5c03647feffffff980ec4d07cd9d09ccd17ec73eff71638050cf6e91136040caffd7e066cdcd2c2010000006a473044022020d9caf68b95cf430fa23e13758c7f1898b79b82a28a765f642ab99f92d13fd6022051188686a8fe8205f5a72ca9f4f729486546dd8ad552f809fe7380596b04b9000121034c8719707d8d19a8c685569ddb91f8ab30a5e7414736b74a9a4c8595b5c03647feffffffaa7d1add5173e77a6e2012fff94c7e6b838d199dd18bb9c46b9e9277e6f6f9e6010000006a473044022002ab73811459e216f118d23820b18545a041ca1e64ce460ca0c741a2acfaa219022034864f76b425dedf66d2ef18f2cc7803010465a1cb11b7a9726a5c8ac46fe0e00121034c8719707d8d19a8c685569ddb91f8ab30a5e7414736b74a9a4c8595b5c03647feffffff9046b607c34102d1dee397b916e243770db3eb240b75e571c7d364114501f85d010000006a47304402202ab4ef1e0728451a10d881f19b72ae3c01302ce060da7f3eb90527433d7b6a3c022076122e66fe6dc9b0c164c934a394281960c9c54c356c0991ee1d35832c8fd0010121034c8719707d8d19a8c685569ddb91f8ab30a5e7414736b74a9a4c8595b5c03647feffffff9866468db79f4f1219cf45cfa25cca3a46635849f274f023d980f671681e2fe9010000006a47304402201f00ccae526041911fad3b49bf26645cb383ff10c5cc0b528de928340b613a4a0220025d1fafdc2a4ff219025e502038e5fb3b73bda68877f714479190270ef1c18d0121034c8719707d8d19a8c685569ddb91f8ab30a5e7414736b74a9a4c8595b5c03647feffffff0210fd117e0300000017a914b7906fdc62689077a0e7e7761c21b4be592b0ce38700c817a8040000001600149840974b403ccf2b82d9c73dfe1b3c603b41d7a716540200" +} diff --git a/tests/transactions/palladium_mainnet_ff979d.json b/tests/transactions/palladium_mainnet_ff979d.json new file mode 100644 index 0000000..c66ceb8 --- /dev/null +++ b/tests/transactions/palladium_mainnet_ff979d.json @@ -0,0 +1,67 @@ +{ + "in_active_chain": true, + "txid": "ff979d27a50cef2d3ab3b7b9c3e9a197d90b082e661786c599d52735a574d992", + "hash": "57a74788a1e234744638908100a0bfc0f6cc454f549aaa5bab289472085686ec", + "version": 2, + "size": 394, + "vsize": 232, + "weight": 928, + "locktime": 340399, + "vin": [ + { + "txid": "b2906dccdcb75f3b82a2647ec15899a43647645068db8f1ebc62bfeebdd712c4", + "vout": 1, + "scriptSig": { + "asm": "", + "hex": "" + }, + "txinwitness": [ + "30440220118e216522db6be050cd124666237e1ee1a2dc6aaf5ae83a121cee8be39ad29b022057ddef7cc7a4030e7aa38d4a5f2a60613a69ec56691a7295aabcaf149498409801", + "029f260826db88a97f621bfd795ac50a1c62f90369e00baec5ea95bfa38b7c9c29" + ], + "sequence": 4294967294 + }, + { + "txid": "44301af6524787f3736b3481ab4ee008bc12c7eb12ed1a2cb89291f73f3ec7e6", + "vout": 0, + "scriptSig": { + "asm": "001439a8c943cdd9ec6a85efbfbc2310fad38b871ba2", + "hex": "16001439a8c943cdd9ec6a85efbfbc2310fad38b871ba2" + }, + "txinwitness": [ + "304402206f90223aba2120fc9c3a111bea84f18f102fc524aed3dde3915fc6032eab471102207f23647c78c98530cd05ffda954cad70ac74e872663efa860028f75f98a49f0901", + "03231bbc7bb28380fecfd811eb9d9c6913d33d23e3a1161a61224b09557fa7a4e8" + ], + "sequence": 4294967294 + } + ], + "vout": [ + { + "value": 2146120, + "n": 0, + "scriptPubKey": { + "asm": "0 914315cbdffd547aace20f67bf193cbe901b8581", + "hex": "0014914315cbdffd547aace20f67bf193cbe901b8581", + "reqSigs": 1, + "type": "witness_v0_keyhash", + "addresses": [ + "plm1qj9p3tj7ll4284t8zpanm7xfuh6gphpvpexqydh" + ] + } + }, + { + "value": 2374960000, + "n": 1, + "scriptPubKey": { + "asm": "OP_HASH160 7b4c55ea8d558c26c282533cb3d76ff0d5c250a4 OP_EQUAL", + "hex": "a9147b4c55ea8d558c26c282533cb3d76ff0d5c250a487", + "reqSigs": 1, + "type": "scripthash", + "addresses": [ + "3CvxV2hSBVV1ebrbog6HnF69fWQf6r9EGw" + ] + } + } + ], + "hex": "02000000000102c412d7bdeebf62bc1e8fdb6850644736a49958c17e64a2823b5fb7dccc6d90b20100000000feffffffe6c73e3ff79192b82c1aed12ebc712bc08e04eab81346b73f3874752f61a3044000000001716001439a8c943cdd9ec6a85efbfbc2310fad38b871ba2feffffff0248bf200000000000160014914315cbdffd547aace20f67bf193cbe901b858180038f8d0000000017a9147b4c55ea8d558c26c282533cb3d76ff0d5c250a487024730440220118e216522db6be050cd124666237e1ee1a2dc6aaf5ae83a121cee8be39ad29b022057ddef7cc7a4030e7aa38d4a5f2a60613a69ec56691a7295aabcaf14949840980121029f260826db88a97f621bfd795ac50a1c62f90369e00baec5ea95bfa38b7c9c290247304402206f90223aba2120fc9c3a111bea84f18f102fc524aed3dde3915fc6032eab471102207f23647c78c98530cd05ffda954cad70ac74e872663efa860028f75f98a49f09012103231bbc7bb28380fecfd811eb9d9c6913d33d23e3a1161a61224b09557fa7a4e8af310500" +}