def _deploy_kwargs(args, private_key_accepted=True): from_addr = ( getattr(args, "from") and bytes.fromhex(getattr(args, "from")) or getattr(args, "public_key") and read_pem_key(args.public_key) or private_to_public_key(args.private_key) ) if from_addr and len(from_addr) != 32: raise Exception( "--from must be 32 bytes encoded as 64 characters long hexadecimal" ) if not (args.payment_amount or args.payment_args): args.payment_amount = DEFAULT_PAYMENT_AMOUNT if args.payment_amount: args.payment_args = ABI.args_to_json( ABI.args([ABI.big_int("amount", int(args.payment_amount))]) ) d = dict( from_addr=from_addr, gas_price=args.gas_price, payment=args.payment, session=args.session, public_key=args.public_key or None, session_args=args.session_args and ABI.args_from_json(args.session_args) or None, payment_args=args.payment_args and ABI.args_from_json(args.payment_args) or None, payment_hash=args.payment_hash and bytes.fromhex(args.payment_hash), payment_name=args.payment_name, payment_uref=args.payment_uref and bytes.fromhex(args.payment_uref), session_hash=args.session_hash and bytes.fromhex(args.session_hash), session_name=args.session_name, session_uref=args.session_uref and bytes.fromhex(args.session_uref), ttl_millis=args.ttl_millis, dependencies=args.dependencies, chain_name=args.chain_name, ) if private_key_accepted: d["private_key"] = args.private_key or None return d
def test_legacy_args_from_json(): json_str = json.dumps(LEGACY_ARGS) args = ABI.args_from_json(json_str) assert args[0] == ABI.long_value("amount", long_value) assert args[1] == ABI.account("account", account) assert args[2] == ABI.optional_value("main_purse", None) assert args[3] == ABI.big_int("number", big_int_value) assert args[4] == ABI.bytes_value("my_bytes", account) assert args[5] == ABI.key_hash("my_hash", account) assert args[6] == ABI.key_address("my_address", account) assert args[7] == ABI.key_uref("my_uref", account, access_rights=5) assert args[8] == ABI.key_local("my_local", account)
def _deploy_kwargs(args, private_key_accepted=True): from_addr = (getattr(args, "from") and bytes.fromhex(getattr(args, "from")) or private_to_public_key(args.private_key)) if from_addr and len(from_addr) != 32: raise Exception( "--from must be 32 bytes encoded as 64 characters long hexadecimal" ) if args.payment_amount: args.payment_args = ABI.args_to_json( ABI.args([ABI.big_int("amount", int(args.payment_amount))])) # Unless one of payment* options supplied use bundled standard-payment if not any((args.payment, args.payment_name, args.payment_hash, args.payment_uref)): args.payment = bundled_contract("standard_payment.wasm") d = dict( from_addr=from_addr, gas_price=args.gas_price, payment=args.payment or args.session, session=args.session, public_key=args.public_key or None, session_args=args.session_args and ABI.args_from_json(args.session_args) or None, payment_args=args.payment_args and ABI.args_from_json(args.payment_args) or None, payment_hash=args.payment_hash and bytes.fromhex(args.payment_hash), payment_name=args.payment_name, payment_uref=args.payment_uref and bytes.fromhex(args.payment_uref), session_hash=args.session_hash and bytes.fromhex(args.session_hash), session_name=args.session_name, session_uref=args.session_uref and bytes.fromhex(args.session_uref), ttl_millis=args.ttl_millis, dependencies=args.dependencies, chain_name=args.chain_name, ) if private_key_accepted: d["private_key"] = args.private_key or None return d