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..804e422 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" @@ -113,10 +113,15 @@ func main() { panic(fmt.Errorf("storage.NewPostgresTxIndexStore: %w", err)) } + chains, err := tx_indexer.Chains() + if err != nil { + 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 8dc4a22..1be208f 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" @@ -62,10 +62,15 @@ func main() { panic(fmt.Errorf("tx_indexer_storage.NewPostgresTxIndexStore: %w", err)) } + chains, err := tx_indexer.Chains() + if err != nil { + 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 8afa51e..00d5180 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" @@ -61,10 +61,15 @@ func main() { panic(fmt.Errorf("storage.NewPostgresTxIndexStore: %w", err)) } + chains, err := tx_indexer.Chains() + if err != nil { + 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 479a59f..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-20250806110950-aaa4877b631a + 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 @@ -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..9ffc0cd 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= @@ -757,12 +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-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/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 ba978f7..f103317 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" @@ -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" ) /* @@ -31,7 +32,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 @@ -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) { + return nil, fmt.Errorf("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 5126560..f8d7f74 100644 --- a/plugin/payroll/payroll.go +++ b/plugin/payroll/payroll.go @@ -8,14 +8,15 @@ 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" - "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 @@ -28,6 +29,11 @@ type Plugin struct { vaultEncryptionSecret string } +// Suggest implements plugin.Spec. +func (p *Plugin) Suggest(configuration map[string]any) (*types.PolicySuggest, error) { + return nil, fmt.Errorf("unimplemented") +} + func NewPlugin( db storage.DatabaseStorage, signer *keysign.Signer, 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"