当前位置: 首页>>代码示例>>Java>>正文


Java ScriptOpCodes类代码示例

本文整理汇总了Java中org.bitcoinj.script.ScriptOpCodes的典型用法代码示例。如果您正苦于以下问题:Java ScriptOpCodes类的具体用法?Java ScriptOpCodes怎么用?Java ScriptOpCodes使用的例子?那么, 这里精选的类代码示例或许可以为您提供帮助。


ScriptOpCodes类属于org.bitcoinj.script包,在下文中一共展示了ScriptOpCodes类的15个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的Java代码示例。

示例1: CLTVScriptPair

import org.bitcoinj.script.ScriptOpCodes; //导入依赖的package包/类
CLTVScriptPair(ECKey newPsynymKey, long expireDate) {
	ScriptBuilder sb = new ScriptBuilder();
	
	//the part that freezes the tx output, special 5 byte number
	sb.data(encodeExpireDate(expireDate));
	//sb.smallNum(num)
	sb.op(ScriptOpCodes.OP_CHECKLOCKTIMEVERIFY);
	sb.op(ScriptOpCodes.OP_DROP);
	
	//standard p2pkh part
	sb.op(ScriptOpCodes.OP_DUP);
	sb.op(ScriptOpCodes.OP_HASH160);
	sb.data(newPsynymKey.getPubKeyHash());
	sb.op(ScriptOpCodes.OP_EQUALVERIFY);
	sb.op(ScriptOpCodes.OP_CHECKSIG);
	
	this.redeemScript = sb.build();
	System.out.println("cltvscripiar yielded a locktime of " + new Date(getLockTime()*1000));
	assert(expireDate == getLockTime());

	
	this.pubKeyScript = ScriptBuilder.createP2SHOutputScript(redeemScript);
	this.pubkeyHash = newPsynymKey.getPubKeyHash();
	this.pubkey = newPsynymKey.getPubKey();
}
 
开发者ID:kit-tm,项目名称:bitnym,代码行数:26,代码来源:CLTVScriptPair.java

示例2: buildScript

import org.bitcoinj.script.ScriptOpCodes; //导入依赖的package包/类
public Script buildScript() {
	ScriptBuilder sbuilder = new ScriptBuilder();
	sbuilder = sbuilder.op(ScriptOpCodes.OP_RETURN);
	ScriptChunk protocolIdentifier = new ScriptChunk((byte) magicNumber.length, magicNumber);
	sbuilder = sbuilder.addChunk(protocolIdentifier);
	
	byte[] data;
	ByteBuffer result = ByteBuffer.allocate(8 + this.onionAddress.getBytes().length);
	result.put(this.onionAddress.getBytes());
	result.putInt(this.mixValue);
	result.putInt(this.acceptableLossValue);
	data = result.array();
	System.out.println("length of data arary " + data.length);
	
	ScriptChunk dataChunk = new ScriptChunk(data.length, data);
	sbuilder = sbuilder.addChunk(dataChunk);
	
	return sbuilder.build();
}
 
开发者ID:kit-tm,项目名称:bitnym,代码行数:20,代码来源:BroadcastAnnouncement.java

示例3: createGenesis

import org.bitcoinj.script.ScriptOpCodes; //导入依赖的package包/类
private static Block createGenesis(NetworkParameters n) {
    Block genesisBlock = new Block(n);
    //genesisBlock.setVersion(CoinDefinition.genesisBlockVersion);
    Transaction t = new Transaction(n);
    try {
        // A script containing the difficulty bits and the following message:
        //

        //   coin dependent
        byte[] bytes = Hex.decode(CoinDefinition.genesisTxInBytes);
        //byte[] bytes = Hex.decode("04ffff001d0104294469676974616c636f696e2c20412043757272656e637920666f722061204469676974616c20416765");
        t.addInput(new TransactionInput(n, t, bytes));
        ByteArrayOutputStream scriptPubKeyBytes = new ByteArrayOutputStream();
        Script.writeBytes(scriptPubKeyBytes, Hex.decode(CoinDefinition.genesisTxOutBytes));
                //("04678afdb0fe5548271967f1a67130b7105cd6a828e03909a67962e0ea1f61deb649f6bc3f4cef38c4f35504e51ec112de5c384df7ba0b8d578a4c702b6bf11d5f"));
        scriptPubKeyBytes.write(ScriptOpCodes.OP_CHECKSIG);
        t.addOutput(new TransactionOutput(n, t, Coin.valueOf(CoinDefinition.genesisBlockValue, 0), scriptPubKeyBytes.toByteArray()));
    } catch (Exception e) {
        // Cannot happen.
        throw new RuntimeException(e);
    }
    genesisBlock.addTransaction(t);
    return genesisBlock;
}
 
