Search in sources :

Example 11 with Utf8String

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

the class ResultEntityTest method typeToObjectArrayTest.

@Test
public void typeToObjectArrayTest() throws JsonProcessingException {
    ResultEntity r0 = new ResultEntity("string", "string", new Utf8String("章鱼丸子"));
    assertThat(r0.toJson(), is("{\"name\":\"string\",\"type\":\"string\",\"data\":\"章鱼丸子\"}"));
    ResultEntity r1 = new ResultEntity("uint256", "uint256", new Uint256(247809787));
    assertThat(r1.toJson(), is("{\"name\":\"uint256\",\"type\":\"uint256\",\"data\":247809787}"));
    ResultEntity r2 = new ResultEntity("int256", "int256", new Int256(-247809787));
    assertThat(r2.toJson(), is("{\"name\":\"int256\",\"type\":\"int256\",\"data\":-247809787}"));
    ResultEntity r3 = new ResultEntity("bool", "bool", new Bool(true));
    assertThat(r3.toJson(), is("{\"name\":\"bool\",\"type\":\"bool\",\"data\":true}"));
    ResultEntity r4 = new ResultEntity("bytes", "bytes", new DynamicBytes("dasfjl;kljadfkl".getBytes()));
    assertThat(r4.toJson(), is("{\"name\":\"bytes\",\"type\":\"bytes\",\"data\":\"dasfjl;kljadfkl\"}"));
    ResultEntity r5 = new ResultEntity("StaticArray1", "StaticArray1", new StaticArray1<Uint256>(new Uint256(22)));
    assertThat(r5.toJson(), is("{\"name\":\"StaticArray1\",\"type\":\"StaticArray1\",\"data\":[22]}"));
    ResultEntity r6 = new ResultEntity("StaticArray3", "StaticArray3", new StaticArray3<Uint256>(new Uint256(1), new Uint256(2), new Uint256(3)));
    assertThat(r6.toJson(), is("{\"name\":\"StaticArray3\",\"type\":\"StaticArray3\",\"data\":[1,2,3]}"));
    ResultEntity r7 = new ResultEntity("DynamicArray", "DynamicArray", new DynamicArray<Bool>(new Bool(true), new Bool(false), new Bool(true)));
    assertThat(r7.toJson(), is("{\"name\":\"DynamicArray\",\"type\":\"DynamicArray\",\"data\":[true,false,true]}"));
    ResultEntity r8 = new ResultEntity("DynamicArray", "DynamicArray", new DynamicArray<Bytes7>(new Bytes7("sdafljk".getBytes()), new Bytes7("sdafljk".getBytes()), new Bytes7("sdafljk".getBytes())));
    assertThat(r8.toJson(), is("{\"name\":\"DynamicArray\",\"type\":\"DynamicArray\",\"data\":[\"sdafljk\",\"sdafljk\",\"sdafljk\"]}"));
}
Also used : Utf8String(org.fisco.bcos.web3j.abi.datatypes.Utf8String) Int256(org.fisco.bcos.web3j.abi.datatypes.generated.Int256) DynamicBytes(org.fisco.bcos.web3j.abi.datatypes.DynamicBytes) Bytes7(org.fisco.bcos.web3j.abi.datatypes.generated.Bytes7) Bool(org.fisco.bcos.web3j.abi.datatypes.Bool) Uint256(org.fisco.bcos.web3j.abi.datatypes.generated.Uint256) Test(org.junit.Test)

Example 12 with Utf8String

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

the class TransactionDecoderTest method testEventSimple.

/*
     * event TestEventSimpleParams(uint256 _u,int256 _i,bool _b,address _addr,bytes32 _bs32, string _s,bytes _bs);
     * event TestEventDArrayParams(uint256[] _u,int256[] _i,bool[] _b,address[] _addr,bytes32[] _bs32, string[] _s,bytes[] _bs);
     * event TestEventSArrayParams(uint256[4] _u,int256[4] _i,bool[4] _b,address[4] _addr,bytes32[4] _bs32, string[4] _s,bytes[4] _bs);
     */
@Test
public void testEventSimple() throws BaseException, IOException {
    /*
         	event TestEventSimpleParams(uint256 _u,int256 _i,bool _b,address _addr,bytes32 _bs32, string _s,bytes _bs);
        */
    TransactionDecoder decode = TransactionDecoderFactory.buildTransactionDecoder("[{\"constant\":true,\"inputs\":[{\"name\":\"_u\",\"type\":\"uint256[4]\"},{\"name\":\"_i\",\"type\":\"int256[4]\"},{\"name\":\"_b\",\"type\":\"bool[4]\"},{\"name\":\"_addr\",\"type\":\"address[4]\"},{\"name\":\"_bs32\",\"type\":\"bytes32[4]\"},{\"name\":\"_s\",\"type\":\"string[4]\"},{\"name\":\"_bs\",\"type\":\"bytes[4]\"}],\"name\":\"test\",\"outputs\":[{\"name\":\"\",\"type\":\"uint256[2]\"},{\"name\":\"\",\"type\":\"int256[2]\"},{\"name\":\"\",\"type\":\"bool[2]\"},{\"name\":\"\",\"type\":\"address[2]\"},{\"name\":\"\",\"type\":\"bytes32[2]\"},{\"name\":\"\",\"type\":\"string[2]\"},{\"name\":\"\",\"type\":\"bytes[2]\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[{\"name\":\"_u\",\"type\":\"uint256\"},{\"name\":\"_i\",\"type\":\"int256\"},{\"name\":\"_b\",\"type\":\"bool\"},{\"name\":\"_addr\",\"type\":\"address\"},{\"name\":\"_bs32\",\"type\":\"bytes32\"},{\"name\":\"_s\",\"type\":\"string\"},{\"name\":\"_bs\",\"type\":\"bytes\"}],\"name\":\"test\",\"outputs\":[{\"name\":\"\",\"type\":\"uint256\"},{\"name\":\"\",\"type\":\"int256\"},{\"name\":\"\",\"type\":\"bool\"},{\"name\":\"\",\"type\":\"address\"},{\"name\":\"\",\"type\":\"bytes32\"},{\"name\":\"\",\"type\":\"string\"},{\"name\":\"\",\"type\":\"bytes\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[{\"name\":\"_u\",\"type\":\"uint256[]\"},{\"name\":\"_i\",\"type\":\"int256[]\"},{\"name\":\"_b\",\"type\":\"bool[]\"},{\"name\":\"_addr\",\"type\":\"address[]\"},{\"name\":\"_bs32\",\"type\":\"bytes32[]\"},{\"name\":\"_s\",\"type\":\"string[]\"},{\"name\":\"_bs\",\"type\":\"bytes[]\"}],\"name\":\"test\",\"outputs\":[{\"name\":\"\",\"type\":\"uint256[]\"},{\"name\":\"\",\"type\":\"int256[]\"},{\"name\":\"\",\"type\":\"bool[]\"},{\"name\":\"\",\"type\":\"address[]\"},{\"name\":\"\",\"type\":\"bytes32[]\"},{\"name\":\"\",\"type\":\"string[]\"},{\"name\":\"\",\"type\":\"bytes[]\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"name\":\"_u\",\"type\":\"uint256\"},{\"indexed\":false,\"name\":\"_i\",\"type\":\"int256\"},{\"indexed\":false,\"name\":\"_b\",\"type\":\"bool\"},{\"indexed\":false,\"name\":\"_addr\",\"type\":\"address\"},{\"indexed\":false,\"name\":\"_bs32\",\"type\":\"bytes32\"},{\"indexed\":false,\"name\":\"_s\",\"type\":\"string\"},{\"indexed\":false,\"name\":\"_bs\",\"type\":\"bytes\"}],\"name\":\"TestEventSimpleParams\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"name\":\"_u\",\"type\":\"uint256[]\"},{\"indexed\":false,\"name\":\"_i\",\"type\":\"int256[]\"},{\"indexed\":false,\"name\":\"_b\",\"type\":\"bool[]\"},{\"indexed\":false,\"name\":\"_addr\",\"type\":\"address[]\"},{\"indexed\":false,\"name\":\"_bs32\",\"type\":\"bytes32[]\"},{\"indexed\":false,\"name\":\"_s\",\"type\":\"string[]\"},{\"indexed\":false,\"name\":\"_bs\",\"type\":\"bytes[]\"}],\"name\":\"TestEventDArrayParams\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"name\":\"_u\",\"type\":\"uint256[4]\"},{\"indexed\":false,\"name\":\"_i\",\"type\":\"int256[4]\"},{\"indexed\":false,\"name\":\"_b\",\"type\":\"bool[4]\"},{\"indexed\":false,\"name\":\"_addr\",\"type\":\"address[4]\"},{\"indexed\":false,\"name\":\"_bs32\",\"type\":\"bytes32[4]\"},{\"indexed\":false,\"name\":\"_s\",\"type\":\"string[4]\"},{\"indexed\":false,\"name\":\"_bs\",\"type\":\"bytes[4]\"}],\"name\":\"TestEventSArrayParams\",\"type\":\"event\"}]", "");
    List<TypeReference<?>> eventTypeList = Arrays.asList(new TypeReference<Uint256>() {
    }, new TypeReference<Int256>() {
    }, new TypeReference<Bool>() {
    }, new TypeReference<Address>() {
    }, new TypeReference<Bytes32>() {
    }, new TypeReference<Utf8String>() {
    }, new TypeReference<DynamicBytes>() {
    });
    Event event = new Event("TestEventSimpleParams", eventTypeList);
    List<Type> eventDataParams1 = Arrays.asList(new Uint256(111111), new Int256(-1111111), new Bool(false), new Address("0x692a70d2e424a56d2c6c27aa97d1a86395877b3a"), new Bytes32("abcdefghiabcdefghiabcdefghiabhji".getBytes()), new Utf8String("章鱼小丸子ljjkl;adjsfkljlkjl"), new DynamicBytes("sadfljkjkljkl".getBytes()));
    List<Type> eventDataParams2 = Arrays.asList(new Uint256(0), new Int256(0), new Bool(true), new Address("0x0"), new Bytes32("                                ".getBytes()), new Utf8String(""), new DynamicBytes("".getBytes()));
    List<Type> eventDataParams3 = Arrays.asList(new Uint256(654321), new Int256(123456), new Bool(false), new Address("0x692a70d2e424a56d2c6c27aa97d1a86395877b3a"), new Bytes32("                                ".getBytes()), new Utf8String("jlkjlkjasdfjlkj   fsadjkljlk j章鱼小丸子"), new DynamicBytes("jlkjlkjasdfjlkj   fsadjkljlk j章鱼小丸子".getBytes()));
    List<String> topics = new ArrayList<String>();
    topics.add(EventEncoder.encode(event));
    Log log1 = new Log();
    log1.setData(FunctionEncoder.encodeConstructor(eventDataParams1));
    log1.setTopics(topics);
    Log log2 = new Log();
    log2.setData(FunctionEncoder.encodeConstructor(eventDataParams2));
    log2.setTopics(topics);
    Log log3 = new Log();
    log3.setData(FunctionEncoder.encodeConstructor(eventDataParams3));
    log3.setTopics(topics);
    AbiDefinition abiDefinition = null;
    Tuple2<AbiDefinition, List<EventResultEntity>> tupleResult1 = decode.decodeEventReturnObject(log1);
    assertThat(transEntitytoType0(tupleResult1.getValue2()), is(eventDataParams1));
    abiDefinition = tupleResult1.getValue1();
    Tuple2<AbiDefinition, List<EventResultEntity>> tupleResult2 = decode.decodeEventReturnObject(log2);
    assertThat(transEntitytoType0(tupleResult2.getValue2()), is(eventDataParams2));
    Tuple2<AbiDefinition, List<EventResultEntity>> tupleResult3 = decode.decodeEventReturnObject(log3);
    assertThat(transEntitytoType0(tupleResult3.getValue2()), is(eventDataParams3));
    List<Log> logList1 = new ArrayList<Log>();
    logList1.add(log1);
    Map<String, List<List<EventResultEntity>>> mapResult1 = decode.decodeEventReturnObject(logList1);
    assertThat(transEntitytoType0(mapResult1.get(decodeMethodSign(abiDefinition)).get(0)), is(eventDataParams1));
    assertThat(decode.decodeEventReturnJson(logList1), is("{\"TestEventSimpleParams(uint256,int256,bool,address,bytes32,string,bytes)\":[[{\"name\":\"_u\",\"type\":\"uint256\",\"data\":111111,\"indexed\":false},{\"name\":\"_i\",\"type\":\"int256\",\"data\":-1111111,\"indexed\":false},{\"name\":\"_b\",\"type\":\"bool\",\"data\":false,\"indexed\":false},{\"name\":\"_addr\",\"type\":\"address\",\"data\":\"0x692a70d2e424a56d2c6c27aa97d1a86395877b3a\",\"indexed\":false},{\"name\":\"_bs32\",\"type\":\"bytes32\",\"data\":\"abcdefghiabcdefghiabcdefghiabhji\",\"indexed\":false},{\"name\":\"_s\",\"type\":\"string\",\"data\":\"章鱼小丸子ljjkl;adjsfkljlkjl\",\"indexed\":false},{\"name\":\"_bs\",\"type\":\"bytes\",\"data\":\"sadfljkjkljkl\",\"indexed\":false}]]}"));
    List<Log> logList2 = new ArrayList<Log>();
    logList2.add(log1);
    logList2.add(log2);
    Map<String, List<List<EventResultEntity>>> mapResult2 = decode.decodeEventReturnObject(logList2);
    assertThat(transEntitytoType0(mapResult2.get(decodeMethodSign(abiDefinition)).get(0)), is(eventDataParams1));
    assertThat(transEntitytoType0(mapResult2.get(decodeMethodSign(abiDefinition)).get(1)), is(eventDataParams2));
    assertThat(decode.decodeEventReturnJson(logList2), is("{\"TestEventSimpleParams(uint256,int256,bool,address,bytes32,string,bytes)\":[[{\"name\":\"_u\",\"type\":\"uint256\",\"data\":111111,\"indexed\":false},{\"name\":\"_i\",\"type\":\"int256\",\"data\":-1111111,\"indexed\":false},{\"name\":\"_b\",\"type\":\"bool\",\"data\":false,\"indexed\":false},{\"name\":\"_addr\",\"type\":\"address\",\"data\":\"0x692a70d2e424a56d2c6c27aa97d1a86395877b3a\",\"indexed\":false},{\"name\":\"_bs32\",\"type\":\"bytes32\",\"data\":\"abcdefghiabcdefghiabcdefghiabhji\",\"indexed\":false},{\"name\":\"_s\",\"type\":\"string\",\"data\":\"章鱼小丸子ljjkl;adjsfkljlkjl\",\"indexed\":false},{\"name\":\"_bs\",\"type\":\"bytes\",\"data\":\"sadfljkjkljkl\",\"indexed\":false}],[{\"name\":\"_u\",\"type\":\"uint256\",\"data\":0,\"indexed\":false},{\"name\":\"_i\",\"type\":\"int256\",\"data\":0,\"indexed\":false},{\"name\":\"_b\",\"type\":\"bool\",\"data\":true,\"indexed\":false},{\"name\":\"_addr\",\"type\":\"address\",\"data\":\"0x0000000000000000000000000000000000000000\",\"indexed\":false},{\"name\":\"_bs32\",\"type\":\"bytes32\",\"data\":\"\",\"indexed\":false},{\"name\":\"_s\",\"type\":\"string\",\"data\":\"\",\"indexed\":false},{\"name\":\"_bs\",\"type\":\"bytes\",\"data\":\"\",\"indexed\":false}]]}"));
    List<Log> logList3 = new ArrayList<Log>();
    logList3.add(log1);
    logList3.add(log2);
    logList3.add(log3);
    Map<String, List<List<EventResultEntity>>> mapResult3 = decode.decodeEventReturnObject(logList3);
    assertThat(transEntitytoType0(mapResult3.get(decodeMethodSign(abiDefinition)).get(0)), is(eventDataParams1));
    assertThat(transEntitytoType0(mapResult3.get(decodeMethodSign(abiDefinition)).get(1)), is(eventDataParams2));
    assertThat(transEntitytoType0(mapResult3.get(decodeMethodSign(abiDefinition)).get(2)), is(eventDataParams3));
    assertThat(decode.decodeEventReturnJson(logList3), is("{\"TestEventSimpleParams(uint256,int256,bool,address,bytes32,string,bytes)\":[[{\"name\":\"_u\",\"type\":\"uint256\",\"data\":111111,\"indexed\":false},{\"name\":\"_i\",\"type\":\"int256\",\"data\":-1111111,\"indexed\":false},{\"name\":\"_b\",\"type\":\"bool\",\"data\":false,\"indexed\":false},{\"name\":\"_addr\",\"type\":\"address\",\"data\":\"0x692a70d2e424a56d2c6c27aa97d1a86395877b3a\",\"indexed\":false},{\"name\":\"_bs32\",\"type\":\"bytes32\",\"data\":\"abcdefghiabcdefghiabcdefghiabhji\",\"indexed\":false},{\"name\":\"_s\",\"type\":\"string\",\"data\":\"章鱼小丸子ljjkl;adjsfkljlkjl\",\"indexed\":false},{\"name\":\"_bs\",\"type\":\"bytes\",\"data\":\"sadfljkjkljkl\",\"indexed\":false}],[{\"name\":\"_u\",\"type\":\"uint256\",\"data\":0,\"indexed\":false},{\"name\":\"_i\",\"type\":\"int256\",\"data\":0,\"indexed\":false},{\"name\":\"_b\",\"type\":\"bool\",\"data\":true,\"indexed\":false},{\"name\":\"_addr\",\"type\":\"address\",\"data\":\"0x0000000000000000000000000000000000000000\",\"indexed\":false},{\"name\":\"_bs32\",\"type\":\"bytes32\",\"data\":\"\",\"indexed\":false},{\"name\":\"_s\",\"type\":\"string\",\"data\":\"\",\"indexed\":false},{\"name\":\"_bs\",\"type\":\"bytes\",\"data\":\"\",\"indexed\":false}],[{\"name\":\"_u\",\"type\":\"uint256\",\"data\":654321,\"indexed\":false},{\"name\":\"_i\",\"type\":\"int256\",\"data\":123456,\"indexed\":false},{\"name\":\"_b\",\"type\":\"bool\",\"data\":false,\"indexed\":false},{\"name\":\"_addr\",\"type\":\"address\",\"data\":\"0x692a70d2e424a56d2c6c27aa97d1a86395877b3a\",\"indexed\":false},{\"name\":\"_bs32\",\"type\":\"bytes32\",\"data\":\"\",\"indexed\":false},{\"name\":\"_s\",\"type\":\"string\",\"data\":\"jlkjlkjasdfjlkj   fsadjkljlk j章鱼小丸子\",\"indexed\":false},{\"name\":\"_bs\",\"type\":\"bytes\",\"data\":\"jlkjlkjasdfjlkj   fsadjkljlk j章鱼小丸子\",\"indexed\":false}]]}"));
}
Also used : Address(org.fisco.bcos.web3j.abi.datatypes.Address) ArrayList(java.util.ArrayList) Utf8String(org.fisco.bcos.web3j.abi.datatypes.Utf8String) Bytes32(org.fisco.bcos.web3j.abi.datatypes.generated.Bytes32) DynamicBytes(org.fisco.bcos.web3j.abi.datatypes.DynamicBytes) Bool(org.fisco.bcos.web3j.abi.datatypes.Bool) AbiDefinition(org.fisco.bcos.web3j.protocol.core.methods.response.AbiDefinition) ArrayList(java.util.ArrayList) List(java.util.List) TypeReference(org.fisco.bcos.web3j.abi.TypeReference) Log(org.fisco.bcos.web3j.protocol.core.methods.response.Log) Int256(org.fisco.bcos.web3j.abi.datatypes.generated.Int256) Utf8String(org.fisco.bcos.web3j.abi.datatypes.Utf8String) Type(org.fisco.bcos.web3j.abi.datatypes.Type) NamedType(org.fisco.bcos.web3j.protocol.core.methods.response.AbiDefinition.NamedType) Event(org.fisco.bcos.web3j.abi.datatypes.Event) Uint256(org.fisco.bcos.web3j.abi.datatypes.generated.Uint256) Test(org.junit.Test)

Example 13 with Utf8String

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

the class EventEncoderTest method testEventbuildMethodSignature7.

@Test
public void testEventbuildMethodSignature7() {
    Event event = new Event("test7", Arrays.<TypeReference<?>>asList(new TypeReference<Uint256>() {
    }, new TypeReference<Address>() {
    }, new TypeReference<Utf8String>() {
    }, new TypeReference<DynamicArray<Uint256>>() {
    }, new TypeReference<StaticArray3<Uint256>>() {
    }, new TypeReference<DynamicArray<Utf8String>>() {
    }, new TypeReference<StaticArray3<Utf8String>>() {
    }, new TypeReference<DynamicArray<DynamicArray<Uint256>>>() {
    }, new TypeReference<DynamicArray<StaticArray3<Uint256>>>() {
    }));
    assertThat(EventEncoder.buildMethodSignature(event.getName(), event.getParameters()), is("test7(uint256,address,string,uint256[],uint256[3],string[],string[3],uint256[][],uint256[3][])"));
    assertThat(EventEncoder.encode(event), is("0x63c45f0c8793f28acf7f800281aaf63198c09afdef34c785429628237221a648"));
    assertThat(EventEncoder.buildEventSignature("test7(uint256,address,string,uint256[],uint256[3],string[],string[3],uint256[][],uint256[3][])"), is("0x63c45f0c8793f28acf7f800281aaf63198c09afdef34c785429628237221a648"));
}
Also used : Utf8String(org.fisco.bcos.web3j.abi.datatypes.Utf8String) StaticArray3(org.fisco.bcos.web3j.abi.datatypes.generated.StaticArray3) DynamicArray(org.fisco.bcos.web3j.abi.datatypes.DynamicArray) Event(org.fisco.bcos.web3j.abi.datatypes.Event) Uint256(org.fisco.bcos.web3j.abi.datatypes.generated.Uint256) Test(org.junit.Test)

Example 14 with Utf8String

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

the class EventEncoderTest method testEventbuildMethodSignature6.

@Test
public void testEventbuildMethodSignature6() {
    Event event = new Event("test6", Arrays.<TypeReference<?>>asList(new TypeReference<Uint256>() {
    }, new TypeReference<Int256>() {
    }, new TypeReference<Utf8String>() {
    }, new TypeReference<DynamicArray<Utf8String>>() {
    }, new TypeReference<StaticArray3<Utf8String>>() {
    }));
    assertThat(EventEncoder.buildMethodSignature(event.getName(), event.getParameters()), is("test6(uint256,int256,string,string[],string[3])"));
    assertThat(EventEncoder.encode(event), is("0x5199068657caa55d23ad866ba738a7f21e567e6f50aa8173ac108efdd5d3bb79"));
    assertThat(EventEncoder.buildEventSignature("test6(uint256,int256,string,string[],string[3])"), is("0x5199068657caa55d23ad866ba738a7f21e567e6f50aa8173ac108efdd5d3bb79"));
}
Also used : Utf8String(org.fisco.bcos.web3j.abi.datatypes.Utf8String) Event(org.fisco.bcos.web3j.abi.datatypes.Event) Test(org.junit.Test)

Example 15 with Utf8String

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

the class CallContractTest method testSyncCallContract.

private static void testSyncCallContract(CallContract callContract, String address) {
    CallResult contractResult;
    contractResult = callContract.call(address, "getStringOld", new Utf8String("hello world"), new Int256(10086), new Bool(true));
    List<TypeReference<?>> referencesList = Arrays.<TypeReference<?>>asList(new TypeReference<Utf8String>() {
    });
    List<Type> returnList1 = FunctionReturnDecoder.decode(contractResult.getOutput(), Utils.convert(referencesList));
    System.out.println("call getStringOld: " + (String) returnList1.get(0).getValue());
    TransactionReceipt receipt;
    receipt = callContract.sendTransaction(gasPrice, gasLimit, address, "setAndget", new Utf8String("hello world"), new Int256(10086));
    referencesList = Arrays.<TypeReference<?>>asList(new TypeReference<Utf8String>() {
    }, new TypeReference<Int256>() {
    });
    List<Type> returnList2 = FunctionReturnDecoder.decode(receipt.getOutput(), Utils.convert(referencesList));
    System.out.println("call setAndget: " + (String) returnList2.get(0).getValue() + ", " + (BigInteger) returnList2.get(1).getValue());
    receipt = callContract.sendTransaction(address, "setAndget", new Utf8String("hello world"), new Int256(10086));
    referencesList = Arrays.<TypeReference<?>>asList(new TypeReference<Utf8String>() {
    }, new TypeReference<Int256>() {
    });
    List<Type> returnList3 = FunctionReturnDecoder.decode(receipt.getOutput(), Utils.convert(referencesList));
    System.out.println("default call setAndget: " + (String) returnList3.get(0).getValue() + ", " + (BigInteger) returnList3.get(1).getValue());
    contractResult = callContract.call(address, "getArray", new StaticArray2(typeMap(Arrays.asList(BigInteger.valueOf(-1), BigInteger.valueOf(2)), Int16.class)), new DynamicArray(typeMap(Arrays.asList(BigInteger.valueOf(2), BigInteger.valueOf(2)), Uint16.class)));
    List<Type> returnList4 = callContract.decode(contractResult.getOutput(), new TypeReference<StaticArray2<Int16>>() {
    }, new TypeReference<DynamicArray<Int16>>() {
    });
    System.out.println("call getArray: " + callContract.convertList((List<Type>) returnList4.get(0).getValue()) + ", " + callContract.convertList((List<Type>) returnList4.get(1).getValue()));
    List<List<BigInteger>> dyadicArray = new ArrayList<List<BigInteger>>();
    dyadicArray.add(Arrays.asList(BigInteger.valueOf(-1), BigInteger.valueOf(2)));
    dyadicArray.add(Arrays.asList(BigInteger.valueOf(-1), BigInteger.valueOf(992)));
    byte[] bytes = new byte[] { 'a', 'b' };
    contractResult = callContract.call(address, "newTest", new StaticArray2(typeMap(dyadicArray, StaticArray2.class, Int256.class)), new DynamicBytes(bytes));
    List<Type> returnList5 = callContract.decode(contractResult.getOutput(), new TypeReference<StaticArray2<StaticArray2<Int256>>>() {
    }, new TypeReference<DynamicBytes>() {
    });
    System.out.println("call newTest: " + callContract.convertListList((List<StaticArray<Int256>>) returnList5.get(0).getValue()) + ", " + new String((byte[]) returnList5.get(1).getValue()) + ", " + dyadicArray);
}
Also used : ArrayList(java.util.ArrayList) Utf8String(org.fisco.bcos.web3j.abi.datatypes.Utf8String) Int16(org.fisco.bcos.web3j.abi.datatypes.generated.Int16) DynamicBytes(org.fisco.bcos.web3j.abi.datatypes.DynamicBytes) Bool(org.fisco.bcos.web3j.abi.datatypes.Bool) Uint16(org.fisco.bcos.web3j.abi.datatypes.generated.Uint16) ArrayList(java.util.ArrayList) List(java.util.List) TypeReference(org.fisco.bcos.web3j.abi.TypeReference) StaticArray(org.fisco.bcos.web3j.abi.datatypes.StaticArray) TransactionReceipt(org.fisco.bcos.web3j.protocol.core.methods.response.TransactionReceipt) Utf8String(org.fisco.bcos.web3j.abi.datatypes.Utf8String) Int256(org.fisco.bcos.web3j.abi.datatypes.generated.Int256) Type(org.fisco.bcos.web3j.abi.datatypes.Type) DynamicArray(org.fisco.bcos.web3j.abi.datatypes.DynamicArray) BigInteger(java.math.BigInteger) StaticArray2(org.fisco.bcos.web3j.abi.datatypes.generated.StaticArray2)

Aggregations

Utf8String (org.fisco.bcos.web3j.abi.datatypes.Utf8String)30 DynamicBytes (org.fisco.bcos.web3j.abi.datatypes.DynamicBytes)20 Bool (org.fisco.bcos.web3j.abi.datatypes.Bool)19 Int256 (org.fisco.bcos.web3j.abi.datatypes.generated.Int256)19 Type (org.fisco.bcos.web3j.abi.datatypes.Type)18 Test (org.junit.Test)18 Address (org.fisco.bcos.web3j.abi.datatypes.Address)17 Uint256 (org.fisco.bcos.web3j.abi.datatypes.generated.Uint256)17 TypeReference (org.fisco.bcos.web3j.abi.TypeReference)13 Bytes32 (org.fisco.bcos.web3j.abi.datatypes.generated.Bytes32)12 NamedType (org.fisco.bcos.web3j.protocol.core.methods.response.AbiDefinition.NamedType)11 Function (org.fisco.bcos.web3j.abi.datatypes.Function)10 DynamicArray (org.fisco.bcos.web3j.abi.datatypes.DynamicArray)9 Event (org.fisco.bcos.web3j.abi.datatypes.Event)9 ArrayList (java.util.ArrayList)7 List (java.util.List)6 Log (org.fisco.bcos.web3j.protocol.core.methods.response.Log)5 Bytes (org.fisco.bcos.web3j.abi.datatypes.Bytes)4 AbiDefinition (org.fisco.bcos.web3j.protocol.core.methods.response.AbiDefinition)4 EncryptType (org.fisco.bcos.web3j.crypto.EncryptType)3