Exemplo n.º 1
0
def deck_list(provider, l):
    '''list command'''

    if l == "all":
        d = ListDecks(provider, pa.find_all_valid_decks(provider))
        d.pack_decks_for_printing()
        print(d.table.table)

    if l == "subscribed":
        d = ListDecks(provider, pa.find_all_valid_decks(provider))
        d.pack_decks_for_printing()
        print(d.table.table)
Exemplo n.º 2
0
    def list(self):
        '''find all valid decks and list them.'''

        decks = pa.find_all_valid_decks(provider, Settings.deck_version,
                                        Settings.production)

        print_deck_list(decks)
Exemplo n.º 3
0
def subscribed_decks():
    '''find subscribed-to decks'''

    decks = pa.find_all_valid_decks(provider, deck_version=Settings.deck_version)
    for i in decks:
        if provider.getaddressesbyaccount(i.asset_id):
            yield i
Exemplo n.º 4
0
    def find(self, key):
        '''
        Find specific deck by key, with key being:
        <id>, <name>, <issuer>, <issue_mode>, <number_of_decimals>
        '''

        decks = pa.find_all_valid_decks(provider, Settings.deck_version,
                                        Settings.production)
        print_deck_list(
            (d for d in decks if key in d.id or (key in d.__dict__.values())))
Exemplo n.º 5
0
def search_decks(key: str) -> list:
    '''search decks by <key>'''

    decks = pa.find_all_valid_decks(provider,
                                    deck_version=Settings.deck_version,
                                    prod=Settings.production)
    decks = map(add_short_id, decks)

    return [
        d for d in decks if key in d.asset_id or (key in d.__dict__.values())
    ]
Exemplo n.º 6
0
def init_decks():
    n = 0

    def message(n):
        sys.stdout.flush()
        sys.stdout.write('{} Decks Loaded\r'.format(n))

    def add_deck(deck):
        if deck is not None:
            entry = db.session.query(Deck).filter(Deck.id == deck.id).first()
            subscribe = deck.id in subscribed
            if not entry:
                try:
                    D = Deck(deck.id, deck.name, deck.issuer, deck.issue_mode,
                             deck.number_of_decimals, subscribe)
                    db.session.add(D)
                    db.session.commit()
                except Exception as e:
                    print(e)
                    pass
            else:
                db.session.query(Deck).filter(Deck.id == deck.id).update(
                    {"subscribed": subscribe})
                db.session.commit()

    def add_cards(cards):
        if cards is not None:
            for cardset in cards:
                for card in cardset:
                    sys.stdout.write(card.txid + '\r')
                    sys.stdout.flush()
                    card_id = card.txid + str(card.blockseq) + str(
                        card.cardseq)
                    entry = db.session.query(Card).filter(
                        Card.id == card_id).first()
                    if not entry:
                        C = Card(card_id, card.txid, card.cardseq,
                                 card.receiver[0], card.sender, card.amount[0],
                                 card.type, card.blocknum, card.blockseq,
                                 card.deck_id)
                        db.session.add(C)
                    db.session.commit()
            sys.stdout.flush()

    if not autoload:
        decks = [pa.find_deck(node, txid, version)[0] for txid in subscribed]

        for deck in decks:
            if deck is not None:
                add_deck(deck)
                add_cards(pa.find_card_transfers(node, deck))
                n += 1
                message(n)

    else:
        decks = pa.find_all_valid_decks(node, 1, True)
        while True:
            try:
                deck = next(decks)
                add_deck(deck)
                if deck.id in subscribed:
                    add_cards(pa.find_card_transfers(node, deck))
                n += 1
                message(n)
            except StopIteration:
                break
Exemplo n.º 7
0
def list():
    '''list decks'''
    decks = pa.find_all_valid_decks(provider=provider,
                                    deck_version=Settings.deck_version,
                                    prod=Settings.production)
    print_deck_list(decks)
Exemplo n.º 8
0
import pypeerassets as pa
from main import node, add_deck, add_cards, validate, init_p2thkeys
from utils.state import init_state
from sys import stdout
from conf import subscribed

init_p2thkeys()
accounts = node.listaccounts()
total = sum(1 for deck in pa.find_all_valid_decks(node, 1, 1))


def message(n):
    print('{} of {} Decks Loaded'.format(n + 1, total))
    stdout.flush()


for n, deck in enumerate(pa.find_all_valid_decks(node, 1, 1)):

    if not any(deck_id in subscribed for deck_id in ('*', deck.id)):
        continue
    else:
        add_deck(deck)
        message(n)
        if deck.id not in accounts:
            validate(deck)

        try:
            add_cards(deck)
            init_state(deck.id)
        except IndexError:
            continue