Search in sources :

Example 1 with Int

use of org.bcos.web3j.abi.datatypes.Int in project web3sdk by FISCO-BCOS.

the class AbiTypesMapperGenerator method generateIntTypes.

private MethodSpec.Builder generateIntTypes(MethodSpec.Builder builder, String packageName) {
    for (int bitSize = 8; bitSize <= Type.MAX_BIT_LENGTH; bitSize += 8) {
        builder = addStatement(builder, packageName, Uint.TYPE_NAME + bitSize, Uint.class.getSimpleName() + bitSize);
        builder = addStatement(builder, packageName, Int.TYPE_NAME + bitSize, Int.class.getSimpleName() + bitSize);
    }
    return builder;
}
Also used : Uint(org.bcos.web3j.abi.datatypes.Uint) Uint(org.bcos.web3j.abi.datatypes.Uint) Int(org.bcos.web3j.abi.datatypes.Int)

Example 2 with Int

use of org.bcos.web3j.abi.datatypes.Int in project web3sdk by FISCO-BCOS.

the class TypeDecoder method decodeNumeric.

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)) {
            // take MSB as sign bit
            resultByteArray[0] = inputByteArray[0];
        }
        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);
    }
}
Also used : Uint(org.bcos.web3j.abi.datatypes.Uint) Int(org.bcos.web3j.abi.datatypes.Int) InvocationTargetException(java.lang.reflect.InvocationTargetException) BigInteger(java.math.BigInteger) Fixed(org.bcos.web3j.abi.datatypes.Fixed)

Example 3 with Int

use of org.bcos.web3j.abi.datatypes.Int in project web3sdk by FISCO-BCOS.

the class TypeDecoder method decodeDynamicArray.

@SuppressWarnings("unchecked")
static <T extends Type> T decodeDynamicArray(String input, int offset, TypeReference<T> typeReference) {
    int length = decodeUintAsInt(input, offset);
    BiFunction<List<T>, String, T> function = (elements, typeName) -> {
        if (elements.isEmpty()) {
            return (T) DynamicArray.empty(typeName);
        } else {
            return (T) new DynamicArray<>(elements);
        }
    };
    int valueOffset = offset + MAX_BYTE_LENGTH_FOR_HEX_STRING;
    return decodeArrayElements(input, valueOffset, typeReference, length, function);
}
Also used : Address(org.bcos.web3j.abi.datatypes.Address) Numeric(org.bcos.web3j.utils.Numeric) IntType(org.bcos.web3j.abi.datatypes.IntType) Bytes(org.bcos.web3j.abi.datatypes.Bytes) Int(org.bcos.web3j.abi.datatypes.Int) Ufixed(org.bcos.web3j.abi.datatypes.Ufixed) Utf8String(org.bcos.web3j.abi.datatypes.Utf8String) NumericType(org.bcos.web3j.abi.datatypes.NumericType) BiFunction(java.util.function.BiFunction) Array(org.bcos.web3j.abi.datatypes.Array) FixedPointType(org.bcos.web3j.abi.datatypes.FixedPointType) StandardCharsets(java.nio.charset.StandardCharsets) StaticArray(org.bcos.web3j.abi.datatypes.StaticArray) Type(org.bcos.web3j.abi.datatypes.Type) Uint(org.bcos.web3j.abi.datatypes.Uint) InvocationTargetException(java.lang.reflect.InvocationTargetException) ArrayList(java.util.ArrayList) List(java.util.List) ParameterizedType(java.lang.reflect.ParameterizedType) Bool(org.bcos.web3j.abi.datatypes.Bool) DynamicArray(org.bcos.web3j.abi.datatypes.DynamicArray) DynamicBytes(org.bcos.web3j.abi.datatypes.DynamicBytes) BigInteger(java.math.BigInteger) Fixed(org.bcos.web3j.abi.datatypes.Fixed) DynamicArray(org.bcos.web3j.abi.datatypes.DynamicArray) ArrayList(java.util.ArrayList) List(java.util.List) Utf8String(org.bcos.web3j.abi.datatypes.Utf8String) Uint(org.bcos.web3j.abi.datatypes.Uint)

Aggregations

Int (org.bcos.web3j.abi.datatypes.Int)3 Uint (org.bcos.web3j.abi.datatypes.Uint)3 InvocationTargetException (java.lang.reflect.InvocationTargetException)2 BigInteger (java.math.BigInteger)2 Fixed (org.bcos.web3j.abi.datatypes.Fixed)2 ParameterizedType (java.lang.reflect.ParameterizedType)1 StandardCharsets (java.nio.charset.StandardCharsets)1 ArrayList (java.util.ArrayList)1 List (java.util.List)1 BiFunction (java.util.function.BiFunction)1 Address (org.bcos.web3j.abi.datatypes.Address)1 Array (org.bcos.web3j.abi.datatypes.Array)1 Bool (org.bcos.web3j.abi.datatypes.Bool)1 Bytes (org.bcos.web3j.abi.datatypes.Bytes)1 DynamicArray (org.bcos.web3j.abi.datatypes.DynamicArray)1 DynamicBytes (org.bcos.web3j.abi.datatypes.DynamicBytes)1 FixedPointType (org.bcos.web3j.abi.datatypes.FixedPointType)1 IntType (org.bcos.web3j.abi.datatypes.IntType)1 NumericType (org.bcos.web3j.abi.datatypes.NumericType)1 StaticArray (org.bcos.web3j.abi.datatypes.StaticArray)1