diff --git a/DevelopmentNotes.md b/DevelopmentNotes.md index 82d6755..af3be98 100644 --- a/DevelopmentNotes.md +++ b/DevelopmentNotes.md @@ -31,9 +31,6 @@ other - num address evolution throught time -- fix error in exploreBlockchain.go, when getting the tx.Vin -tx 8f04960da36beaa928b9693f7dca4afae5a6122bb6874d409a1156e4c6c55024 has 4 vin, but exploreBlockchain is only getting the first - - pagination in address network generation - stop rendering dots of sankey, when view change diff --git a/exploreBlockchain.go b/exploreBlockchain.go index d5912f1..1140673 100644 --- a/exploreBlockchain.go +++ b/exploreBlockchain.go @@ -125,70 +125,70 @@ func explore(client *rpcclient.Client, blockHash string) { txVi, err := client.GetRawTransactionVerbose(th) check(err) - if len(txVi.Vout[Vi.Vout].ScriptPubKey.Addresses) > 0 { - //add tx to newBlock - newBlock.Tx = append(newBlock.Tx, blockTx.Txid) - - //Tx save - for _, originAddr := range txVi.Vout[Vi.Vout].ScriptPubKey.Addresses { - originAddresses = append(originAddresses, originAddr) - - var newVin Vin - newVin.Txid = blockTx.Txid - newVin.Amount = txVi.Vout[Vi.Vout].Value - newVin.Address = originAddr - newTx.Vin = append(newTx.Vin, newVin) - - var n1 NodeModel - n1.Id = originAddr - n1.Label = originAddr - n1.Title = originAddr - n1.Group = strconv.FormatInt(block.Height, 10) - n1.Value = 1 - n1.Shape = "dot" - n1.Type = "address" - saveNode(nodeCollection, n1) - - //Address - var addr AddressModel - addr.Hash = originAddr - addr.InBittrex = false - saveAddress(addr) - - for k, outputAddr := range outputAddresses { - var eIn EdgeModel - eIn.From = originAddr - eIn.To = txHash - eIn.Label = txVi.Vout[Vi.Vout].Value - eIn.Txid = blockTx.Txid - eIn.Arrows = "to" - eIn.BlockHeight = block.Height - saveEdge(edgeCollection, eIn) - - var eOut EdgeModel - eOut.From = txHash - eOut.To = outputAddr - eOut.Label = outputAmount[k] - eOut.Txid = blockTx.Txid - eOut.Arrows = "to" - eOut.BlockHeight = block.Height - saveEdge(edgeCollection, eOut) - - //date analysis - //dateAnalysis(e, tx.Time) - //hour analysis - hourAnalysis(eIn, blockTx.Time) - - //newTx.To = outputAddr - - } + //if len(txVi.Vout[Vi.Vout].ScriptPubKey.Addresses) > 0 { + //add tx to newBlock + newBlock.Tx = append(newBlock.Tx, blockTx.Txid) + + //Tx save + for _, originAddr := range txVi.Vout[Vi.Vout].ScriptPubKey.Addresses { + originAddresses = append(originAddresses, originAddr) + + var newVin Vin + newVin.Txid = blockTx.Txid + newVin.Amount = txVi.Vout[Vi.Vout].Value + newVin.Address = originAddr + newTx.Vin = append(newTx.Vin, newVin) + + var n1 NodeModel + n1.Id = originAddr + n1.Label = originAddr + n1.Title = originAddr + n1.Group = strconv.FormatInt(block.Height, 10) + n1.Value = 1 + n1.Shape = "dot" + n1.Type = "address" + saveNode(nodeCollection, n1) + + //Address + var addr AddressModel + addr.Hash = originAddr + addr.InBittrex = false + saveAddress(addr) + + for k, outputAddr := range outputAddresses { + var eIn EdgeModel + eIn.From = originAddr + eIn.To = txHash + eIn.Label = txVi.Vout[Vi.Vout].Value + eIn.Txid = blockTx.Txid + eIn.Arrows = "to" + eIn.BlockHeight = block.Height + saveEdge(edgeCollection, eIn) + + var eOut EdgeModel + eOut.From = txHash + eOut.To = outputAddr + eOut.Label = outputAmount[k] + eOut.Txid = blockTx.Txid + eOut.Arrows = "to" + eOut.BlockHeight = block.Height + saveEdge(edgeCollection, eOut) + + //date analysis + //dateAnalysis(e, tx.Time) + //hour analysis + hourAnalysis(eIn, blockTx.Time) + + //newTx.To = outputAddr + } - saveTx(newTx) - } else { - originAddresses = append(originAddresses, "origin") } + /*} else { + originAddresses = append(originAddresses, "origin") + }*/ } + saveTx(newTx) fmt.Print("originAddresses: ") fmt.Println(len(originAddresses)) fmt.Print("outputAddresses: ")