# Path: caesure/bitcoin.py
# def P (msg):
#     def goto_testnet (self):
# def dhash (s):
# def rhash (s):
# def bcrepr (n):
# def float_to_btc (f):
# def key_to_address (s, version=0):
# def address_to_key (s, version=0):
# def compute_rewards (n):
# def compute_reward (height):
#     def __init__ (self):
#     def end (self):
#     def __init__ (self):
#     def copy (self):
#     def get_hash (self):
#     def dump (self, fout=sys.stdout):
#     def render (self):
#     def verify (self, index, lock_script, block_timestamp):
#     def dump (self, fout=sys.stdout):
#     def __len__ (self):
#     def get_height (self):
#     def make_TX (self):
#     def check_bits (self):
#     def get_merkle_hash (self):
#     def check_rules (self):
# W = sys.stderr.write
#     BITCOIN_PORT = 8333
#     MAGIC = '\xf9\xbe\xb4\xd9'
#     ADMIN_PORT = 8380
#     BD_FILE = '/tmp/caesure.bd'
#         ADMIN_PORT = 9380
#         BD_FILE = '/tmp/caesure_testnet.bd'
# ZERO_NAME = Name ('\x00' * 32)
# OBJ_TX    = 1
# OBJ_BLOCK = 2
# MAX_BLOCK_SIZE = 1000000
# COIN           = 100000000
# MAX_MONEY      = 21000000 * COIN
# NULL_OUTPOINT = (ZERO_NAME, 4294967295)
#         D = fout.write
# class NetworkConfig:
# class BadAddress (Exception):
# class timer:
# class TX (caesure.proto.TX):
# class BadBlock (Exception):
# class BLOCK (caesure.proto.BLOCK):


import os
import json
import re
import sys
    import argparse
from caesure.script import *
from caesure.bitcoin import TX, ZERO_NAME, KEY
        elif e.startswith ('0x'):
            # add raw hex to the script
            r.append (e[2:].decode ('hex'))
        elif len(e) >= 2 and e[0] == "'" and e[-1] == "'":
            # add a push to the script
            r.append (make_push_str (e[1:-1]))
        elif opcode_map_fwd.has_key (e):
            r.append (chr(opcode_map_fwd[e]))
        elif opcode_map_fwd.has_key ('OP_'+e):
            r.append (chr(opcode_map_fwd['OP_'+e]))
        else:
            raise ValueError ("i'm so conFUSEd")
    return ''.join (r)

W = sys.stderr.write

def do_one (unlock_script, lock_script, flags):
    #W (('-' *50)+'\n')

    tx0 = TX()
    tx0.inputs = [((ZERO_NAME, 4294967295), '\x00\x00', 4294967295)]
    tx0.outputs = [(0, lock_script)]
    name = tx0.get_hash()
    tx1 = TX()
    tx1.inputs = [((name, 0), unlock_script, 4294967295)]
    tx1.outputs = [(0, '')]

    if 'P2SH' in flags:
        m = verifying_machine_p2sh (tx1, 0, KEY)
    else:

# Path: caesure/bitcoin.py
# def P (msg):
#     def goto_testnet (self):
# def dhash (s):
# def rhash (s):
# def bcrepr (n):
# def float_to_btc (f):
# def key_to_address (s, version=0):
# def address_to_key (s, version=0):
# def compute_rewards (n):
# def compute_reward (height):
#     def __init__ (self):
#     def end (self):
#     def __init__ (self):
#     def copy (self):
#     def get_hash (self):
#     def dump (self, fout=sys.stdout):
#     def render (self):
#     def verify (self, index, lock_script, block_timestamp):
#     def dump (self, fout=sys.stdout):
#     def __len__ (self):
#     def get_height (self):
#     def make_TX (self):
#     def check_bits (self):
#     def get_merkle_hash (self):
#     def check_rules (self):
# W = sys.stderr.write
#     BITCOIN_PORT = 8333
#     MAGIC = '\xf9\xbe\xb4\xd9'
#     ADMIN_PORT = 8380
#     BD_FILE = '/tmp/caesure.bd'
#         ADMIN_PORT = 9380
#         BD_FILE = '/tmp/caesure_testnet.bd'
# ZERO_NAME = Name ('\x00' * 32)
# OBJ_TX    = 1
# OBJ_BLOCK = 2
# MAX_BLOCK_SIZE = 1000000
# COIN           = 100000000
# MAX_MONEY      = 21000000 * COIN
# NULL_OUTPOINT = (ZERO_NAME, 4294967295)
#         D = fout.write
# class NetworkConfig:
# class BadAddress (Exception):
# class timer:
# class TX (caesure.proto.TX):
# class BadBlock (Exception):
# class BLOCK (caesure.proto.BLOCK):


# Path: test/test_core.py
import os
import json
import re
import sys
    import argparse
from caesure.script import *
from caesure.bitcoin import TX, ZERO_NAME, KEY

        elif e.startswith ('0x'):
            # add raw hex to the script
            r.append (e[2:].decode ('hex'))
        elif len(e) >= 2 and e[0] == "'" and e[-1] == "'":
            # add a push to the script
            r.append (make_push_str (e[1:-1]))
        elif opcode_map_fwd.has_key (e):
            r.append (chr(opcode_map_fwd[e]))
        elif opcode_map_fwd.has_key ('OP_'+e):
            r.append (chr(opcode_map_fwd['OP_'+e]))
        else:
            raise ValueError ("i'm so conFUSEd")
    return ''.join (r)

W = sys.stderr.write

def do_one (unlock_script, lock_script, flags):
    #W (('-' *50)+'\n')

    tx0 = TX()
    tx0.inputs = [((ZERO_NAME, 4294967295), '\x00\x00', 4294967295)]
    tx0.outputs = [(0, lock_script)]
    name = tx0.get_hash()
    tx1 = TX()
    tx1.inputs = [((name, 0), unlock_script, 4294967295)]
    tx1.outputs = [(0, '')]

    if 'P2SH' in flags:
        m = verifying_machine_p2sh (tx1, 0, KEY)
    else:

        m = verifying_machine (tx1, 0, KEY)