def test_worklock_deployment(worklock_deployer, baseline_deployment, staking_escrow_deployer, deployment_progress, test_registry, testerchain): # Ensure nucypher APIs implementing economics are usable without a worklock deployment. economics = EconomicsFactory.retrieve_from_blockchain(registry=test_registry) assert economics.bidding_start_date == NotImplemented # Deploy assert worklock_deployer.contract_name == WORKLOCK_CONTRACT_NAME deployment_receipts = worklock_deployer.deploy(progress=deployment_progress) # < ---- DEPLOY # Verify economics are updated economics = EconomicsFactory.retrieve_from_blockchain(registry=test_registry) assert economics.bidding_start_date != NotImplemented # deployment steps must match expected number of steps steps = worklock_deployer.deployment_steps assert deployment_progress.num_steps == len(steps) == len(deployment_receipts) == 4 # Ensure every step is successful for step_title in steps: assert deployment_receipts[step_title]['status'] == 1 # Ensure the correct staking escrow address is set staking_escrow_address = worklock_deployer.contract.functions.escrow().call() assert staking_escrow_deployer.contract_address == staking_escrow_address
def supply_information(): economics = EconomicsFactory.retrieve_from_blockchain( registry=self.registry) parameter = request.args.get('q') if parameter is None: # no query - return all supply information supply_info = calculate_supply_information(economics=economics) response = flask_server.response_class( response=json.dumps(supply_info), status=200, mimetype='application/json') else: # specific request query provided if parameter == 'current_total_supply': current_total_supply = calculate_current_total_supply( economics) response = flask_server.response_class( response=str(current_total_supply), status=200, mimetype='text/plain') elif parameter == 'est_circulating_supply': est_circulating_supply = calculate_circulating_supply( economics) response = flask_server.response_class( response=str(est_circulating_supply), status=200, mimetype='text/plain') else: response = flask_server.response_class( response=f"Unsupported supply parameter: {parameter}", status=400, mimetype='text/plain') return response