chore(wallet)_: transactions/types.go moved to services/wallet/wallettypes

This commit is contained in:
Sale Djenic 2024-11-05 22:28:24 +01:00
parent bbc2686de9
commit 92da9232f1
41 changed files with 191 additions and 175 deletions

View File

@ -12,7 +12,7 @@ import (
"github.com/status-im/status-go/params"
"github.com/status-im/status-go/services/personal"
"github.com/status-im/status-go/services/typeddata"
"github.com/status-im/status-go/transactions"
"github.com/status-im/status-go/services/wallet/wallettypes"
)
// StatusBackend defines the contract for the Status.im service
@ -39,13 +39,13 @@ type StatusBackend interface {
CallPrivateRPC(inputJSON string) (string, error)
CallRPC(inputJSON string) (string, error)
HashTransaction(sendArgs transactions.SendTxArgs) (transactions.SendTxArgs, types.Hash, error)
HashTransaction(sendArgs wallettypes.SendTxArgs) (wallettypes.SendTxArgs, types.Hash, error)
HashTypedData(typed typeddata.TypedData) (types.Hash, error)
HashTypedDataV4(typed signercore.TypedData) (types.Hash, error)
ResetChainData() error
SendTransaction(sendArgs transactions.SendTxArgs, password string) (hash types.Hash, err error)
SendTransactionWithChainID(chainID uint64, sendArgs transactions.SendTxArgs, password string) (hash types.Hash, err error)
SendTransactionWithSignature(sendArgs transactions.SendTxArgs, sig []byte) (hash types.Hash, err error)
SendTransaction(sendArgs wallettypes.SendTxArgs, password string) (hash types.Hash, err error)
SendTransactionWithChainID(chainID uint64, sendArgs wallettypes.SendTxArgs, password string) (hash types.Hash, err error)
SendTransactionWithSignature(sendArgs wallettypes.SendTxArgs, sig []byte) (hash types.Hash, err error)
SignHash(hexEncodedHash string) (string, error)
SignMessage(rpcParams personal.SignParams) (types.HexBytes, error)
SignTypedData(typed typeddata.TypedData, address string, password string) (types.HexBytes, error)

View File

@ -37,11 +37,11 @@ import (
"github.com/status-im/status-go/services/typeddata"
"github.com/status-im/status-go/services/wallet"
walletservice "github.com/status-im/status-go/services/wallet"
"github.com/status-im/status-go/services/wallet/wallettypes"
"github.com/status-im/status-go/signal"
"github.com/status-im/status-go/sqlite"
"github.com/status-im/status-go/t/helpers"
"github.com/status-im/status-go/t/utils"
"github.com/status-im/status-go/transactions"
"github.com/status-im/status-go/walletdatabase"
)
@ -603,7 +603,7 @@ func TestBackendGetVerifiedAccount(t *testing.T) {
require.NoError(t, err)
address := gethcrypto.PubkeyToAddress(pkey.PublicKey)
key, err := backend.getVerifiedWalletAccount(address.String(), password)
require.EqualError(t, err, transactions.ErrAccountDoesntExist.Error())
require.EqualError(t, err, wallettypes.ErrAccountDoesntExist.Error())
require.Nil(t, key)
})

View File

