org.bitcoinj.core.Address.isP2SHAddress()方法的使用及代码示例

x33g5p2x  于2022-01-16 转载在 其他  
字(9.9k)|赞(0)|评价(0)|浏览(124)

本文整理了Java中org.bitcoinj.core.Address.isP2SHAddress()方法的一些代码示例,展示了Address.isP2SHAddress()的具体用法。这些代码示例主要来源于Github/Stackoverflow/Maven等平台,是从一些精选项目中提取出来的代码,具有较强的参考意义,能在一定程度帮忙到你。Address.isP2SHAddress()方法的具体详情如下:
包路径:org.bitcoinj.core.Address
类名称:Address
方法名:isP2SHAddress

Address.isP2SHAddress介绍

[英]Returns true if this address is a Pay-To-Script-Hash (P2SH) address. See also https://github.com/bitcoin/bips/blob/master/bip-0013.mediawiki: Address Format for pay-to-script-hash
[中]如果此地址是付费脚本哈希(P2SH)地址,则返回true。另见https://github.com/bitcoin/bips/blob/master/bip-0013.mediawiki:支付到脚本哈希的地址格式

代码示例

代码示例来源:origin: cash.bitcoinj/bitcoinj-core

  1. /** If the given P2SH address is "current", advance it to a new one. */
  2. private void maybeMarkCurrentAddressAsUsed(Address address) {
  3. checkArgument(address.isP2SHAddress());
  4. for (Map.Entry<KeyChain.KeyPurpose, Address> entry : currentAddresses.entrySet()) {
  5. if (entry.getValue() != null && entry.getValue().equals(address)) {
  6. log.info("Marking P2SH address as used: {}", address);
  7. currentAddresses.put(entry.getKey(), freshAddress(entry.getKey()));
  8. return;
  9. }
  10. }
  11. }

代码示例来源:origin: HashEngineering/dashj

  1. /** If the given P2SH address is "current", advance it to a new one. */
  2. private void maybeMarkCurrentAddressAsUsed(Address address) {
  3. checkArgument(address.isP2SHAddress());
  4. for (Map.Entry<KeyChain.KeyPurpose, Address> entry : currentAddresses.entrySet()) {
  5. if (entry.getValue() != null && entry.getValue().equals(address)) {
  6. log.info("Marking P2SH address as used: {}", address);
  7. currentAddresses.put(entry.getKey(), freshAddress(entry.getKey()));
  8. return;
  9. }
  10. }
  11. }

代码示例来源:origin: greenaddress/GreenBits

  1. /** If the given P2SH address is "current", advance it to a new one. */
  2. private void maybeMarkCurrentAddressAsUsed(Address address) {
  3. checkArgument(address.isP2SHAddress());
  4. for (Map.Entry<KeyChain.KeyPurpose, Address> entry : currentAddresses.entrySet()) {
  5. if (entry.getValue() != null && entry.getValue().equals(address)) {
  6. log.info("Marking P2SH address as used: {}", address);
  7. currentAddresses.put(entry.getKey(), freshAddress(entry.getKey()));
  8. return;
  9. }
  10. }
  11. }

代码示例来源:origin: fr.acinq/bitcoinj-core

  1. /** If the given P2SH address is "current", advance it to a new one. */
  2. private void maybeMarkCurrentAddressAsUsed(Address address) {
  3. checkArgument(address.isP2SHAddress());
  4. for (Map.Entry<KeyChain.KeyPurpose, Address> entry : currentAddresses.entrySet()) {
  5. if (entry.getValue() != null && entry.getValue().equals(address)) {
  6. log.info("Marking P2SH address as used: {}", address);
  7. currentAddresses.put(entry.getKey(), freshAddress(entry.getKey()));
  8. return;
  9. }
  10. }
  11. }

