diff --git a/.golangci.yml b/.golangci.yml index 8525c117..06e0eb5f 100644 --- a/.golangci.yml +++ b/.golangci.yml @@ -9,7 +9,7 @@ run: # Go version to use for analysis # Default: auto-detected - go: "1.24" + go: "1.22" # Exit code when at least one issue was found. # Default: 1 diff --git a/aggregator/pool.go b/aggregator/pool.go index 4047e21a..aec89fde 100644 --- a/aggregator/pool.go +++ b/aggregator/pool.go @@ -25,7 +25,7 @@ type OperatorNode struct { func (o *OperatorNode) LastSeen() string { now := time.Now() - + var last time.Time if o.LastPingEpoch > 1e12 { // Threshold for milliseconds (timestamps after 2001) last = time.Unix(o.LastPingEpoch/1000, 0) diff --git a/aggregator/pool_test.go b/aggregator/pool_test.go index bc75733f..1a9e5b27 100644 --- a/aggregator/pool_test.go +++ b/aggregator/pool_test.go @@ -7,7 +7,7 @@ import ( func TestLastSeen(t *testing.T) { now := time.Now() - + testCases := []struct { name string lastPingEpoch int64 @@ -53,7 +53,7 @@ func TestLastSeen(t *testing.T) { LastPingEpoch: tc.lastPingEpoch, Version: "1.0.0", } - + result := node.LastSeen() if result != tc.expectedFormat { t.Errorf("Expected format %s, got %s", tc.expectedFormat, result) diff --git a/aggregator/rpc_server.go b/aggregator/rpc_server.go index c3eaec9d..243f7c37 100644 --- a/aggregator/rpc_server.go +++ b/aggregator/rpc_server.go @@ -349,7 +349,6 @@ func (r *RpcServer) GetExecutionCount(ctx context.Context, req *avsproto.GetExec return r.engine.GetExecutionCount(user, req) } - // Operator action func (r *RpcServer) SyncMessages(payload *avsproto.SyncMessagesReq, srv avsproto.Node_SyncMessagesServer) error { err := r.engine.StreamCheckToOperator(payload, srv) diff --git a/core/apqueue/queue.go b/core/apqueue/queue.go index 24d8ade6..62d0c3d9 100644 --- a/core/apqueue/queue.go +++ b/core/apqueue/queue.go @@ -9,8 +9,6 @@ import ( sdklogging "github.com/Layr-Labs/eigensdk-go/logging" ) -var () - type Queue struct { db storage.Storage dbLock sync.Mutex diff --git a/core/chainio/avs_writer.go b/core/chainio/avs_writer.go index 0824b99d..46e1f635 100644 --- a/core/chainio/avs_writer.go +++ b/core/chainio/avs_writer.go @@ -38,10 +38,10 @@ func BuildAvsWriter(txMgr txmgr.TxManager, registryCoordinatorAddr, operatorStat //avsRegistryWriter, err := avsregistry.BuildAvsRegistryChainWriter(registryCoordinatorAddr, operatorStateRetrieverAddr, logger, ethHttpClient, txMgr) avsRegistryWriter, err := avsregistry.NewWriterFromConfig( avsregistry.Config{ - RegistryCoordinatorAddress: registryCoordinatorAddr, + RegistryCoordinatorAddress: registryCoordinatorAddr, OperatorStateRetrieverAddress: operatorStateRetrieverAddr, }, - ethHttpClient, txMgr,logger, + ethHttpClient, txMgr, logger, ) if err != nil { return nil, err @@ -50,7 +50,7 @@ func BuildAvsWriter(txMgr txmgr.TxManager, registryCoordinatorAddr, operatorStat } func NewAvsWriter(avsRegistryWriter *avsregistry.ChainWriter, avsServiceBindings *AvsManagersBindings, logger logging.Logger, txMgr txmgr.TxManager) *AvsWriter { return &AvsWriter{ - ChainWriter: avsRegistryWriter, + ChainWriter: avsRegistryWriter, AvsContractBindings: avsServiceBindings, logger: logger, TxMgr: txMgr, diff --git a/core/taskengine/engine.go b/core/taskengine/engine.go index c6cd3dba..cc104476 100644 --- a/core/taskengine/engine.go +++ b/core/taskengine/engine.go @@ -537,7 +537,7 @@ func (n *Engine) ListTasksByUser(user *model.User, payload *avsproto.ListTasksRe } func (n *Engine) GetTaskByID(taskID string) (*model.Task, error) { - for status, _ := range avsproto.TaskStatus_name { + for status := range avsproto.TaskStatus_name { if rawTaskData, err := n.db.GetKey(TaskStorageKey(taskID, avsproto.TaskStatus(status))); err == nil { task := model.NewTask() err = task.FromStorageData(rawTaskData) @@ -1059,4 +1059,4 @@ func (n *Engine) GetWorkflowCount(user *model.User, payload *avsproto.GetWorkflo return &avsproto.GetWorkflowCountResp{ Total: total, }, nil -} \ No newline at end of file +} diff --git a/core/taskengine/executor_test.go b/core/taskengine/executor_test.go index f39dc4b2..40fe54c9 100644 --- a/core/taskengine/executor_test.go +++ b/core/taskengine/executor_test.go @@ -29,13 +29,13 @@ func TestExecutorRunTaskSucess(t *testing.T) { defer server.Close() nodes := []*avsproto.TaskNode{ - &avsproto.TaskNode{ + { Id: "branch1", Name: "branch", TaskType: &avsproto.TaskNode_Branch{ Branch: &avsproto.BranchNode{ Conditions: []*avsproto.Condition{ - &avsproto.Condition{ + { Id: "a1", Type: "if", // The test data is of this transaction https://sepolia.etherscan.io/tx/0x53beb2163994510e0984b436ebc828dc57e480ee671cfbe7ed52776c2a4830c8 which is 3.45 token @@ -45,7 +45,7 @@ func TestExecutorRunTaskSucess(t *testing.T) { }, }, }, - &avsproto.TaskNode{ + { Id: "notification1", Name: "httpnode", TaskType: &avsproto.TaskNode_RestApi{ @@ -63,12 +63,12 @@ func TestExecutorRunTaskSucess(t *testing.T) { Name: "triggertest", } edges := []*avsproto.TaskEdge{ - &avsproto.TaskEdge{ + { Id: "e1", Source: trigger.Id, Target: "branch1", }, - &avsproto.TaskEdge{ + { Id: "e1", Source: "branch1.a1", Target: "notification1", @@ -135,13 +135,13 @@ func TestExecutorRunTaskStopAndReturnErrorWhenANodeFailed(t *testing.T) { defer storage.Destroy(db.(*storage.BadgerStorage)) nodes := []*avsproto.TaskNode{ - &avsproto.TaskNode{ + { Id: "branch1", Name: "branch", TaskType: &avsproto.TaskNode_Branch{ Branch: &avsproto.BranchNode{ Conditions: []*avsproto.Condition{ - &avsproto.Condition{ + { Id: "a1", Type: "if", Expression: "a >= 5", @@ -150,7 +150,7 @@ func TestExecutorRunTaskStopAndReturnErrorWhenANodeFailed(t *testing.T) { }, }, }, - &avsproto.TaskNode{ + { Id: "notification1", Name: "httpnode", TaskType: &avsproto.TaskNode_RestApi{ @@ -168,12 +168,12 @@ func TestExecutorRunTaskStopAndReturnErrorWhenANodeFailed(t *testing.T) { Name: "triggertest", } edges := []*avsproto.TaskEdge{ - &avsproto.TaskEdge{ + { Id: "e1", Source: trigger.Id, Target: "branch1", }, - &avsproto.TaskEdge{ + { Id: "e1", Source: "branch1.a1", Target: "notification1", @@ -229,13 +229,13 @@ func TestExecutorRunTaskComputeSuccessFalseWhenANodeFailedToRun(t *testing.T) { defer storage.Destroy(db.(*storage.BadgerStorage)) nodes := []*avsproto.TaskNode{ - &avsproto.TaskNode{ + { Id: "branch1", Name: "branch", TaskType: &avsproto.TaskNode_Branch{ Branch: &avsproto.BranchNode{ Conditions: []*avsproto.Condition{ - &avsproto.Condition{ + { Id: "condition1", Type: "if", Expression: "true", @@ -244,7 +244,7 @@ func TestExecutorRunTaskComputeSuccessFalseWhenANodeFailedToRun(t *testing.T) { }, }, }, - &avsproto.TaskNode{ + { Id: "rest1", Name: "httpnode", TaskType: &avsproto.TaskNode_RestApi{ @@ -262,12 +262,12 @@ func TestExecutorRunTaskComputeSuccessFalseWhenANodeFailedToRun(t *testing.T) { Name: "triggertest", } edges := []*avsproto.TaskEdge{ - &avsproto.TaskEdge{ + { Id: "e1", Source: trigger.Id, Target: "branch1", }, - &avsproto.TaskEdge{ + { Id: "e1", Source: "branch1.condition1", Target: "rest1", @@ -325,7 +325,7 @@ func TestExecutorRunTaskReturnAllExecutionData(t *testing.T) { defer server.Close() nodes := []*avsproto.TaskNode{ - &avsproto.TaskNode{ + { Id: "spacex", Name: "spacex", TaskType: &avsproto.TaskNode_GraphqlQuery{ @@ -345,13 +345,13 @@ func TestExecutorRunTaskReturnAllExecutionData(t *testing.T) { }, }, }, - &avsproto.TaskNode{ + { Id: "branch1", Name: "branch", TaskType: &avsproto.TaskNode_Branch{ Branch: &avsproto.BranchNode{ Conditions: []*avsproto.Condition{ - &avsproto.Condition{ + { Id: "condition1", Type: "if", Expression: "Number(triggertest.data.value_formatted) >= 3", @@ -360,7 +360,7 @@ func TestExecutorRunTaskReturnAllExecutionData(t *testing.T) { }, }, }, - &avsproto.TaskNode{ + { Id: "customcode1", Name: "dummy", TaskType: &avsproto.TaskNode_CustomCode{ @@ -370,7 +370,7 @@ func TestExecutorRunTaskReturnAllExecutionData(t *testing.T) { }, }, }, - &avsproto.TaskNode{ + { Id: "rest1", Name: "http", TaskType: &avsproto.TaskNode_RestApi{ @@ -388,22 +388,22 @@ func TestExecutorRunTaskReturnAllExecutionData(t *testing.T) { Name: "triggertest", } edges := []*avsproto.TaskEdge{ - &avsproto.TaskEdge{ + { Id: "e0", Source: trigger.Id, Target: "spacex", }, - &avsproto.TaskEdge{ + { Id: "e1", Source: "spacex", Target: "branch1", }, - &avsproto.TaskEdge{ + { Id: "e1", Source: "branch1.condition1", Target: "customcode1", }, - &avsproto.TaskEdge{ + { Id: "e2", Source: "customcode1", Target: "rest1", diff --git a/core/taskengine/schema.go b/core/taskengine/schema.go index b9b5d280..8a420f66 100644 --- a/core/taskengine/schema.go +++ b/core/taskengine/schema.go @@ -177,4 +177,4 @@ func SecretNameFromKey(key string) *model.Secret { // ContractWriteCounterKey returns the key for the contract write counter of a given eoa in our kv store func ContractWriteCounterKey(eoa common.Address) []byte { return []byte(fmt.Sprintf("ct:cw:%s", strings.ToLower(eoa.Hex()))) -} \ No newline at end of file +} diff --git a/core/taskengine/trigger/block.go b/core/taskengine/trigger/block.go index e27d0262..dddfb917 100644 --- a/core/taskengine/trigger/block.go +++ b/core/taskengine/trigger/block.go @@ -129,7 +129,7 @@ func (b *BlockTrigger) Run(ctx context.Context) error { for interval, tasks := range b.schedule { z := new(big.Int) if z.Mod(header.Number, big.NewInt(int64(interval))).Cmp(zero) == 0 { - for taskID, _ := range tasks { + for taskID := range tasks { b.triggerCh <- TriggerMetadata[int64]{ TaskID: taskID, Marker: header.Number.Int64(), diff --git a/core/taskengine/trigger/event.go b/core/taskengine/trigger/event.go index 2bec2711..231a82cd 100644 --- a/core/taskengine/trigger/event.go +++ b/core/taskengine/trigger/event.go @@ -24,7 +24,7 @@ var ( // To reduce api call we listen to these topics only // a better idea is to only subscribe to what we need and re-load when new trigger is added whitelistTopics = [][]common.Hash{ - []common.Hash{ + { common.HexToHash("0xddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef"), // erc20 transfer //common.HexToHash("0x49628fd1471006c1482da88028e9ce4dbb080b815c9b0344d39e5a8e6ec1419f"), // UserOp //common.HexToHash("0x8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925"), // approve diff --git a/core/taskengine/trigger/event_test.go b/core/taskengine/trigger/event_test.go index 74392f24..7676fd09 100644 --- a/core/taskengine/trigger/event_test.go +++ b/core/taskengine/trigger/event_test.go @@ -27,7 +27,7 @@ func TestTriggerTopicMatch(t *testing.T) { }, Matcher: []*avsproto.EventCondition_Matcher{ - &avsproto.EventCondition_Matcher{ + { Type: "topics", Value: []string{ "0xddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef", @@ -58,7 +58,7 @@ func TestTriggerTopicNotMatch(t *testing.T) { result, err := eventTrigger.Evaluate(event, &Check{ Matcher: []*avsproto.EventCondition_Matcher{ - &avsproto.EventCondition_Matcher{ + { Type: "topics", Value: []string{ "0xddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef", @@ -90,7 +90,7 @@ func TestTriggerTopicMulti(t *testing.T) { result, err := eventTrigger.Evaluate(event, &Check{ Matcher: []*avsproto.EventCondition_Matcher{ - &avsproto.EventCondition_Matcher{ + { Type: "topics", Value: []string{ "0xddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef", @@ -106,14 +106,14 @@ func TestTriggerTopicMulti(t *testing.T) { result, err = eventTrigger.Evaluate(event, &Check{ Matcher: []*avsproto.EventCondition_Matcher{ - &avsproto.EventCondition_Matcher{ + { Type: "topics", Value: []string{ "0xddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef", "0xd8dA6BF26964aF9D7eEd9e03E53415D37aA96045", }, }, - &avsproto.EventCondition_Matcher{ + { Type: "topics", Value: []string{ "0xddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef", @@ -144,7 +144,7 @@ func TestTriggerAddress(t *testing.T) { result, err := eventTrigger.Evaluate(event, &Check{ Matcher: []*avsproto.EventCondition_Matcher{ - &avsproto.EventCondition_Matcher{ + { Type: "address", Value: []string{ "0x1c7D4B196Cb0C7B01d743Fbc6116a902379C7238", @@ -159,7 +159,7 @@ func TestTriggerAddress(t *testing.T) { result, err = eventTrigger.Evaluate(event, &Check{ Matcher: []*avsproto.EventCondition_Matcher{ - &avsproto.EventCondition_Matcher{ + { Type: "address", Value: []string{ "0x1c7D4B196Cb0C7B01d743Fbc6116a902379C7237", @@ -184,7 +184,7 @@ func TestTriggerAddressNegativeCase(t *testing.T) { result, err := eventTrigger.Evaluate(event, &Check{ Matcher: []*avsproto.EventCondition_Matcher{ - &avsproto.EventCondition_Matcher{ + { Type: "address", Value: []string{ "0x1c7D4B196Cb0C7B01d743Fbc6116a902379C7237", @@ -209,7 +209,7 @@ func TestTriggerNonTransferEvent(t *testing.T) { result, err := eventTrigger.Evaluate(event, &Check{ Matcher: []*avsproto.EventCondition_Matcher{ - &avsproto.EventCondition_Matcher{ + { Type: "topics", Value: []string{ "0x8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0", diff --git a/core/taskengine/trigger/time.go b/core/taskengine/trigger/time.go index 901c97e2..ae059466 100644 --- a/core/taskengine/trigger/time.go +++ b/core/taskengine/trigger/time.go @@ -30,10 +30,10 @@ func NewTimeTrigger(triggerCh chan TriggerMetadata[uint64], logger sdklogging.Lo t := TimeTrigger{ CommonTrigger: &CommonTrigger{ - done: make(chan bool), - shutdown: false, - logger: logger, - mu: sync.Mutex{}, + done: make(chan bool), + shutdown: false, + logger: logger, + mu: sync.Mutex{}, }, scheduler: scheduler, jobs: make(map[string]gocron.Job), @@ -83,7 +83,7 @@ func (t *TimeTrigger) AddCheck(check *avsproto.SyncMessagesResp_TaskMetadata) er t.logger.Info("skipping past epoch", "task_id", taskID, "epoch", epoch) continue } - + cronExpr := t.epochToCron(epoch) job, err = t.scheduler.NewJob( gocron.CronJob(cronExpr, false), @@ -108,7 +108,7 @@ func (t *TimeTrigger) AddCheck(check *avsproto.SyncMessagesResp_TaskMetadata) er if cronExpr == "" { continue } - + job, err = t.scheduler.NewJob( gocron.CronJob(cronExpr, false), gocron.NewTask(triggerFunc), diff --git a/core/taskengine/vm.go b/core/taskengine/vm.go index 6983ad3d..56b50c96 100644 --- a/core/taskengine/vm.go +++ b/core/taskengine/vm.go @@ -135,10 +135,10 @@ type VM struct { // smartWalletConfig contains the smart wallet config for the task. It contains the bundler url, entrypoint address, paymaster address, wallet factory address, etc. smartWalletConfig *config.SmartWalletConfig - logger sdklogging.Logger + logger sdklogging.Logger - // db is used for tracking counter in some nodes, not every node needs it. Example, in contract write we only sponsor first N run so we track this off-chain. Only for tx less than this we will generate PaymasterAndData field - db storage.Storage + // db is used for tracking counter in some nodes, not every node needs it. Example, in contract write we only sponsor first N run so we track this off-chain. Only for tx less than this we will generate PaymasterAndData field + db storage.Storage } func NewVM() *VM { @@ -167,7 +167,7 @@ func (v *VM) WithLogger(logger sdklogging.Logger) *VM { return v } func (v *VM) WithDb(db storage.Storage) *VM { - v.db = db + v.db = db return v } @@ -673,7 +673,7 @@ func (v *VM) preprocessText(text string) string { func (v *VM) CollectInputs() []string { inputs := []string{} - for k, _ := range v.vars { + for k := range v.vars { if slices.Contains(macros.MacroFuncs, k) { continue } diff --git a/core/taskengine/vm_runner_branch_test.go b/core/taskengine/vm_runner_branch_test.go index f0859b45..3da4577e 100644 --- a/core/taskengine/vm_runner_branch_test.go +++ b/core/taskengine/vm_runner_branch_test.go @@ -27,23 +27,23 @@ func TestRunTaskWithMultipleConditions(t *testing.T) { defer ts.Close() nodes := []*avsproto.TaskNode{ - &avsproto.TaskNode{ + { Id: "branch1", Name: "branch", TaskType: &avsproto.TaskNode_Branch{ Branch: &avsproto.BranchNode{ Conditions: []*avsproto.Condition{ - &avsproto.Condition{ + { Id: "condition1", Type: "if", Expression: "a > 10", }, - &avsproto.Condition{ + { Id: "condition2", Type: "if", Expression: "a > 5", }, - &avsproto.Condition{ + { Id: "condition3", Type: "else", }, @@ -51,7 +51,7 @@ func TestRunTaskWithMultipleConditions(t *testing.T) { }, }, }, - &avsproto.TaskNode{ + { Id: "notification1", Name: "httpnode", TaskType: &avsproto.TaskNode_RestApi{ @@ -62,7 +62,7 @@ func TestRunTaskWithMultipleConditions(t *testing.T) { }, }, }, - &avsproto.TaskNode{ + { Id: "notification2", Name: "httpnode", TaskType: &avsproto.TaskNode_RestApi{ @@ -73,7 +73,7 @@ func TestRunTaskWithMultipleConditions(t *testing.T) { }, }, }, - &avsproto.TaskNode{ + { Id: "notification3", Name: "httpnode", TaskType: &avsproto.TaskNode_RestApi{ @@ -91,22 +91,22 @@ func TestRunTaskWithMultipleConditions(t *testing.T) { Name: "triggertest", } edges := []*avsproto.TaskEdge{ - &avsproto.TaskEdge{ + { Id: "e1", Source: trigger.Id, Target: "branch1", }, - &avsproto.TaskEdge{ + { Id: "e2", Source: "branch1.condition1", Target: "notification1", }, - &avsproto.TaskEdge{ + { Id: "e3", Source: "branch1.condition2", Target: "notification2", }, - &avsproto.TaskEdge{ + { Id: "e4", Source: "branch1.condition3", Target: "notification3", diff --git a/core/taskengine/vm_runner_contract_read_test.go b/core/taskengine/vm_runner_contract_read_test.go index 3f291bab..d506d150 100644 --- a/core/taskengine/vm_runner_contract_read_test.go +++ b/core/taskengine/vm_runner_contract_read_test.go @@ -17,7 +17,7 @@ func TestContractReadSimpleReturn(t *testing.T) { ContractAbi: `[{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"balanceOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"}]`, } nodes := []*avsproto.TaskNode{ - &avsproto.TaskNode{ + { Id: "123", Name: "contractQuery", TaskType: &avsproto.TaskNode_ContractRead{ @@ -32,7 +32,7 @@ func TestContractReadSimpleReturn(t *testing.T) { } edges := []*avsproto.TaskEdge{ - &avsproto.TaskEdge{ + { Id: "e1", Source: "triggertestid", Target: "123", @@ -83,7 +83,7 @@ func TestContractReadComplexReturn(t *testing.T) { } nodes := []*avsproto.TaskNode{ - &avsproto.TaskNode{ + { Id: "123abc", Name: "contractQuery", TaskType: &avsproto.TaskNode_ContractRead{ @@ -97,7 +97,7 @@ func TestContractReadComplexReturn(t *testing.T) { Name: "triggertest", } edges := []*avsproto.TaskEdge{ - &avsproto.TaskEdge{ + { Id: "e1", Source: trigger.Id, Target: "123abc", diff --git a/core/taskengine/vm_runner_contract_write_test.go b/core/taskengine/vm_runner_contract_write_test.go index e4dc42a2..424b3768 100644 --- a/core/taskengine/vm_runner_contract_write_test.go +++ b/core/taskengine/vm_runner_contract_write_test.go @@ -27,7 +27,7 @@ func TestContractWriteSimpleReturn(t *testing.T) { CallData: "0xa9059cbb000000000000000000000000e0f7d11fd714674722d325cd86062a5f1882e13a000000000000000000000000000000000000000000000000000000000000003e80000000000000000000000000000000000000000000000000000000", } nodes := []*avsproto.TaskNode{ - &avsproto.TaskNode{ + { Id: "query1", Name: "contractQuery", TaskType: &avsproto.TaskNode_ContractWrite{ @@ -42,7 +42,7 @@ func TestContractWriteSimpleReturn(t *testing.T) { } edges := []*avsproto.TaskEdge{ - &avsproto.TaskEdge{ + { Id: "e1", Source: "triggertestid", Target: "123", @@ -102,7 +102,7 @@ func TestContractWriteSimpleReturn(t *testing.T) { t.Errorf("Test skipped: Contract write operation could not be completed due to connection issues") return } - + if len(outputData.TxReceipt.Hash) != 66 { t.Errorf("Missing Tx Hash in the output data") } diff --git a/core/taskengine/vm_runner_contract_write_transaction_limit_test.go b/core/taskengine/vm_runner_contract_write_transaction_limit_test.go index 05032bb4..d4da81d8 100644 --- a/core/taskengine/vm_runner_contract_write_transaction_limit_test.go +++ b/core/taskengine/vm_runner_contract_write_transaction_limit_test.go @@ -57,7 +57,7 @@ func TestTransactionSponsorshipLimit(t *testing.T) { Name: "triggertest", }, Nodes: []*avsproto.TaskNode{ - &avsproto.TaskNode{ + { Id: "transfer1", Name: "usdcTransfer", TaskType: &avsproto.TaskNode_ContractWrite{ diff --git a/core/taskengine/vm_runner_customcode_test.go b/core/taskengine/vm_runner_customcode_test.go index a5ae10e0..42e9f9d3 100644 --- a/core/taskengine/vm_runner_customcode_test.go +++ b/core/taskengine/vm_runner_customcode_test.go @@ -16,7 +16,7 @@ func TestRunJavaScript(t *testing.T) { Source: "return 3>2", } nodes := []*avsproto.TaskNode{ - &avsproto.TaskNode{ + { Id: "123abc", Name: "customJs", TaskType: &avsproto.TaskNode_CustomCode{ @@ -31,7 +31,7 @@ func TestRunJavaScript(t *testing.T) { } edges := []*avsproto.TaskEdge{ - &avsproto.TaskEdge{ + { Id: "e1", Source: trigger.Id, Target: "123abc", @@ -78,7 +78,7 @@ func TestRunJavaScriptComplex(t *testing.T) { Source: "const a=[1,2,3]; return a.filter((i) => i >= 2);", } nodes := []*avsproto.TaskNode{ - &avsproto.TaskNode{ + { Id: "123abc", Name: "customJs", TaskType: &avsproto.TaskNode_CustomCode{ @@ -92,7 +92,7 @@ func TestRunJavaScriptComplex(t *testing.T) { } edges := []*avsproto.TaskEdge{ - &avsproto.TaskEdge{ + { Id: "e1", Source: trigger.Id, Target: "123abc", @@ -129,7 +129,7 @@ func TestRunJavaScriptComplexWithMap(t *testing.T) { `, } nodes := []*avsproto.TaskNode{ - &avsproto.TaskNode{ + { Id: "123abc", Name: "customJs", TaskType: &avsproto.TaskNode_CustomCode{ @@ -143,7 +143,7 @@ func TestRunJavaScriptComplexWithMap(t *testing.T) { } edges := []*avsproto.TaskEdge{ - &avsproto.TaskEdge{ + { Id: "e1", Source: trigger.Id, Target: "123abc", @@ -217,7 +217,7 @@ func TestRunJavaScriptCanAccessSecretsWithapContext(t *testing.T) { Source: "return 'my name is ' + apContext.configVars.my_awesome_secret", } nodes := []*avsproto.TaskNode{ - &avsproto.TaskNode{ + { Id: "123abc", Name: "customJs", TaskType: &avsproto.TaskNode_CustomCode{ @@ -231,7 +231,7 @@ func TestRunJavaScriptCanAccessSecretsWithapContext(t *testing.T) { } edges := []*avsproto.TaskEdge{ - &avsproto.TaskEdge{ + { Id: "e1", Source: trigger.Id, Target: "123abc", @@ -254,4 +254,4 @@ func TestRunJavaScriptCanAccessSecretsWithapContext(t *testing.T) { if gow.AnyToString(step.GetCustomCode().Data) != "my name is my_awesome_secret_value" { t.Errorf("wrong JS code evaluation result, expect: `\"my name is my_awesome_secret_value\"`, got `%s`", step.OutputData) } -} \ No newline at end of file +} diff --git a/core/taskengine/vm_runner_filter_test.go b/core/taskengine/vm_runner_filter_test.go index a393bda2..2ea71ae5 100644 --- a/core/taskengine/vm_runner_filter_test.go +++ b/core/taskengine/vm_runner_filter_test.go @@ -23,7 +23,7 @@ func TestFilter(t *testing.T) { } nodes := []*avsproto.TaskNode{ - &avsproto.TaskNode{ + { Id: "abc123", Name: "filter", TaskType: &avsproto.TaskNode_Filter{ @@ -37,7 +37,7 @@ func TestFilter(t *testing.T) { Name: "triggertest", } edges := []*avsproto.TaskEdge{ - &avsproto.TaskEdge{ + { Id: "e1", Source: trigger.Id, Target: "abc123", @@ -57,11 +57,11 @@ func TestFilter(t *testing.T) { t.Errorf("expect vm initialize succesully but failed with error: %v", err) } vm.vars["trades"] = []map[string]interface{}{ - map[string]interface{}{ + { "cost": 12, "name": "abc", }, - map[string]interface{}{ + { "cost": 2, "name": "def", }, @@ -92,7 +92,7 @@ func TestFilterComplexLogic(t *testing.T) { } nodes := []*avsproto.TaskNode{ - &avsproto.TaskNode{ + { Id: "abc123", Name: "filter", TaskType: &avsproto.TaskNode_Filter{ @@ -106,7 +106,7 @@ func TestFilterComplexLogic(t *testing.T) { Name: "triggertest", } edges := []*avsproto.TaskEdge{ - &avsproto.TaskEdge{ + { Id: "e1", Source: trigger.Id, Target: "abc123", @@ -126,23 +126,23 @@ func TestFilterComplexLogic(t *testing.T) { t.Errorf("expect vm initialize succesully but failed with error: %v", err) } vm.vars["trades"] = []map[string]interface{}{ - map[string]interface{}{ + { "cost": 12, "name": "first", }, - map[string]interface{}{ + { "cost": 15, "name": "second", }, - map[string]interface{}{ + { "cost": 20, "name": "third", }, - map[string]interface{}{ + { "cost": 25, "name": "fourth", }, - map[string]interface{}{ + { "cost": 19, "name": "sixth", }, diff --git a/core/taskengine/vm_runner_graphql_query_test.go b/core/taskengine/vm_runner_graphql_query_test.go index ca434e3d..f91f8b27 100644 --- a/core/taskengine/vm_runner_graphql_query_test.go +++ b/core/taskengine/vm_runner_graphql_query_test.go @@ -28,7 +28,7 @@ func TestGraphlQlNodeSimpleQuery(t *testing.T) { } nodes := []*avsproto.TaskNode{ - &avsproto.TaskNode{ + { Id: "123abc", Name: "graphqlQuery", TaskType: &avsproto.TaskNode_GraphqlQuery{ @@ -43,7 +43,7 @@ func TestGraphlQlNodeSimpleQuery(t *testing.T) { } edges := []*avsproto.TaskEdge{ - &avsproto.TaskEdge{ + { Id: "e1", Source: trigger.Id, Target: "123abc", diff --git a/core/taskengine/vm_runner_rest_test.go b/core/taskengine/vm_runner_rest_test.go index e6df97dd..d7e2bea9 100644 --- a/core/taskengine/vm_runner_rest_test.go +++ b/core/taskengine/vm_runner_rest_test.go @@ -25,7 +25,7 @@ func TestRestRequest(t *testing.T) { } nodes := []*avsproto.TaskNode{ - &avsproto.TaskNode{ + { Id: "123abc", Name: "restApi", TaskType: &avsproto.TaskNode_RestApi{ @@ -39,7 +39,7 @@ func TestRestRequest(t *testing.T) { Name: "triggertest", } edges := []*avsproto.TaskEdge{ - &avsproto.TaskEdge{ + { Id: "e1", Source: trigger.Id, Target: "123abc", @@ -112,7 +112,7 @@ func TestRestRequestHandleEmptyResponse(t *testing.T) { } nodes := []*avsproto.TaskNode{ - &avsproto.TaskNode{ + { Id: "123abc", Name: "restApi", TaskType: &avsproto.TaskNode_RestApi{ @@ -126,7 +126,7 @@ func TestRestRequestHandleEmptyResponse(t *testing.T) { Name: "triggertest", } edges := []*avsproto.TaskEdge{ - &avsproto.TaskEdge{ + { Id: "e1", Source: trigger.Id, Target: "123abc", @@ -181,7 +181,7 @@ func TestRestRequestRenderVars(t *testing.T) { } nodes := []*avsproto.TaskNode{ - &avsproto.TaskNode{ + { Id: "123abc", Name: "restApi", TaskType: &avsproto.TaskNode_RestApi{ @@ -195,7 +195,7 @@ func TestRestRequestRenderVars(t *testing.T) { Name: "triggertest", } edges := []*avsproto.TaskEdge{ - &avsproto.TaskEdge{ + { Id: "e1", Source: trigger.Id, Target: "123abc", @@ -212,7 +212,7 @@ func TestRestRequestRenderVars(t *testing.T) { }, nil, testutil.GetTestSmartWalletConfig(), nil) vm.AddVar("myNode", map[string]map[string]string{ - "data": map[string]string{ + "data": { "name": "unitest", }, }) @@ -261,7 +261,7 @@ func TestRestRequestRenderVarsMultipleExecutions(t *testing.T) { } nodes := []*avsproto.TaskNode{ - &avsproto.TaskNode{ + { Id: "123abc", Name: "restApi", TaskType: &avsproto.TaskNode_RestApi{ @@ -275,7 +275,7 @@ func TestRestRequestRenderVarsMultipleExecutions(t *testing.T) { Name: "triggertest", } edges := []*avsproto.TaskEdge{ - &avsproto.TaskEdge{ + { Id: "e1", Source: trigger.Id, Target: "123abc", @@ -293,7 +293,7 @@ func TestRestRequestRenderVarsMultipleExecutions(t *testing.T) { // First execution with first value vm.AddVar("myNode", map[string]map[string]string{ - "data": map[string]string{ + "data": { "name": "first", }, }) @@ -313,7 +313,7 @@ func TestRestRequestRenderVarsMultipleExecutions(t *testing.T) { // Second execution with different value vm.AddVar("myNode", map[string]map[string]string{ - "data": map[string]string{ + "data": { "name": "second", }, }) diff --git a/core/taskengine/vm_test.go b/core/taskengine/vm_test.go index d1f1f20f..8e6cec5e 100644 --- a/core/taskengine/vm_test.go +++ b/core/taskengine/vm_test.go @@ -18,7 +18,7 @@ import ( func TestVMCompile(t *testing.T) { nodes := []*avsproto.TaskNode{ - &avsproto.TaskNode{ + { Id: "123", Name: "httpnode", TaskType: &avsproto.TaskNode_RestApi{ @@ -37,7 +37,7 @@ func TestVMCompile(t *testing.T) { } edges := []*avsproto.TaskEdge{ - &avsproto.TaskEdge{ + { Id: "e1", Source: trigger.Id, Target: "123", @@ -75,7 +75,7 @@ func TestRunSimpleTasks(t *testing.T) { defer ts.Close() nodes := []*avsproto.TaskNode{ - &avsproto.TaskNode{ + { Id: "123", Name: "httpnode", TaskType: &avsproto.TaskNode_RestApi{ @@ -94,7 +94,7 @@ func TestRunSimpleTasks(t *testing.T) { } edges := []*avsproto.TaskEdge{ - &avsproto.TaskEdge{ + { Id: "e1", Source: trigger.Id, Target: "123", @@ -136,7 +136,7 @@ func TestRunSimpleTasks(t *testing.T) { func TestRunSequentialTasks(t *testing.T) { nodes := []*avsproto.TaskNode{ - &avsproto.TaskNode{ + { Id: "123", Name: "httpnode", TaskType: &avsproto.TaskNode_RestApi{ @@ -147,7 +147,7 @@ func TestRunSequentialTasks(t *testing.T) { }, }, }, - &avsproto.TaskNode{ + { Id: "456", Name: "graphql", TaskType: &avsproto.TaskNode_RestApi{ @@ -167,12 +167,12 @@ func TestRunSequentialTasks(t *testing.T) { Name: "triggertest", } edges := []*avsproto.TaskEdge{ - &avsproto.TaskEdge{ + { Id: "e1", Source: trigger.Id, Target: "123", }, - &avsproto.TaskEdge{ + { Id: "e2", Source: "123", Target: "456", @@ -234,18 +234,18 @@ func TestRunSequentialTasks(t *testing.T) { func TestRunTaskWithBranchNode(t *testing.T) { nodes := []*avsproto.TaskNode{ - &avsproto.TaskNode{ + { Id: "branch1", Name: "branch", TaskType: &avsproto.TaskNode_Branch{ Branch: &avsproto.BranchNode{ Conditions: []*avsproto.Condition{ - &avsproto.Condition{ + { Id: "a1", Type: "if", Expression: "a >= 5", }, - &avsproto.Condition{ + { Id: "a2", Type: "else", }, @@ -253,7 +253,7 @@ func TestRunTaskWithBranchNode(t *testing.T) { }, }, }, - &avsproto.TaskNode{ + { Id: "notification1", Name: "httpnode", TaskType: &avsproto.TaskNode_RestApi{ @@ -264,7 +264,7 @@ func TestRunTaskWithBranchNode(t *testing.T) { }, }, }, - &avsproto.TaskNode{ + { Id: "notification2", Name: "httpnode", TaskType: &avsproto.TaskNode_RestApi{ @@ -284,17 +284,17 @@ func TestRunTaskWithBranchNode(t *testing.T) { Name: "triggertest", } edges := []*avsproto.TaskEdge{ - &avsproto.TaskEdge{ + { Id: "e1", Source: trigger.Id, Target: "branch1", }, - &avsproto.TaskEdge{ + { Id: "e1", Source: "branch1.a1", Target: "notification1", }, - &avsproto.TaskEdge{ + { Id: "e1", Source: "branch1.a2", Target: "notification2", @@ -390,13 +390,13 @@ func TestRenderString(t *testing.T) { func TestEvaluateEvent(t *testing.T) { nodes := []*avsproto.TaskNode{ - &avsproto.TaskNode{ + { Id: "branch1", Name: "branch", TaskType: &avsproto.TaskNode_Branch{ Branch: &avsproto.BranchNode{ Conditions: []*avsproto.Condition{ - &avsproto.Condition{ + { Id: "a1", Type: "if", Expression: `triggertest.data.address == "0x1c7d4b196cb0c7b01d743fbc6116a902379c7238" && bigGt(toBigInt(triggertest.data.data), toBigInt("1200000"))`}, @@ -404,7 +404,7 @@ func TestEvaluateEvent(t *testing.T) { }, }, }, - &avsproto.TaskNode{ + { Id: "notification1", Name: "httpnode", TaskType: &avsproto.TaskNode_RestApi{ @@ -422,12 +422,12 @@ func TestEvaluateEvent(t *testing.T) { Name: "triggertest", } edges := []*avsproto.TaskEdge{ - &avsproto.TaskEdge{ + { Id: "e1", Source: trigger.Id, Target: "branch1", }, - &avsproto.TaskEdge{ + { Id: "e1", Source: "branch1.a1", Target: "notification1", @@ -476,13 +476,13 @@ func TestEvaluateEvent(t *testing.T) { func TestReturnErrorWhenMissingEntrypoint(t *testing.T) { nodes := []*avsproto.TaskNode{ - &avsproto.TaskNode{ + { Id: "branch1", Name: "branch", TaskType: &avsproto.TaskNode_Branch{ Branch: &avsproto.BranchNode{ Conditions: []*avsproto.Condition{ - &avsproto.Condition{ + { Id: "a1", Type: "if", Expression: `triggertest.data.address == "0x1c7d4b196cb0c7b01d743fbc6116a902379c7238" && bigGt(toBigInt(triggertest.data.data), toBigInt("1200000"))`}, @@ -490,7 +490,7 @@ func TestReturnErrorWhenMissingEntrypoint(t *testing.T) { }, }, }, - &avsproto.TaskNode{ + { Id: "notification1", Name: "httpnode", TaskType: &avsproto.TaskNode_RestApi{ @@ -508,12 +508,12 @@ func TestReturnErrorWhenMissingEntrypoint(t *testing.T) { Name: "triggertest", } edges := []*avsproto.TaskEdge{ - &avsproto.TaskEdge{ + { Id: "e1", Source: "foo", Target: "branch1", }, - &avsproto.TaskEdge{ + { Id: "e1", Source: "branch1.a1", Target: "notification1", @@ -550,15 +550,15 @@ func TestReturnErrorWhenMissingEntrypoint(t *testing.T) { func TestParseEntrypointRegardlessOfOrdering(t *testing.T) { nodes := []*avsproto.TaskNode{ - &avsproto.TaskNode{ + { Id: "branch1", Name: "branch", }, - &avsproto.TaskNode{ + { Id: "notification1", Name: "httpnode", }, - &avsproto.TaskNode{ + { Id: "rest1", Name: "httpnode", }, @@ -569,17 +569,17 @@ func TestParseEntrypointRegardlessOfOrdering(t *testing.T) { Name: "triggertest", } edges := []*avsproto.TaskEdge{ - &avsproto.TaskEdge{ + { Id: "e1", Source: "rest1", Target: "notification1", }, - &avsproto.TaskEdge{ + { Id: "e1", Source: "notification1", Target: "branch1", }, - &avsproto.TaskEdge{ + { Id: "e1", Source: trigger.Id, Target: "notification1", @@ -633,7 +633,7 @@ func TestRunTaskWithCustomUserSecret(t *testing.T) { defer ts.Close() nodes := []*avsproto.TaskNode{ - &avsproto.TaskNode{ + { Id: "123", Name: "httpnode", TaskType: &avsproto.TaskNode_RestApi{ @@ -652,7 +652,7 @@ func TestRunTaskWithCustomUserSecret(t *testing.T) { } edges := []*avsproto.TaskEdge{ - &avsproto.TaskEdge{ + { Id: "e1", Source: trigger.Id, Target: "123", @@ -728,7 +728,7 @@ func TestPreprocessText(t *testing.T) { }, }, "apContext": map[string]map[string]string{ - "configVars": map[string]string{ + "configVars": { "my_awesome_secret": "my_awesome_secret_value", }, }, diff --git a/core/testutil/utils.go b/core/testutil/utils.go index 447c1c47..4d2b037f 100644 --- a/core/testutil/utils.go +++ b/core/testutil/utils.go @@ -291,4 +291,4 @@ func GetTestEventTriggerReason() *avsproto.TriggerReason { TxHash: "0x53beb2163994510e0984b436ebc828dc57e480ee671cfbe7ed52776c2a4830c8", LogIndex: 98, } -} \ No newline at end of file +} diff --git a/metrics/metrics.go b/metrics/metrics.go index 713f5c1c..fe3543ab 100644 --- a/metrics/metrics.go +++ b/metrics/metrics.go @@ -31,9 +31,9 @@ type AvsAndEigenMetrics struct { uptime *prometheus.CounterVec - numWorkerLoop *prometheus.CounterVec + numWorkerLoop *prometheus.CounterVec - numPingSent *prometheus.CounterVec + numPingSent *prometheus.CounterVec durationPing *prometheus.GaugeVec numCheckProcessed *prometheus.CounterVec @@ -42,7 +42,7 @@ type AvsAndEigenMetrics struct { numSignedTaskResponsesAcceptedByAggregator *prometheus.CounterVec operatorAddress string - version string + version string } const apNamespace = "ap" @@ -77,8 +77,7 @@ func NewAvsAndEigenMetrics(avsName, operatorAddress, version string, eigenMetric Namespace: apNamespace, Name: "ping_duration_seconds", Help: "The duration of ping check send to operator. If it spikes, it could indicator aggreator issues or operator network issue", - }, []string{"operator", "version",}), - + }, []string{"operator", "version"}), numCheckProcessed: promauto.With(reg).NewCounterVec( prometheus.CounterOpts{ @@ -99,15 +98,15 @@ func NewAvsAndEigenMetrics(avsName, operatorAddress, version string, eigenMetric Namespace: apNamespace, Name: "num_signed_task_responses_accepted_by_aggregator", Help: "The number of signed task responses accepted by the aggregator", - }, []string{"operator", "version",}), + }, []string{"operator", "version"}), operatorAddress: operatorAddress, - version: version, + version: version, } } func (m *AvsAndEigenMetrics) IncNumTasksReceived(checkType string) { - m.numTasksReceived.WithLabelValues(m.operatorAddress, m.version, checkType). Inc() + m.numTasksReceived.WithLabelValues(m.operatorAddress, m.version, checkType).Inc() } func (m *AvsAndEigenMetrics) IncNumTasksAcceptedByAggregator() { diff --git a/operator/operator.go b/operator/operator.go index b4c89785..62301f1a 100644 --- a/operator/operator.go +++ b/operator/operator.go @@ -536,4 +536,4 @@ func (o *Operator) GetSignature(ctx context.Context, message []byte) (*blscrypto } return sig, nil -} \ No newline at end of file +} diff --git a/pkg/byte4/signature.go b/pkg/byte4/signature.go index 9d9a03b1..c64e1723 100644 --- a/pkg/byte4/signature.go +++ b/pkg/byte4/signature.go @@ -38,4 +38,4 @@ func GetMethodFromCalldata(parsedABI abi.ABI, selector []byte) (*abi.Method, err } return nil, fmt.Errorf("no matching method found for selector: 0x%x", methodID) -} \ No newline at end of file +} diff --git a/pkg/byte4/signature_test.go b/pkg/byte4/signature_test.go index 3d9bd7df..17a2a086 100644 --- a/pkg/byte4/signature_test.go +++ b/pkg/byte4/signature_test.go @@ -129,4 +129,4 @@ func TestGetMethodFromSelector(t *testing.T) { } }) } -} \ No newline at end of file +} diff --git a/pkg/erc4337/preset/builder.go b/pkg/erc4337/preset/builder.go index 8f4e1085..508575be 100644 --- a/pkg/erc4337/preset/builder.go +++ b/pkg/erc4337/preset/builder.go @@ -8,12 +8,12 @@ import ( "time" "github.com/ethereum/go-ethereum" + "github.com/ethereum/go-ethereum/accounts/abi" "github.com/ethereum/go-ethereum/common" "github.com/ethereum/go-ethereum/core/types" "github.com/ethereum/go-ethereum/crypto" "github.com/ethereum/go-ethereum/ethclient" - "github.com/ethereum/go-ethereum/accounts/abi" - + "github.com/AvaProtocol/ap-avs/core/chainio/aa" "github.com/AvaProtocol/ap-avs/core/chainio/aa/paymaster" "github.com/AvaProtocol/ap-avs/core/chainio/signer" @@ -55,8 +55,8 @@ func GetVerifyingPaymasterRequestForDuration(address common.Address, duration ti PaymasterAddress: address, ValidUntil: big.NewInt(currentTime + int64(duration.Seconds())), // Create validUntil and validAfter values (1 hour from now and current time) - // Due to clock drift between server, we subtract 3 seconds to be on the safe side - ValidAfter: big.NewInt(currentTime - 3), + // Due to clock drift between server, we subtract 3 seconds to be on the safe side + ValidAfter: big.NewInt(currentTime - 3), } } @@ -122,7 +122,7 @@ func SendUserOp( } // When the userops get run on-chain, the entrypoint contract emits this event: - // UserOperationEvent (index_topic_1 bytes32 userOpHash, index_topic_2 address sender, index_topic_3 address paymaster, + // UserOperationEvent (index_topic_1 bytes32 userOpHash, index_topic_2 address sender, index_topic_3 address paymaster, // uint256 nonce, bool success, uint256 actualGasCost, uint256 actualGasUsed) // Topic0 -> 0x49628fd1471006c1482da88028e9ce4dbb080b815c9b0344d39e5a8e6ec1419f (event signature) // Topic1 -> UserOp Hash @@ -217,7 +217,7 @@ func BuildUserOp( if err != nil { return nil, fmt.Errorf("failed to get chain ID: %w", err) } - + userOp.Signature, _ = signer.SignMessage(smartWalletConfig.ControllerPrivateKey, dummySigForGasEstimation.Bytes()) gas, e := bundlerClient.EstimateUserOperationGas(context.Background(), userOp, aa.EntrypointAddress, map[string]any{}) @@ -285,31 +285,30 @@ func BuildUserOpWithPaymaster( MaxFeePerGas: userOp.MaxFeePerGas, MaxPriorityFeePerGas: userOp.MaxPriorityFeePerGas, - // The value of PaymasterAndData and Signature are not used in the hash calculation but we need to keep them the same length // Given the below assembly code in the contract // assembly { - // let ofs := userOp - // let len := sub(sub(pnd.offset, ofs), 32) - // ret := mload(0x40) - // mstore(0x40, add(ret, add(len, 32))) - // mstore(ret, len) - // calldatacopy(add(ret, 32), ofs, len) - // } - PaymasterAndData: common.FromHex("0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff"), - Signature: common.FromHex("0x1234567890abcdef"), + // let ofs := userOp + // let len := sub(sub(pnd.offset, ofs), 32) + // ret := mload(0x40) + // mstore(0x40, add(ret, add(len, 32))) + // mstore(ret, len) + // calldatacopy(add(ret, 32), ofs, len) + // } + PaymasterAndData: common.FromHex("0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff"), + Signature: common.FromHex("0x1234567890abcdef"), } // Get the hash to sign from the PayMaster contract paymasterHash, err := paymasterContract.GetHash(nil, paymasterUserOp, validUntil, validAfter) - + if err != nil { return nil, fmt.Errorf("failed to get paymaster hash: %w", err) } // Sign the paymaster hash with the controller's private key paymasterSignature, err := signer.SignMessage(smartWalletConfig.ControllerPrivateKey, paymasterHash[:]) - + if err != nil { return nil, fmt.Errorf("failed to sign paymaster hash: %w", err) } @@ -334,7 +333,6 @@ func BuildUserOpWithPaymaster( paymasterAndData := append(paymasterAddress.Bytes(), encodedTimestamps...) paymasterAndData = append(paymasterAndData, paymasterSignature...) - // Update the UserOperation with the properly encoded PaymasterAndData userOp.PaymasterAndData = paymasterAndData @@ -349,4 +347,3 @@ func BuildUserOpWithPaymaster( return userOp, nil } - diff --git a/pkg/graphql/graphql.go b/pkg/graphql/graphql.go index 0dae6e53..2bd67a0a 100644 --- a/pkg/graphql/graphql.go +++ b/pkg/graphql/graphql.go @@ -1,5 +1,3 @@ - - package graphql import ( diff --git a/storage/db.go b/storage/db.go index 5976d073..42bc8602 100644 --- a/storage/db.go +++ b/storage/db.go @@ -484,7 +484,7 @@ func (a *BadgerStorage) SetCounter(key []byte, value uint64) error { return a.db.Update(func(txn *badger.Txn) error { // Convert uint64 to string so we can inspect them easiser in console counterStr := strconv.FormatUint(value, 10) - + return txn.Set(key, []byte(counterStr)) }) }