示例#1
0
def get(pub_key_user):
    client = AccountClient()
    address = client.make_address_from_data(pub_key_user)
    print('Reading from address: {}'.format(address))
    balance = client.get_balance(address)
    return {'balance': balance,
            'address': address}
    def create_raw_transaction_send_token_payload(pub_key_to, amount=1):
        client = AccountClient()
        signer = client._signer
        address = client.make_address_from_data(pub_key_to)
        node_address = client.get_user_address()

        transfer = TransferPayload()
        transfer.address_to = address
        transfer.value = amount

        tr = TransactionPayload()
        tr.method = AccountMethod.TRANSFER
        tr.data = transfer.SerializeToString()

        payload = tr.SerializeToString()

        header = TransactionHeader(
            signer_public_key=signer.get_public_key().as_hex(),
            family_name=client._family_handler.family_name,
            family_version=client._family_handler.family_versions[-1],
            inputs=[node_address, address],
            outputs=[node_address, address],
            dependencies=[],
            payload_sha512=hash512(payload),
            batcher_public_key=signer.get_public_key().as_hex(),
            nonce=time.time().hex().encode()).SerializeToString()

        signature = signer.sign(header)

        transaction = Transaction(header=header,
                                  payload=payload,
                                  header_signature=signature)
        return transaction
def pub_key_already_exist(cert):
    account_client = AccountClient()
    address = account_client.make_address_from_data(
        cert.public_bytes(serialization.Encoding.DER).hex())
    try:
        account_client.get_value(address)
    except KeyNotFound:
        return False
    return True
示例#4
0
def post(payload):
    client = AccountClient()
    signer_account = client.get_account(client.get_signer_address())
    if not payload['amount']:
        return {'error': 'Could not transfer with zero amount'}, 400
    if signer_account.balance < payload['amount']:
        return {'error': 'Not enough transferable balance of sender'}, 400
    address_to = client.make_address_from_data(payload['pub_key_to'])
    result = client.transfer(address_to, payload['amount'])
    return {'batch_id': result['batch_id']}
示例#5
0
async def send_tokens(request):
    try:
        amount = request.params['amount']
    except KeyError:
        raise RpcInvalidParamsError(message='Missed amount')
    try:
        public_key_to = request.params['public_key_to']
    except KeyError:
        raise RpcInvalidParamsError(message='Missed public_key_to')
    client = AccountClient()
    signer_account = client.get_account(client.get_signer_address())
    if not amount:
        raise RpcGenericServerDefinedError(
            error_code=-32050,
            message='Could not transfer with zero amount'
        )
    if signer_account.balance < amount:
        raise RpcGenericServerDefinedError(
            error_code=-32050,
            message='Not enough transferable balance of sender'
        )
    address_to = client.make_address_from_data(public_key_to)
    result = client.transfer(address_to, amount)
    return result['data']
示例#6
0
def post(payload):
    client = AccountClient()
    address_to = client.make_address_from_data(payload['pub_key_to'])
    result = client.transfer(address_to, payload['amount'])
    return {'batch_id': result['batch_id']}
示例#7
0
def get_pub_keys(pub_key_user):
    client = AccountClient()
    address = client.make_address_from_data(pub_key_user)
    print('Reading from address: {}'.format(address))
    pub_keys = client.get_pub_keys(address)
    return {'pubkey': pub_key_user, 'pub_keys': pub_keys}