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")
] ) 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)