aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorSteven Roose <stevenroose@gmail.com>2018-04-05 20:13:02 +0800
committerFelix Lange <fjl@users.noreply.github.com>2018-04-05 20:13:02 +0800
commitec8ee611caefb5c5ad5d796178e94c1919260df4 (patch)
tree275a9f91e33abfdafa0a6fdf113e4601616545cd
parent1e248f3a6e14f3bfc9ebe1b315c4194300220f68 (diff)
downloaddexon-ec8ee611caefb5c5ad5d796178e94c1919260df4.tar.gz
dexon-ec8ee611caefb5c5ad5d796178e94c1919260df4.tar.zst
dexon-ec8ee611caefb5c5ad5d796178e94c1919260df4.zip
core/types: remove String methods from struct types (#16205)
Most of these methods did not contain all the relevant information inside the object and were not using a similar formatting type. Moreover, the existence of a suboptimal String method breaks usage with more advanced data dumping tools like go-spew.
-rw-r--r--core/database_util_test.go2
-rw-r--r--core/types/block.go35
-rw-r--r--core/types/log.go5
-rw-r--r--core/types/receipt.go8
-rw-r--r--core/types/transaction.go53
-rw-r--r--internal/ethapi/api.go3
-rw-r--r--mobile/types.go24
7 files changed, 3 insertions, 127 deletions
diff --git a/core/database_util_test.go b/core/database_util_test.go
index ab4e45a47..aa87fa6f8 100644
--- a/core/database_util_test.go
+++ b/core/database_util_test.go
@@ -317,7 +317,7 @@ func TestLookupStorage(t *testing.T) {
if hash != block.Hash() || number != block.NumberU64() || index != uint64(i) {
t.Fatalf("tx #%d [%x]: positional metadata mismatch: have %x/%d/%d, want %x/%v/%v", i, tx.Hash(), hash, number, index, block.Hash(), block.NumberU64(), i)
}
- if tx.String() != txn.String() {
+ if tx.Hash() != txn.Hash() {
t.Fatalf("tx #%d [%x]: transaction mismatch: have %v, want %v", i, tx.Hash(), txn, tx)
}
}
diff --git a/core/types/block.go b/core/types/block.go
index 92b868d9d..ae1b4299d 100644
--- a/core/types/block.go
+++ b/core/types/block.go
@@ -19,7 +19,6 @@ package types
import (
"encoding/binary"
- "fmt"
"io"
"math/big"
"sort"
@@ -389,40 +388,6 @@ func (b *Block) Hash() common.Hash {
return v
}
-func (b *Block) String() string {
- str := fmt.Sprintf(`Block(#%v): Size: %v {
-MinerHash: %x
-%v
-Transactions:
-%v
-Uncles:
-%v
-}
-`, b.Number(), b.Size(), b.header.HashNoNonce(), b.header, b.transactions, b.uncles)
- return str
-}
-
-func (h *Header) String() string {
- return fmt.Sprintf(`Header(%x):
-[
- ParentHash: %x
- UncleHash: %x
- Coinbase: %x
- Root: %x
- TxSha %x
- ReceiptSha: %x
- Bloom: %x
- Difficulty: %v
- Number: %v
- GasLimit: %v
- GasUsed: %v
- Time: %v
- Extra: %s
- MixDigest: %x
- Nonce: %x
-]`, h.Hash(), h.ParentHash, h.UncleHash, h.Coinbase, h.Root, h.TxHash, h.ReceiptHash, h.Bloom, h.Difficulty, h.Number, h.GasLimit, h.GasUsed, h.Time, h.Extra, h.MixDigest, h.Nonce)
-}
-
type Blocks []*Block
type BlockBy func(b1, b2 *Block) bool
diff --git a/core/types/log.go b/core/types/log.go
index be5de38da..b629b47ed 100644
--- a/core/types/log.go
+++ b/core/types/log.go
@@ -17,7 +17,6 @@
package types
import (
- "fmt"
"io"
"github.com/ethereum/go-ethereum/common"
@@ -95,10 +94,6 @@ func (l *Log) DecodeRLP(s *rlp.Stream) error {
return err
}
-func (l *Log) String() string {
- return fmt.Sprintf(`log: %x %x %x %x %d %x %d`, l.Address, l.Topics, l.Data, l.TxHash, l.TxIndex, l.BlockHash, l.Index)
-}
-
// LogForStorage is a wrapper around a Log that flattens and parses the entire content of
// a log including non-consensus fields.
type LogForStorage Log
diff --git a/core/types/receipt.go b/core/types/receipt.go
index f945f6f6a..613f03d50 100644
--- a/core/types/receipt.go
+++ b/core/types/receipt.go
@@ -149,14 +149,6 @@ func (r *Receipt) Size() common.StorageSize {
return size
}
-// String implements the Stringer interface.
-func (r *Receipt) String() string {
- if len(r.PostState) == 0 {
- return fmt.Sprintf("receipt{status=%d cgas=%v bloom=%x logs=%v}", r.Status, r.CumulativeGasUsed, r.Bloom, r.Logs)
- }
- return fmt.Sprintf("receipt{med=%x cgas=%v bloom=%x logs=%v}", r.PostState, r.CumulativeGasUsed, r.Bloom, r.Logs)
-}
-
// ReceiptForStorage is a wrapper around a Receipt that flattens and parses the
// entire content of a receipt, as opposed to only the consensus fields originally.
type ReceiptForStorage Receipt
diff --git a/core/types/transaction.go b/core/types/transaction.go
index 5660582ba..70d757c94 100644
--- a/core/types/transaction.go
+++ b/core/types/transaction.go
@@ -19,7 +19,6 @@ package types
import (
"container/heap"
"errors"
- "fmt"
"io"
"math/big"
"sync/atomic"
@@ -262,58 +261,6 @@ func (tx *Transaction) RawSignatureValues() (*big.Int, *big.Int, *big.Int) {
return tx.data.V, tx.data.R, tx.data.S
}
-func (tx *Transaction) String() string {
- var from, to string
- if tx.data.V != nil {
- // make a best guess about the signer and use that to derive
- // the sender.
- signer := deriveSigner(tx.data.V)
- if f, err := Sender(signer, tx); err != nil { // derive but don't cache
- from = "[invalid sender: invalid sig]"
- } else {
- from = fmt.Sprintf("%x", f[:])
- }
- } else {
- from = "[invalid sender: nil V field]"
- }
-
- if tx.data.Recipient == nil {
- to = "[contract creation]"
- } else {
- to = fmt.Sprintf("%x", tx.data.Recipient[:])
- }
- enc, _ := rlp.EncodeToBytes(&tx.data)
- return fmt.Sprintf(`
- TX(%x)
- Contract: %v
- From: %s
- To: %s
- Nonce: %v
- GasPrice: %#x
- GasLimit %#x
- Value: %#x
- Data: 0x%x
- V: %#x
- R: %#x
- S: %#x
- Hex: %x
-`,
- tx.Hash(),
- tx.data.Recipient == nil,
- from,
- to,
- tx.data.AccountNonce,
- tx.data.Price,
- tx.data.GasLimit,
- tx.data.Amount,
- tx.data.Payload,
- tx.data.V,
- tx.data.R,
- tx.data.S,
- enc,
- )
-}
-
// Transactions is a Transaction slice type for basic sorting.
type Transactions []*Transaction
diff --git a/internal/ethapi/api.go b/internal/ethapi/api.go
index 6525aa212..e2bfbaf30 100644
--- a/internal/ethapi/api.go
+++ b/internal/ethapi/api.go
@@ -25,6 +25,7 @@ import (
"strings"
"time"
+ "github.com/davecgh/go-spew/spew"
"github.com/ethereum/go-ethereum/accounts"
"github.com/ethereum/go-ethereum/accounts/keystore"
"github.com/ethereum/go-ethereum/common"
@@ -1388,7 +1389,7 @@ func (api *PublicDebugAPI) PrintBlock(ctx context.Context, number uint64) (strin
if block == nil {
return "", fmt.Errorf("block #%d not found", number)
}
- return block.String(), nil
+ return spew.Sdump(block), nil
}
// SeedHash retrieves the seed hash of a block.
diff --git a/mobile/types.go b/mobile/types.go
index 4790afcef..24cd7ebf1 100644
--- a/mobile/types.go
+++ b/mobile/types.go
@@ -97,12 +97,6 @@ func (h *Header) EncodeJSON() (string, error) {
return string(data), err
}
-// String implements the fmt.Stringer interface to print some semi-meaningful
-// data dump of the header for debugging purposes.
-func (h *Header) String() string {
- return h.header.String()
-}
-
func (h *Header) GetParentHash() *Hash { return &Hash{h.header.ParentHash} }
func (h *Header) GetUncleHash() *Hash { return &Hash{h.header.UncleHash} }
func (h *Header) GetCoinbase() *Address { return &Address{h.header.Coinbase} }
@@ -174,12 +168,6 @@ func (b *Block) EncodeJSON() (string, error) {
return string(data), err
}
-// String implements the fmt.Stringer interface to print some semi-meaningful
-// data dump of the block for debugging purposes.
-func (b *Block) String() string {
- return b.block.String()
-}
-
func (b *Block) GetParentHash() *Hash { return &Hash{b.block.ParentHash()} }
func (b *Block) GetUncleHash() *Hash { return &Hash{b.block.UncleHash()} }
func (b *Block) GetCoinbase() *Address { return &Address{b.block.Coinbase()} }
@@ -249,12 +237,6 @@ func (tx *Transaction) EncodeJSON() (string, error) {
return string(data), err
}
-// String implements the fmt.Stringer interface to print some semi-meaningful
-// data dump of the transaction for debugging purposes.
-func (tx *Transaction) String() string {
- return tx.tx.String()
-}
-
func (tx *Transaction) GetData() []byte { return tx.tx.Data() }
func (tx *Transaction) GetGas() int64 { return int64(tx.tx.Gas()) }
func (tx *Transaction) GetGasPrice() *BigInt { return &BigInt{tx.tx.GasPrice()} }
@@ -347,12 +329,6 @@ func (r *Receipt) EncodeJSON() (string, error) {
return string(data), err
}
-// String implements the fmt.Stringer interface to print some semi-meaningful
-// data dump of the transaction receipt for debugging purposes.
-func (r *Receipt) String() string {
- return r.receipt.String()
-}
-
func (r *Receipt) GetPostState() []byte { return r.receipt.PostState }
func (r *Receipt) GetCumulativeGasUsed() int64 { return int64(r.receipt.CumulativeGasUsed) }
func (r *Receipt) GetBloom() *Bloom { return &Bloom{r.receipt.Bloom} }