#!/usr/bin/env python
# coding: utf-8
from dotenv import load_dotenv
load_dotenv()

import xumm
sdk = xumm.XummSdk()

import json
import asyncio

async def main():
  app_info = sdk.ping()
  print(app_info.application.name)

  request = {
    "TransactionType": "Payment",
    "Destination": "rwietsevLFg8XSmG3bEZzFein1g8RBqWDZ",
    "Amount": "10000",
    "Memos": [
      {
        "Memo": {
          "MemoData": "F09F988E20596F7520726F636B21"
        }
      }
    ]
  }

  def callback_func(event):
      print('New payload event: {}'.format(event['data']))

      if 'signed' in event['data'] and event['data']['signed'] == True:
        print('The sign request was rejected :(')
        return event['data']

      if 'signed' in event['data'] and event['data']['signed'] == False:
        print('Woohoo! The sign request was signed :)')
        return False

  subscription = await sdk.payload.create_and_subscribe(
      request,
      callback_func,
  )

  print(json.dumps(subscription.created.to_dict(), indent=4, sort_keys=True))

loop = asyncio.get_event_loop()
loop.run_until_complete(main())