コード例 #1
0
ファイル: commands.py プロジェクト: vforvalerio87/snet-cli
    def create(self):
        identity = {}

        identity_name = self.args.identity_name
        self._ensure(
            not identity_name in self.config.get_all_identities_names(),
            "identity_name {} already exists".format(identity_name))

        identity_type = self.args.identity_type
        identity["identity_type"] = identity_type

        for kw, is_secret in get_kws_for_identity_type(identity_type):
            value = getattr(self.args, kw)
            if value is None and is_secret:
                kw_prompt = "{}: ".format(" ".join(kw.capitalize().split("_")))
                value = getpass.getpass(kw_prompt) or None
            self._ensure(
                value is not None,
                "--{} is required for identity_type {}".format(
                    kw, identity_type))
            identity[kw] = value

        if (self.args.network):
            identity["network"] = self.args.network
        identity["default_wallet_index"] = self.args.wallet_index
        self.config.add_identity(identity_name, identity, self.out_f)
コード例 #2
0
ファイル: commands.py プロジェクト: mdheller/snet-cli
    def list(self):
        for identity_section in filter(lambda x: x.startswith("identity."), self.config.sections()):
            identity = self.config[identity_section]
            key_is_secret_lookup = {}

            identity_type = self.config.get(identity_section, 'identity_type')
            for kw, is_secret in get_kws_for_identity_type(identity_type):
                key_is_secret_lookup[kw] = is_secret

            self._pprint({
                identity_section[len("identity."):]: {
                    k: (v if not key_is_secret_lookup.get(k, False) else "xxxxxx") for k, v in identity.items()
                }
            })
コード例 #3
0
 def init(self):
     self._printout(
         "Create your first identity. This will be used to authenticate and sign requests pertaining\n"
         "to the blockchain.\n"
         "\n"
         "The available identity types are:\n"
         "    - 'rpc' (yields to a required ethereum json-rpc endpoint for signing using a given wallet\n"
         "          index)\n"
         "    - 'mnemonic' (uses a required bip39 mnemonic for HDWallet/account derivation and signing\n"
         "          using a given wallet index)\n"
         "    - 'key' (uses a required hex-encoded private key for signing)\n"
         "    - 'ledger' (yields to a required ledger nano s device for signing using a given wallet\n"
         "          index)\n"
         "    - 'trezor' (yields to a required trezor device for signing using a given wallet index)\n"
         "          Note that trezor devices currently implement a message signing scheme that is at\n"
         "          odds with all other available tools. As such, trezor-based identities are currently\n"
         "          only partially-functional with the snet cli (they cannot be used to call services\n"
         "          using 'snet client')."
         "\n"
         "Create additional identities by running 'snet identity create', and switch identities by \n"
         "running 'snet identity <identity_name>'.\n")
     create_identity_kwargs = {}
     identity_name = input(
         "Choose a name for your first identity: \n") or None
     self._ensure(identity_name is not None, "identity name is required")
     create_identity_kwargs["identity_name"] = identity_name
     identity_type = input(
         "Select an identity type for your first identity (choose from {}): \n"
         .format(get_identity_types())) or None
     self._ensure(
         identity_type in get_identity_types(),
         "identity type {} not in {}".format(identity_type,
                                             get_identity_types()))
     create_identity_kwargs["identity_type"] = identity_type
     for kw, is_secret in get_kws_for_identity_type(identity_type):
         kw_prompt = "{}: \n".format(" ".join(kw.capitalize().split("_")))
         if is_secret:
             value = getpass.getpass(kw_prompt) or None
         else:
             value = input(kw_prompt) or None
         self._ensure(value is not None,
                      "{} is required".format(kw.split("_")))
         create_identity_kwargs[kw] = value
     IdentityCommand(self.config,
                     DefaultAttributeObject(**create_identity_kwargs),
                     self.err_f, self.err_f).create()
     self._set_key("identity_name", identity_name, out_f=self.err_f)
コード例 #4
0
ファイル: commands.py プロジェクト: arturgontijo/snet-cli
    def create(self):
        identity = {}

        identity_name = self.args.identity_name
        self._ensure(not identity_name in self.config.get_all_identities_names(), "identity_name {} already exists".format(identity_name))

        identity_type = self.args.identity_type
        identity["identity_type"] = identity_type

        for kw, is_secret in get_kws_for_identity_type(identity_type):
            value = getattr(self.args, kw)
            if value is None and is_secret:
                kw_prompt = "{}: ".format(" ".join(kw.capitalize().split("_")))
                value = getpass.getpass(kw_prompt) or None
            self._ensure(value is not None, "--{} is required for identity_type {}".format(kw, identity_type))
            identity[kw] = value

        if (self.args.network):
            identity["network"] = self.args.network
        identity["default_wallet_index"] = self.args.wallet_index
        self.config.add_identity(identity_name, identity, self.out_f)
コード例 #5
0
    def create(self):
        identity = {}

        identity_name = self.args.identity_name
        self._ensure(
            not self.config.has_section("identity.{}".format(identity_name)),
            "identity_name {} already in use".format(identity_name))

        identity_type = self.args.identity_type
        identity["identity_type"] = identity_type

        for kw, is_secret in get_kws_for_identity_type(identity_type):
            value = getattr(self.args, kw)
            if value is None and is_secret:
                kw_prompt = "{}: ".format(" ".join(kw.capitalize().split("_")))
                value = getpass.getpass(kw_prompt) or None
            self._ensure(
                value is not None,
                "--{} is required for identity_type {}".format(
                    kw, identity_type))
            identity[kw] = value

        self.config["identity.{}".format(identity_name)] = identity
        self.config.persist()