Example #1
0
    def initialize(self):
        cwd = os.getcwd()
        p = configargparse.getArgumentParser(
            default_config_files=[os.path.join(cwd, 'conf.ini')])

        self.add_arguments(p)
        args, _ = p.parse_known_args()

        # overwrite with enum
        args.chain = Chain.parse_from_chain(args.chain)

        # ensure it's a supported chain
        if args.chain.blockchain_type != BlockchainType.bitcoin and \
                args.chain.blockchain_type != BlockchainType.ethereum and \
                args.chain.blockchain_type != BlockchainType.mock:
            raise UnknownChainError(args.chain.name)

        logging.info('This run will try to issue on the %s chain',
                     args.chain.name)

        if args.chain.blockchain_type == BlockchainType.bitcoin:
            bitcoin_chain_for_python_bitcoinlib = args.chain
            if args.chain == Chain.bitcoin_regtest:
                bitcoin_chain_for_python_bitcoinlib = Chain.bitcoin_regtest
            bitcoin.SelectParams(
                chain_to_bitcoin_network(bitcoin_chain_for_python_bitcoinlib))

        self.config = args
        return self
Example #2
0
def to_pycoin_chain(chain):
    if chain == Chain.bitcoin_regtest or chain == Chain.bitcoin_testnet:
        return 'XTN'
    elif chain == Chain.bitcoin_mainnet:
        return 'BTC'
    else:
        raise UnknownChainError(chain.name)
Example #3
0
def get_config():
    configure_logger()  #configure_logger 함수 호출
    p = configargparse.getArgumentParser(default_config_files=[
        os.path.join(PATH, 'conf.ini'), '/etc/cert-issuer/conf.ini'
    ])
    add_arguments(p)
    parsed_config, _ = p.parse_known_args()

    if not parsed_config.safe_mode:
        logging.warning(
            'Your app is configured to skip the wifi check when the USB is plugged in. Read the '
            'documentation to ensure this is what you want, since this is less secure'
        )

    # overwrite with enum
    parsed_config.chain = Chain.parse_from_chain(parsed_config.chain)

    # ensure it's a supported chain
    if parsed_config.chain.blockchain_type != BlockchainType.bitcoin and \
                    parsed_config.chain.blockchain_type != BlockchainType.ethereum and \
                    parsed_config.chain.blockchain_type != BlockchainType.mock:
        raise UnknownChainError(parsed_config.chain.name)

    logging.info('This run will try to issue on the %s chain',
                 parsed_config.chain.name)

    if parsed_config.chain.blockchain_type == BlockchainType.bitcoin:
        bitcoin_chain_for_python_bitcoinlib = parsed_config.chain
        if parsed_config.chain == Chain.bitcoin_regtest:
            bitcoin_chain_for_python_bitcoinlib = Chain.bitcoin_regtest
        bitcoin.SelectParams(
            chain_to_bitcoin_network(bitcoin_chain_for_python_bitcoinlib))

    return parsed_config
def get_config(base_config):
    # configure_logger()
    # p = configargparse.getArgumentParser(default_config_files=[os.path.join(PATH, 'conf.ini'),
    #                                                            'D:\PythonCode\cert-issuer\conf_me.ini'])
    # add_arguments(p)
    # parsed_config, _ = p.parse_known_args()
    # print("parsed_config", parsed_config)
    if not base_config["safe_mode"]:
        logging.warning(
            'Your app is configured to skip the wifi check when the USB is plugged in. Read the '
            'documentation to ensure this is what you want, since this is less secure'
        )

    # overwrite with enum
    base_config["chain"] = Chain.parse_from_chain(base_config["chain"])

    # ensure it's a supported chain
    if base_config["chain"].blockchain_type != BlockchainType.bitcoin and \
                    base_config["chain"].blockchain_type != BlockchainType.ethereum and \
                    base_config["chain"].blockchain_type != BlockchainType.mock:
        raise UnknownChainError(base_config["chain"].name)

    logging.info('This run will try to issue on the %s chain',
                 base_config["chain"].name)

    if base_config["chain"].blockchain_type == BlockchainType.bitcoin:
        bitcoin_chain_for_python_bitcoinlib = base_config["chain"]
        if base_config["chain"] == Chain.bitcoin_regtest:
            bitcoin_chain_for_python_bitcoinlib = Chain.bitcoin_regtest
        bitcoin.SelectParams(
            chain_to_bitcoin_network(bitcoin_chain_for_python_bitcoinlib))

    global CONFIG
    CONFIG = base_config
    return base_config
Example #5
0
def get_tx_lookup_prefix_for_chain(chain):
    if chain == Chain.testnet:
        return 'https://tbtc.blockr.io/tx/info/'
    elif chain == Chain.mainnet:
        return 'https://blockchain.info/tx/'
    else:
        raise UnknownChainError(
            'unsupported chain (%s) requested with blockcypher collector. Currently only testnet and mainnet are supported'
            % chain)
