aboutsummaryrefslogtreecommitdiffstats
path: root/ethutil
diff options
context:
space:
mode:
Diffstat (limited to 'ethutil')
-rw-r--r--ethutil/big.go4
-rw-r--r--ethutil/config.go54
-rw-r--r--ethutil/value.go2
3 files changed, 46 insertions, 14 deletions
diff --git a/ethutil/big.go b/ethutil/big.go
index 891d476ad..1c25a4784 100644
--- a/ethutil/big.go
+++ b/ethutil/big.go
@@ -49,6 +49,10 @@ func BigD(data []byte) *big.Int {
func BigToBytes(num *big.Int, base int) []byte {
ret := make([]byte, base/8)
+ if len(num.Bytes()) > base/8 {
+ return num.Bytes()
+ }
+
return append(ret[:len(ret)-len(num.Bytes())], num.Bytes()...)
}
diff --git a/ethutil/config.go b/ethutil/config.go
index fb270ce72..916b0d186 100644
--- a/ethutil/config.go
+++ b/ethutil/config.go
@@ -22,26 +22,54 @@ type config struct {
Identifier string
}
+const defaultConf = `
+id = ""
+port = 30303
+upnp = true
+maxpeer = 10
+rpc = false
+rpcport = 8080
+`
+
var Config *config
+func ApplicationFolder(base string) string {
+ usr, _ := user.Current()
+ p := path.Join(usr.HomeDir, base)
+
+ if len(base) > 0 {
+ //Check if the logging directory already exists, create it if not
+ _, err := os.Stat(p)
+ if err != nil {
+ if os.IsNotExist(err) {
+ log.Printf("Debug logging directory %s doesn't exist, creating it\n", p)
+ os.Mkdir(p, 0777)
+
+ }
+ }
+
+ iniFilePath := path.Join(p, "conf.ini")
+ _, err = os.Stat(iniFilePath)
+ if err != nil && os.IsNotExist(err) {
+ file, err := os.Create(iniFilePath)
+ if err != nil {
+ fmt.Println(err)
+ } else {
+ assetPath := path.Join(os.Getenv("GOPATH"), "src", "github.com", "ethereum", "go-ethereum", "ethereal", "assets")
+ file.Write([]byte(defaultConf + "\nasset_path = " + assetPath))
+ }
+ }
+ }
+
+ return p
+}
+
// Read config
//
// Initialize the global Config variable with default settings
func ReadConfig(base string, logTypes LoggerType, id string) *config {
if Config == nil {
- usr, _ := user.Current()
- path := path.Join(usr.HomeDir, base)
-
- if len(base) > 0 {
- //Check if the logging directory already exists, create it if not
- _, err := os.Stat(path)
- if err != nil {
- if os.IsNotExist(err) {
- log.Printf("Debug logging directory %s doesn't exist, creating it\n", path)
- os.Mkdir(path, 0777)
- }
- }
- }
+ path := ApplicationFolder(base)
Config = &config{ExecPath: path, Debug: true, Ver: "0.5.0 RC11"}
Config.Identifier = id
diff --git a/ethutil/value.go b/ethutil/value.go
index 83600abc2..c86c24a7a 100644
--- a/ethutil/value.go
+++ b/ethutil/value.go
@@ -176,7 +176,7 @@ func (val *Value) Get(idx int) *Value {
}
if idx < 0 {
- panic("negative idx for Value Get")
+ return NewValue(nil)
}
return NewValue(d[idx])