diff --git a/api/server.go b/api/server.go index d99fdda..03f274d 100644 --- a/api/server.go +++ b/api/server.go @@ -20,7 +20,7 @@ import ( vtypes "github.com/vultisig/verifier/types" "github.com/vultisig/verifier/vault" vgcommon "github.com/vultisig/vultisig-go/common" - vgtypes "github.com/vultisig/vultisig-go/types" + "github.com/vultisig/vultisig-go/types" "github.com/vultisig/plugin/internal/scheduler" "github.com/vultisig/plugin/service" @@ -174,7 +174,7 @@ func (s *Server) GetVault(c echo.Context) error { return c.JSON(http.StatusInternalServerError, NewErrorResponse("fail to get vault")) } - return c.JSON(http.StatusOK, vgtypes.VaultGetResponse{ + return c.JSON(http.StatusOK, types.VaultGetResponse{ Name: v.Name, PublicKeyEcdsa: v.PublicKeyEcdsa, PublicKeyEddsa: v.PublicKeyEddsa, diff --git a/common/vault.go b/common/vault.go index e37ea69..293f989 100644 --- a/common/vault.go +++ b/common/vault.go @@ -5,7 +5,7 @@ import ( v1 "github.com/vultisig/commondata/go/vultisig/vault/v1" vtypes "github.com/vultisig/verifier/types" - vault "github.com/vultisig/verifier/vault" + "github.com/vultisig/verifier/vault" vgcommon "github.com/vultisig/vultisig-go/common" ) diff --git a/go.mod b/go.mod index a479622..fb20072 100644 --- a/go.mod +++ b/go.mod @@ -19,8 +19,8 @@ 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-20250818151719-db3f03c3254c - github.com/vultisig/verifier v0.0.0-20250825065505-96fc04bb8d02 - github.com/vultisig/vultiserver v0.0.0-20250825042420-c6e6ac281110 + github.com/vultisig/verifier v0.0.0-20250820091538-a29a985cae1d + github.com/vultisig/vultiserver v0.0.0-20250715212748-4b23f9849e4b github.com/vultisig/vultisig-go v0.0.0-20250818095937-af97443fcbbe golang.org/x/sync v0.14.0 google.golang.org/protobuf v1.36.6 diff --git a/go.sum b/go.sum index 6f7eb42..712592d 100644 --- a/go.sum +++ b/go.sum @@ -761,10 +761,10 @@ 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-20250818151719-db3f03c3254c h1:oebbFeSAG8zGjCfhj5D4rhK0LtjlpTRhwQSYa4oVSCU= github.com/vultisig/recipes v0.0.0-20250818151719-db3f03c3254c/go.mod h1:f2XBQu8WO5jwTeWCGiuogg6y9y2dBdjLRqHR7z1f5es= -github.com/vultisig/verifier v0.0.0-20250825065505-96fc04bb8d02 h1:WZL9dIYIMc3mB3ar+p9CGJnqh7g/PnzWs4h1zZ0Xu7Y= -github.com/vultisig/verifier v0.0.0-20250825065505-96fc04bb8d02/go.mod h1:hNPszjdykqNCcj/pT8BRmotJ8rKKK3PXzYwj35zs+b8= -github.com/vultisig/vultiserver v0.0.0-20250825042420-c6e6ac281110 h1:7WDQ92FAdu08Byjgm3RNS8Sok49sK521PzPcbRpbzCE= -github.com/vultisig/vultiserver v0.0.0-20250825042420-c6e6ac281110/go.mod h1:HwP2IgW6Mcu/gX8paFuKvfibrGE9UmPgkOFTub6dskM= +github.com/vultisig/verifier v0.0.0-20250820091538-a29a985cae1d h1:PT7uf9dKpnFVHzZdLGf4/cTbU1LS669OMaybi1T4Ft4= +github.com/vultisig/verifier v0.0.0-20250820091538-a29a985cae1d/go.mod h1:3NVvxDlbaIRSAvUF6Kq0lik7xm7UJ/u7JdHKqkrLcNI= +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/vultisig/vultisig-go v0.0.0-20250818095937-af97443fcbbe h1:wPXoiswP3HP68g9TbI7GN8Xd8I3M/IbzOs2dypDpH6Y= github.com/vultisig/vultisig-go v0.0.0-20250818095937-af97443fcbbe/go.mod h1:jOf+2n1Eo/XZjiUbHjTfraPMw4HAZZ0Sw9Z6+vpQrU4= 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 9ae2daf..7373863 100644 --- a/plugin/fees/fees.go +++ b/plugin/fees/fees.go @@ -9,21 +9,20 @@ import ( "github.com/google/uuid" "github.com/hibiken/asynq" "github.com/sirupsen/logrus" + "github.com/vultisig/recipes/sdk/evm" + rtypes "github.com/vultisig/recipes/types" "github.com/vultisig/verifier/plugin" "github.com/vultisig/verifier/plugin/keysign" "github.com/vultisig/verifier/plugin/tx_indexer" vtypes "github.com/vultisig/verifier/types" + "github.com/vultisig/verifier/vault" vgcommon "github.com/vultisig/vultisig-go/common" "golang.org/x/sync/errgroup" "golang.org/x/sync/semaphore" - "github.com/vultisig/verifier/vault" - "github.com/vultisig/plugin/internal/types" "github.com/vultisig/plugin/internal/verifierapi" "github.com/vultisig/plugin/storage" - "github.com/vultisig/recipes/sdk/evm" - rtypes "github.com/vultisig/recipes/types" ) /* diff --git a/plugin/fees/transaction.go b/plugin/fees/transaction.go index 2603d8c..e3fb291 100644 --- a/plugin/fees/transaction.go +++ b/plugin/fees/transaction.go @@ -9,22 +9,21 @@ import ( "math/big" "strconv" + gcommon "github.com/ethereum/go-ethereum/common" + "github.com/ethereum/go-ethereum/common/hexutil" + etypes "github.com/ethereum/go-ethereum/core/types" "github.com/google/uuid" "github.com/sirupsen/logrus" "github.com/vultisig/mobile-tss-lib/tss" - "github.com/vultisig/plugin/common" "github.com/vultisig/recipes/engine" reth "github.com/vultisig/recipes/ethereum" - resolver "github.com/vultisig/recipes/resolver" - + "github.com/vultisig/recipes/resolver" rtypes "github.com/vultisig/recipes/types" vtypes "github.com/vultisig/verifier/types" "github.com/vultisig/vultisig-go/address" vgcommon "github.com/vultisig/vultisig-go/common" - gcommon "github.com/ethereum/go-ethereum/common" - "github.com/ethereum/go-ethereum/common/hexutil" - etypes "github.com/ethereum/go-ethereum/core/types" + "github.com/vultisig/plugin/common" "github.com/vultisig/plugin/internal/types" ) @@ -138,7 +137,7 @@ func (fp *FeePlugin) proposeTransactions(ctx context.Context, policy vtypes.Plug PolicyID: policy.ID, PluginID: policy.PluginID.String(), }, - Transaction: txHex, + Transaction: base64.StdEncoding.EncodeToString(tx), } txs = append(txs, signRequest) @@ -246,7 +245,7 @@ func (fp *FeePlugin) ValidateProposedTransactions(policy vtypes.PluginPolicy, tx } // Evaluate if the transaction is allowed by the policy - _, err = eng.Evaluate(recipe, vgcommon.Chain(keysignMessage.Chain), txBytes) + _, err = eng.Evaluate(recipe, keysignMessage.Chain, txBytes) if err != nil { return fmt.Errorf("failed to evaluate transaction: %w", err) } diff --git a/plugin/payroll/payroll.go b/plugin/payroll/payroll.go index 9a2b84a..ae8565f 100644 --- a/plugin/payroll/payroll.go +++ b/plugin/payroll/payroll.go @@ -13,7 +13,7 @@ import ( "github.com/vultisig/verifier/plugin/keysign" "github.com/vultisig/verifier/plugin/tx_indexer" "github.com/vultisig/verifier/vault" - "github.com/vultisig/vultisig-go/common" + vgcommon "github.com/vultisig/vultisig-go/common" ) var _ plugin.Spec = (*Plugin)(nil) @@ -49,7 +49,7 @@ func NewPlugin( var eth *evm.SDK if ethRpc != nil { - ethEvmChainID, err := common.Ethereum.EvmID() + ethEvmChainID, err := vgcommon.Ethereum.EvmID() if err != nil { return nil, fmt.Errorf("failed to get Ethereum EVM ID: %w", err) } diff --git a/plugin/payroll/policy.go b/plugin/payroll/policy.go index d1026e5..6ef4fb2 100644 --- a/plugin/payroll/policy.go +++ b/plugin/payroll/policy.go @@ -7,7 +7,6 @@ import ( "github.com/vultisig/recipes/engine" "github.com/vultisig/verifier/plugin" vtypes "github.com/vultisig/verifier/types" - vgcommon "github.com/vultisig/vultisig-go/common" ) func (p *Plugin) ValidateProposedTransactions(policy vtypes.PluginPolicy, txs []vtypes.PluginKeysignRequest) error { @@ -30,7 +29,7 @@ func (p *Plugin) ValidateProposedTransactions(policy vtypes.PluginPolicy, txs [] return fmt.Errorf("failed to decode transaction: %w", err) } - _, err = eng.Evaluate(recipe, vgcommon.Chain(keysignMessage.Chain), txBytes) + _, err = eng.Evaluate(recipe, keysignMessage.Chain, txBytes) if err != nil { return fmt.Errorf("failed to evaluate transaction: %w", err) } diff --git a/plugin/payroll/transaction.go b/plugin/payroll/transaction.go index 74375d6..361e92b 100644 --- a/plugin/payroll/transaction.go +++ b/plugin/payroll/transaction.go @@ -2,8 +2,6 @@ package payroll import ( "context" - "crypto/sha256" - "encoding/base64" "encoding/json" "fmt" "math/big" @@ -11,12 +9,9 @@ import ( "time" ecommon "github.com/ethereum/go-ethereum/common" - etypes "github.com/ethereum/go-ethereum/core/types" "github.com/hibiken/asynq" "github.com/sirupsen/logrus" "github.com/vultisig/mobile-tss-lib/tss" - "github.com/vultisig/plugin/internal/scheduler" - "github.com/vultisig/recipes/ethereum" "github.com/vultisig/recipes/sdk/evm" rtypes "github.com/vultisig/recipes/types" "github.com/vultisig/recipes/util" @@ -29,6 +24,7 @@ import ( "golang.org/x/sync/errgroup" "github.com/vultisig/plugin/common" + "github.com/vultisig/plugin/internal/scheduler" ) func (p *Plugin) HandleSchedulerTrigger(c context.Context, t *asynq.Task) error { @@ -126,10 +122,6 @@ func (p *Plugin) ProposeTransactions(policy vtypes.PluginPolicy) ([]vtypes.Plugi } chain := vgcommon.Ethereum - ethEvmID, err := chain.EvmID() - if err != nil { - return nil, fmt.Errorf("failed to get EVM ID for chain %s: %w", chain, err) - } nativeSymbol, err := chain.NativeSymbol() if err != nil { return nil, fmt.Errorf("failed to get native symbol for chain %s: %w", chain, err) @@ -177,16 +169,10 @@ func (p *Plugin) ProposeTransactions(policy vtypes.PluginPolicy) ([]vtypes.Plugi txHex := ecommon.Bytes2Hex(tx) - txData, e := ethereum.DecodeUnsignedPayload(tx) - if e != nil { - return fmt.Errorf("ethereum.DecodeUnsignedPayload: %w", e) - } - txHashToSign := etypes.LatestSignerForChainID(ethEvmID).Hash(etypes.NewTx(txData)) - txToTrack, e := p.txIndexerService.CreateTx(ctx, storage.CreateTxDto{ PluginID: policy.PluginID, PolicyID: policy.ID, - ChainID: vgcommon.Chain(chain), + ChainID: chain, TokenID: tokenID, FromPublicKey: policy.PublicKey, ToPublicKey: recipient, @@ -196,29 +182,14 @@ func (p *Plugin) ProposeTransactions(policy vtypes.PluginPolicy) ([]vtypes.Plugi return fmt.Errorf("p.txIndexerService.CreateTx: %w", e) } - msgHash := sha256.Sum256(txHashToSign.Bytes()) - - // Create signing request - signRequest := vtypes.PluginKeysignRequest{ - KeysignRequest: vtypes.KeysignRequest{ - PublicKey: policy.PublicKey, - Messages: []vtypes.KeysignMessage{ - { - TxIndexerID: txToTrack.ID.String(), - Message: base64.StdEncoding.EncodeToString(txHashToSign.Bytes()), - Chain: vgcommon.Chain(chain), - Hash: base64.StdEncoding.EncodeToString(msgHash[:]), - HashFunction: vtypes.HashFunction_SHA256, - }, - }, - PolicyID: policy.ID, - PluginID: policy.PluginID.String(), - }, - Transaction: txHex, + signRequest, e := vtypes.NewPluginKeysignRequestEvm( + policy, txToTrack.ID.String(), chain, tx) + if e != nil { + return fmt.Errorf("failed to create unsifned request: %w", e) } mu.Lock() - txs = append(txs, signRequest) + txs = append(txs, *signRequest) mu.Unlock() return nil }) diff --git a/scripts/dev/add_balance/main.go b/scripts/dev/add_balance/main.go index af54430..d9e97c9 100644 --- a/scripts/dev/add_balance/main.go +++ b/scripts/dev/add_balance/main.go @@ -15,7 +15,6 @@ import ( "github.com/ethereum/go-ethereum/core/types" "github.com/ethereum/go-ethereum/crypto" "github.com/ethereum/go-ethereum/ethclient" - "github.com/vultisig/vultisig-go/address" vgcommon "github.com/vultisig/vultisig-go/common" ) diff --git a/scripts/dev/create_fee_policy/main.go b/scripts/dev/create_fee_policy/main.go index 6f9e6c6..a9e4750 100644 --- a/scripts/dev/create_fee_policy/main.go +++ b/scripts/dev/create_fee_policy/main.go @@ -16,11 +16,12 @@ import ( "github.com/google/uuid" "github.com/labstack/echo/v4" vaultType "github.com/vultisig/commondata/go/vultisig/vault/v1" - "github.com/vultisig/plugin/common" rtypes "github.com/vultisig/recipes/types" vtypes "github.com/vultisig/verifier/types" vgcommon "github.com/vultisig/vultisig-go/common" "google.golang.org/protobuf/proto" + + "github.com/vultisig/plugin/common" ) /*