代码示例来源:origin: cash.bitcoinj/bitcoinj-core

  1. public void markP2SHAddressAsUsed(Address address) {
  2. checkArgument(address.isP2SHAddress());
  3. RedeemData data = findRedeemDataFromScriptHash(address.getHash160());
  4. if (data == null)
  5. return; // Not our P2SH address.
  6. for (ECKey key : data.keys) {
  7. for (DeterministicKeyChain chain : chains) {
  8. DeterministicKey k = chain.findKeyFromPubKey(key.getPubKey());
  9. if (k == null) continue;
  10. chain.markKeyAsUsed(k);
  11. maybeMarkCurrentAddressAsUsed(address);
  12. }
  13. }
  14. }

代码示例来源:origin: greenaddress/GreenBits

  1. public void markP2SHAddressAsUsed(Address address) {
  2. checkArgument(address.isP2SHAddress());
  3. RedeemData data = findRedeemDataFromScriptHash(address.getHash160());
  4. if (data == null)
  5. return; // Not our P2SH address.
  6. for (ECKey key : data.keys) {
  7. for (DeterministicKeyChain chain : chains) {
  8. DeterministicKey k = chain.findKeyFromPubKey(key.getPubKey());
  9. if (k == null) continue;
  10. chain.markKeyAsUsed(k);
  11. maybeMarkCurrentAddressAsUsed(address);
  12. }
  13. }
  14. }

代码示例来源:origin: HashEngineering/dashj

  1. public void markP2SHAddressAsUsed(Address address) {
  2. checkArgument(address.isP2SHAddress());
  3. RedeemData data = findRedeemDataFromScriptHash(address.getHash160());
  4. if (data == null)
  5. return; // Not our P2SH address.
  6. for (ECKey key : data.keys) {
  7. for (DeterministicKeyChain chain : chains) {
  8. DeterministicKey k = chain.findKeyFromPubKey(key.getPubKey());
  9. if (k == null) continue;
  10. chain.markKeyAsUsed(k);
  11. maybeMarkCurrentAddressAsUsed(address);
  12. }
  13. }
  14. }

代码示例来源:origin: fr.acinq/bitcoinj-core

  1. public void markP2SHAddressAsUsed(Address address) {
  2. checkArgument(address.isP2SHAddress());
  3. RedeemData data = findRedeemDataFromScriptHash(address.getHash160());
  4. if (data == null)
  5. return; // Not our P2SH address.
  6. for (ECKey key : data.keys) {
  7. for (DeterministicKeyChain chain : chains) {
  8. DeterministicKey k = chain.findKeyFromPubKey(key.getPubKey());
  9. if (k == null) continue;
  10. chain.markKeyAsUsed(k);
  11. maybeMarkCurrentAddressAsUsed(address);
  12. if (data.isP2SHofP2WPKH) maybeMarkCurrentKeyAsUsed(k);
  13. }
  14. }
  15. }

代码示例来源:origin: greenaddress/GreenBits

  1. @Test
  2. public void stringification() throws Exception {
  3. // Test a testnet address.
  4. Address a = new Address(testParams, HEX.decode("fda79a24e50ff70ff42f7d89585da5bd19d9e5cc"));
  5. assertEquals("n4eA2nbYqErp7H6jebchxAN59DmNpksexv", a.toString());
  6. assertFalse(a.isP2SHAddress());
  7. Address b = new Address(mainParams, HEX.decode("4a22c3c4cbb31e4d03b15550636762bda0baf85a"));
  8. assertEquals("17kzeh4N8g49GFvdDzSf8PjaPfyoD1MndL", b.toString());
  9. assertFalse(b.isP2SHAddress());
  10. }

