aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorzsfelfoldi <zsfelfoldi@gmail.com>2015-04-08 19:22:31 +0800
committerzelig <viktor.tron@gmail.com>2015-04-20 03:57:49 +0800
commitc4b7d4d3f77160fba1ab3d8366cb2657a90e2282 (patch)
tree34f15cad05c00f2ab60f8e0084a1a869030b9a13
parentb46e15217131e4ebe64e1ee55594c3ab0620395c (diff)
downloaddexon-c4b7d4d3f77160fba1ab3d8366cb2657a90e2282.tar
dexon-c4b7d4d3f77160fba1ab3d8366cb2657a90e2282.tar.gz
dexon-c4b7d4d3f77160fba1ab3d8366cb2657a90e2282.tar.bz2
dexon-c4b7d4d3f77160fba1ab3d8366cb2657a90e2282.tar.lz
dexon-c4b7d4d3f77160fba1ab3d8366cb2657a90e2282.tar.xz
dexon-c4b7d4d3f77160fba1ab3d8366cb2657a90e2282.tar.zst
dexon-c4b7d4d3f77160fba1ab3d8366cb2657a90e2282.zip
NatSpec cli option, resolver tests passing
-rw-r--r--cmd/geth/js.go12
-rw-r--r--cmd/geth/main.go1
-rw-r--r--cmd/utils/flags.go43
-rw-r--r--common/resolver/resolver.go1
-rw-r--r--common/resolver/resolver_test.go17
-rw-r--r--eth/backend.go3
6 files changed, 45 insertions, 32 deletions
diff --git a/cmd/geth/js.go b/cmd/geth/js.go
index d5deea93f..6e5a6f1c7 100644
--- a/cmd/geth/js.go
+++ b/cmd/geth/js.go
@@ -143,10 +143,14 @@ var net = web3.net;
var ds, _ = docserver.New(utils.JSpathFlag.String())
func (self *jsre) ConfirmTransaction(tx string) bool {
- notice := natspec.GetNotice(self.xeth, tx, ds)
- fmt.Println(notice)
- answer, _ := self.Prompt("Confirm Transaction\n[y/n] ")
- return strings.HasPrefix(strings.Trim(answer, " "), "y")
+ if self.ethereum.NatSpec {
+ notice := natspec.GetNotice(self.xeth, tx, ds)
+ fmt.Println(notice)
+ answer, _ := self.Prompt("Confirm Transaction\n[y/n] ")
+ return strings.HasPrefix(strings.Trim(answer, " "), "y")
+ } else {
+ return true
+ }
}
func (self *jsre) UnlockAccount(addr []byte) bool {
diff --git a/cmd/geth/main.go b/cmd/geth/main.go
index dab167bbb..5b523da3e 100644
--- a/cmd/geth/main.go
+++ b/cmd/geth/main.go
@@ -231,6 +231,7 @@ JavaScript API. See https://github.com/ethereum/go-ethereum/wiki/Javascipt-Conso
utils.MinerThreadsFlag,
utils.MiningEnabledFlag,
utils.NATFlag,
+ utils.NatspecEnabledFlag,
utils.NodeKeyFileFlag,
utils.NodeKeyHexFlag,
utils.RPCEnabledFlag,
diff --git a/cmd/utils/flags.go b/cmd/utils/flags.go
index a1d9eedda..974fabbdc 100644
--- a/cmd/utils/flags.go
+++ b/cmd/utils/flags.go
@@ -93,6 +93,10 @@ var (
Name: "identity",
Usage: "node name",
}
+ NatspecEnabledFlag = cli.BoolFlag{
+ Name: "natspec",
+ Usage: "Enable NatSpec confirmation notice",
+ }
// miner settings
MinerThreadsFlag = cli.IntFlag{
@@ -252,26 +256,25 @@ func MakeEthConfig(clientID, version string, ctx *cli.Context) *eth.Config {
}
return &eth.Config{
- Name: common.MakeName(clientID, version),
- DataDir: ctx.GlobalString(DataDirFlag.Name),
- ProtocolVersion: ctx.GlobalInt(ProtocolVersionFlag.Name),
- BlockChainVersion: ctx.GlobalInt(BlockchainVersionFlag.Name),
- SkipBcVersionCheck: false,
- NetworkId: ctx.GlobalInt(NetworkIdFlag.Name),
- LogFile: ctx.GlobalString(LogFileFlag.Name),
- LogLevel: ctx.GlobalInt(LogLevelFlag.Name),
- LogJSON: ctx.GlobalString(LogJSONFlag.Name),
- Etherbase: ctx.GlobalString(EtherbaseFlag.Name),
- MinerThreads: ctx.GlobalInt(MinerThreadsFlag.Name),
- AccountManager: GetAccountManager(ctx),
- VmDebug: ctx.GlobalBool(VMDebugFlag.Name),
- MaxPeers: ctx.GlobalInt(MaxPeersFlag.Name),
- Port: ctx.GlobalString(ListenPortFlag.Name),
- NAT: GetNAT(ctx),
- NodeKey: GetNodeKey(ctx),
- Shh: true,
- Dial: true,
- BootNodes: ctx.GlobalString(BootnodesFlag.Name),
+ Name: common.MakeName(clientID, version),
+ DataDir: ctx.GlobalString(DataDirFlag.Name),
+ ProtocolVersion: ctx.GlobalInt(ProtocolVersionFlag.Name),
+ NetworkId: ctx.GlobalInt(NetworkIdFlag.Name),
+ LogFile: ctx.GlobalString(LogFileFlag.Name),
+ LogLevel: ctx.GlobalInt(LogLevelFlag.Name),
+ LogJSON: ctx.GlobalString(LogJSONFlag.Name),
+ Etherbase: ctx.GlobalString(EtherbaseFlag.Name),
+ MinerThreads: ctx.GlobalInt(MinerThreadsFlag.Name),
+ AccountManager: GetAccountManager(ctx),
+ VmDebug: ctx.GlobalBool(VMDebugFlag.Name),
+ MaxPeers: ctx.GlobalInt(MaxPeersFlag.Name),
+ Port: ctx.GlobalString(ListenPortFlag.Name),
+ NAT: GetNAT(ctx),
+ NatSpec: ctx.GlobalBool(NatspecEnabledFlag.Name),
+ NodeKey: GetNodeKey(ctx),
+ Shh: true,
+ Dial: true,
+ BootNodes: ctx.GlobalString(BootnodesFlag.Name),
}
}
diff --git a/common/resolver/resolver.go b/common/resolver/resolver.go
index 9c71ac85f..2858a049d 100644
--- a/common/resolver/resolver.go
+++ b/common/resolver/resolver.go
@@ -81,5 +81,6 @@ func storageAddress(varidx uint32, key []byte) string {
data := make([]byte, 64)
binary.BigEndian.PutUint32(data[60:64], varidx)
copy(data[0:32], key[0:32])
+ //fmt.Printf("%x %v\n", key, common.Bytes2Hex(crypto.Sha3(data)))
return "0x" + common.Bytes2Hex(crypto.Sha3(data))
}
diff --git a/common/resolver/resolver_test.go b/common/resolver/resolver_test.go
index 17a1c4f94..7d570cbc6 100644
--- a/common/resolver/resolver_test.go
+++ b/common/resolver/resolver_test.go
@@ -14,7 +14,7 @@ type testBackend struct {
var (
text = "test"
- codehash = common.RightPadString("1234", 64)
+ codehash = "1234" //common.RightPadString("1234", 64)
hash = common.Bytes2Hex(crypto.Sha3([]byte(text)))
url = "bzz://bzzhash/my/path/contr.act"
)
@@ -23,13 +23,13 @@ func NewTestBackend() *testBackend {
self := &testBackend{}
self.contracts = make(map[string](map[string]string))
- self.contracts[HashRegContractAddress] = make(map[string]string)
- key := storageAddress(1, common.Hex2Bytes(codehash))
- self.contracts[HashRegContractAddress][key] = hash
+ self.contracts["0x"+HashRegContractAddress] = make(map[string]string)
+ key := storageAddress(1, common.Hex2BytesFixed(codehash, 32))
+ self.contracts["0x"+HashRegContractAddress][key] = "0x" + hash
- self.contracts[URLHintContractAddress] = make(map[string]string)
- key = storageAddress(1, common.Hex2Bytes(hash))
- self.contracts[URLHintContractAddress][key] = url
+ self.contracts["0x"+URLHintContractAddress] = make(map[string]string)
+ key = storageAddress(1, common.Hex2BytesFixed(hash, 32))
+ self.contracts["0x"+URLHintContractAddress][key] = "0x" + common.Bytes2Hex([]byte(url))
return self
}
@@ -48,6 +48,7 @@ func TestKeyToContentHash(t *testing.T) {
res := New(b, URLHintContractAddress, HashRegContractAddress)
chash := common.Hash{}
copy(chash[:], common.Hex2BytesFixed(codehash, 32))
+
got, err := res.KeyToContentHash(chash)
if err != nil {
t.Errorf("expected no error, got %v", err)
@@ -62,7 +63,7 @@ func TestContentHashToUrl(t *testing.T) {
b := NewTestBackend()
res := New(b, URLHintContractAddress, HashRegContractAddress)
chash := common.Hash{}
- copy(chash[:], common.Hex2Bytes(hash))
+ copy(chash[:], common.Hex2BytesFixed(hash, 32))
got, err := res.ContentHashToUrl(chash)
if err != nil {
t.Errorf("expected no error, got %v", err)
diff --git a/eth/backend.go b/eth/backend.go
index 264753aba..ec2444836 100644
--- a/eth/backend.go
+++ b/eth/backend.go
@@ -50,6 +50,7 @@ type Config struct {
LogLevel int
LogJSON string
VmDebug bool
+ NatSpec bool
MaxPeers int
Port string
@@ -144,6 +145,7 @@ type Ethereum struct {
// logger logger.LogSystem
Mining bool
+ NatSpec bool
DataDir string
etherbase common.Address
clientVersion string
@@ -205,6 +207,7 @@ func New(config *Config) (*Ethereum, error) {
clientVersion: config.Name, // TODO should separate from Name
ethVersionId: config.ProtocolVersion,
netVersionId: config.NetworkId,
+ NatSpec: config.NatSpec,
}
eth.chainManager = core.NewChainManager(blockDb, stateDb, eth.EventMux())