Some code robustness fixes

This commit is contained in:
Rucknium 2022-03-02 15:09:44 +00:00
parent 47d957254f
commit cd66e7ab1b
2 changed files with 36 additions and 9 deletions

View file

@ -16,7 +16,8 @@ load(paste0(data.dir, "touched-UTXO-intermediate-COMPLETE.Rdata"), verbose = TRU
con <- DBI::dbConnect(RSQLite::SQLite(), paste0(data.dir, "tx-graph-node-indices.db"))
DBI::dbWriteTable(con, "utxovalue",
data.frame(destination = character(0), value = numeric(0), stringsAsFactors = FALSE))
data.frame(destination = character(0), value = numeric(0), stringsAsFactors = FALSE),
overwrite = TRUE)
tx.graph.files <- list.files(data.dir)
@ -50,10 +51,12 @@ rm(master.edgelist)
DBI::dbWriteTable(con, "utxoset",
data.frame(destination_index = utxo.set, stringsAsFactors = FALSE))
data.frame(destination_index = utxo.set, stringsAsFactors = FALSE),
overwrite = TRUE)
DBI::dbWriteTable(con, "utxoset_intermediate_1",
data.frame(destination = character(0), destination_index = integer(0), stringsAsFactors = FALSE))
data.frame(destination = character(0), destination_index = integer(0), stringsAsFactors = FALSE),
overwrite = TRUE)
base::date()
DBI::dbExecute(con, "INSERT INTO utxoset_intermediate_1 SELECT
@ -64,7 +67,8 @@ base::date()
DBI::dbWriteTable(con, "utxoset_intermediate_2",
data.frame(destination = character(0), destination_index = integer(0),
value = numeric(0), stringsAsFactors = FALSE))
value = numeric(0), stringsAsFactors = FALSE),
overwrite = TRUE)
base::date()
DBI::dbExecute(con, "INSERT INTO utxoset_intermediate_2 SELECT
@ -76,17 +80,40 @@ base::date()
utxoset.value.extended <- DBI::dbGetQuery(con,
'SELECT * FROM utxoset_intermediate_2')
colnames(utxoset.value.extended) <- c("txid_position", "tx_graph_index", "value")
utxoset.value.extended$is_cashfusion_descendant <- ifelse(
utxoset.value.extended$destination_index %in% touched.UTXO, 1L, 0L)
100 * prop.table(table(utxoset.value.extended$is_cashfusion_descendant))
utxoset.value.aggregated <- aggregate(utxoset.value.extended$value,
by = list(utxoset.value.extended$is_cashfusion_descendant), FUN = sum)
unspent_coinbases <- readRDS(paste0(data.dir, "unspent_coinbases.rds"))
unspent_coinbases$tx_graph_index <- NA_integer_
unspent_coinbases$is_coinbase <- 1L
unspent_coinbases$is_cashfusion_descendant <- 0L
utxoset.value.extended$is_coinbase <- 0L
utxoset.value.extended <- rbind(
utxoset.value.extended[, c("txid_position", "tx_graph_index", "value", "is_cashfusion_descendant", "is_coinbase")],
unspent_coinbases[, c("txid_position", "tx_graph_index", "value", "is_cashfusion_descendant", "is_coinbase")]
)
100 * prop.table(table(utxoset.value.extended$is_cashfusion_descendant[
utxoset.value.extended$value > 0 ]))
utxoset.value.aggregated <- aggregate(utxoset.value.extended$value[
utxoset.value.extended$value > 0 ],
by = list(utxoset.value.extended$is_cashfusion_descendant[
utxoset.value.extended$value > 0 ]), FUN = sum)
100 * utxoset.value.aggregated$x / sum(utxoset.value.aggregated$x)
saveRDS(utxoset.value.extended, file = paste0(data.dir, "CashFusion-Descendants.rds"), row.names = FALSE)
write.csv(utxoset.value.extended, file = paste0(data.dir, "CashFusion-Descendants.csv"), row.names = FALSE)

View file

@ -11,7 +11,7 @@ library(igraph)
data.dir <- ""
# Input data directory here, with trailing "/"
fusions.df <- readRDS("https://github.com/Rucknium/CashFusionStats/raw/main/data/fusions_df.rds")
fusions.df <- readRDS(url("https://github.com/Rucknium/CashFusionStats/raw/main/data/fusions_df.rds"))
# Get the list of transactions that are the fusion transactions
@ -58,7 +58,7 @@ for ( i in fusioned.nodes.to.process[counter.i:length(fusioned.nodes.to.process)
counter.i, ".Rdata"), compress = FALSE)
}
bch.paths <- distances(bch.graph,
bch.paths <- igraph::distances(bch.graph,
v = i,
to = to.set, mode = "out")