org.web3j.utils.Numeric.hexStringToByteArray()方法的使用及代码示例

x33g5p2x  于2022-01-24 转载在 其他  
字(9.3k)|赞(0)|评价(0)|浏览(146)

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

Numeric.hexStringToByteArray介绍

暂无

代码示例

代码示例来源:origin: web3j/web3j

static <T extends Bytes> T decodeBytes(String input, int offset, Class<T> type) {
  try {
    String simpleName = type.getSimpleName();
    String[] splitName = simpleName.split(Bytes.class.getSimpleName());
    int length = Integer.parseInt(splitName[1]);
    int hexStringLength = length << 1;
    byte[] bytes = Numeric.hexStringToByteArray(
        input.substring(offset, offset + hexStringLength));
    return type.getConstructor(byte[].class).newInstance(bytes);
  } catch (NoSuchMethodException | SecurityException
      | InstantiationException | IllegalAccessException
      | IllegalArgumentException | InvocationTargetException e) {
    throw new UnsupportedOperationException(
        "Unable to create instance of " + type.getName(), e);
  }
}

代码示例来源:origin: web3j/web3j

public static byte[] nameHashAsBytes(String ensName) {
  return Numeric.hexStringToByteArray(nameHash(ensName));
}

代码示例来源:origin: web3j/web3j

static <T extends NumericType> T decodeNumeric(String input, Class<T> type) {
  try {
    byte[] inputByteArray = Numeric.hexStringToByteArray(input);
    int typeLengthAsBytes = getTypeLengthInBytes(type);
    byte[] resultByteArray = new byte[typeLengthAsBytes + 1];
    if (Int.class.isAssignableFrom(type) || Fixed.class.isAssignableFrom(type)) {
      resultByteArray[0] = inputByteArray[0];  // take MSB as sign bit
    }
    int valueOffset = Type.MAX_BYTE_LENGTH - typeLengthAsBytes;
    System.arraycopy(inputByteArray, valueOffset, resultByteArray, 1, typeLengthAsBytes);
    BigInteger numericValue = new BigInteger(resultByteArray);
    return type.getConstructor(BigInteger.class).newInstance(numericValue);
  } catch (NoSuchMethodException | SecurityException
      | InstantiationException | IllegalAccessException
      | IllegalArgumentException | InvocationTargetException e) {
    throw new UnsupportedOperationException(
        "Unable to create instance of " + type.getName(), e);
  }
}

代码示例来源:origin: web3j/web3j

static DynamicBytes decodeDynamicBytes(String input, int offset) {
  int encodedLength = decodeUintAsInt(input, offset);
  int hexStringEncodedLength = encodedLength << 1;
  int valueOffset = offset + MAX_BYTE_LENGTH_FOR_HEX_STRING;
  String data = input.substring(valueOffset,
      valueOffset + hexStringEncodedLength);
  byte[] bytes = Numeric.hexStringToByteArray(data);
  return new DynamicBytes(bytes);
}

代码示例来源:origin: web3j/web3j

public static String generateContractAddress(String address, BigInteger nonce) {
    byte[] result = generateContractAddress(Numeric.hexStringToByteArray(address), nonce);
    return Numeric.toHexString(result);
  }
}

代码示例来源:origin: web3j/web3j

/**
 * Keccak-256 hash function.
 *
 * @param hexInput hex encoded input data with optional 0x prefix
 * @return hash value as hex encoded string
 */
public static String sha3(String hexInput) {
  byte[] bytes = Numeric.hexStringToByteArray(hexInput);
  byte[] result = sha3(bytes);
  return Numeric.toHexString(result);
}

代码示例来源:origin: web3j/web3j

@Test
public void testHexStringToByteArray() {
  assertThat(Numeric.hexStringToByteArray(""), is(new byte[] { }));
  assertThat(Numeric.hexStringToByteArray("0"), is(new byte[] { 0 }));
  assertThat(Numeric.hexStringToByteArray("1"), is(new byte[] { 0x1 }));
  assertThat(Numeric.hexStringToByteArray(HEX_RANGE_STRING),
      is(HEX_RANGE_ARRAY));
  assertThat(Numeric.hexStringToByteArray("0x123"),
      is(new byte[] { 0x1, 0x23 }));
}

