def register_producer(self, node: ElaNode): producer = Producer(input_private_key=node.owner_account.private_key(), node=node, nick_name=node.name, url="http://elastos.org", location=0, net_address="127.0.0.1:" + str(node.arbiter_node_port)) tx = producer.register(self.rpc_port) if tx is None: return False ret = self.handle_tx_result(tx, self.rpc_port) return ret
def active_producer(self, producer: Producer): tx = producer.active() if tx is None: return False ret = self.handle_tx_result(tx) return ret
def redeem_producer(self, producer: Producer): tx = producer.redeem(4999 * constant.TO_SELA, self.rpc_port) if tx is None: return False ret = self.handle_tx_result(tx) return ret
def cancel_producer(self, producer: Producer): tx = producer.cancel(self.rpc_port) if tx is None: return False ret = self.handle_tx_result(tx, self.rpc_port) return ret
def update_producer(self, producer: Producer, producer_info: ProducerInfo): tx = producer.update(producer_info, self.rpc_port) print(tx) if tx is None: return False ret = self.handle_tx_result(tx) return ret
def cancel_producer(self, producer: Producer): tx = producer.cancel(self.rpc_port) if tx is None: return False ret = self.handle_tx_result(tx) if ret: self.cancel_producers_list.append(producer) return ret
"crc_dpos_height": 4000, "public_dpos_height": 4200 }, "side": False, "times": 1 } if __name__ == '__main__': c = Controller(config) input_account = c.keystore_manager.tap_account node = c.node_manager.ela_nodes[2] rpc_port = 10016 producer = Producer(input_private_key=input_account.private_key(), node=node, nick_name="James-007", url="http://www.007.com", location=0, net_address="127.0.0.1:10019") tx = producer.register(rpc_port) ret = c.tx_manager.handle_tx_result(tx) Logger.info("regiser tx: {}".format(tx)) c.check_result("producer register", ret) c.discrete_mining_blocks(6) Logger.info("producer owner pubkey: {}".format( producer.owner_account().public_key())) payload = producer.producer_info() payload.nickname = "HAHA"