开发者ID:HashEngineering,项目名称:namecoinj,代码行数:25,代码来源:NetworkParameters.java

示例4: createGenesis

import org.bitcoinj.script.ScriptOpCodes; //导入依赖的package包/类
private static AltcoinBlock createGenesis(NetworkParameters params) {
    AltcoinBlock genesisBlock = new AltcoinBlock(params, Block.BLOCK_VERSION_GENESIS);
    Transaction t = new Transaction(params);
    try {
        byte[] bytes = Utils.HEX.decode
                ("04ffff001d0104084e696e746f6e646f");
        t.addInput(new TransactionInput(params, t, bytes));
        ByteArrayOutputStream scriptPubKeyBytes = new ByteArrayOutputStream();
        Script.writeBytes(scriptPubKeyBytes, Utils.HEX.decode
                ("040184710fa689ad5023690c80f3a49c8f13f8d45b8c857fbcbc8bc4a8e4d3eb4b10f4d4604fa08dce601aaf0f470216fe1b51850b4acf21b179c45070ac7b03a9"));
        scriptPubKeyBytes.write(ScriptOpCodes.OP_CHECKSIG);
        t.addOutput(new TransactionOutput(params, t, COIN.multiply(88), scriptPubKeyBytes.toByteArray()));
    } catch (Exception e) {
        // Cannot happen.
        throw new RuntimeException(e);
    }
    genesisBlock.addTransaction(t);
    return genesisBlock;
}
 
开发者ID:dogecoin,项目名称:libdohj,代码行数:20,代码来源:AbstractDogecoinParams.java

示例5: createGenesis

import org.bitcoinj.script.ScriptOpCodes; //导入依赖的package包/类
private static AltcoinBlock createGenesis(NetworkParameters params) {
    AltcoinBlock genesisBlock = new AltcoinBlock(params, Block.BLOCK_VERSION_GENESIS);
    Transaction t = new Transaction(params);
    try {
        byte[] bytes = Hex.decode
                ("04ffff001d0104404e592054696d65732030352f4f63742f32303131205374657665204a6f62732c204170706c65e280997320566973696f6e6172792c2044696573206174203536");
        t.addInput(new TransactionInput(params, t, bytes));
        ByteArrayOutputStream scriptPubKeyBytes = new ByteArrayOutputStream();
        Script.writeBytes(scriptPubKeyBytes, Hex.decode
                ("040184710fa689ad5023690c80f3a49c8f13f8d45b8c857fbcbc8bc4a8e4d3eb4b10f4d4604fa08dce601aaf0f470216fe1b51850b4acf21b179c45070ac7b03a9"));
        scriptPubKeyBytes.write(ScriptOpCodes.OP_CHECKSIG);
        t.addOutput(new TransactionOutput(params, t, COIN.multiply(50), scriptPubKeyBytes.toByteArray()));
    } catch (Exception e) {
        // Cannot happen.
        throw new RuntimeException(e);
    }
    genesisBlock.addTransaction(t);
    genesisBlock.setTime(1317798646L);
    genesisBlock.setDifficultyTarget(0x1e0ffff0L);
    genesisBlock.setNonce(385270584);
    return genesisBlock;
}
 
