Exemplo n.º 1
0
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)
Exemplo n.º 2
0
def deploy(args: Any):
    logger.debug("deploy")
    cli_shared.check_broadcast_args(args)

    arguments = args.arguments
    gas_price = args.gas_price
    gas_limit = args.gas_limit
    value = args.value
    chain = args.chain
    version = args.version

    contract = _prepare_contract(args)
    sender = _prepare_sender(args)

    tx = contract.deploy(sender, arguments, gas_price, gas_limit, value, chain,
                         version)
    logger.info("Contract address: %s", contract.address)

    result = None
    try:
        result = _send_or_simulate(tx, args)
    finally:
        txdict = tx.to_dump_dict()
        txdict['address'] = contract.address.bech32()
        dump_tx_and_result(txdict, result, args)
Exemplo n.º 3
0
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)
Exemplo n.º 4
0
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)
Exemplo n.º 5
0
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)
Exemplo n.º 6
0
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)
Exemplo n.º 7
0
def upgrade(args: Any):
    logger.debug("upgrade")
    cli_shared.check_broadcast_args(args)

    contract_address = args.contract
    arguments = args.arguments
    gas_price = args.gas_price
    gas_limit = args.gas_limit
    value = args.value
    chain = args.chain
    version = args.version

    contract = _prepare_contract(args)
    contract.address = Address(contract_address)
    sender = _prepare_sender(args)

    tx = contract.upgrade(sender, arguments, gas_price, gas_limit, value, chain, version)
    try:
        result = _send_or_simulate(tx, args)
    finally:
        txdict = tx.to_dump_dict()
        dump_tx_and_result(txdict, result, args)
Exemplo n.º 8
0
def call(args: Any):
    logger.debug("call")
    cli_shared.check_broadcast_args(args)

    contract_address = args.contract
    function = args.function
    arguments = args.arguments
    gas_price = args.gas_price
    gas_limit = args.gas_limit
    value = args.value
    chain = args.chain
    version = args.version

    contract = SmartContract(contract_address)
    sender = _prepare_sender(args)

    tx = contract.execute(sender, function, arguments, gas_price, gas_limit, value, chain, version)
    try:
        result = _send_or_simulate(tx, args)
    finally:
        txdict = tx.to_dump_dict()
        dump_tx_and_result(txdict, result, args)
Exemplo n.º 9
0
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)
Exemplo n.º 10
0
def deploy(args: Any):
    logger.debug("deploy")
    cli_shared.check_broadcast_args(args)

    arguments = args.arguments
    gas_price = args.gas_price
    gas_limit = args.gas_limit
    value = args.value
    chain = args.chain
    version = args.version

    contract = _prepare_contract(args)
    sender = _prepare_sender(args)

    tx = contract.deploy(sender, arguments, gas_price, gas_limit, value, chain,
                         version)
    logger.info("Contract address: %s", contract.address)

    try:
        _send_or_simulate(tx, args)
    finally:
        tx.dump_to(args.outfile, extra={"address": contract.address.bech32()})
Exemplo n.º 11
0
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)