1
1
using System . Threading ;
2
2
using System . Threading . Tasks ;
3
+ using Nethereum . ABI . Decoders ;
3
4
using Nethereum . ABI . FunctionEncoding . Attributes ;
4
5
using Nethereum . Hex . HexTypes ;
5
6
using Nethereum . RPC . Eth . DTOs ;
@@ -172,8 +173,36 @@ public Task<TReturn> QueryAsync<TEthereumContractFunctionMessage, TReturn>(Block
172
173
return QueryAsync < TEthereumContractFunctionMessage , TReturn > ( ethereumContractFunctionMessage ,
173
174
blockParameter ) ;
174
175
}
176
+
177
+ public Task < byte [ ] > QueryRawAsync < TEthereumContractFunctionMessage > ( TEthereumContractFunctionMessage ethereumContractFunctionMessage , BlockParameter blockParameter = null )
178
+ where TEthereumContractFunctionMessage : ContractMessage , new ( )
179
+ {
180
+ SetAddressFrom ( ethereumContractFunctionMessage ) ;
181
+ var queryHandler = EthApiContractService . GetContractQueryHandler < TEthereumContractFunctionMessage > ( ) ;
182
+ return queryHandler . QueryRawAsync ( ethereumContractFunctionMessage ,
183
+ ContractAddress , blockParameter ) ;
184
+ }
185
+
186
+ public Task < byte [ ] > QueryRawAsync < TEthereumContractFunctionMessage > ( BlockParameter blockParameter = null )
187
+ where TEthereumContractFunctionMessage : ContractMessage , new ( )
188
+ {
189
+ var ethereumContractFunctionMessage = new TEthereumContractFunctionMessage ( ) ;
190
+ return QueryRawAsync < TEthereumContractFunctionMessage > ( ethereumContractFunctionMessage ,
191
+ blockParameter ) ;
192
+ }
193
+
194
+ public async Task < TReturn > QueryRawAsync < TEthereumContractFunctionMessage , TCustomDecoder , TReturn > ( BlockParameter blockParameter = null )
195
+ where TEthereumContractFunctionMessage : ContractMessage , new ( )
196
+ where TCustomDecoder : ICustomRawDecoder < TReturn > , new ( )
197
+ {
198
+ var ethereumContractFunctionMessage = new TEthereumContractFunctionMessage ( ) ;
199
+ var result = await QueryRawAsync < TEthereumContractFunctionMessage > ( ethereumContractFunctionMessage ,
200
+ blockParameter ) ;
201
+ var decoder = new TCustomDecoder ( ) ;
202
+ return decoder . Decode ( result ) ;
203
+ }
175
204
#endif
176
-
205
+
177
206
}
178
207
179
208
}
0 commit comments