case class CreateStorageCmd(toolConf: ErgoToolConfig, name: String, mnemonic: Mnemonic, storagePass: Array[Char], storageDir: String, storageFileName: String) extends Cmd with Product with Serializable
Create a new json file with encrypted content storing a secret key.
The format of secret file corresponds to org.ergoplatform.wallet.secrets.EncryptedSecret.
By default it uses the following cipher parameters {"prf":"HmacSHA256","c":128000,"dkLen":256}
which information is openly stored in the storage file in order to be able to decipher it (see
org.ergoplatform.wallet.settings.EncryptionSettings).
Command steps:
1) request the user to enter a mnemonic phrase (or read it from input stream)
2) request the user to enter a mnemonic password twice
3) request the user to enter a storage encryption password twice (storagePass
4) use the (mnemonic, mnemonicPass) pair instance to generate secret seed
(see Mnemonic.toSeed)
5) use storagePass to encrypt seed
with AES using "AES/GCM/NoPadding" javax.crypto.Cipher
6) save encrypted seed
(along with additional data necessary for decryption) in the given file
(storageFileName) of the given directory (storageDir).
7) print the path to the created file to the console output
- mnemonic
instance of Mnemonic holding both mnemonic phrase and mnemonic password.
- storagePass
password used to encrypt the file and which is necessary to access and decipher the file.
- storageDir
directory (relative to the current) where to put storage file (default is "storage")
- storageFileName
name of the storage file (default is "secret.json")
- Alphabetic
- By Inheritance
- CreateStorageCmd
- Serializable
- Serializable
- Product
- Equals
- Cmd
- AnyRef
- Any
- Hide All
- Show All
- Public
- All
Instance Constructors
-
new
CreateStorageCmd(toolConf: ErgoToolConfig, name: String, mnemonic: Mnemonic, storagePass: Array[Char], storageDir: String, storageFileName: String)
- mnemonic
instance of Mnemonic holding both mnemonic phrase and mnemonic password.
- storagePass
password used to encrypt the file and which is necessary to access and decipher the file.
- storageDir
directory (relative to the current) where to put storage file (default is "storage")
- storageFileName
name of the storage file (default is "secret.json")
Value Members
-
final
def
!=(arg0: Any): Boolean
- Definition Classes
- AnyRef → Any
-
final
def
##(): Int
- Definition Classes
- AnyRef → Any
-
final
def
==(arg0: Any): Boolean
- Definition Classes
- AnyRef → Any
-
def
apiKey: String
ApiKey which is used for Ergo node API authentication.
ApiKey which is used for Ergo node API authentication. This is a secret key whose hash was used in Ergo node config. This is only necessary to communicate to the protected parts of node API.
- Definition Classes
- Cmd
-
def
apiUrl: String
Returns the url of the Ergo blockchain node used to communicate with the network.
Returns the url of the Ergo blockchain node used to communicate with the network.
- Definition Classes
- Cmd
-
final
def
asInstanceOf[T0]: T0
- Definition Classes
- Any
-
def
clone(): AnyRef
- Attributes
- protected[java.lang]
- Definition Classes
- AnyRef
- Annotations
- @native() @throws( ... )
-
final
def
eq(arg0: AnyRef): Boolean
- Definition Classes
- AnyRef
-
def
error(msg: String): Nothing
Helper method to throw a new CmdException from this command.
Helper method to throw a new CmdException from this command.
- Definition Classes
- Cmd
-
def
finalize(): Unit
- Attributes
- protected[java.lang]
- Definition Classes
- AnyRef
- Annotations
- @throws( classOf[java.lang.Throwable] )
-
final
def
getClass(): Class[_]
- Definition Classes
- AnyRef → Any
- Annotations
- @native()
-
final
def
isInstanceOf[T0]: Boolean
- Definition Classes
- Any
- val mnemonic: Mnemonic
-
val
name: String
Returns the name of this command (Example:
send
,mnemonic
etc.)Returns the name of this command (Example:
send
,mnemonic
etc.)- Definition Classes
- CreateStorageCmd → Cmd
-
final
def
ne(arg0: AnyRef): Boolean
- Definition Classes
- AnyRef
-
def
networkType: NetworkType
Returns the network type (MAINNET or TESTNET) ErgoTool is expected to communicate.
-
final
def
notify(): Unit
- Definition Classes
- AnyRef
- Annotations
- @native()
-
final
def
notifyAll(): Unit
- Definition Classes
- AnyRef
- Annotations
- @native()
-
def
run(ctx: AppContext): Unit
Runs this command using given AppContext.
Runs this command using given AppContext.
- ctx
context information of this command execution collected from command line, configuration file etc.
- Definition Classes
- CreateStorageCmd → Cmd
- Exceptions thrown
CmdException
when command execution fails
- val storageDir: String
- val storageFileName: String
- val storagePass: Array[Char]
-
final
def
synchronized[T0](arg0: ⇒ T0): T0
- Definition Classes
- AnyRef
-
val
toolConf: ErgoToolConfig
Returns current tool configuration parameters
Returns current tool configuration parameters
- Definition Classes
- CreateStorageCmd → Cmd
-
final
def
wait(): Unit
- Definition Classes
- AnyRef
- Annotations
- @throws( ... )
-
final
def
wait(arg0: Long, arg1: Int): Unit
- Definition Classes
- AnyRef
- Annotations
- @throws( ... )
-
final
def
wait(arg0: Long): Unit
- Definition Classes
- AnyRef
- Annotations
- @native() @throws( ... )