开发者ID:dogecoin,项目名称:libdohj,代码行数:23,代码来源:LitecoinTestNet3Params.java

示例6: createGenesis

import org.bitcoinj.script.ScriptOpCodes; //导入依赖的package包/类
private static AltcoinBlock createGenesis(NetworkParameters params) {
    AltcoinBlock genesisBlock = new AltcoinBlock(params, Block.BLOCK_VERSION_GENESIS);
    Transaction t = new Transaction(params);
    try {
        byte[] bytes = Hex.decode
                ("04ffff001d0104404e592054696d65732030352f4f63742f32303131205374657665204a6f62732c204170706c65e280997320566973696f6e6172792c2044696573206174203536");
        t.addInput(new TransactionInput(params, t, bytes));
        ByteArrayOutputStream scriptPubKeyBytes = new ByteArrayOutputStream();
        Script.writeBytes(scriptPubKeyBytes, Hex.decode
                ("040184710fa689ad5023690c80f3a49c8f13f8d45b8c857fbcbc8bc4a8e4d3eb4b10f4d4604fa08dce601aaf0f470216fe1b51850b4acf21b179c45070ac7b03a9"));
        scriptPubKeyBytes.write(ScriptOpCodes.OP_CHECKSIG);
        t.addOutput(new TransactionOutput(params, t, COIN.multiply(50), scriptPubKeyBytes.toByteArray()));
    } catch (Exception e) {
        // Cannot happen.
        throw new RuntimeException(e);
    }
    genesisBlock.addTransaction(t);
    genesisBlock.setTime(1317972665L);
    genesisBlock.setDifficultyTarget(0x1e0ffff0L);
    genesisBlock.setNonce(2084524493);
    return genesisBlock;
}
 
开发者ID:dogecoin,项目名称:libdohj,代码行数:23,代码来源:LitecoinMainNetParams.java

示例7: createGenesis

import org.bitcoinj.script.ScriptOpCodes; //导入依赖的package包/类
private static AltcoinBlock createGenesis(NetworkParameters params) {
    AltcoinBlock genesisBlock = new AltcoinBlock(params, Block.BLOCK_VERSION_GENESIS);
    Transaction t = new Transaction(params);
    try {
        // "... choose what comes next.  Lives of your own, or a return to chains. -- V"
        byte[] bytes = Utils.HEX.decode
                ("04ff7f001c020a024b2e2e2e2063686f6f7365207768617420636f6d6573206e6578742e20204c69766573206f6620796f7572206f776e2c206f7220612072657475726e20746f20636861696e732e202d2d2056");
        t.addInput(new TransactionInput(params, t, bytes));
        ByteArrayOutputStream scriptPubKeyBytes = new ByteArrayOutputStream();
        Script.writeBytes(scriptPubKeyBytes, Utils.HEX.decode
                ("04b620369050cd899ffbbc4e8ee51e8c4534a855bb463439d63d235d4779685d8b6f4870a238cf365ac94fa13ef9a2a22cd99d0d5ee86dcabcafce36c7acf43ce5"));
        scriptPubKeyBytes.write(ScriptOpCodes.OP_CHECKSIG);
        t.addOutput(new TransactionOutput(params, t, COIN.multiply(50), scriptPubKeyBytes.toByteArray()));
    } catch (Exception e) {
        // Cannot happen.
        throw new RuntimeException(e);
    }
    genesisBlock.addTransaction(t);
    return genesisBlock;
}
 
开发者ID:dogecoin,项目名称:libdohj,代码行数:21,代码来源:AbstractNamecoinParams.java

示例8: createGenesis

