Exemplo n.º 1
0
def test_sign_transaction():

    network_params = net_query('tppc')

    provider = Cryptoid(network='tppc')
    key = pa.Kutil(
        network='tppc',
        privkey=bytearray.fromhex(
            '9e321f5379c2d1c4327c12227e1226a7c2e08342d88431dcbb0063e1e715a36c')
    )
    dest_address = pa.Kutil(network='tppc').address
    unspent = provider.select_inputs(key.address, 1)

    output = tx_output(network='tppc',
                       value=Decimal(0.1),
                       n=0,
                       script=p2pkh_script(network='tppc',
                                           address=dest_address))

    unsigned = MutableTransaction(
        version=1,
        ins=unspent['utxos'],
        outs=[output],
        locktime=Locktime(0),
        network=network_params,
        timestamp=int(time.time()),
    )

    assert isinstance(sign_transaction(provider, unsigned, key), Transaction)
Exemplo n.º 2
0
def load_key(deck):
    try:
        wif = pa.Kutil(privkey=unhexlify(deck.id), network=node.network).wif
        node.importprivkey( wif, deck.id)
        sys.stdout.write('\rImported {}'.format(wif))
        sys.stdout.flush()
    except:
        pass
def load_session():

    try:  # try to load session from the file
        session = pickle.load(open("session.db", "rb"))
    except:
        session = Session
        session.keys = [pa.Kutil(network="tppc") for i in range(MAX_RECEIVERS)]
        session.keypairs = {k.address: v.wif for k, v in zip(keys, keys)}
Exemplo n.º 4
0
    def random(self, n: int = 1) -> list:
        '''generate <n> of random addresses, useful when testing'''

        rand_addr = [
            pa.Kutil(network=Settings.network).address for i in range(n)
        ]

        pprint(rand_addr)
Exemplo n.º 5
0
    def simulate_issue(self,
                       deckid: str = None,
                       ncards: int = 10,
                       verify=False) -> str:
        '''create a batch of simulated CardIssues on this deck'''

        receiver = [pa.Kutil(network='tppc').address for i in range(ncards)]
        amount = [random.randint(1, 100) for i in range(ncards)]

        return self.transfer(deckid=deckid,
                             receiver=receiver,
                             amount=amount,
                             verify=verify)
Exemplo n.º 6
0
def init_p2thkeys():

    from binascii import unhexlify
    n = 0

    if autoload:
        pa.pautils.load_p2th_privkey_into_local_node(node, production)

    for deck_id in subscribed:
        wif = pa.Kutil(privkey=unhexlify(deck_id), network=node.network).wif
        try:
            node.importprivkey(wif, deck_id)
            n += 1
        except Exception as e:
            print(e)
    return print('{} P2TH Key(s) Registered'.format(n))
Exemplo n.º 7
0
    def simulate_issue(self,
                       deckid: str = None,
                       ncards: int = 10,
                       verify: bool = False,
                       sign: str = False,
                       send: bool = False) -> str:
        '''create a batch of simulated CardIssues on this deck'''

        receiver = [
            pa.Kutil(network=Settings.network).address for i in range(ncards)
        ]
        amount = [random.randint(1, 100) for i in range(ncards)]

        return self.transfer(deckid=deckid,
                             receiver=receiver,
                             amount=amount,
                             verify=verify,
                             sign=sign,
                             send=send)
def deck_spawn():
    '''spawn a new, random deck'''

    key = pa.Kutil(wif=wif, network='peercoin-testnet')

    name = ''.join([
        random.choice(string.ascii_letters + string.digits) for n in range(8)
    ])

    deck = pa.Deck(name=name,
                   number_of_decimals=3,
                   issue_mode=4,
                   version=1,
                   fee=0)

    unspent = provider.select_inputs(key.address, 0.02)

    new_deck = pa.deck_spawn(provider, key, deck, unspent, change_addr)

    Session.deck = deck

    print(new_deck)
Exemplo n.º 9
0
import datetime, time
import pickle
import logging

