From 677a8c13c9448a2f82d200fcddaccc206181445b Mon Sep 17 00:00:00 2001 From: AvranWong Date: Tue, 19 Aug 2025 22:02:09 +0800 Subject: [PATCH 1/4] first pass at migrating to verifier/plugin imports --- api/server.go | 4 ++-- cmd/fees/worker/main.go | 4 ++-- cmd/payroll/server/main.go | 4 ++-- cmd/payroll/worker/main.go | 4 ++-- go.mod | 4 ++-- go.sum | 8 ++++---- plugin/fees/fees.go | 4 ++-- plugin/payroll/payroll.go | 4 ++-- plugin/payroll/transaction.go | 2 +- 9 files changed, 19 insertions(+), 19 deletions(-) diff --git a/api/server.go b/api/server.go index 0d06de3..24789ef 100644 --- a/api/server.go +++ b/api/server.go @@ -36,7 +36,7 @@ type Server struct { inspector *asynq.Inspector sdClient *statsd.Client policyService service.Policy - plugin plugin.Plugin + plugin plugin.Spec logger *logrus.Logger mode string } @@ -50,7 +50,7 @@ func NewServer( client *asynq.Client, inspector *asynq.Inspector, sdClient *statsd.Client, - p plugin.Plugin, + p plugin.Spec, scheduler scheduler.Service, ) *Server { logger := logrus.WithField("service", "plugin").Logger diff --git a/cmd/fees/worker/main.go b/cmd/fees/worker/main.go index 72bb940..a12d341 100644 --- a/cmd/fees/worker/main.go +++ b/cmd/fees/worker/main.go @@ -12,8 +12,8 @@ import ( "github.com/sirupsen/logrus" "github.com/vultisig/verifier/plugin/keysign" "github.com/vultisig/verifier/plugin/tasks" - "github.com/vultisig/verifier/tx_indexer" - "github.com/vultisig/verifier/tx_indexer/pkg/storage" + "github.com/vultisig/verifier/plugin/tx_indexer" + "github.com/vultisig/verifier/plugin/tx_indexer/pkg/storage" "github.com/vultisig/verifier/vault" "github.com/vultisig/vultiserver/relay" diff --git a/cmd/payroll/server/main.go b/cmd/payroll/server/main.go index 8dc4a22..2f9cd43 100644 --- a/cmd/payroll/server/main.go +++ b/cmd/payroll/server/main.go @@ -9,8 +9,8 @@ import ( "github.com/hibiken/asynq" "github.com/sirupsen/logrus" "github.com/vultisig/plugin/internal/scheduler" - "github.com/vultisig/verifier/tx_indexer" - tx_indexer_storage "github.com/vultisig/verifier/tx_indexer/pkg/storage" + "github.com/vultisig/verifier/plugin/tx_indexer" + tx_indexer_storage "github.com/vultisig/verifier/plugin/tx_indexer/pkg/storage" "github.com/vultisig/verifier/vault" "github.com/vultisig/plugin/api" diff --git a/cmd/payroll/worker/main.go b/cmd/payroll/worker/main.go index 8afa51e..49e55f6 100644 --- a/cmd/payroll/worker/main.go +++ b/cmd/payroll/worker/main.go @@ -10,8 +10,8 @@ import ( "github.com/sirupsen/logrus" "github.com/vultisig/verifier/plugin/keysign" "github.com/vultisig/verifier/plugin/tasks" - "github.com/vultisig/verifier/tx_indexer" - "github.com/vultisig/verifier/tx_indexer/pkg/storage" + "github.com/vultisig/verifier/plugin/tx_indexer" + "github.com/vultisig/verifier/plugin/tx_indexer/pkg/storage" "github.com/vultisig/verifier/vault" "github.com/vultisig/vultiserver/relay" diff --git a/go.mod b/go.mod index 479a59f..dbd4bc0 100644 --- a/go.mod +++ b/go.mod @@ -19,7 +19,7 @@ require ( github.com/vultisig/commondata v0.0.0-20250710214228-61d9ed8f7778 github.com/vultisig/mobile-tss-lib v0.0.0-20250316003201-2e7e570a4a74 github.com/vultisig/recipes v0.0.0-20250805093243-2060ffd4754e - github.com/vultisig/verifier v0.0.0-20250806110950-aaa4877b631a + github.com/vultisig/verifier v0.0.0-20250809020937-4535a7459d36 github.com/vultisig/vultiserver v0.0.0-20250715212748-4b23f9849e4b golang.org/x/sync v0.14.0 google.golang.org/protobuf v1.36.6 @@ -177,7 +177,7 @@ require ( github.com/otiai10/primes v0.4.0 // indirect github.com/pelletier/go-toml/v2 v2.2.4 // indirect github.com/pkg/errors v0.9.1 // indirect - github.com/robfig/cron/v3 v3.0.1 // indirect + github.com/robfig/cron/v3 v3.0.1 github.com/sagikazarmark/locafero v0.7.0 // indirect github.com/sourcegraph/conc v0.3.0 // indirect github.com/spf13/afero v1.12.0 // indirect diff --git a/go.sum b/go.sum index e3c33e7..d093d41 100644 --- a/go.sum +++ b/go.sum @@ -476,6 +476,8 @@ github.com/kaptinlin/go-i18n v0.1.4 h1:wCiwAn1LOcvymvWIVAM4m5dUAMiHunTdEubLDk4hT github.com/kaptinlin/go-i18n v0.1.4/go.mod h1:g1fn1GvTgT4CiLE8/fFE1hboHWJ6erivrDpiDtCcFKg= github.com/kaptinlin/jsonschema v0.4.6 h1:vOSFg5tjmfkOdKg+D6Oo4fVOM/pActWu/ntkPsI1T64= github.com/kaptinlin/jsonschema v0.4.6/go.mod h1:1DUd7r5SdyB2ZnMtyB7uLv64dE3zTFTiYytDCd+AEL0= +github.com/kelseyhightower/envconfig v1.4.0 h1:Im6hONhd3pLkfDFsbRgu68RDNkGF1r3dvMUtDTo2cv8= +github.com/kelseyhightower/envconfig v1.4.0/go.mod h1:cccZRl6mQpaq41TPp5QxidR+Sa3axMbJDNb//FQX6Gg= github.com/kisielk/errcheck v1.5.0/go.mod h1:pFxgyoBC7bSaBwPgfKdkLd5X25qrDl4LWUI2bnpBCr8= github.com/kisielk/gotool v1.0.0/go.mod h1:XhKaO+MFFWcvkIS/tQcRk01m1F5IRFswLeQ+oQHNcck= github.com/kkdai/bstream v0.0.0-20161212061736-f391b8402d23/go.mod h1:J+Gs4SYgM6CZQHDETBtE9HaSEkGmuNXF86RwHhHUvq4= @@ -759,10 +761,8 @@ github.com/vultisig/mobile-tss-lib v0.0.0-20250316003201-2e7e570a4a74 h1:goqwk4n github.com/vultisig/mobile-tss-lib v0.0.0-20250316003201-2e7e570a4a74/go.mod h1:nOykk4nOy1L3yXtLSlYvVsgizBnCQ3tR2N5uwGPdvaM= github.com/vultisig/recipes v0.0.0-20250805093243-2060ffd4754e h1:RhIQVc28MzLWsE7Fn0KsltSr+00ESc1eKKNUHcLgFB4= github.com/vultisig/recipes v0.0.0-20250805093243-2060ffd4754e/go.mod h1:Ot3lrUnnSw67Hep+MelclVPgNLDxJP01Ezixw/1RYRE= -github.com/vultisig/verifier v0.0.0-20250805144140-643ec1133008 h1:yiOifIrCG8/JpF9Iqlw01ylNLbsT5d27366EMXH9I4I= -github.com/vultisig/verifier v0.0.0-20250805144140-643ec1133008/go.mod h1:fxehysyf+G7WwZstP3WvtswB+4VK2rt9/b5ccjKhYbY= -github.com/vultisig/verifier v0.0.0-20250806110950-aaa4877b631a h1:MXEpOwpEX4M/lVENUIWCBEc5eJtzLfbD0MBdthb0Xkg= -github.com/vultisig/verifier v0.0.0-20250806110950-aaa4877b631a/go.mod h1:fxehysyf+G7WwZstP3WvtswB+4VK2rt9/b5ccjKhYbY= +github.com/vultisig/verifier v0.0.0-20250809020937-4535a7459d36 h1:KR/18Qk8aoplMKUAYmWVBM5COruXSKMfh4e0oxcTUq4= +github.com/vultisig/verifier v0.0.0-20250809020937-4535a7459d36/go.mod h1:SS9b4GBEX7aVVJsN6KyFUqus6Pgjofz1WsnPw0mtiLw= github.com/vultisig/vultiserver v0.0.0-20250715212748-4b23f9849e4b h1:Ed2DOWo8fA0KG6e36rzUmGpxcOQjmWTbxWyvUbI5by8= github.com/vultisig/vultiserver v0.0.0-20250715212748-4b23f9849e4b/go.mod h1:HwP2IgW6Mcu/gX8paFuKvfibrGE9UmPgkOFTub6dskM= github.com/xordataexchange/crypt v0.0.3-0.20170626215501-b2862e3d0a77/go.mod h1:aYKd//L2LvnjZzWKhF00oedf4jCCReLcmhLdhm1A27Q= diff --git a/plugin/fees/fees.go b/plugin/fees/fees.go index ba978f7..9b15419 100644 --- a/plugin/fees/fees.go +++ b/plugin/fees/fees.go @@ -12,7 +12,7 @@ import ( vcommon "github.com/vultisig/verifier/common" "github.com/vultisig/verifier/plugin" "github.com/vultisig/verifier/plugin/keysign" - "github.com/vultisig/verifier/tx_indexer" + "github.com/vultisig/verifier/plugin/tx_indexer" vtypes "github.com/vultisig/verifier/types" "golang.org/x/sync/errgroup" "golang.org/x/sync/semaphore" @@ -31,7 +31,7 @@ All key logic related to fees will go here, that includes - getting fee information */ -var _ plugin.Plugin = (*FeePlugin)(nil) +var _ plugin.Spec = (*FeePlugin)(nil) type FeePlugin struct { vaultService *vault.ManagementService diff --git a/plugin/payroll/payroll.go b/plugin/payroll/payroll.go index 5126560..0ea97aa 100644 --- a/plugin/payroll/payroll.go +++ b/plugin/payroll/payroll.go @@ -11,11 +11,11 @@ import ( "github.com/vultisig/verifier/common" "github.com/vultisig/verifier/plugin" "github.com/vultisig/verifier/plugin/keysign" - "github.com/vultisig/verifier/tx_indexer" + "github.com/vultisig/verifier/plugin/tx_indexer" "github.com/vultisig/verifier/vault" ) -var _ plugin.Plugin = (*Plugin)(nil) +var _ plugin.Spec = (*Plugin)(nil) type Plugin struct { db storage.DatabaseStorage diff --git a/plugin/payroll/transaction.go b/plugin/payroll/transaction.go index 8aebd25..4752dc0 100644 --- a/plugin/payroll/transaction.go +++ b/plugin/payroll/transaction.go @@ -24,7 +24,7 @@ import ( "github.com/vultisig/verifier/address" vcommon "github.com/vultisig/verifier/common" "github.com/vultisig/verifier/plugin" - "github.com/vultisig/verifier/tx_indexer/pkg/storage" + "github.com/vultisig/verifier/plugin/tx_indexer/pkg/storage" vtypes "github.com/vultisig/verifier/types" "github.com/vultisig/vultiserver/contexthelper" "golang.org/x/sync/errgroup" From 32a721508ea477831d62a51549fbbaf953827800 Mon Sep 17 00:00:00 2001 From: AvranWong Date: Tue, 19 Aug 2025 22:28:11 +0800 Subject: [PATCH 2/4] bump verifier again and fix import --- cmd/fees/worker/main.go | 8 +++++++- cmd/payroll/server/main.go | 8 +++++++- cmd/payroll/worker/main.go | 8 +++++++- go.mod | 4 ++-- go.sum | 8 ++++---- plugin/fees/fees.go | 6 ++++++ plugin/payroll/payroll.go | 6 ++++++ 7 files changed, 39 insertions(+), 9 deletions(-) diff --git a/cmd/fees/worker/main.go b/cmd/fees/worker/main.go index a12d341..5186965 100644 --- a/cmd/fees/worker/main.go +++ b/cmd/fees/worker/main.go @@ -113,10 +113,16 @@ func main() { panic(fmt.Errorf("storage.NewPostgresTxIndexStore: %w", err)) } + chains, err := tx_indexer.Chains() + if err != nil { + // Handle the error appropriately - either return it or log it + panic(fmt.Errorf("failed to initialize tx indexer chains: %w", err)) + } + txIndexerService := tx_indexer.NewService( logger, txIndexerStore, - tx_indexer.Chains(), + chains, ) vaultService, err := vault.NewManagementService( diff --git a/cmd/payroll/server/main.go b/cmd/payroll/server/main.go index 2f9cd43..57b274b 100644 --- a/cmd/payroll/server/main.go +++ b/cmd/payroll/server/main.go @@ -62,10 +62,16 @@ func main() { panic(fmt.Errorf("tx_indexer_storage.NewPostgresTxIndexStore: %w", err)) } + chains, err := tx_indexer.Chains() + if err != nil { + // Handle the error appropriately - either return it or log it + panic(fmt.Errorf("failed to initialize tx indexer chains: %w", err)) + } + txIndexerService := tx_indexer.NewService( logger, txIndexerStore, - tx_indexer.Chains(), + chains, ) db, err := postgres.NewPostgresBackend(cfg.Database.DSN, nil) diff --git a/cmd/payroll/worker/main.go b/cmd/payroll/worker/main.go index 49e55f6..8eebafc 100644 --- a/cmd/payroll/worker/main.go +++ b/cmd/payroll/worker/main.go @@ -61,10 +61,16 @@ func main() { panic(fmt.Errorf("storage.NewPostgresTxIndexStore: %w", err)) } + chains, err := tx_indexer.Chains() + if err != nil { + // Handle the error appropriately - either return it or log it + panic(fmt.Errorf("failed to initialize tx indexer chains: %w", err)) + } + txIndexerService := tx_indexer.NewService( logger, txIndexerStore, - tx_indexer.Chains(), + chains, ) vaultService, err := vault.NewManagementService( diff --git a/go.mod b/go.mod index dbd4bc0..e5b14f0 100644 --- a/go.mod +++ b/go.mod @@ -18,8 +18,8 @@ require ( github.com/spf13/viper v1.20.1 github.com/vultisig/commondata v0.0.0-20250710214228-61d9ed8f7778 github.com/vultisig/mobile-tss-lib v0.0.0-20250316003201-2e7e570a4a74 - github.com/vultisig/recipes v0.0.0-20250805093243-2060ffd4754e - github.com/vultisig/verifier v0.0.0-20250809020937-4535a7459d36 + github.com/vultisig/recipes v0.0.0-20250811174115-368ae4bab6f6 + github.com/vultisig/verifier v0.0.0-20250814230939-fd9719226c8f github.com/vultisig/vultiserver v0.0.0-20250715212748-4b23f9849e4b golang.org/x/sync v0.14.0 google.golang.org/protobuf v1.36.6 diff --git a/go.sum b/go.sum index d093d41..9ffc0cd 100644 --- a/go.sum +++ b/go.sum @@ -759,10 +759,10 @@ github.com/vultisig/go-wrappers v0.0.0-20250403041248-86911e8aa33f h1:124Xlloih1 github.com/vultisig/go-wrappers v0.0.0-20250403041248-86911e8aa33f/go.mod h1:UfGCxUQW08kiwxyNBiHwXe+ePPuBmHVVS+BS51aU/Jg= github.com/vultisig/mobile-tss-lib v0.0.0-20250316003201-2e7e570a4a74 h1:goqwk4nQ/NEVIb3OPP9SUx7/u9ZfsUIcd5fIN/e4DVU= github.com/vultisig/mobile-tss-lib v0.0.0-20250316003201-2e7e570a4a74/go.mod h1:nOykk4nOy1L3yXtLSlYvVsgizBnCQ3tR2N5uwGPdvaM= -github.com/vultisig/recipes v0.0.0-20250805093243-2060ffd4754e h1:RhIQVc28MzLWsE7Fn0KsltSr+00ESc1eKKNUHcLgFB4= -github.com/vultisig/recipes v0.0.0-20250805093243-2060ffd4754e/go.mod h1:Ot3lrUnnSw67Hep+MelclVPgNLDxJP01Ezixw/1RYRE= -github.com/vultisig/verifier v0.0.0-20250809020937-4535a7459d36 h1:KR/18Qk8aoplMKUAYmWVBM5COruXSKMfh4e0oxcTUq4= -github.com/vultisig/verifier v0.0.0-20250809020937-4535a7459d36/go.mod h1:SS9b4GBEX7aVVJsN6KyFUqus6Pgjofz1WsnPw0mtiLw= +github.com/vultisig/recipes v0.0.0-20250811174115-368ae4bab6f6 h1:WY/4K26uOvPwp1fjy5zXENdNR+iJRltNGmtsn78zoSk= +github.com/vultisig/recipes v0.0.0-20250811174115-368ae4bab6f6/go.mod h1:Ot3lrUnnSw67Hep+MelclVPgNLDxJP01Ezixw/1RYRE= +github.com/vultisig/verifier v0.0.0-20250814230939-fd9719226c8f h1:hsPcIZJ128zm2SpbON+OYsfecgcpT0l7DUMV4s9WNrY= +github.com/vultisig/verifier v0.0.0-20250814230939-fd9719226c8f/go.mod h1:mPPBi5y9pCE/FUS8ibMTsEx3uR5rvia7bt7GEl6Kvv0= github.com/vultisig/vultiserver v0.0.0-20250715212748-4b23f9849e4b h1:Ed2DOWo8fA0KG6e36rzUmGpxcOQjmWTbxWyvUbI5by8= github.com/vultisig/vultiserver v0.0.0-20250715212748-4b23f9849e4b/go.mod h1:HwP2IgW6Mcu/gX8paFuKvfibrGE9UmPgkOFTub6dskM= github.com/xordataexchange/crypt v0.0.3-0.20170626215501-b2862e3d0a77/go.mod h1:aYKd//L2LvnjZzWKhF00oedf4jCCReLcmhLdhm1A27Q= diff --git a/plugin/fees/fees.go b/plugin/fees/fees.go index 9b15419..83205f6 100644 --- a/plugin/fees/fees.go +++ b/plugin/fees/fees.go @@ -23,6 +23,7 @@ import ( "github.com/vultisig/plugin/internal/verifierapi" "github.com/vultisig/plugin/storage" "github.com/vultisig/recipes/sdk/evm" + rtypes "github.com/vultisig/recipes/types" ) /* @@ -50,6 +51,11 @@ type FeePlugin struct { ethClient *ethclient.Client } +// Suggest implements plugin.Spec. +func (fp *FeePlugin) Suggest(configuration map[string]any) (*rtypes.PolicySuggest, error) { + panic("unimplemented") +} + func NewFeePlugin(db storage.DatabaseStorage, signer *keysign.Signer, logger logrus.FieldLogger, diff --git a/plugin/payroll/payroll.go b/plugin/payroll/payroll.go index 0ea97aa..81c27c4 100644 --- a/plugin/payroll/payroll.go +++ b/plugin/payroll/payroll.go @@ -8,6 +8,7 @@ import ( "github.com/sirupsen/logrus" "github.com/vultisig/plugin/storage" "github.com/vultisig/recipes/sdk/evm" + "github.com/vultisig/recipes/types" "github.com/vultisig/verifier/common" "github.com/vultisig/verifier/plugin" "github.com/vultisig/verifier/plugin/keysign" @@ -28,6 +29,11 @@ type Plugin struct { vaultEncryptionSecret string } +// Suggest implements plugin.Spec. +func (p *Plugin) Suggest(configuration map[string]any) (*types.PolicySuggest, error) { + panic("unimplemented") +} + func NewPlugin( db storage.DatabaseStorage, signer *keysign.Signer, From 02b400f93a2a7de9d06a06d3d39ef77411f54e14 Mon Sep 17 00:00:00 2001 From: AvranWong Date: Tue, 19 Aug 2025 22:40:54 +0800 Subject: [PATCH 3/4] clean comments --- cmd/fees/worker/main.go | 1 - cmd/payroll/server/main.go | 1 - cmd/payroll/worker/main.go | 1 - 3 files changed, 3 deletions(-) diff --git a/cmd/fees/worker/main.go b/cmd/fees/worker/main.go index 5186965..804e422 100644 --- a/cmd/fees/worker/main.go +++ b/cmd/fees/worker/main.go @@ -115,7 +115,6 @@ func main() { chains, err := tx_indexer.Chains() if err != nil { - // Handle the error appropriately - either return it or log it panic(fmt.Errorf("failed to initialize tx indexer chains: %w", err)) } diff --git a/cmd/payroll/server/main.go b/cmd/payroll/server/main.go index 57b274b..1be208f 100644 --- a/cmd/payroll/server/main.go +++ b/cmd/payroll/server/main.go @@ -64,7 +64,6 @@ func main() { chains, err := tx_indexer.Chains() if err != nil { - // Handle the error appropriately - either return it or log it panic(fmt.Errorf("failed to initialize tx indexer chains: %w", err)) } diff --git a/cmd/payroll/worker/main.go b/cmd/payroll/worker/main.go index 8eebafc..00d5180 100644 --- a/cmd/payroll/worker/main.go +++ b/cmd/payroll/worker/main.go @@ -63,7 +63,6 @@ func main() { chains, err := tx_indexer.Chains() if err != nil { - // Handle the error appropriately - either return it or log it panic(fmt.Errorf("failed to initialize tx indexer chains: %w", err)) } From 5d449c99b0f96ad60a9f0a4f45426ba1af766c1d Mon Sep 17 00:00:00 2001 From: AvranWong Date: Wed, 20 Aug 2025 11:24:58 +0800 Subject: [PATCH 4/4] Suggest() return error instead of panic --- plugin/fees/fees.go | 2 +- plugin/payroll/payroll.go | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/plugin/fees/fees.go b/plugin/fees/fees.go index 83205f6..f103317 100644 --- a/plugin/fees/fees.go +++ b/plugin/fees/fees.go @@ -53,7 +53,7 @@ type FeePlugin struct { // Suggest implements plugin.Spec. func (fp *FeePlugin) Suggest(configuration map[string]any) (*rtypes.PolicySuggest, error) { - panic("unimplemented") + return nil, fmt.Errorf("unimplemented") } func NewFeePlugin(db storage.DatabaseStorage, diff --git a/plugin/payroll/payroll.go b/plugin/payroll/payroll.go index 81c27c4..f8d7f74 100644 --- a/plugin/payroll/payroll.go +++ b/plugin/payroll/payroll.go @@ -31,7 +31,7 @@ type Plugin struct { // Suggest implements plugin.Spec. func (p *Plugin) Suggest(configuration map[string]any) (*types.PolicySuggest, error) { - panic("unimplemented") + return nil, fmt.Errorf("unimplemented") } func NewPlugin(