import org.bitcoinj.script.ScriptOpCodes; //导入依赖的package包/类
private static Block createGenesis(NetworkParameters n) {
    Block genesisBlock = new Block(n);
    Transaction t = new Transaction(n);
    try {
        // A script containing the difficulty bits and the following message:
        //
        //   "The Times 03/Jan/2009 Chancellor on brink of second bailout for banks"
        byte[] bytes = Utils.HEX.decode
                ("04ffff001d0104455468652054696d65732030332f4a616e2f32303039204368616e63656c6c6f72206f6e206272696e6b206f66207365636f6e64206261696c6f757420666f722062616e6b73");
        t.addInput(new TransactionInput(n, t, bytes));
        ByteArrayOutputStream scriptPubKeyBytes = new ByteArrayOutputStream();
        Script.writeBytes(scriptPubKeyBytes, Utils.HEX.decode
                ("04678afdb0fe5548271967f1a67130b7105cd6a828e03909a67962e0ea1f61deb649f6bc3f4cef38c4f35504e51ec112de5c384df7ba0b8d578a4c702b6bf11d5f"));
        scriptPubKeyBytes.write(ScriptOpCodes.OP_CHECKSIG);
        t.addOutput(new TransactionOutput(n, t, FIFTY_COINS, scriptPubKeyBytes.toByteArray()));
    } catch (Exception e) {
        // Cannot happen.
        throw new RuntimeException(e);
    }
    genesisBlock.addTransaction(t);
    return genesisBlock;
}
 
开发者ID:egordon,项目名称:CoinJoin,代码行数:23,代码来源:NetworkParameters.java

示例9: createGenesis

import org.bitcoinj.script.ScriptOpCodes; //导入依赖的package包/类
private static Block createGenesis(NetworkParameters n) {
    Block genesisBlock = new Block(n);
    Transaction t = new Transaction(n);
    try {
        // A script containing the difficulty bits and the following message:
        //

        //   coin dependent
        byte[] bytes = Hex.decode(CoinDefinition.genesisTxInBytes);
        //byte[] bytes = Hex.decode("04ffff001d0104294469676974616c636f696e2c20412043757272656e637920666f722061204469676974616c20416765");
        t.addInput(new TransactionInput(n, t, bytes));
        ByteArrayOutputStream scriptPubKeyBytes = new ByteArrayOutputStream();
        Script.writeBytes(scriptPubKeyBytes, Hex.decode(CoinDefinition.genesisTxOutBytes));
                //("04678afdb0fe5548271967f1a67130b7105cd6a828e03909a67962e0ea1f61deb649f6bc3f4cef38c4f35504e51ec112de5c384df7ba0b8d578a4c702b6bf11d5f"));
        scriptPubKeyBytes.write(ScriptOpCodes.OP_CHECKSIG);
        t.addOutput(new TransactionOutput(n, t, Coin.valueOf(CoinDefinition.genesisBlockValue, 0), scriptPubKeyBytes.toByteArray()));
    } catch (Exception e) {
        // Cannot happen.
        throw new RuntimeException(e);
    }
    genesisBlock.addTransaction(t);
    return genesisBlock;
}
 
开发者ID:DigiByte-Team,项目名称:digibytej-alice,代码行数:24,代码来源:NetworkParameters.java

示例10: parseScript

import org.bitcoinj.script.ScriptOpCodes; //导入依赖的package包/类
public static Script parseScript(String script) {
    StringTokenizer tokenizer = new StringTokenizer(script);
    ScriptBuilder builder = new ScriptBuilder();
    while (tokenizer.hasMoreTokens()) {
        String token = tokenizer.nextToken();
        token = token.replace("OP_", "");
        Integer opCode = ScriptOpCodes.getOpCode(token);
        if (opCode != ScriptOpCodes.OP_INVALIDOPCODE) {
            builder.op(opCode);
            continue;
        }
        Integer smallNum = null;
        try {
            smallNum = Integer.parseInt(token);
            if (smallNum <= 16) {
                builder.smallNum(smallNum);
                continue;
            }
        } catch (NumberFormatException e) {

        }

        builder.data(Hex.decode(token));
    }
    return builder.build();
}
 
开发者ID:GemHQ,项目名称:round-java,代码行数:27,代码来源:ScriptWrapper.java

示例11: createGenesis

