Created
April 23, 2019 12:50
-
-
Save whilei/22aebfb401036774d2661b8bc9cc086e to your computer and use it in GitHub Desktop.
This file has been truncated, but you can view the full file.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
diff --git a/Dockerfile b/Dockerfile | |
index e87dd35d3..4b205d649 100644 | |
--- a/Dockerfile | |
+++ b/Dockerfile | |
@@ -1,5 +1,5 @@ | |
# Build Geth in a stock Go builder container | |
-FROM golang:1.11-alpine as builder | |
+FROM golang:1.12-alpine as builder | |
RUN apk add --no-cache make gcc musl-dev linux-headers | |
diff --git a/Dockerfile.alltools b/Dockerfile.alltools | |
index e984a1b09..4a4a26f8b 100644 | |
--- a/Dockerfile.alltools | |
+++ b/Dockerfile.alltools | |
@@ -1,5 +1,5 @@ | |
# Build Geth in a stock Go builder container | |
-FROM golang:1.11-alpine as builder | |
+FROM golang:1.12-alpine as builder | |
RUN apk add --no-cache make gcc musl-dev linux-headers | |
diff --git a/accounts/abi/abi.go b/accounts/abi/abi.go | |
index 08d5db979..c5fbc1e77 100644 | |
--- a/accounts/abi/abi.go | |
+++ b/accounts/abi/abi.go | |
@@ -72,19 +72,39 @@ func (abi ABI) Pack(name string, args ...interface{}) ([]byte, error) { | |
} | |
// Unpack output in v according to the abi specification | |
-func (abi ABI) Unpack(v interface{}, name string, output []byte) (err error) { | |
- if len(output) == 0 { | |
+func (abi ABI) Unpack(v interface{}, name string, data []byte) (err error) { | |
+ if len(data) == 0 { | |
return fmt.Errorf("abi: unmarshalling empty output") | |
} | |
// since there can't be naming collisions with contracts and events, | |
// we need to decide whether we're calling a method or an event | |
if method, ok := abi.Methods[name]; ok { | |
- if len(output)%32 != 0 { | |
- return fmt.Errorf("abi: improperly formatted output: %s - Bytes: [%+v]", string(output), output) | |
+ if len(data)%32 != 0 { | |
+ return fmt.Errorf("abi: improperly formatted output: %s - Bytes: [%+v]", string(data), data) | |
} | |
- return method.Outputs.Unpack(v, output) | |
- } else if event, ok := abi.Events[name]; ok { | |
- return event.Inputs.Unpack(v, output) | |
+ return method.Outputs.Unpack(v, data) | |
+ } | |
+ if event, ok := abi.Events[name]; ok { | |
+ return event.Inputs.Unpack(v, data) | |
+ } | |
+ return fmt.Errorf("abi: could not locate named method or event") | |
+} | |
+ | |
+// UnpackIntoMap unpacks a log into the provided map[string]interface{} | |
+func (abi ABI) UnpackIntoMap(v map[string]interface{}, name string, data []byte) (err error) { | |
+ if len(data) == 0 { | |
+ return fmt.Errorf("abi: unmarshalling empty output") | |
+ } | |
+ // since there can't be naming collisions with contracts and events, | |
+ // we need to decide whether we're calling a method or an event | |
+ if method, ok := abi.Methods[name]; ok { | |
+ if len(data)%32 != 0 { | |
+ return fmt.Errorf("abi: improperly formatted output") | |
+ } | |
+ return method.Outputs.UnpackIntoMap(v, data) | |
+ } | |
+ if event, ok := abi.Events[name]; ok { | |
+ return event.Inputs.UnpackIntoMap(v, data) | |
} | |
return fmt.Errorf("abi: could not locate named method or event") | |
} | |
@@ -136,7 +156,7 @@ func (abi *ABI) UnmarshalJSON(data []byte) error { | |
// returns nil if none found | |
func (abi *ABI) MethodById(sigdata []byte) (*Method, error) { | |
if len(sigdata) < 4 { | |
- return nil, fmt.Errorf("data too short (% bytes) for abi method lookup", len(sigdata)) | |
+ return nil, fmt.Errorf("data too short (%d bytes) for abi method lookup", len(sigdata)) | |
} | |
for _, method := range abi.Methods { | |
if bytes.Equal(method.Id(), sigdata[:4]) { | |
diff --git a/accounts/abi/abi_test.go b/accounts/abi/abi_test.go | |
index b9444f9f0..42b60a639 100644 | |
--- a/accounts/abi/abi_test.go | |
+++ b/accounts/abi/abi_test.go | |
@@ -694,6 +694,192 @@ func TestUnpackEvent(t *testing.T) { | |
} | |
} | |
+func TestUnpackEventIntoMap(t *testing.T) { | |
+ const abiJSON = `[{"constant":false,"inputs":[{"name":"memo","type":"bytes"}],"name":"receive","outputs":[],"payable":true,"stateMutability":"payable","type":"function"},{"anonymous":false,"inputs":[{"indexed":false,"name":"sender","type":"address"},{"indexed":false,"name":"amount","type":"uint256"},{"indexed":false,"name":"memo","type":"bytes"}],"name":"received","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"name":"sender","type":"address"}],"name":"receivedAddr","type":"event"}]` | |
+ abi, err := JSON(strings.NewReader(abiJSON)) | |
+ if err != nil { | |
+ t.Fatal(err) | |
+ } | |
+ | |
+ const hexdata = `000000000000000000000000376c47978271565f56deb45495afa69e59c16ab200000000000000000000000000000000000000000000000000000000000000010000000000000000000000000000000000000000000000000000000000000060000000000000000000000000000000000000000000000000000000000000000158` | |
+ data, err := hex.DecodeString(hexdata) | |
+ if err != nil { | |
+ t.Fatal(err) | |
+ } | |
+ if len(data)%32 == 0 { | |
+ t.Errorf("len(data) is %d, want a non-multiple of 32", len(data)) | |
+ } | |
+ | |
+ receivedMap := map[string]interface{}{} | |
+ expectedReceivedMap := map[string]interface{}{ | |
+ "sender": common.HexToAddress("0x376c47978271565f56DEB45495afa69E59c16Ab2"), | |
+ "amount": big.NewInt(1), | |
+ "memo": []byte{88}, | |
+ } | |
+ if err := abi.UnpackIntoMap(receivedMap, "received", data); err != nil { | |
+ t.Error(err) | |
+ } | |
+ if len(receivedMap) != 3 { | |
+ t.Error("unpacked `received` map expected to have length 3") | |
+ } | |
+ if receivedMap["sender"] != expectedReceivedMap["sender"] { | |
+ t.Error("unpacked `received` map does not match expected map") | |
+ } | |
+ if receivedMap["amount"].(*big.Int).Cmp(expectedReceivedMap["amount"].(*big.Int)) != 0 { | |
+ t.Error("unpacked `received` map does not match expected map") | |
+ } | |
+ if !bytes.Equal(receivedMap["memo"].([]byte), expectedReceivedMap["memo"].([]byte)) { | |
+ t.Error("unpacked `received` map does not match expected map") | |
+ } | |
+ | |
+ receivedAddrMap := map[string]interface{}{} | |
+ if err = abi.UnpackIntoMap(receivedAddrMap, "receivedAddr", data); err != nil { | |
+ t.Error(err) | |
+ } | |
+ if len(receivedAddrMap) != 1 { | |
+ t.Error("unpacked `receivedAddr` map expected to have length 1") | |
+ } | |
+ if receivedAddrMap["sender"] != expectedReceivedMap["sender"] { | |
+ t.Error("unpacked `receivedAddr` map does not match expected map") | |
+ } | |
+} | |
+ | |
+func TestUnpackMethodIntoMap(t *testing.T) { | |
+ const abiJSON = `[{"constant":false,"inputs":[{"name":"memo","type":"bytes"}],"name":"receive","outputs":[],"payable":true,"stateMutability":"payable","type":"function"},{"constant":false,"inputs":[],"name":"send","outputs":[{"name":"amount","type":"uint256"}],"payable":true,"stateMutability":"payable","type":"function"},{"constant":false,"inputs":[{"name":"addr","type":"address"}],"name":"get","outputs":[{"name":"hash","type":"bytes"}],"payable":true,"stateMutability":"payable","type":"function"}]` | |
+ abi, err := JSON(strings.NewReader(abiJSON)) | |
+ if err != nil { | |
+ t.Fatal(err) | |
+ } | |
+ const hexdata = `00000000000000000000000000000000000000000000000000000000000000010000000000000000000000000000000000000000000000000000000000000060000000000000000000000000000000000000000000000000000000000000015800000000000000000000000000000000000000000000000000000000000000600000000000000000000000000000000000000000000000000000000000000158000000000000000000000000000000000000000000000000000000000000006000000000000000000000000000000000000000000000000000000000000001580000000000000000000000000000000000000000000000000000000000000060000000000000000000000000000000000000000000000000000000000000015800000000000000000000000000000000000000000000000000000000000000600000000000000000000000000000000000000000000000000000000000000158` | |
+ data, err := hex.DecodeString(hexdata) | |
+ if err != nil { | |
+ t.Fatal(err) | |
+ } | |
+ if len(data)%32 != 0 { | |
+ t.Errorf("len(data) is %d, want a multiple of 32", len(data)) | |
+ } | |
+ | |
+ // Tests a method with no outputs | |
+ receiveMap := map[string]interface{}{} | |
+ if err = abi.UnpackIntoMap(receiveMap, "receive", data); err != nil { | |
+ t.Error(err) | |
+ } | |
+ if len(receiveMap) > 0 { | |
+ t.Error("unpacked `receive` map expected to have length 0") | |
+ } | |
+ | |
+ // Tests a method with only outputs | |
+ sendMap := map[string]interface{}{} | |
+ if err = abi.UnpackIntoMap(sendMap, "send", data); err != nil { | |
+ t.Error(err) | |
+ } | |
+ if len(sendMap) != 1 { | |
+ t.Error("unpacked `send` map expected to have length 1") | |
+ } | |
+ if sendMap["amount"].(*big.Int).Cmp(big.NewInt(1)) != 0 { | |
+ t.Error("unpacked `send` map expected `amount` value of 1") | |
+ } | |
+ | |
+ // Tests a method with outputs and inputs | |
+ getMap := map[string]interface{}{} | |
+ if err = abi.UnpackIntoMap(getMap, "get", data); err != nil { | |
+ t.Error(err) | |
+ } | |
+ if len(sendMap) != 1 { | |
+ t.Error("unpacked `get` map expected to have length 1") | |
+ } | |
+ expectedBytes := []byte{0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 96, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 88, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 96, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 88, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 96, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 88, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 96, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 88, 0} | |
+ if !bytes.Equal(getMap["hash"].([]byte), expectedBytes) { | |
+ t.Errorf("unpacked `get` map expected `hash` value of %v", expectedBytes) | |
+ } | |
+} | |
+ | |
+func TestUnpackIntoMapNamingConflict(t *testing.T) { | |
+ // Two methods have the same name | |
+ var abiJSON = `[{"constant":false,"inputs":[{"name":"memo","type":"bytes"}],"name":"get","outputs":[],"payable":true,"stateMutability":"payable","type":"function"},{"constant":false,"inputs":[],"name":"send","outputs":[{"name":"amount","type":"uint256"}],"payable":true,"stateMutability":"payable","type":"function"},{"constant":false,"inputs":[{"name":"addr","type":"address"}],"name":"get","outputs":[{"name":"hash","type":"bytes"}],"payable":true,"stateMutability":"payable","type":"function"}]` | |
+ abi, err := JSON(strings.NewReader(abiJSON)) | |
+ if err != nil { | |
+ t.Fatal(err) | |
+ } | |
+ var hexdata = `00000000000000000000000000000000000000000000000000000000000000010000000000000000000000000000000000000000000000000000000000000060000000000000000000000000000000000000000000000000000000000000000158` | |
+ data, err := hex.DecodeString(hexdata) | |
+ if err != nil { | |
+ t.Fatal(err) | |
+ } | |
+ if len(data)%32 == 0 { | |
+ t.Errorf("len(data) is %d, want a non-multiple of 32", len(data)) | |
+ } | |
+ getMap := map[string]interface{}{} | |
+ if err = abi.UnpackIntoMap(getMap, "get", data); err == nil { | |
+ t.Error("naming conflict between two methods; error expected") | |
+ } | |
+ | |
+ // Two events have the same name | |
+ abiJSON = `[{"constant":false,"inputs":[{"name":"memo","type":"bytes"}],"name":"receive","outputs":[],"payable":true,"stateMutability":"payable","type":"function"},{"anonymous":false,"inputs":[{"indexed":false,"name":"sender","type":"address"},{"indexed":false,"name":"amount","type":"uint256"},{"indexed":false,"name":"memo","type":"bytes"}],"name":"received","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"name":"sender","type":"address"}],"name":"received","type":"event"}]` | |
+ abi, err = JSON(strings.NewReader(abiJSON)) | |
+ if err != nil { | |
+ t.Fatal(err) | |
+ } | |
+ hexdata = `000000000000000000000000376c47978271565f56deb45495afa69e59c16ab200000000000000000000000000000000000000000000000000000000000000010000000000000000000000000000000000000000000000000000000000000060000000000000000000000000000000000000000000000000000000000000000158` | |
+ data, err = hex.DecodeString(hexdata) | |
+ if err != nil { | |
+ t.Fatal(err) | |
+ } | |
+ if len(data)%32 == 0 { | |
+ t.Errorf("len(data) is %d, want a non-multiple of 32", len(data)) | |
+ } | |
+ receivedMap := map[string]interface{}{} | |
+ if err = abi.UnpackIntoMap(receivedMap, "received", data); err != nil { | |
+ t.Error("naming conflict between two events; no error expected") | |
+ } | |
+ if len(receivedMap) != 1 { | |
+ t.Error("naming conflict between two events; event defined latest in the abi expected to be used") | |
+ } | |
+ | |
+ // Method and event have the same name | |
+ abiJSON = `[{"constant":false,"inputs":[{"name":"memo","type":"bytes"}],"name":"received","outputs":[],"payable":true,"stateMutability":"payable","type":"function"},{"anonymous":false,"inputs":[{"indexed":false,"name":"sender","type":"address"},{"indexed":false,"name":"amount","type":"uint256"},{"indexed":false,"name":"memo","type":"bytes"}],"name":"received","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"name":"sender","type":"address"}],"name":"receivedAddr","type":"event"}]` | |
+ abi, err = JSON(strings.NewReader(abiJSON)) | |
+ if err != nil { | |
+ t.Fatal(err) | |
+ } | |
+ if len(data)%32 == 0 { | |
+ t.Errorf("len(data) is %d, want a non-multiple of 32", len(data)) | |
+ } | |
+ if err = abi.UnpackIntoMap(receivedMap, "received", data); err == nil { | |
+ t.Error("naming conflict between an event and a method; error expected") | |
+ } | |
+ | |
+ // Conflict is case sensitive | |
+ abiJSON = `[{"constant":false,"inputs":[{"name":"memo","type":"bytes"}],"name":"received","outputs":[],"payable":true,"stateMutability":"payable","type":"function"},{"anonymous":false,"inputs":[{"indexed":false,"name":"sender","type":"address"},{"indexed":false,"name":"amount","type":"uint256"},{"indexed":false,"name":"memo","type":"bytes"}],"name":"Received","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"name":"sender","type":"address"}],"name":"receivedAddr","type":"event"}]` | |
+ abi, err = JSON(strings.NewReader(abiJSON)) | |
+ if err != nil { | |
+ t.Fatal(err) | |
+ } | |
+ if len(data)%32 == 0 { | |
+ t.Errorf("len(data) is %d, want a non-multiple of 32", len(data)) | |
+ } | |
+ expectedReceivedMap := map[string]interface{}{ | |
+ "sender": common.HexToAddress("0x376c47978271565f56DEB45495afa69E59c16Ab2"), | |
+ "amount": big.NewInt(1), | |
+ "memo": []byte{88}, | |
+ } | |
+ if err = abi.UnpackIntoMap(receivedMap, "Received", data); err != nil { | |
+ t.Error(err) | |
+ } | |
+ if len(receivedMap) != 3 { | |
+ t.Error("unpacked `received` map expected to have length 3") | |
+ } | |
+ if receivedMap["sender"] != expectedReceivedMap["sender"] { | |
+ t.Error("unpacked `received` map does not match expected map") | |
+ } | |
+ if receivedMap["amount"].(*big.Int).Cmp(expectedReceivedMap["amount"].(*big.Int)) != 0 { | |
+ t.Error("unpacked `received` map does not match expected map") | |
+ } | |
+ if !bytes.Equal(receivedMap["memo"].([]byte), expectedReceivedMap["memo"].([]byte)) { | |
+ t.Error("unpacked `received` map does not match expected map") | |
+ } | |
+} | |
+ | |
func TestABI_MethodById(t *testing.T) { | |
const abiJSON = `[ | |
{"type":"function","name":"receive","constant":false,"inputs":[{"name":"memo","type":"bytes"}],"outputs":[],"payable":true,"stateMutability":"payable"}, | |
diff --git a/accounts/abi/argument.go b/accounts/abi/argument.go | |
index d0a6b035c..501cb1621 100644 | |
--- a/accounts/abi/argument.go | |
+++ b/accounts/abi/argument.go | |
@@ -102,6 +102,16 @@ func (arguments Arguments) Unpack(v interface{}, data []byte) error { | |
return arguments.unpackAtomic(v, marshalledValues[0]) | |
} | |
+// UnpackIntoMap performs the operation hexdata -> mapping of argument name to argument value | |
+func (arguments Arguments) UnpackIntoMap(v map[string]interface{}, data []byte) error { | |
+ marshalledValues, err := arguments.UnpackValues(data) | |
+ if err != nil { | |
+ return err | |
+ } | |
+ | |
+ return arguments.unpackIntoMap(v, marshalledValues) | |
+} | |
+ | |
// unpack sets the unmarshalled value to go format. | |
// Note the dst here must be settable. | |
func unpack(t *Type, dst interface{}, src interface{}) error { | |
@@ -160,6 +170,19 @@ func unpack(t *Type, dst interface{}, src interface{}) error { | |
return nil | |
} | |
+// unpackIntoMap unpacks marshalledValues into the provided map[string]interface{} | |
+func (arguments Arguments) unpackIntoMap(v map[string]interface{}, marshalledValues []interface{}) error { | |
+ // Make sure map is not nil | |
+ if v == nil { | |
+ return fmt.Errorf("abi: cannot unpack into a nil map") | |
+ } | |
+ | |
+ for i, arg := range arguments.NonIndexed() { | |
+ v[arg.Name] = marshalledValues[i] | |
+ } | |
+ return nil | |
+} | |
+ | |
// unpackAtomic unpacks ( hexdata -> go ) a single value | |
func (arguments Arguments) unpackAtomic(v interface{}, marshalledValues interface{}) error { | |
if arguments.LengthNonIndexed() == 0 { | |
diff --git a/accounts/abi/bind/backends/simulated.go b/accounts/abi/bind/backends/simulated.go | |
index 6f46fc149..ac4602fe3 100644 | |
--- a/accounts/abi/bind/backends/simulated.go | |
+++ b/accounts/abi/bind/backends/simulated.go | |
@@ -66,7 +66,7 @@ type SimulatedBackend struct { | |
// NewSimulatedBackend creates a new binding backend using a simulated blockchain | |
// for testing purposes. | |
func NewSimulatedBackend(alloc core.GenesisAlloc, gasLimit uint64) *SimulatedBackend { | |
- database := ethdb.NewMemDatabase() | |
+ database := rawdb.NewMemoryDatabase() | |
genesis := core.Genesis{Config: params.AllEthashProtocolChanges, GasLimit: gasLimit, Alloc: alloc} | |
genesis.MustCommit(database) | |
blockchain, _ := core.NewBlockChain(database, nil, genesis.Config, ethash.NewFaker(), vm.Config{}, nil) | |
@@ -160,10 +160,29 @@ func (b *SimulatedBackend) StorageAt(ctx context.Context, contract common.Addres | |
// TransactionReceipt returns the receipt of a transaction. | |
func (b *SimulatedBackend) TransactionReceipt(ctx context.Context, txHash common.Hash) (*types.Receipt, error) { | |
- receipt, _, _, _ := rawdb.ReadReceipt(b.database, txHash) | |
+ receipt, _, _, _ := rawdb.ReadReceipt(b.database, txHash, b.config) | |
return receipt, nil | |
} | |
+// TransactionByHash checks the pool of pending transactions in addition to the | |
+// blockchain. The isPending return value indicates whether the transaction has been | |
+// mined yet. Note that the transaction may not be part of the canonical chain even if | |
+// it's not pending. | |
+func (b *SimulatedBackend) TransactionByHash(ctx context.Context, txHash common.Hash) (*types.Transaction, bool, error) { | |
+ b.mu.Lock() | |
+ defer b.mu.Unlock() | |
+ | |
+ tx := b.pendingBlock.Transaction(txHash) | |
+ if tx != nil { | |
+ return tx, true, nil | |
+ } | |
+ tx, _, _, _ = rawdb.ReadTransaction(b.database, txHash) | |
+ if tx != nil { | |
+ return tx, false, nil | |
+ } | |
+ return nil, false, ethereum.NotFound | |
+} | |
+ | |
// PendingCodeAt returns the code associated with an account in the pending state. | |
func (b *SimulatedBackend) PendingCodeAt(ctx context.Context, contract common.Address) ([]byte, error) { | |
b.mu.Lock() | |
@@ -445,7 +464,7 @@ func (fb *filterBackend) GetReceipts(ctx context.Context, hash common.Hash) (typ | |
if number == nil { | |
return nil, nil | |
} | |
- return rawdb.ReadReceipts(fb.db, hash, *number), nil | |
+ return rawdb.ReadReceipts(fb.db, hash, *number, fb.bc.Config()), nil | |
} | |
func (fb *filterBackend) GetLogs(ctx context.Context, hash common.Hash) ([][]*types.Log, error) { | |
@@ -453,7 +472,7 @@ func (fb *filterBackend) GetLogs(ctx context.Context, hash common.Hash) ([][]*ty | |
if number == nil { | |
return nil, nil | |
} | |
- receipts := rawdb.ReadReceipts(fb.db, hash, *number) | |
+ receipts := rawdb.ReadReceipts(fb.db, hash, *number, fb.bc.Config()) | |
if receipts == nil { | |
return nil, nil | |
} | |
diff --git a/accounts/abi/bind/backends/simulated_test.go b/accounts/abi/bind/backends/simulated_test.go | |
new file mode 100644 | |
index 000000000..bd75807d7 | |
--- /dev/null | |
+++ b/accounts/abi/bind/backends/simulated_test.go | |
@@ -0,0 +1,82 @@ | |
+// Copyright 2019 The go-ethereum Authors | |
+// This file is part of the go-ethereum library. | |
+// | |
+// The go-ethereum library is free software: you can redistribute it and/or modify | |
+// it under the terms of the GNU Lesser General Public License as published by | |
+// the Free Software Foundation, either version 3 of the License, or | |
+// (at your option) any later version. | |
+// | |
+// The go-ethereum library is distributed in the hope that it will be useful, | |
+// but WITHOUT ANY WARRANTY; without even the implied warranty of | |
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the | |
+// GNU Lesser General Public License for more details. | |
+// | |
+// You should have received a copy of the GNU Lesser General Public License | |
+// along with the go-ethereum library. If not, see <http://www.gnu.org/licenses/>. | |
+ | |
+package backends_test | |
+ | |
+import ( | |
+ "context" | |
+ "math/big" | |
+ "testing" | |
+ | |
+ ethereum "github.com/ethereum/go-ethereum" | |
+ "github.com/ethereum/go-ethereum/accounts/abi/bind" | |
+ "github.com/ethereum/go-ethereum/accounts/abi/bind/backends" | |
+ "github.com/ethereum/go-ethereum/common" | |
+ "github.com/ethereum/go-ethereum/core" | |
+ "github.com/ethereum/go-ethereum/core/types" | |
+ "github.com/ethereum/go-ethereum/crypto" | |
+) | |
+ | |
+func TestSimulatedBackend(t *testing.T) { | |
+ var gasLimit uint64 = 8000029 | |
+ key, _ := crypto.GenerateKey() // nolint: gosec | |
+ auth := bind.NewKeyedTransactor(key) | |
+ genAlloc := make(core.GenesisAlloc) | |
+ genAlloc[auth.From] = core.GenesisAccount{Balance: big.NewInt(9223372036854775807)} | |
+ | |
+ sim := backends.NewSimulatedBackend(genAlloc, gasLimit) | |
+ | |
+ // should return an error if the tx is not found | |
+ txHash := common.HexToHash("2") | |
+ _, isPending, err := sim.TransactionByHash(context.Background(), txHash) | |
+ | |
+ if isPending { | |
+ t.Fatal("transaction should not be pending") | |
+ } | |
+ if err != ethereum.NotFound { | |
+ t.Fatalf("err should be `ethereum.NotFound` but received %v", err) | |
+ } | |
+ | |
+ // generate a transaction and confirm you can retrieve it | |
+ code := `6060604052600a8060106000396000f360606040526008565b00` | |
+ var gas uint64 = 3000000 | |
+ tx := types.NewContractCreation(0, big.NewInt(0), gas, big.NewInt(1), common.FromHex(code)) | |
+ tx, _ = types.SignTx(tx, types.HomesteadSigner{}, key) | |
+ | |
+ err = sim.SendTransaction(context.Background(), tx) | |
+ if err != nil { | |
+ t.Fatal("error sending transaction") | |
+ } | |
+ | |
+ txHash = tx.Hash() | |
+ _, isPending, err = sim.TransactionByHash(context.Background(), txHash) | |
+ if err != nil { | |
+ t.Fatalf("error getting transaction with hash: %v", txHash.String()) | |
+ } | |
+ if !isPending { | |
+ t.Fatal("transaction should have pending status") | |
+ } | |
+ | |
+ sim.Commit() | |
+ tx, isPending, err = sim.TransactionByHash(context.Background(), txHash) | |
+ if err != nil { | |
+ t.Fatalf("error getting transaction with hash: %v", txHash.String()) | |
+ } | |
+ if isPending { | |
+ t.Fatal("transaction should not have pending status") | |
+ } | |
+ | |
+} | |
diff --git a/accounts/abi/bind/base.go b/accounts/abi/bind/base.go | |
index c37bdf11d..f70f911d3 100644 | |
--- a/accounts/abi/bind/base.go | |
+++ b/accounts/abi/bind/base.go | |
@@ -340,6 +340,22 @@ func (c *BoundContract) UnpackLog(out interface{}, event string, log types.Log) | |
return parseTopics(out, indexed, log.Topics[1:]) | |
} | |
+// UnpackLogIntoMap unpacks a retrieved log into the provided map. | |
+func (c *BoundContract) UnpackLogIntoMap(out map[string]interface{}, event string, log types.Log) error { | |
+ if len(log.Data) > 0 { | |
+ if err := c.abi.UnpackIntoMap(out, event, log.Data); err != nil { | |
+ return err | |
+ } | |
+ } | |
+ var indexed abi.Arguments | |
+ for _, arg := range c.abi.Events[event].Inputs { | |
+ if arg.Indexed { | |
+ indexed = append(indexed, arg) | |
+ } | |
+ } | |
+ return parseTopicsIntoMap(out, indexed, log.Topics[1:]) | |
+} | |
+ | |
// ensureContext is a helper method to ensure a context is not nil, even if the | |
// user specified it as such. | |
func ensureContext(ctx context.Context) context.Context { | |
diff --git a/accounts/abi/bind/base_test.go b/accounts/abi/bind/base_test.go | |
index 8adff8b59..f65c9e9b4 100644 | |
--- a/accounts/abi/bind/base_test.go | |
+++ b/accounts/abi/bind/base_test.go | |
@@ -1,14 +1,36 @@ | |
+// Copyright 2019 The go-ethereum Authors | |
+// This file is part of the go-ethereum library. | |
+// | |
+// The go-ethereum library is free software: you can redistribute it and/or modify | |
+// it under the terms of the GNU Lesser General Public License as published by | |
+// the Free Software Foundation, either version 3 of the License, or | |
+// (at your option) any later version. | |
+// | |
+// The go-ethereum library is distributed in the hope that it will be useful, | |
+// but WITHOUT ANY WARRANTY; without even the implied warranty of | |
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the | |
+// GNU Lesser General Public License for more details. | |
+// | |
+// You should have received a copy of the GNU Lesser General Public License | |
+// along with the go-ethereum library. If not, see <http://www.gnu.org/licenses/>. | |
+ | |
package bind_test | |
import ( | |
+ "bytes" | |
"context" | |
"math/big" | |
+ "strings" | |
"testing" | |
- ethereum "github.com/ethereum/go-ethereum" | |
+ "github.com/ethereum/go-ethereum" | |
"github.com/ethereum/go-ethereum/accounts/abi" | |
"github.com/ethereum/go-ethereum/accounts/abi/bind" | |
"github.com/ethereum/go-ethereum/common" | |
+ "github.com/ethereum/go-ethereum/common/hexutil" | |
+ "github.com/ethereum/go-ethereum/core/types" | |
+ "github.com/ethereum/go-ethereum/crypto" | |
+ "github.com/ethereum/go-ethereum/rlp" | |
) | |
type mockCaller struct { | |
@@ -25,7 +47,6 @@ func (mc *mockCaller) CallContract(ctx context.Context, call ethereum.CallMsg, b | |
mc.callContractBlockNumber = blockNumber | |
return nil, nil | |
} | |
- | |
func TestPassingBlockNumber(t *testing.T) { | |
mc := &mockCaller{} | |
@@ -62,3 +83,291 @@ func TestPassingBlockNumber(t *testing.T) { | |
t.Fatalf("CodeAt() was passed a block number when it should not have been") | |
} | |
} | |
+ | |
+const hexData = "0x000000000000000000000000376c47978271565f56deb45495afa69e59c16ab200000000000000000000000000000000000000000000000000000000000000010000000000000000000000000000000000000000000000000000000000000060000000000000000000000000000000000000000000000000000000000000000158" | |
+ | |
+func TestUnpackIndexedStringTyLogIntoMap(t *testing.T) { | |
+ hash := crypto.Keccak256Hash([]byte("testName")) | |
+ mockLog := types.Log{ | |
+ Address: common.HexToAddress("0x0"), | |
+ Topics: []common.Hash{ | |
+ common.HexToHash("0x0"), | |
+ hash, | |
+ }, | |
+ Data: hexutil.MustDecode(hexData), | |
+ BlockNumber: uint64(26), | |
+ TxHash: common.HexToHash("0x0"), | |
+ TxIndex: 111, | |
+ BlockHash: common.BytesToHash([]byte{1, 2, 3, 4, 5}), | |
+ Index: 7, | |
+ Removed: false, | |
+ } | |
+ | |
+ abiString := `[{"anonymous":false,"inputs":[{"indexed":true,"name":"name","type":"string"},{"indexed":false,"name":"sender","type":"address"},{"indexed":false,"name":"amount","type":"uint256"},{"indexed":false,"name":"memo","type":"bytes"}],"name":"received","type":"event"}]` | |
+ parsedAbi, _ := abi.JSON(strings.NewReader(abiString)) | |
+ bc := bind.NewBoundContract(common.HexToAddress("0x0"), parsedAbi, nil, nil, nil) | |
+ | |
+ receivedMap := make(map[string]interface{}) | |
+ expectedReceivedMap := map[string]interface{}{ | |
+ "name": hash, | |
+ "sender": common.HexToAddress("0x376c47978271565f56DEB45495afa69E59c16Ab2"), | |
+ "amount": big.NewInt(1), | |
+ "memo": []byte{88}, | |
+ } | |
+ if err := bc.UnpackLogIntoMap(receivedMap, "received", mockLog); err != nil { | |
+ t.Error(err) | |
+ } | |
+ | |
+ if len(receivedMap) != 4 { | |
+ t.Fatal("unpacked map expected to have length 4") | |
+ } | |
+ if receivedMap["name"] != expectedReceivedMap["name"] { | |
+ t.Error("unpacked map does not match expected map") | |
+ } | |
+ if receivedMap["sender"] != expectedReceivedMap["sender"] { | |
+ t.Error("unpacked map does not match expected map") | |
+ } | |
+ if receivedMap["amount"].(*big.Int).Cmp(expectedReceivedMap["amount"].(*big.Int)) != 0 { | |
+ t.Error("unpacked map does not match expected map") | |
+ } | |
+ if !bytes.Equal(receivedMap["memo"].([]byte), expectedReceivedMap["memo"].([]byte)) { | |
+ t.Error("unpacked map does not match expected map") | |
+ } | |
+} | |
+ | |
+func TestUnpackIndexedSliceTyLogIntoMap(t *testing.T) { | |
+ sliceBytes, err := rlp.EncodeToBytes([]string{"name1", "name2", "name3", "name4"}) | |
+ if err != nil { | |
+ t.Fatal(err) | |
+ } | |
+ hash := crypto.Keccak256Hash(sliceBytes) | |
+ mockLog := types.Log{ | |
+ Address: common.HexToAddress("0x0"), | |
+ Topics: []common.Hash{ | |
+ common.HexToHash("0x0"), | |
+ hash, | |
+ }, | |
+ Data: hexutil.MustDecode(hexData), | |
+ BlockNumber: uint64(26), | |
+ TxHash: common.HexToHash("0x0"), | |
+ TxIndex: 111, | |
+ BlockHash: common.BytesToHash([]byte{1, 2, 3, 4, 5}), | |
+ Index: 7, | |
+ Removed: false, | |
+ } | |
+ | |
+ abiString := `[{"anonymous":false,"inputs":[{"indexed":true,"name":"names","type":"string[]"},{"indexed":false,"name":"sender","type":"address"},{"indexed":false,"name":"amount","type":"uint256"},{"indexed":false,"name":"memo","type":"bytes"}],"name":"received","type":"event"}]` | |
+ parsedAbi, _ := abi.JSON(strings.NewReader(abiString)) | |
+ bc := bind.NewBoundContract(common.HexToAddress("0x0"), parsedAbi, nil, nil, nil) | |
+ | |
+ receivedMap := make(map[string]interface{}) | |
+ expectedReceivedMap := map[string]interface{}{ | |
+ "names": hash, | |
+ "sender": common.HexToAddress("0x376c47978271565f56DEB45495afa69E59c16Ab2"), | |
+ "amount": big.NewInt(1), | |
+ "memo": []byte{88}, | |
+ } | |
+ if err := bc.UnpackLogIntoMap(receivedMap, "received", mockLog); err != nil { | |
+ t.Error(err) | |
+ } | |
+ | |
+ if len(receivedMap) != 4 { | |
+ t.Fatal("unpacked map expected to have length 4") | |
+ } | |
+ if receivedMap["names"] != expectedReceivedMap["names"] { | |
+ t.Error("unpacked map does not match expected map") | |
+ } | |
+ if receivedMap["sender"] != expectedReceivedMap["sender"] { | |
+ t.Error("unpacked map does not match expected map") | |
+ } | |
+ if receivedMap["amount"].(*big.Int).Cmp(expectedReceivedMap["amount"].(*big.Int)) != 0 { | |
+ t.Error("unpacked map does not match expected map") | |
+ } | |
+ if !bytes.Equal(receivedMap["memo"].([]byte), expectedReceivedMap["memo"].([]byte)) { | |
+ t.Error("unpacked map does not match expected map") | |
+ } | |
+} | |
+ | |
+func TestUnpackIndexedArrayTyLogIntoMap(t *testing.T) { | |
+ arrBytes, err := rlp.EncodeToBytes([2]common.Address{common.HexToAddress("0x0"), common.HexToAddress("0x376c47978271565f56DEB45495afa69E59c16Ab2")}) | |
+ if err != nil { | |
+ t.Fatal(err) | |
+ } | |
+ hash := crypto.Keccak256Hash(arrBytes) | |
+ mockLog := types.Log{ | |
+ Address: common.HexToAddress("0x0"), | |
+ Topics: []common.Hash{ | |
+ common.HexToHash("0x0"), | |
+ hash, | |
+ }, | |
+ Data: hexutil.MustDecode(hexData), | |
+ BlockNumber: uint64(26), | |
+ TxHash: common.HexToHash("0x0"), | |
+ TxIndex: 111, | |
+ BlockHash: common.BytesToHash([]byte{1, 2, 3, 4, 5}), | |
+ Index: 7, | |
+ Removed: false, | |
+ } | |
+ | |
+ abiString := `[{"anonymous":false,"inputs":[{"indexed":true,"name":"addresses","type":"address[2]"},{"indexed":false,"name":"sender","type":"address"},{"indexed":false,"name":"amount","type":"uint256"},{"indexed":false,"name":"memo","type":"bytes"}],"name":"received","type":"event"}]` | |
+ parsedAbi, _ := abi.JSON(strings.NewReader(abiString)) | |
+ bc := bind.NewBoundContract(common.HexToAddress("0x0"), parsedAbi, nil, nil, nil) | |
+ | |
+ receivedMap := make(map[string]interface{}) | |
+ expectedReceivedMap := map[string]interface{}{ | |
+ "addresses": hash, | |
+ "sender": common.HexToAddress("0x376c47978271565f56DEB45495afa69E59c16Ab2"), | |
+ "amount": big.NewInt(1), | |
+ "memo": []byte{88}, | |
+ } | |
+ if err := bc.UnpackLogIntoMap(receivedMap, "received", mockLog); err != nil { | |
+ t.Error(err) | |
+ } | |
+ | |
+ if len(receivedMap) != 4 { | |
+ t.Fatal("unpacked map expected to have length 4") | |
+ } | |
+ if receivedMap["addresses"] != expectedReceivedMap["addresses"] { | |
+ t.Error("unpacked map does not match expected map") | |
+ } | |
+ if receivedMap["sender"] != expectedReceivedMap["sender"] { | |
+ t.Error("unpacked map does not match expected map") | |
+ } | |
+ if receivedMap["amount"].(*big.Int).Cmp(expectedReceivedMap["amount"].(*big.Int)) != 0 { | |
+ t.Error("unpacked map does not match expected map") | |
+ } | |
+ if !bytes.Equal(receivedMap["memo"].([]byte), expectedReceivedMap["memo"].([]byte)) { | |
+ t.Error("unpacked map does not match expected map") | |
+ } | |
+} | |
+ | |
+func TestUnpackIndexedFuncTyLogIntoMap(t *testing.T) { | |
+ mockAddress := common.HexToAddress("0x376c47978271565f56DEB45495afa69E59c16Ab2") | |
+ addrBytes := mockAddress.Bytes() | |
+ hash := crypto.Keccak256Hash([]byte("mockFunction(address,uint)")) | |
+ functionSelector := hash[:4] | |
+ functionTyBytes := append(addrBytes, functionSelector...) | |
+ var functionTy [24]byte | |
+ copy(functionTy[:], functionTyBytes[0:24]) | |
+ mockLog := types.Log{ | |
+ Address: common.HexToAddress("0x0"), | |
+ Topics: []common.Hash{ | |
+ common.HexToHash("0x99b5620489b6ef926d4518936cfec15d305452712b88bd59da2d9c10fb0953e8"), | |
+ common.BytesToHash(functionTyBytes), | |
+ }, | |
+ Data: hexutil.MustDecode(hexData), | |
+ BlockNumber: uint64(26), | |
+ TxHash: common.HexToHash("0x5c698f13940a2153440c6d19660878bc90219d9298fdcf37365aa8d88d40fc42"), | |
+ TxIndex: 111, | |
+ BlockHash: common.BytesToHash([]byte{1, 2, 3, 4, 5}), | |
+ Index: 7, | |
+ Removed: false, | |
+ } | |
+ | |
+ abiString := `[{"anonymous":false,"inputs":[{"indexed":true,"name":"function","type":"function"},{"indexed":false,"name":"sender","type":"address"},{"indexed":false,"name":"amount","type":"uint256"},{"indexed":false,"name":"memo","type":"bytes"}],"name":"received","type":"event"}]` | |
+ parsedAbi, _ := abi.JSON(strings.NewReader(abiString)) | |
+ bc := bind.NewBoundContract(common.HexToAddress("0x0"), parsedAbi, nil, nil, nil) | |
+ | |
+ receivedMap := make(map[string]interface{}) | |
+ expectedReceivedMap := map[string]interface{}{ | |
+ "function": functionTy, | |
+ "sender": common.HexToAddress("0x376c47978271565f56DEB45495afa69E59c16Ab2"), | |
+ "amount": big.NewInt(1), | |
+ "memo": []byte{88}, | |
+ } | |
+ if err := bc.UnpackLogIntoMap(receivedMap, "received", mockLog); err != nil { | |
+ t.Error(err) | |
+ } | |
+ | |
+ if len(receivedMap) != 4 { | |
+ t.Fatal("unpacked map expected to have length 4") | |
+ } | |
+ if receivedMap["function"] != expectedReceivedMap["function"] { | |
+ t.Error("unpacked map does not match expected map") | |
+ } | |
+ if receivedMap["sender"] != expectedReceivedMap["sender"] { | |
+ t.Error("unpacked map does not match expected map") | |
+ } | |
+ if receivedMap["amount"].(*big.Int).Cmp(expectedReceivedMap["amount"].(*big.Int)) != 0 { | |
+ t.Error("unpacked map does not match expected map") | |
+ } | |
+ if !bytes.Equal(receivedMap["memo"].([]byte), expectedReceivedMap["memo"].([]byte)) { | |
+ t.Error("unpacked map does not match expected map") | |
+ } | |
+} | |
+ | |
+func TestUnpackIndexedBytesTyLogIntoMap(t *testing.T) { | |
+ byts := []byte{1, 2, 3, 4, 5} | |
+ hash := crypto.Keccak256Hash(byts) | |
+ mockLog := types.Log{ | |
+ Address: common.HexToAddress("0x0"), | |
+ Topics: []common.Hash{ | |
+ common.HexToHash("0x99b5620489b6ef926d4518936cfec15d305452712b88bd59da2d9c10fb0953e8"), | |
+ hash, | |
+ }, | |
+ Data: hexutil.MustDecode(hexData), | |
+ BlockNumber: uint64(26), | |
+ TxHash: common.HexToHash("0x5c698f13940a2153440c6d19660878bc90219d9298fdcf37365aa8d88d40fc42"), | |
+ TxIndex: 111, | |
+ BlockHash: common.BytesToHash([]byte{1, 2, 3, 4, 5}), | |
+ Index: 7, | |
+ Removed: false, | |
+ } | |
+ | |
+ abiString := `[{"anonymous":false,"inputs":[{"indexed":true,"name":"content","type":"bytes"},{"indexed":false,"name":"sender","type":"address"},{"indexed":false,"name":"amount","type":"uint256"},{"indexed":false,"name":"memo","type":"bytes"}],"name":"received","type":"event"}]` | |
+ parsedAbi, _ := abi.JSON(strings.NewReader(abiString)) | |
+ bc := bind.NewBoundContract(common.HexToAddress("0x0"), parsedAbi, nil, nil, nil) | |
+ | |
+ receivedMap := make(map[string]interface{}) | |
+ expectedReceivedMap := map[string]interface{}{ | |
+ "content": hash, | |
+ "sender": common.HexToAddress("0x376c47978271565f56DEB45495afa69E59c16Ab2"), | |
+ "amount": big.NewInt(1), | |
+ "memo": []byte{88}, | |
+ } | |
+ if err := bc.UnpackLogIntoMap(receivedMap, "received", mockLog); err != nil { | |
+ t.Error(err) | |
+ } | |
+ | |
+ if len(receivedMap) != 4 { | |
+ t.Fatal("unpacked map expected to have length 4") | |
+ } | |
+ if receivedMap["content"] != expectedReceivedMap["content"] { | |
+ t.Error("unpacked map does not match expected map") | |
+ } | |
+ if receivedMap["sender"] != expectedReceivedMap["sender"] { | |
+ t.Error("unpacked map does not match expected map") | |
+ } | |
+ if receivedMap["amount"].(*big.Int).Cmp(expectedReceivedMap["amount"].(*big.Int)) != 0 { | |
+ t.Error("unpacked map does not match expected map") | |
+ } | |
+ if !bytes.Equal(receivedMap["memo"].([]byte), expectedReceivedMap["memo"].([]byte)) { | |
+ t.Error("unpacked map does not match expected map") | |
+ } | |
+} | |
+ | |
+func TestUnpackIntoMapNamingConflict(t *testing.T) { | |
+ hash := crypto.Keccak256Hash([]byte("testName")) | |
+ mockLog := types.Log{ | |
+ Address: common.HexToAddress("0x0"), | |
+ Topics: []common.Hash{ | |
+ common.HexToHash("0x0"), | |
+ hash, | |
+ }, | |
+ Data: hexutil.MustDecode(hexData), | |
+ BlockNumber: uint64(26), | |
+ TxHash: common.HexToHash("0x0"), | |
+ TxIndex: 111, | |
+ BlockHash: common.BytesToHash([]byte{1, 2, 3, 4, 5}), | |
+ Index: 7, | |
+ Removed: false, | |
+ } | |
+ | |
+ abiString := `[{"anonymous":false,"inputs":[{"indexed":true,"name":"name","type":"string"},{"indexed":false,"name":"sender","type":"address"},{"indexed":false,"name":"amount","type":"uint256"},{"indexed":false,"name":"memo","type":"bytes"}],"name":"received","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"name":"sender","type":"address"}],"name":"received","type":"event"}]` | |
+ parsedAbi, _ := abi.JSON(strings.NewReader(abiString)) | |
+ bc := bind.NewBoundContract(common.HexToAddress("0x0"), parsedAbi, nil, nil, nil) | |
+ receivedMap := make(map[string]interface{}) | |
+ if err := bc.UnpackLogIntoMap(receivedMap, "received", mockLog); err == nil { | |
+ t.Error("naming conflict between two events; error expected") | |
+ } | |
+} | |
diff --git a/accounts/abi/bind/bind_test.go b/accounts/abi/bind/bind_test.go | |
index 46e0b38d0..eae12b3f4 100644 | |
--- a/accounts/abi/bind/bind_test.go | |
+++ b/accounts/abi/bind/bind_test.go | |
@@ -670,7 +670,7 @@ var bindTests = []struct { | |
`Eventer`, | |
` | |
contract Eventer { | |
- event SimpleEvent ( | |
+ event SimpleEvent ( | |
address indexed Addr, | |
bytes32 indexed Id, | |
bool indexed Flag, | |
@@ -698,10 +698,18 @@ var bindTests = []struct { | |
function raiseDynamicEvent(string str, bytes blob) { | |
DynamicEvent(str, blob, str, blob); | |
} | |
+ | |
+ event FixedBytesEvent ( | |
+ bytes24 indexed IndexedBytes, | |
+ bytes24 NonIndexedBytes | |
+ ); | |
+ function raiseFixedBytesEvent(bytes24 blob) { | |
+ FixedBytesEvent(blob, blob); | |
+ } | |
} | |
`, | |
- `6060604052341561000f57600080fd5b61042c8061001e6000396000f300606060405260043610610057576000357c0100000000000000000000000000000000000000000000000000000000900463ffffffff168063528300ff1461005c578063630c31e2146100fc578063c7d116dd14610156575b600080fd5b341561006757600080fd5b6100fa600480803590602001908201803590602001908080601f0160208091040260200160405190810160405280939291908181526020018383808284378201915050505050509190803590602001908201803590602001908080601f01602080910402602001604051908101604052809392919081815260200183838082843782019150505050505091905050610194565b005b341561010757600080fd5b610154600480803573ffffffffffffffffffffffffffffffffffffffff16906020019091908035600019169060200190919080351515906020019091908035906020019091905050610367565b005b341561016157600080fd5b610192600480803590602001909190803560010b90602001909190803563ffffffff169060200190919050506103c3565b005b806040518082805190602001908083835b6020831015156101ca57805182526020820191506020810190506020830392506101a5565b6001836020036101000a0380198251168184511680821785525050505050509050019150506040518091039020826040518082805190602001908083835b60208310151561022d5780518252602082019150602081019050602083039250610208565b6001836020036101000a03801982511681845116808217855250505050505090500191505060405180910390207f3281fd4f5e152dd3385df49104a3f633706e21c9e80672e88d3bcddf33101f008484604051808060200180602001838103835285818151815260200191508051906020019080838360005b838110156102c15780820151818401526020810190506102a6565b50505050905090810190601f1680156102ee5780820380516001836020036101000a031916815260200191505b50838103825284818151815260200191508051906020019080838360005b8381101561032757808201518184015260208101905061030c565b50505050905090810190601f1680156103545780820380516001836020036101000a031916815260200191505b5094505050505060405180910390a35050565b81151583600019168573ffffffffffffffffffffffffffffffffffffffff167f1f097de4289df643bd9c11011cc61367aa12983405c021056e706eb5ba1250c8846040518082815260200191505060405180910390a450505050565b8063ffffffff168260010b847f3ca7f3a77e5e6e15e781850bc82e32adfa378a2a609370db24b4d0fae10da2c960405160405180910390a45050505600a165627a7a72305820d1f8a8bbddbc5bb29f285891d6ae1eef8420c52afdc05e1573f6114d8e1714710029`, | |
- `[{"constant":false,"inputs":[{"name":"str","type":"string"},{"name":"blob","type":"bytes"}],"name":"raiseDynamicEvent","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"addr","type":"address"},{"name":"id","type":"bytes32"},{"name":"flag","type":"bool"},{"name":"value","type":"uint256"}],"name":"raiseSimpleEvent","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"number","type":"uint256"},{"name":"short","type":"int16"},{"name":"long","type":"uint32"}],"name":"raiseNodataEvent","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"anonymous":false,"inputs":[{"indexed":true,"name":"Addr","type":"address"},{"indexed":true,"name":"Id","type":"bytes32"},{"indexed":true,"name":"Flag","type":"bool"},{"indexed":false,"name":"Value","type":"uint256"}],"name":"SimpleEvent","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"Number","type":"uint256"},{"indexed":true,"name":"Short","type":"int16"},{"indexed":true,"name":"Long","type":"uint32"}],"name":"NodataEvent","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"IndexedString","type":"string"},{"indexed":true,"name":"IndexedBytes","type":"bytes"},{"indexed":false,"name":"NonIndexedString","type":"string"},{"indexed":false,"name":"NonIndexedBytes","type":"bytes"}],"name":"DynamicEvent","type":"event"}]`, | |
+ `608060405234801561001057600080fd5b5061043f806100206000396000f3006080604052600436106100615763ffffffff7c0100000000000000000000000000000000000000000000000000000000600035041663528300ff8114610066578063630c31e2146100ff5780636cc6b94014610138578063c7d116dd1461015b575b600080fd5b34801561007257600080fd5b506040805160206004803580820135601f81018490048402850184019095528484526100fd94369492936024939284019190819084018382808284375050604080516020601f89358b018035918201839004830284018301909452808352979a9998810197919650918201945092508291508401838280828437509497506101829650505050505050565b005b34801561010b57600080fd5b506100fd73ffffffffffffffffffffffffffffffffffffffff60043516602435604435151560643561033c565b34801561014457600080fd5b506100fd67ffffffffffffffff1960043516610394565b34801561016757600080fd5b506100fd60043560243560010b63ffffffff604435166103d6565b806040518082805190602001908083835b602083106101b25780518252601f199092019160209182019101610193565b51815160209384036101000a6000190180199092169116179052604051919093018190038120875190955087945090928392508401908083835b6020831061020b5780518252601f1990920191602091820191016101ec565b6001836020036101000a03801982511681845116808217855250505050505090500191505060405180910390207f3281fd4f5e152dd3385df49104a3f633706e21c9e80672e88d3bcddf33101f008484604051808060200180602001838103835285818151815260200191508051906020019080838360005b8381101561029c578181015183820152602001610284565b50505050905090810190601f1680156102c95780820380516001836020036101000a031916815260200191505b50838103825284518152845160209182019186019080838360005b838110156102fc5781810151838201526020016102e4565b50505050905090810190601f1680156103295780820380516001836020036101000a031916815260200191505b5094505050505060405180910390a35050565b60408051828152905183151591859173ffffffffffffffffffffffffffffffffffffffff8816917f1f097de4289df643bd9c11011cc61367aa12983405c021056e706eb5ba1250c8919081900360200190a450505050565b6040805167ffffffffffffffff19831680825291517fcdc4c1b1aed5524ffb4198d7a5839a34712baef5fa06884fac7559f4a5854e0a9181900360200190a250565b8063ffffffff168260010b847f3ca7f3a77e5e6e15e781850bc82e32adfa378a2a609370db24b4d0fae10da2c960405160405180910390a45050505600a165627a7a72305820468b5843bf653145bd924b323c64ef035d3dd922c170644b44d61aa666ea6eee0029`, | |
+ `[{"constant":false,"inputs":[{"name":"str","type":"string"},{"name":"blob","type":"bytes"}],"name":"raiseDynamicEvent","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"addr","type":"address"},{"name":"id","type":"bytes32"},{"name":"flag","type":"bool"},{"name":"value","type":"uint256"}],"name":"raiseSimpleEvent","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"blob","type":"bytes24"}],"name":"raiseFixedBytesEvent","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"number","type":"uint256"},{"name":"short","type":"int16"},{"name":"long","type":"uint32"}],"name":"raiseNodataEvent","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"anonymous":false,"inputs":[{"indexed":true,"name":"Addr","type":"address"},{"indexed":true,"name":"Id","type":"bytes32"},{"indexed":true,"name":"Flag","type":"bool"},{"indexed":false,"name":"Value","type":"uint256"}],"name":"SimpleEvent","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"Number","type":"uint256"},{"indexed":true,"name":"Short","type":"int16"},{"indexed":true,"name":"Long","type":"uint32"}],"name":"NodataEvent","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"IndexedString","type":"string"},{"indexed":true,"name":"IndexedBytes","type":"bytes"},{"indexed":false,"name":"NonIndexedString","type":"string"},{"indexed":false,"name":"NonIndexedBytes","type":"bytes"}],"name":"DynamicEvent","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"IndexedBytes","type":"bytes24"},{"indexed":false,"name":"NonIndexedBytes","type":"bytes24"}],"name":"FixedBytesEvent","type":"event"}]`, | |
` | |
"math/big" | |
"time" | |
@@ -812,6 +820,33 @@ var bindTests = []struct { | |
if err = dit.Error(); err != nil { | |
t.Fatalf("dynamic event iteration failed: %v", err) | |
} | |
+ // Test raising and filtering for events with fixed bytes components | |
+ var fblob [24]byte | |
+ copy(fblob[:], []byte("Fixed Bytes")) | |
+ | |
+ if _, err := eventer.RaiseFixedBytesEvent(auth, fblob); err != nil { | |
+ t.Fatalf("failed to raise fixed bytes event: %v", err) | |
+ } | |
+ sim.Commit() | |
+ | |
+ fit, err := eventer.FilterFixedBytesEvent(nil, [][24]byte{fblob}) | |
+ if err != nil { | |
+ t.Fatalf("failed to filter for fixed bytes events: %v", err) | |
+ } | |
+ defer fit.Close() | |
+ | |
+ if !fit.Next() { | |
+ t.Fatalf("fixed bytes log not found: %v", fit.Error()) | |
+ } | |
+ if fit.Event.NonIndexedBytes != fblob || fit.Event.IndexedBytes != fblob { | |
+ t.Errorf("fixed bytes log content mismatch: have %v, want {'%x', '%x'}", fit.Event, fblob, fblob) | |
+ } | |
+ if fit.Next() { | |
+ t.Errorf("unexpected fixed bytes event found: %+v", fit.Event) | |
+ } | |
+ if err = fit.Error(); err != nil { | |
+ t.Fatalf("fixed bytes event iteration failed: %v", err) | |
+ } | |
// Test subscribing to an event and raising it afterwards | |
ch := make(chan *EventerSimpleEvent, 16) | |
sub, err := eventer.WatchSimpleEvent(nil, ch, nil, nil, nil) | |
diff --git a/accounts/abi/bind/topics.go b/accounts/abi/bind/topics.go | |
index 600dfcda9..c7657b4a4 100644 | |
--- a/accounts/abi/bind/topics.go | |
+++ b/accounts/abi/bind/topics.go | |
@@ -17,6 +17,7 @@ | |
package bind | |
import ( | |
+ "encoding/binary" | |
"errors" | |
"fmt" | |
"math/big" | |
@@ -83,8 +84,10 @@ func makeTopics(query ...[]interface{}) ([][]common.Hash, error) { | |
val := reflect.ValueOf(rule) | |
switch { | |
+ | |
+ // static byte array | |
case val.Kind() == reflect.Array && reflect.TypeOf(rule).Elem().Kind() == reflect.Uint8: | |
- reflect.Copy(reflect.ValueOf(topic[common.HashLength-val.Len():]), val) | |
+ reflect.Copy(reflect.ValueOf(topic[:val.Len()]), val) | |
default: | |
return nil, fmt.Errorf("unsupported indexed type: %T", rule) | |
@@ -175,8 +178,10 @@ func parseTopics(out interface{}, fields abi.Arguments, topics []common.Hash) er | |
default: | |
// Ran out of custom types, try the crazies | |
switch { | |
+ | |
+ // static byte array | |
case arg.Type.T == abi.FixedBytesTy: | |
- reflect.Copy(field, reflect.ValueOf(topics[0][common.HashLength-arg.Type.Size:])) | |
+ reflect.Copy(field, reflect.ValueOf(topics[0][:arg.Type.Size])) | |
default: | |
return fmt.Errorf("unsupported indexed type: %v", arg.Type) | |
@@ -187,3 +192,50 @@ func parseTopics(out interface{}, fields abi.Arguments, topics []common.Hash) er | |
} | |
return nil | |
} | |
+ | |
+// parseTopicsIntoMap converts the indexed topic field-value pairs into map key-value pairs | |
+func parseTopicsIntoMap(out map[string]interface{}, fields abi.Arguments, topics []common.Hash) error { | |
+ // Sanity check that the fields and topics match up | |
+ if len(fields) != len(topics) { | |
+ return errors.New("topic/field count mismatch") | |
+ } | |
+ // Iterate over all the fields and reconstruct them from topics | |
+ for _, arg := range fields { | |
+ if !arg.Indexed { | |
+ return errors.New("non-indexed field in topic reconstruction") | |
+ } | |
+ | |
+ switch arg.Type.T { | |
+ case abi.BoolTy: | |
+ out[arg.Name] = topics[0][common.HashLength-1] == 1 | |
+ case abi.IntTy, abi.UintTy: | |
+ num := new(big.Int).SetBytes(topics[0][:]) | |
+ out[arg.Name] = num | |
+ case abi.AddressTy: | |
+ var addr common.Address | |
+ copy(addr[:], topics[0][common.HashLength-common.AddressLength:]) | |
+ out[arg.Name] = addr | |
+ case abi.HashTy: | |
+ out[arg.Name] = topics[0] | |
+ case abi.FixedBytesTy: | |
+ out[arg.Name] = topics[0][:] | |
+ case abi.StringTy, abi.BytesTy, abi.SliceTy, abi.ArrayTy: | |
+ // Array types (including strings and bytes) have their keccak256 hashes stored in the topic- not a hash | |
+ // whose bytes can be decoded to the actual value- so the best we can do is retrieve that hash | |
+ out[arg.Name] = topics[0] | |
+ case abi.FunctionTy: | |
+ if garbage := binary.BigEndian.Uint64(topics[0][0:8]); garbage != 0 { | |
+ return fmt.Errorf("bind: got improperly encoded function type, got %v", topics[0].Bytes()) | |
+ } | |
+ var tmp [24]byte | |
+ copy(tmp[:], topics[0][8:32]) | |
+ out[arg.Name] = tmp | |
+ default: // Not handling tuples | |
+ return fmt.Errorf("unsupported indexed type: %v", arg.Type) | |
+ } | |
+ | |
+ topics = topics[1:] | |
+ } | |
+ | |
+ return nil | |
+} | |
diff --git a/accounts/abi/bind/topics_test.go b/accounts/abi/bind/topics_test.go | |
new file mode 100644 | |
index 000000000..e6f745a15 | |
--- /dev/null | |
+++ b/accounts/abi/bind/topics_test.go | |
@@ -0,0 +1,103 @@ | |
+// Copyright 2018 The go-ethereum Authors | |
+// This file is part of the go-ethereum library. | |
+// | |
+// The go-ethereum library is free software: you can redistribute it and/or modify | |
+// it under the terms of the GNU Lesser General Public License as published by | |
+// the Free Software Foundation, either version 3 of the License, or | |
+// (at your option) any later version. | |
+// | |
+// The go-ethereum library is distributed in the hope that it will be useful, | |
+// but WITHOUT ANY WARRANTY; without even the implied warranty of | |
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the | |
+// GNU Lesser General Public License for more details. | |
+// | |
+// You should have received a copy of the GNU Lesser General Public License | |
+// along with the go-ethereum library. If not, see <http://www.gnu.org/licenses/>. | |
+ | |
+package bind | |
+ | |
+import ( | |
+ "reflect" | |
+ "testing" | |
+ | |
+ "github.com/ethereum/go-ethereum/accounts/abi" | |
+ "github.com/ethereum/go-ethereum/common" | |
+) | |
+ | |
+func TestMakeTopics(t *testing.T) { | |
+ type args struct { | |
+ query [][]interface{} | |
+ } | |
+ tests := []struct { | |
+ name string | |
+ args args | |
+ want [][]common.Hash | |
+ wantErr bool | |
+ }{ | |
+ { | |
+ "support fixed byte types, right padded to 32 bytes", | |
+ args{[][]interface{}{{[5]byte{1, 2, 3, 4, 5}}}}, | |
+ [][]common.Hash{{common.Hash{1, 2, 3, 4, 5}}}, | |
+ false, | |
+ }, | |
+ } | |
+ for _, tt := range tests { | |
+ t.Run(tt.name, func(t *testing.T) { | |
+ got, err := makeTopics(tt.args.query...) | |
+ if (err != nil) != tt.wantErr { | |
+ t.Errorf("makeTopics() error = %v, wantErr %v", err, tt.wantErr) | |
+ return | |
+ } | |
+ if !reflect.DeepEqual(got, tt.want) { | |
+ t.Errorf("makeTopics() = %v, want %v", got, tt.want) | |
+ } | |
+ }) | |
+ } | |
+} | |
+ | |
+func TestParseTopics(t *testing.T) { | |
+ type bytesStruct struct { | |
+ StaticBytes [5]byte | |
+ } | |
+ bytesType, _ := abi.NewType("bytes5", nil) | |
+ type args struct { | |
+ createObj func() interface{} | |
+ resultObj func() interface{} | |
+ fields abi.Arguments | |
+ topics []common.Hash | |
+ } | |
+ tests := []struct { | |
+ name string | |
+ args args | |
+ wantErr bool | |
+ }{ | |
+ { | |
+ name: "support fixed byte types, right padded to 32 bytes", | |
+ args: args{ | |
+ createObj: func() interface{} { return &bytesStruct{} }, | |
+ resultObj: func() interface{} { return &bytesStruct{StaticBytes: [5]byte{1, 2, 3, 4, 5}} }, | |
+ fields: abi.Arguments{abi.Argument{ | |
+ Name: "staticBytes", | |
+ Type: bytesType, | |
+ Indexed: true, | |
+ }}, | |
+ topics: []common.Hash{ | |
+ {1, 2, 3, 4, 5}, | |
+ }, | |
+ }, | |
+ wantErr: false, | |
+ }, | |
+ } | |
+ for _, tt := range tests { | |
+ t.Run(tt.name, func(t *testing.T) { | |
+ createObj := tt.args.createObj() | |
+ if err := parseTopics(createObj, tt.args.fields, tt.args.topics); (err != nil) != tt.wantErr { | |
+ t.Errorf("parseTopics() error = %v, wantErr %v", err, tt.wantErr) | |
+ } | |
+ resultObj := tt.args.resultObj() | |
+ if !reflect.DeepEqual(createObj, resultObj) { | |
+ t.Errorf("parseTopics() = %v, want %v", createObj, resultObj) | |
+ } | |
+ }) | |
+ } | |
+} | |
diff --git a/accounts/abi/type.go b/accounts/abi/type.go | |
index 26151dbd3..1a3718235 100644 | |
--- a/accounts/abi/type.go | |
+++ b/accounts/abi/type.go | |
@@ -188,6 +188,7 @@ func NewType(t string, components []ArgumentMarshaling) (typ Type, err error) { | |
fields = append(fields, reflect.StructField{ | |
Name: ToCamelCase(c.Name), // reflect.StructOf will panic for any exported field. | |
Type: cType.Type, | |
+ Tag: reflect.StructTag("json:\"" + c.Name + "\""), | |
}) | |
elems = append(elems, &cType) | |
names = append(names, c.Name) | |
diff --git a/accounts/abi/type_test.go b/accounts/abi/type_test.go | |
index 7ef47330d..5023456ae 100644 | |
--- a/accounts/abi/type_test.go | |
+++ b/accounts/abi/type_test.go | |
@@ -95,8 +95,14 @@ func TestTypeRegexp(t *testing.T) { | |
// {"fixed[2]", nil, Type{}}, | |
// {"fixed128x128[]", nil, Type{}}, | |
// {"fixed128x128[2]", nil, Type{}}, | |
- {"tuple", []ArgumentMarshaling{{Name: "a", Type: "int64"}}, Type{Kind: reflect.Struct, T: TupleTy, Type: reflect.TypeOf(struct{ A int64 }{}), stringKind: "(int64)", | |
+ {"tuple", []ArgumentMarshaling{{Name: "a", Type: "int64"}}, Type{Kind: reflect.Struct, T: TupleTy, Type: reflect.TypeOf(struct { | |
+ A int64 `json:"a"` | |
+ }{}), stringKind: "(int64)", | |
TupleElems: []*Type{{Kind: reflect.Int64, T: IntTy, Type: reflect.TypeOf(int64(0)), Size: 64, stringKind: "int64"}}, TupleRawNames: []string{"a"}}}, | |
+ {"tuple with long name", []ArgumentMarshaling{{Name: "aTypicalParamName", Type: "int64"}}, Type{Kind: reflect.Struct, T: TupleTy, Type: reflect.TypeOf(struct { | |
+ ATypicalParamName int64 `json:"aTypicalParamName"` | |
+ }{}), stringKind: "(int64)", | |
+ TupleElems: []*Type{{Kind: reflect.Int64, T: IntTy, Type: reflect.TypeOf(int64(0)), Size: 64, stringKind: "int64"}}, TupleRawNames: []string{"aTypicalParamName"}}}, | |
} | |
for _, tt := range tests { | |
diff --git a/accounts/abi/unpack.go b/accounts/abi/unpack.go | |
index 8406b09c8..b2e61d06c 100644 | |
--- a/accounts/abi/unpack.go | |
+++ b/accounts/abi/unpack.go | |
@@ -269,7 +269,7 @@ func lengthPrefixPointsTo(index int, output []byte) (start int, length int, err | |
totalSize.Add(totalSize, bigOffsetEnd) | |
totalSize.Add(totalSize, lengthBig) | |
if totalSize.BitLen() > 63 { | |
- return 0, 0, fmt.Errorf("abi length larger than int64: %v", totalSize) | |
+ return 0, 0, fmt.Errorf("abi: length larger than int64: %v", totalSize) | |
} | |
if totalSize.Cmp(outputLength) > 0 { | |
diff --git a/accounts/accounts.go b/accounts/accounts.go | |
index b57f282b3..a52aa425c 100644 | |
--- a/accounts/accounts.go | |
+++ b/accounts/accounts.go | |
@@ -104,7 +104,7 @@ type Wallet interface { | |
// a password to decrypt the account, or a PIN code o verify the transaction), | |
// an AuthNeededError instance will be returned, containing infos for the user | |
// about which fields or actions are needed. The user may retry by providing | |
- // the needed details via SignHashWithPassphrase, or by other means (e.g. unlock | |
+ // the needed details via SignDataWithPassphrase, or by other means (e.g. unlock | |
// the account in a keystore). | |
SignData(account Account, mimeType string, data []byte) ([]byte, error) | |
@@ -114,7 +114,7 @@ type Wallet interface { | |
// should never echo the mimetype or return the mimetype in the error-response | |
SignDataWithPassphrase(account Account, passphrase, mimeType string, data []byte) ([]byte, error) | |
- // Signtext requests the wallet to sign the hash of a given piece of data, prefixed | |
+ // SignText requests the wallet to sign the hash of a given piece of data, prefixed | |
// by the Ethereum prefix scheme | |
// It looks up the account specified either solely via its address contained within, | |
// or optionally with the aid of any location metadata from the embedded URL field. | |
diff --git a/accounts/external/backend.go b/accounts/external/backend.go | |
index 3b8d50f1b..21a313b66 100644 | |
--- a/accounts/external/backend.go | |
+++ b/accounts/external/backend.go | |
@@ -26,7 +26,6 @@ import ( | |
"github.com/ethereum/go-ethereum/common" | |
"github.com/ethereum/go-ethereum/common/hexutil" | |
"github.com/ethereum/go-ethereum/core/types" | |
- "github.com/ethereum/go-ethereum/crypto" | |
"github.com/ethereum/go-ethereum/event" | |
"github.com/ethereum/go-ethereum/internal/ethapi" | |
"github.com/ethereum/go-ethereum/log" | |
@@ -154,13 +153,31 @@ func (api *ExternalSigner) signHash(account accounts.Account, hash []byte) ([]by | |
// SignData signs keccak256(data). The mimetype parameter describes the type of data being signed | |
func (api *ExternalSigner) SignData(account accounts.Account, mimeType string, data []byte) ([]byte, error) { | |
- // TODO! Replace this with a call to clef SignData with correct mime-type for Clique, once we | |
- // have that in place | |
- return api.signHash(account, crypto.Keccak256(data)) | |
+ var res hexutil.Bytes | |
+ var signAddress = common.NewMixedcaseAddress(account.Address) | |
+ if err := api.client.Call(&res, "account_signData", | |
+ mimeType, | |
+ &signAddress, // Need to use the pointer here, because of how MarshalJSON is defined | |
+ hexutil.Encode(data)); err != nil { | |
+ return nil, err | |
+ } | |
+ // If V is on 27/28-form, convert to to 0/1 for Clique | |
+ if mimeType == accounts.MimetypeClique && (res[64] == 27 || res[64] == 28) { | |
+ res[64] -= 27 // Transform V from 27/28 to 0/1 for Clique use | |
+ } | |
+ return res, nil | |
} | |
func (api *ExternalSigner) SignText(account accounts.Account, text []byte) ([]byte, error) { | |
- return api.signHash(account, accounts.TextHash(text)) | |
+ var res hexutil.Bytes | |
+ var signAddress = common.NewMixedcaseAddress(account.Address) | |
+ if err := api.client.Call(&res, "account_signData", | |
+ accounts.MimetypeTextPlain, | |
+ &signAddress, // Need to use the pointer here, because of how MarshalJSON is defined | |
+ hexutil.Encode(text)); err != nil { | |
+ return nil, err | |
+ } | |
+ return res, nil | |
} | |
func (api *ExternalSigner) SignTx(account accounts.Account, tx *types.Transaction, chainID *big.Int) (*types.Transaction, error) { | |
@@ -202,18 +219,6 @@ func (api *ExternalSigner) listAccounts() ([]common.Address, error) { | |
return res, nil | |
} | |
-func (api *ExternalSigner) signCliqueBlock(a common.Address, rlpBlock hexutil.Bytes) (hexutil.Bytes, error) { | |
- var sig hexutil.Bytes | |
- if err := api.client.Call(&sig, "account_signData", core.ApplicationClique.Mime, a, rlpBlock); err != nil { | |
- return nil, err | |
- } | |
- if sig[64] != 27 && sig[64] != 28 { | |
- return nil, fmt.Errorf("invalid Ethereum signature (V is not 27 or 28)") | |
- } | |
- sig[64] -= 27 // Transform V from 27/28 to 0/1 for Clique use | |
- return sig, nil | |
-} | |
- | |
func (api *ExternalSigner) pingVersion() (string, error) { | |
var v string | |
if err := api.client.Call(&v, "account_version"); err != nil { | |
diff --git a/accounts/hd.go b/accounts/hd.go | |
index 6ed631807..24aa777ae 100644 | |
--- a/accounts/hd.go | |
+++ b/accounts/hd.go | |
@@ -17,6 +17,7 @@ | |
package accounts | |
import ( | |
+ "encoding/json" | |
"errors" | |
"fmt" | |
"math" | |
@@ -133,3 +134,19 @@ func (path DerivationPath) String() string { | |
} | |
return result | |
} | |
+ | |
+// MarshalJSON turns a derivation path into its json-serialized string | |
+func (path DerivationPath) MarshalJSON() ([]byte, error) { | |
+ return json.Marshal(path.String()) | |
+} | |
+ | |
+// UnmarshalJSON a json-serialized string back into a derivation path | |
+func (path *DerivationPath) UnmarshalJSON(b []byte) error { | |
+ var dp string | |
+ var err error | |
+ if err = json.Unmarshal(b, &dp); err != nil { | |
+ return err | |
+ } | |
+ *path, err = ParseDerivationPath(dp) | |
+ return err | |
+} | |
diff --git a/accounts/keystore/keystore.go b/accounts/keystore/keystore.go | |
index 2918047cc..434e03504 100644 | |
--- a/accounts/keystore/keystore.go | |
+++ b/accounts/keystore/keystore.go | |
@@ -137,8 +137,10 @@ func (ks *KeyStore) refreshWallets() { | |
accs := ks.cache.accounts() | |
// Transform the current list of wallets into the new one | |
- wallets := make([]accounts.Wallet, 0, len(accs)) | |
- events := []accounts.WalletEvent{} | |
+ var ( | |
+ wallets = make([]accounts.Wallet, 0, len(accs)) | |
+ events []accounts.WalletEvent | |
+ ) | |
for _, account := range accs { | |
// Drop wallets while they were in front of the next account | |
diff --git a/accounts/keystore/wallet.go b/accounts/keystore/wallet.go | |
index 632620ead..1b36b6dff 100644 | |
--- a/accounts/keystore/wallet.go | |
+++ b/accounts/keystore/wallet.go | |
@@ -111,7 +111,7 @@ func (w *keystoreWallet) SignText(account accounts.Account, text []byte) ([]byte | |
return w.signHash(account, accounts.TextHash(text)) | |
} | |
-// SignHashWithPassphrase implements accounts.Wallet, attempting to sign the | |
+// SignTextWithPassphrase implements accounts.Wallet, attempting to sign the | |
// given hash with the given account using passphrase as extra authentication. | |
func (w *keystoreWallet) SignTextWithPassphrase(account accounts.Account, passphrase string, text []byte) ([]byte, error) { | |
// Make sure the requested account is contained within | |
diff --git a/accounts/manager.go b/accounts/manager.go | |
index 96ca298fc..3cf3422e7 100644 | |
--- a/accounts/manager.go | |
+++ b/accounts/manager.go | |
@@ -24,9 +24,18 @@ import ( | |
"github.com/ethereum/go-ethereum/event" | |
) | |
+// Config contains the settings of the global account manager. | |
+// | |
+// TODO(rjl493456442, karalabe, holiman): Get rid of this when account management | |
+// is removed in favor of Clef. | |
+type Config struct { | |
+ InsecureUnlockAllowed bool // Whether account unlocking in insecure environment is allowed | |
+} | |
+ | |
// Manager is an overarching account manager that can communicate with various | |
// backends for signing transactions. | |
type Manager struct { | |
+ config *Config // Global account manager configurations | |
backends map[reflect.Type][]Backend // Index of backends currently registered | |
updaters []event.Subscription // Wallet update subscriptions for all backends | |
updates chan WalletEvent // Subscription sink for backend wallet changes | |
@@ -40,7 +49,7 @@ type Manager struct { | |
// NewManager creates a generic account manager to sign transaction via various | |
// supported backends. | |
-func NewManager(backends ...Backend) *Manager { | |
+func NewManager(config *Config, backends ...Backend) *Manager { | |
// Retrieve the initial list of wallets from the backends and sort by URL | |
var wallets []Wallet | |
for _, backend := range backends { | |
@@ -55,6 +64,7 @@ func NewManager(backends ...Backend) *Manager { | |
} | |
// Assemble the account manager and return | |
am := &Manager{ | |
+ config: config, | |
backends: make(map[reflect.Type][]Backend), | |
updaters: subs, | |
updates: updates, | |
@@ -77,6 +87,11 @@ func (am *Manager) Close() error { | |
return <-errc | |
} | |
+// Config returns the configuration of account manager. | |
+func (am *Manager) Config() *Config { | |
+ return am.config | |
+} | |
+ | |
// update is the wallet event loop listening for notifications from the backends | |
// and updating the cache of wallets. | |
func (am *Manager) update() { | |
diff --git a/accounts/scwallet/README.md b/accounts/scwallet/README.md | |
new file mode 100644 | |
index 000000000..20519e092 | |
--- /dev/null | |
+++ b/accounts/scwallet/README.md | |
@@ -0,0 +1,102 @@ | |
+# Using the smartcard wallet | |
+ | |
+## Requirements | |
+ | |
+ * A USB smartcard reader | |
+ * A keycard that supports the status app | |
+ * PCSCD version 4.3 running on your system **Only version 4.3 is currently supported** | |
+ | |
+## Preparing the smartcard | |
+ | |
+ **WARNING: FOILLOWING THESE INSTRUCTIONS WILL DESTROY THE MASTER KEY ON YOUR CARD. ONLY PROCEED IF NO FUNDS ARE ASSOCIATED WITH THESE ACCOUNTS** | |
+ | |
+ You can use status' [keycard-cli](https://github.com/status-im/keycard-cli) and you should get _at least_ version 2.1.1 of their [smartcard application](https://github.com/status-im/status-keycard/releases/download/2.2.1/keycard_v2.2.1.cap) | |
+ | |
+ You also need to make sure that the PCSC daemon is running on your system. | |
+ | |
+ Then, you can install the application to the card by typing: | |
+ | |
+ ``` | |
+ keycard install -a keycard_v2.2.1.cap && keycard init | |
+ ``` | |
+ | |
+ At the end of this process, you will be provided with a PIN, a PUK and a pairing password. Write them down, you'll need them shortly. | |
+ | |
+ Start `geth` with the `console` command. You will notice the following warning: | |
+ | |
+ ``` | |
+ WARN [04-09|16:58:38.898] Failed to open wallet url=pcsc://044def09 err="smartcard: pairing password needed" | |
+ ``` | |
+ | |
+ Write down the URL (`pcsc://044def09` in this example). Then ask `geth` to open the wallet: | |
+ | |
+ ``` | |
+ > personal.openWallet("pcsc://044def09") | |
+ Please enter the pairing password: | |
+ ``` | |
+ | |
+ Enter the pairing password that you have received during card initialization. Same with the PIN that you will subsequently be | |
+ asked for. | |
+ | |
+ If everything goes well, you should see your new account when typing `personal` on the console: | |
+ | |
+ ``` | |
+ > personal | |
+ WARN [04-09|17:02:07.330] Smartcard wallet account derivation failed url=pcsc://044def09 err="Unexpected response status Cla=0x80, Ins=0xd1, Sw=0x6985" | |
+ { | |
+ listAccounts: [], | |
+ listWallets: [{ | |
+ status: "Empty, waiting for initialization", | |
+ url: "pcsc://044def09" | |
+ }], | |
+ ... | |
+ } | |
+ ``` | |
+ | |
+ So the communication with the card is working, but there is no key associated with this wallet. Let's create it: | |
+ | |
+ ``` | |
+ > personal.initializeWallet("pcsc://044def09") | |
+ "tilt ... impact" | |
+ ``` | |
+ | |
+ You should get a list of words, this is your seed so write them down. Your wallet should now be initialized: | |
+ | |
+ ``` | |
+ > personal.listWallets | |
+ [{ | |
+ accounts: [{ | |
+ address: "0x678b7cd55c61917defb23546a41803c5bfefbc7a", | |
+ url: "pcsc://044d/m/44'/60'/0'/0/0" | |
+ }], | |
+ status: "Online", | |
+ url: "pcsc://044def09" | |
+ }] | |
+ ``` | |
+ | |
+ You're all set! | |
+ | |
+## Usage | |
+ | |
+ 1. Start `geth` with the `console` command | |
+ 2. Check the card's URL by checking `personal.listWallets`: | |
+ | |
+``` | |
+ listWallets: [{ | |
+ status: "Online, can derive public keys", | |
+ url: "pcsc://a4d73015" | |
+ }] | |
+``` | |
+ | |
+ 3. Open the wallet, you will be prompted for your pairing password, then PIN: | |
+ | |
+``` | |
+personal.openWallet("pcsc://a4d73015") | |
+``` | |
+ | |
+ 4. Check that creation was successful by typing e.g. `personal`. Then use it like a regular wallet. | |
+ | |
+## Known issues | |
+ | |
+ * Starting geth with a valid card seems to make firefox crash. | |
+ * PCSC version 4.4 should work, but is currently untested | |
diff --git a/accounts/scwallet/apdu.go b/accounts/scwallet/apdu.go | |
new file mode 100644 | |
index 000000000..bd3660604 | |
--- /dev/null | |
+++ b/accounts/scwallet/apdu.go | |
@@ -0,0 +1,87 @@ | |
+// Copyright 2018 The go-ethereum Authors | |
+// This file is part of the go-ethereum library. | |
+// | |
+// The go-ethereum library is free software: you can redistribute it and/or modify | |
+// it under the terms of the GNU Lesser General Public License as published by | |
+// the Free Software Foundation, either version 3 of the License, or | |
+// (at your option) any later version. | |
+// | |
+// The go-ethereum library is distributed in the hope that it will be useful, | |
+// but WITHOUT ANY WARRANTY; without even the implied warranty of | |
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the | |
+// GNU Lesser General Public License for more details. | |
+// | |
+// You should have received a copy of the GNU Lesser General Public License | |
+// along with the go-ethereum library. If not, see <http://www.gnu.org/licenses/>. | |
+ | |
+package scwallet | |
+ | |
+import ( | |
+ "bytes" | |
+ "encoding/binary" | |
+ "fmt" | |
+) | |
+ | |
+// commandAPDU represents an application data unit sent to a smartcard. | |
+type commandAPDU struct { | |
+ Cla, Ins, P1, P2 uint8 // Class, Instruction, Parameter 1, Parameter 2 | |
+ Data []byte // Command data | |
+ Le uint8 // Command data length | |
+} | |
+ | |
+// serialize serializes a command APDU. | |
+func (ca commandAPDU) serialize() ([]byte, error) { | |
+ buf := new(bytes.Buffer) | |
+ | |
+ if err := binary.Write(buf, binary.BigEndian, ca.Cla); err != nil { | |
+ return nil, err | |
+ } | |
+ if err := binary.Write(buf, binary.BigEndian, ca.Ins); err != nil { | |
+ return nil, err | |
+ } | |
+ if err := binary.Write(buf, binary.BigEndian, ca.P1); err != nil { | |
+ return nil, err | |
+ } | |
+ if err := binary.Write(buf, binary.BigEndian, ca.P2); err != nil { | |
+ return nil, err | |
+ } | |
+ if len(ca.Data) > 0 { | |
+ if err := binary.Write(buf, binary.BigEndian, uint8(len(ca.Data))); err != nil { | |
+ return nil, err | |
+ } | |
+ if err := binary.Write(buf, binary.BigEndian, ca.Data); err != nil { | |
+ return nil, err | |
+ } | |
+ } | |
+ if err := binary.Write(buf, binary.BigEndian, ca.Le); err != nil { | |
+ return nil, err | |
+ } | |
+ return buf.Bytes(), nil | |
+} | |
+ | |
+// responseAPDU represents an application data unit received from a smart card. | |
+type responseAPDU struct { | |
+ Data []byte // response data | |
+ Sw1, Sw2 uint8 // status words 1 and 2 | |
+} | |
+ | |
+// deserialize deserializes a response APDU. | |
+func (ra *responseAPDU) deserialize(data []byte) error { | |
+ if len(data) < 2 { | |
+ return fmt.Errorf("can not deserialize data: payload too short (%d < 2)", len(data)) | |
+ } | |
+ | |
+ ra.Data = make([]byte, len(data)-2) | |
+ | |
+ buf := bytes.NewReader(data) | |
+ if err := binary.Read(buf, binary.BigEndian, &ra.Data); err != nil { | |
+ return err | |
+ } | |
+ if err := binary.Read(buf, binary.BigEndian, &ra.Sw1); err != nil { | |
+ return err | |
+ } | |
+ if err := binary.Read(buf, binary.BigEndian, &ra.Sw2); err != nil { | |
+ return err | |
+ } | |
+ return nil | |
+} | |
diff --git a/accounts/scwallet/hub.go b/accounts/scwallet/hub.go | |
new file mode 100644 | |
index 000000000..c259f711f | |
--- /dev/null | |
+++ b/accounts/scwallet/hub.go | |
@@ -0,0 +1,302 @@ | |
+// Copyright 2018 The go-ethereum Authors | |
+// This file is part of the go-ethereum library. | |
+// | |
+// The go-ethereum library is free software: you can redistribute it and/or modify | |
+// it under the terms of the GNU Lesser General Public License as published by | |
+// the Free Software Foundation, either version 3 of the License, or | |
+// (at your option) any later version. | |
+// | |
+// The go-ethereum library is distributed in the hope that it will be useful, | |
+// but WITHOUT ANY WARRANTY; without even the implied warranty of | |
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the | |
+// GNU Lesser General Public License for more details. | |
+// | |
+// You should have received a copy of the GNU Lesser General Public License | |
+// along with the go-ethereum library. If not, see <http://www.gnu.org/licenses/>. | |
+ | |
+// This package implements support for smartcard-based hardware wallets such as | |
+// the one written by Status: https://github.com/status-im/hardware-wallet | |
+// | |
+// This implementation of smartcard wallets have a different interaction process | |
+// to other types of hardware wallet. The process works like this: | |
+// | |
+// 1. (First use with a given client) Establish a pairing between hardware | |
+// wallet and client. This requires a secret value called a 'pairing password'. | |
+// You can pair with an unpaired wallet with `personal.openWallet(URI, pairing password)`. | |
+// 2. (First use only) Initialize the wallet, which generates a keypair, stores | |
+// it on the wallet, and returns it so the user can back it up. You can | |
+// initialize a wallet with `personal.initializeWallet(URI)`. | |
+// 3. Connect to the wallet using the pairing information established in step 1. | |
+// You can connect to a paired wallet with `personal.openWallet(URI, PIN)`. | |
+// 4. Interact with the wallet as normal. | |
+ | |
+package scwallet | |
+ | |
+import ( | |
+ "encoding/json" | |
+ "io/ioutil" | |
+ "os" | |
+ "path/filepath" | |
+ "sort" | |
+ "sync" | |
+ "time" | |
+ | |
+ "github.com/ethereum/go-ethereum/accounts" | |
+ "github.com/ethereum/go-ethereum/common" | |
+ "github.com/ethereum/go-ethereum/event" | |
+ "github.com/ethereum/go-ethereum/log" | |
+ pcsc "github.com/gballet/go-libpcsclite" | |
+) | |
+ | |
+// Scheme is the URI prefix for smartcard wallets. | |
+const Scheme = "pcsc" | |
+ | |
+// refreshCycle is the maximum time between wallet refreshes (if USB hotplug | |
+// notifications don't work). | |
+const refreshCycle = time.Second | |
+ | |
+// refreshThrottling is the minimum time between wallet refreshes to avoid thrashing. | |
+const refreshThrottling = 500 * time.Millisecond | |
+ | |
+// smartcardPairing contains information about a smart card we have paired with | |
+// or might pair with the hub. | |
+type smartcardPairing struct { | |
+ PublicKey []byte `json:"publicKey"` | |
+ PairingIndex uint8 `json:"pairingIndex"` | |
+ PairingKey []byte `json:"pairingKey"` | |
+ Accounts map[common.Address]accounts.DerivationPath `json:"accounts"` | |
+} | |
+ | |
+// Hub is a accounts.Backend that can find and handle generic PC/SC hardware wallets. | |
+type Hub struct { | |
+ scheme string // Protocol scheme prefixing account and wallet URLs. | |
+ | |
+ context *pcsc.Client | |
+ datadir string | |
+ pairings map[string]smartcardPairing | |
+ | |
+ refreshed time.Time // Time instance when the list of wallets was last refreshed | |
+ wallets map[string]*Wallet // Mapping from reader names to wallet instances | |
+ updateFeed event.Feed // Event feed to notify wallet additions/removals | |
+ updateScope event.SubscriptionScope // Subscription scope tracking current live listeners | |
+ updating bool // Whether the event notification loop is running | |
+ | |
+ quit chan chan error | |
+ | |
+ stateLock sync.RWMutex // Protects the internals of the hub from racey access | |
+} | |
+ | |
+func (hub *Hub) readPairings() error { | |
+ hub.pairings = make(map[string]smartcardPairing) | |
+ pairingFile, err := os.Open(filepath.Join(hub.datadir, "smartcards.json")) | |
+ if err != nil { | |
+ if os.IsNotExist(err) { | |
+ return nil | |
+ } | |
+ return err | |
+ } | |
+ | |
+ pairingData, err := ioutil.ReadAll(pairingFile) | |
+ if err != nil { | |
+ return err | |
+ } | |
+ var pairings []smartcardPairing | |
+ if err := json.Unmarshal(pairingData, &pairings); err != nil { | |
+ return err | |
+ } | |
+ | |
+ for _, pairing := range pairings { | |
+ hub.pairings[string(pairing.PublicKey)] = pairing | |
+ } | |
+ return nil | |
+} | |
+ | |
+func (hub *Hub) writePairings() error { | |
+ pairingFile, err := os.OpenFile(filepath.Join(hub.datadir, "smartcards.json"), os.O_RDWR|os.O_CREATE, 0755) | |
+ if err != nil { | |
+ return err | |
+ } | |
+ defer pairingFile.Close() | |
+ | |
+ pairings := make([]smartcardPairing, 0, len(hub.pairings)) | |
+ for _, pairing := range hub.pairings { | |
+ pairings = append(pairings, pairing) | |
+ } | |
+ | |
+ pairingData, err := json.Marshal(pairings) | |
+ if err != nil { | |
+ return err | |
+ } | |
+ | |
+ if _, err := pairingFile.Write(pairingData); err != nil { | |
+ return err | |
+ } | |
+ | |
+ return nil | |
+} | |
+ | |
+func (hub *Hub) pairing(wallet *Wallet) *smartcardPairing { | |
+ if pairing, ok := hub.pairings[string(wallet.PublicKey)]; ok { | |
+ return &pairing | |
+ } | |
+ return nil | |
+} | |
+ | |
+func (hub *Hub) setPairing(wallet *Wallet, pairing *smartcardPairing) error { | |
+ if pairing == nil { | |
+ delete(hub.pairings, string(wallet.PublicKey)) | |
+ } else { | |
+ hub.pairings[string(wallet.PublicKey)] = *pairing | |
+ } | |
+ return hub.writePairings() | |
+} | |
+ | |
+// NewHub creates a new hardware wallet manager for smartcards. | |
+func NewHub(scheme string, datadir string) (*Hub, error) { | |
+ context, err := pcsc.EstablishContext(pcsc.ScopeSystem) | |
+ if err != nil { | |
+ return nil, err | |
+ } | |
+ hub := &Hub{ | |
+ scheme: scheme, | |
+ context: context, | |
+ datadir: datadir, | |
+ wallets: make(map[string]*Wallet), | |
+ quit: make(chan chan error), | |
+ } | |
+ if err := hub.readPairings(); err != nil { | |
+ return nil, err | |
+ } | |
+ hub.refreshWallets() | |
+ return hub, nil | |
+} | |
+ | |
+// Wallets implements accounts.Backend, returning all the currently tracked smart | |
+// cards that appear to be hardware wallets. | |
+func (hub *Hub) Wallets() []accounts.Wallet { | |
+ // Make sure the list of wallets is up to date | |
+ hub.refreshWallets() | |
+ | |
+ hub.stateLock.RLock() | |
+ defer hub.stateLock.RUnlock() | |
+ | |
+ cpy := make([]accounts.Wallet, 0, len(hub.wallets)) | |
+ for _, wallet := range hub.wallets { | |
+ cpy = append(cpy, wallet) | |
+ } | |
+ sort.Sort(accounts.WalletsByURL(cpy)) | |
+ return cpy | |
+} | |
+ | |
+// refreshWallets scans the devices attached to the machine and updates the | |
+// list of wallets based on the found devices. | |
+func (hub *Hub) refreshWallets() { | |
+ // Don't scan the USB like crazy it the user fetches wallets in a loop | |
+ hub.stateLock.RLock() | |
+ elapsed := time.Since(hub.refreshed) | |
+ hub.stateLock.RUnlock() | |
+ | |
+ if elapsed < refreshThrottling { | |
+ return | |
+ } | |
+ // Retrieve all the smart card reader to check for cards | |
+ readers, err := hub.context.ListReaders() | |
+ if err != nil { | |
+ // This is a perverted hack, the scard library returns an error if no card | |
+ // readers are present instead of simply returning an empty list. We don't | |
+ // want to fill the user's log with errors, so filter those out. | |
+ if err.Error() != "scard: Cannot find a smart card reader." { | |
+ log.Error("Failed to enumerate smart card readers", "err", err) | |
+ return | |
+ } | |
+ } | |
+ // Transform the current list of wallets into the new one | |
+ hub.stateLock.Lock() | |
+ | |
+ events := []accounts.WalletEvent{} | |
+ seen := make(map[string]struct{}) | |
+ | |
+ for _, reader := range readers { | |
+ // Mark the reader as present | |
+ seen[reader] = struct{}{} | |
+ | |
+ // If we alreay know about this card, skip to the next reader, otherwise clean up | |
+ if wallet, ok := hub.wallets[reader]; ok { | |
+ if err := wallet.ping(); err == nil { | |
+ continue | |
+ } | |
+ wallet.Close() | |
+ events = append(events, accounts.WalletEvent{Wallet: wallet, Kind: accounts.WalletDropped}) | |
+ delete(hub.wallets, reader) | |
+ } | |
+ // New card detected, try to connect to it | |
+ card, err := hub.context.Connect(reader, pcsc.ShareShared, pcsc.ProtocolAny) | |
+ if err != nil { | |
+ log.Debug("Failed to open smart card", "reader", reader, "err", err) | |
+ continue | |
+ } | |
+ wallet := NewWallet(hub, card) | |
+ if err = wallet.connect(); err != nil { | |
+ log.Debug("Failed to connect to smart card", "reader", reader, "err", err) | |
+ card.Disconnect(pcsc.LeaveCard) | |
+ continue | |
+ } | |
+ // Card connected, start tracking in amongs the wallets | |
+ hub.wallets[reader] = wallet | |
+ events = append(events, accounts.WalletEvent{Wallet: wallet, Kind: accounts.WalletArrived}) | |
+ } | |
+ // Remove any wallets no longer present | |
+ for reader, wallet := range hub.wallets { | |
+ if _, ok := seen[reader]; !ok { | |
+ wallet.Close() | |
+ events = append(events, accounts.WalletEvent{Wallet: wallet, Kind: accounts.WalletDropped}) | |
+ delete(hub.wallets, reader) | |
+ } | |
+ } | |
+ hub.refreshed = time.Now() | |
+ hub.stateLock.Unlock() | |
+ | |
+ for _, event := range events { | |
+ hub.updateFeed.Send(event) | |
+ } | |
+} | |
+ | |
+// Subscribe implements accounts.Backend, creating an async subscription to | |
+// receive notifications on the addition or removal of smart card wallets. | |
+func (hub *Hub) Subscribe(sink chan<- accounts.WalletEvent) event.Subscription { | |
+ // We need the mutex to reliably start/stop the update loop | |
+ hub.stateLock.Lock() | |
+ defer hub.stateLock.Unlock() | |
+ | |
+ // Subscribe the caller and track the subscriber count | |
+ sub := hub.updateScope.Track(hub.updateFeed.Subscribe(sink)) | |
+ | |
+ // Subscribers require an active notification loop, start it | |
+ if !hub.updating { | |
+ hub.updating = true | |
+ go hub.updater() | |
+ } | |
+ return sub | |
+} | |
+ | |
+// updater is responsible for maintaining an up-to-date list of wallets managed | |
+// by the smart card hub, and for firing wallet addition/removal events. | |
+func (hub *Hub) updater() { | |
+ for { | |
+ // TODO: Wait for a USB hotplug event (not supported yet) or a refresh timeout | |
+ // <-hub.changes | |
+ time.Sleep(refreshCycle) | |
+ | |
+ // Run the wallet refresher | |
+ hub.refreshWallets() | |
+ | |
+ // If all our subscribers left, stop the updater | |
+ hub.stateLock.Lock() | |
+ if hub.updateScope.Count() == 0 { | |
+ hub.updating = false | |
+ hub.stateLock.Unlock() | |
+ return | |
+ } | |
+ hub.stateLock.Unlock() | |
+ } | |
+} | |
diff --git a/accounts/scwallet/securechannel.go b/accounts/scwallet/securechannel.go | |
new file mode 100644 | |
index 000000000..fad876a01 | |
--- /dev/null | |
+++ b/accounts/scwallet/securechannel.go | |
@@ -0,0 +1,346 @@ | |
+// Copyright 2018 The go-ethereum Authors | |
+// This file is part of the go-ethereum library. | |
+// | |
+// The go-ethereum library is free software: you can redistribute it and/or modify | |
+// it under the terms of the GNU Lesser General Public License as published by | |
+// the Free Software Foundation, either version 3 of the License, or | |
+// (at your option) any later version. | |
+// | |
+// The go-ethereum library is distributed in the hope that it will be useful, | |
+// but WITHOUT ANY WARRANTY; without even the implied warranty of | |
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the | |
+// GNU Lesser General Public License for more details. | |
+// | |
+// You should have received a copy of the GNU Lesser General Public License | |
+// along with the go-ethereum library. If not, see <http://www.gnu.org/licenses/>. | |
+ | |
+package scwallet | |
+ | |
+import ( | |
+ "bytes" | |
+ "crypto/aes" | |
+ "crypto/cipher" | |
+ "crypto/rand" | |
+ "crypto/sha256" | |
+ "crypto/sha512" | |
+ "fmt" | |
+ | |
+ "github.com/ethereum/go-ethereum/crypto" | |
+ pcsc "github.com/gballet/go-libpcsclite" | |
+ "github.com/wsddn/go-ecdh" | |
+ "golang.org/x/crypto/pbkdf2" | |
+ "golang.org/x/text/unicode/norm" | |
+) | |
+ | |
+const ( | |
+ maxPayloadSize = 223 | |
+ pairP1FirstStep = 0 | |
+ pairP1LastStep = 1 | |
+ | |
+ scSecretLength = 32 | |
+ scBlockSize = 16 | |
+ | |
+ insOpenSecureChannel = 0x10 | |
+ insMutuallyAuthenticate = 0x11 | |
+ insPair = 0x12 | |
+ insUnpair = 0x13 | |
+ | |
+ pairingSalt = "Keycard Pairing Password Salt" | |
+) | |
+ | |
+// SecureChannelSession enables secure communication with a hardware wallet. | |
+type SecureChannelSession struct { | |
+ card *pcsc.Card // A handle to the smartcard for communication | |
+ secret []byte // A shared secret generated from our ECDSA keys | |
+ publicKey []byte // Our own ephemeral public key | |
+ PairingKey []byte // A permanent shared secret for a pairing, if present | |
+ sessionEncKey []byte // The current session encryption key | |
+ sessionMacKey []byte // The current session MAC key | |
+ iv []byte // The current IV | |
+ PairingIndex uint8 // The pairing index | |
+} | |
+ | |
+// NewSecureChannelSession creates a new secure channel for the given card and public key. | |
+func NewSecureChannelSession(card *pcsc.Card, keyData []byte) (*SecureChannelSession, error) { | |
+ // Generate an ECDSA keypair for ourselves | |
+ gen := ecdh.NewEllipticECDH(crypto.S256()) | |
+ private, public, err := gen.GenerateKey(rand.Reader) | |
+ if err != nil { | |
+ return nil, err | |
+ } | |
+ | |
+ cardPublic, ok := gen.Unmarshal(keyData) | |
+ if !ok { | |
+ return nil, fmt.Errorf("Could not unmarshal public key from card") | |
+ } | |
+ | |
+ secret, err := gen.GenerateSharedSecret(private, cardPublic) | |
+ if err != nil { | |
+ return nil, err | |
+ } | |
+ | |
+ return &SecureChannelSession{ | |
+ card: card, | |
+ secret: secret, | |
+ publicKey: gen.Marshal(public), | |
+ }, nil | |
+} | |
+ | |
+// Pair establishes a new pairing with the smartcard. | |
+func (s *SecureChannelSession) Pair(pairingPassword []byte) error { | |
+ secretHash := pbkdf2.Key(norm.NFKD.Bytes(pairingPassword), norm.NFKD.Bytes([]byte(pairingSalt)), 50000, 32, sha256.New) | |
+ | |
+ challenge := make([]byte, 32) | |
+ if _, err := rand.Read(challenge); err != nil { | |
+ return err | |
+ } | |
+ | |
+ response, err := s.pair(pairP1FirstStep, challenge) | |
+ if err != nil { | |
+ return err | |
+ } | |
+ | |
+ md := sha256.New() | |
+ md.Write(secretHash[:]) | |
+ md.Write(challenge) | |
+ | |
+ expectedCryptogram := md.Sum(nil) | |
+ cardCryptogram := response.Data[:32] | |
+ cardChallenge := response.Data[32:64] | |
+ | |
+ if !bytes.Equal(expectedCryptogram, cardCryptogram) { | |
+ return fmt.Errorf("Invalid card cryptogram %v != %v", expectedCryptogram, cardCryptogram) | |
+ } | |
+ | |
+ md.Reset() | |
+ md.Write(secretHash[:]) | |
+ md.Write(cardChallenge) | |
+ response, err = s.pair(pairP1LastStep, md.Sum(nil)) | |
+ if err != nil { | |
+ return err | |
+ } | |
+ | |
+ md.Reset() | |
+ md.Write(secretHash[:]) | |
+ md.Write(response.Data[1:]) | |
+ s.PairingKey = md.Sum(nil) | |
+ s.PairingIndex = response.Data[0] | |
+ | |
+ return nil | |
+} | |
+ | |
+// Unpair disestablishes an existing pairing. | |
+func (s *SecureChannelSession) Unpair() error { | |
+ if s.PairingKey == nil { | |
+ return fmt.Errorf("Cannot unpair: not paired") | |
+ } | |
+ | |
+ _, err := s.transmitEncrypted(claSCWallet, insUnpair, s.PairingIndex, 0, []byte{}) | |
+ if err != nil { | |
+ return err | |
+ } | |
+ s.PairingKey = nil | |
+ // Close channel | |
+ s.iv = nil | |
+ return nil | |
+} | |
+ | |
+// Open initializes the secure channel. | |
+func (s *SecureChannelSession) Open() error { | |
+ if s.iv != nil { | |
+ return fmt.Errorf("Session already opened") | |
+ } | |
+ | |
+ response, err := s.open() | |
+ if err != nil { | |
+ return err | |
+ } | |
+ | |
+ // Generate the encryption/mac key by hashing our shared secret, | |
+ // pairing key, and the first bytes returned from the Open APDU. | |
+ md := sha512.New() | |
+ md.Write(s.secret) | |
+ md.Write(s.PairingKey) | |
+ md.Write(response.Data[:scSecretLength]) | |
+ keyData := md.Sum(nil) | |
+ s.sessionEncKey = keyData[:scSecretLength] | |
+ s.sessionMacKey = keyData[scSecretLength : scSecretLength*2] | |
+ | |
+ // The IV is the last bytes returned from the Open APDU. | |
+ s.iv = response.Data[scSecretLength:] | |
+ | |
+ return s.mutuallyAuthenticate() | |
+} | |
+ | |
+// mutuallyAuthenticate is an internal method to authenticate both ends of the | |
+// connection. | |
+func (s *SecureChannelSession) mutuallyAuthenticate() error { | |
+ data := make([]byte, scSecretLength) | |
+ if _, err := rand.Read(data); err != nil { | |
+ return err | |
+ } | |
+ | |
+ response, err := s.transmitEncrypted(claSCWallet, insMutuallyAuthenticate, 0, 0, data) | |
+ if err != nil { | |
+ return err | |
+ } | |
+ if response.Sw1 != 0x90 || response.Sw2 != 0x00 { | |
+ return fmt.Errorf("Got unexpected response from MUTUALLY_AUTHENTICATE: 0x%x%x", response.Sw1, response.Sw2) | |
+ } | |
+ | |
+ if len(response.Data) != scSecretLength { | |
+ return fmt.Errorf("Response from MUTUALLY_AUTHENTICATE was %d bytes, expected %d", len(response.Data), scSecretLength) | |
+ } | |
+ | |
+ return nil | |
+} | |
+ | |
+// open is an internal method that sends an open APDU. | |
+func (s *SecureChannelSession) open() (*responseAPDU, error) { | |
+ return transmit(s.card, &commandAPDU{ | |
+ Cla: claSCWallet, | |
+ Ins: insOpenSecureChannel, | |
+ P1: s.PairingIndex, | |
+ P2: 0, | |
+ Data: s.publicKey, | |
+ Le: 0, | |
+ }) | |
+} | |
+ | |
+// pair is an internal method that sends a pair APDU. | |
+func (s *SecureChannelSession) pair(p1 uint8, data []byte) (*responseAPDU, error) { | |
+ return transmit(s.card, &commandAPDU{ | |
+ Cla: claSCWallet, | |
+ Ins: insPair, | |
+ P1: p1, | |
+ P2: 0, | |
+ Data: data, | |
+ Le: 0, | |
+ }) | |
+} | |
+ | |
+// transmitEncrypted sends an encrypted message, and decrypts and returns the response. | |
+func (s *SecureChannelSession) transmitEncrypted(cla, ins, p1, p2 byte, data []byte) (*responseAPDU, error) { | |
+ if s.iv == nil { | |
+ return nil, fmt.Errorf("Channel not open") | |
+ } | |
+ | |
+ data, err := s.encryptAPDU(data) | |
+ if err != nil { | |
+ return nil, err | |
+ } | |
+ meta := [16]byte{cla, ins, p1, p2, byte(len(data) + scBlockSize)} | |
+ if err = s.updateIV(meta[:], data); err != nil { | |
+ return nil, err | |
+ } | |
+ | |
+ fulldata := make([]byte, len(s.iv)+len(data)) | |
+ copy(fulldata, s.iv) | |
+ copy(fulldata[len(s.iv):], data) | |
+ | |
+ response, err := transmit(s.card, &commandAPDU{ | |
+ Cla: cla, | |
+ Ins: ins, | |
+ P1: p1, | |
+ P2: p2, | |
+ Data: fulldata, | |
+ }) | |
+ if err != nil { | |
+ return nil, err | |
+ } | |
+ | |
+ rmeta := [16]byte{byte(len(response.Data))} | |
+ rmac := response.Data[:len(s.iv)] | |
+ rdata := response.Data[len(s.iv):] | |
+ plainData, err := s.decryptAPDU(rdata) | |
+ if err != nil { | |
+ return nil, err | |
+ } | |
+ | |
+ if err = s.updateIV(rmeta[:], rdata); err != nil { | |
+ return nil, err | |
+ } | |
+ if !bytes.Equal(s.iv, rmac) { | |
+ return nil, fmt.Errorf("Invalid MAC in response") | |
+ } | |
+ | |
+ rapdu := &responseAPDU{} | |
+ rapdu.deserialize(plainData) | |
+ | |
+ if rapdu.Sw1 != sw1Ok { | |
+ return nil, fmt.Errorf("Unexpected response status Cla=0x%x, Ins=0x%x, Sw=0x%x%x", cla, ins, rapdu.Sw1, rapdu.Sw2) | |
+ } | |
+ | |
+ return rapdu, nil | |
+} | |
+ | |
+// encryptAPDU is an internal method that serializes and encrypts an APDU. | |
+func (s *SecureChannelSession) encryptAPDU(data []byte) ([]byte, error) { | |
+ if len(data) > maxPayloadSize { | |
+ return nil, fmt.Errorf("Payload of %d bytes exceeds maximum of %d", len(data), maxPayloadSize) | |
+ } | |
+ data = pad(data, 0x80) | |
+ | |
+ ret := make([]byte, len(data)) | |
+ | |
+ a, err := aes.NewCipher(s.sessionEncKey) | |
+ if err != nil { | |
+ return nil, err | |
+ } | |
+ crypter := cipher.NewCBCEncrypter(a, s.iv) | |
+ crypter.CryptBlocks(ret, data) | |
+ return ret, nil | |
+} | |
+ | |
+// pad applies message padding to a 16 byte boundary. | |
+func pad(data []byte, terminator byte) []byte { | |
+ padded := make([]byte, (len(data)/16+1)*16) | |
+ copy(padded, data) | |
+ padded[len(data)] = terminator | |
+ return padded | |
+} | |
+ | |
+// decryptAPDU is an internal method that decrypts and deserializes an APDU. | |
+func (s *SecureChannelSession) decryptAPDU(data []byte) ([]byte, error) { | |
+ a, err := aes.NewCipher(s.sessionEncKey) | |
+ if err != nil { | |
+ return nil, err | |
+ } | |
+ | |
+ ret := make([]byte, len(data)) | |
+ | |
+ crypter := cipher.NewCBCDecrypter(a, s.iv) | |
+ crypter.CryptBlocks(ret, data) | |
+ return unpad(ret, 0x80) | |
+} | |
+ | |
+// unpad strips padding from a message. | |
+func unpad(data []byte, terminator byte) ([]byte, error) { | |
+ for i := 1; i <= 16; i++ { | |
+ switch data[len(data)-i] { | |
+ case 0: | |
+ continue | |
+ case terminator: | |
+ return data[:len(data)-i], nil | |
+ default: | |
+ return nil, fmt.Errorf("Expected end of padding, got %d", data[len(data)-i]) | |
+ } | |
+ } | |
+ return nil, fmt.Errorf("Expected end of padding, got 0") | |
+} | |
+ | |
+// updateIV is an internal method that updates the initialization vector after | |
+// each message exchanged. | |
+func (s *SecureChannelSession) updateIV(meta, data []byte) error { | |
+ data = pad(data, 0) | |
+ a, err := aes.NewCipher(s.sessionMacKey) | |
+ if err != nil { | |
+ return err | |
+ } | |
+ crypter := cipher.NewCBCEncrypter(a, make([]byte, 16)) | |
+ crypter.CryptBlocks(meta, meta) | |
+ crypter.CryptBlocks(data, data) | |
+ // The first 16 bytes of the last block is the MAC | |
+ s.iv = data[len(data)-32 : len(data)-16] | |
+ return nil | |
+} | |
diff --git a/accounts/scwallet/wallet.go b/accounts/scwallet/wallet.go | |
new file mode 100644 | |
index 000000000..4c9a422a3 | |
--- /dev/null | |
+++ b/accounts/scwallet/wallet.go | |
@@ -0,0 +1,1074 @@ | |
+// Copyright 2018 The go-ethereum Authors | |
+// This file is part of the go-ethereum library. | |
+// | |
+// The go-ethereum library is free software: you can redistribute it and/or modify | |
+// it under the terms of the GNU Lesser General Public License as published by | |
+// the Free Software Foundation, either version 3 of the License, or | |
+// (at your option) any later version. | |
+// | |
+// The go-ethereum library is distributed in the hope that it will be useful, | |
+// but WITHOUT ANY WARRANTY; without even the implied warranty of | |
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the | |
+// GNU Lesser General Public License for more details. | |
+// | |
+// You should have received a copy of the GNU Lesser General Public License | |
+// along with the go-ethereum library. If not, see <http://www.gnu.org/licenses/>. | |
+ | |
+package scwallet | |
+ | |
+import ( | |
+ "bytes" | |
+ "context" | |
+ "crypto/hmac" | |
+ "crypto/sha256" | |
+ "crypto/sha512" | |
+ "encoding/asn1" | |
+ "encoding/binary" | |
+ "errors" | |
+ "fmt" | |
+ "math/big" | |
+ "sort" | |
+ "strings" | |
+ "sync" | |
+ "time" | |
+ | |
+ ethereum "github.com/ethereum/go-ethereum" | |
+ "github.com/ethereum/go-ethereum/accounts" | |
+ "github.com/ethereum/go-ethereum/common" | |
+ "github.com/ethereum/go-ethereum/core/types" | |
+ "github.com/ethereum/go-ethereum/crypto" | |
+ "github.com/ethereum/go-ethereum/crypto/secp256k1" | |
+ "github.com/ethereum/go-ethereum/log" | |
+ pcsc "github.com/gballet/go-libpcsclite" | |
+ "github.com/status-im/keycard-go/derivationpath" | |
+) | |
+ | |
+// ErrPairingPasswordNeeded is returned if opening the smart card requires pairing with a pairing | |
+// password. In this case, the calling application should request user input to enter | |
+// the pairing password and send it back. | |
+var ErrPairingPasswordNeeded = errors.New("smartcard: pairing password needed") | |
+ | |
+// ErrPINNeeded is returned if opening the smart card requires a PIN code. In | |
+// this case, the calling application should request user input to enter the PIN | |
+// and send it back. | |
+var ErrPINNeeded = errors.New("smartcard: pin needed") | |
+ | |
+// ErrPINUnblockNeeded is returned if opening the smart card requires a PIN code, | |
+// but all PIN attempts have already been exhausted. In this case the calling | |
+// application should request user input for the PUK and a new PIN code to set | |
+// fo the card. | |
+var ErrPINUnblockNeeded = errors.New("smartcard: pin unblock needed") | |
+ | |
+// ErrAlreadyOpen is returned if the smart card is attempted to be opened, but | |
+// there is already a paired and unlocked session. | |
+var ErrAlreadyOpen = errors.New("smartcard: already open") | |
+ | |
+// ErrPubkeyMismatch is returned if the public key recovered from a signature | |
+// does not match the one expected by the user. | |
+var ErrPubkeyMismatch = errors.New("smartcard: recovered public key mismatch") | |
+ | |
+var ( | |
+ appletAID = []byte{0xA0, 0x00, 0x00, 0x08, 0x04, 0x00, 0x01, 0x01, 0x01} | |
+ // DerivationSignatureHash is used to derive the public key from the signature of this hash | |
+ DerivationSignatureHash = sha256.Sum256(common.Hash{}.Bytes()) | |
+) | |
+ | |
+// List of APDU command-related constants | |
+const ( | |
+ claISO7816 = 0 | |
+ claSCWallet = 0x80 | |
+ | |
+ insSelect = 0xA4 | |
+ insGetResponse = 0xC0 | |
+ sw1GetResponse = 0x61 | |
+ sw1Ok = 0x90 | |
+ | |
+ insVerifyPin = 0x20 | |
+ insUnblockPin = 0x22 | |
+ insExportKey = 0xC2 | |
+ insSign = 0xC0 | |
+ insLoadKey = 0xD0 | |
+ insDeriveKey = 0xD1 | |
+ insStatus = 0xF2 | |
+) | |
+ | |
+// List of ADPU command parameters | |
+const ( | |
+ P1DeriveKeyFromMaster = uint8(0x00) | |
+ P1DeriveKeyFromParent = uint8(0x01) | |
+ P1DeriveKeyFromCurrent = uint8(0x10) | |
+ statusP1WalletStatus = uint8(0x00) | |
+ statusP1Path = uint8(0x01) | |
+ signP1PrecomputedHash = uint8(0x01) | |
+ signP2OnlyBlock = uint8(0x81) | |
+ exportP1Any = uint8(0x00) | |
+ exportP2Pubkey = uint8(0x01) | |
+) | |
+ | |
+// Minimum time to wait between self derivation attempts, even it the user is | |
+// requesting accounts like crazy. | |
+const selfDeriveThrottling = time.Second | |
+ | |
+// Wallet represents a smartcard wallet instance. | |
+type Wallet struct { | |
+ Hub *Hub // A handle to the Hub that instantiated this wallet. | |
+ PublicKey []byte // The wallet's public key (used for communication and identification, not signing!) | |
+ | |
+ lock sync.Mutex // Lock that gates access to struct fields and communication with the card | |
+ card *pcsc.Card // A handle to the smartcard interface for the wallet. | |
+ session *Session // The secure communication session with the card | |
+ log log.Logger // Contextual logger to tag the base with its id | |
+ | |
+ deriveNextPath accounts.DerivationPath // Next derivation path for account auto-discovery | |
+ deriveNextAddr common.Address // Next derived account address for auto-discovery | |
+ deriveChain ethereum.ChainStateReader // Blockchain state reader to discover used account with | |
+ deriveReq chan chan struct{} // Channel to request a self-derivation on | |
+ deriveQuit chan chan error // Channel to terminate the self-deriver with | |
+} | |
+ | |
+// NewWallet constructs and returns a new Wallet instance. | |
+func NewWallet(hub *Hub, card *pcsc.Card) *Wallet { | |
+ wallet := &Wallet{ | |
+ Hub: hub, | |
+ card: card, | |
+ } | |
+ return wallet | |
+} | |
+ | |
+// transmit sends an APDU to the smartcard and receives and decodes the response. | |
+// It automatically handles requests by the card to fetch the return data separately, | |
+// and returns an error if the response status code is not success. | |
+func transmit(card *pcsc.Card, command *commandAPDU) (*responseAPDU, error) { | |
+ data, err := command.serialize() | |
+ if err != nil { | |
+ return nil, err | |
+ } | |
+ | |
+ responseData, _, err := card.Transmit(data) | |
+ if err != nil { | |
+ return nil, err | |
+ } | |
+ | |
+ response := new(responseAPDU) | |
+ if err = response.deserialize(responseData); err != nil { | |
+ return nil, err | |
+ } | |
+ | |
+ // Are we being asked to fetch the response separately? | |
+ if response.Sw1 == sw1GetResponse && (command.Cla != claISO7816 || command.Ins != insGetResponse) { | |
+ return transmit(card, &commandAPDU{ | |
+ Cla: claISO7816, | |
+ Ins: insGetResponse, | |
+ P1: 0, | |
+ P2: 0, | |
+ Data: nil, | |
+ Le: response.Sw2, | |
+ }) | |
+ } | |
+ | |
+ if response.Sw1 != sw1Ok { | |
+ return nil, fmt.Errorf("Unexpected insecure response status Cla=0x%x, Ins=0x%x, Sw=0x%x%x", command.Cla, command.Ins, response.Sw1, response.Sw2) | |
+ } | |
+ | |
+ return response, nil | |
+} | |
+ | |
+// applicationInfo encodes information about the smartcard application - its | |
+// instance UID and public key. | |
+type applicationInfo struct { | |
+ InstanceUID []byte `asn1:"tag:15"` | |
+ PublicKey []byte `asn1:"tag:0"` | |
+} | |
+ | |
+// connect connects to the wallet application and establishes a secure channel with it. | |
+// must be called before any other interaction with the wallet. | |
+func (w *Wallet) connect() error { | |
+ w.lock.Lock() | |
+ defer w.lock.Unlock() | |
+ | |
+ appinfo, err := w.doselect() | |
+ if err != nil { | |
+ return err | |
+ } | |
+ | |
+ channel, err := NewSecureChannelSession(w.card, appinfo.PublicKey) | |
+ if err != nil { | |
+ return err | |
+ } | |
+ | |
+ w.PublicKey = appinfo.PublicKey | |
+ w.log = log.New("url", w.URL()) | |
+ w.session = &Session{ | |
+ Wallet: w, | |
+ Channel: channel, | |
+ } | |
+ return nil | |
+} | |
+ | |
+// doselect is an internal (unlocked) function to send a SELECT APDU to the card. | |
+func (w *Wallet) doselect() (*applicationInfo, error) { | |
+ response, err := transmit(w.card, &commandAPDU{ | |
+ Cla: claISO7816, | |
+ Ins: insSelect, | |
+ P1: 4, | |
+ P2: 0, | |
+ Data: appletAID, | |
+ }) | |
+ if err != nil { | |
+ return nil, err | |
+ } | |
+ | |
+ appinfo := new(applicationInfo) | |
+ if _, err := asn1.UnmarshalWithParams(response.Data, appinfo, "tag:4"); err != nil { | |
+ return nil, err | |
+ } | |
+ return appinfo, nil | |
+} | |
+ | |
+// ping checks the card's status and returns an error if unsuccessful. | |
+func (w *Wallet) ping() error { | |
+ w.lock.Lock() | |
+ defer w.lock.Unlock() | |
+ | |
+ // We can't ping if not paired | |
+ if !w.session.paired() { | |
+ return nil | |
+ } | |
+ if _, err := w.session.walletStatus(); err != nil { | |
+ return err | |
+ } | |
+ return nil | |
+} | |
+ | |
+// release releases any resources held by an open wallet instance. | |
+func (w *Wallet) release() error { | |
+ if w.session != nil { | |
+ return w.session.release() | |
+ } | |
+ return nil | |
+} | |
+ | |
+// pair is an internal (unlocked) function for establishing a new pairing | |
+// with the wallet. | |
+func (w *Wallet) pair(puk []byte) error { | |
+ if w.session.paired() { | |
+ return fmt.Errorf("Wallet already paired") | |
+ } | |
+ pairing, err := w.session.pair(puk) | |
+ if err != nil { | |
+ return err | |
+ } | |
+ if err = w.Hub.setPairing(w, &pairing); err != nil { | |
+ return err | |
+ } | |
+ return w.session.authenticate(pairing) | |
+} | |
+ | |
+// Unpair deletes an existing wallet pairing. | |
+func (w *Wallet) Unpair(pin []byte) error { | |
+ w.lock.Lock() | |
+ defer w.lock.Unlock() | |
+ | |
+ if !w.session.paired() { | |
+ return fmt.Errorf("wallet %x not paired", w.PublicKey) | |
+ } | |
+ if err := w.session.verifyPin(pin); err != nil { | |
+ return fmt.Errorf("failed to verify pin: %s", err) | |
+ } | |
+ if err := w.session.unpair(); err != nil { | |
+ return fmt.Errorf("failed to unpair: %s", err) | |
+ } | |
+ if err := w.Hub.setPairing(w, nil); err != nil { | |
+ return err | |
+ } | |
+ return nil | |
+} | |
+ | |
+// URL retrieves the canonical path under which this wallet is reachable. It is | |
+// user by upper layers to define a sorting order over all wallets from multiple | |
+// backends. | |
+func (w *Wallet) URL() accounts.URL { | |
+ return accounts.URL{ | |
+ Scheme: w.Hub.scheme, | |
+ Path: fmt.Sprintf("%x", w.PublicKey[1:5]), // Byte #0 isn't unique; 1:5 covers << 64K cards, bump to 1:9 for << 4M | |
+ } | |
+} | |
+ | |
+// Status returns a textual status to aid the user in the current state of the | |
+// wallet. It also returns an error indicating any failure the wallet might have | |
+// encountered. | |
+func (w *Wallet) Status() (string, error) { | |
+ w.lock.Lock() | |
+ defer w.lock.Unlock() | |
+ | |
+ // If the card is not paired, we can only wait | |
+ if !w.session.paired() { | |
+ return "Unpaired, waiting for pairing password", nil | |
+ } | |
+ // Yay, we have an encrypted session, retrieve the actual status | |
+ status, err := w.session.walletStatus() | |
+ if err != nil { | |
+ return fmt.Sprintf("Failed: %v", err), err | |
+ } | |
+ switch { | |
+ case !w.session.verified && status.PinRetryCount == 0: | |
+ return fmt.Sprintf("Blocked, waiting for PUK and new PIN"), nil | |
+ case !w.session.verified: | |
+ return fmt.Sprintf("Locked, waiting for PIN (%d attempts left)", status.PinRetryCount), nil | |
+ case !status.Initialized: | |
+ return fmt.Sprintf("Empty, waiting for initialization"), nil | |
+ default: | |
+ return fmt.Sprintf("Online"), nil | |
+ } | |
+} | |
+ | |
+// Open initializes access to a wallet instance. It is not meant to unlock or | |
+// decrypt account keys, rather simply to establish a connection to hardware | |
+// wallets and/or to access derivation seeds. | |
+// | |
+// The passphrase parameter may or may not be used by the implementation of a | |
+// particular wallet instance. The reason there is no passwordless open method | |
+// is to strive towards a uniform wallet handling, oblivious to the different | |
+// backend providers. | |
+// | |
+// Please note, if you open a wallet, you must close it to release any allocated | |
+// resources (especially important when working with hardware wallets). | |
+func (w *Wallet) Open(passphrase string) error { | |
+ w.lock.Lock() | |
+ defer w.lock.Unlock() | |
+ | |
+ // If the session is already open, bail out | |
+ if w.session.verified { | |
+ return ErrAlreadyOpen | |
+ } | |
+ // If the smart card is not yet paired, attempt to do so either from a previous | |
+ // pairing key or form the supplied PUK code. | |
+ if !w.session.paired() { | |
+ // If a previous pairing exists, only ever try to use that | |
+ if pairing := w.Hub.pairing(w); pairing != nil { | |
+ if err := w.session.authenticate(*pairing); err != nil { | |
+ return fmt.Errorf("failed to authenticate card %x: %s", w.PublicKey[:4], err) | |
+ } | |
+ // Pairing still ok, fall through to PIN checks | |
+ } else { | |
+ // If no passphrase was supplied, request the PUK from the user | |
+ if passphrase == "" { | |
+ return ErrPairingPasswordNeeded | |
+ } | |
+ // Attempt to pair the smart card with the user supplied PUK | |
+ if err := w.pair([]byte(passphrase)); err != nil { | |
+ return err | |
+ } | |
+ // Pairing succeeded, fall through to PIN checks. This will of course fail, | |
+ // but we can't return ErrPINNeeded directly here becase we don't know whether | |
+ // a PIN check or a PIN reset is needed. | |
+ passphrase = "" | |
+ } | |
+ } | |
+ // The smart card was successfully paired, retrieve its status to check whether | |
+ // PIN verification or unblocking is needed. | |
+ status, err := w.session.walletStatus() | |
+ if err != nil { | |
+ return err | |
+ } | |
+ // Request the appropriate next authentication data, or use the one supplied | |
+ switch { | |
+ case passphrase == "" && status.PinRetryCount > 0: | |
+ return ErrPINNeeded | |
+ case passphrase == "": | |
+ return ErrPINUnblockNeeded | |
+ case status.PinRetryCount > 0: | |
+ if err := w.session.verifyPin([]byte(passphrase)); err != nil { | |
+ return err | |
+ } | |
+ default: | |
+ if err := w.session.unblockPin([]byte(passphrase)); err != nil { | |
+ return err | |
+ } | |
+ } | |
+ // Smart card paired and unlocked, initialize and register | |
+ w.deriveReq = make(chan chan struct{}) | |
+ w.deriveQuit = make(chan chan error) | |
+ | |
+ go w.selfDerive(0) | |
+ | |
+ // Notify anyone listening for wallet events that a new device is accessible | |
+ go w.Hub.updateFeed.Send(accounts.WalletEvent{Wallet: w, Kind: accounts.WalletOpened}) | |
+ | |
+ return nil | |
+} | |
+ | |
+// Close stops and closes the wallet, freeing any resources. | |
+func (w *Wallet) Close() error { | |
+ // Ensure the wallet was opened | |
+ w.lock.Lock() | |
+ dQuit := w.deriveQuit | |
+ w.lock.Unlock() | |
+ | |
+ // Terminate the self-derivations | |
+ var derr error | |
+ if dQuit != nil { | |
+ errc := make(chan error) | |
+ dQuit <- errc | |
+ derr = <-errc // Save for later, we *must* close the USB | |
+ } | |
+ // Terminate the device connection | |
+ w.lock.Lock() | |
+ defer w.lock.Unlock() | |
+ | |
+ w.deriveQuit = nil | |
+ w.deriveReq = nil | |
+ | |
+ if err := w.release(); err != nil { | |
+ return err | |
+ } | |
+ return derr | |
+} | |
+ | |
+// selfDerive is an account derivation loop that upon request attempts to find | |
+// new non-zero accounts. maxEmpty specifies the number of empty accounts that | |
+// should be derived once an initial empty account has been found. | |
+func (w *Wallet) selfDerive(maxEmpty int) { | |
+ w.log.Debug("Smart card wallet self-derivation started") | |
+ defer w.log.Debug("Smart card wallet self-derivation stopped") | |
+ | |
+ // Execute self-derivations until termination or error | |
+ var ( | |
+ reqc chan struct{} | |
+ errc chan error | |
+ err error | |
+ ) | |
+ for errc == nil && err == nil { | |
+ // Wait until either derivation or termination is requested | |
+ select { | |
+ case errc = <-w.deriveQuit: | |
+ // Termination requested | |
+ continue | |
+ case reqc = <-w.deriveReq: | |
+ // Account discovery requested | |
+ } | |
+ // Derivation needs a chain and device access, skip if either unavailable | |
+ w.lock.Lock() | |
+ if w.session == nil || w.deriveChain == nil { | |
+ w.lock.Unlock() | |
+ reqc <- struct{}{} | |
+ continue | |
+ } | |
+ pairing := w.Hub.pairing(w) | |
+ | |
+ // Device lock obtained, derive the next batch of accounts | |
+ var ( | |
+ paths []accounts.DerivationPath | |
+ nextAcc accounts.Account | |
+ | |
+ nextAddr = w.deriveNextAddr | |
+ nextPath = w.deriveNextPath | |
+ | |
+ context = context.Background() | |
+ ) | |
+ for empty, emptyCount := false, maxEmpty+1; !empty || emptyCount > 0; { | |
+ // Retrieve the next derived Ethereum account | |
+ if nextAddr == (common.Address{}) { | |
+ if nextAcc, err = w.session.derive(nextPath); err != nil { | |
+ w.log.Warn("Smartcard wallet account derivation failed", "err", err) | |
+ break | |
+ } | |
+ nextAddr = nextAcc.Address | |
+ } | |
+ // Check the account's status against the current chain state | |
+ var ( | |
+ balance *big.Int | |
+ nonce uint64 | |
+ ) | |
+ balance, err = w.deriveChain.BalanceAt(context, nextAddr, nil) | |
+ if err != nil { | |
+ w.log.Warn("Smartcard wallet balance retrieval failed", "err", err) | |
+ break | |
+ } | |
+ nonce, err = w.deriveChain.NonceAt(context, nextAddr, nil) | |
+ if err != nil { | |
+ w.log.Warn("Smartcard wallet nonce retrieval failed", "err", err) | |
+ break | |
+ } | |
+ // If the next account is empty and no more empty accounts are | |
+ // allowed, stop self-derivation. Add the current one nonetheless. | |
+ if balance.Sign() == 0 && nonce == 0 { | |
+ empty = true | |
+ emptyCount-- | |
+ } | |
+ // We've just self-derived a new account, start tracking it locally | |
+ path := make(accounts.DerivationPath, len(nextPath)) | |
+ copy(path[:], nextPath[:]) | |
+ paths = append(paths, path) | |
+ | |
+ // Display a log message to the user for new (or previously empty accounts) | |
+ if _, known := pairing.Accounts[nextAddr]; !known || !empty || nextAddr != w.deriveNextAddr { | |
+ w.log.Info("Smartcard wallet discovered new account", "address", nextAddr, "path", path, "balance", balance, "nonce", nonce) | |
+ } | |
+ pairing.Accounts[nextAddr] = path | |
+ | |
+ // Fetch the next potential account | |
+ if !empty || emptyCount > 0 { | |
+ nextAddr = common.Address{} | |
+ nextPath[len(nextPath)-1]++ | |
+ } | |
+ } | |
+ // If there are new accounts, write them out | |
+ if len(paths) > 0 { | |
+ err = w.Hub.setPairing(w, pairing) | |
+ } | |
+ // Shift the self-derivation forward | |
+ w.deriveNextAddr = nextAddr | |
+ w.deriveNextPath = nextPath | |
+ | |
+ // Self derivation complete, release device lock | |
+ w.lock.Unlock() | |
+ | |
+ // Notify the user of termination and loop after a bit of time (to avoid trashing) | |
+ reqc <- struct{}{} | |
+ if err == nil { | |
+ select { | |
+ case errc = <-w.deriveQuit: | |
+ // Termination requested, abort | |
+ case <-time.After(selfDeriveThrottling): | |
+ // Waited enough, willing to self-derive again | |
+ } | |
+ } | |
+ } | |
+ // In case of error, wait for termination | |
+ if err != nil { | |
+ w.log.Debug("Smartcard wallet self-derivation failed", "err", err) | |
+ errc = <-w.deriveQuit | |
+ } | |
+ errc <- err | |
+} | |
+ | |
+// Accounts retrieves the list of signing accounts the wallet is currently aware | |
+// of. For hierarchical deterministic wallets, the list will not be exhaustive, | |
+// rather only contain the accounts explicitly pinned during account derivation. | |
+func (w *Wallet) Accounts() []accounts.Account { | |
+ // Attempt self-derivation if it's running | |
+ reqc := make(chan struct{}, 1) | |
+ select { | |
+ case w.deriveReq <- reqc: | |
+ // Self-derivation request accepted, wait for it | |
+ <-reqc | |
+ default: | |
+ // Self-derivation offline, throttled or busy, skip | |
+ } | |
+ | |
+ w.lock.Lock() | |
+ defer w.lock.Unlock() | |
+ | |
+ if pairing := w.Hub.pairing(w); pairing != nil { | |
+ ret := make([]accounts.Account, 0, len(pairing.Accounts)) | |
+ for address, path := range pairing.Accounts { | |
+ ret = append(ret, w.makeAccount(address, path)) | |
+ } | |
+ sort.Sort(accounts.AccountsByURL(ret)) | |
+ return ret | |
+ } | |
+ return nil | |
+} | |
+ | |
+func (w *Wallet) makeAccount(address common.Address, path accounts.DerivationPath) accounts.Account { | |
+ return accounts.Account{ | |
+ Address: address, | |
+ URL: accounts.URL{ | |
+ Scheme: w.Hub.scheme, | |
+ Path: fmt.Sprintf("%x/%s", w.PublicKey[1:3], path.String()), | |
+ }, | |
+ } | |
+} | |
+ | |
+// Contains returns whether an account is part of this particular wallet or not. | |
+func (w *Wallet) Contains(account accounts.Account) bool { | |
+ if pairing := w.Hub.pairing(w); pairing != nil { | |
+ _, ok := pairing.Accounts[account.Address] | |
+ return ok | |
+ } | |
+ return false | |
+} | |
+ | |
+// Initialize installs a keypair generated from the provided key into the wallet. | |
+func (w *Wallet) Initialize(seed []byte) error { | |
+ go w.selfDerive(0) | |
+ // DO NOT lock at this stage, as the initialize | |
+ // function relies on Status() | |
+ return w.session.initialize(seed) | |
+} | |
+ | |
+// Derive attempts to explicitly derive a hierarchical deterministic account at | |
+// the specified derivation path. If requested, the derived account will be added | |
+// to the wallet's tracked account list. | |
+func (w *Wallet) Derive(path accounts.DerivationPath, pin bool) (accounts.Account, error) { | |
+ w.lock.Lock() | |
+ defer w.lock.Unlock() | |
+ | |
+ account, err := w.session.derive(path) | |
+ if err != nil { | |
+ return accounts.Account{}, err | |
+ } | |
+ | |
+ if pin { | |
+ pairing := w.Hub.pairing(w) | |
+ pairing.Accounts[account.Address] = path | |
+ if err := w.Hub.setPairing(w, pairing); err != nil { | |
+ return accounts.Account{}, err | |
+ } | |
+ } | |
+ | |
+ return account, nil | |
+} | |
+ | |
+// SelfDerive sets a base account derivation path from which the wallet attempts | |
+// to discover non zero accounts and automatically add them to list of tracked | |
+// accounts. | |
+// | |
+// Note, self derivaton will increment the last component of the specified path | |
+// opposed to decending into a child path to allow discovering accounts starting | |
+// from non zero components. | |
+// | |
+// You can disable automatic account discovery by calling SelfDerive with a nil | |
+// chain state reader. | |
+func (w *Wallet) SelfDerive(base accounts.DerivationPath, chain ethereum.ChainStateReader) { | |
+ w.lock.Lock() | |
+ defer w.lock.Unlock() | |
+ | |
+ w.deriveNextPath = make(accounts.DerivationPath, len(base)) | |
+ copy(w.deriveNextPath[:], base[:]) | |
+ | |
+ w.deriveNextAddr = common.Address{} | |
+ w.deriveChain = chain | |
+} | |
+ | |
+// SignData requests the wallet to sign the hash of the given data. | |
+// | |
+// It looks up the account specified either solely via its address contained within, | |
+// or optionally with the aid of any location metadata from the embedded URL field. | |
+// | |
+// If the wallet requires additional authentication to sign the request (e.g. | |
+// a password to decrypt the account, or a PIN code o verify the transaction), | |
+// an AuthNeededError instance will be returned, containing infos for the user | |
+// about which fields or actions are needed. The user may retry by providing | |
+// the needed details via SignDataWithPassphrase, or by other means (e.g. unlock | |
+// the account in a keystore). | |
+func (w *Wallet) SignData(account accounts.Account, mimeType string, data []byte) ([]byte, error) { | |
+ return w.signHash(account, crypto.Keccak256(data)) | |
+} | |
+ | |
+func (w *Wallet) signHash(account accounts.Account, hash []byte) ([]byte, error) { | |
+ w.lock.Lock() | |
+ defer w.lock.Unlock() | |
+ | |
+ path, err := w.findAccountPath(account) | |
+ if err != nil { | |
+ return nil, err | |
+ } | |
+ | |
+ return w.session.sign(path, hash) | |
+} | |
+ | |
+// SignTx requests the wallet to sign the given transaction. | |
+// | |
+// It looks up the account specified either solely via its address contained within, | |
+// or optionally with the aid of any location metadata from the embedded URL field. | |
+// | |
+// If the wallet requires additional authentication to sign the request (e.g. | |
+// a password to decrypt the account, or a PIN code o verify the transaction), | |
+// an AuthNeededError instance will be returned, containing infos for the user | |
+// about which fields or actions are needed. The user may retry by providing | |
+// the needed details via SignTxWithPassphrase, or by other means (e.g. unlock | |
+// the account in a keystore). | |
+func (w *Wallet) SignTx(account accounts.Account, tx *types.Transaction, chainID *big.Int) (*types.Transaction, error) { | |
+ signer := types.NewEIP155Signer(chainID) | |
+ hash := signer.Hash(tx) | |
+ sig, err := w.signHash(account, hash[:]) | |
+ if err != nil { | |
+ return nil, err | |
+ } | |
+ return tx.WithSignature(signer, sig) | |
+} | |
+ | |
+// SignDataWithPassphrase requests the wallet to sign the given hash with the | |
+// given passphrase as extra authentication information. | |
+// | |
+// It looks up the account specified either solely via its address contained within, | |
+// or optionally with the aid of any location metadata from the embedded URL field. | |
+func (w *Wallet) SignDataWithPassphrase(account accounts.Account, passphrase, mimeType string, data []byte) ([]byte, error) { | |
+ return w.signHashWithPassphrase(account, passphrase, crypto.Keccak256(data)) | |
+} | |
+ | |
+func (w *Wallet) signHashWithPassphrase(account accounts.Account, passphrase string, hash []byte) ([]byte, error) { | |
+ if !w.session.verified { | |
+ if err := w.Open(passphrase); err != nil { | |
+ return nil, err | |
+ } | |
+ } | |
+ | |
+ return w.signHash(account, hash) | |
+} | |
+ | |
+// SignText requests the wallet to sign the hash of a given piece of data, prefixed | |
+// by the Ethereum prefix scheme | |
+// It looks up the account specified either solely via its address contained within, | |
+// or optionally with the aid of any location metadata from the embedded URL field. | |
+// | |
+// If the wallet requires additional authentication to sign the request (e.g. | |
+// a password to decrypt the account, or a PIN code o verify the transaction), | |
+// an AuthNeededError instance will be returned, containing infos for the user | |
+// about which fields or actions are needed. The user may retry by providing | |
+// the needed details via SignHashWithPassphrase, or by other means (e.g. unlock | |
+// the account in a keystore). | |
+func (w *Wallet) SignText(account accounts.Account, text []byte) ([]byte, error) { | |
+ return w.signHash(account, accounts.TextHash(text)) | |
+} | |
+ | |
+// SignTextWithPassphrase implements accounts.Wallet, attempting to sign the | |
+// given hash with the given account using passphrase as extra authentication | |
+func (w *Wallet) SignTextWithPassphrase(account accounts.Account, passphrase string, text []byte) ([]byte, error) { | |
+ return w.signHashWithPassphrase(account, passphrase, crypto.Keccak256(accounts.TextHash(text))) | |
+} | |
+ | |
+// SignTxWithPassphrase requests the wallet to sign the given transaction, with the | |
+// given passphrase as extra authentication information. | |
+// | |
+// It looks up the account specified either solely via its address contained within, | |
+// or optionally with the aid of any location metadata from the embedded URL field. | |
+func (w *Wallet) SignTxWithPassphrase(account accounts.Account, passphrase string, tx *types.Transaction, chainID *big.Int) (*types.Transaction, error) { | |
+ if !w.session.verified { | |
+ if err := w.Open(passphrase); err != nil { | |
+ return nil, err | |
+ } | |
+ } | |
+ return w.SignTx(account, tx, chainID) | |
+} | |
+ | |
+// findAccountPath returns the derivation path for the provided account. | |
+// It first checks for the address in the list of pinned accounts, and if it is | |
+// not found, attempts to parse the derivation path from the account's URL. | |
+func (w *Wallet) findAccountPath(account accounts.Account) (accounts.DerivationPath, error) { | |
+ pairing := w.Hub.pairing(w) | |
+ if path, ok := pairing.Accounts[account.Address]; ok { | |
+ return path, nil | |
+ } | |
+ | |
+ // Look for the path in the URL | |
+ if account.URL.Scheme != w.Hub.scheme { | |
+ return nil, fmt.Errorf("Scheme %s does not match wallet scheme %s", account.URL.Scheme, w.Hub.scheme) | |
+ } | |
+ | |
+ parts := strings.SplitN(account.URL.Path, "/", 2) | |
+ if len(parts) != 2 { | |
+ return nil, fmt.Errorf("Invalid URL format: %s", account.URL) | |
+ } | |
+ | |
+ if parts[0] != fmt.Sprintf("%x", w.PublicKey[1:3]) { | |
+ return nil, fmt.Errorf("URL %s is not for this wallet", account.URL) | |
+ } | |
+ | |
+ return accounts.ParseDerivationPath(parts[1]) | |
+} | |
+ | |
+// Session represents a secured communication session with the wallet. | |
+type Session struct { | |
+ Wallet *Wallet // A handle to the wallet that opened the session | |
+ Channel *SecureChannelSession // A secure channel for encrypted messages | |
+ verified bool // Whether the pin has been verified in this session. | |
+} | |
+ | |
+// pair establishes a new pairing over this channel, using the provided secret. | |
+func (s *Session) pair(secret []byte) (smartcardPairing, error) { | |
+ err := s.Channel.Pair(secret) | |
+ if err != nil { | |
+ return smartcardPairing{}, err | |
+ } | |
+ | |
+ return smartcardPairing{ | |
+ PublicKey: s.Wallet.PublicKey, | |
+ PairingIndex: s.Channel.PairingIndex, | |
+ PairingKey: s.Channel.PairingKey, | |
+ Accounts: make(map[common.Address]accounts.DerivationPath), | |
+ }, nil | |
+} | |
+ | |
+// unpair deletes an existing pairing. | |
+func (s *Session) unpair() error { | |
+ if !s.verified { | |
+ return fmt.Errorf("Unpair requires that the PIN be verified") | |
+ } | |
+ return s.Channel.Unpair() | |
+} | |
+ | |
+// verifyPin unlocks a wallet with the provided pin. | |
+func (s *Session) verifyPin(pin []byte) error { | |
+ if _, err := s.Channel.transmitEncrypted(claSCWallet, insVerifyPin, 0, 0, pin); err != nil { | |
+ return err | |
+ } | |
+ s.verified = true | |
+ return nil | |
+} | |
+ | |
+// unblockPin unblocks a wallet with the provided puk and resets the pin to the | |
+// new one specified. | |
+func (s *Session) unblockPin(pukpin []byte) error { | |
+ if _, err := s.Channel.transmitEncrypted(claSCWallet, insUnblockPin, 0, 0, pukpin); err != nil { | |
+ return err | |
+ } | |
+ s.verified = true | |
+ return nil | |
+} | |
+ | |
+// release releases resources associated with the channel. | |
+func (s *Session) release() error { | |
+ return s.Wallet.card.Disconnect(pcsc.LeaveCard) | |
+} | |
+ | |
+// paired returns true if a valid pairing exists. | |
+func (s *Session) paired() bool { | |
+ return s.Channel.PairingKey != nil | |
+} | |
+ | |
+// authenticate uses an existing pairing to establish a secure channel. | |
+func (s *Session) authenticate(pairing smartcardPairing) error { | |
+ if !bytes.Equal(s.Wallet.PublicKey, pairing.PublicKey) { | |
+ return fmt.Errorf("Cannot pair using another wallet's pairing; %x != %x", s.Wallet.PublicKey, pairing.PublicKey) | |
+ } | |
+ s.Channel.PairingKey = pairing.PairingKey | |
+ s.Channel.PairingIndex = pairing.PairingIndex | |
+ return s.Channel.Open() | |
+} | |
+ | |
+// walletStatus describes a smartcard wallet's status information. | |
+type walletStatus struct { | |
+ PinRetryCount int // Number of remaining PIN retries | |
+ PukRetryCount int // Number of remaining PUK retries | |
+ Initialized bool // Whether the card has been initialized with a private key | |
+} | |
+ | |
+// walletStatus fetches the wallet's status from the card. | |
+func (s *Session) walletStatus() (*walletStatus, error) { | |
+ response, err := s.Channel.transmitEncrypted(claSCWallet, insStatus, statusP1WalletStatus, 0, nil) | |
+ if err != nil { | |
+ return nil, err | |
+ } | |
+ | |
+ status := new(walletStatus) | |
+ if _, err := asn1.UnmarshalWithParams(response.Data, status, "tag:3"); err != nil { | |
+ return nil, err | |
+ } | |
+ return status, nil | |
+} | |
+ | |
+// derivationPath fetches the wallet's current derivation path from the card. | |
+func (s *Session) derivationPath() (accounts.DerivationPath, error) { | |
+ response, err := s.Channel.transmitEncrypted(claSCWallet, insStatus, statusP1Path, 0, nil) | |
+ if err != nil { | |
+ return nil, err | |
+ } | |
+ buf := bytes.NewReader(response.Data) | |
+ path := make(accounts.DerivationPath, len(response.Data)/4) | |
+ return path, binary.Read(buf, binary.BigEndian, &path) | |
+} | |
+ | |
+// initializeData contains data needed to initialize the smartcard wallet. | |
+type initializeData struct { | |
+ PublicKey []byte `asn1:"tag:0"` | |
+ PrivateKey []byte `asn1:"tag:1"` | |
+ ChainCode []byte `asn1:"tag:2"` | |
+} | |
+ | |
+// initialize initializes the card with new key data. | |
+func (s *Session) initialize(seed []byte) error { | |
+ // Check that the wallet isn't currently initialized, | |
+ // otherwise the key would be overwritten. | |
+ status, err := s.Wallet.Status() | |
+ if err != nil { | |
+ return err | |
+ } | |
+ if status == "Online" { | |
+ return fmt.Errorf("card is already initialized, cowardly refusing to proceed") | |
+ } | |
+ | |
+ s.Wallet.lock.Lock() | |
+ defer s.Wallet.lock.Unlock() | |
+ | |
+ // HMAC the seed to produce the private key and chain code | |
+ mac := hmac.New(sha512.New, []byte("Bitcoin seed")) | |
+ mac.Write(seed) | |
+ seed = mac.Sum(nil) | |
+ | |
+ key, err := crypto.ToECDSA(seed[:32]) | |
+ if err != nil { | |
+ return err | |
+ } | |
+ | |
+ id := initializeData{} | |
+ id.PublicKey = crypto.FromECDSAPub(&key.PublicKey) | |
+ id.PrivateKey = seed[:32] | |
+ id.ChainCode = seed[32:] | |
+ data, err := asn1.Marshal(id) | |
+ if err != nil { | |
+ return err | |
+ } | |
+ | |
+ // Nasty hack to force the top-level struct tag to be context-specific | |
+ data[0] = 0xA1 | |
+ | |
+ _, err = s.Channel.transmitEncrypted(claSCWallet, insLoadKey, 0x02, 0, data) | |
+ return err | |
+} | |
+ | |
+// derive derives a new HD key path on the card. | |
+func (s *Session) derive(path accounts.DerivationPath) (accounts.Account, error) { | |
+ startingPoint, path, err := derivationpath.Decode(path.String()) | |
+ if err != nil { | |
+ return accounts.Account{}, err | |
+ } | |
+ | |
+ var p1 uint8 | |
+ switch startingPoint { | |
+ case derivationpath.StartingPointMaster: | |
+ p1 = P1DeriveKeyFromMaster | |
+ case derivationpath.StartingPointParent: | |
+ p1 = P1DeriveKeyFromParent | |
+ case derivationpath.StartingPointCurrent: | |
+ p1 = P1DeriveKeyFromCurrent | |
+ default: | |
+ return accounts.Account{}, fmt.Errorf("invalid startingPoint %d", startingPoint) | |
+ } | |
+ | |
+ data := new(bytes.Buffer) | |
+ for _, segment := range path { | |
+ if err := binary.Write(data, binary.BigEndian, segment); err != nil { | |
+ return accounts.Account{}, err | |
+ } | |
+ } | |
+ | |
+ _, err = s.Channel.transmitEncrypted(claSCWallet, insDeriveKey, p1, 0, data.Bytes()) | |
+ if err != nil { | |
+ return accounts.Account{}, err | |
+ } | |
+ | |
+ response, err := s.Channel.transmitEncrypted(claSCWallet, insSign, 0, 0, DerivationSignatureHash[:]) | |
+ if err != nil { | |
+ return accounts.Account{}, err | |
+ } | |
+ | |
+ sigdata := new(signatureData) | |
+ if _, err := asn1.UnmarshalWithParams(response.Data, sigdata, "tag:0"); err != nil { | |
+ return accounts.Account{}, err | |
+ } | |
+ rbytes, sbytes := sigdata.Signature.R.Bytes(), sigdata.Signature.S.Bytes() | |
+ sig := make([]byte, 65) | |
+ copy(sig[32-len(rbytes):32], rbytes) | |
+ copy(sig[64-len(sbytes):64], sbytes) | |
+ | |
+ pubkey, err := determinePublicKey(sig, sigdata.PublicKey) | |
+ if err != nil { | |
+ return accounts.Account{}, err | |
+ } | |
+ | |
+ pub, err := crypto.UnmarshalPubkey(pubkey) | |
+ if err != nil { | |
+ return accounts.Account{}, err | |
+ } | |
+ return s.Wallet.makeAccount(crypto.PubkeyToAddress(*pub), path), nil | |
+} | |
+ | |
+// keyExport contains information on an exported keypair. | |
+type keyExport struct { | |
+ PublicKey []byte `asn1:"tag:0"` | |
+ PrivateKey []byte `asn1:"tag:1,optional"` | |
+} | |
+ | |
+// publicKey returns the public key for the current derivation path. | |
+func (s *Session) publicKey() ([]byte, error) { | |
+ response, err := s.Channel.transmitEncrypted(claSCWallet, insExportKey, exportP1Any, exportP2Pubkey, nil) | |
+ if err != nil { | |
+ return nil, err | |
+ } | |
+ keys := new(keyExport) | |
+ if _, err := asn1.UnmarshalWithParams(response.Data, keys, "tag:1"); err != nil { | |
+ return nil, err | |
+ } | |
+ return keys.PublicKey, nil | |
+} | |
+ | |
+// signatureData contains information on a signature - the signature itself and | |
+// the corresponding public key. | |
+type signatureData struct { | |
+ PublicKey []byte `asn1:"tag:0"` | |
+ Signature struct { | |
+ R *big.Int | |
+ S *big.Int | |
+ } | |
+} | |
+ | |
+// sign asks the card to sign a message, and returns a valid signature after | |
+// recovering the v value. | |
+func (s *Session) sign(path accounts.DerivationPath, hash []byte) ([]byte, error) { | |
+ startTime := time.Now() | |
+ _, err := s.derive(path) | |
+ if err != nil { | |
+ return nil, err | |
+ } | |
+ deriveTime := time.Now() | |
+ | |
+ response, err := s.Channel.transmitEncrypted(claSCWallet, insSign, signP1PrecomputedHash, signP2OnlyBlock, hash) | |
+ if err != nil { | |
+ return nil, err | |
+ } | |
+ sigdata := new(signatureData) | |
+ if _, err := asn1.UnmarshalWithParams(response.Data, sigdata, "tag:0"); err != nil { | |
+ return nil, err | |
+ } | |
+ // Serialize the signature | |
+ rbytes, sbytes := sigdata.Signature.R.Bytes(), sigdata.Signature.S.Bytes() | |
+ sig := make([]byte, 65) | |
+ copy(sig[32-len(rbytes):32], rbytes) | |
+ copy(sig[64-len(sbytes):64], sbytes) | |
+ | |
+ // Recover the V value. | |
+ sig, err = makeRecoverableSignature(hash, sig, sigdata.PublicKey) | |
+ if err != nil { | |
+ return nil, err | |
+ } | |
+ log.Debug("Signed using smartcard", "deriveTime", deriveTime.Sub(startTime), "signingTime", time.Since(deriveTime)) | |
+ | |
+ return sig, nil | |
+} | |
+ | |
+// determinePublicKey uses a signature and the X component of a public key to | |
+// recover the entire public key. | |
+func determinePublicKey(sig, pubkeyX []byte) ([]byte, error) { | |
+ for v := 0; v < 2; v++ { | |
+ sig[64] = byte(v) | |
+ pubkey, err := crypto.Ecrecover(DerivationSignatureHash[:], sig) | |
+ if err == nil { | |
+ if bytes.Equal(pubkey, pubkeyX) { | |
+ return pubkey, nil | |
+ } | |
+ } else if v == 1 || err != secp256k1.ErrRecoverFailed { | |
+ return nil, err | |
+ } | |
+ } | |
+ return nil, ErrPubkeyMismatch | |
+} | |
+ | |
+// makeRecoverableSignature uses a signature and an expected public key to | |
+// recover the v value and produce a recoverable signature. | |
+func makeRecoverableSignature(hash, sig, expectedPubkey []byte) ([]byte, error) { | |
+ for v := 0; v < 2; v++ { | |
+ sig[64] = byte(v) | |
+ pubkey, err := crypto.Ecrecover(hash, sig) | |
+ if err == nil { | |
+ if bytes.Equal(pubkey, expectedPubkey) { | |
+ return sig, nil | |
+ } | |
+ } else if v == 1 || err != secp256k1.ErrRecoverFailed { | |
+ return nil, err | |
+ } | |
+ } | |
+ return nil, ErrPubkeyMismatch | |
+} | |
diff --git a/accounts/sort.go b/accounts/sort.go | |
new file mode 100644 | |
index 000000000..f46762114 | |
--- /dev/null | |
+++ b/accounts/sort.go | |
@@ -0,0 +1,31 @@ | |
+// Copyright 2018 The go-ethereum Authors | |
+// This file is part of the go-ethereum library. | |
+// | |
+// The go-ethereum library is free software: you can redistribute it and/or modify | |
+// it under the terms of the GNU Lesser General Public License as published by | |
+// the Free Software Foundation, either version 3 of the License, or | |
+// (at your option) any later version. | |
+// | |
+// The go-ethereum library is distributed in the hope that it will be useful, | |
+// but WITHOUT ANY WARRANTY; without even the implied warranty of | |
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the | |
+// GNU Lesser General Public License for more details. | |
+// | |
+// You should have received a copy of the GNU Lesser General Public License | |
+// along with the go-ethereum library. If not, see <http://www.gnu.org/licenses/>. | |
+ | |
+package accounts | |
+ | |
+// AccountsByURL implements sort.Interface for []Account based on the URL field. | |
+type AccountsByURL []Account | |
+ | |
+func (a AccountsByURL) Len() int { return len(a) } | |
+func (a AccountsByURL) Swap(i, j int) { a[i], a[j] = a[j], a[i] } | |
+func (a AccountsByURL) Less(i, j int) bool { return a[i].URL.Cmp(a[j].URL) < 0 } | |
+ | |
+// WalletsByURL implements sort.Interface for []Wallet based on the URL field. | |
+type WalletsByURL []Wallet | |
+ | |
+func (w WalletsByURL) Len() int { return len(w) } | |
+func (w WalletsByURL) Swap(i, j int) { w[i], w[j] = w[j], w[i] } | |
+func (w WalletsByURL) Less(i, j int) bool { return w[i].URL().Cmp(w[j].URL()) < 0 } | |
diff --git a/accounts/usbwallet/hub.go b/accounts/usbwallet/hub.go | |
index 640320bc9..a91340b4f 100644 | |
--- a/accounts/usbwallet/hub.go | |
+++ b/accounts/usbwallet/hub.go | |
@@ -150,8 +150,10 @@ func (hub *Hub) refreshWallets() { | |
// Transform the current list of wallets into the new one | |
hub.stateLock.Lock() | |
- wallets := make([]accounts.Wallet, 0, len(devices)) | |
- events := []accounts.WalletEvent{} | |
+ var ( | |
+ wallets = make([]accounts.Wallet, 0, len(devices)) | |
+ events []accounts.WalletEvent | |
+ ) | |
for _, device := range devices { | |
url := accounts.URL{Scheme: hub.scheme, Path: device.Path} | |
diff --git a/accounts/usbwallet/wallet.go b/accounts/usbwallet/wallet.go | |
index feab505c9..2ddfa30a6 100644 | |
--- a/accounts/usbwallet/wallet.go | |
+++ b/accounts/usbwallet/wallet.go | |
@@ -274,9 +274,7 @@ func (w *wallet) close() error { | |
w.device = nil | |
w.accounts, w.paths = nil, nil | |
- w.driver.Close() | |
- | |
- return nil | |
+ return w.driver.Close() | |
} | |
// Accounts implements accounts.Wallet, returning the list of accounts pinned to | |
diff --git a/build/ci-notes.md b/build/ci-notes.md | |
index ba27cdb1d..13e1fd230 100644 | |
--- a/build/ci-notes.md | |
+++ b/build/ci-notes.md | |
@@ -23,18 +23,18 @@ variables `PPA_SIGNING_KEY` and `PPA_SSH_KEY` on Travis. | |
We want to build go-ethereum with the most recent version of Go, irrespective of the Go | |
version that is available in the main Ubuntu repository. In order to make this possible, | |
our PPA depends on the ~gophers/ubuntu/archive PPA. Our source package build-depends on | |
-golang-1.10, which is co-installable alongside the regular golang package. PPA dependencies | |
+golang-1.11, which is co-installable alongside the regular golang package. PPA dependencies | |
can be edited at https://launchpad.net/%7Eethereum/+archive/ubuntu/ethereum/+edit-dependencies | |
## Building Packages Locally (for testing) | |
You need to run Ubuntu to do test packaging. | |
-Add the gophers PPA and install Go 1.10 and Debian packaging tools: | |
+Add the gophers PPA and install Go 1.11 and Debian packaging tools: | |
$ sudo apt-add-repository ppa:gophers/ubuntu/archive | |
$ sudo apt-get update | |
- $ sudo apt-get install build-essential golang-1.10 devscripts debhelper python-bzrlib python-paramiko | |
+ $ sudo apt-get install build-essential golang-1.11 devscripts debhelper python-bzrlib python-paramiko | |
Create the source packages: | |
diff --git a/build/ci.go b/build/ci.go | |
index 4ee76ced5..f5553fd30 100644 | |
--- a/build/ci.go | |
+++ b/build/ci.go | |
@@ -80,6 +80,7 @@ var ( | |
executablePath("puppeth"), | |
executablePath("rlpdump"), | |
executablePath("wnode"), | |
+ executablePath("clef"), | |
} | |
// Files that end up in the swarm*.zip archive. | |
@@ -118,6 +119,10 @@ var ( | |
BinaryName: "wnode", | |
Description: "Ethereum Whisper diagnostic tool", | |
}, | |
+ { | |
+ BinaryName: "clef", | |
+ Description: "Ethereum account management tool.", | |
+ }, | |
} | |
// A debian package is created for all executables listed here. | |
@@ -156,7 +161,7 @@ var ( | |
// Note: yakkety is unsupported because it was officially deprecated on lanchpad. | |
// Note: zesty is unsupported because it was officially deprecated on lanchpad. | |
// Note: artful is unsupported because it was officially deprecated on lanchpad. | |
- debDistros = []string{"trusty", "xenial", "bionic", "cosmic"} | |
+ debDistros = []string{"trusty", "xenial", "bionic", "cosmic", "disco"} | |
) | |
var GOBIN, _ = filepath.Abs(filepath.Join("build", "bin")) | |
@@ -800,12 +805,8 @@ func doAndroidArchive(cmdline []string) { | |
if os.Getenv("ANDROID_HOME") == "" { | |
log.Fatal("Please ensure ANDROID_HOME points to your Android SDK") | |
} | |
- if os.Getenv("ANDROID_NDK") == "" { | |
- log.Fatal("Please ensure ANDROID_NDK points to your Android NDK") | |
- } | |
// Build the Android archive and Maven resources | |
build.MustRun(goTool("get", "golang.org/x/mobile/cmd/gomobile", "golang.org/x/mobile/cmd/gobind")) | |
- build.MustRun(gomobileTool("init", "--ndk", os.Getenv("ANDROID_NDK"))) | |
build.MustRun(gomobileTool("bind", "-ldflags", "-s -w", "--target", "android", "--javapkg", "org.ethereum", "-v", "github.com/ethereum/go-ethereum/mobile")) | |
if *local { | |
diff --git a/build/deb/ethereum-swarm/deb.control b/build/deb/ethereum-swarm/deb.control | |
index 8cd325bf5..b0ced141b 100644 | |
--- a/build/deb/ethereum-swarm/deb.control | |
+++ b/build/deb/ethereum-swarm/deb.control | |
@@ -2,7 +2,7 @@ Source: {{.Name}} | |
Section: science | |
Priority: extra | |
Maintainer: {{.Author}} | |
-Build-Depends: debhelper (>= 8.0.0), golang-1.10 | |
+Build-Depends: debhelper (>= 8.0.0), golang-1.11 | |
Standards-Version: 3.9.5 | |
Homepage: https://ethereum.org | |
Vcs-Git: git://github.com/ethereum/go-ethereum.git | |
diff --git a/build/deb/ethereum-swarm/deb.rules b/build/deb/ethereum-swarm/deb.rules | |
index 7f286569e..5280e0e55 100644 | |
--- a/build/deb/ethereum-swarm/deb.rules | |
+++ b/build/deb/ethereum-swarm/deb.rules | |
@@ -4,8 +4,11 @@ | |
# Uncomment this to turn on verbose mode. | |
#export DH_VERBOSE=1 | |
+# Launchpad rejects Go's access to $HOME/.cache, use custom folder | |
+export GOCACHE=/tmp/go-build | |
+ | |
override_dh_auto_build: | |
- build/env.sh /usr/lib/go-1.10/bin/go run build/ci.go install -git-commit={{.Env.Commit}} -git-branch={{.Env.Branch}} -git-tag={{.Env.Tag}} -buildnum={{.Env.Buildnum}} -pull-request={{.Env.IsPullRequest}} | |
+ build/env.sh /usr/lib/go-1.11/bin/go run build/ci.go install -git-commit={{.Env.Commit}} -git-branch={{.Env.Branch}} -git-tag={{.Env.Tag}} -buildnum={{.Env.Buildnum}} -pull-request={{.Env.IsPullRequest}} | |
override_dh_auto_test: | |
diff --git a/build/deb/ethereum/deb.control b/build/deb/ethereum/deb.control | |
index defb106fe..018067a19 100644 | |
--- a/build/deb/ethereum/deb.control | |
+++ b/build/deb/ethereum/deb.control | |
@@ -2,7 +2,7 @@ Source: {{.Name}} | |
Section: science | |
Priority: extra | |
Maintainer: {{.Author}} | |
-Build-Depends: debhelper (>= 8.0.0), golang-1.10 | |
+Build-Depends: debhelper (>= 8.0.0), golang-1.11 | |
Standards-Version: 3.9.5 | |
Homepage: https://ethereum.org | |
Vcs-Git: git://github.com/ethereum/go-ethereum.git | |
diff --git a/build/deb/ethereum/deb.rules b/build/deb/ethereum/deb.rules | |
index 7f286569e..5280e0e55 100644 | |
--- a/build/deb/ethereum/deb.rules | |
+++ b/build/deb/ethereum/deb.rules | |
@@ -4,8 +4,11 @@ | |
# Uncomment this to turn on verbose mode. | |
#export DH_VERBOSE=1 | |
+# Launchpad rejects Go's access to $HOME/.cache, use custom folder | |
+export GOCACHE=/tmp/go-build | |
+ | |
override_dh_auto_build: | |
- build/env.sh /usr/lib/go-1.10/bin/go run build/ci.go install -git-commit={{.Env.Commit}} -git-branch={{.Env.Branch}} -git-tag={{.Env.Tag}} -buildnum={{.Env.Buildnum}} -pull-request={{.Env.IsPullRequest}} | |
+ build/env.sh /usr/lib/go-1.11/bin/go run build/ci.go install -git-commit={{.Env.Commit}} -git-branch={{.Env.Branch}} -git-tag={{.Env.Tag}} -buildnum={{.Env.Buildnum}} -pull-request={{.Env.IsPullRequest}} | |
override_dh_auto_test: | |
diff --git a/build/deploy.sh b/build/deploy.sh | |
deleted file mode 100755 | |
index 04d0dbd90..000000000 | |
--- a/build/deploy.sh | |
+++ /dev/null | |
@@ -1,14 +0,0 @@ | |
-#!/usr/bin/env bash | |
- | |
-GETH_ARCHIVE_NAME="multi-geth-$TRAVIS_OS_NAME" | |
-zip -j "$GETH_ARCHIVE_NAME.zip" build/bin/geth | |
- | |
-shasum -a 256 $GETH_ARCHIVE_NAME.zip | |
-shasum -a 256 $GETH_ARCHIVE_NAME.zip > $GETH_ARCHIVE_NAME.zip.sha256 | |
- | |
-ALLTOOLS_ARCHIVE_NAME="multi-geth-alltools-$TRAVIS_OS_NAME" | |
-zip -j "$ALLTOOLS_ARCHIVE_NAME.zip" build/bin/* | |
- | |
-shasum -a 256 $ALLTOOLS_ARCHIVE_NAME.zip | |
-shasum -a 256 $ALLTOOLS_ARCHIVE_NAME.zip > $ALLTOOLS_ARCHIVE_NAME.zip.sha256 | |
- | |
diff --git a/build/travis_keepalive.sh b/build/travis_keepalive.sh | |
new file mode 100755 | |
index 000000000..77cc623ea | |
--- /dev/null | |
+++ b/build/travis_keepalive.sh | |
@@ -0,0 +1,46 @@ | |
+#!/usr/bin/env bash | |
+ | |
+# travis_keepalive runs the given command and preserves its return value, | |
+# while it forks a child process what periodically produces a log line, | |
+# so that Travis won't abort the build after 10 minutes. | |
+ | |
+# Why? | |
+# `t.Log()` in Go holds the buffer until the test does not pass or fail, | |
+# and `-race` can increase the execution time by 2-20x. | |
+ | |
+set -euo pipefail | |
+ | |
+readonly KEEPALIVE_INTERVAL=300 # seconds => 5m | |
+ | |
+main() { | |
+ keepalive | |
+ $@ | |
+} | |
+ | |
+# Keepalive produces a log line in each KEEPALIVE_INTERVAL. | |
+keepalive() { | |
+ local child_pid | |
+ # Note: We fork here! | |
+ repeat "keepalive" & | |
+ child_pid=$! | |
+ ensureChildOnEXIT "${child_pid}" | |
+} | |
+ | |
+repeat() { | |
+ local this="$1" | |
+ while true; do | |
+ echo "${this}" | |
+ sleep "${KEEPALIVE_INTERVAL}" | |
+ done | |
+} | |
+ | |
+# Ensures that the child gets killed on normal program exit. | |
+ensureChildOnEXIT() { | |
+ # Note: SIGINT and SIGTERM are forwarded to the child process by Bash | |
+ # automatically, so we don't have to deal with signals. | |
+ | |
+ local child_pid="$1" | |
+ trap "kill ${child_pid}" EXIT | |
+} | |
+ | |
+main "$@" | |
diff --git a/cmd/abigen/main.go b/cmd/abigen/main.go | |
index d19164b18..b6ec04ce1 100644 | |
--- a/cmd/abigen/main.go | |
+++ b/cmd/abigen/main.go | |
@@ -1,4 +1,4 @@ | |
-// Copyright 2016 The go-ethereum Authors | |
+// Copyright 2019 The go-ethereum Authors | |
// This file is part of go-ethereum. | |
// | |
// go-ethereum is free software: you can redistribute it and/or modify | |
@@ -37,6 +37,9 @@ var ( | |
solcFlag = flag.String("solc", "solc", "Solidity compiler to use if source builds are requested") | |
excFlag = flag.String("exc", "", "Comma separated types to exclude from binding") | |
+ vyFlag = flag.String("vy", "", "Path to the Ethereum contract Vyper source to build and bind") | |
+ vyperFlag = flag.String("vyper", "vyper", "Vyper compiler to use if source builds are requested") | |
+ | |
pkgFlag = flag.String("pkg", "", "Package name to generate the binding into") | |
outFlag = flag.String("out", "", "Output file for the generated binding (default = stdout)") | |
langFlag = flag.String("lang", "go", "Destination language for the bindings (go, java, objc)") | |
@@ -46,11 +49,14 @@ func main() { | |
// Parse and ensure all needed inputs are specified | |
flag.Parse() | |
- if *abiFlag == "" && *solFlag == "" { | |
- fmt.Printf("No contract ABI (--abi) or Solidity source (--sol) specified\n") | |
+ if *abiFlag == "" && *solFlag == "" && *vyFlag == "" { | |
+ fmt.Printf("No contract ABI (--abi), Solidity source (--sol), or Vyper source (--vy) specified\n") | |
+ os.Exit(-1) | |
+ } else if (*abiFlag != "" || *binFlag != "" || *typFlag != "") && (*solFlag != "" || *vyFlag != "") { | |
+ fmt.Printf("Contract ABI (--abi), bytecode (--bin) and type (--type) flags are mutually exclusive with the Solidity (--sol) and Vyper (--vy) flags\n") | |
os.Exit(-1) | |
- } else if (*abiFlag != "" || *binFlag != "" || *typFlag != "") && *solFlag != "" { | |
- fmt.Printf("Contract ABI (--abi), bytecode (--bin) and type (--type) flags are mutually exclusive with the Solidity source (--sol) flag\n") | |
+ } else if *solFlag != "" && *vyFlag != "" { | |
+ fmt.Printf("Solidity (--sol) and Vyper (--vy) flags are mutually exclusive\n") | |
os.Exit(-1) | |
} | |
if *pkgFlag == "" { | |
@@ -75,7 +81,7 @@ func main() { | |
bins []string | |
types []string | |
) | |
- if *solFlag != "" || (*abiFlag == "-" && *pkgFlag == "") { | |
+ if *solFlag != "" || *vyFlag != "" || (*abiFlag == "-" && *pkgFlag == "") { | |
// Generate the list of types to exclude from binding | |
exclude := make(map[string]bool) | |
for _, kind := range strings.Split(*excFlag, ",") { | |
@@ -84,13 +90,21 @@ func main() { | |
var contracts map[string]*compiler.Contract | |
var err error | |
- if *solFlag != "" { | |
+ | |
+ switch { | |
+ case *solFlag != "": | |
contracts, err = compiler.CompileSolidity(*solcFlag, *solFlag) | |
if err != nil { | |
fmt.Printf("Failed to build Solidity contract: %v\n", err) | |
os.Exit(-1) | |
} | |
- } else { | |
+ case *vyFlag != "": | |
+ contracts, err = compiler.CompileVyper(*vyperFlag, *vyFlag) | |
+ if err != nil { | |
+ fmt.Printf("Failed to build Vyper contract: %v\n", err) | |
+ os.Exit(-1) | |
+ } | |
+ default: | |
contracts, err = contractsFromStdin() | |
if err != nil { | |
fmt.Printf("Failed to read input ABIs from STDIN: %v\n", err) | |
@@ -102,7 +116,11 @@ func main() { | |
if exclude[strings.ToLower(name)] { | |
continue | |
} | |
- abi, _ := json.Marshal(contract.Info.AbiDefinition) // Flatten the compiler parse | |
+ abi, err := json.Marshal(contract.Info.AbiDefinition) // Flatten the compiler parse | |
+ if err != nil { | |
+ fmt.Printf("Failed to parse ABIs from compiler output: %v\n", err) | |
+ os.Exit(-1) | |
+ } | |
abis = append(abis, string(abi)) | |
bins = append(bins, contract.Code) | |
@@ -124,7 +142,7 @@ func main() { | |
} | |
abis = append(abis, string(abi)) | |
- bin := []byte{} | |
+ var bin []byte | |
if *binFlag != "" { | |
if bin, err = ioutil.ReadFile(*binFlag); err != nil { | |
fmt.Printf("Failed to read input bytecode: %v\n", err) | |
diff --git a/cmd/clef/4byte.json b/cmd/clef/4byte.json | |
deleted file mode 100644 | |
index 5603d5931..000000000 | |
--- a/cmd/clef/4byte.json | |
+++ /dev/null | |
@@ -1 +0,0 @@ | |
-{"0x22ec1244": "shaBid(bytes32,address,uint256,bytes32)", "0xcae9ca51": "approveAndCall(address,uint256,bytes)", "0x4fb2e45d": "transferOwner(address)", "0x7741b4ec": "RandomNumberFromSeed(uint256)", "0x267127ec": "getTokenSettings()", "0xb7213bd4": "readLog(uint256)", "0x3018205f": "getController()", "0xc8edf65e": "GetAndReduceFeesByFraction(uint256)", "0xeec2b628": "beforeExecute(address)", "0xfc0c546a": "token()", "0x40a3d246": "toggle()", "0x70983e91": "startBoardProposal(uint256,address)", "0x6b5caec4": "setBot(address)", "0x78524b2e": "halveMinQuorum()", "0x2c60a055": "MapTest()", "0xc2fb8f36": "TinyHuman(address,address,address)", "0x6822abae": "getMinimumCallCost(uint256)", "0x6f9fb98a": "getContractBalance()", "0x5c17f9f4": "approve(address,uint256,bytes)", "0x504ac982": "transfer(string,string)", "0x06e53f47": "whichChainIsThis()", "0xf359671c": "withdrawWithReference(address,uint256,string)", "0xf97d0591": "parseTimestamp(uint256)", "0xd3c0715b": "vote(uint256,bool,string)", "0x6b069710": "scheduleCall(address,bytes,uint256,uint256,uint8)", "0x37ae43a3": "BetOnHashV81()", "0xab519020": "calcShare(uint256,uint256)", "0x6572ae13": "calculateWinner(uint256,uint256)", "0x6aaba012": "ErrorGenerator()", "0xfe05e8b1": "assertFact(uint256,string)", "0x6e940a29": "changeHost(address)", "0x669ee827": "RegisterDevice()", "0x6f4dd69c": "testSetBalanceUpdatesSupply()", "0x4401a6e4": "safeSend(address)", "0x27dc297e": "__callback(bytes32,string)", "0xe4dedc7f": "DeleteContract()", "0x7fef036e": "totalEntries()", "0x64325ddb": "currentClaimPrice()", "0x2fc0aad3": "isNumericString(string)", "0xbc45d789": "setConfigUint(int256,bytes32,uint256)", "0xee95feaf": "isSeller(address)", "0x358d5dc2": "getIsCashed(uint256,uint256)", "0x1397fdbd": "getShares(address,bytes,int256[])", "0x2d8c1c35": "level_up()", "0x24600fc3": "withdrawFunds()", "0x05f8b6f5": "_rewireIdentities(bytes32[],uint256,uint256,uint32)", "0x1840f0ca": "countVotes(uint256)", "0xd44aadf7": "initROS()", "0xca1d209d": "fund(uint256)", "0x5fa513d5": "findPtr(uint256,uint256,uint256,uint256)", "0x3c314a91": "playerGetPendingTxByAddress(address)", "0xd5582205": "getCertifiedStudentAtIndex(uint256)", "0xe45ebe93": "checkVoteStatus()", "0xcd9380d5": "testSetBalanceSetsSupplyCumulatively()", "0x637e86eb": "totBOTs()", "0x5bb47808": "setFactory(address)", "0x674cc1f5": "getMarketHashes(bytes32[])", "0x648bf774": "recover(address,address)", "0x0221038a": "payOut(address,uint256)", "0x4016535a": "parseBlock(bytes,uint256)", "0xa3908e1b": "convert(uint256)", "0xd9e7ee1c": "new_game(uint256,uint256)", "0x929e626e": "getShareDistribution(bytes32)", "0xa20495d3": "Managed()", "0xd409ddda": "EtherizationUtils()", "0xcb2b9031": "addressToBytes(address,address)", "0xfff3c457": "readMessages(uint256)", "0x043753ba": "makeDecision(uint256,bool)", "0x85b4bb53": "getSettings()", "0x60726abb": "copy()", "0xe50d0473": "SetRank(uint8,address,uint16)", "0x54ae8492": "CustodialForward()", "0xd6d02c51": "whois(string)", "0xcb712535": "_transferFrom(address,address,uint256)", "0xb152f19e": "getFirstSchedulableBlock()", "0x9334ab61": "Infos()", "0x88a49164": "testErrorUnauthorizedTransfer()", "0x17db59a4": "dEthereumlotteryNet(address,address,address)", "0xf85aefba": "testBitsSetFailIndexOOB()", "0xae99847b": "daylimit(uint256)", "0xd93e7573": "disown(bytes32)", "0xa5468081": "Pyramid(address)", "0x00e7d289": "registerListening(address)", "0x57ee24af": "getNum(bytes32,uint256)", "0xdaea85c5": "approve(address)", "0x36ffa905": "getMyProposals()", "0x7143059f": "getParticipant(address)", "0x55ff440a": "castStringToUInt(string)", "0x6a4a6b6e": "_myAddressHelper()", "0xb67fabdf": "scheduleTransaction(address,uint256,uint256,bytes)", "0xbcca1fd3": "changeVotingRules(uint256,uint256,int256)", "0x1d3390a1": "carefulSendWithFixedGas(address,uint256,uint256)", "0x45104b16": "EXECUTION_GAS_OVERHEAD()", "0xa26759cb": "addFunds()", "0x232523e8": "forceDivestOfAllInvestors()", "0x7e904a48": "getNumContents(uint256)", "0xb69c0896": "BaseScheduler(address,address,uint256)", "0xc6ed8e1b": "getApprovedProxys()", "0x4d1f8c31": "owner(uint64)", "0x17c65aa7": "getMaxLossAfterTrade(address,uint256,int256,int256)", "0x2c02d622": "precalculate()", "0xa035b1fe": "price()", "0x43b0e8df": "set(uint256,uint256,uint256)", "0x9b5fde7d": "payOut(uint256,string)", "0x89fcd099": "getApproval(address,address)", "0x4c0eceb5": "plusOnePonzi()", "0x880cdc31": "updateOwner(address)", "0xdab80d6f": "addSponsor(address)", "0x0fcda174": "getAccountTokenBalance(address,address)", "0xa55cab95": "getName(uint8,uint8)", "0x934db458": "Big()", "0xeb782d8c": "ContentSeries(address)", "0xdbfef710": "getDefaultRequiredGas()", "0x4f09eba7": "proxyApprove(address,uint256,bytes32)", "0xf4c5ab7c": "validateCallGas(uint256,uint256)", "0x376fe102": "userId(address)", "0x922dd59a": "icapTransfer(bytes,address,bytes,uint256)", "0x7318b453": "setVotetUntil(uint8)", "0xb8c86aa6": "getArraySettingResult()", "0x37bdc99b": "release(uint256)", "0x7cbcc254": "__reset__()", "0x37664643": "retractLatestRevision(bytes32)", "0x4b031d0f": "shortSellShares(bytes,uint8,uint256,uint256)", "0xad8d5f48": "exec(address,bytes,uint256)", "0x2f95b833": "requiredStackDepth()", "0xe3848e5b": "thing(string,string,string)", "0xaa272d4b": "getNodeIndexId(bytes)", "0xd7f746ce": "tickingBomb()", "0x3b84edbd": "setRNG(address)", "0x1fb2f2a0": "testUpdateLatestRevision()", "0xb7fba4d3": "getProxy(address)", "0x4b8e1ba8": "isMinter(int256,address)", "0xba4c206e": "removeCertificationDocumentInternal(address,bytes32)", "0x884b5dc2": "fill(uint256[])", "0x88017e05": "setContribution(uint256)", "0x1ff517ff": "totalDebt(address)", "0xd0315658": "getShareDistributionWithTimestamp(bytes)", "0x7d03f5f3": "newGame()", "0xb7538f3e": "ChangeClient(address)", "0xbf4d89b5": "parseInt(string,uint256)", "0x7b55c8b5": "scheduleCall(address,bytes4,bytes,uint8,uint256[4])", "0x350d141e": "getWasApprovedBeforeDeadline()", "0x27960c5f": "validateEndowment(uint256,uint256,uint256,uint256,uint256,uint256,uint256)", "0xb774d3d7": "BankOwner_GetDonationsBalance()", "0x267b6922": "entries(bytes32)", "0x08b7c13b": "getExists(bytes20)", "0x7e7a2fbf": "contribute_toTheGame()", "0x5b86914d": "bet_value()", "0x0e1087c3": "getMarketMakerFunds()", "0xf7149220": "RNG()", "0x345006b6": "getGenerationForCall(address)", "0xc4b14e0b": "getSignature(bytes32)", "0x419945f8": "ExpiringMarket(uint256)", "0x41868769": "CallAborted(address,bytes)", "0x29092d0e": "remove(address)", "0x746c9171": "m_required()", "0x5020dcf4": "convertToEach(uint256,string,uint256)", "0xa06db7dc": "gracePeriod()", "0xbf8fc670": "sendToAggregation(uint256)", "0xf14fcbc8": "commit(bytes32)", "0xa538d287": "getMinMax()", "0xcae523c1": "testOwnedTryAuthUnauthorized()", "0x04d10f1c": "isValidChainyJson(string)", "0x9ba5b4e9": "getEventHashes(bytes32[])", "0xfedfd535": "Config()", "0x42ce0f30": "testThrowUpdateLatestRevisionNotOwner()", "0x31be6985": "testBitXorSuccess()", "0x173cb7de": "getNumReleasesForNameHash(bytes32)", "0xd90a88cd": "getContentReplies(uint256,uint256)", "0x92eefe9b": "setController(address)", "0x052b81c7": "releaseBadges()", "0xb2855b4f": "setFeeAddr(address)", "0x19a9c2f1": "generateId(string)", "0xfa9acb05": "addressInArray(address,address)", "0x3da5c3ce": "puzzle(address,bytes32)", "0x7a427d98": "forceReturn()", "0x70e71ea3": "etherandomSeedWithGasLimit(uint256)", "0xd7a58658": "changeHouseedge(uint8)", "0x72b75585": "getOriginalClient()", "0xf802075f": "requiredEndowment()", "0x7997b997": "doMelt(uint256,uint256)", "0x6d5433e6": "max(uint256,uint256)", "0xb651cbaf": "add_level(address,bytes)", "0xb4d6d4c7": "getPackageData(bytes32)", "0x90e3c278": "getShares(uint256[128])", "0x179b73da": "killBoardProposal(uint256,address)", "0xc944a38e": "CharlyLifeLog(string,int256)", "0xe1c66292": "Create(uint32,address)", "0x69c8b344": "ownedToken(address)", "0xabcf1328": "InterestBank()", "0x532e7e6a": "calcEarningsSelling(bytes,uint256,uint256[],uint8,uint256)", "0x43d24a5e": "addUpdater(address)", "0xd1feca67": "addSpendingRequest(address)", "0x2d34ba79": "setup(address,address)", "0xcb14d93b": "getHash(bytes,address,uint256)", "0x309424fe": "get_all_names()", "0x96c52fc3": "____forward(address,uint256,uint256,bytes)", "0xde39acea": "get32(bytes,uint256)", "0xf3dd3d8a": "newCurrency(string,string,uint8)", "0x2432eb23": "testThrowRetractLatestRevisionNotUpdatable()", "0x7fcf3a2f": "throwFooBar()", "0xabe9f569": "oraclize_getPrice(string,uint256)", "0x41ee903e": "clear(uint256,uint256)", "0xd249a52e": "update(bytes,uint256[],uint256[])", "0xc3d014d6": "setContent(bytes32,bytes32)", "0x3ac5cb73": "GeometricPonzi()", "0x4a1aa767": "claim_victory(uint256,uint8,uint8,uint8)", "0xce592586": "setThresold(uint256,uint256)", "0x63deb2c5": "changeMemberAddress(address)", "0x2e6e504a": "trusteeWithdraw()", "0xcfed9199": "timePassed(uint256)", "0xb782fc9b": "getFirstActiveDuel2()", "0x35b28153": "addAuthorization(address)", "0x46f7a883": "BuyTicket(uint8,uint8,uint8)", "0x83c51a38": "thesimplegame()", "0xfa28ba0d": "validateReleaseLockfileURI(string)", "0xa7b2d4cb": "remove(int256,address)", "0x010731c0": "sendCryptedHand(bytes32)", "0xe9e99d81": "getChannelFeed(address,uint256,uint256,uint256)", "0x4e30a66c": "safeToAdd(uint256,uint256)", "0x2c4e591b": "totalGames()", "0xa3221c8e": "step8()", "0x783ce458": "expmod(uint256,uint256,uint256)", "0xe417291b": "undelegateDAOTokens(uint256)", "0x8e5d97a2": "releasePendingTransfer(uint256)", "0xbc5ff5e1": "oraclize_query(string,string[4],uint256)", "0x38f77d69": "getDistributeProfitsInfo()", "0xbb510a77": "createChannel(address,uint256)", "0x650955d4": "HashToken()", "0xa8484938": "doApprove(address,uint256)", "0x64ed31fe": "authVotes(address)", "0xf7ae9421": "checkInvestorBalance(address)", "0xba904eed": "removeRegistrar(address)", "0xdce4a447": "at(address)", "0xdb4cacec": "Other()", "0x3647b87a": "buildFactory()", "0xa51aea2d": "changeMaxMultiplier(uint256)", "0x4974bc27": "download()", "0xf8a8fd6d": "test()", "0xd8c90762": "addTrustedIssuer(address,string)", "0xdf6c13c3": "getMinFunding()", "0x867904b4": "issue(address,uint256)", "0x1531c267": "fipsRegisterMulti(uint256,address,bytes)", "0x40a49a96": "searchSmallestInvestor()", "0x61bffe01": "addIdentities(bytes32[],bytes32[])", "0xf77a0923": "BitcoinProcessor(address)", "0xd02528e6": "GetGameIndexesToProcess()", "0x9f927be7": "getNextCall(uint256)", "0xd8162db7": "lockedUntilBlock()", "0x36dfe260": "payOneTimeReward()", "0xc5b1a53c": "deposit(bytes16[],uint64)", "0xc2b6b58c": "isClosed()", "0xc88cc6ac": "getCertification(address)", "0x77ac3da5": "oraclize_query(uint256,string,string[1],uint256)", "0x70ab8ba8": "creditUpdate()", "0xd3ea3322": "testBuildTokenSystemCost()", "0x72388610": "paybackAll()", "0xca6d56dc": "addMember(address)", "0x0994a0a0": "DSTokenTest()", "0xe53e04a5": "refillGas()", "0xc1d5e84f": "addNewUser(address)", "0x89ed0b30": "setOraclizeGas(uint32)", "0x02ba8742": "sendCoins(address,uint256)", "0xb0de1cb7": "publish(uint64,bytes,uint64)", "0x0e13b9af": "getValue(uint8,uint8)", "0xb3dfcdc3": "Contribution(uint256)", "0xa9b35240": "packageExists(bytes32)", "0xd1d3bb92": "testSetPkg()", "0x97297467": "checkAndVerify(bytes)", "0xe31bfa00": "next_id()", "0x9948e493": "calcMarketFee(bytes,uint256)", "0xd148288f": "setHoldingPeriod(uint256)", "0xc032dc30": "execute(uint256,address)", "0xdad99989": "burnCoins(address)", "0xb1999937": "leapYearsBefore(uint256)", "0xa6cbcdd5": "numSignatures(bytes4)", "0xaca66aec": "DVIP()", "0x20bf0c52": "Derived(uint256)", "0x693ec85e": "get(string)", "0x0411bca8": "getChallengeAnswerResult(uint256)", "0x61584936": "sealedBids(bytes32)", "0x2f1927cb": "prepareRoll(uint256,uint256,uint256)", "0xeaa1f9fe": "reqisterListening(address)", "0xb623f5e5": "checkSetCosignerAddress(address)", "0xa88c5ef7": "NextPayout()", "0x66ad484c": "newfirst_player(address)", "0xb4022950": "collectFeesInEther(uint256)", "0xbff0fbb8": "calculateMeat(uint256)", "0xd62b255b": "setOwner(address,string)", "0x2fd6d40b": "getBetValueByGamble(uint8)", "0x3b0506f7": "getVoteByAddress(address,uint256)", "0xbddd3a6b": "step7()", "0x67fbd289": "destroyTokens(uint256)", "0x9844347b": "createCertificate(bytes,bytes,uint256,bytes)", "0x5e68ac2c": "Kingdom(string,address,address,address,uint256,uint256,uint256,uint256,uint256)", "0x8ba9f354": "testClearBitSuccess()", "0x48027610": "transferPaidOut(address,address,uint256)", "0x912de8de": "fixBalance()", "0x04509918": "scheduleCall(address)", "0x7cf0ffcb": "forceDivestAll()", "0x3b3b57de": "addr(bytes32)", "0xeb7c6f72": "step6()", "0xfe6f0d82": "testConstructorEvent()", "0x55b62dcf": "getThresold(uint256)", "0xfbae5e7d": "Investors(uint256)", "0x29e206bd": "forceDivestAll(bool)", "0x6a226a49": "addMessage(string)", "0x8e2a6470": "allocateShares(address,uint256)", "0xe6e7237f": "claim_time_victory(uint256)", "0x17a601b5": "MAX_STACK_DEPTH_REQUIREMENT()", "0x87fd0421": "TheEthereumLottery()", "0xc17e6817": "sendSafe(address,uint256)", "0xa5dfee67": "testThrowsCreateNewRevisionNotUpdatable()", "0xb35893f3": "setExporter()", "0x1ceea715": "GetMyInvestFee()", "0xb78bd4a5": "breakCookie(string)", "0x05215b2f": "createStandardToken(uint256)", "0x2632bf20": "unblockMe()", "0x5292af1f": "sendBalance(address)", "0xc2e9fab3": "SubUser()", "0x6493d7fc": "CircuitBreaker(address,address,uint256,uint256)", "0x4f896d4f": "resolve(uint256)", "0x16870257": "getTileDescription(uint8,uint8)", "0x3ef87414": "getRevisionCount(bytes20)", "0x747586b8": "setInt(int256)", "0x5714f6a1": "getTotalAvailableRelays()", "0x99154b49": "ARK()", "0x1efb17ee": "changeHouseAddress(address)", "0x354d7e40": "Payout()", "0x2da0d1ea": "etherSold()", "0xea46193e": "getEtherBalance()", "0x11fe773d": "memcpy(uint256,uint256,uint256)", "0x1e701780": "MICRODAO(address,uint256,uint256,uint256,address)", "0x1c31f710": "setBeneficiary(address)", "0x0a4caed0": "getChannelByRank(address,uint256)", "0xf3125a1f": "deposit(address,uint256,bytes,uint256)", "0x00e46700": "setMinimumPassPercentage(uint8)", "0x92d282c1": "Send()", "0x89d59ee5": "createPersonalDepositAddress()", "0xbe1c766b": "getLength()", "0x70a08231": "balanceOf(address)", "0xae0a6b28": "signature(string,bytes32)", "0xb3485dca": "UpdatePrice(uint8,uint32)", "0xf8ec4bf2": "setAllowTransactions(bool)", "0x53d97e65": "setPrizes(uint32[])", "0xd1b1a22b": "set(string,uint256[],uint256[],uint256[],bool[],uint256[])", "0x96286cc9": "isTokenOwner(address)", "0x154af6b1": "sendShares(uint256,uint8,uint256,address)", "0xbe2430fe": "sendValues()", "0x57a373a1": "uintInArray(uint256,uint256,int256,uint256[],uint256)", "0x8fd28bcf": "testFailAuthorityAuth()", "0x89ef40e7": "numberOfHealthyGenerations()", "0x23e9c216": "setBounty(address,string,uint256)", "0x71dd99fe": "BigRisk()", "0x1e9fcc77": "activateAllowance(address,address)", "0x561e91a1": "makeBet()", "0x32d2fb9f": "getRefRemainingTime(uint256)", "0x992c870d": "transferName(bytes,address)", "0x6b3fdc5a": "oraclize_setNetwork(uint8)", "0x2ea459b8": "claimThrone(bytes)", "0x33a99e04": "selectWinner()", "0x3b49a77b": "hasConfirmed(bytes,address)", "0xa352f1a8": "calcSHA3(bytes)", "0x4bb4b260": "cashAllOut()", "0xb89a73cb": "isShareholder(address)", "0xba5a2d33": "exitPool(address)", "0xddd41ef6": "transferDirector(address)", "0xa06cab79": "Registrar(address,bytes32)", "0x871113c3": "oraclize_query(string,string[1],uint256)", "0x1f0f711f": "discontinue()", "0x632f0ba6": "descriptionHashes(bytes)", "0x980e8c81": "FutureBlockCall(address,uint256,uint8,address,bytes,uint256,uint256,uint256)", "0x4ae8c55f": "getWwLength()", "0x82fc49b8": "setCosignerAddress(address)", "0xc4bd8ebc": "num_monsters()", "0x0381cb3b": "setRowcol(uint256,uint256[2])", "0x124eaee6": "Identity()", "0x3f4be889": "callContractAddress()", "0xef3a6031": "testBaseToken()", "0x954ab4b2": "say()", "0x1b855044": "getHash(uint256,uint256)", "0xd9d73887": "Diana()", "0x5103a5a3": "certify(address,bytes32)", "0x51560da9": "topDogInfo()", "0xf3ee6305": "removeCertificationDocument(address,bytes32)", "0x049ae734": "scheduleCall(address,bytes4,uint256,uint256,uint8)", "0xd8a8e03a": "move(uint256,address)", "0xc3c5a547": "isRegistered(address)", "0x06005754": "nameRegAddress()", "0xbe592488": "validateName(bytes)", "0x0eecae21": "draw()", "0xac3e7d24": "addChainyData(string)", "0xfd83f3e3": "QueueUserMayBeDeliveryDroneCotnrol()", "0x7772a380": "isInGeneration(address,uint256)", "0xeb1ff845": "changeId(uint256,uint256,uint256)", "0x9cc9299e": "killSwap()", "0x1e2ca0f3": "updateLeftLottery(address)", "0x998446a8": "acceptRequest(uint256,bytes)", "0x8e1ffb19": "testThrowsRetractLatestRevisionEnforceRevisions()", "0x9935935f": "setResolveHandler(bytes,address)", "0xcd4b6914": "getRandom(uint256)", "0xc08dd1dc": "IOU(string,string,uint8)", "0xbe4054b9": "commitReading(address,uint256,uint256,string)", "0xbc21ce9d": "Aggregation()", "0x6e173a7f": "storeBlockHeader(bytes,bytes)", "0x114d69b2": "setCRLaddr(address)", "0x3fa4f245": "value()", "0x69573648": "remove(bytes,bytes)", "0x7fee4ecb": "GAS_PER_DEPTH()", "0x591c515f": "append(string,string)", "0x727b1cd6": "next_draw(bytes32,uint256,uint256,uint256,uint256,uint256)", "0xc60ce271": "findNextMinute(uint256,bytes)", "0xd337616e": "resetLottery()", "0xdacaeb07": "pledge(bool,uint256)", "0xb29c2493": "token(uint256,string,uint8,string)", "0x61047ff4": "fibonacci(uint256)", "0x8f367001": "numTokensAbleToPurchase()", "0x12cc08f2": "getPackageReleaseHashes(string,uint256,uint256)", "0x67a59d91": "scheduleCall(address,bytes,bytes,uint256,uint256,uint8)", "0xe6c3b4ab": "testBalanceAuth()", "0xd526b9bd": "_allow()", "0x29de91db": "setMsg(address,uint256)", "0xd1cf113e": "multiAccessSetRecipient(address)", "0xc2412676": "Token()", "0x391f2e96": "InvestCancel()", "0xc0ae6a3a": "ultimateOutcomes(bytes)", "0x202d6eaf": "addInvestorsValue(uint256)", "0x30b9af98": "withdrawFunding()", "0xe80bd3e5": "addCertificationDocumentToSelf(bytes32)", "0xf4e36afd": "findThroneByNameHash(uint256)", "0x30677b83": "multiplierFactor()", "0x590528a9": "sellShares(uint256,uint8,uint256,uint256)", "0x01cceb38": "setExpiry(uint256)", "0x779beca0": "getNumOfSalesWithSameId(bytes)", "0xac940823": "betOnLowHigh(bool)", "0x06961560": "DAO(address,uint256,uint256,uint256,address)", "0xd42bf301": "doTriggerTryAuth()", "0xfa566ddd": "doAllowance(address,address)", "0x6677febe": "get_all_accepted()", "0xaa67c919": "depositFor(address)", "0xf28386bf": "Nexium()", "0x77e4fb04": "testFailNotEnoughValue()", "0x12b58349": "getTotalBalance()", "0xc0d2834b": "DataSource()", "0x3e82055a": "addSignature(uint256,bytes16,bytes)", "0xcff2fa42": "_returnFee(address,uint256)", "0xa056469a": "extractFeeLength()", "0xc98031be": "hintURL(int256,bytes32,string)", "0x6ebbe863": "updatePublishContract(address)", "0x08216c0f": "createHumanStandardToken(uint256,string,uint8,string)", "0xc36af460": "getLatest()", "0xdb5b4183": "oracleOutcomes(bytes,address)", "0x0b5ab3d5": "destroyDeed()", "0xe1c7392a": "init()", "0x4ca1fad8": "addRequest(uint256)", "0x305b73d9": "configure(address,address,uint256,uint8,bytes32,bytes32)", "0x9077dcfd": "submitCoding(string,uint256)", "0x38fff2d0": "getPoolId()", "0x07bc6fad": "withdraw(address,uint256,bytes32,uint256)", "0xfbf58b3e": "transfer(string,address)", "0x1d8b70da": "order_received(string)", "0x0b3ed536": "claimDonations(uint256)", "0x6f374a12": "setBool()", "0x0ca35682": "recover(uint256)", "0x3ae7cdfa": "fipsLegacyRegister(bytes20[],address)", "0xe6c1beb4": "prepend(address)", "0x776d62f6": "costs()", "0xe4690a0b": "popRequest()", "0x74eb9b68": "isAccountLocked(address)", "0x7d32e7bd": "transfer(address,bytes32)", "0xdf2f0a4a": "getDecisionBlockNumber(uint256,uint256)", "0xc494f71a": "LedgerFund(uint32,uint32,uint64,uint64)", "0x446d5aa4": "getAttributes(address)", "0x4cdc6a73": "Marriage()", "0x677cee54": "SafeConditionalHFTransfer()", "0x7b48ba20": "testThrowDisownNotOwner()", "0x1288c42a": "Prism()", "0xe8b13c44": "getChainyTimestamp(string)", "0xe4c2db06": "getPreviousFile(bytes)", "0xf0586f0d": "doThrow(bool)", "0xc1b06513": "registerEvent(bytes32[])", "0x521eb273": "wallet()", "0x32254992": "getPrevHash(int256)", "0x1fd96b69": "ManagedAccount(address,bool)", "0xabf74a93": "pitFee()", "0xa480ca79": "collectFees(address)", "0xa0bde7e8": "getShareDistributionWithTimestamp(bytes32)", "0xff27c476": "shiftBitsRight(bytes,uint256)", "0x172d8a30": "setDirectorLock(uint256,uint256)", "0xf262de8c": "add_staircase(uint16)", "0x990f3f53": "computeResponseSecondHalf(uint256,uint16)", "0x26745909": "PRNG_Challenge()", "0xcacc24eb": "transferFromViaProxy(address,address,address,uint256)", "0x94f3f81d": "removeAuthorization(address)", "0x3f0ec70b": "RequestFactory(address)", "0xa2a8336f": "claimEtherSigner(uint256)", "0xaa5d4719": "getTransferable(bytes20)", "0x23cd7cd5": "Model()", "0x3fb0b2c9": "CancelRoundAndRefundAll()", "0xd5fa2b00": "setAddr(bytes32,address)", "0xa0f61310": "FakeRelay(bytes)", "0x4ea66c38": "buyinInternal(address,uint256)", "0xbe040fb0": "redeem()", "0xb845c9a2": "WEI()", "0x26a7985a": "getMaximumCallGas()", "0x06661abd": "count()", "0xc89f8f08": "testGetController()", "0x81baf820": "BlockScheduler(address)", "0x9801cb8e": "ProofOfExistence()", "0xeb7492d1": "testTotalSupply()", "0x3dfb4843": "renewDeed(bytes32)", "0xc3fa5f93": "BlockScheduler(address,address)", "0x7958533a": "meta(uint256,bytes32)", "0xa1a66e56": "deductFunds(uint256)", "0xaf92a693": "addRegistrar(address)", "0xb2aac51f": "lookupUser(string)", "0xd70cf105": "moveBalance(address,address,uint256)", "0x2afb21bc": "InvestWithdraw()", "0x6d09e2ec": "commitCurrency(address,uint256,uint256)", "0x7b1a4909": "transferETH(address,uint256)", "0x96c824a8": "createAccountFundContract()", "0xe0a70811": "restart(bytes20,bytes)", "0x22057bc7": "getAllRevisionBlockNumbers(bytes20)", "0x6af2da2f": "testKeyedHash()", "0x7f6d8955": "RegisterOne(uint32,address,address)", "0x65f27bea": "testSubBalanceFailsBelowZero()", "0xa2f16d80": "dexWithdrawCollectedFees()", "0xc179520c": "ManageAccount()", "0x2672b3e2": "SplitterEtcToEth()", "0xe839e65e": "query2(string,string,string)", "0x39f64b52": "calcTokenPrice()", "0x4ef5710a": "WatchNumberOfPlayerInCurrentRound()", "0x3017fe24": "callAPIVersion()", "0x2977b1b1": "testAllowanceStartsAtZero()", "0x531c1b33": "getOperatingBudget()", "0xb7f2f33c": "transferRightIfApproved(address,bytes)", "0x00873367": "comparisonchr(string)", "0x2a0d79ef": "totalSupply(bytes)", "0xa715ff59": "EtherandomProxy()", "0xd6ca8ccb": "disown(bytes20)", "0x6ad2a0b3": "buildContract(address)", "0x45596e2e": "setFeeRate(uint256)", "0x0e97cfdf": "placeOrder(uint256,uint256,uint256)", "0x9549355e": "oracalizeReading(uint256)", "0x8d7af473": "numberOfProposals()", "0x728af7ec": "getInterest(uint256,uint256)", "0x11b9fee8": "ForkChecker(uint256,bytes32)", "0xd850288b": "etherlist_top()", "0xf4dc2d21": "Deed(uint256)", "0xf8b11853": "getGenerationStartAt(uint256)", "0x7c7a52bf": "newChallenge(uint256,address)", "0xd2d4bd72": "getCrossRate(bytes,bytes)", "0xe9b93569": "OwnerGetFee()", "0xfb72d24e": "shift_right(uint64,uint256)", "0x112e39a8": "scheduleCall(uint256)", "0x6c494843": "multiAccessChangeOwnerD(address,address,address)", "0x313ce567": "decimals()", "0x9bac8602": "testFailAddBalanceAboveOverflow()", "0xa70a9ad7": "switchDeity(address)", "0x6a61e5fc": "setTokenPrice(uint256)", "0x990c8f79": "returnValue()", "0xa4136862": "setGreeting(string)", "0x0af4626d": "testRetract()", "0x5e11544b": "newPeriod()", "0xdc206e5f": "oraclize_query(uint256,string,string[])", "0xcaa648b4": "getTotalValue()", "0x20bfec70": "WatchFees()", "0x62a0b56b": "testUnset()", "0x42f6e389": "isModule(address)", "0x769796fe": "resetAction(uint256)", "0x402e6230": "getTotalGambles()", "0xe8a1c08f": "nibbleToChar(uint256)", "0x1aa3a008": "register()", "0x96d02099": "rsplit()", "0x83324e8c": "numGroups()", "0x72c7c85a": "minority()", "0xb8d94b95": "buildDSNullMap()", "0xe039e4a1": "getOwner(uint8,uint8)", "0x625cc465": "baseDonation()", "0x77372213": "setName(bytes32,string)", "0xa7dfc874": "unregister(bytes,address,uint256,bytes)", "0x37f4c00e": "anchorGasPrice()", "0xb2bfd948": "checkNumbers(uint8[3])", "0x512f1e64": "orderBookLength()", "0xafed762b": "toSlice(string)", "0xbb6a1427": "testThrowRestartEnforceRevisions()", "0x734d8287": "unclaimedFees()", "0xf295206f": "_unsafeSend(address,uint256)", "0x69d01268": "concatUInt(uint256)", "0x0494630f": "oraclize_query(uint256,string,string[4],uint256)", "0x13fc6ac2": "getEventData(bytes32)", "0xbff974e8": "getContentReplies(uint256)", "0x18921de4": "addSignature(string,uint256[],uint256[],uint256[],bool[],uint256[])", "0xa87e7552": "isValid(bytes,bytes)", "0xb8d3bfe3": "MeatGrindersAssociation(address,address,uint256,uint256,uint256,address)", "0x61461954": "execute()", "0xecb0256b": "relayTx(bytes,int256,int256[],int256,int256,bytes,int256,int256[],int256,int256)", "0x7cdbae63": "addRegistryIntoTagsIndex(address)", "0x1f4e996b": "challenge(bool)", "0x0eb0afa6": "createDebt(address,address,uint256)", "0x5f6a1301": "clearPending()", "0x305a762a": "getTicketsCountByBuyer(uint256,address)", "0x724ae9d0": "getMinInvestment()", "0x1e39499d": "scheduleCall(address,bytes,uint256)", "0x4f197ee7": "transferPackageOwner(string,address)", "0x7e3faec1": "GoldTxFeePool(address,address,bytes)", "0x8d68cf59": "sendFunds()", "0x83eed3d5": "queryN(uint256,string,bytes)", "0x15c91115": "pbkdf2(bytes,bytes,uint256)", "0xeb121e2f": "update(uint256,uint256[101][])", "0x5e44daf3": "vote(uint256,int256)", "0xac562666": "freezeCoin()", "0xb0166b04": "testTransferringMkr()", "0x631de4d6": "replace(address,address)", "0x4bd70ea3": "testFailGetUnset()", "0xf738e5ca": "ownerTakeProfit()", "0xc6236a5c": "scheduleCall(bytes,uint256,uint256,uint8,uint256)", "0x119aa5c8": "checkForward(bytes)", "0x541aea0f": "put(uint256,uint256)", "0x6386c1c7": "getUserInfo(address)", "0x4e209678": "testFailBreach()", "0xe9fe799e": "registrantRemove(address)", "0x2aee19c7": "testCreateWithNonce()", "0xa0ec4e09": "getUltimateOutcomes(bytes32[])", "0x4d9e4e22": "Etheria()", "0xa6b513ee": "finalPrice()", "0x82f0d875": "makeHash()", "0x78ae88d1": "newDeal(uint256,uint256,uint256,uint256,uint256)", "0x177766e6": "getOptionChain(uint256)", "0xf1173928": "RemovedFromGeneration(address,uint256)", "0xea2ea847": "testChallengeFinalize()", "0xbd35d570": "GAS_TO_COMPLETE_EXECUTION()", "0x364ea9e7": "set(uint256,uint256,bool[],uint256[])", "0x17ff0caa": "WeatherBet(uint256,address,address,address)", "0x4e23a144": "fundUser(address,uint256)", "0x144267e0": "refundSecurity(address,uint256,uint256)", "0x31c6c4cf": "transferFromWithReference(address,address,uint256,bytes32,string)", "0x2eb5c61f": "testThrowsUpdateLatestRevisionEnforceRevisions()", "0xde640e19": "Investment(uint256)", "0x9cb8a26a": "selfDestruct()", "0x9c43d950": "registration(uint256,uint256,uint256)", "0xe2fdcc17": "escrow()", "0xc618d15f": "ConvertNumbers(bytes5)", "0x8c98117c": "getBill(uint256,uint256)", "0x2d7788db": "rejectRequest(uint256)", "0xfaab9d39": "setRegistrar(address)", "0xa289673b": "fipsChangeOwner(bytes20,address,address)", "0x54d9d6f8": "findNextDay(uint256,bytes)", "0x008a745d": "claimDividendShare(uint256)", "0x6f4812e2": "testFailControllerInsufficientFundsTransfer()", "0x5e983d08": "setPrices()", "0x798974dd": "getNumProposals()", "0x4ca168cf": "register(bytes,uint256,address,string,uint256)", "0xa1e4d3c2": "MembershipRoster()", "0xd4065763": "returnRemainingMoney()", "0x0c4326a0": "getMajorMinorPatch(bytes32)", "0xeece1e1f": "scheduleShuffling()", "0x226685ee": "Visit()", "0x323082d7": "Vote(string)", "0x0b15650b": "randInt(uint256,uint256)", "0xc9cfac55": "refundCurrency(address,uint256,uint256)", "0xfe4a3ac9": "setExecPrice(uint256)", "0x6a0e605f": "MyToken(uint256,string,uint8,string,address)", "0xb549793d": "scheduleCall(bytes4,bytes,uint256,uint256,uint8,uint256)", "0x85e68531": "revokeAccess(address)", "0x01991313": "scheduleCall(address,bytes4,uint256)", "0x0a6be0e7": "BalancedPonzi()", "0xf463edd1": "createDocument(uint256)", "0xa20c404f": "ModifySettings(uint256,uint256,uint256,uint256,uint256,uint256,uint256)", "0x560bb612": "SignatureValidator(address)", "0xf7654176": "split()", "0x48f05187": "scheduleCall(address,bytes4,bytes,uint256)", "0xf2b904c3": "checkBetColumn(uint8,address,bytes32,bytes32)", "0x7bc0ff20": "setupExportFee(address,uint256)", "0xeb06e65e": "allowanceFromProxy(address,address,address)", "0xfe757fb5": "lastClaimPrice()", "0xa5d0bab1": "buyPartial(uint256,uint256)", "0xda7d0082": "isCertification(address,bytes32)", "0xe570be18": "DVIPBackend(address,address)", "0x54738157": "OwnerCloseContract()", "0xc1e5304a": "CreateNewDraw(uint256,bytes)", "0x0c26e42e": "getReleaseHashForNameHash(bytes32,uint256)", "0x0f7d6673": "Channel()", "0x54ea4000": "identify(address[])", "0x69307c80": "rotateBits(bytes,int256)", "0x78f0161a": "setGreyGreenPrice(uint8)", "0x23b872dd": "transferFrom(address,address,uint256)", "0x578bcc20": "reduceDebt(address,address,uint256)", "0x59e148fc": "getLastOfferId()", "0xb5299ca6": "giveMeat()", "0xae30d35d": "ARK_TROGLOg_1_00()", "0x2d2c44f2": "Vault()", "0xce19419b": "testThrowsSetNotUpdatableNotOwner()", "0xffcf21a9": "eventOracles(bytes,uint256)", "0xf46c50dc": "doFail()", "0x73b55eaf": "registerData(address,int256,bytes32,address)", "0x53770f9a": "isStateless()", "0x4d47feaa": "ShareholderDB(uint256)", "0x40b31937": "pledgeDecline(uint256)", "0x01cb3b20": "checkGoalReached()", "0x62e05175": "setMotionDB(address)", "0xf362d78f": "testBitNotEqualSuccess()", "0xd2531590": "CANCEL_EXTRA_GAS()", "0x9a92b7e7": "EthVenturesFinal()", "0x79b0797c": "AmIPlayer1()", "0x6241bfd1": "Token(uint256)", "0x94a1710d": "testNonOwnerCantBreach()", "0xb466b76f": "fresh()", "0x4a5dddd2": "proxyPurchase(address)", "0xc0a1a949": "x15()", "0xc3b8bfe5": "transferIfNoHF(address)", "0x4a7e049e": "getFullCompany(address,uint256)", "0x481b659d": "permitPermanentApproval(address)", "0x16ce8a69": "setBuilding(uint256,uint256)", "0x1593a8c7": "endLottery()", "0x078c3fa4": "_transferToICAPWithReference(bytes32,uint256,string)", "0xfa3f1e99": "testBlobStoreRegistered()", "0x0b9e9817": "CanaryV7FastTestnet()", "0x6663bbec": "orderMatch(uint256,uint256,int256,uint256,uint256,address,uint8,bytes,bytes,int256)", "0x273bc3c9": "numberOfThrones()", "0x3c84f868": "set(int256,address,uint256)", "0x1ac61e8c": "testBlobCreate()", "0x5ccc3eaa": "roundMoneyUpToWholeFinney(uint256)", "0x0ccec396": "getNumReleases()", "0x6ac6205c": "addDataPoint(int256,uint256,bool,string)", "0x1d124fe4": "setUtils2(address)", "0x4c471cde": "scheduleCall(address,bytes4,bytes,uint256,uint256,uint8,uint256)", "0x52a554a1": "voteBoardProposal(uint256,address,bool)", "0x745a8be2": "flip32(bytes)", "0xbac1e2e0": "testBitsAndSuccess()", "0x25fda176": "notify(address,uint256)", "0x3b8e6f2e": "balanceAt(address,uint256)", "0x60585358": "getByte()", "0xc853c03d": "newDraw(uint256,uint8[3],uint256,uint256,uint256,uint256)", "0x741273d6": "testThrowRegisterContractAgain()", "0x8f2c44a2": "UnicornMilker()", "0x59d96db5": "terminate(uint256,string)", "0x483ba09e": "setBitcoinBridge(address)", "0x74fbbc86": "rate(uint256,uint256,string)", "0x83ea0620": "packageExists(string)", "0xd917deb5": "Donate()", "0x3fc6bc94": "payDAO()", "0x6558488a": "scheduleSetBool(address,uint256,bool)", "0x83e78b31": "bet(uint8,bool,uint8)", "0xeccb15bc": "SatPosition(int256,int256)", "0x7daa10ce": "getMyInfo()", "0x3e4565d2": "testErrorUnauthorizedNameRegister2()", "0x2143da91": "GameOfThrones()", "0xb29f0835": "doIt()", "0xdcc0ccf3": "Dao(address)", "0x70d53be5": "find()", "0x9a828a71": "oracalizeReading(uint256,string)", "0x6a6d31db": "externalEnter()", "0xf8b71c64": "rewardTo(address,uint256)", "0x0399c357": "assignFreeReadings(address,uint8)", "0x81ade307": "query(string,string)", "0xdb83694c": "getSaleInfo()", "0xa6bf3df0": "oraclize_query(string,string[2],uint256)", "0x29605e77": "transferOperator(address)", "0xf29d2f28": "setTokenHolder(address)", "0xa96f8668": "releaseTokens()", "0x8a3bc2bc": "iPropose(bytes,uint256,bool)", "0xd18611d6": "reactivate()", "0x7620a65b": "Publisher()", "0xa268b332": "testBitXorFailIndexOOB()", "0x6b1781b6": "Emergency()", "0x1003e2d2": "add(uint256)", "0x1209b1f6": "ticketPrice()", "0xe5a27038": "Pluton(uint256,string,uint8,string)", "0x22bc3b8e": "getArgument(uint256)", "0x47bdb7f4": "transferDisable(bytes20)", "0x13137731": "testThrowsUpdateLatestRevisionNotUpdatable()", "0x3f3935d1": "confirmReverse(string)", "0xecb4136e": "NotAnotherPonzi()", "0x49e347ae": "getContents(uint256[],uint256)", "0x669dafe8": "toWei(uint256)", "0xc233e870": "isLatestPatchTree(bytes32,bytes32)", "0x7b789b3d": "agreement(bytes,bytes,bytes)", "0x682d3bb0": "pdfCertificateProof(bytes)", "0x42346c5e": "parseInt(string)", "0x3177029f": "approveAndCall(address,uint256)", "0x71ffcb16": "changeFeeAccount(address)", "0xc971442c": "getDBs()", "0x362e2565": "returnDeposits()", "0xe10e274a": "CrazyEarning()", "0x6d705ebb": "register(address,uint256)", "0xbe9a6555": "start()", "0x1ce624d6": "Crypted_RPS()", "0x2c4cb4be": "removeRegistryFromNameIndex(address)", "0x68742da6": "withdrawFunds(address)", "0x18f3fae1": "setOversight(address)", "0x061ea8cc": "countByOwner(address)", "0xd6d22fa4": "MetaCoin()", "0x85654c9c": "setMembershipRoster(address)", "0x8aa33776": "setMsgPrice(uint256)", "0x4dd850fb": "UfoPonzi()", "0x07e00bcb": "kissBTCCallback(uint256,uint256)", "0xa1b7ae62": "setdirectorName(string)", "0xb4d9cc3a": "profitDisperser()", "0x0f24f5c8": "doTransfer(address,uint256)", "0x8d72a473": "deductFunds(address,uint256)", "0x28f03554": "ProcessDividend()", "0x98391c94": "muteMe(bool)", "0x346cabbc": "scheduleCall(address,bytes4,uint256,bytes,uint256)", "0xa42e36c6": "scheduleTransaction(address,bytes,uint8,uint256[5],uint256)", "0x21b36a08": "setFee(uint64,uint256)", "0xd94073d4": "PT()", "0xe8580dd4": "Survey(address,uint256,string,bytes32[])", "0x1f0c1e0c": "getEventTokenAddress(bytes32,uint256)", "0xce8b7151": "isHF()", "0x9bee757b": "requestExecution(bytes,uint256)", "0x775dec49": "keccak()", "0x6673ce2b": "Results_of_the_last_round()", "0x9f87acd0": "exec(bytes32,bytes32,uint256)", "0x02394872": "getLastBlockHeight()", "0x615664ba": "Market()", "0x0d7af726": "addGame(address,string,string)", "0xf4aa1291": "withdrawFundsAdvanced(address,uint256,uint256)", "0x8ed67a44": "setPrice(uint16)", "0x84ebde52": "Under_the_Hood()", "0x5a28340a": "accessOperatingBudget(uint256)", "0x9a89ad65": "within6Confirms(int256,int256)", "0xdfce8ac3": "fipsLegacyRegister(bytes20,address,bytes)", "0x73f310df": "multiAccessRemoveOwner(address)", "0x4cbee813": "logout(string)", "0xd992bd5b": "testResultNotZero()", "0x05b34410": "creationDate()", "0xfed4614b": "funeral(bytes,int256)", "0x58cb7323": "MainnetETCSurvey()", "0xbb504317": "divest(address,uint256)", "0x82381c96": "WatchCurrentMultiplier()", "0xcce81927": "EtherDice(address,address)", "0x70961774": "getBlockCreatedOn()", "0x84a7b223": "Canary(address)", "0x9378a9e2": "setUInt(uint256)", "0xe4360fc8": "getFileListElement(bytes)", "0xe597f402": "create(bytes1,bytes32,bytes)", "0x95d5a1be": "SignatureReg()", "0x33ce7787": "transferInvestorAccount(address,address)", "0x46c52b1a": "blockHexCoordsValid(int8,int8)", "0x3092afd5": "removeMinter(address)", "0x30945443": "update(address,string,string)", "0xc37ff3d9": "sha(uint256,uint256)", "0x29a6f31b": "oraclize_query(uint256,string,string[2],uint256)", "0x227f9633": "addOption(string,address,uint256)", "0x38eaf913": "setDirectorNode(string)", "0xab67aa58": "transferFrom(address,address,uint256,bytes)", "0x0ce3151c": "personUpdateRelation(uint256,string)", "0x216ef940": "proxyUpgrade(address,address,bytes)", "0x76bc21d9": "fireEventLog2Anonym()", "0xf004073a": "performAction(uint256)", "0xdba7ef7d": "Bookie(address,address)", "0xa0469b02": "inputToDigit(uint256)", "0x1d007f5f": "changeDAO(address)", "0x9dcb5c65": "resultsWeightedByEther()", "0x14ab9038": "setTTL(bytes32,uint64)", "0xf4d94699": "EndowmentRetriever()", "0xe74b9d11": "safeToSubtract(uint256,uint256)", "0xd7504385": "validateToAddress(address)", "0x57e2880d": "scheduleTransaction(uint256,uint256)", "0xe73a914c": "setDAO(address)", "0xc47bc007": "add_funds()", "0x37881810": "setCallbackAddress(address)", "0x686f2c90": "collectAllFees()", "0x278b8c0e": "cancelOrder(address,uint256,address,uint256,uint256,uint256,uint8,bytes32,bytes32)", "0xfac34ff6": "throwFoo()", "0x6d98e9fc": "totalWei()", "0xb0bcc610": "scheduleTransaction(address)", "0x665bcc32": "ProcessGames(uint256[],bool)", "0x3fd1f232": "LookAtAllTheseTastyFees()", "0xdd727ea6": "runJackpot()", "0x0acc4382": "getMinDailyWithdrawLimit()", "0x46b207b8": "checkExpiry()", "0xde5d953a": "logSingleIndex(bytes,bytes,uint256)", "0xf504e0da": "load_level(uint16)", "0x4b63e601": "scheduleCall(address,uint256,bytes)", "0x4a71d469": "collectRev()", "0x80db79d9": "StructAndFor()", "0x090637a1": "GetPart(bytes,uint256)", "0xc003b082": "getMyPlayerID()", "0x00a7d6b3": "checkTransferFromToICAP(address,bytes32,uint256)", "0xdcf8113e": "campaignEndedSuccessfully()", "0xd1af8a5a": "LinkerExample()", "0x01fd89a4": "getFlags(bytes20)", "0xa39a45b7": "replaceOwner(address)", "0x0a3b1cd2": "setHotwallet(address)", "0x075fe877": "scheduleCall(address,bytes,uint256,uint256)", "0x3e5fd9b5": "dEthereumlotteryNet(address,address,bool,address)", "0xa6403636": "resolve(uint8,bytes32,bytes32,bytes32)", "0x0b2acb3f": "add(address,bytes)", "0x6d522b19": "multiAccessChangeRequirementD(uint256,address)", "0x4311de8f": "ownerWithdraw()", "0xa99e7e29": "register(bytes,address)", "0x1ed6f423": "changeDescription(address,string)", "0xcd50d44f": "CheckRepresentment()", "0x4c0e207a": "__outputCallback(uint256)", "0xea8a1af0": "cancel()", "0x67387d6b": "testThrowCreateWithNonceExistingNonce()", "0xdc583801": "doubleyour5()", "0xb8077e28": "getTxOrigin()", "0xbfbc793c": "computeNameFuzzyHash(string)", "0x79baa8a9": "BasicIncome_CoFund()", "0xf4dbeb9d": "getCredRanksByContents(address,uint256[])", "0x227185d6": "Send1Get2()", "0x75c4aaa6": "addUnderDog(uint256)", "0xa7abc124": "activate(bool,bool)", "0x8df554b3": "Dividend()", "0x092b25e9": "setOwner(string,address)", "0x67af26fb": "transferOtherFrom(address,address,address,uint256)", "0x4bb278f3": "finalize()", "0xd1e15045": "sendBack()", "0xa4699cad": "resetWithdrawls()", "0xb61d27f6": "execute(address,uint256,bytes)", "0x9772c982": "scheduleCall(address,bytes4,bytes,uint256,uint256)", "0x1b3a8e6f": "directionCount(int256,int256,int256,int256)", "0xd499555b": "getFirstActiveDuel()", "0xb738169c": "betOnOddEven(bool,bool)", "0x411c4e72": "ModifyFeeFraction(uint256)", "0x06f36cc9": "helpBlue()", "0x9e65c7e5": "updateLatestRevision(bytes20,bytes)", "0xb47fa7e0": "DepositLimit(uint256)", "0xf1736d86": "m_dailyLimit()", "0x62ea82db": "bids(address)", "0x4166c1fd": "getElevation(uint8,uint8)", "0x8702735c": "setCapitol(uint256,uint256)", "0x3cc7790a": "GSI()", "0x83f6d9a4": "validateNameInternal(string)", "0x8d99b2eb": "endPoll()", "0x8bbda7e3": "setContent(string,bytes)", "0x52efea6e": "clear()", "0x2581c674": "testBitsOrFailIndexOOB()", "0x05d87fe2": "issueLetterOfCredit(uint256,uint256,uint256)", "0xcbf0b0c0": "kill(address)", "0xf83d96c1": "InsuranceAgent()", "0x8dd5e298": "canEnterPool(address)", "0x2d580ef6": "add(address,bytes32)", "0xeeda149c": "Register(address)", "0xcc25decd": "SampleOffer(address,bytes,uint256,uint256,uint256,uint256,uint256)", "0x428d64bd": "getShares(address,bytes32[])", "0x3c9a4baa": "requestOutput(bytes)", "0x8cae1374": "editBlock(uint8,uint8,uint256,int8[5])", "0x419db07b": "generousFee()", "0x202e3924": "getOperation(uint256)", "0x5ee345e4": "computeEndowment(uint256,uint256,uint256,uint256,uint256,uint256)", "0x7df23b6a": "ReleaseOracle(address[])", "0x9b2ea4bd": "setAddress(string,address)", "0x65093661": "newCommunity(address)", "0x33637d5a": "getPendingBlock(uint256)", "0x7910085d": "fipsIsRegistered(bytes20)", "0x730720b8": "testControllerValidTransfers()", "0xb0c80972": "setBalance(uint256,bool)", "0xdcf537b1": "multiply7(int256)", "0xdf5cc291": "get4(bytes,uint256)", "0x9ae4e388": "ChangeClientTokenAccount(address,bool)", "0x3121369d": "validateRequiredStackDepth(uint256)", "0x1747dfd4": "ContractPlay()", "0x598647f8": "bid(uint256,uint256)", "0xc368109c": "monster_hp(uint256)", "0x7fa22001": "assertEq0(bytes,bytes,bytes)", "0x8e280dce": "findNextYear(uint256,bytes)", "0x39d1f908": "actualBalance()", "0x8143f8a8": "totalGas(bytes)", "0xfe55932a": "setName(uint256,string)", "0x0fbf7151": "startsWith()", "0x4f20f35a": "payExpenses(address,uint256)", "0x705eeb90": "MultipleConstructorTest(bool)", "0x2df8e00d": "becomeMortal(uint256)", "0x645dce72": "updateRelease(uint32,uint32,uint32,bytes20,bool)", "0x1f6e5117": "getCallbackAddress()", "0xf51cbc72": "Level()", "0x64edfbf0": "purchase()", "0x35930e13": "setMinimalRewardedBalance(uint256)", "0x015e4f3a": "getConfigUint(int256,bytes)", "0x2c329e99": "Last_block_number_and_bloctime_used()", "0x6f3a7561": "SimpleAuction(address)", "0x6de00927": "GetUserRank(uint8,address)", "0xbe600276": "move(uint16)", "0x27d6c032": "unregister(bytes)", "0x4188d79c": "releaseExists(string,uint32,uint32,uint32,string,string)", "0x7ba38916": "changeAdminFromBoard(address)", "0x3369dace": "flipTheCoinAndWin()", "0xfa8dc33a": "checkRecordExists(bytes)", "0xebaf7f2f": "returnReward(uint256)", "0xc88961da": "createKingdom(string,address,address,address)", "0x21970c0c": "pay_royalty()", "0xb4a5ef58": "updateDefaultTimeoutPeriod(uint256)", "0x57bcccb6": "revokePermanentApproval(address)", "0xd1d1c8ae": "ConvertNumbers(bytes)", "0xc1c0e9c4": "exec()", "0xcc131be1": "CreateNewDraw(uint256)", "0x75f96ead": "Guess(uint256)", "0x8a5fb3ca": "currentFeePercentage()", "0x550bcd8d": "testThrowUpdateLatestRevisionEnforceRevisions()", "0xa6780857": "fireEventLog0Anonym()", "0x2d0104a5": "updateFirstDuel1(uint256)", "0xcbf1304d": "balances(address,uint256)", "0xdda9939c": "Store(address[])", "0xf41bfa9e": "mint(int256,uint256,string)", "0x044215c6": "token(uint256)", "0x1f903037": "getBytes32()", "0xa6f9dae1": "changeOwner(address)", "0xf9391d24": "AllPayAuction()", "0xabebb7f3": "MarketsContract()", "0x9e1e6528": "uncertify(address)", "0x81788e2b": "addAllowedAddress(address)", "0x4f44728d": "ownerChangeOwner(address)", "0x3da0ac79": "compare()", "0x96e438a1": "reclaimDeposit(uint256)", "0x5fe22c8b": "testFailTransferWithoutApproval()", "0x6835f32c": "build(bytes)", "0x5cac8b27": "amazing()", "0xad605729": "getParticipantCount()", "0xb6294bde": "AdminGetFee()", "0xec81e22e": "returnmoneycreator(uint8,uint256)", "0xc535165f": "revealAndPayout(bytes,bytes)", "0x6e0bd282": "destroy(bytes32)", "0xdda44b10": "buyRecipient(address,uint8,bytes32,bytes32)", "0xd4859dbc": "UniversalFunctionSecure(uint8,bytes32,bytes32,bytes32,bytes32,bytes32)", "0xd2602930": "RockPaperScissors()", "0xa08b3367": "EC()", "0x92d66313": "getYear(uint256)", "0xe49dcee9": "fixTokens()", "0x36555b85": "add(string,uint256)", "0x25010816": "get_length(uint256,uint256)", "0x610d5de8": "validateEndowment(uint256,uint256,uint256,uint256,uint256)", "0x79ce9fac": "transfer(bytes32,address)", "0x3ced516c": "descriptionHashes(bytes32)", "0xcf69df28": "getDataRequestLength()", "0x706dfe54": "getIssueState(uint256,bytes32)", "0x5af77fff": "Contract()", "0x66e5cb50": "stopTransfer(uint256)", "0x5f72f450": "check(uint256)", "0xf3b50c04": "rescind()", "0x57aee888": "_eraseNodeHierarchy(uint256,bytes32[],bytes32)", "0xaacc5a17": "getRandom()", "0x40275f85": "getPersonalDepositAddress(address)", "0x75700437": "query1_withGasLimit(uint256,string,string,uint256)", "0x6eb7b4c2": "underdogInfo(uint256)", "0x0f3eb785": "add(string,uint256,uint256,uint256)", "0xdc19266f": "Total_of_Players()", "0x9743dfc1": "jesterAutomaticCollectFee()", "0x6618b008": "cancelSellOrder(address)", "0x65538c73": "fireEventLog0()", "0xa4502cb8": "setExportFee(address,uint256)", "0x97bb2a63": "newvow(uint256,address)", "0xb400d149": "betOnNumber(uint8)", "0x030d406b": "entryPayout(uint256)", "0x1d71a1cd": "newIncome(string)", "0x85dd2148": "getSaleDate(bytes16)", "0x29917954": "exitPool()", "0xa25057de": "_transferToICAP(bytes32,uint256)", "0x24fc65ed": "getId(uint256,uint256)", "0x938199a5": "getDateOfLastPayment()", "0x04bb754c": "TradeFinancing()", "0xe37aa618": "distributeValue()", "0x547916ea": "finishRound()", "0xed01bf29": "budget()", "0x95ee1221": "isCancelled()", "0xfe777bcd": "etherForSale()", "0xffe302d1": "setPlz(string)", "0x891de9ed": "fromTLA(string)", "0x84734476": "copyBytes(bytes,uint256,uint256,bytes,uint256)", "0xfb114f57": "oraclize_query(uint256,string,string[3],uint256)", "0xceebe28d": "repoInterfaceVersion()", "0xb0ad38c4": "buildCity(string,uint256[2],uint256[2])", "0xefa7e56b": "GameEnds()", "0xcc3471af": "maxClaimBlock()", "0xa7c5052e": "buildDSTokenRegistry()", "0x6831c169": "totalPayedOut()", "0x98f3b81a": "getShares(address,bytes32[],int256[])", "0x2d077ad0": "Latch()", "0x0ac28725": "requestTradeDeal(uint256,uint256,string)", "0xb311ee0c": "refundClaimDeposit()", "0xadd82871": "strEqual(string,string)", "0x7879e19e": "CollectAllFees()", "0x5bd74490": "regProxy(address,address)", "0xd2b0d554": "getDisclaimer()", "0x0b74edc6": "testFinalHash()", "0x6cf761d4": "getMinConfirmationsByAddr(address)", "0x4cedf74e": "get_party1()", "0x4adcbd19": "isThisHardforkedVersion()", "0xefdecd9b": "check_withdrawdao()", "0x996a8046": "__callback(bytes32,string,bool)", "0x7c9cd7df": "changeDeveloper_only_Dev(address)", "0x3f77b560": "newDocument(bytes)", "0x06b5f02d": "calcWinnings(uint256,uint256)", "0x0a2282ae": "JackPot()", "0x378a2178": "tallyVotes()", "0xd8915fc5": "DCAssetBackend(bytes32,bytes32)", "0x0f590c36": "emergencyFixGameResult(uint64,uint256)", "0xea4af029": "ConferenceCertification()", "0x769dc523": "GetCategoryNumber(bytes4)", "0xd5df7559": "removeDocument(uint256)", "0x749aa2d9": "endRound()", "0xd8e5ae6a": "Etheramid()", "0xc0576b73": "monsters(uint256)", "0x32fefb4c": "add_account(address,address)", "0x7d619d9b": "holdCoin(address,address)", "0x5b067cce": "testCreateCostMain()", "0x384b1393": "follow(uint256)", "0x4162169f": "dao()", "0x5d8227e6": "FactoryBase(string,string,string)", "0x6bf52ffa": "Vote()", "0xeb5904c0": "setProfitDistributionContract(address)", "0x366a68dc": "setBlockLock(uint256)", "0x80d9eaa6": "refCount()", "0x89b8b492": "read(uint64)", "0x46b5e202": "set_num_levels(uint256,uint256)", "0xd96de4ce": "AdminDrawError()", "0x47b47102": "bakeCookie(string)", "0x1d7b5baf": "setUint(int256,bytes32,string,uint256)", "0x0699d07d": "updateMaxVal()", "0xfa544161": "getOwner(address)", "0x638560cf": "registerBool(address,bool)", "0x7c25f260": "Government()", "0x24a852c6": "unset(bytes)", "0xa32f0f41": "testFailControllerUnapprovedTransferFrom()", "0x0968f264": "withdraw(bytes)", "0x5f52e9fd": "WithdrawCashForHardwareReturn(uint256)", "0xc0f68859": "getMinimumGracePeriod()", "0x1bf6c21b": "USD()", "0x0fe234ed": "testSetController()", "0x05a17fc6": "getAccountFeed(address,uint256,uint256,uint256)", "0x673448dd": "isApproved(address)", "0x59dac714": "hashTo256(bytes)", "0x5a09f2f4": "setHouseFee(uint256)", "0x013cf08b": "proposals(uint256)", "0xeebf9808": "PiggyBank()", "0xadd43c59": "EtherTopDog()", "0xf909d60d": "getMinimumGasLimit()", "0xeb045789": "ChannelSeries(address)", "0x66d38203": "setup(address)", "0xe8641652": "strCompare(string,string)", "0x1959a002": "userInfo(address)", "0x737c8ea1": "_getRevisionBlockNumber(bytes32,uint256)", "0x127714c7": "getBudget()", "0x97daa043": "register(bytes,address,address,uint256,bytes)", "0xb5784f6f": "testMultiplePackages()", "0x0ce46c43": "scheduleCall(address,bytes4,bytes,uint16,uint8,uint256[5])", "0xe5782fd5": "setFeeStructure(uint256,uint256,uint256)", "0xa9f6def0": "HonestDice()", "0xeb7cdb56": "rankDown(uint256,uint256)", "0xb17b94c1": "testSystem()", "0xdd36e18b": "ContractStatus()", "0xee0dc478": "testSetEnforceRevisions()", "0x918359c6": "needsBirth()", "0xa5b1e13d": "settle(address,address,uint256,uint256)", "0x6b76484e": "swap(address,address)", "0x68402460": "scheduleCall(address,bytes4,uint256,uint256,uint8,uint256)", "0x733480b7": "transferToICAP(bytes32,uint256)", "0x567dbf18": "__forward(address,uint256,uint256,bytes)", "0x73e1743a": "buildDSBasicAuthority()", "0x482961e1": "updateReading(uint256,uint256)", "0x4e6ba0a9": "testCreateCostMultisig()", "0x8d7108e5": "isValidLocation(uint8,uint8,int8[5],int8[24])", "0x10142785": "assign(bytes,uint256,bytes1)", "0xfe97ee88": "hasPhone(address)", "0xe2861c8d": "cashOutProfit()", "0x0fa9ced4": "emergencyFuneral()", "0x8389f353": "setNumCities(uint256)", "0xdba1ac3d": "getEnforceRevisions(bytes20)", "0x1b4fa6ab": "getDefaultStackCheck()", "0x79be02af": "Read(address)", "0x70844f7a": "sendBadge(address,uint256)", "0x7bfaad96": "addNode(bytes,address)", "0x4d782cbc": "executeSellOrder()", "0xbe71248a": "payWinner()", "0x41304fac": "log(string)", "0x4f059a43": "getClaimAmountForBlock()", "0x6d2cb794": "airaTransfer(address,address,uint256)", "0x5a5383ac": "canExitPool()", "0xcabd27de": "Motion(address)", "0x433d4aab": "resolve(uint8,uint8)", "0x7d89ae63": "__findRef(string)", "0x4e1053cc": "RobinHoodPonzi()", "0x0220a5b4": "terminate(string)", "0x419ffa03": "fipsRegister(address)", "0x77a7e6be": "getRefTotal(uint256)", "0xed64bea4": "JamCoin()", "0x3cf885c4": "isBitSet(uint256,uint8)", "0xf2da67db": "setMany(uint256,int256,uint256,bytes20,address,bytes)", "0xe26c8434": "AdminStartDraw(string,bytes)", "0x13df7091": "mintAll(int256)", "0x8a46bf6d": "testFallback()", "0x29bed3bf": "EthereumRoulette()", "0xf869b11a": "declareVictor(uint256,uint256)", "0x45c41478": "getMarkets(bytes,address)", "0x90cf581c": "voteYes()", "0x9ec35352": "returnRandom()", "0x5025b9ae": "expire(uint256,uint256,uint8,bytes,bytes,bytes)", "0x338a1379": "_setPackedBlockNumber(bytes20,uint256)", "0xdb641ab4": "Game_balance_in_Ethers()", "0xbc0e7adb": "testThrowsDisownNotOwner()", "0x302d350e": "firstChainedCallback(uint256)", "0x5af73f3f": "getMinimalBalance(uint256,address)", "0x4c488dac": "getChannelValidUntil(bytes)", "0xa1616429": "testBitOrSuccess()", "0xaa64c43b": "transferPool(address,address,uint256)", "0x78e97925": "startTime()", "0xa0355f4e": "decline(uint256)", "0x02556de3": "updateMajorTree(bytes32)", "0x01984892": "name(address)", "0xfad4b99a": "updateChannelMinimum(address,uint256)", "0x4f39ca59": "drop(bytes32)", "0x61591a7c": "personUpdateDOB(uint256,int256)", "0x17b3a34b": "_addIdentities(uint256,bytes32[])", "0x91d8b14e": "BuyTickets()", "0x1aadcc34": "convertGreyGreen(uint8,uint8)", "0x9a863892": "NewProposal(uint256)", "0xc5487661": "proxyTransferToICAPWithReference(bytes32,uint256,string)", "0x85f8c16d": "claimHours(int256)", "0xa71f94c8": "scheduleSetUInt(address,uint256,uint256)", "0x7ef09476": "transfer(uint64,address)", "0x94bcdb4c": "Example2()", "0x37930615": "extend(bytes16[],uint64)", "0xfb09b1ac": "testBalanceOfReflectsTransfer()", "0x19a278b9": "getBAddress()", "0xc0a239e3": "valuePerShare()", "0xa039e3c7": "testSetNotTransferable()", "0x22593300": "Small(address)", "0xe21608be": "ReserveToken()", "0xc2985578": "foo()", "0xb463bcde": "testThrowsSetNotTransferableNotOwner()", "0x88d695b2": "batchTransfer(address[],uint256[])", "0x37b0574a": "isClassic()", "0x1da6822c": "testThrowsTransferEnableNotTransferable()", "0xdcfa9cc0": "testProxyCall()", "0x478aa69e": "unauthorizeUser(address)", "0x102accc1": "fireEventLog2()", "0xed62cf1f": "setCanCall(address,address,bytes,bool)", "0x15f73331": "invalidateName(string)", "0x73e30e49": "majorEventFunc(uint256,bytes,bytes)", "0x00c721ab": "setHand(uint256)", "0xf9e27106": "investmentEntryCost()", "0x4c7f74df": "EtherDelta(address,address,address,uint256,uint256,uint256)", "0xb74e452b": "today()", "0xd3118a5a": "addDoc(string,string)", "0xc204f9f1": "_transferFromToICAP(address,bytes32,uint256)", "0xf50d3914": "resetFoundationtList()", "0xe67cdfb7": "moveOldUser(uint256)", "0x98eaca94": "inKissBTC(uint256)", "0xc633084f": "sendGreeting(address,string)", "0xde10f04b": "eraseNode(bytes32[])", "0xd50495f4": "addTransaction(bytes)", "0x96cff3df": "getMinimumCallCost(uint256,uint256)", "0xce373b95": "heroOfThePit()", "0x39e525f9": "resolveCallback(uint256)", "0x942b90d3": "getRewardTable()", "0xedca914c": "buyTicket()", "0x5fcb568c": "release(string,uint32,uint32,uint32,string,string,string)", "0x6c9c2faf": "getSupply()", "0xf1448e10": "requestExecution(bytes)", "0x0c08bf88": "terminate()", "0x08aba5aa": "setAccountBalance(uint256)", "0x2c46d8d5": "EndRound(uint256)", "0x3d5db1c2": "incrUserOnholdBal(address,uint256,bool)", "0xf2f254c7": "getLatestMinorTree(bytes32,uint32)", "0x373a1bc3": "scheduleCall(address,bytes4)", "0x3a96fdd7": "compare(string,string)", "0x738ddabe": "getContentIndexedAccountCred(uint256,address,address)", "0x5acce36b": "getEndowmentBalance()", "0x1ca60aeb": "setMeltingContract(address)", "0x52375093": "m_lastDay()", "0x565a2e2c": "getBeneficiary()", "0x9d5c6061": "getMsgGas()", "0x41d31feb": "get_read_only_keys()", "0x796b89b9": "getBlockTimestamp()", "0x4a41e045": "getUint8(int8)", "0x38e48f06": "save(string)", "0x1cda37f2": "eraseRecords(bytes32)", "0xae978f08": "getLatestTweet()", "0x20909fa0": "communityCurrency()", "0xafbec8df": "TheGrid()", "0x1c14179a": "GavCoin()", "0x0b6142fc": "breach()", "0x3ab1e703": "roundMoneyDown3SF(uint256)", "0x414ceac0": "investorAddFee(uint256)", "0x82a62137": "activateAccount(address)", "0x4ca7fbd0": "updateTokenPriceWeekTwo()", "0x2551858e": "getFlags(bytes32)", "0x4ad07b0e": "oracleOutcomes(bytes32,address)", "0x60b431a4": "testGetSig()", "0xa5f8cdbb": "buyTicket(address)", "0x64aabe92": "tryExec(address,bytes,uint256)", "0xa6c01cfd": "isInGeneration(uint256)", "0x149c5066": "ChanceOfWinning(uint256)", "0xc068eae0": "player_collect_winnings(uint256)", "0x8129fc1c": "initialize()", "0xcf832ce2": "ownerRefundPlayer(bytes32,address,uint256,uint256)", "0x3517a740": "getNodeParent(bytes)", "0xec6afc22": "oraclize_query(uint256,string,string[3])", "0x50944a8f": "setMembership(address)", "0x85b1423e": "returnAll()", "0xd95a2d42": "lendGovernmentMoney(address)", "0x347632e8": "getShareholderAdressByID(uint256)", "0xbb39a960": "trade(address,uint256,address,uint256)", "0x8abadb6b": "setAccountLevel(address,uint256)", "0xa502aae8": "getNextGenerationId()", "0xb5bfdd73": "addDSource(string,bytes1,uint256)", "0x28d3ad3f": "getPot(uint256)", "0x08933d11": "getJoinBlock(address)", "0x8383bfc8": "EscrowFoundry()", "0x2ca15122": "sign()", "0xf340fa01": "deposit(address)", "0x9ed93318": "create(address)", "0xa1c0539d": "scheduleCall(address,bytes4,bytes)", "0xced92670": "changeMultiplier(uint256)", "0xb2c652f3": "getMarkets(uint256[128])", "0x69b144eb": "testThrowsCreateNewRevisionNotOwner()", "0x16c72721": "forked()", "0x712ca0f8": "getOrder(string)", "0x0cf45ba5": "updateFirstDuel2(uint256)", "0x4173b181": "setWeiPrice(uint256)", "0x689b3e2d": "Moonraker(address,address)", "0x8691162a": "TlcCoin()", "0x432ced04": "reserve(bytes32)", "0x38178fbe": "addString(string,string)", "0x8f1327c0": "getRound(uint256)", "0xa9eed530": "reduceOrderQty(uint256,uint256)", "0x408938d0": "testUpdatePackageDb()", "0x56105a08": "DgxSwap()", "0xc43d0575": "scheduleCall(bytes4,uint256)", "0xdba21657": "askForEther(uint256)", "0xca3b5c91": "hasRelation(bytes,bytes,address)", "0xc71cbcf3": "recoverAccount(address,address)", "0xb010d94a": "canExitPool(address)", "0x0a16697a": "targetBlock()", "0xff1f7046": "requiresAuction(string)", "0x0b811cb6": "executeProposal(uint256,bytes32)", "0xbb8be064": "HardwareToken()", "0xe2b05077": "getSaleDate(bytes,uint256)", "0x1e9a6950": "redeem(address,uint256)", "0xd21b84ac": "createNewDAO(address)", "0xd644e356": "index(uint256,address,uint256,uint256)", "0xea27a881": "getMinimumEndowment(uint256,uint256,uint256,uint256)", "0x99a88ec4": "upgrade(address,address)", "0xc8e4acef": "playerByAddress(address)", "0x0b7abf77": "TOTAL_TOKENS()", "0xfb5d7376": "step4()", "0xc0aa18e7": "History()", "0xe2233ada": "smartDoor(address[])", "0xd6006e88": "send(address[],uint256[],uint256)", "0x95671958": "getFileListTail()", "0x16bac350": "overthrow(string)", "0x5cb18a6d": "fipsLegacyRegisterMulti(bytes20[],address,bytes)", "0x60116397": "Registrar(address,bytes32,uint256)", "0x60fe47b1": "set(uint256)", "0x5f8f0483": "buyBankerAgreementFromImporterBank()", "0x4c8cc20b": "toContentID(address,string,string,address,uint256)", "0x45ca25ed": "changeName(address,string)", "0xb21bce4c": "vote(bytes,bool)", "0x334dc700": "CanaryV7Testnet()", "0xc31d0031": "CrowdFundDAO(string,uint8,string)", "0xf3d91708": "isEligibleForUpgrade(address)", "0x0ee07836": "adjustDifficulty(uint256)", "0xf6232556": "Security_GetNumberOfAttemptsToConnectBankAccountToANewOwnerAddress()", "0xb2d37e95": "remove_order(uint32)", "0x691d58e7": "_applyRefund(uint256)", "0x1c2353e1": "isCertifier(address)", "0xcf158fe9": "scheduleTransaction(uint256,uint256,uint256)", "0x5d96ec65": "setAdministrator(address,string,bool)", "0x0651844e": "activateBalance(address)", "0x217311ac": "getWords(uint64)", "0xc127c247": "addMember(address,string)", "0x40c0bcb9": "checkBetNumber(uint8,address,bytes32,bytes32)", "0xb633620c": "getTimestamp(uint256)", "0x5b764811": "_jMul(uint256,uint256,uint256,uint256)", "0xfe029156": "swap(address,address,uint256,uint256)", "0x31db4b95": "doTriggerAuth()", "0x203c03fa": "Coinflip()", "0x209a5b8a": "moneySumAtSettlement(address,uint256,int256,uint256)", "0xf10ae2ab": "__dig_then_proxy(uint256,address,bytes)", "0xd532e481": "activateFrozenAccount(address)", "0xe9a9c1b4": "get_party1_balance()", "0x8fcc9cfb": "setMinDeposit(uint256)", "0xe5c7e509": "testThrowTransferDisableNotEnabled()", "0x4e077f2a": "addGasEther()", "0xb7c93330": "ResourcePoolTester()", "0x82661dc4": "splitDAO(uint256,address)", "0x0e554bd8": "scheduleCall(bytes,uint256,uint256,uint8)", "0x49041903": "getGame(uint64)", "0x0e1da6c3": "claimTimeout()", "0xc53ad76f": "Kardashian()", "0x8b7bcc86": "numWinners()", "0x1043dcdf": "LastIsMe(uint256,uint256)", "0x6cd22eaf": "updateAuthority(address,bool)", "0xb796a339": "addRegistryIntoOwnerIndex(address,address)", "0x308d6613": "getSignData(uint256,uint8)", "0xed88c68e": "donate()", "0xb719d1d0": "getRegInfo(address)", "0xac8d6030": "removeRequest(address)", "0x46f0975a": "signers()", "0x434cb64c": "startNextGeneration()", "0x6cb3d30a": "triggerTryAuth()", "0x3c067945": "fundBalance()", "0x26c7edaa": "flip4(bytes)", "0xf76f950e": "uint2str(uint256)", "0x860e9960": "BetPriceLimit()", "0xb0ecca8f": "LookAtLastTimePerZone(uint256)", "0xa35cfa22": "make_move(uint256,uint8,uint8,uint8,uint8)", "0x3f74fecb": "DSTrueFallbackTest()", "0xdd2ad311": "scheduleCall(bytes,uint256)", "0x0ae5e739": "grantAccess(address)", "0x7d5fec5a": "setOwner(uint8,uint8,address)", "0x6a4b6aa5": "untrustedChildWithdraw()", "0x332f93a9": "nextPayoutGoal()", "0xc5ae6e0e": "Kernal()", "0x75438e49": "fillGas()", "0x51404cbe": "forceDivestOfOneInvestor(address)", "0xeacfc0ae": "Authorized()", "0xe59d843a": "Replicator(bytes,uint256,uint256,address)", "0xf00e8651": "createRequest(address[2],address,uint256[11],uint256,bytes)", "0x02acdb44": "setAnyoneCanCall(address,bytes4,bool)", "0x2a24f46c": "auctionEnd()", "0x7ef1925b": "getShareRange(uint256,uint8)", "0x2fac1a54": "newOrder(bool,uint256,uint256,uint256,uint256)", "0x56b8c724": "transfer(address,uint256,string)", "0x33fd066d": "doBalanceFor(address)", "0xf29617da": "registrationDeposit(address)", "0x2b297f9e": "registerDao(address)", "0x79cce1c5": "getReleaseHashes(uint256,uint256)", "0xbed1b8b9": "convertToInt(string)", "0xef5daf01": "_dumpToCompany()", "0x23dc42e7": "query1(uint256,string,string)", "0xa53b1c1e": "setInt256(int256)", "0xb8cf14e7": "updateStatusPlayer()", "0x61aa8d93": "processFee()", "0x10f41715": "updateMintingData(uint256,uint256)", "0x048e2e94": "getAccountSize(address,uint256)", "0x7c47965e": "isInCurrentGeneration()", "0x420a8ac8": "NanoPyramid()", "0xe56556a9": "getPlayerID(address)", "0x5cd2f4d3": "approve(address,bytes32)", "0x8da4d776": "newCommune(address)", "0x4d30b6be": "balanceOf(address,bytes32)", "0x4a606c53": "_db()", "0x4956eaf0": "deploy(address,uint256)", "0xf1fe42b8": "TransactionRequest(address[3],address,uint256[11],uint256,bytes)", "0x63e38ff3": "id_for_nym(uint256)", "0x0e757a2e": "testSetAndGet()", "0x3facd57c": "registerBill(uint256,address,address,uint256,uint256,uint256)", "0xe548cf13": "betOnColumn(bool,bool,bool)", "0x2f1e4968": "makeNewProposal(string,uint256)", "0x0b467b9b": "revoke(bytes)", "0x74bfb965": "addNewProxy(address)", "0x02de2cf3": "isLatestPreReleaseTree(bytes32,bytes32)", "0xfc1f7652": "_isBoardMember(address)", "0xefef39a1": "purchase(uint256)", "0x3ae9b510": "getLatestMajorTree(bytes32)", "0xc24924d6": "setQueryFee(uint256)", "0x839930ba": "getMinimumBet()", "0x8f5e9ca7": "acceptTOS(address,bool)", "0xd1100691": "BookCafe()", "0x839849c0": "changeBaseMultiplier(uint256)", "0x758971e8": "ownerTakeProfit(bool)", "0x2b785960": "testBitAndSuccess()", "0xd96a094a": "buy(uint256)", "0x379607f5": "claim(uint256)", "0x88e072b2": "checkTransfer(address,uint256)", "0x05fefda7": "setPrices(uint256,uint256)", "0xfc63d4fb": "order(bool,uint32,uint128)", "0x5718b994": "checkEvent(address,bytes,bytes,uint256)", "0x0c0662a8": "getLastWithdrawal()", "0xeb947f19": "ExampleResourcePool()", "0xb51c4f96": "getCodeSize(address)", "0x702fc7da": "ReviewModel()", "0xc6cb7a96": "orderMatchTest(uint256,uint256,int256,uint256,uint256,address,address,uint256,int256)", "0xb7760c8f": "transfer(uint256,address)", "0x32b12eac": "setFallback(address)", "0x0a4d564c": "TieUpLooseEnds()", "0xc3ad5ecb": "getTweet(uint256)", "0xe86afde0": "description(uint64)", "0xd0549602": "scheduleTransaction(address,uint256,uint256,uint256)", "0xbf2e694f": "getPreviousRequest(address,address)", "0x2525f5c1": "cancelBid(address,bytes32)", "0x19f02ceb": "set(address,address,uint256)", "0xf00acc47": "prepareRoll(uint256,uint256)", "0x29d28aad": "Broker(address)", "0x041d0c0b": "MyTokenLoad(uint256,string,uint8,string,address)", "0xd81ab0c1": "invoke(uint256,address,address,bytes)", "0xab09ee80": "respond(uint256,uint256,uint256,uint256)", "0xd985f122": "RelayToolsTest()", "0xbe0638e4": "WealthShare()", "0x5263ba87": "getLatestPatchTree(bytes32,uint32,uint32)", "0xb7bae9b7": "exists(bytes,bytes)", "0x0b80f8d3": "invmod(uint256,uint256)", "0xbb4d7cd1": "tag(uint256,string)", "0xadf54e0c": "betOnLowHigh(bool,bool)", "0xed54746e": "lastAuction()", "0xf158458c": "getMinimumEndowment(uint256,uint256)", "0x5fcc2edb": "IndividualityTokenRoot(address)", "0x7cc48875": "Slots()", "0x2885b593": "extractMasterKeyIndexLength()", "0x8940aebe": "publicKey(uint256)", "0x0aece23c": "getFeeAmount(int256)", "0x72c3015c": "mint(int256,address,string)", "0xd6a619e3": "transferIfPuritanical(address)", "0xe30443bc": "setBalance(address,uint256)", "0x1277e24f": "payOneTimeFee()", "0xb958a5e1": "getPhoneByAddress(address)", "0x4e71d92d": "claim()", "0x3e0d4f4a": "ApproveContractorProposal()", "0x18160ddd": "totalSupply()", "0x150ad2a8": "owner_transfer_ownership(address)", "0xa2b5591c": "oraclize_query(uint256,string,string[],uint256)", "0x8d227fc0": "getPeriodInfo()", "0x1c0b6367": "processTransaction(bytes,uint256)", "0xf245b9e4": "DVIP(address)", "0x392327b5": "owner_set_fraction(uint256)", "0xadaccd74": "getNickname(address)", "0x2e0ef395": "voteOnNewEntryFees_only_VIP(uint8)", "0x89c19ddb": "concat(string,string)", "0xcef8d343": "buyShare(uint256,bool)", "0xd224118f": "PrepareDraw()", "0x4269d8ef": "_safeSend(address,uint256)", "0xda1441cd": "KudosBank(uint256)", "0x7ccfd45a": "removeSubUser(address)", "0xcc70bb1a": "publish(string,string,string,address)", "0x708f29a6": "getTotalPayments()", "0x05459f42": "WeeklyLotteryB(address)", "0x452d44dc": "checkBothNotNull()", "0x659fb968": "getOracleOutcomes(bytes32[],address[])", "0x3570c2ee": "PosRewards()", "0xbca86986": "testSetup()", "0xff49b26e": "createEvent(uint256,uint256,uint8,uint32,address,uint256,uint8)", "0x541d920c": "commit(bytes,string)", "0xa6a20ff6": "DSEasyMultisig(uint256,uint256,uint256,uint256)", "0x0f5381f1": "testUserCanIncreaseVersionNumber()", "0xf8f46b5f": "getCurrentMinerAddress()", "0xfcfff16f": "open()", "0x5a9b0b89": "getInfo()", "0xb8017221": "get_party2_balance()", "0x514dcfe3": "seller_accept()", "0x2004dff6": "Basics()", "0x0b6d8d52": "createDAO(address,uint256,uint256)", "0xf18d20be": "adminWithdraw()", "0x8f9df278": "newEntry(int256,bool,uint256,int256,string,bytes32,address,uint256[])", "0x75949c13": "sendHalf(address)", "0x64ac2c4a": "WavesPresale()", "0x8946d33f": "SplitterEthToEtc()", "0x11400d8e": "priv_fastGetBlockHash__(int256,int256)", "0x7266f4a4": "X3()", "0xb189ad2a": "testErrorUnauthorizedAfterTransfer()", "0x31c2bd0b": "propose(address,bytes,uint256)", "0x100c8ada": "setCAmodulus(bytes)", "0x296ed88f": "testFailControllerInsufficientFundsTransferFrom()", "0xd5dbb1ad": "solveBet(address,uint8,bool,uint8,bytes32,bytes32)", "0x8a9ffb90": "transfer(string,string,bool)", "0x968908a3": "createMarketMaker(uint256,uint16,uint256)", "0x7b02b2c9": "sendMsg(address,string)", "0xa33dd801": "setTreasuryBalance(uint256)", "0x2f553d31": "isCreated(bytes32)", "0xf712d7ff": "testFailControllerTransferFromWithoutApproval()", "0xe51ff1fc": "iterateOverThings()", "0x60fd902c": "gnosisToken()", "0x2ef875fb": "div10(uint256,uint8)", "0x640f244b": "findSuitableGen()", "0x16cb9a01": "assertFalse(bool,bytes)", "0xe671f510": "onEtherandomExec(bytes32,bytes32,uint256)", "0x758b5172": "setPlayersPerRound(uint256)", "0x6423db34": "Reset()", "0x21958a50": "AddressSeries(address)", "0xfb87d5ea": "TransactionRequest(address[4],address,uint256[11],uint256,bytes)", "0xfb279ef3": "tip(uint256,address,uint256)", "0x338cdca1": "request()", "0x4e7ad367": "fireEventLog1Anonym()", "0xbd9335c0": "scheduleHangouts()", "0x4cb85356": "BranchSender(uint256,bytes32)", "0x1d7e1f68": "getContentRank(address,uint256)", "0x1a1df394": "Play(bool)", "0x468129a5": "setUnit(uint256,uint256,uint256)", "0xecb70fb7": "hasEnded()", "0x2d49ffcd": "getLocked()", "0x2e06c756": "post(string,string,string,uint256,uint256,address)", "0x73f93a48": "getAccountContentTip(address,uint256)", "0xf6a3d24e": "exists(address)", "0x5fbddcf3": "isLivingMonarch()", "0x6d568c43": "weiToCents(uint256)", "0xacf4280c": "buildDSApprovalDB()", "0xf3541901": "execute(address,bytes,uint256,uint256)", "0x88eb7af7": "_isHuman()", "0x48a490fb": "transferFromTreasury(address,uint256)", "0x5e03d393": "setAccountFrozenStatus(address,bool)", "0xfc687311": "betOn(int8)", "0x5bbfe9b6": "_myGroupHelper()", "0x5629c6d9": "doExecution(address)", "0xe3a9b508": "EnableDisableTokenProxy()", "0x9229c504": "new_mainPlayer(address)", "0x6f6c0244": "generateShortLink()", "0x33613cbe": "getBondBalance(address)", "0x4229616d": "collectPercentOfFees(uint256)", "0x4ed3885e": "set(string)", "0x043bb5e7": "getIdentities(address[])", "0xad2fea7c": "removeMinter(int256,address)", "0x0b7e9c44": "payout(address)", "0x17f5de95": "MAX_TOKENS_SOLD()", "0x50ea1932": "lookupISO3116_1_alpha_2(bytes)", "0x96f7807a": "getDuel2(uint256)", "0xa97ffd5e": "safeToSell(uint256)", "0x2f4ee5d4": "registerThrone(bytes,uint256,address,uint256,uint256)", "0x4c0bcfe5": "getTransferableBalance(address)", "0x0d17bc2e": "_disallow()", "0x0ca7395f": "returnFund(address,uint256)", "0x69fe0e2d": "setFee(uint256)", "0xfaf27bca": "greeter(string)", "0x0c7de59d": "edit(address,bytes,bool)", "0x16e27349": "getFeeRecipient(int256,int256)", "0x37751b35": "doTransfer(address,address,uint256)", "0x67fc1c6a": "validateProposedMonarchName(string)", "0xf59f99ee": "createNextGeneration()", "0x6be505f5": "selectWinner(bytes32)", "0xf6bd5893": "getGas(uint256)", "0x35b09a6e": "someFunction()", "0xb3aaa277": "validate(address[4],address,uint256[11],uint256,bytes,uint256)", "0x4f052648": "XaurumDataContract()", "0x117b4705": "retract(bytes32)", "0x2145e36c": "testBitSetFailIndexOOB()", "0x3d750b28": "found()", "0x1334a5e2": "eventCallback(uint8,address,address,uint256)", "0x3c2c21a0": "scheduleCall(address,uint256,bytes4)", "0x82996d9f": "rent()", "0xaf640d0f": "id()", "0xdaf22f4d": "identify(bytes32)", "0xfe4667e9": "getMaxLossAfterTrade(address,uint256,uint256,int256,int256)", "0xfc108f70": "GamblerPerAddress(address)", "0x89f4ed7a": "getLastTag(uint256)", "0xfcc11241": "addOrder(uint256,uint256,uint256,uint256,uint256,uint8)", "0x43243797": "fundsOf(address)", "0x892c0214": "NumberOfCurrentBlockMiners()", "0xb5a6c525": "extractFrozenAccountLength()", "0x1acb2719": "getNextRequest(address,address)", "0xa89a4f09": "creatorBalanceChecker()", "0x1e83409a": "claim(address)", "0x5e1d7ae4": "changeFeeRebate(uint256)", "0xb7482509": "deposit(address,string)", "0xfb47a067": "_getRevisionBlockNumber(bytes20,uint256)", "0x5dcdddd1": "testSafeToAddFix()", "0x9aa26f06": "registerBytes32(address,bytes)", "0xd085e66e": "GetPart(bytes32,uint256)", "0x2cd78450": "activateExportFeeChargeRecord(address)", "0x35d129f6": "untag(string)", "0x1a7a98e2": "getDomain(uint256)", "0x877653f0": "_storeBalanceRecord(address)", "0x446fbcd1": "CredSign()", "0xfae8f9a2": "setInitialParent(int256,int256,int256,int256,int256,int256)", "0xc1b056b0": "getNodeLeftChild(bytes)", "0x71f297cc": "XaurumToken(address)", "0xe3ffc9a3": "sendEtherToOwner()", "0xeccf1b29": "CrystalDoubler()", "0x57f4d5ec": "processDividends(address,uint256)", "0x75c589a0": "getMinimumCallCost()", "0x66772438": "computeResponse(uint16)", "0x7fefde53": "WillRegistry()", "0x8f4fb958": "calculateRandomNumberByBlockhash(uint256,address)", "0xed498fa8": "userTokens(address)", "0x5601eaea": "execute(uint256,uint256)", "0x8dd8596c": "sendDonation()", "0x15a0df43": "testThrowCreateNewRevisionNotOwner()", "0x0382c254": "CheckHash(uint8,uint8,uint8,uint8,bytes32)", "0x157f8f51": "feePaid(int256,int256,int256,int256)", "0xf00aac7f": "ArrayRR()", "0x7b7d7225": "_approve(address,uint256)", "0x54ed7b6e": "addHash(bytes)", "0x235c002d": "transferOther(address,address,uint256)", "0x7057c20d": "CFD(address)", "0xd5563f31": "createAuction(uint256)", "0x46c3166f": "testThrowRetractLatestRevisionNotOwner()", "0x4420e486": "register(address)", "0x9a969768": "distributeProfits(uint256)", "0x464f37c9": "trustedChildRefund()", "0x5d495aea": "pickWinner()", "0xdf55b41a": "owner(string)", "0x10e6e06c": "vote(bool,uint256)", "0xe7faecec": "testFailInsufficientFundsTransfers()", "0xea98e540": "proxyTransferFromToICAPWithReference(address,bytes32,uint256,string)", "0xfff78f9c": "doThrow()", "0x9bb01b5f": "ElcoinDb(address)", "0xdc6dd152": "playerRollDice(uint256)", "0x5d0be9de": "softWithdrawRevenueFor(address)", "0xcd591822": "CanaryV7Fast()", "0x36e6b92e": "taskProcessedWithCosting(uint256,uint256)", "0x7bb6a4c6": "uno(uint256)", "0x03427656": "getDefaultSoftResolutionBlocks()", "0xc1fd4339": "createMarket(bytes32,uint256,uint256,address)", "0xeb95b7d5": "Bounty(address,address)", "0x4dd49ab4": "get(bytes,uint256)", "0xfa6d373c": "LeaderHash()", "0x8c8d98a0": "toTimestamp(uint16,uint8,uint8)", "0x9a79f4a8": "testFailHeaderInsufficientFee()", "0xdd90c403": "getAccountFeed(address,uint256,uint256)", "0x58e59c32": "get_entry(uint256,uint256,uint256)", "0xfd747c0b": "rsaVerify(bytes,bytes,uint256,bytes)", "0x0f4cf692": "numMessages()", "0x18433bb7": "DrawPrepare()", "0x1dea0c57": "getRealBet(uint256)", "0x7d60e343": "getFileListSize()", "0xd24ddcfe": "buyKissBTC()", "0xa055fe64": "_projectCommitNew(address)", "0x5f17114e": "TimeDeposit()", "0x85fe0448": "testThrowRestartNotUpdatable()", "0x901717d1": "one()", "0x528fd7b0": "manualPayExpiredDuel()", "0x85952454": "newOwner(address)", "0xf34c7010": "commitSecurity(address,uint256,uint256)", "0x3bf2313d": "__transferToICAPWithReference(bytes32,uint256,string)", "0x67b830ad": "fillOrder(uint256)", "0x73fac6f0": "confirmReceived()", "0xf1b3f968": "getRaceEndBlock()", "0xf99fc046": "dEthereumlotteryNet()", "0xb409da05": "logDoubleIndex(bytes,bytes,bytes,uint256)", "0x9e920587": "testOwnedAuth()", "0x8e7cb6e1": "getIndex(uint256)", "0xe2f8a017": "payInstallment(uint256)", "0xac3e6b2f": "testSetNotRetractable()", "0x8fbc3ecd": "BUFFER()", "0x4b729aff": "buyNumber(uint256)", "0x166c4b85": "len(bytes32)", "0x6299f8cf": "stop(uint256)", "0xd767aee0": "bbb()", "0x29090202": "Resolver(address)", "0xcc2c2bcf": "MotionFactory(string,string,string)", "0xfd260dfc": "getCertificationDbStatus(address)", "0x30aceb89": "validateRequestParams(address[3],address,uint256[11],uint256,bytes,uint256)", "0xd11f13df": "numberOfParticipantsWaitingForPayout()", "0xd05c78da": "safeMul(uint256,uint256)", "0x69953501": "setUtils(address)", "0xff7f5f2a": "EtherizationUtils2()", "0xde4b3262": "setBasePrice(uint256)", "0x6cf9cc58": "registerResource(bytes,uint256,bytes,string)", "0x7ac37d58": "ownerTransferEther(address,uint256)", "0x0121b93f": "vote(uint256)", "0x07b6f631": "testTestHarnessAuth()", "0x869b3f6a": "testThrowsRetractNotOwner()", "0x18253234": "ticketsAvailable()", "0x5581004d": "createThrone(bytes,uint256,uint256,uint256,uint256)", "0x7102c138": "Standard_Token(uint256)", "0xce5566c5": "cash(uint256,uint256)", "0x16a25cbd": "ttl(bytes32)", "0x0c9fcec9": "setApproval(address,address,uint256)", "0xe6d95eb8": "DSAuthorized()", "0x34c0d654": "setPackageDb(address)", "0x0ee79fb3": "closeReferendums()", "0xe2cdd42a": "vote(uint256,address,bool)", "0xd3f297d6": "claimLiquidityReward()", "0xf37b437b": "scheduleCall(address,bytes,uint256,uint256,uint8,uint256,uint256)", "0x2090cf8b": "consultBalance(address)", "0xc9296d14": "scheduleTransaction(address,uint256,uint256,uint256,bytes)", "0x7993e5c2": "Devcon2TokenForTesting()", "0x268bb78e": "propose(address,bytes,uint256,uint256)", "0x2b16b56a": "setIndex(uint256,uint256)", "0x6d15f208": "reject(string,uint256,uint16,address,uint256)", "0xc4ff3614": "Wallet(address[],uint256,uint256)", "0xb47d89ad": "Details()", "0x0ae08793": "confirmAndCheck(bytes32)", "0x061e494f": "getBet(uint256)", "0x314e99a2": "abdicate()", "0xe487eb58": "getOwner(bytes20)", "0x7ee65635": "LookAtDepositsToPlay()", "0x9e9d3aa4": "FirstBloodToken(address,address,uint256,uint256)", "0x4dfd1b02": "setUint8(int8,uint8)", "0x82fbdc9c": "register(bytes)", "0xa8b60b93": "ackMsg(uint256,string)", "0x081e806d": "PayOut(uint256)", "0x8bab8791": "testPkgUpdate()", "0xc262df45": "isKnownRequest(address,address)", "0x4123cb6b": "m_numOwners()", "0x62be3172": "Message(address,address,address,string)", "0x0d368fee": "deverify(address)", "0x5f1231ea": "getMemberInfo(address)", "0xa07daa65": "newRequest(uint256)", "0xa4406bcd": "placeSellOrder(uint256,uint256)", "0x5b7d47a9": "betOnColor(bool,bool)", "0x9c6034a7": "sendIfNotForked()", "0x26a4861c": "CROWDFUNDING_PERIOD()", "0xbaac5300": "createTokenProxy(address)", "0xfc72c1ef": "ERC20Base(uint256)", "0x316b08a0": "scheduleTransaction(address,bytes,uint256[7],uint256)", "0x0b590c6b": "SingularDTVToken()", "0x750e443a": "voteAgainst(uint256)", "0xfc7b9c18": "totalDebt()", "0x7ff9b596": "tokenPrice()", "0xd67cbec9": "release(uint32,uint32,uint32,bytes20)", "0x553cc48d": "Player(string)", "0x579cdf17": "getAdminName(address)", "0x7e1c4205": "query2(uint256,string,string,string,uint256)", "0x54107401": "declareLove(string,string)", "0xea4ba8eb": "getOutcome(bytes)", "0x9b5adea2": "setMinter()", "0x185061da": "undoIt()", "0x90c3a370": "AuctionMaster()", "0xbd02e4f6": "calcRandomNumberAndGetPreliminaryGameResult(uint256,uint64)", "0xbc126ba1": "totalCents()", "0xa3747fef": "register(bytes,bytes)", "0x805210b7": "AmIPlayer2()", "0x4e05ded6": "ClassicCheck()", "0xec2ac54e": "deposit(address,uint256,bytes32,uint256)", "0x49c15bd9": "Purchase()", "0x87bb7ae0": "getTicketPrice()", "0xf2f03877": "commit(uint256,bytes32)", "0x167d3e9c": "SetOwner(address)", "0x5c634241": "CanaryV6()", "0xba15e52e": "getInfo(bytes20)", "0x06c1df7b": "checkBetColumn(uint8)", "0xf7bc39bf": "owns(address)", "0x27b752b8": "sha3HexAddress(address)", "0x5ac801fe": "setName(bytes32)", "0x1ae460e5": "isInPool()", "0x85c7a953": "WithdrawFullBalanceFromBankAccount()", "0x755b5b75": "setNumUnits(uint256,uint256)", "0xaefc8c72": "unsealBid(bytes32,address,uint256,bytes32)", "0xfab43cb1": "getPongAddress()", "0x9e997121": "getConfigAddress(bytes)", "0xda2b7416": "testBitsAndFailIndexOOB()", "0xd0e30db0": "deposit()", "0x4a0d89ba": "getSwap(uint256)", "0x63a9c3d7": "verify(address)", "0x337b1cf9": "setIpfsHash(bytes)", "0xbaf00f76": "removeAllSubUsers()", "0x1b370abb": "getPreviousNode(bytes)", "0x741e2345": "registerMany(address,uint256,int256,uint256,bytes20,address,bytes)", "0xb3760c80": "orderMatch(uint256,uint256,uint256,int256,uint256,uint256,address,uint8,bytes,bytes,int256)", "0x73ffd969": "setMap(uint256,uint256,uint256)", "0x50b44712": "tickets(uint256)", "0x6a9d2afd": "playToWinTest(uint256)", "0x644998ae": "maintain(int256,uint256,uint256)", "0x2203ab56": "ABI(bytes32,uint256)", "0x9c67f06f": "registryStarted()", "0x93423e9c": "getAccountBalance(address)", "0x524e4e61": "testDistribution()", "0xa17042cc": "getMsgValue()", "0x4f9d719e": "testEvent()", "0xcbcaacab": "checkTransferWithReference(address,uint256,string)", "0x1bcf5758": "getOccupies(uint8)", "0x1d4b0796": "updateTxStats()", "0xd173707d": "hasPhysicalAddress(address)", "0xa54a2b8b": "testBlockHashFetch()", "0xc51bf934": "CEILING()", "0x0e54b872": "registerUser(string,address)", "0xba51a6df": "changeRequirement(uint256)", "0x6bd92f7c": "activateAllowanceRecord(address,address)", "0x90daaf67": "getMinimalDeposit()", "0x85d5c971": "logTransfer(address,address,bytes32)", "0x8b9e5385": "MeterSlock(uint256,uint256,address)", "0x7bcd7fad": "getRecordAtIndex(uint256)", "0x8e035ac1": "BetOnHashV82()", "0x5dbe47e8": "contains(address)", "0x21bb79fe": "luckyDogInfo()", "0xdd467064": "lock(uint256)", "0xa4beffa7": "increaseInvestment()", "0x8400c307": "isRecipientAllowed(address)", "0x0965bf7d": "processProposals()", "0x4b5dc8cb": "roundMoneyDown3SFExt(uint256)", "0x777feff5": "getCertificationDbAtIndex(uint256)", "0x9462eae5": "ChangeContractor(address)", "0x4c6d1d9e": "checkOutTag(string)", "0x09a399a7": "personAdd(string,int256,int256,string)", "0x31380c89": "TokenSale()", "0xd0bff051": "testSetBalanceDb()", "0x4c738909": "getMyBalance()", "0xb2310cc5": "payRequstedSum(uint256,uint256)", "0xda3c300d": "currentFee()", "0x6ed7c013": "move_monsters()", "0x4f073130": "takeOrder(bool,uint256,uint256)", "0x6860fd58": "Fees(uint256)", "0x214c9d50": "WritedrawStatus()", "0xf314bf46": "setReleaseDb(address)", "0x561a4873": "buyAd(string,string,string,uint256,uint8,address)", "0xf249cf19": "get_all_challenges()", "0xbbed7177": "getContentTimestamp(uint256)", "0xc864e760": "recordCommissionEarned(uint256)", "0x1896f70a": "setResolver(bytes32,address)", "0xfd35e71b": "entryPayoutDue(uint256)", "0x5a58cd4c": "deleteContract()", "0xb29b5366": "setRentable(bool)", "0xad5c613d": "purchase(bytes)", "0x6949a058": "sendOwnerEther()", "0xc03e382f": "calculateShare()", "0xf5bade66": "setDeposit(uint256)", "0x384e5018": "etherandomCallbackAddress()", "0xf06186c7": "testReality()", "0x677342ce": "sqrt(uint256)", "0x10e89b22": "remove_deal(uint32)", "0xf2b445ad": "rowround(uint256,uint256)", "0xd7ed7453": "redeemWinnings(uint256)", "0x92b4bb50": "rps()", "0x089327de": "MyToken()", "0x87ebd76c": "initContract(string,string,uint256,uint256)", "0xdbc45228": "newProposal(address,uint256,bytes,bytes)", "0x6b1feeeb": "get_my_sig()", "0x6837ff1e": "newContract(address)", "0x9f181b5e": "tokenCount()", "0x92ba4ba6": "GridMember(string,uint256,bool,address,address)", "0x45755dd6": "returnFunds(uint256)", "0xb4b9d1f1": "lookup(uint256,uint256)", "0x98024f18": "testThrowsTransferDisableNotEnabled()", "0x9e7b8d61": "giveRightToVote(address)", "0x8112821f": "EthVentures()", "0xe65d6b49": "getCommission()", "0x068c966b": "DrawDetails(uint256)", "0x9bb5239a": "CheckPrize(address,uint256)", "0xff08d2b0": "PayMiners()", "0x9be1fcee": "BankOwner_DisableConnectBankAccountToNewOwnerAddress()", "0x5f972df8": "_jDiv(uint256,uint256,uint256,uint256)", "0xfe8b6642": "setEnforceRevisions(bytes32)", "0xe4cc1161": "seedWithGasLimit(uint256)", "0x5fd4b08a": "getName(address)", "0xaa51793c": "isLosingBet(uint256)", "0x31757f2e": "collisionCount()", "0xe1f5ebc5": "_projectAddNew(address,uint256)", "0x64228857": "getRevisionCount(bytes32)", "0x5ca3400c": "WithBeneficiary(address)", "0x39f4debc": "fillOrderAuto()", "0xcc2c5453": "add_sword(uint16)", "0x0a19b14a": "trade(address,uint256,address,uint256,uint256,uint256,address,uint8,bytes32,bytes32,uint256)", "0x4d207d9a": "identify(address)", "0x3e83fe36": "getMyShares()", "0x8bb0faee": "setRef(string,string)", "0x38bbfa50": "__callback(bytes32,string,bytes)", "0xcee6f93c": "getResultOfLastFlip()", "0xbbba3333": "safer_ecrecover(bytes32,uint8,bytes32,bytes32)", "0x8e19899e": "withdraw(bytes32)", "0xd8389dc5": "hash(bytes32)", "0x8a4068dd": "transfer()", "0xea9e107a": "acceptRegistrarTransfer(bytes32,address,uint256)", "0x8f4ffcb1": "receiveApproval(address,uint256,address,bytes)", "0xf67abd87": "entryDetails(uint256)", "0x67acd805": "lowerMinWager(uint256)", "0xec035393": "_getAllRevisionBlockNumbers(bytes20)", "0xbd858288": "orderMatch(uint256,uint256,int256,uint256,uint256,address,uint8,bytes32,bytes32,int256)", "0x112c7075": "ManualDeposit()", "0xd81a91e9": "get_party2()", "0xc52bd836": "setDappOwner(bytes32,address)", "0xf84f420b": "getRandomNumber(address,uint256)", "0xcfe9a7b8": "getPackageName(uint256)", "0xe97dcb62": "enter()", "0x48db5f89": "player()", "0x6bdbf8e6": "concat()", "0x3c959aca": "CheckTickets()", "0x3aa5f4f7": "changeTokenSettings(uint16,uint256,uint256)", "0xac20902e": "NormalizeMoney()", "0x2fac1d36": "isReadyFor(address)", "0xdcaa5620": "findNextWeekday(uint256,bytes)", "0xf9909915": "bulkStoreHeader(bytes,int256,bytes,int256)", "0xcd2cdd5b": "claimOwnershi()", "0xcfae3217": "greet()", "0xf5c8d71b": "forceMove(address,address,uint256)", "0x9718b524": "newTreasury(address)", "0xd0679d34": "send(address,uint256)", "0x1301ee02": "transferringETC(address)", "0x60eb2826": "Badge()", "0x0d0c2008": "TwoAndAHalfPonzi()", "0x17e1bfb7": "addInstitution(address,string)", "0x06394c9b": "changeOperator(address)", "0x80c951bf": "currentClaimPriceInFinney()", "0xd063f55f": "toLittleEndian(uint64)", "0x53f818d6": "checkBetValue()", "0x9205fbc2": "testAuthorityAuth()", "0x3e4c0c82": "player_1(uint256)", "0xe571c35e": "ReverseRegistrar(address,bytes32)", "0x24804cef": "Deed()", "0x622e88cb": "testBitsXorSuccess()", "0xdfca2f53": "LookAtPrizes()", "0xafa293d4": "getSource()", "0x755f99c2": "AddNewSmallContract(address)", "0x7137ed47": "setProxyContract(address)", "0x835b42fc": "testThrowUpdateLatestRevisionNotUpdatable()", "0xdd34e129": "PriceTest()", "0xedb27f4e": "switchWizard(address)", "0x1c5d9faa": "setNickname(string)", "0x4746cef8": "_confirmAndCheck(address,bytes32)", "0x189c94ae": "testFallbackStaticSig()", "0x0cb749b6": "FutureBlockCall(address,uint256,uint8,address,bytes,bytes,uint256,uint256,uint16,uint256,uint256)", "0x2b25a7e4": "giveKudos(address,uint256)", "0x294f3d4d": "setUpLimit(uint256)", "0x2cce81aa": "getBlockHash(int256)", "0x4cd11943": "NewManualInvestor(address,uint256)", "0x7eaef50c": "over()", "0x8ac4e1d8": "TemperatureOracle()", "0xf108a7d2": "withdraw(uint256,address,string)", "0x00a676f9": "getExists(bytes32)", "0xb8d4efb5": "validate_percent(uint8)", "0xc7489441": "closeMarketMaker(uint256)", "0x3def449b": "FipsNotary()", "0x5687f2b8": "emitApproval(address,address,uint256)", "0xa9f8ec6c": "AlarmClockTipFaucet()", "0xd8e5c048": "scheduleCall(address,uint256,uint256)", "0x135217e7": "requires_depth()", "0x0aa46c12": "testClearBitFailIndexOOB()", "0x77d32e94": "ecrecovery(bytes32,bytes)", "0xace523c4": "createReferendum(string,string,uint256,uint256)", "0x5ca8bc52": "returnIt()", "0xdb318833": "_ecAdd(uint256,uint256,uint256,uint256,uint256,uint256)", "0x623195b0": "setABI(bytes32,uint256,bytes)", "0xd7bb99ba": "contribute()", "0x2880ebe7": "underdogPayoutMarkup()", "0x4ce01d86": "totalBetValue()", "0x837a7ba5": "testThrowTransferDisabled()", "0x386fcda8": "testCreateCostToken()", "0x0e850239": "scheduleCall(bytes4,bytes)", "0x163aba3c": "getQueryFee()", "0x9941e3d0": "setCallAddress(address)", "0x23637e60": "votePrice(uint256,bool)", "0xde78e78a": "tokenLaunched()", "0xe3579ea5": "publish(string,string,address,uint256)", "0x59a547b0": "recordCommission(uint256)", "0x1aa86370": "updateXIPFSPublicKey(string)", "0x97fcb54e": "transfer_eth(address,uint256)", "0x05d2f92a": "check_depth(address,uint256)", "0xdfcbb794": "TrustFund(address,uint256,address)", "0xb7dd1d17": "getAllRevisionBlockNumbers(bytes32)", "0x75862df4": "TokenWithEStop(address)", "0xd22057a9": "register(bytes32,address)", "0x29d017b5": "TestWithConstructor(address,uint256[])", "0xd216d55d": "etherandomExec(bytes32,bytes32,uint256)", "0xfba06849": "fipsPublishDataMulti(bytes20[],bytes)", "0xa37fd390": "setHomeAdv(uint256,string)", "0xcf2e3efc": "GetBankAccountBalance()", "0x423e7e79": "_dispatchEarnings()", "0x74087040": "testBitsNotEqualSuccess()", "0x61d585da": "state(bytes32)", "0xcfb3a493": "getMyBounty(uint256)", "0x5afeb106": "Sqrt()", "0xf9e84395": "unexempt(address)", "0x5669c94f": "issueToken(address,string)", "0x19b05f49": "accept(uint256)", "0x3ae01f84": "USDOracle()", "0x8c172fa2": "getEvent(bytes32)", "0x4671e65e": "proposeEmergencyWithdrawal(address)", "0xc27d7721": "create(uint256[101][])", "0x5c52e51e": "processPayout()", "0xf7a0fa0a": "getShareDistribution(bytes)", "0x31a3a506": "closeFunding()", "0x465e759b": "testRestart()", "0xb60d4288": "fund()", "0x52200a13": "getNumHolders(uint256)", "0xf2c298be": "register(string)", "0x7bc25372": "UserCheckBalance(address)", "0x104d5fdd": "getPriceProxy()", "0x447cd682": "scheduleTransaction(address,uint256)", "0xa045fdff": "scheduleCall(address,bytes)", "0x4757f1d2": "redeemAllOutcomes(uint256,uint256)", "0x5e855f14": "Dice(uint256,uint256,uint256,uint256,uint256,uint256,uint256,uint256)", "0x5d3c1d4c": "_getRequest(uint256)", "0x416c8701": "beyond()", "0x63aea3e0": "PlayerInfo(uint256)", "0xa163a624": "Test()", "0xedede601": "testBalance()", "0x13651124": "WithdrawAmountFromBankAccount(uint256)", "0x893d20e8": "getOwner()", "0x90b5561d": "insert(uint256)", "0xf9983a12": "GetMyInvestmentBalance()", "0xb71c47a2": "surrender()", "0xf2a75fe4": "empty()", "0x804ba97a": "tryGet(bytes)", "0x6506b623": "rotateBitsLeft(bytes,uint256)", "0x3ef8ec78": "announce_numbers(uint8,uint8,uint8,uint8,uint32,bytes32)", "0x73abecbb": "kill1()", "0xd5171523": "euroteambet()", "0x8e52cb51": "getRecordKey(bytes,bytes,bytes)", "0x7adbf973": "setOracle(address)", "0x4aa16737": "enter(uint8)", "0xf0cb556c": "updateLatestRevision(bytes32,bytes)", "0xbc8fbbf8": "nuke()", "0xc8e55708": "oraclize_query(string,string[1])", "0x7332b520": "getRewardsCount(uint256)", "0xf7c2b38c": "seconds_left()", "0xba344743": "_rawTransfer(address,address,uint256)", "0xcab5c0f1": "_incrementState()", "0xe044c2de": "newLoan(bytes,address,uint256,uint256,uint256,uint256,uint256,uint256)", "0x76abc03b": "getShareDistribution(uint256)", "0xf0da84f8": "getTransferable(bytes32)", "0xcde99727": "calculateROI()", "0x155dd5ee": "withdrawFunds(uint256)", "0x8b543b80": "maximumCredit(address)", "0x340ddda6": "MeatConversionCalculator(uint256,uint256)", "0x524f3889": "getPrice(string)", "0x84054d3d": "cashout()", "0x856f3080": "WhatWasMyHash(bytes32)", "0x0386a016": "closeProposal(uint256)", "0xcebce72d": "token(uint64)", "0x7f480f9d": "processDividends(address)", "0x11d12402": "testEasyPropose()", "0x2f695053": "getCertifierAtIndex(uint256)", "0xd9fcb31f": "comm_channel()", "0x141c4e60": "challenge(uint256,address)", "0x4ff13571": "x2()", "0xa01bc729": "monster_attack(uint256)", "0x2fe9541f": "addIssueBounty(string,uint256)", "0x5503a659": "smallponzi()", "0xdfc765dc": "getMatchers_by_index(uint256)", "0x0b7623ba": "abs(int8)", "0xcde0a4f8": "setRegulator(address)", "0xf95b5a58": "getInitialAnswer(uint256)", "0x66b42dcb": "register(address,string,uint256,string)", "0x9f2ce678": "vote(bytes32,bool)", "0xb3559460": "getGenerationSize(uint256)", "0x5ddae283": "transferRegistrars(bytes32)", "0x59dc735c": "getClient()", "0xc258ff74": "List()", "0x4fb4bcec": "step5()", "0xed684cc6": "trigger(uint256)", "0x09405164": "getOpenCandidates()", "0x5c5d625e": "getProof()", "0x9f5f7c7f": "tokenSplit(address,address,address,uint256)", "0x0e38901a": "unvault(uint256)", "0x75160a20": "pay_royalties()", "0x15398afe": "compareNumericStrings(string,string)", "0xbbd8b602": "getOracleOutcomes(bytes,address[])", "0xebae35a6": "DAOTokenCreationProxyTransferer(address,address)", "0x15abc160": "createValidatedRequest(address[3],address,uint256[11],uint256,bytes)", "0x830953ab": "claimAmount()", "0x26b916b4": "Set_Interest_Rate(uint256)", "0x1fb291cb": "registerInt(address,int256)", "0x505fb46c": "add(uint256,uint256,uint256)", "0xf00d4b5d": "changeOwner(address,address)", "0x034187fd": "setEthToCents(uint256)", "0x94d9cf8f": "CreateProxyWithControllerAndRecovery(address,address[],uint256,uint256)", "0xacbf98a7": "endsWith()", "0xfc2c3e08": "getIteration()", "0x6d7da0b1": "MyContract()", "0x1558ae4d": "Etheroll()", "0x42cbb15c": "getBlockNumber()", "0x29cd62ea": "setPubkey(bytes32,bytes32,bytes32)", "0x2030f721": "num_objects()", "0xbc08afd9": "WebOfTrustToken(address,uint256)", "0x8cdfb1e6": "transferIfHF(address)", "0xa0bd3c0f": "scheduleCall(address,bytes,bytes,uint256)", "0x4e71e0c8": "claimOwnership()", "0xc1cc0775": "calculateFeeDynamic(uint256,uint256)", "0x50c42921": "replicate()", "0x25495998": "getMinimumConsumerDeposit()", "0x3d8e2947": "getFileAddress(bytes)", "0x1f794436": "getBlockHeader(int256)", "0x7d380265": "addOptionChain(uint256,string,uint256,uint256,bytes32,address,int256[])", "0xec0b4153": "getMoneyness(int256,uint256,uint256)", "0x01775f23": "_closeBooks()", "0x9d063ed8": "FIFSRegistrar(address,bytes32)", "0x083b2732": "callback()", "0xa1920586": "offer(uint256,uint256)", "0x19c47214": "getBlockVersion(bytes)", "0xa293d1e8": "safeSub(uint256,uint256)", "0xfe73e3ec": "preliminaryGameResult(uint64)", "0xf004b12b": "CrowdFund(uint256,uint256,address)", "0x54d03b5c": "changeFeeMake(uint256)", "0x9dbc4f9b": "participantDetails(uint256)", "0xd002462b": "setDeploymentFee(uint256)", "0xed2b8e0b": "getPoolRotationDelay()", "0xf697a0ed": "ppb(uint256,uint256)", "0x964c836c": "receiveExecutionNotification()", "0x5e0e2957": "dumpOut()", "0x33232609": "blake2b(uint64[],uint64[],uint64)", "0x88f53db1": "getDataRequest(uint256)", "0x0caf9d39": "testFailTooManyMembers()", "0x1f2e886c": "testControllerTransferTriggersEvent()", "0x586a69fa": "getMaximumStackCheck()", "0xf64fca2e": "getNodeId(bytes)", "0x8b95ec0c": "testAddBalance()", "0x32e7c5bf": "B()", "0x57e6c2f4": "isAuthorized()", "0xb2f2588b": "sortNumbers(uint8[3])", "0xe95bee59": "checkFormat(string)", "0xcef887b0": "storeBlockWithFee(bytes,int256)", "0xbe26733c": "Kill()", "0xe82f7dd4": "testThrowsRetractLatestRevisionNotUpdatable()", "0xfd7ac203": "TestToken()", "0x6d052f56": "testBitsSetSuccess()", "0xf65c4d42": "Participate(uint256)", "0x432c685f": "trustClient(address)", "0xb0171fa4": "getCurrentGenerationId()", "0x03251a08": "setMin(uint256,uint256)", "0x58d3b617": "Notifier(string)", "0x15dacbea": "transferFrom(address,address,address,uint256)", "0x83f7b8e1": "getNumberOfPhotos()", "0xf1076703": "getVerificationId(address,bytes,bytes)", "0x752a3df6": "transferIfHardForked(address)", "0xaf93afdd": "Shipment(bytes,bytes,bytes,bytes,string,bytes,uint256,uint256,bytes,bytes,uint256,uint256,string,bytes,bytes,bytes)", "0x7fcf532c": "Withdrawal(address,uint256)", "0x72ea4b8c": "getNumInvestors()", "0x7df52ba8": "Arbitrate(uint32,uint32,bool)", "0xea25f24a": "TokenCreation(uint256,uint256,address)", "0xf74100e3": "getBits(bytes)", "0x63bfe3d8": "SkillBeatsLuck()", "0x80599e4b": "remove(string)", "0x6c050eae": "look()", "0xf9a794ad": "EtherLovers()", "0x501e8428": "getPart(bytes,uint256)", "0xf446c1d0": "A()", "0x2d67bb91": "World()", "0xeef547d7": "deal_details(uint32)", "0xa6cb9e64": "scheduleCall(address,bytes,bytes)", "0x659010e7": "m_spentToday()", "0x9b0b9c07": "acceptBankDraft()", "0x315e2f1b": "setTestString(string)", "0x69bcdb7d": "getCommitment(uint256)", "0xe1376da2": "updateFirstActiveGamble(uint256)", "0xc70d169d": "answerRequest(uint256,bytes)", "0xa094a031": "isReady()", "0x74e60a48": "cancelOrder(address,uint256,address,uint256,uint256,uint256,address,uint8,bytes32,bytes32)", "0x1b5ee6ae": "mintToken(int256,address,uint256)", "0x7f791833": "toTimestamp(uint16,uint8,uint8,uint8)", "0x5e6ad49d": "_setCosignerAddress(address)", "0xb2e85b67": "getPlayerStatus(address,uint256)", "0x30a24abd": "create(bytes4,bytes)", "0x9f0e3107": "get_timestamp(bytes32)", "0x33397816": "withdrawAccountBalance(address)", "0x0da3e613": "EthFactory()", "0xa5f3c23b": "add(int256,int256)", "0xc1829a14": "testFailTooFewConfirms()", "0x5322f0c5": "getChannelOwner(bytes)", "0x0fd1f94e": "firstClaimBlock()", "0x639d57f2": "testGetBitSuccess()", "0xd3aa22c7": "transferTLA(string,address)", "0x86314af9": "BetOnHashV84()", "0x3059ac30": "Escrow(address,address)", "0x0efafd01": "getPlayerGainLossOnLastFlip()", "0x49bf66d3": "addRegistryIntoNameIndex(address)", "0x3af39c21": "undefined()", "0xb660d77c": "switchMPO(address,address)", "0x0fdb468f": "fee(uint64)", "0x72479140": "CreateTicket(address,uint8,uint8,uint8)", "0xe79a198f": "unregister()", "0x688dcfd7": "setProofType(bytes1)", "0xfb9a4595": "GitHubBounty()", "0xd02a9889": "getDateOfFirstPayment()", "0xca35271c": "numDebtors(address)", "0x08714bfa": "TestContract()", "0x16d960b5": "createThing(bytes32[],bytes32[],uint88)", "0x17961d0f": "ord()", "0x62ba9687": "toTimestamp(uint16,uint8,uint8,uint8,uint8)", "0xbba91ea7": "getHomeadvIndex(uint256)", "0xb45105b2": "post(string,address,string)", "0xa7e25683": "testShortOutput()", "0xa068e8d3": "convict(uint256,uint256,uint256,uint256)", "0x09a69f57": "getRewardAmount()", "0xe7334156": "processNextDeposit(address)", "0x62ee6d29": "changeHashtoLowOrHigh(uint256)", "0xa80d4e9a": "EtherAuction(uint256)", "0x18489f50": "thingExist(bytes32[])", "0x5323c6cf": "calcCostsBuying(bytes,uint256,uint256[],uint8,uint256)", "0x9a777d5d": "buyCoins()", "0x36344022": "testAuthorizedTransfer()", "0x8b863095": "setContractorProposal(uint256,bytes)", "0xd10e99fe": "mint(int256,bytes32)", "0x12c82bcc": "sendRobust(address,uint256)", "0x0bf75567": "voteSuperQuorum(uint256,bool)", "0xf5f6ea26": "EthOne()", "0x14918f5e": "performInitialWithdrawal()", "0xdf32754b": "owned()", "0x1632070c": "setRewardDivisor(uint256)", "0xe50a3bb1": "oraclize_query(string,string[],uint256)", "0x9b619d3b": "_deleteAllPackedRevisionBlockNumbers(bytes32)", "0x3b751f7f": "claimThroneRP(string)", "0xd55ec697": "upgrade()", "0x43703b0e": "getEventData(bytes)", "0xd1bf9aba": "nextRune()", "0x76849376": "addNode(bytes32,address)", "0xfd958695": "isAlphaNumeric(bytes1)", "0x9fa5e5d5": "setARKowner(address)", "0x6e2cde85": "drawPot(string,string)", "0x4d5b080c": "scheduleTransaction(uint256,address,uint256)", "0xf1e4a540": "unsetCoordinator()", "0x364f4896": "emission(address,address,uint256,uint16,uint16)", "0x9183fd01": "getSeedPrice()", "0x9832ee65": "resultsWeightedByTokens()", "0xdd5244b4": "testTryProxyCallWithValue()", "0xec2ec781": "testFailGetUnsetToken()", "0x7db9743b": "Registry()", "0x1adf2d1a": "Offer(address,address,bytes,uint256,uint256,uint128,uint256)", "0x1ba326c4": "calcShare(uint256,uint256,uint256)", "0x3ced842b": "make_offer()", "0xea295ec2": "calcRevenue(address)", "0x3c894475": "scheduleTransaction(address,bytes,uint8,uint256[6],uint256)", "0x477bddaa": "setContractAddress(address)", "0xed180443": "getUint256(int256)", "0xee725d44": "toChannelID(string)", "0xa4898fd5": "deployContract(address)", "0x75ee85bd": "salsa20_8(uint256,uint256)", "0xbe7c29c1": "getNewDAOAddress(uint256)", "0xfe01f1ff": "TokenTester()", "0x6103d915": "Winners(uint256)", "0xa30b5c69": "AttributeModel()", "0x81064e2d": "getCreditorAmounts()", "0x23584a21": "initStats(string,address,uint256)", "0xe2894a8a": "OwnerAnnounce(string)", "0xa84c5330": "createNewRevision(bytes20,bytes)", "0xb742398b": "trade(address,uint256,bytes,address,uint256,bytes)", "0x3211bb90": "OwnerAddFunds()", "0xa0befa94": "getStake(uint256,uint256)", "0x6dc3edcf": "executeExecutable(uint256,uint256)", "0x17e875e3": "Transparancy()", "0x6939864b": "lotteryState()", "0x3b107682": "DualIndex()", "0x51b3d7b9": "_transferWithReference(address,uint256,string)", "0xdf7cec28": "cancelBid(bytes32)", "0x1e74a2d3": "getMinimumEndowment()", "0x39b333d9": "Play(uint8,uint8,uint8,uint8)", "0xcbd08c8c": "config(uint256,uint256,uint256,uint256)", "0xca6ad1e4": "setCustomGasPrice(uint256)", "0x510f44cb": "TestFactoryUser()", "0xcee6ee38": "aEthereumlotteryNet()", "0x11610c25": "bet()", "0xb73405a9": "roundMoneyDownNicely(uint256)", "0xb8851fea": "endDateStart()", "0xa4325485": "getCreatorBalance()", "0x2c181929": "getChainWork()", "0xffb4c857": "_confirmAndCheck(bytes32)", "0x9e66cd38": "free(uint64)", "0x44e43cb8": "depositRevenue()", "0xa553a597": "configure(uint256,uint256,uint8,address)", "0xc47f0027": "setName(string)", "0x565a2ecf": "classicTransfer(address)", "0x1da0fb1b": "updateSettings(uint256,uint256,uint256,uint256,uint256,bool)", "0xa5ebf389": "getMoneyTotals()", "0x7f445c24": "subRegistrar(string)", "0x9ad4f98e": "BlocksureInfo()", "0xd6b4ec12": "getDailyWithdrawalLimit()", "0xe0886f90": "at(uint256)", "0x5dc77e26": "andThen(string,address)", "0xe7d50e5c": "FarmShare()", "0x3f2965f0": "registerSeller(address)", "0x85b73d3c": "testCreateNewRevision()", "0x49437210": "getUpdatable(bytes32)", "0xe1a9109d": "setSeedPrice(uint256)", "0x95978868": "strConcat(string,string,string,string,string)", "0x511b1df9": "addr(string)", "0xc5b1d9aa": "newRound()", "0xecf6eb22": "setConfigAddress(bytes,address)", "0x9a9c9c53": "DepositToBankAccount()", "0x27ea6f2b": "setLimit(uint256)", "0xd2dc0869": "add(string,uint256,string,string,address)", "0xc86a90fe": "sendCoin(uint256,address)", "0x5dfc2e4a": "noop()", "0xd81e8423": "get(address,address)", "0x4cad42d3": "testWager()", "0xd120a284": "getBytesFromNumbers(uint8[3])", "0x991ffd4e": "scheduleCall(address,bytes,bytes,uint256,uint256,uint8,uint256)", "0x60c311fd": "doBurnFromContract(address,uint256)", "0xbb6a0853": "GreedPit()", "0xc27b2c2d": "collectEarnings()", "0x446294ad": "multiAccessGetOwners()", "0x5bec9e67": "infinite()", "0x47e7ef24": "deposit(address,uint256)", "0x8d216186": "roll(uint256,bytes32)", "0xdf300b46": "getThing(bytes32[])", "0x5a6c787e": "updateWithMPO()", "0x1f2dc5ef": "divisor()", "0x421aeda6": "Set_your_game_number(string)", "0xba1162d7": "getFmLength()", "0x853255cc": "sum()", "0x20768ee8": "getProposalID()", "0xf5c57382": "nameOf(address)", "0x4e417a98": "callData()", "0xc90d080a": "registerEvent(bytes)", "0x0b1e400a": "_transferFromToICAPWithReference(address,bytes32,uint256,string)", "0xe420264a": "g(uint256)", "0x8a00a82f": "withdrawRewardFor(address)", "0x06638e92": "GetNumbersFromHash(bytes32)", "0xf63da25b": "Emailer()", "0xc01706dd": "getContentByRank(address,uint256,uint256)", "0xe1108706": "rfind()", "0xffd10e07": "enterPool(address)", "0xc4254c7b": "CoreWallet()", "0x30e0789e": "_transfer(address,address,uint256)", "0x992ae976": "isSafePunctuation(bytes1)", "0x4afce471": "test_requires_depth(uint16)", "0xda7fc24f": "setBackend(address)", "0xeb7402f5": "multiAccessHasConfirmed(bytes32,address)", "0x6c1a5b8c": "TOKEN_TARGET()", "0xb3a2a999": "nextWithdrawal(bytes16)", "0x4a420138": "scheduleHeartbeat()", "0xb1233451": "setTerm(uint256,string)", "0x266710ca": "manualUpdateBalances_only_Dev()", "0x98866c1a": "personUpdateDOD(uint256,int256)", "0xaa6be303": "debtors(address)", "0xda5c0a7c": "testDisown()", "0x8757a2cd": "test_depth(uint256,uint256)", "0xe1bedf2a": "AlarmTester(address)", "0x5dcbac7a": "registerBytes(address,bytes)", "0xa587da29": "setPackage(bytes,uint8,uint8,uint8,bytes)", "0xc3da42b8": "c()", "0x4b8772c1": "buyUnit(uint256,uint256)", "0x67f12ecf": "validate(address,uint256,uint256[101][])", "0x0bd089ab": "MyAdvancedToken(uint256,string,uint8,string,address)", "0x32829a23": "OpenBankAccount()", "0xdea06188": "NumberOfBlockAlreadyMined()", "0x61e539da": "testFailWrongAccountTransfers()", "0x8a3e44d4": "assetMoveInformation(address,address)", "0x1327d3d8": "setValidator(address)", "0x207c64fb": "validate(address)", "0x80acaafb": "profitDistribution()", "0x90b98a11": "sendCoin(address,uint256)", "0x8b147245": "update(bytes32)", "0x920c94df": "BuyTicketForOther(address,uint8,uint8,uint8)", "0x6f698fb5": "setMinimumQuorum(uint256)", "0xac5e81a9": "historyPayout(address)", "0x70d084c0": "SingularDTVCrowdfunding()", "0x67ce940d": "getOverhead()", "0x7a791524": "setNextFeePercentage(uint8)", "0xd6d902c4": "claimThroneFor(bytes,address)", "0xc71e48d6": "setOutcome(bytes32,bytes32[])", "0xef41e06f": "testThrowSetEnforceRevisionsNotOwner()", "0x70be4ffa": "testErrorUnauthorizedSetPackage()", "0x6d12301c": "getBetValue(bytes32,uint8)", "0x4e69d560": "getStatus()", "0x55234ec0": "remaining()", "0x5cfd8c24": "ResetPonzi()", "0xe29fb547": "scheduleCall(bytes4,uint256,uint256,uint8,uint256)", "0xbd119967": "add_rating(uint256,uint256)", "0x966acb38": "testThrowTransferNotTransferable()", "0x5c665f89": "getFunds(address,bool)", "0xa59d6986": "recoverLostFunds()", "0x403abbc7": "updateFirstActiveGamble()", "0x0230a07c": "releaseDeed(bytes32)", "0x2d116186": "deityBalance()", "0x602acca1": "InchainICO(address[],uint256)", "0xd393c871": "register(string,address,uint256)", "0xe0fe075e": "payoutReady()", "0xf3e3c629": "testBalanceOfStartsAtZero()", "0x48cd4cb1": "startBlock()", "0x669459a7": "removeRegistryFromOwnerIndex(address)", "0x74d89c47": "testUpdateNameDb()", "0x182db370": "getWhatHappened()", "0xf363441f": "getCreatorDotBalance()", "0x6896fabf": "getAccountBalance()", "0xb29a0308": "logAnonymous(bytes,bytes,bytes,uint256)", "0x3023d0c4": "Ethstick()", "0x1077f06c": "makeClaim(uint256)", "0x8a519fb9": "BlockChainEnterprise()", "0xbffbe61c": "node(address)", "0xe20bbd8d": "RecoveryWithTenant()", "0x03bda14e": "raiseMaxNumBets(uint256)", "0xe1041d86": "__throw()", "0x3d79d1c8": "bal()", "0xbd3f0965": "AiraEtherFunds(string,string)", "0xc388cca6": "testBitAndFailIndexOOB()", "0x921f98bb": "resolveFailVote()", "0x4bbb216c": "_target(address)", "0x10922cc1": "testTransferCost()", "0xeceb2945": "checkProposalCode(uint256,address,uint256,bytes)", "0x3df4ddf4": "first()", "0x21a49ec2": "LCoin()", "0x6d1f00a6": "ThroneMaker(uint256)", "0xcaed4f9f": "DataService()", "0x5cff876b": "carrotsCaught()", "0x3a7fb796": "mintGreen(int256,address,uint256)", "0x370b6939": "AdminSetDrawer(address)", "0x2d9a37d3": "getMaxPayout()", "0x739f888c": "setNewEstimate(int256,int256)", "0x04dd69fa": "getGenerationIdForCall(address)", "0xb764e273": "failSend()", "0xd4dfadbf": "getMarket(address)", "0xa0e67e2b": "getOwners()", "0x2d592a34": "sellKissBTC(uint256)", "0x8a341c83": "testErrorRootAuthorityChangeUnownedPackage()", "0xfcc6b5d5": "fillTheirOrder(address)", "0x61649472": "getPoolFreezePeriod()", "0x3dd297da": "safeMultiply(uint256,uint256)", "0x5d3278f0": "LooneyFifty()", "0x7399646a": "theRun()", "0x3e450fff": "adminDeleteAccount()", "0x93cc9162": "taskRejected(uint256,uint256)", "0xbc5d0f65": "beginExecution()", "0x1934d55a": "isPermanentlyApproved(address,address)", "0xf1cff4b5": "testBitsNotSetSuccess()", "0xf240f7c3": "dispute()", "0xf6d5959b": "getActionStatus(uint256)", "0x0f23cbaa": "recycle()", "0x74f8d96e": "getRevisionBlockNumber(bytes20,uint256)", "0x0bad342a": "EscrowContract(address,address,address,address,uint256,uint256,uint256,uint256)", "0xa6afd5fd": "getBets()", "0x84ad6ff3": "ReversibleDemo()", "0x62b3b833": "createCoupon(string)", "0x523ccfa8": "isKnownCall(address)", "0xacc8cb18": "pushTerm(string)", "0xa753d6f2": "CreateProposal(string,string,string,string,string,string,uint32,uint32)", "0xc5699d68": "_compare(int256,bytes,int256)", "0xe2faf044": "createDAO(address,uint256,uint256,uint256)", "0xa15afb48": "Replicator()", "0x352d2790": "UUID4()", "0x7dee2cad": "CancelMyInvestment()", "0xbeabacc8": "transfer(address,address,uint256)", "0x674f220f": "previousOwner()", "0x4b3b6168": "SetNewBigContract(address)", "0x54ba7daa": "enter(bytes,bytes)", "0x06fdde03": "name()", "0x5944427b": "getRequestResult(uint256)", "0x983ef725": "getDifficulty(uint256)", "0x9287c877": "getNavLength()", "0xa987d654": "restoreItem(uint256)", "0x05433a26": "GetNumbersFromHash(bytes)", "0xd04bfc9c": "buyer_pay()", "0x4a9b3f95": "personUpdateName(uint256,string)", "0xe6b972f5": "userName(address)", "0x88782386": "UnicornMilk()", "0x74580e2f": "changeCreator(address)", "0x1785f53c": "removeAdmin(address)", "0xad544dcb": "testSetNotUpdatable()", "0xafd09bab": "quadrupler()", "0x77bc222c": "_eraseSingleNode(bytes32)", "0x09957e69": "newSale(bytes,uint256,uint256)", "0xa21931ea": "CreateProposal(string,string,string,uint32,string,string,string,uint32,uint32)", "0xbb6b4619": "SendETC(address)", "0x3aa94b1d": "getCoinStats(uint256)", "0x9e2262f5": "testCreateCostData()", "0x2bf4e53d": "getCurrentShareholders()", "0x6111dd02": "calcCostsSelling(uint256,uint8,uint8,uint256)", "0x6b9b1006": "TransactionRecorder()", "0x83b23b40": "cEthereumlotteryNet()", "0x770c6cbb": "WithDrawPreForkChildDAO()", "0x67080f6e": "testThrowsSetEnforceRevisionsNotOwner()", "0xa10bee85": "_transferFromWithReference(address,address,uint256,string)", "0x49cc954b": "twoYearsPassed()", "0x88c3ba85": "ParallelGambling()", "0x03985426": "getMode(bytes32)", "0xad8ed335": "__proxy(address)", "0x306387a4": "dealStatus(uint256)", "0x0343dfa0": "checkInvariants()", "0x23df9df5": "_refund(uint256)", "0x837e7cc6": "rollDice()", "0x98b1e06a": "deposit(bytes)", "0xa0440426": "purchaseProduct(uint256,uint256)", "0x4cb71b9b": "getAllReleaseHashes()", "0x3a7d280c": "login(string)", "0xb9a904f9": "testUnauthorizedSetBetaPackage()", "0xe94a4db1": "isSuitableGen(uint256,uint256)", "0x60f8af90": "refundRound()", "0x43bf718e": "getHashOfTheProposalDocument()", "0x4a30f976": "censorship(uint256,bool,bool)", "0x47e46806": "toString()", "0x8d59cc02": "register(address,string,string)", "0xb3fb14ad": "getGameResult()", "0x4a23dc52": "FileStore()", "0x8da5cb5b": "owner()", "0x3cc8daf7": "setNameOwner(bytes,address)", "0x14cbdb54": "EspCoin()", "0xc47cf5de": "getAddress(bytes)", "0x71e11354": "updateRegistration(string,string)", "0x8b2e6dcf": "publish(bytes32)", "0x12d00c2e": "soloWithdraw(uint256)", "0xd68199dc": "gameStats()", "0xf0f967e8": "canCall(address,address,bytes)", "0xe0c7c117": "Randao()", "0xddeae033": "claimFor(address)", "0xcec7260b": "move_monster(uint16,uint16)", "0xe51ace16": "record(string)", "0x4f76cb02": "testGetBitFailIndexOOB()", "0x942385eb": "getPayroll()", "0x46d667db": "setBytes32(bytes)", "0x35a063b4": "abort()", "0xb1d51d31": "pay(uint64,address)", "0x7140bdf3": "get_all_best_offers()", "0x0380e2f3": "getHashOfTheSignedDocument()", "0x2feda2fa": "POI()", "0x3c0870ae": "challenge(uint256,uint256,uint256,bool)", "0x27a5c7c6": "voteDecline(uint256)", "0xafd8c8c4": "GasProxy(address,address)", "0x8de93222": "purchase(address,uint256)", "0x087e055a": "getConfigBool(bytes)", "0xbaccc92b": "RegulatorIfc(address)", "0x8c546f81": "GNT()", "0x57cb2fc4": "getInt8()", "0xe3083fb5": "removeFromContribution(uint256)", "0x1a092541": "getDescription()", "0x7486a8e3": "get_publisher(bytes32)", "0x089e0ad0": "buildDSMap()", "0x29161820": "Base(uint256)", "0xe2f8feb2": "internal_tester(int256)", "0x1d2dbb22": "CancelMyInvest()", "0x726ab4ef": "getParentHash(bytes)", "0x83d8a90f": "theDonkeyKing()", "0x9babdad6": "removeShareholder(address)", "0xdeb931a2": "getOwner(bytes32)", "0x90cb04e1": "buy(string,uint256,uint16)", "0x2ff92323": "oraclize_query(uint256,string,string[4])", "0xf91a792e": "decryptHand(string,uint256,uint256,uint256)", "0xebf6e91d": "hit(uint256)", "0xb085b9a5": "Example()", "0x07b2779f": "BasicRegulator(address,uint256,uint256)", "0xe10e5dce": "_build(bytes)", "0x3e239e1a": "getHour(uint256)", "0xacc5a0dc": "GetPrize()", "0xa79deb4f": "acceptTradeDeal()", "0xd7c26adb": "oraclize_setProof(bytes1)", "0xc6a17d2b": "pow10(uint256,uint8)", "0xa87d942c": "getCount()", "0xe706918c": "testToggleBitSuccess()", "0xc1812b15": "reorganizeOwners()", "0x7c7c7695": "getAccountID(address)", "0x1a26ed1c": "validateReservedWindowSize(uint256,uint256)", "0x87393bc6": "verifyFirstHalf(uint256[4],uint256[4])", "0x2e52d606": "n()", "0x2037fcbf": "withdrawInvestment(uint256)", "0x77228659": "query2(uint256,string,string,string)", "0xf67a1d37": "BlockChainChallenge()", "0xc67146a5": "check_bet(uint256,address,uint8)", "0xc89f2ce4": "funds()", "0x58e29e17": "initiateProof()", "0xf0e10c0d": "play(address,uint256)", "0x480b70bd": "scheduleCall(address,bytes4,uint256,uint256)", "0x5294157f": "sendWithAllOurGasExceptExt(address,uint256,uint256)", "0xad447a19": "getBalanceDB()", "0x41095b60": "voteForUltimateOutcome(bytes,uint16)", "0x5521d17b": "betOnColor(bool)", "0xc8f8d75d": "Config(uint8,address)", "0x10ae4ce2": "setReleaseValidator(address)", "0x9fd4f7d1": "replaceWizard(address)", "0x77c78df9": "getCurrentLevel()", "0x1dda5c7d": "testFailSubBalanceBelowZero()", "0x21e5383a": "addBalance(address,uint256)", "0xb0414a2d": "setMinimumGasLimit(uint256)", "0x919840ad": "check()", "0xf651bf44": "move_to(uint16)", "0x0b97bc86": "startDate()", "0x29f1bff4": "withdrawFromChildDAO(uint256)", "0x7a02dc06": "getInfo(bytes32)", "0xe5bf93b9": "balanceEther(uint256)", "0x288c6ed2": "getSeedCost(uint256)", "0x4db3da83": "scheduleCall(bytes4)", "0x270cfee1": "getTokenAccount()", "0xb5d03751": "YoutubeViews()", "0x27e056a5": "addMinter(int256,address)", "0xfa7d68f1": "getAccountInfo(uint256,uint256)", "0x09fc8f6d": "isTokenUpgraded(bytes32)", "0xa5b9e922": "getContentTimetamp(uint256)", "0x1f8947c1": "extractUint(int256,bytes,uint256,uint256)", "0xbcc941b6": "totalWinners()", "0x1db71ffb": "doLoops(uint256)", "0x35ae41c9": "godAutomaticCollectFee()", "0x42cf0e72": "searchByOwner(address)", "0x69f18967": "testSetBitFailIndexOOB()", "0x57b07cd9": "getReleaseHash(uint256)", "0x2baf4f22": "_safeFalse()", "0x3133f2a7": "outstandingBalance()", "0x773c84ee": "exec(address,bytes,uint256,uint256)", "0x9070b18d": "_getAllRevisionBlockNumbers(bytes32)", "0x476e04c7": "NewMessage(string)", "0x3b91ceef": "setMax(uint256,uint256)", "0xe6cb9013": "safeAdd(uint256,uint256)", "0xc2038560": "setOutcome(bytes,bytes)", "0xbed34bba": "compareStrings(string,string)", "0xba8661a2": "TimestampScheduler(address)", "0x4c4aea87": "getReleaseData(bytes32)", "0x1177892f": "getBalanceByAdress(address)", "0x126a710e": "dnsrr(bytes32)", "0x60913244": "botOnSale(uint256,uint256)", "0x5731f357": "oraclize_query(uint256,string,string,string)", "0x3e58c58c": "send(address)", "0x2187a833": "setGreenToken()", "0x5f09952e": "voteAllowTransactions(bool)", "0xf2b26d8f": "nextEtherForSale()", "0x1f201e39": "etherandomExecWithGasLimit(bytes32,bytes32,uint256,uint256)", "0x43d726d6": "close()", "0x6cdf4c90": "ownerSetMinBet(uint256)", "0xe6e8c692": "computeResponseFirstHalf(uint256,uint16)", "0xd1d80fdf": "setAddr(address)", "0x6da1833c": "getInstitutionByName(string)", "0x7682e6ff": "getTrustSetting(address)", "0x8f6f988c": "setUltimateOutcome(bytes)", "0xe299beb3": "SimpleIndex()", "0xa2bb5d48": "get_username(address)", "0x780900dc": "create(uint256)", "0x78710d37": "seven()", "0x2b20e397": "registrar()", "0x4094ef5e": "addDataRequest(string)", "0xc630f92b": "canEnterPool()", "0xdd114c22": "publish(address,uint256,address,uint256)", "0x57006864": "checkBetParity(uint8)", "0x45788ce2": "prev(address)", "0xee8ff562": "setMaxProfit()", "0xdc63a62c": "getFileListHead()", "0x9447fd0a": "until()", "0xb303dcbd": "Owned()", "0x0ecaea73": "create(address,uint256)", "0x20339891": "addGridMember(address)", "0xc8c01a55": "request(address,uint256)", "0x76f10ad0": "getSnapshot(uint256)", "0xc06c4474": "get_burned(bytes32)", "0x67cb61b6": "getChoice()", "0xca708230": "funnel()", "0x08b7fa31": "PriceFeed()", "0xac6bc853": "startSpin()", "0xf4bbfd6a": "scheduleCall(bytes,bytes)", "0xab73e316": "next(address)", "0xba0179b5": "confirm(uint256)", "0x1e62be25": "Bytes32Passer()", "0xb950556a": "setThingValid(bytes32[],bool)", "0xb61c0503": "fireEventLog1()", "0x79a85e6c": "getProductInfo(uint256)", "0x959ac484": "push(uint256)", "0x78e80b39": "UserGetPrize()", "0xff74927b": "strConcat(string,string)", "0xd207e757": "ownerSetOraclizeSafeGas(uint32)", "0x5819dde2": "getNumbersFromBytes(bytes3)", "0xf34ed4e6": "RanDAOPlus(address)", "0x3943807b": "insert(bytes,bytes,int256)", "0x38cc4831": "getAddress()", "0x12a7b914": "getBool()", "0xa4fd6f56": "isEnded()", "0x6c86888b": "testTrade(address,uint256,address,uint256,uint256,uint256,address,uint8,bytes32,bytes32,uint256,address)", "0x0bebd0f9": "addAddressToGeneration(address,uint256)", "0x003074ff": "getFrontend()", "0x2776a859": "computeResponseSecondHalf(uint16)", "0xadfe6b80": "InvestAdd()", "0x6981b5f4": "getLength(string)", "0x4a994eef": "setDelegate(address,bool)", "0xbac1e9f6": "getChannelSize(address,uint256)", "0xbdfdb519": "accept(string,uint256,uint16)", "0x68f5aa0f": "setShareholderDB(address)", "0xafb95eed": "logApproval(address,address,bytes32)", "0xae152cf4": "oraclize_query(string,string,uint256)", "0xe3b26a8c": "SocialNetwork()", "0x54204ad4": "triple()", "0xbc8f3bcb": "ZeroDollarHomePage()", "0xf0350c04": "transfer_ownership(address)", "0xfde9ba41": "transfer(bytes,address,uint256)", "0xfa2acd87": "G(uint64[16],uint256,uint256,uint256,uint256,uint64,uint64)", "0x3a76abff": "_eraseNode(uint256,bytes32[],bytes32)", "0x0acf473b": "AdminCloseContract()", "0x299e7318": "resolveVoting()", "0xb414d4b6": "frozenAccount(address)", "0x8d375da2": "testMakeItFail()", "0x6e8dad74": "retrieveAccountBalance(bytes,bytes)", "0xd3aa831f": "testOwnedTryAuth()", "0x13220305": "doTransferOther(address,address,address,uint256)", "0xb0c7f709": "kingAutomaticCollectFee()", "0x2dabbeed": "reclaim(uint256)", "0x5c19a95c": "delegate(address)", "0xbc2a4dd6": "doBalanceOf(address)", "0x8e7ea5b2": "getWinner()", "0xdb37e42f": "multisetProofType(uint256[],address[])", "0xa6b197aa": "Order(address,uint256)", "0x8cf4dbfb": "collectBalance()", "0xd0821b0e": "bet(uint8)", "0xa02b161e": "unregister(uint256)", "0x09dd0e81": "getBlockchainHead()", "0x8a0807b7": "indexOf(string,string)", "0xe3914699": "dEthereumlotteryNetWinners(address)", "0x44d75fa9": "updateMinorTree(bytes32)", "0x3c21db0a": "theGames(uint256)", "0xf0e959f9": "TokenSales(address)", "0x696bda86": "submitProposal(uint256,bytes)", "0x3b343a13": "getNodeAddress(bytes)", "0x2812f8b8": "FutureCall(address,uint256,uint16,address,bytes4,bytes,uint256,uint256,uint256)", "0xbf32bf97": "FailGuyTax()", "0x89ced196": "setNotUpdatable(bytes32)", "0xb94e962a": "allocateTickets(uint256)", "0x7a479160": "getRequestArgs(uint256)", "0x5a825cbb": "getPayment(uint256,uint256)", "0x4ca8b0d0": "registerExistingThrone(bytes,address,uint256,uint256)", "0x82afd23b": "isActive(uint256)", "0x6ebf10fe": "storeHeader(bytes,address)", "0x1437f9a3": "Set_your_game_number(uint16)", "0xd98d011d": "getCandidateKey(bytes,bytes,bytes,bytes)", "0x8b676ae8": "scheduleCall(address,bytes4,uint256,uint256,uint8,uint256,uint256)", "0x90fd53ec": "farmTile(uint8,uint8,int8)", "0x46e44f63": "getCheckRecordTS(bytes)", "0x1de38038": "makercoin(uint256)", "0xc038a38e": "totals()", "0xfa80918b": "computeNodeId(bytes,bytes)", "0xc76a4bfb": "relayReceiveApproval(address,address,uint256,bytes)", "0x2406cedb": "setPackageOwner(bytes32,address)", "0xb7297cf3": "gameSettings()", "0xe94acf0e": "TinyRouter(address)", "0x4a2b0c38": "DividendProfit()", "0x0e3f732a": "TheGame()", "0xd62457f6": "callValue()", "0x4961b40c": "getReleaseValidator()", "0x540cafe0": "storeHeaderWithFee(bytes,int256,address)", "0x7ff729fc": "fillUpProject(uint256,uint256)", "0x253459e3": "feesSeperateFromBalanceApproximately()", "0x930a80b4": "testAuthorizedSetPackage()", "0xb3cb8885": "nextUnderdogPayout()", "0x62c7855b": "getConfigBytes(bytes32)", "0x4f28af6a": "handleBet(uint256)", "0x103f9251": "transferFrom(address,address)", "0x9b19251a": "whitelist(address)", "0x9928811b": "testBroken()", "0xb33a8a11": "setTokenReference(address)", "0x27f06fff": "requestFillUp(uint256)", "0x2f570a23": "test(bytes)", "0x96ef7aa0": "cash_transfered(string)", "0x3983d5c4": "calcBaseFee(uint256)", "0xec0f1025": "testBitsOrSuccess()", "0xd35f4a99": "mint(int256,address,uint256)", "0x09dfdc71": "currentPyramidBalanceApproximately()", "0xac4e73f9": "proposeReverse(string,address)", "0xac4bd53a": "currentLeader()", "0x5a2ee019": "m()", "0xeba36dbd": "setAddr(uint256,address)", "0x0358d965": "addPayout(uint256)", "0xd7206124": "setInvestorLock(bool)", "0xe916d0f0": "doBalance(address)", "0x67c2a360": "authorizeUser(address)", "0x828d671c": "dyn_sig()", "0xaf6fe8e2": "testGetToken()", "0x283a4576": "Tomeka()", "0x8ac0ca36": "buyViaJohan()", "0xcc872b66": "issue(uint256)", "0xd826f88f": "reset()", "0x2aa3177a": "self_store()", "0x53b7b2e9": "cEthereumlotteryNet(bytes)", "0xce88b145": "getAccount(uint256)", "0x1fa03a2b": "isApprovedFor(address,address)", "0xe42d5be0": "getPaymentOf(address)", "0xb722a9ef": "getPreviousShareholder(address)", "0xfadf87b1": "testGetBitsSuccess()", "0xd26c8a8a": "coinBalance()", "0x30ccebb5": "getStatus(address)", "0x47799da8": "last()", "0x4a5db3b5": "authorizeAddress(address)", "0x22686250": "index(int256,uint256)", "0x07ef99a0": "demintTokens(int256,address,uint8)", "0xea2d4cf8": "__DeployerFunctions(address,address,uint256)", "0x092a2e37": "multiAccessAddOwnerD(address,address)", "0x671fa0a0": "Inscription(string)", "0xa10edc55": "GeneralPurposeProfitSplitter()", "0xd9c67404": "getMerkleRoot(bytes)", "0xdc419fd8": "cancelOrder(bool,uint256)", "0xc9734ebd": "WatchLastPayout()", "0xc7d6faf1": "easyPropose(address,uint256)", "0xfe63300a": "registerExternalBill(uint256,address,address,uint256,uint256,uint256)", "0xd3437fe0": "assertFact(uint256,bytes)", "0x5fb3e119": "Auction()", "0x665beae7": "ExecutableBase(bytes)", "0xc8bb73ef": "testGetBitsFailIndexOOB()", "0xc1d4f708": "getMwLength()", "0x22b0f6ee": "getStatusOfPayout(uint256)", "0x21520c5f": "calculatePayout(uint8,bool,uint256)", "0x66e98c31": "createCoin(string,uint256,uint256,string,string,address)", "0x7b352962": "isFinished()", "0x48d9614d": "GetFee()", "0xfe0d94c1": "execute(uint256)", "0xe4547f98": "documentExists(bytes)", "0x4e10c3ee": "transferWithoutReward(address,uint256)", "0x58ae8bcf": "voteInMasterKey(address)", "0x1dcb304b": "fipsGenerate()", "0xb595181f": "ShapeshiftBot()", "0xe02426c1": "getSignatureHash(bytes4,uint256)", "0x67546967": "EthBtcEscrow()", "0x85b31d7b": "myInfo()", "0xaa677354": "register(address,address)", "0x1d2e2cc4": "ENS()", "0x1097e579": "Enter()", "0x13a396d8": "getRequiredDeposit(bytes)", "0x6df3edef": "getSavedBytes()", "0x09b30ed5": "afterExecute(address)", "0x718e6302": "play(string)", "0x8e46fbb2": "testBitsXorFailIndexOOB()", "0x0d87a7c0": "WLBDrawsDB()", "0xbbe42771": "closeDeed(uint256)", "0xedfbf7b6": "setVotingDeadline(uint256)", "0x299e6b07": "Wallet(address)", "0x5cbc85d0": "returnBounty(uint256)", "0xe5225381": "collect()", "0x94f60a63": "getKudosLeft(address)", "0xd6960697": "confirmPurchase()", "0x4a1f0bf6": "inheritToNextGeneration(address)", "0x244ded7a": "ChangeOwnership(address)", "0x39b35753": "authCancel(address)", "0x75cb2672": "configure(address)", "0x938ae4cc": "testThrowDisownNotTransferable()", "0x04fc11d5": "getActual()", "0xacab021c": "getTOS(address)", "0x812cddf2": "getSavedString()", "0x8ae475a9": "notorize(string)", "0xb1d05422": "SendEmail(string,string)", "0x0fffbb54": "changeRankingSize(uint256)", "0xb6ed9f15": "PFOffer(address,address,bytes,uint256,uint256,uint128)", "0xda333ca6": "payOut(uint256)", "0x652f1f16": "addSignature(string)", "0x983b2d56": "addMinter(address)", "0x5e1936d4": "testThrowSetNotTransferableNotOwner()", "0x4ac1ad78": "getWeekday(uint256)", "0x6ba0b4f2": "isKnownSelector(bytes4)", "0x7c4c27c8": "isThisPuritanicalVersion()", "0x7ae2b5c7": "min(uint256,uint256)", "0x63bd1d4a": "payout()", "0x3fd94686": "changeEligibleDonkeys(uint256)", "0x7fe0518a": "asyncSend(address,uint256)", "0x5a8dd79f": "getDesignatedCaller(address,uint256)", "0x2635f4de": "registerLibrary(bytes,address)", "0x1335ff36": "createEventAndMarketMaker(uint256,uint256,uint8,uint32,address,uint256,uint8,uint16,uint256)", "0x181be00d": "getValue(uint8)", "0x9c1500f0": "registerMany(address,uint256,int256,uint256,bytes,address,bytes)", "0x16f9ce49": "_slotCommitNew(address)", "0x8ca4eef6": "getBuild(bytes32)", "0x8ee21b8e": "get_default_keys()", "0xa66f7ad6": "signRelease(uint256)", "0x414053be": "best_adjustment_for(bool,uint128)", "0x83a51ad0": "oraclize_setConfig(bytes32)", "0x262c0b72": "getPayoutFreezePeriod()", "0x499af77c": "current_spin_number()", "0x4209fff1": "isUser(address)", "0x6e1b6bcc": "checkMyBet(address)", "0xb46300ec": "send()", "0x6b1cb549": "orderMatch(uint256,uint256,uint256,int256,uint256,uint256,address,uint8,bytes32,bytes32,int256)", "0x58d9fa04": "addUser(uint256,address)", "0x24c93343": "error(string)", "0xa95d017d": "getRevisionBlockNumber(bytes32,uint256)", "0x46af23f5": "InstantLottery(address,address,bool,address)", "0x29ef56b1": "getAskOrderBookStats()", "0xe97db66e": "setJackpot()", "0x4b59e880": "puzzle(address,bytes32,bytes32)", "0xc7f86c37": "withdrawFundsRP()", "0x57d4021b": "nextPayoutWhenPyramidBalanceTotalsApproximately()", "0xf1c760ae": "fixBalanceInternal(address)", "0x0908178f": "NoFeePonzi()", "0x22ebb3ac": "DieselPricePeg()", "0xb39a64cd": "getNumCalled()", "0x1c02708d": "killContract()", "0x65228934": "setOperationsCallGas(uint256,uint256,uint256,uint256,uint256,uint256,uint256,uint256,uint256,uint256,uint256)", "0x3397ca17": "numBalanceRecords(address)", "0xe436bdf3": "Draws(uint256)", "0xaf55bba0": "removeRegistryFromTagsIndex(address)", "0x11103599": "Token_Offer(address,address,uint16)", "0xb3a2a6c0": "setOfficialWebsite(string)", "0xb06eb03f": "DSEasyMultisig(uint256,uint256,uint256)", "0x775c300c": "deploy()", "0xb1c6517a": "LookAtNumberOfPlayers()", "0xc19d93fb": "state()", "0xac9873c7": "CanaryV7()", "0x750cae6a": "enableBetting_only_Dev()", "0xdf3c8620": "num_challenges()", "0xbb00fc55": "bookEarnings()", "0x0bd2ae1c": "ERW()", "0x580bdf3c": "disableBetting_only_Dev()", "0x5c3f9765": "endDateClose()", "0xc4128b6d": "upgradeCount()", "0x140b4465": "executeSpendingRequests()", "0xfaa1a8ff": "getOwnedBot(address,uint256)", "0x40e58ee5": "cancel(uint256)", "0xf4ea95b9": "validateReleaseVersion(uint32[3])", "0x2ba0b09f": "AddNewCategory(bytes4,uint8,uint8,address)", "0x55db4092": "setTOS(address,bool)", "0xf9cc0605": "getAvailable()", "0x3f2f46b4": "revealRock(string)", "0x2af7ceff": "testPrice(uint256)", "0xcaaf2dd7": "getInitialAnswerResult(uint256)", "0x6f36ce79": "insert_deal(address,address,uint64,uint128,uint32)", "0xa18c751e": "set(bytes,bytes)", "0x4d536fe3": "doit()", "0x3197cbb6": "endTime()", "0xb83069c5": "getStemPrice()", "0x3f15457f": "ens()", "0x81ebdeea": "testThrowCreateWithNonceRetracted()", "0x249b4d0b": "removeTrustedIssuer(address,bytes)", "0xe7b48f74": "get(int256,address)", "0x089d5c4a": "repr()", "0x3a9e7433": "scheduleCall(bytes4,uint256,uint256,uint8)", "0x504f1671": "getSize(address)", "0xf3a44fe1": "withdrawForWorkshop()", "0x7a837213": "setAllowedAccount(address)", "0x4551b1d7": "ProxyPayment(address,address)", "0x5dac1601": "SimpleStablecoin()", "0x87914c6f": "prolongateContract()", "0xe3ceb06d": "YesNo(bytes32,address,string,address,uint256)", "0x42a745cb": "testBitEqualSuccess()", "0xaa8dea8c": "fipsAddToLedger(bytes20,address,bytes)", "0x986dcd4d": "setCycleLimit(uint256)", "0x1e44c112": "find_strike(uint64,uint32,uint32)", "0x1ecfe64d": "_jSub(uint256,uint256,uint256,uint256)", "0x4ae85627": "grindUnicorns(uint256)", "0x200ebe34": "addTokensToGive(address)", "0x7b632c41": "TimestampScheduler(address,address)", "0x979b6f6f": "RoundInfo()", "0xb3ea3924": "PointlessCoin(int256,uint256,string,uint8,string,address)", "0x1d834a1b": "insert(uint256,uint256)", "0x931df75f": "validateProposedThroneName(bytes)", "0x6189be15": "columnround(uint256,uint256)", "0xdf5dd1a5": "addOracle(address)", "0x22d8cf5b": "CheckUserVote(uint8,uint8)", "0xdd62ed3e": "allowance(address,address)", "0xc0eb2325": "scheduleTransaction(address,bytes,uint256)", "0x038461ea": "getCertifiedStudentsCount()", "0x9ee035c9": "lookupCanonicalFormat(bytes)", "0x0ab58ead": "SingularDTVFund()", "0x550ed1f0": "getMaxBetAmount()", "0x6e63015c": "getCertifiersCount()", "0xbbd4f854": "buyShares(bytes32,uint8,uint256,uint256)", "0x306b031d": "getGenerationEndAt(uint256)", "0x1bd9c46e": "setImporter()", "0xc80c28a2": "getNumberOfParticipants()", "0xcb553ac9": "sweepWizardCommission(uint256)", "0x6389654e": "changeDailyWithdrawalLimit(uint256)", "0xc0a963c9": "notifyWinner(address,uint256)", "0x3c335b0e": "getRetractable(bytes20)", "0x017972af": "getNumbersFromHash(bytes32)", "0x07da68f5": "stop()", "0x1e8c72b4": "incrUserAvailBal(address,uint256,bool)", "0x0df71602": "setWinner(uint256)", "0x85e5bb3a": "Security_AddPasswordSha3HashToBankAccount(bytes32)", "0x2ade6c36": "getNodeAddress(bytes32)", "0xb33926cb": "owner_withdraw(uint256)", "0x57764094": "getRate(uint256)", "0x13827950": "getShareholderDB()", "0x26826bf8": "setImage(bytes)", "0x76d438b0": "sendReward(uint256,uint256)", "0x51d6e547": "getNonce(bytes)", "0x4f24186a": "newProposal(string)", "0x1a695230": "transfer(address)", "0xe820a32f": "vetoPayout(uint256,uint256)", "0xfb3a1fb2": "getReleaseDb()", "0x6bae05cf": "preRegister(address)", "0xae2df7b3": "setImporterBank()", "0x56d73ad1": "getCertifierDb()", "0x8396392d": "add(string,string,string,address)", "0xeb08b304": "changeMeatProvider(address)", "0xb60e72cc": "log(string,uint256)", "0x76999896": "KingOfTheEtherThrone()", "0xea851885": "buyStake(bool)", "0xa5982885": "assertFalse(bool)", "0xfbf1f78a": "unapprove(address)", "0xc2ba5b40": "getPackageData(string)", "0x83d51a38": "concatString(string)", "0x68af4971": "registerListening()", "0x14ba5c09": "getDay()", "0xe4849b32": "sell(uint256)", "0x44dd4b3b": "lookupGeneration(uint256)", "0x3fda1281": "get_keys()", "0x09241200": "wasSuccessful()", "0xbc9147a4": "Foundation()", "0xe33734fd": "changeProposalDeposit(uint256)", "0x2cce4abe": "_finishNoCallback()", "0x45e965cd": "strConcat(string,string,string,string)", "0xd4245e5b": "transferringETH(address)", "0x10082bff": "getActorBillXdetail(address,uint256,bool)", "0xc831391d": "getPoolOverlapSize()", "0x15e33901": "digest(bytes,uint256)", "0x5f0edfb8": "create(bytes,bytes32,bytes1)", "0xadd4c784": "getResult(bytes32)", "0x3233c686": "claimerDeposit()", "0x187a62d5": "voteEmergencyWithdrawal(bool)", "0x5404bbf7": "getEntropy()", "0x3f5b7675": "periodTwo()", "0x7ec0f30d": "ack(string)", "0xd30a512e": "betOnColumnOrDozen(bool,bool,bool)", "0x9fcbc738": "setIntermediate(address)", "0x539e2bfb": "secondChainedCallback(uint256)", "0xe724529c": "freezeAccount(address,bool)", "0x5aa97eeb": "getMarkets(bytes32[],address)", "0xc51be90f": "query_withGasLimit(uint256,string,string,uint256)", "0x531b97d7": "oneCentOfWei()", "0xeace4827": "player_make_bet(uint8)", "0x9c851ebc": "new_entry()", "0x98c9cdf4": "getMinimumCallGas()", "0xd8f012c6": "StatelessFactory(string,string,string)", "0xceeafd9d": "withdrawFundsAdvancedRP(address,uint256,uint256)", "0xd6d7d525": "get(bytes)", "0xbf55486b": "Tanya()", "0xd35ada32": "addParticipant(address,address)", "0xa8239d0b": "getPrice(string,address)", "0x12514bba": "transfer(uint256)", "0xb00140aa": "getHash(bytes)", "0x36f66528": "EtherDelta(address,uint256,uint256)", "0x279e0912": "getDownloadPrice()", "0x8173b813": "setNumCities(uint256,uint256)", "0xb98fdc36": "IconomiToken(uint256,string,uint8,string,uint256)", "0x3c7a3aff": "commit()", "0xcac77df7": "__transferFromToICAPWithReference(address,bytes32,uint256,string)", "0xfbeaebc6": "murder()", "0x2fa7cbfb": "getExecCost(uint256)", "0xe44d3084": "testFailure()", "0xede8acdb": "startAuction(bytes32)", "0xd5544f94": "getFundsAndAvailable(address)", "0x3824d8ee": "buy100DaoFor1Eth()", "0xbe3945e4": "getFee(address,address,uint256)", "0x1917ab5c": "activate(string)", "0x23509e69": "donkeysEligibleForFees()", "0xf460590b": "updateSigner(address,bool)", "0xc55c1cb6": "queryN_withGasLimit(uint256,string,bytes,uint256)", "0xd96d7ea2": "PRE_EXECUTION_GAS()", "0x1f7b6d32": "length()", "0xacf8bf2a": "channelCount()", "0x18968a03": "finalize(uint256,address,address)", "0x5674a3ed": "runLottery()", "0xe3280126": "addOrder(string,bool)", "0x32afa2f9": "claimEtherOwner(uint256)", "0x355474d2": "commitReading(address)", "0x00601d6c": "board(uint256,uint8,uint8)", "0x2667f407": "__proxy(address,bytes)", "0x79716e43": "confirmTransaction(bytes32)", "0x272cda88": "EternalDB()", "0x76ca0c77": "scheduleCall(address,bytes,uint256,bytes,uint256)", "0x338b5dea": "depositToken(address,uint256)", "0xfa93f883": "getMinute(uint256)", "0xafc4a982": "PathCost(uint16,uint32)", "0xf7d97577": "setPrice(uint256,uint256)", "0x842bc37b": "GetSmallCotractIndex(address)", "0x75f40f40": "underdogPayoutFund()", "0x23a1c271": "setPongval(int8)", "0x02571be3": "owner(bytes32)", "0xf79b22e0": "betOnATeam(uint256)", "0x10cf5d47": "awaitingPayout()", "0x1b00fe51": "testHypothesis()", "0xd449ce7c": "Administered()", "0x455259cb": "getGasPrice()", "0x975057e7": "store()", "0xdfdb5f17": "doBurn(address,uint256)", "0xaa497b9d": "scheduleCall(address,uint256,bytes,uint256,uint256,uint8)", "0xcabfb934": "replace(address)", "0x1f1f5e76": "addValueToContribution(uint256)", "0xa0eda9f2": "_transferFee(address,uint256,string)", "0xa8d95fb2": "claim(address,string)", "0x03ee8f08": "getCoeff(uint16)", "0x9872a20a": "registerUInt(address,uint256)", "0xb20d30a9": "setDailyLimit(uint256)", "0xe116b17e": "getKudosLeftForProject(address,address)", "0xf7c9f74a": "insert_contribution(address,uint256)", "0xc7a1865b": "play(bytes32)", "0x356594ab": "EtherTransfer()", "0xe22b0c46": "verify(uint256,uint256,uint8,bytes,bytes)", "0x2fea7b81": "getIdentity(address)", "0x6fa8de90": "changeMeatParameters(uint256,uint256)", "0x37c390e3": "allow_move(uint16)", "0xd22c391a": "validateProposedThroneRules(uint256,uint256,uint256,uint256,uint256)", "0xf6d339e4": "setAddress(bytes32,string,address)", "0xd7cc8362": "isLatestMajorTree(bytes32,bytes32)", "0xdd012a15": "setIt(uint256)", "0x254c91b3": "testBitNotSetSuccess()", "0x47e40553": "nextRound()", "0xa6b206bf": "doSomething(uint256)", "0xac996e7e": "resolvePledging()", "0x71e2d919": "lol()", "0x07d5b826": "buyAllOutcomes(bytes32,uint256)", "0x5f68804e": "SimpleLotto()", "0xa510f776": "setCompany()", "0x0d48e8d0": "doBalance()", "0xd21d7950": "changeGasLimitOfSafeSend(uint256)", "0x3358d2d3": "buildDSTokenFrontend()", "0xec93cfae": "FountainOfWealth()", "0x65b1fdf4": "scheduleIssuePOIs()", "0xdc3080f2": "spentAllowance(address,address)", "0xd1f0bb2d": "populateAllowedFreeExchanges()", "0xd591221f": "testTransfer()", "0xf24b5779": "removeTrustedIssuer(address,string)", "0xed4b1d0d": "scheduleTransaction(uint256)", "0xa83627de": "updatePeriod()", "0xf597a499": "UserDatabase(uint256)", "0x21f8a721": "getAddress(bytes32)", "0x5548c837": "Deposit(address,address,uint256)", "0x55b775ea": "setFeed(address)", "0x01b869f1": "release(uint32,uint32,uint32,bytes)", "0x609ff1bd": "winningProposal()", "0xdf98ef33": "getResource(bytes,uint256,bytes)", "0xd39eb301": "getStatus(uint8,uint8)", "0x2cc0b254": "init(address,bytes32)", "0x4228974c": "Videos()", "0xc431f885": "addToContribution()", "0x00e43ee9": "setMigrationStatus(uint256,address)", "0xd9f8a4e2": "calcCurrentTokenPrice()", "0xb9e6f1d9": "get_amount()", "0x6b3a87d2": "WatchWinningPot()", "0xef4592fb": "getResult(bytes)", "0x41b9dc2b": "has(bytes32,bytes32)", "0x3b9901cc": "getChannelsByRanks(address,uint256,uint256)", "0x83876bc9": "newProposalInWei(address,uint256,string,bytes)", "0x50a3bd39": "enterPool()", "0xc976bbbb": "_compare(int256,bytes2,int256)", "0x0e47c76f": "rotate(uint64,uint256)", "0x6f85c7e4": "WAITING_PERIOD()", "0x7075b1d8": "latestMonarchInternal()", "0x9209b3c0": "getCrtDetails(bytes)", "0x305075db": "NormalizeRanks()", "0xb6b55f25": "deposit(uint256)", "0xf09ea2a6": "offer(uint256,address,uint256,address)", "0xf1320af2": "exempt(address)", "0xc813c30e": "testThrowSomething()", "0x4faa2d54": "getTimeElapsed()", "0x22017c5f": "DSTokenBase(uint256)", "0x6637b882": "setDao(address)", "0xd0b52156": "getIpfsHash(address,address)", "0x13bd4e2c": "_prepareAndSendReward()", "0xdb7ca38a": "XaurmProxyContract()", "0x1bad1d2e": "monitorWallet(address)", "0x691f3431": "name(bytes32)", "0x3169ff3e": "LooneyLottery()", "0x446a7974": "Fokitol()", "0xdc3ab866": "checkEarnings(address)", "0xfad9bf9e": "storeBlockWithFeeAndRecipient(bytes,int256,int256,bytes,int256,int256)", "0xaf408d89": "setStatus(bytes)", "0xd02bf162": "spinTheWheel()", "0x9a36f932": "feeDivisor()", "0xca77ab8a": "getNextFile(bytes)", "0xc8e49707": "activateExportFee(address)", "0x502414e4": "marketMaker(string)", "0x78ec81a0": "sendEarnings(address)", "0x14167bf0": "oraclize_query(string,string[])", "0xba13a572": "lottery()", "0x299ed37a": "emergencyCall()", "0x6ec3af26": "addTrustedIssuer(address,bytes)", "0x3d69b403": "isOutcomeSet(bytes)", "0x9a19a953": "setInt8(int8)", "0x7817a60f": "acceptMember(address,string)", "0x1e223143": "getFirst()", "0x5437b39b": "hasUnprocessedDividends(address)", "0x8f0c724c": "setOperationsCallGas(uint256)", "0x3c925f16": "getAccountHolder()", "0x477801b1": "getLastRoundResults_by_index(uint256)", "0x3d21aa42": "sendApproval(address,uint256,address)", "0xd2b8035a": "draw(uint256,uint256)", "0x19c32e0b": "hmacsha256(bytes,bytes)", "0x28f90e4b": "Etheramid2()", "0xe87df70e": "fivetimes()", "0xc028df06": "offer()", "0xacb6c69b": "setTrustedClient(address)", "0xac7ffae3": "updt(uint256,string,uint256,uint256,string,string,address)", "0x0e5ffb3c": "hashVersion(uint32,uint32,uint32,string,string)", "0x4ac6b2be": "getCheckRecordCreator(bytes)", "0x93dafba2": "getSubpot(uint256)", "0x592685d5": "getWindowStart(address,address)", "0xc24a0f8b": "endDate()", "0x3f9b250a": "getDocument(uint256)", "0xd845a4b3": "request(uint256)", "0xa5bfa9a9": "claimToken(bytes32)", "0x8e3957d9": "RandomNumber()", "0x62fb09b2": "getRefDescr(uint256)", "0x9f35d3b2": "start(string,string,uint256,uint256,uint256,uint256)", "0xea1bf386": "getNextSellerBOTdata(uint256)", "0xe27fe50f": "startAuctions(bytes32[])", "0x031d973e": "closeMarket(bytes32)", "0x754dea40": "setBackendOwner(address)", "0xd83a8d11": "testProposing()", "0xf24a534e": "Oracle()", "0xd08275f1": "WolframAlpha()", "0x932db761": "profitsFromBitnationDebitCard()", "0xd96aee49": "MultipleConstructorTest()", "0x4594d06a": "delMinter(int256,address)", "0xb9f256cd": "newProposalInEther(address,uint256,string,bytes)", "0x1d2bca17": "MyToken(uint256,string,uint8,string)", "0x6edbd134": "hasHash()", "0x847f8a10": "Refund(uint32)", "0xb0604a26": "schedule()", "0x6676871d": "reserved_funds()", "0x05888fcd": "tradeBalances(address,uint256,address,uint256,address,uint256)", "0xe771066f": "marriageProof(bytes)", "0x7e32a592": "repairTheCastle()", "0xbab2f552": "currentCycle()", "0x45a3b0bf": "resolveFailPledge()", "0x070a888f": "updateRewardDuration(uint256)", "0x20d9822e": "setAnyoneCanCall(address,string,bool)", "0x224993c2": "setTimeBlock(uint256)", "0x01bd4051": "disown(string)", "0x4bc2a657": "setVoter(address)", "0x522103fa": "changeUnicorn(uint256,address)", "0xc988d70f": "getDailyWithdrawLimit()", "0x2f7f3ecf": "findNextHour(uint256,bytes)", "0x1b769e74": "testThrowsRestartNotUpdatable()", "0x4d561721": "etherandomSetNetwork()", "0x92a781d8": "changeBaseValue(uint256)", "0xf0a78538": "scheduleTransaction(uint256,bytes)", "0x64ef212e": "proxyTransferWithReference(address,uint256,bytes32,string)", "0x97c3ccd8": "ban(address)", "0xdeb6930c": "PriceTicker()", "0x6cc5fdaa": "setBytes32(bytes,bytes)", "0x92c8eb96": "DSFalseFallbackTest()", "0x6534b4e2": "IsPayoutReady__InfoFunction(bytes32)", "0x15e812ad": "getBaseFee()", "0xf5b53e17": "getInt256()", "0x081bf263": "isOOB(uint8,uint8)", "0xd2fb8787": "recordExists(bytes)", "0x86c57fcc": "b32ToBytes(bytes)", "0xe3a199d6": "testThrowCreateNewRevisionNotUpdatable()", "0x57cfeeee": "transfer(address,uint256,bytes32)", "0xb72e717d": "fromAddress(address)", "0x61b20d8c": "retrieveFunds()", "0xf4b103d4": "SimpleStorage(uint256)", "0xe2056c46": "ExtraBalToken()", "0xc3ee6311": "lockAndCall(string)", "0x136af582": "next(bytes,bytes,bytes,bytes,bytes,bytes,bytes)", "0xc5d5997c": "changeSubUser(address,address)", "0xf8018a79": "prepend(address,address)", "0xf6b4dfb4": "contractAddress()", "0x9450b1c8": "addCharityFundation(string,string,string)", "0xd1a8d447": "get_all_bet_values()", "0x66d8c463": "reveal(bytes32,string)", "0xbb963c8a": "transferLibOwnership(bytes,address)", "0xd56b2889": "finish()", "0x9fb25d9e": "LeaderMessage()", "0x6ad50ed4": "investmentEntryInfos()", "0xa4d575ce": "_forward(address,bytes)", "0xa3ec5616": "next(bytes,bytes,bytes,bytes,bytes,bytes,bytes,uint256)", "0x0db73c72": "noevent()", "0xf449619e": "collectPrize(uint256)", "0x1afccfa5": "Proposal(address,address,address,bytes,bool)", "0x4788cabf": "getContractId()", "0x4112987c": "strConcat(string,string,string)", "0x928a00d2": "deleteCoin(uint256)", "0xd9ec0508": "testThrowTransferNotEnabled()", "0x9aaf442c": "applyCensorship(uint256)", "0x49407a44": "claimEther(uint256)", "0x4fcf8210": "eraseRecord(bytes32)", "0x5ed84aa6": "getNymCenterAPIURL()", "0xa3c2c462": "totalReceived()", "0x5938748e": "changeVotingRules(address,address,uint256,uint256,uint256)", "0x6fc9d5e4": "changeCompareTo(uint256)", "0xe2ee9941": "tap(bytes20)", "0x0ff4f160": "oraclize_query(uint256,string,string[1])", "0x43ec3f38": "toSliceB32(bytes32)", "0x3288eb0b": "ChineseCookies()", "0x373c98a2": "authCall(address,bytes32)", "0x6ea056a9": "sweep(address,uint256)", "0x8dc45377": "getDuel1(uint256)", "0xd4625a3a": "equals()", "0x616fca9b": "adopt(address)", "0x32cea83e": "birth(bytes)", "0x002a5cc9": "getTicketHolders(uint256)", "0x31119b4d": "changeDeveloper(address)", "0x69569a51": "setFrontend(address)", "0xb7e24979": "addThing(bytes)", "0x164e68de": "withdrawFees(address)", "0x42bf4431": "orderMatchTest(uint256,uint256,uint256,int256,uint256,uint256,address,address,int256)", "0x5dd672ec": "latestBid()", "0x45fe6e2a": "Scheduler()", "0x55cc4e57": "setIssuer(address)", "0x1df5e755": "Etherandom()", "0x8f70009d": "id_for_address(address,address)", "0x39b50688": "cancelSellOrder()", "0x40953102": "scheduleCall(address,uint256,bytes,uint256,uint256,uint8,uint256)", "0x677913e9": "setAmount(int32)", "0x66671c71": "BaseScheduler(address,address)", "0xfe71aec5": "LittleCactus()", "0x879d46fd": "DAOTrust(address,address,bytes,uint256,uint256,uint128)", "0x3b143184": "Congress(uint256,uint256,int256,address)", "0x7370a38d": "getNumPackages()", "0xfee35ff8": "newInvest(uint256,address,uint256)", "0x57dc9760": "DaoChallenge()", "0x8ac78c80": "Docsign()", "0x76d66f5d": "_Transfer(address,address,bytes32)", "0x9dc2c8f5": "fireEventLog4Anonym()", "0x43114842": "acceptChallenge(uint256,uint256,uint256)", "0x2043285d": "getMarketMakers()", "0xfb32f4f5": "ARK_FLAGGER_1_00()", "0x69431ab6": "TokenCreation(uint256,uint256,address,string,string,uint8)", "0x045c6ce0": "voteForProposal(uint256)", "0xa140e79c": "setMinimumDebatePeriod(uint256)", "0x331a72d1": "getRetractable(bytes32)", "0x87cc1e1c": "setExporterBank()", "0x7183616c": "notarize(string)", "0xce79add1": "givableBalanceOf(address)", "0x6f0cfab6": "DNSResolver()", "0x1c2f38ff": "paid(uint64)", "0xb7de47d3": "getIndex(uint256,uint256)", "0x04a2b2c2": "testOwnerCanBreach()", "0x65a4dfb3": "oraclize_query(uint256,string,string,string,uint256)", "0xf2ddc772": "confirm(bytes)", "0xa00ce377": "getIsContractValid()", "0xfe9fbb80": "isAuthorized(address)", "0xbbd39ac0": "coinBalanceOf(address)", "0xa4fde8bc": "player_declare_taking_too_long()", "0xd052fbf6": "getHistory(string,uint256)", "0xd205ad7d": "proposeDissolve(bytes)", "0x5a3b7e42": "standard()", "0xf27197ab": "getIsAvailable()", "0x00a94b6e": "oraclize_query(uint256,string,string[5],uint256)", "0x971c803f": "getMinimumStackCheck()", "0x5168afa4": "getPackageHash(bytes,uint8,uint8,uint8)", "0xaef99eef": "Game()", "0x7f924c4e": "testDeposit()", "0xb1adc241": "BalanceDB()", "0x6a704d7b": "AddedToGeneration(address,uint256)", "0xb9f37c86": "Registrar()", "0xc631b292": "closeVoting()", "0x19350aea": "nameFor(address)", "0x85dee34c": "query2_withGasLimit(uint256,string,string,string,uint256)", "0xbf187478": "shift_left(uint64,uint256)", "0x5b6b431d": "Withdraw(uint256)", "0xe5dd90a5": "HumanStandardToken(uint256,string,uint8,string)", "0xbf8c50ff": "scheduleTransaction()", "0x013d64bd": "setCanCall(address,address,string,bool)", "0xb870ecbb": "testNormalWhitelistAdd()", "0xbcd3d8ca": "Collector(address,address,uint256)", "0x4401ff5c": "sellShares(bytes,uint8,uint256,uint256)", "0x3e0dfbdf": "getInvestorByAddress(address)", "0xcb3e64fd": "unhalt()", "0xafc24e3d": "getChallengeAnswer(uint256)", "0xa36c8ec2": "UpdateContractorAddress(address)", "0xd5a4a3c6": "findRecentBet(address)", "0xb028ee13": "s2b(string)", "0x692ad3a9": "round(uint256,uint256,uint256,uint256)", "0x0a7493b4": "Etheropt(uint256,string,uint256,uint256,bytes,address,int256[])", "0x60689557": "Rock()", "0x717fedf0": "getFirstActiveDuel1()", "0xe837ab59": "getParticipantByAddress(address)", "0x32d5fe98": "revealCampaign(uint256,uint256)", "0x0178b8bf": "resolver(bytes32)", "0x44faa139": "Withdraw(uint32)", "0x418cf199": "setEstimateCost(uint256,uint256)", "0xae45850b": "schedulerAddress()", "0xd4871517": "BTCLotto(address,uint256)", "0xfbffb355": "testBitsEqualFailIndexOOB()", "0x2be6d43c": "ARKTagger_1_00()", "0x1df47aad": "ReplayProtection()", "0xb36a0b15": "getSignDetails(uint256,uint8)", "0x9c4baf27": "Skywalker(address,address)", "0xfb34fc6f": "WatchNextBlockReward()", "0xceba30b5": "scheduleTransaction(address,bytes,uint256[4],uint256)", "0xfc94dd18": "verifyHumanStandardToken(address)", "0x1ff13086": "size(int256)", "0xce92dced": "newBid(bytes32)", "0x231944e2": "moveUnits(uint256,uint256,uint256[])", "0x784813e0": "lookupBet(uint256,uint256)", "0xe0e3ba5a": "getLosesShare(address)", "0x5c1b3ca1": "getConfigUint(int256,bytes32)", "0x91060168": "fetchString(address,bytes4,bytes32)", "0x354b2735": "testDeploy()", "0xb88eef53": "registryCreated()", "0x8e3d4e5e": "Fibonacci(bytes)", "0x64bd87d6": "scheduleCall(address,bytes,bytes,uint256,uint256)", "0x5c3d005d": "demote(address)", "0xb6509c12": "Ethereum_twelve_bagger()", "0xe87508be": "investorDeposit()", "0xcb96012e": "hashTo256(bytes32)", "0x314e0fb6": "scheduleTransaction(address,bytes,uint256[3],uint256)", "0x5b6a54bc": "adjustTransactionFee(uint256)", "0x5f515226": "checkBalance(address)", "0x76cd7cbc": "sign(bytes)", "0xce220ecf": "testAddBalanceFailsAboveOverflow()", "0x922fc84b": "taskProcessedNoCosting(uint256)", "0xf8b2cb4f": "getBalance(address)", "0x7a29332d": "buyAllOutcomes(uint256,uint256)", "0x04106c8b": "startGeneration()", "0x8eaa1e29": "getContentByData(address,uint256,string,string)", "0x5a7a8850": "rollWithSeed(bytes32)", "0x2facc4e8": "depositGovernance(uint256,address)", "0xf2561a43": "voteSuicide(address)", "0xee1b4828": "closeBooks()", "0x18f303a1": "SetInternalValues(uint8,uint256)", "0xce60f78d": "createMarriage(bytes,bytes,uint256,bytes,bytes)", "0x18b749c4": "payEther(uint256)", "0xbbc6eb1f": "getDefaultDonation()", "0x0b1ca49a": "removeMember(address)", "0xccf4f413": "setSubRegistrar(string,address)", "0x4616caa9": "pushCoin(uint256,address,string)", "0xd69450d5": "setUUID4Bytes(bytes)", "0xc98165b6": "createTarget()", "0x8c79a24d": "refName(uint256)", "0x56d88e27": "len()", "0xbfc3d84b": "CT()", "0xc7f2e6af": "Contribute(bytes20)", "0xd7e11e9d": "AddTicket(bytes)", "0x2d06177a": "addManager(address)", "0xd588acc4": "claimMiningReward()", "0x2ffb9e64": "updateGasForXaurData(uint256,uint256)", "0xf896503a": "getConfigAddress(bytes32)", "0x9af8c4ba": "respond(uint256,address,bytes)", "0x82a5285d": "getMinBetAmount()", "0x3ead67b5": "changeContractOwner(address)", "0xb29d7914": "getRefResults(uint256)", "0x135128c2": "CounterPartyDeposit()", "0x795b9a6f": "scheduleCall(address,bytes4,uint256,bytes)", "0x83197ef0": "destroy()", "0x433836dc": "scheduleTransaction(address,bytes,uint8,uint256[3],uint256)", "0xf009347d": "KudosProxy(address)", "0xf2fde38b": "transferOwnership(address)", "0x62c99e84": "_Approval(address,address,bytes32)", "0x1b83b823": "notifyPlayer(uint256)", "0xe56c8552": "spinTheWheel(address)", "0x93eec1fb": "setName(uint8,uint8,string)", "0x11af3c68": "divest(address)", "0x8279c7db": "setReceiverAddress(address)", "0x44691f7e": "hasStarted()", "0x349501b7": "checkDepth(uint256)", "0xe8beef5b": "fireEventLog3Anonym()", "0x0870607b": "addSubUser(address)", "0x063925c8": "scheduleCall(bytes,uint256,uint256)", "0xa23744f0": "tryCreateCheckRecord(bytes)", "0x35d79fad": "CertificationDb(address,uint256,address)", "0x44691f2b": "Dispute()", "0xd7ccc2c3": "getLastPayment()", "0x152583de": "getAttributes()", "0x1a9360dd": "checkDate()", "0x420ef2b3": "TargetHash()", "0xf0caea2b": "SmartRoulette()", "0x5d268629": "Refund()", "0x23385089": "emitApprove(address,address,uint256)", "0x7648c929": "returnRemainingEther()", "0x5d5bc4cb": "BetOnRed()", "0xde8fa431": "getSize()", "0xda6b31b9": "testErrorTransferToNullAuthority()", "0x444dd6f3": "Elcoin()", "0xe1fa8e84": "register(bytes32)", "0x3e0a322d": "setStartTime(uint256)", "0x21bacf28": "getDefaultFee()", "0xb1662d58": "setModule(address,bool)", "0x5b0fc9c3": "setOwner(bytes32,address)", "0x40193d17": "getPongvalConstant()", "0xfb95adeb": "testFailBlockhashInsuffiecientFee()", "0x8ecc0950": "returnToOwner()", "0x34b7ac9b": "END_MINTING()", "0xeaa37394": "create(bytes,bytes32,bool,bool,bool,bool,bool)", "0xd7bc23af": "newParameters(int256,uint256,uint256,uint256)", "0x97709cde": "ARK_VOTER_1_00(uint256,uint256,uint256,uint256,uint256,uint256)", "0xcf4a1612": "scheduleTransaction(uint256,address,bytes,uint256)", "0x40695625": "testRetractLatestRevision()", "0x90c3f38f": "setDescription(string)", "0x5fdf05d7": "two()", "0xaaac50bd": "transferDisable(bytes32)", "0x206a44f3": "getNum(bytes,uint256)", "0x7ac26aeb": "getTag(string,uint256)", "0xdc3f65d3": "createdByMe()", "0xe99543aa": "Trash(uint256)", "0x1bcad37a": "getTotalCost()", "0xa7f43779": "remove()", "0x3416f9d4": "subtractSafely(uint256,uint256)", "0x3bcf7d22": "newBribedCitizen(address)", "0x918f1bb5": "ProjectKudos()", "0xcf09e6e1": "SetBigContract(address)", "0x23add736": "claim(uint256,uint256,uint8,bytes,bytes)", "0x8ac6a869": "isObsolete()", "0x2324c67c": "getAllSignatureHashes(bytes4)", "0x981a60f5": "extractNameFromData(bytes)", "0xc018d0e6": "getFeeAmount(int256,int256)", "0x50e06b57": "Etherization()", "0x49e65440": "setSymbol(bytes32)", "0xfaee13b9": "set(int8)", "0x01ffc9a7": "supportsInterface(bytes4)", "0xc0b92612": "changePig(address)", "0x3f9f5b68": "setPreviousID(uint256,int256)", "0x2e9c5e77": "doStackExtension(uint256)", "0xc83be888": "single_move(uint256,uint8,uint8)", "0xef19c332": "_checkSigned(bytes32,uint256,uint8,bytes32,bytes32)", "0x2f30c6f6": "set(uint256,address)", "0x62986e27": "Canary(address,uint16)", "0x44dfdce0": "getNameOwner(bytes)", "0x4b7fcee7": "ownerPausePayouts(bool)", "0x84dac46e": "Fucksign()", "0x0878bc51": "getAttachesto(uint8)", "0x42d16748": "getMinDailyWithdrawalLimit()", "0x4ecd73e2": "DistributeDividends(uint256)", "0x03750d94": "serverSeed(address,bytes32)", "0xea0a5237": "announce(string)", "0x611daa7e": "EmergencyBalanceReset(uint256)", "0x2ae87a70": "getNumContents(address,uint256)", "0x5ec01e4d": "random()", "0xfd735602": "executeN()", "0xfebefd61": "startAuctionsAndBid(bytes32[],bytes32)", "0x8b64d70e": "owner_set_time_limit(uint256)", "0x2839e928": "ackermann(uint256,uint256)", "0xaf29e720": "remainingGasFund(uint256)", "0x9eee85fe": "bookEarnings(address,uint256)", "0x3733ffca": "convertTo(uint256,string,string)", "0xdbde1988": "transferFromWithoutReward(address,address,uint256)", "0xd3edcb5b": "getCreditorAddresses()", "0x77fcb91d": "forward(address,bool)", "0xf062e26b": "check_darkdao()", "0xdef2489b": "convert(address)", "0xccbda1af": "getChannelByName(string)", "0x267c8507": "authorizeManager(address)", "0xf1c30ec0": "reclaim(bytes)", "0xe6470fbe": "updateDefaultPayment()", "0x8fe58eb9": "Triger()", "0xd6b44859": "scheduleUndoIt(uint256)", "0x0eb8ed07": "transferEnable(bytes32)", "0xfc1f2a70": "Add(uint256,string,string)", "0x058026d0": "checkTransferToICAPWithReference(bytes32,uint256,string)", "0xaf27c7b3": "Security_HasPasswordSha3HashBeenAddedToBankAccount()", "0x5b151fd2": "fifty_fifty()", "0x531d1974": "testThrowRetractLatestRevisionEnforceRevisions()", "0x60213b88": "getInitialWithdrawal()", "0x29e94503": "VersionedBlob()", "0x9c5d7030": "reimburseGas(uint256,address,uint256,uint256)", "0xcd9a3c98": "any(bool[7])", "0xb484e532": "getMyMsg()", "0xd1f59db9": "isLatestMinorTree(bytes32,bytes32)", "0xe0c6190d": "checkTime()", "0xaf5610dd": "isThisPreforkVersion()", "0xfa968eea": "minBetAmount()", "0x003538c5": "TestRegistrar(address,bytes32)", "0x71c59097": "MainnetSurvey(uint256,string,bytes32[])", "0xc82aac47": "searchByTag(bytes32)", "0xeca5c793": "testErrorUnauthorizedNameRegister()", "0xdc75f2db": "multiowned(address[],uint256)", "0x4c9ed763": "requestTokensBack()", "0xbd9a5673": "oraclize_query(string,string[5])", "0xb11e3b82": "createEvent(bytes32,bool,int256,int256,uint8,address,address,bytes32[])", "0x86e4e178": "CheckTickets(address,uint256,uint256)", "0x53c84526": "setSmartAffiliateContract(address)", "0x89029d8c": "get_all(uint256,uint256)", "0xc25e6908": "ultimateOutcomes(bytes32)", "0x6b1e564a": "challengeWinningOutcome(bytes32,uint16)", "0x1c895915": "getNumberOfPayments(uint256)", "0x244fcd03": "removeRelease(bytes32,string)", "0x2ca6d2c0": "getAccountSize(address)", "0xfe67a54b": "endAuction()", "0x756fb8c9": "getOptionChain()", "0x88102583": "safeCastSigned(uint256)", "0x60063887": "transferDebt(address,address,address,uint256)", "0x16216f39": "return13()", "0x8089d001": "getHashOfBlock(uint256)", "0x27bc39c0": "submitCanonicalCandidate(bytes,bytes,bytes,bytes)", "0xb29ae23f": "getDateOfSignature()", "0xdd729530": "add_shield(uint16)", "0x38557648": "executeSellOrder(address)", "0xe2a71f12": "accountDelete()", "0xce869a64": "fails()", "0x69bdfd3a": "toContractDie(bytes,bytes,uint256)", "0x99aeade3": "iterateTable(uint256,uint256)", "0x46bdca9a": "equal(string,string)", "0x5e07f240": "shiftBitsLeft(bytes,uint256)", "0x76285b5b": "_is360thDay()", "0x594151e0": "Dice()", "0x4dc43eaf": "setTreasury(uint256,uint256)", "0xec727000": "getApprovalDB()", "0xb144adfb": "balance_of(address)", "0x63052d82": "getOwnersIndex(address)", "0x833b4596": "testApproveSetsAllowance()", "0xc67d376d": "getClosedCandidates()", "0xcf03f5f4": "activateMasterKey(address)", "0x7ca55e00": "etherandomVerify(bytes32,bytes32,bytes32,uint256,uint256)", "0xd92ebe46": "createDAO(address,uint256,uint256,uint256,string,string,uint8)", "0x3773930e": "ConfigureFunction(address,uint256,uint16,uint16,uint16)", "0xfee6d28c": "addSnapshot(string)", "0xe71264fa": "addNewTokens(uint256)", "0xc4d9102f": "setNextID(uint256,int256)", "0xa6f0e577": "isLeapYear(uint16)", "0xc7102df7": "__stopBlock()", "0xfa93019c": "getBlocks(uint8,uint8)", "0xe9794dc1": "CreateHash(uint8,string)", "0x5460ef10": "sendWithExtraGas(address,uint256,uint256)", "0x2f62a6ff": "fipsRegister(uint256,address,bytes)", "0xd630bd53": "pledgeApprove(uint256)", "0x3448c7d6": "createHistory(bytes,address,address)", "0xdda3342b": "ReplicatorFactory()", "0x0cd865ec": "recover(address)", "0xb9f28076": "historyIdx(address)", "0x4dda1764": "CafeMaker()", "0x883ba26b": "getIsSettled()", "0x3f5e268f": "convictInitial(uint256,uint256)", "0x4a3b0eec": "authorizeOpen(uint256,bool,string)", "0xee6d2641": "sendWithExtraGasExt(address,uint256,uint256)", "0xde14bbf7": "randomGen(uint256,uint256)", "0x7f3bd56e": "disburse(address,uint256)", "0x20d8741f": "Feed()", "0x60c6b3a5": "claim(bytes,address,uint256,uint8,bytes,bytes)", "0xda4b5e29": "contains()", "0xb3c25835": "addUser(address,string,string,uint256)", "0xee2af3fb": "set_factory(address)", "0xb821f815": "pay_winner(uint256)", "0x138cc941": "testErrorTransferToRejectAuthority()", "0xc0b6f0c2": "NextRoundAndEvents()", "0xc7e67360": "GAS_BUFFER()", "0x058d7433": "setAlliesContract(address)", "0xd810f298": "computeSettlementAmount()", "0xa24d23eb": "ProcessGame(uint256,uint256)", "0x7ac91cc2": "testFailOwnedAuth()", "0x79c3ddc1": "isPackageOwner(string,address,address)", "0x478ae93c": "playToWin(uint256)", "0x6632a507": "testSetupPrecondition()", "0xb6013cef": "finalize(uint256,uint256)", "0x37b7bf11": "Tile(int256,int256)", "0xecfc7ecc": "placeBid()", "0x70b1d9d4": "requestCanonicalFormat(bytes)", "0x315fdea3": "TreasureChest()", "0xc5575ef0": "checkTransferFrom(address,address,uint256)", "0x65c72840": "getDay(uint256)", "0xd6eafd08": "scheduleCall(address,bytes,bytes,uint8,uint256[4])", "0x350fbe2e": "calcNextDrawTime()", "0x8af784dc": "expectEventsExact(address)", "0x2db89533": "Auth(uint8,address)", "0x9f203255": "setAuditor(address)", "0x2526d960": "clawback()", "0x3fbd40fd": "ProcessDraw()", "0xface030b": "SpinTheWheel(address)", "0x648621ec": "xnotify(string)", "0x22dc36e2": "processed(uint64)", "0x6f52167d": "payDuel(address,string,address,string)", "0x8f70bfa0": "processDeposit()", "0x25ea269e": "Scissors()", "0x93feb13b": "ForceSendHelper(address)", "0xb688a363": "join()", "0x89859b50": "updateLatestTree(bytes32)", "0xf83d08ba": "lock()", "0x7d287697": "testTryGetUnset()", "0x98d5fdca": "getPrice()", "0xfe72e717": "toDie(bytes)", "0xb3c06f50": "transferFrom(address,address,bytes32)", "0x1465aa97": "testingContract()", "0x069d6d1c": "closeOrder(uint256)", "0xa79f26dc": "force()", "0xf2371fb3": "grantGiveableKudos(address,uint256)", "0xaa7dcd84": "testUpdateAuthorityEvent()", "0x0d8b5fa2": "testControllerValidTransferFrom()", "0x0e0f55d0": "RewardOrder(uint256,uint256)", "0x9ea1b79d": "getContentChannel(uint256)", "0x4a67fa7d": "setLotteryFee(uint256)", "0xdb006a75": "redeem(uint256)", "0x8f4ed333": "step2()", "0x1a10cfc3": "delete_entry(uint256,uint256,uint256)", "0xd422e4e0": "takeFee(address,uint256,string)", "0x61a00f6d": "Ballot(bytes32[])", "0x9c30936f": "removeCertificationDocumentFromSelf(bytes32)", "0xa5f4af33": "playerWithdrawPendingTransactions()", "0x07ad9ecb": "safeSend(address,uint256)", "0x8f99ea43": "setDividendDB(address)", "0x1df473bc": "newContract(bytes)", "0xea5ea470": "payFunding(uint256)", "0x743e0c9b": "receiveTokens(uint256)", "0x21835af6": "__dig(uint256)", "0x47448e8a": "set(bytes32,string,bytes32)", "0x9b1ad792": "destroyToken(address,uint256)", "0xf765088f": "UpdateClientAddress(address)", "0xddbbc35c": "searchByName(string)", "0x5ed7ca5b": "halt()", "0x97950740": "roomForBirth()", "0xfc01abbe": "stringToBytes32(string,string)", "0xea3d508a": "selector()", "0x8c88752a": "ContributorList(uint256)", "0x5837e083": "move_history(uint256)", "0xf7c3ee7a": "immortality()", "0x1b9f9647": "accessMyWallet(address)", "0xc8691b2a": "getHistory(uint256)", "0x91e8d3dc": "testBitOrFailIndexOOB()", "0x5c89c10d": "setBannedCycles(uint256[])", "0x4500054f": "isCancellable()", "0x334ef224": "testThrowsUpdateLatestRevisionNotOwner()", "0x763a738c": "allNames()", "0x45590ec8": "addTag(uint256,string)", "0xe7740cf9": "revealPaper(string)", "0xd9d2d058": "Splitter()", "0xb412d4d6": "CafeDelivered()", "0x8365172c": "num_levels()", "0x41c0e1b5": "kill()", "0x3106fea0": "voteOnProposal(uint256,bool,uint256)", "0x82ab890a": "update(uint256)", "0x4636a159": "newPhoneToAddr(address,uint256)", "0x2f29d8c5": "elapsed()", "0x1bf20668": "testAdminTransfer()", "0xf709dd51": "getTrademark()", "0x8b859409": "setRelease(bytes32,bytes32,string)", "0x03959bb7": "setDataContract(address)", "0x4247f52d": "DoRoll()", "0x31ab4066": "testAuthorityTryAuth()", "0xac4b2bae": "newParameters(int256,uint256,int256,uint256)", "0x57eaeddf": "_isContract()", "0x4a3a87e2": "CreateProxyWithControllerAndRecoveryKey(address,address,uint256,uint256)", "0xd116c8c4": "releasePayment()", "0x6615dd83": "setSeedSourceB(address)", "0xb8aca90b": "CurrentGame()", "0xc124e2ea": "checkBetDozen(uint8)", "0x4b0bbf84": "addEntropy()", "0x452fbc41": "USN(address,address,bytes,uint256,uint256,uint128)", "0xcdb6753b": "setNav(uint32)", "0xbb5d40eb": "isValid()", "0xd6f42038": "PhoneToAddress()", "0x6bc3e0f0": "verifySecondHalf(uint256[4],uint256[4],uint256[4])", "0x33893071": "checkMyWithdraw(address)", "0xfb46d4c5": "tweet(string)", "0x248582b0": "receivePaymentForGoodsSoldEarly()", "0x766a3f2e": "Security_ConnectBankAccountToNewOwnerAddress(uint32,string)", "0x1c8d5d38": "allowance(address,address,bytes32)", "0x6b256f57": "DAOSecurity(address,address,bytes,uint256,uint256,uint128)", "0xe8d1e961": "lockAccount(uint256)", "0x152fb125": "SimpleMixer()", "0xf72457af": "CertifierDb()", "0xe8a5282d": "setConfig(bytes32)", "0xbeb92f55": "setCaller(address)", "0x9a571d9f": "isAlphaLower(bytes1)", "0x46a2679a": "getSubpotsCount(uint256)", "0xd62d3115": "testCreate()", "0xb6ed0632": "cancelOrder(uint256,uint256)", "0xc95e81cb": "MyBet(uint8,address)", "0x1d5a9f3f": "object_types(uint256)", "0xa49d53a1": "SmartRevshare()", "0x5b65b9ab": "setFee(uint256,uint256,uint256)", "0x116c6eab": "getProfitShare(address)", "0x8e46afa9": "getDefaultGracePeriod()", "0xdabc706e": "getProposalCost()", "0x3fbb539d": "scheduleCall(address,bytes,uint256,bytes)", "0x86269a88": "checkBetNumber(uint8)", "0xb6ac24df": "updatePatchTree(bytes32)", "0x4637d827": "trust(address)", "0x1c1b8772": "update(address)", "0x5a9f2def": "scheduleCall(bytes4,bytes,uint256,uint256)", "0x81a60c0d": "getResults(uint256)", "0xd1b4ff7e": "multiAccessRevokeD(bytes32,address)", "0x92b7d5b9": "getCurrentGaslimit()", "0x77ceded8": "mintGrey(int256,address,uint256)", "0x2a095fbe": "unlinkEID(bytes,bytes,address)", "0xa6e16ba2": "testThrowsRetractLatestRevisionNotOwner()", "0x4579268a": "getOffer(uint256)", "0xcabb3a3a": "isAlphaNumeric(string)", "0xfadc51cf": "isAlpha(bytes1)", "0xf2022905": "toldYouItWouldWork()", "0x686e8aaa": "GetMoney()", "0x07718a3b": "BankOwner_WithdrawDonations()", "0xc58343ef": "getRequest(uint256)", "0x7b1a547c": "registerAs(address,string,uint256,string,address)", "0x213b9eb8": "setAddr(string,address)", "0x75090ebf": "changeDomain(uint256,uint256,uint256,address)", "0xdbbdf083": "register(uint256,address)", "0xfa4e5e5a": "notify(uint8,string,string)", "0x86a5ff97": "changeStatus(string)", "0xb8f71f26": "scheduleTransaction(uint256,address)", "0xa2ec191a": "addDSource(string,uint256)", "0x18b31f94": "registerLengthFunction(string,string,address)", "0x7b395487": "voteForUltimateOutcome(bytes32,uint16)", "0x39246d75": "VersionModel()", "0xd500dd6a": "challengeTimeout(uint256,bool,address)", "0xd1da09ee": "extractImportFeeChargeLength()", "0xc74e907b": "commit(address,uint256,uint256)", "0x4b09ebb2": "e_exp(uint256)", "0xec3af4a9": "getProjectKudos(address)", "0x714064f3": "BreakableBond(address,address,uint256)", "0xc4bc5da5": "resumeContract()", "0xf7888aec": "balanceOf(address,address)", "0x2f597e71": "testLongInput()", "0x7212b67e": "add_potion(uint16)", "0x9a15f4f3": "getBlockHeader(int256,int256)", "0x6eacd48a": "ownerPauseGame(bool)", "0xf739ed4c": "id_for_user_version(uint256,uint256)", "0xfaf0952b": "testThrowRestartNotOwner()", "0x88a1e895": "test2Fails()", "0x237e9492": "executeProposal(uint256,bytes)", "0x7cb97b2b": "set_owner(address)", "0x2bb685bc": "kill2()", "0xdc52696f": "tokenSupplyChanged()", "0x83d852d9": "shutdownTransactions()", "0x525b25b1": "getDeploymentReward()", "0xeac116c4": "createKingdom(string,address,address,address,address)", "0x014e5fde": "ARKController_1_00()", "0xc6ae3b57": "dEthereumlotteryNet(address,address)", "0xcddbe729": "game(uint256)", "0x8823a9c0": "changeFeeTake(uint256)", "0x021991e7": "getBetsLocked()", "0x3015394c": "cancelRequest(uint256)", "0x9d118770": "destroy(uint256)", "0xe854dfb4": "Order(address,uint256,uint256)", "0x8435be4b": "getLastFarm(uint8,uint8)", "0x27fbcac5": "getChannelFeed(address,uint256,uint256)", "0xc1be4031": "XaurumProxyERC20()", "0x8e25071a": "setProxyCurrator(address)", "0x4f139314": "compensateLatestMonarch(uint256)", "0x85c78fac": "retryOraclizeRequest(uint256)", "0x478e25bf": "resetAction(bytes32)", "0xc74c251f": "addSafely(uint256,uint256)", "0x058aace1": "divest()", "0x6d1da953": "createWithNonce(bytes32,bytes)", "0x30c0f8d6": "scheduleTransaction(address,bytes)", "0x69a5e902": "multiAccessCall(address,uint256,bytes)", "0x6f8b44b0": "setMaxSupply(uint256)", "0x919edc7c": "getChainySender(string)", "0x0b7ad54c": "getContent(uint256)", "0x5bfdc700": "registerData(address,int256,bytes,address)", "0x0d1fce42": "getBankroll()", "0x739b47ca": "recordWin(address)", "0xa5ea11da": "getParameters()", "0xf8af9e6f": "setAdv(uint256,string,string)", "0xe32e9f22": "setDeploymentReward(uint256)", "0x0baaaed9": "setConfigBytes(bytes,bytes)", "0x99f4b251": "mine()", "0x362af076": "createRequest(address[3],address,uint256[11],uint256,bytes)", "0x7fd238ba": "doCoinage(address[],uint256[],uint256,uint256,uint256)", "0x3adb2de7": "bet_this_spin()", "0xa311dd70": "setArray(uint8[10])", "0xc5bf339c": "getLastNonPublished()", "0x9d1bbd7e": "CancelRoundAndRefundAll(uint256)", "0x89790192": "WithFee(address,uint256)", "0x1c879c47": "getMarketHashes(bytes)", "0xbb84d362": "splitProfitVIP_only_Dev()", "0xffb1a6cb": "getWins(address)", "0x3b355af6": "baseData()", "0xb181a8fc": "resetContract()", "0x7d3d6522": "goalReached()", "0xd4c2b6b1": "scheduleTransaction(address,bytes,uint256[5],uint256)", "0xd65ab5f2": "startGame()", "0x4c4766e8": "KittenRegistry()", "0x77e5bf84": "getTxGasprice()", "0xff981099": "getVotes(uint256)", "0x4a7b26ec": "join_game(uint256)", "0xcccf7a8e": "has(uint256)", "0xa525f42c": "transferFromToICAP(address,bytes32,uint256)", "0xeef8e35f": "setChainyURL(string)", "0x557ed1ba": "getTime()", "0x595da94d": "has_owners(uint256)", "0x12511c14": "transferEnable(bytes20)", "0x2b291eb6": "UserAddTicket(bytes)", "0x50baa622": "withdrawToken(uint256)", "0xc01a8c84": "confirmTransaction(uint256)", "0x671dacdc": "CalculateSqrt(uint256)", "0xe74ffbd5": "getPart(bytes32,uint256)", "0xdd54a62f": "content(string)", "0x4025b293": "redeemAllOutcomes(bytes32,uint256)", "0xa8659216": "setInitialLockinDays(uint256)", "0x00b5b223": "computeResponse(uint256,uint16)", "0x2ef761d3": "buyTile(uint8,uint8)", "0x0a874df6": "lookup(uint256)", "0x42c69566": "get_address(address,string)", "0x02dc2e1d": "queuePayment(bytes)", "0x86bb7121": "getBlocksPerRound()", "0xacfdfd1c": "deploy(uint256,string,string,address)", "0x7d298ee3": "beforeExecute(address,uint256)", "0x5023d124": "TestFactory()", "0x827ef325": "_parseMsgData(bytes)", "0xd35b9d83": "codeAt(address)", "0x26161670": "donkeyRanking(uint256)", "0xe0834ea4": "WatchBalanceInEther()", "0xd44f2d3d": "getInitialWithdrawalDone()", "0x4f223fe3": "StatefulFactory(string,string,string)", "0x91cd242d": "setMeta(bytes32,bytes32,bytes32)", "0x9a97043b": "depositIdx(address)", "0x85db2dda": "PayoutQueueSize()", "0x423e1298": "setDoNotAutoRefundTo(bool)", "0xb7a97a2b": "isValidChannel(uint256)", "0xc1441172": "setBlackFlagRequest(uint256,uint256)", "0x53d9d910": "create(address[],uint256,uint256)", "0x64d905c0": "awaitingParticipants()", "0x718bd6dd": "setRequestUntil(uint8)", "0x5a353193": "KrakenPriceTicker()", "0xfb099c84": "newInvestor()", "0xd264e05e": "forward()", "0xcd9f05b8": "balanceEtherAddress(address)", "0xa1da2fb9": "retrieveDAOReward(bool)", "0x60708ae3": "issueAndCommit(address,address,uint256,uint256)", "0x109df68e": "rotateBitsRight(bytes,uint256)", "0x793cd71e": "cashOut()", "0xd3017193": "addUser(address,uint256)", "0xaacf5328": "setVideoID(string,uint256)", "0xb56e1bca": "setExchangeToken()", "0x9341231c": "sendOrThrow(address,uint256)", "0xaed8f3da": "partsPerBillion(uint256,uint256)", "0xdcff5581": "NewFeeAddress(address)", "0xbbe4fd50": "getNow()", "0x3df16377": "make_move_and_claim_victory(uint256,uint8,uint8,uint8,uint8,uint8,uint8,uint8)", "0x5ae5df8f": "deleteRef(string)", "0x6d853ab6": "isSubUser(address)", "0x28472c6c": "claimComputation(bytes,bytes)", "0x2c215998": "updateStatus(string)", "0x7eff1465": "setAccountAllowance(address,address,uint256)", "0xd5089396": "Token(string,string,uint8,uint256)", "0xd1f7a4e4": "createCertificate(bytes)", "0x8c0e2a31": "regProxy(address)", "0xa819819b": "sweepDeityCommission(uint256)", "0x2b861629": "storeBlockHeader(bytes)", "0x25d4bdeb": "LookAtCollectedFees()", "0x5dddea66": "updateState(uint256,uint8,uint256)", "0x3ccfd60b": "withdraw()", "0x6795dbcd": "getAddress(bytes32,string)", "0x9b9ba572": "oraclize_query(string,string[3])", "0xa925d85e": "Exchange(address,address)", "0xbfe8c107": "betOnDozen(bool,bool,bool)", "0x1af716ba": "transferFrom(address,address,uint256,string)", "0x67eae672": "sendCoinFrom(address,uint256,address)", "0x311d5a2a": "recordBalance(address)", "0x7ca823d5": "getAverageChainWork()", "0x19483cd1": "checkHash()", "0xd366fbab": "startLottery(bytes32,uint256,uint256,uint256,uint256,bool)", "0x4d70d1d7": "generateId(uint256)", "0xe13dc28b": "testValidTransfers()", "0x12065fe0": "getBalance()", "0xdd67a360": "OrderLifeCycle()", "0xd7c23572": "historyTimesPlayed(address)", "0x2675c123": "CloseContract()", "0x1381e400": "cancel(uint32)", "0xa48a663c": "transferFromToICAPWithReference(address,bytes32,uint256,string)", "0xb03260be": "scheduleTransaction(uint256,address,bytes)", "0xb37217a4": "getRandomNumber(uint256)", "0x5c54305e": "InsufficientFunds(address,uint256,uint256)", "0x17e1b09b": "minimumDeposit(uint256)", "0x10c4e8b0": "all()", "0xa31d5580": "Registrar(address,bytes32,address)", "0xbe6307c8": "getDraw(uint256)", "0xc985c221": "get_all_levels()", "0x91b7f5ed": "setPrice(uint256)", "0xe42def21": "CryptoHill()", "0x738486bd": "BeerCoin(uint256)", "0xe422ebe9": "getBot()", "0x67dd74ca": "buyTicket(uint256)", "0x276b94e1": "copypaste()", "0x39aaba25": "get_status()", "0x7ed19af9": "multiAccessRevoke(bytes32)", "0x4c1b2446": "transmitInteger(address,bytes,bytes,uint256,uint16)", "0xd014c01f": "enter(address)", "0x1d49e081": "EXECUTE_EXTRA_GAS()", "0x9dafbc13": "initBlock(uint256)", "0xc7e22ac4": "setOracleGas(uint256)", "0xa3053236": "SafeInvestments()", "0xf42ac1de": "minQuorum(uint256)", "0x04d91c6a": "testFail()", "0x0e662cf0": "buyTokens(uint16)", "0x1ef0625b": "player_2(uint256)", "0xcec1365a": "ShortLimit(uint256)", "0x340f5e4e": "get_all_num_levels()", "0x3e2729bf": "isRevocated(bytes)", "0x5a1cc358": "getChannelRank(address,uint256)", "0x4d366398": "runPeerBalance()", "0xaf9a3f9b": "hashName(string)", "0x33298e25": "invoke(uint256,uint256)", "0x63def590": "untrustClient(address)", "0x836d6d66": "WeeklyLotteryB(address,uint256)", "0x7f497550": "scheduleTransfer(address,uint256,uint256)", "0xf9e05ed9": "sha(uint128)", "0xf6458c6a": "toZ1(uint256[3],uint256)", "0xf41017fc": "finalize(uint24)", "0xeeb57139": "CollectMoney(uint256)", "0xfdacd576": "setCompleted(uint256)", "0xb7266456": "StandardToken()", "0x6a8c2437": "totalRescues()", "0x1fdf6e0c": "protectKingdom()", "0xcf31e9fe": "getOutputHash()", "0xc8117b5b": "extractBalanceOfLength()", "0x0674763c": "assert(bool)", "0x87def081": "getFeeRecipient(int256)", "0xc63ff8dd": "claim(bytes)", "0x329bfc33": "getCurrentWinner()", "0x3d6a3664": "setNewOracle(address)", "0xdaa21e0e": "testBitSetSuccess()", "0xbf8783e0": "callAndGetReturn(address,bytes,uint256)", "0xb06df18e": "transfer(bytes20,address)", "0x00100a18": "NewPoll(string,string,uint256,uint256)", "0x2ffb8631": "getReleaseLockfileURI(bytes32)", "0x6716a692": "setDVIP(address)", "0xe8223468": "sha3clone(bytes)", "0x0aeacb5e": "getTotalRecords()", "0x29e30910": "testThrowCreateExistingNonce()", "0x240ecad5": "transferViaProxy(address,address,uint256)", "0xa33d4968": "Tripler()", "0x8caaaae6": "totalWeiPrice()", "0xf28a7912": "quick2()", "0xcbe9ef39": "BasicCoin(uint256,address)", "0xea3d2827": "selectWinner(string)", "0x92e9fd5e": "ColdWallet(address,address)", "0xcd5e3c5d": "roll()", "0x4a82534b": "create(address,address,address,uint256,uint8,uint8,uint256)", "0x5ccd2f9b": "_deleteAllPackedRevisionBlockNumbers(bytes20)", "0x9380b8e7": "testFailAddingMembers()", "0x31b0795c": "registerAddress(address,address)", "0xb76e4890": "Tester()", "0x29c08ba2": "payPremium()", "0xd7f31eb9": "forward(address,uint256,bytes)", "0xd7ef1356": "best_adjustment(bool)", "0x48d9a374": "blockTransfer(address,uint256)", "0x88b9e10e": "seizeTokens(address,uint256)", "0x8736fd16": "getRefStatus(uint256)", "0x2b30d2b8": "invoke(uint256)", "0xd4e78272": "Draw()", "0x0257c48c": "meta(bytes32,bytes32)", "0xc1246d39": "simulatePathwayFromBeneficiary()", "0x699b328a": "randomize()", "0xa200dc73": "getNextShareholder(address)", "0x9a7a7c11": "makeRoll(uint256)", "0x2bf1f9da": "restart(bytes32,bytes)", "0x943a32bc": "Relay(address)", "0x93503337": "isAllowed(bytes32,uint256)", "0xe97b2190": "add_wall(uint16)", "0x0448f79f": "addOptionChain(uint256,string,uint256,uint256,bytes,address,int256[])", "0xc0df77d0": "getRefName(uint256)", "0x27121069": "verify(bytes,uint8,bytes,bytes)", "0xb7009613": "canCall(address,address,bytes4)", "0x0295d71b": "currentDepositLimit()", "0x35ee2783": "Alarm()", "0x71b6663e": "play1(address,uint256)", "0x0178fe3f": "getData(uint256)", "0x489306eb": "oraclize_query(string,string)", "0xfce59d0c": "MangoRepo()", "0x8efc777f": "isBeta(bytes)", "0x1f7b8622": "getVotingDeadline()", "0x76da5667": "admin_kill()", "0x152cf9db": "getDataPoint(int256,uint256,uint256)", "0xd09de08a": "increment()", "0x64ee49fe": "scheduleCall(address,uint256,bytes4,uint256,uint256,uint8)", "0xd9fe60f3": "DTHPool(address,address,uint256,string,string,string)", "0x6b4dd158": "getPrice(bytes)", "0x0a80ef45": "getIsClosed()", "0x51fdaf92": "checkExpiredfunds()", "0x694e0d5b": "StringPasser(uint8[])", "0x0e1d88fc": "addTender(uint256,uint256,address,uint256)", "0x53850db3": "getParticipantById(uint256)", "0xb6cb405b": "getContractor()", "0x4c6b25b1": "results(bytes32)", "0x1c4e6cd0": "NameReg()", "0x53aab434": "buyIn()", "0x1ebe5c0f": "sendWithAllOurGasExcept(address,uint256,uint256)", "0xd98b9bb5": "placeBid(address,uint256)", "0x02e8d8c0": "scheduleTransaction(address,uint256,uint256)", "0x8a120dc9": "testBitEqualFailIndexOOB()", "0x33f707d1": "ownerWithdraw(uint256)", "0x98e00e54": "getCallWindowSize()", "0x4da74ee6": "setVoteIntention(uint256,bool,bool,string)", "0x6617e11a": "NiceGuyTax()", "0xfe13a823": "computeResponseFirstHalf(uint16)", "0xf7bd2361": "LookAtBalance()", "0xb09bc3bf": "try_to_get()", "0x0cee22e9": "testSetBalanceSetsSupply()", "0xae404996": "oraclize_query(string,string[3],uint256)", "0x2ad95786": "winner(address)", "0xe5fe4f31": "buy(uint8,bytes32,bytes32)", "0xe23941bc": "testDepositWithdraw()", "0xfc89aff6": "submitVerifiedUsers(address[])", "0xddf187b0": "dogFight()", "0xb5f5962a": "CALL_GAS_CEILING(uint256)", "0x92093dd6": "getLastResult()", "0xbfad16f4": "new_offer(uint256,uint256)", "0x01df7f30": "validateProposedThroneConfig(uint256,uint256,uint256,uint256)", "0x4054f5de": "EthVentures3()", "0x244c23ee": "Token(uint256,string,uint8,string)", "0xc3daab96": "withdrawBond(uint256)", "0x5fa21f1f": "enableBetting()", "0x3b591ea7": "AmountToForgeTheNextBlock()", "0x8c3c4b34": "getSaleStatus()", "0x7429f1eb": "multiAccessSetRecipientD(address,address)", "0xf99ff4df": "paged(uint256,uint256)", "0x2a64fb63": "getSaleDate(bytes)", "0x749f9889": "changeAllowedRecipients(address,bool)", "0x053c351b": "oraclize_getPrice(string)", "0x19663f7f": "TransferAmountFromBankAccountToAddress(uint256,address)", "0x5292c1a9": "testThrowsRestartEnforceRevisions()", "0x68f2ab8e": "Currency(string,string)", "0xd6e0bf29": "OwnerDeposit()", "0x94c3fa2e": "getLastBlockHashUsed()", "0x45362978": "query1(string,string)", "0xaff21c65": "getMinimumEndowment(uint256)", "0xe33c7ae2": "scheduleTransaction(uint256,uint256,bytes)", "0x9eb9dd3b": "getBetsProcessed()", "0x3807ba1b": "poi()", "0x7281854d": "GetCategoryValue(uint8)", "0x45ee49b9": "getUltimateOutcomes(bytes)", "0x0109f22e": "CrowdSale()", "0x98596726": "note(uint224)", "0x06900c41": "ZeroPonzi()", "0x3df76482": "fipsPublishData(bytes20,bytes)", "0xe0429b6c": "ShinySquirrels()", "0xa4a7cf5c": "redeemWinnings(bytes32)", "0x2e898ddc": "validateTemporalUnit(uint256)", "0x3af75ee1": "storeBlockWithFee(bytes,int256,bytes,int256)", "0x43e6125d": "Badge(address)", "0x75a6a332": "testThrowRetractNotRetractable()", "0xbed411a0": "CheckPrize(address)", "0x16f3cb5e": "__kill()", "0xe8efc1a0": "updatedValue(bytes32)", "0x9c7264d7": "fillOrder(address,uint256)", "0x9a0af2ec": "getStLength()", "0xf62cce34": "_clearRecordHierarchy(uint256,bytes32[],bytes32)", "0x940f851c": "Ballot(uint8)", "0xd96e5565": "testThrowsRetractNotRetractable()", "0x3a314b24": "SendETH(address)", "0xbd8c1d33": "checkTransferFromToICAPWithReference(address,bytes32,uint256,string)", "0x01da73ff": "isValidChannel(bytes)", "0x8f8bde82": "MicroDAO()", "0x2973e372": "isAlphaUpper(bytes1)", "0x1d2b7155": "activateImportFeeChargeRecord(address)", "0x06ab5923": "setSubnodeOwner(bytes32,bytes32,address)", "0x9d7d6667": "multipliers()", "0x8af49ab7": "maintain(uint256,uint256)", "0x1f3a3a53": "mint(int256,uint256)", "0x74389991": "breakit()", "0x64371977": "set(uint256,string)", "0x3fa6497f": "AdminAddFunds()", "0xba7dc45f": "_removeOperation(bytes32)", "0xf81d087d": "prepareLottery()", "0xd239ea8b": "getSchemasLenght()", "0xa2f3ede2": "computeNameHash(bytes)", "0xa28ecf0b": "sendCryptedHand(bytes)", "0x003b9d88": "setLowerFeePercentage(uint8)", "0x98ea5fca": "depositEther()", "0xb9a0a708": "testChargesAmountApproved()", "0x55291dbd": "claimEther()", "0x2d2800f1": "react()", "0xa9d2293d": "lastClaimBlock()", "0xc45aa04c": "queryShareholders(bytes,uint256)", "0x67af1c81": "getRoundIndex()", "0x50b7b7a2": "setRating(bytes32,uint256)", "0x0aa7881a": "MintableToken(int256,uint256)", "0x0eb3f5a0": "sweepCommission(uint256)", "0x97d47a60": "registerAccountant(bytes,address)", "0xe2c61114": "setImportFee(address,uint256)", "0x6dbe31eb": "testSubBalance()", "0xf5c98aff": "GreeterB(bytes)", "0x79216f5f": "add_monster(uint16,uint16,uint16)", "0x023c23db": "getSize(uint256)", "0x0e1ca8a5": "Oraclize()", "0xa05e822a": "howManyOwners()", "0x313b7b19": "finance()", "0x51a5f2f2": "ConsultingHalf(address,address)", "0x1fb6e99d": "paymentNeeded(uint64)", "0x2bffc7ed": "add(string,address)", "0x5c52c2f5": "resetSpentToday()", "0x39cdde32": "ecverify(bytes32,bytes,address)", "0x64e24f4b": "UpdateClientTokenAccount(address)", "0x0d2560ee": "addMe()", "0xd8589be3": "CoinFlipper()", "0x3b46a7df": "ivote(bool)", "0xa6823189": "parseAddr(string)", "0xd0c24e93": "setNotUpdatable(bytes20)", "0x1f13de92": "inEther(uint256)", "0xb6ce5581": "oraclize_query(string,string[5],uint256)", "0x31ae0019": "KissBTC()", "0xdabf7dc8": "PayoutDividendEarly(uint256,bool)", "0xe3da41b5": "sortWinningNumbers(uint8[5])", "0x8ea98117": "setCoordinator(address)", "0xeff6be2f": "changeBaseFee(uint256)", "0x483a83df": "setKYC(address)", "0xf98a4eca": "executeVote(uint256)", "0x776d1a01": "unvest(uint256,uint256,uint256,uint256,uint256,bool)", "0x1cf52f2b": "isActiveRegistrant(address)", "0x24c9bf5e": "Prizes()", "0xb3822da8": "getContents(uint256[])", "0x999a9965": "setMany(uint256,int256,uint256,bytes,address,bytes)", "0xbade6033": "propose(bytes,uint256)", "0xd38159b8": "testPass()", "0xdabf7ec4": "helper(uint256)", "0xf4993bbd": "executeEmergencyWithdrawal()", "0x46ddb7db": "setAccountBalance(address,uint256)", "0xc12af1ce": "fipsRegister(uint256,bytes)", "0x8f420866": "DEFAULT_SEND_GAS()", "0x62770252": "needsFuneral(uint256)", "0x32921690": "checkDepth(address,uint256)", "0xb3c1a588": "parseMsgData(bytes)", "0x29cd5777": "_tryEraseSingleNode(bytes32)", "0xc6e0c908": "checkTransferFromWithReference(address,address,uint256,string)", "0x9bd99195": "multiAccessChangeOwner(address,address)", "0xa360b26f": "Migrations()", "0x6c6f1d93": "getContractCreationValue()", "0x5445e38c": "_isCycleValid(uint256)", "0x2c85f8e0": "oraclize_query(string,string,string,uint256)", "0xcdda62ad": "FutureBlockCall(address,uint256,uint8,address,bytes4,bytes,uint256,uint256,uint16,uint256,uint256)", "0xc8fdc891": "numberOfMonarchs()", "0xf578fd85": "assertEq0(bytes,bytes)", "0xda311588": "getCoin(uint256)", "0x9a35f886": "__dig_then_proxy(uint256)", "0xfa14df6b": "getChangeRecipientFee()", "0x95f0684b": "getPackageNameHash(uint256)", "0x42909a9e": "create_game()", "0x51582ef3": "sendProxyTransaction(address,uint256,uint256,bytes)", "0xc4e41b22": "getTotalSupply()", "0x110df916": "getChannelID(uint256)", "0x4dc3141b": "CalcAll()", "0xb88a802f": "claimReward()", "0x82b2e257": "getTokenBalance()", "0x9bb0e4df": "getUint(int256,bytes32,string)", "0xc1ae4044": "checkBetColor(uint8)", "0x4a8b5389": "allocateBountyAndEcosystemTokens()", "0xdf06f906": "numBets()", "0xdeb80111": "transfer_asset(address,uint256)", "0x5216aeec": "totalInvested()", "0xe2deaa81": "set_reference(uint256,uint256,uint256)", "0x2ffda1e0": "setBlackflag(uint256,bool)", "0xba45b0b8": "transfer(address,address)", "0x7d7c2a1c": "rebalance()", "0xf32efd3c": "recoverUser(address,address,uint256,uint8,bytes32,bytes32)", "0x4571d4c4": "FutureCall(address,uint256,uint16,address,bytes,bytes,uint256,uint256,uint256)", "0x5fc5d48b": "burnUnsoldCoins(address)", "0x4da47ba0": "TokenSale(address,uint256)", "0x3d9ce89b": "scheduleCall(bytes4,bytes,uint256)", "0x6662e4be": "isWinningBet(uint256)", "0xa501e88d": "Content()", "0x4b70cec4": "getTime(address)", "0x12253a6c": "stopContract()", "0x173825d9": "removeOwner(address)", "0x26121ff0": "f()", "0x7b647652": "LittleEthereumDoubler()", "0x0c5c2ca3": "getIndexName(bytes)", "0x90f2c86d": "convertToWei(uint256,string)", "0x83f95f13": "openClaim(string)", "0xe8b5e51f": "invest()", "0xfdc4b338": "authorizeExtension(uint256,bool,string)", "0x4e116eb8": "unRegisterCertificationDb(address)", "0x5c8a1053": "extend(string)", "0xa932ed0d": "whitelistRemove(address)", "0xa1188e56": "getCurrentDifficulty()", "0xbf1fe420": "setGasPrice(uint256)", "0xead710c4": "greet(string)", "0x144fa6d7": "setToken(address)", "0x42402c2c": "fipsTransferMulti(bytes20[],address)", "0x93e84cd9": "play()", "0x741b3c39": "depositBond()", "0x23306ed6": "getMinimumBond()", "0x5f2e686d": "Ethereum_eight_bagger()", "0x9890220b": "drain()", "0x233120aa": "getChainyURL()", "0xe9dc0614": "vote(bytes)", "0x4df53a0f": "testSetApprovalDb()", "0x5fe27ab0": "createHKG(address)", "0xb56b2627": "add_owner(uint256,address)", "0x6f9a023c": "theultimatepyramid()", "0xc8796572": "collectFees()", "0xea3ebae6": "getConfigBool(bytes32)", "0x213ac932": "addUser(address,uint256,uint8,bytes32,bytes32)", "0xfae9d06d": "calculateTxFee(uint256,address)", "0x45d27edf": "forward_method(bytes,address,uint256,bytes)", "0x8e9ccd04": "computeIndexId(address,bytes)", "0x2f6ae467": "transferDocument(bytes,address)", "0x6e353a1d": "emergencyWithdrawal(address)", "0x7dd56411": "ownerOf(bytes32)", "0x9dc35799": "updateReading(uint256)", "0x246c02e6": "check_depth(uint16)", "0x03d22885": "scheduleCall(address,uint256,bytes4,uint256,uint256,uint8,uint256)", "0x881be8f7": "undo()", "0x953307d8": "revealScissors(string)", "0x7af30442": "testToggleBitFailIndexOOB()", "0x1e0c7ed4": "setConfigBool(bytes32,bool)", "0x2e3be78d": "setPrecisionDirect(uint8)", "0x95a078e8": "hasAccess(address)", "0x245a03ec": "scheduleSetIt(uint256,uint256)", "0xb863bd37": "random(uint256)", "0xa5e62f02": "fallbackRP()", "0x618fa9ce": "getBotBillingIndex(uint256,uint256)", "0x06909f69": "cancel(string,uint256)", "0x2b198366": "addCertifier(address)", "0x57e871e7": "blockNumber()", "0x2b98222e": "getInstitutionByAddress(address)", "0x89eedf00": "setPdfHash(bytes,bytes)", "0x7ac4b05e": "returnMyMoney(uint256)", "0x7fc90182": "Pool(uint256)", "0x291e6777": "sendVote(uint256,uint256)", "0x579badf6": "UniversalFunction(uint8,bytes32,bytes32,bytes32,bytes32,bytes32)", "0xe1f21c67": "approve(address,address,uint256)", "0xa1b9af31": "unlockBets()", "0x92d0d153": "t()", "0x095ea7b3": "approve(address,uint256)", "0x9cb31079": "setLowLimit(uint256)", "0xb971b4e5": "setNotTransferable(bytes20)", "0x2a745971": "BlockKing()", "0x582ca57b": "get_associations()", "0xa0d605c6": "addCertificationDocumentInternal(address,bytes32)", "0x85233869": "NumberOfMiners()", "0xb0349184": "clearRecords(bytes32[])", "0x3e8f5b90": "setConfig(string,uint256)", "0x7c73f846": "getMinimumEndowment(uint256,uint256,uint256)", "0xcc9ae3f6": "getMyReward()", "0xac900c2d": "unregisterSeller(address)", "0x306df22d": "GPSDestination(int256,int256,uint256)", "0x5e968a49": "ownerSetMaxProfitAsPercentOfHouse(uint256)", "0x80dcaf27": "getRefNumber()", "0x4245b0f7": "Lottery()", "0xe46164c5": "waitingForPayout()", "0xa8c3ec48": "oraclize_query(uint256,string,string[2])", "0x58ea80e5": "setThroneCreationPrice(uint256)", "0x8a4fb16a": "getWithdrawal(uint256)", "0x4464aec7": "testTryGet()", "0xf3c37bd5": "Verifier(address,uint256,uint8)", "0xb4c4e005": "testTransferToAcceptAuthority()", "0x346b306a": "oraclize_query(string,string,string)", "0x24032866": "checkExecutionAuthorization(address,uint256)", "0x509f8633": "create_account()", "0x26da8e17": "ownerUpdateCostToCallOraclize(uint256)", "0x74a93e6c": "setTokenHolder(address,address)", "0x1baaeb91": "getSignature(bytes4,uint256)", "0x337c1e28": "getIndexRoot(bytes)", "0xac92fdb5": "getSaleDate(bytes16,uint256)", "0x13b2663b": "cash_received(string)", "0x68e4bd99": "testSetBitSuccess()", "0x20620f37": "onAuctionEnd(string)", "0x85528394": "currentClaimPriceWei()", "0x1995333b": "burnFunds(uint256)", "0x5184ffc9": "setAmbiAddress(address,bytes)", "0x269975d0": "GameDetails(uint256)", "0x29274fe1": "buyBOTx(uint256,string,string,address,uint256)", "0x720c4798": "workshop()", "0x6f9a5eab": "createTx(uint256,address,uint256)", "0xb66a323c": "claimThrone(string)", "0x14cabddb": "joinProof(uint256)", "0x76e4ca0d": "voteQuorum(uint256,bool)", "0xbcb3b5d2": "getGamblesList(uint256)", "0xf2080ba6": "Pong(int8)", "0xab470f05": "getCaller()", "0xe0b1cccb": "updateBalance(address,uint256)", "0x4889ca88": "receiveApproval(address,uint256,address)", "0xbc4b3365": "addFunds(address,uint256)", "0x5d1a3b82": "getOutcome(bytes32)", "0x8204ecdd": "getFee(bytes)", "0x49aa4ee2": "removeVote()", "0x9131d803": "testSetFrontend()", "0x72929b56": "getKudosPerProject(address)", "0x287418e7": "query(uint256,uint16)", "0xbb7859b5": "periodThree()", "0x7dc5cd32": "_patternToNumber(bytes)", "0xf7ea7a3d": "setTotalSupply(uint256)", "0xb3f98adc": "vote(uint8)", "0x655388be": "walkTowardsBlock()", "0x856deacf": "findTag(string)", "0xcaab0acc": "testThrowCreateRetracted()", "0xede8ebf3": "checkApprove(address,uint256)", "0x4296a9cb": "getNodeRightChild(bytes)", "0x03cf4fd6": "expire(uint256,uint256,uint8,bytes32,bytes32,bytes32)", "0x87045369": "setCanCall(address,address,bytes4,bool)", "0x0ed21029": "getIssueAssignee(uint256,bytes32)", "0xc5958bda": "removeFile(bytes)", "0xa8026912": "setSource(address)", "0x05a5b8c6": "verifyTx(bytes,int256,int256[],int256,bytes,int256,int256[],int256)", "0xed3058e0": "transferRight(address,bytes)", "0xba487e62": "newCampaign(uint32,uint96,uint16,uint16)", "0xd6c19fe0": "build(bytes,uint256,uint256,address)", "0xebb741cb": "getChannelSize(uint256)", "0x3b996f40": "quarter(uint32,uint32,uint32,uint32)", "0x0b7373d6": "giveAllBack()", "0x3f887fad": "buyShares(uint256,uint8,uint256,uint256)", "0xb5deeca7": "BaseRegistry()", "0x6dd6e87b": "checkOut(int256)", "0x90a85119": "checkBetResult(uint8)", "0x724121ae": "contentExists(uint256)", "0x67bd69a6": "getLastDuel2()", "0x821e9169": "testFailControllerChargeMoreThanApproved()", "0x083ae1fe": "setPackage(string)", "0x8eaa6ac0": "get(bytes32)", "0xf42aa287": "getBlobStore(bytes12)", "0x32a2c5d0": "getContractAddress()", "0x69d89575": "releaseFunds()", "0x984ac378": "lotteryTitle()", "0x3baf4e1e": "newPayment(uint256,uint256)", "0x938c4307": "scheduleCall(bytes4,bytes,uint16,uint8,uint256,uint256,uint256,uint256,uint256)", "0x47372325": "getChannelSize(address)", "0xcb10e0c5": "getLastDuel1()", "0x1a0919dc": "unregister(bytes32)", "0x6a3c1198": "_projectCancelNew()", "0x976b01c0": "setNotRetractable(bytes20)", "0x44d03ac6": "BlockhashFetch(address)", "0xb0fd935b": "registerCertificationDb(address)", "0x2c7c4549": "PurchasableToken(uint256)", "0x3e0a51b4": "TweetAccount()", "0xc5f310c0": "register(bytes12)", "0xc10dd4c6": "getEvents(bytes32[],address)", "0x37a6b9f8": "recordCallback(address,uint256,bytes,bytes)", "0x1b9265b8": "pay()", "0xc91d7e9c": "getFee(bytes32[])", "0xf6c5c80d": "cleanUp()", "0x590e1ae3": "refund()", "0x9c709343": "split(bool,address)", "0xe68d3ae3": "escrow(uint256,string,address,uint256)", "0xa1cb31b7": "_state()", "0xfbac3951": "isBlocked(address)", "0x29dfdded": "addNewDonkey(address)", "0x7bc49a95": "play(uint256,uint256)", "0x5329c681": "checkTimeout(uint256)", "0x7c05caf3": "testCreateCostAuth()", "0x8606f905": "balanceOf(address,bytes)", "0xbe45fd62": "transfer(address,uint256,bytes)", "0xd7130651": "getCity(uint256)", "0xb2353d69": "updateRightLottery(address)", "0x01bb85a4": "__startBlock(string)", "0x4316abbb": "newJester(address)", "0x5c3e426c": "adminRetrieveDonations(address)", "0x293ffca3": "AddressReg()", "0x4156fdb7": "createSwap(uint256)", "0x2852b71c": "accept()", "0x027a5e3f": "getLastVersion(bytes)", "0x3d90d44d": "addPowerSource(address,uint256,uint256)", "0x1ab06ee5": "set(uint256,uint256)", "0x50f07cf9": "setReadingDelay(uint256)", "0x669e48aa": "get(uint256,uint256)", "0xdea9c72b": "getLatestPreReleaseTree(bytes32,uint32,uint32,uint32)", "0x60f66701": "useCoupon(string)", "0x2431f164": "process_payment()", "0x17623e5b": "unauthorizeManager(address)", "0x367bbd78": "strlen(string)", "0xbab86ea8": "test(string,string)", "0x25f3da52": "GetBankAccountNumber()", "0xebb045fa": "PublicResolver(address)", "0xdd57d5c5": "setTrust(address)", "0x22e803c2": "transferBounty()", "0x12c8052f": "won()", "0x3535cd52": "setDailyCosts(uint256)", "0x92d8c8cf": "setupImportFee(address,uint256)", "0x53caf582": "testThrowSetNotUpdatableNotOwner()", "0xb3ade772": "shipProducts(string,string)", "0x61472fd4": "CSGOBets()", "0x5c7c9aa4": "checkAccountState(address)", "0x6560a307": "suggestedGas()", "0xd0d552dd": "setAsset(address)", "0xc02f081a": "shiftBits(bytes,int256)", "0x9348cef7": "reveal(uint256,uint256)", "0x5ca1c5a0": "getNodeValue(bytes)", "0x34c1b4ba": "sha(bytes)", "0xe0117441": "setRegistrationPrice(uint256)", "0x92698814": "reserved(bytes32)", "0xaa1e84de": "hash(bytes)", "0x2125b65b": "transfer(uint32,address,uint224)", "0x9f9eac67": "ChangeName(string)", "0x7eb69ba1": "hint(int256,bytes32,string,bytes20)", "0xc6888fa1": "multiply(uint256)", "0xa9059cbb": "transfer(address,uint256)", "0x84c344fe": "_register(bytes4,string)", "0x744d8b4f": "recordWin(uint256,uint256)", "0xad1ef61e": "donkeyInvested(address)", "0xb4787dc5": "linkEID(bytes,bytes)", "0x7b1cbb13": "getChannelValue(bytes)", "0xd0febe4c": "buyTokens()", "0x74f519db": "setLastTimestamp(uint256,uint256)", "0xe30081a0": "setAddress(address)", "0x6fd902e1": "getCurrentBlockNumber()", "0x25d8dcf2": "betAndFlip()", "0xc062f578": "updateStage()", "0xe0cfc05c": "testThrowsRetractLatestRevisionDoesntHaveAdditionalRevisions()", "0x854f4817": "buyKissBTCWithCallback(address,uint256)", "0x58b1f29c": "refundBounty(uint256)", "0x0645b5d5": "getMyShareholderID()", "0xe9c63b9c": "requestPeerBalance()", "0x1b03316f": "getSecond()", "0xbcc6092a": "MyEtherBank()", "0x1cf43b63": "extractExportFeeChargeLength()", "0x5e58f141": "shares(address,bytes,int256)", "0x6103d70b": "withdrawPayments()", "0x3e0663e0": "AdminDrawProcess()", "0xa0f029fc": "ContractorInterface(address,address,address)", "0xe604cf9f": "get_all_squares()", "0xd13d1ace": "scheduleCall(bytes,bytes,uint16,uint8,uint256,uint256,uint256,uint256,uint256)", "0xb74bc710": "LuckyDoubler()", "0x611f69de": "__proxy_motion(address,uint256,uint256,bytes)", "0xbb814e9e": "versionExists(bytes32)", "0x545e7c61": "deploy(address,address)", "0x1b437d0c": "compareLastCalldata(bytes)", "0x845051d3": "testContractsNotNull()", "0x23de6651": "emitTransfer(address,address,uint256)", "0xd78c20ff": "voteApprove(uint256)", "0x6f13e01b": "EthVenturePlugin()", "0x1f6b0a9d": "getReleaseLockfileURI(string,uint32,uint32,uint32,string,string)", "0x13d4bc24": "buyTokenProxy(address)", "0xd509b16c": "testWithdraw()", "0x2f54bf6e": "isOwner(address)", "0xf60381a1": "stra2cbor(string[])", "0x34dbe44d": "getLastBlockNumberUsed()", "0x28dcfdac": "getSignsCount(uint256)", "0x2888f9d0": "updateMaxBet()", "0xc3b2556d": "lookup(bytes)", "0x6fbaaa1e": "currentMultiplier()", "0xe241c1d9": "deriveKey(uint256,uint256,uint256)", "0x5b37e150": "create(bytes32,bytes)", "0xa1c95ac2": "GSIToken(uint256,string,uint8,string,address)", "0xfc9e53df": "setNextRegistrar(address)", "0x34e8980f": "bootUpHangouts()", "0x457dd8b3": "setMasterKey(address)", "0xdb833e3a": "sellShares(bytes32,uint8,uint256,uint256)", "0x1e5330ca": "checkBetResult(uint8,address,bytes32,bytes32)", "0x4a00a522": "homebase(int256,int256)", "0xb938bf42": "sendBounty(bytes32)", "0x46be96c3": "amountFilled(address,uint256,address,uint256,uint256,uint256,address,uint8,bytes32,bytes32)", "0x2fa00e58": "fipsTransfer(bytes20,address)", "0x95669952": "debtor(address,uint256)", "0x3f19d043": "getContributions(address)", "0xeb455dc6": "sendBitcoin(string,uint256)", "0x034cb28e": "addressOf(address,bytes)", "0x1e26fd33": "setBool(bool)", "0x1b55ba3a": "Start()", "0x6f3fe404": "updateBalances()", "0xc45b415e": "createRequest(address[4],address,uint256[11],uint256,bytes)", "0x180aadb7": "underLimit(uint256)", "0xb44bd51d": "getConfig(string)", "0x93d79105": "hashRelease(bytes32,bytes32)", "0x9f8a13d7": "isActive(address)", "0x257bcd6a": "placeBet(uint256,bytes32,bytes32)", "0xdd10d97e": "getPlayerWaiting()", "0x6d16f79c": "__transferWithReference(address,uint256,string)", "0x6ce1417e": "Fund()", "0x67beaccb": "scheduleCall(bytes)", "0x4b0697e4": "Manager(address)", "0x6a7fc8b7": "setDailyWithdrawLimit(uint128)", "0x7a6e9df7": "getTimestamp(bytes)", "0x797af627": "confirm(bytes32)", "0x81183633": "setStandard(bytes32)", "0x6a1db1bf": "changeFee(uint256)", "0x4e6ab570": "insert_order(address,bool,uint32,uint128)", "0xa4e2d634": "isLocked()", "0x7c79ebce": "expired(uint64)", "0x20965255": "getValue()", "0xfd408767": "fireEventLog4()", "0xcf6b3822": "WatchCollectedFeesInSzabo()", "0x8f7fe231": "ValidetherOracle()", "0xbf12165e": "fillUpSlot(uint256,uint256)", "0xdabdc1f2": "ChangeActiveDigger(address)", "0xe9e7a667": "get_stake(bytes32)", "0x0ad95b44": "bribery()", "0xdb6fcf01": "is_destroyed(uint256)", "0x4378a6e3": "getAttributes(uint256)", "0x71589d6b": "newponzi()", "0x47274dbe": "disableUser(address,address)", "0xb40a5627": "bidCount()", "0xf1eae25c": "mortal()", "0x13af4035": "setOwner(address)", "0xaf030d2c": "setResult(uint256,uint256,bytes32)", "0x098ab6a1": "snapshotCount()", "0x27cca148": "lastClaimedBlock()", "0x940c154b": "lockBet(uint256)", "0x378c0605": "buyTickets(address)", "0xbcfcb03e": "allocateFounderTokens()", "0x0138e31b": "_jAdd(uint256,uint256,uint256,uint256)", "0x0a7f4239": "getAccountFundContract(address)", "0xc96593a0": "The10ETHPyramid()", "0x22beb9b9": "scheduleDoIt(uint256)", "0xdb0e127a": "openDoor()", "0x3dc02266": "fipsRegister(uint256)", "0x7d242ae5": "setBasePrice(uint256,bytes)", "0xe82b7cb2": "proxySetCosignerAddress(address,bytes32)", "0xa60bbcd3": "ModelCoordinator()", "0xc26aa3c9": "lockUnicorn(uint256)", "0x96ff7e97": "requestIdentity()", "0x99753de7": "clear_level()", "0x69d79ad5": "moneySumAtSettlement(address,uint256,uint256,int256,uint256,uint256)", "0xda359dc8": "setBytes(bytes)", "0x6edb4cf6": "testThrowRetractLatestRevisionDoesntHaveAdditionalRevisions()", "0x9d170c5d": "getRef(string)", "0x11cd98ed": "convertToAllTable(uint256,string)", "0x67f809e9": "DynamicPyramid()", "0xd5f37f95": "sign(uint256,uint256,address)", "0xf5562753": "getClaimAmountForBlock(uint256)", "0xc9bbc8c0": "donkeyName(address)", "0x5858ef10": "testErrorNonOwnerCantBreach()", "0x74388347": "checkBetDozen(uint8,address,bytes32,bytes32)", "0xee564544": "_slotCancelNew()", "0xf3bb9741": "commitmentCampaign(uint256,bytes32)", "0x2b68b9c6": "destruct()", "0xa9b8f7b8": "ProtectTheCastle()", "0x16181bb7": "shortSellShares(bytes32,uint8,uint256,uint256)", "0xb524abcf": "totalSupply(bytes32)", "0x8006745b": "getPayout(address)", "0x137c638b": "getExtraGas()", "0x824d5603": "getIndex(uint16,uint16)", "0x245a6f74": "isProxyLegit(address)", "0x9eded57a": "paybackLast()", "0x7b1aa45f": "ownerDeposit()", "0x974654f4": "requiredGas()", "0x76d690bb": "BountyList()", "0xf4b2dfea": "Matching_Finneys()", "0xbd66528a": "claim(bytes32)", "0x85eac05f": "changeOwnerAddress(address)", "0xa69df4b5": "unlock()", "0xe6d9bb0f": "secondsUntilEnd()", "0xcd57a448": "SwapContract(address,uint256)", "0xb245fc92": "findNextMonth(uint256,bytes)", "0x7620f4bb": "fipsNotaryLegacy68b4()", "0x61886014": "combineDice(uint8,uint8)", "0xdf4ec249": "step3()", "0x2262cd94": "wroom()", "0x1099d3ec": "scheduleTransaction(uint256,uint256,uint256,bytes)", "0xd8c34127": "isKnownSignature(string)", "0x8afa08bd": "setDrawDate(uint256)", "0xdb18c972": "play4(address,uint256)", "0x2f30283e": "testSomething()", "0x8ca17995": "divest(uint256)", "0x1ef3755d": "restart()", "0x99bb875c": "funeralAndBirth(bytes,int256,bytes)", "0x157ad5a1": "canWithdrawBond(address,uint256)", "0xfd8055d2": "updateBOTBillingInfo(uint256,string,address,string,string,uint256)", "0xa10889fa": "setVersion(uint32,uint32,uint32,string,string)", "0x51cff8d9": "withdraw(address)", "0xbe999705": "addFunds(uint256)", "0x2e5d1042": "requestPayout(uint256,uint256,bytes32,uint256,uint256)", "0xb50954b6": "cancelWaitingForOpponent()", "0xc42cd8cf": "etherSplit(address,address)", "0x42ce1488": "upload(string)", "0xad04592e": "owner_deposit()", "0xc2cf7326": "hasConfirmed(bytes32,address)", "0x1dbf3bc7": "spend(uint256)", "0x36b81feb": "Deed(address)", "0xf47289e1": "_ecDouble(uint256,uint256,uint256)", "0x026993e0": "Midas(address,address)", "0x5e404de3": "setMaximumCredit(uint256)", "0x0194db8e": "sum(uint256[])", "0xa04a0908": "execute(address,bytes,uint256)", "0x2b4a3b31": "doTransferFrom(address,address,uint256)", "0x96ed10a4": "issuePOIs()", "0xb75c7dc6": "revoke(bytes32)", "0x6056969b": "announce(bytes32)", "0xd63547e6": "GetFreeCnt()", "0x788e26e7": "sponsorDeposit()", "0x550dd006": "calcCostsBuying(uint256,uint8,uint8,uint256)", "0xd4b1d19f": "testThrowsTransferDisabled()", "0x04706fdf": "giveContributionsBackProfitBugged()", "0x5d5483b3": "WatchAppliedFeePercentage()", "0x6bf8f85a": "forceFinish()", "0x3edd90e7": "NewOwner(address)", "0x7c69b5d1": "NewDeposit(uint256)", "0x866f6736": "trustedChildWithdraw()", "0xcdcb7c8f": "chase()", "0x60dccd89": "getContentAccount(uint256)", "0xbff1f9e1": "totalUsers()", "0x1aca00fd": "variable(uint256)", "0x6e658fbe": "myFundsExpireIn(uint256)", "0xddb1bdc8": "credit(address,uint256,uint256)", "0x934bc29d": "exampleFunction(uint256)", "0x113e6b66": "fipsAddToLedger(bytes20,address)", "0x1a88bc66": "slot()", "0xec97cff7": "addCertificationDocument(address,bytes32)", "0x0790e880": "setBlockappsAddr(address)", "0xe0ad411d": "assets(bytes)", "0x791b51f1": "Consulting(address,address)", "0xa26dbf26": "totalParticipants()", "0xb78b52df": "allocate(address,uint256)", "0xdb29fe12": "addShareholder(address)", "0x06459119": "testThrowsTransferNotTransferable()", "0xbadbaa3c": "setCallData()", "0x2c6b2c92": "checkProfitLossSinceInvestorChange()", "0x8aa6f1b1": "setUltimateOutcome(bytes32)", "0xecb98714": "random_damage(uint256)", "0x506e106c": "setToS(string)", "0xf0d474f9": "underdogCount()", "0x2212dbc3": "get_timestamp()", "0xd504ea1d": "getArray()", "0x9b29cb23": "getDailyPayment()", "0x9d3e069c": "StartDraw()", "0x12494160": "isHolder()", "0xbbd4e8c9": "numDeposits()", "0xfea2920e": "createNewDraw()", "0xff556ecb": "releaseUnicorn(uint256)", "0x3bed33ce": "withdrawEther(uint256)", "0xaa9669c1": "roll(uint256,bytes)", "0xa00aede9": "scheduleCall(uint256,address)", "0xc0819961": "Invest()", "0x1ed24195": "getPeriod()", "0x5babb758": "testSetUp()", "0xaaf9d13e": "buyTopDog(uint256,uint256)", "0x7c45ef6c": "stringToSig(string,string)", "0x7353f62b": "testGetApprovalDb()", "0xef7507c8": "testWinner(uint256)", "0x7ef95c6f": "extractAccountAllowanceRecordLength(address)", "0x66099706": "getChannelCred(address,uint256)", "0x5c242c59": "query1(uint256,string,string,uint256)", "0x299a7bcc": "setOwner(address,address)", "0xe1152343": "payout(uint256)", "0xd40a71fb": "step1()", "0xda9c6a46": "getReplyCount(uint256)", "0xffb7bfba": "watchProposal(uint256)", "0x2e1a7d4d": "withdraw(uint256)", "0x03da8902": "transfearDBOwner(address)", "0xc9bd2893": "fines()", "0xfdd3a879": "quick()", "0xda0774ad": "getCallFeeScalar(uint256,uint256)", "0x0f2c9329": "split(address,address)", "0xa3912ec8": "receiveEther()", "0xfd6f5430": "setContent(string,bytes32)", "0x99e0021f": "mergencyCall()", "0xb7aec6a5": "scheduleCall(address,bytes,uint256,uint256,uint8,uint256)", "0x23145ca0": "forceCheck()", "0xc7cf28fe": "canClaimTimeout()", "0x26db7648": "proposedVersion()", "0x60a60fd8": "testProxyCallWithValue()", "0x044d0b06": "oraclize_query(string,string[2])", "0x4f013184": "investInTheSystem()", "0x0c9fd581": "assertTrue(bool)", "0x09574810": "getOperationsNumber()", "0x6e2edf30": "ETCSurvey(address)", "0x3cc86b80": "GetMoney(uint256,address)", "0xf7b89a3e": "getTotalCosts()", "0xb18c6847": "manualUpdateBalances()", "0x8a65d874": "userStats(address)", "0xf80b3cfa": "checkBetLowhigh(uint8)", "0xc2def3b9": "getOrganizer()", "0x2dae9878": "BankOwner_EnableConnectBankAccountToNewOwnerAddress()", "0x1998aeef": "bid()", "0xc64e8bc0": "executeN(uint256)", "0xd4088e33": "setPrice(uint256,uint256,uint64)", "0xd263b7eb": "ownerkill()", "0xc478fc37": "EtherWheel(uint256,uint256,uint8)", "0x05b765ea": "getCertifierStatus(address)", "0x93c32e06": "changeFounder(address)", "0xf207564e": "register(uint256)", "0xae6c0b03": "canWithdrawBond(uint256)", "0x2b1071c9": "testTransferToNullAuthority()", "0xd9feeeb6": "fillMyOrder(uint256)", "0x9fb755d7": "setHotWallet(address)", "0x7f98444f": "randomEnd()", "0xf3fef3a3": "withdraw(address,uint256)", "0x48a0d754": "available()", "0x3af94817": "getPongvalRemote()", "0xec21a913": "setUint256(int256,uint256)", "0x6099af40": "setConfigBool(bytes,bool)", "0xf0cbe059": "proxyTransferFromWithReference(address,address,uint256,bytes32,string)", "0xf93589ce": "didWin(bytes)", "0x1eb5ea2e": "returnFunds()", "0xa6027d53": "IconomiTokenTest(uint256,string,uint8,string,uint256)", "0x8a323b38": "Contract(uint256,string,uint8,string)", "0xb0f07e44": "registerData()", "0xc9d27afe": "vote(uint256,bool)", "0x64265b1a": "share_transfered(string)", "0x78205f67": "testThrowTransferEnableNotTransferable()", "0x081780f4": "clearRecord(bytes32)", "0xdd137b5d": "toBase58(uint256,uint8)", "0x9483e91a": "withdraw(address,uint256,bytes,uint256)", "0xc6502da8": "basePayment()", "0xe17e1274": "testTransferToRejectAuthority()", "0x9af605cb": "__proxy(address,bytes,uint256)", "0x7a8df1b9": "getAffiliateInfo(address)", "0x46b305d6": "lockBetsForWithdraw()", "0x7d4cf602": "buildDSBalanceDB()", "0xce87f626": "replaceWizardRP(address)", "0x125b8f06": "isInNextGeneration()", "0xd0068f80": "getClient(uint256)", "0x7f0899f2": "AddTicket(bytes5[])", "0xb15dcc25": "query(address,bytes2,uint256)", "0x07a9574a": "changeLeaderMessage(string)", "0x16e55626": "getDogName(address)", "0xbc058968": "updateThingData(bytes32[],bytes32[],uint88)", "0x02aa274b": "setForward(bytes4,address)", "0x08f235ec": "getDefaultPayment()", "0x1dd4914b": "withdrawEtherOrThrow(uint256)", "0x7ca31724": "tokenId(address)", "0x0c4f65bd": "getOwnerAddress()", "0xeec3cb41": "placeBet(bool[],uint256,uint256)", "0x9054bdec": "toTimestamp(uint16,uint8,uint8,uint8,uint8,uint8)", "0x468f02d2": "getUnderlyingPrice()", "0x74331be7": "sete(address)", "0xb05e390a": "TokenEther(string,string)", "0x89cc5ea8": "bid(string,address,uint256)", "0xa8893a6e": "getNumOfSalesWithSameId(bytes16)", "0x3defb962": "heartbeat()", "0x15a03930": "TossMyCoin()", "0x1d8ae626": "Security(string,string)", "0xf1bca7a4": "doCall(uint256)", "0xae6215d8": "getBlockHeight(bytes)", "0x8124bb0f": "continueExecution()", "0xc1cbbca7": "contribute(uint256)", "0xa48566ba": "serverSeed(address,bytes)", "0xc0f5a9cb": "deleteThing(bytes32[])", "0x4136aa35": "isAlive()", "0x6fe665e9": "SlotMachine()", "0xfaff50a8": "rootNode()", "0xaf769eff": "Paper()", "0x77863b61": "CrossWhitehatWithdraw(uint256,address)", "0x2bed55b0": "buildDSEasyMultisig(uint256,uint256,uint256)", "0xd2ef7398": "challenge()", "0x96e4ee3d": "convert(uint256,uint256)", "0x2dff6941": "content(bytes32)", "0x4d536f9f": "validateNameExt(bytes)", "0xd4d5d32a": "collectFee()", "0x6620a935": "sendToOwner()", "0x5084da18": "fipsOwner(bytes20)", "0xe419f189": "multiAccessIsOwner(address)", "0xa9fbc614": "lookupTicketHolder(uint256)", "0x11f72496": "testT()", "0x7365870b": "bet(uint256)", "0x09861b81": "flooredSub(uint256,uint256)", "0xe28fed1e": "userRescues(address)", "0x28cc413a": "getProof(uint256,uint256,uint256)", "0x9a8f09bd": "newKing(address)", "0x5d068051": "sendFees(address)", "0x49cbe338": "tryRead(uint64)", "0x691bfc89": "goods(uint16,uint256)", "0xfc36e15b": "vote(string)", "0x48107843": "getNextCallSibling(address)", "0x6461fe39": "transferFromWithReference(address,address,uint256,string)", "0x804e11dc": "testThrowsDisownNotTransferable()", "0x76f30ca1": "toContentID(address,uint256,string,bytes)", "0xa77b2e37": "Coin()", "0x3f2f1596": "setupTreasury(address,uint256)", "0x3de9e4c6": "__transferFromWithReference(address,address,uint256,string)", "0x612e45a3": "newProposal(address,uint256,string,bytes,uint256,bool)", "0x4cdb48e4": "isValidNym(address)", "0x5afa5036": "isCertified(address)", "0x9a1b420b": "OraclizeAddrResolver()", "0xec5c9036": "Crowdsale(address,uint256,uint256)", "0x01095962": "oraclize_setCustomGasPrice(uint256)", "0xe7e2aa0e": "buyer_cancel()", "0x2da8f764": "submitVideo(string,string)", "0x3395dc70": "acceptTransfer(address,address,uint256)", "0xdf143fb7": "HackerGold(address)", "0x63334c58": "transferETC(address)", "0x6a5da6e5": "followCampaign(uint256)", "0x49fb2dc5": "add_to_association(uint256,uint256,uint256)", "0x953aa435": "GetPrice(uint8)", "0xc1257bad": "testPassingAProposal()", "0x3bc5de30": "getData()", "0x4abb9d39": "depletable()", "0x129484b6": "changeFeeRecipient(int256,int256,int256,int256,int256,int256)", "0x902e64e5": "Oath()", "0x8c4dd5cd": "Democracy()", "0xbea124a6": "query(bytes,bytes,int256)", "0x69347990": "ownerWithdrawl()", "0x606deecd": "requestData()", "0x6720ceb1": "sendPayment()", "0xb1050da5": "newProposal(address,uint256,string,bytes)", "0xfeaa29d8": "insertProfitHere()", "0x36f9f49c": "etherandomSeed()", "0xae815843": "query(uint256,string,string,uint256)", "0x752d349c": "depthCheck(int256,int256)", "0xa24835d1": "destroy(address,uint256)", "0x26070774": "Token(address)", "0x6e0d98fe": "setProbabilities(uint32[])", "0x0761a004": "step(uint256,bytes)", "0xad82dcac": "testBlockhashCorrectFee()", "0x0900f010": "upgrade(address)", "0xa288fb1f": "setConfigUint(int256,bytes,uint256)", "0xe88b8ac6": "confirmAndCheck(bytes)", "0xf1a00a53": "unregisterListening(address)", "0xb17acdcd": "collectFees(uint256)", "0xb5d0f16e": "getGasScalar(uint256,uint256)", "0xae999ece": "reserve(string)", "0x95ceb4b3": "winningProtocal()", "0x1a93fa4b": "reorganizeSubUsers()", "0x9243e088": "setEnforceRevisions(bytes20)", "0x342454c7": "isDigit(bytes1)", "0x8e2c6f4d": "initiateVerification(address,bytes,bytes)", "0xddb5b3ac": "SellTokens()", "0xd18dfdc9": "parrot(uint256)", "0xd3732642": "FastRealisticPyramid()", "0x37ab8f20": "notifyPlayer(uint256,uint256,uint256,uint256)", "0xfb6e155f": "availableVolume(address,uint256,address,uint256,uint256,uint256,address,uint8,bytes32,bytes32)", "0x50ab6f7f": "getMsgs()", "0x6b6a53fa": "testThrowsRestartNotOwner()", "0x4dc7cc55": "terminateAlt()", "0x8b9726c1": "multiAccessCallD(address,uint256,bytes,address)", "0x5a74dee5": "multiAccessRemoveOwnerD(address,address)", "0xfd339d18": "testAuthorityTryAuthUnauthorized()", "0xd3d6a975": "testThrowsTransferNotEnabled()", "0x8aa001fc": "getSecond(uint256)", "0x2ec2c246": "unregister(address)", "0xbbdb31cb": "challenge(uint256,address,bool)", "0x635cfda2": "Incrementer()", "0x704b6c02": "setAdmin(address)", "0xc1c723f4": "validateProposedMonarchName(bytes)", "0xadf5e565": "verify(bytes,address,uint256,uint8,bytes,bytes)", "0xbe7cddf8": "TwoD()", "0xc71b583b": "closeRequest()", "0x9cbf9e36": "createToken()", "0x69c4113d": "setNewBudget(uint256,uint256,uint256,uint256)", "0xd4649fde": "expire(uint256,uint8,bytes32,bytes32,bytes32)", "0xf9a7a2ef": "named(bytes)", "0xdbf45aa3": "EthBank()", "0xbb3ce7fe": "DepositHolder()", "0xfb5d5729": "getPongvalTransactional()", "0x2f0b15f6": "testGetUnset()", "0x62891b5d": "multiAccessChangeRequirement(uint256)", "0x538e0759": "refill()", "0x24c65f35": "updateRefundGas()", "0x62b24189": "DepositToBankAccountFromDifferentAddress(uint32)", "0xd81f53fd": "EtherId()", "0xcea943ee": "getSaleConfig()", "0x23647398": "testThrowRetractNotOwner()", "0xcdcd77c0": "baz(uint32,bool)", "0xa677fbd9": "example2Func()", "0xa02b9aac": "getPaymentDataByAddress(address)", "0x268eb055": "setDescription(uint64,bytes)", "0x09d2d0b9": "setServiceAccount(address,bool)", "0x5f70d9ac": "getBot(uint256)", "0x63f80de3": "issueCoin(address,uint256,uint256)", "0x8570153e": "publish(string,string,bytes,address[])", "0x7975c56e": "oraclize_query(uint256,string,string)", "0x7c3064f1": "refundStake()", "0xef4ffee2": "Honestgamble()", "0xfdc193a4": "test3Fails()", "0x0eb495c2": "pushCity()", "0x6a357465": "payHours(address,uint256)", "0x93f0bb51": "order(address,uint256,address,uint256,uint256,uint256,uint8,bytes32,bytes32)", "0x0a9254e4": "setUp()", "0xc490a266": "toUInt(bytes)", "0xf666323e": "UUIDProvider()", "0x857d4c07": "throwScraps(uint256)", "0x7fd8ee68": "computeNameHashExt(bytes)", "0x7bd703e8": "getBalanceInEth(address)", "0x68f65f02": "ChangeShownDenomination(bool,bool,bool,bool)", "0xc7f758a8": "getProposal(uint256)", "0x824dbc9a": "changeMembership(address,uint256,bool,string)", "0x2a228fc2": "processWithdrawals()", "0xe0457884": "betResolution(uint8,uint8,uint8,bool)", "0x550538f6": "getOneTimeCosts()", "0xf3e84cf3": "createNewRevision(bytes32,bytes)", "0x77fe38a4": "transferToICAPWithReference(bytes32,uint256,string)", "0xcc189d00": "Vault(address,uint256)", "0x9e281a98": "withdrawToken(address,uint256)", "0x7b12df39": "userProfits()", "0xa843c97f": "attack(uint256,uint256,uint256[])", "0x9da680f3": "adjustRegistrationFee(uint256)", "0x3ea3f6c5": "activateRegistrar()", "0xb36df681": "ExecutableBase()", "0x0f3a1412": "getArrlist(uint256,uint256)", "0x8b7f0ddd": "register(address,address,string,string,bytes32[],uint256,string)", "0xb5d3a379": "CanaryTestnet()", "0x9894221a": "SendCashForHardwareReturn()", "0xc2b12a73": "setBytes32(bytes32)", "0xff1b4341": "easyPropose(address,uint256,uint256)", "0x927ed13a": "newClient(uint256,address)", "0x9b9d0364": "_setFeeStructure(uint256,uint256,uint256)", "0x01518d76": "sendQuery(uint256)", "0x4112b7f1": "tryGetNameOwner(bytes)", "0xb759f954": "approve(uint256)", "0x810a882f": "setConfigBytes(bytes32,bytes32)", "0xea7a7184": "testGetBalanceDb()", "0xb0c8f9dc": "add(string)", "0xe59f611f": "InputLimit(uint256)", "0xdce293a7": "minLength(uint256)", "0xf509b627": "confirm(address,uint224,uint32,address)", "0xd48bfca7": "addToken(address)", "0x044f9ac8": "findThroneCalled(bytes)", "0x1d57bcf7": "ProofLibInterface()", "0x75830463": "checkBetLowhigh(uint8,address,bytes32,bytes32)", "0x2a45a39a": "Post(address)", "0x29cbdc86": "buyin(address,uint256)", "0x3cbfed74": "getBondBalance()", "0x80a23ddf": "mintBadge(int256,address,uint256)", "0x96b76c23": "stand(uint256)", "0xc392f5a0": "getAllPackageReleaseHashes(string)", "0x4847a79c": "_transfer(address,uint256)", "0x905e6e42": "JSON_Test()", "0x9f489e4e": "getDeposit(uint256,address)", "0x4f8e624e": "Greeter(string)", "0x96013c9c": "testLatestPkgGetter()", "0xe4fc6b6d": "distribute()", "0x423d4ef2": "createChannel()", "0x24d7806c": "isAdmin(address)", "0x691fb8ea": "jumpIn()", "0xd50f6bf0": "transferETH(address)", "0xd0e0813a": "promote(address)", "0x528eedcb": "sendSafe(address,address,uint256)", "0x00faf4dd": "getTokenDivisor()", "0x46a1d95f": "closeMarket(bytes)", "0x318a3fee": "relayTx(bytes,int256,int256[],int256,int256)", "0x49d55d9d": "receiveTransfer(uint256)", "0x4fa99dd0": "Matching_Ethers()", "0x99a5d747": "calculateFee(uint256)", "0x3c67c51e": "testLogs()", "0x12ab7242": "setupStackDepthLib(address)", "0xad9ec17e": "setGreyToken()", "0xc37e8cb2": "testExportAuthorized()", "0x43046844": "placeBet(uint8)", "0xc6e1c178": "TheLuckyOne(bytes)", "0x13d1aa2e": "f(uint256,uint256)", "0x64a4a5d7": "testBitsEqualSuccess()", "0xfb1669ca": "setBalance(uint256)", "0x40fdef80": "administration(uint256,string,uint256,uint256,address)", "0xcf7315c6": "retract(bytes20)", "0x76196c88": "setDnsrr(bytes32,bytes)", "0x08bf2d0d": "getOrderBook(uint256,uint256)", "0x021c309a": "solveBet(address,uint8,bool,uint8)", "0x4de162e4": "extractAccountLength()", "0x56fa47f0": "split(address)", "0xb3a0b1ef": "basicInfoGetter()", "0x26066ad5": "offer(uint256,bytes,uint256,bytes)", "0x99c724ef": "skipInLine(uint256,uint256)", "0x838445e8": "EtherAds(address,address,address)", "0xe06174e4": "settings()", "0xfac5bb92": "getPreRelease(bytes32)", "0x93c94acb": "calculateRewards(uint256[3][3])", "0xd7fa1007": "setHash(bytes32,bytes32)", "0x2a714078": "triggerAuth()", "0x4cd995da": "registerCompany(address,string)", "0xf6469342": "_setPackedBlockNumber(bytes32,uint256)", "0x8e7fd292": "trySetSubnodeOwner(bytes32,address)", "0x4f573cb2": "withdrawRevenue()", "0x924c28c1": "ContractInterface(address,address,address)", "0x4fc9c91a": "identityOf(bytes32)", "0x19901f1d": "TokenSale(uint256,uint256)", "0xaf8b7525": "CollectAndReduceFees(uint256)", "0x3ccb7dc9": "CrowdFund(uint256,uint256)", "0xaeeb96af": "Highlander()", "0xa126c5df": "GAS_TO_AUTHORIZE_EXECUTION()", "0x13c89a8f": "getAllowedTime(bytes32)", "0xf38b0600": "fireEventLog3()", "0xc7144269": "changeSettings_only_Dev(uint256,uint256,uint256,uint256,uint16,uint256,uint256,uint256,uint8,uint8)", "0xefc81a8c": "create()", "0x7429c086": "repeat()", "0x9c0a4bbc": "AlwaysFail()", "0xc3d23e10": "checkBet()", "0x28a45038": "testTryProxyCall()", "0xa668d7c9": "NiceGuyPonzi()", "0x06fe1fd7": "getPackageName(bytes32)", "0x29f27577": "InvestorList(uint256)", "0x57e25a79": "PullPaymentCapable()", "0x6d1669e1": "approveAndCall(address,address,uint256,bytes)", "0xa7e93e87": "retractLatestRevision(bytes20)", "0x9c7e8a03": "addParticipant(address,address,uint256)", "0xc6ab4514": "sendRobust(address,uint256,uint256)", "0xe8f6bc2e": "changeAccountLevelsAddr(address)", "0xb5d1990d": "numRecords()", "0x3e853128": "getGasForXau(address)", "0xa1add510": "hasRelation(bytes32,bytes32,address)", "0x31e3e2fe": "WithDraw()", "0x86723215": "createMarket(bytes,uint256,uint256,address)", "0xce845d1d": "currentBalance()", "0xc3a2c0c3": "scheduleCall()", "0xcf8eeb7e": "subBalance(address,uint256)", "0xaeb4f0d3": "RegisterTwo(address,address)", "0x3c716e08": "updateAuthority(address)", "0x9919b1cc": "getContentsByRanks(address,uint256,uint256,uint256)", "0x0f06670a": "didWin(bytes32)", "0x74e4435f": "getUserAddress(uint256,bytes32)", "0x4664b235": "bytes32_to_bytes(bytes,bytes,bytes)", "0x2ac9bf09": "bid(uint256,uint256,uint256)", "0xf11c4482": "approveFromProxy(address,address,uint256)", "0xfe992c98": "balanceOfAll(address)", "0x43e332c5": "Last_block_number_and_blockhash_used()", "0x0066753e": "removeCertifier(address)", "0xd299dac0": "blake2b(bytes,bytes,uint64)", "0x41395efa": "dgxBalance()", "0xac1b14ff": "proxyCall(uint256)", "0x7a6ce2e1": "getMsgSender()", "0x3855dcd6": "getContrarians_by_index(uint256)", "0xe6febc9b": "investorWithdraw(uint256)", "0xe6e91cfc": "voidFailedPayment(uint256)", "0x547eeac1": "acceptTransfer()", "0x9824425a": "takeOrder(uint256,uint256,uint256,uint256)", "0xdf25ee23": "getIndexId(address,bytes)", "0x0f3d7c3e": "release(string,uint32[3],string,string,string)", "0x15cff546": "isOperationBlocked()", "0x0b927666": "order(address,uint256,address,uint256,uint256,uint256)", "0x00ce2057": "triggerPayment()", "0x9a9c29f6": "settle(uint256,uint256)", "0x0f096163": "Chainy()", "0x2f5a5c5b": "timegame()", "0x900d85fa": "updatePreReleaseTree(bytes32)", "0x1cbd0519": "accountLevel(address)", "0x29a065bd": "getLOg(uint256)", "0xcec95aa1": "getReleaseHashForPackage(string,uint256)", "0x41524433": "sellKissBTCWithCallback(uint256,address,uint256)", "0x5e431709": "sealedBids(address,bytes32)", "0xf55b23c0": "externalLeave()", "0x31375242": "ownerSetTreasury(address)", "0x51b42b00": "deactivate()", "0x5af36e3e": "refund(uint256,uint256)", "0xc5096a69": "feeFor(address,address,uint256)", "0x059a500c": "makeDeposit(uint256)", "0x3c2e7d54": "priv_inMainChain__(int256,int256)", "0x9431f5f0": "withdrawFees(bytes)", "0x91b4a0e7": "Difficulty()", "0x268d50fe": "ownerSetHouseEdge(uint256)", "0x9644fcbd": "changeMembership(address,bool,string)", "0x66aa6f26": "payFee(bytes)", "0x353928d8": "helpRed()", "0x9c1193ea": "GreeterA(bytes)", "0xdd79e33e": "splitIdentifiers(string)", "0x4d268ddd": "payImporterBankForGoodsBought()", "0x656d2f63": "ManagedAccount(address)", "0x1216e771": "expiration(uint64)", "0x36f7cd70": "setPricePerStake(uint256)", "0x7842a3a4": "payReward()", "0x0ae50a39": "GetOwner()", "0xc81caae7": "acceptMember(address,string,string)", "0xe50dce71": "testControllerApproveSetsAllowance()", "0x4b64e492": "execute(address)", "0xd9e947f3": "kickOutMember(address)", "0x35cc59a9": "createSchema(bytes)", "0x2530c905": "rand(uint256)", "0x4894e37f": "__callback(bytes,string,bytes)", "0x70480275": "addAdmin(address)", "0x969cb7c3": "getPublisher(uint256)", "0x4ed4831a": "all(bool[7])", "0x2ef3accc": "getPrice(string,uint256)", "0x67854643": "getGenerationMemberLength(uint256)", "0xe6690fb1": "nextAuction(uint256)", "0x5829d310": "entries(int256)", "0x7fe1dc7e": "getToken(bytes)", "0xe7329e71": "scheduleCall(bytes,bytes,uint256,uint256,uint8,uint256)", "0x41c12a70": "voteNo()", "0x6a28db13": "getQrLength()", "0xdd93890b": "setMeta(uint256,bytes32,bytes32)", "0xa48bdb7c": "results()", "0x9d888e86": "currentVersion()", "0xff81fb91": "unhint(int256,bytes32)", "0x9ec32d45": "challengeWinningOutcome(bytes,uint16)", "0xa0a2f629": "setReferralId(uint256,address)", "0x76577eae": "distributeEarnings()", "0x3e5cee05": "issueIOU(string,uint256,address)", "0xf3c7d275": "prenup(string,string,string,string,string,address,address)", "0x7154ae61": "CheckNumbers(uint8[5])", "0x05de4f07": "getContentParent(uint256)", "0xb81e43fc": "getEventName()", "0xa7eeea37": "NewContributor(uint256)", "0xe816a515": "takeFlight()", "0x05b2b03a": "CertificationCentre(address)", "0x74d4ab27": "fipsRegister()", "0x65fa2f7f": "getLastPrice(uint256)", "0xcc8b34ab": "CrowdCoin()", "0xe2b178a0": "getAuthority()", "0x5fb64fd6": "checkMembership(address)", "0x7948f523": "setAmbiAddress(address,bytes32)", "0xebb71194": "withdrawFees(bytes32)", "0x6545bed3": "Dice(uint256,uint256,uint256,uint256,uint256,uint256,uint256)", "0x7065cb48": "addOwner(address)", "0x913f424c": "_ecMul(uint256,uint256,uint256,uint256)", "0xdbecc372": "Example(uint256)", "0x9f7f760c": "SimpleDice()", "0xca94692d": "abiSignature()", "0x61ba3377": "WatchLastTime()", "0x20e647e1": "checkBetColor(uint8,address,bytes32,bytes32)", "0x0a3b0a4f": "add(address)", "0xc51cf179": "calcBaseFeeForShares(uint256)", "0x8baced64": "isInPool(address)", "0x4dc415de": "reject()", "0x1555e337": "ConferenceCertificate()", "0x9555a942": "withdrawFrom(address,address,uint256)", "0xe1efda6d": "airaSend(address,address,uint256)", "0x8bfc2f33": "delegateDAOTokens(uint256)", "0xb964608d": "get_return_by_level(uint256)", "0x0c1fad51": "setSeedSourceA(address)", "0x98688a95": "Ai()", "0xd930a90b": "testFailMoveBalanceDueToInsufficientFunds()", "0x337b5988": "testSimpleNameRegister()", "0xf06d335e": "_recoverAccount(address,address)", "0x025bbbe5": "newSale(bytes16,uint256,uint256)", "0x984413b8": "_eraseNode(bytes32)", "0x5ea187c9": "BuildByteArray(bytes)", "0xc2a95cc9": "updateTrustSettings(address,uint256)", "0xde0ff7c5": "getEther()", "0x4ac7becf": "SimpleSign()", "0x252786e4": "WatchBlockSizeInEther()", "0xf2016a4f": "updateMinEthPerNotification(uint256)", "0xd743ca38": "newWinner(uint256,address,uint256,uint256,uint256)", "0x9eab5253": "getMembers()", "0x51d38d5f": "addDeveloper(address,string)", "0x930ed251": "getSavedVar()", "0x715ef4ff": "resendFailedPayment(uint256)", "0xb1418cf4": "payHouse()", "0xe1569f6b": "testThrowsSetNotRetractableNotOwner()", "0x4ae9af61": "getBotStats(uint256,uint256)", "0xbf8ecf9c": "authProposals()", "0xc00ca383": "getByOwner(address,uint256)", "0xc8e7ca2e": "getMsgData()", "0x711953ef": "setGameAddress(address)", "0x63a8dac2": "changeSettings(uint256,uint256,uint256,uint8,uint256,uint256,uint8,uint8)", "0x72c87075": "testBlockHeaderFetch()", "0x4c7a2254": "checkMyWithdraw()", "0xab91c7b0": "queueLength()", "0x25209260": "PrepareRoll(uint256)", "0x58150c8b": "GameRegistry()", "0x75608264": "get_hash(uint8,bytes32)", "0x6510ef4d": "oraclize_query(uint256,string,string[5])", "0xd57a12f5": "testCheckSigs()", "0x3f415772": "releaseExists(bytes32)", "0xda25c0cd": "ThisExternalAssembly()", "0xf239e528": "sendOneEtherHome()", "0xc4321adb": "investInTheSystem(uint256)", "0x4fab2ca4": "testGetFrontend()", "0x05261aea": "finalize(uint256)", "0x576eac66": "setFundingGoal(uint256)", "0xe75528cc": "buyBuilding(uint256,uint256)", "0x6ed43eb0": "getInvestorList(uint256)", "0xb38415f3": "getConfigBytes(bytes)", "0x771ad635": "getContentCred(address,uint256)", "0x93c166ec": "computeEndowment(uint256,uint256,uint256,uint256)", "0xac35caee": "transferWithReference(address,uint256,string)", "0xc6803622": "wasCalled()", "0x8cfd8901": "_incBlock()", "0xfcf0f55b": "eventOracles(bytes32,uint256)", "0x505ff574": "register(address,uint256,bool)", "0xf824384a": "addInvestorAtID(uint256)", "0x6b9f96ea": "flush()", "0xc3d0a564": "getAccountBalance(bytes)", "0x30fd300f": "registerBytes32(address,bytes32)", "0xc3169ef2": "respond(uint256,uint256[4])", "0xcf1cd249": "secureSend(address)", "0x62c335c1": "checkCallback(address,uint256,bytes,bytes)", "0xb599afc8": "totalBetCount()", "0x69433e12": "setExchange(uint256)", "0x899942b8": "Devcon2Token()", "0x4c2d71b3": "setConfigAddress(bytes32,address)", "0xb974b0a3": "allData()", "0x27e8c2d8": "burnUnicornShares()", "0xf639365d": "testSetGet()", "0x2f5d3916": "testControllerApproveTriggersEvent()", "0x938b5f32": "origin()", "0xd60dcb5d": "Switch()", "0xde629235": "getCertificationDocumentAtIndex(address,uint256)", "0x329ce29e": "buyTile(uint256)", "0x59e2d30e": "testThrowBlobStoreNotRegistered()", "0xa005b87b": "NullMapTest()", "0xc13afa91": "object_locations(uint256)", "0x4848b1a5": "setData(uint256,uint256)", "0x80ede329": "getDocumentDetails(uint256)", "0x35d13969": "SendAllMoney()", "0x8040cac4": "testOverflow()", "0x9507d39a": "get(uint256)", "0xc040e6b8": "stage()", "0x18178358": "poke()", "0xfd782de5": "Proxy()", "0xfd68a422": "returnmoneycreator(uint8,uint128)", "0x86a50535": "voteFor(uint256)", "0x44602a7d": "testFallbackReturn()", "0xa230c524": "isMember(address)", "0x3ffbd47f": "register(string,string)", "0x8cecf66e": "_inverse(uint256)", "0x51017702": "isOutcomeSet(bytes32)", "0xd408746a": "GetContractAddr()", "0x20130753": "testThrowSetNotRetractableNotOwner()", "0xa0e2abf7": "getFirstActiveGamble()", "0x7c582304": "updateInvestmentTotal(address,uint256)", "0x95d89b41": "symbol()", "0x1768b436": "ETCSurvey()", "0x6d4ce63c": "get()", "0xc41a360a": "getOwner(uint256)", "0x49942ccb": "scheduleCall(bytes,bytes,uint256,uint256)", "0x6b64c769": "startAuction()", "0x084d72f4": "getWinningOutcome(uint256)", "0xd379be23": "claimer()", "0x41fa4876": "multiBlockRandomGen(uint256,uint256)", "0x5bc7e259": "updateRelease(uint32,uint32,uint32,bytes,bool)", "0x47f3d794": "configure(uint256,uint8,uint256,uint256,uint256,uint256)", "0xe2bbb158": "deposit(uint256,uint256)", "0x953a7fab": "testMoveBalance()", "0xeacc5b3b": "safeSend(address,uint256,uint256)", "0x96f0aa8f": "findNextSecond(uint256,bytes)", "0xc8690233": "pubkey(bytes32)", "0x459f93f7": "getBuyers(uint256,address)", "0xf714de9c": "MultiAccess()", "0xf4a81d08": "getKudosGiven(address)", "0x5aa94a68": "computeResultVoteExtraInvestFeesRate()", "0xdb2a0cb7": "HumanStandardTokenFactory()", "0xdf3a6b10": "testMemberAddedEvent()", "0xce8d054e": "_setupNoCallback()", "0x8ea822d8": "createThings(bytes32[],uint16[],bytes32[],uint16[],uint88)", "0x24fb563f": "PlayerTickets(address,uint256,uint256)", "0x8c0e156d": "scheduleCall(bytes4,uint256,uint256)", "0xef04fdb7": "buyShares(bytes,uint8,uint256,uint256)", "0xa0afd731": "dividendBalance(address)", "0xc3c95c7b": "getMarket(bytes32)", "0x94ed9b77": "append(address,address)", "0xc87b36ed": "disableBetting()", "0x566735d8": "PreVNK(uint256,string,string,uint8)", "0x400aae08": "isInCurrentGeneration(address)", "0x44dd4b5e": "scheduleTransaction(address,uint256,bytes)", "0x48c54b9d": "claimTokens()", "0xe8930efd": "Investors(address)", "0xa6f2ae3a": "buy()", "0x12819817": "setXauForGasCurrator(address)", "0x056e1059": "oraclize_query(uint256,string,string,uint256)", "0x7824407f": "tokenSupply()", "0x7f0c949c": "setJurisdication(string)", "0x2e817963": "set_sdl(address)", "0xaee84f6b": "setTime(address,uint256)", "0x3c0dde1c": "_addPools(address,address)", "0xf8bd526e": "setCoinageContract(address)", "0x04b07a5e": "removeUpdater(address)", "0x11149ada": "getProof(uint256)", "0x4306cc3f": "queryEarnings(address)", "0x55241077": "setValue(uint256)", "0x492b67ea": "Etherdoc()", "0xadf59f99": "query(uint256,string,string)", "0x951b01c5": "setCertifierDb(address)", "0x8ae986cf": "registrantApprove(address)", "0xfa68b4ce": "lookupISO3116_1_alpha_3(bytes)", "0x7fdc8290": "isUnderscore(bytes1)", "0x89495172": "convictFinal(uint256,uint256)", "0x93e02d13": "FallenLeaders()", "0x3e476053": "moveFunds(address,uint256)", "0x8894dd2b": "addEther()", "0x8f03850b": "numContributors()", "0xbfc3cd2f": "testFailChargeMoreThanApproved()", "0x1d82e9c7": "EXTRA_GAS()", "0x278ecde1": "refund(uint256)", "0x0f825673": "deleteCoupon(string)", "0xa324ad24": "getMonth(uint256)", "0xd628e0a6": "WatchBalance()", "0xb238ad0e": "getDaysInMonth(uint8,uint16)", "0xd6febde8": "buy(uint256,uint256)", "0x370ec1c5": "_fillOrder(address,uint256)", "0x4c33fe94": "cancel(address)", "0xcdd13701": "getEventHashes(uint256[256])", "0xe1bc3003": "reveal(bytes,string)", "0xa2e62045": "update()", "0x75f45878": "scheduleCall(bytes,bytes,uint256)", "0xd2756e11": "finalizeNumber(uint256)", "0x48519189": "MonedaAlcala(string,string)", "0x009b9369": "getVoteNumber(uint256)", "0xdaa283c8": "__callback(bytes,string)", "0xfcce2622": "challengeAnswer(uint256,bytes)", "0xac18de43": "removeManager(address)", "0x16d9356f": "oraclize_query(string,string[4])", "0xd1734eac": "isInNextGeneration(address)", "0x524fa7b9": "whitelistAdd(address)", "0xa5eb7a4e": "operated()", "0xb0aab296": "getNextNode(bytes)", "0x1982ed58": "ChangeReuseCashInHarware(bool,uint16,uint16)", "0xdf811d7d": "numberOfPlayersInCurrentRound()", "0xca7dc5b1": "getNumberOfTweets()", "0x488b3538": "shares(address,bytes32,int256)", "0xebd83378": "get_blocks_for(uint256)", "0x399fdb86": "testFailNormalWhitelistReset()", "0xca0c1e62": "computeMerkle(int256,int256,int256[],int256,int256,int256[])", "0x8963dab4": "getNodeId(bytes,bytes)", "0x7d94792a": "seed()", "0xbcf175c8": "oraclize_cbAddress()", "0x38eee93e": "scheduleCall(address,bytes,bytes,uint16,uint8,uint256[5])", "0xa08d3f83": "Etheropt(uint256,string,uint256,uint256,bytes32,address,int256[])", "0xae47a290": "changeMaxBet(uint256)", "0xd12c1e28": "badgesOf(address)", "0x001f8d11": "removePackage(bytes32,string)", "0x54fd4d50": "version()", "0x89abeb19": "ProcessGameExt(uint256)", "0x3dd7c1b9": "newProduct(string,string,uint256,uint256)", "0xa396541e": "getPongvalTxRetrievalAttempted()", "0xcc8af0fe": "bytesToUInt(bytes,bytes)", "0x983b94fb": "finalizeAuction(bytes32)", "0x3df91162": "getUpdatable(bytes20)", "0x045236b4": "getChainyData(string)", "0x9c172f87": "EthVentures4()", "0x996a4be3": "uintToBytes(uint256,uint256)", "0x775a8f5e": "toBytes(uint256)", "0xb6db75a0": "isAdmin()", "0x0b6fcdb0": "getEnforceRevisions(bytes32)", "0x29d6f899": "BetOnBlue()", "0xe6cbcba9": "PlusOnePonzi()", "0xc9030ea0": "addMember(address,bool)", "0x8f283970": "changeAdmin(address)", "0x670c884e": "setup(address,uint256,uint256,uint256,address)", "0x808ab1d6": "getCertificationDbCount()", "0x018f5472": "isAUser(address)", "0x59c87d70": "request(bytes32)", "0x407cfe5e": "get_all_players()", "0x33f472b9": "MPO()", "0x662dbe96": "getNodeHeight(bytes)", "0x60b1e173": "getProof(uint256,address,address)", "0xf25eb5c1": "removeReverse()", "0x1d065dde": "_transferWithReward(address,address,uint256)", "0x65343fcb": "TrustEth()", "0xaa237e21": "set(bool,uint256)", "0x60e519c0": "computeMarginAmount()", "0xd9597016": "multisetCustomGasPrice(uint256[],address[])", "0x4f10acc1": "updateGoldFeeData(uint256)", "0x1e9ea66a": "balanceEther10000000(uint256)", "0xffe34512": "getNumChannels(address)", "0x71dd8862": "IndexOf()", "0xdd9dd688": "calcStopPrice()", "0x934354e7": "finishSpin()", "0x26881518": "setupFee(address)", "0x5eb3f639": "assertTrue(bool,bytes)", "0xe9540395": "getRewardDivisor()", "0x8e4afa51": "checkTransferToICAP(bytes32,uint256)", "0xb5b33eda": "scheduleCall(address,uint256)", "0x3d6a32bd": "createTradeContract(address,uint256,uint256,uint256,bool,bool)", "0x5fd9dff6": "allowance(address,address,bytes)", "0x0d244d68": "setNotRetractable(bytes32)", "0xe63697c8": "withdraw(uint256,address,uint256)", "0x3e5087cc": "testBasicThing()", "0xee77fe86": "scheduleCall(address,bytes4,bytes,uint256,uint256,uint8)", "0xb1cc4348": "placeWager()", "0xb95594e5": "lineOfPlayers(uint256)", "0xa9cc4718": "fail()", "0x54385526": "setStatus(uint8,uint8,string)", "0xb45c48dc": "Security_AddPasswordSha3HashToBankAccount(bytes)", "0xace51abc": "helperVerifyHash__(uint256,int256,int256[],int256,uint256,int256,int256[],int256)", "0x1f5d0b4c": "address(address,address,uint256)", "0x7acbfb65": "setOwner(uint256,uint256)", "0x3462f32d": "execWithGasLimit(bytes32,bytes32,uint256,uint256)", "0xac04f5a7": "append(address)", "0x2fcb6628": "_stringGas(string,string)", "0xe977992d": "Doubler()", "0xc57a050e": "fairandeasy()", "0x412664ae": "sendToken(address,uint256)", "0x0afa9fb9": "contains(int256,address)", "0xb69ef8a8": "balance()", "0x264c8e9a": "whatWasTheVal()", "0x255016c8": "checkIfExploded()", "0xd716222c": "is_owner(uint256,address)", "0xc398f030": "expire(uint256,uint8,bytes,bytes,bytes)", "0xb7d454a4": "setNotTransferable(bytes32)", "0x4789aaef": "EthereumDice()", "0xc0171112": "timestamp(uint64)", "0x4f60f334": "multiAccessAddOwner(address)", "0x80aed05f": "LooneyDice()", "0x55ba343f": "getMarket(bytes)", "0x943b0747": "RewardOffer(address,address,bytes,uint256,uint256,uint128,uint256)", "0xa27c672a": "owner_reveal_and_commit(uint8,bytes32,bytes32)", "0x8f731077": "extractAllowanceRecordLength(address)", "0xc3d345c4": "getHangoutAddress()", "0xa8978434": "softResolveAnswer(uint256)", "0x7cef6047": "getNavHistory(uint256)", "0xfae14192": "changeFeePercentage(uint256)", "0x2ddbc04a": "play2(address,uint256)", "0x3fb27b85": "seal()", "0xe8038e25": "TokenSale(uint256,uint256,address)", "0x8d92fdf3": "withdrawAsset(uint256)", "0x8579cbde": "getPrice(string,uint256,address)", "0x0d61b519": "executeProposal(uint256)", "0x63a599a4": "emergencyStop()", "0x661e3605": "ConstructorContract(uint256)", "0xfd7c460d": "ciberLottery()", "0x1f83f440": "getPaymentByAddress(address)", "0xdcf73856": "generateGroups()", "0x3c6e03d7": "thewhalegame()", "0x271cd760": "getPackageDb()", "0x53fefd7d": "changeMaxDeposit(uint256)", "0xae169a50": "claimReward(uint256)", "0x6da84ec0": "calcMarketFee(bytes32,uint256)", "0xb16562fe": "fipsRegister(address,bytes)", "0x041fe13d": "onEtherandomSeed(bytes32,bytes32)", "0x4a617faa": "shaBid(bytes32,uint256,bytes32)", "0x052b2aa7": "getRegistrants()", "0x0ff0a4df": "reFund()", "0xe56b9dce": "GetPrize(uint256)", "0x8eec99c8": "setNewAdmin(address)", "0xffcce369": "changeIPFSHash(string)", "0x40fdf515": "issuetender(address,uint256,uint256)", "0xef4bdfdd": "Set_your_game_number_between_1_15(string)", "0xa991cb0e": "respond(uint256)", "0x617fba04": "getRecord(address)", "0x475a9fa9": "issueTokens(address,uint256)", "0xd30fbd0d": "safeSubtract(uint256,uint256)", "0xe54d4051": "receiveInteger(bytes,uint256,uint16)", "0x8023ffbd": "getOverallSize()", "0x8390b02a": "rfindPtr(uint256,uint256,uint256,uint256)", "0x11e99c22": "arrival()", "0x10c1952f": "setLocked()", "0x039a21b8": "tryExecute(address,bytes,uint256)", "0x201dcd7a": "newChallenge(uint256,uint256)", "0x5aebfd14": "createFile(bytes)", "0xa6b1caa3": "gasScalar(uint256)", "0x200538c6": "DTE()", "0xd1738b72": "wroomWroom()", "0x22f607f6": "Escrow()", "0x7e81b6aa": "KingdomFactory()", "0x901d7775": "voteOutMasterKey(address)", "0xd6af9411": "Rouleth()", "0x7b0383b2": "initializeDispute(uint256)", "0x70c9edb7": "BTCRelayTools(address)", "0xe9c31315": "checkBetParity(uint8,address,bytes32,bytes32)", "0xee82ac5e": "getBlockHash(uint256)", "0x727089f1": "extractAllowanceLength()", "0x8bbb5af7": "test1Fails()", "0x47872b42": "unsealBid(bytes32,uint256,bytes32)", "0x46b04e53": "PlayerInfoPerZone(uint256,uint256)", "0x752bacce": "getExecPrice()", "0x89d8ca67": "drawPot(bytes32,bytes32)", "0xc23697a8": "check(address)", "0x0af658ca": "personUpdateActivity(uint256,bool)", "0x24d4e90a": "ln(uint256)", "0x09d33f1d": "addRequest(address,uint256)", "0xc913b552": "getVersions(bytes)", "0xbb3b8dca": "getCertificateHash(bytes)", "0x3809c0bf": "doInfinite()", "0x853552d7": "_slotAddNew(address)", "0xccf1ab9b": "usurpation()", "0xe7dafdb6": "transfer_token(address,address,uint256)", "0x0c77a697": "claimFounders()", "0xda82a035": "sweepCommission()"} | |
\ No newline at end of file | |
diff --git a/cmd/clef/README.md b/cmd/clef/README.md | |
index b05745964..9663e132f 100644 | |
--- a/cmd/clef/README.md | |
+++ b/cmd/clef/README.md | |
@@ -4,19 +4,20 @@ Clef can be used to sign transactions and data and is meant as a replacement for | |
This allows DApps not to depend on geth's account management. When a DApp wants to sign data it can send the data to | |
the signer, the signer will then provide the user with context and asks the user for permission to sign the data. If | |
the users grants the signing request the signer will send the signature back to the DApp. | |
- | |
+ | |
This setup allows a DApp to connect to a remote Ethereum node and send transactions that are locally signed. This can | |
help in situations when a DApp is connected to a remote node because a local Ethereum node is not available, not | |
synchronised with the chain or a particular Ethereum node that has no built-in (or limited) account management. | |
- | |
+ | |
Clef can run as a daemon on the same machine, or off a usb-stick like [usb armory](https://inversepath.com/usbarmory), | |
or a separate VM in a [QubesOS](https://www.qubes-os.org/) type os setup. | |
-Check out | |
+Check out | |
* the [tutorial](tutorial.md) for some concrete examples on how the signer works. | |
-* the [setup docs](docs/setup.md) for some information on how to configure it to work on QubesOS or USBArmory. | |
- | |
+* the [setup docs](docs/setup.md) for some information on how to configure it to work on QubesOS or USBArmory. | |
+* the [data types](datatypes.md) for detailed information on the json types used in the communication between | |
+ clef and an external UI | |
## Command line flags | |
Clef accepts the following command line options: | |
@@ -24,28 +25,34 @@ Clef accepts the following command line options: | |
COMMANDS: | |
init Initialize the signer, generate secret storage | |
attest Attest that a js-file is to be used | |
- addpw Store a credential for a keystore file | |
+ setpw Store a credential for a keystore file | |
+ gendoc Generate documentation about json-rpc format | |
help Shows a list of commands or help for one command | |
- | |
+ | |
GLOBAL OPTIONS: | |
--loglevel value log level to emit to the screen (default: 4) | |
--keystore value Directory for the keystore (default: "$HOME/.ethereum/keystore") | |
- --configdir value Directory for clef configuration (default: "$HOME/.clef") | |
- --networkid value Network identifier (integer, 1=Frontier, 2=Morden (disused), 3=Ropsten, 4=Rinkeby, 6=Kotti) (default: 1) | |
+ --configdir value Directory for Clef configuration (default: "$HOME/.clef") | |
+ --chainid value Chain id to use for signing (1=mainnet, 2=Morden (disused), 3=ropsten, 4=rinkeby, 5=Goerli, 6=Kotti) (default: 1) | |
--lightkdf Reduce key-derivation RAM & CPU usage at some expense of KDF strength | |
--nousb Disables monitoring for and managing USB hardware wallets | |
--rpcaddr value HTTP-RPC server listening interface (default: "localhost") | |
+ --rpcvhosts value Comma separated list of virtual hostnames from which to accept requests (server enforced). Accepts '*' wildcard. (default: "localhost") | |
+ --ipcdisable Disable the IPC-RPC server | |
+ --ipcpath Filename for IPC socket/pipe within the datadir (explicit paths escape it) | |
+ --rpc Enable the HTTP-RPC server | |
--rpcport value HTTP-RPC server listening port (default: 8550) | |
- --signersecret value A file containing the password used to encrypt signer credentials, e.g. keystore credentials and ruleset hash | |
+ --signersecret value A file containing the (encrypted) master seed to encrypt Clef data, e.g. keystore credentials and ruleset hash | |
--4bytedb value File containing 4byte-identifiers (default: "./4byte.json") | |
--4bytedb-custom value File used for writing new 4byte-identifiers submitted via API (default: "./4byte-custom.json") | |
--auditlog value File used to emit audit logs. Set to "" to disable (default: "audit.log") | |
--rules value Enable rule-engine (default: "rules.json") | |
- --stdio-ui Use STDIN/STDOUT as a channel for an external UI. This means that an STDIN/STDOUT is used for RPC-communication with a e.g. a graphical user interface, and can be used when the signer is started by an external process. | |
- --stdio-ui-test Mechanism to test interface between signer and UI. Requires 'stdio-ui'. | |
+ --stdio-ui Use STDIN/STDOUT as a channel for an external UI. This means that an STDIN/STDOUT is used for RPC-communication with a e.g. a graphical user interface, and can be used when Clef is started by an external process. | |
+ --stdio-ui-test Mechanism to test interface between Clef and UI. Requires 'stdio-ui'. | |
+ --advanced If enabled, issues warnings instead of rejections for suspicious requests. Default off | |
--help, -h show help | |
--version, -v print the version | |
- | |
+ | |
``` | |
@@ -180,7 +187,7 @@ None | |
#### Result | |
- address [string]: account address that is derived from the generated key | |
- url [string]: location of the keyfile | |
- | |
+ | |
#### Sample call | |
```json | |
{ | |
@@ -214,9 +221,9 @@ None | |
#### Result | |
- array with account records: | |
- account.address [string]: account address that is derived from the generated key | |
- - account.type [string]: type of the account | |
+ - account.type [string]: type of the | |
- account.url [string]: location of the account | |
- | |
+ | |
#### Sample call | |
```json | |
{ | |
@@ -265,7 +272,7 @@ Response | |
#### Result | |
- signed transaction in RLP encoded form [data] | |
- | |
+ | |
#### Sample call | |
```json | |
{ | |
@@ -365,7 +372,7 @@ Bash example: | |
#### Result | |
- calculated signature [data] | |
- | |
+ | |
#### Sample call | |
```json | |
{ | |
@@ -498,7 +505,7 @@ Derive the address from the account that was used to sign data with content type | |
#### Result | |
- derived account [address] | |
- | |
+ | |
#### Sample call | |
```json | |
{ | |
@@ -527,16 +534,16 @@ Response | |
#### Import account | |
Import a private key into the keystore. The imported key is expected to be encrypted according to the web3 keystore | |
format. | |
- | |
+ | |
#### Arguments | |
- - account [object]: key in [web3 keystore format](https://github.com/ethereum/wiki/wiki/Web3-Secret-Storage-Definition) (retrieved with account_export) | |
+ - account [object]: key in [web3 keystore format](https://github.com/ethereum/wiki/wiki/Web3-Secret-Storage-Definition) (retrieved with account_export) | |
#### Result | |
- imported key [object]: | |
- key.address [address]: address of the imported key | |
- key.type [string]: type of the account | |
- key.url [string]: key URL | |
- | |
+ | |
#### Sample call | |
```json | |
{ | |
@@ -587,14 +594,14 @@ Response | |
#### Export account from keystore | |
Export a private key from the keystore. The exported private key is encrypted with the original passphrase. When the | |
key is imported later this passphrase is required. | |
- | |
+ | |
#### Arguments | |
- account [address]: export private key that is associated with this account | |
#### Result | |
- exported key, see [web3 keystore format](https://github.com/ethereum/wiki/wiki/Web3-Secret-Storage-Definition) for | |
more information | |
- | |
+ | |
#### Sample call | |
```json | |
{ | |
@@ -654,7 +661,7 @@ OBS! A slight deviation from `json` standard is in place: every request and resp | |
Whereas the `json` specification allows for linebreaks, linebreaks __should not__ be used in this communication channel, to make | |
things simpler for both parties. | |
-### ApproveTx | |
+### ApproveTx / `ui_approveTx` | |
Invoked when there's a transaction for approval. | |
@@ -666,13 +673,13 @@ Here's a method invocation: | |
curl -i -H "Content-Type: application/json" -X POST --data '{"jsonrpc":"2.0","method":"account_signTransaction","params":[{"from":"0x694267f14675d7e1b9494fd8d72fefe1755710fa","gas":"0x333","gasPrice":"0x1","nonce":"0x0","to":"0x07a565b7ed7d7a678680a4c162885bedbb695fe0", "value":"0x0", "data":"0x4401a6e40000000000000000000000000000000000000000000000000000000000000012"},"safeSend(address)"],"id":67}' http://localhost:8550/ | |
``` | |
- | |
+Results in the following invocation on the UI: | |
```json | |
{ | |
"jsonrpc": "2.0", | |
"id": 1, | |
- "method": "ApproveTx", | |
+ "method": "ui_approveTx", | |
"params": [ | |
{ | |
"transaction": { | |
@@ -717,7 +724,7 @@ curl -i -H "Content-Type: application/json" -X POST --data '{"jsonrpc":"2.0","me | |
{ | |
"jsonrpc": "2.0", | |
"id": 1, | |
- "method": "ApproveTx", | |
+ "method": "ui_approveTx", | |
"params": [ | |
{ | |
"transaction": { | |
@@ -760,7 +767,7 @@ One which has missing `to`, but with no `data`: | |
{ | |
"jsonrpc": "2.0", | |
"id": 3, | |
- "method": "ApproveTx", | |
+ "method": "ui_approveTx", | |
"params": [ | |
{ | |
"transaction": { | |
@@ -789,33 +796,7 @@ One which has missing `to`, but with no `data`: | |
} | |
``` | |
-### ApproveExport | |
- | |
-Invoked when a request to export an account has been made. | |
- | |
-#### Sample call | |
- | |
-```json | |
- | |
-{ | |
- "jsonrpc": "2.0", | |
- "id": 7, | |
- "method": "ApproveExport", | |
- "params": [ | |
- { | |
- "address": "0x0000000000000000000000000000000000000000", | |
- "meta": { | |
- "remote": "signer binary", | |
- "local": "main", | |
- "scheme": "in-proc" | |
- } | |
- } | |
- ] | |
-} | |
- | |
-``` | |
- | |
-### ApproveListing | |
+### ApproveListing / `ui_approveListing` | |
Invoked when a request for account listing has been made. | |
@@ -826,7 +807,7 @@ Invoked when a request for account listing has been made. | |
{ | |
"jsonrpc": "2.0", | |
"id": 5, | |
- "method": "ApproveListing", | |
+ "method": "ui_approveListing", | |
"params": [ | |
{ | |
"accounts": [ | |
@@ -853,7 +834,7 @@ Invoked when a request for account listing has been made. | |
``` | |
-### ApproveSignData | |
+### ApproveSignData / `ui_approveSignData` | |
#### Sample call | |
@@ -861,7 +842,7 @@ Invoked when a request for account listing has been made. | |
{ | |
"jsonrpc": "2.0", | |
"id": 4, | |
- "method": "ApproveSignData", | |
+ "method": "ui_approveSignData", | |
"params": [ | |
{ | |
"address": "0x123409812340981234098123409812deadbeef42", | |
@@ -879,7 +860,7 @@ Invoked when a request for account listing has been made. | |
``` | |
-### ShowInfo | |
+### ShowInfo / `ui_showInfo` | |
The UI should show the info to the user. Does not expect response. | |
@@ -889,7 +870,7 @@ The UI should show the info to the user. Does not expect response. | |
{ | |
"jsonrpc": "2.0", | |
"id": 9, | |
- "method": "ShowInfo", | |
+ "method": "ui_showInfo", | |
"params": [ | |
{ | |
"text": "Tests completed" | |
@@ -899,7 +880,7 @@ The UI should show the info to the user. Does not expect response. | |
``` | |
-### ShowError | |
+### ShowError / `ui_showError` | |
The UI should show the info to the user. Does not expect response. | |
@@ -918,7 +899,7 @@ The UI should show the info to the user. Does not expect response. | |
``` | |
-### OnApproved | |
+### OnApprovedTx / `ui_onApprovedTx` | |
`OnApprovedTx` is called when a transaction has been approved and signed. The call contains the return value that will be sent to the external caller. The return value from this method is ignored - the reason for having this callback is to allow the ruleset to keep track of approved transactions. | |
@@ -926,7 +907,7 @@ When implementing rate-limited rules, this callback should be used. | |
TLDR; Use this method to keep track of signed transactions, instead of using the data in `ApproveTx`. | |
-### OnSignerStartup | |
+### OnSignerStartup / `ui_onSignerStartup` | |
This method provide the UI with information about what API version the signer uses (both internal and external) aswell as build-info and external api, | |
in k/v-form. | |
@@ -937,7 +918,7 @@ Example call: | |
{ | |
"jsonrpc": "2.0", | |
"id": 1, | |
- "method": "OnSignerStartup", | |
+ "method": "ui_onSignerStartup", | |
"params": [ | |
{ | |
"info": { | |
@@ -972,9 +953,9 @@ A UI should conform to the following rules. | |
along with the UI. | |
-### UI Implementations | |
+### UI Implementations | |
-There are a couple of implementation for a UI. We'll try to keep this list up to date. | |
+There are a couple of implementation for a UI. We'll try to keep this list up to date. | |
| Name | Repo | UI type| No external resources| Blocky support| Verifies permissions | Hash information | No secondary storage | Statically linked| Can modify parameters| | |
| ---- | ---- | -------| ---- | ---- | ---- |---- | ---- | ---- | ---- | | |
diff --git a/cmd/clef/datatypes.md b/cmd/clef/datatypes.md | |
new file mode 100644 | |
index 000000000..a26c1c937 | |
--- /dev/null | |
+++ b/cmd/clef/datatypes.md | |
@@ -0,0 +1,224 @@ | |
+## UI Client interface | |
+ | |
+These data types are defined in the channel between clef and the UI | |
+### SignDataRequest | |
+ | |
+SignDataRequest contains information about a pending request to sign some data. The data to be signed can be of various types, defined by content-type. Clef has done most of the work in canonicalizing and making sense of the data, and it's up to the UI to presentthe user with the contents of the `message` | |
+ | |
+Example: | |
+```json | |
+{ | |
+ "content_type": "text/plain", | |
+ "address": "0xDEADbEeF000000000000000000000000DeaDbeEf", | |
+ "raw_data": "GUV0aGVyZXVtIFNpZ25lZCBNZXNzYWdlOgoxMWhlbGxvIHdvcmxk", | |
+ "message": [ | |
+ { | |
+ "name": "message", | |
+ "value": "\u0019Ethereum Signed Message:\n11hello world", | |
+ "type": "text/plain" | |
+ } | |
+ ], | |
+ "hash": "0xd9eba16ed0ecae432b71fe008c98cc872bb4cc214d3220a36f365326cf807d68", | |
+ "meta": { | |
+ "remote": "localhost:9999", | |
+ "local": "localhost:8545", | |
+ "scheme": "http", | |
+ "User-Agent": "Firefox 3.2", | |
+ "Origin": "www.malicious.ru" | |
+ } | |
+} | |
+``` | |
+### SignDataResponse - approve | |
+ | |
+Response to SignDataRequest | |
+ | |
+Example: | |
+```json | |
+{ | |
+ "approved": true | |
+} | |
+``` | |
+### SignDataResponse - deny | |
+ | |
+Response to SignDataRequest | |
+ | |
+Example: | |
+```json | |
+{ | |
+ "approved": false | |
+} | |
+``` | |
+### SignTxRequest | |
+ | |
+SignTxRequest contains information about a pending request to sign a transaction. Aside from the transaction itself, there is also a `call_info`-struct. That struct contains messages of various types, that the user should be informed of. | |
+ | |
+As in any request, it's important to consider that the `meta` info also contains untrusted data. | |
+ | |
+The `transaction` (on input into clef) can have either `data` or `input` -- if both are set, they must be identical, otherwise an error is generated. However, Clef will always use `data` when passing this struct on (if Clef does otherwise, please file a ticket) | |
+ | |
+Example: | |
+```json | |
+{ | |
+ "transaction": { | |
+ "from": "0xDEADbEeF000000000000000000000000DeaDbeEf", | |
+ "to": null, | |
+ "gas": "0x3e8", | |
+ "gasPrice": "0x5", | |
+ "value": "0x6", | |
+ "nonce": "0x1", | |
+ "data": "0x01020304" | |
+ }, | |
+ "call_info": [ | |
+ { | |
+ "type": "Warning", | |
+ "message": "Something looks odd, show this message as a warning" | |
+ }, | |
+ { | |
+ "type": "Info", | |
+ "message": "User should see this aswell" | |
+ } | |
+ ], | |
+ "meta": { | |
+ "remote": "localhost:9999", | |
+ "local": "localhost:8545", | |
+ "scheme": "http", | |
+ "User-Agent": "Firefox 3.2", | |
+ "Origin": "www.malicious.ru" | |
+ } | |
+} | |
+``` | |
+### SignTxResponse - approve | |
+ | |
+Response to request to sign a transaction. This response needs to contain the `transaction`, because the UI is free to make modifications to the transaction. | |
+ | |
+Example: | |
+```json | |
+{ | |
+ "transaction": { | |
+ "from": "0xDEADbEeF000000000000000000000000DeaDbeEf", | |
+ "to": null, | |
+ "gas": "0x3e8", | |
+ "gasPrice": "0x5", | |
+ "value": "0x6", | |
+ "nonce": "0x4", | |
+ "data": "0x04030201" | |
+ }, | |
+ "approved": true | |
+} | |
+``` | |
+### SignTxResponse - deny | |
+ | |
+Response to SignTxRequest. When denying a request, there's no need to provide the transaction in return | |
+ | |
+Example: | |
+```json | |
+{ | |
+ "transaction": { | |
+ "from": "0x", | |
+ "to": null, | |
+ "gas": "0x0", | |
+ "gasPrice": "0x0", | |
+ "value": "0x0", | |
+ "nonce": "0x0", | |
+ "data": null | |
+ }, | |
+ "approved": false | |
+} | |
+``` | |
+### OnApproved - SignTransactionResult | |
+ | |
+SignTransactionResult is used in the call `clef` -> `OnApprovedTx(result)` | |
+ | |
+This occurs _after_ successful completion of the entire signing procedure, but right before the signed transaction is passed to the external caller. This method (and data) can be used by the UI to signal to the user that the transaction was signed, but it is primarily useful for ruleset implementations. | |
+ | |
+A ruleset that implements a rate limitation needs to know what transactions are sent out to the external interface. By hooking into this methods, the ruleset can maintain track of that count. | |
+ | |
+**OBS:** Note that if an attacker can restore your `clef` data to a previous point in time (e.g through a backup), the attacker can reset such windows, even if he/she is unable to decrypt the content. | |
+ | |
+The `OnApproved` method cannot be responded to, it's purely informative | |
+ | |
+Example: | |
+```json | |
+{ | |
+ "raw": "0xf85d640101948a8eafb1cf62bfbeb1741769dae1a9dd47996192018026a0716bd90515acb1e68e5ac5867aa11a1e65399c3349d479f5fb698554ebc6f293a04e8a4ebfff434e971e0ef12c5bf3a881b06fd04fc3f8b8a7291fb67a26a1d4ed", | |
+ "tx": { | |
+ "nonce": "0x64", | |
+ "gasPrice": "0x1", | |
+ "gas": "0x1", | |
+ "to": "0x8a8eafb1cf62bfbeb1741769dae1a9dd47996192", | |
+ "value": "0x1", | |
+ "input": "0x", | |
+ "v": "0x26", | |
+ "r": "0x716bd90515acb1e68e5ac5867aa11a1e65399c3349d479f5fb698554ebc6f293", | |
+ "s": "0x4e8a4ebfff434e971e0ef12c5bf3a881b06fd04fc3f8b8a7291fb67a26a1d4ed", | |
+ "hash": "0x662f6d772692dd692f1b5e8baa77a9ff95bbd909362df3fc3d301aafebde5441" | |
+ } | |
+} | |
+``` | |
+### UserInputRequest | |
+ | |
+Sent when clef needs the user to provide data. If 'password' is true, the input field should be treated accordingly (echo-free) | |
+ | |
+Example: | |
+```json | |
+{ | |
+ "prompt": "The question to ask the user", | |
+ "title": "The title here", | |
+ "isPassword": true | |
+} | |
+``` | |
+### UserInputResponse | |
+ | |
+Response to UserInputRequest | |
+ | |
+Example: | |
+```json | |
+{ | |
+ "text": "The textual response from user" | |
+} | |
+``` | |
+### ListRequest | |
+ | |
+Sent when a request has been made to list addresses. The UI is provided with the full `account`s, including local directory names. Note: this information is not passed back to the external caller, who only sees the `address`es. | |
+ | |
+Example: | |
+```json | |
+{ | |
+ "accounts": [ | |
+ { | |
+ "address": "0xdeadbeef000000000000000000000000deadbeef", | |
+ "url": "keystore:///path/to/keyfile/a" | |
+ }, | |
+ { | |
+ "address": "0x1111111122222222222233333333334444444444", | |
+ "url": "keystore:///path/to/keyfile/b" | |
+ } | |
+ ], | |
+ "meta": { | |
+ "remote": "localhost:9999", | |
+ "local": "localhost:8545", | |
+ "scheme": "http", | |
+ "User-Agent": "Firefox 3.2", | |
+ "Origin": "www.malicious.ru" | |
+ } | |
+} | |
+``` | |
+### ListResponse | |
+ | |
+Response to list request. The response contains a list of all addresses to show to the caller. Note: the UI is free to respond with any address the caller, regardless of whether it exists or not | |
+ | |
+Example: | |
+```json | |
+{ | |
+ "accounts": [ | |
+ { | |
+ "address": "0x0000000000000000000000000000000000000000", | |
+ "url": ".. ignored .." | |
+ }, | |
+ { | |
+ "address": "0xffffffffffffffffffffffffffffffffffffffff", | |
+ "url": "" | |
+ } | |
+ ] | |
+} | |
+``` | |
diff --git a/cmd/clef/docs/clef_architecture_pt1.png b/cmd/clef/docs/clef_architecture_pt1.png | |
new file mode 100644 | |
index 0000000000000000000000000000000000000000..e40e532f3051d6b583698b539ae97bf12560f740 | |
GIT binary patch | |
literal 69221 | |
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≶ZGR08Cbr<I}Hp#D# | |
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 | |
R3_wMt{NU035_!{C{|mB0lGgwL | |
literal 0 | |
HcmV?d00001 | |
diff --git a/cmd/clef/docs/clef_architecture_pt2.png b/cmd/clef/docs/clef_architecture_pt2.png | |
new file mode 100644 | |
index 0000000000000000000000000000000000000000..f617d755e2e731cb65f84bb1ba19d65b836fa126 | |
GIT binary patch | |
literal 81521 | |
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 | |
literal 0 | |
HcmV?d00001 | |
diff --git a/cmd/clef/docs/clef_architecture_pt3.png b/cmd/clef/docs/clef_architecture_pt3.png | |
new file mode 100644 | |
index 0000000000000000000000000000000000000000..b9d695447308c0fe7c0dc3018618f7350f2a806c | |
GIT binary patch | |
literal 101351 | |
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 | |
HJ$dy%H_V2| | |
literal 0 | |
HcmV?d00001 | |
diff --git a/cmd/clef/docs/clef_architecture_pt4.png b/cmd/clef/docs/clef_architecture_pt4.png | |
new file mode 100644 | |
index 0000000000000000000000000000000000000000..a6cb3b4df24d6aee5b462ed00cfffb8de6bec60c | |
GIT binary patch | |
literal 117597 | |
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≺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 | |
literal 0 | |
HcmV?d00001 | |
diff --git a/cmd/clef/extapi_changelog.md b/cmd/clef/extapi_changelog.md | |
index 25f819bdd..dc7e65c01 100644 | |
--- a/cmd/clef/extapi_changelog.md | |
+++ b/cmd/clef/extapi_changelog.md | |
@@ -1,5 +1,10 @@ | |
### Changelog for external API | |
+### 6.0.0 | |
+ | |
+* `New` was changed to deliver only an address, not the full `Account` data | |
+* `Export` was moved from External API to the UI Server API | |
+ | |
#### 5.0.0 | |
* The external `account_EcRecover`-method was reimplemented. | |
diff --git a/cmd/clef/intapi_changelog.md b/cmd/clef/intapi_changelog.md | |
index 6388af730..b7d4937cd 100644 | |
--- a/cmd/clef/intapi_changelog.md | |
+++ b/cmd/clef/intapi_changelog.md | |
@@ -1,8 +1,74 @@ | |
### Changelog for internal API (ui-api) | |
+### 6.0.0 | |
+ | |
+Removed `password` from responses to operations which require them. This is for two reasons, | |
+ | |
+- Consistency between how rulesets operate and how manual processing works. A rule can `Approve` but require the actual password to be stored in the clef storage. | |
+With this change, the same stored password can be used even if rulesets are not enabled, but storage is. | |
+- It also removes the usability-shortcut that a UI might otherwise want to implement; remembering passwords. Since we now will not require the | |
+password on every `Approve`, there's no need for the UI to cache it locally. | |
+ - In a future update, we'll likely add `clef_storePassword` to the internal API, so the user can store it via his UI (currently only CLI works). | |
+ | |
+Affected datatypes: | |
+- `SignTxResponse` | |
+- `SignDataResponse` | |
+- `NewAccountResponse` | |
+ | |
+If `clef` requires a password, the `OnInputRequired` will be used to collect it. | |
+ | |
+ | |
+### 5.0.0 | |
+ | |
+Changed the namespace format to adhere to the legacy ethereum format: `name_methodName`. Changes: | |
+ | |
+* `ApproveTx` -> `ui_approveTx` | |
+* `ApproveSignData` -> `ui_approveSignData` | |
+* `ApproveExport` -> `removed` | |
+* `ApproveImport` -> `removed` | |
+* `ApproveListing` -> `ui_approveListing` | |
+* `ApproveNewAccount` -> `ui_approveNewAccount` | |
+* `ShowError` -> `ui_showError` | |
+* `ShowInfo` -> `ui_showInfo` | |
+* `OnApprovedTx` -> `ui_onApprovedTx` | |
+* `OnSignerStartup` -> `ui_onSignerStartup` | |
+* `OnInputRequired` -> `ui_onInputRequired` | |
+ | |
+ | |
+### 4.0.0 | |
+ | |
+* Bidirectional communication implemented, so the UI can query `clef` via the stdin/stdout RPC channel. Methods implemented are: | |
+ - `clef_listWallets` | |
+ - `clef_listAccounts` | |
+ - `clef_listWallets` | |
+ - `clef_deriveAccount` | |
+ - `clef_importRawKey` | |
+ - `clef_openWallet` | |
+ - `clef_chainId` | |
+ - `clef_setChainId` | |
+ - `clef_export` | |
+ - `clef_import` | |
+ | |
+* The type `Account` was modified (the json-field `type` was removed), to consist of | |
+ | |
+```golang | |
+type Account struct { | |
+ Address common.Address `json:"address"` // Ethereum account address derived from the key | |
+ URL URL `json:"url"` // Optional resource locator within a backend | |
+} | |
+``` | |
+ | |
+ | |
+### 3.2.0 | |
+ | |
+* Make `ShowError`, `OnApprovedTx`, `OnSignerStartup` be json-rpc [notifications](https://www.jsonrpc.org/specification#notification): | |
+ | |
+> A Notification is a Request object without an "id" member. A Request object that is a Notification signifies the Client's lack of interest in the corresponding Response object, and as such no Response object needs to be returned to the client. The Server MUST NOT reply to a Notification, including those that are within a batch request. | |
+> | |
+> Notifications are not confirmable by definition, since they do not have a Response object to be returned. As such, the Client would not be aware of any errors (like e.g. "Invalid params","Internal error" | |
### 3.1.0 | |
-* Add `ContentType string` to `SignDataRequest` to accommodate the latest EIP-191 and EIP-712 implementations. | |
+* Add `ContentType` `string` to `SignDataRequest` to accommodate the latest EIP-191 and EIP-712 implementations. | |
### 3.0.0 | |
diff --git a/cmd/clef/main.go b/cmd/clef/main.go | |
index d453f65e3..fecfcafaf 100644 | |
--- a/cmd/clef/main.go | |
+++ b/cmd/clef/main.go | |
@@ -14,8 +14,6 @@ | |
// You should have received a copy of the GNU General Public License | |
// along with go-ethereum. If not, see <http://www.gnu.org/licenses/>. | |
-// signer is a utility that can be used so sign transactions and | |
-// arbitrary data. | |
package main | |
import ( | |
@@ -36,17 +34,22 @@ import ( | |
"runtime" | |
"strings" | |
+ "github.com/ethereum/go-ethereum/accounts" | |
"github.com/ethereum/go-ethereum/accounts/keystore" | |
"github.com/ethereum/go-ethereum/cmd/utils" | |
"github.com/ethereum/go-ethereum/common" | |
+ "github.com/ethereum/go-ethereum/common/hexutil" | |
"github.com/ethereum/go-ethereum/console" | |
"github.com/ethereum/go-ethereum/core/types" | |
"github.com/ethereum/go-ethereum/crypto" | |
+ "github.com/ethereum/go-ethereum/internal/ethapi" | |
"github.com/ethereum/go-ethereum/log" | |
"github.com/ethereum/go-ethereum/node" | |
+ "github.com/ethereum/go-ethereum/params" | |
"github.com/ethereum/go-ethereum/rlp" | |
"github.com/ethereum/go-ethereum/rpc" | |
"github.com/ethereum/go-ethereum/signer/core" | |
+ "github.com/ethereum/go-ethereum/signer/fourbyte" | |
"github.com/ethereum/go-ethereum/signer/rules" | |
"github.com/ethereum/go-ethereum/signer/storage" | |
"gopkg.in/urfave/cli.v1" | |
@@ -55,12 +58,15 @@ import ( | |
const legalWarning = ` | |
WARNING! | |
-Clef is alpha software, and not yet publically released. This software has _not_ been audited, and there | |
-are no guarantees about the workings of this software. It may contain severe flaws. You should not use this software | |
-unless you agree to take full responsibility for doing so, and know what you are doing. | |
+Clef is an account management tool. It may, like any software, contain bugs. | |
-TLDR; THIS IS NOT PRODUCTION-READY SOFTWARE! | |
+Please take care to | |
+- backup your keystore files, | |
+- verify that the keystore(s) can be opened with your password. | |
+Clef is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; | |
+without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR | |
+PURPOSE. See the GNU General Public License for more details. | |
` | |
var ( | |
@@ -83,6 +89,11 @@ var ( | |
Value: DefaultConfigDir(), | |
Usage: "Directory for Clef configuration", | |
} | |
+ chainIdFlag = cli.Int64Flag{ | |
+ Name: "chainid", | |
+ Value: params.MainnetChainConfig.ChainID.Int64(), | |
+ Usage: "Chain id to use for signing (1=mainnet, 3=ropsten, 4=rinkeby, 5=Goerli)", | |
+ } | |
rpcPortFlag = cli.IntFlag{ | |
Name: "rpcport", | |
Usage: "HTTP-RPC server listening port", | |
@@ -92,11 +103,6 @@ var ( | |
Name: "signersecret", | |
Usage: "A file containing the (encrypted) master seed to encrypt Clef data, e.g. keystore credentials and ruleset hash", | |
} | |
- dBFlag = cli.StringFlag{ | |
- Name: "4bytedb", | |
- Usage: "File containing 4byte-identifiers", | |
- Value: "./4byte.json", | |
- } | |
customDBFlag = cli.StringFlag{ | |
Name: "4bytedb-custom", | |
Usage: "File used for writing new 4byte-identifiers submitted via API", | |
@@ -110,7 +116,7 @@ var ( | |
ruleFlag = cli.StringFlag{ | |
Name: "rules", | |
Usage: "Enable rule-engine", | |
- Value: "rules.json", | |
+ Value: "", | |
} | |
stdiouiFlag = cli.BoolFlag{ | |
Name: "stdio-ui", | |
@@ -165,10 +171,16 @@ Clef that the file is 'safe' to execute.`, | |
signerSecretFlag, | |
}, | |
Description: ` | |
- The setpw command stores a password for a given address (keyfile). If you enter a blank passphrase, it will | |
+The setpw command stores a password for a given address (keyfile). If you enter a blank passphrase, it will | |
remove any stored credential for that address (keyfile) | |
-`, | |
- } | |
+`} | |
+ gendocCommand = cli.Command{ | |
+ Action: GenDoc, | |
+ Name: "gendoc", | |
+ Usage: "Generate documentation about json-rpc format", | |
+ Description: ` | |
+The gendoc generates example structures of the json-rpc communication types. | |
+`} | |
) | |
func init() { | |
@@ -178,7 +190,7 @@ func init() { | |
logLevelFlag, | |
keystoreFlag, | |
configdirFlag, | |
- utils.NetworkIdFlag, | |
+ chainIdFlag, | |
utils.LightKDFFlag, | |
utils.NoUSBFlag, | |
utils.RPCListenAddrFlag, | |
@@ -188,7 +200,6 @@ func init() { | |
utils.RPCEnabledFlag, | |
rpcPortFlag, | |
signerSecretFlag, | |
- dBFlag, | |
customDBFlag, | |
auditLogFlag, | |
ruleFlag, | |
@@ -197,7 +208,7 @@ func init() { | |
advancedMode, | |
} | |
app.Action = signer | |
- app.Commands = []cli.Command{initCommand, attestCommand, setCredentialCommand} | |
+ app.Commands = []cli.Command{initCommand, attestCommand, setCredentialCommand, gendocCommand} | |
} | |
func main() { | |
@@ -338,7 +349,7 @@ func signer(c *cli.Context) error { | |
return err | |
} | |
var ( | |
- ui core.SignerUI | |
+ ui core.UIClientAPI | |
) | |
if c.GlobalBool(stdiouiFlag.Name) { | |
log.Info("Using stdin/stdout as UI-channel") | |
@@ -347,26 +358,24 @@ func signer(c *cli.Context) error { | |
log.Info("Using CLI as UI-channel") | |
ui = core.NewCommandlineUI() | |
} | |
- fourByteDb := c.GlobalString(dBFlag.Name) | |
+ // 4bytedb data | |
fourByteLocal := c.GlobalString(customDBFlag.Name) | |
- db, err := core.NewAbiDBFromFiles(fourByteDb, fourByteLocal) | |
+ db, err := fourbyte.NewWithFile(fourByteLocal) | |
if err != nil { | |
utils.Fatalf(err.Error()) | |
} | |
- log.Info("Loaded 4byte db", "signatures", db.Size(), "file", fourByteDb, "local", fourByteLocal) | |
+ embeds, locals := db.Size() | |
+ log.Info("Loaded 4byte database", "embeds", embeds, "locals", locals, "local", fourByteLocal) | |
var ( | |
- api core.ExternalAPI | |
+ api core.ExternalAPI | |
+ pwStorage storage.Storage = &storage.NoStorage{} | |
) | |
configDir := c.GlobalString(configdirFlag.Name) | |
if stretchedKey, err := readMasterKey(c, ui); err != nil { | |
log.Info("No master seed provided, rules disabled", "error", err) | |
} else { | |
- | |
- if err != nil { | |
- utils.Fatalf(err.Error()) | |
- } | |
vaultLocation := filepath.Join(configDir, common.Bytes2Hex(crypto.Keccak256([]byte("vault"), stretchedKey)[:10])) | |
// Generate domain specific keys | |
@@ -375,41 +384,49 @@ func signer(c *cli.Context) error { | |
confkey := crypto.Keccak256([]byte("config"), stretchedKey) | |
// Initialize the encrypted storages | |
- pwStorage := storage.NewAESEncryptedStorage(filepath.Join(vaultLocation, "credentials.json"), pwkey) | |
+ pwStorage = storage.NewAESEncryptedStorage(filepath.Join(vaultLocation, "credentials.json"), pwkey) | |
jsStorage := storage.NewAESEncryptedStorage(filepath.Join(vaultLocation, "jsstorage.json"), jskey) | |
configStorage := storage.NewAESEncryptedStorage(filepath.Join(vaultLocation, "config.json"), confkey) | |
//Do we have a rule-file? | |
- ruleJS, err := ioutil.ReadFile(c.GlobalString(ruleFlag.Name)) | |
- if err != nil { | |
- log.Info("Could not load rulefile, rules not enabled", "file", "rulefile") | |
- } else { | |
- hasher := sha256.New() | |
- hasher.Write(ruleJS) | |
- shasum := hasher.Sum(nil) | |
- storedShasum := configStorage.Get("ruleset_sha256") | |
- if storedShasum != hex.EncodeToString(shasum) { | |
- log.Info("Could not validate ruleset hash, rules not enabled", "got", hex.EncodeToString(shasum), "expected", storedShasum) | |
+ if ruleFile := c.GlobalString(ruleFlag.Name); ruleFile != "" { | |
+ ruleJS, err := ioutil.ReadFile(c.GlobalString(ruleFile)) | |
+ if err != nil { | |
+ log.Info("Could not load rulefile, rules not enabled", "file", "rulefile") | |
} else { | |
- // Initialize rules | |
- ruleEngine, err := rules.NewRuleEvaluator(ui, jsStorage, pwStorage) | |
- if err != nil { | |
- utils.Fatalf(err.Error()) | |
+ shasum := sha256.Sum256(ruleJS) | |
+ foundShaSum := hex.EncodeToString(shasum[:]) | |
+ storedShasum := configStorage.Get("ruleset_sha256") | |
+ if storedShasum != foundShaSum { | |
+ log.Info("Could not validate ruleset hash, rules not enabled", "got", foundShaSum, "expected", storedShasum) | |
+ } else { | |
+ // Initialize rules | |
+ ruleEngine, err := rules.NewRuleEvaluator(ui, jsStorage) | |
+ if err != nil { | |
+ utils.Fatalf(err.Error()) | |
+ } | |
+ ruleEngine.Init(string(ruleJS)) | |
+ ui = ruleEngine | |
+ log.Info("Rule engine configured", "file", c.String(ruleFlag.Name)) | |
} | |
- ruleEngine.Init(string(ruleJS)) | |
- ui = ruleEngine | |
- log.Info("Rule engine configured", "file", c.String(ruleFlag.Name)) | |
} | |
} | |
} | |
- | |
- apiImpl := core.NewSignerAPI( | |
- c.GlobalInt64(utils.NetworkIdFlag.Name), | |
- c.GlobalString(keystoreFlag.Name), | |
- c.GlobalBool(utils.NoUSBFlag.Name), | |
- ui, db, | |
- c.GlobalBool(utils.LightKDFFlag.Name), | |
- c.GlobalBool(advancedMode.Name)) | |
+ var ( | |
+ chainId = c.GlobalInt64(chainIdFlag.Name) | |
+ ksLoc = c.GlobalString(keystoreFlag.Name) | |
+ lightKdf = c.GlobalBool(utils.LightKDFFlag.Name) | |
+ advanced = c.GlobalBool(advancedMode.Name) | |
+ nousb = c.GlobalBool(utils.NoUSBFlag.Name) | |
+ ) | |
+ log.Info("Starting signer", "chainid", chainId, "keystore", ksLoc, | |
+ "light-kdf", lightKdf, "advanced", advanced) | |
+ am := core.StartClefAccountManager(ksLoc, nousb, lightKdf) | |
+ apiImpl := core.NewSignerAPI(am, chainId, nousb, ui, db, advanced, pwStorage) | |
+ | |
+ // Establish the bidirectional communication, by creating a new UI backend and registering | |
+ // it with the UI. | |
+ ui.RegisterUIServer(core.NewUIServerAPI(apiImpl)) | |
api = apiImpl | |
// Audit logging | |
if logfile := c.GlobalString(auditLogFlag.Name); logfile != "" { | |
@@ -511,7 +528,12 @@ func DefaultConfigDir() string { | |
if runtime.GOOS == "darwin" { | |
return filepath.Join(home, "Library", "Signer") | |
} else if runtime.GOOS == "windows" { | |
- return filepath.Join(home, "AppData", "Roaming", "Signer") | |
+ appdata := os.Getenv("APPDATA") | |
+ if appdata != "" { | |
+ return filepath.Join(appdata, "Signer") | |
+ } else { | |
+ return filepath.Join(home, "AppData", "Roaming", "Signer") | |
+ } | |
} else { | |
return filepath.Join(home, ".clef") | |
} | |
@@ -529,7 +551,7 @@ func homeDir() string { | |
} | |
return "" | |
} | |
-func readMasterKey(ctx *cli.Context, ui core.SignerUI) ([]byte, error) { | |
+func readMasterKey(ctx *cli.Context, ui core.UIClientAPI) ([]byte, error) { | |
var ( | |
file string | |
configDir = ctx.GlobalString(configdirFlag.Name) | |
@@ -613,72 +635,124 @@ func testExternalUI(api *core.SignerAPI) { | |
ctx := context.WithValue(context.Background(), "remote", "clef binary") | |
ctx = context.WithValue(ctx, "scheme", "in-proc") | |
ctx = context.WithValue(ctx, "local", "main") | |
- | |
errs := make([]string, 0) | |
- api.UI.ShowInfo("Testing 'ShowInfo'") | |
- api.UI.ShowError("Testing 'ShowError'") | |
+ a := common.HexToAddress("0xdeadbeef000000000000000000000000deadbeef") | |
- checkErr := func(method string, err error) { | |
- if err != nil && err != core.ErrRequestDenied { | |
- errs = append(errs, fmt.Sprintf("%v: %v", method, err.Error())) | |
+ queryUser := func(q string) string { | |
+ resp, err := api.UI.OnInputRequired(core.UserInputRequest{ | |
+ Title: "Testing", | |
+ Prompt: q, | |
+ }) | |
+ if err != nil { | |
+ errs = append(errs, err.Error()) | |
} | |
+ return resp.Text | |
} | |
- var err error | |
- | |
- cliqueHeader := types.Header{ | |
- common.HexToHash("0000H45H"), | |
- common.HexToHash("0000H45H"), | |
- common.HexToAddress("0000H45H"), | |
- common.HexToHash("0000H00H"), | |
- common.HexToHash("0000H45H"), | |
- common.HexToHash("0000H45H"), | |
- types.Bloom{}, | |
- big.NewInt(1337), | |
- big.NewInt(1337), | |
- 1338, | |
- 1338, | |
- 1338, | |
- []byte("Extra data Extra data Extra data Extra data Extra data Extra data Extra data Extra data"), | |
- common.HexToHash("0x0000H45H"), | |
- types.BlockNonce{}, | |
- } | |
- cliqueRlp, err := rlp.EncodeToBytes(cliqueHeader) | |
- if err != nil { | |
- utils.Fatalf("Should not error: %v", err) | |
+ expectResponse := func(testcase, question, expect string) { | |
+ if got := queryUser(question); got != expect { | |
+ errs = append(errs, fmt.Sprintf("%s: got %v, expected %v", testcase, got, expect)) | |
+ } | |
} | |
- addr, err := common.NewMixedcaseAddressFromString("0x0011223344556677889900112233445566778899") | |
- if err != nil { | |
- utils.Fatalf("Should not error: %v", err) | |
- } | |
- _, err = api.SignData(ctx, "application/clique", *addr, cliqueRlp) | |
- checkErr("SignData", err) | |
- | |
- _, err = api.SignTransaction(ctx, core.SendTxArgs{From: common.MixedcaseAddress{}}, nil) | |
- checkErr("SignTransaction", err) | |
- _, err = api.SignData(ctx, "text/plain", common.MixedcaseAddress{}, common.Hex2Bytes("01020304")) | |
- checkErr("SignData", err) | |
- //_, err = api.SignTypedData(ctx, common.MixedcaseAddress{}, core.TypedData{}) | |
- //checkErr("SignTypedData", err) | |
- _, err = api.List(ctx) | |
- checkErr("List", err) | |
- _, err = api.New(ctx) | |
- checkErr("New", err) | |
- _, err = api.Export(ctx, common.Address{}) | |
- checkErr("Export", err) | |
- _, err = api.Import(ctx, json.RawMessage{}) | |
- checkErr("Import", err) | |
- | |
- api.UI.ShowInfo("Tests completed") | |
- | |
- if len(errs) > 0 { | |
- log.Error("Got errors") | |
- for _, e := range errs { | |
- log.Error(e) | |
+ expectApprove := func(testcase string, err error) { | |
+ if err == nil || err == accounts.ErrUnknownAccount { | |
+ return | |
+ } | |
+ errs = append(errs, fmt.Sprintf("%v: expected no error, got %v", testcase, err.Error())) | |
+ } | |
+ expectDeny := func(testcase string, err error) { | |
+ if err == nil || err != core.ErrRequestDenied { | |
+ errs = append(errs, fmt.Sprintf("%v: expected ErrRequestDenied, got %v", testcase, err)) | |
} | |
- } else { | |
- log.Info("No errors") | |
} | |
+ | |
+ // Test display of info and error | |
+ { | |
+ api.UI.ShowInfo("If you see this message, enter 'yes' to next question") | |
+ expectResponse("showinfo", "Did you see the message? [yes/no]", "yes") | |
+ api.UI.ShowError("If you see this message, enter 'yes' to the next question") | |
+ expectResponse("showerror", "Did you see the message? [yes/no]", "yes") | |
+ } | |
+ { // Sign data test - clique header | |
+ api.UI.ShowInfo("Please approve the next request for signing a clique header") | |
+ cliqueHeader := types.Header{ | |
+ common.HexToHash("0000H45H"), | |
+ common.HexToHash("0000H45H"), | |
+ common.HexToAddress("0000H45H"), | |
+ common.HexToHash("0000H00H"), | |
+ common.HexToHash("0000H45H"), | |
+ common.HexToHash("0000H45H"), | |
+ types.Bloom{}, | |
+ big.NewInt(1337), | |
+ big.NewInt(1337), | |
+ 1338, | |
+ 1338, | |
+ 1338, | |
+ []byte("Extra data Extra data Extra data Extra data Extra data Extra data Extra data Extra data"), | |
+ common.HexToHash("0x0000H45H"), | |
+ types.BlockNonce{}, | |
+ } | |
+ cliqueRlp, err := rlp.EncodeToBytes(cliqueHeader) | |
+ if err != nil { | |
+ utils.Fatalf("Should not error: %v", err) | |
+ } | |
+ addr, _ := common.NewMixedcaseAddressFromString("0x0011223344556677889900112233445566778899") | |
+ _, err = api.SignData(ctx, accounts.MimetypeClique, *addr, hexutil.Encode(cliqueRlp)) | |
+ expectApprove("signdata - clique header", err) | |
+ } | |
+ { // Sign data test - plain text | |
+ api.UI.ShowInfo("Please approve the next request for signing text") | |
+ addr, _ := common.NewMixedcaseAddressFromString("0x0011223344556677889900112233445566778899") | |
+ _, err := api.SignData(ctx, accounts.MimetypeTextPlain, *addr, hexutil.Encode([]byte("hello world"))) | |
+ expectApprove("signdata - text", err) | |
+ } | |
+ { // Sign data test - plain text reject | |
+ api.UI.ShowInfo("Please deny the next request for signing text") | |
+ addr, _ := common.NewMixedcaseAddressFromString("0x0011223344556677889900112233445566778899") | |
+ _, err := api.SignData(ctx, accounts.MimetypeTextPlain, *addr, hexutil.Encode([]byte("hello world"))) | |
+ expectDeny("signdata - text", err) | |
+ } | |
+ { // Sign transaction | |
+ | |
+ api.UI.ShowInfo("Please reject next transaction") | |
+ data := hexutil.Bytes([]byte{}) | |
+ to := common.NewMixedcaseAddress(a) | |
+ tx := core.SendTxArgs{ | |
+ Data: &data, | |
+ Nonce: 0x1, | |
+ Value: hexutil.Big(*big.NewInt(6)), | |
+ From: common.NewMixedcaseAddress(a), | |
+ To: &to, | |
+ GasPrice: hexutil.Big(*big.NewInt(5)), | |
+ Gas: 1000, | |
+ Input: nil, | |
+ } | |
+ _, err := api.SignTransaction(ctx, tx, nil) | |
+ expectDeny("signtransaction [1]", err) | |
+ expectResponse("signtransaction [2]", "Did you see any warnings for the last transaction? (yes/no)", "no") | |
+ } | |
+ { // Listing | |
+ api.UI.ShowInfo("Please reject listing-request") | |
+ _, err := api.List(ctx) | |
+ expectDeny("list", err) | |
+ } | |
+ { // Import | |
+ api.UI.ShowInfo("Please reject new account-request") | |
+ _, err := api.New(ctx) | |
+ expectDeny("newaccount", err) | |
+ } | |
+ { // Metadata | |
+ api.UI.ShowInfo("Please check if you see the Origin in next listing (approve or deny)") | |
+ api.List(context.WithValue(ctx, "Origin", "origin.com")) | |
+ expectResponse("metadata - origin", "Did you see origin (origin.com)? [yes/no] ", "yes") | |
+ } | |
+ | |
+ for _, e := range errs { | |
+ log.Error(e) | |
+ } | |
+ result := fmt.Sprintf("Tests completed. %d errors:\n%s\n", len(errs), strings.Join(errs, "\n")) | |
+ api.UI.ShowInfo(result) | |
+ | |
} | |
// getPassPhrase retrieves the password associated with clef, either fetched | |
@@ -734,6 +808,154 @@ func decryptSeed(keyjson []byte, auth string) ([]byte, error) { | |
return seed, err | |
} | |
+// GenDoc outputs examples of all structures used in json-rpc communication | |
+func GenDoc(ctx *cli.Context) { | |
+ | |
+ var ( | |
+ a = common.HexToAddress("0xdeadbeef000000000000000000000000deadbeef") | |
+ b = common.HexToAddress("0x1111111122222222222233333333334444444444") | |
+ meta = core.Metadata{ | |
+ Scheme: "http", | |
+ Local: "localhost:8545", | |
+ Origin: "www.malicious.ru", | |
+ Remote: "localhost:9999", | |
+ UserAgent: "Firefox 3.2", | |
+ } | |
+ output []string | |
+ add = func(name, desc string, v interface{}) { | |
+ if data, err := json.MarshalIndent(v, "", " "); err == nil { | |
+ output = append(output, fmt.Sprintf("### %s\n\n%s\n\nExample:\n```json\n%s\n```", name, desc, data)) | |
+ } else { | |
+ log.Error("Error generating output", err) | |
+ } | |
+ } | |
+ ) | |
+ | |
+ { // Sign plain text request | |
+ desc := "SignDataRequest contains information about a pending request to sign some data. " + | |
+ "The data to be signed can be of various types, defined by content-type. Clef has done most " + | |
+ "of the work in canonicalizing and making sense of the data, and it's up to the UI to present" + | |
+ "the user with the contents of the `message`" | |
+ sighash, msg := accounts.TextAndHash([]byte("hello world")) | |
+ message := []*core.NameValueType{{"message", msg, accounts.MimetypeTextPlain}} | |
+ | |
+ add("SignDataRequest", desc, &core.SignDataRequest{ | |
+ Address: common.NewMixedcaseAddress(a), | |
+ Meta: meta, | |
+ ContentType: accounts.MimetypeTextPlain, | |
+ Rawdata: []byte(msg), | |
+ Message: message, | |
+ Hash: sighash}) | |
+ } | |
+ { // Sign plain text response | |
+ add("SignDataResponse - approve", "Response to SignDataRequest", | |
+ &core.SignDataResponse{Approved: true}) | |
+ add("SignDataResponse - deny", "Response to SignDataRequest", | |
+ &core.SignDataResponse{}) | |
+ } | |
+ { // Sign transaction request | |
+ desc := "SignTxRequest contains information about a pending request to sign a transaction. " + | |
+ "Aside from the transaction itself, there is also a `call_info`-struct. That struct contains " + | |
+ "messages of various types, that the user should be informed of." + | |
+ "\n\n" + | |
+ "As in any request, it's important to consider that the `meta` info also contains untrusted data." + | |
+ "\n\n" + | |
+ "The `transaction` (on input into clef) can have either `data` or `input` -- if both are set, " + | |
+ "they must be identical, otherwise an error is generated. " + | |
+ "However, Clef will always use `data` when passing this struct on (if Clef does otherwise, please file a ticket)" | |
+ | |
+ data := hexutil.Bytes([]byte{0x01, 0x02, 0x03, 0x04}) | |
+ add("SignTxRequest", desc, &core.SignTxRequest{ | |
+ Meta: meta, | |
+ Callinfo: []core.ValidationInfo{ | |
+ {"Warning", "Something looks odd, show this message as a warning"}, | |
+ {"Info", "User should see this aswell"}, | |
+ }, | |
+ Transaction: core.SendTxArgs{ | |
+ Data: &data, | |
+ Nonce: 0x1, | |
+ Value: hexutil.Big(*big.NewInt(6)), | |
+ From: common.NewMixedcaseAddress(a), | |
+ To: nil, | |
+ GasPrice: hexutil.Big(*big.NewInt(5)), | |
+ Gas: 1000, | |
+ Input: nil, | |
+ }}) | |
+ } | |
+ { // Sign tx response | |
+ data := hexutil.Bytes([]byte{0x04, 0x03, 0x02, 0x01}) | |
+ add("SignTxResponse - approve", "Response to request to sign a transaction. This response needs to contain the `transaction`"+ | |
+ ", because the UI is free to make modifications to the transaction.", | |
+ &core.SignTxResponse{Approved: true, | |
+ Transaction: core.SendTxArgs{ | |
+ Data: &data, | |
+ Nonce: 0x4, | |
+ Value: hexutil.Big(*big.NewInt(6)), | |
+ From: common.NewMixedcaseAddress(a), | |
+ To: nil, | |
+ GasPrice: hexutil.Big(*big.NewInt(5)), | |
+ Gas: 1000, | |
+ Input: nil, | |
+ }}) | |
+ add("SignTxResponse - deny", "Response to SignTxRequest. When denying a request, there's no need to "+ | |
+ "provide the transaction in return", | |
+ &core.SignTxResponse{}) | |
+ } | |
+ { // WHen a signed tx is ready to go out | |
+ desc := "SignTransactionResult is used in the call `clef` -> `OnApprovedTx(result)`" + | |
+ "\n\n" + | |
+ "This occurs _after_ successful completion of the entire signing procedure, but right before the signed " + | |
+ "transaction is passed to the external caller. This method (and data) can be used by the UI to signal " + | |
+ "to the user that the transaction was signed, but it is primarily useful for ruleset implementations." + | |
+ "\n\n" + | |
+ "A ruleset that implements a rate limitation needs to know what transactions are sent out to the external " + | |
+ "interface. By hooking into this methods, the ruleset can maintain track of that count." + | |
+ "\n\n" + | |
+ "**OBS:** Note that if an attacker can restore your `clef` data to a previous point in time" + | |
+ " (e.g through a backup), the attacker can reset such windows, even if he/she is unable to decrypt the content. " + | |
+ "\n\n" + | |
+ "The `OnApproved` method cannot be responded to, it's purely informative" | |
+ | |
+ rlpdata := common.FromHex("0xf85d640101948a8eafb1cf62bfbeb1741769dae1a9dd47996192018026a0716bd90515acb1e68e5ac5867aa11a1e65399c3349d479f5fb698554ebc6f293a04e8a4ebfff434e971e0ef12c5bf3a881b06fd04fc3f8b8a7291fb67a26a1d4ed") | |
+ var tx types.Transaction | |
+ rlp.DecodeBytes(rlpdata, &tx) | |
+ add("OnApproved - SignTransactionResult", desc, ðapi.SignTransactionResult{Raw: rlpdata, Tx: &tx}) | |
+ | |
+ } | |
+ { // User input | |
+ add("UserInputRequest", "Sent when clef needs the user to provide data. If 'password' is true, the input field should be treated accordingly (echo-free)", | |
+ &core.UserInputRequest{IsPassword: true, Title: "The title here", Prompt: "The question to ask the user"}) | |
+ add("UserInputResponse", "Response to UserInputRequest", | |
+ &core.UserInputResponse{Text: "The textual response from user"}) | |
+ } | |
+ { // List request | |
+ add("ListRequest", "Sent when a request has been made to list addresses. The UI is provided with the "+ | |
+ "full `account`s, including local directory names. Note: this information is not passed back to the external caller, "+ | |
+ "who only sees the `address`es. ", | |
+ &core.ListRequest{ | |
+ Meta: meta, | |
+ Accounts: []accounts.Account{ | |
+ {a, accounts.URL{Scheme: "keystore", Path: "/path/to/keyfile/a"}}, | |
+ {b, accounts.URL{Scheme: "keystore", Path: "/path/to/keyfile/b"}}}, | |
+ }) | |
+ | |
+ add("ListResponse", "Response to list request. The response contains a list of all addresses to show to the caller. "+ | |
+ "Note: the UI is free to respond with any address the caller, regardless of whether it exists or not", | |
+ &core.ListResponse{ | |
+ Accounts: []accounts.Account{ | |
+ {common.HexToAddress("0xcowbeef000000cowbeef00000000000000000c0w"), accounts.URL{Path: ".. ignored .."}}, | |
+ {common.HexToAddress("0xffffffffffffffffffffffffffffffffffffffff"), accounts.URL{}}, | |
+ }}) | |
+ } | |
+ | |
+ fmt.Println(`## UI Client interface | |
+ | |
+These data types are defined in the channel between clef and the UI`) | |
+ for _, elem := range output { | |
+ fmt.Println(elem) | |
+ } | |
+} | |
+ | |
/** | |
//Create Account | |
diff --git a/cmd/clef/tests/testsigner.js b/cmd/clef/tests/testsigner.js | |
new file mode 100644 | |
index 000000000..86b2c4539 | |
--- /dev/null | |
+++ b/cmd/clef/tests/testsigner.js | |
@@ -0,0 +1,73 @@ | |
+// This file is a test-utility for testing clef-functionality | |
+// | |
+// Start clef with | |
+// | |
+// build/bin/clef --4bytedb=./cmd/clef/4byte.json --rpc | |
+// | |
+// Start geth with | |
+// | |
+// build/bin/geth --nodiscover --maxpeers 0 --signer http://localhost:8550 console --preload=cmd/clef/tests/testsigner.js | |
+// | |
+// and in the console simply invoke | |
+// | |
+// > test() | |
+// | |
+// You can reload the file via `reload()` | |
+ | |
+function reload(){ | |
+ loadScript("./cmd/clef/tests/testsigner.js"); | |
+} | |
+ | |
+function init(){ | |
+ if (typeof accts == 'undefined' || accts.length == 0){ | |
+ accts = eth.accounts | |
+ console.log("Got accounts ", accts); | |
+ } | |
+} | |
+init() | |
+function testTx(){ | |
+ if( accts && accts.length > 0) { | |
+ var a = accts[0] | |
+ var txdata = eth.signTransaction({from: a, to: a, value: 1, nonce: 1, gas: 1, gasPrice: 1}) | |
+ var v = parseInt(txdata.tx.v) | |
+ console.log("V value: ", v) | |
+ if (v == 37 || v == 38){ | |
+ console.log("Mainnet 155-protected chainid was used") | |
+ } | |
+ if (v == 27 || v == 28){ | |
+ throw new Error("Mainnet chainid was used, but without replay protection!") | |
+ } | |
+ } | |
+} | |
+function testSignText(){ | |
+ if( accts && accts.length > 0){ | |
+ var a = accts[0] | |
+ var r = eth.sign(a, "0x68656c6c6f20776f726c64"); //hello world | |
+ console.log("signing response", r) | |
+ } | |
+} | |
+function testClique(){ | |
+ if( accts && accts.length > 0){ | |
+ var a = accts[0] | |
+ var r = debug.testSignCliqueBlock(a, 0); // Sign genesis | |
+ console.log("signing response", r) | |
+ if( a != r){ | |
+ throw new Error("Requested signing by "+a+ " but got sealer "+r) | |
+ } | |
+ } | |
+} | |
+ | |
+function test(){ | |
+ var tests = [ | |
+ testTx, | |
+ testSignText, | |
+ testClique, | |
+ ] | |
+ for( i in tests){ | |
+ try{ | |
+ tests[i]() | |
+ }catch(err){ | |
+ console.log(err) | |
+ } | |
+ } | |
+ } | |
diff --git a/cmd/evm/internal/compiler/compiler.go b/cmd/evm/internal/compiler/compiler.go | |
index 753ca6226..54981b669 100644 | |
--- a/cmd/evm/internal/compiler/compiler.go | |
+++ b/cmd/evm/internal/compiler/compiler.go | |
@@ -25,7 +25,7 @@ import ( | |
func Compile(fn string, src []byte, debug bool) (string, error) { | |
compiler := asm.NewCompiler(debug) | |
- compiler.Feed(asm.Lex(fn, src, debug)) | |
+ compiler.Feed(asm.Lex(src, debug)) | |
bin, compileErrors := compiler.Compile() | |
if len(compileErrors) > 0 { | |
diff --git a/cmd/evm/runner.go b/cmd/evm/runner.go | |
index c732c8b57..bc5d00cfb 100644 | |
--- a/cmd/evm/runner.go | |
+++ b/cmd/evm/runner.go | |
@@ -31,10 +31,10 @@ import ( | |
"github.com/ethereum/go-ethereum/cmd/utils" | |
"github.com/ethereum/go-ethereum/common" | |
"github.com/ethereum/go-ethereum/core" | |
+ "github.com/ethereum/go-ethereum/core/rawdb" | |
"github.com/ethereum/go-ethereum/core/state" | |
"github.com/ethereum/go-ethereum/core/vm" | |
"github.com/ethereum/go-ethereum/core/vm/runtime" | |
- "github.com/ethereum/go-ethereum/ethdb" | |
"github.com/ethereum/go-ethereum/log" | |
"github.com/ethereum/go-ethereum/params" | |
cli "gopkg.in/urfave/cli.v1" | |
@@ -99,12 +99,12 @@ func runCmd(ctx *cli.Context) error { | |
if ctx.GlobalString(GenesisFlag.Name) != "" { | |
gen := readGenesis(ctx.GlobalString(GenesisFlag.Name)) | |
genesisConfig = gen | |
- db := ethdb.NewMemDatabase() | |
+ db := rawdb.NewMemoryDatabase() | |
genesis := gen.ToBlock(db) | |
statedb, _ = state.New(genesis.Root(), state.NewDatabase(db)) | |
chainConfig = gen.Config | |
} else { | |
- statedb, _ = state.New(common.Hash{}, state.NewDatabase(ethdb.NewMemDatabase())) | |
+ statedb, _ = state.New(common.Hash{}, state.NewDatabase(rawdb.NewMemoryDatabase())) | |
genesisConfig = new(core.Genesis) | |
} | |
if ctx.GlobalString(SenderFlag.Name) != "" { | |
diff --git a/cmd/geth/accountcmd.go b/cmd/geth/accountcmd.go | |
index 071be8539..940290899 100644 | |
--- a/cmd/geth/accountcmd.go | |
+++ b/cmd/geth/accountcmd.go | |
@@ -205,7 +205,7 @@ func accountList(ctx *cli.Context) error { | |
} | |
// tries unlocking the specified account a few times. | |
-func unlockAccount(ctx *cli.Context, ks *keystore.KeyStore, address string, i int, passwords []string) (accounts.Account, string) { | |
+func unlockAccount(ks *keystore.KeyStore, address string, i int, passwords []string) (accounts.Account, string) { | |
account, err := utils.MakeAddress(ks, address) | |
if err != nil { | |
utils.Fatalf("Could not list accounts: %v", err) | |
@@ -326,7 +326,7 @@ func accountUpdate(ctx *cli.Context) error { | |
ks := stack.AccountManager().Backends(keystore.KeyStoreType)[0].(*keystore.KeyStore) | |
for _, addr := range ctx.Args() { | |
- account, oldPassword := unlockAccount(ctx, ks, addr, 0, nil) | |
+ account, oldPassword := unlockAccount(ks, addr, 0, nil) | |
newPassword := getPassPhrase("Please give a new password. Do not forget this password.", true, 0, nil) | |
if err := ks.Update(account, oldPassword, newPassword); err != nil { | |
utils.Fatalf("Could not update the account: %v", err) | |
diff --git a/cmd/geth/bugcmd.go b/cmd/geth/bugcmd.go | |
deleted file mode 100644 | |
index 0adc69d1f..000000000 | |
--- a/cmd/geth/bugcmd.go | |
+++ /dev/null | |
@@ -1,113 +0,0 @@ | |
-// Copyright 2017 The go-ethereum Authors | |
-// This file is part of go-ethereum. | |
-// | |
-// go-ethereum is free software: you can redistribute it and/or modify | |
-// it under the terms of the GNU General Public License as published by | |
-// the Free Software Foundation, either version 3 of the License, or | |
-// (at your option) any later version. | |
-// | |
-// go-ethereum is distributed in the hope that it will be useful, | |
-// but WITHOUT ANY WARRANTY; without even the implied warranty of | |
-// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the | |
-// GNU General Public License for more details. | |
-// | |
-// You should have received a copy of the GNU General Public License | |
-// along with go-ethereum. If not, see <http://www.gnu.org/licenses/>. | |
- | |
-package main | |
- | |
-import ( | |
- "bytes" | |
- "fmt" | |
- "io" | |
- "io/ioutil" | |
- "net/url" | |
- "os/exec" | |
- "runtime" | |
- "strings" | |
- | |
- "github.com/ethereum/go-ethereum/cmd/internal/browser" | |
- "github.com/ethereum/go-ethereum/params" | |
- | |
- "github.com/ethereum/go-ethereum/cmd/utils" | |
- cli "gopkg.in/urfave/cli.v1" | |
-) | |
- | |
-var bugCommand = cli.Command{ | |
- Action: utils.MigrateFlags(reportBug), | |
- Name: "bug", | |
- Usage: "opens a window to report a bug on the geth repo", | |
- ArgsUsage: " ", | |
- Category: "MISCELLANEOUS COMMANDS", | |
-} | |
- | |
-const issueURL = "https://github.com/ethereum/go-ethereum/issues/new" | |
- | |
-// reportBug reports a bug by opening a new URL to the go-ethereum GH issue | |
-// tracker and setting default values as the issue body. | |
-func reportBug(ctx *cli.Context) error { | |
- // execute template and write contents to buff | |
- var buff bytes.Buffer | |
- | |
- fmt.Fprintln(&buff, "#### System information") | |
- fmt.Fprintln(&buff) | |
- fmt.Fprintln(&buff, "Version:", params.VersionWithMeta) | |
- fmt.Fprintln(&buff, "Go Version:", runtime.Version()) | |
- fmt.Fprintln(&buff, "OS:", runtime.GOOS) | |
- printOSDetails(&buff) | |
- fmt.Fprintln(&buff, header) | |
- | |
- // open a new GH issue | |
- if !browser.Open(issueURL + "?body=" + url.QueryEscape(buff.String())) { | |
- fmt.Printf("Please file a new issue at %s using this template:\n\n%s", issueURL, buff.String()) | |
- } | |
- return nil | |
-} | |
- | |
-// copied from the Go source. Copyright 2017 The Go Authors | |
-func printOSDetails(w io.Writer) { | |
- switch runtime.GOOS { | |
- case "darwin": | |
- printCmdOut(w, "uname -v: ", "uname", "-v") | |
- printCmdOut(w, "", "sw_vers") | |
- case "linux": | |
- printCmdOut(w, "uname -sr: ", "uname", "-sr") | |
- printCmdOut(w, "", "lsb_release", "-a") | |
- case "openbsd", "netbsd", "freebsd", "dragonfly": | |
- printCmdOut(w, "uname -v: ", "uname", "-v") | |
- case "solaris": | |
- out, err := ioutil.ReadFile("/etc/release") | |
- if err == nil { | |
- fmt.Fprintf(w, "/etc/release: %s\n", out) | |
- } else { | |
- fmt.Printf("failed to read /etc/release: %v\n", err) | |
- } | |
- } | |
-} | |
- | |
-// printCmdOut prints the output of running the given command. | |
-// It ignores failures; 'go bug' is best effort. | |
-// | |
-// copied from the Go source. Copyright 2017 The Go Authors | |
-func printCmdOut(w io.Writer, prefix, path string, args ...string) { | |
- cmd := exec.Command(path, args...) | |
- out, err := cmd.Output() | |
- if err != nil { | |
- fmt.Printf("%s %s: %v\n", path, strings.Join(args, " "), err) | |
- return | |
- } | |
- fmt.Fprintf(w, "%s%s\n", prefix, bytes.TrimSpace(out)) | |
-} | |
- | |
-const header = ` | |
-#### Expected behaviour | |
- | |
- | |
-#### Actual behaviour | |
- | |
- | |
-#### Steps to reproduce the behaviour | |
- | |
- | |
-#### Backtrace | |
-` | |
diff --git a/cmd/geth/chaincmd.go b/cmd/geth/chaincmd.go | |
index 22e515af0..ceedf66e1 100644 | |
--- a/cmd/geth/chaincmd.go | |
+++ b/cmd/geth/chaincmd.go | |
@@ -29,14 +29,12 @@ import ( | |
"github.com/ethereum/go-ethereum/common" | |
"github.com/ethereum/go-ethereum/console" | |
"github.com/ethereum/go-ethereum/core" | |
+ "github.com/ethereum/go-ethereum/core/rawdb" | |
"github.com/ethereum/go-ethereum/core/state" | |
"github.com/ethereum/go-ethereum/core/types" | |
"github.com/ethereum/go-ethereum/eth/downloader" | |
- "github.com/ethereum/go-ethereum/ethdb" | |
"github.com/ethereum/go-ethereum/event" | |
"github.com/ethereum/go-ethereum/log" | |
- "github.com/ethereum/go-ethereum/trie" | |
- "github.com/syndtr/goleveldb/leveldb/util" | |
"gopkg.in/urfave/cli.v1" | |
) | |
@@ -197,7 +195,7 @@ func initGenesis(ctx *cli.Context) error { | |
defer stack.Close() | |
for _, name := range []string{"chaindata", "lightchaindata"} { | |
- chaindb, err := stack.OpenDatabase(name, 0, 0) | |
+ chaindb, err := stack.OpenDatabase(name, 0, 0, "") | |
if err != nil { | |
utils.Fatalf("Failed to open database: %v", err) | |
} | |
@@ -205,6 +203,7 @@ func initGenesis(ctx *cli.Context) error { | |
if err != nil { | |
utils.Fatalf("Failed to write genesis block: %v", err) | |
} | |
+ chaindb.Close() | |
log.Info("Successfully wrote genesis state", "database", name, "hash", hash) | |
} | |
return nil | |
@@ -217,8 +216,8 @@ func importChain(ctx *cli.Context) error { | |
stack := makeFullNode(ctx) | |
defer stack.Close() | |
- chain, chainDb := utils.MakeChain(ctx, stack) | |
- defer chainDb.Close() | |
+ chain, db := utils.MakeChain(ctx, stack) | |
+ defer db.Close() | |
// Start periodically gathering memory profiles | |
var peakMemAlloc, peakMemSys uint64 | |
@@ -253,23 +252,18 @@ func importChain(ctx *cli.Context) error { | |
fmt.Printf("Import done in %v.\n\n", time.Since(start)) | |
// Output pre-compaction stats mostly to see the import trashing | |
- db := chainDb.(*ethdb.LDBDatabase) | |
- | |
- stats, err := db.LDB().GetProperty("leveldb.stats") | |
+ stats, err := db.Stat("leveldb.stats") | |
if err != nil { | |
utils.Fatalf("Failed to read database stats: %v", err) | |
} | |
fmt.Println(stats) | |
- ioStats, err := db.LDB().GetProperty("leveldb.iostats") | |
+ ioStats, err := db.Stat("leveldb.iostats") | |
if err != nil { | |
utils.Fatalf("Failed to read database iostats: %v", err) | |
} | |
fmt.Println(ioStats) | |
- fmt.Printf("Trie cache misses: %d\n", trie.CacheMisses()) | |
- fmt.Printf("Trie cache unloads: %d\n\n", trie.CacheUnloads()) | |
- | |
// Print the memory statistics used by the importing | |
mem := new(runtime.MemStats) | |
runtime.ReadMemStats(mem) | |
@@ -286,23 +280,22 @@ func importChain(ctx *cli.Context) error { | |
// Compact the entire database to more accurately measure disk io and print the stats | |
start = time.Now() | |
fmt.Println("Compacting entire database...") | |
- if err = db.LDB().CompactRange(util.Range{}); err != nil { | |
+ if err = db.Compact(nil, nil); err != nil { | |
utils.Fatalf("Compaction failed: %v", err) | |
} | |
fmt.Printf("Compaction done in %v.\n\n", time.Since(start)) | |
- stats, err = db.LDB().GetProperty("leveldb.stats") | |
+ stats, err = db.Stat("leveldb.stats") | |
if err != nil { | |
utils.Fatalf("Failed to read database stats: %v", err) | |
} | |
fmt.Println(stats) | |
- ioStats, err = db.LDB().GetProperty("leveldb.iostats") | |
+ ioStats, err = db.Stat("leveldb.iostats") | |
if err != nil { | |
utils.Fatalf("Failed to read database iostats: %v", err) | |
} | |
fmt.Println(ioStats) | |
- | |
return nil | |
} | |
@@ -348,10 +341,10 @@ func importPreimages(ctx *cli.Context) error { | |
stack := makeFullNode(ctx) | |
defer stack.Close() | |
- diskdb := utils.MakeChainDatabase(ctx, stack).(*ethdb.LDBDatabase) | |
+ db := utils.MakeChainDatabase(ctx, stack) | |
start := time.Now() | |
- if err := utils.ImportPreimages(diskdb, ctx.Args().First()); err != nil { | |
+ if err := utils.ImportPreimages(db, ctx.Args().First()); err != nil { | |
utils.Fatalf("Import error: %v\n", err) | |
} | |
fmt.Printf("Import done in %v\n", time.Since(start)) | |
@@ -366,10 +359,10 @@ func exportPreimages(ctx *cli.Context) error { | |
stack := makeFullNode(ctx) | |
defer stack.Close() | |
- diskdb := utils.MakeChainDatabase(ctx, stack).(*ethdb.LDBDatabase) | |
+ db := utils.MakeChainDatabase(ctx, stack) | |
start := time.Now() | |
- if err := utils.ExportPreimages(diskdb, ctx.Args().First()); err != nil { | |
+ if err := utils.ExportPreimages(db, ctx.Args().First()); err != nil { | |
utils.Fatalf("Export error: %v\n", err) | |
} | |
fmt.Printf("Export done in %v\n", time.Since(start)) | |
@@ -387,10 +380,10 @@ func copyDb(ctx *cli.Context) error { | |
chain, chainDb := utils.MakeChain(ctx, stack) | |
syncmode := *utils.GlobalTextMarshaler(ctx, utils.SyncModeFlag.Name).(*downloader.SyncMode) | |
- dl := downloader.New(syncmode, chainDb, new(event.TypeMux), chain, nil, nil) | |
+ dl := downloader.New(syncmode, 0, chainDb, new(event.TypeMux), chain, nil, nil) | |
// Create a source peer to satisfy downloader requests from | |
- db, err := ethdb.NewLDBDatabase(ctx.Args().First(), ctx.GlobalInt(utils.CacheFlag.Name), 256) | |
+ db, err := rawdb.NewLevelDBDatabase(ctx.Args().First(), ctx.GlobalInt(utils.CacheFlag.Name), 256, "") | |
if err != nil { | |
return err | |
} | |
@@ -417,11 +410,10 @@ func copyDb(ctx *cli.Context) error { | |
// Compact the entire database to remove any sync overhead | |
start = time.Now() | |
fmt.Println("Compacting entire database...") | |
- if err = chainDb.(*ethdb.LDBDatabase).LDB().CompactRange(util.Range{}); err != nil { | |
+ if err = db.Compact(nil, nil); err != nil { | |
utils.Fatalf("Compaction failed: %v", err) | |
} | |
fmt.Printf("Compaction done in %v.\n\n", time.Since(start)) | |
- | |
return nil | |
} | |
diff --git a/cmd/geth/config.go b/cmd/geth/config.go | |
index 42f7eb4f6..f316380ce 100644 | |
--- a/cmd/geth/config.go | |
+++ b/cmd/geth/config.go | |
@@ -30,6 +30,7 @@ import ( | |
"github.com/ethereum/go-ethereum/cmd/utils" | |
"github.com/ethereum/go-ethereum/dashboard" | |
"github.com/ethereum/go-ethereum/eth" | |
+ "github.com/ethereum/go-ethereum/graphql" | |
"github.com/ethereum/go-ethereum/node" | |
"github.com/ethereum/go-ethereum/params" | |
whisper "github.com/ethereum/go-ethereum/whisper/whisperv6" | |
@@ -177,6 +178,13 @@ func makeFullNode(ctx *cli.Context) *node.Node { | |
utils.RegisterShhService(stack, &cfg.Shh) | |
} | |
+ // Configure GraphQL if required | |
+ if ctx.GlobalIsSet(utils.GraphQLEnabledFlag.Name) { | |
+ if err := graphql.RegisterGraphQLService(stack, cfg.Node.GraphQLEndpoint(), cfg.Node.GraphQLCors, cfg.Node.GraphQLVirtualHosts, cfg.Node.HTTPTimeouts); err != nil { | |
+ utils.Fatalf("Failed to register the Ethereum service: %v", err) | |
+ } | |
+ } | |
+ | |
// Add the Ethereum Stats daemon if requested. | |
if cfg.Ethstats.URL != "" { | |
utils.RegisterEthStatsService(stack, cfg.Ethstats.URL) | |
diff --git a/cmd/geth/dao_test.go b/cmd/geth/dao_test.go | |
index 52983ff2a..cb06038ec 100644 | |
--- a/cmd/geth/dao_test.go | |
+++ b/cmd/geth/dao_test.go | |
@@ -25,7 +25,6 @@ import ( | |
"github.com/ethereum/go-ethereum/common" | |
"github.com/ethereum/go-ethereum/core/rawdb" | |
- "github.com/ethereum/go-ethereum/ethdb" | |
"github.com/ethereum/go-ethereum/params" | |
) | |
@@ -121,7 +120,7 @@ func testDAOForkBlockNewChain(t *testing.T, test int, genesis string, expectBloc | |
} | |
// Retrieve the DAO config flag from the database | |
path := filepath.Join(datadir, "geth", "chaindata") | |
- db, err := ethdb.NewLDBDatabase(path, 0, 0) | |
+ db, err := rawdb.NewLevelDBDatabase(path, 0, 0, "") | |
if err != nil { | |
t.Fatalf("test %d: failed to open test database: %v", test, err) | |
} | |
diff --git a/cmd/geth/main.go b/cmd/geth/main.go | |
index 9b4642c97..0409d0cae 100644 | |
--- a/cmd/geth/main.go | |
+++ b/cmd/geth/main.go | |
@@ -93,6 +93,8 @@ var ( | |
utils.ExitWhenSyncedFlag, | |
utils.GCModeFlag, | |
utils.LightServFlag, | |
+ utils.LightBandwidthInFlag, | |
+ utils.LightBandwidthOutFlag, | |
utils.LightPeersFlag, | |
utils.LightKDFFlag, | |
utils.WhitelistFlag, | |
@@ -100,7 +102,7 @@ var ( | |
utils.CacheDatabaseFlag, | |
utils.CacheTrieFlag, | |
utils.CacheGCFlag, | |
- utils.TrieCacheGenFlag, | |
+ utils.CacheNoPrefetchFlag, | |
utils.ListenPortFlag, | |
utils.MaxPeersFlag, | |
utils.MaxPendingPeersFlag, | |
@@ -138,10 +140,7 @@ var ( | |
utils.VMEnableDebugFlag, | |
utils.NetworkIdFlag, | |
utils.ConstantinopleOverrideFlag, | |
- utils.RPCCORSDomainFlag, | |
- utils.RPCVirtualHostsFlag, | |
utils.EthStatsURLFlag, | |
- utils.MetricsEnabledFlag, | |
utils.FakePoWFlag, | |
utils.NoCompactionFlag, | |
utils.GpoBlocksFlag, | |
@@ -155,6 +154,8 @@ var ( | |
utils.RPCEnabledFlag, | |
utils.RPCListenAddrFlag, | |
utils.RPCPortFlag, | |
+ utils.RPCCORSDomainFlag, | |
+ utils.RPCVirtualHostsFlag, | |
utils.GraphQLEnabledFlag, | |
utils.GraphQLListenAddrFlag, | |
utils.GraphQLPortFlag, | |
@@ -168,6 +169,7 @@ var ( | |
utils.WSAllowedOriginsFlag, | |
utils.IPCDisabledFlag, | |
utils.IPCPathFlag, | |
+ utils.InsecureUnlockAllowedFlag, | |
utils.RPCGlobalGasCap, | |
} | |
@@ -179,6 +181,8 @@ var ( | |
} | |
metricsFlags = []cli.Flag{ | |
+ utils.MetricsEnabledFlag, | |
+ utils.MetricsEnabledExpensiveFlag, | |
utils.MetricsEnableInfluxDBFlag, | |
utils.MetricsInfluxDBEndpointFlag, | |
utils.MetricsInfluxDBDatabaseFlag, | |
@@ -203,8 +207,6 @@ func init() { | |
copydbCommand, | |
removedbCommand, | |
dumpCommand, | |
- // See monitorcmd.go: | |
- monitorCommand, | |
// See accountcmd.go: | |
accountCommand, | |
walletCommand, | |
@@ -216,7 +218,6 @@ func init() { | |
makecacheCommand, | |
makedagCommand, | |
versionCommand, | |
- bugCommand, | |
licenseCommand, | |
// See config.go | |
dumpConfigCommand, | |
@@ -238,6 +239,20 @@ func init() { | |
if err := debug.Setup(ctx, logdir); err != nil { | |
return err | |
} | |
+ // If we're a full node on mainnet without --cache specified, bump default cache allowance | |
+ if ctx.GlobalString(utils.SyncModeFlag.Name) != "light" && !ctx.GlobalIsSet(utils.CacheFlag.Name) && !ctx.GlobalIsSet(utils.NetworkIdFlag.Name) { | |
+ // Make sure we're not on any supported preconfigured testnet either | |
+ if !ctx.GlobalIsSet(utils.TestnetFlag.Name) && !ctx.GlobalIsSet(utils.RinkebyFlag.Name) && !ctx.GlobalIsSet(utils.GoerliFlag.Name) { | |
+ // Nope, we're really on mainnet. Bump that cache up! | |
+ log.Info("Bumping default cache on mainnet", "provided", ctx.GlobalInt(utils.CacheFlag.Name), "updated", 4096) | |
+ ctx.GlobalSet(utils.CacheFlag.Name, strconv.Itoa(4096)) | |
+ } | |
+ } | |
+ // If we're running a light client on any network, drop the cache to some meaningfully low amount | |
+ if ctx.GlobalString(utils.SyncModeFlag.Name) == "light" && !ctx.GlobalIsSet(utils.CacheFlag.Name) { | |
+ log.Info("Dropping default light client cache", "provided", ctx.GlobalInt(utils.CacheFlag.Name), "updated", 128) | |
+ ctx.GlobalSet(utils.CacheFlag.Name, strconv.Itoa(128)) | |
+ } | |
// Cap the cache allowance and tune the garbage collector | |
var mem gosigar.Mem | |
if err := mem.Get(); err == nil { | |
@@ -301,16 +316,8 @@ func startNode(ctx *cli.Context, stack *node.Node) { | |
utils.StartNode(stack) | |
// Unlock any account specifically requested | |
- if keystores := stack.AccountManager().Backends(keystore.KeyStoreType); len(keystores) > 0 { | |
- ks := keystores[0].(*keystore.KeyStore) | |
- passwords := utils.MakePasswordList(ctx) | |
- unlocks := strings.Split(ctx.GlobalString(utils.UnlockedAccountFlag.Name), ",") | |
- for i, account := range unlocks { | |
- if trimmed := strings.TrimSpace(account); trimmed != "" { | |
- unlockAccount(ctx, ks, trimmed, i, passwords) | |
- } | |
- } | |
- } | |
+ unlockAccounts(ctx, stack) | |
+ | |
// Register wallet event handlers to open and auto-derive wallets | |
events := make(chan accounts.WalletEvent, 16) | |
stack.AccountManager().Subscribe(events) | |
@@ -404,3 +411,28 @@ func startNode(ctx *cli.Context, stack *node.Node) { | |
} | |
} | |
} | |
+ | |
+// unlockAccounts unlocks any account specifically requested. | |
+func unlockAccounts(ctx *cli.Context, stack *node.Node) { | |
+ var unlocks []string | |
+ inputs := strings.Split(ctx.GlobalString(utils.UnlockedAccountFlag.Name), ",") | |
+ for _, input := range inputs { | |
+ if trimmed := strings.TrimSpace(input); trimmed != "" { | |
+ unlocks = append(unlocks, trimmed) | |
+ } | |
+ } | |
+ // Short circuit if there is no account to unlock. | |
+ if len(unlocks) == 0 { | |
+ return | |
+ } | |
+ // If insecure account unlocking is not allowed if node's APIs are exposed to external. | |
+ // Print warning log to user and skip unlocking. | |
+ if !stack.Config().InsecureUnlockAllowed && stack.Config().ExtRPCEnabled() { | |
+ utils.Fatalf("Account unlock with HTTP access is forbidden!") | |
+ } | |
+ ks := stack.AccountManager().Backends(keystore.KeyStoreType)[0].(*keystore.KeyStore) | |
+ passwords := utils.MakePasswordList(ctx) | |
+ for i, account := range unlocks { | |
+ unlockAccount(ks, account, i, passwords) | |
+ } | |
+} | |
diff --git a/cmd/geth/monitorcmd.go b/cmd/geth/monitorcmd.go | |
deleted file mode 100644 | |
index e4ba96a7a..000000000 | |
--- a/cmd/geth/monitorcmd.go | |
+++ /dev/null | |
@@ -1,351 +0,0 @@ | |
-// Copyright 2015 The go-ethereum Authors | |
-// This file is part of go-ethereum. | |
-// | |
-// go-ethereum is free software: you can redistribute it and/or modify | |
-// it under the terms of the GNU General Public License as published by | |
-// the Free Software Foundation, either version 3 of the License, or | |
-// (at your option) any later version. | |
-// | |
-// go-ethereum is distributed in the hope that it will be useful, | |
-// but WITHOUT ANY WARRANTY; without even the implied warranty of | |
-// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the | |
-// GNU General Public License for more details. | |
-// | |
-// You should have received a copy of the GNU General Public License | |
-// along with go-ethereum. If not, see <http://www.gnu.org/licenses/>. | |
- | |
-package main | |
- | |
-import ( | |
- "fmt" | |
- "math" | |
- "reflect" | |
- "runtime" | |
- "sort" | |
- "strings" | |
- "time" | |
- | |
- "github.com/ethereum/go-ethereum/cmd/utils" | |
- "github.com/ethereum/go-ethereum/node" | |
- "github.com/ethereum/go-ethereum/rpc" | |
- "github.com/gizak/termui" | |
- "gopkg.in/urfave/cli.v1" | |
-) | |
- | |
-var ( | |
- monitorCommandAttachFlag = cli.StringFlag{ | |
- Name: "attach", | |
- Value: node.DefaultIPCEndpoint(clientIdentifier), | |
- Usage: "API endpoint to attach to", | |
- } | |
- monitorCommandRowsFlag = cli.IntFlag{ | |
- Name: "rows", | |
- Value: 5, | |
- Usage: "Maximum rows in the chart grid", | |
- } | |
- monitorCommandRefreshFlag = cli.IntFlag{ | |
- Name: "refresh", | |
- Value: 3, | |
- Usage: "Refresh interval in seconds", | |
- } | |
- monitorCommand = cli.Command{ | |
- Action: utils.MigrateFlags(monitor), // keep track of migration progress | |
- Name: "monitor", | |
- Usage: "Monitor and visualize node metrics", | |
- ArgsUsage: " ", | |
- Category: "MONITOR COMMANDS", | |
- Description: ` | |
-The Geth monitor is a tool to collect and visualize various internal metrics | |
-gathered by the node, supporting different chart types as well as the capacity | |
-to display multiple metrics simultaneously. | |
-`, | |
- Flags: []cli.Flag{ | |
- monitorCommandAttachFlag, | |
- monitorCommandRowsFlag, | |
- monitorCommandRefreshFlag, | |
- }, | |
- } | |
-) | |
- | |
-// monitor starts a terminal UI based monitoring tool for the requested metrics. | |
-func monitor(ctx *cli.Context) error { | |
- var ( | |
- client *rpc.Client | |
- err error | |
- ) | |
- // Attach to an Ethereum node over IPC or RPC | |
- endpoint := ctx.String(monitorCommandAttachFlag.Name) | |
- if client, err = dialRPC(endpoint); err != nil { | |
- utils.Fatalf("Unable to attach to geth node: %v", err) | |
- } | |
- defer client.Close() | |
- | |
- // Retrieve all the available metrics and resolve the user pattens | |
- metrics, err := retrieveMetrics(client) | |
- if err != nil { | |
- utils.Fatalf("Failed to retrieve system metrics: %v", err) | |
- } | |
- monitored := resolveMetrics(metrics, ctx.Args()) | |
- if len(monitored) == 0 { | |
- list := expandMetrics(metrics, "") | |
- sort.Strings(list) | |
- | |
- if len(list) > 0 { | |
- utils.Fatalf("No metrics specified.\n\nAvailable:\n - %s", strings.Join(list, "\n - ")) | |
- } else { | |
- utils.Fatalf("No metrics collected by geth (--%s).\n", utils.MetricsEnabledFlag.Name) | |
- } | |
- } | |
- sort.Strings(monitored) | |
- if cols := len(monitored) / ctx.Int(monitorCommandRowsFlag.Name); cols > 6 { | |
- utils.Fatalf("Requested metrics (%d) spans more that 6 columns:\n - %s", len(monitored), strings.Join(monitored, "\n - ")) | |
- } | |
- // Create and configure the chart UI defaults | |
- if err := termui.Init(); err != nil { | |
- utils.Fatalf("Unable to initialize terminal UI: %v", err) | |
- } | |
- defer termui.Close() | |
- | |
- rows := len(monitored) | |
- if max := ctx.Int(monitorCommandRowsFlag.Name); rows > max { | |
- rows = max | |
- } | |
- cols := (len(monitored) + rows - 1) / rows | |
- for i := 0; i < rows; i++ { | |
- termui.Body.AddRows(termui.NewRow()) | |
- } | |
- // Create each individual data chart | |
- footer := termui.NewPar("") | |
- footer.Block.Border = true | |
- footer.Height = 3 | |
- | |
- charts := make([]*termui.LineChart, len(monitored)) | |
- units := make([]int, len(monitored)) | |
- data := make([][]float64, len(monitored)) | |
- for i := 0; i < len(monitored); i++ { | |
- charts[i] = createChart((termui.TermHeight() - footer.Height) / rows) | |
- row := termui.Body.Rows[i%rows] | |
- row.Cols = append(row.Cols, termui.NewCol(12/cols, 0, charts[i])) | |
- } | |
- termui.Body.AddRows(termui.NewRow(termui.NewCol(12, 0, footer))) | |
- | |
- refreshCharts(client, monitored, data, units, charts, ctx, footer) | |
- termui.Body.Align() | |
- termui.Render(termui.Body) | |
- | |
- // Watch for various system events, and periodically refresh the charts | |
- termui.Handle("/sys/kbd/C-c", func(termui.Event) { | |
- termui.StopLoop() | |
- }) | |
- termui.Handle("/sys/wnd/resize", func(termui.Event) { | |
- termui.Body.Width = termui.TermWidth() | |
- for _, chart := range charts { | |
- chart.Height = (termui.TermHeight() - footer.Height) / rows | |
- } | |
- termui.Body.Align() | |
- termui.Render(termui.Body) | |
- }) | |
- go func() { | |
- tick := time.NewTicker(time.Duration(ctx.Int(monitorCommandRefreshFlag.Name)) * time.Second) | |
- for range tick.C { | |
- if refreshCharts(client, monitored, data, units, charts, ctx, footer) { | |
- termui.Body.Align() | |
- } | |
- termui.Render(termui.Body) | |
- } | |
- }() | |
- termui.Loop() | |
- return nil | |
-} | |
- | |
-// retrieveMetrics contacts the attached geth node and retrieves the entire set | |
-// of collected system metrics. | |
-func retrieveMetrics(client *rpc.Client) (map[string]interface{}, error) { | |
- var metrics map[string]interface{} | |
- err := client.Call(&metrics, "debug_metrics", true) | |
- return metrics, err | |
-} | |
- | |
-// resolveMetrics takes a list of input metric patterns, and resolves each to one | |
-// or more canonical metric names. | |
-func resolveMetrics(metrics map[string]interface{}, patterns []string) []string { | |
- res := []string{} | |
- for _, pattern := range patterns { | |
- res = append(res, resolveMetric(metrics, pattern, "")...) | |
- } | |
- return res | |
-} | |
- | |
-// resolveMetrics takes a single of input metric pattern, and resolves it to one | |
-// or more canonical metric names. | |
-func resolveMetric(metrics map[string]interface{}, pattern string, path string) []string { | |
- results := []string{} | |
- | |
- // If a nested metric was requested, recurse optionally branching (via comma) | |
- parts := strings.SplitN(pattern, "/", 2) | |
- if len(parts) > 1 { | |
- for _, variation := range strings.Split(parts[0], ",") { | |
- submetrics, ok := metrics[variation].(map[string]interface{}) | |
- if !ok { | |
- utils.Fatalf("Failed to retrieve system metrics: %s", path+variation) | |
- return nil | |
- } | |
- results = append(results, resolveMetric(submetrics, parts[1], path+variation+"/")...) | |
- } | |
- return results | |
- } | |
- // Depending what the last link is, return or expand | |
- for _, variation := range strings.Split(pattern, ",") { | |
- switch metric := metrics[variation].(type) { | |
- case float64: | |
- // Final metric value found, return as singleton | |
- results = append(results, path+variation) | |
- | |
- case map[string]interface{}: | |
- results = append(results, expandMetrics(metric, path+variation+"/")...) | |
- | |
- default: | |
- utils.Fatalf("Metric pattern resolved to unexpected type: %v", reflect.TypeOf(metric)) | |
- return nil | |
- } | |
- } | |
- return results | |
-} | |
- | |
-// expandMetrics expands the entire tree of metrics into a flat list of paths. | |
-func expandMetrics(metrics map[string]interface{}, path string) []string { | |
- // Iterate over all fields and expand individually | |
- list := []string{} | |
- for name, metric := range metrics { | |
- switch metric := metric.(type) { | |
- case float64: | |
- // Final metric value found, append to list | |
- list = append(list, path+name) | |
- | |
- case map[string]interface{}: | |
- // Tree of metrics found, expand recursively | |
- list = append(list, expandMetrics(metric, path+name+"/")...) | |
- | |
- default: | |
- utils.Fatalf("Metric pattern %s resolved to unexpected type: %v", path+name, reflect.TypeOf(metric)) | |
- return nil | |
- } | |
- } | |
- return list | |
-} | |
- | |
-// fetchMetric iterates over the metrics map and retrieves a specific one. | |
-func fetchMetric(metrics map[string]interface{}, metric string) float64 { | |
- parts := strings.Split(metric, "/") | |
- for _, part := range parts[:len(parts)-1] { | |
- var found bool | |
- metrics, found = metrics[part].(map[string]interface{}) | |
- if !found { | |
- return 0 | |
- } | |
- } | |
- if v, ok := metrics[parts[len(parts)-1]].(float64); ok { | |
- return v | |
- } | |
- return 0 | |
-} | |
- | |
-// refreshCharts retrieves a next batch of metrics, and inserts all the new | |
-// values into the active datasets and charts | |
-func refreshCharts(client *rpc.Client, metrics []string, data [][]float64, units []int, charts []*termui.LineChart, ctx *cli.Context, footer *termui.Par) (realign bool) { | |
- values, err := retrieveMetrics(client) | |
- for i, metric := range metrics { | |
- if len(data) < 512 { | |
- data[i] = append([]float64{fetchMetric(values, metric)}, data[i]...) | |
- } else { | |
- data[i] = append([]float64{fetchMetric(values, metric)}, data[i][:len(data[i])-1]...) | |
- } | |
- if updateChart(metric, data[i], &units[i], charts[i], err) { | |
- realign = true | |
- } | |
- } | |
- updateFooter(ctx, err, footer) | |
- return | |
-} | |
- | |
-// updateChart inserts a dataset into a line chart, scaling appropriately as to | |
-// not display weird labels, also updating the chart label accordingly. | |
-func updateChart(metric string, data []float64, base *int, chart *termui.LineChart, err error) (realign bool) { | |
- dataUnits := []string{"", "K", "M", "G", "T", "E"} | |
- timeUnits := []string{"ns", "µs", "ms", "s", "ks", "ms"} | |
- colors := []termui.Attribute{termui.ColorBlue, termui.ColorCyan, termui.ColorGreen, termui.ColorYellow, termui.ColorRed, termui.ColorRed} | |
- | |
- // Extract only part of the data that's actually visible | |
- if chart.Width*2 < len(data) { | |
- data = data[:chart.Width*2] | |
- } | |
- // Find the maximum value and scale under 1K | |
- high := 0.0 | |
- if len(data) > 0 { | |
- high = data[0] | |
- for _, value := range data[1:] { | |
- high = math.Max(high, value) | |
- } | |
- } | |
- unit, scale := 0, 1.0 | |
- for high >= 1000 && unit+1 < len(dataUnits) { | |
- high, unit, scale = high/1000, unit+1, scale*1000 | |
- } | |
- // If the unit changes, re-create the chart (hack to set max height...) | |
- if unit != *base { | |
- realign, *base, *chart = true, unit, *createChart(chart.Height) | |
- } | |
- // Update the chart's data points with the scaled values | |
- if cap(chart.Data) < len(data) { | |
- chart.Data = make([]float64, len(data)) | |
- } | |
- chart.Data = chart.Data[:len(data)] | |
- for i, value := range data { | |
- chart.Data[i] = value / scale | |
- } | |
- // Update the chart's label with the scale units | |
- units := dataUnits | |
- if strings.Contains(metric, "/Percentiles/") || strings.Contains(metric, "/pauses/") || strings.Contains(metric, "/time/") { | |
- units = timeUnits | |
- } | |
- chart.BorderLabel = metric | |
- if len(units[unit]) > 0 { | |
- chart.BorderLabel += " [" + units[unit] + "]" | |
- } | |
- chart.LineColor = colors[unit] | termui.AttrBold | |
- if err != nil { | |
- chart.LineColor = termui.ColorRed | termui.AttrBold | |
- } | |
- return | |
-} | |
- | |
-// createChart creates an empty line chart with the default configs. | |
-func createChart(height int) *termui.LineChart { | |
- chart := termui.NewLineChart() | |
- if runtime.GOOS == "windows" { | |
- chart.Mode = "dot" | |
- } | |
- chart.DataLabels = []string{""} | |
- chart.Height = height | |
- chart.AxesColor = termui.ColorWhite | |
- chart.PaddingBottom = -2 | |
- | |
- chart.BorderLabelFg = chart.BorderFg | termui.AttrBold | |
- chart.BorderFg = chart.BorderBg | |
- | |
- return chart | |
-} | |
- | |
-// updateFooter updates the footer contents based on any encountered errors. | |
-func updateFooter(ctx *cli.Context, err error, footer *termui.Par) { | |
- // Generate the basic footer | |
- refresh := time.Duration(ctx.Int(monitorCommandRefreshFlag.Name)) * time.Second | |
- footer.Text = fmt.Sprintf("Press Ctrl+C to quit. Refresh interval: %v.", refresh) | |
- footer.TextFgColor = termui.ThemeAttr("par.fg") | termui.AttrBold | |
- | |
- // Append any encountered errors | |
- if err != nil { | |
- footer.Text = fmt.Sprintf("Error: %v.", err) | |
- footer.TextFgColor = termui.ColorRed | termui.AttrBold | |
- } | |
-} | |
diff --git a/cmd/geth/usage.go b/cmd/geth/usage.go | |
index bf3dedb21..35803dd5b 100644 | |
--- a/cmd/geth/usage.go | |
+++ b/cmd/geth/usage.go | |
@@ -86,6 +86,8 @@ var AppHelpFlagGroups = []flagGroup{ | |
utils.EthStatsURLFlag, | |
utils.IdentityFlag, | |
utils.LightServFlag, | |
+ utils.LightBandwidthInFlag, | |
+ utils.LightBandwidthOutFlag, | |
utils.LightPeersFlag, | |
utils.LightKDFFlag, | |
utils.WhitelistFlag, | |
@@ -142,7 +144,7 @@ var AppHelpFlagGroups = []flagGroup{ | |
utils.CacheDatabaseFlag, | |
utils.CacheTrieFlag, | |
utils.CacheGCFlag, | |
- utils.TrieCacheGenFlag, | |
+ utils.CacheNoPrefetchFlag, | |
}, | |
}, | |
{ | |
@@ -151,6 +153,7 @@ var AppHelpFlagGroups = []flagGroup{ | |
utils.UnlockedAccountFlag, | |
utils.PasswordFileFlag, | |
utils.ExternalSignerFlag, | |
+ utils.InsecureUnlockAllowedFlag, | |
}, | |
}, | |
{ | |
@@ -230,16 +233,8 @@ var AppHelpFlagGroups = []flagGroup{ | |
}, debug.Flags...), | |
}, | |
{ | |
- Name: "METRICS AND STATS", | |
- Flags: []cli.Flag{ | |
- utils.MetricsEnabledFlag, | |
- utils.MetricsEnableInfluxDBFlag, | |
- utils.MetricsInfluxDBEndpointFlag, | |
- utils.MetricsInfluxDBDatabaseFlag, | |
- utils.MetricsInfluxDBUsernameFlag, | |
- utils.MetricsInfluxDBPasswordFlag, | |
- utils.MetricsInfluxDBTagsFlag, | |
- }, | |
+ Name: "METRICS AND STATS", | |
+ Flags: metricsFlags, | |
}, | |
{ | |
Name: "WHISPER (EXPERIMENTAL)", | |
@@ -314,7 +309,7 @@ func init() { | |
categorized[flag.String()] = struct{}{} | |
} | |
} | |
- uncategorized := []cli.Flag{} | |
+ var uncategorized []cli.Flag | |
for _, flag := range data.(*cli.App).Flags { | |
if _, ok := categorized[flag.String()]; !ok { | |
if strings.HasPrefix(flag.GetName(), "dashboard") { | |
diff --git a/cmd/internal/browser/browser.go b/cmd/internal/browser/browser.go | |
deleted file mode 100644 | |
index 897086f47..000000000 | |
--- a/cmd/internal/browser/browser.go | |
+++ /dev/null | |
@@ -1,46 +0,0 @@ | |
-// Copyright 2016 The Go Authors. All rights reserved. | |
-// Use of this source code is governed by a BSD-style | |
-// license that can be found in the LICENSE file. | |
- | |
-// Package browser provides utilities for interacting with users' browsers. | |
-package browser | |
- | |
-import ( | |
- "os" | |
- "os/exec" | |
- "runtime" | |
-) | |
- | |
-// Commands returns a list of possible commands to use to open a url. | |
-func Commands() [][]string { | |
- var cmds [][]string | |
- if exe := os.Getenv("BROWSER"); exe != "" { | |
- cmds = append(cmds, []string{exe}) | |
- } | |
- switch runtime.GOOS { | |
- case "darwin": | |
- cmds = append(cmds, []string{"/usr/bin/open"}) | |
- case "windows": | |
- cmds = append(cmds, []string{"cmd", "/c", "start"}) | |
- default: | |
- cmds = append(cmds, []string{"xdg-open"}) | |
- } | |
- cmds = append(cmds, | |
- []string{"chrome"}, | |
- []string{"google-chrome"}, | |
- []string{"chromium"}, | |
- []string{"firefox"}, | |
- ) | |
- return cmds | |
-} | |
- | |
-// Open tries to open url in a browser and reports whether it succeeded. | |
-func Open(url string) bool { | |
- for _, args := range Commands() { | |
- cmd := exec.Command(args[0], append(args[1:], url)...) | |
- if cmd.Start() == nil { | |
- return true | |
- } | |
- } | |
- return false | |
-} | |
diff --git a/cmd/swarm/access.go b/cmd/swarm/access.go | |
index 072541b65..cc0cc8201 100644 | |
--- a/cmd/swarm/access.go | |
+++ b/cmd/swarm/access.go | |
@@ -178,8 +178,8 @@ func accessNewACT(ctx *cli.Context) { | |
accessKey []byte | |
err error | |
ref = args[0] | |
- pkGrantees = []string{} | |
- passGrantees = []string{} | |
+ pkGrantees []string | |
+ passGrantees []string | |
pkGranteesFilename = ctx.String(SwarmAccessGrantKeysFlag.Name) | |
passGranteesFilename = ctx.String(utils.PasswordFileFlag.Name) | |
privateKey = getPrivKey(ctx) | |
diff --git a/cmd/swarm/access_test.go b/cmd/swarm/access_test.go | |
index 967ef2742..0aaaad030 100644 | |
--- a/cmd/swarm/access_test.go | |
+++ b/cmd/swarm/access_test.go | |
@@ -52,11 +52,12 @@ func TestACT(t *testing.T) { | |
t.Skip() | |
} | |
- initCluster(t) | |
+ cluster := newTestCluster(t, clusterSize) | |
+ defer cluster.Shutdown() | |
cases := []struct { | |
name string | |
- f func(t *testing.T) | |
+ f func(t *testing.T, cluster *testCluster) | |
}{ | |
{"Password", testPassword}, | |
{"PK", testPK}, | |
@@ -65,7 +66,9 @@ func TestACT(t *testing.T) { | |
} | |
for _, tc := range cases { | |
- t.Run(tc.name, tc.f) | |
+ t.Run(tc.name, func(t *testing.T) { | |
+ tc.f(t, cluster) | |
+ }) | |
} | |
} | |
@@ -74,7 +77,7 @@ func TestACT(t *testing.T) { | |
// The parties participating - node (publisher), uploads to second node then disappears. Content which was uploaded | |
// is then fetched through 2nd node. since the tested code is not key-aware - we can just | |
// fetch from the 2nd node using HTTP BasicAuth | |
-func testPassword(t *testing.T) { | |
+func testPassword(t *testing.T, cluster *testCluster) { | |
dataFilename := testutil.TempFileWithContent(t, data) | |
defer os.RemoveAll(dataFilename) | |
@@ -226,7 +229,7 @@ func testPassword(t *testing.T) { | |
// The parties participating - node (publisher), uploads to second node (which is also the grantee) then disappears. | |
// Content which was uploaded is then fetched through the grantee's http proxy. Since the tested code is private-key aware, | |
// the test will fail if the proxy's given private key is not granted on the ACT. | |
-func testPK(t *testing.T) { | |
+func testPK(t *testing.T, cluster *testCluster) { | |
dataFilename := testutil.TempFileWithContent(t, data) | |
defer os.RemoveAll(dataFilename) | |
@@ -359,13 +362,13 @@ func testPK(t *testing.T) { | |
} | |
// testACTWithoutBogus tests the creation of the ACT manifest end-to-end, without any bogus entries (i.e. default scenario = 3 nodes 1 unauthorized) | |
-func testACTWithoutBogus(t *testing.T) { | |
- testACT(t, 0) | |
+func testACTWithoutBogus(t *testing.T, cluster *testCluster) { | |
+ testACT(t, cluster, 0) | |
} | |
// testACTWithBogus tests the creation of the ACT manifest end-to-end, with 100 bogus entries (i.e. 100 EC keys + default scenario = 3 nodes 1 unauthorized = 103 keys in the ACT manifest) | |
-func testACTWithBogus(t *testing.T) { | |
- testACT(t, 100) | |
+func testACTWithBogus(t *testing.T, cluster *testCluster) { | |
+ testACT(t, cluster, 100) | |
} | |
// testACT tests the e2e creation, uploading and downloading of an ACT access control with both EC keys AND password protection | |
@@ -373,7 +376,7 @@ func testACTWithBogus(t *testing.T) { | |
// set and also protects the ACT with a password. the third node should fail decoding the reference as it will not be granted access. | |
// the third node then then tries to download using a correct password (and succeeds) then uses a wrong password and fails. | |
// the publisher uploads through one of the nodes then disappears. | |
-func testACT(t *testing.T, bogusEntries int) { | |
+func testACT(t *testing.T, cluster *testCluster, bogusEntries int) { | |
var uploadThroughNode = cluster.Nodes[0] | |
client := swarmapi.NewClient(uploadThroughNode.URL) | |
@@ -397,7 +400,7 @@ func testACT(t *testing.T, bogusEntries int) { | |
} | |
ref := matches[0] | |
- grantees := []string{} | |
+ var grantees []string | |
for i, v := range cluster.Nodes { | |
if i == nodeToSkip { | |
continue | |
@@ -408,7 +411,7 @@ func testACT(t *testing.T, bogusEntries int) { | |
} | |
if bogusEntries > 0 { | |
- bogusGrantees := []string{} | |
+ var bogusGrantees []string | |
for i := 0; i < bogusEntries; i++ { | |
prv, err := ecies.GenerateKey(rand.Reader, DefaultCurve, nil) | |
diff --git a/cmd/swarm/config.go b/cmd/swarm/config.go | |
index 98d4dee7b..32cd442a0 100644 | |
--- a/cmd/swarm/config.go | |
+++ b/cmd/swarm/config.go | |
@@ -59,31 +59,31 @@ var ( | |
//constants for environment variables | |
const ( | |
- SWARM_ENV_CHEQUEBOOK_ADDR = "SWARM_CHEQUEBOOK_ADDR" | |
- SWARM_ENV_ACCOUNT = "SWARM_ACCOUNT" | |
- SWARM_ENV_LISTEN_ADDR = "SWARM_LISTEN_ADDR" | |
- SWARM_ENV_PORT = "SWARM_PORT" | |
- SWARM_ENV_NETWORK_ID = "SWARM_NETWORK_ID" | |
- SWARM_ENV_SWAP_ENABLE = "SWARM_SWAP_ENABLE" | |
- SWARM_ENV_SWAP_API = "SWARM_SWAP_API" | |
- SWARM_ENV_SYNC_DISABLE = "SWARM_SYNC_DISABLE" | |
- SWARM_ENV_SYNC_UPDATE_DELAY = "SWARM_ENV_SYNC_UPDATE_DELAY" | |
- SWARM_ENV_MAX_STREAM_PEER_SERVERS = "SWARM_ENV_MAX_STREAM_PEER_SERVERS" | |
- SWARM_ENV_LIGHT_NODE_ENABLE = "SWARM_LIGHT_NODE_ENABLE" | |
- SWARM_ENV_DELIVERY_SKIP_CHECK = "SWARM_DELIVERY_SKIP_CHECK" | |
- SWARM_ENV_ENS_API = "SWARM_ENS_API" | |
- SWARM_ENV_ENS_ADDR = "SWARM_ENS_ADDR" | |
- SWARM_ENV_CORS = "SWARM_CORS" | |
- SWARM_ENV_BOOTNODES = "SWARM_BOOTNODES" | |
- SWARM_ENV_PSS_ENABLE = "SWARM_PSS_ENABLE" | |
- SWARM_ENV_STORE_PATH = "SWARM_STORE_PATH" | |
- SWARM_ENV_STORE_CAPACITY = "SWARM_STORE_CAPACITY" | |
- SWARM_ENV_STORE_CACHE_CAPACITY = "SWARM_STORE_CACHE_CAPACITY" | |
- SWARM_ENV_BOOTNODE_MODE = "SWARM_BOOTNODE_MODE" | |
- SWARM_ACCESS_PASSWORD = "SWARM_ACCESS_PASSWORD" | |
- SWARM_AUTO_DEFAULTPATH = "SWARM_AUTO_DEFAULTPATH" | |
- SWARM_GLOBALSTORE_API = "SWARM_GLOBALSTORE_API" | |
- GETH_ENV_DATADIR = "GETH_DATADIR" | |
+ SwarmEnvChequebookAddr = "SWARM_CHEQUEBOOK_ADDR" | |
+ SwarmEnvAccount = "SWARM_ACCOUNT" | |
+ SwarmEnvListenAddr = "SWARM_LISTEN_ADDR" | |
+ SwarmEnvPort = "SWARM_PORT" | |
+ SwarmEnvNetworkID = "SWARM_NETWORK_ID" | |
+ SwarmEnvSwapEnable = "SWARM_SWAP_ENABLE" | |
+ SwarmEnvSwapAPI = "SWARM_SWAP_API" | |
+ SwarmEnvSyncDisable = "SWARM_SYNC_DISABLE" | |
+ SwarmEnvSyncUpdateDelay = "SWARM_ENV_SYNC_UPDATE_DELAY" | |
+ SwarmEnvMaxStreamPeerServers = "SWARM_ENV_MAX_STREAM_PEER_SERVERS" | |
+ SwarmEnvLightNodeEnable = "SWARM_LIGHT_NODE_ENABLE" | |
+ SwarmEnvDeliverySkipCheck = "SWARM_DELIVERY_SKIP_CHECK" | |
+ SwarmEnvENSAPI = "SWARM_ENS_API" | |
+ SwarmEnvENSAddr = "SWARM_ENS_ADDR" | |
+ SwarmEnvCORS = "SWARM_CORS" | |
+ SwarmEnvBootnodes = "SWARM_BOOTNODES" | |
+ SwarmEnvPSSEnable = "SWARM_PSS_ENABLE" | |
+ SwarmEnvStorePath = "SWARM_STORE_PATH" | |
+ SwarmEnvStoreCapacity = "SWARM_STORE_CAPACITY" | |
+ SwarmEnvStoreCacheCapacity = "SWARM_STORE_CACHE_CAPACITY" | |
+ SwarmEnvBootnodeMode = "SWARM_BOOTNODE_MODE" | |
+ SwarmAccessPassword = "SWARM_ACCESS_PASSWORD" | |
+ SwarmAutoDefaultPath = "SWARM_AUTO_DEFAULTPATH" | |
+ SwarmGlobalstoreAPI = "SWARM_GLOBALSTORE_API" | |
+ GethEnvDataDir = "GETH_DATADIR" | |
) | |
// These settings ensure that TOML keys use the same names as Go struct fields. | |
@@ -123,18 +123,22 @@ func buildConfig(ctx *cli.Context) (config *bzzapi.Config, err error) { | |
} | |
//finally, after the configuration build phase is finished, initialize | |
-func initSwarmNode(config *bzzapi.Config, stack *node.Node, ctx *cli.Context) { | |
+func initSwarmNode(config *bzzapi.Config, stack *node.Node, ctx *cli.Context, nodeconfig *node.Config) error { | |
//at this point, all vars should be set in the Config | |
//get the account for the provided swarm account | |
prvkey := getAccount(config.BzzAccount, ctx, stack) | |
//set the resolved config path (geth --datadir) | |
config.Path = expandPath(stack.InstanceDir()) | |
//finally, initialize the configuration | |
- config.Init(prvkey) | |
+ err := config.Init(prvkey, nodeconfig.NodeKey()) | |
+ if err != nil { | |
+ return err | |
+ } | |
//configuration phase completed here | |
log.Debug("Starting Swarm with the following parameters:") | |
//after having created the config, print it to screen | |
log.Debug(printConfig(config)) | |
+ return nil | |
} | |
//configFileOverride overrides the current config with the config file, if a config file has been provided | |
@@ -227,7 +231,7 @@ func cmdLineOverride(currentConfig *bzzapi.Config, ctx *cli.Context) *bzzapi.Con | |
currentConfig.SwapAPI = ctx.GlobalString(SwarmSwapAPIFlag.Name) | |
if currentConfig.SwapEnabled && currentConfig.SwapAPI == "" { | |
- utils.Fatalf(SWARM_ERR_SWAP_SET_NO_API) | |
+ utils.Fatalf(SwarmErrSwapSetNoAPI) | |
} | |
if ctx.GlobalIsSet(EnsAPIFlag.Name) { | |
@@ -255,8 +259,8 @@ func cmdLineOverride(currentConfig *bzzapi.Config, ctx *cli.Context) *bzzapi.Con | |
currentConfig.LocalStoreParams.DbCapacity = storeCapacity | |
} | |
- if storeCacheCapacity := ctx.GlobalUint(SwarmStoreCacheCapacity.Name); storeCacheCapacity != 0 { | |
- currentConfig.LocalStoreParams.CacheCapacity = storeCacheCapacity | |
+ if ctx.GlobalIsSet(SwarmStoreCacheCapacity.Name) { | |
+ currentConfig.LocalStoreParams.CacheCapacity = ctx.GlobalUint(SwarmStoreCacheCapacity.Name) | |
} | |
if ctx.GlobalIsSet(SwarmBootnodeModeFlag.Name) { | |
@@ -274,113 +278,113 @@ func cmdLineOverride(currentConfig *bzzapi.Config, ctx *cli.Context) *bzzapi.Con | |
// envVarsOverride overrides the current config with whatver is provided in environment variables | |
// most values are not allowed a zero value (empty string), if not otherwise noted | |
func envVarsOverride(currentConfig *bzzapi.Config) (config *bzzapi.Config) { | |
- if keyid := os.Getenv(SWARM_ENV_ACCOUNT); keyid != "" { | |
+ if keyid := os.Getenv(SwarmEnvAccount); keyid != "" { | |
currentConfig.BzzAccount = keyid | |
} | |
- if chbookaddr := os.Getenv(SWARM_ENV_CHEQUEBOOK_ADDR); chbookaddr != "" { | |
+ if chbookaddr := os.Getenv(SwarmEnvChequebookAddr); chbookaddr != "" { | |
currentConfig.Contract = common.HexToAddress(chbookaddr) | |
} | |
- if networkid := os.Getenv(SWARM_ENV_NETWORK_ID); networkid != "" { | |
+ if networkid := os.Getenv(SwarmEnvNetworkID); networkid != "" { | |
id, err := strconv.ParseUint(networkid, 10, 64) | |
if err != nil { | |
- utils.Fatalf("invalid environment variable %s: %v", SWARM_ENV_NETWORK_ID, err) | |
+ utils.Fatalf("invalid environment variable %s: %v", SwarmEnvNetworkID, err) | |
} | |
if id != 0 { | |
currentConfig.NetworkID = id | |
} | |
} | |
- if datadir := os.Getenv(GETH_ENV_DATADIR); datadir != "" { | |
+ if datadir := os.Getenv(GethEnvDataDir); datadir != "" { | |
currentConfig.Path = expandPath(datadir) | |
} | |
- bzzport := os.Getenv(SWARM_ENV_PORT) | |
+ bzzport := os.Getenv(SwarmEnvPort) | |
if len(bzzport) > 0 { | |
currentConfig.Port = bzzport | |
} | |
- if bzzaddr := os.Getenv(SWARM_ENV_LISTEN_ADDR); bzzaddr != "" { | |
+ if bzzaddr := os.Getenv(SwarmEnvListenAddr); bzzaddr != "" { | |
currentConfig.ListenAddr = bzzaddr | |
} | |
- if swapenable := os.Getenv(SWARM_ENV_SWAP_ENABLE); swapenable != "" { | |
+ if swapenable := os.Getenv(SwarmEnvSwapEnable); swapenable != "" { | |
swap, err := strconv.ParseBool(swapenable) | |
if err != nil { | |
- utils.Fatalf("invalid environment variable %s: %v", SWARM_ENV_SWAP_ENABLE, err) | |
+ utils.Fatalf("invalid environment variable %s: %v", SwarmEnvSwapEnable, err) | |
} | |
currentConfig.SwapEnabled = swap | |
} | |
- if syncdisable := os.Getenv(SWARM_ENV_SYNC_DISABLE); syncdisable != "" { | |
+ if syncdisable := os.Getenv(SwarmEnvSyncDisable); syncdisable != "" { | |
sync, err := strconv.ParseBool(syncdisable) | |
if err != nil { | |
- utils.Fatalf("invalid environment variable %s: %v", SWARM_ENV_SYNC_DISABLE, err) | |
+ utils.Fatalf("invalid environment variable %s: %v", SwarmEnvSyncDisable, err) | |
} | |
currentConfig.SyncEnabled = !sync | |
} | |
- if v := os.Getenv(SWARM_ENV_DELIVERY_SKIP_CHECK); v != "" { | |
+ if v := os.Getenv(SwarmEnvDeliverySkipCheck); v != "" { | |
skipCheck, err := strconv.ParseBool(v) | |
if err != nil { | |
currentConfig.DeliverySkipCheck = skipCheck | |
} | |
} | |
- if v := os.Getenv(SWARM_ENV_SYNC_UPDATE_DELAY); v != "" { | |
+ if v := os.Getenv(SwarmEnvSyncUpdateDelay); v != "" { | |
d, err := time.ParseDuration(v) | |
if err != nil { | |
- utils.Fatalf("invalid environment variable %s: %v", SWARM_ENV_SYNC_UPDATE_DELAY, err) | |
+ utils.Fatalf("invalid environment variable %s: %v", SwarmEnvSyncUpdateDelay, err) | |
} | |
currentConfig.SyncUpdateDelay = d | |
} | |
- if max := os.Getenv(SWARM_ENV_MAX_STREAM_PEER_SERVERS); max != "" { | |
+ if max := os.Getenv(SwarmEnvMaxStreamPeerServers); max != "" { | |
m, err := strconv.Atoi(max) | |
if err != nil { | |
- utils.Fatalf("invalid environment variable %s: %v", SWARM_ENV_MAX_STREAM_PEER_SERVERS, err) | |
+ utils.Fatalf("invalid environment variable %s: %v", SwarmEnvMaxStreamPeerServers, err) | |
} | |
currentConfig.MaxStreamPeerServers = m | |
} | |
- if lne := os.Getenv(SWARM_ENV_LIGHT_NODE_ENABLE); lne != "" { | |
+ if lne := os.Getenv(SwarmEnvLightNodeEnable); lne != "" { | |
lightnode, err := strconv.ParseBool(lne) | |
if err != nil { | |
- utils.Fatalf("invalid environment variable %s: %v", SWARM_ENV_LIGHT_NODE_ENABLE, err) | |
+ utils.Fatalf("invalid environment variable %s: %v", SwarmEnvLightNodeEnable, err) | |
} | |
currentConfig.LightNodeEnabled = lightnode | |
} | |
- if swapapi := os.Getenv(SWARM_ENV_SWAP_API); swapapi != "" { | |
+ if swapapi := os.Getenv(SwarmEnvSwapAPI); swapapi != "" { | |
currentConfig.SwapAPI = swapapi | |
} | |
if currentConfig.SwapEnabled && currentConfig.SwapAPI == "" { | |
- utils.Fatalf(SWARM_ERR_SWAP_SET_NO_API) | |
+ utils.Fatalf(SwarmErrSwapSetNoAPI) | |
} | |
- if ensapi := os.Getenv(SWARM_ENV_ENS_API); ensapi != "" { | |
+ if ensapi := os.Getenv(SwarmEnvENSAPI); ensapi != "" { | |
currentConfig.EnsAPIs = strings.Split(ensapi, ",") | |
} | |
- if ensaddr := os.Getenv(SWARM_ENV_ENS_ADDR); ensaddr != "" { | |
+ if ensaddr := os.Getenv(SwarmEnvENSAddr); ensaddr != "" { | |
currentConfig.EnsRoot = common.HexToAddress(ensaddr) | |
} | |
- if cors := os.Getenv(SWARM_ENV_CORS); cors != "" { | |
+ if cors := os.Getenv(SwarmEnvCORS); cors != "" { | |
currentConfig.Cors = cors | |
} | |
- if bm := os.Getenv(SWARM_ENV_BOOTNODE_MODE); bm != "" { | |
+ if bm := os.Getenv(SwarmEnvBootnodeMode); bm != "" { | |
bootnodeMode, err := strconv.ParseBool(bm) | |
if err != nil { | |
- utils.Fatalf("invalid environment variable %s: %v", SWARM_ENV_BOOTNODE_MODE, err) | |
+ utils.Fatalf("invalid environment variable %s: %v", SwarmEnvBootnodeMode, err) | |
} | |
currentConfig.BootnodeMode = bootnodeMode | |
} | |
- if api := os.Getenv(SWARM_GLOBALSTORE_API); api != "" { | |
+ if api := os.Getenv(SwarmGlobalstoreAPI); api != "" { | |
currentConfig.GlobalStoreAPI = api | |
} | |
diff --git a/cmd/swarm/config_test.go b/cmd/swarm/config_test.go | |
index 18be316e5..869edd0f7 100644 | |
--- a/cmd/swarm/config_test.go | |
+++ b/cmd/swarm/config_test.go | |
@@ -52,7 +52,7 @@ func TestConfigFailsSwapEnabledNoSwapApi(t *testing.T) { | |
} | |
swarm := runSwarm(t, flags...) | |
- swarm.Expect("Fatal: " + SWARM_ERR_SWAP_SET_NO_API + "\n") | |
+ swarm.Expect("Fatal: " + SwarmErrSwapSetNoAPI + "\n") | |
swarm.ExpectExit() | |
} | |
@@ -63,7 +63,7 @@ func TestConfigFailsNoBzzAccount(t *testing.T) { | |
} | |
swarm := runSwarm(t, flags...) | |
- swarm.Expect("Fatal: " + SWARM_ERR_NO_BZZACCOUNT + "\n") | |
+ swarm.Expect("Fatal: " + SwarmErrNoBZZAccount + "\n") | |
swarm.ExpectExit() | |
} | |
diff --git a/cmd/swarm/flags.go b/cmd/swarm/flags.go | |
index b092a7747..5e1ada632 100644 | |
--- a/cmd/swarm/flags.go | |
+++ b/cmd/swarm/flags.go | |
@@ -23,68 +23,68 @@ var ( | |
ChequebookAddrFlag = cli.StringFlag{ | |
Name: "chequebook", | |
Usage: "chequebook contract address", | |
- EnvVar: SWARM_ENV_CHEQUEBOOK_ADDR, | |
+ EnvVar: SwarmEnvChequebookAddr, | |
} | |
SwarmAccountFlag = cli.StringFlag{ | |
Name: "bzzaccount", | |
Usage: "Swarm account key file", | |
- EnvVar: SWARM_ENV_ACCOUNT, | |
+ EnvVar: SwarmEnvAccount, | |
} | |
SwarmListenAddrFlag = cli.StringFlag{ | |
Name: "httpaddr", | |
Usage: "Swarm HTTP API listening interface", | |
- EnvVar: SWARM_ENV_LISTEN_ADDR, | |
+ EnvVar: SwarmEnvListenAddr, | |
} | |
SwarmPortFlag = cli.StringFlag{ | |
Name: "bzzport", | |
Usage: "Swarm local http api port", | |
- EnvVar: SWARM_ENV_PORT, | |
+ EnvVar: SwarmEnvPort, | |
} | |
SwarmNetworkIdFlag = cli.IntFlag{ | |
Name: "bzznetworkid", | |
Usage: "Network identifier (integer, default 3=swarm testnet)", | |
- EnvVar: SWARM_ENV_NETWORK_ID, | |
+ EnvVar: SwarmEnvNetworkID, | |
} | |
SwarmSwapEnabledFlag = cli.BoolFlag{ | |
Name: "swap", | |
Usage: "Swarm SWAP enabled (default false)", | |
- EnvVar: SWARM_ENV_SWAP_ENABLE, | |
+ EnvVar: SwarmEnvSwapEnable, | |
} | |
SwarmSwapAPIFlag = cli.StringFlag{ | |
Name: "swap-api", | |
Usage: "URL of the Ethereum API provider to use to settle SWAP payments", | |
- EnvVar: SWARM_ENV_SWAP_API, | |
+ EnvVar: SwarmEnvSwapAPI, | |
} | |
SwarmSyncDisabledFlag = cli.BoolTFlag{ | |
Name: "nosync", | |
Usage: "Disable swarm syncing", | |
- EnvVar: SWARM_ENV_SYNC_DISABLE, | |
+ EnvVar: SwarmEnvSyncDisable, | |
} | |
SwarmSyncUpdateDelay = cli.DurationFlag{ | |
Name: "sync-update-delay", | |
Usage: "Duration for sync subscriptions update after no new peers are added (default 15s)", | |
- EnvVar: SWARM_ENV_SYNC_UPDATE_DELAY, | |
+ EnvVar: SwarmEnvSyncUpdateDelay, | |
} | |
SwarmMaxStreamPeerServersFlag = cli.IntFlag{ | |
Name: "max-stream-peer-servers", | |
Usage: "Limit of Stream peer servers, 0 denotes unlimited", | |
- EnvVar: SWARM_ENV_MAX_STREAM_PEER_SERVERS, | |
+ EnvVar: SwarmEnvMaxStreamPeerServers, | |
Value: 10000, // A very large default value is possible as stream servers have very small memory footprint | |
} | |
SwarmLightNodeEnabled = cli.BoolFlag{ | |
Name: "lightnode", | |
Usage: "Enable Swarm LightNode (default false)", | |
- EnvVar: SWARM_ENV_LIGHT_NODE_ENABLE, | |
+ EnvVar: SwarmEnvLightNodeEnable, | |
} | |
SwarmDeliverySkipCheckFlag = cli.BoolFlag{ | |
Name: "delivery-skip-check", | |
Usage: "Skip chunk delivery check (default false)", | |
- EnvVar: SWARM_ENV_DELIVERY_SKIP_CHECK, | |
+ EnvVar: SwarmEnvDeliverySkipCheck, | |
} | |
EnsAPIFlag = cli.StringSliceFlag{ | |
Name: "ens-api", | |
Usage: "ENS API endpoint for a TLD and with contract address, can be repeated, format [tld:][contract-addr@]url", | |
- EnvVar: SWARM_ENV_ENS_API, | |
+ EnvVar: SwarmEnvENSAPI, | |
} | |
SwarmApiFlag = cli.StringFlag{ | |
Name: "bzzapi", | |
@@ -126,7 +126,7 @@ var ( | |
SwarmAccessPasswordFlag = cli.StringFlag{ | |
Name: "password", | |
Usage: "Password", | |
- EnvVar: SWARM_ACCESS_PASSWORD, | |
+ EnvVar: SwarmAccessPassword, | |
} | |
SwarmDryRunFlag = cli.BoolFlag{ | |
Name: "dry-run", | |
@@ -135,22 +135,23 @@ var ( | |
CorsStringFlag = cli.StringFlag{ | |
Name: "corsdomain", | |
Usage: "Domain on which to send Access-Control-Allow-Origin header (multiple domains can be supplied separated by a ',')", | |
- EnvVar: SWARM_ENV_CORS, | |
+ EnvVar: SwarmEnvCORS, | |
} | |
SwarmStorePath = cli.StringFlag{ | |
Name: "store.path", | |
Usage: "Path to leveldb chunk DB (default <$GETH_ENV_DIR>/swarm/bzz-<$BZZ_KEY>/chunks)", | |
- EnvVar: SWARM_ENV_STORE_PATH, | |
+ EnvVar: SwarmEnvStorePath, | |
} | |
SwarmStoreCapacity = cli.Uint64Flag{ | |
Name: "store.size", | |
Usage: "Number of chunks (5M is roughly 20-25GB) (default 5000000)", | |
- EnvVar: SWARM_ENV_STORE_CAPACITY, | |
+ EnvVar: SwarmEnvStoreCapacity, | |
} | |
SwarmStoreCacheCapacity = cli.UintFlag{ | |
Name: "store.cache.size", | |
- Usage: "Number of recent chunks cached in memory (default 5000)", | |
- EnvVar: SWARM_ENV_STORE_CACHE_CAPACITY, | |
+ Usage: "Number of recent chunks cached in memory", | |
+ EnvVar: SwarmEnvStoreCacheCapacity, | |
+ Value: 10000, | |
} | |
SwarmCompressedFlag = cli.BoolFlag{ | |
Name: "compressed", | |
@@ -179,6 +180,6 @@ var ( | |
SwarmGlobalStoreAPIFlag = cli.StringFlag{ | |
Name: "globalstore-api", | |
Usage: "URL of the Global Store API provider (only for testing)", | |
- EnvVar: SWARM_GLOBALSTORE_API, | |
+ EnvVar: SwarmGlobalstoreAPI, | |
} | |
) | |
diff --git a/cmd/swarm/fs.go b/cmd/swarm/fs.go | |
index edeeddff8..7f156523b 100644 | |
--- a/cmd/swarm/fs.go | |
+++ b/cmd/swarm/fs.go | |
@@ -123,7 +123,7 @@ func listMounts(cliContext *cli.Context) { | |
ctx, cancel := context.WithTimeout(context.Background(), 30*time.Second) | |
defer cancel() | |
- mf := []fuse.MountInfo{} | |
+ var mf []fuse.MountInfo | |
err = client.CallContext(ctx, &mf, "swarmfs_listmounts") | |
if err != nil { | |
utils.Fatalf("encountered an error calling the RPC endpoint while listing mounts: %v", err) | |
diff --git a/cmd/swarm/global-store/explorer.go b/cmd/swarm/global-store/explorer.go | |
new file mode 100644 | |
index 000000000..634ff1ebb | |
--- /dev/null | |
+++ b/cmd/swarm/global-store/explorer.go | |
@@ -0,0 +1,66 @@ | |
+// Copyright 2019 The go-ethereum Authors | |
+// This file is part of go-ethereum. | |
+// | |
+// go-ethereum is free software: you can redistribute it and/or modify | |
+// it under the terms of the GNU General Public License as published by | |
+// the Free Software Foundation, either version 3 of the License, or | |
+// (at your option) any later version. | |
+// | |
+// go-ethereum is distributed in the hope that it will be useful, | |
+// but WITHOUT ANY WARRANTY; without even the implied warranty of | |
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the | |
+// GNU General Public License for more details. | |
+// | |
+// You should have received a copy of the GNU General Public License | |
+// along with go-ethereum. If not, see <http://www.gnu.org/licenses/>. | |
+ | |
+package main | |
+ | |
+import ( | |
+ "context" | |
+ "fmt" | |
+ "net" | |
+ "net/http" | |
+ "time" | |
+ | |
+ "github.com/ethereum/go-ethereum/log" | |
+ "github.com/ethereum/go-ethereum/swarm/storage/mock" | |
+ "github.com/ethereum/go-ethereum/swarm/storage/mock/explorer" | |
+ cli "gopkg.in/urfave/cli.v1" | |
+) | |
+ | |
+// serveChunkExplorer starts an http server in background with chunk explorer handler | |
+// using the provided global store. Server is started if the returned shutdown function | |
+// is not nil. | |
+func serveChunkExplorer(ctx *cli.Context, globalStore mock.GlobalStorer) (shutdown func(), err error) { | |
+ if !ctx.IsSet("explorer-address") { | |
+ return nil, nil | |
+ } | |
+ | |
+ corsOrigins := ctx.StringSlice("explorer-cors-origin") | |
+ server := &http.Server{ | |
+ Handler: explorer.NewHandler(globalStore, corsOrigins), | |
+ IdleTimeout: 30 * time.Minute, | |
+ ReadTimeout: 2 * time.Minute, | |
+ WriteTimeout: 2 * time.Minute, | |
+ } | |
+ listener, err := net.Listen("tcp", ctx.String("explorer-address")) | |
+ if err != nil { | |
+ return nil, fmt.Errorf("explorer: %v", err) | |
+ } | |
+ log.Info("chunk explorer http", "address", listener.Addr().String(), "origins", corsOrigins) | |
+ | |
+ go func() { | |
+ if err := server.Serve(listener); err != nil { | |
+ log.Error("chunk explorer", "err", err) | |
+ } | |
+ }() | |
+ | |
+ return func() { | |
+ ctx, cancel := context.WithTimeout(context.Background(), 5*time.Second) | |
+ defer cancel() | |
+ if err := server.Shutdown(ctx); err != nil { | |
+ log.Error("chunk explorer: shutdown", "err", err) | |
+ } | |
+ }, nil | |
+} | |
diff --git a/cmd/swarm/global-store/explorer_test.go b/cmd/swarm/global-store/explorer_test.go | |
new file mode 100644 | |
index 000000000..2e4928c8f | |
--- /dev/null | |
+++ b/cmd/swarm/global-store/explorer_test.go | |
@@ -0,0 +1,254 @@ | |
+// Copyright 2019 The go-ethereum Authors | |
+// This file is part of go-ethereum. | |
+// | |
+// go-ethereum is free software: you can redistribute it and/or modify | |
+// it under the terms of the GNU General Public License as published by | |
+// the Free Software Foundation, either version 3 of the License, or | |
+// (at your option) any later version. | |
+// | |
+// go-ethereum is distributed in the hope that it will be useful, | |
+// but WITHOUT ANY WARRANTY; without even the implied warranty of | |
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the | |
+// GNU General Public License for more details. | |
+// | |
+// You should have received a copy of the GNU General Public License | |
+// along with go-ethereum. If not, see <http://www.gnu.org/licenses/>. | |
+ | |
+package main | |
+ | |
+import ( | |
+ "encoding/json" | |
+ "fmt" | |
+ "net/http" | |
+ "sort" | |
+ "testing" | |
+ | |
+ "github.com/ethereum/go-ethereum/common" | |
+ "github.com/ethereum/go-ethereum/swarm/storage/mock/explorer" | |
+ mockRPC "github.com/ethereum/go-ethereum/swarm/storage/mock/rpc" | |
+) | |
+ | |
+// TestExplorer validates basic chunk explorer functionality by storing | |
+// a small set of chunk and making http requests on exposed endpoint. | |
+// Full chunk explorer validation is done in mock/explorer package. | |
+func TestExplorer(t *testing.T) { | |
+ addr := findFreeTCPAddress(t) | |
+ explorerAddr := findFreeTCPAddress(t) | |
+ testCmd := runGlobalStore(t, "ws", "--addr", addr, "--explorer-address", explorerAddr) | |
+ defer testCmd.Kill() | |
+ | |
+ client := websocketClient(t, addr) | |
+ | |
+ store := mockRPC.NewGlobalStore(client) | |
+ defer store.Close() | |
+ | |
+ nodeKeys := map[string][]string{ | |
+ "a1": {"b1", "b2", "b3"}, | |
+ "a2": {"b3", "b4", "b5"}, | |
+ } | |
+ | |
+ keyNodes := make(map[string][]string) | |
+ | |
+ for addr, keys := range nodeKeys { | |
+ for _, key := range keys { | |
+ keyNodes[key] = append(keyNodes[key], addr) | |
+ } | |
+ } | |
+ | |
+ invalidAddr := "c1" | |
+ invalidKey := "d1" | |
+ | |
+ for addr, keys := range nodeKeys { | |
+ for _, key := range keys { | |
+ err := store.Put(common.HexToAddress(addr), common.Hex2Bytes(key), []byte("data")) | |
+ if err != nil { | |
+ t.Fatal(err) | |
+ } | |
+ } | |
+ } | |
+ | |
+ endpoint := "http://" + explorerAddr | |
+ | |
+ t.Run("has key", func(t *testing.T) { | |
+ for addr, keys := range nodeKeys { | |
+ for _, key := range keys { | |
+ testStatusResponse(t, endpoint+"/api/has-key/"+addr+"/"+key, http.StatusOK) | |
+ testStatusResponse(t, endpoint+"/api/has-key/"+invalidAddr+"/"+key, http.StatusNotFound) | |
+ } | |
+ testStatusResponse(t, endpoint+"/api/has-key/"+addr+"/"+invalidKey, http.StatusNotFound) | |
+ } | |
+ testStatusResponse(t, endpoint+"/api/has-key/"+invalidAddr+"/"+invalidKey, http.StatusNotFound) | |
+ }) | |
+ | |
+ t.Run("keys", func(t *testing.T) { | |
+ var keys []string | |
+ for key := range keyNodes { | |
+ keys = append(keys, key) | |
+ } | |
+ sort.Strings(keys) | |
+ testKeysResponse(t, endpoint+"/api/keys", explorer.KeysResponse{ | |
+ Keys: keys, | |
+ }) | |
+ }) | |
+ | |
+ t.Run("nodes", func(t *testing.T) { | |
+ var nodes []string | |
+ for addr := range nodeKeys { | |
+ nodes = append(nodes, common.HexToAddress(addr).Hex()) | |
+ } | |
+ sort.Strings(nodes) | |
+ testNodesResponse(t, endpoint+"/api/nodes", explorer.NodesResponse{ | |
+ Nodes: nodes, | |
+ }) | |
+ }) | |
+ | |
+ t.Run("node keys", func(t *testing.T) { | |
+ for addr, keys := range nodeKeys { | |
+ testKeysResponse(t, endpoint+"/api/keys?node="+addr, explorer.KeysResponse{ | |
+ Keys: keys, | |
+ }) | |
+ } | |
+ testKeysResponse(t, endpoint+"/api/keys?node="+invalidAddr, explorer.KeysResponse{}) | |
+ }) | |
+ | |
+ t.Run("key nodes", func(t *testing.T) { |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment