JBOKウォレットはひと束の鍵(Just a Bunch Of Keys)をまとめるものだ。リファレンスを書いている時点で、鍵を保管するためにクライアントでこのメソッドを使っている。
これの問題はユーザーが定期的にバックアップをとらなければならないということだ。しかしもし鍵をインポートしたり、鍵を紙にメモしたり、パスワードを変えたりすることをできるようにしたいなら、この機能を使うか、この機能と決定性ウォレットをあわせて使うようなことをする必要がある。私はこれを使わないと決めた。というのは私のHiddenWalletをプライバシー向上のために改良しようとしていたということと、これではなくてより良いウォレット構造を持ち得るからだ。
Console.WriteLine("Seed private key: "+safe.Seed);Console.WriteLine("Seed public key: "+safe.SeedPublicKey);Console.WriteLine("Third child address: "+safe.GetAddress(2));Console.WriteLine("First child private key: "+safe.GetPrivateKey(0));Console.WriteLine("Second child private key and the corresponding address: ");Console.WriteLine(safe.GetPrivateKeyAddressPair(1).PrivateKey);Console.WriteLine(safe.GetPrivateKeyAddressPair(1).Address);Console.WriteLine("The stealth address: "+safe.StealthAddress);Console.WriteLine("Scan and spend private keys for stealth payments:");Console.WriteLine(loadedSafe.ScanPrivateKey);Console.WriteLine(loadedSafe.SpendPrivateKey);
Seed private key: xprv9s21ZrQH143K4RBm26TMm3qwTtR3Eyh22xDEN3TBebgfAvHPPSjxxFnFGDtnNHvqZ7pihGmAc8o9y1UvfEzcxSzyXAnmvTBowCNi69nXsqJ
Seed public key: xpub661MyMwAqRbcGuGE87zN8Bng1vFXeSQsQB8qARroCwDe3icXvz4DW46j7U6fX8NsKhqcxR7K1mDX4gTbtvCGdeJz5M7py3yEqMsjUH2DYhb
Third child address: 17pGpPX1A2sCdqJXsC5BiwdFphFVgJR9nk
First child private key: xprv9ubnoo3dgCYfrWbYBEM71WoBvzwTtQemEdjW836CeWJYunYBskQhq3nrJMvNBCCFpnU5GbgbL1b2QbPHA4rRPESEhqfKzae5oWe7SAMuxAV
Second child private key and the corresponding address:
xprv9ubnoo3dgCYfuE1hVB3F3Sh5YFJUNUjyZ68PDzPNhpmtqWDtD45zucZYMUAjY22HNxaY6tsvGAdJdcyALCMm2mTAvA4pEp1m7y3BSccKY4r
19FHdsj2YT79TuxbWcDMz9opTU28L1memr
The stealth address: vJmuFuLggpgzivm3UUjQguLhMA6C1SnYFJu5N6QkmXYRCU3nG1Ww36VcXy6zXpJvGeVTidxcsu7U19sfB1rxHhzvSNV5eGGLk6G1Cb
Scan and spend private keys for stealth payments:
L5CTS4U27umRfSBu2ztxsyUeMEYzJJk3HvCp3deSQBJWmRSUqCLg
KyXveppF4Xm3KwJgG7EBSi6SxfMTkaDXYYmv7c7xWRcF7yUNpswp
// Creates a mnemonic, a seed, encrypts it and stores in the specified path.publicstaticSafeCreate(outstring mnemonic,string password,string walletFilePath,Network network){var safe =newSafe(password, walletFilePath, network); mnemonic =safe.SetSeed(password).ToString();safe.Save(password, walletFilePath, network);return safe;}