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
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']}
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']
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']}
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}