@@ -4,10 +4,8 @@ import cc.etherspace.calladapter.CallAdapter
44import cc.etherspace.calladapter.PassThroughCallAdaptor
55import cc.etherspace.web3j.Web3jAdapter
66import com.google.common.reflect.TypeToken
7- import kotlinx.coroutines.experimental.runBlocking
87import okhttp3.OkHttpClient
98import java.io.IOException
10- import java.lang.Thread.sleep
119import java.lang.reflect.AnnotatedElement
1210import java.lang.reflect.Method
1311import java.lang.reflect.Proxy
@@ -59,7 +57,8 @@ class EtherSpace(val web3: Web3,
5957 if (functionName.isNotBlank()) functionName else method.name,
6058 params,
6159 actualReturnType,
62- options)
60+ options,
61+ callAdapter)
6362 }
6463
6564 throw IllegalArgumentException (" There is no Send/Call annotation on this method" )
@@ -78,7 +77,8 @@ class EtherSpace(val web3: Web3,
7877 functionName : String ,
7978 args : List <Any >,
8079 returnType : Type ,
81- options : Options ): Any {
80+ options : Options ,
81+ callAdapter : CallAdapter <Any , Any >): Any {
8282 val cd = options.credentials ? : credentials
8383 ? : throw IllegalArgumentException (" Credentials not set" )
8484 val np = options.nonceProvider ? : nonceProvider
@@ -95,12 +95,10 @@ class EtherSpace(val web3: Web3,
9595 return when {
9696 returnTypeToken.isSubtypeOf(String ::class .java) -> transactionHash
9797 returnTypeToken.isSubtypeOf(TransactionReceipt ::class .java) -> {
98- runBlocking {
99- TransactionHash (web3, transactionHash).requestTransactionReceipt()
100- }
98+ TransactionHash (web3, transactionHash, callAdapter).requestTransactionReceiptBlocking()
10199 }
102100 returnTypeToken.isSubtypeOf(TransactionHash ::class .java) -> {
103- TransactionHash (web3, transactionHash)
101+ TransactionHash (web3, transactionHash, callAdapter )
104102 }
105103 else -> throw IllegalArgumentException (" Unknown return type:${returnType.typeName} " )
106104 }
0 commit comments