コード例 #1
0
    def create(self,
               name,
               password,
               seed=None,
               passphrase="",
               bip39_derivation=None,
               master=None,
               addresses=None,
               privkeys=None):
        """Create or restore a new wallet"""
        path = self._wallet_path(name)
        if exists(path):
            raise FileExistsError(path)
        storage = WalletStorage(path)

        if addresses is not None:
            wallet = ImportedAddressWallet.from_text(storage, addresses)
        elif privkeys is not None:
            wallet = ImportedPrivkeyWallet.from_text(storage, privkeys)
        else:
            if bip39_derivation is not None:
                ks = keystore.from_bip39_seed(seed, passphrase,
                                              bip39_derivation)
            elif master is not None:
                ks = keystore.from_master_key(master)
            else:
                if seed is None:
                    seed = self.make_seed()
                    print("Your wallet generation seed is:\n\"%s\"" % seed)
                ks = keystore.from_seed(seed, passphrase, False)

            storage.put('keystore', ks.dump())
            wallet = Standard_Wallet(storage)

        wallet.update_password(None, password, True)
コード例 #2
0
    def create(self, name, password, seed=None, passphrase="", bip39_derivation=None,
               master=None, addresses=None, privkeys=None, multisig=False):
        """Create or restore a new wallet"""
        path = self._wallet_path(name)
        if exists(path):
            raise FileExistsError(path)
        storage = WalletStorage(path)

        if addresses is not None:
            wallet = ImportedAddressWallet.from_text(storage, addresses)
        elif privkeys is not None:
            wallet = ImportedPrivkeyWallet.from_text(storage, privkeys)
        else:
            if bip39_derivation is not None:
                ks = keystore.from_seed(seed, passphrase, seed_type='bip39',
                                        derivation=bip39_derivation)
            elif master is not None:
                ks = keystore.from_master_key(master)
            else:
                if seed is None:
                    seed = self.make_seed()
                    print("Your wallet generation seed is:\n\"%s\"" % seed)
                ks = keystore.from_seed(seed, passphrase)

            if not multisig:
                storage.put('keystore', ks.dump())
                wallet = Standard_Wallet(storage)
            else:
                # For multisig wallets, we do not immediately create a wallet storage file.
                # Instead, we just get the keystore; create_multisig() handles wallet storage
                # later, once all cosigners are added.
                return ks.dump()

        wallet.update_password(None, password, encrypt=True)
コード例 #3
0
    def create_multisig(self, name, password, keystores=None, cosigners=None, signatures=None):
        """Create or restore a new wallet"""
        path = self._wallet_path(name)
        if exists(path):
            raise FileExistsError(path)
        storage = WalletStorage(path)

        # Multisig wallet type
        storage.put("wallet_type", "%dof%d" % (signatures, cosigners))
        for i, k in enumerate(keystores, start=1):
            storage.put('x%d/' % i, ast.literal_eval(k))
        storage.write()

        wallet = Multisig_Wallet(storage)
        wallet.update_password(None, password, encrypt=True)
コード例 #4
0
ファイル: console.py プロジェクト: sfoxhq/electron-cash
    def create(self, name, password, seed=None, addresses=None, privkeys=None):
        """Create or restore a new wallet"""
        path = self._wallet_path(name)
        if exists(path):
            raise FileExistsError(path)
        storage = WalletStorage(path)

        if addresses:
            wallet = ImportedAddressWallet.from_text(storage, addresses)
        elif privkeys:
            wallet = ImportedPrivkeyWallet.from_text(storage, privkeys)
        else:
            if seed is None:
                seed = self.make_seed()
                print("Your wallet generation seed is:\n\"%s\"" % seed)
            storage.put('keystore', keystore.from_seed(seed, "", False).dump())
            wallet = Standard_Wallet(storage)

        wallet.update_password(None, password, True)