代码示例来源:origin: Multibit-Legacy/multibit-hardware

  1. if (address.isP2SHAddress()) {
  2. outputScriptType = TrezorType.OutputScriptType.PAYTOSCRIPTHASH;
  3. } else {

代码示例来源:origin: Multibit-Legacy/multibit-hardware

  1. if (address.isP2SHAddress()) {
  2. outputScriptType = KeepKeyType.OutputScriptType.PAYTOSCRIPTHASH;
  3. } else {

代码示例来源:origin: HashEngineering/dashj

  1. /** Creates a scriptPubKey that encodes payment to the given address. */
  2. public static Script createOutputScript(Address to) {
  3. if (to.isP2SHAddress()) {
  4. // OP_HASH160 <scriptHash> OP_EQUAL
  5. return new ScriptBuilder()
  6. .op(OP_HASH160)
  7. .data(to.getHash160())
  8. .op(OP_EQUAL)
  9. .build();
  10. } else {
  11. // OP_DUP OP_HASH160 <pubKeyHash> OP_EQUALVERIFY OP_CHECKSIG
  12. return new ScriptBuilder()
  13. .op(OP_DUP)
  14. .op(OP_HASH160)
  15. .data(to.getHash160())
  16. .op(OP_EQUALVERIFY)
  17. .op(OP_CHECKSIG)
  18. .build();
  19. }
  20. }

代码示例来源:origin: fr.acinq/bitcoinj-core

  1. /** Creates a scriptPubKey that encodes payment to the given address. */
  2. public static Script createOutputScript(Address to) {
  3. if (to.isP2SHAddress()) {
  4. // OP_HASH160 <scriptHash> OP_EQUAL
  5. return new ScriptBuilder()
  6. .op(OP_HASH160)
  7. .data(to.getHash160())
  8. .op(OP_EQUAL)
  9. .build();
  10. } else {
  11. // OP_DUP OP_HASH160 <pubKeyHash> OP_EQUALVERIFY OP_CHECKSIG
  12. return new ScriptBuilder()
  13. .op(OP_DUP)
  14. .op(OP_HASH160)
  15. .data(to.getHash160())
  16. .op(OP_EQUALVERIFY)
  17. .op(OP_CHECKSIG)
  18. .build();
  19. }
  20. }

代码示例来源:origin: greenaddress/GreenBits

  1. @Test
  2. public void currentP2SHAddress() throws Exception {
  3. group = createMarriedKeyChainGroup();
  4. Address a1 = group.currentAddress(KeyChain.KeyPurpose.RECEIVE_FUNDS);
  5. assertTrue(a1.isP2SHAddress());
  6. Address a2 = group.currentAddress(KeyChain.KeyPurpose.RECEIVE_FUNDS);
  7. assertEquals(a1, a2);
  8. Address a3 = group.currentAddress(KeyChain.KeyPurpose.CHANGE);
  9. assertNotEquals(a2, a3);
  10. }

代码示例来源:origin: cash.bitcoinj/bitcoinj-core

  1. /** Creates a scriptPubKey that encodes payment to the given address. */
  2. public static Script createOutputScript(Address to) {
  3. if (to.isP2SHAddress()) {
  4. // OP_HASH160 <scriptHash> OP_EQUAL
  5. return new ScriptBuilder()
  6. .op(OP_HASH160)
  7. .data(to.getHash160())
  8. .op(OP_EQUAL)
  9. .build();
  10. } else {
  11. // OP_DUP OP_HASH160 <pubKeyHash> OP_EQUALVERIFY OP_CHECKSIG
  12. return new ScriptBuilder()
  13. .op(OP_DUP)
  14. .op(OP_HASH160)
  15. .data(to.getHash160())
  16. .op(OP_EQUALVERIFY)
  17. .op(OP_CHECKSIG)
  18. .build();
  19. }
  20. }

代码示例来源:origin: greenaddress/GreenBits

  1. @Test
  2. public void freshAddress() throws Exception {
  3. group = createMarriedKeyChainGroup();
  4. Address a1 = group.freshAddress(KeyChain.KeyPurpose.RECEIVE_FUNDS);
  5. Address a2 = group.freshAddress(KeyChain.KeyPurpose.RECEIVE_FUNDS);
  6. assertTrue(a1.isP2SHAddress());
  7. assertNotEquals(a1, a2);
  8. group.getBloomFilterElementCount();
  9. assertEquals(((group.getLookaheadSize() + group.getLookaheadThreshold()) * 2) // * 2 because of internal/external
  10. + (2 - group.getLookaheadThreshold()) // keys issued
  11. + group.getActiveKeyChain().getAccountPath().size() + 3 /* master, account, int, ext */, group.numKeys());
  12. Address a3 = group.currentAddress(KeyChain.KeyPurpose.RECEIVE_FUNDS);
  13. assertEquals(a2, a3);
  14. }

代码示例来源:origin: Multibit-Legacy/multibit-hardware

  1. if (address.isP2SHAddress()) {

代码示例来源:origin: Multibit-Legacy/multibit-hardware

  1. if (address.isP2SHAddress()) {

代码示例来源:origin: greenaddress/GreenBits

  1. /** Creates a scriptPubKey that encodes payment to the given address. */
  2. public static Script createOutputScript(Address to) {
  3. if (to.isP2SHAddress()) {
  4. // OP_HASH160 <scriptHash> OP_EQUAL
  5. return new ScriptBuilder()
  6. .op(OP_HASH160)
  7. .data(to.getHash160())
  8. .op(OP_EQUAL)
  9. .build();
  10. } else if (to.isP2WPKHAddress() || to.isP2WSHAddress()) {
  11. return new ScriptBuilder()
  12. .smallNum(0)
  13. .data(to.getHash())
  14. .build();
  15. } else {
  16. // OP_DUP OP_HASH160 <pubKeyHash> OP_EQUALVERIFY OP_CHECKSIG
  17. return new ScriptBuilder()
  18. .op(OP_DUP)
  19. .op(OP_HASH160)
  20. .data(to.getHash160())
  21. .op(OP_EQUALVERIFY)
  22. .op(OP_CHECKSIG)
  23. .build();
  24. }
  25. }

代码示例来源:origin: greenaddress/GreenBits

  1. @Test
  2. public void p2shAddress() throws Exception {
  3. // Test that we can construct P2SH addresses
  4. Address mainNetP2SHAddress = Address.fromBase58(MainNetParams.get(), "35b9vsyH1KoFT5a5KtrKusaCcPLkiSo1tU");
  5. assertEquals(mainNetP2SHAddress.version, MainNetParams.get().p2shHeader);
  6. assertTrue(mainNetP2SHAddress.isP2SHAddress());
  7. Address testNetP2SHAddress = Address.fromBase58(TestNet3Params.get(), "2MuVSxtfivPKJe93EC1Tb9UhJtGhsoWEHCe");
  8. assertEquals(testNetP2SHAddress.version, TestNet3Params.get().p2shHeader);
  9. assertTrue(testNetP2SHAddress.isP2SHAddress());
  10. // Test that we can determine what network a P2SH address belongs to
  11. NetworkParameters mainNetParams = Address.getParametersFromAddress("35b9vsyH1KoFT5a5KtrKusaCcPLkiSo1tU");
  12. assertEquals(MainNetParams.get().getId(), mainNetParams.getId());
  13. NetworkParameters testNetParams = Address.getParametersFromAddress("2MuVSxtfivPKJe93EC1Tb9UhJtGhsoWEHCe");
  14. assertEquals(TestNet3Params.get().getId(), testNetParams.getId());
  15. // Test that we can convert them from hashes
  16. byte[] hex = HEX.decode("2ac4b0b501117cc8119c5797b519538d4942e90e");
  17. Address a = Address.fromP2SHHash(mainParams, hex);
  18. assertEquals("35b9vsyH1KoFT5a5KtrKusaCcPLkiSo1tU", a.toString());
  19. Address b = Address.fromP2SHHash(testParams, HEX.decode("18a0e827269b5211eb51a4af1b2fa69333efa722"));
  20. assertEquals("2MuVSxtfivPKJe93EC1Tb9UhJtGhsoWEHCe", b.toString());
  21. Address c = Address.fromP2SHScript(mainParams, ScriptBuilder.createP2SHOutputScript(hex));
  22. assertEquals("35b9vsyH1KoFT5a5KtrKusaCcPLkiSo1tU", c.toString());
  23. }

相关文章