def prepareproposal(self, proposal_name, proposal_url, payments_count, block_start, address, amount, broadcast=False): """Create a budget proposal transaction.""" proposal = self.masternode_manager.get_proposal(proposal_name) amount = int(amount * COIN) if not proposal: proposal = BudgetProposal(proposal_name=proposal_name, proposal_url=proposal_url, start_block=block_start, payment_amount=amount, address=address) proposal.set_payments_count(payments_count) self.masternode_manager.add_proposal(proposal) tx = self.masternode_manager.create_proposal_tx( proposal_name, self.password) if broadcast: r, h = self.wallet.sendtx(tx) return h return str(tx)
def parse_proposals_subscription_result(results): """Parse the proposals subscription response.""" proposals = [] for k, result in results.items(): kwargs = { 'proposal_name': result['Name'], 'proposal_url': result['URL'], 'start_block': int(result['BlockStart']), 'end_block': int(result['BlockEnd']), 'payment_amount': result['MonthlyPayment'], 'address': result['PaymentAddress'] } fee_txid_key = 'FeeTXHash' if result.get('FeeTXHash') else 'FeeHash' kwargs['fee_txid'] = result[fee_txid_key] yes_count_key = 'YesCount' if result.get('YesCount') else 'Yeas' kwargs['yes_count'] = result[yes_count_key] no_count_key = 'NoCount' if result.get('NoCount') else 'Nays' kwargs['no_count'] = result[no_count_key] payment_amount = Decimal(str(kwargs['payment_amount'])) kwargs['payment_amount'] = pow(10, 8) * payment_amount proposals.append(BudgetProposal.from_dict(kwargs)) print_error('Received updated budget proposal information (%d proposals)' % len(proposals)) return proposals
def load(self): """Load masternodes from wallet storage.""" masternodes = self.wallet.storage.get('masternodes', {}) self.masternodes = [MasternodeAnnounce.from_dict(d) for d in masternodes.values()] proposals = self.wallet.storage.get('budget_proposals', {}) self.proposals = [BudgetProposal.from_dict(d) for d in proposals.values()] self.budget_votes = [BudgetVote.from_dict(d) for d in self.wallet.storage.get('budget_votes', [])]