// MakeAccountManager creates an account manager from set command line flags. func MakeAccountManager(ctx *cli.Context) *accounts.Manager { // Create the keystore crypto primitive, light if requested scryptN := accounts.StandardScryptN scryptP := accounts.StandardScryptP if ctx.GlobalBool(LightKDFFlag.Name) { scryptN = accounts.LightScryptN scryptP = accounts.LightScryptP } datadir := MustMakeDataDir(ctx) keydir := MakeKeyStoreDir(datadir, ctx) return accounts.NewManager(keydir, scryptN, scryptP) }
func testREPL(t *testing.T, config func(*exp.Config)) (string, *testjethre, *exp.Expanse) { tmp, err := ioutil.TempDir("", "gexp-test") if err != nil { t.Fatal(err) } db, _ := ethdb.NewMemDatabase() core.WriteGenesisBlockForTesting(db, core.GenesisAccount{common.HexToAddress(testAddress), common.String2Big(testBalance)}) ks := crypto.NewKeyStorePlain(filepath.Join(tmp, "keystore")) am := accounts.NewManager(ks) conf := &exp.Config{ NodeKey: testNodeKey, DataDir: tmp, AccountManager: am, MaxPeers: 0, Name: "test", DocRoot: "/", SolcPath: testSolcPath, PowTest: true, NewDB: func(path string) (ethdb.Database, error) { return db, nil }, } if config != nil { config(conf) } expanse, err := exp.New(conf) if err != nil { t.Fatal("%v", err) } keyb, err := crypto.HexToECDSA(testKey) if err != nil { t.Fatal(err) } key := crypto.NewKeyFromECDSA(keyb) err = ks.StoreKey(key, "") if err != nil { t.Fatal(err) } err = am.Unlock(key.Address, "") if err != nil { t.Fatal(err) } assetPath := filepath.Join(os.Getenv("GOPATH"), "src", "github.com", "expanse", "go-expanse", "cmd", "mist", "assets", "ext") client := comms.NewInProcClient(codec.JSON) tf := &testjethre{client: expanse.HTTPClient()} repl := newJSRE(expanse, assetPath, "", client, false, tf) tf.jsre = repl return tmp, tf, expanse }
func runBlockTest(test *BlockTest) error { ks := crypto.NewKeyStorePassphrase(filepath.Join(common.DefaultDataDir(), "keystore"), crypto.StandardScryptN, crypto.StandardScryptP) am := accounts.NewManager(ks) db, _ := ethdb.NewMemDatabase() cfg := &exp.Config{ DataDir: common.DefaultDataDir(), Verbosity: 5, Etherbase: common.Address{}, AccountManager: am, NewDB: func(path string) (ethdb.Database, error) { return db, nil }, } cfg.GenesisBlock = test.Genesis // import pre accounts & construct test genesis block & state root _, err := test.InsertPreState(db, am) if err != nil { return fmt.Errorf("InsertPreState: %v", err) } expanse, err := exp.New(cfg) if err != nil { return err } err = expanse.Start() if err != nil { return err } cm := expanse.BlockChain() //vm.Debug = true validBlocks, err := test.TryBlocksInsert(cm) if err != nil { return err } lastblockhash := common.HexToHash(test.lastblockhash) cmlast := cm.LastBlockHash() if lastblockhash != cmlast { return fmt.Errorf("lastblockhash validation mismatch: want: %x, have: %x", lastblockhash, cmlast) } newDB, err := cm.State() if err != nil { return err } if err = test.ValidatePostState(newDB); err != nil { return fmt.Errorf("post state validation failed: %v", err) } return test.ValidateImportedHeaders(cm, validBlocks) }
// MakeChain creates an account manager from set command line flags. func MakeAccountManager(ctx *cli.Context) *accounts.Manager { dataDir := MustDataDir(ctx) if ctx.GlobalBool(TestNetFlag.Name) { dataDir += "/testnet" } scryptN := crypto.StandardScryptN scryptP := crypto.StandardScryptP if ctx.GlobalBool(LightKDFFlag.Name) { scryptN = crypto.LightScryptN scryptP = crypto.LightScryptP } ks := crypto.NewKeyStorePassphrase(filepath.Join(dataDir, "keystore"), scryptN, scryptP) return accounts.NewManager(ks) }
func testEth(t *testing.T) (expanse *exp.Expanse, err error) { tmp, err := ioutil.TempDir("", "natspec-test") if err != nil { t.Fatal(err) } db, _ := ethdb.NewMemDatabase() addr := common.HexToAddress(testAddress) core.WriteGenesisBlockForTesting(db, core.GenesisAccount{addr, common.String2Big(testBalance)}) ks := crypto.NewKeyStorePassphrase(filepath.Join(tmp, "keystore"), crypto.LightScryptN, crypto.LightScryptP) am := accounts.NewManager(ks) keyb, err := crypto.HexToECDSA(testKey) if err != nil { t.Fatal(err) } key := crypto.NewKeyFromECDSA(keyb) err = ks.StoreKey(key, "") if err != nil { t.Fatal(err) } err = am.Unlock(key.Address, "") if err != nil { t.Fatal(err) } // only use minimalistic stack with no networking return exp.New(&exp.Config{ DataDir: tmp, AccountManager: am, Etherbase: common.HexToAddress(testAddress), MaxPeers: 0, PowTest: true, NewDB: func(path string) (ethdb.Database, error) { return db, nil }, GpoMinGasPrice: common.Big1, GpobaseCorrectionFactor: 1, GpoMaxGasPrice: common.Big1, }) }
func testEth(t *testing.T) (expanse *exp.Expanse, err error) { os.RemoveAll("/tmp/exp-natspec/") err = os.MkdirAll("/tmp/exp-natspec/keystore", os.ModePerm) if err != nil { panic(err) } // create a testAddress ks := crypto.NewKeyStorePassphrase("/tmp/exp-natspec/keystore") am := accounts.NewManager(ks) testAccount, err := am.NewAccount("password") if err != nil { panic(err) } testAddress := strings.TrimPrefix(testAccount.Address.Hex(), "0x") db, _ := ethdb.NewMemDatabase() // set up mock genesis with balance on the testAddress core.WriteGenesisBlockForTesting(db, common.HexToAddress(testAddress), common.String2Big(testBalance)) // only use minimalistic stack with no networking expanse, err = exp.New(&exp.Config{ DataDir: "/tmp/exp-natspec", AccountManager: am, MaxPeers: 0, PowTest: true, Etherbase: common.HexToAddress(testAddress), NewDB: func(path string) (common.Database, error) { return db, nil }, }) if err != nil { panic(err) } return }
// MakeChain creates an account manager from set command line flags. func MakeAccountManager(ctx *cli.Context) *accounts.Manager { dataDir := ctx.GlobalString(DataDirFlag.Name) ks := crypto.NewKeyStorePassphrase(filepath.Join(dataDir, "keystore")) return accounts.NewManager(ks) }