|
|
@ -93,8 +93,11 @@ func (oracle *CheckpointOracle) StableCheckpoint() (*params.TrustedCheckpoint, u |
|
|
|
// Look it up properly
|
|
|
|
// Look it up properly
|
|
|
|
// Retrieve the latest checkpoint from the contract, abort if empty
|
|
|
|
// Retrieve the latest checkpoint from the contract, abort if empty
|
|
|
|
latest, hash, height, err := oracle.contract.Contract().GetLatestCheckpoint(nil) |
|
|
|
latest, hash, height, err := oracle.contract.Contract().GetLatestCheckpoint(nil) |
|
|
|
|
|
|
|
oracle.lastCheckTime = time.Now() |
|
|
|
if err != nil || (latest == 0 && hash == [32]byte{}) { |
|
|
|
if err != nil || (latest == 0 && hash == [32]byte{}) { |
|
|
|
return nil, 0 |
|
|
|
oracle.lastCheckPointHeight = 0 |
|
|
|
|
|
|
|
oracle.lastCheckPoint = nil |
|
|
|
|
|
|
|
return oracle.lastCheckPoint, oracle.lastCheckPointHeight |
|
|
|
} |
|
|
|
} |
|
|
|
local := oracle.getLocal(latest) |
|
|
|
local := oracle.getLocal(latest) |
|
|
|
|
|
|
|
|
|
|
@ -106,10 +109,9 @@ func (oracle *CheckpointOracle) StableCheckpoint() (*params.TrustedCheckpoint, u |
|
|
|
//
|
|
|
|
//
|
|
|
|
// In both cases, no stable checkpoint will be returned.
|
|
|
|
// In both cases, no stable checkpoint will be returned.
|
|
|
|
if local.HashEqual(hash) { |
|
|
|
if local.HashEqual(hash) { |
|
|
|
oracle.lastCheckTime = time.Now() |
|
|
|
|
|
|
|
oracle.lastCheckPointHeight = height.Uint64() |
|
|
|
oracle.lastCheckPointHeight = height.Uint64() |
|
|
|
oracle.lastCheckPoint = &local |
|
|
|
oracle.lastCheckPoint = &local |
|
|
|
return &local, height.Uint64() |
|
|
|
return oracle.lastCheckPoint, oracle.lastCheckPointHeight |
|
|
|
} |
|
|
|
} |
|
|
|
return nil, 0 |
|
|
|
return nil, 0 |
|
|
|
} |
|
|
|
} |
|
|
|