Jelajahi Sumber

能够返回指定格式数据

skyfffire 2 tahun lalu
induk
melakukan
ef175b2729
2 mengubah file dengan 10 tambahan dan 7 penghapusan
  1. 8 5
      consensus/satoshi/satoshi.go
  2. 2 2
      internal/ethapi/api.go

+ 8 - 5
consensus/satoshi/satoshi.go

@@ -1068,20 +1068,23 @@ func (p *Satoshi) getCurrentValidators(blockHash common.Hash) ([]common.Address,
 	msgData := (hexutil.Bytes)(data)
 	toAddress := common.HexToAddress(systemcontracts.ValidatorContract)
 	gas := (hexutil.Uint64)(uint64(math.MaxUint64 / 2))
-	_, result := p.ethAPI.Call(ctx, ethapi.CallArgs{
+	_, err = p.ethAPI.Call(ctx, ethapi.CallArgs{
 		Gas:  &gas,
 		To:   &toAddress,
 		Data: &msgData,
 	}, blockNr, nil)
+	if err != nil {
+		return nil, err
+	}
 
 	var (
 		ret0 = new([]common.Address)
 	)
-	out := ret0
+	//out := ret0
 
-	if err := p.validatorSetABI.UnpackIntoInterface(out, method, result.Return()); err != nil {
-		return nil, err
-	}
+	//if err := p.validatorSetABI.UnpackIntoInterface(out, method, result.Return()); err != nil {
+	//	return nil, err
+	//}
 
 	valz := make([]common.Address, len(*ret0))
 	for i, a := range *ret0 {

+ 2 - 2
internal/ethapi/api.go

@@ -1074,12 +1074,12 @@ func (e *revertError) ErrorData() interface{} {
 //
 // Note, this function doesn't make and changes in the state/blockchain and is
 // useful to execute and retrieve values.
-func (s *PublicBlockChainAPI) Call(ctx context.Context, args CallArgs, blockNrOrHash rpc.BlockNumberOrHash, overrides *StateOverride) (CallResult, *core.ExecutionResult) {
+func (s *PublicBlockChainAPI) Call(ctx context.Context, args CallArgs, blockNrOrHash rpc.BlockNumberOrHash, overrides *StateOverride) (CallResult, error) {
 	result, err := DoCall(ctx, s.b, args, blockNrOrHash, overrides, vm.Config{}, 5*time.Second, s.b.RPCGasCap())
 	if err != nil {
 		return CallResult{Success: false, Return: nil, Msg: err.Error()}, nil
 	} else {
-		return CallResult{Success: true, Return: result.Return(), Msg: "Success."}, result
+		return CallResult{Success: true, Return: result.Return(), Msg: "Success."}, nil
 	}
 }