import org.bitcoinj.script.ScriptOpCodes; //导入依赖的package包/类
private static Block createGenesis(NetworkParameters n) {
    Block genesisBlock = new Block(n, Block.BLOCK_VERSION_GENESIS);
    Transaction t = new Transaction(n);
    try {
        // A script containing the difficulty bits and the following message:
        //
        //   coin dependent
        byte[] bytes = Utils.HEX.decode(CoinDefinition.genesisTxInBytes);

        t.addInput(new TransactionInput(n, t, bytes));
        ByteArrayOutputStream scriptPubKeyBytes = new ByteArrayOutputStream();
        Script.writeBytes(scriptPubKeyBytes, Utils.HEX.decode(CoinDefinition.genesisTxOutBytes));

        scriptPubKeyBytes.write(ScriptOpCodes.OP_CHECKSIG);
        t.addOutput(new TransactionOutput(n, t, Coin.valueOf(CoinDefinition.genesisBlockValue, 0), scriptPubKeyBytes.toByteArray()));
    } catch (Exception e) {
        // Cannot happen.
        throw new RuntimeException(e);
    }
    genesisBlock.addTransaction(t);
    return genesisBlock;
}
 
开发者ID:HashEngineering,项目名称:dashj,代码行数:23,代码来源:NetworkParameters.java

示例12: testUpdateLength

import org.bitcoinj.script.ScriptOpCodes; //导入依赖的package包/类
@Test
public void testUpdateLength() {
    NetworkParameters params = UnitTestParams.get();
    Block block = params.getGenesisBlock().createNextBlockWithCoinbase(Block.BLOCK_VERSION_GENESIS, new ECKey().getPubKey(), Block.BLOCK_HEIGHT_GENESIS);
    assertEquals(block.bitcoinSerialize().length, block.length);
    final int origBlockLen = block.length;
    Transaction tx = new Transaction(params);
    // this is broken until the transaction has > 1 input + output (which is required anyway...)
    //assertTrue(tx.length == tx.bitcoinSerialize().length && tx.length == 8);
    byte[] outputScript = new byte[10];
    Arrays.fill(outputScript, (byte) ScriptOpCodes.OP_FALSE);
    tx.addOutput(new TransactionOutput(params, null, Coin.SATOSHI, outputScript));
    tx.addInput(new TransactionInput(params, null, new byte[] {(byte) ScriptOpCodes.OP_FALSE},
            new TransactionOutPoint(params, 0, Sha256Hash.of(new byte[] { 1 }))));
    int origTxLength = 8 + 2 + 8 + 1 + 10 + 40 + 1 + 1;
    assertEquals(tx.unsafeBitcoinSerialize().length, tx.length);
    assertEquals(origTxLength, tx.length);
    block.addTransaction(tx);
    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);
    block.getTransactions().get(1).getInputs().get(0).clearScriptBytes();
    assertEquals(block.length, block.unsafeBitcoinSerialize().length);
    assertEquals(block.length, origBlockLen + tx.length);
    assertEquals(tx.length, origTxLength - 1);
    block.getTransactions().get(1).addInput(new TransactionInput(params, null, new byte[] {(byte) ScriptOpCodes.OP_FALSE},
            new TransactionOutPoint(params, 0, Sha256Hash.of(new byte[] { 1 }))));
    assertEquals(block.length, origBlockLen + tx.length);
    assertEquals(tx.length, origTxLength + 41); // - 1 + 40 + 1 + 1
}
 
开发者ID:Grant-Redmond,项目名称:cryptwallet,代码行数:33,代码来源:BlockTest.java

示例13: testUpdateLength

