graphsense-transformation icon indicating copy to clipboard operation
graphsense-transformation copied to clipboard

Support for multisig inputs/outputs

Open QuentinFAIDIDE opened this issue 2 years ago • 0 comments

Hello, When computing regular inputs/outputs, it seems that all the multisig inputs (more than 1 address in input/output) are ignored. Is it actually what happens ? Would it be possible to support multisig or does it creates problems down the line for computing balances and others ? https://github.com/graphsense/graphsense-transformation/blob/master/src/main/scala/info/graphsense/Transformation.scala#L117

  def computeRegularInputs(tx: Dataset[Transaction]): Dataset[RegularInput] = {
    tx.withColumn("input", explode(col("inputs")))
      .filter(size(col("input.address")) === 1)   // <- this line here
      .select(
        explode(col("input.address")).as(F.address),
        col("input.value").as(F.value),
        col(F.txId)
      )
      .groupBy(F.txId, F.address)
      .agg(sum(F.value).as(F.value))
      .join(
        tx.select(
          col(F.txId),
          col(F.blockId),
          col(F.timestamp),
          col(F.coinjoin)
        ),
        Seq(F.txId)
      )
      .as[RegularInput]
  }

Thank you for writing and maintaining Graphsense, Quentin FAIDIDE.

QuentinFAIDIDE avatar Oct 30 '22 11:10 QuentinFAIDIDE