From 771b74ac64ff7c1233c09a8ddae293984705b46c Mon Sep 17 00:00:00 2001 From: Miguel Montes <miguel.montes@gmail.com> Date: Mon, 3 Dec 2018 17:52:18 -0300 Subject: [PATCH] =?UTF-8?q?Simplificaci=C3=B3n=20de=20algunas=20funciones?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- bfa_client/src/bfa/node.go | 47 ++++++++++++----------------- bfa_client/src/client/bfa_client.go | 2 +- 2 files changed, 20 insertions(+), 29 deletions(-) diff --git a/bfa_client/src/bfa/node.go b/bfa_client/src/bfa/node.go index 81c2580..6d11f47 100644 --- a/bfa_client/src/bfa/node.go +++ b/bfa_client/src/bfa/node.go @@ -253,24 +253,16 @@ func (node *Node) IsMining() (mining bool) { return } -func (node *Node) PeerCount() int64 { - var peerCount string +func (node *Node) PeerCount() uint64 { + var peerCount Uint64 node.Call(&peerCount, "net_peerCount") - p, _ := strconv.ParseInt(peerCount, 0, 64) - return p + return uint64(peerCount) } func (node *Node) BalanceAtBlock(account string, blockNumber int64) *big.Int { - var ( - balance string - block = Latest - ) - if blockNumber >= 0 { - block = Int64ToHex(blockNumber) - } - node.Call(&balance, "eth_getBalance", account, block) - n, _ := new(big.Int).SetString(balance, 0) - return n + var balance BigInt + node.Call(&balance, "eth_getBalance", account, hexBlockNumber(blockNumber)) + return (*big.Int)(&balance) } func (node *Node) Balance(account string) *big.Int { @@ -319,13 +311,11 @@ func (node *Node) BlockNumberInRange(number int64) (blockNumber int64) { } func (node *Node) HeaderByNumber(blockNumber int64) (header Header) { - Require(blockNumber == -1 || blockNumber == node.BlockNumberInRange(blockNumber), "block number out of range") node.Call(&header, "eth_getBlockByNumber", hexBlockNumber(blockNumber), true) return } func (node *Node) BlockByNumber(blockNumber int64) (block Block) { - Require(blockNumber == -1 || blockNumber == node.BlockNumberInRange(blockNumber), "block number out of range") node.Call(&block, "eth_getBlockByNumber", hexBlockNumber(blockNumber), true) block.setSigner() return @@ -346,17 +336,12 @@ func (node *Node) GetSnapshot() (snapshot Snapshot) { } func (node *Node) SnapshotAtBlock(blockNumber int64) (snapshot Snapshot) { - Require(blockNumber == -1 || blockNumber == node.BlockNumberInRange(blockNumber), "block number out of range") node.Call(&snapshot, "clique_getSnapshot", hexBlockNumber(blockNumber)) return } func (node *Node) Sealers() (signers []string) { - var s []common.Address - node.Call(&s, "clique_getSigners", nil) - for _, signer := range s { - signers = append(signers, BytesToHex(signer.Bytes())) - } + node.Call(&signers, "clique_getSigners", nil) return } @@ -366,14 +351,10 @@ func (node *Node) NodeInfo() (nodeInfo p2p.NodeInfo) { } func (node *Node) SealersAtBlock(blockNumber int64) (signers []string) { - var s []common.Address - if blockNumber < 0 { + if blockNumber == -1 { return node.Sealers() } - node.Call(&s, "clique_getSigners", Int64ToHex(blockNumber)) - for _, signer := range s { - signers = append(signers, BytesToHex(signer.Bytes())) - } + node.Call(&signers, "clique_getSigners", Int64ToHex(blockNumber)) return } @@ -387,6 +368,16 @@ func (node *Node) IsSealer(address string) bool { return Contains(node.Sealers(), address) } +func (node *Node) IsSealerAtBlock(address string, blockNumber int64) bool { + if address == Self { + var err error + if address, err = node.Coinbase(); err != nil { + return false + } + } + return Contains(node.SealersAtBlock(blockNumber), address) +} + func (node *Node) Propose(address string, vote bool) { node.Call(nil, "clique_propose", address, vote) return diff --git a/bfa_client/src/client/bfa_client.go b/bfa_client/src/client/bfa_client.go index 926df25..68429b3 100644 --- a/bfa_client/src/client/bfa_client.go +++ b/bfa_client/src/client/bfa_client.go @@ -368,7 +368,7 @@ func status() { IsSealer bool `json:"isSealer"` IsMining bool `json:"isMining"` BlockNumber int64 `json:"blockNumber"` - PeerCount int64 `json:"peerCount"` + PeerCount uint64 `json:"peerCount"` }{ Accounts: make(map[string]*big.Int), } -- GitLab