you didn't getting error on this line ?

watchingWallet.completeTx(sendRequest)

how this wallet will complete tx when this wallet has no Private key ?

On Thursday, May 17, 2018 at 2:39:08 PM UTC-7, the.how...@gmail.com wrote:
>
> I've found a couple of threads on this, but nothing concrete on how to 
> actually do it. The goal is to have a watching wallet in an online app and 
> a signing wallet in an offline. The signing wallet would serialize the 
> signed tx for the app containing the watching wallet to broadcast. I've 
> been at this for about a week and just cant get it working correctly. 
> Here's what I have so far (its in Kotlin, I can translate to Java if need 
> be). If anyone could point out what I'm doing wrong, that would be great.
>
> *Online App with Watching Wallet:*
> // prepare tx to be signed
> val sendRequest = SendRequest.to(Address.fromString(networkParams, 
> request.to), Coin.valueOf(request.amount))
> sendRequest.signInputs = false
> watchingWallet.completeTx(sendRequest)
>
> val connectedOutput = sendRequest.tx.inputs.first().connectedOutput
> val connectedOutputIndex = connectedOutput?.index ?: 0
> val serializedTxToSign = sendRequest.tx.bitcoinSerialize()
> rpcService.sendToSigningWallet(serializedTxToSign, connectedOutputIndex)
>
>
>
> *Cold App with Signing Wallet:*
> val ecKey = ECKey.fromPrivate(signingWallet.currentReceiveKey().privKey)
> val tx = Transaction(networkParams, request.serializedTxToSign)
> val scriptPubKey = tx.outputs[request.connectedOutputIndex].scriptPubKey
>
> // there's only ever one, but I'm looping anyway...
> tx.inputs.forEachIndexed { idx, input ->
>             val hash = tx.hashForSignature(idx, scriptPubKey, Transaction.
> SigHash.ALL, false)
>             if (scriptPubKey.isSentToAddress) {
>                 val signedHash = ecKey.sign(hash)
>                 val transactionSignature = TransactionSignature(signedHash
> , Transaction.SigHash.ALL, false)
>                 input.scriptSig = ScriptBuilder.createInputScript(
> transactionSignature, ecKey)
>             }
> }
> val serializedSignedTx = tx.bitcoinSerialize()
> rpcService.sendToOnlineApp(serializedSignedTx)
>
> *Back in Online App:*
> val signedTx = Transaction(networkParams, serializedSignedTx)
> peerGroup.broadcastTransaction(signedTx)
>
> The broadcast seems to kill my PeerGroup connection to my RegTest bitcoin 
> node. I'm assuming because the transaction was invalid.
> Again, would be amazing if anyone could help me sort this out.
>
> Thanks
>

-- 
You received this message because you are subscribed to the Google Groups 
"bitcoinj" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to bitcoinj+unsubscr...@googlegroups.com.
For more options, visit https://groups.google.com/d/optout.

Reply via email to