Beispiel #1
0
async def register(request):
    try:
        seed = request.json['seed']
    except KeyError as e:
        return sanic_text('Missing query parameter: seed', status=400)

    if not 0 <= len(seed) <= 32:
        return sanic_text('Seed must be between 0 and 32 characters long.',
                          status=400)

    # Pad with zeroes
    seed += '0' * (32 - len(seed))

    new_agent = BaseAgent(pool, seed, seed + '-wallet', None)

    await new_agent.open()

    # Register agent on the network
    print('\n\nRegister agents\n\n')
    for ag in (trust_anchor, new_agent):
        print('\n\nGet Nym: ' + str(ag) + '\n\n')
        if not json.loads(await trust_anchor.get_nym(ag.did)):
            print('\n\nSend Nym: ' + str(ag) + '\n\n')
            await trust_anchor.send_nym(ag.did, ag.verkey)

    return sanic_json({
        'seed': seed,
        'did': new_agent.did,
        'verkey': new_agent.verkey
    })
Beispiel #2
0
async def ledger_text(request, ledger_name):
    response = read_ledger(ledger_name)
    text = []
    for seq_no, txn in response:
        if len(text):
            text.append("")

        type_name = indy_txn_types.get(txn['type'], txn['type'])
        text.append("[" + str(seq_no) + "]  TYPE: " + type_name)

        if type_name == "NYM":
            text.append("DEST: " + txn['dest'])

            role = txn.get('role')
            if role != None:
                role_name = indy_role_types.get(role, role)
                text.append("ROLE: " + role_name)

            verkey = txn.get('verkey')
            if verkey != None:
                text.append("VERKEY: " + verkey)

        ident = txn.get('identifier')
        if ident != None:
            text.append("IDENT: " + ident)

        txnTime = txn.get('txnTime')
        if txnTime != None:
            ftime = datetime.fromtimestamp(txnTime).strftime(
                '%Y-%m-%d %H:%M:%S')
            text.append("TIME: " + ftime)

        reqId = txn.get('reqId')
        if reqId != None:
            text.append("REQ ID: " + str(reqId))

        refNo = txn.get('ref')
        if refNo != None:
            text.append("REF: " + str(refNo))

        txnId = txn.get('txnId')
        if txnId != None:
            text.append("TXN ID: " + txnId)

        if type_name == "SCHEMA" or type_name == "CLAIM_DEF" or type_name == "NODE":
            data = txn.get('data')
            text.append("DATA:")
            text.append(json.dumps(data, indent=4))

        sig = txn.get('signature')
        if sig != None:
            text.append("SIGNATURE: " + sig)

        sig_type = txn.get('signature_type')
        if sig_type != None:
            text.append("SIGNATURE TYPE: " + sig_type)

    return sanic_text("\n".join(text))
Beispiel #3
0
async def status(request):
    nodes = ["node1", "node2", "node3", "node4"]

    response_text = ""
    for idx, node_name in enumerate(nodes):
        proc = validator_info(node_name, as_json=False)
        if idx > 0:
            response_text += "\n"
        response_text += node_name + "\n\n" + proc.stdout

    return sanic_text(response_text)
Beispiel #4
0
async def register(request):

    try:
        seed = request.args['seed'][0]
    except KeyError as e:
        return text('Missing query parameter: seed')

    new_did = BaseAgent(pool, seed, seed + '-wallet', None)

    await new_did.open()

    # Register agent on the network
    print('\n\nRegister agents\n\n')
    for ag in (trust_anchor, new_did):
        print('\n\nGet Nym: ' + str(ag) + '\n\n')
        if not json.loads(await trust_anchor.get_nym(ag.did)):
            # pass
            print('\n\nSend Nym: ' + str(ag) + '\n\n')
            await trust_anchor.send_nym(ag.did, ag.verkey)

    return sanic_text(new_did.did + ' successfully written to ledger')
Beispiel #5
0
async def genesis(request):
    with open(
            '/home/indy/.indy-cli/networks/sandbox/pool_transactions_genesis',
            'r') as content_file:
        gensis = content_file.read()
    return sanic_text(gensis)
Beispiel #6
0
async def ledger_seq(request, ledger_name, sequence_number):
    response = read_ledger(ledger_name,
                           format="json",
                           seq_no=int(sequence_number),
                           seq_to=int(sequence_number))
    return sanic_text(response)
Beispiel #7
0
async def ledger_pretty(request, ledger_name):
    response = read_ledger(ledger_name, format="pretty")
    return sanic_text(response)