Python Library for VIZ
fromvizimportClientnode="wss://node.viz.cx/ws"viz=Client(node=node, keys=["5...your_private_regular_key..."])
initiator="your_account"receiver="id"percent=10.5# 10.5%viz.award(receiver, percent, "with love", None, initiator)fromvizimportClientnode="wss://node.viz.cx/ws"viz=Client(node=node, keys=["5...your_private_regular_key..."])
initiator="your_account"receiver="id"reward_amount=3.5# "3.50 VIZ"max_energy=30# 30%viz.fixed_award(receiver, reward_amount, max_energy, "with fixed reward", None, initiator)fromvizimportClientnode="wss://node.viz.cx/ws"viz=Client(node=node, keys=["5...your_private_regular_key..."])
account="your_account"required_regular_auths= [account]
protocol="color.place"custom_json= {"x": 35, "y": 70, "color": "#e50000"}
viz.custom(protocol, custom_json, None, required_regular_auths)All 23 broadcastable pm_* operations are available as serializers in
vizbase.operations. Build the operation and sign it with finalizeOp (the
same low-level path the built-in helpers use), passing the authority the op
requires — active for most PM ops, regular for pm_dispute_vote:
fromvizimportClientfromvizbaseimportoperationsnode="wss://node.viz.cx/ws"viz=Client(node=node, keys=["5...your_private_active_key..."])
account="your_account"# Place a bet: binary market -> side 0/1, outcome_index -1; multi -> side -1, outcome_index 0..N-1bet=operations.Pm_place_bet(
account=account,
market_id=42,
side=1,
outcome_index=-1,
amount="1.500 VIZ",
min_tokens=0, # slippage floor (0 = none)mode=0, # 0 instant, 1 batch
)
viz.finalizeOp(bet, account, "active")Chain governance uses the versioned variant: versioned_chain_properties_update
serializes variant 3 (chain_properties_hf9), 4 (chain_properties_hf13) or 5
(chain_properties_pm, the HF14 PM params) automatically from the fields you pass.
fromvizimportClientfromviz.accountimportAccountfromviz.blockimportBlockfromviz.instanceimportset_shared_blockchain_instanceimportjsonviz=Client("wss://node.viz.cx/ws")
set_shared_blockchain_instance(viz)
account_name="id"protocol="V"account=Account(account_name, protocol=protocol)
counter_inside_protocol=account["custom_sequence"]
last_used_in_block=account["custom_sequence_block_num"]
block=Block(last_used_in_block)
fortxinblock["transactions"]:
forop_type, op_dataintx["operations"]:
ifop_type!="custom":
continueifop_data.get("id") !=protocol:
continueifaccount_namenotinop_data.get("required_regular_auths", []):
continueraw_json=op_data.get("json")
try:
json_from_protocol=json.loads(raw_json) ifraw_jsonelseNoneexceptjson.JSONDecodeError:
json_from_protocol=Noneprint(json_from_protocol)fromvizimportClientviz=Client("wss://node.viz.cx/ws")
viz.rpc.get_dynamic_global_properties()Current published version could be installed via
pip install viz-python-libManual installation:
Install poetry
cd viz-python-lib/
poetry installsudo apt-get install libffi-dev libssl-dev python3-devInstall regular version of OpenSSL (not Light) suitable for your core processor.
Apple has deprecated use of OpenSSL in favor of its own TLS and crypto libraries. This means that you will need to install and export some OpenSSL settings yourself, before you can install viz-python-lib:
brew install openssland then use the following commands:
export CFLAGS="-I$(brew --prefix openssl)/include"export LDFLAGS="-L$(brew --prefix openssl)/lib"