def create_transaction(args: Any): args = utils.as_object(args) cli_shared.check_broadcast_args(args) cli_shared.prepare_nonce_in_args(args) if args.data_file: args.data = utils.read_file(args.data_file) tx = do_prepare_transaction(args) if hasattr(args, "relay") and args.relay: args.outfile.write(tx.serialize_as_inner()) return send_wait_result = args.wait_result and args.send and not args.simulate send_only = args.send and not (args.wait_result or args.simulate) simulate = args.simulate and not (send_only or send_wait_result) try: if send_wait_result: proxy = ElrondProxy(args.proxy) response = tx.send_wait_result(proxy, args.timeout) utils.dump_out_json(response) elif send_only: tx.send(ElrondProxy(args.proxy)) elif simulate: response = tx.simulate(ElrondProxy(args.proxy)) utils.dump_out_json(response) finally: tx.dump_to(args.outfile)
def do_unjail(args: Any): cli_shared.prepare_nonce_in_args(args) args = validators.parse_args_for_un_jail(args) tx = do_prepare_transaction(args) try: tx.send(ElrondProxy(args.proxy)) finally: tx.dump_to(args.outfile)
def change_reward_address(args: Any): cli_shared.prepare_nonce_in_args(args) args = validators.parse_args_for_changing_reward_address(args) tx = do_prepare_transaction(args) try: tx.send(ElrondProxy(args.proxy)) finally: tx.dump_to(args.outfile)
def automatic_activation(args: Any): cli_shared.check_broadcast_args(args) cli_shared.prepare_nonce_in_args(args) staking_provider.prepare_args_automatic_activation(args) tx = do_prepare_transaction(args) try: cli_shared.send_or_simulate(tx, args) finally: tx.dump_to(args.outfile)
def do_create_delegation_contract(args: Any): cli_shared.check_broadcast_args(args) cli_shared.prepare_nonce_in_args(args) staking_provider.prepare_args_for_create_new_staking_contract(args) tx = do_prepare_transaction(args) try: cli_shared.send_or_simulate(tx, args) finally: tx.dump_to(args.outfile)
def do_unjail(args: Any): cli_shared.check_broadcast_args(args) cli_shared.prepare_nonce_in_args(args) validators.prepare_args_for_unjail(args) tx = do_prepare_transaction(args) try: cli_shared.send_or_simulate(tx, args) finally: tx.dump_to(args.outfile)
def change_reward_address(args: Any): cli_shared.check_broadcast_args(args) cli_shared.prepare_nonce_in_args(args) validators.prepare_args_for_change_reward_address(args) tx = do_prepare_transaction(args) try: _send_or_simulate(tx, args) finally: tx.dump_to(args.outfile)
def prepare_and_send_transaction(args): proxy = ElrondProxy(args.proxy) # Need to sync nonce owner = Account(pem_file=args.pem) owner.sync_nonce(proxy) args.nonce = owner.nonce prepared = do_prepare_transaction(args) tx_hash = prepared.send(proxy) print(tx_hash) return tx_hash
def main(): logging.basicConfig(level=logging.DEBUG) parser = ArgumentParser() parser.add_argument("--proxy", default="https://testnet-api.elrond.com") parser.add_argument("--keyfile", help="wallet JSON keyfile", required=True) parser.add_argument("--passfile", help="wallet password file", required=True) parser.add_argument("--reward-address", required=True, help="the reward address") parser.add_argument("--validators-file", required=True, help="validators JSON file (with links to PEM files)") parser.add_argument("--value", required=True, help="the value to stake") args = parser.parse_args() args.estimate_gas = True args.pem = None proxy = ElrondProxy(args.proxy) network = proxy.get_network_config() args.chain = network.chain_id args.gas_price = network.min_gas_price args.version = network.min_tx_version print("Reward address:") print(Address(args.reward_address).bech32()) confirm_continuation() prepare_args_for_stake(args) print("Transaction data:") print(args.data) confirm_continuation() print("Elrond Proxy (or Observer) address:", args.proxy) print("Chain ID:", args.chain) confirm_continuation() print("Value to stake:") print(int(args.value) / int(math.pow(10, 18)), "ERD") confirm_continuation() node_operator = Account(key_file=args.keyfile, pass_file=args.passfile) node_operator.sync_nonce(proxy) args.nonce = node_operator.nonce tx = do_prepare_transaction(args) tx.dump_to(sys.stdout) print("Transaction will now be sent.") confirm_continuation() tx.send(proxy) print("Done.")
def register(args: Any): args = utils.as_object(args) cli_shared.check_broadcast_args(args) cli_shared.prepare_nonce_in_args(args) args.receiver = dns_address_for_name(args.name).bech32() args.data = dns_register_data(args.name) tx = do_prepare_transaction(args) if hasattr(args, "relay") and args.relay: args.outfile.write(tx.serialize_as_inner()) return try: if args.send: tx.send(ElrondProxy(args.proxy)) elif args.simulate: response = tx.simulate(ElrondProxy(args.proxy)) utils.dump_out_json(response) finally: tx.dump_to(args.outfile)
def create_transaction(args: Any): args = utils.as_object(args) cli_shared.check_broadcast_args(args) cli_shared.prepare_nonce_in_args(args) if args.data_file: args.data = utils.read_file(args.data_file) tx = do_prepare_transaction(args) if hasattr(args, "relay") and args.relay: args.outfile.write(tx.serialize_as_inner()) return try: if args.send: tx.send(ElrondProxy(args.proxy)) elif args.simulate: response = tx.simulate(ElrondProxy(args.proxy)) utils.dump_out_json(response) finally: tx.dump_to(args.outfile)