1
- use anyhow:: Context ;
2
1
use futures:: future;
3
2
use futures:: prelude:: * ;
4
3
use graph:: blockchain:: BlockHash ;
@@ -510,6 +509,9 @@ impl EthereumAdapter {
510
509
const PARITY_BAD_JUMP_PREFIX : & str = "Bad jump" ;
511
510
const PARITY_STACK_LIMIT_PREFIX : & str = "Out of stack" ;
512
511
512
+ // See f0af4ab0-6b7c-4b68-9141-5b79346a5f61.
513
+ const PARITY_OUT_OF_GAS : & str = "Out of gas" ;
514
+
513
515
const PARITY_VM_EXECUTION_ERROR : i64 = -32015 ;
514
516
const PARITY_REVERT_PREFIX : & str = "Reverted 0x" ;
515
517
@@ -549,7 +551,7 @@ impl EthereumAdapter {
549
551
Err ( web3:: Error :: Rpc ( rpc_error) )
550
552
if GETH_EXECUTION_ERRORS
551
553
. iter ( )
552
- . any ( |e| rpc_error. message . contains ( e) ) =>
554
+ . any ( |e| rpc_error. message . to_lowercase ( ) . contains ( e) ) =>
553
555
{
554
556
Err ( EthereumContractCallError :: Revert ( rpc_error. message ) )
555
557
}
@@ -564,7 +566,8 @@ impl EthereumAdapter {
564
566
|| data. starts_with ( PARITY_BAD_JUMP_PREFIX )
565
567
|| data. starts_with ( PARITY_STACK_LIMIT_PREFIX )
566
568
|| data == PARITY_BAD_INSTRUCTION_FE
567
- || data == PARITY_BAD_INSTRUCTION_FD =>
569
+ || data == PARITY_BAD_INSTRUCTION_FD
570
+ || data == PARITY_OUT_OF_GAS =>
568
571
{
569
572
let reason = if data == PARITY_BAD_INSTRUCTION_FE {
570
573
PARITY_BAD_INSTRUCTION_FE . to_owned ( )
@@ -829,11 +832,7 @@ impl EthereumAdapter {
829
832
. timeout_secs ( * JSON_RPC_TIMEOUT )
830
833
. run ( move || {
831
834
let web3 = web3. cheap_clone ( ) ;
832
- async move {
833
- {
834
- web3. eth ( ) . chain_id ( ) . await
835
- }
836
- }
835
+ async move { web3. eth ( ) . chain_id ( ) . await }
837
836
} )
838
837
. await ?,
839
838
)
@@ -860,7 +859,7 @@ impl EthereumAdapterTrait for EthereumAdapter {
860
859
. timeout_secs ( 20 )
861
860
. run ( move || {
862
861
let web3 = web3. cheap_clone ( ) ;
863
- async move { web3. net ( ) . version ( ) . await . with_context ( || "boom" ) }
862
+ async move { web3. net ( ) . version ( ) . await . map_err ( Into :: into ) }
864
863
} )
865
864
. boxed ( ) ;
866
865
0 commit comments