mirror of
https://github.com/trezor/trezor-firmware.git
synced 2024-12-27 08:38:07 +00:00
core: fix unit tests for Bitcoin only firmware
This commit is contained in:
parent
908bbfffef
commit
32edf7b6b9
@ -5,3 +5,5 @@ sys.path.append('../src')
|
||||
from ubinascii import hexlify, unhexlify # noqa: F401
|
||||
|
||||
import unittest # noqa: F401
|
||||
|
||||
from trezor import utils # noqa: F401
|
||||
|
@ -1,10 +1,13 @@
|
||||
from common import *
|
||||
from apps.common.paths import HARDENED
|
||||
from apps.binance.helpers import address_from_public_key, validate_full_path
|
||||
|
||||
from trezor.crypto.curve import secp256k1
|
||||
from ubinascii import unhexlify
|
||||
|
||||
if not utils.BITCOIN_ONLY:
|
||||
from apps.binance.helpers import address_from_public_key, validate_full_path
|
||||
|
||||
|
||||
@unittest.skipUnless(not utils.BITCOIN_ONLY, "altcoin")
|
||||
class TestBinanceAddress(unittest.TestCase):
|
||||
def test_privkey_to_address(self):
|
||||
#source of test data - binance javascript SDK
|
||||
|
@ -1,19 +1,21 @@
|
||||
from common import *
|
||||
|
||||
from apps.binance.helpers import produce_json_for_signing
|
||||
from apps.binance.sign_tx import generate_content_signature, sign_tx
|
||||
|
||||
from trezor.crypto.curve import secp256k1
|
||||
from trezor.crypto.hashlib import sha256
|
||||
from trezor.messages.BinanceCancelMsg import BinanceCancelMsg
|
||||
from trezor.messages.BinanceCoin import BinanceCoin
|
||||
from trezor.messages.BinanceInputOutput import BinanceInputOutput
|
||||
from trezor.messages.BinanceOrderMsg import BinanceOrderMsg
|
||||
from trezor.messages.BinanceSignTx import BinanceSignTx
|
||||
from trezor.messages.BinanceTransferMsg import BinanceTransferMsg
|
||||
|
||||
if not utils.BITCOIN_ONLY:
|
||||
from apps.binance.helpers import produce_json_for_signing
|
||||
from apps.binance.sign_tx import generate_content_signature, sign_tx
|
||||
from trezor.messages.BinanceCancelMsg import BinanceCancelMsg
|
||||
from trezor.messages.BinanceCoin import BinanceCoin
|
||||
from trezor.messages.BinanceInputOutput import BinanceInputOutput
|
||||
from trezor.messages.BinanceOrderMsg import BinanceOrderMsg
|
||||
from trezor.messages.BinanceSignTx import BinanceSignTx
|
||||
from trezor.messages.BinanceTransferMsg import BinanceTransferMsg
|
||||
|
||||
|
||||
class TestBinanceSign(unittest.TestCase):
|
||||
@unittest.skipUnless(not utils.BITCOIN_ONLY, "altcoin")
|
||||
class TestBinanceSign(unittest.TestCase):
|
||||
def test_order_signature(self):
|
||||
# source of testing data
|
||||
# https://github.com/binance-chain/javascript-sdk/blob/master/__tests__/fixtures/placeOrder.json
|
||||
|
@ -2,16 +2,18 @@ from common import *
|
||||
from apps.common import seed
|
||||
|
||||
from apps.common import HARDENED
|
||||
from apps.cardano.address import (
|
||||
_get_address_root,
|
||||
_address_hash,
|
||||
validate_full_path,
|
||||
derive_address_and_node
|
||||
)
|
||||
from apps.cardano.seed import Keychain
|
||||
from trezor.crypto import bip32, slip39
|
||||
if not utils.BITCOIN_ONLY:
|
||||
from apps.cardano.address import (
|
||||
_get_address_root,
|
||||
_address_hash,
|
||||
validate_full_path,
|
||||
derive_address_and_node
|
||||
)
|
||||
from apps.cardano.seed import Keychain
|
||||
|
||||
|
||||
@unittest.skipUnless(not utils.BITCOIN_ONLY, "altcoin")
|
||||
class TestCardanoAddress(unittest.TestCase):
|
||||
def test_hardened_address_derivation_scheme(self):
|
||||
mnemonic = "all all all all all all all all all all all all"
|
||||
|
@ -3,9 +3,9 @@ from common import *
|
||||
from apps.cardano.seed import Keychain
|
||||
from apps.cardano.get_public_key import _get_public_key
|
||||
from trezor.crypto import bip32, slip39
|
||||
from ubinascii import hexlify
|
||||
|
||||
|
||||
@unittest.skipUnless(not utils.BITCOIN_ONLY, "altcoin")
|
||||
class TestCardanoGetPublicKey(unittest.TestCase):
|
||||
def test_get_public_key_scheme(self):
|
||||
mnemonic = "all all all all all all all all all all all all"
|
||||
|
@ -6,7 +6,6 @@ from apps.common.cbor import (
|
||||
decode,
|
||||
encode,
|
||||
)
|
||||
from ubinascii import unhexlify
|
||||
|
||||
class TestCardanoCbor(unittest.TestCase):
|
||||
def test_cbor_encoding(self):
|
||||
|
@ -5,9 +5,20 @@ from apps.common import coins
|
||||
|
||||
class TestCoins(unittest.TestCase):
|
||||
|
||||
def test_coins(self):
|
||||
def test_bitcoin(self):
|
||||
ref = [
|
||||
('BTC', 'Bitcoin', 0),
|
||||
('TEST', 'Testnet', 111),
|
||||
('REGTEST', 'Regtest', 111),
|
||||
]
|
||||
for s, n, a in ref:
|
||||
c = coins.by_name(n)
|
||||
self.assertEqual(c.address_type, a)
|
||||
self.assertEqual(c.coin_shortcut, s)
|
||||
|
||||
@unittest.skipUnless(not utils.BITCOIN_ONLY, "altcoin")
|
||||
def test_altcoins(self):
|
||||
ref = [
|
||||
('NMC', 'Namecoin', 52),
|
||||
('LTC', 'Litecoin', 48),
|
||||
('DASH', 'Dash', 76),
|
||||
|
@ -1,22 +1,24 @@
|
||||
from common import *
|
||||
|
||||
from apps.eos.actions import check_action
|
||||
from trezor.messages.EosTxActionAck import EosTxActionAck
|
||||
from trezor.messages.EosActionBuyRam import EosActionBuyRam
|
||||
from trezor.messages.EosActionBuyRamBytes import EosActionBuyRamBytes
|
||||
from trezor.messages.EosActionDelegate import EosActionDelegate
|
||||
from trezor.messages.EosActionDeleteAuth import EosActionDeleteAuth
|
||||
from trezor.messages.EosActionLinkAuth import EosActionLinkAuth
|
||||
from trezor.messages.EosActionNewAccount import EosActionNewAccount
|
||||
from trezor.messages.EosActionRefund import EosActionRefund
|
||||
from trezor.messages.EosActionSellRam import EosActionSellRam
|
||||
from trezor.messages.EosActionTransfer import EosActionTransfer
|
||||
from trezor.messages.EosActionUndelegate import EosActionUndelegate
|
||||
from trezor.messages.EosActionUnlinkAuth import EosActionUnlinkAuth
|
||||
from trezor.messages.EosActionUpdateAuth import EosActionUpdateAuth
|
||||
from trezor.messages.EosActionVoteProducer import EosActionVoteProducer
|
||||
if not utils.BITCOIN_ONLY:
|
||||
from apps.eos.actions import check_action
|
||||
from trezor.messages.EosTxActionAck import EosTxActionAck
|
||||
from trezor.messages.EosActionBuyRam import EosActionBuyRam
|
||||
from trezor.messages.EosActionBuyRamBytes import EosActionBuyRamBytes
|
||||
from trezor.messages.EosActionDelegate import EosActionDelegate
|
||||
from trezor.messages.EosActionDeleteAuth import EosActionDeleteAuth
|
||||
from trezor.messages.EosActionLinkAuth import EosActionLinkAuth
|
||||
from trezor.messages.EosActionNewAccount import EosActionNewAccount
|
||||
from trezor.messages.EosActionRefund import EosActionRefund
|
||||
from trezor.messages.EosActionSellRam import EosActionSellRam
|
||||
from trezor.messages.EosActionTransfer import EosActionTransfer
|
||||
from trezor.messages.EosActionUndelegate import EosActionUndelegate
|
||||
from trezor.messages.EosActionUnlinkAuth import EosActionUnlinkAuth
|
||||
from trezor.messages.EosActionUpdateAuth import EosActionUpdateAuth
|
||||
from trezor.messages.EosActionVoteProducer import EosActionVoteProducer
|
||||
|
||||
|
||||
@unittest.skipUnless(not utils.BITCOIN_ONLY, "altcoin")
|
||||
class TestEosActions(unittest.TestCase):
|
||||
def test_check_action(self):
|
||||
# return True
|
||||
|
@ -1,8 +1,11 @@
|
||||
from common import *
|
||||
|
||||
from apps.eos import helpers
|
||||
from trezor.messages.EosAsset import EosAsset
|
||||
if not utils.BITCOIN_ONLY:
|
||||
from apps.eos import helpers
|
||||
from trezor.messages.EosAsset import EosAsset
|
||||
|
||||
|
||||
@unittest.skipUnless(not utils.BITCOIN_ONLY, "altcoin")
|
||||
class TestEosConversions(unittest.TestCase):
|
||||
def test_eos_name_to_string(self):
|
||||
names_in = [
|
||||
|
@ -1,12 +1,14 @@
|
||||
from common import *
|
||||
|
||||
from apps.eos.get_public_key import _get_public_key, _public_key_to_wif
|
||||
from trezor.crypto import bip32, bip39
|
||||
from ubinascii import hexlify, unhexlify
|
||||
from apps.common.paths import HARDENED
|
||||
from apps.eos.helpers import validate_full_path
|
||||
|
||||
if not utils.BITCOIN_ONLY:
|
||||
from apps.eos.get_public_key import _get_public_key, _public_key_to_wif
|
||||
from apps.eos.helpers import validate_full_path
|
||||
|
||||
|
||||
@unittest.skipUnless(not utils.BITCOIN_ONLY, "altcoin")
|
||||
class TestEosGetPublicKey(unittest.TestCase):
|
||||
def test_get_public_key_scheme(self):
|
||||
mnemonic = "abandon abandon abandon abandon abandon abandon abandon abandon abandon abandon abandon about"
|
||||
|
@ -1,9 +1,12 @@
|
||||
from common import *
|
||||
from apps.common.paths import HARDENED
|
||||
from apps.ethereum.address import address_from_bytes, bytes_from_address, validate_full_path
|
||||
from apps.ethereum.networks import NetworkInfo, by_chain_id
|
||||
|
||||
if not utils.BITCOIN_ONLY:
|
||||
from apps.ethereum.address import address_from_bytes, bytes_from_address, validate_full_path
|
||||
from apps.ethereum.networks import NetworkInfo, by_chain_id
|
||||
|
||||
|
||||
@unittest.skipUnless(not utils.BITCOIN_ONLY, "altcoin")
|
||||
class TestEthereumGetAddress(unittest.TestCase):
|
||||
|
||||
def test_address_from_bytes_eip55(self):
|
||||
|
@ -1,8 +1,11 @@
|
||||
from common import *
|
||||
from apps.ethereum.layout import format_ethereum_amount
|
||||
from apps.ethereum.tokens import token_by_chain_address
|
||||
|
||||
if not utils.BITCOIN_ONLY:
|
||||
from apps.ethereum.layout import format_ethereum_amount
|
||||
from apps.ethereum.tokens import token_by_chain_address
|
||||
|
||||
|
||||
@unittest.skipUnless(not utils.BITCOIN_ONLY, "altcoin")
|
||||
class TestEthereumLayout(unittest.TestCase):
|
||||
|
||||
def test_format(self):
|
||||
|
@ -1,7 +1,10 @@
|
||||
from common import *
|
||||
from apps.ethereum import tokens
|
||||
|
||||
if not utils.BITCOIN_ONLY:
|
||||
from apps.ethereum import tokens
|
||||
|
||||
|
||||
@unittest.skipUnless(not utils.BITCOIN_ONLY, "altcoin")
|
||||
class TestEthereumTokens(unittest.TestCase):
|
||||
|
||||
def test_token_by_chain_address(self):
|
||||
|
@ -1,8 +1,11 @@
|
||||
from common import *
|
||||
from apps.common.paths import HARDENED
|
||||
from apps.lisk.helpers import validate_full_path
|
||||
|
||||
if not utils.BITCOIN_ONLY:
|
||||
from apps.lisk.helpers import validate_full_path
|
||||
|
||||
|
||||
@unittest.skipUnless(not utils.BITCOIN_ONLY, "altcoin")
|
||||
class TestLiskGetAddress(unittest.TestCase):
|
||||
|
||||
def test_paths(self):
|
||||
|
@ -1,8 +1,11 @@
|
||||
from common import *
|
||||
from apps.common.paths import HARDENED
|
||||
from apps.monero.misc import validate_full_path
|
||||
|
||||
if not utils.BITCOIN_ONLY:
|
||||
from apps.monero.misc import validate_full_path
|
||||
|
||||
|
||||
@unittest.skipUnless(not utils.BITCOIN_ONLY, "altcoin")
|
||||
class TestMoneroGetAddress(unittest.TestCase):
|
||||
|
||||
def test_paths(self):
|
||||
|
@ -1,10 +1,13 @@
|
||||
from common import *
|
||||
|
||||
from apps.monero.xmr import bulletproof as bp, crypto, monero
|
||||
from apps.monero.xmr.serialize_messages.tx_rsig_bulletproof import Bulletproof
|
||||
if not utils.BITCOIN_ONLY:
|
||||
from apps.monero.xmr import bulletproof as bp, crypto, monero
|
||||
from apps.monero.xmr.serialize_messages.tx_rsig_bulletproof import Bulletproof
|
||||
|
||||
|
||||
@unittest.skipUnless(not utils.BITCOIN_ONLY, "altcoin")
|
||||
class TestMoneroBulletproof(unittest.TestCase):
|
||||
|
||||
def test_1(self):
|
||||
pass
|
||||
|
||||
|
@ -1,12 +1,15 @@
|
||||
from common import *
|
||||
|
||||
from apps.monero.xmr import crypto, monero
|
||||
from apps.monero.xmr.addresses import encode_addr
|
||||
from apps.monero.xmr.credentials import AccountCreds
|
||||
from apps.monero.xmr.networks import NetworkTypes, net_version
|
||||
if not utils.BITCOIN_ONLY:
|
||||
from apps.monero.xmr import crypto, monero
|
||||
from apps.monero.xmr.addresses import encode_addr
|
||||
from apps.monero.xmr.credentials import AccountCreds
|
||||
from apps.monero.xmr.networks import NetworkTypes, net_version
|
||||
|
||||
|
||||
@unittest.skipUnless(not utils.BITCOIN_ONLY, "altcoin")
|
||||
class TestMoneroCrypto(unittest.TestCase):
|
||||
|
||||
def test_encoding(self):
|
||||
point = unhexlify(
|
||||
b"2486224797d05cae3cba4be043be2db0df381f3f19cfa113f86ab38e3d8d2bd0"
|
||||
|
@ -2,72 +2,75 @@ import utest
|
||||
from common import *
|
||||
from trezor import log, loop, utils
|
||||
|
||||
from apps.monero.xmr.serialize.int_serialize import (
|
||||
dump_uint,
|
||||
dump_uvarint,
|
||||
load_uint,
|
||||
load_uvarint,
|
||||
)
|
||||
from apps.monero.xmr.serialize.readwriter import MemoryReaderWriter
|
||||
from apps.monero.xmr.serialize_messages.base import ECPoint
|
||||
from apps.monero.xmr.serialize_messages.tx_prefix import (
|
||||
TxinGen,
|
||||
TxinToKey,
|
||||
TxInV,
|
||||
TxOut,
|
||||
TxoutToKey,
|
||||
)
|
||||
if not utils.BITCOIN_ONLY:
|
||||
from apps.monero.xmr.serialize.int_serialize import (
|
||||
dump_uint,
|
||||
dump_uvarint,
|
||||
load_uint,
|
||||
load_uvarint,
|
||||
)
|
||||
from apps.monero.xmr.serialize.readwriter import MemoryReaderWriter
|
||||
from apps.monero.xmr.serialize_messages.base import ECPoint
|
||||
from apps.monero.xmr.serialize_messages.tx_prefix import (
|
||||
TxinGen,
|
||||
TxinToKey,
|
||||
TxInV,
|
||||
TxOut,
|
||||
TxoutToKey,
|
||||
)
|
||||
|
||||
|
||||
class XmrTstData(object):
|
||||
"""Simple tests data generator"""
|
||||
if not utils.BITCOIN_ONLY:
|
||||
class XmrTstData(object):
|
||||
"""Simple tests data generator"""
|
||||
|
||||
def __init__(self, *args, **kwargs):
|
||||
super(XmrTstData, self).__init__()
|
||||
self.ec_offset = 0
|
||||
def __init__(self, *args, **kwargs):
|
||||
super(XmrTstData, self).__init__()
|
||||
self.ec_offset = 0
|
||||
|
||||
def reset(self):
|
||||
self.ec_offset = 0
|
||||
def reset(self):
|
||||
self.ec_offset = 0
|
||||
|
||||
def generate_ec_key(self, use_offset=True):
|
||||
"""
|
||||
Returns test EC key, 32 element byte array
|
||||
:param use_offset:
|
||||
:return:
|
||||
"""
|
||||
offset = 0
|
||||
if use_offset:
|
||||
offset = self.ec_offset
|
||||
self.ec_offset += 1
|
||||
def generate_ec_key(self, use_offset=True):
|
||||
"""
|
||||
Returns test EC key, 32 element byte array
|
||||
:param use_offset:
|
||||
:return:
|
||||
"""
|
||||
offset = 0
|
||||
if use_offset:
|
||||
offset = self.ec_offset
|
||||
self.ec_offset += 1
|
||||
|
||||
return bytearray(range(offset, offset + 32))
|
||||
return bytearray(range(offset, offset + 32))
|
||||
|
||||
def gen_transaction_prefix(self):
|
||||
"""
|
||||
Returns test transaction prefix
|
||||
:return:
|
||||
"""
|
||||
vin = [
|
||||
TxinToKey(
|
||||
amount=123, key_offsets=[1, 2, 3, 2 ** 76], k_image=bytearray(range(32))
|
||||
),
|
||||
TxinToKey(
|
||||
amount=456, key_offsets=[9, 8, 7, 6], k_image=bytearray(range(32, 64))
|
||||
),
|
||||
TxinGen(height=99),
|
||||
]
|
||||
def gen_transaction_prefix(self):
|
||||
"""
|
||||
Returns test transaction prefix
|
||||
:return:
|
||||
"""
|
||||
vin = [
|
||||
TxinToKey(
|
||||
amount=123, key_offsets=[1, 2, 3, 2 ** 76], k_image=bytearray(range(32))
|
||||
),
|
||||
TxinToKey(
|
||||
amount=456, key_offsets=[9, 8, 7, 6], k_image=bytearray(range(32, 64))
|
||||
),
|
||||
TxinGen(height=99),
|
||||
]
|
||||
|
||||
vout = [
|
||||
TxOut(amount=11, target=TxoutToKey(key=bytearray(range(32)))),
|
||||
TxOut(amount=34, target=TxoutToKey(key=bytearray(range(64, 96)))),
|
||||
]
|
||||
vout = [
|
||||
TxOut(amount=11, target=TxoutToKey(key=bytearray(range(32)))),
|
||||
TxOut(amount=34, target=TxoutToKey(key=bytearray(range(64, 96)))),
|
||||
]
|
||||
|
||||
msg = TransactionPrefix(
|
||||
version=2, unlock_time=10, vin=vin, vout=vout, extra=list(range(31))
|
||||
)
|
||||
return msg
|
||||
msg = TransactionPrefix(
|
||||
version=2, unlock_time=10, vin=vin, vout=vout, extra=list(range(31))
|
||||
)
|
||||
return msg
|
||||
|
||||
|
||||
@unittest.skipUnless(not utils.BITCOIN_ONLY, "altcoin")
|
||||
class TestMoneroSerializer(unittest.TestCase):
|
||||
def __init__(self, *args, **kwargs):
|
||||
super(TestMoneroSerializer, self).__init__(*args, **kwargs)
|
||||
|
@ -1,10 +1,12 @@
|
||||
from common import *
|
||||
from ubinascii import unhexlify
|
||||
from trezor.crypto import nem
|
||||
from apps.common import HARDENED
|
||||
from apps.nem.helpers import check_path, NEM_NETWORK_MAINNET, NEM_NETWORK_TESTNET
|
||||
|
||||
if not utils.BITCOIN_ONLY:
|
||||
from trezor.crypto import nem
|
||||
from apps.nem.helpers import check_path, NEM_NETWORK_MAINNET, NEM_NETWORK_TESTNET
|
||||
|
||||
|
||||
@unittest.skipUnless(not utils.BITCOIN_ONLY, "altcoin")
|
||||
class TestNemAddress(unittest.TestCase):
|
||||
|
||||
def test_addresses(self):
|
||||
|
@ -1,10 +1,12 @@
|
||||
from common import *
|
||||
from ubinascii import unhexlify
|
||||
from trezor.crypto import bip32
|
||||
from apps.nem import CURVE
|
||||
from apps.nem.helpers import NEM_NETWORK_MAINNET
|
||||
|
||||
if not utils.BITCOIN_ONLY:
|
||||
from apps.nem import CURVE
|
||||
from apps.nem.helpers import NEM_NETWORK_MAINNET
|
||||
|
||||
|
||||
@unittest.skipUnless(not utils.BITCOIN_ONLY, "altcoin")
|
||||
class TestNemHDNode(unittest.TestCase):
|
||||
|
||||
def test_addresses(self):
|
||||
|
@ -1,10 +1,13 @@
|
||||
from common import *
|
||||
from trezor.messages.NEMMosaic import NEMMosaic
|
||||
from apps.nem.mosaic.helpers import get_mosaic_definition
|
||||
from apps.nem.transfer import *
|
||||
from apps.nem.transfer.serialize import *
|
||||
|
||||
if not utils.BITCOIN_ONLY:
|
||||
from trezor.messages.NEMMosaic import NEMMosaic
|
||||
from apps.nem.mosaic.helpers import get_mosaic_definition
|
||||
from apps.nem.transfer import *
|
||||
from apps.nem.transfer.serialize import *
|
||||
|
||||
|
||||
@unittest.skipUnless(not utils.BITCOIN_ONLY, "altcoin")
|
||||
class TestNemMosaic(unittest.TestCase):
|
||||
|
||||
def test_get_mosaic_definition(self):
|
||||
|
@ -1,15 +1,17 @@
|
||||
from common import *
|
||||
|
||||
from apps.nem.helpers import *
|
||||
from apps.nem.mosaic import *
|
||||
from apps.nem.mosaic.serialize import *
|
||||
|
||||
from trezor.crypto import hashlib
|
||||
from trezor.messages.NEMSignTx import NEMSignTx
|
||||
from trezor.messages.NEMMosaicCreation import NEMMosaicCreation
|
||||
from trezor.messages.NEMMosaicDefinition import NEMMosaicDefinition
|
||||
|
||||
if not utils.BITCOIN_ONLY:
|
||||
from trezor.messages.NEMSignTx import NEMSignTx
|
||||
from trezor.messages.NEMMosaicCreation import NEMMosaicCreation
|
||||
from trezor.messages.NEMMosaicDefinition import NEMMosaicDefinition
|
||||
from apps.nem.helpers import *
|
||||
from apps.nem.mosaic import *
|
||||
from apps.nem.mosaic.serialize import *
|
||||
|
||||
|
||||
@unittest.skipUnless(not utils.BITCOIN_ONLY, "altcoin")
|
||||
class TestNemMosaicCreation(unittest.TestCase):
|
||||
|
||||
def test_nem_transaction_mosaic_creation(self):
|
||||
|
@ -1,14 +1,16 @@
|
||||
from common import *
|
||||
|
||||
from apps.nem.helpers import *
|
||||
from apps.nem.mosaic import *
|
||||
from apps.nem.mosaic.serialize import *
|
||||
|
||||
from trezor.crypto import hashlib
|
||||
from trezor.messages.NEMSignTx import NEMSignTx
|
||||
from trezor.messages.NEMMosaicSupplyChange import NEMMosaicSupplyChange
|
||||
|
||||
if not utils.BITCOIN_ONLY:
|
||||
from apps.nem.helpers import *
|
||||
from apps.nem.mosaic import *
|
||||
from apps.nem.mosaic.serialize import *
|
||||
from trezor.messages.NEMSignTx import NEMSignTx
|
||||
from trezor.messages.NEMMosaicSupplyChange import NEMMosaicSupplyChange
|
||||
|
||||
|
||||
@unittest.skipUnless(not utils.BITCOIN_ONLY, "altcoin")
|
||||
class TestNemMosaicSupplyChange(unittest.TestCase):
|
||||
|
||||
def test_nem_transaction_create_mosaic_supply_change(self):
|
||||
|
@ -1,15 +1,17 @@
|
||||
from common import *
|
||||
from trezor.crypto import hashlib
|
||||
from trezor.messages.NEMAggregateModification import NEMAggregateModification
|
||||
from trezor.messages.NEMCosignatoryModification import NEMCosignatoryModification
|
||||
from trezor.messages.NEMSignTx import NEMSignTx
|
||||
from trezor.messages.NEMTransactionCommon import NEMTransactionCommon
|
||||
|
||||
from apps.nem.helpers import *
|
||||
from apps.nem.multisig import *
|
||||
from apps.nem.multisig.serialize import *
|
||||
if not utils.BITCOIN_ONLY:
|
||||
from trezor.messages.NEMAggregateModification import NEMAggregateModification
|
||||
from trezor.messages.NEMCosignatoryModification import NEMCosignatoryModification
|
||||
from trezor.messages.NEMSignTx import NEMSignTx
|
||||
from trezor.messages.NEMTransactionCommon import NEMTransactionCommon
|
||||
from apps.nem.helpers import *
|
||||
from apps.nem.multisig import *
|
||||
from apps.nem.multisig.serialize import *
|
||||
|
||||
|
||||
@unittest.skipUnless(not utils.BITCOIN_ONLY, "altcoin")
|
||||
class TestNemMultisigAggregateModification(unittest.TestCase):
|
||||
def test_nem_transaction_aggregate_modification(self):
|
||||
# http://bob.nem.ninja:8765/#/aggregate/6a55471b17159e5b6cd579c421e95a4e39d92e3f78b0a55ee337e785a601d3a2
|
||||
|
@ -1,17 +1,18 @@
|
||||
from common import *
|
||||
|
||||
from apps.nem.helpers import *
|
||||
from apps.nem.multisig import *
|
||||
from apps.nem.multisig.serialize import *
|
||||
from apps.nem.namespace import *
|
||||
from apps.nem.namespace.serialize import *
|
||||
|
||||
from trezor.messages.NEMSignTx import NEMSignTx
|
||||
from trezor.messages.NEMAggregateModification import NEMAggregateModification
|
||||
from trezor.messages.NEMProvisionNamespace import NEMProvisionNamespace
|
||||
from trezor.messages.NEMCosignatoryModification import NEMCosignatoryModification
|
||||
if not utils.BITCOIN_ONLY:
|
||||
from apps.nem.helpers import *
|
||||
from apps.nem.multisig import *
|
||||
from apps.nem.multisig.serialize import *
|
||||
from apps.nem.namespace import *
|
||||
from apps.nem.namespace.serialize import *
|
||||
from trezor.messages.NEMSignTx import NEMSignTx
|
||||
from trezor.messages.NEMAggregateModification import NEMAggregateModification
|
||||
from trezor.messages.NEMProvisionNamespace import NEMProvisionNamespace
|
||||
from trezor.messages.NEMCosignatoryModification import NEMCosignatoryModification
|
||||
|
||||
|
||||
@unittest.skipUnless(not utils.BITCOIN_ONLY, "altcoin")
|
||||
class TestNemMultisig(unittest.TestCase):
|
||||
|
||||
def test_nem_multisig(self):
|
||||
|
@ -1,14 +1,16 @@
|
||||
from common import *
|
||||
|
||||
from apps.nem.helpers import *
|
||||
from apps.nem.namespace import *
|
||||
from apps.nem.namespace.serialize import *
|
||||
|
||||
from trezor.crypto import hashlib
|
||||
from trezor.messages.NEMProvisionNamespace import NEMProvisionNamespace
|
||||
from trezor.messages.NEMSignTx import NEMSignTx
|
||||
|
||||
if not utils.BITCOIN_ONLY:
|
||||
from apps.nem.helpers import *
|
||||
from apps.nem.namespace import *
|
||||
from apps.nem.namespace.serialize import *
|
||||
from trezor.messages.NEMProvisionNamespace import NEMProvisionNamespace
|
||||
from trezor.messages.NEMSignTx import NEMSignTx
|
||||
|
||||
|
||||
@unittest.skipUnless(not utils.BITCOIN_ONLY, "altcoin")
|
||||
class TestNemNamespace(unittest.TestCase):
|
||||
|
||||
def test_create_provision_namespace(self):
|
||||
|
@ -1,15 +1,17 @@
|
||||
from common import *
|
||||
|
||||
from apps.nem.helpers import *
|
||||
from apps.nem.mosaic import *
|
||||
from apps.nem.transfer import *
|
||||
from apps.nem.transfer.serialize import *
|
||||
|
||||
from trezor.crypto import hashlib
|
||||
from trezor.messages.NEMTransfer import NEMTransfer
|
||||
from trezor.messages.NEMSignTx import NEMSignTx
|
||||
|
||||
if not utils.BITCOIN_ONLY:
|
||||
from apps.nem.helpers import *
|
||||
from apps.nem.mosaic import *
|
||||
from apps.nem.transfer import *
|
||||
from apps.nem.transfer.serialize import *
|
||||
from trezor.messages.NEMTransfer import NEMTransfer
|
||||
from trezor.messages.NEMSignTx import NEMSignTx
|
||||
|
||||
|
||||
@unittest.skipUnless(not utils.BITCOIN_ONLY, "altcoin")
|
||||
class TestNemTransfer(unittest.TestCase):
|
||||
|
||||
def test_create_transfer(self):
|
||||
|
@ -1,8 +1,11 @@
|
||||
from common import *
|
||||
from apps.common.paths import HARDENED
|
||||
from apps.ripple.helpers import address_from_public_key, validate_full_path
|
||||
|
||||
if not utils.BITCOIN_ONLY:
|
||||
from apps.ripple.helpers import address_from_public_key, validate_full_path
|
||||
|
||||
|
||||
@unittest.skipUnless(not utils.BITCOIN_ONLY, "altcoin")
|
||||
class TestRippleAddress(unittest.TestCase):
|
||||
|
||||
def test_pubkey_to_address(self):
|
||||
|
@ -1,11 +1,13 @@
|
||||
from common import *
|
||||
from trezor.messages.RipplePayment import RipplePayment
|
||||
from trezor.messages.RippleSignTx import RippleSignTx
|
||||
|
||||
from apps.ripple.serialize import serialize, serialize_amount
|
||||
from apps.ripple.sign_tx import get_network_prefix
|
||||
if not utils.BITCOIN_ONLY:
|
||||
from trezor.messages.RipplePayment import RipplePayment
|
||||
from trezor.messages.RippleSignTx import RippleSignTx
|
||||
from apps.ripple.serialize import serialize, serialize_amount
|
||||
from apps.ripple.sign_tx import get_network_prefix
|
||||
|
||||
|
||||
@unittest.skipUnless(not utils.BITCOIN_ONLY, "altcoin")
|
||||
class TestRippleSerializer(unittest.TestCase):
|
||||
def test_amount(self):
|
||||
# https://github.com/ripple/ripple-binary-codec/blob/4581f1b41e712f545ba08be15e188a557c731ecf/test/fixtures/data-driven-tests.json#L2494
|
||||
|
@ -1,9 +1,12 @@
|
||||
from common import *
|
||||
from apps.common.paths import HARDENED
|
||||
from apps.stellar.helpers import address_from_public_key, public_key_from_address, validate_full_path
|
||||
from trezor.wire import ProcessError
|
||||
|
||||
if not utils.BITCOIN_ONLY:
|
||||
from apps.stellar.helpers import address_from_public_key, public_key_from_address, validate_full_path
|
||||
|
||||
|
||||
@unittest.skipUnless(not utils.BITCOIN_ONLY, "altcoin")
|
||||
class TestStellarAddress(unittest.TestCase):
|
||||
|
||||
def test_address_to_pubkey(self):
|
||||
|
@ -1,14 +1,15 @@
|
||||
from ubinascii import unhexlify
|
||||
|
||||
from common import *
|
||||
from trezor.messages import TezosContractType
|
||||
from trezor.messages.TezosContractID import TezosContractID
|
||||
|
||||
from apps.tezos.sign_tx import _get_address_from_contract
|
||||
from apps.tezos.helpers import validate_full_path
|
||||
from apps.common.paths import HARDENED
|
||||
|
||||
if not utils.BITCOIN_ONLY:
|
||||
from apps.tezos.sign_tx import _get_address_from_contract
|
||||
from apps.tezos.helpers import validate_full_path
|
||||
from trezor.messages import TezosContractType
|
||||
from trezor.messages.TezosContractID import TezosContractID
|
||||
|
||||
|
||||
@unittest.skipUnless(not utils.BITCOIN_ONLY, "altcoin")
|
||||
class TestTezosAddress(unittest.TestCase):
|
||||
def test_get_address_from_contract(self):
|
||||
contracts = [
|
||||
|
@ -1,17 +1,17 @@
|
||||
from ubinascii import unhexlify
|
||||
|
||||
from common import *
|
||||
from trezor.messages import TezosContractType
|
||||
from trezor.messages.TezosContractID import TezosContractID
|
||||
|
||||
from apps.tezos.helpers import base58_decode_check, base58_encode_check, write_bool
|
||||
from apps.tezos.sign_tx import (
|
||||
_encode_contract_id,
|
||||
_encode_data_with_bool_prefix,
|
||||
_encode_zarith,
|
||||
)
|
||||
if not utils.BITCOIN_ONLY:
|
||||
from trezor.messages import TezosContractType
|
||||
from trezor.messages.TezosContractID import TezosContractID
|
||||
from apps.tezos.helpers import base58_decode_check, base58_encode_check, write_bool
|
||||
from apps.tezos.sign_tx import (
|
||||
_encode_contract_id,
|
||||
_encode_data_with_bool_prefix,
|
||||
_encode_zarith,
|
||||
)
|
||||
|
||||
|
||||
@unittest.skipUnless(not utils.BITCOIN_ONLY, "altcoin")
|
||||
class TestTezosEncoding(unittest.TestCase):
|
||||
def test_tezos_encode_zarith(self):
|
||||
inputs = [2000000, 159066, 200, 60000, 157000000, 0]
|
||||
|
@ -169,6 +169,7 @@ class TestAddress(unittest.TestCase):
|
||||
self.assertFalse(validate_full_path([44 | HARDENED, 0 | HARDENED, 0 | HARDENED, 0, 0], coin, InputScriptType.SPENDWITNESS))
|
||||
self.assertTrue(validate_full_path([44 | HARDENED, 0 | HARDENED, 0 | HARDENED, 0, 0], coin, InputScriptType.SPENDWITNESS, validate_script_type=False))
|
||||
|
||||
@unittest.skipUnless(not utils.BITCOIN_ONLY, "altcoin")
|
||||
def test_paths_bch(self):
|
||||
incorrect_derivation_paths = [
|
||||
([44 | HARDENED], InputScriptType.SPENDADDRESS), # invalid length
|
||||
@ -201,6 +202,7 @@ class TestAddress(unittest.TestCase):
|
||||
for path, input_type in correct_derivation_paths:
|
||||
self.assertTrue(validate_full_path(path, coin, input_type))
|
||||
|
||||
@unittest.skipUnless(not utils.BITCOIN_ONLY, "altcoin")
|
||||
def test_paths_other(self):
|
||||
incorrect_derivation_paths = [
|
||||
([44 | HARDENED, 3 | HARDENED, 0 | HARDENED, 0, 0], InputScriptType.SPENDMULTISIG), # input type mismatch
|
||||
@ -244,6 +246,8 @@ class TestAddress(unittest.TestCase):
|
||||
for path in incorrect_derivation_paths:
|
||||
self.assertFalse(validate_path_for_bitcoin_public_key(path, coin))
|
||||
|
||||
@unittest.skipUnless(not utils.BITCOIN_ONLY, "altcoin")
|
||||
def test_paths_public_key_nosegwit(self):
|
||||
incorrect_derivation_paths = [
|
||||
[49 | HARDENED, 3 | HARDENED, 0 | HARDENED, 0, 0], # no segwit
|
||||
]
|
||||
|
@ -12,6 +12,7 @@ def node_derive(root, path):
|
||||
return node
|
||||
|
||||
|
||||
@unittest.skipUnless(not utils.BITCOIN_ONLY, "altcoin")
|
||||
class TestAddressGRS(unittest.TestCase):
|
||||
# pylint: disable=C0301
|
||||
|
||||
|
@ -19,6 +19,7 @@ from apps.common.seed import Keychain
|
||||
from apps.wallet.sign_tx import helpers, signing
|
||||
|
||||
# https://groestlsight-test.groestlcoin.org/api/tx/9b5c4859a8a31e69788cb4402812bb28f14ad71cbd8c60b09903478bc56f79a3
|
||||
@unittest.skipUnless(not utils.BITCOIN_ONLY, "altcoin")
|
||||
class TestSignSegwitTxNativeP2WPKH_GRS(unittest.TestCase):
|
||||
# pylint: disable=C0301
|
||||
|
||||
|
@ -19,6 +19,7 @@ from apps.common.seed import Keychain
|
||||
from apps.wallet.sign_tx import helpers, signing
|
||||
|
||||
# https://groestlsight-test.groestlcoin.org/api/tx/4ce0220004bdfe14e3dd49fd8636bcb770a400c0c9e9bff670b6a13bb8f15c72
|
||||
@unittest.skipUnless(not utils.BITCOIN_ONLY, "altcoin")
|
||||
class TestSignSegwitTxP2WPKHInP2SH_GRS(unittest.TestCase):
|
||||
# pylint: disable=C0301
|
||||
|
||||
|
@ -19,6 +19,7 @@ from apps.common.seed import Keychain
|
||||
from apps.wallet.sign_tx import helpers, signing
|
||||
|
||||
|
||||
@unittest.skipUnless(not utils.BITCOIN_ONLY, "altcoin")
|
||||
class TestSignTx_GRS(unittest.TestCase):
|
||||
# pylint: disable=C0301
|
||||
|
||||
|
@ -5,10 +5,13 @@ from trezor.messages.TxInputType import TxInputType
|
||||
from trezor.messages.TxOutputBinType import TxOutputBinType
|
||||
|
||||
from apps.common import coins
|
||||
from apps.wallet.sign_tx.zcash import Zip143
|
||||
|
||||
if not utils.BITCOIN_ONLY:
|
||||
from apps.wallet.sign_tx.zcash import Zip143
|
||||
|
||||
|
||||
# test vectors inspired from https://github.com/zcash-hackworks/zcash-test-vectors/blob/master/zip_0143.py
|
||||
@unittest.skipUnless(not utils.BITCOIN_ONLY, "altcoin")
|
||||
class TestZcashZip143(unittest.TestCase):
|
||||
|
||||
VECTORS = [
|
||||
|
@ -5,10 +5,13 @@ from trezor.messages.TxInputType import TxInputType
|
||||
from trezor.messages.TxOutputBinType import TxOutputBinType
|
||||
|
||||
from apps.common import coins
|
||||
from apps.wallet.sign_tx.zcash import Zip243
|
||||
|
||||
if not utils.BITCOIN_ONLY:
|
||||
from apps.wallet.sign_tx.zcash import Zip243
|
||||
|
||||
|
||||
# test vectors inspired from https://github.com/zcash-hackworks/zcash-test-vectors/blob/master/zip_0243.py
|
||||
@unittest.skipUnless(not utils.BITCOIN_ONLY, "altcoin")
|
||||
class TestZcashZip243(unittest.TestCase):
|
||||
|
||||
VECTORS = [
|
||||
|
@ -1,7 +1,11 @@
|
||||
from common import *
|
||||
|
||||
from trezor.crypto import random
|
||||
from trezor.crypto.curve import secp256k1, secp256k1_zkp
|
||||
from trezor.crypto.curve import secp256k1
|
||||
|
||||
if not utils.BITCOIN_ONLY:
|
||||
from trezor.crypto.curve import secp256k1_zkp
|
||||
|
||||
|
||||
class Secp256k1Common(object):
|
||||
impl = None
|
||||
@ -137,6 +141,7 @@ class TestCryptoSecp256k1(Secp256k1Common, unittest.TestCase):
|
||||
def __init__(self):
|
||||
self.impl = secp256k1
|
||||
|
||||
@unittest.skipUnless(not utils.BITCOIN_ONLY, "altcoin")
|
||||
class TestCryptoSecp256k1Zkp(Secp256k1Common, unittest.TestCase):
|
||||
def __init__(self):
|
||||
self.impl = secp256k1_zkp.Context()
|
||||
|
Loading…
Reference in New Issue
Block a user