Closing/Settling a Prediction Market

All the issuer needs to do is publish a valid price feed for the asset. The global_settle option will be set automatically and borrow positions can settle at the price feed.

Python Script

from grapheneapi import GrapheneClient
import json


class Config():
    wallet_host           = "localhost"
    wallet_port           = 8092
    wallet_user           = ""
    wallet_password       = ""

if __name__ == '__main__':
    graphene = GrapheneClient(Config)
    symbol = "PM"
    issuer = "nathan"
    producer = "nathan"
    pm_result = True  # or False        <<<<-------- Result goes here
    account = graphene.rpc.get_account(issuer)
    asset = graphene.rpc.get_asset(symbol)
    # Publish a price
    settle_price = {"quote": {"asset_id": "1.3.0",
                              "amount": 1 if pm_result else 0},
                    "base": {"asset_id": asset["id"],
                             "amount": 1
                             }}
    handle = graphene.rpc.begin_builder_transaction()
    tx = graphene.rpc.global_settle_asset(symbol, settle_price, True)
    print(json.dumps(tx, indent=4))