### Question:
DelegateContract extends BaseContract { public RemoteCall<TransactionResponse> unDelegate(String nodeId, BigInteger stakingBlockNum, BigInteger amount) { Function function = createUnDelegateFunction(nodeId, stakingBlockNum, amount); return executeRemoteCallTransaction(function); } private  DelegateContract(String contractAddress, Web3j web3j); private  DelegateContract(String contractAddress, long chainId, Web3j web3j, Credentials credentials); private  DelegateContract(String contractAddress, Web3j web3j, TransactionManager transactionManager); static DelegateContract load(Web3j web3j, long chainId); static DelegateContract load(Web3j web3j, TransactionManager transactionManager, long chainId); static DelegateContract load(Web3j web3j, Credentials credentials, long chainId); RemoteCall<TransactionResponse> delegate(String nodeId, StakingAmountType stakingAmountType, BigInteger amount); RemoteCall<TransactionResponse> delegate(String nodeId, StakingAmountType stakingAmountType, BigInteger amount, GasProvider gasProvider); GasProvider getDelegateGasProvider(String nodeId, StakingAmountType stakingAmountType, BigInteger amount); RemoteCall<PlatonSendTransaction> delegateReturnTransaction(String nodeId, StakingAmountType stakingAmountType, BigInteger amount); RemoteCall<PlatonSendTransaction> delegateReturnTransaction(String nodeId, StakingAmountType stakingAmountType, BigInteger amount, GasProvider gasProvider); RemoteCall<TransactionResponse> unDelegate(String nodeId, BigInteger stakingBlockNum, BigInteger amount); RemoteCall<TransactionResponse> unDelegate(String nodeId, BigInteger stakingBlockNum, BigInteger amount, GasProvider gasProvider); GasProvider getUnDelegateGasProvider(String nodeId, BigInteger stakingBlockNum, BigInteger amount); RemoteCall<PlatonSendTransaction> unDelegateReturnTransaction(String nodeId, BigInteger stakingBlockNum, BigInteger amount); RemoteCall<PlatonSendTransaction> unDelegateReturnTransaction(String nodeId, BigInteger stakingBlockNum, BigInteger amount, GasProvider gasProvider); BigInteger decodeUnDelegateLog(TransactionReceipt transactionReceipt); RemoteCall<CallResponse<Delegation>> getDelegateInfo(String nodeId, String delAddr, BigInteger stakingBlockNum); RemoteCall<CallResponse<List<DelegationIdInfo>>> getRelatedListByDelAddr(String address);  }### Answer:
@Test public void unDelegate() { try { PlatonSendTransaction platonSendTransaction = delegateContract.unDelegateReturnTransaction(nodeId, stakingNb, new BigInteger("100000000000000000000")).send(); TransactionResponse baseResponse = delegateContract.getTransactionResponse(platonSendTransaction).send(); if(baseResponse.isStatusOk()){ BigInteger value = delegateContract.decodeUnDelegateLog(baseResponse.getTransactionReceipt()); System.out.println(value); } System.out.println(baseResponse.toString()); } catch (Exception e) { e.printStackTrace(); } }