Skip to content
Snippets Groups Projects
Commit 771b74ac authored by Miguel Montes's avatar Miguel Montes
Browse files

Simplificación de algunas funciones

parent f24a9fe0
No related branches found
No related tags found
No related merge requests found
...@@ -253,24 +253,16 @@ func (node *Node) IsMining() (mining bool) { ...@@ -253,24 +253,16 @@ func (node *Node) IsMining() (mining bool) {
return return
} }
func (node *Node) PeerCount() int64 { func (node *Node) PeerCount() uint64 {
var peerCount string var peerCount Uint64
node.Call(&peerCount, "net_peerCount") node.Call(&peerCount, "net_peerCount")
p, _ := strconv.ParseInt(peerCount, 0, 64) return uint64(peerCount)
return p
} }
func (node *Node) BalanceAtBlock(account string, blockNumber int64) *big.Int { func (node *Node) BalanceAtBlock(account string, blockNumber int64) *big.Int {
var ( var balance BigInt
balance string node.Call(&balance, "eth_getBalance", account, hexBlockNumber(blockNumber))
block = Latest return (*big.Int)(&balance)
)
if blockNumber >= 0 {
block = Int64ToHex(blockNumber)
}
node.Call(&balance, "eth_getBalance", account, block)
n, _ := new(big.Int).SetString(balance, 0)
return n
} }
func (node *Node) Balance(account string) *big.Int { func (node *Node) Balance(account string) *big.Int {
...@@ -319,13 +311,11 @@ func (node *Node) BlockNumberInRange(number int64) (blockNumber int64) { ...@@ -319,13 +311,11 @@ func (node *Node) BlockNumberInRange(number int64) (blockNumber int64) {
} }
func (node *Node) HeaderByNumber(blockNumber int64) (header Header) { 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) node.Call(&header, "eth_getBlockByNumber", hexBlockNumber(blockNumber), true)
return return
} }
func (node *Node) BlockByNumber(blockNumber int64) (block Block) { 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) node.Call(&block, "eth_getBlockByNumber", hexBlockNumber(blockNumber), true)
block.setSigner() block.setSigner()
return return
...@@ -346,17 +336,12 @@ func (node *Node) GetSnapshot() (snapshot Snapshot) { ...@@ -346,17 +336,12 @@ func (node *Node) GetSnapshot() (snapshot Snapshot) {
} }
func (node *Node) SnapshotAtBlock(blockNumber int64) (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)) node.Call(&snapshot, "clique_getSnapshot", hexBlockNumber(blockNumber))
return return
} }
func (node *Node) Sealers() (signers []string) { func (node *Node) Sealers() (signers []string) {
var s []common.Address node.Call(&signers, "clique_getSigners", nil)
node.Call(&s, "clique_getSigners", nil)
for _, signer := range s {
signers = append(signers, BytesToHex(signer.Bytes()))
}
return return
} }
...@@ -366,14 +351,10 @@ func (node *Node) NodeInfo() (nodeInfo p2p.NodeInfo) { ...@@ -366,14 +351,10 @@ func (node *Node) NodeInfo() (nodeInfo p2p.NodeInfo) {
} }
func (node *Node) SealersAtBlock(blockNumber int64) (signers []string) { func (node *Node) SealersAtBlock(blockNumber int64) (signers []string) {
var s []common.Address if blockNumber == -1 {
if blockNumber < 0 {
return node.Sealers() return node.Sealers()
} }
node.Call(&s, "clique_getSigners", Int64ToHex(blockNumber)) node.Call(&signers, "clique_getSigners", Int64ToHex(blockNumber))
for _, signer := range s {
signers = append(signers, BytesToHex(signer.Bytes()))
}
return return
} }
...@@ -387,6 +368,16 @@ func (node *Node) IsSealer(address string) bool { ...@@ -387,6 +368,16 @@ func (node *Node) IsSealer(address string) bool {
return Contains(node.Sealers(), address) 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) { func (node *Node) Propose(address string, vote bool) {
node.Call(nil, "clique_propose", address, vote) node.Call(nil, "clique_propose", address, vote)
return return
......
...@@ -368,7 +368,7 @@ func status() { ...@@ -368,7 +368,7 @@ func status() {
IsSealer bool `json:"isSealer"` IsSealer bool `json:"isSealer"`
IsMining bool `json:"isMining"` IsMining bool `json:"isMining"`
BlockNumber int64 `json:"blockNumber"` BlockNumber int64 `json:"blockNumber"`
PeerCount int64 `json:"peerCount"` PeerCount uint64 `json:"peerCount"`
}{ }{
Accounts: make(map[string]*big.Int), Accounts: make(map[string]*big.Int),
} }
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment