Skip to content
Snippets Groups Projects
Unverified Commit a06b697a authored by Angelo Capossele's avatar Angelo Capossele Committed by GitHub
Browse files

:man_singer: Fix genesis inclusion state (#582)

parent 417d94f5
Branches
Tags
No related merge requests found
......@@ -27,6 +27,7 @@ var (
// ErrInvalidTransactionSignature is returned if the signature of a transaction is invalid.
ErrInvalidTransactionSignature = errors.New("invalid transaction signatures")
)
// Tangle represents the value tangle that consists out of value payloads.
// It is an independent ontology, that lives inside the tangle.
type Tangle struct {
......@@ -179,6 +180,9 @@ func (tangle *Tangle) LoadSnapshot(snapshot map[transaction.ID]map[address.Addre
input := NewOutput(outputAddress, transactionID, branchmanager.MasterBranchID, balances)
input.setSolid(true)
input.setBranchID(branchmanager.MasterBranchID)
input.setLiked(true)
input.setConfirmed(true)
input.setFinalized(true)
// store output and abort if the snapshot has already been loaded earlier (output exists in the database)
cachedOutput, stored := tangle.outputStorage.StoreIfAbsent(input)
......
......@@ -162,6 +162,8 @@ func findAddress(strAddress string) (*ExplorerAddress, error) {
}
outputids := make([]ExplorerOutput, 0)
inclusionState := utils.InclusionState{}
// get outputids by address
for id, cachedOutput := range valuetransfers.Tangle().OutputsOnAddress(address) {
......@@ -175,24 +177,30 @@ func findAddress(strAddress string) (*ExplorerAddress, error) {
Color: balance.Color.String(),
})
}
valuetransfers.Tangle().TransactionMetadata(output.TransactionID()).Consume(func(txMeta *tangle.TransactionMetadata) {
inclusionState := utils.InclusionState{}
var solidificationTime int64
if !valuetransfers.Tangle().TransactionMetadata(output.TransactionID()).Consume(func(txMeta *tangle.TransactionMetadata) {
inclusionState.Confirmed = txMeta.Confirmed()
inclusionState.Liked = txMeta.Liked()
inclusionState.Rejected = txMeta.Rejected()
inclusionState.Finalized = txMeta.Finalized()
inclusionState.Conflicting = txMeta.Conflicting()
inclusionState.Confirmed = txMeta.Confirmed()
solidificationTime = txMeta.SolidificationTime().Unix()
}) {
// This is only for the genesis.
inclusionState.Confirmed = output.Confirmed()
inclusionState.Liked = output.Liked()
inclusionState.Rejected = output.Rejected()
inclusionState.Finalized = output.Finalized()
inclusionState.Confirmed = output.Confirmed()
}
outputids = append(outputids, ExplorerOutput{
ID: id.String(),
Balances: b,
InclusionState: inclusionState,
ConsumerCount: output.ConsumerCount(),
SolidificationTime: txMeta.SolidificationTime().Unix(),
})
SolidificationTime: solidificationTime,
})
})
}
......
......@@ -110,17 +110,14 @@ export class ExplorerAddressQueryResult extends React.Component<Props, any> {
outputs.push(
<ListGroup.Item key={output.id}>
<small>
{'Output ID:'} {output.id} {' '}
<br></br>
Solidification Time: {dateformat(new Date(output.solidification_time * 1000), "dd.mm.yyyy HH:MM:ss")}
<br></br>
{status}
<br></br>
{consumed}
<br></br>
{conflicting}
<br></br>
{'Balance:'} {balances}
<div>{'Output ID:'} {output.id} {' '}</div>
{output.solidification_time != 0 &&
<div>Solidification Time: {dateformat(new Date(output.solidification_time * 1000), "dd.mm.yyyy HH:MM:ss")}</div>
}
<div>{status}</div>
<div>{consumed}</div>
<div>{conflicting}</div>
<div>{'Balance:'} {balances}</div>
</small>
</ListGroup.Item>
);
......
This diff is collapsed.
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment