Como obter o endereço do remetente com bitcoinj (sem duplicata)?

Estou usando bitcoinj (implementação java). Eu li muitas respostas aqui, mas nenhuma delas responde à minha pergunta. Como obter o endereço do remetente usando bitcoinj?

Eu tenho a variável de transação tx. Posso obter o hash dele, também usei: https://blockchain.info/tx/myTXhash e ele me mostrou as transações. O problema nem mesmo é que a web está me mostrando o remetente.

MAS: se eu usar isso arquivo .wallet gerado e abri-lo com multibit (carteira bitcoin) Eu posso ver lá, em transações, de quem foi o dinheiro enviado. Isso significa que há uma maneira de obter o endereço do remetente, mas COMO?

EDITAR: Eu me enganei, multibit não sabe de quem veio o dinheiro, só fiquei confuso porque me mostrou foi enviado para o endereço correto (mas foi configurado por mim em args).

Mas há alguma possibilidade de passar a mensagem de alguma forma do cliente para sabe se foi ele quem enviou o dinheiro?

Comentários

  • Você quer dizer obter o Endereço Bitcoin que enviou o mon ey ou de alguma forma recebendo um nome?
  • Sim, quero dizer o endereço Bitcoin que enviou o dinheiro. Ou alguma outra forma de verificar se o dinheiro veio dessa pessoa. Considere-a como uma carteira que está recebendo dinheiro constantemente, mas preciso verificar se é proveniente de quem deseja acessar pela web.

Resposta

Para referência futura: No bitcoinJ (versão java), os endereços de entrada / saída das transações estão localizados nos objetos TransactionInput e TransactionOutput.

Por exemplo: para Transaction tx :

List<TransactionInput> inputs = tx.getInputs(); List<TransactionOutput> outputs = tx.getOutputs(); for(TransactionOutput out : outputs){ System.out.println(out.getAddressFromP2PKHScript(params)); System.out.println(out.getAddressFromP2SH(params)); } for(TransactionInput in : inputs){ System.out.println(in.getFromAddress()); } 

Lembre-se de que algumas transações podem não ter um endereço de entrada. Aqui está a descrição do github do método getFromAddress ():

Método de conveniência que retorna o endereço de origem desta entrada analisando o scriptSig. O conceito de “endereço de origem” não está bem definido no Bitcoin e você não deve assumir que os remetentes de uma transação podem realmente receber moedas no mesmo endereço que costumavam assinar (por exemplo, isso não é verdade para carteiras compartilhadas).

Resposta

Você pode ver os endereços que enviaram e receberam dinheiro ao olhar para um transação na maioria dos serviços. Por exemplo:

https://blockchain.info/tx/c6cb02e70442275ffb7b35cc8a9416323ff7e01b5378abc20ae7f5b6e7617884

A grande seta verde mostra a transferência de um endereço (1B898F2tcWHX1LZWWfD21FRzqWrtXLocXN) para os outros 2. Programaticamente, você pode usar uma API que retorna JSON com informações equivalentes:

https://api.blockcypher.com/v1/btc/main/txs/c6cb02e70442275ffb7b35cc8a9416323ff7e01b5378abc20ae7f5b6e7617884

No entanto, não é simples extrair essas informações ao olhar para uma transação bruta, pois os endereços estão embutidos no script.

Deixe uma resposta

O seu endereço de email não será publicado. Campos obrigatórios marcados com *