/** Clear input scripts, e.g. in preparation for signing. */ public void clearScriptBytes() { setScriptBytes(TransactionInput.EMPTY_ARRAY); }
/** Clear input scripts, e.g. in preparation for signing. */ public void clearScriptBytes() { setScriptBytes(TransactionInput.EMPTY_ARRAY); }
/** Clear input scripts, e.g. in preparation for signing. */ public void clearScriptBytes() { setScriptBytes(TransactionInput.EMPTY_ARRAY); }
/** Clear input scripts, e.g. in preparation for signing. */ public void clearScriptBytes() { setScriptBytes(TransactionInput.EMPTY_ARRAY); }
/** Set the given program as the scriptSig that is supposed to satisfy the connected output script. */ public void setScriptSig(Script scriptSig) { this.scriptSig = new WeakReference<>(checkNotNull(scriptSig)); // TODO: This should all be cleaned up so we have a consistent internal representation. setScriptBytes(scriptSig.getProgram()); }
/** Set the given program as the scriptSig that is supposed to satisfy the connected output script. */ public void setScriptSig(Script scriptSig) { this.scriptSig = new WeakReference<Script>(checkNotNull(scriptSig)); // TODO: This should all be cleaned up so we have a consistent internal representation. setScriptBytes(scriptSig.getProgram()); }
/** Set the given program as the scriptSig that is supposed to satisfy the connected output script. */ public void setScriptSig(Script scriptSig) { this.scriptSig = new WeakReference<>(checkNotNull(scriptSig)); // TODO: This should all be cleaned up so we have a consistent internal representation. setScriptBytes(scriptSig.getProgram()); }
/** Set the given program as the scriptSig that is supposed to satisfy the connected output script. */ public void setScriptSig(Script scriptSig) { this.scriptSig = new WeakReference<Script>(checkNotNull(scriptSig)); // TODO: This should all be cleaned up so we have a consistent internal representation. setScriptBytes(scriptSig.getProgram()); }
input.setScriptBytes(connectedScript);
input.setScriptBytes(connectedScript);
input.setScriptBytes(connectedScript);
input.setScriptBytes(connectedScript);
@Test(expected = VerificationException.LargerThanMaxBlockSize.class) public void tooHuge() throws Exception { tx.getInput(0).setScriptBytes(new byte[Block.MAX_BLOCK_SIZE]); tx.verify(); }
@Test(expected = VerificationException.DuplicatedOutPoint.class) public void duplicateOutPoint() throws Exception { TransactionInput input = tx.getInput(0); input.setScriptBytes(new byte[1]); tx.addInput(input.duplicateDetached()); tx.verify(); }
/** * Native P2WPKH transaction. From BIP-143. */ @Test public void testNativeP2WPKH() { final byte[] unsignedTxBin = HEX.decode("0100000002fff7f7881a8099afa6940d42d1e7f6362bec38171ea3edf433541db4e4ad969f0000000000eeffffffef51e1b804cc89d182d279655c3aa89e815b1b309fe287d9b2b55d57b90ec68a0100000000ffffffff02202cb206000000001976a9148280b37df378db99f66f85c95a783a76ac7a6d5988ac9093510d000000001976a9143bde42dbee7e4dbe6a21b2d50ce2f0167faa815988ac11000000"); final Transaction tx = new Transaction(MainNetParams.get(), unsignedTxBin); final byte[] input0 = HEX.decode("4830450221008b9d1dc26ba6a9cb62127b02742fa9d754cd3bebf337f7a55d114c8e5cdd30be022040529b194ba3f9281a99f2b1c0a19c0489bc22ede944ccf4ecbab4cc618ef3ed01"); tx.getInput(0).setScriptBytes(input0); final Script scriptPubKey = new Script(HEX.decode("00141d0f172a0ecb48aee1be1f2687d2963ae33f71a1")); final Script scriptCode = scriptPubKey.scriptCode(); final ECKey prvKey = ECKey.fromPrivate(HEX.decode("619c335025c7f4012e556c2a58b2506e30b8511b53ade95ea316fd8c3286feb9")); final Coin value = Coin.valueOf(6,0); final byte[] expectedSigHash = HEX.decode("c37af31116d1b27caf68aae9e3ac82f1477929014d5b917657d0eb49478cb670"); final byte[] expectedSignature = HEX.decode("304402203609e17b84f6a7d30c80bfa610b5b4542f32a8a0d5447a12fb1366d7f01cc44a0220573a954c4518331561406f90300e8f3358f51928d43c212a8caed02de67eebee"); final byte[] signedTx = HEX.decode("01000000000102fff7f7881a8099afa6940d42d1e7f6362bec38171ea3edf433541db4e4ad969f00000000494830450221008b9d1dc26ba6a9cb62127b02742fa9d754cd3bebf337f7a55d114c8e5cdd30be022040529b194ba3f9281a99f2b1c0a19c0489bc22ede944ccf4ecbab4cc618ef3ed01eeffffffef51e1b804cc89d182d279655c3aa89e815b1b309fe287d9b2b55d57b90ec68a0100000000ffffffff02202cb206000000001976a9148280b37df378db99f66f85c95a783a76ac7a6d5988ac9093510d000000001976a9143bde42dbee7e4dbe6a21b2d50ce2f0167faa815988ac000247304402203609e17b84f6a7d30c80bfa610b5b4542f32a8a0d5447a12fb1366d7f01cc44a0220573a954c4518331561406f90300e8f3358f51928d43c212a8caed02de67eebee0121025476c2e83188368da1ff3e292e7acafcdb3566bb0ad253f62fc70f07aeee635711000000"); final Sha256Hash sigHash = tx.hashForSignatureWitness( 1, scriptCode, value, Transaction.SigHash.ALL, false); assertArrayEquals(expectedSigHash, sigHash.getBytes()); final TransactionSignature sig = tx.calculateWitnessSignature( 1, prvKey, scriptCode, value, Transaction.SigHash.ALL, false); assertArrayEquals(expectedSignature, sig.encodeToDER()); final TransactionWitness witness = new TransactionWitness(2); witness.setPush(0, sig.encodeToBitcoin()); witness.setPush(1, prvKey.getPubKey()); tx.setWitness(1, witness); assertArrayEquals(signedTx, tx.bitcoinSerialize()); tx.getInput(1).getScriptSig().correctlySpends( tx, 1, scriptPubKey, value, Script.ALL_VERIFY_FLAGS); }
final Transaction tx = new Transaction(MainNetParams.get(), unsignedTxBin); final byte[] input0 = Script.createInputScript(HEX.decode("304402200af4e47c9b9629dbecc21f73af989bdaa911f7e6f6c2e9394588a3aa68f81e9902204f3fcf6ade7e5abb1295b6774c8e0abd94ae62217367096bc02ee5e435b67da201")); tx.getInput(0).setScriptBytes(input0);
final ScriptBuilder sigScript = new ScriptBuilder(); sigScript.data(redeemScript.getProgram()); tx.getInput(0).setScriptBytes(sigScript.build().getProgram());
tx.getInput(0).setScriptBytes(new ScriptBuilder().data(redeemScript.getProgram()).build().getProgram()); final TransactionWitness witness = new TransactionWitness(8); witness.setPush(0, new byte[0]);
assertEquals(block.unsafeBitcoinSerialize().length, block.length); assertEquals(origBlockLen + tx.length, block.length); block.getTransactions().get(1).getInputs().get(0).setScriptBytes(new byte[] {(byte) ScriptOpCodes.OP_FALSE, (byte) ScriptOpCodes.OP_FALSE}); assertEquals(block.length, origBlockLen + tx.length); assertEquals(tx.length, origTxLength + 1);
b28.block.getTransactions().get(0).getInputs().get(0).setScriptBytes(coinbase); b30.block.getTransactions().get(0).getInputs().get(0).setScriptBytes(coinbase); input.setScriptBytes(scriptSig); input.setScriptBytes(scriptSig); b61.block.getTransactions().get(0).getInput(0).setScriptBytes(b60.block.getTransactions().get(0).getInput(0).getScriptBytes()); b61.block.unCache(); checkState(b61.block.getTransactions().get(0).equals(b60.block.getTransactions().get(0)));