import org.bitcoinj.script.ScriptOpCodes; //导入依赖的package包/类
@Test
public void testUpdateLength() {
    NetworkParameters params = UnitTestParams.get();
    Block block = params.getGenesisBlock().createNextBlockWithCoinbase(new ECKey().getPubKey());
    assertEquals(block.bitcoinSerialize().length, block.length);
    final int origBlockLen = block.length;
    Transaction tx = new Transaction(params);
    // this is broken until the transaction has > 1 input + output (which is required anyway...)
    //assertTrue(tx.length == tx.bitcoinSerialize().length && tx.length == 8);
    byte[] outputScript = new byte[10];
    Arrays.fill(outputScript, (byte) ScriptOpCodes.OP_FALSE);
    tx.addOutput(new TransactionOutput(params, null, Coin.SATOSHI, outputScript));
    tx.addInput(new TransactionInput(params, null, new byte[] {(byte) ScriptOpCodes.OP_FALSE},
            new TransactionOutPoint(params, 0, Sha256Hash.create(new byte[] {1}))));
    int origTxLength = 8 + 2 + 8 + 1 + 10 + 40 + 1 + 1;
    assertEquals(tx.bitcoinSerialize().length, tx.length);
    assertEquals(origTxLength, tx.length);
    block.addTransaction(tx);
    assertEquals(block.bitcoinSerialize().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);
    block.getTransactions().get(1).getInputs().get(0).setScriptBytes(new byte[] {});
    assertEquals(block.length, block.bitcoinSerialize().length);
    assertEquals(block.length, origBlockLen + tx.length);
    assertEquals(tx.length, origTxLength - 1);
    block.getTransactions().get(1).addInput(new TransactionInput(params, null, new byte[] {(byte) ScriptOpCodes.OP_FALSE},
            new TransactionOutPoint(params, 0, Sha256Hash.create(new byte[] {1}))));
    assertEquals(block.length, origBlockLen + tx.length);
    assertEquals(tx.length, origTxLength + 41); // - 1 + 40 + 1 + 1
}
 
开发者ID:HashEngineering,项目名称:namecoinj,代码行数:33,代码来源:BlockTest.java

示例14: sendDustAndOpReturnWithoutValueTest

import org.bitcoinj.script.ScriptOpCodes; //导入依赖的package包/类
@Test(expected = Wallet.DustySendRequested.class)
public void sendDustAndOpReturnWithoutValueTest() throws Exception {
    // Tests sending dust and OP_RETURN without value, should throw DustySendRequested because sending sending dust is not allowed in any case.
    receiveATransactionAmount(wallet, myAddress, Coin.COIN);
    Transaction tx = new Transaction(params);
    Address notMyAddr = new ECKey().toAddress(params);
    Script script = new ScriptBuilder().op(ScriptOpCodes.OP_RETURN).data("hello world!".getBytes()).build();
    tx.addOutput(Coin.ZERO, script);
    tx.addOutput(Coin.SATOSHI, notMyAddr);
    SendRequest request = Wallet.SendRequest.forTx(tx);
    wallet.completeTx(request);
}
 
开发者ID:HashEngineering,项目名称:namecoinj,代码行数:13,代码来源:WalletTest.java

示例15: sendDustAndMessageWithValueTest

import org.bitcoinj.script.ScriptOpCodes; //导入依赖的package包/类
@Test(expected = Wallet.DustySendRequested.class)
public void sendDustAndMessageWithValueTest() throws Exception {
    //Tests sending dust and OP_RETURN with value, should throw DustySendRequested
    receiveATransaction(wallet, myAddress);
    Transaction tx = new Transaction(params);
    Address notMyAddr = new ECKey().toAddress(params);
    Script script = new ScriptBuilder().op(ScriptOpCodes.OP_RETURN).data("hello world!".getBytes()).build();
    tx.addOutput(Coin.CENT, script);
    tx.addOutput(Transaction.MIN_NONDUST_OUTPUT.subtract(SATOSHI), notMyAddr);
    SendRequest request = Wallet.SendRequest.forTx(tx);
    wallet.completeTx(request);
}
 
开发者ID:HashEngineering,项目名称:namecoinj,代码行数:13,代码来源:WalletTest.java


注:本文中的org.bitcoinj.script.ScriptOpCodes类示例由纯净天空整理自Github/MSDocs等开源代码及文档管理平台,相关代码片段筛选自各路编程大神贡献的开源项目,源码版权归原作者所有,传播和使用请参考对应项目的License;未经允许,请勿转载。