Beispiel #1
0
def fixture_data():
    # Clear tx buffer
    bitshares.clear()

    Account.clear_cache()

    with open(os.path.join(os.path.dirname(__file__), "fixtures.yaml")) as fid:
        data = yaml.safe_load(fid)

    for account in data.get("accounts"):
        Account.cache_object(account, account["id"])
        Account.cache_object(account, account["name"])

    for asset in data.get("assets"):
        Asset.cache_object(asset, asset["symbol"])
        Asset.cache_object(asset, asset["id"])

    proposals = []
    for proposal in data.get("proposals", []):
        ops = []
        for _op in proposal["operations"]:
            for opName, op in _op.items():
                ops.append([operations[opName], op])
        # Proposal!
        proposal_id = proposal["proposal_id"]
        proposal_data = {
            "available_active_approvals": [],
            "available_key_approvals": [],
            "available_owner_approvals": [],
            "expiration_time": "2018-05-29T10:23:13",
            "id": proposal_id,
            "proposed_transaction": {
                "expiration": "2018-05-29T10:23:13",
                "extensions": [],
                "operations": ops,
                "ref_block_num": 0,
                "ref_block_prefix": 0,
            },
            "proposer": "1.2.7",
            "required_active_approvals": ["1.2.1"],
            "required_owner_approvals": [],
        }
        proposals.append(Proposal(proposal_data))

    Proposals.cache_objects(proposals, "1.2.1")
    Proposals.cache_objects(proposals, "witness-account")
Beispiel #2
0
                        ]
            )

blockchain = Blockchain(
                        blockchain_instance=bitshares,
                        mode='head'
)

for op in blockchain.stream(['transfer']):
    payee = Account(op['to']).name
    from_account = Account(op['from']).name
    asset_symbol = Asset(op['amount']['asset_id']).symbol
    asset_precision = int(Asset(op['amount']['asset_id']).precision)
    amount = int(op['amount']['amount']) / (10**asset_precision)
    Asset.clear_cache()
    Account.clear_cache()
    body = '{} sent {} {} {} in block {}.'.format(
                                    from_account,
                                    payee,
                                    amount,
                                    asset_symbol,
                                    op['block_num'])
    pprint(body)
    if payee == ACCOUNT_WATCHING:
        message = client.messages.create(
                                body=body,
                                from_=BOT_PHONE_NUMBER,
                                to=YOUR_PHONE_NUMBER
                                )
        pprint(message.sid)