def setUp(self): self.params = { "debug": False, "days_to_80p_of_max_voting_weight": 10, "probability_func": new_probability_func(seed=None), "exponential_func": new_exponential_func(seed=None), "gamma_func": new_gamma_func(seed=None), "random_number_func": new_random_number_func(seed=None) } self.network = bootstrap_network([ TokenBatch(1000, 0, vesting_options=VestingOptions(10, 30)) for _ in range(4) ], 1, 3000, 4e6, 0.2, self.params["probability_func"], self.params["random_number_func"], self.params["gamma_func"], self.params["exponential_func"]) self.network, _ = add_proposal(self.network, Proposal(100, 1), self.params["random_number_func"]) """ For proper testing, we need to make sure the Proposals are CANDIDATE and ensure Proposal-Participant affinities are not some random value """ self.network.nodes[4]["item"].status = ProposalStatus.CANDIDATE self.network.nodes[5]["item"].status = ProposalStatus.CANDIDATE support_edges = get_edges_by_type(self.network, "support") for u, v in support_edges: self.network[u][v]["support"] = self.network[u][v][ "support"]._replace(affinity=0.9)
def setUp(self): self.params = { "debug": True, "probability_func": new_probability_func(seed=None), "exponential_func": new_exponential_func(seed=None), "gamma_func": new_gamma_func(seed=None), "random_number_func": new_random_number_func(seed=None) } vesting_participants = [ TokenBatch(1000, 1000, vesting_options=VestingOptions(10, 30)) for _ in range(2) ] nonvesting_participants = [ TokenBatch(0, 1000, vesting_options=VestingOptions(10, 30)) for _ in range(2) ] self.network = bootstrap_network( vesting_participants + nonvesting_participants, 1, 3000, 4e6, 0.2, self.params["probability_func"], self.params["random_number_func"], self.params["gamma_func"], self.params["exponential_func"]) self.commons = Commons(1000, 1000) self.network, _ = add_proposal(self.network, Proposal(100, 1), self.params["random_number_func"]) self.default_state = { "network": self.network, "commons": self.commons, "funding_pool": 1000, "token_supply": 1000 }
def su_add_to_network(params, step, sL, s, _input, **kwargs): network = s["network"] funding_pool = s["funding_pool"] token_supply = s["token_supply"] scale_factor = 0.01 if _input["new_proposal"]: # Create the Proposal and add it to the network. rescale = funding_pool * scale_factor r_rv = gamma.rvs(3, loc=0.001, scale=rescale) proposal = Proposal(funds_requested=r_rv, trigger=trigger_threshold( r_rv, funding_pool, token_supply, params["max_proposal_request"])) network, proposal_idx = add_proposal(network, proposal) # add_proposal() has created support edges from other Participants # to this Proposal. If the Participant is the one who created this # Proposal, change his affinity for the Proposal to 1 (maximum). network.edges[_input["proposed_by_participant"], proposal_idx]["affinity"] = 1 if params.get("debug"): print( "GenerateNewProposal: Participant {} created Proposal {}". format(_input["proposed_by_participant"], proposal_idx)) return "network", network
def su_add_to_network(params, step, sL, s, _input, **kwargs): network = s["network"] funding_pool = s["funding_pool"] token_supply = s["token_supply"] gamma_func = params["gamma_func"] random_number_func = params["random_number_func"] if _input["new_proposal"]: proposed_by = _input["proposed_by_participant"] # Create the Proposal and add it to the network. rescale = funding_pool * config.scale_factor r_rv = gamma_func(config.funds_requested_alpha, loc=config.funds_requested_min, scale=rescale) proposal = Proposal(funds_requested=r_rv, trigger=trigger_threshold( r_rv, funding_pool, token_supply, params["max_proposal_request"])) network, proposal_idx = add_proposal(network, proposal, proposed_by, random_number_func) if params.get("debug"): print( "GenerateNewProposal: Participant {} created Proposal {}". format(_input["proposed_by_participant"], proposal_idx)) return "network", network
def su_add_to_network(params, step, sL, s, _input, **kwargs): network = s["network"] funding_pool = s["funding_pool"] token_supply = s["token_supply"] gamma_func = params["gamma_func"] random_number_func = params["random_number_func"] if _input["new_proposal"]: # Create the Proposal and add it to the network. rescale = funding_pool * config.scale_factor r_rv = gamma_func(config.funds_requested_alpha, loc=config.funds_requested_min, scale=rescale) proposal = Proposal(funds_requested=r_rv, trigger=trigger_threshold( r_rv, funding_pool, token_supply, params["max_proposal_request"])) network, proposal_idx = add_proposal(network, proposal, random_number_func) # add_proposal() has created support edges from other Participants # to this Proposal. If the Participant is the one who created this # Proposal, set the participant's role as author and change his affinity for the Proposal to 1 (maximum). network.edges[_input["proposed_by_participant"], proposal_idx]["support"] = \ network.edges[_input["proposed_by_participant"], proposal_idx]["support"]._replace(affinity=1, is_author=True) if params.get("debug"): print( "GenerateNewProposal: Participant {} created Proposal {}". format(_input["proposed_by_participant"], proposal_idx)) return "network", network
def setUp(self): self.network = bootstrap_network( [TokenBatch(1000, VestingOptions(10, 30)) for _ in range(4)], 1, 3000, 4e6) self.network, _ = add_proposal(self.network, Proposal(100, 1)) self.network.nodes[4]["item"].status = ProposalStatus.ACTIVE self.network.nodes[5]["item"].status = ProposalStatus.ACTIVE
def setUp(self): self.network = bootstrap_network([ TokenBatch(1000, 0, vesting_options=VestingOptions(10, 30)) for _ in range(4) ], 1, 3000, 4e6, 0.2) self.network, _ = add_proposal(self.network, Proposal(100, 1)) self.network.nodes[4]["item"].status = ProposalStatus.CANDIDATE self.network.nodes[5]["item"].status = ProposalStatus.CANDIDATE self.params = { "max_proposal_request": 0.2, "alpha_days_to_80p_of_max_voting_weight": 10 }
def test_add_proposal(self): """ This test ensures that the Proposal was added and that setup_conflict_edges() was executed for that particular node. """ n1, j = add_proposal(self.network, Proposal(23, 111)) self.assertEqual(n1.nodes[j]["item"].funds_requested, 23) self.assertEqual(n1.nodes[j]["item"].trigger, 111) self.assertEqual(len(n1.edges), 5) for u, v, t in n1.edges(data="type"): self.assertEqual(v, 10) self.assertEqual(t, "support") self.assertIn(u, [0, 2, 4, 6, 8])
def setUp(self): self.network = bootstrap_network([ TokenBatch(1000, 1000, vesting_options=VestingOptions(10, 30)) for _ in range(4) ], 1, 3000, 4e6, 0.2) self.commons = Commons(1000, 1000) self.network, _ = add_proposal(self.network, Proposal(100, 1)) self.params = {"debug": True} self.default_state = { "network": self.network, "commons": self.commons, "funding_pool": 1000, "token_supply": 1000 }
def setUp(self): self.network = bootstrap_network([ TokenBatch(1000, 0, vesting_options=VestingOptions(10, 30)) for _ in range(4) ], 1, 3000, 4e6, 0.2) self.network, _ = add_proposal(self.network, Proposal(100, 1)) self.params = {"debug": False, "days_to_80p_of_max_voting_weight": 10} """ For proper testing, we need to make sure the Proposals are CANDIDATE and ensure Proposal-Participant affinities are not some random value """ self.network.nodes[4]["item"].status = ProposalStatus.CANDIDATE self.network.nodes[5]["item"].status = ProposalStatus.CANDIDATE support_edges = get_edges_by_type(self.network, "support") for u, v in support_edges: self.network[u][v]["affinity"] = 0.9
def su_add_to_network(params, step, sL, s, _input): network = s["network"] funding_pool = s["funding_pool"] token_supply = s["token_supply"] scale_factor = 0.01 if _input["new_proposal"]: # Create the Proposal and add it to the network. rescale = funding_pool * scale_factor r_rv = gamma.rvs(3, loc=0.001, scale=rescale) proposal = Proposal(funds_requested=r_rv, trigger=convictionvoting.trigger_threshold(r_rv, funding_pool, token_supply)) network, j = add_proposal(network, proposal) # add_proposal() has created support edges from other Participants # to this Proposal. If the Participant is the one who created this # Proposal, change his affinity for the Proposal to 1 (maximum). network.edges[_input["proposed_by_participant"], j]["affinity"] = 1 return "network", network
def setUp(self): self.params = { "probability_func": new_probability_func(seed=None), "exponential_func": new_exponential_func(seed=None), "gamma_func": new_gamma_func(seed=None), "random_number_func": new_random_number_func(seed=None) } self.network = bootstrap_network([ TokenBatch(1000, 0, vesting_options=VestingOptions(10, 30)) for _ in range(4) ], 1, 3000, 4e6, 0.2, self.params["probability_func"], self.params["random_number_func"], self.params["gamma_func"], self.params["exponential_func"]) self.network, _ = add_proposal(self.network, Proposal(100, 1), self.params["random_number_func"]) self.network.nodes[4]["item"].status = ProposalStatus.ACTIVE self.network.nodes[5]["item"].status = ProposalStatus.ACTIVE
def setUp(self): self.params = { "max_proposal_request": 0.2, "alpha_days_to_80p_of_max_voting_weight": 10, "probability_func": new_probability_func(seed=None), "exponential_func": new_exponential_func(seed=None), "gamma_func": new_gamma_func(seed=None), "random_number_func": new_random_number_func(seed=None) } self.commons = Commons(1000, 1000) self.network = bootstrap_network([ TokenBatch(1000, 0, vesting_options=VestingOptions(10, 30)) for _ in range(4) ], 1, 3000, 4e6, 0.2, self.params["probability_func"], self.params["random_number_func"], self.params["gamma_func"], self.params["exponential_func"]) self.network, _ = add_proposal(self.network, Proposal(100, 1), self.params["random_number_func"]) self.network.nodes[4]["item"].status = ProposalStatus.CANDIDATE self.network.nodes[5]["item"].status = ProposalStatus.CANDIDATE