Example #6
0
def get_tx_lookup_chain(chain, txid):
    if chain == Chain.bitcoin_testnet:
        return 'https://live.blockcypher.com/btc-testnet/tx/' + txid
    elif chain == Chain.bitcoin_mainnet:
        return 'https://blockchain.info/tx/' + txid
    elif chain == Chain.bitcoin_regtest or chain == Chain.mockchain:
        return 'This has not been issued on a blockchain and is for testing only'
    else:
        raise UnknownChainError(
            'unsupported chain (%s) requested with blockcypher collector. Currently only testnet and mainnet are supported' % chain)
Example #7
0
def initialize_signer(app_config):
    path_to_secret = os.path.join(app_config.usb_name, app_config.key_file)

    if app_config.chain.blockchain_type == BlockchainType.ethereum:
        signer = EthereumSigner(ethereum_chain=app_config.chain)
    elif app_config.chain == Chain.mockchain:
        signer = None
    else:
        raise UnknownChainError(app_config.chain)
    secret_manager = FileSecretManager(signer=signer, path_to_secret=path_to_secret,
                                       safe_mode=app_config.safe_mode, issuing_address=app_config.issuing_address)
    return secret_manager
Example #8
0
def initialize_signer(app_config):
    path_to_secret = os.path.join(app_config.usb_name,
                                  app_config.private_key_file)

    if app_config.chain.blockchain_type == BlockchainType.bitcoin:
        signer = BitcoinSigner(bitcoin_chain=app_config.chain)
    elif app_config.chain == Chain.mockchain:
        signer = None
    else:
        raise UnknownChainError(app_config.chain)
    secret_manager = FileSecretManager(signer=signer,
                                       path_to_secret=path_to_secret,
                                       safe_mode=app_config.safe_mode,
                                       issuing_address=app_config.public_key)
    return secret_manager
Example #9
0
def initialize_signer(app_config):
    # path_to_secret = os.path.join(app_config["usb_name"], app_config["private_key"])

    if app_config["chain"].blockchain_type == BlockchainType.bitcoin:
        signer = BitcoinSigner(bitcoin_chain=app_config["chain"])
    elif app_config["chain"] == Chain.mockchain:
        signer = None
    else:
        raise UnknownChainError(app_config["chain"])
    secret_manager = FileSecretManager(
        signer=signer,
        secret_key=app_config["secret_key"],
        safe_mode=app_config["safe_mode"],
        issuing_address=app_config["issuing_address"])
    return secret_manager
Example #10
0
def get_config(path=None):
    if not path:
        config_file_path = os.path.join(PATH, 'conf.ini')
    else:
        config_file_path = path
    configargparse.initArgumentParser(name='issue_conf',
                                      default_config_files=[config_file_path])
    p = configargparse.get_argument_parser('issue_conf')

    add_arguments(p)
    parsed_config, _ = p.parse_known_args()

    if not parsed_config.safe_mode:
        logging.warning(
            'Your app is configured to skip the wifi check when the USB is plugged in. Read the '
            'documentation to ensure this is what you want, since this is less secure'
        )

    # overwrite with enum
    parsed_config.chain = Chain.parse_from_chain(parsed_config.chain)

    # Set the fee to the recommended value (only enabled if the current chain is mainnet)
    if parsed_config.chain.blockchain_type == BlockchainType.bitcoin:
        parsed_config.tx_fee = 0
        parsed_config.satoshi_per_byte = requests.get(
            'https://bitcoinfees.earn.com/api/v1/fees/recommended').json(
            )['fastestFee']
        # final fee = max(tx_fee, satoshi_per_byte * size)

    # ensure it's a supported chain
    if parsed_config.chain.blockchain_type != BlockchainType.bitcoin and \
                    parsed_config.chain.blockchain_type != BlockchainType.ethereum and \
                    parsed_config.chain.blockchain_type != BlockchainType.mock:
        raise UnknownChainError(parsed_config.chain.name)

    logging.info('This run will try to issue on the %s chain',
                 parsed_config.chain.name)

    if parsed_config.chain.blockchain_type == BlockchainType.bitcoin:
        bitcoin_chain_for_python_bitcoinlib = parsed_config.chain
        if parsed_config.chain == Chain.bitcoin_regtest:
            bitcoin_chain_for_python_bitcoinlib = Chain.bitcoin_regtest
        bitcoin.SelectParams(
            chain_to_bitcoin_network(bitcoin_chain_for_python_bitcoinlib))

    return parsed_config
Example #11
0
def tx_to_blink(chain, tx_id):
    blink = 'blink:'
    if chain == Chain.bitcoin_regtest:
        blink += 'btc:regtest:'
    elif chain == Chain.bitcoin_testnet:
        blink += 'btc:testnet:'
    elif chain == Chain.bitcoin_mainnet:
        blink += 'btc:mainnet:'
    elif chain == Chain.ethereum_bloxberg:
        blink += 'eth:bloxberg:'
    elif chain == Chain.ethereum_mainnet:
        blink += 'eth:mainnet:'
    elif chain == Chain.mockchain:
        blink += 'mocknet:'
    else:
        raise UnknownChainError(chain.name)
    return blink + tx_id