@ -55,6 +55,7 @@ import (
"github.com/status-im/status-go/services/personal"
"github.com/status-im/status-go/services/typeddata"
"github.com/status-im/status-go/services/wallet"
"github.com/status-im/status-go/services/wallet/wallettypes"
"github.com/status-im/status-go/signal"
"github.com/status-im/status-go/sqlite"
"github.com/status-im/status-go/transactions"
@ -2267,7 +2268,7 @@ func (b *GethStatusBackend) CallPrivateRPC(inputJSON string) (string, error) {
}
// SendTransaction creates a new transaction and waits until it's complete.
func (b *GethStatusBackend) SendTransaction(sendArgs transactions.SendTxArgs, password string) (hash types.Hash, err error) {
func (b *GethStatusBackend) SendTransaction(sendArgs wallettypes.SendTxArgs, password string) (hash types.Hash, err error) {
verifiedAccount, err := b.getVerifiedWalletAccount(sendArgs.From.String(), password)
if err != nil {
return hash, err
@ -2277,7 +2278,7 @@ func (b *GethStatusBackend) SendTransaction(sendArgs transactions.SendTxArgs, pa
return hash, err
}
func (b *GethStatusBackend) SendTransactionWithChainID(chainID uint64, sendArgs transactions.SendTxArgs, password string) (hash types.Hash, err error) {
func (b *GethStatusBackend) SendTransactionWithChainID(chainID uint64, sendArgs wallettypes.SendTxArgs, password string) (hash types.Hash, err error) {
verifiedAccount, err := b.getVerifiedWalletAccount(sendArgs.From.String(), password)
if err != nil {
return hash, err
@ -2287,7 +2288,7 @@ func (b *GethStatusBackend) SendTransactionWithChainID(chainID uint64, sendArgs
return hash, err
}
func (b *GethStatusBackend) SendTransactionWithSignature(sendArgs transactions.SendTxArgs, sig []byte) (hash types.Hash, err error) {
func (b *GethStatusBackend) SendTransactionWithSignature(sendArgs wallettypes.SendTxArgs, sig []byte) (hash types.Hash, err error) {
txWithSignature, err := b.transactor.BuildTransactionWithSignature(b.transactor.NetworkID(), sendArgs, sig)
if err != nil {
return hash, err
@ -2297,7 +2298,7 @@ func (b *GethStatusBackend) SendTransactionWithSignature(sendArgs transactions.S
}
// HashTransaction validate the transaction and returns new sendArgs and the transaction hash.
func (b *GethStatusBackend) HashTransaction(sendArgs transactions.SendTxArgs) (transactions.SendTxArgs, types.Hash, error) {
func (b *GethStatusBackend) HashTransaction(sendArgs wallettypes.SendTxArgs) (wallettypes.SendTxArgs, types.Hash, error) {
return b.transactor.HashTransaction(sendArgs)
}
@ -2379,8 +2380,8 @@ func (b *GethStatusBackend) getVerifiedWalletAccount(address, password string) (
}
if !exists {
b.logger.Error("failed to get a selected account", zap.Error(transactions.ErrInvalidTxSender))
return nil, transactions.ErrAccountDoesntExist
b.logger.Error("failed to get a selected account", zap.Error(wallettypes.ErrInvalidTxSender))
return nil, wallettypes.ErrAccountDoesntExist
}
key, err := b.accountManager.VerifyAccountPassword(config.KeyStoreDir, address, password)

View File

@ -5,7 +5,7 @@ import (
"github.com/status-im/status-go/account"
"github.com/status-im/status-go/eth-node/keystore"
"github.com/status-im/status-go/transactions"
"github.com/status-im/status-go/services/wallet/wallettypes"
)
const (
@ -20,9 +20,9 @@ const (
)
var errToCodeMap = map[error]int{
account.ErrNoAccountSelected: codeErrNoAccountSelected,
transactions.ErrInvalidTxSender: codeErrInvalidTxSender,
keystore.ErrDecrypt: codeErrDecrypt,
account.ErrNoAccountSelected: codeErrNoAccountSelected,
wallettypes.ErrInvalidTxSender: codeErrInvalidTxSender,
keystore.ErrDecrypt: codeErrDecrypt,
}
type jsonrpcSuccessfulResponse struct {

View File

@ -46,8 +46,8 @@ import (
"github.com/status-im/status-go/server/pairing/preflight"
"github.com/status-im/status-go/services/personal"
"github.com/status-im/status-go/services/typeddata"
"github.com/status-im/status-go/services/wallet/wallettypes"
"github.com/status-im/status-go/signal"
"github.com/status-im/status-go/transactions"
"github.com/status-im/status-go/mobile/callog"
)
@ -848,7 +848,7 @@ func SendTransactionWithChainID(chainID int, txArgsJSON, password string) string
// sendTransactionWithChainID converts RPC args and calls backend.SendTransactionWithChainID.
func sendTransactionWithChainID(chainID int, txArgsJSON, password string) string {
var params transactions.SendTxArgs
var params wallettypes.SendTxArgs
err := json.Unmarshal([]byte(txArgsJSON), &params)
if err != nil {
return prepareJSONResponseWithCode(nil, err, codeFailedParseParams)
@ -869,7 +869,7 @@ func SendTransaction(txArgsJSON, password string) string {
// sendTransaction converts RPC args and calls backend.SendTransaction.
// Deprecated: Use sendTransactionV2 instead.
func sendTransaction(txArgsJSON, password string) string {
var params transactions.SendTxArgs
var params wallettypes.SendTxArgs
err := json.Unmarshal([]byte(txArgsJSON), &params)
if err != nil {
return prepareJSONResponseWithCode(nil, err, codeFailedParseParams)
@ -911,7 +911,7 @@ func SendTransactionWithSignature(txArgsJSON, sigString string) string {
// sendTransactionWithSignature converts RPC args and calls backend.SendTransactionWithSignature
func sendTransactionWithSignature(txArgsJSON, sigString string) string {
var params transactions.SendTxArgs
var params wallettypes.SendTxArgs
err := json.Unmarshal([]byte(txArgsJSON), &params)
if err != nil {
return prepareJSONResponseWithCode(nil, err, codeFailedParseParams)
@ -936,7 +936,7 @@ func HashTransaction(txArgsJSON string) string {
// hashTransaction validate the transaction and returns new txArgs and the transaction hash.
func hashTransaction(txArgsJSON string) string {
var params transactions.SendTxArgs
var params wallettypes.SendTxArgs
err := json.Unmarshal([]byte(txArgsJSON), &params)
if err != nil {
return prepareJSONResponseWithCode(nil, err, codeFailedParseParams)
@ -949,8 +949,8 @@ func hashTransaction(txArgsJSON string) string {
}
result := struct {
Transaction transactions.SendTxArgs `json:"transaction"`
Hash types.Hash `json:"hash"`
Transaction wallettypes.SendTxArgs `json:"transaction"`
Hash types.Hash `json:"hash"`
}{
Transaction: newTxArgs,
Hash: hash,

View File

@ -43,8 +43,8 @@ import (
walletcommon "github.com/status-im/status-go/services/wallet/common"
"github.com/status-im/status-go/services/wallet/thirdparty"
"github.com/status-im/status-go/services/wallet/token"
"github.com/status-im/status-go/services/wallet/wallettypes"
"github.com/status-im/status-go/signal"
"github.com/status-im/status-go/transactions"
)
type Publisher interface {
@ -266,7 +266,7 @@ type AssetContractData struct {
type CommunityTokensServiceInterface interface {
GetCollectibleContractData(chainID uint64, contractAddress string) (*CollectibleContractData, error)
SetSignerPubKey(ctx context.Context, chainID uint64, contractAddress string, txArgs transactions.SendTxArgs, password string, newSignerPubKey string) (string, error)
SetSignerPubKey(ctx context.Context, chainID uint64, contractAddress string, txArgs wallettypes.SendTxArgs, password string, newSignerPubKey string) (string, error)
GetAssetContractData(chainID uint64, contractAddress string) (*AssetContractData, error)
SafeGetSignerPubKey(ctx context.Context, chainID uint64, communityID string) (string, error)
DeploymentSignatureDigest(chainID uint64, addressFrom string, communityID string) ([]byte, error)

View File

@ -30,7 +30,7 @@ import (
walletCommon "github.com/status-im/status-go/services/wallet/common"
"github.com/status-im/status-go/services/wallet/thirdparty"
walletToken "github.com/status-im/status-go/services/wallet/token"
"github.com/status-im/status-go/transactions"
"github.com/status-im/status-go/services/wallet/wallettypes"
)
type AccountManagerMock struct {
@ -201,7 +201,7 @@ func (c *CollectiblesServiceMock) SetSignerPubkeyForCommunity(communityID []byte
c.Signers[types.EncodeHex(communityID)] = signerPubKey
}
func (c *CollectiblesServiceMock) SetSignerPubKey(ctx context.Context, chainID uint64, contractAddress string, txArgs transactions.SendTxArgs, password string, newSignerPubKey string) (string, error) {
func (c *CollectiblesServiceMock) SetSignerPubKey(ctx context.Context, chainID uint64, contractAddress string, txArgs wallettypes.SendTxArgs, password string, newSignerPubKey string) (string, error) {
return "", nil
}

View File

@ -3,13 +3,13 @@ package requests
import (
"gopkg.in/go-playground/validator.v9"
"github.com/status-im/status-go/transactions"
"github.com/status-im/status-go/services/wallet/wallettypes"
)
// SendTransaction represents a request to send a transaction.
type SendTransaction struct {
TxArgs transactions.SendTxArgs `json:"txArgs"`
Password string `json:"password" validate:"required"`
TxArgs wallettypes.SendTxArgs `json:"txArgs"`
Password string `json:"password" validate:"required"`
}
// Validate checks the fields of SendTransaction to ensure they meet the requirements.

View File

@ -25,6 +25,7 @@ import (
"github.com/status-im/status-go/services/utils"
"github.com/status-im/status-go/services/wallet/bigint"
wcommon "github.com/status-im/status-go/services/wallet/common"
"github.com/status-im/status-go/services/wallet/wallettypes"
"github.com/status-im/status-go/transactions"
)
@ -101,7 +102,7 @@ func (d *DeploymentParameters) Validate(isAsset bool) error {
return nil
}
func (api *API) DeployCollectibles(ctx context.Context, chainID uint64, deploymentParameters DeploymentParameters, txArgs transactions.SendTxArgs, password string) (DeploymentDetails, error) {
func (api *API) DeployCollectibles(ctx context.Context, chainID uint64, deploymentParameters DeploymentParameters, txArgs wallettypes.SendTxArgs, password string) (DeploymentDetails, error) {
err := deploymentParameters.Validate(false)
if err != nil {
return DeploymentDetails{}, err
@ -180,7 +181,7 @@ func prepareDeploymentSignatureStruct(signature string, communityID string, addr
func (api *API) DeployOwnerToken(ctx context.Context, chainID uint64,
ownerTokenParameters DeploymentParameters, masterTokenParameters DeploymentParameters,
signerPubKey string, txArgs transactions.SendTxArgs, password string) (DeploymentDetails, error) {
signerPubKey string, txArgs wallettypes.SendTxArgs, password string) (DeploymentDetails, error) {
err := ownerTokenParameters.Validate(false)
if err != nil {
return DeploymentDetails{}, err
@ -272,7 +273,7 @@ func (api *API) ReTrackOwnerTokenDeploymentTransaction(ctx context.Context, chai
return api.s.ReTrackOwnerTokenDeploymentTransaction(ctx, chainID, contractAddress)
}
func (api *API) DeployAssets(ctx context.Context, chainID uint64, deploymentParameters DeploymentParameters, txArgs transactions.SendTxArgs, password string) (DeploymentDetails, error) {
func (api *API) DeployAssets(ctx context.Context, chainID uint64, deploymentParameters DeploymentParameters, txArgs wallettypes.SendTxArgs, password string) (DeploymentDetails, error) {
err := deploymentParameters.Validate(true)
if err != nil {
@ -376,7 +377,7 @@ func (api *API) NewAssetsInstance(chainID uint64, contractAddress string) (*asse
}
// Universal minting function for every type of token.
func (api *API) MintTokens(ctx context.Context, chainID uint64, contractAddress string, txArgs transactions.SendTxArgs, password string, walletAddresses []string, amount *bigint.BigInt) (string, error) {
func (api *API) MintTokens(ctx context.Context, chainID uint64, contractAddress string, txArgs wallettypes.SendTxArgs, password string, walletAddresses []string, amount *bigint.BigInt) (string, error) {
err := api.s.ValidateWalletsAndAmounts(walletAddresses, amount)
if err != nil {
@ -439,7 +440,7 @@ func (api *API) RemoteDestructedAmount(ctx context.Context, chainID uint64, cont
}
// This is only ERC721 function
func (api *API) RemoteBurn(ctx context.Context, chainID uint64, contractAddress string, txArgs transactions.SendTxArgs, password string, tokenIds []*bigint.BigInt, additionalData string) (string, error) {
func (api *API) RemoteBurn(ctx context.Context, chainID uint64, contractAddress string, txArgs wallettypes.SendTxArgs, password string, tokenIds []*bigint.BigInt, additionalData string) (string, error) {
err := api.s.validateTokens(tokenIds)
if err != nil {
return "", err
@ -491,7 +492,7 @@ func (api *API) RemainingSupply(ctx context.Context, chainID uint64, contractAdd
return api.s.remainingSupply(ctx, chainID, contractAddress)
}
func (api *API) Burn(ctx context.Context, chainID uint64, contractAddress string, txArgs transactions.SendTxArgs, password string, burnAmount *bigint.BigInt) (string, error) {
func (api *API) Burn(ctx context.Context, chainID uint64, contractAddress string, txArgs wallettypes.SendTxArgs, password string, burnAmount *bigint.BigInt) (string, error) {
err := api.s.validateBurnAmount(ctx, burnAmount, chainID, contractAddress)
if err != nil {
return "", err
@ -546,7 +547,7 @@ func (api *API) SafeGetOwnerTokenAddress(ctx context.Context, chainID uint64, co
return api.s.SafeGetOwnerTokenAddress(ctx, chainID, communityID)
}
func (api *API) SetSignerPubKey(ctx context.Context, chainID uint64, contractAddress string, txArgs transactions.SendTxArgs, password string, newSignerPubKey string) (string, error) {
func (api *API) SetSignerPubKey(ctx context.Context, chainID uint64, contractAddress string, txArgs wallettypes.SendTxArgs, password string, newSignerPubKey string) (string, error) {
return api.s.SetSignerPubKey(ctx, chainID, contractAddress, txArgs, password, newSignerPubKey)
}

View File

@ -21,7 +21,7 @@ import (
"github.com/status-im/status-go/protocol/protobuf"
"github.com/status-im/status-go/services/wallet/bigint"
"github.com/status-im/status-go/services/wallet/router/fees"
"github.com/status-im/status-go/transactions"
"github.com/status-im/status-go/services/wallet/wallettypes"
)
type CommunityTokenFees struct {
@ -375,8 +375,8 @@ func (s *Service) prepareCommunityTokenFees(ctx context.Context, from common.Add
}, nil
}
func (s *Service) suggestedFeesToSendTxArgs(from common.Address, to *common.Address, gas uint64, suggestedFees *fees.SuggestedFeesGwei) transactions.SendTxArgs {
sendArgs := transactions.SendTxArgs{}
func (s *Service) suggestedFeesToSendTxArgs(from common.Address, to *common.Address, gas uint64, suggestedFees *fees.SuggestedFeesGwei) wallettypes.SendTxArgs {
sendArgs := wallettypes.SendTxArgs{}
sendArgs.From = types.Address(from)
sendArgs.To = (*types.Address)(to)
sendArgs.Gas = (*hexutil.Uint64)(&gas)
@ -389,7 +389,7 @@ func (s *Service) suggestedFeesToSendTxArgs(from common.Address, to *common.Addr
return sendArgs
}
func (s *Service) estimateL1Fee(ctx context.Context, chainID uint64, sendArgs transactions.SendTxArgs) (uint64, error) {
func (s *Service) estimateL1Fee(ctx context.Context, chainID uint64, sendArgs wallettypes.SendTxArgs) (uint64, error) {
transaction, _, err := s.transactor.ValidateAndBuildTransaction(chainID, sendArgs, -1)
if err != nil {
return 0, err

View File

@ -35,6 +35,7 @@ import (
wcommon "github.com/status-im/status-go/services/wallet/common"
"github.com/status-im/status-go/services/wallet/router/fees"
"github.com/status-im/status-go/services/wallet/walletevent"
"github.com/status-im/status-go/services/wallet/wallettypes"
"github.com/status-im/status-go/signal"
"github.com/status-im/status-go/transactions"
)
@ -501,7 +502,7 @@ func (s *Service) ProcessCommunityTokenAction(message *protobuf.CommunityTokenAc
return nil
}
func (s *Service) SetSignerPubKey(ctx context.Context, chainID uint64, contractAddress string, txArgs transactions.SendTxArgs, password string, newSignerPubKey string) (string, error) {
func (s *Service) SetSignerPubKey(ctx context.Context, chainID uint64, contractAddress string, txArgs wallettypes.SendTxArgs, password string, newSignerPubKey string) (string, error) {
if len(newSignerPubKey) <= 0 {
return "", fmt.Errorf("signerPubKey is empty")

View File

@ -11,8 +11,8 @@ import (
"github.com/status-im/status-go/eth-node/types"
persistence "github.com/status-im/status-go/services/connector/database"
"github.com/status-im/status-go/services/wallet/wallettypes"
"github.com/status-im/status-go/signal"
"github.com/status-im/status-go/transactions"
)
var (
@ -148,7 +148,7 @@ func (c *ClientSideHandler) RecallDAppPermissions(args RecallDAppPermissionsArgs
return nil
}
func (c *ClientSideHandler) RequestSendTransaction(dApp signal.ConnectorDApp, chainID uint64, txArgs *transactions.SendTxArgs) (types.Hash, error) {
func (c *ClientSideHandler) RequestSendTransaction(dApp signal.ConnectorDApp, chainID uint64, txArgs *wallettypes.SendTxArgs) (types.Hash, error) {
if !c.setRequestRunning() {
return types.Hash{}, ErrAnotherConnectorOperationIsAwaitingFor
}

View File

@ -8,8 +8,8 @@ import (
"github.com/status-im/status-go/eth-node/types"
"github.com/status-im/status-go/params"
"github.com/status-im/status-go/services/wallet/wallettypes"
"github.com/status-im/status-go/signal"
"github.com/status-im/status-go/transactions"
)
const (
@ -75,7 +75,7 @@ type ClientSideHandlerInterface interface {
RequestAccountsRejected(args RejectedArgs) error
RecallDAppPermissions(args RecallDAppPermissionsArgs) error
RequestSendTransaction(dApp signal.ConnectorDApp, chainID uint64, txArgs *transactions.SendTxArgs) (types.Hash, error)
RequestSendTransaction(dApp signal.ConnectorDApp, chainID uint64, txArgs *wallettypes.SendTxArgs) (types.Hash, error)
SendTransactionAccepted(args SendTransactionAcceptedArgs) error
SendTransactionRejected(args RejectedArgs) error

View File

@ -13,8 +13,8 @@ import (
"github.com/status-im/status-go/rpc"
persistence "github.com/status-im/status-go/services/connector/database"
"github.com/status-im/status-go/services/wallet/router/fees"
"github.com/status-im/status-go/services/wallet/wallettypes"
"github.com/status-im/status-go/signal"
"github.com/status-im/status-go/transactions"
)
var (
@ -29,7 +29,7 @@ type SendTransactionCommand struct {
ClientHandler ClientSideHandlerInterface
}
func (r *RPCRequest) getSendTransactionParams() (*transactions.SendTxArgs, error) {
func (r *RPCRequest) getSendTransactionParams() (*wallettypes.SendTxArgs, error) {
if r.Params == nil || len(r.Params) == 0 {
return nil, ErrEmptyRPCParams
}
@ -44,7 +44,7 @@ func (r *RPCRequest) getSendTransactionParams() (*transactions.SendTxArgs, error
return nil, fmt.Errorf("error marshalling first transaction param: %v", err)
}
var sendTxArgs transactions.SendTxArgs
var sendTxArgs wallettypes.SendTxArgs
err = json.Unmarshal(paramBytes, &sendTxArgs)
if err != nil {
return nil, fmt.Errorf("error unmarshalling first transaction param to SendTxArgs: %v", err)

View File

@ -13,12 +13,12 @@ import (
"github.com/ethereum/go-ethereum/common/hexutil"
"github.com/status-im/status-go/eth-node/types"
mock_client "github.com/status-im/status-go/rpc/chain/mock/client"
"github.com/status-im/status-go/services/wallet/wallettypes"
"github.com/status-im/status-go/signal"
"github.com/status-im/status-go/transactions"
)
func prepareSendTransactionRequest(dApp signal.ConnectorDApp, from types.Address) (RPCRequest, error) {
sendArgs := transactions.SendTxArgs{
sendArgs := wallettypes.SendTxArgs{
From: from,
To: &types.Address{0x02},
Value: &hexutil.Big{},

View File

@ -32,6 +32,7 @@ import (
"github.com/status-im/status-go/services/ens/ensresolver"
"github.com/status-im/status-go/services/utils"
wcommon "github.com/status-im/status-go/services/wallet/common"
"github.com/status-im/status-go/services/wallet/wallettypes"
"github.com/status-im/status-go/transactions"
)
@ -147,7 +148,7 @@ func (api *API) Price(ctx context.Context, chainID uint64) (string, error) {
// Deprecated: `Release` was used before introducing a new, uniform, sending flow that uses router.
// Releasing ens username should start from calling `wallet_getSuggestedRoutesAsync`
// TODO: remove once mobile switches to a new sending flow.
func (api *API) Release(ctx context.Context, chainID uint64, txArgs transactions.SendTxArgs, password string, username string) (string, error) {
func (api *API) Release(ctx context.Context, chainID uint64, txArgs wallettypes.SendTxArgs, password string, username string) (string, error) {
registryAddr, err := api.ensResolver.GetRegistrarAddress(ctx, chainID)
if err != nil {
return "", err
@ -185,7 +186,7 @@ func (api *API) Release(ctx context.Context, chainID uint64, txArgs transactions
// Deprecated: `ReleasePrepareTxCallMsg` was used before introducing a new, uniform, sending flow that uses router.
// Releasing ens username should start from calling `wallet_getSuggestedRoutesAsync`
// TODO: remove once mobile switches to a new sending flow.
func (api *API) ReleasePrepareTxCallMsg(ctx context.Context, chainID uint64, txArgs transactions.SendTxArgs, username string) (ethereum.CallMsg, error) {
func (api *API) ReleasePrepareTxCallMsg(ctx context.Context, chainID uint64, txArgs wallettypes.SendTxArgs, username string) (ethereum.CallMsg, error) {
registrarABI, err := abi.JSON(strings.NewReader(registrar.UsernameRegistrarABI))
if err != nil {
return ethereum.CallMsg{}, err
@ -208,10 +209,7 @@ func (api *API) ReleasePrepareTxCallMsg(ctx context.Context, chainID uint64, txA
}, nil
}
// Deprecated: `ReleasePrepareTx` was used before introducing a new, uniform, sending flow that uses router.
// Releasing ens username should start from calling `wallet_getSuggestedRoutesAsync`
// TODO: remove once mobile switches to a new sending flow.
func (api *API) ReleasePrepareTx(ctx context.Context, chainID uint64, txArgs transactions.SendTxArgs, username string) (interface{}, error) {
func (api *API) ReleasePrepareTx(ctx context.Context, chainID uint64, txArgs wallettypes.SendTxArgs, username string) (interface{}, error) {
callMsg, err := api.ReleasePrepareTxCallMsg(ctx, chainID, txArgs, username)
if err != nil {
return nil, err
@ -223,7 +221,7 @@ func (api *API) ReleasePrepareTx(ctx context.Context, chainID uint64, txArgs tra
// Deprecated: `ReleaseEstimate` was used before introducing a new, uniform, sending flow that uses router.
// Releasing ens username should start from calling `wallet_getSuggestedRoutesAsync`
// TODO: remove once mobile switches to a new sending flow.
func (api *API) ReleaseEstimate(ctx context.Context, chainID uint64, txArgs transactions.SendTxArgs, username string) (uint64, error) {
func (api *API) ReleaseEstimate(ctx context.Context, chainID uint64, txArgs wallettypes.SendTxArgs, username string) (uint64, error) {
callMsg, err := api.ReleasePrepareTxCallMsg(ctx, chainID, txArgs, username)
if err != nil {
return 0, err
@ -235,7 +233,7 @@ func (api *API) ReleaseEstimate(ctx context.Context, chainID uint64, txArgs tran
// Deprecated: `Register` was used before introducing a new, uniform, sending flow that uses router.
// Releasing ens username should start from calling `wallet_getSuggestedRoutesAsync`
// TODO: remove once mobile switches to a new sending flow.
func (api *API) Register(ctx context.Context, chainID uint64, txArgs transactions.SendTxArgs, password string, username string, pubkey string) (string, error) {
func (api *API) Register(ctx context.Context, chainID uint64, txArgs wallettypes.SendTxArgs, password string, username string, pubkey string) (string, error) {
registryAddr, err := api.ensResolver.GetRegistrarAddress(ctx, chainID)
if err != nil {
return "", err
@ -273,7 +271,7 @@ func (api *API) Register(ctx context.Context, chainID uint64, txArgs transaction
// Deprecated: `RegisterPrepareTxCallMsg` was used before introducing a new, uniform, sending flow that uses router.
// Releasing ens username should start from calling `wallet_getSuggestedRoutesAsync`
// TODO: remove once mobile switches to a new sending flow.
func (api *API) RegisterPrepareTxCallMsg(ctx context.Context, chainID uint64, txArgs transactions.SendTxArgs, username string, pubkey string) (ethereum.CallMsg, error) {
func (api *API) RegisterPrepareTxCallMsg(ctx context.Context, chainID uint64, txArgs wallettypes.SendTxArgs, username string, pubkey string) (ethereum.CallMsg, error) {
priceHex, err := api.Price(ctx, chainID)
if err != nil {
return ethereum.CallMsg{}, err
@ -322,7 +320,7 @@ func (api *API) RegisterPrepareTxCallMsg(ctx context.Context, chainID uint64, tx
// Deprecated: `RegisterPrepareTx` was used before introducing a new, uniform, sending flow that uses router.
// Releasing ens username should start from calling `wallet_getSuggestedRoutesAsync`
// TODO: remove once mobile switches to a new sending flow.
func (api *API) RegisterPrepareTx(ctx context.Context, chainID uint64, txArgs transactions.SendTxArgs, username string, pubkey string) (interface{}, error) {
func (api *API) RegisterPrepareTx(ctx context.Context, chainID uint64, txArgs wallettypes.SendTxArgs, username string, pubkey string) (interface{}, error) {
callMsg, err := api.RegisterPrepareTxCallMsg(ctx, chainID, txArgs, username, pubkey)
if err != nil {
return nil, err
@ -334,7 +332,7 @@ func (api *API) RegisterPrepareTx(ctx context.Context, chainID uint64, txArgs tr
// Deprecated: `RegisterEstimate` was used before introducing a new, uniform, sending flow that uses router.
// Releasing ens username should start from calling `wallet_getSuggestedRoutesAsync`
// TODO: remove once mobile switches to a new sending flow.
func (api *API) RegisterEstimate(ctx context.Context, chainID uint64, txArgs transactions.SendTxArgs, username string, pubkey string) (uint64, error) {
func (api *API) RegisterEstimate(ctx context.Context, chainID uint64, txArgs wallettypes.SendTxArgs, username string, pubkey string) (uint64, error) {
callMsg, err := api.RegisterPrepareTxCallMsg(ctx, chainID, txArgs, username, pubkey)
if err != nil {
return 0, err
@ -346,7 +344,7 @@ func (api *API) RegisterEstimate(ctx context.Context, chainID uint64, txArgs tra
// Deprecated: `SetPubKey` was used before introducing a new, uniform, sending flow that uses router.
// Releasing ens username should start from calling `wallet_getSuggestedRoutesAsync`
// TODO: remove once mobile switches to a new sending flow.
func (api *API) SetPubKey(ctx context.Context, chainID uint64, txArgs transactions.SendTxArgs, password string, username string, pubkey string) (string, error) {
func (api *API) SetPubKey(ctx context.Context, chainID uint64, txArgs wallettypes.SendTxArgs, password string, username string, pubkey string) (string, error) {
resolverAddress, err := api.Resolver(ctx, chainID, username)
if err != nil {
return "", err
@ -384,7 +382,7 @@ func (api *API) SetPubKey(ctx context.Context, chainID uint64, txArgs transactio
// Deprecated: `SetPubKeyPrepareTxCallMsg` was used before introducing a new, uniform, sending flow that uses router.
// Releasing ens username should start from calling `wallet_getSuggestedRoutesAsync`
// TODO: remove once mobile switches to a new sending flow.
func (api *API) SetPubKeyPrepareTxCallMsg(ctx context.Context, chainID uint64, txArgs transactions.SendTxArgs, username string, pubkey string) (ethereum.CallMsg, error) {
func (api *API) SetPubKeyPrepareTxCallMsg(ctx context.Context, chainID uint64, txArgs wallettypes.SendTxArgs, username string, pubkey string) (ethereum.CallMsg, error) {
err := wcommon.ValidateENSUsername(username)
if err != nil {
return ethereum.CallMsg{}, err
@ -417,7 +415,7 @@ func (api *API) SetPubKeyPrepareTxCallMsg(ctx context.Context, chainID uint64, t
// Deprecated: `SetPubKeyPrepareTx` was used before introducing a new, uniform, sending flow that uses router.
// Releasing ens username should start from calling `wallet_getSuggestedRoutesAsync`
// TODO: remove once mobile switches to a new sending flow.
func (api *API) SetPubKeyPrepareTx(ctx context.Context, chainID uint64, txArgs transactions.SendTxArgs, username string, pubkey string) (interface{}, error) {
func (api *API) SetPubKeyPrepareTx(ctx context.Context, chainID uint64, txArgs wallettypes.SendTxArgs, username string, pubkey string) (interface{}, error) {
callMsg, err := api.SetPubKeyPrepareTxCallMsg(ctx, chainID, txArgs, username, pubkey)
if err != nil {
return nil, err
@ -429,7 +427,7 @@ func (api *API) SetPubKeyPrepareTx(ctx context.Context, chainID uint64, txArgs t
// Deprecated: `SetPubKeyEstimate` was used before introducing a new, uniform, sending flow that uses router.
// Releasing ens username should start from calling `wallet_getSuggestedRoutesAsync`
// TODO: remove once mobile switches to a new sending flow.
func (api *API) SetPubKeyEstimate(ctx context.Context, chainID uint64, txArgs transactions.SendTxArgs, username string, pubkey string) (uint64, error) {
func (api *API) SetPubKeyEstimate(ctx context.Context, chainID uint64, txArgs wallettypes.SendTxArgs, username string, pubkey string) (uint64, error) {
callMsg, err := api.SetPubKeyPrepareTxCallMsg(ctx, chainID, txArgs, username, pubkey)
if err != nil {
return 0, err

View File

@ -22,7 +22,7 @@ import (
"github.com/status-im/status-go/logutils"
"github.com/status-im/status-go/rpc"
walletCommon "github.com/status-im/status-go/services/wallet/common"
"github.com/status-im/status-go/transactions"
"github.com/status-im/status-go/services/wallet/wallettypes"
)
func NewEnsResolver(rpcClient *rpc.Client) *EnsResolver {
@ -270,7 +270,7 @@ func (e *EnsResolver) Price(ctx context.Context, chainID uint64) (string, error)
return fmt.Sprintf("%x", price), nil
}
func (e *EnsResolver) Release(ctx context.Context, chainID uint64, registryAddress common.Address, txArgs transactions.SendTxArgs, username string, signFn bind.SignerFn) (*types.Transaction, error) {
func (e *EnsResolver) Release(ctx context.Context, chainID uint64, registryAddress common.Address, txArgs wallettypes.SendTxArgs, username string, signFn bind.SignerFn) (*types.Transaction, error) {
registrar, err := e.contractMaker.NewUsernameRegistrar(chainID, registryAddress)
if err != nil {
return nil, err
@ -293,7 +293,7 @@ func (e *EnsResolver) ReleaseEstimate(ctx context.Context, chainID uint64, callM
return estimate + 1000, nil
}
func (e *EnsResolver) Register(ctx context.Context, chainID uint64, registryAddress common.Address, txArgs transactions.SendTxArgs, username string, pubkey string, signFn bind.SignerFn) (*types.Transaction, error) {
func (e *EnsResolver) Register(ctx context.Context, chainID uint64, registryAddress common.Address, txArgs wallettypes.SendTxArgs, username string, pubkey string, signFn bind.SignerFn) (*types.Transaction, error) {
snt, err := e.contractMaker.NewSNT(chainID)
if err != nil {
return nil, err
@ -339,7 +339,7 @@ func (e *EnsResolver) RegisterEstimate(ctx context.Context, chainID uint64, call
return estimate + 1000, nil
}
func (e *EnsResolver) SetPubKey(ctx context.Context, chainID uint64, resolverAddress *common.Address, txArgs transactions.SendTxArgs, username string, pubkey string, signFn bind.SignerFn) (*types.Transaction, error) {
func (e *EnsResolver) SetPubKey(ctx context.Context, chainID uint64, resolverAddress *common.Address, txArgs wallettypes.SendTxArgs, username string, pubkey string, signFn bind.SignerFn) (*types.Transaction, error) {
err := walletCommon.ValidateENSUsername(username)
if err != nil {
return nil, err

View File

@ -39,6 +39,7 @@ import (
"github.com/status-im/status-go/services/wallet/token"
"github.com/status-im/status-go/services/wallet/transfer"
"github.com/status-im/status-go/services/wallet/walletconnect"
"github.com/status-im/status-go/services/wallet/wallettypes"
"github.com/status-im/status-go/transactions"
)
@ -660,7 +661,7 @@ func (api *API) SignMessage(ctx context.Context, message types.HexBytes, address
func (api *API) BuildTransaction(ctx context.Context, chainID uint64, sendTxArgsJSON string) (response *transfer.TxResponse, err error) {
logutils.ZapLogger().Debug("[WalletAPI::BuildTransaction]", zap.Uint64("chainID", chainID), zap.String("sendTxArgsJSON", sendTxArgsJSON))
var params transactions.SendTxArgs
var params wallettypes.SendTxArgs
err = json.Unmarshal([]byte(sendTxArgsJSON), &params)
if err != nil {
return nil, err
@ -676,7 +677,7 @@ func (api *API) BuildRawTransaction(ctx context.Context, chainID uint64, sendTxA
return nil, err
}
var params transactions.SendTxArgs
var params wallettypes.SendTxArgs
err = json.Unmarshal([]byte(sendTxArgsJSON), &params)
if err != nil {
return nil, err
@ -698,7 +699,7 @@ func (api *API) SendTransactionWithSignature(ctx context.Context, chainID uint64
return hash, err
}
var params transactions.SendTxArgs
var params wallettypes.SendTxArgs
err = json.Unmarshal([]byte(sendTxArgsJSON), &params)
if err != nil {
return hash, err
@ -912,8 +913,8 @@ func (api *API) getVerifiedWalletAccount(address, password string) (*account.Sel
}
if !exists {
logutils.ZapLogger().Error("failed to get a selected account", zap.Error(transactions.ErrInvalidTxSender))
return nil, transactions.ErrAccountDoesntExist
logutils.ZapLogger().Error("failed to get a selected account", zap.Error(wallettypes.ErrInvalidTxSender))
return nil, wallettypes.ErrAccountDoesntExist
}
keyStoreDir := api.s.Config().KeyStoreDir

View File

@ -3,7 +3,7 @@ package responses
import (
"github.com/status-im/status-go/errors"
"github.com/status-im/status-go/eth-node/types"
"github.com/status-im/status-go/transactions"
"github.com/status-im/status-go/services/wallet/wallettypes"
)
type SendDetails struct {
@ -54,7 +54,7 @@ type RouterSentTransactions struct {
SentTransactions []*RouterSentTransaction `json:"sentTransactions"`
}
func NewRouterSentTransaction(sendArgs *transactions.SendTxArgs, hash types.Hash, approvalTx bool) *RouterSentTransaction {
func NewRouterSentTransaction(sendArgs *wallettypes.SendTxArgs, hash types.Hash, approvalTx bool) *RouterSentTransaction {
addr := types.Address{}
if sendArgs.To != nil {
addr = *sendArgs.To

View File

@ -5,13 +5,13 @@ import (
"github.com/status-im/status-go/eth-node/types"
walletCommon "github.com/status-im/status-go/services/wallet/common"
"github.com/status-im/status-go/transactions"
"github.com/status-im/status-go/services/wallet/wallettypes"
)
type MultipathProcessorTxArgs struct {
Name string `json:"bridgeName"`
ChainID uint64
TransferTx *transactions.SendTxArgs
TransferTx *wallettypes.SendTxArgs
HopTx *HopBridgeTxArgs
CbridgeTx *CelerBridgeTxArgs
ERC721TransferTx *ERC721TxArgs

View File

@ -13,7 +13,7 @@ import (
"github.com/status-im/status-go/params"
"github.com/status-im/status-go/services/wallet/requests"
"github.com/status-im/status-go/services/wallet/token"
"github.com/status-im/status-go/transactions"
"github.com/status-im/status-go/services/wallet/wallettypes"
)
type PathProcessor interface {
@ -36,7 +36,7 @@ type PathProcessor interface {
// BuildTransaction builds the transaction based on MultipathProcessorTxArgs, returns the transaction and the used nonce (lastUsedNonce is -1 if it's the first tx)
BuildTransaction(sendArgs *MultipathProcessorTxArgs, lastUsedNonce int64) (*ethTypes.Transaction, uint64, error)
// BuildTransactionV2 builds the transaction based on SendTxArgs, returns the transaction and the used nonce (lastUsedNonce is -1 if it's the first tx)
BuildTransactionV2(sendArgs *transactions.SendTxArgs, lastUsedNonce int64) (*ethTypes.Transaction, uint64, error)
BuildTransactionV2(sendArgs *wallettypes.SendTxArgs, lastUsedNonce int64) (*ethTypes.Transaction, uint64, error)
}
type PathProcessorClearable interface {

View File

@ -27,6 +27,7 @@ import (
"github.com/status-im/status-go/services/wallet/router/pathprocessor/cbridge"
"github.com/status-im/status-go/services/wallet/thirdparty"
"github.com/status-im/status-go/services/wallet/token"
"github.com/status-im/status-go/services/wallet/wallettypes"
"github.com/status-im/status-go/transactions"
)
@ -38,7 +39,7 @@ const (
)
type CelerBridgeTxArgs struct {
transactions.SendTxArgs
wallettypes.SendTxArgs
ChainID uint64 `json:"chainId"`
Symbol string `json:"symbol"`
Recipient common.Address `json:"recipient"`
@ -365,7 +366,7 @@ func (s *CelerBridgeProcessor) sendOrBuild(sendArgs *MultipathProcessorTxArgs, s
return tx, nil
}
func (s *CelerBridgeProcessor) sendOrBuildV2(sendArgs *transactions.SendTxArgs, signerFn bind.SignerFn, lastUsedNonce int64) (*ethTypes.Transaction, error) {
func (s *CelerBridgeProcessor) sendOrBuildV2(sendArgs *wallettypes.SendTxArgs, signerFn bind.SignerFn, lastUsedNonce int64) (*ethTypes.Transaction, error) {
fromChain := s.rpcClient.NetworkManager.Find(sendArgs.FromChainID)
if fromChain == nil {
return nil, ErrNetworkNotFound
@ -441,7 +442,7 @@ func (s *CelerBridgeProcessor) BuildTransaction(sendArgs *MultipathProcessorTxAr
return tx, tx.Nonce(), err
}
func (s *CelerBridgeProcessor) BuildTransactionV2(sendArgs *transactions.SendTxArgs, lastUsedNonce int64) (*ethTypes.Transaction, uint64, error) {
func (s *CelerBridgeProcessor) BuildTransactionV2(sendArgs *wallettypes.SendTxArgs, lastUsedNonce int64) (*ethTypes.Transaction, uint64, error) {
tx, err := s.sendOrBuildV2(sendArgs, nil, lastUsedNonce)
if err != nil {
return nil, 0, createBridgeCellerErrorResponse(err)

View File

@ -35,11 +35,12 @@ import (
walletCommon "github.com/status-im/status-go/services/wallet/common"
"github.com/status-im/status-go/services/wallet/thirdparty"
"github.com/status-im/status-go/services/wallet/token"
"github.com/status-im/status-go/services/wallet/wallettypes"
"github.com/status-im/status-go/transactions"
)
type HopBridgeTxArgs struct {
transactions.SendTxArgs
wallettypes.SendTxArgs
ChainID uint64 `json:"chainId"`
ChainIDTo uint64 `json:"chainIdTo"`
Symbol string `json:"symbol"`
@ -350,7 +351,7 @@ func (h *HopBridgeProcessor) sendOrBuild(sendArgs *MultipathProcessorTxArgs, sig
return tx, nil
}
func (h *HopBridgeProcessor) sendOrBuildV2(sendArgs *transactions.SendTxArgs, signerFn bind.SignerFn, lastUsedNonce int64) (tx *ethTypes.Transaction, err error) {
func (h *HopBridgeProcessor) sendOrBuildV2(sendArgs *wallettypes.SendTxArgs, signerFn bind.SignerFn, lastUsedNonce int64) (tx *ethTypes.Transaction, err error) {
fromChain := h.networkManager.Find(sendArgs.FromChainID)
if fromChain == nil {
return tx, fmt.Errorf("ChainID not supported %d", sendArgs.FromChainID)
@ -433,7 +434,7 @@ func (h *HopBridgeProcessor) BuildTransaction(sendArgs *MultipathProcessorTxArgs
return tx, tx.Nonce(), createBridgeHopErrorResponse(err)
}
func (h *HopBridgeProcessor) BuildTransactionV2(sendArgs *transactions.SendTxArgs, lastUsedNonce int64) (*ethTypes.Transaction, uint64, error) {
func (h *HopBridgeProcessor) BuildTransactionV2(sendArgs *wallettypes.SendTxArgs, lastUsedNonce int64) (*ethTypes.Transaction, uint64, error) {
tx, err := h.sendOrBuildV2(sendArgs, nil, lastUsedNonce)
if err != nil {
return nil, 0, createBridgeHopErrorResponse(err)

View File

@ -16,6 +16,7 @@ import (
"github.com/status-im/status-go/rpc"
"github.com/status-im/status-go/services/ens/ensresolver"
walletCommon "github.com/status-im/status-go/services/wallet/common"
"github.com/status-im/status-go/services/wallet/wallettypes"
"github.com/status-im/status-go/transactions"
)
@ -111,7 +112,7 @@ func (s *ENSPublicKeyProcessor) BuildTransaction(sendArgs *MultipathProcessorTxA
return s.transactor.ValidateAndBuildTransaction(sendArgs.ChainID, *sendArgs.TransferTx, lastUsedNonce)
}
func (s *ENSPublicKeyProcessor) BuildTransactionV2(sendArgs *transactions.SendTxArgs, lastUsedNonce int64) (*ethTypes.Transaction, uint64, error) {
func (s *ENSPublicKeyProcessor) BuildTransactionV2(sendArgs *wallettypes.SendTxArgs, lastUsedNonce int64) (*ethTypes.Transaction, uint64, error) {
return s.transactor.ValidateAndBuildTransaction(sendArgs.FromChainID, *sendArgs, lastUsedNonce)
}

View File

@ -18,6 +18,7 @@ import (
"github.com/status-im/status-go/rpc"
"github.com/status-im/status-go/services/ens/ensresolver"
walletCommon "github.com/status-im/status-go/services/wallet/common"
"github.com/status-im/status-go/services/wallet/wallettypes"
"github.com/status-im/status-go/transactions"
)
@ -147,7 +148,7 @@ func (s *ENSRegisterProcessor) BuildTransaction(sendArgs *MultipathProcessorTxAr
return s.transactor.ValidateAndBuildTransaction(sendArgs.ChainID, *sendArgs.TransferTx, lastUsedNonce)
}
func (s *ENSRegisterProcessor) BuildTransactionV2(sendArgs *transactions.SendTxArgs, lastUsedNonce int64) (*ethTypes.Transaction, uint64, error) {
func (s *ENSRegisterProcessor) BuildTransactionV2(sendArgs *wallettypes.SendTxArgs, lastUsedNonce int64) (*ethTypes.Transaction, uint64, error) {
return s.transactor.ValidateAndBuildTransaction(sendArgs.FromChainID, *sendArgs, lastUsedNonce)
}

View File

@ -16,6 +16,7 @@ import (
"github.com/status-im/status-go/rpc"
"github.com/status-im/status-go/services/ens/ensresolver"
walletCommon "github.com/status-im/status-go/services/wallet/common"
"github.com/status-im/status-go/services/wallet/wallettypes"
"github.com/status-im/status-go/transactions"
)
@ -111,7 +112,7 @@ func (s *ENSReleaseProcessor) BuildTransaction(sendArgs *MultipathProcessorTxArg
return s.transactor.ValidateAndBuildTransaction(sendArgs.ChainID, *sendArgs.TransferTx, lastUsedNonce)
}
func (s *ENSReleaseProcessor) BuildTransactionV2(sendArgs *transactions.SendTxArgs, lastUsedNonce int64) (*ethTypes.Transaction, uint64, error) {
func (s *ENSReleaseProcessor) BuildTransactionV2(sendArgs *wallettypes.SendTxArgs, lastUsedNonce int64) (*ethTypes.Transaction, uint64, error) {
return s.transactor.ValidateAndBuildTransaction(sendArgs.FromChainID, *sendArgs, lastUsedNonce)
}

View File

@ -16,11 +16,12 @@ import (
"github.com/status-im/status-go/eth-node/types"
"github.com/status-im/status-go/rpc"
walletCommon "github.com/status-im/status-go/services/wallet/common"
"github.com/status-im/status-go/services/wallet/wallettypes"
"github.com/status-im/status-go/transactions"
)
type ERC1155TxArgs struct {
transactions.SendTxArgs
wallettypes.SendTxArgs
TokenID *hexutil.Big `json:"tokenId"`
Recipient common.Address `json:"recipient"`
Amount *hexutil.Big `json:"amount"`
@ -164,7 +165,7 @@ func (s *ERC1155Processor) BuildTransaction(sendArgs *MultipathProcessorTxArgs,
return tx, tx.Nonce(), err
}
func (s *ERC1155Processor) BuildTransactionV2(sendArgs *transactions.SendTxArgs, lastUsedNonce int64) (*ethTypes.Transaction, uint64, error) {
func (s *ERC1155Processor) BuildTransactionV2(sendArgs *wallettypes.SendTxArgs, lastUsedNonce int64) (*ethTypes.Transaction, uint64, error) {
return s.transactor.ValidateAndBuildTransaction(sendArgs.FromChainID, *sendArgs, lastUsedNonce)
}

View File

@ -19,6 +19,7 @@ import (
"github.com/status-im/status-go/rpc"
walletCommon "github.com/status-im/status-go/services/wallet/common"
"github.com/status-im/status-go/services/wallet/token"
"github.com/status-im/status-go/services/wallet/wallettypes"
"github.com/status-im/status-go/transactions"
)
@ -28,7 +29,7 @@ const (
)
type ERC721TxArgs struct {
transactions.SendTxArgs
wallettypes.SendTxArgs
TokenID *hexutil.Big `json:"tokenId"`
Recipient common.Address `json:"recipient"`
}
@ -222,7 +223,7 @@ func (s *ERC721Processor) BuildTransaction(sendArgs *MultipathProcessorTxArgs, l
return tx, tx.Nonce(), err
}
func (s *ERC721Processor) BuildTransactionV2(sendArgs *transactions.SendTxArgs, lastUsedNonce int64) (*ethTypes.Transaction, uint64, error) {
func (s *ERC721Processor) BuildTransactionV2(sendArgs *wallettypes.SendTxArgs, lastUsedNonce int64) (*ethTypes.Transaction, uint64, error) {
return s.transactor.ValidateAndBuildTransaction(sendArgs.FromChainID, *sendArgs, lastUsedNonce)
}

View File

@ -17,6 +17,7 @@ import (
"github.com/status-im/status-go/eth-node/types"
"github.com/status-im/status-go/rpc"
walletCommon "github.com/status-im/status-go/services/wallet/common"
"github.com/status-im/status-go/services/wallet/wallettypes"
"github.com/status-im/status-go/transactions"
)
@ -136,7 +137,7 @@ func (s *StickersBuyProcessor) BuildTransaction(sendArgs *MultipathProcessorTxAr
return s.transactor.ValidateAndBuildTransaction(sendArgs.ChainID, *sendArgs.TransferTx, lastUsedNonce)
}
func (s *StickersBuyProcessor) BuildTransactionV2(sendArgs *transactions.SendTxArgs, lastUsedNonce int64) (*ethTypes.Transaction, uint64, error) {
func (s *StickersBuyProcessor) BuildTransactionV2(sendArgs *wallettypes.SendTxArgs, lastUsedNonce int64) (*ethTypes.Transaction, uint64, error) {
return s.transactor.ValidateAndBuildTransaction(sendArgs.FromChainID, *sendArgs, lastUsedNonce)
}

View File

@ -15,11 +15,12 @@ import (
walletCommon "github.com/status-im/status-go/services/wallet/common"
"github.com/status-im/status-go/services/wallet/thirdparty/paraswap"
walletToken "github.com/status-im/status-go/services/wallet/token"
"github.com/status-im/status-go/services/wallet/wallettypes"
"github.com/status-im/status-go/transactions"
)
type SwapParaswapTxArgs struct {
transactions.SendTxArgs
wallettypes.SendTxArgs
ChainID uint64 `json:"chainId"`
ChainIDTo uint64 `json:"chainIdTo"`
TokenIDFrom string `json:"tokenIdFrom"`
@ -255,7 +256,7 @@ func (s *SwapParaswapProcessor) prepareTransaction(sendArgs *MultipathProcessorT
return nil
}
func (s *SwapParaswapProcessor) prepareTransactionV2(sendArgs *transactions.SendTxArgs) error {
func (s *SwapParaswapProcessor) prepareTransactionV2(sendArgs *wallettypes.SendTxArgs) error {
slippageBP := uint(sendArgs.SlippagePercentage * 100) // convert to basis points
key := makeKey(sendArgs.FromChainID, sendArgs.ToChainID, sendArgs.FromTokenID, sendArgs.ToTokenID, sendArgs.ValueIn.ToInt())
@ -308,7 +309,7 @@ func (s *SwapParaswapProcessor) BuildTransaction(sendArgs *MultipathProcessorTxA
return s.transactor.ValidateAndBuildTransaction(sendArgs.ChainID, sendArgs.SwapTx.SendTxArgs, lastUsedNonce)
}
func (s *SwapParaswapProcessor) BuildTransactionV2(sendArgs *transactions.SendTxArgs, lastUsedNonce int64) (*ethTypes.Transaction, uint64, error) {
func (s *SwapParaswapProcessor) BuildTransactionV2(sendArgs *wallettypes.SendTxArgs, lastUsedNonce int64) (*ethTypes.Transaction, uint64, error) {
err := s.prepareTransactionV2(sendArgs)
if err != nil {
return nil, 0, createSwapParaswapErrorResponse(err)

View File

@ -14,6 +14,7 @@ import (
"github.com/status-im/status-go/eth-node/types"
"github.com/status-im/status-go/rpc"
walletCommon "github.com/status-im/status-go/services/wallet/common"
"github.com/status-im/status-go/services/wallet/wallettypes"
"github.com/status-im/status-go/transactions"
)
@ -122,7 +123,7 @@ func (s *TransferProcessor) BuildTransaction(sendArgs *MultipathProcessorTxArgs,
return s.transactor.ValidateAndBuildTransaction(sendArgs.ChainID, *sendArgs.TransferTx, lastUsedNonce)
}
func (s *TransferProcessor) BuildTransactionV2(sendArgs *transactions.SendTxArgs, lastUsedNonce int64) (*ethTypes.Transaction, uint64, error) {
func (s *TransferProcessor) BuildTransactionV2(sendArgs *wallettypes.SendTxArgs, lastUsedNonce int64) (*ethTypes.Transaction, uint64, error) {
return s.transactor.ValidateAndBuildTransaction(sendArgs.FromChainID, *sendArgs, lastUsedNonce)
}

View File

@ -18,6 +18,7 @@ import (
wallet_common "github.com/status-im/status-go/services/wallet/common"
"github.com/status-im/status-go/services/wallet/router/pathprocessor"
"github.com/status-im/status-go/services/wallet/router/routes"
"github.com/status-im/status-go/services/wallet/wallettypes"
"github.com/status-im/status-go/transactions"
)
@ -30,7 +31,7 @@ type TransactionDescription struct {
}
type TransactionData struct {
TxArgs *transactions.SendTxArgs
TxArgs *wallettypes.SendTxArgs
Tx *ethTypes.Transaction
HashToSign types.Hash
Signature []byte
@ -153,15 +154,15 @@ type TransactionIdentity struct {
}
type TxResponse struct {
KeyUID string `json:"keyUid,omitempty"`
Address types.Address `json:"address,omitempty"`
AddressPath string `json:"addressPath,omitempty"`
SignOnKeycard bool `json:"signOnKeycard,omitempty"`
ChainID uint64 `json:"chainId,omitempty"`
MessageToSign interface{} `json:"messageToSign,omitempty"`
TxArgs transactions.SendTxArgs `json:"txArgs,omitempty"`
RawTx string `json:"rawTx,omitempty"`
TxHash common.Hash `json:"txHash,omitempty"`
KeyUID string `json:"keyUid,omitempty"`
Address types.Address `json:"address,omitempty"`
AddressPath string `json:"addressPath,omitempty"`
SignOnKeycard bool `json:"signOnKeycard,omitempty"`
ChainID uint64 `json:"chainId,omitempty"`
MessageToSign interface{} `json:"messageToSign,omitempty"`
TxArgs wallettypes.SendTxArgs `json:"txArgs,omitempty"`
RawTx string `json:"rawTx,omitempty"`
TxHash common.Hash `json:"txHash,omitempty"`
}
func NewMultiTransaction(timestamp uint64, fromNetworkID, toNetworkID uint64, fromTxHash, toTxHash common.Hash, fromAddress, toAddress common.Address, fromAsset, toAsset string, fromAmount, toAmount *hexutil.Big, txType MultiTransactionType, crossTxID string) *MultiTransaction {
@ -197,7 +198,7 @@ func (tm *TransactionManager) SignMessage(message types.HexBytes, account *types
return types.EncodeHex(signature), err
}
func (tm *TransactionManager) BuildTransaction(chainID uint64, sendArgs transactions.SendTxArgs) (response *TxResponse, err error) {
func (tm *TransactionManager) BuildTransaction(chainID uint64, sendArgs wallettypes.SendTxArgs) (response *TxResponse, err error) {
account, err := tm.accountsDB.GetAccountByAddress(sendArgs.From)
if err != nil {
return nil, fmt.Errorf("failed to resolve account: %w", err)
@ -255,7 +256,7 @@ func (tm *TransactionManager) BuildTransaction(chainID uint64, sendArgs transact
}, nil
}
func (tm *TransactionManager) BuildRawTransaction(chainID uint64, sendArgs transactions.SendTxArgs, signature []byte) (response *TxResponse, err error) {
func (tm *TransactionManager) BuildRawTransaction(chainID uint64, sendArgs wallettypes.SendTxArgs, signature []byte) (response *TxResponse, err error) {
tx, err := tm.transactor.BuildTransactionWithSignature(chainID, sendArgs, signature)
if err != nil {
return nil, err
@ -274,7 +275,7 @@ func (tm *TransactionManager) BuildRawTransaction(chainID uint64, sendArgs trans
}, nil
}
func (tm *TransactionManager) SendTransactionWithSignature(chainID uint64, sendArgs transactions.SendTxArgs, signature []byte) (hash types.Hash, err error) {
func (tm *TransactionManager) SendTransactionWithSignature(chainID uint64, sendArgs wallettypes.SendTxArgs, signature []byte) (hash types.Hash, err error) {
txWithSignature, err := tm.transactor.BuildTransactionWithSignature(chainID, sendArgs, signature)
if err != nil {
return hash, err

View File

@ -22,14 +22,15 @@ import (
"github.com/status-im/status-go/services/wallet/router/pathprocessor"
mock_pathprocessor "github.com/status-im/status-go/services/wallet/router/pathprocessor/mock"
"github.com/status-im/status-go/services/wallet/walletevent"
"github.com/status-im/status-go/services/wallet/wallettypes"
"github.com/status-im/status-go/t/helpers"
"github.com/status-im/status-go/transactions"
mock_transactor "github.com/status-im/status-go/transactions/mock"
"github.com/status-im/status-go/walletdatabase"
)
func deepCopy(tx *transactions.SendTxArgs) *transactions.SendTxArgs {
return &transactions.SendTxArgs{
func deepCopy(tx *wallettypes.SendTxArgs) *wallettypes.SendTxArgs {
return &wallettypes.SendTxArgs{
From: tx.From,
To: tx.To,
Value: tx.Value,
@ -87,7 +88,7 @@ func setupTransactionData(_ *testing.T, transactor transactions.TransactorIface)
{
ChainID: 1,
Name: transferBridge.Name(),
TransferTx: &transactions.SendTxArgs{
TransferTx: &wallettypes.SendTxArgs{
From: types.Address(ethTransfer.From),
To: (*types.Address)(&ethTransfer.To),
Value: (*hexutil.Big)(big.NewInt(ethTransfer.Value / 3)),
@ -99,7 +100,7 @@ func setupTransactionData(_ *testing.T, transactor transactions.TransactorIface)
{
ChainID: 420,
Name: transferBridge.Name(),
TransferTx: &transactions.SendTxArgs{
TransferTx: &wallettypes.SendTxArgs{
From: types.Address(ethTransfer.From),
To: (*types.Address)(&ethTransfer.To),
Value: (*hexutil.Big)(big.NewInt(ethTransfer.Value * 2 / 3)),
@ -137,7 +138,7 @@ func setupApproveTransactionData(_ *testing.T, transactor transactions.Transacto
{
//ChainID: 1, // This will be set by transaction manager
Name: transferBridge.Name(),
TransferTx: &transactions.SendTxArgs{
TransferTx: &wallettypes.SendTxArgs{
From: types.Address(tokenTransfer.From),
To: (*types.Address)(&tokenTransfer.To),
Value: (*hexutil.Big)(big.NewInt(tokenTransfer.Value)),
@ -203,9 +204,9 @@ func TestSendTransactionsETHFailOnBridge(t *testing.T) {
transferBridge.EXPECT().Name().Return(data[0].Name).AnyTimes()
bridges[transferBridge.Name()] = transferBridge
expectedErr := transactions.ErrInvalidTxSender // Any error to verify
expectedErr := wallettypes.ErrInvalidTxSender // Any error to verify
// In case of bridge error, verify that the error is returned
transferBridge.EXPECT().Send(gomock.Any(), int64(-1), gomock.Any()).Return(types.Hash{}, uint64(0), transactions.ErrInvalidTxSender)
transferBridge.EXPECT().Send(gomock.Any(), int64(-1), gomock.Any()).Return(types.Hash{}, uint64(0), wallettypes.ErrInvalidTxSender)
// Call the SendTransactions method
_, err := tm.SendTransactions(context.Background(), multiTransaction, data, bridges, account)
@ -219,7 +220,7 @@ func TestSendTransactionsETHFailOnTransactor(t *testing.T) {
// Verify that the SendTransactionWithChainID method is called for each transaction with proper arguments
// Return values are not checked, because they must be checked in Transactor tests. Only error propagation matters here
expectedErr := transactions.ErrInvalidTxSender // Any error to verify
expectedErr := wallettypes.ErrInvalidTxSender // Any error to verify
transactor.EXPECT().SendTransactionWithChainID(expectedData[0].ChainID, *(expectedData[0].TransferTx), int64(-1), account).Return(types.Hash{}, uint64(0), nil)
transactor.EXPECT().SendTransactionWithChainID(expectedData[1].ChainID, *(expectedData[1].TransferTx), int64(-1), account).Return(types.Hash{}, uint64(0), expectedErr)

View File

@ -17,7 +17,7 @@ import (
"github.com/status-im/status-go/services/wallet/responses"
"github.com/status-im/status-go/services/wallet/router/pathprocessor"
"github.com/status-im/status-go/services/wallet/router/routes"
"github.com/status-im/status-go/transactions"
"github.com/status-im/status-go/services/wallet/wallettypes"
)
type BuildRouteExtraParams struct {
@ -89,8 +89,8 @@ func buildApprovalTxForPath(transactor transactions.TransactorIface, path *route
}
addrTo := types.Address(path.FromToken.Address)
approavalSendArgs := &transactions.SendTxArgs{
Version: transactions.SendTxArgsVersion1,
approavalSendArgs := &wallettypes.SendTxArgs{
Version: wallettypes.SendTxArgsVersion1,
// tx fields
From: types.Address(addressFrom),
@ -151,8 +151,8 @@ func buildTxForPath(transactor transactions.TransactorIface, path *routes.Path,
}
addrTo := types.Address(params.AddressTo)
sendArgs := &transactions.SendTxArgs{
Version: transactions.SendTxArgsVersion1,
sendArgs := &wallettypes.SendTxArgs{
Version: wallettypes.SendTxArgsVersion1,
// tx fields
From: types.Address(params.AddressFrom),

View File

@ -17,7 +17,7 @@ import (
"github.com/status-im/status-go/eth-node/types"
"github.com/status-im/status-go/multiaccounts/accounts"
wallet_common "github.com/status-im/status-go/services/wallet/common"
"github.com/status-im/status-go/transactions"
"github.com/status-im/status-go/services/wallet/wallettypes"
mock_transactor "github.com/status-im/status-go/transactions/mock"
"github.com/ethereum/go-ethereum/common"
@ -268,7 +268,7 @@ func TestBuildTransaction(t *testing.T) {
chainID := uint64(1)
nonce := uint64(1)
gas := uint64(21000)
sendArgs := transactions.SendTxArgs{
sendArgs := wallettypes.SendTxArgs{
From: types.Address{1},
To: &types.Address{2},
Value: (*hexutil.Big)(big.NewInt(123)),
@ -309,7 +309,7 @@ func TestBuildTransaction_AccountNotFound(t *testing.T) {
chainID := uint64(1)
nonce := uint64(1)
gas := uint64(21000)
sendArgs := transactions.SendTxArgs{
sendArgs := wallettypes.SendTxArgs{
From: types.Address{2},
To: &types.Address{2},
Value: (*hexutil.Big)(big.NewInt(123)),
@ -328,7 +328,7 @@ func TestBuildTransaction_InvalidSendTxArgs(t *testing.T) {
manager, transactor := setupTestSuite(t)
chainID := uint64(1)
sendArgs := transactions.SendTxArgs{
sendArgs := wallettypes.SendTxArgs{
From: types.Address{1},
To: &types.Address{2},
}
@ -346,7 +346,7 @@ func TestBuildRawTransaction(t *testing.T) {
chainID := uint64(1)
nonce := uint64(1)
gas := uint64(21000)
sendArgs := transactions.SendTxArgs{
sendArgs := wallettypes.SendTxArgs{
From: types.Address{1},
To: &types.Address{2},
Value: (*hexutil.Big)(big.NewInt(123)),

View File

@ -1,4 +1,4 @@
package transactions
package wallettypes
import (
"bytes"

View File

@ -1,4 +1,4 @@
package transactions
package wallettypes
import (
"testing"

View File

@ -12,7 +12,7 @@ import (
"github.com/status-im/status-go/eth-node/types"
"github.com/status-im/status-go/logutils"
"github.com/status-im/status-go/services/typeddata"
"github.com/status-im/status-go/transactions"
"github.com/status-im/status-go/services/wallet/wallettypes"
)
const Web3SendAsyncReadOnly = "web3-send-async-read-only"
@ -247,8 +247,8 @@ func (api *API) getVerifiedWalletAccount(address, password string) (*account.Sel
}
if !exists {
logutils.ZapLogger().Error("failed to get a selected account", zap.Error(transactions.ErrInvalidTxSender))
return nil, transactions.ErrAccountDoesntExist
logutils.ZapLogger().Error("failed to get a selected account", zap.Error(wallettypes.ErrInvalidTxSender))
return nil, wallettypes.ErrAccountDoesntExist
}
key, err := api.s.accountsManager.VerifyAccountPassword(api.s.config.KeyStoreDir, address, password)
@ -326,7 +326,7 @@ func (api *API) ProcessWeb3ReadOnlyRequest(request Web3SendAsyncReadOnlyRequest)
return nil, err
}
var trxArgs transactions.SendTxArgs
var trxArgs wallettypes.SendTxArgs
if err := json.Unmarshal(jsonString, &trxArgs); err != nil {
return nil, err
}

View File

@ -12,7 +12,7 @@ import (
"github.com/status-im/status-go/eth-node/types"
"github.com/status-im/status-go/services/rpcfilters"
"github.com/status-im/status-go/services/typeddata"
"github.com/status-im/status-go/transactions"
"github.com/status-im/status-go/services/wallet/wallettypes"
)
// signMessage checks the pwd vs the selected account and signs a message
@ -73,7 +73,7 @@ func (api *API) signTypedDataV4(typed signercore.TypedData, address string, pass
}
// SendTransaction creates a new transaction and waits until it's complete.
func (api *API) sendTransaction(chainID uint64, sendArgs transactions.SendTxArgs, password string, requestType string) (hash types.Hash, err error) {
func (api *API) sendTransaction(chainID uint64, sendArgs wallettypes.SendTxArgs, password string, requestType string) (hash types.Hash, err error) {
verifiedAccount, err := api.getVerifiedWalletAccount(sendArgs.From.String(), password)
if err != nil {
return hash, err

View File

@ -25,6 +25,7 @@ import (
"github.com/status-im/status-go/rpc"
"github.com/status-im/status-go/services/wallet/bigint"
wallet_common "github.com/status-im/status-go/services/wallet/common"
"github.com/status-im/status-go/services/wallet/wallettypes"
)
const (
@ -52,12 +53,12 @@ func (e *ErrBadNonce) Error() string {
type TransactorIface interface {
NextNonce(rpcClient rpc.ClientInterface, chainID uint64, from types.Address) (uint64, error)
EstimateGas(network *params.Network, from common.Address, to common.Address, value *big.Int, input []byte) (uint64, error)
SendTransaction(sendArgs SendTxArgs, verifiedAccount *account.SelectedExtKey, lastUsedNonce int64) (hash types.Hash, nonce uint64, err error)
SendTransactionWithChainID(chainID uint64, sendArgs SendTxArgs, lastUsedNonce int64, verifiedAccount *account.SelectedExtKey) (hash types.Hash, nonce uint64, err error)
ValidateAndBuildTransaction(chainID uint64, sendArgs SendTxArgs, lastUsedNonce int64) (tx *gethtypes.Transaction, nonce uint64, err error)
SendTransaction(sendArgs wallettypes.SendTxArgs, verifiedAccount *account.SelectedExtKey, lastUsedNonce int64) (hash types.Hash, nonce uint64, err error)
SendTransactionWithChainID(chainID uint64, sendArgs wallettypes.SendTxArgs, lastUsedNonce int64, verifiedAccount *account.SelectedExtKey) (hash types.Hash, nonce uint64, err error)
ValidateAndBuildTransaction(chainID uint64, sendArgs wallettypes.SendTxArgs, lastUsedNonce int64) (tx *gethtypes.Transaction, nonce uint64, err error)
AddSignatureToTransaction(chainID uint64, tx *gethtypes.Transaction, sig []byte) (*gethtypes.Transaction, error)
SendRawTransaction(chainID uint64, rawTx string) error
BuildTransactionWithSignature(chainID uint64, args SendTxArgs, sig []byte) (*gethtypes.Transaction, error)
BuildTransactionWithSignature(chainID uint64, args wallettypes.SendTxArgs, sig []byte) (*gethtypes.Transaction, error)
SendTransactionWithSignature(from common.Address, symbol string, multiTransactionID wallet_common.MultiTransactionIDType, tx *gethtypes.Transaction) (hash types.Hash, err error)
StoreAndTrackPendingTx(from common.Address, symbol string, chainID uint64, multiTransactionID wallet_common.MultiTransactionIDType, tx *gethtypes.Transaction) error
}
@ -142,18 +143,18 @@ func (t *Transactor) EstimateGas(network *params.Network, from common.Address, t
}
// SendTransaction is an implementation of eth_sendTransaction. It queues the tx to the sign queue.
func (t *Transactor) SendTransaction(sendArgs SendTxArgs, verifiedAccount *account.SelectedExtKey, lastUsedNonce int64) (hash types.Hash, nonce uint64, err error) {
func (t *Transactor) SendTransaction(sendArgs wallettypes.SendTxArgs, verifiedAccount *account.SelectedExtKey, lastUsedNonce int64) (hash types.Hash, nonce uint64, err error) {
hash, nonce, err = t.validateAndPropagate(t.rpcWrapper, verifiedAccount, sendArgs, lastUsedNonce)
return
}
func (t *Transactor) SendTransactionWithChainID(chainID uint64, sendArgs SendTxArgs, lastUsedNonce int64, verifiedAccount *account.SelectedExtKey) (hash types.Hash, nonce uint64, err error) {
func (t *Transactor) SendTransactionWithChainID(chainID uint64, sendArgs wallettypes.SendTxArgs, lastUsedNonce int64, verifiedAccount *account.SelectedExtKey) (hash types.Hash, nonce uint64, err error) {
wrapper := newRPCWrapper(t.rpcWrapper.RPCClient, chainID)
hash, nonce, err = t.validateAndPropagate(wrapper, verifiedAccount, sendArgs, lastUsedNonce)
return
}
func (t *Transactor) ValidateAndBuildTransaction(chainID uint64, sendArgs SendTxArgs, lastUsedNonce int64) (tx *gethtypes.Transaction, nonce uint64, err error) {
func (t *Transactor) ValidateAndBuildTransaction(chainID uint64, sendArgs wallettypes.SendTxArgs, lastUsedNonce int64) (tx *gethtypes.Transaction, nonce uint64, err error) {
wrapper := newRPCWrapper(t.rpcWrapper.RPCClient, chainID)
tx, err = t.validateAndBuildTransaction(wrapper, sendArgs, lastUsedNonce)
if err != nil {
@ -246,9 +247,9 @@ func (t *Transactor) SendTransactionWithSignature(from common.Address, symbol st
// BuildTransactionAndSendWithSignature receive a transaction and a signature, serialize them together
// It's different from eth_sendRawTransaction because it receives a signature and not a serialized transaction with signature.
// Since the transactions is already signed, we assume it was validated and used the right nonce.
func (t *Transactor) BuildTransactionWithSignature(chainID uint64, args SendTxArgs, sig []byte) (*gethtypes.Transaction, error) {
func (t *Transactor) BuildTransactionWithSignature(chainID uint64, args wallettypes.SendTxArgs, sig []byte) (*gethtypes.Transaction, error) {
if !args.Valid() {
return nil, ErrInvalidSendTxArgs
return nil, wallettypes.ErrInvalidSendTxArgs
}
if len(sig) != ValidSignatureSize {
@ -273,9 +274,9 @@ func (t *Transactor) BuildTransactionWithSignature(chainID uint64, args SendTxAr
return txWithSignature, nil
}
func (t *Transactor) HashTransaction(args SendTxArgs) (validatedArgs SendTxArgs, hash types.Hash, err error) {
func (t *Transactor) HashTransaction(args wallettypes.SendTxArgs) (validatedArgs wallettypes.SendTxArgs, hash types.Hash, err error) {
if !args.Valid() {
return validatedArgs, hash, ErrInvalidSendTxArgs
return validatedArgs, hash, wallettypes.ErrInvalidSendTxArgs
}
validatedArgs = args
@ -356,21 +357,21 @@ func (t *Transactor) HashTransaction(args SendTxArgs) (validatedArgs SendTxArgs,
}
// make sure that only account which created the tx can complete it
func (t *Transactor) validateAccount(args SendTxArgs, selectedAccount *account.SelectedExtKey) error {
func (t *Transactor) validateAccount(args wallettypes.SendTxArgs, selectedAccount *account.SelectedExtKey) error {
if selectedAccount == nil {
return account.ErrNoAccountSelected
}
if !bytes.Equal(args.From.Bytes(), selectedAccount.Address.Bytes()) {
return ErrInvalidTxSender
return wallettypes.ErrInvalidTxSender
}
return nil
}
func (t *Transactor) validateAndBuildTransaction(rpcWrapper *rpcWrapper, args SendTxArgs, lastUsedNonce int64) (tx *gethtypes.Transaction, err error) {
func (t *Transactor) validateAndBuildTransaction(rpcWrapper *rpcWrapper, args wallettypes.SendTxArgs, lastUsedNonce int64) (tx *gethtypes.Transaction, err error) {
if !args.Valid() {
return tx, ErrInvalidSendTxArgs
return tx, wallettypes.ErrInvalidSendTxArgs
}
var nonce uint64
@ -445,9 +446,9 @@ func (t *Transactor) validateAndBuildTransaction(rpcWrapper *rpcWrapper, args Se
return tx, nil
}
func (t *Transactor) validateAndPropagate(rpcWrapper *rpcWrapper, selectedAccount *account.SelectedExtKey, args SendTxArgs, lastUsedNonce int64) (hash types.Hash, nonce uint64, err error) {
func (t *Transactor) validateAndPropagate(rpcWrapper *rpcWrapper, selectedAccount *account.SelectedExtKey, args wallettypes.SendTxArgs, lastUsedNonce int64) (hash types.Hash, nonce uint64, err error) {
symbol := args.Symbol
if args.Version == SendTxArgsVersion1 {
if args.Version == wallettypes.SendTxArgsVersion1 {
symbol = args.FromTokenID
}
@ -470,7 +471,7 @@ func (t *Transactor) validateAndPropagate(rpcWrapper *rpcWrapper, selectedAccoun
return hash, tx.Nonce(), err
}
func (t *Transactor) buildTransaction(args SendTxArgs) *gethtypes.Transaction {
func (t *Transactor) buildTransaction(args wallettypes.SendTxArgs) *gethtypes.Transaction {
var (
nonce uint64
value *big.Int
@ -493,7 +494,7 @@ func (t *Transactor) buildTransaction(args SendTxArgs) *gethtypes.Transaction {
return t.buildTransactionWithOverrides(nonce, value, gas, gasPrice, args)
}
func (t *Transactor) buildTransactionWithOverrides(nonce uint64, value *big.Int, gas uint64, gasPrice *big.Int, args SendTxArgs) *gethtypes.Transaction {
func (t *Transactor) buildTransactionWithOverrides(nonce uint64, value *big.Int, gas uint64, gasPrice *big.Int, args wallettypes.SendTxArgs) *gethtypes.Transaction {
var tx *gethtypes.Transaction
if args.To != nil {
@ -548,7 +549,7 @@ func (t *Transactor) buildTransactionWithOverrides(nonce uint64, value *big.Int,
return tx
}
func (t *Transactor) logNewTx(args SendTxArgs, gas uint64, gasPrice *big.Int, value *big.Int) {
func (t *Transactor) logNewTx(args wallettypes.SendTxArgs, gas uint64, gasPrice *big.Int, value *big.Int) {
t.logger.Info("New transaction",
zap.Stringer("From", args.From),
zap.Stringer("To", args.To),
@ -558,7 +559,7 @@ func (t *Transactor) logNewTx(args SendTxArgs, gas uint64, gasPrice *big.Int, va
)
}
func (t *Transactor) logNewContract(args SendTxArgs, gas uint64, gasPrice *big.Int, value *big.Int, nonce uint64) {
func (t *Transactor) logNewContract(args wallettypes.SendTxArgs, gas uint64, gasPrice *big.Int, value *big.Int, nonce uint64) {
t.logger.Info("New contract",
zap.Stringer("From", args.From),
zap.Uint64("Gas", gas),

View File

@ -29,6 +29,7 @@ import (
"github.com/status-im/status-go/eth-node/types"
"github.com/status-im/status-go/params"
wallet_common "github.com/status-im/status-go/services/wallet/common"
"github.com/status-im/status-go/services/wallet/wallettypes"
"github.com/status-im/status-go/sqlite"
"github.com/status-im/status-go/t/utils"
"github.com/status-im/status-go/transactions/fake"
@ -102,7 +103,7 @@ var (
testNonce = hexutil.Uint64(10)
)
func (s *TransactorSuite) setupTransactionPoolAPI(args SendTxArgs, returnNonce, resultNonce hexutil.Uint64, account *account.SelectedExtKey, txErr error) {
func (s *TransactorSuite) setupTransactionPoolAPI(args wallettypes.SendTxArgs, returnNonce, resultNonce hexutil.Uint64, account *account.SelectedExtKey, txErr error) {
// Expect calls to gas functions only if there are no user defined values.
// And also set the expected gas and gas price for RLP encoding the expected tx.
var usedGas hexutil.Uint64
@ -129,7 +130,7 @@ func (s *TransactorSuite) setupTransactionPoolAPI(args SendTxArgs, returnNonce,
s.txServiceMock.EXPECT().SendRawTransaction(gomock.Any(), data).Return(common.Hash{}, txErr)
}
func (s *TransactorSuite) rlpEncodeTx(args SendTxArgs, config *params.NodeConfig, account *account.SelectedExtKey, nonce *hexutil.Uint64, gas hexutil.Uint64, gasPrice *big.Int) hexutil.Bytes {
func (s *TransactorSuite) rlpEncodeTx(args wallettypes.SendTxArgs, config *params.NodeConfig, account *account.SelectedExtKey, nonce *hexutil.Uint64, gas hexutil.Uint64, gasPrice *big.Int) hexutil.Bytes {
var txData gethtypes.TxData
to := common.Address(*args.To)
if args.IsDynamicFeeTx() {
@ -220,7 +221,7 @@ func (s *TransactorSuite) TestGasValues() {
for _, testCase := range testCases {
s.T().Run(testCase.name, func(t *testing.T) {
s.SetupTest()
args := SendTxArgs{
args := wallettypes.SendTxArgs{
From: account.FromAddress(utils.TestConfig.Account1.WalletAddress),
To: account.ToAddress(utils.TestConfig.Account2.WalletAddress),
Gas: testCase.gas,
@ -237,7 +238,7 @@ func (s *TransactorSuite) TestGasValues() {
}
}
func (s *TransactorSuite) setupBuildTransactionMocks(args SendTxArgs, account *account.SelectedExtKey) {
func (s *TransactorSuite) setupBuildTransactionMocks(args wallettypes.SendTxArgs, account *account.SelectedExtKey) {
s.txServiceMock.EXPECT().GetTransactionCount(gomock.Any(), gomock.Eq(common.Address(account.Address)), gethrpc.PendingBlockNumber).Return(&testNonce, nil)
if !args.IsDynamicFeeTx() && args.GasPrice == nil {
@ -269,7 +270,7 @@ func (s *TransactorSuite) TestBuildAndValidateTransaction() {
s.SetupTest()
gas := hexutil.Uint64(21000)
args := SendTxArgs{
args := wallettypes.SendTxArgs{
From: fromAddress,
To: toAddress,
Gas: &gas,
@ -289,7 +290,7 @@ func (s *TransactorSuite) TestBuildAndValidateTransaction() {
s.T().Run("DynamicFeeTransaction with gas estimation", func(t *testing.T) {
s.SetupTest()
args := SendTxArgs{
args := wallettypes.SendTxArgs{
From: fromAddress,
To: toAddress,
Value: value,
@ -312,7 +313,7 @@ func (s *TransactorSuite) TestBuildAndValidateTransaction() {
gas := hexutil.Uint64(21000)
gasPrice := (*hexutil.Big)(big.NewInt(10))
args := SendTxArgs{
args := wallettypes.SendTxArgs{
From: fromAddress,
To: toAddress,
Value: value,
@ -330,7 +331,7 @@ func (s *TransactorSuite) TestBuildAndValidateTransaction() {
s.T().Run("LegacyTransaction without gas estimation", func(t *testing.T) {
s.SetupTest()
args := SendTxArgs{
args := wallettypes.SendTxArgs{
From: fromAddress,
To: toAddress,
Value: value,
@ -346,7 +347,7 @@ func (s *TransactorSuite) TestBuildAndValidateTransaction() {
}
func (s *TransactorSuite) TestArgsValidation() {
args := SendTxArgs{
args := wallettypes.SendTxArgs{
From: account.FromAddress(utils.TestConfig.Account1.WalletAddress),
To: account.ToAddress(utils.TestConfig.Account2.WalletAddress),
Data: types.HexBytes([]byte{0x01, 0x02}),
@ -357,11 +358,11 @@ func (s *TransactorSuite) TestArgsValidation() {
Address: account.FromAddress(utils.TestConfig.Account1.WalletAddress),
}
_, _, err := s.manager.SendTransaction(args, selectedAccount, -1)
s.EqualError(err, ErrInvalidSendTxArgs.Error())
s.EqualError(err, wallettypes.ErrInvalidSendTxArgs.Error())
}
func (s *TransactorSuite) TestAccountMismatch() {
args := SendTxArgs{
args := wallettypes.SendTxArgs{
From: account.FromAddress(utils.TestConfig.Account1.WalletAddress),
To: account.ToAddress(utils.TestConfig.Account2.WalletAddress),
}
@ -377,7 +378,7 @@ func (s *TransactorSuite) TestAccountMismatch() {
Address: account.FromAddress(utils.TestConfig.Account2.WalletAddress),
}
_, _, err = s.manager.SendTransaction(args, selectedAccount, -1)
s.EqualError(err, ErrInvalidTxSender.Error())
s.EqualError(err, wallettypes.ErrInvalidTxSender.Error())
}
func (s *TransactorSuite) TestSendTransactionWithSignature() {
@ -415,7 +416,7 @@ func (s *TransactorSuite) TestSendTransactionWithSignature() {
gasPrice := (*hexutil.Big)(big.NewInt(2000000000))
data := []byte{}
chainID := big.NewInt(int64(s.nodeConfig.NetworkID))
args := SendTxArgs{
args := wallettypes.SendTxArgs{
From: from,
To: &to,
Gas: &gas,
@ -464,7 +465,7 @@ func (s *TransactorSuite) TestSendTransactionWithSignature() {
}
func (s *TransactorSuite) TestSendTransactionWithSignature_InvalidSignature() {
args := SendTxArgs{}
args := wallettypes.SendTxArgs{}
_, err := s.manager.BuildTransactionWithSignature(1, args, []byte{})
s.Equal(ErrInvalidSignatureSize, err)
}
@ -482,7 +483,7 @@ func (s *TransactorSuite) TestHashTransaction() {
gas := hexutil.Uint64(21000)
gasPrice := (*hexutil.Big)(big.NewInt(2000000000))
args := SendTxArgs{
args := wallettypes.SendTxArgs{
From: from,
To: &to,
Gas: &gas,