代码示例来源:origin: web3j/web3j

@Test
public void testSignMessage() {
  Sign.SignatureData signatureData = Sign.signPrefixedMessage(TEST_MESSAGE,
      SampleKeys.KEY_PAIR);
  Sign.SignatureData expected = new Sign.SignatureData(
      (byte) 28,
      Numeric.hexStringToByteArray(
          "0x0464eee9e2fe1a10ffe48c78b80de1ed8dcf996f3f60955cb2e03cb21903d930"),
      Numeric.hexStringToByteArray(
          "0x06624da478b3f862582e85b31c6a21c6cae2eee2bd50f55c93c4faad9d9c8d7f")
  );
  assertThat(signatureData, is(expected));
}

代码示例来源:origin: web3j/web3j

result.add(RlpString.create(Numeric.hexStringToByteArray(to)));
} else {
  result.add(RlpString.create(""));
byte[] data = Numeric.hexStringToByteArray(rawTransaction.getData());
result.add(RlpString.create(data));

代码示例来源:origin: web3j/web3j

@Test
public void testDecodeIndexedBytes16Value() {
  String rawInput = "0x1234567890123456789012345678901200000000000000000000000000000000";
  byte[] rawInputBytes = Numeric.hexStringToByteArray(rawInput.substring(0, 34));
  assertThat(FunctionReturnDecoder.decodeIndexedValue(
      rawInput,
      new TypeReference<Bytes16>(){}),
      equalTo(new Bytes16(rawInputBytes)));
}

代码示例来源:origin: web3j/web3j

byte[] mac = Numeric.hexStringToByteArray(crypto.getMac());
byte[] iv = Numeric.hexStringToByteArray(crypto.getCipherparams().getIv());
byte[] cipherText = Numeric.hexStringToByteArray(crypto.getCiphertext());
  int p = scryptKdfParams.getP();
  int r = scryptKdfParams.getR();
  byte[] salt = Numeric.hexStringToByteArray(scryptKdfParams.getSalt());
  derivedKey = generateDerivedScryptKey(password.getBytes(UTF_8), salt, n, r, p, dklen);
} else if (kdfParams instanceof WalletFile.Aes128CtrKdfParams) {
  int c = aes128CtrKdfParams.getC();
  String prf = aes128CtrKdfParams.getPrf();
  byte[] salt = Numeric.hexStringToByteArray(aes128CtrKdfParams.getSalt());

代码示例来源:origin: web3j/web3j

@Test
public void testDecodeIndexedBytes32Value() {
  String rawInput = "0x1234567890123456789012345678901234567890123456789012345678901234";
  byte[] rawInputBytes = Numeric.hexStringToByteArray(rawInput);
  assertThat(FunctionReturnDecoder.decodeIndexedValue(
      rawInput,
      new TypeReference<Bytes32>(){}),
      equalTo(new Bytes32(rawInputBytes)));
}

代码示例来源:origin: web3j/web3j

@Test
public void testEip155Encode() {
  assertThat(TransactionEncoder.encode(createEip155RawTransaction(), (byte) 1),
      is(Numeric.hexStringToByteArray(
          "0xec098504a817c800825208943535353535353535353535353535353535353535880de0"
              + "b6b3a764000080018080")));
}

代码示例来源:origin: web3j/web3j

public static RawTransaction decode(String hexTransaction) {
  byte[] transaction = Numeric.hexStringToByteArray(hexTransaction);
  RlpList rlpList = RlpDecoder.decode(transaction);
  RlpList values = (RlpList) rlpList.getValues().get(0);
  BigInteger nonce = ((RlpString) values.getValues().get(0)).asPositiveBigInteger();
  BigInteger gasPrice = ((RlpString) values.getValues().get(1)).asPositiveBigInteger();
  BigInteger gasLimit = ((RlpString) values.getValues().get(2)).asPositiveBigInteger();
  String to = ((RlpString) values.getValues().get(3)).asString();
  BigInteger value = ((RlpString) values.getValues().get(4)).asPositiveBigInteger();
  String data = ((RlpString) values.getValues().get(5)).asString();
  if (values.getValues().size() > 6) {
    byte v = ((RlpString) values.getValues().get(6)).getBytes()[0];
    byte[] r = Numeric.toBytesPadded(
      Numeric.toBigInt(((RlpString) values.getValues().get(7)).getBytes()), 32);
    byte[] s = Numeric.toBytesPadded(
      Numeric.toBigInt(((RlpString) values.getValues().get(8)).getBytes()), 32);
    Sign.SignatureData signatureData = new Sign.SignatureData(v, r, s);
    return new SignedRawTransaction(nonce, gasPrice, gasLimit,
      to, value, data, signatureData);
  } else {
    return RawTransaction.createTransaction(nonce,
      gasPrice, gasLimit, to, value, data);
  }
}

代码示例来源:origin: web3j/web3j

@Test
public void testEip155Transaction() {
  // https://github.com/ethereum/EIPs/issues/155
  Credentials credentials = Credentials.create(
      "0x4646464646464646464646464646464646464646464646464646464646464646");
  assertThat(TransactionEncoder.signMessage(
      createEip155RawTransaction(), (byte) 1, credentials),
      is(Numeric.hexStringToByteArray(
          "0xf86c098504a817c800825208943535353535353535353535353535353535353535880"
              + "de0b6b3a76400008025a028ef61340bd939bc2195fe537567866003e1a15d"
              + "3c71ff63e1590620aa636276a067cbe9d8997f761aecb703304b3800ccf55"
              + "5c9f3dc64214b297fb1966a3b6d83")));
}

代码示例来源:origin: web3j/web3j

byte[] msgHash = Hash.sha3((prefix + message).getBytes());
byte[] signatureBytes = Numeric.hexStringToByteArray(signature);
byte v = signatureBytes[64];
if (v < 27) {

代码示例来源:origin: web3j/web3j

@Test
public void testDecodeIndexedDynamicBytesValue() {
  DynamicBytes bytes = new DynamicBytes(new byte[]{ 1, 2, 3, 4, 5});
  String encoded = TypeEncoder.encodeDynamicBytes(bytes);
  String hash = Hash.sha3(encoded);
  assertThat(FunctionReturnDecoder.decodeIndexedValue(
      hash,
      new TypeReference<DynamicBytes>() {}),
      equalTo(new Bytes32(Numeric.hexStringToByteArray(hash))));
}

代码示例来源:origin: web3j/web3j

@Test
public void testDecodeIndexedStringValue() {
  Utf8String string = new Utf8String("some text");
  String encoded = TypeEncoder.encodeString(string);
  String hash = Hash.sha3(encoded);
  assertThat(FunctionReturnDecoder.decodeIndexedValue(
      hash,
      new TypeReference<Utf8String>() {}),
      equalTo(new Bytes32(Numeric.hexStringToByteArray(hash))));
}

代码示例来源:origin: web3j/web3j

@Test
  public void testDecodeIndexedDynamicArrayValue() {
    DynamicArray<Uint256> array = new DynamicArray<>(new Uint256(BigInteger.TEN));
    String encoded = TypeEncoder.encodeDynamicArray(array);
    String hash = Hash.sha3(encoded);

    assertThat(FunctionReturnDecoder.decodeIndexedValue(
        hash,
        new TypeReference<DynamicArray>() {}),
        equalTo(new Bytes32(Numeric.hexStringToByteArray(hash))));
  }
}

代码示例来源:origin: web3j/web3j

private void testGenerated(String seed, String expectedPriv, String expectedPub, int[] path) {
  Bip32ECKeyPair pair = Bip32ECKeyPair.generateKeyPair(Numeric.hexStringToByteArray(seed));
  assertNotNull(pair);
  pair = Bip32ECKeyPair.deriveKeyPair(pair, path);
  assertNotNull(pair);
  assertEquals(expectedPriv, Base58.encode(addChecksum(serializePrivate(pair))));
  assertEquals(expectedPub, Base58.encode(addChecksum(serializePublic(pair))));
}

相关文章