diff --git a/common/model/api_response.go b/common/model/api_response.go index 5e45ec29..39c7bf36 100644 --- a/common/model/api_response.go +++ b/common/model/api_response.go @@ -1,12 +1,12 @@ package model type TryPayUserOpResponse struct { - StrategyId string `json:"strategy_id"` - EntryPointAddress string `json:"entry_point_address"` - PayMasterAddress string `json:"pay_master_address"` - PayMasterSignature string `json:"pay_master_signature"` - PayReceipt interface{} `json:"pay_receipt"` - GasInfo ComputeGasResponse `json:"gaf_info"` + StrategyId string `json:"strategy_id"` + EntryPointAddress string `json:"entry_point_address"` + PayMasterAddress string `json:"pay_master_address"` + PayMasterSignature string `json:"pay_master_signature"` + PayReceipt interface{} `json:"pay_receipt"` + GasInfo *ComputeGasResponse `json:"gaf_info"` } type ComputeGasResponse struct { diff --git a/rpc_server/api/v1/get_support_entrypoint.go b/rpc_server/api/v1/get_support_entrypoint.go index c6d686e4..07e4f0c1 100644 --- a/rpc_server/api/v1/get_support_entrypoint.go +++ b/rpc_server/api/v1/get_support_entrypoint.go @@ -32,7 +32,7 @@ func GetSupportEntrypoint(c *gin.Context) { } //2. recall service - result, err := operator.GetSupportEntrypointExecute(request) + result, err := operator.GetSupportEntrypointExecute(&request) if err != nil { errStr := fmt.Sprintf("%v", err) response.SetHttpCode(http.StatusInternalServerError).FailCode(c, http.StatusInternalServerError, errStr) diff --git a/rpc_server/api/v1/try_pay_user_operation.go b/rpc_server/api/v1/try_pay_user_operation.go index ce5c1edd..b4e1508e 100644 --- a/rpc_server/api/v1/try_pay_user_operation.go +++ b/rpc_server/api/v1/try_pay_user_operation.go @@ -33,7 +33,7 @@ func TryPayUserOperation(c *gin.Context) { return } //2. recall service - result, err := operator.TryPayUserOpExecute(request) + result, err := operator.TryPayUserOpExecute(&request) if err != nil { errStr := fmt.Sprintf("TryPayUserOpExecute ERROR [%v]", err) response.SetHttpCode(http.StatusInternalServerError).FailCode(c, http.StatusInternalServerError, errStr) diff --git a/service/dashboard_service/strategy_selector.go b/service/dashboard_service/strategy_selector.go index c4ac6d48..61ab5006 100644 --- a/service/dashboard_service/strategy_selector.go +++ b/service/dashboard_service/strategy_selector.go @@ -4,7 +4,7 @@ import ( "AAStarCommunity/EthPaymaster_BackService/common/model" ) -func GetSuitableStrategy(entrypoint string, network string, token string) (model.Strategy, error) { +func GetSuitableStrategy(entrypoint *string, network *string, token *string) (model.Strategy, error) { return model.Strategy{}, nil diff --git a/service/gas_service/gas_compotor.go b/service/gas_service/gas_compotor.go index fcae3d59..d80a4526 100644 --- a/service/gas_service/gas_compotor.go +++ b/service/gas_service/gas_compotor.go @@ -2,10 +2,10 @@ package gas_service import "AAStarCommunity/EthPaymaster_BackService/common/model" -func ComputeGas(userOp model.UserOperationItem, strategy model.Strategy) (model.ComputeGasResponse, error) { - return model.ComputeGasResponse{}, nil +func ComputeGas(userOp *model.UserOperationItem, strategy *model.Strategy) (*model.ComputeGasResponse, error) { + return &model.ComputeGasResponse{}, nil } -func ValidateGas(userOp model.UserOperationItem, gasComputeResponse model.ComputeGasResponse) error { +func ValidateGas(userOp *model.UserOperationItem, gasComputeResponse *model.ComputeGasResponse) error { return nil } diff --git a/service/operator/get_support_entry_point_execute.go b/service/operator/get_support_entry_point_execute.go index 2a03206e..b3f5cd9c 100644 --- a/service/operator/get_support_entry_point_execute.go +++ b/service/operator/get_support_entry_point_execute.go @@ -2,6 +2,6 @@ package operator import "AAStarCommunity/EthPaymaster_BackService/common/model" -func GetSupportEntrypointExecute(request model.GetSupportEntrypointRequest) (model.Result, error) { - return model.Result{}, nil +func GetSupportEntrypointExecute(request *model.GetSupportEntrypointRequest) (*model.Result, error) { + return &model.Result{}, nil } diff --git a/service/operator/get_support_strategy_execute.go b/service/operator/get_support_strategy_execute.go index ba50edc4..b0cd18f4 100644 --- a/service/operator/get_support_strategy_execute.go +++ b/service/operator/get_support_strategy_execute.go @@ -4,6 +4,6 @@ import ( "AAStarCommunity/EthPaymaster_BackService/common/model" ) -func GetSupportStrategyExecute(request model.GetSupportStrategyRequest) (model.Result, error) { - return model.Result{}, nil +func GetSupportStrategyExecute(request *model.GetSupportStrategyRequest) (*model.Result, error) { + return &model.Result{}, nil } diff --git a/service/operator/get_support_strategy_text.go b/service/operator/get_support_strategy_test.go similarity index 100% rename from service/operator/get_support_strategy_text.go rename to service/operator/get_support_strategy_test.go diff --git a/service/operator/try_pay_user_op_execute.go b/service/operator/try_pay_user_op_execute.go index 30fbfff5..3491526a 100644 --- a/service/operator/try_pay_user_op_execute.go +++ b/service/operator/try_pay_user_op_execute.go @@ -8,37 +8,37 @@ import ( "golang.org/x/xerrors" ) -func TryPayUserOpExecute(request model.TryPayUserOpRequest) (model.Result, error) { +func TryPayUserOpExecute(request *model.TryPayUserOpRequest) (*model.Result, error) { //validator if err := businessParamValidate(request); err != nil { - return model.Result{}, err + return &model.Result{}, err } userOp := request.UserOperation //getStrategy strategy, err := strategyGenerate(request) if err != nil { - return model.Result{}, err + return &model.Result{}, err } - if err := validator_service.ValidateStrategy(strategy, userOp); err != nil { - return model.Result{}, err + if err := validator_service.ValidateStrategy(strategy, &userOp); err != nil { + return &model.Result{}, err } //base Strategy and UserOp computeGas - gasResponse, gasComputeError := gas_service.ComputeGas(userOp, strategy) + gasResponse, gasComputeError := gas_service.ComputeGas(&userOp, strategy) if gasComputeError != nil { - return model.Result{}, gasComputeError + return &model.Result{}, gasComputeError } //validate gas - if err := gas_service.ValidateGas(userOp, gasResponse); err != nil { - return model.Result{}, err + if err := gas_service.ValidateGas(&userOp, gasResponse); err != nil { + return &model.Result{}, err } //pay - payReceipt, payError := executePay(strategy, request.UserOperation, gasResponse) + payReceipt, payError := executePay(strategy, &userOp, gasResponse) if payError != nil { - return model.Result{}, payError + return &model.Result{}, payError } - paymasterSignature := getPayMasterSignature(strategy, request.UserOperation) + paymasterSignature := getPayMasterSignature(strategy, &userOp) var result = model.TryPayUserOpResponse{ StrategyId: strategy.Id, EntryPointAddress: strategy.EntryPointAddress, @@ -48,44 +48,44 @@ func TryPayUserOpExecute(request model.TryPayUserOpRequest) (model.Result, error GasInfo: gasResponse, } - return model.Result{ + return &model.Result{ Code: 200, Data: result, Message: "message", Cost: "cost", }, nil } -func businessParamValidate(request model.TryPayUserOpRequest) error { +func businessParamValidate(request *model.TryPayUserOpRequest) error { //UserOp Validate return nil } -func executePay(strategy model.Strategy, userOp model.UserOperationItem, gasResponse model.ComputeGasResponse) (interface{}, error) { +func executePay(strategy *model.Strategy, userOp *model.UserOperationItem, gasResponse *model.ComputeGasResponse) (interface{}, error) { //1.Recharge //2.record account //3.return Receipt return nil, nil } -func getPayMasterSignature(strategy model.Strategy, userOp model.UserOperationItem) string { +func getPayMasterSignature(strategy *model.Strategy, userOp *model.UserOperationItem) string { return "" } -func strategyGenerate(request model.TryPayUserOpRequest) (model.Strategy, error) { +func strategyGenerate(request *model.TryPayUserOpRequest) (*model.Strategy, error) { if forceStrategyId := request.ForceStrategyId; forceStrategyId != "" { //force strategy strategy := dashboard_service.GetStrategyById(forceStrategyId) if strategy == (model.Strategy{}) { - return model.Strategy{}, xerrors.Errorf("Not Support Strategy ID: [%w]", forceStrategyId) + return &model.Strategy{}, xerrors.Errorf("Not Support Strategy ID: [%w]", forceStrategyId) } - return strategy, nil + return &strategy, nil } - suitableStrategy, err := dashboard_service.GetSuitableStrategy(request.ForceEntryPointAddress, request.ForceNetWork, request.ForceTokens) //TODO + suitableStrategy, err := dashboard_service.GetSuitableStrategy(&request.ForceEntryPointAddress, &request.ForceNetWork, &request.ForceTokens) //TODO if err != nil { - return model.Strategy{}, err + return &model.Strategy{}, err } if suitableStrategy == (model.Strategy{}) { - return model.Strategy{}, xerrors.Errorf("Empty Strategies") + return &model.Strategy{}, xerrors.Errorf("Empty Strategies") } - return suitableStrategy, nil + return &suitableStrategy, nil } diff --git a/service/validator_service/basic_validator.go b/service/validator_service/basic_validator.go index f10077c5..d893f658 100644 --- a/service/validator_service/basic_validator.go +++ b/service/validator_service/basic_validator.go @@ -2,7 +2,6 @@ package validator_service import "AAStarCommunity/EthPaymaster_BackService/common/model" -func ValidateStrategy(strategy model.Strategy, userOp model.UserOperationItem) error { - +func ValidateStrategy(strategy *model.Strategy, userOp *model.UserOperationItem) error { return nil }