logging.basicConfig(filename='pypa.log', level=logging.INFO)
logging.info("Started new session: {0}".format(
    datetime.datetime.now().isoformat()))

provider = pa.RpcNode(testnet=True)
deck = pa.find_deck(provider, "clementines")[0]
change_addr = deck.issuer

try:  # try to load keypairs from the file
    keypairs = pickle.load(open("keypairs.db", "rb"))
except:
    keys = [pa.Kutil(network="tppc") for i in range(MAX_RECEIVERS)]
    keypairs = {k.address: v.wif for k, v in zip(keys, keys)}


class Session:
    pass


def total_issuance():
    return len([
        ct for ct in pa.find_card_transfers(provider, deck)
        if ct.type is "CardIssue"
    ])


def total_tranfers():
Exemplo n.º 10
0
    def derive(self, key: str) -> str:
        '''derive a new address from <key>'''

        return pa.Kutil(Settings.network, from_string=key).address
Exemplo n.º 11
0
    def p2th(self, deck_id: str) -> str:
        '''print out deck p2th'''

        return pa.Kutil(network=Settings.network,
                        privkey=bytearray.fromhex(deck_id)).address
import pypeerassets as pa
from decimal import Decimal
import string
import random
import datetime, time
import pickle
import logging

logging.basicConfig(filename='pypa_simulation.log', level=logging.INFO)
logging.info("Started new session: {0}".format(
    datetime.datetime.now().isoformat()))

wif = 'cRvV1mhVvr9FTkGdUYkYXcBbomNgAmpfzhvhTep861thfp6noqyy'
provider = pa.Cryptoid(network='tppc')
change_addr = pa.Kutil(wif=wif, network='peercoin-testnet').address


class Session:
    '''temporary variable store'''
    pass


def deck_spawn():
    '''spawn a new, random deck'''

    key = pa.Kutil(wif=wif, network='peercoin-testnet')

    name = ''.join([
        random.choice(string.ascii_letters + string.digits) for n in range(8)
    ])
Exemplo n.º 13
0
'''
Issue cards for new deck.
'''

import pypeerassets as pa
from binascii import hexlify
import random

provider = pa.RpcNode(testnet=True)
change_addr = "mhPuRGwWRyhXRhzSfzgfoPPFHPXgAyZVSz"

deck = pa.Deck(**deck)  # use deck from deck_spawn.py example

## utxo must be owned by the deck issuer
utxo = provider.select_inputs(0.02, deck.issuer)

# generate 9 receiver addresses
receivers = [pa.Kutil(network="tppc").address for i in range(9)]
# amounts for the receivers
amounts = [random.randint(1, 999) for i in range(9)]

issue = pa.CardTransfer(deck, receivers, amounts)  # CardTransfer instance

raw_issue = hexlify(pa.card_issue(deck, issue, utxo, change_addr)).decode()

signed = provider.signrawtransaction(raw_issue)

provider.sendrawtransaction(signed["hex"])  # send the tx
Exemplo n.º 14
0
def new_address():
    '''generate a new address and import into wallet.'''

    key = pa.Kutil(network=provider.network)
    provider.importprivkey(key.wif, "PACLI")
    print(key.address)
Exemplo n.º 15
0
        transaction = provider.gettransaction(transaction_id)
        if transaction["confirmations"] > 0:
            break
        time.sleep(10)


if __name__ == "__main__":

    # Deck Spawn

    print("Build, sign and send the Friendly Co. Deck spawning transaction...")

    rpc_node = RpcNode(testnet=True, username=RPC_USERNAME, password=RPC_PASSWORD)

    friendly_co_key = pa.Kutil(
        network="tppc",
        from_wif=rpc_node.dumpprivkey(FRIENDLY_CO),
    )

    deck = pa.Deck(
        name="Friendly Co. Deck",
        number_of_decimals=0,
        issue_mode=IssueMode.ONCE.value,
        network="tppc",
        production=False,
        version=1,
        issuer=FRIENDLY_CO,
    )

    deck_spawn_tx = pa.deck_spawn(
        provider=rpc_node,
        deck=deck,