@@ -13,6 +13,15 @@ import {
1313 saveKeystore ,
1414} from "../src/lib/keystore.js" ;
1515
16+ function generateSeed ( ) : { seed : string ; address : string ; wallet : Wallet } {
17+ const wallet = Wallet . generate ( ) ;
18+ return {
19+ seed : wallet . seed as string ,
20+ address : wallet . classicAddress ,
21+ wallet,
22+ } ;
23+ }
24+
1625describe ( "keystore" , ( ) => {
1726 let dir : string ;
1827
@@ -25,14 +34,9 @@ describe("keystore", () => {
2534 } ) ;
2635
2736 it ( "encrypts and decrypts a seed round-trip" , ( ) => {
28- const wallet = Wallet . generate ( ) ;
37+ const { seed , address , wallet } = generateSeed ( ) ;
2938 const password = "test-password-123" ;
30- const keystore = encryptSeed (
31- "alice" ,
32- wallet . seed ! ,
33- wallet . classicAddress ,
34- password ,
35- ) ;
39+ const keystore = encryptSeed ( "alice" , seed , address , password ) ;
3640 const secret = decryptSecret ( keystore , password ) ;
3741 expect ( secret . type ) . toBe ( "seed" ) ;
3842 expect ( secret . data ) . toBe ( wallet . seed ) ;
@@ -56,10 +60,10 @@ describe("keystore", () => {
5660 } ) ;
5761
5862 it ( "decryptSecret handles both types" , ( ) => {
59- const wallet = Wallet . generate ( ) ;
63+ const { seed , address , wallet } = generateSeed ( ) ;
6064 const pw = "pw" ;
6165
62- const seedKs = encryptSeed ( "s" , wallet . seed ! , wallet . classicAddress , pw ) ;
66+ const seedKs = encryptSeed ( "s" , seed , address , pw ) ;
6367 const kpKs = encryptKeypair (
6468 "k" ,
6569 wallet . publicKey ,
@@ -79,39 +83,24 @@ describe("keystore", () => {
7983 } ) ;
8084
8185 it ( "fails to decrypt with wrong password" , ( ) => {
82- const wallet = Wallet . generate ( ) ;
83- const keystore = encryptSeed (
84- "bob" ,
85- wallet . seed ! ,
86- wallet . classicAddress ,
87- "correct" ,
88- ) ;
86+ const { seed, address } = generateSeed ( ) ;
87+ const keystore = encryptSeed ( "bob" , seed , address , "correct" ) ;
8988 expect ( ( ) => decryptSecret ( keystore , "wrong" ) ) . toThrow ( ) ;
9089 } ) ;
9190
9291 it ( "stores the correct address" , ( ) => {
93- const wallet = Wallet . generate ( ) ;
94- const keystore = encryptSeed (
95- "charlie" ,
96- wallet . seed ! ,
97- wallet . classicAddress ,
98- "pw" ,
99- ) ;
100- expect ( keystore . address ) . toBe ( wallet . classicAddress ) ;
92+ const { seed, address } = generateSeed ( ) ;
93+ const keystore = encryptSeed ( "charlie" , seed , address , "pw" ) ;
94+ expect ( keystore . address ) . toBe ( address ) ;
10195 } ) ;
10296
10397 it ( "saves, loads, lists, and removes keystores" , ( ) => {
104- const wallet = Wallet . generate ( ) ;
105- const keystore = encryptSeed (
106- "dave" ,
107- wallet . seed ! ,
108- wallet . classicAddress ,
109- "pw" ,
110- ) ;
98+ const { seed, address } = generateSeed ( ) ;
99+ const keystore = encryptSeed ( "dave" , seed , address , "pw" ) ;
111100
112101 saveKeystore ( keystore , dir ) ;
113102 const loaded = loadKeystore ( "dave" , dir ) ;
114- expect ( loaded . address ) . toBe ( wallet . classicAddress ) ;
103+ expect ( loaded . address ) . toBe ( address ) ;
115104
116105 const list = listKeystores ( dir ) ;
117106 expect ( list ) . toHaveLength ( 1 ) ;
@@ -126,13 +115,8 @@ describe("keystore", () => {
126115 } ) ;
127116
128117 it ( "throws when saving a duplicate name" , ( ) => {
129- const wallet = Wallet . generate ( ) ;
130- const keystore = encryptSeed (
131- "dup" ,
132- wallet . seed ! ,
133- wallet . classicAddress ,
134- "pw" ,
135- ) ;
118+ const { seed, address } = generateSeed ( ) ;
119+ const keystore = encryptSeed ( "dup" , seed , address , "pw" ) ;
136120 saveKeystore ( keystore , dir ) ;
137121 expect ( ( ) => saveKeystore ( keystore , dir ) ) . toThrow ( / a l r e a d y e x i s t s / ) ;
138122 } ) ;
0 commit comments