each blockchain transaction can contain multiple cards,
       wrapped in bundles. This method finds and returns those bundles.

def card_bundler(provider: Provider, deck: Deck, tx: dict) -> CardBundle:
    '''each blockchain transaction can contain multiple cards,
       wrapped in bundles. This method finds and returns those bundles.'''

    return CardBundle(deck=deck,
                      blockhash=tx['blockhash'],
                      txid=tx['txid'],
                      timestamp=tx['time'],
                      blockseq=tx_serialization_order(provider,
                                                      tx["blockhash"],
                                                      tx["txid"]),
                      blocknum=provider.getblock(tx["blockhash"])["height"],
                      sender=find_tx_sender(provider, tx),
                      vouts=tx['vout'],
                      tx_confirmations=tx['confirmations']
                      )